:root{--bg:#010107;--bg-2:#050713;--text:#f7fbff;--muted:#e5f2ffb8;--faint:#e5f2ff7a;--cyan:#78d7ff;--violet:#a991ff;--amber:#ffb35b;--border:#ffbd702e;--panel:#070912b8;--panel-strong:#070a15f0;--shadow:0 24px 90px #00000080;--ease:cubic-bezier(.2, .8, .2, 1)}*,:before,:after{box-sizing:border-box}html,body{min-height:100%}body{overscroll-behavior:none;min-height:100vh;color:var(--text);background:radial-gradient(circle at 50% 48%, #ff8e361c, transparent 24rem), radial-gradient(circle at 18% 18%, #765bb214, transparent 22rem), linear-gradient(145deg, var(--bg), var(--bg-2) 52%, #010103);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;overflow:hidden}button,a{font:inherit}:focus-visible{outline:2px solid var(--cyan);outline-offset:4px}.app-shell{isolation:isolate;min-height:100vh;position:relative}.app-loader{z-index:20;color:var(--text);transition:opacity .7s var(--ease), visibility .7s var(--ease);background:radial-gradient(circle at 50% 48%,#ffbd7038,#0000 11rem),radial-gradient(at 50% 51%,#ff6f2233 0 8%,#ffb85921 13%,#0000 31%),linear-gradient(145deg,#010106,#050712 54%,#010103);align-content:center;place-items:center;gap:1.2rem;padding:1.5rem;display:grid;position:fixed;inset:0;overflow:hidden}.app-loader:before{content:"";filter:blur(12px);background:linear-gradient(90deg,#0000,#ff9f4647,#fff5d17a,#ff802c38,#0000);width:min(58rem,132vw);height:clamp(2.4rem,8vw,5.8rem);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)rotate(-2deg)}.app-shell.is-scene-ready .app-loader{visibility:hidden;opacity:0;pointer-events:none}.app-loader[hidden]{display:none}.loader-mark{aspect-ratio:1;width:clamp(7rem,18vw,12rem);position:relative}.loader-ring,.loader-core,.loader-ring:before{border-radius:50%;position:absolute;inset:0}.loader-ring{border:1px solid #ffbd7038;animation:1.6s linear infinite loader-ring-sweep;box-shadow:0 0 4rem #ff9e4438}.loader-ring:before{content:"";filter:drop-shadow(0 0 1.2rem #ffc568a6);border-top:2px solid #fff6d8f2;border-bottom:1px solid #0000;border-left:1px solid #0000;border-right:1px solid #ffb15494;inset:-.18rem}.loader-core{background:#000;border-radius:46% 52% 49% 55%;inset:29%;box-shadow:inset 0 0 1.2rem #000000fa,0 0 2.4rem #ffba6252,0 0 5.4rem #ff6c262e}.loader-kicker{color:#f7fbffc7;letter-spacing:0;margin:0;font-size:.86rem;font-weight:800;position:relative}.loader-stream{color:#ffd79b94;letter-spacing:0;gap:.55rem;font:700 .72rem/1 IBMPlexMono-Medium,ui-monospace,monospace;display:flex;position:relative;overflow:hidden}.loader-stream span{animation:1.2s steps(4,end) infinite loader-stream-shift}.loader-stream span:nth-child(2){animation-delay:.12s}.loader-stream span:nth-child(3){animation-delay:.24s}@keyframes loader-ring-sweep{to{transform:rotate(360deg)}}@keyframes loader-stream-shift{50%{opacity:.42;transform:translateY(-1px)}}.hero-copy{z-index:4;pointer-events:none;width:min(42rem,100vw - 2rem);transition:opacity .28s var(--ease);position:fixed;top:clamp(1rem,5vh,4rem);left:clamp(1rem,4vw,4.5rem)}.app-shell.is-scene-ready .hero-copy{opacity:0}.app-shell.webgl-fallback .hero-copy{opacity:1}.profile-location,.profile-headline,.profile-about,.section-kicker,.section-meta,.section-org,.section-dates{color:var(--muted);margin:0}.profile-location{text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:700}h1{letter-spacing:0;margin:.55rem 0 0;font-size:8.7rem;line-height:.95}.profile-headline{color:#f7fbfff0;margin-top:.95rem;font-size:1.62rem;font-weight:800;line-height:1.18}.profile-about{margin-top:.55rem;line-height:1.42}.profile-skills,.tag-list,.summary-list,.contact-links{margin:0;padding:0;list-style:none}.profile-skills{flex-wrap:wrap;gap:.45rem;margin-top:.95rem;display:flex}.profile-skills li,.tag-list li{color:#f7fbffd1;border:1px solid #78d7ff38;border-radius:999px;padding:.34rem .58rem;font-size:.78rem}.singularity-stage,#singularity-canvas{touch-action:none;position:fixed;inset:0}#singularity-canvas{opacity:0;width:100%;height:100%;display:block}.app-shell.is-scene-ready #singularity-canvas{opacity:1}.app-shell.is-scroll-transitioning #singularity-canvas,html.is-scroll-transitioning #singularity-canvas{filter:saturate(1.05)contrast(1.02)}.app-shell.is-scroll-transitioned .hero-copy,html.is-scroll-transitioned .hero-copy{opacity:0}.event-horizon{aspect-ratio:1;filter:blur(.4px)drop-shadow(0 0 3.5rem #ff9d506b);opacity:0;width:min(32vw,25rem);transition:opacity .42s var(--ease);pointer-events:none;z-index:1;background:radial-gradient(circle,#000 0 38%,#000000db 43%,#ff963659 48%,#0000 62%);border-radius:50%;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.webgl-fallback .event-horizon{opacity:1}.webgl-fallback .orbit-node-button{left:min(78vw,100vw - 8rem);top:calc(34% + var(--node-index) * 5.2rem);opacity:1!important}.orbit-controls{z-index:3;pointer-events:none;position:fixed;inset:0}.orbit-node-button{left:var(--node-x,50%);top:var(--node-y,50%);border:1px solid var(--border);min-width:10rem;max-width:min(18rem,42vw);color:var(--text);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;pointer-events:auto;transition:transform .22s var(--ease), border-color .22s var(--ease), background .22s var(--ease), opacity .22s var(--ease);background:#02050d6b;border-radius:.5rem;padding:.76rem .9rem;position:fixed;transform:translate(-50%,-50%);box-shadow:0 0 1.3rem #ff9e4412}.orbit-node-button:after{content:"";width:.48rem;height:.48rem;opacity:var(--connector-opacity,1);pointer-events:none;transform:translate(calc(var(--connector-x,0px) - 50%), calc(var(--connector-y,0px) - 50%));transition:opacity .22s var(--ease), transform .22s var(--ease);background:#ffb960d6;border-radius:50%;position:absolute;top:50%;left:50%;box-shadow:0 0 1rem #ff9f46ad,0 0 2rem #78d7ff2e}.orbit-node-button:hover,.orbit-node-button:focus-visible,.orbit-node-button[aria-selected=true]{background:#070d1cad;border-color:#78d7ff94;transform:translate(-50%,-50%)scale(1.06)}html.is-distorting .orbit-node-button{filter:saturate(1.18)contrast(1.08)}.node-label{font-size:.95rem;font-weight:800;display:block}.node-preview{color:var(--muted);margin-top:.35rem;font-size:.72rem;line-height:1.35;display:block}.node-pulse{background:var(--amber);border-radius:50%;width:.62rem;height:.62rem;position:absolute;top:50%;left:-.55rem;transform:translateY(-50%);box-shadow:0 0 1.1rem #ffb35bad,0 0 1.8rem #78d7ff29}.system-status{z-index:6;color:var(--muted);margin:0;font-size:.85rem;position:fixed;bottom:1rem;left:1rem}.reduced-motion-note{display:none}.tilt-toggle{right:calc(env(safe-area-inset-right,0px) + .85rem);bottom:calc(env(safe-area-inset-bottom,0px) + .85rem);z-index:7;min-width:5.9rem;min-height:3rem;color:var(--text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);cursor:pointer;transition:border-color .22s var(--ease), background .22s var(--ease), opacity .22s var(--ease);background:#030710bd;border:1px solid #ffb35b52;border-radius:.5rem;grid-template-columns:auto auto;grid-template-areas:"glyph label""glyph state";align-items:center;gap:0 .5rem;padding:.44rem .62rem;display:none;position:fixed;box-shadow:0 .7rem 2.4rem #00000061,0 0 1.4rem #ff9e441f}.tilt-toggle[hidden]{display:none!important}.tilt-toggle[aria-pressed=true]{background:#241208c7;border-color:#ffd58fb8;box-shadow:0 .8rem 2.8rem #0000006b,0 0 1.8rem #ff9e4438}.tilt-toggle:disabled{cursor:default;opacity:.46}.tilt-glyph{aspect-ratio:1;background:radial-gradient(circle,#ffb35b40,#0000 64%);border:1px solid #ffdeaa6b;border-radius:50%;grid-area:glyph;width:1.55rem;display:block;position:relative}.tilt-glyph:before{content:"";background:#ffe6bed6;height:1px;position:absolute;top:50%;left:.28rem;right:.28rem;transform:rotate(-18deg);box-shadow:0 0 .5rem #ffb35b7a}.tilt-glyph-core{aspect-ratio:1;background:#ffecccf0;border-radius:50%;width:.36rem;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);box-shadow:0 0 .7rem #ffb35bb8}.tilt-label{grid-area:label;font-size:.78rem;font-weight:800;line-height:1}.tilt-state{color:#f7fbff9e;grid-area:state;font-size:.68rem;font-weight:700;line-height:1}.cards-control-hint{left:50%;top:calc(env(safe-area-inset-top,0px) + .8rem);z-index:7;color:#f7fbffd1;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);opacity:0;pointer-events:none;max-width:min(31rem,100vw - 1.5rem);transition:opacity .26s var(--ease), transform .26s var(--ease);background:#0409119e;border:1px solid #ffb35b47;border-radius:.5rem;justify-content:center;align-items:center;gap:.72rem;padding:.46rem .68rem;display:flex;position:fixed;transform:translate(-50%,-.45rem);box-shadow:0 .8rem 2.4rem #00000047,0 0 1.2rem #ff9e441a}.app-shell.is-cards-page .cards-control-hint,html.is-cards-page .cards-control-hint{opacity:1;transform:translate(-50%)}.cards-control-hint span{white-space:nowrap;align-items:center;gap:.34rem;font-size:.78rem;font-weight:800;line-height:1;display:inline-flex}.cards-control-hint .cards-touch-hint{display:none}.cards-control-hint .cards-keyboard-hint{display:inline-flex}.app-shell.is-cards-page .tilt-toggle,html.is-cards-page .tilt-toggle{display:none!important}.cards-control-hint kbd{color:#fff1d8eb;text-align:center;background:#ffb35b1c;border:1px solid #ffe2b26b;border-radius:.28rem;min-width:1.35rem;padding:.18rem .32rem;font:800 .68rem/1 IBMPlexMono-Medium,ui-monospace,monospace;box-shadow:inset 0 -1px #ffffff24}.section-panels{z-index:5;pointer-events:none;position:fixed;inset:0}.content-panel{border:1px solid var(--border);background:linear-gradient(135deg, var(--panel-strong), var(--panel));box-shadow:var(--shadow);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);pointer-events:auto;border-radius:.5rem;padding:clamp(1.2rem,4vw,3rem);position:fixed;inset:clamp(1rem,5vw,4rem);overflow:auto}.content-panel[hidden]{display:none}.back-button{color:var(--text);cursor:pointer;background:#78d7ff14;border:1px solid #78d7ff61;border-radius:999px;padding:.65rem .9rem}.content-panel h2{letter-spacing:0;max-width:58rem;margin:1rem 0 1.5rem;font-size:clamp(1.8rem,4vw,4.6rem);line-height:.98}.section-body{gap:1rem;display:grid}.section-card,.skill-group{background:#ffffff09;border:1px solid #a0d2ff24;border-radius:.5rem;padding:1rem}.section-card-header{justify-content:space-between;gap:1rem;display:flex}.section-card h3,.skill-group h3{margin:0;font-size:1.05rem}.summary-list{color:#f7fbffd6;gap:.55rem;margin-top:.8rem;display:grid}.tag-list{flex-wrap:wrap;gap:.45rem;margin-top:.8rem;display:flex}.skill-grid{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr));gap:1rem;display:grid}.contact-layout{max-width:28rem;display:grid}.app-shell.is-scroll-transitioned .orbit-node-button,html.is-scroll-transitioned .orbit-node-button{background:#0407108a;border-color:#ffbb6842;box-shadow:0 0 1.45rem #ff9e441a}.app-shell.is-cards-page .orbit-node-button,html.is-cards-page .orbit-node-button{pointer-events:none;opacity:0!important}.contact-links{gap:.8rem;display:grid}.contact-links li{display:grid}.contact-links a,.section-link{color:var(--cyan)}.contact-links a{transition:border-color .18s var(--ease), background .18s var(--ease);background:#02050d6b;border:1px solid #78d7ff33;border-radius:.5rem;padding:.8rem .95rem;text-decoration:none}.contact-links a:hover,.contact-links a:focus-visible{background:#120c088f;border-color:#ffb35b75}@media (width<=1100px){h1{font-size:6.7rem}}@media (width<=760px){body{overflow:hidden}.hero-copy{padding:1rem;position:relative;top:auto;left:auto}h1{margin-top:.5rem;font-size:3.85rem;line-height:.98}.profile-headline{margin-top:.75rem;font-size:1.22rem;line-height:1.22}.profile-about{margin-top:.65rem}.profile-skills{margin-top:.95rem}.tilt-toggle{display:grid}.cards-control-hint{gap:.5rem;padding:.42rem .55rem}.cards-control-hint .cards-keyboard-hint{display:none}.cards-control-hint .cards-touch-hint{display:inline-flex}.orbit-node-button{left:50%;top:calc(62% + (var(--node-index) - 2) * 6.2rem);background:#030814c7;width:min(18rem,100vw - 2rem);min-width:0;max-width:min(18rem,100vw - 2rem);position:absolute;transform:translate(-50%,-50%)}.content-panel{inset:.75rem}.contact-layout{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}.reduced-motion-note{display:block}.loader-ring,.loader-stream span{animation:none}.tilt-toggle{display:none!important}}
