@font-face{font-family:Manrope;src:url('/manrope-latin.woff2') format('woff2');font-weight:200 800;font-style:normal;font-display:swap}
:root{color-scheme:dark;--ink:#1b1b1e;--cream:#eee7da;--gold:#c5aa80;--muted:#a5a098;--line:#c5aa8028;--panel:#222224;--soft:#c5aa800b;--hover:#c5aa8020;--game-ink:#eddbb9;--game-target:#b79a6e;--game-grid:#d6b47712;--button:#e8d8b8;--button-ink:#25231f;font-family:Manrope,sans-serif;color:var(--cream);background:var(--ink);font-synthesis:none}
:root[data-theme=light]{color-scheme:light;--ink:#f0e9db;--cream:#282b2d;--gold:#8c5c2b;--muted:#65615a;--line:#8c5c2b35;--panel:#f7f0e4;--soft:#8c5c2b09;--hover:#8c5c2b16;--game-ink:#664621;--game-target:#956735;--game-grid:#8c5c2b1b;--button:#2b3030;--button-ink:#f5eddd}
*{box-sizing:border-box}body{margin:0}.theme-toggle{display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:50%;background:none;padding:0}.theme-toggle:hover{background:var(--hover)}.theme-toggle svg{width:18px;height:18px;stroke:var(--gold);stroke-width:1.4}.theme-moon{display:none}:root[data-theme=light] .theme-sun{display:none}:root[data-theme=light] .theme-moon{display:block}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer;touch-action:manipulation}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}::selection{background:#b88a4b;color:#17171d}[hidden]{display:none!important}
.atmosphere{position:fixed;inset:0;z-index:-3;background:radial-gradient(ellipse at 73% 40%,#6b543314,transparent 55%)}
.scene{position:fixed;inset:0 -4% 0 28%;pointer-events:none;z-index:-2;overflow:hidden;mask-image:linear-gradient(90deg,transparent,black 12%,black 90%,transparent)}
.scene canvas{width:100%;height:100%;display:block;opacity:0;transition:opacity 1.4s}.scene.ready canvas{opacity:1}
.sun-fallback{position:absolute;width:29%;aspect-ratio:1;border-radius:50%;left:36%;top:29%;background:radial-gradient(circle at 45% 42%,#fff0b1,#ffc65c 60%,#f09a35 92%);box-shadow:0 0 45px 12px #e9a03925;transition:opacity 1.4s}.scene.ready .sun-fallback{opacity:0}
.page{max-width:1920px;min-height:100svh;margin:auto;padding:0 5vw;display:flex;flex-direction:column}
header{height:104px;display:flex;align-items:center;justify-content:space-between;gap:20px}.seal{color:var(--gold)}.seal svg{height:31px;width:31px;stroke:currentColor;stroke-width:1}
nav{display:flex;align-items:center;gap:28px}.linkedin{font-size:12px;display:flex;align-items:center;gap:14px}.arrow-icon{width:18px;height:18px;flex-shrink:0;stroke:currentColor;stroke-width:1.5}.linkedin .arrow-icon{transition:transform .2s}.linkedin:hover .arrow-icon{transform:translate(2px,-2px)}.email{height:40px;width:40px;border:1px solid var(--line);border-radius:50%;display:grid;place-items:center;transition:background .2s}.email:hover{background:#c5aa8018}.email svg{width:18px;height:18px;stroke:var(--gold);stroke-width:1.3}
main{position:relative;flex:1;display:flex;align-items:center;min-height:460px;padding-bottom:20px}.intro{width:62%;animation:reveal 1s ease both}
h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(160px,23vw,340px);font-weight:400;line-height:1;letter-spacing:-.075em;margin:0 0 28px -10px}
.bio{font-size:13px;line-height:1.9;color:var(--muted)}.bio p{margin:0}.bio .personal{margin-bottom:8px}.bio .profession{color:var(--cream)}
footer{min-height:88px;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:11px;color:var(--muted)}.full-name{letter-spacing:.025em}#open-games{display:flex;align-items:center;justify-content:space-between;gap:30px;min-width:136px;min-height:50px;padding:12px 22px;border:0;border-radius:30px;background:var(--button);color:var(--button-ink);font-size:15px;font-weight:600;transition:transform .2s}#open-games:hover{transform:translateY(-2px)}
dialog{position:fixed;inset:auto 4vw 85px auto;margin:0;width:370px;max-width:calc(100vw - 32px);max-height:calc(100svh - 32px);overflow:auto;padding:20px 25px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--cream);box-shadow:0 20px 100px #0006}
dialog::backdrop{background:#08090b45;backdrop-filter:blur(3px)}dialog[open]{animation:reveal .2s ease both}.arcade-header{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.close{border:0;background:none;font-size:26px;font-weight:200;color:var(--muted);width:34px;height:34px;margin-right:-8px}.game-tabs{display:flex;border-bottom:1px solid var(--line);margin:12px 0 23px}.game-tabs button{width:33.333%;background:none;border:0;border-bottom:1px solid transparent;padding:12px 0;font-size:12px;color:var(--muted)}.game-tabs button[aria-pressed=true]{color:var(--cream);border-color:var(--gold)}
dialog h2{font-family:Georgia,serif;font-weight:400;font-size:29px;letter-spacing:-.035em;margin:0 0 10px}.game-description{font-size:12px;line-height:1.8;color:var(--muted);margin:0}.game-status{font-size:12px;min-height:34px;line-height:1.5;color:var(--gold);text-align:center}.game-action{height:45px;width:100%;border:1px solid var(--line);border-radius:5px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;font-size:13px;background:var(--soft);transition:background .2s}.game-action:hover{background:#c5aa8020}.game-foot{display:flex;justify-content:space-between;margin-top:14px;font-size:9px;letter-spacing:.03em;color:var(--muted)}
.assembly-board{position:relative;width:260px;height:273px;margin:0 auto 4px}.assembly-guide{position:absolute;inset:0;width:100%;height:100%;fill:none;stroke:var(--line);stroke-width:1.5;stroke-dasharray:4 5}.assembly-piece{position:absolute;border:0;padding:0;background:none;transform:rotate(calc(var(--turn,0)*90deg));transition:transform .45s cubic-bezier(.2,.7,.2,1);pointer-events:none}.assembly-piece svg{display:block;width:100%;height:100%;overflow:visible}.assembly-piece path{pointer-events:visiblePainted;transition:filter .2s}.assembly-piece:hover path{filter:brightness(1.2)}.assembly-piece:focus-visible{outline:1px solid var(--gold)}.a-left{left:18.75%;top:16.6667%;width:37.5%;height:66.6667%}.a-right{left:43.75%;top:16.6667%;width:37.5%;height:66.6667%}.a-cross{left:25.5%;top:60.7143%;width:49%;height:11.4286%}
.orbit-board{position:relative;margin:2px auto 0;width:230px;height:230px}.orbit-board svg{width:100%;height:100%;overflow:visible}.orbit-track{fill:none;stroke:var(--line);stroke-width:1}.target-arc{fill:none;stroke:var(--gold);stroke-width:5;stroke-linecap:round}.orbital-spark{fill:var(--game-ink)}.spark-halo{fill:#ffdc8920}.board-sun{fill:#957951}.board-halo{fill:none;stroke:#c5aa8030}.orbit-board>span{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;font-size:13px;color:#fff0d1}#orbit-hand,#target-arc{transform-origin:120px 120px}
#flight-canvas{display:block;width:100%;aspect-ratio:320/270;margin:12px 0 6px;touch-action:none;border-bottom:1px solid var(--line)}.flight-controls{display:flex;gap:9px}.flight-controls>button:not(.game-action){flex:0 0 44px;border:1px solid var(--line);border-radius:5px;background:none}.flight-controls>button:hover{background:#c5aa8018}
@keyframes reveal{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media(min-width:1600px){.page{padding:0 7vw}}
@media(max-width:1050px) and (min-width:761px){.bio p span{display:block;margin-left:0}}
@media(max-height:700px) and (min-width:761px){header{height:76px}main{min-height:400px}h1{font-size:230px}footer{min-height:60px}dialog{bottom:16px}}
@media(max-width:760px){.page{padding:0 7vw}header{height:76px}.seal svg{width:27px;height:27px}nav{gap:12px}.linkedin{font-size:11px;gap:7px}.email,.theme-toggle{width:40px;height:40px}.scene{inset:0 -26% 0 3%;mask-image:linear-gradient(180deg,black,black 60%,transparent)}.sun-fallback{width:26%;top:22%;left:41%}main{min-height:500px;align-items:flex-end;padding:0 0 42px}.intro{width:100%}h1{font-size:clamp(145px,43vw,230px);margin:0 0 20px -6px}.bio{font-size:13px}.bio p{font-size:12px}.bio p span{margin-left:5px}footer{min-height:78px;font-size:10px}#open-games{font-size:14px;min-width:125px;min-height:48px;padding:10px 20px}dialog{inset:auto 16px 16px;width:calc(100vw - 32px);max-width:430px;margin:0 auto;padding:17px 23px}.game-tabs{margin:8px 0 18px}.orbit-board{width:210px;height:210px}dialog h2{font-size:26px}}
@media(max-width:760px) and (max-height:740px){header{height:62px}main{min-height:470px;padding-bottom:28px}h1{font-size:145px;margin-bottom:16px}footer{min-height:76px}.assembly-board{width:230px;height:241.5px}.orbit-board{width:185px;height:185px}#flight-canvas{width:min(100%,260px);margin:12px auto 6px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
