.intro{--intro-w: min(440px, 86vw);--intro-h: clamp(118px, 18svh, 142px);position:fixed;inset:0;height:100vh;height:100svh;z-index:400;overflow:hidden}.intro-panel{position:absolute;top:0;bottom:0;width:50.05%;background:var(--evening-blue);will-change:transform}.intro-panel--l{left:0}.intro-panel--r{right:0}.intro-half{position:absolute;top:calc(50% - var(--intro-h) / 2);height:var(--intro-h);width:calc(var(--intro-w) / 2);background:var(--chalk-white);border:1px solid var(--blue);box-shadow:0 3px 0 var(--line-strong),0 18px 44px #001a3466;opacity:0;overflow:hidden}.intro.is-open .intro-half{opacity:1}.intro-half--l{right:0;border-right:0;border-radius:10px 0 0 10px}.intro-half--r{left:0;border-left:0;border-radius:0 10px 10px 0}.intro-window{position:absolute;left:calc(50% - var(--intro-w) / 2);top:calc(50% - var(--intro-h) / 2);width:var(--intro-w);height:var(--intro-h);background:var(--chalk-white);border:1px solid var(--blue);border-radius:10px;box-shadow:0 3px 0 var(--line-strong),0 18px 44px #001a3466;overflow:hidden;will-change:transform,opacity}.intro-bar{display:flex;align-items:center;gap:6px;height:34px;padding:0 14px;background:var(--panel);border-bottom:1px solid var(--line)}.intro-bar i{width:9px;height:9px;border-radius:50%;background:var(--line)}.intro-bar i:first-child{background:var(--sunset)}.intro-line{display:flex;align-items:center;justify-content:center;gap:.55rem;height:calc(var(--intro-h) - 34px);padding:0 1.2rem;font-family:var(--font-mono);font-size:clamp(.88rem,2.6vw,1.02rem);color:var(--blue)}.intro-prompt{font-weight:700}.intro-type{width:0ch;white-space:nowrap;overflow:hidden;border-right:2px solid var(--blue);padding-right:1px;animation:intro-typing .56s steps(20,end) .18s forwards,intro-blink .48s steps(1) .74s 4}@keyframes intro-typing{0%{width:0ch}to{width:20ch}}@keyframes intro-blink{50%{border-color:transparent}}.intro-bulb{display:inline-flex;flex:none;width:1.3em;height:1.3em;opacity:0;color:var(--line-strong);transition:opacity .24s var(--ease-out),color .32s var(--ease-out)}.intro-bulb.is-visible{opacity:1}.intro-bulb.is-on{color:var(--blue)}.intro-bulb svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.bulb-glass{fill:#d68b1a00;transition:fill .32s var(--ease-out),filter .32s var(--ease-out)}.intro-bulb.is-on .bulb-glass{fill:#f6bc4d;filter:drop-shadow(0 0 3px rgba(246,188,77,.95)) drop-shadow(0 0 10px rgba(214,139,26,.6))}.intro-avatar-stage{position:absolute;inset:0;pointer-events:none}@media(prefers-reduced-motion:reduce){.intro-type,.intro--reduced .intro-type{width:auto;animation:none}}.intro--reduced .intro-type{width:auto;animation:none}:root{color-scheme:light;--chalk-white: rgb(235, 237, 235);--beacon-gray: rgb(205, 215, 222);--evening-blue: rgb(0, 78, 147);--sunset: #d68b1a;--sunset-soft: rgba(214, 139, 26, .16);--bg: var(--chalk-white);--band: #dde3e6;--panel: #f6f8f7;--line: #b7c3cc;--line-strong: #9cadb9;--ink: #1b2530;--ink-soft: #33414e;--muted: #46545f;--blue: var(--evening-blue);--blue-deep: #003a6e;--blue-soft: rgba(0, 78, 147, .09);--on-blue: #ffffff;--font-display: "Space Grotesk", "Inter", -apple-system, sans-serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--step--1: clamp(.78rem, .76rem + .1vw, .84rem);--step-0: clamp(1rem, .97rem + .16vw, 1.08rem);--step-1: clamp(1.15rem, 1.08rem + .35vw, 1.35rem);--step-2: clamp(1.5rem, 1.32rem + .9vw, 2.05rem);--step-3: clamp(2rem, 1.55rem + 2.3vw, 3.35rem);--step-4: clamp(2.8rem, 1.85rem + 4.9vw, 5.6rem);--container: 1200px;--gutter: clamp(1.1rem, 4vw, 2rem);--section-pad: clamp(4.5rem, 10vw, 8rem);--head-h: 72px;--radius: 14px;--radius-lg: 22px;--shadow-sm: 0 1px 2px rgba(27, 37, 48, .07), 0 3px 10px rgba(27, 37, 48, .06);--shadow-lg: 0 24px 60px rgba(27, 37, 48, .16);--ease-out: cubic-bezier(.22, 1, .36, 1);--dur: .22s}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{background:var(--bg);scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:var(--step-0);line-height:1.65;overflow-x:hidden;-webkit-font-smoothing:antialiased}img,svg,picture,canvas{display:block;max-width:100%}img{height:auto}a{color:inherit;text-decoration:none}ul,ol,dl,dd{list-style:none;padding:0}button{font:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:600;line-height:1.06;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}p{text-wrap:pretty}:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:4px}::selection{background:var(--evening-blue);color:var(--on-blue)}.ico{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;width:1.05em;height:1.05em}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}.skip-link{position:fixed;top:.6rem;left:.6rem;z-index:300;padding:.7rem 1.1rem;background:var(--blue);color:var(--on-blue);font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;border-radius:8px;transform:translateY(-200%);transition:transform var(--dur) var(--ease-out)}.skip-link:focus-visible{transform:none}.kicker{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--blue)}.kicker-dot{width:7px;height:7px;border-radius:50%;background:var(--blue);flex:none;animation:pulse 2.6s var(--ease-out) infinite}@keyframes pulse{0%,to{box-shadow:0 0 #004e9366}55%{box-shadow:0 0 0 9px #004e9300}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.85rem 1.5rem;border-radius:999px;border:0;font-family:var(--font-mono);font-size:var(--step--1);font-weight:500;letter-spacing:.04em;cursor:pointer;transition:transform var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),color var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.btn-primary{background:var(--blue);color:var(--on-blue)}.btn-primary:hover{background:var(--blue-deep);box-shadow:0 10px 28px #004e934d;transform:translateY(-2px)}.btn-ghost{border:1px solid var(--line-strong);color:var(--ink-soft);background:transparent}.btn-ghost:hover{border-color:var(--blue);color:var(--blue);transform:translateY(-2px)}.card{background:var(--beacon-gray);border:1px solid var(--line);border-radius:var(--radius);padding:clamp(1.4rem,3vw,2rem);box-shadow:var(--shadow-sm)}.section{padding:var(--section-pad) 0;scroll-margin-top:var(--head-h)}.section--band{background:var(--band);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.section-head{max-width:var(--container);margin:0 auto clamp(2.5rem,6vw,4rem);padding:0 var(--gutter)}.section-head h2{font-size:var(--step-3);margin-top:1.1rem;max-width:24ch}.section-lede{margin-top:1.2rem;max-width:62ch;color:var(--muted);font-size:var(--step-1);line-height:1.6}.tag-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.25rem}.tag-row li{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);border:1px solid rgba(0,78,147,.34);background:#f6f8f78c;border-radius:999px;padding:.34rem .7rem}.site-head{position:sticky;top:0;z-index:100;background:transparent;border-bottom:1px solid transparent;transition:background-color .45s var(--ease-out),border-color .45s var(--ease-out),box-shadow .45s var(--ease-out)}.site-head.is-scrolled{background:#004e93f0;backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);border-bottom-color:#ffffff29;box-shadow:0 12px 34px #003a6e47}.nav{display:flex;align-items:center;gap:1.2rem;max-width:var(--container);margin:0 auto;min-height:var(--head-h);padding:0 var(--gutter)}.brand{position:relative;display:inline-flex;align-items:center;min-width:150px;min-height:44px;font-family:var(--font-mono);font-size:.95rem;font-weight:500;color:var(--ink);margin-right:auto}.brand-word{display:inline-flex;align-items:center;gap:.45rem;transition:opacity .35s var(--ease-out),transform .45s var(--ease-out),letter-spacing .45s var(--ease-out)}.brand-prompt{color:var(--blue);font-weight:700}.brand-cursor{width:.55em;height:1.05em;background:var(--blue);animation:blink 1.15s steps(1) infinite}@keyframes blink{50%{opacity:0}}.brand-logo{position:absolute;left:0;top:50%;display:flex;opacity:0;transform:translateY(-50%) scale(.72);transform-origin:left center;transition:opacity .4s var(--ease-out) .06s,transform .5s var(--ease-out) .06s}.brand-logo img{width:auto;height:34px;filter:invert(1)}.brand-jb{font-family:var(--font-display);font-weight:700;font-size:1.2rem;letter-spacing:-.02em;color:#fff}.site-head.is-scrolled .brand-word{opacity:0;transform:translate(8px);letter-spacing:-.05em}.site-head.is-scrolled .brand-logo{opacity:1;transform:translateY(-50%) scale(1)}.nav-links{display:flex;gap:.2rem}.nav-links a{position:relative;z-index:0;display:inline-flex;align-items:center;min-height:44px;padding:.55rem .85rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);border-radius:8px;transition:color var(--dur) var(--ease-out)}.nav-label{display:inline-block;transition:transform 90ms var(--ease-out)}.nav-links a:before{content:"";position:absolute;inset:4px 1px;z-index:-1;border-radius:7px;background:var(--chalk-white);border:1px solid rgba(0,78,147,.42);box-shadow:0 3px 0 var(--line-strong),0 6px 12px #1b253024,inset 0 1px #ffffffd9;opacity:0;transform:translateY(4px);transition:opacity .15s var(--ease-out),transform .23s var(--ease-out),box-shadow .11s var(--ease-out)}.nav-links a:after{content:"";position:absolute;left:50%;bottom:3px;width:5px;height:5px;border-radius:1.5px;background:var(--sunset);transform:translate(-50%) scale(0);transition:transform .2s var(--ease-out)}.nav-links a.is-current{color:var(--ink)}.nav-links a.is-current:after{transform:translate(-50%) scale(1)}@media(hover:hover){.nav-links a:hover{color:var(--blue)}.nav-links a:hover:before{opacity:1;transform:translateY(-1px)}}.nav-links a:focus-visible{color:var(--blue)}.nav-links a:focus-visible:before{opacity:1;transform:translateY(-1px)}.nav-links a:active{color:var(--blue)}.nav-links a:active:before{opacity:1;transform:translateY(2px);box-shadow:0 1px 0 var(--line-strong),0 2px 4px #1b25301f,inset 0 1px #ffffff80;transition-duration:90ms}.nav-links a:active .nav-label{transform:translateY(1.5px)}.nav-resume{min-height:42px;padding:.55rem 1.1rem}.site-head.is-scrolled .nav-links a{color:#ffffffd1}.site-head.is-scrolled .nav-links a.is-current{color:#fff}.site-head.is-scrolled .nav-links a:before{border-color:#002c5499;box-shadow:0 3px 0 var(--blue-deep),0 6px 14px #001a3466,inset 0 1px #fff}@media(hover:hover){.site-head.is-scrolled .nav-links a:hover{color:var(--blue)}}.site-head.is-scrolled .nav-links a:focus-visible,.site-head.is-scrolled .nav-links a:active{color:var(--blue)}.site-head.is-scrolled .nav-links a:active:before{box-shadow:0 1px 0 var(--blue-deep),0 2px 5px #001a344d,inset 0 1px #fff9}.site-head.is-scrolled .nav-resume{border-color:#ffffff8c;color:#fff}.site-head.is-scrolled .nav-resume:hover{border-color:#fff;background:#ffffff24;color:#fff}.site-head.is-scrolled :focus-visible{outline-color:#fff}.hero{position:relative;min-height:calc(100svh - var(--head-h));display:grid;align-items:center;overflow:clip}.hero-inner{position:relative;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:clamp(2rem,6vw,5rem);align-items:center;max-width:var(--container);margin:0 auto;padding:clamp(3rem,8vh,5rem) var(--gutter);width:100%}.hero-title{font-weight:700;margin:1.4rem 0 1.6rem;text-transform:uppercase;letter-spacing:-.025em;line-height:1;color:var(--ink)}.hero-title .line{display:block;overflow:hidden;font-size:clamp(1.9rem,1.2rem + 3vw,3.5rem);padding-bottom:.06em}.hero-title .line-out{font-size:clamp(3.6rem,1.8rem + 8.2vw,8.4rem);letter-spacing:-.03em;margin-top:.02em}.hero-title .w{display:inline-block;will-change:transform;white-space:nowrap}.hero-intro{color:var(--ink-soft);font-size:var(--step-1);line-height:1.65;max-width:56ch;margin-bottom:2.1rem}.hero-cta{display:flex;flex-wrap:wrap;gap:.8rem}.hero-portrait{justify-self:end;width:min(100%,360px)}.portrait-stack{position:relative}.portrait-backframe{position:absolute;inset:0;display:block;transform:translate(-16px,16px);border:2px solid var(--evening-blue);border-radius:var(--radius-lg);pointer-events:none}.portrait-frame{position:relative;border:1px solid var(--line);border-radius:var(--radius-lg);overflow:hidden;background:var(--panel);box-shadow:var(--shadow-lg)}.portrait-frame img{width:100%;aspect-ratio:3 / 4;object-fit:cover;object-position:center 20%;transition:transform .65s var(--ease-out)}@media(hover:hover){.portrait-frame:hover img{transform:scale(1.02)}}.marquee{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:1.1rem 0;overflow:hidden;background:var(--beacon-gray)}.marquee-track{display:flex;gap:2.8rem;width:max-content;animation:marquee 36s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-track span{font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);white-space:nowrap}.marquee-track span:after{content:"·";color:var(--blue);margin-left:2.8rem}@keyframes marquee{to{transform:translate(-50%)}}.journey{padding:0;position:relative}.journey-viewport{position:sticky;top:0;height:100vh;overflow:hidden;display:flex;align-items:center}.journey-track{display:flex;align-items:center;gap:clamp(3rem,6vw,7rem);padding:0 clamp(2rem,6vw,6rem);width:max-content;will-change:transform}.journey-intro{width:clamp(420px,40vw,580px);flex:none}.journey-intro h2{font-size:var(--step-3);margin-top:1.1rem}.journey-toc{margin-top:2.2rem;display:grid;gap:.35rem}.journey-toc button{display:inline-flex;align-items:center;gap:.8rem;min-height:44px;padding:.4rem .6rem;margin-left:-.6rem;border:0;background:transparent;border-radius:10px;font-family:var(--font-display);font-size:var(--step-1);font-weight:600;color:var(--ink-soft);cursor:pointer;transition:color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.journey-toc button span{font-family:var(--font-mono);font-size:.75rem;font-weight:500;color:var(--sunset);letter-spacing:.1em}.journey-toc button:hover{color:var(--blue);transform:translate(4px)}.journey-hint{display:inline-flex;align-items:center;gap:.55rem;margin-top:2.4rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.journey-hint .ico{color:var(--sunset);animation:nudge 2.2s var(--ease-out) infinite}@keyframes nudge{0%,to{transform:translate(0)}50%{transform:translate(6px)}}.chapter{flex:none;width:min(78vw,1180px);position:relative;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:clamp(2rem,4vw,4rem);align-items:center}.chapter:before{content:"";position:absolute;inset:10% -3% 10% 32%;border-radius:var(--radius-lg);pointer-events:none}.chapter--warm:before{background:linear-gradient(135deg,var(--sunset-soft),transparent 70%)}.chapter--structured:before{background:var(--beacon-gray);opacity:.55}.chapter--energetic:before{background:linear-gradient(115deg,transparent 30%,var(--sunset-soft))}.chapter--service:before{background:var(--band);opacity:.75}.chapter>*{position:relative;z-index:1}.chapter-index{font-family:var(--font-display);font-size:clamp(3.6rem,6.5vw,6.4rem);font-weight:700;line-height:1;color:transparent;-webkit-text-stroke:1.5px var(--line-strong);transition:-webkit-text-stroke-color .5s var(--ease-out),color .5s var(--ease-out)}.chapter.is-active .chapter-index{-webkit-text-stroke-color:var(--sunset)}.chapter-category{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-top:1rem}.chapter-name{font-size:var(--step-3);margin-top:.4rem}.chapter-positioning{font-family:var(--font-display);font-weight:600;font-size:var(--step-1);color:var(--blue);margin-top:.9rem}.chapter-desc{color:var(--ink-soft);margin-top:.8rem;max-width:46ch}.chapter-tags{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1.25rem}.chapter-tags li{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);border:1px solid rgba(0,78,147,.34);background:#f6f8f78c;border-radius:999px;padding:.34rem .7rem}.chapter .chapter-tags li{opacity:0;transform:translateY(10px);transition:opacity .45s var(--ease-out),transform .45s var(--ease-out)}.chapter.is-active .chapter-tags li{opacity:1;transform:none}.chapter.is-active .chapter-tags li:nth-child(1){transition-delay:.1s}.chapter.is-active .chapter-tags li:nth-child(2){transition-delay:.16s}.chapter.is-active .chapter-tags li:nth-child(3){transition-delay:.22s}.chapter.is-active .chapter-tags li:nth-child(4){transition-delay:.28s}.chapter.is-active .chapter-tags li:nth-child(5){transition-delay:.34s}.chapter.is-active .chapter-tags li:nth-child(6){transition-delay:.4s}.chapter-actions{display:flex;align-items:center;flex-wrap:wrap;gap:.7rem;margin-top:1.7rem}.gh-link{display:inline-flex;align-items:center;gap:.55rem;min-height:46px;padding:.6rem 1.15rem;border:1px solid var(--blue);border-radius:999px;cursor:pointer;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.05em;color:var(--blue);transition:color var(--dur) var(--ease-out),background-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out)}.gh-ico{width:19px;height:19px;fill:currentColor;transition:transform var(--dur) var(--ease-out)}.gh-link:hover{background:var(--blue);color:var(--on-blue);transform:translateY(-2px);box-shadow:0 8px 22px #004e9347}.gh-link:hover .gh-ico{transform:rotate(6deg) scale(1.08)}.live-link{display:inline-flex;align-items:center;gap:.45rem;min-height:46px;padding:.6rem .9rem;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.05em;color:var(--muted);border-radius:999px;transition:color var(--dur) var(--ease-out)}.live-link:hover{color:var(--blue)}.chapter-stage{min-width:0}.stage{position:relative;aspect-ratio:16 / 11}.stage-browser{position:absolute;inset:0 9% 12% 0;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-lg)}.stage-chrome{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--panel);border-bottom:1px solid var(--line)}.stage-chrome i{width:10px;height:10px;border-radius:50%;background:var(--line)}.stage-chrome i:first-child{background:var(--sunset)}.stage-chrome span{font-family:var(--font-mono);font-size:.68rem;color:var(--muted);margin-left:8px;letter-spacing:.04em}.stage-browser img{width:100%;height:calc(100% - 37px);object-fit:cover;object-position:top center}.stage-phone{position:absolute;right:0;bottom:0;width:24%;border-radius:20px;overflow:hidden;border:3px solid var(--ink);background:#fff;box-shadow:var(--shadow-lg)}.stage-phone img{width:100%;aspect-ratio:390 / 760;object-fit:cover;object-position:top center}.stage-accent{position:absolute;display:block;z-index:-1}.stage--pup .stage-accent{top:-16px;right:4%;width:92px;height:92px;border-radius:50%;border:3px solid var(--sunset);opacity:.65}.stage--om .stage-accent{left:-18px;top:12%;width:3px;height:62%;background:var(--blue)}.stage--pk .stage-accent{right:-4px;top:-12px;width:130px;height:4px;background:var(--sunset);transform:rotate(-16deg)}.stage--ef .stage-browser{inset:0 0 24%}.stage--ef .stage-accent{left:-14px;bottom:32%;width:58px;height:4px;background:var(--sunset)}.stage-brands{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1.2rem;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow-sm)}.stage-brands img{height:24px;width:auto;opacity:.72;filter:grayscale(1);transition:opacity var(--dur) var(--ease-out),filter var(--dur) var(--ease-out)}.stage-brands li:hover img{opacity:1;filter:none}.journey-progress{position:absolute;left:0;right:0;bottom:clamp(1rem,3vh,2rem);display:flex;align-items:center;gap:1.1rem;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.journey-count{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;color:var(--muted)}.journey-bar{flex:1;height:2px;border-radius:2px;background:var(--line);overflow:hidden}.journey-bar-fill{display:block;height:100%;width:100%;background:var(--sunset);transform-origin:left center}.journey-dots{display:flex;gap:.25rem}.journey-dots button{min-width:44px;min-height:44px;border:1px solid transparent;border-radius:10px;background:transparent;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--muted);cursor:pointer;transition:color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.journey-dots button:hover{color:var(--blue)}.journey-dots button.is-active{color:var(--sunset);border-color:var(--sunset)}.journey-vertical .vchapters{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:grid;gap:clamp(3.5rem,9vw,6rem)}.vchapter{display:grid;gap:1.1rem}.vchapter-head{display:flex;align-items:baseline;gap:1.1rem}.vchapter .chapter-index{font-size:clamp(2.6rem,9vw,4rem);-webkit-text-stroke-color:var(--sunset)}.vchapter .chapter-category{margin-top:0}.vchapter .chapter-name{font-size:var(--step-2)}.vchapter .chapter-positioning{margin-top:.2rem}.vchapter .chapter-desc{margin-top:0;max-width:62ch}.vchapter .chapter-stage{margin:.6rem 0}.edu-grid{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.edu-card{position:relative;overflow:hidden;transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.edu-card:after{content:"";position:absolute;right:-20px;top:-20px;width:150px;height:150px;background-image:radial-gradient(rgba(0,78,147,.22) 1.5px,transparent 1.5px);background-size:14px 14px;border-radius:50%;pointer-events:none}.edu-card:hover,.lead-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:#004e9366}.edu-level{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;flex-wrap:wrap;gap:.6rem}.edu-status{background:var(--blue);color:var(--on-blue);border-radius:999px;padding:.22rem .65rem;letter-spacing:.1em}.edu-title{font-size:var(--step-2);margin-top:.9rem}.edu-meta{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--blue);margin-top:.55rem}.edu-desc{color:var(--ink-soft);margin-top:1rem;max-width:56ch}.lead-grid{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.2rem}.lead-card{border-left:3px solid var(--blue);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.lead-card--wide{grid-column:1 / -1}.lead-title{font-size:var(--step-1);letter-spacing:-.01em}.lead-meta{font-family:var(--font-mono);font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-top:.45rem}.lead-desc{color:var(--ink-soft);margin-top:.8rem;max-width:72ch}.lead-card--feature .lead-title{font-size:var(--step-2)}.lead-card--feature .lead-title:after{content:"";display:block;width:64px;height:3px;margin-top:.8rem;border-radius:2px;background:var(--sunset)}.lead-card--feature .lead-desc{font-size:var(--step-1);line-height:1.6}.contact-body{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}.contact-mail{display:inline-flex;align-items:baseline;gap:.4rem;font-family:var(--font-display);font-weight:700;font-size:clamp(1.5rem,5vw,3.8rem);letter-spacing:-.03em;line-height:1.1;color:var(--ink);word-break:break-word;border-bottom:3px solid var(--blue);padding-bottom:.35rem;transition:color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.contact-mail:hover{color:var(--blue);border-color:var(--sunset)}.mail-arrow{width:.62em;height:.62em;stroke-width:2.2;align-self:center;flex:none;transition:transform var(--dur) var(--ease-out)}.contact-mail:hover .mail-arrow{transform:translate(4px,-4px)}.contact-links{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:2.2rem}.contact-links a{display:inline-flex;align-items:center;min-height:46px;padding:.6rem 1.2rem;border:1px solid var(--line-strong);border-radius:999px;font-family:var(--font-mono);font-size:var(--step--1);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft);background:#f6f8f780;transition:color var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out),transform var(--dur) var(--ease-out)}.contact-links a:hover{color:var(--blue);border-color:var(--blue);transform:translateY(-2px)}.contact-note{margin-top:1.8rem;font-family:var(--font-mono);font-size:var(--step--1);color:var(--muted)}.site-foot{border-top:1px solid var(--line);background:var(--beacon-gray)}.foot-inner{max-width:var(--container);margin:0 auto;padding:2.2rem var(--gutter);display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2.5rem}.foot-mark{font-family:var(--font-mono);font-size:.9rem;color:var(--ink)}.foot-cursor{color:var(--sunset);animation:blink 1.15s steps(1) infinite}.foot-colophon{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);max-width:52ch}.foot-copy{margin-left:auto;font-family:var(--font-mono);font-size:.72rem;color:var(--muted)}@media(max-width:1080px){.hero-inner{grid-template-columns:1fr}.hero-portrait{justify-self:center;width:min(72vw,330px);margin-top:1.4rem}}@media(max-width:860px){.edu-grid,.lead-grid{grid-template-columns:1fr}.stage-brands{flex-wrap:wrap;justify-content:center}.stage-brands img{height:18px}}@media(max-width:620px){:root{--section-pad: clamp(3.4rem, 11vw, 5rem)}.nav{gap:.4rem}.nav-resume{display:none}.nav-links{gap:0}.nav-links a{padding:.55rem .32rem;font-size:.66rem;letter-spacing:.04em;white-space:nowrap}.brand{min-width:44px}.hero-cta{flex-direction:column;align-items:stretch}.hero-inner{padding-top:2.2rem}.hero-portrait{width:min(78vw,320px);margin-top:1.8rem}.portrait-backframe{transform:translateY(14px)}.foot-copy{margin-left:0}.stage{aspect-ratio:auto}.stage-browser{position:relative;inset:auto}.stage-browser img{height:auto;max-height:320px}.stage-phone{display:none}.stage--ef .stage-browser{inset:auto}.stage-brands{position:relative;margin-top:.8rem}}@media(max-width:460px){.brand-name{display:none}.brand{min-width:30px}.nav-links a{padding:.55rem .24rem;font-size:.6rem;letter-spacing:.02em}.nav-links{overflow-x:auto;scrollbar-width:none}.nav-links::-webkit-scrollbar{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.marquee-track{animation:none;flex-wrap:wrap;width:auto}.chapter .chapter-tags li{opacity:1;transform:none}}@media print{.marquee,.site-head{display:none!important}body{background:#fff}.card,.vchapter{break-inside:avoid;box-shadow:none}}.kicker-dot--wip{background:var(--sunset);animation-name:pulse-wip}@keyframes pulse-wip{0%,to{box-shadow:0 0 #d68b1a73}55%{box-shadow:0 0 0 9px #d68b1a00}}.wip-grid{max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.2rem,2.5vw,1.8rem);align-items:stretch}.wip-card{display:flex;flex-direction:column;background:var(--panel);border:1px dashed var(--line-strong);border-radius:var(--radius-lg);padding:clamp(1rem,2vw,1.4rem);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease-out),box-shadow var(--dur) var(--ease-out),border-color var(--dur) var(--ease-out)}.wip-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--sunset)}.wip-status{display:flex;align-items:center;gap:.7rem;flex-wrap:wrap;margin-bottom:1rem}.wip-badge{font-family:var(--font-mono);font-size:.66rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#7c5510;background:var(--sunset-soft);border:1px solid rgba(214,139,26,.45);border-radius:999px;padding:.32rem .7rem;white-space:nowrap}.wip-status-text{font-family:var(--font-mono);font-size:.7rem;letter-spacing:.04em;color:var(--muted)}.wip-stage{position:relative;aspect-ratio:16 / 11;margin-bottom:1.2rem}.wip-frame{position:absolute;inset:0;border-radius:10px;overflow:hidden;border:1px solid var(--line);background:#fff;box-shadow:var(--shadow-sm)}.wip-frame img{width:100%;height:100%;object-fit:cover;object-position:top center}.wip-frame-tag{position:absolute;top:8px;left:8px;font-family:var(--font-mono);font-size:.64rem;font-weight:500;letter-spacing:.12em;color:var(--on-blue);background:var(--blue);border-radius:6px;padding:.22rem .5rem}.wip-stage--art .wip-frame:first-child{inset:0 14% 14% 0;transform:rotate(-2.2deg);transform-origin:bottom left}.wip-stage--art .wip-frame:last-child{inset:12% 0 0 12%;transform:rotate(1.4deg);transform-origin:bottom right;box-shadow:var(--shadow-lg)}.wip-stage--track .wip-frame{inset:0 10% 10% 0}.wip-phone{position:absolute;right:0;bottom:0;width:26%;border-radius:16px;overflow:hidden;border:3px solid var(--ink);background:#fff;box-shadow:var(--shadow-lg);z-index:2}.wip-phone img{width:100%;aspect-ratio:390 / 760;object-fit:cover;object-position:top center;display:block}.wip-lanes{position:absolute;top:-10px;left:-8px;width:74px;height:30px;z-index:-1}.wip-lanes i{position:absolute;left:0;width:100%;height:3px;background:var(--sunset);opacity:.75;transform:rotate(-14deg)}.wip-lanes i:nth-child(2){top:10px;width:78%}.wip-lanes i:nth-child(3){top:20px;width:52%}.wip-stage--globe .wip-frame{inset:0;background:#04060a;border-color:#2a2f38}.wip-brass{position:absolute;left:6%;bottom:-12px;width:96px;height:3px;background:linear-gradient(90deg,#b08d3f,#b08d3f00)}.wip-body{display:flex;flex-direction:column;flex:1}.wip-body .chapter-category{margin-top:.2rem}.wip-name{font-size:var(--step-1);line-height:1.25;margin-top:.45rem;letter-spacing:-.01em}.wip-desc{margin-top:.7rem;color:var(--muted);font-size:var(--step-0);line-height:1.65}.wip-body .chapter-tags{margin-top:1rem}.wip-link{margin-top:auto;padding-left:0;padding-top:1.1rem;color:var(--blue)}.wip-link:hover{color:var(--blue-deep)}.wip-link .ico{transition:transform var(--dur) var(--ease-out)}.wip-link:hover .ico{transform:translate(2px,-2px)}@media(max-width:1099px){.wip-grid{grid-template-columns:minmax(0,1fr);max-width:640px}}@media(min-width:640px)and (max-width:1099px){.wip-grid{max-width:720px}}
