:root{--bg:#fff;--ink:#0b1020;--ink-2:#3a4257;--ink-3:#6b7489;--contour:#d5dbe6;--accent:#1f3bff;--accent-deep:#0b1b8f;--accent-light:#7385ff;--accent-wash:#1f3bff12;--font-display:"Tanker", "Satoshi", system-ui, sans-serif;--font-body:"Satoshi", system-ui, sans-serif;--gutter:clamp(16px, 3.2vw, 36px);--hud-top:calc(var(--gutter) + env(safe-area-inset-top,0px));--hud-bottom:calc(var(--gutter) + env(safe-area-inset-bottom,0px));--ease-out:cubic-bezier(.22, 1, .36, 1)}.overlay{pointer-events:none;z-index:2;position:fixed;inset:0}.overlay a,.overlay button{pointer-events:auto}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}.mono{font-family:var(--font-body)}.hud{pointer-events:none;font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);font-size:11px;position:fixed;inset:0}.bracket{border:0 solid var(--ink);opacity:.85;width:18px;height:18px;position:absolute}.bracket-tl{top:calc(var(--hud-top) - 8px);left:calc(var(--gutter) - 8px);border-top-width:1.25px;border-left-width:1.25px}.bracket-tr{top:calc(var(--hud-top) - 8px);right:calc(var(--gutter) - 8px);border-top-width:1.25px;border-right-width:1.25px}.bracket-bl{bottom:calc(var(--hud-bottom) - 8px);left:calc(var(--gutter) - 8px);border-bottom-width:1.25px;border-left-width:1.25px}.bracket-br{bottom:calc(var(--hud-bottom) - 8px);right:calc(var(--gutter) - 8px);border-bottom-width:1.25px;border-right-width:1.25px}.hud-name,.lang-toggle,.gauge{opacity:0;transition:opacity .8s var(--ease-out) .1s}.hud.is-on .hud-name,.hud.is-on .lang-toggle,.hud.is-on .gauge{opacity:1}.hud-name{top:calc(var(--hud-top) + 2px);left:calc(var(--gutter) + 20px);font-weight:500;position:absolute}.lang-toggle{top:calc(var(--hud-top) - 4px);right:calc(var(--gutter) + 12px);pointer-events:auto;font-family:var(--font-body);letter-spacing:.14em;align-items:center;gap:2px;font-size:11px;display:flex;position:absolute}.lang-toggle button{color:var(--ink-3);padding:6px;transition:color .2s}.lang-toggle button[aria-pressed=true]{color:var(--accent)}.lang-toggle button:hover{color:var(--ink)}.lang-toggle span{color:var(--ink-3)}.gauge{left:50%;bottom:calc(var(--hud-bottom) - 2px);width:min(560px, calc(100vw - 2 * var(--gutter) - 48px));pointer-events:auto;grid-template-columns:auto 1fr 4.6em;align-items:center;gap:14px;display:grid;position:absolute;transform:translate(-50%)}.gauge-label{color:var(--ink-3);font-size:10px}.gauge-year{color:var(--accent);text-align:right;font-variant-numeric:tabular-nums;font-weight:500}.gauge-auto{color:var(--accent);opacity:0;font-size:10px;transition:opacity .4s;position:absolute;bottom:22px;right:0}.gauge-auto:before{content:"";vertical-align:1px;background:currentColor;border-radius:50%;width:5px;height:5px;margin-right:6px;display:inline-block}.gauge-auto.is-on{opacity:1;animation:1.6s ease-in-out infinite auto-pulse}@keyframes auto-pulse{50%{opacity:.45}}.gauge-track{height:22px;position:relative}.gauge-rail,.gauge-fill{background:var(--contour);height:1px;position:absolute;top:50%;left:0}.gauge-rail{background:#c4ccda;right:0}.gauge-fill{background:var(--accent);width:0;height:1.5px;margin-top:-.25px}.gauge-marker{background:var(--accent);border-radius:50%;width:7px;height:7px;margin:-3.5px 0 0 -3.5px;position:absolute;top:50%;left:0;box-shadow:0 0 0 4px #1f3bff1f}.gauge-tick{width:14px;height:22px;margin-left:-7px;position:absolute;top:0}.gauge-tick:before{content:"";background:var(--ink-3);width:1px;height:10px;transition:background .2s,height .2s,top .2s;position:absolute;top:6px;left:50%}.gauge-tick-project:before,.gauge-tick-contact:before{height:14px;top:4px}.gauge-tick:hover:before,.gauge-tick:focus-visible:before{background:var(--accent);height:18px;top:2px}.gauge-tip{white-space:nowrap;letter-spacing:.1em;color:var(--ink);opacity:0;pointer-events:none;background:#ffffffeb;padding:3px 6px;font-size:10px;transition:opacity .15s;position:absolute;bottom:26px;left:50%;transform:translate(-50%)}.gauge-tick:hover .gauge-tip,.gauge-tick:focus-visible .gauge-tip{opacity:1}.tagline{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);white-space:nowrap;will-change:transform, opacity;margin:0;font-size:clamp(12px,1.15vw,17px);font-weight:500;position:fixed;top:0;left:0}.block-cursor{vertical-align:-.16em;background:var(--accent);width:.62em;height:1.06em;margin-left:.18em;animation:1.06s step-end infinite blink;display:inline-block}.is-typing .block-cursor{animation:none}@keyframes blink{0%,50%{opacity:1}50.01%,to{opacity:0}}.hint{left:50%;bottom:calc(var(--hud-bottom) + 40px);font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);opacity:0;transition:opacity .6s var(--ease-out), transform .6s var(--ease-out);margin:0;font-size:11px;position:fixed;transform:translate(-50%,6px)}.hint.is-on{opacity:1;transform:translate(-50%)}.callout-leader{pointer-events:none;width:100%;height:100%;position:fixed;inset:0;overflow:visible}.callout-leader polyline{stroke:var(--ink);stroke-width:1px;stroke-opacity:.55}.callout-leader circle{fill:#fff;stroke:var(--accent);stroke-width:1.5px}.callout{will-change:transform, opacity;background:#ffffffe6;max-width:372px;padding:14px 16px 15px;position:fixed;top:0;left:0}.callout>:first-child{margin-top:0}.callout>:last-child{margin-bottom:0}.callout-kicker{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin:0 0 8px;font-size:11px}.callout-title{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase;color:var(--ink);margin:0 0 6px;font-size:clamp(22px,2vw,30px);font-weight:400;line-height:1}.callout-title-lg{font-size:clamp(26px,2.5vw,38px)}.callout-title .untyped{color:#0000}.caret{background:var(--accent);width:.5em;height:.86em;margin:0 .02em -.04em;display:inline-block}.callout-org{font-family:var(--font-body);color:var(--ink-2);margin:0 0 10px;font-size:12px}.callout-text{max-width:34ch;color:var(--ink-2);margin:0 0 8px;font-size:15px;line-height:1.5}.callout-link{font-family:var(--font-body);letter-spacing:.06em;color:var(--accent);border-bottom:1px solid;margin-top:6px;padding-bottom:1px;font-size:12px;text-decoration:none;display:inline-block}.callout-link:hover{color:var(--accent-deep)}.callout-about{max-width:470px}.about-grid{grid-template-columns:88px 1fr;align-items:start;gap:16px;display:grid}.portrait{border-radius:4px;width:88px;height:88px;overflow:hidden}.portrait img{object-fit:cover;width:100%;height:100%;display:block}.callout-project{max-width:400px}.project-image{object-fit:cover;width:100%;max-height:180px;margin:0 0 12px;display:block}.contact{text-align:center;pointer-events:none;background:radial-gradient(closest-side,#fffffff2 62%,#ffffffbf 82%,#fff0 100%);width:min(560px,100vw - 32px);padding:18px 22px 20px;position:fixed;top:0;left:50%}.contact.is-on,.contact.is-on a,.contact.is-on button{pointer-events:auto}.contact:not(.is-on) a,.contact:not(.is-on) button{pointer-events:none}.contact p{margin:0}.contact-label{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:6px;font-size:10.5px;display:block}.contact-email{flex-wrap:nowrap;justify-content:center;align-items:center;display:flex}.contact-email button{font-family:var(--font-body);letter-spacing:-.01em;color:var(--ink);cursor:copy;overflow-wrap:anywhere;font-size:clamp(20px,2.7vw,34px);font-weight:700}.contact-email button:hover{color:var(--accent)}.contact-email .block-cursor{vertical-align:baseline;width:.5em;height:.78em;margin-left:.12em;font-size:clamp(20px,2.7vw,34px)}.contact-actions{font-family:var(--font-body);letter-spacing:.08em;color:var(--ink-3);justify-content:center;gap:10px;font-size:12px;display:flex;margin-top:8px!important}.contact-action{color:var(--accent);text-decoration:none}.contact-action:hover{text-decoration:underline}.contact-phone{margin-top:18px!important}.contact-phone a{font-family:var(--font-body);color:var(--ink);font-size:15px;text-decoration:none}.contact-socials{flex-wrap:wrap;justify-content:center;gap:8px 22px;margin:18px 0 0;padding:0;list-style:none;display:flex}.contact-socials a{font-family:var(--font-body);letter-spacing:.08em;color:var(--ink);align-items:center;gap:8px;font-size:12px;text-decoration:none;display:inline-flex}.contact-socials a:hover{color:var(--accent)}.contact-cv{font-family:var(--font-body);letter-spacing:.12em;text-transform:uppercase;color:var(--accent);border:1px solid var(--accent);margin-top:20px;padding:10px 16px;font-size:12px;text-decoration:none;transition:background .2s,color .2s;display:inline-block}.contact-cv:hover{background:var(--accent);color:#fff}@media (max-width:639px){.callout{background:#ffffffeb;max-width:none;padding:12px 14px 13px}.callout-title{font-size:22px}.callout-title-lg{font-size:26px}.callout-text{max-width:none;font-size:14px}.about-grid{grid-template-columns:60px 1fr;gap:12px}.portrait{width:60px;height:60px}.tagline{white-space:normal;max-width:calc(100vw - 2 * var(--gutter));line-height:1.5}.callout-about .callout-text{font-size:13.5px}.gauge{width:calc(100vw - 2 * var(--gutter) - 24px);grid-template-columns:1fr 3.8em}.gauge-label{display:none}.hud-name{text-overflow:ellipsis;white-space:nowrap;max-width:55vw;overflow:hidden}.contact{padding:14px 14px 16px}}.debug{z-index:10;font:11px var(--font-body);border:1px solid var(--contour);pointer-events:auto;background:#fffffff2;gap:6px;padding:10px 12px;display:grid;position:fixed;bottom:70px;right:12px}.debug pre{margin:0}.debug label{gap:2px;display:grid}.debug button{border:1px solid var(--contour);margin-right:6px;padding:2px 6px}.card-link{pointer-events:auto;outline-offset:2px;position:fixed;top:0;left:0}.hud,.callout-kicker,.hint,.contact-label,.contact-actions,.callout-link,.contact-socials a,.contact-cv{font-weight:500}.fallback,.static-doc{max-width:760px;margin:0 auto;padding:28px 20px 64px}.fallback-bar{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;justify-content:space-between;align-items:center;font-size:11px;display:flex}.fallback .lang-toggle,.fallback .hud-name{opacity:1;position:static}.fallback-motif{width:100%;max-width:520px;margin:28px auto 8px;display:block}.doc{color:var(--ink)}.doc-header{margin:24px 0 40px}.doc-name{font-family:var(--font-display);text-transform:uppercase;color:var(--accent);overflow-wrap:anywhere;margin:0;font-size:clamp(40px,8vw,76px);font-weight:400;line-height:.98}.doc-tagline{font-family:var(--font-body);letter-spacing:.14em;text-transform:uppercase;margin:14px 0 0;font-size:13px}.doc-section{margin:0 0 44px}.doc-section h2{font-family:var(--font-body);letter-spacing:.16em;text-transform:uppercase;color:var(--accent);border-bottom:1px solid var(--contour);margin:0 0 16px;padding-bottom:8px;font-size:11px;font-weight:500}.doc-section p{color:var(--ink-2);margin:0 0 10px;font-size:16px;line-height:1.6}.doc-timeline,.doc-projects{margin:0;padding:0;list-style:none}.doc-timeline li,.doc-projects li{margin:0 0 22px}.doc h3{font-family:var(--font-display);letter-spacing:.01em;text-transform:uppercase;margin:0 0 4px;font-size:22px;font-weight:400}.doc-org{font-family:var(--font-body);text-transform:none;color:var(--ink-2);font-size:13px;font-weight:400}.doc-date{font-family:var(--font-body);letter-spacing:.08em;color:var(--accent)!important;margin-bottom:4px!important;font-size:12px!important}.doc a{color:var(--accent)}.doc-contact{font-style:normal}.doc-contact ul{font-family:var(--font-body);gap:18px;margin:12px 0;padding:0;font-size:13px;list-style:none;display:flex}.fallback-note{font-family:var(--font-body);color:var(--ink-3);margin-top:32px;font-size:11px}.doc-tagline,.doc-date,.fallback-bar,.doc-contact ul{font-weight:500}@font-face{font-family:Satoshi;src:url(./Satoshi-Variable-CFg-z2ne.woff2)format("woff2");font-weight:300 900;font-style:normal;font-display:swap}@font-face{font-family:Tanker;src:url(./Tanker-Regular-C0qQ52Mm.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}*,:before,:after{box-sizing:border-box}html,body{background:var(--bg);height:100%;color:var(--ink);font-family:var(--font-body);font-synthesis:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;margin:0}body.descent{overscroll-behavior:none;touch-action:none;overflow:hidden}#root{min-height:100%;position:relative}.stage{inset:0;width:100vw!important;height:100dvh!important;position:fixed!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}a{color:inherit}::selection{background:var(--accent);color:#fff}:focus-visible{outline:1.5px solid var(--accent);outline-offset:3px}
