@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-soft-normal-DSA2Kggd.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-soft-normal-DKHvU-YN.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-soft-normal-C-lS_vzd.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:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-soft-italic-CyEZfaGz.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-soft-italic-CFDsOWEG.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Fraunces Variable;font-style:italic;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-soft-italic-CIOv5diB.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:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-ext-wght-normal-BOeWTOD4.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-cyrillic-wght-normal-DqGufNeO.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-ext-wght-normal-DlzME5K_.woff2)format("woff2-variations");unicode-range:U+1F??}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-greek-wght-normal-CkhJZR-_.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-vietnamese-wght-normal-CBcvBZtf.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.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:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-ext-wght-normal-EocZY2iu.woff2)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.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}html.lenis,html.lenis body{height:auto}.lenis:not(.lenis-autoToggle).lenis-stopped{overflow:clip}.lenis [data-lenis-prevent],.lenis [data-lenis-prevent-wheel],.lenis [data-lenis-prevent-touch],.lenis [data-lenis-prevent-vertical],.lenis [data-lenis-prevent-horizontal]{overscroll-behavior:contain}.lenis.lenis-smooth iframe{pointer-events:none}.lenis.lenis-autoToggle{transition-behavior:allow-discrete;transition-property:overflow;transition-duration:1ms}:root{--ink:#0e0b16;--ink-2:#15111f;--ink-3:#1e1829;--ink-4:#2a2236;--cream:#faf4ec;--text:#ede6f2;--muted:#b6adc4;--dim:#8a809a;--apricot:#ffb37a;--rose:#ff7a93;--lilac:#b79cff;--sky:#8cc8ff;--mint:#8ee6c4;--line:#faf4ec1a;--line-2:#faf4ec2e;--glass:#1813229e;--grad:linear-gradient(100deg, var(--apricot), var(--rose) 52%, var(--lilac));--serif:"Fraunces Variable", "Iowan Old Style", Georgia, serif;--sans:"Inter Variable", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--gutter:clamp(16px, 4vw, 48px);--maxw:1240px;--nav-h:64px;--radius:20px;--ease:cubic-bezier(.2, .7, .1, 1);--safe-b:env(safe-area-inset-bottom,0px)}*,:before,:after{box-sizing:border-box}html{background:var(--ink);color:var(--text);-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;scrollbar-color:var(--ink-4) var(--ink)}body{background:var(--ink);min-height:100svh;font-family:var(--sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.6;overflow-x:clip}img{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit}::selection{color:var(--cream);background:#ffb37a59}:focus-visible{outline:2px solid var(--apricot);outline-offset:3px;border-radius:6px}[hidden]{display:none!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.skip{z-index:100;background:var(--cream);color:var(--ink);border-radius:10px;padding:10px 14px;font-weight:600;text-decoration:none;transition:top .2s;position:fixed;top:-60px;left:12px}.skip:focus{top:12px}#gl{z-index:0;pointer-events:none;width:100vw;height:100lvh;display:block;position:fixed;inset:0}.no-gl #gl{display:none}.no-gl body,body.no-gl{background:radial-gradient(60vw 50vh at 85% 10%, #ff7a9329, transparent 70%), radial-gradient(60vw 60vh at 0% 100%, #b79cff24, transparent 70%), var(--ink);background-attachment:fixed}.grain{z-index:3;pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}#veil{z-index:45;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--vx,50%) var(--vy,50%), #ffb37a38, #0e0b16e6 38%, var(--ink) 70%);position:fixed;inset:0}#app{z-index:1;transform-origin:var(--ox,50%) var(--oy,50%);outline:none;position:relative}#loader{z-index:90;background:var(--ink);transition:opacity .6s var(--ease), visibility .6s;place-items:center;display:grid;position:fixed;inset:0}#loader.is-done{opacity:0;visibility:hidden}.loader__arch{border:1.5px solid #ffd6b440;border-radius:50% 50% 6px 6px/40% 40% 6px 6px;width:44px;height:56px;position:relative;overflow:hidden}.loader__arch span{background:var(--grad);transform-origin:bottom;height:100%;animation:loader-fill 1.2s var(--ease) infinite alternate;opacity:.85;position:absolute;inset:auto 0 0}@keyframes loader-fill{0%{transform:scaleY(.08)}to{transform:scaleY(1)}}.kicker{font:500 12px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--apricot);margin:0}.serif{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 0}.h1,.h2,.h3{font-family:var(--serif);font-variation-settings:"SOFT" 100, "WONK" 0;letter-spacing:-.02em;color:var(--cream);text-wrap:balance;margin:0;font-weight:380}.h1{font-size:clamp(46px,8.4vw,124px);line-height:.95}.h2{font-size:clamp(34px,4.8vw,66px);line-height:1.02}.h3{font-size:clamp(26px,2.6vw,38px);line-height:1.1}.h1 em,.h2 em,.h3 em,.grad{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text;margin-right:-.04em;padding-right:.08em;font-style:italic;font-weight:340}.lede{color:var(--muted);text-wrap:pretty;max-width:54ch;margin:0;font-size:clamp(17px,1.35vw,20px);line-height:1.6}p{text-wrap:pretty}.btn{background:var(--cream);color:var(--ink);font:600 15px/1 var(--sans);cursor:pointer;white-space:nowrap;transition:transform .35s var(--ease), background .3s, box-shadow .3s;border:0;border-radius:999px;justify-content:center;align-items:center;gap:.55em;padding:.9em 1.35em;text-decoration:none;display:inline-flex}.btn:hover{background:#fff;transform:translateY(-2px);box-shadow:0 10px 30px -10px #ffb37a8c}.btn--ghost{color:var(--text);box-shadow:inset 0 0 0 1px var(--line-2);background:0 0}.btn--ghost:hover{background:#ffffff0f;box-shadow:inset 0 0 0 1px #ffd6b466}.btn--small{padding:.65em 1.05em;font-size:14px}.btn-row{flex-wrap:wrap;gap:12px;display:flex}.nav{z-index:40;height:var(--nav-h);padding:0 var(--gutter);transition:transform .5s var(--ease);background:linear-gradient(#0e0b16cc,#0e0b1600);justify-content:space-between;align-items:center;gap:16px;display:flex;position:fixed;inset:0 0 auto}.nav__brand{letter-spacing:-.01em;color:var(--cream);align-items:center;gap:10px;font-size:15px;font-weight:600;text-decoration:none;display:inline-flex}.nav__mark{border:2px solid var(--apricot);border-bottom:0;border-radius:999px 999px 2px 2px;width:15px;height:19px;position:relative}.nav__mark:after{content:"";background:var(--apricot);border-radius:50%;width:4px;height:4px;margin-left:-2px;position:absolute;top:6px;left:50%}.nav__links{border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);background:#18132280;border-radius:999px;gap:4px;padding:4px;display:flex}.nav__links a{color:var(--muted);border-radius:999px;padding:7px 14px;font-size:14px;text-decoration:none;transition:color .25s,background .25s}.nav__links a:hover{color:var(--cream)}.nav__links a[aria-current=page]{color:var(--ink);background:var(--cream)}[data-page=home] .nav__links{opacity:0;pointer-events:none}@media (max-width:820px){.nav__links{display:none}}.home{min-height:100svh;max-width:var(--maxw);padding:calc(var(--nav-h) + 16px) var(--gutter) 40px;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:center;gap:clamp(28px,5vw,88px);margin:0 auto;display:grid}.home__copy{min-width:0}.home__kicker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.home__title{margin:18px 0 22px;font-size:clamp(48px,7.4vw,106px);line-height:.96}.home__title .line{display:block}.home__sub{max-width:44ch}.doors{max-width:600px;margin-top:clamp(28px,4.5vh,44px)}.doors__label{color:var(--dim);margin-bottom:12px}.door{--accent:var(--apricot);border:1px solid var(--line);color:inherit;isolation:isolate;transition:border-color .4s, background .4s, transform .5s var(--ease);background:#ffffff06;border-radius:18px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:clamp(12px,2vw,20px);padding:16px 16px 16px 20px;text-decoration:none;display:grid;position:relative;overflow:hidden}.door+.door{margin-top:10px}.door:before{content:"";z-index:-1;opacity:0;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--accent) 22%, transparent), transparent 65%);transition:opacity .4s;position:absolute;inset:0}.door:hover,.door:focus-visible{border-color:color-mix(in srgb, var(--accent) 45%, transparent);background:#ffffff0a;transform:translate(6px)}.door:hover:before,.door:focus-visible:before{opacity:1}.door__no{font:500 12px var(--mono);color:var(--accent);letter-spacing:.1em}.door__title{font-family:var(--serif);font-variation-settings:"SOFT" 100;color:var(--cream);flex-wrap:wrap;align-items:center;gap:10px;font-size:clamp(22px,2.2vw,30px);font-weight:420;line-height:1.1;display:flex}.door__blurb{color:var(--muted);margin-top:4px;font-size:14px;line-height:1.45;display:block}.door__arrow{border:1px solid var(--line-2);width:42px;height:42px;transition:background .35s, color .35s, transform .5s var(--ease), border-color .35s;border-radius:50%;place-items:center;display:grid}.door__arrow svg{width:16px;height:16px}.door:hover .door__arrow,.door:focus-visible .door__arrow{background:var(--cream);color:var(--ink);border-color:var(--cream);transform:rotate(-45deg)}.door--work{--accent:var(--sky)}.door--life{--accent:var(--rose)}.door--ride{--accent:var(--apricot);background:linear-gradient(var(--ink-2), var(--ink-2)) padding-box, linear-gradient(110deg, #ffb37ab3, #ff7a9380, #b79cff99) border-box;border:1px solid #0000}.door--ride:hover{background:linear-gradient(#1a1524, #1a1524) padding-box, var(--grad) border-box}.door__badge{font:500 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink);background:var(--grad);white-space:nowrap;border-radius:999px;padding:5px 8px}.arch{perspective:1100px;justify-self:center;width:min(100%,430px);position:relative}.arch__stage{aspect-ratio:4/5;transform-style:preserve-3d;transform:rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));transition:transform .25s linear;position:relative}.arch__glow{filter:blur(24px);background:radial-gradient(closest-side,#ffa8786b,#ff7a9324 55%,#0000 75%);border-radius:50%;position:absolute;inset:-16%;transform:translateZ(-60px)}.arch__ring{border:1px solid #ffd6b447;border-radius:50% 50% 34px 34px/41% 41% 34px 34px;position:absolute;inset:-16px;transform:translateZ(30px)}.arch__frame{background:var(--ink-3);border-radius:50% 50% 24px 24px/40% 40% 24px 24px;position:absolute;inset:0;overflow:hidden;transform:translateZ(0);box-shadow:0 0 0 1px #ffd6b438,0 40px 90px -30px #ff7a9373}.arch__frame img{object-fit:cover;object-position:50% 30%;width:100%;height:100%;transform:scale(1.08) translate(calc(var(--ry,0deg) * -.6), calc(var(--rx,0deg) * .6))}.arch__frame:after{content:"";pointer-events:none;background:linear-gradient(#0000 65%,#0e0b1673),linear-gradient(160deg,#ffbe8c1f,#0000 50%);position:absolute;inset:0}.chip{background:var(--glass);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(12px);color:var(--cream);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:500;display:inline-flex;position:absolute;box-shadow:0 14px 40px -16px #0009}.chip--status{bottom:16%;left:-10%;transform:translateZ(80px)}.chip--place{font:500 12px var(--mono);letter-spacing:.04em;top:22%;right:-8%;transform:translateZ(60px)}.chip--stack{bottom:4%;right:-4%;transform:translateZ(110px)}.dot-live{background:var(--mint);border-radius:50%;width:8px;height:8px;animation:2.2s infinite live;box-shadow:0 0 #8ee6c499}@keyframes live{70%{box-shadow:0 0 0 9px #8ee6c400}to{box-shadow:0 0 #8ee6c400}}@media (max-width:900px){.home{padding-top:calc(var(--nav-h) + 4px);grid-template-columns:1fr;align-content:start;gap:26px}.arch{order:-1;width:min(54vw,270px);margin-top:8px}.home__sep{display:none}.home__kicker{gap:4px 10px}.home__copy{text-align:left}.home__title{margin:14px 0 16px}.chip{padding:7px 11px;font-size:12px}.chip--status{bottom:12%;left:-18%}.chip--place{top:16%;right:-16%}.chip--stack{display:none}}@media (max-width:420px){.door{padding:14px 12px 14px 14px}.door__arrow{width:36px;height:36px}.door__blurb{font-size:13.5px}}.page{position:relative}.wrap{max-width:var(--maxw);padding-left:var(--gutter);padding-right:var(--gutter);margin:0 auto}.section{padding-top:clamp(72px,12vh,140px);padding-bottom:clamp(72px,12vh,140px)}.page-hero{min-height:100svh;padding-top:calc(var(--nav-h) + 24px);flex-direction:column;justify-content:center;gap:22px;padding-bottom:64px;display:flex}.scroll-cue{font:500 12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--dim);align-items:center;gap:10px;margin-top:10px;display:inline-flex}.scroll-cue i{background:linear-gradient(var(--apricot), transparent);width:1px;height:36px;animation:cue 1.8s var(--ease) infinite;transform-origin:top}@keyframes cue{0%{transform:scaleY(0)}60%{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(1)}}.section-head{gap:14px;margin-bottom:clamp(32px,5vw,56px);display:grid}.card{border-radius:var(--radius);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);background:#15111fb8;padding:22px 22px 20px;position:relative}@media (max-width:760px){.card{-webkit-backdrop-filter:none;background:#15111fe6}}.card h4{color:var(--cream);letter-spacing:-.005em;margin:0 0 6px;font-size:16px;font-weight:600}.card p{color:var(--muted);margin:0;font-size:15px;line-height:1.55}.tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.tags li{font:500 12px/1.3 var(--mono);color:var(--muted);border:1px solid var(--line);background:#ffffff05;border-radius:999px;padding:5px 10px}.work-col{max-width:720px}@media (min-width:1100px){.work-col{max-width:min(720px,56vw)}}.stats{border-radius:var(--radius);background:var(--line);border:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;max-width:880px;margin-top:26px;display:grid;overflow:hidden}.stat{background:#110d1adb;padding:18px 18px 16px}.stat__value{font-family:var(--serif);font-variation-settings:"SOFT" 100;background:var(--grad);color:#0000;font-variant-numeric:tabular-nums;-webkit-background-clip:text;background-clip:text;font-size:clamp(32px,3.4vw,46px);font-weight:420;line-height:1}.stat__label{color:var(--muted);margin-top:8px;font-size:13px;line-height:1.4}@media (max-width:760px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}.role{border-top:1px solid var(--line);padding-top:clamp(40px,7vh,72px);padding-bottom:clamp(40px,7vh,72px)}.role:first-of-type{border-top:0}.role__meta{flex-wrap:wrap;align-items:baseline;gap:6px 14px;margin-bottom:10px;display:flex}.role__when{font:500 12.5px var(--mono);letter-spacing:.06em;color:var(--apricot)}.role__where{color:var(--dim);font-size:14px}.role__org{color:var(--text);margin:8px 0 0;font-size:17px;font-weight:500}.role__lede{color:var(--muted);max-width:50ch;margin:14px 0 22px;font-size:18px}.highlights{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:18px;display:grid}.highlights .card:only-child{grid-column:1/-1}@media (max-width:640px){.highlights{grid-template-columns:1fr}}.card__idx{font:500 11px var(--mono);color:var(--dim);position:absolute;top:18px;right:18px}.projects{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}@media (max-width:760px){.projects{grid-template-columns:1fr}}.project{transition:border-color .4s, transform .5s var(--ease);transform-style:preserve-3d;flex-direction:column;gap:12px;padding:24px;display:flex}.project:hover{border-color:#ffd6b44d}.project__kind{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--lilac)}.project h3{font-family:var(--serif);font-variation-settings:"SOFT" 100;color:var(--cream);margin:0;font-size:26px;font-weight:450;line-height:1.1}.flow{flex-wrap:wrap;align-items:center;gap:6px;margin:4px 0 0;padding:0;list-style:none;display:flex}.flow li{font:500 11.5px/1.2 var(--mono);color:var(--muted);align-items:center;gap:6px;display:inline-flex}.flow li span{border:1px solid var(--line-2);background:#ffffff08;border-radius:8px;padding:5px 9px;transition:color .3s,border-color .3s,background .3s,box-shadow .3s}.flow li+li:before{content:"→";color:var(--dim)}.flow li.is-lit span{color:var(--ink);background:var(--apricot);border-color:var(--apricot);box-shadow:0 0 18px -2px #ffb37ab3}.edu{gap:12px;display:grid}.edu__item{grid-template-columns:140px minmax(0,1fr);align-items:baseline;gap:20px;padding:26px 24px;display:grid}.edu__when{font:500 13px var(--mono);color:var(--apricot)}.edu__item h3{font-family:var(--serif);font-variation-settings:"SOFT" 100;color:var(--cream);margin:0 0 6px;font-size:clamp(22px,2.4vw,30px);font-weight:430;line-height:1.15}@media (max-width:640px){.edu__item{grid-template-columns:1fr;gap:8px}}.toolbox{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.toolbox h4{margin-bottom:14px}@media (max-width:640px){.toolbox{grid-template-columns:1fr}}.langs{color:var(--muted);flex-wrap:wrap;gap:10px 28px;margin-top:22px;font-size:15px;display:flex}.langs b{color:var(--cream);font-weight:600}.next{text-align:left}.next__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:900px;margin-top:34px;display:grid}@media (max-width:640px){.next__grid{grid-template-columns:1fr}}.next .door+.door{margin-top:0}.footer{padding:36px var(--gutter) calc(36px + var(--safe-b));color:var(--dim);max-width:var(--maxw);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:12px 24px;margin:0 auto;font-size:13px;display:flex}.footer a{color:var(--muted);text-decoration:none}.footer a:hover{color:var(--cream)}.footer nav{gap:18px;display:flex}.tour{position:relative}.tour__sticky{height:100svh;position:sticky;top:0;overflow:hidden}.tour__drag{touch-action:pan-y;cursor:grab;position:absolute;inset:0}.tour__drag:active{cursor:grabbing}.tour__panel{left:var(--gutter);pointer-events:none;gap:18px;width:min(460px,40vw);display:grid;position:absolute;top:50%;transform:translateY(-46%)}.tour__panel>*{pointer-events:auto}.tour__count{font:500 12px var(--mono);letter-spacing:.12em;color:var(--dim);align-items:center;gap:12px;display:flex}.tour__bar{background:var(--line-2);border-radius:2px;flex:1;max-width:160px;height:2px;overflow:hidden}.tour__bar i{background:var(--grad);transform-origin:0;width:100%;height:100%;transform:scaleX(var(--p,0));display:block}.tour__place{gap:8px;display:grid}.tour__place h2{font-size:clamp(36px,4.4vw,60px)}.tour__note{color:var(--muted);max-width:40ch;margin:0;font-size:17px}.tour__photos{height:clamp(180px,30vh,300px);position:relative}.polaroid{background:#f6efe6;border-radius:4px;width:auto;height:100%;margin:0;padding:8px 8px 30px;position:absolute;top:0;left:0;transform:rotate(-3deg);box-shadow:0 30px 60px -25px #000000bf}.polaroid img{aspect-ratio:3/4;object-fit:cover;border-radius:2px;width:auto;height:100%}.polaroid.is-landscape img{aspect-ratio:4/3}.polaroid figcaption{font:italic 400 13px/1.2 var(--serif);color:#3a2e3a;white-space:nowrap;text-overflow:ellipsis;position:absolute;bottom:7px;left:10px;right:10px;overflow:hidden}.polaroid--2{height:82%;top:12%;left:46%;transform:rotate(5deg)}.polaroid--empty{aspect-ratio:3/4;color:#f6efe6;background:linear-gradient(160deg,#1f3b2b,#13261c);place-items:center;display:grid}.polaroid--empty span{font:italic 400 22px/1.2 var(--serif);text-align:center;padding:16px}.tour__hint{font:500 11.5px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}@media (max-width:900px){.tour__panel{left:var(--gutter);right:var(--gutter);width:auto;top:auto;bottom:calc(18px + var(--safe-b));border-radius:var(--radius);border:1px solid var(--line);background:#110d1adb;gap:12px;padding:16px;transform:none}.tour__photos{width:120px;height:128px;position:absolute;top:-86px;right:14px}.polaroid{padding:5px 5px 18px;left:auto;right:0}.polaroid figcaption,.polaroid--2{display:none}.tour__place{padding-right:0}.tour__place h2{max-width:calc(100% - 120px);font-size:clamp(30px,8vw,40px)}.tour__note{font-size:15px}.tour__hint{display:none}}.hobbies{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;display:grid}@media (max-width:1000px){.hobbies{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width:560px){.hobbies{grid-template-columns:1fr}}.hobby{flex-direction:column;gap:10px;min-height:250px;display:flex;overflow:hidden}.hobby__art{border:1px solid var(--line);background:#ffffff06;border-radius:14px;place-items:center;height:110px;margin:-6px -6px 6px;display:grid;position:relative;overflow:hidden}.hobby__art img{object-fit:cover;object-position:50% 40%;width:100%;height:100%}.hobby__art svg{width:100%;height:100%}.gallery{columns:3 260px;column-gap:12px}.gallery button{background:var(--ink-3);cursor:zoom-in;break-inside:avoid;border:0;border-radius:14px;width:100%;margin:0 0 12px;padding:0;display:block;position:relative;overflow:hidden}.gallery img{width:100%;height:auto;transition:transform .8s var(--ease), filter .5s}.gallery button:hover img{transform:scale(1.04)}.gallery button span{font:500 11.5px var(--mono);color:var(--cream);opacity:0;background:#0e0b16b3;border-radius:999px;padding:5px 9px;transition:opacity .3s,transform .3s;position:absolute;bottom:10px;left:10px;transform:translateY(6px)}.gallery button:hover span,.gallery button:focus-visible span{opacity:1;transform:none}.lightbox{width:100vw;max-width:100vw;height:100svh;max-height:100svh;color:var(--cream);background:0 0;border:0;padding:0}.lightbox::backdrop{background:#08060deb}.lightbox figure{align-content:center;place-items:center;gap:12px;height:100%;margin:0;padding:56px 16px;display:grid}.lightbox img{border-radius:12px;width:auto;max-width:min(92vw,1100px);height:auto;max-height:calc(100svh - 140px)}.lightbox figcaption{font:500 13px var(--mono);color:var(--muted)}.lightbox__close{position:absolute;top:14px;right:14px}.ride{position:relative}.ride__ui{z-index:5;pointer-events:none;position:fixed;inset:0}.ride__ui>*{pointer-events:auto}.ride__map{top:calc(var(--nav-h) + 6px);left:var(--gutter);right:var(--gutter);pointer-events:none;gap:10px;display:grid;position:absolute}.ride__chapter{font:500 11.5px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:12px;display:flex}.ride__chapter b{color:var(--cream);font-weight:500}.ride__line{pointer-events:auto;height:14px;position:relative}.ride__line:before,.ride__fill{content:"";background:var(--line-2);border-radius:2px;height:2px;position:absolute;top:6px;left:0;right:0}.ride__fill{background:var(--grad);transform-origin:0;transform:scaleX(var(--p,0))}.ride__stop{cursor:pointer;background:0 0;border:0;width:14px;height:14px;margin-left:-7px;padding:0;position:absolute;top:0}.ride__stop:after{content:"";background:var(--ink);border:1.5px solid var(--dim);border-radius:50%;transition:background .3s,border-color .3s,transform .3s;position:absolute;inset:3px}.ride__stop.is-past:after{background:var(--apricot);border-color:var(--apricot)}.ride__stop:hover:after,.ride__stop:focus-visible:after{transform:scale(1.5)}.ride__stop[data-chapter=education].is-past:after{background:var(--sky);border-color:var(--sky)}.ride__stop[data-chapter=travel].is-past:after,.ride__stop[data-chapter=terminus].is-past:after{background:var(--rose);border-color:var(--rose)}.ride__card{left:var(--gutter);bottom:calc(clamp(18px, 4vh, 40px) + var(--safe-b));width:min(470px, calc(100vw - 2 * var(--gutter)));border-radius:var(--radius);border:1px solid var(--line-2);-webkit-backdrop-filter:blur(14px);background:#110d1ab8;padding:22px 24px;position:absolute;box-shadow:0 30px 80px -30px #000c}.ride__card h2{font-family:var(--serif);font-variation-settings:"SOFT" 100;color:var(--cream);margin:8px 0;font-size:clamp(26px,2.6vw,36px);font-weight:420;line-height:1.08}.ride__card p{color:var(--muted);margin:0;font-size:15.5px;line-height:1.55}.ride__card .btn-row{margin-top:16px}.ride__controls{right:var(--gutter);bottom:calc(clamp(18px, 4vh, 40px) + var(--safe-b));align-items:center;gap:12px;display:flex;position:absolute}.ride__play{border:1px solid var(--line-2);-webkit-backdrop-filter:blur(10px);cursor:pointer;width:58px;height:58px;transition:background .3s, transform .4s var(--ease);background:#110d1ab3;border-radius:50%;place-items:center;display:grid}.ride__play:hover{background:var(--cream);color:var(--ink);transform:scale(1.05)}.ride__play svg{width:18px;height:18px}.ride__skip{color:var(--muted);padding:10px 4px;font-size:14px;text-decoration:none}.ride__skip:hover{color:var(--cream)}.ride__hint{text-align:center;pointer-events:none;justify-items:center;gap:12px;transition:opacity .5s;display:grid;position:absolute;top:30%;left:50%;transform:translate(-50%,-50%)}.ride__hint .h2{font-size:clamp(40px,6vw,84px)}.ride__hint.is-hidden{opacity:0}.ride__track{pointer-events:none}@media (max-width:760px){.ride__card{width:auto;left:12px;right:12px;bottom:calc(12px + var(--safe-b));-webkit-backdrop-filter:none;background:#110d1ae0;padding:16px 18px}.ride__card p{font-size:14.5px}.ride__controls{bottom:auto;right:12px;top:calc(var(--nav-h) + 48px)}.ride__play{width:46px;height:46px}.ride__skip{display:none}.ride__map{left:12px;right:12px}.ride__count{display:none}.ride__hint{width:calc(100vw - 32px);top:25%}}.no-gl .ride__ui,.no-gl .ride__track{display:none}.ride__list{padding:calc(var(--nav-h) + 40px) var(--gutter) 80px;gap:14px;max-width:760px;margin:0 auto;display:grid}.has-gl .ride__list{clip:rect(0, 0, 0, 0);width:1px;height:1px;overflow:hidden;position:absolute!important}.contact{border:1px solid var(--line-2);width:min(520px,100vw - 24px);max-height:calc(100svh - 24px);color:var(--text);background:#15111f;border-radius:26px;padding:0;overflow:auto;box-shadow:0 50px 120px -30px #000000e6}.contact::backdrop{-webkit-backdrop-filter:blur(6px);background:#08060db3}.contact[open]{animation:pop .45s var(--ease)}@keyframes pop{0%{opacity:0;transform:translateY(16px)scale(.98)}}.contact__inner{gap:14px;padding:30px 28px 26px;display:grid;position:relative}.contact__close{border:1px solid var(--line-2);cursor:pointer;width:38px;height:38px;color:var(--muted);background:0 0;border-radius:50%;font-size:22px;line-height:1;position:absolute;top:14px;right:14px}.contact__close:hover{color:var(--cream);background:#ffffff0f}.contact__title{font-family:var(--serif);font-variation-settings:"SOFT" 100;color:var(--cream);margin:0;font-size:44px;font-weight:400;line-height:1}.contact__title em{background:var(--grad);color:#0000;-webkit-background-clip:text;background-clip:text;padding-right:.06em;font-style:italic}.contact__lede{color:var(--muted);margin:0}.contact__email{border:1px solid var(--line);background:#ffffff0a;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;min-width:0;padding:10px 10px 10px 16px;display:flex}.contact__email a{font:500 14.5px var(--mono);color:var(--cream);text-overflow:ellipsis;white-space:nowrap;min-width:0;text-decoration:none;overflow:hidden}.contact__form{gap:12px;margin-top:4px;display:grid}.contact__form label{color:var(--muted);gap:6px;font-size:13px;display:grid}.contact__form input,.contact__form textarea{border:1px solid var(--line-2);width:100%;color:var(--cream);font:400 16px/1.4 var(--sans);resize:vertical;background:#00000040;border-radius:12px;padding:12px 14px}.contact__form input:focus,.contact__form textarea:focus{border-color:var(--apricot);outline:none;box-shadow:0 0 0 3px #ffb37a2e}.contact__form .btn{justify-self:start}.contact__hint{color:var(--dim);margin:0;font-size:12.5px}.contact__error{color:var(--rose);margin:0;font-size:13.5px}.contact__links{border-top:1px solid var(--line);gap:18px;padding-top:12px;font-size:14px;display:flex}.contact__links a{color:var(--muted);text-decoration:none}.contact__links a:hover{color:var(--cream)}.toast{left:50%;bottom:calc(24px + var(--safe-b));z-index:95;background:var(--cream);color:var(--ink);opacity:0;pointer-events:none;transition:opacity .3s, transform .4s var(--ease);border-radius:999px;padding:10px 16px;font-size:14px;font-weight:600;position:fixed;transform:translate(-50%,20px)}.toast.is-on{opacity:1;transform:translate(-50%)}.noscript{z-index:2;max-width:640px;margin:0 auto;padding:120px 24px;position:relative}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}#overlay{z-index:6;pointer-events:none;position:fixed;inset:0}#overlay>*{pointer-events:none}[data-lines] .line{margin:-.04em -.12em -.1em 0;padding:.04em .12em .1em 0;display:block;overflow:clip}.line__in{will-change:transform;display:inline-block}.nav.is-scrolled{-webkit-backdrop-filter:blur(14px)saturate(1.2);box-shadow:0 1px 0 var(--line);background:#0e0b16b8}[data-page=ride] .nav.is-scrolled{-webkit-backdrop-filter:none;box-shadow:none;background:linear-gradient(#0e0b16cc,#0e0b1600)}.pp-ball-x{animation:1.5s linear infinite alternate pp-x}.pp-ball-y{animation:1.5s infinite pp-y}@keyframes pp-x{to{transform:translate(180px)}}@keyframes pp-y{0%{animation-timing-function:cubic-bezier(.5,0,1,.6);transform:translateY(-4px)}50%{animation-timing-function:cubic-bezier(0,.4,.5,1);transform:translateY(27px)}to{transform:translateY(-4px)}}.pp-l{animation:1.5s ease-in-out infinite alternate pp-paddle}.pp-r{animation:1.5s ease-in-out infinite alternate-reverse pp-paddle}@keyframes pp-paddle{to{transform:translateY(8px)}}.wheel{animation:1.4s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.road line{animation:.9s linear infinite road}@keyframes road{to{stroke-dashoffset:26px}}.bike{animation:.7s ease-in-out infinite alternate bob}@keyframes bob{to{transform:translateY(1.5px)}}.code-line{transform-box:fill-box;transform-origin:0;animation:type 4s var(--ease) infinite}.code-line:nth-child(2){animation-delay:.15s}.code-line:nth-child(3){animation-delay:.3s}.code-line:nth-child(4){animation-delay:.45s}.code-line:nth-child(5){animation-delay:.6s}.code-line:nth-child(6){animation-delay:.75s}.code-line:nth-child(7){animation-delay:.9s}@keyframes type{0%{transform:scaleX(0)}25%,85%{transform:scaleX(1)}to{opacity:0;transform:scaleX(0)}}.caret{animation:1s steps(2,end) infinite blink}@keyframes blink{to{opacity:0}}
