*{box-sizing:border-box}html,body,#root{width:100%;height:100%;height:100svh;height:100dvh;margin:0;padding:0;overflow:hidden;cursor:none}body{background:#050505;overscroll-behavior:none}canvas{display:block;touch-action:none}.modal-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000d9;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:default;padding:16px;overflow-y:auto;box-sizing:border-box}.modal-container{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:20px 24px;text-align:center;color:#fff;font-family:system-ui,sans-serif;box-shadow:0 4px 30px #3c320a4d;width:90%;max-height:calc(100dvh - 32px);overflow-y:auto;box-sizing:border-box}.modal-container--sm{max-width:400px}.modal-container--md{max-width:500px}.modal-container--lg{max-width:540px}.modal-container--xl{max-width:920px}.modal-title{font-size:16px;font-weight:500;margin-bottom:16px;color:#ccc;letter-spacing:2px;text-transform:uppercase}.modal-hint{margin-top:14px;font-size:12px;color:#555}.social-links{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.social-link{display:flex;align-items:center;gap:8px;padding:10px 18px;background-color:#2a2a2a;border:1px solid #444;border-radius:6px;color:#ddd;font-size:14px;font-family:system-ui,sans-serif;cursor:pointer;text-decoration:none;transition:background-color .2s}.social-link:hover,.social-link.selected{background-color:#3a3a3a;border-color:#ccaa20}.social-icon{font-size:14px;font-weight:700;color:#ccaa20;min-width:20px}.resume-preview{width:100%;border-radius:4px;border:1px solid #2a2a2a;background-color:#0d0d0d;object-fit:contain;max-height:60vh}.resume-download{display:inline-block;margin-top:16px;padding:10px 24px;background-color:#ccaa20;border:none;border-radius:6px;color:#fff;font-size:14px;font-family:system-ui,sans-serif;font-weight:600;cursor:pointer;text-decoration:none;letter-spacing:1px;transition:background-color .2s}.resume-download:hover{background-color:#ddbb30}.projects-list{display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1;padding-right:4px}.project-card{background-color:#222;border:1px solid #333;border-radius:6px;padding:14px 16px;text-align:left;transition:border-color .2s}.project-card.selected{border-color:#ccaa20}.project-card__title{font-size:15px;font-weight:600;color:#eee;margin-bottom:6px}.project-card__desc{font-size:13px;color:#999;line-height:1.4;margin-bottom:10px}.project-tags{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.project-tag{font-size:11px;padding:2px 8px;background-color:#1a1505;border:1px solid #3a3010;border-radius:4px;color:#ccaa20}.project-link{font-size:13px;color:#ccaa20;text-decoration:none;font-weight:500}.project-link:hover{text-decoration:underline}.map-wrapper{position:relative;width:100%;aspect-ratio:16 / 10;background-color:#0d0d0d;border-radius:4px;border:1px solid #2a2a2a;overflow:hidden}.map-image{width:100%;height:100%;object-fit:cover;opacity:.6}.map-marker{position:absolute;display:flex;flex-direction:column;align-items:center;transform:translate(-50%,-50%);pointer-events:none}.map-dot{width:14px;height:14px;border-radius:50%;background-color:#aaa;border:2px solid rgba(255,255,255,.6);box-shadow:0 0 6px #000c}.map-dot--current{width:20px;height:20px;background-color:#f36;border:3px solid #fff;box-shadow:0 0 12px #f36,0 0 24px #ff326499,0 0 4px #000c;animation:mapPulse 2s ease-in-out infinite}.map-label{margin-top:6px;font-size:12px;font-weight:600;color:#ddd;white-space:nowrap;text-shadow:0 0 4px #000,0 0 8px #000,1px 1px 2px #000;letter-spacing:.5px}.map-label--current{color:#fff}@keyframes mapPulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.7}}.prompt-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000b3;display:flex;align-items:center;justify-content:center;z-index:1000;cursor:default}.prompt-dialog{background-color:#1a1a1a;border:1px solid #333;border-radius:8px;padding:24px 32px;text-align:center;color:#fff;font-family:system-ui,sans-serif;box-shadow:0 4px 20px #00000080}.prompt-title{font-size:18px;margin-bottom:20px;font-weight:500}.prompt-buttons{display:flex;gap:12px;justify-content:center}.prompt-btn{padding:10px 24px;font-size:14px;border:none;border-radius:4px;cursor:pointer;font-weight:500;transition:background-color .2s,border-color .2s;outline:none}.prompt-btn--confirm{background-color:#4a4a4a;color:#fff;border:2px solid transparent}.prompt-btn--confirm.selected{background-color:#6a6a6a;border:2px solid #888}.prompt-btn--cancel{background-color:transparent;color:#888;border:2px solid #444}.prompt-btn--cancel.selected{background-color:#2a2a2a;border:2px solid #666}.instruction-controls{display:flex;flex-direction:column;gap:10px;margin-bottom:18px;text-align:left}.instruction-row{display:flex;align-items:center;gap:10px;font-size:13px;color:#bbb}.instruction-keys{display:flex;gap:4px;flex-shrink:0}.instruction-key{display:inline-block;padding:3px 8px;background-color:#2a2a2a;border:1px solid #444;border-radius:4px;color:#ccaa20;font-family:monospace;font-size:12px;font-weight:600;min-width:24px;text-align:center}.instruction-key--wide{min-width:76px}.instruction-direction{margin-top:6px;margin-bottom:20px;font-size:14px;color:#999;line-height:1.5}.instruction-direction strong{color:#ccaa20}.instruction-start-btn{display:inline-block;padding:10px 32px;background-color:#ccaa20;border:none;border-radius:6px;color:#fff;font-size:14px;font-family:system-ui,sans-serif;font-weight:600;cursor:pointer;letter-spacing:1px;transition:background-color .2s}.instruction-start-btn:hover{background-color:#ddbb30}.trial-copy{margin-bottom:14px;color:#c7c1b1;line-height:1.55;text-align:left}.trial-stage-badge{display:inline-flex;margin-bottom:16px;padding:6px 12px;border:1px solid #4c3b14;border-radius:999px;color:#e6cf8a;font-size:12px;letter-spacing:1px;text-transform:uppercase;background:#ccaa2014}.trial-copy--muted{color:#91897b;font-size:13px}.trial-results-time{margin:6px 0 10px;font-family:Menlo,Consolas,monospace;font-size:44px;font-weight:700;letter-spacing:.05em;color:#f6ead5;text-shadow:0 0 18px rgba(226,166,70,.35)}.trial-results-error,.google-signin-modal__error{margin-top:12px;color:#ff8f73;font-size:13px;line-height:1.5}.trial-results-verdict{margin:12px 0 4px;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;display:inline-block}.trial-results-verdict--good{color:#d6ffd0;background:#5ab46e2e;border:1px solid rgba(120,220,140,.4)}.trial-results-verdict--bad{color:#ffd9c0;background:#dc6e3c2e;border:1px solid rgba(240,130,80,.4)}.trial-results-verdict--neutral{color:#e5d9ba;background:#ffffff0f;border:1px solid rgba(255,255,255,.12)}.trial-actions{display:grid;gap:10px;margin-top:20px}.google-signin-modal__button{display:flex;justify-content:center;margin-top:20px;min-height:44px}.trial-secondary-btn{display:inline-block;padding:10px 24px;border:1px solid #4c3b14;border-radius:6px;color:#e5d9ba;font-size:14px;font-family:system-ui,sans-serif;font-weight:600;cursor:pointer;letter-spacing:1px;background:#15120a;transition:background-color .2s,border-color .2s}.trial-secondary-btn:hover{background-color:#1d180d;border-color:#6b5420}.trial-stage-layout{display:grid;grid-template-columns:minmax(220px,.9fr) minmax(0,1.4fr);gap:18px;text-align:left}.trial-stage-list{display:grid;gap:10px}.trial-stage-card{display:grid;gap:6px;width:100%;padding:14px;border:1px solid #3a321e;border-radius:8px;background:linear-gradient(180deg,#181611f5,#100f0df5);color:#f5f0df;text-align:left;cursor:pointer;transition:border-color .2s,transform .2s,background-color .2s}.trial-stage-card:hover,.trial-stage-card--active{border-color:#ccaa20;transform:translateY(-1px)}.trial-stage-card__eyebrow,.trial-stage-panel__eyebrow{color:#d4bc74;font-size:11px;letter-spacing:1.6px;text-transform:uppercase}.trial-stage-card__title,.trial-stage-panel__title{color:#fff5da;font-size:18px;font-weight:600}.trial-stage-card__copy,.trial-stage-panel__copy{color:#b8ae98;line-height:1.45;font-size:13px}.trial-stage-panel{display:grid;gap:16px;padding:18px;border:1px solid #302813;border-radius:10px;background:linear-gradient(180deg,#12110efa,#0a0a0afa)}.trial-stage-panel__header,.trial-stage-panel__leaderboard-header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.trial-stage-panel__leaderboard{display:grid;gap:12px}.trial-stage-panel__leaderboard-title{color:#f4edd8;font-size:14px;font-weight:600;letter-spacing:.6px}.trial-stage-panel__leaderboard-meta{color:#efe6c2c7;font-size:13px;text-align:left}.trial-stage-enter-btn,.trial-stage-toggle-btn{padding:10px 14px;border-radius:6px;border:1px solid #5e4c1a;background:#1b160b;color:#f0ddb0;cursor:pointer;font-size:13px;font-weight:600;transition:background-color .2s,border-color .2s}.trial-stage-enter-btn:hover,.trial-stage-toggle-btn:hover{background:#241d0f;border-color:#ccaa20}.trial-stage-rankings{max-height:360px;overflow:auto;border:1px solid #272014;border-radius:8px;background:#070707b8}.trial-stage-rankings__empty{padding:18px 14px;color:#efe6c294;font-size:13px;text-align:center}.trial-stage-rankings__row{display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.05);color:#ddd2b4;font-size:13px}.trial-stage-rankings__row:last-child{border-bottom:none}.trial-stage-rankings__rank{color:#caa94c;font-variant-numeric:tabular-nums}.trial-stage-rankings__name,.trial-stage-rankings__score{font-variant-numeric:tabular-nums}.trial-stage-rankings__score{color:#f4f0e4}@media(max-width:768px){.modal-overlay{align-items:flex-start;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}.modal-container{width:min(92vw,540px);padding:18px 18px calc(18px + env(safe-area-inset-bottom));max-height:calc(100dvh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)))}.prompt-dialog{width:min(88vw,360px);padding:20px 20px calc(20px + env(safe-area-inset-bottom))}.prompt-buttons{gap:10px}.prompt-btn{min-height:46px;flex:1}.instruction-row{align-items:flex-start}.modal-container--xl{max-width:540px}.trial-stage-layout{grid-template-columns:1fr;gap:14px}.trial-stage-panel__header,.trial-stage-panel__leaderboard-header{flex-direction:column;align-items:stretch}}@media(max-width:520px){.modal-container{padding:14px 14px calc(14px + env(safe-area-inset-bottom))}.modal-title{font-size:14px;margin-bottom:12px}.trial-stage-panel{padding:14px;gap:12px}.trial-stage-card{padding:12px}.trial-stage-card__title,.trial-stage-panel__title{font-size:16px}.trial-stage-card__copy,.trial-stage-panel__copy{font-size:12px}.trial-stage-enter-btn{width:100%;min-height:44px}.trial-stage-toggle-btn{width:100%;min-height:40px}.trial-stage-rankings{max-height:220px}.trial-stage-rankings__row{grid-template-columns:42px minmax(0,1fr) auto;gap:8px;padding:8px 10px;font-size:12px}.trial-stage-rankings__name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.trial-results-time{font-size:36px}.instruction-start-btn,.trial-secondary-btn{width:100%;min-height:44px}}.trial-pause .trial-actions{margin-top:16px}.trial-pause__hint{margin:4px 0 8px;text-align:center}.showcase-overlay{position:fixed;top:0;left:0;width:100vw;height:100vh;background-color:#000000bf;display:flex;justify-content:flex-end;z-index:1000;cursor:default}.showcase-panel{width:420px;max-width:90vw;height:100vh;background-color:#1a1a1a;border-left:1px solid #333;display:flex;flex-direction:column;padding:28px 24px;box-sizing:border-box;color:#fff;font-family:system-ui,sans-serif;transform:translate(100%);transition:transform .35s cubic-bezier(.4,0,.2,1),width .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.showcase-panel--visible{transform:translate(0)}.showcase-panel--expanded{width:700px}.showcase-header{flex-shrink:0;margin-bottom:20px}.showcase-list{display:flex;flex-direction:column;gap:12px;overflow-y:auto;flex:1;padding-right:4px}.showcase-card{background-color:#222;border:1px solid #333;border-radius:8px;padding:16px 18px;cursor:pointer;transition:border-color .2s,background-color .2s}.showcase-card:hover{background-color:#2a2a2a}.showcase-card.selected{border-color:#ccaa20;background-color:#252218}.showcase-card__title{font-size:16px;font-weight:600;color:#eee;margin-bottom:6px}.showcase-card__desc{font-size:13px;color:#999;line-height:1.4;margin-bottom:10px}.showcase-detail{flex:1;overflow-y:auto;padding-right:4px}.showcase-back{background:none;border:1px solid #444;border-radius:4px;color:#999;font-size:13px;padding:6px 14px;cursor:pointer;margin-bottom:20px;transition:color .2s,border-color .2s}.showcase-back:hover{color:#fff;border-color:#888}.showcase-hero{margin-bottom:20px}.showcase-hero__title{font-size:24px;font-weight:700;color:#fff;margin:0 0 8px}.showcase-hero__tagline{font-size:14px;color:#ccaa20;margin:0;letter-spacing:.5px}.showcase-description{font-size:14px;color:#bbb;line-height:1.6;margin-bottom:24px}.showcase-section{margin-bottom:24px}.showcase-section__title{font-size:12px;font-weight:600;color:#888;text-transform:uppercase;letter-spacing:1.5px;margin:0 0 10px}.showcase-placeholder{background-color:#222;border:1px dashed #444;border-radius:6px;display:flex;align-items:center;justify-content:center;color:#555;font-size:13px;min-height:120px}.showcase-placeholder--video{min-height:180px;aspect-ratio:16 / 9}.showcase-placeholder--thumb{min-height:80px;aspect-ratio:4 / 3}.showcase-placeholder img,.showcase-placeholder video{width:100%;height:100%;object-fit:cover;border-radius:6px}.showcase-github-link{display:inline-block;padding:8px 18px;background-color:#1a1505;border:1px solid #3a3010;border-radius:6px;color:#ccaa20;font-size:14px;font-weight:500;text-decoration:none;transition:background-color .2s}.showcase-github-link:hover{background-color:#2a2010}.showcase-challenges{list-style:none;padding:0;margin:0}.showcase-challenges li{position:relative;padding-left:16px;font-size:13px;color:#bbb;line-height:1.5;margin-bottom:8px}.showcase-challenges li:before{content:"";position:absolute;left:0;top:8px;width:6px;height:6px;background-color:#ccaa20;border-radius:50%}.showcase-screenshots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.char-sheet{border:1px solid #3a3010}.char-header{display:flex;gap:16px;align-items:center;padding-bottom:14px;margin-bottom:6px;border-bottom:1px solid #2a2a2a;text-align:left}.char-portrait{position:relative;width:88px;height:88px;border-radius:8px;border:2px solid #3a3010;background:linear-gradient(160deg,#1a1505,#111);display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 0 18px #ccaa2026;overflow:hidden}.char-portrait img{width:100%;height:100%;object-fit:cover}.char-portrait__initials{font-size:30px;font-weight:700;color:#ccaa20;letter-spacing:.05em}.char-level{position:absolute;bottom:-8px;left:50%;transform:translate(-50%);font-size:10px;font-weight:700;letter-spacing:.08em;color:#111;background:#ccaa20;padding:2px 8px;border-radius:999px;white-space:nowrap}.char-name{font-size:22px;font-weight:700;color:#f0f0f0;line-height:1.1}.char-class{font-size:13px;color:#ccaa20;margin-top:3px;letter-spacing:.02em}.char-status{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#9ccf9c;margin-top:8px}.char-status__dot{width:8px;height:8px;border-radius:50%;background:#5fbf5f;box-shadow:0 0 6px #5fbf5f}.char-scroll{overflow-y:auto;flex:1;padding-right:6px;text-align:left}.char-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}@media(max-width:640px){.char-columns{grid-template-columns:1fr}}.char-panel{background:#1c1c1c;border:1px solid #2e2e2e;border-radius:8px;padding:12px 14px;margin-bottom:12px}.char-columns .char-panel{margin-bottom:0}.char-panel__title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ccaa20;margin-bottom:10px}.char-stats{display:flex;flex-direction:column;gap:8px}.char-stat{display:flex;justify-content:space-between;gap:10px;font-size:12.5px;border-bottom:1px dashed #2a2a2a;padding-bottom:6px}.char-stat:last-child{border-bottom:none;padding-bottom:0}.char-stat__label{color:#999}.char-stat__value{color:#e8e8e8;text-align:right;font-weight:500}.char-focus{display:flex;flex-direction:column;gap:10px}.char-focus__row{display:flex;align-items:center;gap:10px}.char-focus__label{font-size:12px;color:#bbb;flex:0 0 42%}.char-focus__track{flex:1;height:8px;background:#262626;border-radius:999px;overflow:hidden}.char-focus__fill{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,#8a7016,#ccaa20);transition:width .9s cubic-bezier(.22,1,.36,1)}.char-quest{display:flex;flex-direction:column;gap:4px;background:#1a1505;border:1px solid #3a3010;border-left:3px solid #ccaa20;border-radius:6px;padding:12px 14px;margin-bottom:12px}.char-quest__eyebrow{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#ccaa20}.char-quest__text{font-size:14px;color:#eee}.char-bio{font-size:13px;color:#aaa;line-height:1.6;margin:0}.char-history{display:flex;flex-direction:column;gap:10px}.char-history__row{display:flex;flex-direction:column;gap:4px;border-bottom:1px dashed #2a2a2a;padding-bottom:8px}.char-history__row:last-child{border-bottom:none;padding-bottom:0}.char-history__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px}.char-history__desc{font-size:12.5px;color:#9a9a9a;line-height:1.5;margin:0}.char-history__main{display:flex;flex-direction:column;gap:2px;min-width:0}.char-history__title{font-size:13.5px;font-weight:600;color:#e8e8e8}.char-history__org{font-size:12px;color:#999}.char-history__period{flex:0 0 auto;font-size:11.5px;color:#ccaa20;white-space:nowrap}.char-loadout{display:flex;flex-direction:column;gap:10px}.char-loadout__label{font-size:11px;font-weight:600;color:#ccc;text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px}.about-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:4px}.about-cta-btn{font-size:13px;padding:8px 16px;border-radius:6px;text-decoration:none;background-color:#222;border:1px solid #333;color:#eee;transition:border-color .2s,background-color .2s}.about-cta-btn:hover{border-color:#ccaa20}.about-cta-btn--primary{background-color:#1a1505;border-color:#3a3010;color:#ccaa20}.journey-tabs{display:flex;gap:8px;margin-bottom:14px}.journey-tab{flex:1;padding:8px 12px;font-size:13px;font-weight:600;letter-spacing:.03em;color:#999;background:#1c1c1c;border:1px solid #2e2e2e;border-radius:6px;cursor:pointer;transition:color .2s,border-color .2s,background-color .2s}.journey-tab:hover{color:#ccc}.journey-tab.active{color:#ccaa20;background:#1a1505;border-color:#3a3010}.quest-log{display:flex;flex-direction:column;gap:0;overflow-y:auto;flex:1;padding-right:4px}.quest-node{display:flex;gap:14px;padding:14px 14px 14px 4px;border-left:2px solid #3a3010;margin-left:8px;position:relative;text-align:left;transition:background-color .2s}.quest-node:before{content:"";position:absolute;left:-7px;top:20px;width:12px;height:12px;border-radius:50%;background:#1a1505;border:2px solid #ccaa20;box-shadow:0 0 8px #ccaa2066}.quest-node.selected{background:#191919;border-radius:0 6px 6px 0}.quest-node.selected:before{background:#ccaa20}.quest-node__year{font-size:18px;font-weight:700;color:#ccaa20;flex-shrink:0;width:48px;padding-left:10px}.quest-node__body{flex:1}.quest-node__title{font-size:15px;font-weight:600;color:#eee;margin-bottom:6px}.quest-node__summary{font-size:12.5px;color:#999;line-height:1.5;margin-bottom:10px}.quest-node__quests{list-style:none;margin:0 0 10px;padding:0;font-size:12.5px;color:#bbb;line-height:1.7}.quest-node__quests li:before{content:"⚔";color:#ccaa20;margin-right:8px}.quest-node__unlocks{margin-bottom:8px}.quest-node__unlocks-label{display:block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#8a7016;margin-bottom:6px}.about-lead{font-size:16px;line-height:1.5;color:#f0f0f0;margin:4px 0 10px;font-weight:500}.about-intro-bio{margin-top:0;margin-bottom:16px}.char-sheet{border:1px solid #2e2e2e}.char-portrait{box-shadow:none;border-color:#2e2e2e}.char-quest__eyebrow{letter-spacing:.06em}.door-label{padding:4px 12px;border-radius:999px;background:#0c0a06c7;border:1px solid #3a3010;color:#e8d48a;font-family:system-ui,sans-serif;font-size:13px;font-weight:600;letter-spacing:.04em;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;transform:translateY(-6px);text-shadow:0 1px 3px rgba(0,0,0,.8)}.project-link--btn{background:none;border:none;padding:0;margin-top:4px;cursor:pointer;font:inherit;display:inline-block}.loading-overlay{position:fixed;inset:0;z-index:2000;background:#030303;display:flex;flex-direction:column;align-items:center;justify-content:center;overflow:hidden;animation:overlayFadeIn .3s ease-out}.loading-overlay.fade-out{animation:overlayFadeOut .8s ease-in forwards}.loading-atmosphere{position:absolute;inset:0;background:radial-gradient(ellipse 50% 40% at 50% 50%,rgba(60,50,10,.08) 0%,transparent 70%),radial-gradient(ellipse 80% 80% at 50% 50%,rgba(10,5,20,.4) 0%,transparent 60%);animation:atmospherePulse 4s ease-in-out infinite}.loading-vortex{position:absolute;width:500px;height:500px;border-radius:50%;border:1px solid rgba(80,70,20,.05);animation:vortexSpin 20s linear infinite}.loading-vortex:nth-child(2){width:650px;height:650px;animation-duration:28s;animation-direction:reverse;border-color:#3c320f0a}.loading-vortex:nth-child(3){width:800px;height:800px;animation-duration:35s;border-color:#281e0a08}.eye-container{position:relative;width:220px;height:90px;animation:eyeOpen 1.2s cubic-bezier(.16,1,.3,1) forwards;transform:scaleY(0);filter:drop-shadow(0 0 30px rgba(220,190,40,.35)) drop-shadow(0 0 80px rgba(180,160,20,.15))}.eye-outer{position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 50%,#1a1505,#0d0a02,#050400);border:2px solid rgba(220,190,40,.5);box-shadow:inset 0 0 25px #b4a01440,0 0 20px #dcbe2840;overflow:hidden;clip-path:polygon(0% 50%,10% 30%,25% 12%,42% 3%,50% 0%,58% 3%,75% 12%,90% 30%,100% 50%,90% 70%,75% 88%,58% 97%,50% 100%,42% 97%,25% 88%,10% 70%);animation:eyeBlink 7s ease-in-out infinite}.eye-iris{position:absolute;top:50%;left:50%;width:65px;height:65px;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 50% 50%,#ffe566,#eb3 15%,#c80,#850,#420 75%,#1a0d00);box-shadow:0 0 25px #ffdc3cb3,0 0 50px #dcb41e4d,inset 0 0 8px #0006;animation:irisPulse 3s ease-in-out infinite;transition:transform .08s ease-out}.eye-rings{position:absolute;inset:0;border-radius:50%}.eye-rings:before{content:"";position:absolute;inset:6px;border-radius:50%;border:2.5px solid rgba(0,0,0,.5);box-shadow:inset 0 0 0 4px transparent,inset 0 0 0 6px #0006,inset 0 0 0 10px transparent,inset 0 0 0 12px #0000004d,inset 0 0 0 16px transparent,inset 0 0 0 18px #0003}.eye-pupil{position:absolute;top:50%;left:50%;width:12px;height:48px;transform:translate(-50%,-50%);background:#000;border-radius:50%;box-shadow:0 0 8px #000000e6,0 0 15px #0009;animation:pupilBreathe 4s ease-in-out infinite}.eye-fire-ring{position:absolute;inset:-25px;border-radius:50%/35%;animation:fireFlicker 2s ease-in-out infinite alternate}.eye-fire-ring:before{content:"";position:absolute;inset:-3px;border-radius:inherit;background:conic-gradient(from 0deg,transparent 0deg,rgba(220,190,40,.15) 40deg,transparent 80deg,rgba(180,150,20,.1) 160deg,transparent 200deg,rgba(220,190,40,.2) 280deg,transparent 320deg,rgba(180,150,20,.1) 360deg);filter:blur(8px);animation:fireRingSpin 8s linear infinite}.shadow-eye{position:absolute;opacity:0;background:none;animation:shadowEyeAppear var(--duration) ease-in-out var(--delay) forwards;filter:drop-shadow(0 0 15px rgba(220,190,40,.3)) drop-shadow(0 0 40px rgba(180,160,20,.1))}.shadow-eye .eye-outer{position:absolute;inset:0;background:radial-gradient(ellipse 60% 80% at 50% 50%,#1a1505,#0d0a02,#050400);border:1.5px solid rgba(255,240,200,.35);box-shadow:inset 0 0 15px #b4a01433,0 0 12px #dcbe2840,0 0 6px #fff0c826;overflow:hidden;clip-path:polygon(0% 50%,10% 30%,25% 12%,42% 3%,50% 0%,58% 3%,75% 12%,90% 30%,100% 50%,90% 70%,75% 88%,58% 97%,50% 100%,42% 97%,25% 88%,10% 70%);animation:eyeBlink var(--blink-speed, 5s) ease-in-out infinite;animation-delay:var(--blink-offset, 0s)}.shadow-eye .eye-iris{position:absolute;top:50%;left:50%;width:55%;height:75%;border-radius:50%;transform:translate(-50%,-50%);background:radial-gradient(circle at 50% 50%,#ffe566,#eb3 15%,#c80,#850,#420 75%,#1a0d00);box-shadow:0 0 12px #ffdc3c99,0 0 25px #dcb41e40,inset 0 0 5px #0006}.shadow-eye .eye-rings:before{content:"";position:absolute;inset:10%;border-radius:50%;border:1.5px solid rgba(0,0,0,.45);box-shadow:inset 0 0 0 3px transparent,inset 0 0 0 4px #00000059,inset 0 0 0 7px transparent,inset 0 0 0 8px #0003}.shadow-eye .eye-pupil{position:absolute;top:50%;left:50%;width:12%;height:70%;transform:translate(-50%,-50%);background:#000;border-radius:40%/50%;box-shadow:0 0 5px #000000e6,0 0 10px #00000080;animation:none}.shadow-teeth{position:absolute;opacity:0;animation:teethAppear var(--duration) ease-in-out var(--delay) forwards;filter:drop-shadow(0 0 8px rgba(255,255,255,.08))}.teeth-row{display:flex;gap:2px;justify-content:center;align-items:flex-end}.teeth-row.bottom{align-items:flex-start;margin-top:3px}.tooth{background:linear-gradient(180deg,#f5f0ea,#ddd5c8 30%,#b0a590 70%,#706858);clip-path:polygon(15% 0%,85% 0%,50% 100%);flex-shrink:0}.tooth.bottom-tooth{clip-path:polygon(50% 0%,15% 100%,85% 100%);background:linear-gradient(0deg,#f5f0ea,#ddd5c8 30%,#b0a590 70%,#706858)}.loading-progress-container{position:relative;width:240px;height:2px;margin-top:50px;background:#50461426;border-radius:2px;overflow:hidden;opacity:0;animation:progressFadeIn .5s ease-out 1s forwards}.loading-progress-bar{height:100%;background:linear-gradient(90deg,#320,#ccaa20,#fd4,#ccaa20,#320);background-size:200% 100%;border-radius:2px;box-shadow:0 0 8px #dcbe2866;animation:progressGlow 2s ease-in-out infinite;transition:width .3s ease-out}.loading-text{margin-top:16px;font-family:system-ui,sans-serif;font-size:11px;letter-spacing:6px;text-transform:uppercase;color:#b4a02866;opacity:0;animation:textFadeIn .5s ease-out 1.2s forwards}.loading-particle{position:absolute;width:2px;height:2px;background:#c8b42880;border-radius:50%;animation:particleFloat linear infinite;pointer-events:none}@keyframes overlayFadeIn{0%{opacity:0}to{opacity:1}}@keyframes overlayFadeOut{0%{opacity:1}to{opacity:0}}@keyframes atmospherePulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes vortexSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes eyeOpen{0%{transform:scaleY(0);opacity:0}60%{transform:scaleY(1.1);opacity:1}to{transform:scaleY(1);opacity:1}}@keyframes eyeBlink{0%,40%,48%,to{clip-path:polygon(0% 50%,10% 30%,25% 12%,42% 3%,50% 0%,58% 3%,75% 12%,90% 30%,100% 50%,90% 70%,75% 88%,58% 97%,50% 100%,42% 97%,25% 88%,10% 70%)}44%{clip-path:polygon(0% 50%,10% 48%,25% 47%,42% 49%,50% 50%,58% 49%,75% 47%,90% 48%,100% 50%,90% 52%,75% 53%,58% 51%,50% 50%,42% 51%,25% 53%,10% 52%)}}@keyframes irisPulse{0%,to{box-shadow:0 0 25px #ffdc3cb3,0 0 50px #dcb41e4d,inset 0 0 8px #0006}50%{box-shadow:0 0 35px #ffdc3ce6,0 0 70px #dcb41e66,inset 0 0 12px #0000004d}}@keyframes pupilBreathe{0%,to{width:12px}50%{width:8px}}@keyframes fireFlicker{0%{filter:brightness(1)}to{filter:brightness(1.4)}}@keyframes fireRingSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes progressFadeIn{0%{opacity:0;transform:translateY(5px)}to{opacity:1;transform:translateY(0)}}@keyframes progressGlow{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}@keyframes textFadeIn{0%{opacity:0}to{opacity:1}}@keyframes particleFloat{0%{transform:translateY(0) translate(0) scale(1);opacity:0}10%{opacity:1}90%{opacity:1}to{transform:translateY(-300px) translate(var(--drift)) scale(0);opacity:0}}@keyframes shadowEyeAppear{0%{opacity:0;transform:var(--base-transform) scaleY(.1)}15%{opacity:1;transform:var(--base-transform) scaleY(1)}80%{opacity:1;transform:var(--base-transform) scaleY(1)}90%{opacity:.5;transform:var(--base-transform) scaleY(.1)}to{opacity:0;transform:var(--base-transform) scaleY(0)}}@keyframes teethAppear{0%{opacity:0;transform:var(--base-transform) scaleY(.3)}8%{opacity:1;transform:var(--base-transform) scaleY(1.05)}12%{opacity:1;transform:var(--base-transform) scaleY(1)}75%{opacity:1;transform:var(--base-transform) scaleY(1)}to{opacity:0;transform:var(--base-transform) scaleY(.5)}}@keyframes wriggle{0%,to{translate:0px 0px;rotate:0deg}15%{translate:var(--wr-x1, 2px) var(--wr-y1, -1px);rotate:var(--wr-r1, .5deg)}35%{translate:var(--wr-x2, -1px) var(--wr-y2, 2px);rotate:var(--wr-r2, -.8deg)}55%{translate:var(--wr-x3, 1px) var(--wr-y3, -2px);rotate:var(--wr-r3, .4deg)}75%{translate:var(--wr-x4, -2px) var(--wr-y4, 1px);rotate:var(--wr-r4, -.3deg)}}.trial-hud{position:fixed;top:max(16px,env(safe-area-inset-top));left:max(16px,env(safe-area-inset-left));z-index:2200;display:grid;gap:12px;pointer-events:none}.trial-hud__card,.trial-hud__controls{width:min(320px,calc(100vw - 32px));pointer-events:auto}.trial-hud__card{padding:16px 18px;border:1px solid rgba(226,166,70,.28);border-radius:18px;color:#f6ead5;background:linear-gradient(180deg,#1c130aeb,#080808e0);box-shadow:0 18px 32px #00000047,inset 0 0 24px #e2a6460f}.trial-hud__eyebrow{font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#f6ead59e}.trial-hud__section{margin-top:8px;font-size:24px;font-weight:700;letter-spacing:.02em}.trial-hud__timer{margin-top:10px;font-family:Menlo,Consolas,monospace;font-size:22px;font-weight:700;letter-spacing:.06em;color:#f6ead58c}.trial-hud__timer[data-active=true]{color:#f6ead5;text-shadow:0 0 10px rgba(226,166,70,.45)}.trial-hud__meter{height:12px;margin-top:14px;overflow:hidden;border-radius:999px;background:#ffffff14}.trial-hud__meter-fill{height:100%;border-radius:inherit;transition:background .4s ease,box-shadow .4s ease}.trial-hud__stats,.trial-hud__meta{display:flex;align-items:center;justify-content:space-between}.trial-hud__stats{margin-top:10px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.trial-hud__meta{margin-top:8px;font-size:13px;color:#f6ead5b3}.trial-hud__controls{display:flex;gap:8px}.trial-hud__button{flex:1;min-height:42px;border:1px solid rgba(226,166,70,.3);border-radius:999px;color:#0f0a03;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(180deg,#f2d48a,#c9942e)}.trial-hud__button--ghost{color:#f6ead5;background:#ffffff0d}.trial-hud--mobile{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));bottom:auto;gap:5px}.trial-hud--mobile .trial-hud__card,.trial-hud--mobile .trial-hud__controls{width:140px}.trial-hud--mobile .trial-hud__card{padding:6px 9px;border-radius:10px}.trial-hud--mobile .trial-hud__eyebrow,.trial-hud--mobile .trial-hud__section,.trial-hud--mobile .trial-hud__stats,.trial-hud--mobile .trial-hud__meta{display:none}.trial-hud--mobile .trial-hud__timer{margin-top:0;font-size:13px;letter-spacing:.04em}.trial-hud--mobile .trial-hud__meter{height:5px;margin-top:5px}.trial-hud--mobile .trial-hud__controls{gap:5px}.trial-hud--mobile .trial-hud__button{min-height:24px;font-size:8px;letter-spacing:.05em;padding:0 5px;border-radius:999px}.mobile-hud{position:fixed;inset:0;z-index:1600;pointer-events:none}.mobile-joystick,.mobile-action{pointer-events:auto;touch-action:none;user-select:none;-webkit-user-select:none}.mobile-joystick{--thumb-x: 0px;--thumb-y: 0px;position:absolute;left:max(20px,env(safe-area-inset-left));bottom:max(20px,env(safe-area-inset-bottom));width:136px;height:136px;border:none;border-radius:50%;background:radial-gradient(circle at 50% 50%,#ccaa201f,#0a0a0abf 65%),#0c0c0c8c;box-shadow:inset 0 0 24px #ccaa201f,0 20px 35px #00000059}.mobile-joystick__ring,.mobile-joystick__core,.mobile-joystick__thumb{position:absolute;inset:50%;transform:translate(-50%,-50%);border-radius:50%}.mobile-joystick__ring{width:100%;height:100%;border:1px solid rgba(204,170,32,.25)}.mobile-joystick__core{width:48px;height:48px;border:1px solid rgba(204,170,32,.2);background:#ccaa2014}.mobile-joystick__thumb{width:56px;height:56px;transform:translate(calc(-50% + var(--thumb-x)),calc(-50% + var(--thumb-y)));background:radial-gradient(circle at 35% 35%,#ffeba08c,#ccaa203d 45%,#000c);border:1px solid rgba(255,235,160,.35);box-shadow:0 10px 18px #00000073,inset 0 0 18px #ffeba033}.mobile-actions{position:absolute;right:max(20px,env(safe-area-inset-right));bottom:max(20px,env(safe-area-inset-bottom));display:grid;gap:12px;justify-items:end}.mobile-action{min-width:96px;padding:14px 20px;border:1px solid rgba(255,235,160,.26);border-radius:999px;color:#f7e7a5;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(180deg,#302608f2,#0f0f0feb);box-shadow:0 16px 28px #00000059,inset 0 0 20px #ccaa2014}.mobile-action:active{transform:scale(.96);background:linear-gradient(180deg,#564612fa,#141414f2);box-shadow:0 10px 18px #0000004d,inset 0 0 24px #ffeba02e}.mobile-action--jump{min-width:120px;min-height:58px}.mobile-action--interact,.mobile-action--map{min-height:52px}.app-shell{position:relative;width:100%;height:100%;height:100svh;height:100dvh;overflow:hidden;background:#050505}.app-shell__canvas{width:100%;height:100%;height:100svh;height:100dvh}.rotate-overlay{position:fixed;inset:0;z-index:4000;display:flex;align-items:center;justify-content:center;padding:calc(24px + env(safe-area-inset-top)) calc(24px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(24px + env(safe-area-inset-left));overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:radial-gradient(circle at 50% 50%,rgba(204,170,32,.1),transparent 50%),#020202f5}.rotate-overlay__panel{width:min(360px,100%);max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 48px);margin:auto;padding:28px 24px;border:1px solid rgba(204,170,32,.22);border-radius:24px;background:linear-gradient(180deg,#161208fa,#080808f0);box-shadow:0 24px 48px #00000073,inset 0 0 30px #ccaa2014;color:#efe6c2;text-align:center;overflow-y:auto;-webkit-overflow-scrolling:touch}.rotate-overlay__panel--fullscreen{width:min(400px,100%)}.rotate-overlay__icon{display:flex;justify-content:center;margin-bottom:18px}.rotate-overlay__phone{width:54px;height:86px;border:2px solid rgba(255,235,160,.45);border-radius:18px;position:relative;transform:rotate(90deg);box-shadow:inset 0 0 24px #ffeba014}.rotate-overlay__phone:before{content:"";position:absolute;top:8px;left:50%;width:18px;height:4px;border-radius:999px;transform:translate(-50%);background:#ffeba059}.rotate-overlay__title{font-size:20px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.rotate-overlay__text{margin-top:10px;color:#efe6c2c7;line-height:1.5}.rotate-overlay__actions{display:grid;gap:10px;margin-top:22px}.rotate-overlay__button{width:100%;min-height:50px;padding:12px 18px;border:1px solid rgba(255,235,160,.2);border-radius:999px;color:#140f02;font-size:14px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(180deg,#f3d978,#c9a533);box-shadow:0 12px 22px #00000047,inset 0 0 14px #ffffff2e}.rotate-overlay__button--ghost{color:#efe6c2;background:#ffffff0a;border-color:#ffeba02e;box-shadow:inset 0 0 18px #ffeba00d}.fullscreen-fab{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:2500;min-width:54px;min-height:40px;padding:0 14px;border:1px solid rgba(255,235,160,.22);border-radius:999px;color:#f7e7a5;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(180deg,#302608eb,#0f0f0fe6);box-shadow:0 12px 24px #00000052,inset 0 0 18px #ccaa2014;touch-action:manipulation}.fullscreen-fab:active{transform:scale(.96)}.player-session-card{position:fixed;top:max(12px,env(safe-area-inset-top));left:max(12px,env(safe-area-inset-left));z-index:900;display:flex;align-items:center;gap:10px;min-height:52px;padding:10px 12px;border:1px solid rgba(255,235,160,.18);border-radius:16px;color:#f5e9bf;background:linear-gradient(180deg,#181207f5,#080808f0);box-shadow:0 14px 28px #00000057,inset 0 0 16px #ccaa200d}.player-session-card__avatar{width:34px;height:34px;border-radius:999px;object-fit:cover;flex:none}.player-session-card__avatar--fallback{display:grid;place-items:center;background:#ccaa2033;font-weight:700}.player-session-card__copy{min-width:0;text-align:left}.player-session-card__eyebrow{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#f5e9bf9e}.player-session-card__name{font-size:13px;font-weight:600;white-space:nowrap}.player-session-card__button{border:1px solid rgba(204,170,32,.28);border-radius:999px;min-height:34px;padding:0 12px;color:#150f03;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;background:linear-gradient(180deg,#f3d978,#c9a533)}.player-session-card__button--ghost{color:#f5e9bf;background:#ffffff0a}@media(max-height:560px){.rotate-overlay{align-items:flex-start}.rotate-overlay__panel{padding:22px 18px;border-radius:20px}.rotate-overlay__icon{margin-bottom:12px}.rotate-overlay__phone{width:46px;height:74px}.rotate-overlay__title{font-size:18px}.rotate-overlay__text{margin-top:8px;font-size:14px}.rotate-overlay__actions{margin-top:16px;gap:8px}.rotate-overlay__button{min-height:46px;padding:10px 14px;font-size:12px}.player-session-card{top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));gap:8px;padding:8px 10px}.player-session-card__name{max-width:120px;overflow:hidden;text-overflow:ellipsis}}
