@font-face{font-family:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/150f724d70372c02-s.2ym9msm88vm4r.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/750c737482d9de2f-s.08jxdyhjmo52g.woff2)format("woff2");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:Newsreader;font-style:normal;font-weight:200 800;font-display:swap;src:url(../media/5f402bd2d8eef81a-s.p.23oeb0afa3wba.woff2)format("woff2");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:Newsreader Fallback;src:local(Times New Roman);ascent-override:69.68%;descent-override:25.12%;line-gap-override:0.0%;size-adjust:105.48%}.newsreader_b7c03556-module__EuFY0q__className{font-family:Newsreader,Newsreader Fallback;font-style:normal}.newsreader_b7c03556-module__EuFY0q__variable{--font-display-loaded:"Newsreader", "Newsreader Fallback"}
@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2c55a0e60120577a-s.03ez25a9g3i0n.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/9c72aa0f40e4eef8-s.3i9rha7jpxn0q.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/ad66f9afd8947f86-s.2o7ko1d-5m1xu.woff2)format("woff2");unicode-range:U+1F??}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5476f68d60460930-s.1ee5w62fj497l.woff2)format("woff2");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/2bbe8d2671613f1f-s.1way2z9fj6cig.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/1bffadaabf893a1e-s.0szrwpqb9mkwe.woff2)format("woff2");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;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/83afe278b6a6bb3c-s.p.45535valc9rzk.woff2)format("woff2");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 Fallback;src:local(Arial);ascent-override:90.44%;descent-override:22.52%;line-gap-override:0.0%;size-adjust:107.12%}.inter_5c500b2a-module__YYjZ6a__className{font-family:Inter,Inter Fallback;font-style:normal}.inter_5c500b2a-module__YYjZ6a__variable{--font-body-loaded:"Inter", "Inter Fallback"}
:root{--background:#f6f3ee;--surface:#fffdf9;--ink:#24231f;--muted:#6b675f;--line:#e0d9cd;--accent:#95634c;--accent-2:#5d746b;--danger:#9a3b2f;--success:#2f5d50;--kind-education:#5b6e5a;--kind-international:#7a5c48;--kind-work:#4f6070;--kind-project:#8d6748;--text:var(--ink);--thread-color:var(--accent);--interaction-accent:var(--accent);--max-width:1280px;--content-width:720px;--page-padding:clamp(1.25rem, 4vw, 4.5rem);--font-display:var(--font-display-loaded), "Newsreader", Georgia, "Times New Roman", ui-serif, serif;--font-body:var(--font-body-loaded), "Inter", system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--background);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;line-height:1.65}h1,h2,h3,.wordmark{font-family:var(--font-display);font-weight:600}a{color:inherit}button,input,select,textarea{font:inherit}main{min-height:100vh;position:relative;overflow-x:hidden}img{max-width:100%}.skip-link{z-index:100;background:var(--ink);color:var(--background);border-radius:0 0 .3rem;padding:.75rem 1rem;position:absolute;top:0;left:-9999px}.skip-link:focus{left:0}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.site-header{z-index:20;width:min(calc(100% - 2rem), var(--max-width));border:1px solid color-mix(in srgb, var(--line) 78%, transparent);background:color-mix(in srgb, var(--surface) 82%, transparent);-webkit-backdrop-filter:blur(14px)saturate(1.08);backdrop-filter:blur(14px)saturate(1.08);box-shadow:0 14px 36px -28px color-mix(in srgb, var(--ink) 52%, transparent);opacity:1;will-change:transform, opacity;border-radius:.85rem;justify-content:space-between;align-items:center;gap:1rem;padding:.42rem;transition:transform .28s cubic-bezier(.22,1,.36,1),opacity .2s,border-color .2s,background-color .2s;display:flex;position:fixed;top:.8rem;left:50%;transform:translate(-50%)}.site-header[data-visible=false]{opacity:0;pointer-events:none;transform:translate(-50%,calc(-100% - 1.3rem))}.wordmark{border:1px solid color-mix(in srgb, var(--ink) 70%, var(--line));background:color-mix(in srgb, var(--surface) 88%, transparent);letter-spacing:-.04em;width:2.45rem;height:2.45rem;color:var(--ink);border-radius:.55rem;flex:none;place-items:center;font-weight:700;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s,transform .18s;display:grid}.wordmark:hover,.wordmark:focus-visible{color:var(--accent);border-color:color-mix(in srgb, var(--accent) 66%, var(--line));background:color-mix(in srgb, var(--surface) 76%, var(--accent));transform:translateY(-1px)}.site-nav{align-items:center;display:flex}.navigation{align-items:center;gap:.35rem;margin:0;padding:0;list-style:none;display:flex}.navigation li{display:flex}.nav-pill{border:1px solid color-mix(in srgb, var(--line) 72%, transparent);background:color-mix(in srgb, var(--surface) 68%, transparent);min-height:2.25rem;color:var(--muted);font-family:var(--font-body);letter-spacing:.01em;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;padding:.42rem .78rem;font-size:.8rem;font-weight:500;line-height:1;text-decoration:none;transition:color .18s,border-color .18s,background-color .18s,box-shadow .18s,transform .18s;display:inline-flex}button.nav-pill{appearance:none}.nav-pill:hover,.nav-pill:focus-visible{color:var(--ink);border-color:color-mix(in srgb, var(--accent) 48%, var(--line));background:color-mix(in srgb, var(--surface) 76%, var(--accent));box-shadow:0 7px 16px -13px color-mix(in srgb, var(--accent) 64%, transparent);transform:translateY(-1px)}.nav-pill[aria-current=location],.nav-pill[aria-pressed=true]{color:var(--ink);border-color:color-mix(in srgb, var(--accent) 42%, var(--line));background:color-mix(in srgb, var(--surface) 82%, var(--accent));box-shadow:inset 0 -2px 0 color-mix(in srgb, var(--accent) 76%, transparent)}.nav-toggle{background:color-mix(in srgb, var(--surface) 72%, transparent);border:1px solid color-mix(in srgb, var(--line) 76%, transparent);width:2.45rem;height:2.45rem;color:var(--ink);border-radius:.55rem;flex-direction:column;justify-content:center;align-items:center;gap:4px;display:none}.nav-toggle:hover,.nav-toggle:focus-visible,.nav-toggle[aria-expanded=true]{border-color:color-mix(in srgb, var(--accent) 48%, var(--line));background:color-mix(in srgb, var(--surface) 76%, var(--accent))}.nav-toggle span{background:currentColor;width:18px;height:1.5px;display:block}.section{width:min(100%, var(--max-width));padding-inline:var(--page-padding);margin:0 auto;padding-top:clamp(4.5rem,11vw,8rem);padding-bottom:clamp(4.5rem,11vw,8rem)}.section+.section{border-top:0}.eyebrow{font-family:var(--font-mono);color:var(--accent);letter-spacing:.14em;text-transform:uppercase;margin:0;font-size:.78rem}.section-lead{max-width:46ch;color:var(--muted);margin:.75rem 0 0;font-size:1.05rem}.section-title{letter-spacing:-.03em;margin:.4rem 0 0;font-size:clamp(2rem,5vw,3.4rem);line-height:1.02}.hero{background:0 0;align-items:center;min-height:100svh;display:grid;position:relative;overflow:hidden}.scroll-environment{isolation:isolate;min-height:100vh;color:var(--ink);position:relative;overflow:clip}.scroll-environment-background{z-index:0;pointer-events:none;background:var(--background);position:fixed;inset:0;overflow:hidden}.scroll-environment-base,.scroll-environment-blob,.scroll-environment-static-wash{position:absolute;inset:0}.scroll-environment-base{background:var(--background)}.scroll-environment-blob{filter:blur(96px);opacity:.46;will-change:background;border-radius:50%;width:122vmax;height:122vmax;inset:0 auto auto 0;transform:translate(-50%,-50%)}.scroll-environment-blob+.scroll-environment-blob{opacity:.34;filter:blur(112px)}.scroll-environment-static-wash{background:radial-gradient(70vmax 70vmax at 20% 24%, #6f879329, transparent 62%), radial-gradient(68vmax 68vmax at 82% 70%, #748c7f1f, transparent 64%), var(--background)}.scroll-environment-content{z-index:1;position:relative}.hero-inner{z-index:2;width:min(100%, var(--max-width));padding:var(--page-padding);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(2rem,6vw,5rem);margin:0 auto;padding-top:clamp(6rem,16vh,9rem);padding-bottom:clamp(3rem,10vh,6rem);display:grid;position:relative}.hero-copy{min-width:0}.hero-media{justify-self:end;width:100%;max-width:min(100%,30rem);position:relative}.hero-photo{z-index:1;border:1px solid var(--line);box-shadow:0 30px 60px -40px color-mix(in srgb, var(--ink) 55%, transparent);border-radius:.6rem;position:relative;overflow:hidden}.hero-photo img{width:100%;height:auto;display:block}.hero-media-atmosphere{z-index:0;filter:blur(28px);opacity:.22;pointer-events:none;border-radius:1rem;position:absolute;inset:-8%;overflow:hidden}.hero-media-atmosphere img{object-fit:cover;width:100%;height:100%;display:block}.hero h1{letter-spacing:-.04em;color:var(--ink);max-width:12ch;margin:.6rem 0 0;font-size:clamp(3rem,9vw,6.5rem);line-height:.94}.hero-tagline{max-width:34ch;color:var(--ink);font-size:clamp(1.15rem,2.5vw,1.6rem);line-height:1.3;font-family:var(--font-body);margin:1.25rem 0 0}.hero-actions{flex-wrap:wrap;gap:.8rem;margin-top:2rem;display:flex}.hero-scroll-cue{font-family:var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);align-items:center;gap:.5rem;margin-top:2.5rem;font-size:.75rem;text-decoration:none;display:inline-flex}.button{border:1px solid var(--line);cursor:pointer;min-height:44px;font-family:var(--font-body);border-radius:.35rem;justify-content:center;align-items:center;padding:.75rem 1.25rem;text-decoration:none;display:inline-flex;position:relative;overflow:hidden}.button-primary{background:var(--accent);color:var(--surface);border-color:var(--accent)}.button-primary:hover,.button-primary:focus-visible{background:color-mix(in srgb, var(--accent) 88%, black)}.button-secondary{color:var(--ink);background:var(--surface)}@media (hover:hover) and (pointer:fine){.button:after{content:"";pointer-events:none;border-radius:inherit;opacity:0;background:radial-gradient(circle at center, color-mix(in srgb, var(--interaction-accent) 45%, transparent), transparent 70%);transition:opacity .26s,transform .26s;position:absolute;inset:0;transform:scale(.6)}.button:hover:after,.button:focus-visible:after{opacity:.5;transform:scale(1)}.section a:not(.button):not(.wordmark):hover,.section a:not(.button):not(.wordmark):focus-visible{text-shadow:0 0 10px color-mix(in srgb, var(--interaction-accent) 55%, transparent);transition:text-shadow .22s}}@media (prefers-reduced-motion:reduce){.button:after{display:none}}@media (hover:hover) and (pointer:fine){html,body,body *{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M2 1.5v18.2l4.8-4.5 3.7 7.2 3.3-1.7-3.7-7.1 6.5-.9L2 1.5z'/%3E%3C/svg%3E") 2 2,default!important}a[href],area[href],button:not(:disabled),input[type=button]:not(:disabled),input[type=submit]:not(:disabled),input[type=reset]:not(:disabled),input[type=checkbox]:not(:disabled),input[type=radio]:not(:disabled),input[type=file]:not(:disabled),select:not(:disabled),summary,label[for],[role=button]:not([aria-disabled=true]),[role=link]:not([aria-disabled=true]),[data-cursor-interactive],.journey-milestone,.spotlight-card{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M8 2a2 2 0 0 1 2 2v6h1V7a2 2 0 1 1 4 0v3h1V8a2 2 0 1 1 4 0v7c0 4.4-2.6 7-7 7h-1.2a6 6 0 0 1-4.2-1.8l-4.5-4.5a2.2 2.2 0 0 1 3.1-3.1L8 14.4V4a2 2 0 0 1 2-2z'/%3E%3C/svg%3E") 8 2,pointer!important}input:not([type]),input[type=text],input[type=email],input[type=search],input[type=url],input[type=tel],input[type=password],input[type=number],textarea,[contenteditable=true]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M8 2h8v2h-3v16h3v2H8v-2h3V4H8z'/%3E%3C/svg%3E") 12 12,text!important}button:disabled,input:disabled,select:disabled,[aria-disabled=true]{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%23000000' d='M2 1.5v18.2l4.8-4.5 3.7 7.2 3.3-1.7-3.7-7.1 6.5-.9L2 1.5z'/%3E%3C/svg%3E") 2 2,not-allowed!important}}.button:disabled{cursor:not-allowed;opacity:.55}.journey{--node-color:var(--accent);width:100vw;color:var(--ink);margin-inline:calc(50% - 50vw);padding:0;position:relative;overflow:clip}.journey-ambient{z-index:0;pointer-events:none;height:100svh;margin-bottom:-100svh;position:sticky;top:0;overflow:hidden}.journey-ambient-base{background:var(--background);position:absolute;inset:0}.journey-ambient-blob{filter:blur(72px);opacity:.92;mix-blend-mode:normal;border-radius:50%;width:108vmax;height:108vmax;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.journey-ambient--static{background:radial-gradient(60vmax 60vmax at 25% 30%, color-mix(in srgb, var(--accent) 18%, transparent), transparent 60%), var(--background)}.journey-head{z-index:1;width:min(100%, var(--max-width));padding:clamp(4.5rem, 11vw, 8rem) var(--page-padding) 0;margin:0 auto;position:relative}.journey-track{z-index:1;width:min(100%, var(--max-width));padding-inline:var(--page-padding);margin:clamp(2.5rem,6vw,4rem) auto 0;position:relative}.journey-spine{left:calc(var(--page-padding) + 7px);background:color-mix(in srgb, var(--ink) 15%, transparent);border-radius:2px;width:2px;position:absolute;top:0;bottom:0}.journey-spine-fill{transform-origin:top;background:var(--thread-color,var(--accent));border-radius:2px;position:absolute;inset:0}.journey-spine-fill--static{transform:scaleY(1)}.journey-items{margin:0;padding:0 0 0 2.75rem;list-style:none;display:grid}.journey-item{align-content:center;min-height:88vh;display:grid;position:relative}.journey-item[data-project=true]{min-height:110vh}.journey-node{background:var(--node-color);width:14px;height:14px;box-shadow:0 0 0 4px var(--background);border-radius:50%;margin-top:-7px;position:absolute;top:50%;left:calc(2px - 2.75rem)}.journey-item[data-project=true] .journey-node{background:var(--background);border:3px solid var(--node-color);width:20px;height:20px;box-shadow:0 0 0 4px var(--background), 0 0 0 6px color-mix(in srgb, var(--node-color) 40%, transparent);margin-top:-10px}.journey-item-body{gap:clamp(1rem,3vw,1.75rem);display:grid}.journey-item[data-project=true] .journey-item-body{gap:0}.journey-item-text,.journey-milestone-text{gap:.55rem;display:grid}.journey-item:not([data-project=true]) .journey-item-body{background:color-mix(in srgb, var(--surface) 93%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid color-mix(in srgb, var(--line) 80%, transparent);border-radius:.8rem;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(1.5rem,5vw,3.5rem);padding:clamp(1.5rem,4vw,2.25rem)}.journey-item .chapter-period{font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--node-color,var(--accent));font-size:.78rem}.journey-item .chapter-place{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);font-size:.72rem}.journey-item .chapter-title{letter-spacing:-.02em;color:var(--ink);margin:.2rem 0 0;font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.04}.journey-item p{color:var(--muted);max-width:42ch;margin:0;font-size:1.05rem}.journey-item-visual{aspect-ratio:4/3;border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 92%, var(--accent));border-radius:.6rem;place-items:center;padding:clamp(1.25rem,3.5vw,2.5rem);display:grid;position:relative;overflow:hidden}.journey-item-visual svg{width:100%;height:auto;max-height:100%}.journey-item-affil{border:1px solid color-mix(in srgb, var(--line) 60%, transparent);background:#ffffffe6;border-radius:.4rem;align-items:center;padding:.4rem .6rem;display:inline-flex;position:absolute;bottom:.85rem;left:.85rem}.journey-item-affil img{width:auto;height:20px;display:block}.journey-milestone{border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 93%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-radius:.8rem;padding:clamp(1.5rem,4vw,2.25rem);transition:border-color .24s,box-shadow .24s,transform .24s;position:relative}.journey-milestone-tilt,.journey-milestone-tilt .tilt-card-inner{display:block}.journey-milestone-link{color:inherit;border-radius:.5rem;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(1.5rem,5vw,3.5rem);text-decoration:none;display:grid}@media (max-width:900px){.journey-milestone-link,.journey-item:not([data-project=true]) .journey-item-body{grid-template-columns:1fr}}:is(.journey-milestone:has(.journey-milestone-link:hover),.journey-milestone:has(.journey-milestone-link:focus-visible)){border-color:color-mix(in srgb, var(--node-color) 55%, var(--line));box-shadow:0 20px 45px -30px color-mix(in srgb, var(--ink) 55%, transparent)}.journey-milestone-cue{font-family:var(--font-mono);letter-spacing:.06em;color:var(--node-color,var(--accent));justify-self:start;align-items:center;gap:.4rem;font-size:.78rem;display:inline-flex}.journey-milestone-link:hover .journey-milestone-cue,.journey-milestone-link:focus-visible .journey-milestone-cue{text-underline-offset:3px;text-decoration:underline}.spotlight-card{isolation:isolate;position:relative}.spotlight-card-glow{z-index:0;border-radius:inherit;pointer-events:none;opacity:0;background:radial-gradient(circle at var(--spot-x,50%) var(--spot-y,50%), color-mix(in srgb, var(--node-color,var(--accent)) 22%, transparent), transparent 70%);transition:opacity .24s;position:absolute;inset:0}.spotlight-card>:not(.spotlight-card-glow){z-index:1;position:relative}.spotlight-card:hover .spotlight-card-glow,.spotlight-card:focus-within .spotlight-card-glow{opacity:.5}.project-transition{z-index:90;pointer-events:none;isolation:isolate;contain:strict;color:var(--ink);position:fixed;inset:0;overflow:hidden}.project-transition:after{content:"";z-index:3;pointer-events:none;background:radial-gradient(circle at var(--transition-x) var(--transition-y), transparent 0 18%, color-mix(in srgb, var(--ink) 8%, transparent) 58%, color-mix(in srgb, var(--ink) 24%, transparent) 100%);animation:.64s ease-out both project-transition-vignette;position:absolute;inset:0}.project-transition--exit:after{opacity:.5;animation-duration:.44s}@keyframes project-transition-vignette{0%,12%{opacity:0}62%{opacity:1}to{opacity:.35}}.project-transition-tunnel{position:absolute;inset:0}.project-transition-palette{z-index:1;background:radial-gradient(ellipse at 30% 32%, color-mix(in srgb, var(--accent) 30%, transparent), transparent 48%), radial-gradient(ellipse at 72% 68%, color-mix(in srgb, var(--accent-2) 24%, transparent), transparent 52%), radial-gradient(circle, var(--surface) 0%, var(--background) 68%), var(--background);contain:paint;will-change:transform;backface-visibility:hidden;border-radius:50%;position:absolute}.project-transition-tunnel{z-index:2;background:repeating-conic-gradient(from 7deg at var(--transition-x) var(--transition-y), transparent 0deg 4deg, color-mix(in srgb, var(--surface) 48%, transparent) 4.3deg 4.7deg, transparent 5deg 11deg, color-mix(in srgb, var(--accent) 30%, transparent) 11.2deg 11.65deg, transparent 12deg 19deg);-webkit-mask-image:radial-gradient(circle at var(--transition-x) var(--transition-y), transparent 0 4%, #000 20%, #000000d9 58%, transparent 84%);-webkit-mask-image:radial-gradient(circle at var(--transition-x) var(--transition-y), transparent 0 4%, #000 20%, #000000d9 58%, transparent 84%);mask-image:radial-gradient(circle at var(--transition-x) var(--transition-y), transparent 0 4%, #000 20%, #000000d9 58%, transparent 84%);opacity:0;will-change:transform, opacity;backface-visibility:hidden}.project-transition-flash{z-index:3;aspect-ratio:1;pointer-events:none;background:radial-gradient(circle, color-mix(in srgb, var(--surface) 78%, #fff) 0%, color-mix(in srgb, var(--accent) 42%, transparent) 32%, transparent 72%);filter:blur(9px);mix-blend-mode:screen;will-change:transform, opacity;border-radius:50%;width:min(26vw,18rem);margin:max(-13vw,-9rem) 0 0 max(-13vw,-9rem);position:absolute}.project-transition-card{z-index:4;transform-origin:50%;background:var(--surface);box-shadow:0 12px 36px color-mix(in srgb, var(--ink) 14%, transparent), 0 0 54px color-mix(in srgb, var(--accent) 20%, transparent);contain:paint;will-change:transform, opacity;backface-visibility:hidden;border-radius:13px;position:absolute;overflow:hidden}.project-transition-card-warp,.project-transition-card-copy{width:100%;height:100%}.project-transition-card-warp{border-radius:inherit;position:relative;overflow:hidden}.project-transition-card-warp:after{content:"";z-index:3;pointer-events:none;background:repeating-linear-gradient(90deg, transparent 0 8%, color-mix(in srgb, var(--surface) 28%, transparent) 8.3% 8.8%, transparent 9.1% 17%, color-mix(in srgb, var(--accent) 18%, transparent) 17.3% 17.8%, transparent 18.1% 27%);transform-origin:50%;will-change:transform, opacity;animation:.64s cubic-bezier(.2,.78,.16,1) both project-card-speed-lines;position:absolute;inset:-16%}@keyframes project-card-speed-lines{0%,14%{opacity:0;transform:translate(-8%)scaleX(.78)}58%{opacity:.48;transform:translate(2%)scaleX(1.35)}to{opacity:0;transform:translate(16%)scaleX(2.4)}}.project-transition-card-copy>.journey-milestone{box-sizing:border-box;-webkit-backdrop-filter:none;backdrop-filter:none;width:100%;height:100%;overflow:hidden}.project-transition-card-copy *,.project-transition-card-copy :before,.project-transition-card-copy :after{transition:none!important;animation:none!important}.project-transition-card-copy .spotlight-card-glow{display:none}.project-transition-card-copy>svg{width:100%;height:100%;padding:clamp(1.25rem,4vw,3rem)}.project-transition-clock{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}[data-xray-section],[data-xray-component]{position:relative}[data-xray-section]:before,[data-xray-section]:after,[data-xray-component]:after{pointer-events:none;opacity:0;transition:opacity .22s}[data-xray-section]:before{content:"";z-index:4;border-top:1px dashed color-mix(in srgb, var(--accent) 36%, transparent);width:100vw;position:absolute;top:0;left:50%;transform:translate(-50%)}[data-xray-section]:after{content:attr(data-xray-label);z-index:5;top:.5rem;left:var(--page-padding);border-left:1px solid color-mix(in srgb, var(--accent) 58%, transparent);background:color-mix(in srgb, var(--surface) 74%, transparent);color:var(--accent);font-family:var(--font-mono);letter-spacing:.12em;padding:.2rem .4rem;font-size:.56rem;line-height:1;position:absolute}[data-xray-component]{transition:box-shadow .22s}[data-xray-component]:after{content:attr(data-xray-component);z-index:6;border:1px solid color-mix(in srgb, var(--accent) 34%, transparent);background:color-mix(in srgb, var(--surface) 78%, transparent);max-width:calc(100% - 1rem);color:color-mix(in srgb, var(--accent) 86%, var(--ink));font-family:var(--font-mono);letter-spacing:.1em;text-transform:uppercase;padding:.18rem .35rem;font-size:.52rem;line-height:1.2;position:absolute;top:.45rem;right:.5rem}html[data-xray=active] [data-xray-section]:before,html[data-xray=active] [data-xray-section]:after,html[data-xray=active] [data-xray-component]:after{opacity:1}html[data-xray=active] [data-xray-component]{box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent)}html[data-xray=active] .journey-spine{background-image:repeating-linear-gradient(to bottom, color-mix(in srgb, var(--accent) 38%, transparent) 0 3px, transparent 3px 8px)}html[data-xray=active] .journey-node:after{content:"";border:1px solid color-mix(in srgb, var(--node-color) 35%, transparent);border-radius:50%;width:28px;height:28px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.spotlight-card>.xray-project-meta{z-index:4;border:1px solid color-mix(in srgb, var(--node-color,var(--accent)) 34%, transparent);background:color-mix(in srgb, var(--surface) 86%, transparent);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);width:min(46%,25rem);color:var(--muted);font-family:var(--font-mono);pointer-events:none;opacity:0;visibility:hidden;border-radius:.35rem;padding:.65rem .75rem;font-size:.58rem;line-height:1.35;transition:opacity .18s,transform .18s,visibility .18s;position:absolute;top:.8rem;right:.8rem;transform:translateY(-3px)}html[data-xray=active] .xray-project-meta{opacity:1;visibility:visible;transform:translateY(0)}.xray-project-meta-key{color:var(--node-color,var(--accent));letter-spacing:.12em;margin-bottom:.2rem;font-size:.5rem;display:block}.xray-project-meta strong{color:var(--ink);font-size:.62rem;font-weight:600;display:block}.xray-project-meta ul{flex-wrap:wrap;gap:.2rem .5rem;margin:.45rem 0 0;padding:0;list-style:none;display:flex}.xray-project-meta li:before{content:"+ ";color:var(--node-color,var(--accent))}.xray-overlay{z-index:5;pointer-events:none;contain:strict;color:color-mix(in srgb, var(--accent) 86%, var(--ink));font-family:var(--font-mono);opacity:0;visibility:hidden;transition:opacity .24s,visibility .24s;position:fixed;inset:0;overflow:hidden}.xray-overlay[data-enabled=true]{opacity:1;visibility:visible}.xray-grid{opacity:.42;background-image:linear-gradient(color-mix(in srgb, var(--accent) 9%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 9%, transparent) 1px, transparent 1px), linear-gradient(color-mix(in srgb, var(--accent) 14%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 14%, transparent) 1px, transparent 1px);background-size:10px 10px,10px 10px,50px 50px,50px 50px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(#000 0%,#0008 48%,#000 100%);mask-image:linear-gradient(#000 0%,#0008 48%,#000 100%)}.xray-guide{background:color-mix(in srgb, var(--accent) 32%, transparent);width:1px;position:absolute;top:0;bottom:0}.xray-guide--left{left:var(--page-padding)}.xray-guide--center{left:50%}.xray-guide--right{right:var(--page-padding)}.xray-scanline{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--accent) 44%, transparent), transparent);height:1px;box-shadow:0 0 10px color-mix(in srgb, var(--accent) 18%, transparent);animation:9s linear infinite xray-scan;position:absolute;top:0;left:0;right:0}@keyframes xray-scan{0%{transform:translateY(-2px)}to{transform:translateY(100vh)}}.xray-readout,.xray-active-project{border-left:1px solid color-mix(in srgb, var(--accent) 54%, transparent);background:color-mix(in srgb, var(--surface) 72%, transparent);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);color:color-mix(in srgb, var(--muted) 76%, var(--ink));letter-spacing:.08em;text-transform:uppercase;gap:.2rem;padding:.55rem .65rem;font-size:.56rem;line-height:1.35;display:grid;position:absolute}.xray-readout--system{top:5.75rem;left:var(--page-padding)}.xray-readout--coordinates{left:var(--page-padding);bottom:1rem}.xray-readout-key{color:var(--accent);letter-spacing:.13em;font-size:.5rem}.xray-progress{top:27%;right:max(.65rem, calc(var(--page-padding) / 2));height:42%;color:var(--accent);letter-spacing:.08em;align-items:flex-start;gap:.45rem;font-size:.52rem;display:flex;position:absolute}.xray-progress-track{background:color-mix(in srgb, var(--accent) 24%, transparent);width:1px;height:100%;position:relative}.xray-progress-fill{transform-origin:top;background:var(--accent);will-change:transform;position:absolute;inset:0;transform:scaleY(0)}.xray-progress-marker{border:1px solid var(--accent);background:var(--surface);will-change:top;border-radius:50%;width:7px;height:7px;position:absolute;top:0;left:50%;transform:translate(-50%,-50%)}.xray-progress-label{margin-top:-.3em}.xray-active-project{right:var(--page-padding);width:min(27rem, calc(100vw - (var(--page-padding) * 2)));border-left-color:color-mix(in srgb, var(--accent) 72%, transparent);bottom:1rem}.xray-active-project strong{color:var(--ink);letter-spacing:.07em;font-size:.66rem;font-weight:600}.xray-active-tech{color:var(--accent);margin-top:.15rem;font-size:.5rem}html[data-intro=play]:before,html[data-intro=reduced]:before{content:"";z-index:101;pointer-events:none;position:fixed;inset:0}html[data-intro=play]:before{background:#2c302e}html[data-intro=reduced]:before{background:var(--background)}.intro-curtain{z-index:100;pointer-events:none;display:none;position:fixed;inset:0;overflow:hidden}@media (scripting:enabled){.intro-curtain[data-play=true]{display:block}}.intro-curtain-base{background:var(--background);position:absolute;inset:0}.intro-curtain-blob{filter:blur(56px);opacity:.95;will-change:transform, opacity;mix-blend-mode:normal;border-radius:50%;width:72vmax;height:72vmax;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}.intro-curtain-wash{background:radial-gradient(65vmax 65vmax at 28% 34%, color-mix(in srgb, var(--accent) 55%, transparent), transparent 62%), radial-gradient(60vmax 60vmax at 72% 62%, color-mix(in srgb, var(--accent-2) 48%, transparent), transparent 62%);position:absolute;inset:0}.tags{flex-wrap:wrap;gap:.5rem;margin:1.25rem 0 0;padding:0;list-style:none;display:flex}.tags li{border:1px solid var(--line);color:var(--muted);font-family:var(--font-mono);border-radius:99px;padding:.3rem .65rem;font-size:.75rem}.affiliations{background:0 0}.affiliations-caption{color:var(--muted);max-width:52ch;margin:0 0 clamp(1.5rem,4vw,2.5rem);font-size:.95rem}.affiliations-strip{flex-wrap:wrap;align-items:center;gap:clamp(2rem,6vw,4rem);display:flex}.affiliation-logo img{opacity:.65;filter:grayscale(.2);width:auto;height:clamp(28px,5vw,40px);transition:opacity .2s;display:block}.affiliation-logo:hover img{opacity:1}.skill-grid{background:var(--line);border:1px solid var(--line);border-radius:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:clamp(2rem,5vw,3rem);display:grid;overflow:hidden}.skill-grid article{background:var(--surface);padding:clamp(1.5rem,4vw,2.5rem)}.skill-grid h3{letter-spacing:-.01em;margin:0 0 .75rem;font-size:1.15rem}.skill-grid ul{color:var(--muted);margin:0;padding-left:1.1rem}.skill-grid li{margin-bottom:.3rem}@media (min-width:1100px){.skill-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.contact{position:relative;overflow:hidden}.contact-form{z-index:1;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;max-width:52rem;margin-top:clamp(2rem,5vw,3rem);display:grid;position:relative}.contact-form label{gap:.5rem;font-size:.9rem;display:grid}.contact-form label:has(textarea){grid-column:1/-1}input,select,textarea{width:100%;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:.35rem;padding:.85rem .9rem}.form-note{color:var(--muted);font-size:.82rem}.contact-form .consent,.contact-form .consent-error,.contact-form .cv-note,.contact-form .form-status,.contact-form .submit-row,.contact-form button[type=submit]{grid-column:1/-1}.submit-row{position:relative}.optional{color:var(--muted);font-weight:400}.field-error{color:var(--danger);font-size:.8rem}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--danger)}.hp{width:1px;height:1px;position:absolute;left:-9999px;overflow:hidden}.consent{color:var(--muted);grid-template-columns:auto minmax(0,1fr);align-items:start;gap:.6rem;font-size:.9rem;display:grid}.consent input{width:1.2rem;height:1.2rem;accent-color:var(--accent);cursor:pointer;margin:.15rem 0 0;padding:0}.cv-note{color:var(--muted)}.form-status:empty{display:none}.status-message{border:1px solid var(--line);background:var(--surface);border-radius:.35rem;margin:0;padding:.9rem 1rem;font-size:.9rem}.status-demo{border-color:color-mix(in srgb, var(--accent) 55%, transparent);background:color-mix(in srgb, var(--accent) 8%, var(--surface));color:var(--ink)}.status-success{border-color:color-mix(in srgb, var(--success) 55%, transparent);background:color-mix(in srgb, var(--success) 8%, var(--surface));color:var(--ink)}.status-error{border-color:color-mix(in srgb, var(--danger) 55%, transparent);background:color-mix(in srgb, var(--danger) 8%, var(--surface));color:var(--ink)}.success-firework{z-index:80;pointer-events:none;contain:strict;position:fixed;inset:0;overflow:hidden}.success-firework-rocket,.success-firework-trail,.success-firework-flash,.success-firework-ring,.success-firework-particles,.success-firework-particle{pointer-events:none;position:absolute;top:0;left:0}.success-firework-rocket{will-change:transform, opacity;background:linear-gradient(#fff,#f6e8cc 30%,#8a5f3e);border-radius:50% 50% 42% 42%;width:6px;height:14px;box-shadow:0 0 8px 2px #8a5f3ee0,0 0 18px 5px #476f7861}.success-firework-trail{filter:blur(1.2px);will-change:transform, opacity;border-radius:50%;width:5px;height:5px;margin:-2.5px 0 0 -2.5px;box-shadow:0 0 7px}.success-firework-flash{aspect-ratio:1;filter:blur(12px);mix-blend-mode:screen;will-change:transform, opacity;background:radial-gradient(circle,#ffffffe0 0%,#b1846285 16%,#6f8c9140 38%,#0000 72%);border-radius:50%;width:min(34vw,26rem);margin:max(-17vw,-13rem) 0 0 max(-17vw,-13rem)}.success-firework-ring{will-change:transform, opacity;border:2px solid #ffffffad;border-radius:50%;width:7rem;height:7rem;margin:-3.5rem 0 0 -3.5rem;box-shadow:0 0 22px #6f8c91a6,inset 0 0 18px #b184627a}.success-firework-particles{width:0;height:0}.success-firework-particle{filter:blur(.35px);will-change:transform, opacity;border-radius:50%;margin-top:-3px;margin-left:-3px;box-shadow:0 0 8px}footer{width:min(100%, var(--max-width));padding:2.5rem var(--page-padding);border-top:1px solid var(--line);color:var(--muted);justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;font-size:.85rem;display:flex}.scroll-environment footer{border-top:0}footer a{color:var(--ink);border-bottom:1px solid var(--line);text-decoration:none}footer a:hover{border-color:var(--accent)}.case-main{background:var(--background);min-height:100svh;color:var(--ink)}.case-study{width:min(100%, var(--max-width));padding-inline:var(--page-padding);margin:0 auto}.case-main[data-theme=dark] .case-affil img{opacity:1;background:#ffffffe6;border-radius:.3rem;padding:.2rem .35rem}.case-back{font-family:var(--font-mono);letter-spacing:.06em;color:var(--muted);align-items:center;gap:.4rem;margin-top:clamp(5rem,10vw,7rem);font-size:.8rem;text-decoration:none;display:inline-flex}.case-back:hover{color:var(--ink)}.case-hero{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;gap:clamp(1.5rem,5vw,4rem);margin-top:clamp(1.5rem,4vw,2.5rem);padding-bottom:clamp(2.5rem,6vw,4rem);display:grid}.case-hero-meta{flex-wrap:wrap;gap:1rem 1.5rem;margin-top:1.25rem;display:flex}.case-meta-item{gap:.2rem;display:grid}.case-meta-item dt{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-size:.7rem}.case-meta-item dd{color:var(--ink);margin:0;font-size:.95rem}.case-hero h1{letter-spacing:-.03em;margin:.5rem 0 0;font-size:clamp(2.4rem,6vw,4.5rem);line-height:1}.case-hero-summary{color:var(--muted);max-width:40ch;margin:1rem 0 0;font-size:clamp(1.1rem,2.5vw,1.4rem)}.case-visual{border:1px solid var(--line);background:var(--surface);aspect-ratio:4/3;border-radius:.6rem;place-items:center;padding:clamp(1.5rem,4vw,3rem);display:grid;overflow:hidden}.case-visual svg{width:100%;height:auto;max-height:100%}.case-affil{align-items:center;gap:.5rem;margin-top:1.25rem;display:inline-flex}.case-affil img{opacity:.7;width:auto;height:22px}.case-body{max-width:var(--content-width);gap:clamp(2rem,5vw,3rem);padding-block:clamp(3rem,7vw,5rem);display:grid}.case-block h2{letter-spacing:-.02em;margin:0 0 .6rem;font-size:clamp(1.4rem,3vw,2rem)}.case-block p{color:var(--muted);margin:0;font-size:1.08rem;line-height:1.7}.case-note{border:1px solid var(--line);background:var(--surface);color:var(--muted);border-radius:.35rem;padding:.9rem 1.1rem;font-size:.9rem}.case-nav{max-width:var(--content-width);border-top:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;gap:1rem;padding-block:clamp(2.5rem,6vw,4rem);display:flex}.case-nav a{color:var(--ink);gap:.25rem;text-decoration:none;display:grid}.case-nav a[data-dir=next]{text-align:right}.case-nav .case-nav-label{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.72rem}.case-nav .case-nav-title{font-family:var(--font-display);font-size:1.1rem}[data-anim]{opacity:1}@media (scripting:enabled){[data-anim=hidden]{opacity:0}}@media (max-width:900px){.hero-inner{grid-template-columns:1fr;gap:clamp(2rem,8vw,3rem)}.hero-media{order:-1;justify-self:start;max-width:min(88vw,22rem)}.journey-item{min-height:78vh}.journey-item[data-project=true]{min-height:96vh}.journey-item-visual{max-width:26rem}.case-hero{grid-template-columns:1fr}}@media (max-width:760px){.site-header{border-radius:.72rem;width:calc(100% - 1rem);top:.55rem}.nav-toggle{display:inline-flex}.site-nav{position:relative}.navigation{background:color-mix(in srgb, var(--surface) 92%, transparent);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid color-mix(in srgb, var(--line) 82%, transparent);min-width:min(15rem,100vw - 1rem);box-shadow:0 12px 30px -18px color-mix(in srgb, var(--ink) 50%, transparent);border-radius:.65rem;flex-direction:column;align-items:stretch;gap:.35rem;padding:.45rem;display:none;position:absolute;top:calc(100% + .65rem);right:0}.navigation[data-open=true]{display:flex}.navigation li{display:block}.navigation .nav-pill{border-radius:.5rem;justify-content:flex-start;width:100%;min-height:44px;padding-inline:.9rem;font-size:.92rem;display:flex}.xray-readout--system{top:5.25rem}.xray-readout--coordinates{display:none}.xray-active-project{right:auto;left:var(--page-padding);width:min(23rem, calc(100vw - (var(--page-padding) * 2) - 1.5rem));bottom:.65rem}.xray-active-tech{display:none}.xray-progress{right:.45rem}.spotlight-card>.xray-project-meta{width:calc(100% - 1.3rem);top:auto;bottom:.65rem;right:.65rem}.xray-project-meta li:nth-child(n+5){display:none}.skill-grid,.contact-form{grid-template-columns:1fr}.contact-form label:has(textarea){grid-column:1}footer{flex-direction:column;align-items:flex-start}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}[data-anim],[data-anim=hidden]{opacity:1!important}.journey-ambient-blob,.xray-scanline{display:none}.site-header,.site-header[data-visible=false]{transition:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
