@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:200 800;font-display:swap;src:url(/build/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(/build/assets/geist-latin-wght-normal-BgDaEnEv.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(/build/assets/geist-mono-latin-wght-normal-XN7g48iV.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@property --pp{syntax:"<number>";inherits:true;initial-value:0}@property --sweep{syntax:"<angle>";inherits:false;initial-value:0deg}@property --fill{syntax:"<number>";inherits:true;initial-value:0}:root{--emoji:"Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", "Twemoji Mozilla";--font-display:"Bricolage Grotesque", ui-sans-serif, system-ui, sans-serif, var(--emoji);--font-body:"Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif, var(--emoji);--font-mono:"Geist Mono", ui-monospace, "SFMono-Regular", Menlo, monospace, var(--emoji);--ease-out:cubic-bezier(.16, 1, .3, 1);--ease-in:cubic-bezier(.4, 0, 1, 1);--dur-quick:.15s;--dur-fast:.25s;--dur-medium:.4s;--dur-slow:.7s;--ctl:44px;--ico:20px;--ico-sm:16px;--r-s:10px;--r:16px;--r-l:24px;--wrap:1180px;--gutter:clamp(1.25rem, 4vw, 2.5rem);--nav-h:60px;interpolate-size:allow-keywords}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0b0d11;--bg-2:#0f1217;--surface:#13171d;--surface-2:#1a1f27;--line:#ffffff14;--line-2:#ffffff2b;--fg:#eceef2;--fg-2:#b4bcc8;--fg-3:#8a93a1;--accent:#ffb224;--accent-ink:#1b1300;--accent-text:#ffc247;--accent-soft:#ffb22421;--cool:#4b8dff;--glow-a:#ff961e33;--glow-b:#3c78ff29;--shadow:0 1px 0 #ffffff0d inset, 0 1px 2px #00000080, 0 12px 32px #00000047}[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f2ea;--bg-2:#efebe1;--surface:#fffdf7;--surface-2:#f8f4ea;--line:#14161a1a;--line-2:#14161a33;--fg:#14161a;--fg-2:#3d4450;--fg-3:#5d6573;--accent:#f59e0b;--accent-ink:#1b1300;--accent-text:#a24b05;--accent-soft:#f59e0b26;--cool:#2563eb;--glow-a:#f59e0b38;--glow-b:#2563eb1a;--shadow:0 1px 0 #fffc inset, 0 1px 2px #14161a14, 0 12px 28px #14161a12}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:5.5rem}body{background:var(--bg);color:var(--fg);font:400 1.0625rem/1.65 var(--font-body);font-feature-settings:"ss01", "cv11";-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:clip}body:before{content:"";z-index:-1;background-image:linear-gradient(to right, var(--line) 1px, transparent 1px), linear-gradient(to bottom, var(--line) 1px, transparent 1px);opacity:.55;pointer-events:none;background-size:72px 72px;position:fixed;inset:0;-webkit-mask-image:radial-gradient(80% 60% at 50% 0,#000 0%,#0000 75%);mask-image:radial-gradient(80% 60% at 50% 0,#000 0%,#0000 75%)}h1,h2,h3,h4,p,ul,ol,dl,dd,figure{margin:0}ul,ol{padding:0;list-style:none}img,svg{max-width:100%;display:block}img{height:auto}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-.025em;text-wrap:balance;font-weight:700;line-height:1.08}p{text-wrap:pretty}::selection{background:var(--accent);color:var(--accent-ink)}:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:6px}.wrap{width:min(100% - var(--gutter) * 2, var(--wrap));margin-inline:auto}.mono{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;font-size:.78rem}.muted{color:var(--fg-3)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip{z-index:100;background:var(--accent);color:var(--accent-ink);border-radius:var(--r-s);transition:top var(--dur-fast) var(--ease-out);padding:.75rem 1rem;font-weight:600;position:fixed;top:-4rem;left:1rem}.skip:focus{top:1rem}[hidden]{display:none!important}.icon{flex:none;width:1.15em;max-width:none;height:1.15em}.lbl{text-box:trim-both cap alphabetic;display:block}@supports not (text-box:trim-both cap alphabetic){.lbl{translate:0 var(--lbl-nudge,.06em)}}.btn{--px:1.4rem;min-height:48px;padding:0 var(--px);white-space:nowrap;transition:transform var(--dur-quick) var(--ease-out), background-color var(--dur-fast), border-color var(--dur-fast), color var(--dur-fast);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;gap:.55rem;font-size:.98rem;font-weight:600;line-height:1;display:inline-flex}.btn:active{transform:scale(.97)}.btn .icon,.chip .icon{width:var(--ico-sm);height:var(--ico-sm)}.btn .icon{transition:transform var(--dur-fast) var(--ease-out)}.btn:hover .icon:last-child{transform:translate(3px)}.btn-accent{background:var(--accent);color:var(--accent-ink);box-shadow:0 1px 0 #ffffff59 inset, 0 8px 24px -8px var(--glow-a)}.btn-accent:hover{background:color-mix(in srgb, var(--accent) 88%, #fff)}.btn-accent:hover .icon:first-child:not(:last-child){transform:translateY(2px)}.btn-ghost{border-color:var(--line-2);color:var(--fg);background:0 0}.btn-ghost:hover{background:var(--surface);border-color:var(--fg-3)}.btn-sm{--px:1.1rem;min-height:44px;font-size:.9rem}.btn:has(>.icon:first-child:not(:last-child)){padding-inline:calc(var(--px) - .65px) calc(var(--px) + .65px)}.btn:has(>.icon:last-child:not(:first-child)){padding-inline:calc(var(--px) + .65px) calc(var(--px) - .65px)}.icon-btn{width:var(--ctl);height:var(--ctl);border:1px solid var(--line-2);transition:transform var(--dur-quick) var(--ease-out), background-color var(--dur-fast), border-color var(--dur-fast);background:0 0;border-radius:50%;place-items:center;padding:0;display:inline-grid}.icon-btn:hover{background:var(--surface);border-color:var(--fg-3)}.icon-btn:active{transform:scale(.94)}.icon-btn .icon{width:var(--ico);height:var(--ico)}.chip{min-height:var(--ctl);border:1px solid var(--line-2);font:600 .8rem/1 var(--font-mono);letter-spacing:.06em;transition:background-color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-quick) var(--ease-out);border-radius:999px;justify-content:center;align-items:center;gap:.4rem;padding:0 .9rem;display:inline-flex}.chip .lbl{margin-right:-.06em}.chip{padding-inline:calc(.9rem + .4px) calc(.9rem - .4px)}.chip:hover{background:var(--surface);border-color:var(--fg-3)}.chip:active{transform:scale(.97)}.link-quiet{min-height:44px;color:var(--fg-3);transition:color var(--dur-fast);align-items:center;gap:.35rem;display:inline-flex}.link-quiet:hover{color:var(--accent-text)}.live-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px;display:inline-block;position:relative}.live-dot:after{content:"";background:var(--accent);animation:ping 2.2s var(--ease-out) infinite;border-radius:50%;position:absolute;inset:0}.sep{opacity:.4;margin-inline:.35em}.nav{top:calc(.75rem + env(safe-area-inset-top,0px));z-index:50;translate:-50% var(--nav-y,0px);width:min(100% - 1.5rem,1100px);height:var(--nav-h);background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(16px)saturate(1.3);backdrop-filter:blur(16px)saturate(1.3);border:1px solid var(--line);transition:background-color var(--dur-medium), border-color var(--dur-medium), box-shadow var(--dur-medium), translate var(--dur-medium) var(--ease-out);border-radius:999px;justify-content:space-between;align-items:center;gap:1rem;padding:0 .75rem 0 1.1rem;display:flex;position:fixed;left:50%}.nav.is-scrolled{background:color-mix(in srgb, var(--bg) 88%, transparent);border-color:var(--line-2);box-shadow:var(--shadow)}.brand{white-space:nowrap;min-width:44px;min-height:44px;font-family:var(--font-display);letter-spacing:-.02em;justify-content:center;align-items:center;gap:.65rem;font-weight:700;display:inline-flex}.brand-mark{background:var(--accent);width:36px;height:36px;color:var(--accent-ink);letter-spacing:0;border-radius:11px;place-items:center;font-size:.9rem;display:grid}.nav-links{gap:.15rem;display:flex;position:relative}.nav-links a{z-index:1;white-space:nowrap;min-height:44px;color:var(--fg-2);transition:color var(--dur-fast);border-radius:999px;align-items:center;padding:0 .95rem;font-size:.92rem;font-weight:500;display:inline-flex;position:relative}.nav-links a:hover,.nav-links a[aria-current=true]{color:var(--fg)}.nav-ink{height:36px;width:var(--ink-w,0px);translate:var(--ink-x,0px) 0;background:var(--surface-2);border:1px solid var(--line-2);opacity:0;transition:translate var(--dur-medium) var(--ease-out), width var(--dur-medium) var(--ease-out), opacity var(--dur-fast);border-radius:999px;margin-top:-18px;position:absolute;top:50%;left:0}.nav-ink.is-ready{opacity:1}.nav-actions{align-items:center;gap:.5rem;display:flex}.nav-toggle,.theme-moon,[data-theme=light] .theme-sun{display:none}[data-theme=light] .theme-moon{display:block}@media (width<=960px){.nav-toggle{display:inline-grid}.nav-links{background:var(--surface);border:1px solid var(--line-2);border-radius:var(--r-l);box-shadow:var(--shadow);max-height:calc(100dvh - var(--nav-h) - 2.5rem - env(safe-area-inset-top,0px));overscroll-behavior:contain;opacity:0;pointer-events:none;visibility:hidden;transition:opacity var(--dur-quick) var(--ease-in), translate var(--dur-quick) var(--ease-in), visibility 0s var(--dur-quick);flex-direction:column;gap:.1rem;padding:.6rem;position:absolute;top:calc(100% + .5rem);left:0;right:0;overflow:auto;translate:0 -8px}.nav[data-open] .nav-links{opacity:1;pointer-events:auto;visibility:visible;transition:opacity var(--dur-fast) var(--ease-out), translate var(--dur-fast) var(--ease-out), visibility 0s;translate:0}.nav-links a{min-height:48px;font-size:1rem}.nav-ink{display:none}.nav-cv .lbl{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.nav-actions .nav-cv{width:var(--ctl);padding:0}}@media (width<=1180px) and (width>=961px){.brand-name{display:none}}@media (width<=480px){.brand-name{display:none}}@media (width<=380px){.nav{gap:.4rem;padding:0 .5rem 0 .35rem}.nav-actions{gap:.3rem}.nav-actions .chip{padding:0 .7rem}}.hero{min-height:100svh;padding:calc(var(--nav-h) + 4.5rem) 0 5rem;align-items:center;display:grid;position:relative;overflow:clip}.hero-bg{z-index:-1;pointer-events:none;position:absolute;inset:0}.glow{border-radius:50%;position:absolute}.glow-a{background:radial-gradient(closest-side, var(--glow-a), transparent);width:62vmax;height:62vmax;top:-22vmax;right:-18vmax}.glow-b{background:radial-gradient(closest-side, var(--glow-b), transparent);width:52vmax;height:52vmax;bottom:-26vmax;left:-22vmax}.hero-grid{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:clamp(2rem,6vw,5rem);display:grid}.eyebrow{color:var(--fg-2);align-items:center;gap:.6rem;margin-bottom:1.5rem;display:inline-flex}.hero-name{letter-spacing:-.045em;font-size:clamp(3.1rem,9.2vw,7.6rem);font-weight:800;line-height:.92}.line{margin-bottom:-.1em;padding-bottom:.1em;display:block;overflow:clip}.line-in{display:inline-block}.hero-role{color:var(--fg);max-width:34ch;margin-top:1.75rem;font-size:clamp(1.1rem,1.9vw,1.45rem);font-weight:500}.hero-now{color:var(--fg-2);margin-top:.4rem;font-size:.95rem;font-weight:400;display:block}.hero-now .mono{color:var(--accent-text);margin-right:.4rem}.hero-cta{flex-wrap:wrap;gap:.75rem;margin-top:2.25rem;display:flex}.hero-portrait{perspective:900px;justify-self:end;width:min(100%,470px);position:relative}.portrait-stage{aspect-ratio:1;place-items:center;width:100%;display:grid;position:relative}.radar{transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform var(--dur-fast) var(--ease-out);border-radius:50%;position:absolute;inset:-9%}.ring{border:1px solid var(--line-2);border-radius:50%;position:absolute;inset:0}.ring.r2{border-style:dashed;border-color:var(--line);inset:11%}.ring.r3{inset:22%}.sweep{background:conic-gradient(from var(--sweep), transparent 0 70%, color-mix(in srgb, var(--accent) 34%, transparent) 100%);border-radius:50%;animation:11s linear infinite sweep;position:absolute;inset:0;-webkit-mask-image:radial-gradient(circle,#0000 36%,#000 37%);mask-image:radial-gradient(circle,#0000 36%,#000 37%)}.tick{background:var(--fg-3);opacity:.7;position:absolute}.t-n,.t-s{width:1px;height:14px;left:50%}.t-n{top:-7px}.t-s{bottom:-7px}.t-e,.t-w{width:14px;height:1px;top:50%}.t-e{right:-7px}.t-w{left:-7px}.hero-portrait picture{display:contents}.portrait{aspect-ratio:1;object-fit:cover;border:1px solid var(--line-2);width:72%;height:auto;box-shadow:0 0 0 8px color-mix(in srgb, var(--bg) 80%, transparent), 0 0 0 9px var(--line), 0 30px 80px -20px #0000008c;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform var(--dur-fast) var(--ease-out);border-radius:50%;position:relative}.portrait-tag{border:1px solid var(--line-2);background:color-mix(in srgb, var(--surface) 90%, transparent);color:var(--fg-2);white-space:nowrap;border-radius:999px;align-items:center;gap:.55rem;padding:.55rem .9rem;font-size:.75rem;display:inline-flex;position:absolute;bottom:-.5rem;left:50%;translate:-50%}.scroll-hint{min-height:44px;color:var(--fg-3);transition:color var(--dur-fast);flex-direction:column;justify-content:center;align-items:center;gap:.3rem;display:inline-flex;position:absolute;bottom:1.25rem;left:50%;translate:-50%}.scroll-hint:hover{color:var(--accent-text)}.scroll-hint .icon{animation:bob 2.4s var(--ease-out) infinite}@media (width<=900px){.hero{min-height:auto;padding:calc(var(--nav-h) + 2.5rem + env(safe-area-inset-top,0px)) 0 3.5rem;align-items:start}.hero-grid{grid-template-columns:1fr;gap:1.75rem}.hero-portrait{flex-direction:column;order:-1;justify-self:center;align-items:center;gap:1.25rem;width:min(54vw,250px);display:flex}.portrait-tag{width:max-content;max-width:calc(100vw - 2 * var(--gutter));white-space:normal;text-align:center;position:static;translate:none}.scroll-hint{display:none}}@media (width<=480px){.coords{display:none}.hero-name{font-size:clamp(2.9rem,15vw,4.2rem)}.hero-cta .btn{flex:auto}}@media (width<=960px) and (height<=520px){.hero{padding:calc(var(--nav-h) + 1.5rem + env(safe-area-inset-top,0px)) 0 2rem}.hero-grid{grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);align-items:center;gap:1.5rem}.hero-portrait{order:0;justify-self:end;width:min(100%,52vh)}.portrait-tag{display:none}.hero-name{font-size:clamp(2.2rem,7.5vw,3.6rem)}.hero-role{margin-top:1rem}.hero-cta{margin-top:1.25rem}}.section{padding-block:clamp(4rem,9vw,8rem);position:relative}.section-head{margin-bottom:clamp(2rem,5vw,3.5rem)}.kicker{color:var(--accent-text);align-items:center;gap:.7rem;margin-bottom:.9rem;display:flex}.kicker:before{content:"";opacity:.6;background:currentColor;width:1.8rem;height:1px}.section-head h2,.book h2{letter-spacing:-.035em;font-size:clamp(2.2rem,5.2vw,4.2rem);font-weight:700}.sub{color:var(--fg-2);margin-top:clamp(3rem,7vw,5rem);margin-bottom:1.5rem;font-size:1.35rem;font-weight:600}.footer{border-top:1px solid var(--line);padding-block:2rem calc(2rem + env(safe-area-inset-bottom,0px));color:var(--fg-3)}.footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;display:flex}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);transition:border-color var(--dur-fast), translate var(--dur-fast) var(--ease-out);padding:1.6rem;position:relative;overflow:hidden}.spotlight:before{content:"";pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%), var(--accent-soft), transparent 60%);opacity:0;transition:opacity var(--dur-fast);position:absolute;inset:0}.spotlight:hover:before{opacity:1}.spotlight:hover{border-color:var(--line-2);translate:0 -2px}.card>*{position:relative}.card-icon{background:var(--accent-soft);width:46px;height:46px;color:var(--accent-text);border-radius:13px;flex:none;place-items:center;display:grid}.card-icon .icon{width:22px;height:22px}.about-grid{grid-template-columns:minmax(0,1.7fr) minmax(0,.8fr);align-items:start;gap:clamp(2rem,5vw,4rem);display:grid}.about-lead{color:var(--fg);letter-spacing:-.01em;font-size:clamp(1.2rem,2.1vw,1.65rem);line-height:1.5}.facts{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);padding:.4rem 1.4rem}.facts div{border-bottom:1px solid var(--line);padding:1rem 0}.facts div:last-child{border-bottom:0}.facts dt{color:var(--fg-3);margin-bottom:.25rem}.facts dd{font:600 1.25rem/1.25 var(--font-display);letter-spacing:-.02em}.facts small{font:400 .9rem var(--font-body);color:var(--fg-3)}.bento{grid-template-columns:repeat(6,1fr);gap:1rem;display:grid}.bento .card:first-child{grid-column:span 4}.bento .card:nth-child(2),.bento .card:nth-child(3){grid-column:span 2}.bento .card:nth-child(4){grid-column:span 4}.bento .card:nth-child(5),.bento .card:nth-child(6){grid-column:span 3}.bento .card{flex-direction:column;min-height:15rem;display:flex}.card-mark{width:9.5rem;height:9.5rem;color:var(--fg);opacity:.05;stroke-width:1.2px;pointer-events:none;transition:opacity var(--dur-medium), transform var(--dur-slow) var(--ease-out);bottom:-1.25rem;right:-1.25rem;rotate:-8deg;position:absolute!important}.bento .card:hover .card-mark{opacity:.1;rotate:-4deg}.bento h4{margin-top:1.1rem;font-size:1.3rem}.bento p{color:var(--fg-2);margin-top:.6rem;font-size:.97rem;line-height:1.6}@media (width<=980px){.about-grid{grid-template-columns:1fr}.bento{grid-template-columns:repeat(2,1fr)}.bento .card:nth-child(n){grid-column:span 1}}@media (width<=640px){.bento{grid-template-columns:1fr}}.gantt{--label-w:minmax(190px, 300px);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);padding:1.4rem 1.6rem 1rem;position:relative}.gantt figcaption{color:var(--fg-3);margin-bottom:1rem}.gantt-rows{position:relative}.gantt-rows a,.gantt-axis{grid-template-columns:var(--label-w) 1fr;align-items:center;gap:1rem;display:grid}.gantt-rows a{border-radius:8px;height:34px}.g-label{color:var(--fg-3);white-space:nowrap;text-overflow:ellipsis;font-size:.82rem;overflow:hidden}.g-label b{color:var(--fg);margin-right:.35rem;font-weight:600}.g-track{grid-template-columns:repeat(var(--years), 1fr);align-items:center;height:100%;display:grid}.g-bar{grid-column:var(--s) / var(--e);background:color-mix(in srgb, var(--fg-3) 55%, transparent);transform-origin:0;height:12px;transition:transform .8s var(--ease-out), background-color var(--dur-fast);transition-delay:calc(var(--i) * 40ms), 0s;border-radius:999px;transform:scaleX(0)}.is-in .g-bar{transform:scaleX(1)}.gantt-row.is-current .g-bar{background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 55%, transparent))}.gantt-rows a:hover .g-bar{background:var(--accent)}.gantt-rows a:hover .g-label{color:var(--fg)}.g-grid{grid-template-columns:var(--label-w) 1fr;pointer-events:none;gap:1rem;display:grid;position:absolute;inset:0}.g-lines{grid-template-columns:repeat(var(--years), 1fr);display:grid}.g-line{grid-column:var(--c);border-left:1px dashed var(--line)}.gantt-axis{color:var(--fg-3);margin-top:.4rem;font-size:.75rem}.g-ticks{grid-template-columns:repeat(var(--years), 1fr);display:grid}.g-ticks span{grid-column:var(--c);translate:-35%}.timeline{display:grid}.xp{border-top:1px solid var(--line);grid-template-columns:10rem minmax(0,1fr);gap:2rem;padding-block:1.9rem;display:grid}.xp:last-child{border-bottom:1px solid var(--line)}.xp-when{color:var(--fg-3);align-self:start;line-height:1.6;position:sticky;top:6.5rem}.badge{background:var(--accent-soft);color:var(--accent-text);border-radius:999px;padding:.15rem .55rem;font-size:.75rem;display:inline-block}.xp-body{border-left:1px solid var(--line-2);max-width:70ch;padding-left:1.75rem;position:relative}.xp-body:before{content:"";background:var(--bg);border:2px solid var(--fg-3);width:9px;height:9px;transition:background-color var(--dur-fast), border-color var(--dur-fast), scale var(--dur-fast) var(--ease-out);border-radius:50%;position:absolute;top:.55rem;left:-5px}.xp:hover .xp-body:before{border-color:var(--accent);scale:1.25}.xp.is-current .xp-body:before{background:var(--accent);border-color:var(--accent);box-shadow:0 0 0 5px var(--accent-soft)}.xp-body h4{font-size:clamp(1.3rem,2.2vw,1.65rem)}.xp-org{color:var(--fg-2);margin-top:.35rem;font-weight:500}.xp-org a{color:var(--accent-text);align-items:center;gap:.3rem;margin-block:-.7rem;padding-block:.7rem;display:inline-flex}.xp-org a:hover{text-underline-offset:3px;text-decoration:underline}.xp-org .icon{width:.9em;height:.9em}.xp-lead{color:var(--fg-2);margin-top:.9rem}.xp-more{margin-top:.6rem}.xp-more summary{cursor:pointer;min-height:44px;color:var(--accent-text);font:600 .78rem var(--font-mono);letter-spacing:.06em;text-transform:uppercase;align-items:center;gap:.3rem;list-style:none;display:inline-flex}.xp-more summary::-webkit-details-marker{display:none}.xp-more summary .icon{width:1em;height:1em;transition:rotate var(--dur-fast) var(--ease-out)}.xp-more[open] summary .icon{rotate:180deg}.xp-more::details-content{opacity:0;block-size:0;transition:block-size var(--dur-fast) var(--ease-out), opacity var(--dur-fast), content-visibility var(--dur-fast) allow-discrete;overflow:clip}.xp-more[open]::details-content{opacity:1;block-size:auto}.xp-rest{color:var(--fg-2);padding-top:.5rem}@media (width<=760px){.xp{grid-template-columns:1fr;gap:.9rem}.xp-when{position:static}}.skills-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);padding:1.6rem}.skills-grid .panel:first-child{grid-row:span 2}.panel-wide{grid-column:1/-1}.panel-title{color:var(--fg-3);margin-bottom:1.2rem}.meters{gap:1rem;display:grid}.meters li{grid-template-columns:1fr auto;align-items:baseline;gap:.35rem 1rem;display:grid}.m-name{font-size:.96rem;font-weight:500}.m-val{color:var(--fg-3);font-size:.75rem}.meter{background:var(--line);border-radius:999px;grid-column:1/-1;height:6px;overflow:hidden}.meter i{border-radius:inherit;background:linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--accent) 60%, #fff));transform-origin:0;height:100%;transition:transform .9s var(--ease-out);transition-delay:calc(var(--i) * 45ms);display:block;transform:scaleX(0)}.is-in .meter i{transform:scaleX(calc(var(--v) / 100))}.rings{grid-template-columns:repeat(auto-fill,minmax(92px,1fr));gap:1.25rem .75rem;display:grid}.rings li{text-align:center;justify-items:center;gap:.55rem;display:grid}.ring-gauge{--pp:0;aspect-ratio:1;background:conic-gradient(var(--accent) calc(var(--pp) * 1%), var(--line) 0);width:68px;transition:--pp 1.1s var(--ease-out);transition-delay:calc(var(--i) * 60ms);border-radius:50%;place-items:center;display:grid;position:relative}.is-in .ring-gauge{--pp:var(--p)}.ring-gauge:after{content:"";background:var(--surface);border-radius:50%;position:absolute;inset:6px}.ring-gauge b{z-index:1;font:600 .82rem var(--font-mono);font-variant-numeric:tabular-nums;position:relative}.ring-name{color:var(--fg-2);font-size:.82rem;line-height:1.3}.chips{flex-wrap:wrap;gap:.5rem;display:flex}.chips li{border:1px solid var(--line-2);color:var(--fg-2);transition:border-color var(--dur-fast), color var(--dur-fast), translate var(--dur-fast) var(--ease-out);border-radius:999px;padding:.4rem .8rem;font-size:.85rem}.chips li:hover{border-color:var(--accent);color:var(--accent-text);translate:0 -2px}.edu li{border-top:1px solid var(--line);grid-template-columns:5rem 1.2fr 1fr;align-items:baseline;gap:1rem;padding:.95rem 0;display:grid}.edu li:first-child{border-top:0;padding-top:0}.edu-year{color:var(--accent-text)}.edu-title{font-weight:600}@media (width<=900px){.skills-grid{grid-template-columns:1fr}.skills-grid .panel:first-child{grid-row:auto}.edu li{grid-template-columns:4rem 1fr}.edu-inst{grid-column:2}}.work-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.75rem;display:flex}.filters{flex-wrap:wrap;gap:.5rem;display:flex}.filter{border:1px solid var(--line-2);min-height:44px;color:var(--fg-2);transition:background-color var(--dur-fast), color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-quick) var(--ease-out);background:0 0;border-radius:999px;align-items:center;gap:.5rem;padding:0 1.1rem;font-size:.92rem;font-weight:500;display:inline-flex}.filter .mono{color:var(--fg-3);font-size:.75rem}.filter.is-active .mono{color:inherit;opacity:.8}.filter:hover{border-color:var(--fg-3);color:var(--fg)}.filter:active{transform:scale(.97)}.filter.is-active{background:var(--fg);border-color:var(--fg);color:var(--bg)}.work-count{color:var(--fg-3)}.work-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,300px),1fr));gap:1.25rem;display:grid}.viewer{border:1px solid var(--line-2);border-radius:var(--r-l);background:var(--surface);width:min(1120px,94vw);max-width:none;max-height:92vh;color:var(--fg);padding:0;overflow:hidden;box-shadow:0 40px 120px #0009}.viewer::backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#050608bd}.viewer-card{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);max-height:92vh;display:grid;position:relative}.viewer-media{background:var(--bg-2);place-items:center;min-height:0;padding:1.25rem;display:grid}.viewer-media img{object-fit:contain;border-radius:var(--r-s);width:auto;max-width:100%;height:auto;max-height:84vh;transition:opacity var(--dur-quick)}.viewer-media img.is-swapping{opacity:0}.viewer-info{flex-direction:column;gap:.8rem;padding:2.25rem 2rem 1.75rem;display:flex;overflow:auto}.viewer-info h3{font-size:1.7rem}.viewer-cats,.viewer-year{color:var(--accent-text)}.viewer-year{color:var(--fg-3);margin-top:-.4rem}.viewer-text{color:var(--fg-2);font-size:.98rem}.viewer-nav{flex-wrap:wrap;gap:.5rem;margin-top:auto;padding-top:1rem;display:flex}.viewer-close{z-index:2;background:color-mix(in srgb, var(--surface) 85%, transparent);position:absolute;top:.9rem;right:.9rem}.viewer{opacity:0;transition:opacity var(--dur-quick) var(--ease-in), scale var(--dur-quick) var(--ease-in), translate var(--dur-quick) var(--ease-in), overlay var(--dur-quick) allow-discrete, display var(--dur-quick) allow-discrete;translate:0 10px;scale:.96}.viewer[open]{opacity:1;transition-duration:var(--dur-fast);transition-timing-function:var(--ease-out);translate:0;scale:1}@starting-style{.viewer[open]{opacity:0;translate:0 10px;scale:.96}}.viewer::backdrop{opacity:0;transition:opacity var(--dur-quick), overlay var(--dur-quick) allow-discrete, display var(--dur-quick) allow-discrete}.viewer[open]::backdrop{opacity:1;transition-duration:var(--dur-fast)}@starting-style{.viewer[open]::backdrop{opacity:0}}html:has(.viewer[open]){overflow:hidden}@media (width<=820px){.viewer-card{grid-template-columns:1fr;overflow:auto}.viewer-media img{max-height:46vh}.viewer-info{padding:1.5rem 1.25rem;overflow:visible}}.book{grid-template-columns:minmax(0,280px) minmax(0,1fr);align-items:center;gap:clamp(1.5rem,5vw,3.5rem);padding:clamp(1.5rem,4vw,3rem);display:grid}.book-cover{object-fit:contain;filter:drop-shadow(0 24px 30px #00000059);width:100%;max-height:400px}.book-body{justify-items:start;gap:1rem;display:grid}.book h2{font-size:clamp(1.9rem,4vw,3rem)}.book h2 .muted{letter-spacing:-.01em;margin-top:.3rem;font-size:.55em;font-weight:500;display:block}.book p{color:var(--fg-2);max-width:62ch}@media (width<=760px){.book{grid-template-columns:1fr}.book-cover{max-width:220px;margin-inline:auto}}.contact-grid{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);align-items:stretch;gap:1.25rem;display:grid}.contact-list ul:first-child{gap:.75rem;display:grid}.contact-list li.card{align-items:center;gap:1rem;padding:1.1rem 1.25rem;display:flex}.contact-list .label{color:var(--fg-3);margin-bottom:.1rem;font-size:.75rem}.contact-list p{overflow-wrap:anywhere}.contact-list a:hover{color:var(--accent-text)}.contact-list p a{margin-block:-.7rem;padding-block:.7rem;display:inline-block}.card.status{color:var(--fg-2);gap:.8rem}.socials{flex-wrap:wrap;gap:.5rem;margin-top:1.1rem;display:flex}.social{border:1px solid var(--line-2);min-height:44px;transition:background-color var(--dur-fast), border-color var(--dur-fast), transform var(--dur-quick) var(--ease-out);border-radius:999px;align-items:center;gap:.55rem;padding:0 1rem;font-size:.92rem;font-weight:500;display:inline-flex}.social:hover{background:var(--surface);border-color:var(--fg-3)}.social:active{transform:scale(.97)}.social .icon{width:1.05rem;height:1.05rem}.map{border-radius:var(--r-l);border:1px solid var(--line);background:var(--surface);min-height:440px;box-shadow:var(--shadow);isolation:isolate;overflow:hidden}.map.leaflet-container{background:var(--surface);font-family:var(--font-body)}[data-theme=dark] .map-tiles{filter:invert()hue-rotate(180deg)brightness(.95)contrast(.9)saturate(.55)}.map .leaflet-control-attribution{background:color-mix(in srgb, var(--bg) 78%, transparent);color:var(--fg-3)}.map .leaflet-control-attribution a{color:var(--accent-text)}.map .leaflet-bar a{background:var(--surface);color:var(--fg);border-color:var(--line-2)}@media (width<=900px){.contact-grid{grid-template-columns:1fr}.map{min-height:340px}}html{-webkit-tap-highlight-color:transparent}a,button,summary,.filter{touch-action:manipulation}@media (width<=760px){.gantt{--label-w:0px;padding:1.1rem 1rem .8rem}.gantt-rows a,.gantt-axis{grid-template-columns:1fr;gap:.2rem}.gantt-rows a{border-top:1px solid var(--line);border-radius:0;height:auto;padding-block:.6rem .5rem}.gantt-rows li:first-child a{border-top:0}.gantt-rows .g-label,.gantt-axis .g-label{white-space:normal;line-height:1.25}.gantt-axis .g-label{display:none}.g-track,.g-bar{height:10px}.g-grid{grid-template-columns:1fr}.g-grid>span:first-child{display:none}.gantt-axis{margin-top:.5rem}.g-ticks span{translate:-50%}.g-ticks span:first-child{translate:0}.g-ticks span:last-child{translate:-85%}}@media (pointer:coarse){.gantt-rows a{pointer-events:none}}@media (width<=560px){.card,.panel{padding:1.25rem}.facts{padding:.25rem 1.1rem}.section{padding-block:clamp(3rem,12vw,4.5rem)}.section-head{margin-bottom:1.75rem}.sub{margin-top:2.75rem}.skills-grid,.contact-grid{gap:.9rem}.book{padding:1.4rem}.btn-sm{--px:.95rem}.viewer-nav .btn{flex:1 1 0}}@media (width<=820px){.viewer{opacity:1;border:0;border-radius:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;translate:0 100%;scale:1}.viewer[open]{translate:0}@starting-style{.viewer[open]{opacity:1;translate:0 100%;scale:1}}.viewer-card{grid-template-rows:minmax(0,40dvh) minmax(0,1fr);grid-template-columns:1fr;height:100dvh;max-height:100dvh;overflow:hidden}.viewer-media{padding:.75rem;padding-top:calc(.75rem + env(safe-area-inset-top,0px));touch-action:pan-y}.viewer-media img{max-height:calc(40dvh - 1.5rem - env(safe-area-inset-top,0px))}.viewer-info{overscroll-behavior:contain;padding:1.25rem 1.25rem 0;overflow:auto}.viewer-nav{padding:.75rem 1.25rem calc(.75rem + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--line);margin:auto -1.25rem 0;position:sticky;bottom:0}.viewer-close{top:calc(.6rem + env(safe-area-inset-top,0px));background:color-mix(in srgb, var(--surface) 92%, transparent);right:.75rem}}.map-activate{z-index:1000;background:linear-gradient(to top, color-mix(in srgb, var(--bg) 55%, transparent), transparent 55%);color:var(--fg);cursor:pointer;border:0;justify-content:center;align-items:flex-end;padding:0 0 1.4rem;display:flex;position:absolute;inset:0}.map-activate span{border:1px solid var(--line-2);background:color-mix(in srgb, var(--surface) 92%, transparent);min-height:44px;box-shadow:var(--shadow);border-radius:999px;align-items:center;padding:0 1.1rem;font-size:.92rem;font-weight:600;display:inline-flex}@media (hover:none){.spotlight:hover:before{opacity:0}.spotlight:hover{border-color:var(--line);translate:none}.btn-accent:hover{background:var(--accent)}.btn-ghost:hover,.icon-btn:hover,.chip:hover,.social:hover{border-color:var(--line-2);background:0 0}.chips li:hover{border-color:var(--line-2);color:var(--fg-2);translate:none}.xp:hover .xp-body:before{border-color:var(--fg-3);scale:1}.xp.is-current:hover .xp-body:before{border-color:var(--accent)}.bento .card:hover .card-mark{opacity:.05;rotate:-8deg}.filter:hover{border-color:var(--line-2);color:var(--fg-2)}.filter.is-active:hover{border-color:var(--fg);color:var(--bg)}.nav-links a:hover{color:var(--fg-2)}}.hero-support{max-width:56ch;color:var(--fg-2);margin-top:1rem;font-size:clamp(1rem,1.5vw,1.12rem)}.hero-role{max-width:40ch}.link-cv{min-height:48px;padding-inline:.5rem}.hero-now{border-top:1px solid var(--line);margin-top:2rem;padding-top:1.25rem}.hero-now>.mono{color:var(--fg-3);margin-bottom:.6rem}.hero-now ul{gap:.4rem;display:grid}.hero-now li{flex-wrap:wrap;align-items:baseline;gap:.15rem .7rem;display:flex}.now-role{font-weight:600}.now-org{color:var(--fg-2)}.now-when{color:var(--accent-text);font-size:.75rem}.hero-facts{border-top:1px solid var(--line);grid-template-columns:repeat(3,auto);justify-content:start;align-items:end;gap:clamp(1.25rem,4vw,3rem);margin-top:2.25rem;padding-top:1.25rem;display:grid}.hero-facts li{flex-direction:column;gap:.3rem;display:flex}.fact-lbl{color:var(--fg-3)}.fact-big{font:700 clamp(2.1rem, 4.2vw, 3rem)/1 var(--font-display);letter-spacing:-.04em;font-variant-numeric:tabular-nums}.fact-text{letter-spacing:-.02em;max-width:12ch;font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.15}.fact-link{min-height:44px;transition:color var(--dur-fast);align-items:flex-end;gap:.5rem;display:inline-flex}.fact-link .icon{color:var(--accent-text);transition:transform var(--dur-fast) var(--ease-out);margin-bottom:.2rem}.fact-link:hover{color:var(--accent-text)}.fact-link:hover .icon{transform:translate(3px)}@media (width<=900px){.hero-facts{grid-template-columns:1fr 1fr 1fr;gap:1rem}.fact-text{max-width:none;font-size:1.05rem}}@media (width<=560px){.hero-facts{grid-template-columns:1fr 1fr}.hero-facts li:first-child{grid-column:1/-1}}.selected-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:1.25rem;display:grid}.selected-grid>:first-child,.selected-grid>:nth-child(2n):last-child{grid-column:1/-1}.selected-grid .case-card{height:100%}.selected-more{justify-content:center;margin-top:1.75rem;display:flex}.case-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);transition:border-color var(--dur-fast), translate var(--dur-fast) var(--ease-out);flex-direction:column;display:flex;position:relative;overflow:hidden}.case-card:hover{border-color:var(--accent);translate:0 -3px}.case-card:focus-within{border-color:var(--accent)}.case-cover{aspect-ratio:4/3;background:var(--surface-2);border-bottom:1px solid var(--line);position:relative;overflow:hidden}.case-cover img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .7s var(--ease-out)}.case-cover[data-fit=contain] img{object-fit:contain}.case-card:hover .case-cover img{transform:scale(1.04)}.case-body{flex-direction:column;flex:1;gap:.5rem;padding:1.25rem 1.35rem 1.4rem;display:flex}.case-meta{color:var(--accent-text);font-size:.75rem}.case-meta .sep{margin-inline:.45em}.case-title{letter-spacing:-.02em;font-size:1.3rem;line-height:1.2}.case-link{min-width:44px;min-height:44px;color:inherit;align-items:center;margin-block:-.6rem;display:inline-flex}.case-link:after{content:"";z-index:1;border-radius:inherit;position:absolute;inset:0}.case-link:focus-visible{outline:none}.case-card:has(.case-link:focus-visible){outline:2px solid var(--accent);outline-offset:3px}.case-summary{color:var(--fg-2);font-size:.97rem;line-height:1.55}.case-more{color:var(--accent-text);align-items:center;gap:.4rem;margin-top:auto;padding-top:.5rem;font-size:.75rem;display:inline-flex}.case-more .icon{width:.95rem;height:.95rem;transition:transform var(--dur-fast) var(--ease-out)}.case-card:hover .case-more .icon{transform:translate(3px)}@media (width>=900px){.case-card.is-large{flex-direction:row}.case-card.is-large .case-cover{aspect-ratio:auto;border-bottom:0;border-right:1px solid var(--line);flex:1.15;min-height:20rem}.case-card.is-large .case-body{flex:1;justify-content:center;gap:.75rem;padding:2.25rem}.case-card.is-large .case-title{font-size:clamp(1.7rem,3vw,2.4rem)}.case-card.is-large .case-summary{font-size:1.05rem}}@media (width<=760px){.selected-grid{grid-template-columns:1fr}}.work-grid{align-items:stretch}.work-item{display:flex}.work-item .case-card{width:100%}.work-item .case-title{font-size:1.12rem}.work-more-wrap{justify-content:center;margin-top:1.75rem;display:flex}.about-aside{color:var(--accent-text);text-transform:none;letter-spacing:.02em;flex-wrap:wrap;align-items:baseline;gap:.35rem .75rem;margin-top:1.25rem;display:flex}.about-aside .aside-label{color:var(--fg-3);text-transform:uppercase;letter-spacing:.06em}.about-aside [data-rotator-text]{transition:opacity var(--dur-quick) var(--ease-in), translate var(--dur-quick) var(--ease-in);display:inline-block}.about-aside [data-rotator-text].is-out{opacity:0;translate:0 6px}.xp-note{border:1px dashed var(--line-2);color:var(--fg-2);border-radius:999px;align-items:center;gap:.5rem;margin-top:.7rem;padding:.4rem .8rem;font-size:.88rem;display:inline-flex}.xp-note .icon{width:1rem;height:1rem;color:var(--accent-text)}.xp-case{min-height:44px;color:var(--accent-text);text-transform:none;letter-spacing:.02em;align-items:center;gap:.4rem;margin-top:.4rem;margin-right:1rem;display:inline-flex}.xp-case .icon{width:.95rem;height:.95rem}.xp-case:hover{text-underline-offset:3px;text-decoration:underline}.caps-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:1rem;display:grid}.caps-grid .chips{margin-top:.9rem}.sub-title{margin-top:1.4rem}.edu-group{color:var(--fg-2);letter-spacing:0;margin:.2rem 0 .4rem;font-size:.95rem;font-weight:600}.edu+.edu-group{margin-top:1.2rem}.note-small{margin-top:1rem;font-size:.85rem}.book-gloss{font-size:.95rem}.book-links{flex-wrap:wrap;gap:.75rem;margin-top:.5rem;display:flex}.contact-invite{max-width:52ch;color:var(--fg-2);margin-top:1rem;font-size:clamp(1.05rem,1.6vw,1.25rem)}.more-label{margin-top:1.2rem}@media (width<=1000px){.caps-grid{grid-template-columns:1fr 1fr}}@media (width<=700px){.caps-grid{grid-template-columns:1fr}}.case-tags{flex-wrap:wrap;gap:.4rem;margin-top:.25rem;display:flex}.case-tags li{border:1px solid var(--line-2);color:var(--fg-2);border-radius:999px;padding:.15rem .6rem;font-size:.78rem}.badge-ilu{background:color-mix(in srgb, var(--bg) 82%, transparent);border:1px solid var(--line-2);color:var(--fg-2);text-transform:none;letter-spacing:.02em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border-radius:999px;padding:.2rem .65rem;font-size:.75rem;position:absolute;bottom:.75rem;left:.75rem}.case-card:target{outline:2px solid var(--accent);outline-offset:4px}.case-page{padding-top:calc(var(--nav-h) + 3.5rem);padding-bottom:5rem}.case-head{padding-bottom:1.75rem}.back-link{min-height:44px;color:var(--fg-3);text-transform:none;letter-spacing:.02em;transition:color var(--dur-fast);align-items:center;gap:.5rem;margin-bottom:1.25rem;display:inline-flex}.back-link:hover{color:var(--accent-text)}.back-link .icon{width:1rem;height:1rem;transition:transform var(--dur-fast) var(--ease-out)}.back-link:hover .icon{transform:translate(-3px)}.case-head h1{letter-spacing:-.045em;max-width:16ch;font-size:clamp(2.4rem,6.5vw,5rem);line-height:1}.case-lead{max-width:60ch;color:var(--fg-2);margin-top:1.25rem;font-size:clamp(1.1rem,1.9vw,1.4rem);line-height:1.5}.case-actions{flex-wrap:wrap;align-items:center;gap:.75rem;margin-top:1.75rem;display:flex}.chip-info{border:1px solid var(--line-2);color:var(--fg-2);text-transform:none;letter-spacing:.02em;border-radius:999px;padding:.45rem .9rem;font-size:.78rem}.case-hero{margin-top:.5rem;margin-bottom:.5rem}.case-hero a{border:1px solid var(--line);border-radius:var(--r-xl,24px);background:var(--surface-2);box-shadow:var(--shadow);display:block;position:relative;overflow:hidden}.case-hero img{width:100%;height:auto;transition:transform .8s var(--ease-out)}.case-hero img.is-tall{object-fit:contain;max-height:70vh}.case-hero a:hover img{transform:scale(1.015)}.case-hero figcaption{color:var(--fg-3);margin-top:.7rem;font-size:.92rem}.case-grid{grid-template-columns:minmax(0,1fr) 20rem;align-items:start;gap:clamp(2rem,5vw,4.5rem);margin-top:2.5rem;display:grid}.case-main{gap:2.5rem;min-width:0;display:grid}.case-section>h2,.case-h{font:700 clamp(1.4rem, 2.4vw, 1.9rem)/1.1 var(--font-display);letter-spacing:-.03em;color:var(--fg);margin-bottom:1rem}.case-text{max-width:62ch;color:var(--fg-2);font-size:1.12rem;line-height:1.65}.case-credit{margin-top:.9rem;font-size:.95rem}.check-list{gap:.85rem;max-width:64ch;display:grid}.check-list li{color:var(--fg-2);padding-left:1.9rem;line-height:1.55;position:relative}.check-list li:before{content:"";background:var(--accent-soft);width:1.05rem;height:1.05rem;box-shadow:inset 0 0 0 1px var(--accent);border-radius:50%;position:absolute;top:.28em;left:0}.check-list li:after{content:"";border:solid var(--accent-text);border-width:0 2px 2px 0;width:.28rem;height:.5rem;position:absolute;top:.52em;left:.38rem;transform:rotate(45deg)}.case-side{gap:2rem;display:grid;position:sticky;top:6rem}.case-side h2{color:var(--fg-3);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.8rem;font-size:.75rem;font-weight:500}.stat-grid{grid-template-columns:1fr 1fr;gap:1rem 1.25rem;display:grid}.stat-grid div{flex-direction:column-reverse;gap:.15rem;display:flex}.stat-grid dd{font:700 1.9rem/1 var(--font-display);letter-spacing:-.04em;color:var(--accent-text);font-variant-numeric:tabular-nums}.stat-grid dt{color:var(--fg-2);font-size:.85rem}.link-list{gap:.15rem;display:grid}.link-list a{border-bottom:1px solid var(--line);min-height:44px;color:var(--fg);transition:color var(--dur-fast);justify-content:space-between;align-items:center;gap:.75rem;padding:.35rem 0;font-weight:500;display:flex}.link-list a:hover{color:var(--accent-text)}.link-list a .icon{width:1rem;height:1rem;color:var(--fg-3)}.palette{grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));gap:1.1rem 1.5rem;display:grid}.palette-family p{color:var(--fg-3);margin-bottom:.5rem}.palette-family ul{border:1px solid var(--line-2);border-radius:12px;display:flex;overflow:hidden}.palette-family li{flex:1;height:3.2rem}.case-gallery{margin-top:3.5rem}.gallery{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));align-items:start;gap:1.4rem;display:grid}.shot a{border:1px solid var(--line);border-radius:var(--r);background:var(--surface-2);transition:border-color var(--dur-fast);display:block;overflow:hidden}.shot a:hover{border-color:var(--accent)}.shot img{width:100%;height:auto;transition:transform .6s var(--ease-out)}.shot a:hover img{transform:scale(1.03)}.shot-cap{color:var(--fg-2);margin-top:.6rem;font-size:.92rem}.case-note{margin-top:1.5rem;font-size:.9rem}@media (width<=960px){.case-grid{grid-template-columns:1fr}.case-side{position:static}}@media (hover:none){.case-card:hover{border-color:var(--line);translate:none}.case-card:hover .case-cover img,.shot a:hover img,.case-hero a:hover img{transform:none}.shot a:hover{border-color:var(--line)}.link-list a:hover{color:var(--fg)}}.case-cover[data-fit=contain]{background:#14171c}.caps{--c-leadership:#bf8576;--c-architecture:#b18f60;--c-backend:#8c9965;--c-frontend:#68a182;--c-mobile:#55a1a0;--c-data:#609bb7;--c-ai:#7f95c4;--c-infra:#9c8bbd;--c-maker:#b886a7;--c-soft:#c2858e}[data-theme=light] .caps{--c-leadership:#8c4c3c;--c-architecture:#7b5518;--c-backend:#546221;--c-frontend:#216a49;--c-mobile:#006768;--c-data:#0c6383;--c-ai:#445c90;--c-infra:#68548c;--c-maker:#824b70;--c-soft:#8b4955}.caps [data-group=leadership]{--g:var(--c-leadership)}.caps [data-group=architecture]{--g:var(--c-architecture)}.caps [data-group=backend]{--g:var(--c-backend)}.caps [data-group=frontend]{--g:var(--c-frontend)}.caps [data-group=mobile]{--g:var(--c-mobile)}.caps [data-group=data]{--g:var(--c-data)}.caps [data-group=ai]{--g:var(--c-ai)}.caps [data-group=infra]{--g:var(--c-infra)}.caps [data-group=maker]{--g:var(--c-maker)}.caps [data-group=soft]{--g:var(--c-soft)}.caps-legend{margin-bottom:1rem}.caps-legend-row{flex-wrap:wrap;gap:.5rem;display:flex}.caps-btn{border:1px solid var(--line-2);min-height:44px;color:var(--fg-2);font:inherit;cursor:pointer;transition:border-color var(--dur-fast), color var(--dur-fast), background var(--dur-fast);background:0 0;border-radius:999px;align-items:center;gap:.55rem;padding:.4rem .95rem;font-size:.85rem;display:inline-flex}.caps-btn:before{content:"";background:var(--g);border-radius:50%;flex:none;width:.65rem;height:.65rem}.caps-btn:hover,.caps-btn:focus-visible,.caps-btn[aria-pressed=true]{border-color:var(--g);color:var(--fg);background:color-mix(in srgb, var(--g) 14%, transparent)}.caps-btn[aria-pressed=true]{box-shadow:inset 0 0 0 1px var(--g)}.caps-size-note{color:var(--fg-3);margin-top:.9rem;font-size:.8rem}.caps-size-note b{color:var(--fg-2);font-weight:600}.caps-grid.is-cloud{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-l);box-shadow:var(--shadow);flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.15rem .9rem;padding:clamp(1rem,2.5vw,1.75rem) clamp(.75rem,3vw,2.25rem);display:flex}.is-cloud .panel{display:contents}.is-cloud .panel-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:0;position:absolute;overflow:hidden}.is-cloud .chips{display:contents}.is-cloud .chips li{rotate:var(--tilt,0deg);color:var(--g);font-family:var(--font-display);letter-spacing:-.02em;border:0;border-radius:.5rem;padding:.05rem .35rem;line-height:1.15}.is-cloud .chips li:hover{color:var(--g);border-color:#0000;translate:none}.is-cloud .chips li[data-r="3"]{font-size:clamp(1.15rem,1.9vw,1.5rem);font-weight:700}.is-cloud .chips li[data-r="2"]{font-size:clamp(.95rem,1.35vw,1.1rem);font-weight:600}.is-cloud .chips li[data-r="1"]{font-size:clamp(.8rem,1.05vw,.88rem);font-weight:500}.caps.has-active .is-cloud .panel:not(.is-on) li{color:var(--fg-3)}.caps.has-active .is-cloud .panel.is-on li{background:color-mix(in srgb, var(--g) 16%, transparent)}@media (prefers-reduced-motion:no-preference){.is-cloud .chips li{transition:color .2s var(--ease-out), background .2s var(--ease-out)}}.edu-panel{margin-top:1rem}.edu-cols{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:1rem clamp(1.5rem,4vw,3.5rem);display:grid}.edu-col .edu li{grid-template-columns:3.4rem minmax(0,1fr);gap:.15rem 1rem;padding:.8rem 0}.edu-col .edu .edu-inst{grid-column:2}.edu-col .edu li:first-child{border-top:0;padding-top:.2rem}.edu-col .edu-group{border-bottom:1px solid var(--line-2);margin:0 0 .5rem;padding-bottom:.6rem}.edu-col .edu-lang{margin-top:1.6rem}@media (width<=800px){.edu-cols{grid-template-columns:1fr}.edu-col+.edu-col{margin-top:.5rem}}@keyframes rise{0%{transform:translateY(108%)}to{transform:translateY(0)}}@keyframes fade-up{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}@keyframes ping{0%{opacity:.55;transform:scale(1)}70%,to{opacity:0;transform:scale(2.8)}}@keyframes sweep{to{--sweep:360deg}}@keyframes bob{0%,to{translate:0}50%{translate:0 4px}}@keyframes grow{to{transform:scaleX(1)}}.js .line-in{animation:rise .9s var(--ease-out) forwards;animation-delay:calc(var(--i) * .11s + .12s);transform:translateY(108%)}.js .hero-copy>:not(.hero-name){opacity:0;animation:fade-up .7s var(--ease-out) forwards}.js .hero-copy>.eyebrow{animation-delay:60ms}.js .hero-copy>.hero-role{animation-delay:.38s}.js .hero-copy>.hero-support{animation-delay:.48s}.js .hero-copy>.hero-cta{animation-delay:.58s}.js .hero-copy>.hero-now{animation-delay:.7s}.js .hero-copy>.hero-facts{animation-delay:.78s}.js .hero-portrait{opacity:0;animation:fade-up 1s var(--ease-out) .25s forwards}.js .reveal{opacity:0;transition:opacity .65s var(--ease-out), transform .65s var(--ease-out);transition-delay:calc(var(--i,0) * 70ms);transform:translateY(18px)}.js .reveal.is-in{opacity:1;transform:none}.js .card.reveal.is-in{transition:opacity .65s var(--ease-out), transform .65s var(--ease-out), border-color var(--dur-fast), translate var(--dur-fast) var(--ease-out)}.progress{z-index:60;background:var(--accent);transform-origin:0;pointer-events:none;height:3px;position:fixed;inset:0 0 auto;transform:scaleX(0)}@supports (animation-timeline:scroll()){.progress{animation:linear both grow;animation-timeline:scroll(root)}}html.vt-theme::view-transition-old(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-new(root){mix-blend-mode:normal;animation:none}html.vt-theme::view-transition-old(root){z-index:1}html.vt-theme::view-transition-new(root){z-index:2}html.vt-local::view-transition-old(root){animation:none}html.vt-local::view-transition-new(root){animation:none}html.vt-local::view-transition-group(*){animation-duration:.42s;animation-timing-function:var(--ease-out)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;transition-delay:0s!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.js .line-in,.js .hero-copy>*,.js .hero-portrait,.js .reveal{opacity:1;transform:none}.sweep,.scroll-hint .icon,.live-dot:after{animation:none}.g-bar{transform:scaleX(1)}.meter i{transform:scaleX(calc(var(--v) / 100))}.ring-gauge{--pp:var(--p)}}@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto}@supports (animation-timeline:view()){@keyframes hero-copy-out{to{opacity:0;translate:0 -56px}}@keyframes stage-out{to{opacity:.2;translate:0 -44px;scale:.9}}@keyframes ring-fwd{to{rotate:220deg}}@keyframes ring-back{to{rotate:-160deg}}@keyframes glow-a{to{translate:-8vmax 12vmax}}@keyframes glow-b{to{translate:10vmax -8vmax}}@keyframes hint-out{to{opacity:0}}@keyframes wipe-in{0%{clip-path:inset(-.25em 100% -.25em 0);opacity:0;translate:-16px}to{clip-path:inset(-.25em -.25em -.25em 0);opacity:1;translate:0}}@keyframes deal{0%{scale:.9;rotate:var(--tilt,-2deg);translate:0 48px}}@keyframes unveil{0%{clip-path:inset(16% 10% round 18px)}to{clip-path:inset(0 round 16px)}}@keyframes drift{0%{translate:0 -7%}to{translate:0 7%}}@keyframes cover-in{0%{opacity:.2;transform:perspective(900px)rotateY(26deg)translate(-28px)}}@keyframes map-in{0%{clip-path:inset(22% 0 0 round 24px)}to{clip-path:inset(0 round 24px)}}@keyframes fill{to{--fill:1}}@keyframes lit{0%{color:var(--fg-3)}}.hero-copy{animation:linear both hero-copy-out;animation-timeline:scroll(root);animation-range:0 70vh}.portrait-stage{animation:linear both stage-out;animation-timeline:scroll(root);animation-range:0 80vh}.ring.r2{animation:linear both ring-fwd;animation-timeline:scroll(root);animation-range:0 170vh}.ring.r3{animation:linear both ring-back;animation-timeline:scroll(root);animation-range:0 170vh}.glow-a{animation:linear both glow-a;animation-timeline:scroll(root);animation-range:0 160vh}.glow-b{animation:linear both glow-b;animation-timeline:scroll(root);animation-range:0 160vh}.scroll-hint{animation:linear both hint-out;animation-timeline:scroll(root);animation-range:0 24vh}.kicker{animation:linear backwards wipe-in;animation-timeline:view();animation-range:entry entry 40%}.section-head h2,.book h2{animation:linear backwards wipe-in;animation-timeline:view();animation-range:entry 4% entry 55%}.about-lead{view-timeline:--lead block}.about-lead .w{animation:linear backwards lit;animation-timeline:--lead;animation-range:entry calc(6% + var(--k) * 0.85%) entry calc(6% + var(--k) * 0.85% + 18%)}.bento .card,.panel,.facts{animation:linear backwards deal;animation-timeline:view();animation-range:entry entry 60%}.bento .card:nth-child(odd){--tilt:-2.2deg}.bento .card:nth-child(2n){--tilt:2.2deg}.panel,.facts{--tilt:0deg}.xp-body{animation:linear both fill;animation-timeline:view();animation-range:cover 22% cover 58%}.xp-body:after{content:"";background:var(--accent);transform-origin:top;width:2px;scale:1 var(--fill);border-radius:2px;position:absolute;top:0;bottom:0;left:-1px}.xp:not(.is-current) .xp-body:before{background:color-mix(in srgb, var(--accent) calc(var(--fill) * 100%), var(--bg));border-color:color-mix(in srgb, var(--accent) calc(var(--fill) * 100%), var(--fg-3))}.case-cover{view-timeline:--media block;animation:linear backwards unveil;animation-timeline:--media;animation-range:entry entry 70%}.case-cover img{animation:linear both drift;animation-timeline:--media;animation-range:cover;scale:1.12}.case-cover[data-fit=contain] img{animation:none;scale:1}.book{view-timeline:--book block}.book-cover{animation:linear backwards cover-in;animation-timeline:--book;animation-range:entry 5% entry 80%}.map{animation:linear backwards map-in;animation-timeline:view();animation-range:entry entry 65%}}}
