@font-face{font-family:NaikaiFont;src:url(/fonts/NaikaiFont.ttf)format("truetype");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:CJKAllSeto;src:url(/fonts/cjkFonts-allseto-subset.woff2)format("woff2");font-style:normal;font-weight:400 900;font-display:block}:root{--ink:#2c302e;--muted:#7a7369;--paper:#f7f5f0;--sand:#ebe6d9;--line:#d4cdbc;--blue:#5b6c7a;--brick:#a66e5b;--green:#758c7a;--warm:#d49a6a;--sans:"CJKAllSeto",sans-serif;--serif:"CJKAllSeto",sans-serif;--mono:"CJKAllSeto",sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-snap-type:y mandatory}body{background:var(--paper);color:var(--ink);font-family:var(--sans);overscroll-behavior-y:none;margin:0}a{color:inherit;text-decoration:none}button{color:inherit;font:inherit}.container{width:min(1160px,90vw);margin:0 auto}.site-shell{position:relative;overflow:hidden}.site-header{z-index:10;mix-blend-mode:multiply;width:100%;padding:22px 0;position:fixed;top:0}.nav{justify-content:space-between;align-items:center;display:flex}.brand{letter-spacing:-.04em;font-weight:700}.brand span{color:var(--muted);font-family:var(--serif);font-size:13px;font-weight:500}.nav-links{font:11px var(--mono);letter-spacing:.08em;gap:23px;display:flex}.nav-links a{transition:opacity .25s}.nav-links a:hover{opacity:.45}.post-hero-layout{background:var(--sand);display:block;position:relative}.post-hero-content{width:70%;min-width:0;margin-left:30%;overflow:hidden}.post-hero-content__inner{transform-origin:0 0;width:142.857%;transform:scale(.7)}html:has(.journey-only-page){scroll-behavior:auto;scroll-snap-type:y mandatory}.journey-only-page{background:var(--sand);min-height:0;overflow:visible}.journey-only-page .site-header,.journey-only-page .train-hero__hint{display:none}.journey-only-page .train-hero{z-index:0;height:100svh;min-height:100svh;position:relative}.journey-page{z-index:0;scroll-snap-align:start;scroll-snap-stop:always;background:var(--sand);height:100svh;min-height:100svh;position:relative}.journey-page--2{background-color:#e7dfce;background-image:url(/images/portfolio-landscape-handpainted-v1.webp);background-position:50%;background-size:cover}.journey-page--3{z-index:1;background:#e5e0d5;position:relative}.contact-page{place-items:center;min-height:100%;padding:clamp(28px,6vw,90px);display:grid}.contact-page__inner{text-align:center;width:min(920px,100%)}.contact-page__eyebrow{color:#2c302e8f;font:11px var(--mono);letter-spacing:.14em}.contact-page h2{letter-spacing:-.1em;margin:18px 0 42px;font-family:CJKAllSeto,sans-serif;font-size:clamp(54px,9vw,132px);font-weight:600}.contact-page__links{pointer-events:none;position:absolute;inset:0}.contact-icon{min-height:154px;color:var(--ink);background:#f7f5f03d;border:1px solid #2c302e26;border-radius:24px;place-items:center;gap:0;transition:transform .4s cubic-bezier(.16,1,.3,1),background .3s,box-shadow .3s;display:grid;box-shadow:inset 0 1px #ffffff6b}.contact-page h2{z-index:2;position:relative;transform:translateY(10%)}.contact-icon{pointer-events:auto;width:clamp(96px,10vw,150px);min-height:96px;position:absolute}.contact-page__links{flex-direction:column;gap:12px;display:flex;inset:50% clamp(18px,3vw,48px) auto auto;transform:translateY(-50%)}.contact-icon:first-child,.contact-icon:nth-child(2),.contact-icon:nth-child(3),.contact-icon:nth-child(4){position:static;transform:none}.contact-icon svg{fill:currentColor;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:42px;height:42px}.contact-icon img{object-fit:contain;width:54px;height:54px}.contact-icon--xiaohongshu img{width:70px;height:70px}.contact-icon--bilibili svg,.contact-icon--twitter svg{fill:none}.contact-icon:hover{background:#f7f5f085;transform:translate(-6px);box-shadow:0 18px 36px #2c302e1a}.journey-page--4{background:#dce5e0 50%/cover no-repeat;overflow:hidden}.carriage-season-scene{z-index:0;object-fit:cover;object-position:center;transition:opacity .65s}.carriage-season-scene.is-leaving{animation:.65s both sceneLeave}.carriage-season-scene.is-entering{z-index:1;animation:.65s both sceneEnter}.journey-page--4>.season-toggle{inset:auto 32px 32px auto;transform:none}.journey-page--4>.season-toggle:hover{transform:rotate(-12deg)scale(1.08)}.carriage-stickers{z-index:2;aspect-ratio:1672/941;pointer-events:none;width:max(100%,177.683svh);height:auto;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.carriage-sticker{pointer-events:auto;position:absolute}.carriage-sticker__button{aspect-ratio:1;cursor:pointer;filter:drop-shadow(0 8px 8px #2c302e33);background-color:#0000;background-image:url(/images/portfolio-stickers-sheet.webp);background-repeat:no-repeat;background-size:300% 100%;border:0;width:clamp(86px,10vw,148px);padding:0;transition:transform .45s cubic-bezier(.16,1,.3,1),filter .35s;display:block}.carriage-sticker__button:hover,.carriage-sticker__button:focus-visible{filter:drop-shadow(0 15px 12px #2c302e40);outline:none;transform:translateY(-8px)rotate(-2deg)scale(1.06)}.carriage-sticker__button:focus-visible{outline-offset:6px;border-radius:22px;outline:2px solid #2c302ea6}.carriage-sticker--web{top:30%;left:32%;transform:rotate(-5deg)}.carriage-sticker--web .carriage-sticker__button{background-position:0}.carriage-sticker--awards{top:calc(37% - 36px);left:calc(73% - 240px);transform:rotate(4deg)}.carriage-sticker--awards .carriage-sticker__button{background-image:url(/images/trophy-sticker-v2.webp);background-position:50%;background-size:contain;width:clamp(64px,7.5vw,111px)}.carriage-sticker--hardware{bottom:15%;right:19%;transform:rotate(5deg)}.carriage-sticker--hardware .carriage-sticker__button{background-position:100%}.carriage-sticker__note{z-index:2;-webkit-backdrop-filter:blur(12px);width:max-content;max-width:220px;color:var(--ink);background:#f7f5f0b8;border:1px solid #f7f5f09e;border-radius:13px;gap:4px;padding:10px 13px;font-family:CJKAllSeto,sans-serif;animation:.35s cubic-bezier(.16,1,.3,1) both stickerNoteIn;display:grid;position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);box-shadow:0 12px 26px #2c302e29}.carriage-sticker__note strong{font:400 17px var(--serif);white-space:nowrap}.carriage-sticker__note span{color:#2c302ead;font-size:11px;line-height:1.45}.carriage-sticker__panel{z-index:3;-webkit-backdrop-filter:blur(16px)saturate(1.05);width:min(390px,42vw);color:var(--ink);background:#f7f5f0c7;border:1px solid #f7f5f0b3;border-radius:18px;padding:16px;font-family:CJKAllSeto,sans-serif;animation:.35s cubic-bezier(.16,1,.3,1) both stickerNoteIn;position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%);box-shadow:0 18px 42px #2c302e33}.carriage-sticker--hardware .carriage-sticker__panel{animation-name:stickerPanelLeftIn;top:50%;left:auto;right:calc(100% + 18px);transform:translateY(-50%)}.carriage-sticker__panel-header{border-bottom:1px solid #2c302e29;justify-content:space-between;align-items:center;padding:2px 2px 11px;display:flex}.carriage-sticker__panel-header strong{font:400 23px var(--serif)}.carriage-sticker__panel-header button{color:#2c302e99;cursor:pointer;background:0 0;border:0;padding:0 4px;font-size:25px;line-height:1}.carriage-sticker__projects{gap:0;display:grid}.carriage-sticker__projects a,.carriage-sticker__projects>div{border-bottom:1px solid #2c302e1c;justify-content:space-between;align-items:center;gap:14px;padding:12px 2px;display:flex}.carriage-sticker__projects a:last-child,.carriage-sticker__projects>div:last-child{border-bottom:0}.carriage-sticker__projects span{gap:3px;min-width:0;display:grid}.carriage-sticker__projects span strong{white-space:nowrap;text-overflow:ellipsis;font-size:15px;overflow:hidden}.carriage-sticker__projects small{color:#2c302ea6;white-space:nowrap;text-overflow:ellipsis;font-size:14px;line-height:1.4;overflow:hidden}.carriage-sticker__projects b{color:#2c302e8c;flex:none;font-size:17px;font-weight:400}.carriage-sticker__projects a:hover b{color:var(--ink);transform:translate(2px,-2px)}.carriage-avg-dialog{z-index:2;width:min(620px,62vw);min-height:104px;color:var(--ink);text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(15px)saturate(1.04);background:linear-gradient(135deg,#f7f5f0db,#ebe6d9b3);border:1px solid #f7f5f0c7;border-radius:20px;padding:20px 62px 20px 26px;position:absolute;bottom:clamp(20px,3.2vh,42px);left:50%;transform:translate(-50%);box-shadow:0 18px 48px #2c302e33,inset 0 1px #ffffffb8}.carriage-avg-dialog__speaker{background:#eee8da;border:1px solid #2c302e24;border-radius:999px;padding:7px 14px;font-size:14px;position:absolute;top:-15px;left:22px;box-shadow:0 6px 16px #2c302e1f}.carriage-avg-dialog__message{letter-spacing:.035em;min-height:1.6em;font-size:clamp(18px,1.55vw,24px);line-height:1.6;display:block}.carriage-avg-dialog__caret{vertical-align:-.12em;background:currentColor;width:2px;height:1em;margin-left:3px;animation:.72s step-end infinite avgCaretBlink;display:inline-block}.carriage-avg-dialog__next{color:#2c302e94;font-size:13px;animation:1.1s ease-in-out infinite avgNextBounce;position:absolute;bottom:18px;right:24px}@keyframes avgCaretBlink{50%{opacity:0}}@keyframes avgNextBounce{50%{transform:translateY(4px)}}@keyframes stickerNoteIn{0%{opacity:0;transform:translate(-50%,-5px)scale(.96)}to{opacity:1;transform:translate(-50%)scale(1)}}@keyframes stickerPanelLeftIn{0%{opacity:0;transform:translate(8px,-50%)scale(.96)}to{opacity:1;transform:translateY(-50%)scale(1)}}[data-snap-page],.train-hero,.map-section,.section{scroll-snap-align:start;scroll-snap-stop:always}.train-hero,.map-section,.section{min-height:100svh}.section{align-items:center;height:100svh;display:flex;overflow:hidden}.journey-rail{z-index:3;pointer-events:auto;background:0 0;width:30%;height:100svh;position:fixed;inset:0 auto auto 0;overflow:hidden}.journey-rail--ring{display:block}.journey-rail__canvas{pointer-events:none;display:block;inset:0;width:100%!important;height:100%!important;position:absolute!important}.contact-page{position:relative;overflow:hidden}.contact-page>.journey-rail{z-index:0;pointer-events:none;width:100%;height:100%;position:absolute;inset:0}.journey-rail__hotspot{z-index:2;pointer-events:auto;position:absolute;inset:14% 19%}.contact-page>.contact-page__inner{z-index:1;position:relative}.journey-rail__label{fill:var(--ink);font:600 18px var(--serif);letter-spacing:.08em}.journey-rail__label--vertical{fill:var(--muted);font:10px var(--mono);letter-spacing:.15em;writing-mode:vertical-rl}.intro{flex-direction:column;justify-content:space-between;min-height:100vh;padding-top:120px;display:flex;position:relative}.intro-top{border-bottom:1px solid var(--line);justify-content:space-between;padding-bottom:18px;display:flex}.section-kicker{color:var(--muted);font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase}.intro-note{color:var(--muted);font-size:13px}.intro-title{justify-content:space-between;align-items:flex-end;padding:10vh 0 12vh;display:flex;position:relative}h1{z-index:1;letter-spacing:-.1em;max-width:800px;margin:0;font-size:clamp(60px,11vw,160px);font-weight:600;line-height:.92;position:relative}h1 em,h2 em{color:var(--muted);font-family:var(--serif);letter-spacing:-.08em;font-style:normal;font-weight:500}.intro-aside{width:230px;color:var(--muted);z-index:1;margin-bottom:14px;font-size:15px;line-height:1.5;position:relative}.intro-aside a{border-bottom:1px solid var(--ink);color:var(--ink);font:11px var(--mono);margin-top:24px;padding-bottom:5px;display:inline-block}.intro-aside a span{font-size:17px}.intro-orbit{border:1px solid var(--line);width:120px;height:120px;color:var(--muted);font:10px/1.3 var(--mono);text-align:center;border-radius:50%;place-items:center;animation:7s ease-in-out infinite float;display:grid;position:absolute;top:42%;right:16%}.train-hero{isolation:isolate;min-height:100svh;color:var(--ink);cursor:default;background:#75b8dc;position:relative;overflow:hidden}.train-hero__landscape{z-index:-3;object-fit:cover;object-position:center;transition:opacity .65s}.train-hero__landscape.is-leaving{animation:.65s both sceneLeave}.train-hero__landscape.is-entering{z-index:-2;animation:.65s both sceneEnter}.train-hero__wash{z-index:-2;pointer-events:none;background:linear-gradient(90deg,#f7f5f0b8,#f7f5f00d 52%,#f7f5f005);position:absolute;inset:0}.train-hero__greeting{z-index:6;color:var(--ink);font-family:var(--sans);letter-spacing:-.035em;pointer-events:none;font-size:clamp(18px,1.5vw,24px);font-weight:600;line-height:1.2;position:absolute;top:24px;left:5vw}.train-hero__greeting span{color:#2c302eb3;font:inherit;letter-spacing:-.01em;font-size:.82em;font-weight:500}.season-toggle{z-index:4;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:pointer;background:#f7f5f07a;border:1px solid #2c302e33;border-radius:50%;place-items:center;width:48px;height:48px;transition:transform .35s,background .35s,box-shadow .35s;display:grid;position:absolute;top:76px;right:5vw}.season-toggle:hover{transform:rotate(-12deg)scale(1.08);box-shadow:0 8px 22px #2c302e29}.season-toggle svg{width:28px;height:28px;overflow:visible}.season-toggle path:first-child{fill:currentColor;stroke:currentColor;stroke-width:1.3px;stroke-linejoin:round}.season-toggle path:last-child{fill:none;stroke:#f7f5f0;stroke-width:1.7px;stroke-linecap:round}.season-toggle--spring{color:#a6c977}.season-toggle--summer{color:#39724d}.season-toggle--autumn{color:#d39a38}.season-toggle--winter{color:#8d8070}.train-hero__3d{z-index:1;pointer-events:none;position:absolute;inset:0}.train-hero__3d canvas{width:100%;height:100%;display:block}.canvas-hero-overlay{z-index:3;pointer-events:none;padding:clamp(24px,5vw,76px);position:absolute;inset:0}.canvas-hero-overlay__glass{-webkit-backdrop-filter:blur(13px)saturate(1.05);background:linear-gradient(135deg,#f7f5f04a,#f7f5f01c);border:1px solid #f7f5f06b;border-radius:clamp(22px,3vw,44px);flex-direction:column;justify-content:space-between;min-height:100%;padding:clamp(24px,3vw,54px);display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff6b,0 24px 70px #2c302e1a}.canvas-hero-overlay__glass:after{z-index:-1;content:"";opacity:.16;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.22'/%3E%3C/svg%3E");position:absolute;inset:0}.canvas-hero-overlay__topline,.canvas-hero-overlay__meta{color:#2c302ec7;font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.canvas-hero-overlay__brand{color:var(--ink);font:700 clamp(16px,1.5vw,23px) var(--sans);letter-spacing:-.06em;pointer-events:auto;align-items:baseline;gap:9px;display:flex}.canvas-hero-overlay__brand span{font-size:1.05em}.canvas-hero-overlay__brand small{color:#2c302e9e;font:500 12px var(--serif);letter-spacing:0}.canvas-hero-overlay__nav{pointer-events:auto;flex-wrap:wrap;justify-content:flex-end;gap:clamp(12px,2vw,28px);display:flex}.canvas-hero-overlay__nav a{border-bottom:1px solid #0000;padding-bottom:7px;transition:color .25s,border-color .25s,transform .25s}.canvas-hero-overlay__nav a:hover{color:var(--ink);border-color:currentColor;transform:translateY(-2px)}.canvas-hero-overlay__content{width:min(760px,75%);margin:auto 0;padding:8vh 0 9vh}.canvas-hero-overlay__eyebrow{color:#2c302e9e;font:11px var(--mono);letter-spacing:.13em}.canvas-hero-overlay h1{color:var(--ink);letter-spacing:-.1em;text-shadow:0 2px 18px #f7f5f052;margin:22px 0 28px;font-size:clamp(48px,8vw,126px);line-height:.92}.canvas-hero-overlay h1 em{color:#2c302e9e;font-family:var(--serif);font-style:normal;font-weight:500}.canvas-hero-overlay__content p{color:#2c302ebf;max-width:460px;margin:0;font-size:clamp(14px,1.4vw,18px);line-height:1.65}.canvas-hero-overlay__meta{color:#2c302e99;align-items:flex-end}.canvas-hero-overlay__meta span:last-child{color:#2c302ec2}.journey-page--2 .canvas-hero-overlay{padding-left:clamp(18px,3vw,54px);left:30%}.journey-page--2 .canvas-hero-overlay__glass{min-height:calc(100% - 2*clamp(24px,5vw,76px))}.portfolio-canvas{z-index:4;pointer-events:none;padding:clamp(20px,3vw,48px) clamp(20px,4vw,72px) clamp(20px,3vw,48px) clamp(16px,2vw,34px);font-family:CJKAllSeto,sans-serif;position:absolute;inset:0 0 0 30%}.portfolio-canvas__surface{-webkit-backdrop-filter:blur(10px)saturate(1.04);pointer-events:auto;background:linear-gradient(135deg,#f7f5f033,#f7f5f011);border:1px solid #f7f5f080;border-radius:clamp(20px,2.5vw,38px);height:100%;min-height:0;padding:clamp(22px,2.7vw,48px);position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff85,0 26px 70px #2c302e17}.portfolio-canvas__surface:after{z-index:0;content:"";pointer-events:none;background:linear-gradient(105deg,#0000 42%,#ffffff2e 50%,#0000 58%);animation:11s ease-in-out infinite portfolioSheen;position:absolute;inset:-30% -40%;transform:translate(-36%)}.portfolio-canvas__surface>*{z-index:1;position:relative}.portfolio-canvas__header{border-bottom:1px solid #2c302e33;justify-content:space-between;align-items:flex-end;gap:32px;padding-bottom:clamp(18px,2vw,30px);display:flex}.portfolio-canvas__eyebrow{color:#2c302ea3;font:11px var(--mono);letter-spacing:.13em}.portfolio-canvas h2{color:var(--ink);letter-spacing:-.1em;margin:15px 0 0;font-size:clamp(42px,5vw,80px);line-height:.92}.portfolio-canvas__title{font-family:CJKAllSeto,sans-serif;font-weight:600;letter-spacing:-.08em!important}.portfolio-canvas h2 em{color:#2c302e94;font-family:var(--serif);font-style:normal;font-weight:500}.portfolio-canvas__header p{color:#2c302eb3;max-width:260px;margin:0 0 4px;font-size:13px;line-height:1.65}.portfolio-canvas__grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px;display:grid}.portfolio-canvas__categories{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:22px;display:grid}.portfolio-category{background:#f7f5f033;border:1px solid #2c302e21;border-radius:16px;min-width:0;padding:16px 18px;animation:.72s cubic-bezier(.16,1,.3,1) both portfolioCardIn}.portfolio-category--1{grid-column:1/-1}.portfolio-category--2{animation-delay:90ms}.portfolio-category--3{animation-delay:.18s}.portfolio-category--4{animation-delay:.27s}.portfolio-category__heading{border-bottom:1px solid #2c302e24;justify-content:space-between;align-items:baseline;gap:12px;padding-bottom:11px;display:flex}.portfolio-category__heading h3{letter-spacing:-.06em;margin:0;font-size:clamp(17px,1.5vw,24px)}.portfolio-category__heading p{color:#2c302e99;text-align:right;max-width:190px;margin:0;font-size:10px;line-height:1.4}.portfolio-category__items{gap:0;display:grid}.portfolio-category__items a,.portfolio-category__items>div{color:inherit;border-bottom:1px solid #2c302e1a;grid-template-columns:minmax(0,1fr) auto;gap:2px 14px;padding:10px 22px 9px 0;display:grid;position:relative}.portfolio-category__items a:last-child,.portfolio-category__items>div:last-child{border-bottom:0}.portfolio-category__items strong,.portfolio-category__items span{white-space:nowrap;text-overflow:ellipsis;display:block;overflow:hidden}.portfolio-category__items strong{letter-spacing:-.02em;font-size:12px}.portfolio-category__items span{color:#2c302ea6;font-size:10px}.portfolio-category__items b{color:#2c302e80;font-size:16px;font-weight:400;transition:transform .25s,color .25s;position:absolute;top:11px;right:0}.portfolio-category__items a:hover b{color:var(--ink);transform:translate(2px,-2px)}.portfolio-card{min-height:120px;color:var(--ink);opacity:0;animation:.72s cubic-bezier(.16,1,.3,1) forwards portfolioCardIn;animation-delay:calc((var(--portfolio-card-order) - 1) * 70ms);background:#f7f5f042;border:1px solid #2c302e24;border-radius:16px;flex-direction:column;justify-content:flex-end;transition:background .3s,box-shadow .3s,transform .3s;display:flex;position:relative;overflow:hidden;transform:translateY(14px)}.portfolio-card:hover{background:#f7f5f09e;box-shadow:0 16px 30px #2c302e1f}.portfolio-card__image{opacity:.46;mix-blend-mode:multiply;position:absolute;inset:0;overflow:hidden}.portfolio-card__image span{background:linear-gradient(135deg,var(--portfolio-card-color),#f7f5f01f);transition:transform .75s cubic-bezier(.16,1,.3,1),filter .45s;position:absolute;inset:0;transform:scale(1.04)}.portfolio-card__image span:after{content:"";border:1px solid #ffffff59;border-radius:50%;width:80%;height:130%;position:absolute;bottom:-58%;right:-18%;transform:rotate(-18deg)}.portfolio-card:hover .portfolio-card__image span{filter:saturate(1.1)brightness(1.04);transform:scale(1.13)rotate(1.5deg)}.portfolio-card__image--01{--portfolio-card-color:#7d9caf}.portfolio-card__image--02{--portfolio-card-color:#8ca58d}.portfolio-card__image--03{--portfolio-card-color:#b99c72}.portfolio-card__image--04{--portfolio-card-color:#b77e6a}.portfolio-card__image--05{--portfolio-card-color:#6e8293}.portfolio-card__image--06{--portfolio-card-color:#9e947d}.portfolio-card__copy{z-index:1;background:linear-gradient(#f7f5f01f,#f7f5f0e6);padding:17px 18px;position:relative}.about-canvas{grid-template-columns:minmax(190px,30%) minmax(0,1fr);gap:clamp(16px,2vw,34px);display:grid;inset:0}.about-canvas__tabs{pointer-events:auto;align-self:center;gap:12px;padding-left:clamp(4px,2vw,28px);display:grid}.about-canvas__side-title{display:none}.about-canvas__tab{color:#2c302e9e;text-align:left;cursor:pointer;-webkit-backdrop-filter:blur(8px);background:#f7f5f047;border:1px solid #2c302e24;border-radius:18px;grid-template-columns:34px 1fr;align-items:center;width:min(250px,100%);padding:18px 20px;font-size:clamp(18px,1.5vw,23px);transition:transform .35s cubic-bezier(.16,1,.3,1),background .3s,color .3s,box-shadow .3s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff61}.about-canvas__tab:before{background:var(--ink);content:"";opacity:0;border-radius:50%;width:5px;height:5px;transition:opacity .3s,transform .35s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:9px;transform:translateY(-50%)scale(.5)}.about-canvas__tab span{color:#2c302e7a;font-family:var(--mono);font-size:1em;font-weight:inherit;letter-spacing:.04em;line-height:1}.about-canvas__tab:hover{color:var(--ink);background:#f7f5f073;transform:translate(5px)}.about-canvas__tab.is-active{color:var(--ink);background:#f7f5f0a8;padding-left:24px;box-shadow:0 16px 34px #2c302e1a,inset 0 1px #ffffff9e}.about-canvas__tab.is-active:before{opacity:1;transform:translateY(-50%)scale(1)}.about-canvas__surface{min-width:0}.about-canvas__panel{background:#f7f5f047;border:1px solid #2c302e26;border-radius:20px;margin-top:clamp(28px,4vw,62px);padding:clamp(22px,2.6vw,40px);animation:.38s cubic-bezier(.16,1,.3,1) both aboutPanelIn}.about-group__heading{border-bottom:1px solid #2c302e29;align-items:baseline;gap:16px;padding-bottom:18px;display:flex}.about-group__heading span{color:#2c302e8f;font-family:var(--mono);letter-spacing:.04em;font-size:clamp(24px,2.5vw,40px);line-height:1}.about-group__heading h3{letter-spacing:-.08em;margin:0;font-size:clamp(24px,2.5vw,40px)}.about-group__items{gap:0;display:grid}.about-item{border-bottom:1px solid #2c302e1c;gap:9px;padding:24px 0;display:grid}.about-item:last-child{border-bottom:0}.about-item strong{letter-spacing:-.04em;font-size:clamp(19px,1.7vw,26px)}.about-item span{color:#2c302eab;font-size:15px;line-height:1.55}.about-item p{color:#2c302eb3;max-width:680px;margin:2px 0 0;font-size:14px;line-height:1.75}@keyframes aboutPanelIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.portfolio-card h3{letter-spacing:-.06em;white-space:nowrap;text-overflow:ellipsis;margin:0 30px 5px 0;font-size:clamp(16px,1.35vw,22px);overflow:hidden}.portfolio-card p{color:#2c302eb3;white-space:nowrap;text-overflow:ellipsis;max-width:none;margin:0;font-size:11px;line-height:1.4;overflow:hidden}.portfolio-card__arrow{z-index:2;opacity:.55;font-size:24px;transition:transform .35s,opacity .35s;position:absolute;top:16px;right:18px}.portfolio-card:hover .portfolio-card__arrow{opacity:1;transform:translate(3px,-3px)}@keyframes portfolioCardIn{to{opacity:1;transform:translateY(0)}}.portfolio-card--01{--portfolio-card-order:1}.portfolio-card--02{--portfolio-card-order:2}.portfolio-card--03{--portfolio-card-order:3}.portfolio-card--04{--portfolio-card-order:4}.portfolio-card--05{--portfolio-card-order:5}.portfolio-card--06{--portfolio-card-order:6}.train-hero__copy{z-index:2;pointer-events:none;flex-direction:column;justify-content:space-between;min-height:100svh;padding-top:120px;display:flex;position:relative}.train-hero__copy .section-kicker{color:#2c302ea6}.train-hero__title-row{justify-content:space-between;align-items:flex-end;padding:10vh 0 16vh;display:flex}.train-hero h1{text-shadow:0 2px 24px #f7f5f040}.train-hero h1 em{color:#2c302e9e}.train-hero__aside{color:#2c302eb3;pointer-events:auto;width:230px;margin-bottom:14px;font-size:15px;line-height:1.5}.train-hero__aside a{border-bottom:1px solid var(--ink);color:var(--ink);font:11px var(--mono);margin-top:24px;padding-bottom:5px;display:inline-block}.train-hero__aside a span{font-size:17px}.train-hero__hint{z-index:2;color:#2c302eb8;font:10px var(--mono);letter-spacing:.03em;transition:opacity .35s;position:absolute;bottom:28px;right:5vw}.train-hero.is-moving .train-hero__hint{opacity:0}.map-section{background:var(--sand);border-top:1px solid var(--line);min-height:100svh;padding:8vw 0 10vw;position:relative}.map-heading{justify-content:space-between;align-items:end;margin-bottom:30px;display:flex}h2{letter-spacing:-.09em;margin:15px 0 0;font-size:clamp(44px,7vw,92px);font-weight:600;line-height:.98}.map-heading p{width:275px;color:var(--muted);margin:0;font-size:14px;line-height:1.55}.map-stage{height:calc(100svh - 190px);min-height:440px;position:relative}.map-svg{transform-origin:50% 48%;width:100%;height:100%;transition:transform 1s cubic-bezier(.16,1,.3,1),filter 1s;overflow:visible}.map-stage.has-active .map-svg{filter:saturate(1.12);transform:scale(1.08)}.map-stage[data-active=work] .map-svg{transform:translate(7%,8%)scale(1.15)}.map-stage[data-active=learning] .map-svg{transform:translate(1%,10%)scale(1.15)}.map-stage[data-active=action] .map-svg{transform:translate(-7%,4%)scale(1.15)}.map-stage[data-active=life] .map-svg{transform:translate(-8%,-8%)scale(1.15)}.land{fill:#ded8c9;stroke:#c6bdab;stroke-width:1.3px;transition:fill .5s,transform .7s}.map-section.is-visible .land{animation:.9s both landIn}.map-section.is-visible .land-2{animation-delay:80ms}.map-section.is-visible .land-3{animation-delay:.16s}.map-section.is-visible .land-4{animation-delay:.24s}.map-section.is-visible .land-5{animation-delay:.32s}.map-section.is-visible .land-6{animation-delay:.4s}.map-section.is-visible .land-7{animation-delay:.48s}.map-section.is-visible .land-8{animation-delay:.56s}.route{fill:none;stroke:var(--ink);stroke-width:1.5px;stroke-dasharray:6 8;opacity:.55;animation:3s both drawRoute}.map-svg text{fill:var(--ink);font:12px var(--serif);text-anchor:middle;transition:opacity .6s}.map-stage.has-active .map-svg text{opacity:.28}.map-pin{cursor:pointer;border:0;border-radius:50%;place-items:center;width:42px;height:42px;transition:transform .75s cubic-bezier(.16,1,.3,1),box-shadow .35s,filter .35s;animation:3.5s ease-in-out infinite pinPulse;display:grid;position:absolute}.map-pin span{font:14px var(--serif)}.map-pin:hover{transform:scale(1.2);box-shadow:0 0 0 10px #2c302e14}.map-pin.is-active{z-index:2;filter:brightness(1.08);transform:scale(1.5);box-shadow:0 0 0 14px #2c302e1a,0 18px 35px #2c302e33}.pin-work{background:var(--blue);color:#fff;border-radius:4px;top:28%;left:22%}.pin-learning{background:var(--brick);color:#fff;top:20%;left:47%}.pin-action{background:var(--green);color:#fff;border-radius:4px;top:31%;left:68%;transform:rotate(45deg)}.pin-action span{transform:rotate(-45deg)}.pin-action.is-active{transform:rotate(45deg)scale(1.5)}.pin-life{background:var(--warm);color:#fff;width:33px;height:33px;top:64%;left:77%}.map-hint{color:var(--muted);font:10px var(--mono);transition:opacity .2s;position:absolute;bottom:3%;right:3%}.map-hint.is-hidden{opacity:0}.map-card{z-index:3;background:var(--paper);border-top:4px solid var(--card-color);width:min(360px,80vw);padding:28px;animation:.65s cubic-bezier(.16,1,.3,1) both cardIn;position:absolute;bottom:8vw;right:5vw;box-shadow:0 18px 50px #2c302e24}.map-card h3{letter-spacing:-.06em;margin:17px 0 10px;font-size:28px}.map-card p{color:var(--muted);font-size:14px;line-height:1.6}.map-card ul{color:var(--muted);margin:18px 0 20px;padding-left:18px;font-size:13px;line-height:1.8}.map-card a{border-bottom:1px solid var(--ink);font:11px var(--mono);padding-bottom:4px}.map-close{cursor:pointer;background:0 0;border:0;font-size:25px;position:absolute;top:12px;right:15px}.pill{color:var(--blue);font:10px var(--mono);letter-spacing:.05em;background:#5b6c7a1f;padding:6px 10px;display:inline-block}.pill-warm{color:#ad784b;background:#d49a6a29}.pill-blue{color:var(--blue);background:#5b6c7a21}.pill-brick{color:var(--brick);background:#a66e5b21}.section{border-top:1px solid var(--line);padding:12vw 0}.section-heading{grid-template-columns:1fr 1.3fr;align-items:start;gap:30px;margin-bottom:50px;display:grid}.section-heading h2{margin-top:25px}.section-heading p{max-width:370px;color:var(--muted);margin:48px 0 0;line-height:1.6}.bento-grid{grid-template-columns:1.25fr .85fr .85fr;grid-auto-rows:210px;gap:12px;display:grid}.bento-card{background:#fffdf9;border:1px solid #d4cdbcb3;padding:25px;overflow:hidden}.bento-card p,.bento-card ul{color:var(--muted);font-size:13px;line-height:1.7}.bento-tags{background:#e5e0d5;grid-row:span 2}.tag-stack{flex-direction:column;gap:10px;margin:35px 0 25px;display:flex}.tag{color:#fff;width:max-content;max-width:100%;padding:8px 12px;font-size:12px;display:inline-block}.tag-blue{background:var(--blue)}.tag-green{background:var(--green)}.tag-warm{background:var(--warm)}.tag-brick{background:var(--brick)}.bento-book{grid-row:span 2;position:relative}.bento-book h3{z-index:1;font:22px/1.25 var(--serif);margin:25px 0;position:relative}.bento-book img{object-fit:cover;width:150px;height:195px;position:absolute;bottom:-35px;right:-20px;transform:rotate(6deg);box-shadow:0 10px 20px #0000001f}.bento-book-second img{transform:rotate(-6deg)}.bento-believe{background:#5b6c7a24}.bento-like{background:#d49a6a29}.bento-tendency{background:#ebe6d9;grid-column:span 2}.bento-card ul{margin:20px 0 0;padding-left:18px}.section-outputs{background:#fffdf9}.project-list{border-top:1px solid var(--line)}.project-row{border-bottom:1px solid var(--line);grid-template-columns:45px 230px 1fr 40px;align-items:center;gap:22px;padding:22px 0;transition:padding .35s,background .35s;display:grid}.project-row:hover{background:var(--sand);padding-left:18px;padding-right:18px}.project-index,.project-type{color:var(--muted);font:10px var(--mono);text-transform:uppercase}.project-image{background:var(--sand);height:130px;position:relative;overflow:hidden}.project-image img{object-fit:cover;transition:transform .5s}.project-row:hover .project-image img{transform:scale(1.06)}.project-copy h3{letter-spacing:-.07em;margin:10px 0 0;font-size:clamp(24px,4vw,50px)}.project-arrow{font-size:26px}.section-skills{background:var(--ink);color:var(--paper)}.skills-layout{grid-template-columns:1fr 1fr;gap:12vw;display:grid}.section-skills .section-kicker{color:#aaa99f}.section-skills h2{font-size:clamp(42px,6vw,82px)}.section-skills h2 em{color:#aaa99f}.skills-copy{padding-top:50px}.skills-copy p{color:#bbb9ae;max-width:430px;font-size:17px;line-height:1.65}.skill-lines{border-top:1px solid #f7f5f038;margin-top:50px}.skill-lines div{border-bottom:1px solid #f7f5f038;gap:20px;padding:17px 0;font-size:15px;display:flex}.skill-lines span{color:#aaa99f;font:11px var(--mono)}.section-contact{background:var(--sand)}.section-contact h2{margin:35px 0 55px;font-size:clamp(52px,10vw,140px)}.contact-link{border-bottom:1px solid var(--ink);font:12px var(--mono);padding-bottom:7px}.footer{color:var(--muted);font:10px var(--mono);text-transform:uppercase;justify-content:space-between;padding:22px 0;display:flex}@keyframes drawRoute{0%{stroke-dashoffset:700px}to{stroke-dashoffset:0}}@keyframes landIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pinPulse{0%,to{box-shadow:0 0 #2c302e29}50%{box-shadow:0 0 0 8px #2c302e00}}@keyframes cardIn{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes float{0%,to{transform:translate(0)rotate(-5deg)}50%{transform:translate(-12px,-16px)rotate(5deg)}}@keyframes sceneEnter{0%{opacity:0}to{opacity:1}}@keyframes sceneLeave{0%{opacity:1}to{opacity:0}}@keyframes portfolioSheen{0%,65%{opacity:0;transform:translate(-36%)}76%,90%{opacity:1;transform:translate(36%)}to{opacity:0;transform:translate(52%)}}@media (max-width:700px) and (orientation:portrait){.site-header{padding:17px 0}.nav-links{gap:12px;font-size:9px}.brand span{display:none}.intro{min-height:90vh}.intro-top{display:block}.intro-note{margin-top:12px;display:block}.intro-title{padding:22vh 0 14vh;display:block}.intro-aside{margin-top:35px}.intro-orbit{width:76px;height:76px;font-size:8px;top:45%;right:5%}.train-hero__copy{padding-top:90px}.train-hero__title-row{padding:23vh 0 21vh;display:block}.train-hero h1{font-size:clamp(54px,16vw,88px)}.train-hero__aside{width:min(240px,75vw);margin-top:34px}.season-toggle{width:42px;height:42px;top:58px;right:5vw}.season-toggle svg{width:24px;height:24px}.train-hero__hint{font-size:9px;bottom:18px;right:5vw}.map-heading,.section-heading,.skills-layout{display:block}.map-heading p,.section-heading p{width:auto;margin-top:25px}.map-stage{height:70vw;min-height:280px}.map-card{bottom:6vw;right:5vw}.map-svg text{font-size:17px}.map-pin{transform:scale(.82)}.pin-action{transform:rotate(45deg)scale(.82)}.bento-grid{display:block}.bento-card{min-height:230px;margin-bottom:12px}.bento-tags,.bento-book{min-height:330px}.project-row{grid-template-columns:28px 1fr 30px;gap:12px}.project-image{grid-area:1/2;height:170px}.project-copy{grid-area:2/2}.project-index{grid-area:1/1/span 2;align-self:start}.project-arrow{grid-area:1/3/span 2;align-self:start}.skills-copy{padding-top:35px}.footer{line-height:2;display:block}.carriage-sticker--web{top:28%;left:28%}.carriage-sticker--awards{top:calc(37% - 36px);left:calc(73% - 240px)}.carriage-sticker--hardware{bottom:11%;right:12%}.carriage-sticker__button{width:clamp(76px,19vw,112px)}.carriage-sticker__panel{width:min(330px,80vw);left:45vw}.carriage-sticker--hardware .carriage-sticker__panel{left:auto;right:calc(100% + 10px)}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.section-about .section-heading{grid-template-columns:.8fr 1.2fr}.section-about .section-heading h2{font-size:clamp(48px,7vw,100px)}.section-about .bento-grid{grid-template-rows:repeat(4,190px);grid-template-columns:repeat(12,1fr);grid-auto-rows:unset}.section-about .bento-card{min-height:0;margin:0}.section-about .bento-tags{grid-area:1/1/3/6}.section-about .bento-book{grid-area:1/6/3/9}.section-about .bento-believe{grid-area:1/9/auto/13}.section-about .bento-like{grid-area:2/9/auto/13}.section-about .bento-book-second{grid-area:3/1/5/6}.section-about .bento-tendency{grid-area:3/6/5/13}.section-about .bento-book img{width:130px;height:170px;bottom:-20px;right:-12px}.section-about .bento-book h3{max-width:150px;font-size:20px}@media (max-width:700px) and (orientation:portrait){.post-hero-content{width:100%;margin-left:0}.post-hero-content__inner{width:100%;transform:none}.journey-rail{display:none}.portfolio-canvas{padding:16px;left:0}.portfolio-canvas__header{display:block}.portfolio-canvas__header p{margin-top:18px}.portfolio-canvas__scroll{height:calc(100% - 205px)}.portfolio-canvas__grid,.portfolio-canvas__categories{grid-template-columns:1fr}.portfolio-category__heading{display:block}.portfolio-category__heading p{text-align:left;max-width:none;margin-top:5px}.about-canvas{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;gap:10px;padding:14px;inset:0}.about-canvas__tabs{grid-template-columns:repeat(2,minmax(0,1fr));align-self:auto;gap:8px;padding:0}.about-canvas__tab{border-radius:14px;grid-template-columns:28px 1fr;width:100%;padding:12px 13px;font-size:16px}.about-canvas__tab.is-active{padding-left:18px}.about-canvas__surface{height:100%;padding:22px}.about-canvas__panel{margin-top:22px;padding:20px}.about-item{padding:19px 0}.contact-icon{border-radius:18px;width:clamp(112px,28vw,170px);min-height:106px}.contact-icon svg{width:34px;height:34px}.contact-icon img{width:44px;height:44px}.contact-icon--xiaohongshu img{width:56px;height:56px}.section-about .section-heading,.section-about .bento-grid{display:block}.section-about .bento-card{min-height:230px;margin-bottom:12px}.section-about .bento-tags,.section-about .bento-book{min-height:330px}.section-about .bento-book-second{min-height:300px}.section-about .bento-tendency{min-height:230px}.map-stage.has-active .map-svg{transform:scale(1.03)}.map-pin.is-active{transform:scale(1.25)}.pin-action.is-active{transform:rotate(45deg)scale(1.25)}}.landscape-prompt{display:none}@media (max-width:700px) and (orientation:portrait){.landscape-prompt{z-index:100;color:var(--ink);text-align:center;background:#e5e0d5;flex-direction:column;justify-content:center;align-items:center;gap:26px;padding:24px;display:flex;position:fixed;inset:0}.landscape-prompt__phone{border:5px solid;border-radius:12px;width:92px;height:52px;display:block;transform:rotate(-18deg);box-shadow:inset 0 0 0 3px #e5e0d5,inset 0 0 0 5px}.landscape-prompt p{margin:0;font-family:CJKAllSeto,sans-serif;font-size:clamp(26px,7vw,38px);line-height:1.45}}@media (orientation:landscape) and (max-height:520px){.carriage-sticker--web,.carriage-sticker--awards,.carriage-sticker--hardware{transform:none}.carriage-avg-dialog{width:min(430px,58vw);min-height:0;max-height:36svh;padding:14px 42px 12px 18px;bottom:10px;left:38%;overflow-y:auto}.carriage-avg-dialog__message{font-size:15px;line-height:1.35}.carriage-avg-dialog__speaker{box-shadow:none;margin-bottom:3px;padding:2px 8px;font-size:12px;display:inline-block;position:static}.carriage-avg-dialog__next{bottom:10px;right:14px}.carriage-sticker--awards{top:34%;left:59%}.carriage-sticker__panel,.carriage-sticker--hardware .carriage-sticker__panel{z-index:10;width:min(420px,100vw - 24px);max-height:calc(100svh - 24px);animation:none;position:fixed;inset:50% auto auto 50%;overflow-y:auto;transform:translate(-50%,-50%)}.contact-page__links{gap:6px;right:clamp(12px,2vw,24px)}.contact-icon{border-radius:15px;width:clamp(64px,8vh,82px);min-height:clamp(64px,8vh,82px)}.contact-icon svg{width:30px;height:30px}.contact-icon img{width:38px;height:38px}.contact-icon--xiaohongshu img{width:48px;height:48px}.contact-page h2{font-size:clamp(52px,8vw,90px)}.about-canvas__tabs{gap:6px}.about-canvas__side-title{margin:0 0 8px;font-size:clamp(26px,7svh,38px);line-height:1;display:block}.about-canvas__tab{padding:10px 12px;font-size:16px}.about-canvas__tab.is-active{padding-left:16px}.about-canvas__surface{overscroll-behavior:contain;overflow-y:auto}.about-canvas__surface:after,.about-canvas .portfolio-canvas__header{display:none}.about-canvas__panel{margin-top:0;padding:12px 16px}.about-group__heading{gap:8px;padding-bottom:8px}.about-group__heading h3,.about-group__heading span{font-size:clamp(20px,5svh,30px)}.about-item{gap:5px;padding:8px 0}.about-item strong{font-size:17px}.about-item span{font-size:13px;line-height:1.35}.about-item p{font-size:13px;line-height:1.45}.portfolio-canvas{padding:12px}.portfolio-canvas__surface{padding:16px}.portfolio-canvas__scroll{height:calc(100% - 104px)}}@media (max-height:340px) and (orientation:landscape){.about-canvas__panel{padding:8px 12px}.about-item{padding:5px 0}.about-item p{font-size:12px;line-height:1.3}}
