:root{--bg:#05010f;--bg2:#0a0524;--ink:#ece9ff;--muted:#9d96cf;--line:#8c78ff3d;--cyan:#00f0ff;--mag:#ff2bd6;--vio:#8b5cff;--lime:#b6ff3c;--amber:#ffb800;--red:#ff3b5c;--panel:#09051ed6;--font:"Chakra Petch", "Segoe UI", system-ui, sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Code", Consolas, monospace;--safe-t:env(safe-area-inset-top,0px);--safe-r:env(safe-area-inset-right,0px);--safe-b:env(safe-area-inset-bottom,0px);--safe-l:env(safe-area-inset-left,0px);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0}body{min-height:100dvh;overflow-x:hidden}button{font:inherit;color:inherit}a{color:var(--cyan)}:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}kbd{font-family:var(--mono);border:1px solid var(--line);background:#ffffff0d;border-bottom-width:2px;border-radius:5px;margin:0 .12em;padding:.12em .45em;font-size:.78em}.icon{flex:none}.btn{border:1px solid var(--line);cursor:pointer;letter-spacing:.02em;white-space:nowrap;background:#ffffff0a;border-radius:10px;justify-content:center;align-items:center;gap:.5em;padding:.62em 1.05em;font-size:.92rem;font-weight:600;text-decoration:none;transition:transform .12s,background .2s,border-color .2s,box-shadow .2s;display:inline-flex}.btn:hover:not(:disabled){border-color:var(--c,var(--cyan));box-shadow:0 0 18px -4px var(--c,var(--cyan));transform:translateY(-1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn.primary{background:linear-gradient(135deg, var(--cyan), #38a8ff);color:#02121a;box-shadow:0 0 24px -6px var(--cyan);border-color:#0000}.btn.primary:hover:not(:disabled){box-shadow:0 0 30px -2px var(--cyan)}.btn.cvbtn{border-color:var(--lime);color:var(--lime);background:#b6ff3c12}.btn.big{padding:.85em 1.4em;font-size:1rem}.icon-btn{border:1px solid var(--line);cursor:pointer;background:#ffffff0a;border-radius:10px;flex:none;place-items:center;width:40px;height:40px;display:grid}.icon-btn:hover{border-color:var(--cyan)}.icon-link{width:40px;height:40px;color:var(--muted);border:1px solid #0000;border-radius:10px;place-items:center;display:grid}.icon-link:hover{color:var(--cyan);border-color:var(--line)}.world{background:var(--bg);touch-action:none;-webkit-user-select:none;user-select:none;position:fixed;inset:0;overflow:clip}.world-canvas{touch-action:none;outline:none;width:100%;height:100%;display:block;position:absolute;inset:0}.world:after{content:"";pointer-events:none;background:radial-gradient(#0000 55%,#05010fbf 100%),repeating-linear-gradient(0deg,#ffffff05 0 1px,#0000 1px 3px);position:absolute;inset:0}.label-layer{pointer-events:none;z-index:1;isolation:isolate;position:absolute;inset:0;overflow:hidden}.zone-label{pointer-events:auto;cursor:pointer;border:1px solid color-mix(in srgb, var(--c) 70%, transparent);box-shadow:0 0 18px -4px var(--c), inset 0 0 12px -8px var(--c);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap;background:#08041cb8;border-radius:8px;flex-direction:column;align-items:center;gap:1px;padding:5px 12px 6px;transition:box-shadow .25s,background .25s;display:flex}.zone-label:hover,.zone-label.is-near{box-shadow:0 0 28px -2px var(--c), inset 0 0 14px -6px var(--c);background:#08041ceb}.zone-label.is-hidden{display:none!important}.zl-name{letter-spacing:.06em;text-transform:uppercase;color:var(--c);text-shadow:0 0 10px var(--c);font-size:.86rem;font-weight:700}.zl-tag{font-family:var(--mono);color:var(--muted);letter-spacing:.04em;font-size:.64rem}.hud-top{top:calc(var(--safe-t) + 12px);left:calc(var(--safe-l) + 12px);right:calc(var(--safe-r) + 12px);pointer-events:none;z-index:5;justify-content:space-between;align-items:flex-start;gap:8px;display:flex;position:absolute}.hud-top>*{pointer-events:auto}.brand{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:12px;align-items:center;gap:10px;padding:7px 14px 7px 8px;display:flex}.brand-mark{background:linear-gradient(135deg, var(--cyan), var(--mag));color:#05010f;border-radius:8px;place-items:center;width:28px;height:28px;display:grid}.brand-text{flex-direction:column;line-height:1.15;display:flex}.brand-text b{letter-spacing:.03em;font-size:.92rem}.brand-text small{font-family:var(--mono);color:var(--muted);font-size:.66rem}button.brand{cursor:pointer;text-align:left;transition:border-color .2s,box-shadow .2s}button.brand:hover{border-color:var(--cyan);box-shadow:0 0 18px -4px var(--cyan)}.brand-col{flex-direction:column;align-items:flex-start;gap:8px;min-width:0;display:flex}.place-chip{background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--muted);white-space:nowrap;border-radius:99px;align-items:center;gap:6px;max-width:100%;margin:0;padding:5px 11px 5px 9px;font-size:.78rem;display:inline-flex}.place-chip b{color:var(--ink);font-weight:600}.place-chip i{font-style:normal;font-family:var(--mono);color:var(--cyan);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem}.place-chip .icon{color:var(--cyan)}.scenic-label{pointer-events:none;font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:#cfe7ff;white-space:nowrap;text-shadow:0 0 8px #78beffb3;background:#08041c8c;border:1px solid #9fd6ff59;border-radius:99px;padding:2px 9px;font-size:.64rem}.scenic-label.is-hidden{display:none!important}.boarding{border:1px dashed color-mix(in srgb, var(--c) 70%, transparent);background:linear-gradient(135deg, color-mix(in srgb, var(--c) 10%, transparent), transparent);border-radius:16px;margin:4px 0 16px;padding:16px 18px}.bp-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.bp-row>div{flex-direction:column;line-height:1.15;display:flex}.bp-row .right{text-align:right;align-items:flex-end}.bp-row small{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-size:.66rem}.bp-row b{letter-spacing:.04em;color:var(--c);text-shadow:0 0 14px var(--c);font-size:2.1rem}.bp-row span{color:var(--muted);font-size:.85rem}.bp-plane{color:var(--c);flex:1;max-width:54px}.bp-meta{border-top:1px dashed var(--line);font-family:var(--mono);color:var(--muted);justify-content:space-between;margin-top:14px;padding-top:12px;font-size:.72rem;display:flex}.btn.full{width:100%}.hud-actions{gap:8px;display:flex}.hud-btn{border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);cursor:pointer;white-space:nowrap;border-radius:12px;align-items:center;gap:8px;height:44px;padding:0 14px;font-size:.86rem;font-weight:600;transition:border-color .2s,box-shadow .2s;display:inline-flex}.hud-btn:hover{border-color:var(--cyan);box-shadow:0 0 18px -4px var(--cyan)}.hud-btn.cv-cta{border-color:var(--lime);color:var(--lime);box-shadow:0 0 22px -8px var(--lime)}.hud-btn.cv-cta:hover{box-shadow:0 0 24px -2px var(--lime);border-color:var(--lime)}.hud-progress{left:calc(var(--safe-l) + 12px);bottom:calc(var(--safe-b) + 14px);background:var(--panel);border:1px solid var(--line);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:5;pointer-events:none;border-radius:14px;width:min(290px,100vw - 24px);padding:12px 14px;position:absolute}.hud-progress.lifted{bottom:calc(var(--safe-b) + 150px);width:min(250px,100vw - 24px)}.progress-row{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);justify-content:space-between;margin-bottom:6px;font-size:.7rem;display:flex}.progress-row b{color:var(--cyan)}.bar{background:#ffffff14;border-radius:99px;height:6px;overflow:hidden}.bar i{background:linear-gradient(90deg, var(--cyan), var(--mag));height:100%;box-shadow:0 0 12px var(--cyan);transition:width .6s cubic-bezier(.2,.8,.2,1);display:block}.objective{align-items:center;gap:10px;margin-top:11px;display:flex}.objective.done{color:var(--lime)}.objective .arrow{border:1px solid var(--c);width:30px;height:30px;color:var(--c);box-shadow:0 0 12px -3px var(--c);border-radius:50%;flex:none;place-items:center;transition:transform .15s linear,opacity .3s;display:grid}.objective-text{flex-direction:column;flex:1;min-width:0;line-height:1.15;display:flex}.objective-text small{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.62rem}.objective-text b{color:var(--c);white-space:nowrap;text-overflow:ellipsis;font-size:.88rem;overflow:hidden}.dist{font-family:var(--mono);color:var(--muted);font-size:.74rem}.interact{left:50%;bottom:calc(var(--safe-b) + 28px);border:1px solid var(--c);color:var(--ink);cursor:pointer;box-shadow:0 0 30px -6px var(--c);z-index:6;background:#08041ce6;border-radius:14px;align-items:center;gap:12px;padding:12px 20px;font-size:.98rem;animation:2s ease-in-out infinite pulse-border;display:inline-flex;position:absolute;transform:translate(-50%)}.interact b{color:var(--c)}.interact kbd{border-color:var(--c);color:var(--c)}@keyframes pulse-border{50%{box-shadow:0 0 44px -2px var(--c)}}.controls-hint{left:50%;top:calc(var(--safe-t) + 74px);background:var(--panel);border:1px solid var(--line);color:var(--muted);white-space:nowrap;text-overflow:ellipsis;z-index:4;pointer-events:none;border-radius:99px;max-width:calc(100vw - 24px);margin:0;padding:9px 16px;font-size:.82rem;position:absolute;overflow:hidden;transform:translate(-50%)}.controls-hint b{color:var(--ink)}.zoom-ctl{right:calc(var(--safe-r) + 14px);bottom:calc(var(--safe-b) + 18px);border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:6;border-radius:12px;flex-direction:column;display:flex;position:absolute;overflow:hidden}.zoom-ctl.touch{bottom:calc(var(--safe-b) + 118px)}.zoom-ctl button{width:42px;height:40px;color:var(--ink);cursor:pointer;background:0 0;border:0;place-items:center;display:grid}.zoom-ctl button+button{border-top:1px solid var(--line)}.zoom-ctl button:hover{color:var(--cyan);background:#00f0ff1f}.joystick{left:calc(var(--safe-l) + 26px);bottom:calc(var(--safe-b) + 26px);border:1px solid var(--line);width:112px;height:112px;box-shadow:0 0 30px -8px var(--cyan), inset 0 0 20px -8px var(--cyan);touch-action:none;z-index:6;background:radial-gradient(circle,#00f0ff1a,#0a0524a6);border-radius:50%;place-items:center;display:grid;position:absolute}.joystick.active{border-color:var(--cyan)}.joystick-knob{background:radial-gradient(circle at 35% 30%, #aef8ff, var(--cyan));width:46px;height:46px;box-shadow:0 0 20px var(--cyan);pointer-events:none;border-radius:50%;transition:transform 40ms linear}.boost-btn{right:calc(var(--safe-r) + 28px);bottom:calc(var(--safe-b) + 40px);border:1px solid var(--line);background:var(--panel);width:64px;height:64px;color:var(--amber);z-index:6;border-radius:50%;place-items:center;display:grid;position:absolute}.boost-btn.on{border-color:var(--amber);box-shadow:0 0 26px -2px var(--amber);background:#ffb80029}.panel{top:calc(var(--safe-t) + 12px);right:calc(var(--safe-r) + 12px);bottom:calc(var(--safe-b) + 12px);background:var(--panel);border:1px solid color-mix(in srgb, var(--c) 55%, transparent);width:min(470px,42vw);box-shadow:0 0 60px -14px var(--c), inset 0 0 40px -30px var(--c);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);z-index:20;-webkit-user-select:text;user-select:text;cursor:auto;border-radius:18px;outline:none;flex-direction:column;animation:.38s cubic-bezier(.2,.9,.2,1) panel-in;display:flex;position:absolute}@keyframes panel-in{0%{opacity:0;transform:translate(24px)}}.panel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 20px 14px;display:flex}.kicker{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--c);text-shadow:0 0 12px var(--c);margin:0 0 6px;font-size:.7rem}.panel h2{letter-spacing:.01em;margin:0;font-size:1.6rem;line-height:1.12}.meta{color:var(--muted);margin:7px 0 0;font-size:.84rem;line-height:1.4}.panel-body{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;touch-action:pan-y;flex:1;padding:16px 20px 8px;overflow-y:auto}.lead{color:#ddd9f7;margin:0 0 14px;font-size:.98rem;line-height:1.6}.lead.jp{color:var(--red);text-shadow:0 0 14px #ff3b5c80;font-size:1.12rem}.panel h3{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:18px 0 8px;font-size:.72rem;font-weight:500}.log{gap:10px;margin:0;padding:0;list-style:none;display:grid}.log li{color:#d6d2f0;padding-left:18px;font-size:.92rem;line-height:1.55;position:relative}.log li:before{content:"";background:var(--c);width:7px;height:7px;box-shadow:0 0 10px var(--c);position:absolute;top:.62em;left:2px;transform:rotate(45deg)}.chips{flex-wrap:wrap;gap:7px;margin:0;padding:0;list-style:none;display:flex}.chips li{font-family:var(--mono);border:1px solid color-mix(in srgb, var(--b,var(--c)) 55%, transparent);color:var(--b,var(--c));background:color-mix(in srgb, var(--b,var(--c)) 9%, transparent);border-radius:99px;padding:5px 11px;font-size:.76rem}.chips.small li{color:var(--muted);border-color:var(--line);background:0 0;padding:3px 9px;font-size:.7rem}.branch{margin-bottom:4px}.stats{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:4px;display:grid}.stat{border:1px solid color-mix(in srgb, var(--c) 45%, transparent);background:color-mix(in srgb, var(--c) 8%, transparent);border-radius:12px;flex-direction:column;gap:2px;padding:12px 14px;display:flex}.stat b{color:var(--c);text-shadow:0 0 14px var(--c);font-size:1.55rem;line-height:1.1}.stat span{color:var(--muted);font-size:.78rem}.stat.trophy b{color:var(--amber);text-shadow:0 0 14px var(--amber)}.sheet{border:1px solid var(--line);background:var(--line);border-radius:12px;gap:1px;margin:0 0 14px;display:grid;overflow:hidden}.sheet>div{background:#09051ef2;grid-template-columns:112px 1fr;gap:10px;padding:9px 13px;display:grid}.sheet dt{font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding-top:2px;font-size:.7rem}.sheet dd{margin:0;font-size:.9rem;line-height:1.4}.callout{border:1px dashed color-mix(in srgb, var(--c) 60%, transparent);background:color-mix(in srgb, var(--c) 6%, transparent);border-radius:12px;margin:4px 0 12px;padding:13px 15px}.callout strong{color:var(--c);letter-spacing:.06em;text-transform:uppercase;font-size:.84rem}.callout p{color:#d3cfef;margin:5px 0 0;font-size:.9rem;line-height:1.55}.project{border:1px solid var(--line);background:#ffffff06;border-radius:14px;margin-bottom:12px;padding:14px 15px 15px}.project header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:4px 10px;display:flex}.project h3{font-family:var(--font);letter-spacing:.01em;text-transform:none;color:var(--ink);margin:0;font-size:1.08rem;font-weight:700}.project .tag{font-family:var(--mono);color:var(--c);font-size:.68rem}.project p{color:#cfcbea;margin:8px 0 10px;font-size:.88rem;line-height:1.55}.project .btn{margin-top:10px;padding:.5em .9em;font-size:.82rem}.contact{flex-wrap:wrap;gap:9px;margin-bottom:16px;display:flex}.panel-foot{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:8px;padding:12px 16px 14px;display:flex}.panel-foot .nav{gap:8px;min-width:0;display:flex}.panel-foot .nav .btn{max-width:150px;padding:.55em .8em;font-size:.8rem}.panel-foot .nav .btn span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.modal-backdrop{z-index:30;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#03000c99;grid-template-rows:minmax(0,1fr);place-items:center;padding:16px;animation:.2s fade-in;display:grid;position:absolute;inset:0}.modal{border:1px solid var(--line);width:min(480px,100%);max-height:min(640px,100%);box-shadow:0 0 70px -20px var(--vio);cursor:auto;background:#09051ef5;border-radius:18px;flex-direction:column;display:flex}.modal-head{justify-content:space-between;gap:12px;padding:18px 18px 12px;display:flex}.modal-head .kicker{color:var(--cyan)}.modal-head h2{margin:0;font-size:1.35rem}.count{font-family:var(--mono);color:var(--lime);margin-left:6px;font-size:.9rem}.warp-list,.trophies{gap:6px;margin:0;padding:4px 12px 12px;list-style:none;display:grid;overflow-y:auto}.warp-item{border:1px solid var(--line);cursor:pointer;text-align:left;background:#ffffff08;border-radius:12px;align-items:center;gap:14px;width:100%;padding:11px 14px;display:flex}.warp-item:hover,.warp-item:focus-visible{border-color:var(--c);box-shadow:0 0 20px -6px var(--c)}.warp-dot{background:var(--c);width:10px;height:10px;box-shadow:0 0 12px var(--c);border-radius:3px;flex:none;transform:rotate(45deg)}.warp-text{flex-direction:column;flex:1;min-width:0;line-height:1.25;display:flex}.warp-text b{font-size:.96rem}.warp-text small{font-family:var(--mono);color:var(--muted);font-size:.7rem}.warp-check{color:var(--lime)}.modal-foot{padding:4px 12px 14px}.modal-foot .btn{width:100%}.trophies li{border:1px solid var(--line);opacity:.55;border-radius:12px;align-items:center;gap:14px;padding:11px 14px;display:flex}.trophies li.done{opacity:1;border-color:color-mix(in srgb, var(--lime) 50%, transparent);background:#b6ff3c0d}.trophies li.done .trophy-icon{color:var(--lime)}.trophies li.secret{border-style:dashed}.trophy-icon{color:var(--muted);place-items:center;display:grid}.trophy-text{flex-direction:column;line-height:1.3;display:flex}.trophy-text small{color:var(--muted);font-size:.8rem}.toasts{top:calc(var(--safe-t) + 70px);z-index:100;pointer-events:none;gap:8px;width:min(420px,100vw - 24px);display:grid;position:fixed;left:50%;transform:translate(-50%)}.toast{border:1px solid var(--t);box-shadow:0 0 28px -8px var(--t);--t:var(--cyan);background:#09051ef0;border-radius:12px;flex-direction:column;gap:2px;padding:11px 16px;font-size:.86rem;display:flex}.toast strong{color:var(--t);letter-spacing:.02em}.toast span{color:var(--muted);font-size:.8rem}.toast[data-tone=lime]{--t:var(--lime)}.toast[data-tone=magenta]{--t:var(--mag)}.toast[data-tone=amber]{--t:var(--amber)}.toast[data-tone=red]{--t:var(--red)}.toast-enter-active,.toast-leave-active{transition:all .35s cubic-bezier(.2,.9,.2,1)}.toast-enter-from,.toast-leave-to{opacity:0;transform:translateY(-12px)scale(.96)}.splash{z-index:40;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:radial-gradient(at 50% 40%,#05010f8c,#05010fe6);place-items:center;padding:20px;display:grid;position:fixed;inset:0}.splash-card{text-align:center;border:1px solid var(--line);width:min(640px,100%);box-shadow:0 0 90px -30px var(--cyan), inset 0 0 60px -50px var(--mag);background:#09051eb3;border-radius:24px;padding:clamp(22px,5vw,44px)}.splash-kicker{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--lime);margin:0 0 14px;font-size:.74rem}.blink{background:var(--lime);width:8px;height:8px;box-shadow:0 0 12px var(--lime);border-radius:50%;margin-right:8px;animation:1.2s steps(2,end) infinite blink;display:inline-block}@keyframes blink{50%{opacity:.2}}.splash h1{letter-spacing:.01em;text-transform:uppercase;background:linear-gradient(100deg, var(--cyan), #fff 45%, var(--mag));color:#0000;filter:drop-shadow(0 0 22px #00f0ff59);-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2rem,8vw,3.8rem);line-height:1.02}.splash-sub{font-family:var(--mono);color:var(--cyan);letter-spacing:.04em;margin:12px 0 0;font-size:clamp(.78rem,2.8vw,.95rem)}.splash-blurb{color:#cfcbea;max-width:46ch;margin:16px auto 24px;font-size:.98rem;line-height:1.6}.splash-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.splash-foot{font-family:var(--mono);color:var(--muted);margin:20px 0 0;font-size:.72rem}.cv-page{z-index:50;background:radial-gradient(1200px 700px at 85% -10%, #8b5cff2e, transparent 60%), radial-gradient(900px 600px at -10% 20%, #00f0ff1a, transparent 60%), var(--bg);position:fixed;inset:0;overflow-y:auto}.cv-bar{z-index:2;padding:calc(var(--safe-t) + 10px) max(16px, var(--safe-r)) 10px max(16px, var(--safe-l));-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);background:#05010fd1;justify-content:space-between;align-items:center;gap:10px;display:flex;position:sticky;top:0}.cv-note{font-family:var(--mono);color:var(--amber);font-size:.78rem}.cv-bar-right{align-items:center;gap:4px;display:flex}.cv{width:min(880px,100%);padding:clamp(24px, 5vw, 56px) max(16px, var(--safe-r)) 80px max(16px, var(--safe-l));margin:0 auto}.cv h1{background:linear-gradient(100deg, var(--cyan), #fff 55%, var(--mag));color:#0000;-webkit-background-clip:text;background-clip:text;margin:0;font-size:clamp(2.1rem,7vw,3.4rem);line-height:1.05}.cv-title{color:var(--cyan);margin:8px 0 14px;font-size:1.15rem}.cv-contact{color:var(--muted);flex-wrap:wrap;gap:4px 18px;margin:4px 0;font-size:.9rem;display:flex}.cv-head{border-bottom:2px solid var(--cyan);box-shadow:0 12px 24px -22px var(--cyan);padding-bottom:20px}.cv section{margin-top:34px}.cv h2{font-family:var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--lime);border-bottom:1px solid var(--line);margin:0 0 14px;padding-bottom:8px;font-size:.82rem}.cv p{color:#d8d4f2;line-height:1.65}.cv-job,.cv-project{margin-bottom:26px}.cv-job header{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:2px 14px;display:flex}.cv h3{margin:0;font-size:1.12rem}.where{color:var(--muted);font-size:.92em;font-weight:400}.cv time{font-family:var(--mono);color:var(--muted);white-space:nowrap;font-size:.8rem}.cv .role{color:var(--cyan);margin:2px 0 8px;font-style:italic}.cv ul{color:#d8d4f2;gap:5px;margin:0 0 8px;padding-left:1.2em;line-height:1.55;display:grid}.cv .stack{color:var(--muted);margin:6px 0 0;font-size:.86rem}.cv .stack b{color:var(--ink)}.cv .highlights{flex-wrap:wrap;gap:16px;margin:4px 0;font-size:.9rem;display:flex}.cv .highlights b{color:var(--amber)}.cv-skills{gap:8px;margin:0;display:grid}.cv-skills>div{grid-template-columns:110px 1fr;gap:12px;display:grid}.cv-skills dt{font-weight:700}.cv-skills dd{color:#d8d4f2;margin:0}.cv-cols{grid-template-columns:1fr 1fr;gap:0 40px;display:grid}.fade-enter-active,.fade-leave-active{transition:opacity .5s}.fade-enter-from,.fade-leave-to{opacity:0}.rise-enter-active,.rise-leave-active{transition:opacity .25s,transform .25s}.rise-enter-from,.rise-leave-to{opacity:0;transform:translate(-50%,12px)}@keyframes fade-in{0%{opacity:0}}@media (width<=820px){.panel{top:auto;left:calc(var(--safe-l) + 8px);right:calc(var(--safe-r) + 8px);bottom:calc(var(--safe-b) + 8px);border-radius:20px;width:auto;height:min(62dvh,560px);animation-name:sheet-in}.panel h2{font-size:1.35rem}.panel-head{padding:16px 16px 12px}.panel-body{padding:14px 16px 6px}.sheet>div{grid-template-columns:96px 1fr}@keyframes sheet-in{0%{opacity:0;transform:translateY(40px)}}.world.panel-open .zone-label{pointer-events:none;opacity:0!important}}@media (width<=600px){.brand{gap:8px;min-width:0;padding:6px 10px 6px 6px}.brand-text small,.hud-btn span,.long{display:none}.hud-btn.cv-cta>span{display:inline}.hud-btn.cv-cta .long{display:none}.hud-btn{gap:6px;height:42px;padding:0 12px}.brand b{white-space:nowrap;font-size:.8rem}.panel-foot .nav .btn span{display:none}.panel-foot .nav .btn{padding:.6em .8em}.controls-hint{white-space:normal;text-align:center;border-radius:14px;width:calc(100vw - 24px)}.interact{bottom:calc(var(--safe-b) + 150px);padding:11px 16px;font-size:.9rem}.cv-cols{grid-template-columns:1fr}.cv-skills>div{grid-template-columns:1fr;gap:2px}.cv-bar .btn span,.cv-bar-right .btn span{font-size:.82rem}.cv-bar-right .icon-link{display:none}}.drive-btn{right:calc(var(--safe-r) + 14px);bottom:calc(var(--safe-b) + 112px);z-index:6;border:1px solid var(--line);background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:40px;color:var(--ink);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:0 14px 0 11px;font-size:.74rem;display:flex;position:absolute}.drive-btn.touch{bottom:calc(var(--safe-b) + 210px)}.drive-btn:hover{border-color:var(--red);color:#fff}.drive-btn.on{border-color:var(--red);box-shadow:0 0 24px -4px var(--red);background:#ff3b5c2e}.tour-row{margin-top:8px}.tour-row b{color:var(--amber)}.warp-scroll{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line) transparent;flex:auto;min-height:0;overflow-y:auto}.warp-scroll .warp-list{overflow:visible}.warp-title{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:10px 18px 2px;font-size:.7rem;font-weight:500}.warp-locked{color:var(--amber);align-items:center;gap:8px;margin:4px 18px 2px;font-size:.82rem;display:flex}.warp-list.locked .warp-item{opacity:.4;cursor:not-allowed}.lead.small{margin-bottom:10px;font-size:.9rem}.facts{counter-reset:fact;gap:10px;margin:0;padding:0;list-style:none;display:grid}.facts li{counter-increment:fact;color:#d6d2f0;padding-left:30px;font-size:.92rem;line-height:1.55;position:relative}.facts li:before{content:counter(fact);border:1px solid var(--c);width:21px;height:21px;color:var(--c);font-family:var(--mono);border-radius:6px;place-items:center;font-size:.72rem;display:grid;position:absolute;top:.05em;left:0}.lore{border-top:1px dashed var(--line);margin-top:8px;padding-top:4px}.note-me{color:var(--c);align-items:center;gap:8px;margin:0 0 4px;font-size:.9rem;display:flex}.tour-grid{flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none;display:flex}.tour-chip{border:1px solid color-mix(in srgb, var(--c) 60%, transparent);background:color-mix(in srgb, var(--c) 10%, transparent);color:var(--ink);cursor:pointer;border-radius:99px;align-items:center;gap:6px;padding:7px 12px;font-size:.85rem;display:inline-flex}.tour-chip:hover{box-shadow:0 0 18px -4px var(--c)}@media (pointer:coarse){.controls-hint,.brand-text small{display:none}.hud-progress,.hud-progress.lifted{bottom:calc(var(--safe-b) + 150px);width:min(200px,48vw);padding:8px 10px}.hud-progress .progress-row,.hud-progress .bar{display:none}.interact{bottom:calc(var(--safe-b) + 236px);max-width:66vw}.label-layer{clip-path:inset(118px 0 0)}}.tour-btn.ready{border-color:var(--amber);color:var(--amber);animation:1.8s ease-in-out infinite tour-pulse}.tour-btn.locked{opacity:.6}@keyframes tour-pulse{0%,to{box-shadow:0 0 #ffb80080}50%{box-shadow:0 0 22px 2px #ffb80073}}.fly-tag{border:1px solid var(--c);color:var(--c);font-family:var(--mono);letter-spacing:.1em;text-transform:uppercase;border-radius:99px;align-items:center;gap:5px;padding:4px 9px;font-size:.68rem;display:inline-flex}@media (width<=600px){.brand-text{display:none}.brand{padding:6px}}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.lang-switch{border:1px solid var(--line);height:38px;color:var(--muted);background:#ffffff0a;border-radius:12px;align-items:center;gap:6px;padding:0 4px 0 10px;display:inline-flex}.lang-switch select{appearance:none;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;height:100%;padding:0 10px 0 2px;font-size:.85rem}.lang-switch select option{color:#111}.splash-lang{top:calc(var(--safe-t) + 14px);right:calc(var(--safe-r) + 14px);z-index:3;position:absolute}.modal-foot{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.modal-foot .cvbtn{flex:200px}.cv-short{display:none}@media (width<=600px){.cv-long{display:none}.cv-short{display:inline}}.hud-actions .lang-switch{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);height:42px;padding:0 6px 0 10px}@media (width<=600px){.hud-actions .lang-switch{justify-content:center;width:42px;padding:0;position:relative}.hud-actions .lang-switch svg{pointer-events:none}.hud-actions .lang-switch select{opacity:0;width:100%;position:absolute;inset:0}}.lang-switch select,.lang-switch select:focus,.lang-switch select:focus-visible{box-shadow:none;outline:none}.lang-switch:focus-within{border-color:#00f0ff73}@media (height<=460px) and (orientation:landscape){.hud-progress{display:none}.controls-hint{top:calc(var(--safe-t) + 62px)}.interact{bottom:calc(var(--safe-b) + 14px)}.panel{top:calc(var(--safe-t) + 8px);left:auto;right:calc(var(--safe-r) + 8px);bottom:calc(var(--safe-b) + 8px);width:min(440px,52vw);height:auto;animation-name:panel-in}.joystick{width:96px;height:96px;bottom:calc(var(--safe-b) + 14px)}.boost-btn{bottom:calc(var(--safe-b) + 20px)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@media print{@page{margin:14mm}html,body{color:#111!important;background:#fff!important;overflow:visible!important}.world,.splash,.toasts,.cv-bar{display:none!important}.cv-page{position:static;overflow:visible;background:#fff!important}.cv{color:#111;width:100%;padding:0}.cv h1{color:#0b1b3a;-webkit-text-fill-color:#0b1b3a;background:0 0;font-size:26pt}.cv-title{color:#0b1b3a;font-size:11.5pt}.cv-head{box-shadow:none;border-bottom:2px solid #0b1b3a}.cv h2{color:#0b1b3a;border-bottom:1px solid #bbb;font-size:9pt}.cv p,.cv ul,.cv-skills dd,.cv a{font-size:9.5pt;text-decoration:none;color:#222!important}.cv-contact,.cv .stack,.cv time,.where{color:#555!important}.cv .role{color:#36507c}.cv .highlights b{color:#0b1b3a}.cv-job,.cv-project{break-inside:avoid;margin-bottom:14px}.cv section{margin-top:18px}}
