*,:before,:after{box-sizing:border-box}*{margin:0}:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--night-950:#050719;--night-900:#080b22;--night-850:#0d1230;--night-800:#12183b;--violet-700:#3e2d72;--violet-500:#6f5ab3;--cyan-400:#42e8e5;--cyan-300:#7af5ef;--mint-200:#c9fffa;--warm-400:#ffc96b;--success-400:#71edb2;--danger-400:#ff8b95;--text-primary:#effffd;--text-secondary:#b8d8dc;--surface-panel:#080c23e0;--surface-control:#12183bdb;--border-subtle:#7af5ef3d;--border-strong:#7af5ef94;--font-display:"Cormorant Garamond", Georgia, serif;--font-body:"Be Vietnam Pro", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--shadow-panel:0 32px 90px #0000008c, 0 0 48px #1cb2bb1c;--ease-out:cubic-bezier(.2, .75, .2, 1)}html{background:var(--night-950);min-width:320px;min-height:100%}body{min-width:320px;min-height:100%;color:var(--text-primary);background:var(--night-950);font-family:var(--font-body);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px;line-height:1.5;overflow-x:hidden}button{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button:focus-visible,a:focus-visible{outline:3px solid var(--warm-400);outline-offset:4px}.skip-link{z-index:1000;color:var(--night-950);background:var(--mint-200);transition:transform .18s var(--ease-out);border-radius:10px;padding:10px 16px;font-weight:700;text-decoration:none;position:fixed;top:12px;left:12px;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.scene{z-index:0;pointer-events:none;background:radial-gradient(circle at 50% 42%, #1a67966b, transparent 42%), var(--night-950);position:fixed;inset:0;overflow:hidden}.scene-art{object-fit:cover;object-position:50% 50%;filter:saturate(.94)brightness(.86);width:100%;height:100%;position:absolute;inset:0;transform:scale(1.02)}.scene-scrim{background:linear-gradient(#04061447 0%,#04061405 32%,#04061438 100%),radial-gradient(at 50% 43%,#04091c0f 0%,#03051280 78%);position:absolute;inset:0}.scene-vignette{position:absolute;inset:-2px;box-shadow:inset 0 0 150px #0000007a,inset 0 -100px 100px #02040f75}.scene-mist{filter:blur(38px);opacity:.28;will-change:transform, opacity;background:#5ae8e51a;border-radius:50%;width:70vw;height:18vh;position:absolute}.scene-mist--one{animation:22s ease-in-out infinite alternate mistDriftOne;bottom:21vh;left:-14vw}.scene-mist--two{opacity:.18;animation:28s ease-in-out infinite alternate mistDriftTwo;bottom:34vh;right:-24vw}.scene-rune-ring{aspect-ratio:1;border:1px solid #4ae7e31f;border-radius:50%;width:min(76vw,1040px);position:absolute;bottom:-24vw;left:50%;transform:translate(-50%)rotate(8deg);box-shadow:inset 0 0 38px #42e8e514,0 0 36px #42e8e514}.scene-rune-ring:before,.scene-rune-ring:after{content:"";border-radius:inherit;border:1px dashed #7af5ef1a;position:absolute}.scene-rune-ring:before{inset:7%}.scene-rune-ring:after{inset:15%}.scene-motes{position:absolute;inset:0}.mote{background:var(--cyan-300);width:4px;height:4px;box-shadow:0 0 8px var(--cyan-400), 0 0 18px #42e8e5a6;opacity:0;border-radius:50%;animation:9s ease-in-out infinite moteFloat;position:absolute}.mote:nth-child(3n){background:var(--warm-400);width:5px;height:5px;box-shadow:0 0 8px var(--warm-400), 0 0 18px #ffc96b8c}.mote--1{animation-delay:-2s;top:66%;left:9%}.mote--2{animation-delay:-6s;top:29%;left:17%}.mote--3{animation-delay:-4s;top:72%;left:25%}.mote--4{animation-delay:-7s;top:23%;left:33%}.mote--5{animation-delay:-1s;top:79%;left:41%}.mote--6{animation-delay:-8s;top:18%;left:48%}.mote--7{animation-delay:-5s;top:69%;left:56%}.mote--8{animation-delay:-3s;top:29%;left:63%}.mote--9{animation-delay:-7s;top:74%;left:71%}.mote--10{animation-delay:-2s;top:20%;left:79%}.mote--11{animation-delay:-6s;top:65%;left:87%}.mote--12{animation-delay:-4s;top:39%;left:92%}.mote--13{animation-delay:-8s;top:84%;left:14%}.mote--14{animation-delay:-1s;top:84%;left:82%}.app-shell{z-index:1;min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) clamp(16px, 3vw, 48px) max(24px, env(safe-area-inset-bottom));place-items:center;display:grid;position:relative}.stage{flex-direction:column;justify-content:center;align-items:center;gap:clamp(18px,3vh,30px);width:min(100%,1040px);min-height:min(800px,100dvh - 44px);display:flex;position:relative}.game-hud{width:min(100%,920px);animation:hudEnter .5s var(--ease-out) both;justify-content:space-between;align-items:flex-end;gap:24px;padding-inline:clamp(4px,2vw,20px);display:flex}.brand-mark{min-width:0;color:var(--mint-200);text-shadow:0 2px 18px #42e8e559;align-items:center;gap:12px;display:flex}.brand-mark svg{fill:none;stroke:currentColor;stroke-width:1.6px;filter:drop-shadow(0 0 8px #42e8e580);flex:none;width:38px;height:38px}.brand-mark span{display:grid}.brand-mark strong{font-family:var(--font-display);letter-spacing:.035em;font-size:clamp(1.3rem,2.2vw,1.7rem);line-height:1}.brand-mark small{color:var(--text-secondary);letter-spacing:.14em;text-transform:uppercase;margin-top:4px;font-size:.68rem;font-weight:500}.progress{width:clamp(180px,26vw,260px)}.progress-copy{justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:8px;display:flex}.progress-copy span{color:var(--text-secondary);letter-spacing:.16em;text-transform:uppercase;font-size:.68rem;font-weight:600}.progress-copy strong{color:var(--mint-200);letter-spacing:.08em;font-variant-numeric:tabular-nums;font-size:.76rem}.progress-track{background:#c9fffa21;border-radius:999px;height:4px;position:relative;overflow:visible;box-shadow:0 0 0 1px #04081880}.progress-track span{background:linear-gradient(90deg, #44aaa9, var(--cyan-300));border-radius:inherit;min-width:10px;transition:width .35s var(--ease-out);position:absolute;inset:0 auto 0 0;box-shadow:0 0 11px #42e8e5cc}.progress-track span:after{content:"";background:var(--mint-200);width:8px;height:8px;box-shadow:0 0 12px var(--cyan-300);border-radius:50%;position:absolute;top:50%;right:-4px;transform:translateY(-50%)}.quiz-transition{width:min(100%,840px);animation:panelEnter .42s var(--ease-out) both}.quiz-card{isolation:isolate;background:radial-gradient(ellipse at 50% -10%, #4ec9c929, transparent 50%), linear-gradient(160deg, #101638ed, var(--surface-panel));border:1px solid var(--border-strong);width:min(100%,840px);box-shadow:var(--shadow-panel), inset 0 1px 0 #ffffff14, inset 0 0 54px #1a97a00f;-webkit-backdrop-filter:blur(14px)saturate(112%);border-radius:34px 34px 28px 28px;padding:clamp(42px,5vw,62px) clamp(22px,5.5vw,66px) clamp(26px,4vw,42px);position:relative;overflow:hidden}.quiz-card:before{content:"";z-index:-1;pointer-events:none;border:1px solid #7af5ef24;border-radius:27px 27px 22px 22px;position:absolute;inset:9px}.quiz-card:after{content:"";z-index:-1;filter:blur(60px);pointer-events:none;background:#42e8e51a;border-radius:50%;width:440px;height:230px;position:absolute;top:-120px;left:50%;transform:translate(-50%)}.panel-ornament{width:min(58%,390px);color:var(--cyan-300);opacity:.75;align-items:center;gap:12px;display:flex;position:absolute;top:13px;left:50%;transform:translate(-50%)}.panel-ornament span{background:linear-gradient(90deg,#0000,currentColor);flex:1;height:1px}.panel-ornament span:last-child{background:linear-gradient(90deg,currentColor,#0000)}.panel-ornament svg{fill:none;stroke:currentColor;stroke-width:1.4px;filter:drop-shadow(0 0 6px #42e8e5b3);width:28px;height:28px}.question-kicker,.dialog-kicker{color:var(--warm-400);letter-spacing:.2em;text-align:center;text-transform:uppercase;text-shadow:0 0 15px #ffc96b4d;font-size:clamp(.65rem,1.5vw,.74rem);font-weight:700}.quiz-prompt{max-width:19ch;color:var(--text-primary);font-family:var(--font-display);letter-spacing:-.025em;text-align:center;text-wrap:balance;text-shadow:0 2px #0006,0 0 24px #7af5ef33;margin:10px auto clamp(26px,4vw,38px);font-size:clamp(2.05rem,5vw,3.45rem);font-weight:600;line-height:1.05}.riddle-card{padding-top:clamp(38px,4.5vw,52px)}.riddle-prompt{max-width:28ch;margin-bottom:clamp(16px,2.6vw,24px);font-size:clamp(1.75rem,3.6vw,2.7rem);line-height:1.12}.riddle-verse{max-width:580px;color:var(--mint-200);font-family:var(--font-display);text-align:center;text-shadow:0 0 18px #42e8e52e;background:linear-gradient(90deg,#0000,#42e8e512 18% 82%,#0000),#04091c3d;border-block:1px solid #7af5ef29;gap:4px;margin:0 auto clamp(20px,3vw,28px);padding:clamp(15px,2.4vw,22px) clamp(16px,3vw,28px);font-size:clamp(1.15rem,2.4vw,1.45rem);font-style:italic;font-weight:600;line-height:1.42;display:grid;position:relative}.riddle-verse:before,.riddle-verse:after{content:"◆";color:var(--warm-400);font-family:var(--font-body);font-size:.48rem;position:absolute;top:50%;transform:translateY(-50%)}.riddle-verse:before{left:4px}.riddle-verse:after{right:4px}.riddle-verse span{display:block}.answer-form{max-width:650px;margin:0 auto}.answer-form>label{color:var(--text-primary);letter-spacing:.035em;margin-bottom:8px;font-size:.78rem;font-weight:600;display:block}.answer-input-wrap{background:linear-gradient(180deg, #2c396bb8, #0b112ff0), var(--surface-control);border:1px solid #7af5ef57;border-radius:16px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;min-height:58px;padding:5px 5px 5px 16px;transition:border-color .18s,box-shadow .18s;display:grid;box-shadow:inset 0 1px #ffffff0f,0 10px 25px #00000040}.answer-input-wrap:focus-within{border-color:var(--cyan-300);box-shadow:0 0 0 3px #42e8e51f,0 10px 25px #00000040,0 0 24px #42e8e51f}.answer-input-wrap--error{border-color:var(--danger-400);animation:answerWrong .38s var(--ease-out);box-shadow:0 0 0 3px #ff8b951a,0 10px 25px #00000040}.answer-input-wrap>svg{fill:none;width:21px;height:21px;stroke:var(--cyan-300);stroke-linecap:round;stroke-width:1.7px}.answer-input-wrap input{min-width:0;height:46px;color:var(--text-primary);font-family:var(--font-body);background:0 0;border:0;outline:0;padding:0 4px;font-size:1rem;font-weight:500}.answer-input-wrap input::placeholder{color:#b8d8dc8a}.answer-submit{color:#062a31;cursor:pointer;min-width:112px;min-height:46px;transition:box-shadow .18s ease, opacity .18s ease, transform .18s var(--ease-out);background:linear-gradient(#cafff9,#62e8e3);border:1px solid #ffffffb8;border-radius:12px;padding:10px 18px;font-size:.84rem;font-weight:700;box-shadow:inset 0 1px #ffffffc2,0 6px 18px #00000047,0 0 20px #42e8e533}.answer-submit:hover:not(:disabled){transform:translateY(-1px);box-shadow:inset 0 1px #fffc,0 9px 24px #00000052,0 0 30px #42e8e561}.answer-submit:active:not(:disabled){transform:translateY(0)scale(.985)}.answer-submit:disabled{cursor:not-allowed;opacity:.45}.answer-help,.answer-error{font-size:.7rem;line-height:1.45}.answer-help{color:#b8d8dcb3;margin-top:8px}.answer-error{color:#ffc2c7;min-height:1.1rem;margin-top:4px;font-weight:500}.answer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;display:grid}.answer-btn{color:#e7fbfb;background:linear-gradient(180deg, #314070b8, #111739f0), var(--surface-control);cursor:pointer;text-align:left;min-height:70px;transition:border-color .18s ease, background-color .18s ease, box-shadow .18s ease, transform .18s var(--ease-out);border:1px solid #7af5ef38;border-radius:15px;align-items:center;gap:14px;padding:13px 18px;font-size:clamp(.92rem,1.8vw,1.02rem);font-weight:600;line-height:1.35;display:flex;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffff12,inset 0 -9px 18px #02051338,0 9px 20px #0003}.answer-btn:after{content:"";pointer-events:none;border:1px solid #7af5ef0f;border-radius:11px;position:absolute;inset:4px}.answer-glyph{width:32px;height:32px;color:var(--cyan-300);font-family:var(--font-display);background:#42e8e514;border:1px solid #7af5ef47;border-radius:50%;flex:none;place-items:center;font-size:1rem;line-height:1;display:grid;box-shadow:0 0 14px #42e8e514}.answer-btn:hover:not(:disabled){background:linear-gradient(180deg, #385b80d1, #111e40f5), var(--surface-control);border-color:#7af5efb8;transform:translateY(-2px);box-shadow:inset 0 1px #ffffff1a,0 12px 25px #00000047,0 0 22px #42e8e524}.answer-btn:active:not(:disabled){transform:translateY(0)scale(.985)}.answer-btn--wrong{color:#ffe5e7;animation:answerWrong .38s var(--ease-out);background:linear-gradient(#672642d1,#30142bf0);border-color:#ff8b959e}.answer-btn--wrong .answer-glyph{color:#fff0f1;background:#ff8b9524;border-color:#ff8b958c}.answer-btn--disabled{cursor:not-allowed;opacity:.46}.quiz-footnote{color:#b8d8dcb8;letter-spacing:.08em;text-align:center;margin-top:20px;font-size:.72rem;font-weight:500}.hint-banner{color:var(--mint-200);animation:hintEnter .26s var(--ease-out);background:#275b603d;border:1px solid #7af5ef42;border-radius:14px;align-items:flex-start;gap:12px;margin:-12px 0 26px;padding:14px 16px;display:flex}.hint-icon{color:var(--warm-400);flex:none;line-height:1.45}.hint-text{color:var(--text-secondary);font-size:.88rem;line-height:1.55}.modal-backdrop{z-index:100;padding:max(20px, env(safe-area-inset-top)) 16px max(20px, env(safe-area-inset-bottom));-webkit-backdrop-filter:blur(10px)saturate(.85);background:#030512b3;place-items:start center;animation:.22s both backdropEnter;display:grid;position:fixed;inset:0;overflow-y:auto}.modal-dialog{width:min(100%,520px);color:var(--text-primary);border:1px solid var(--border-strong);text-align:center;animation:dialogEnter .3s var(--ease-out) both;background:radial-gradient(circle at 50% 0,#3eb4b92e,#0000 45%),linear-gradient(160deg,#141b42fa,#070a1dfa);border-radius:26px;padding:34px clamp(22px,5vw,44px) 30px;position:relative;overflow:hidden;box-shadow:0 35px 100px #000000ad,0 0 50px #42e8e526,inset 0 1px #ffffff17}.modal-dialog:before{content:"";pointer-events:none;border:1px solid #7af5ef21;border-radius:19px;position:absolute;inset:8px}.modal-emblem{width:54px;height:54px;color:var(--cyan-300);margin:0 auto 16px}.modal-emblem svg{fill:none;stroke:currentColor;stroke-width:1.5px;filter:drop-shadow(0 0 9px #42e8e599);width:100%;height:100%}.modal-dialog h2{font-family:var(--font-display);text-wrap:balance;margin-top:7px;font-size:clamp(2rem,6vw,2.8rem);font-weight:600;line-height:1.08}.dialog-copy,.reward-caption,.completion-copy{max-width:48ch;color:var(--text-secondary);margin:12px auto 0;font-size:.94rem;line-height:1.65}.hint-cost-note{width:fit-content;color:var(--warm-400);letter-spacing:.02em;background:#ffc96b17;border:1px solid #ffc96b57;border-radius:999px;margin:14px auto 0;padding:8px 14px;font-size:.82rem;font-weight:800}.dialog-actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-top:24px;display:flex}.btn-primary,.btn-secondary{cursor:pointer;min-height:48px;transition:border-color .18s ease, box-shadow .18s ease, transform .18s var(--ease-out);border-radius:13px;padding:11px 22px;font-size:.88rem;font-weight:700}.btn-primary{color:#062a31;background:linear-gradient(#cafff9,#62e8e3);border:1px solid #ffffffbf;box-shadow:inset 0 1px #ffffffbd,0 10px 24px #00000052,0 0 24px #42e8e54d}.btn-secondary{color:var(--text-primary);background:#1e2754d6;border:1px solid #7af5ef47;box-shadow:inset 0 1px #ffffff0f}.btn-primary:hover,.btn-secondary:hover{transform:translateY(-2px)}.btn-primary:hover{box-shadow:inset 0 1px #fffc,0 13px 28px #0000005c,0 0 34px #42e8e575}.btn-secondary:hover{border-color:#7af5ef99;box-shadow:0 0 22px #42e8e51f}.btn-primary:active,.btn-secondary:active{transform:translateY(0)scale(.985)}.reward-visual{aspect-ratio:1;background:radial-gradient(circle,#36748452,#070a1db3 68%);border:1px solid #7af5ef6b;border-radius:50%;place-items:center;width:clamp(132px,36vw,174px);margin:0 auto 20px;display:grid;position:relative;box-shadow:0 0 0 8px #7af5ef0a,0 0 45px #42e8e538,inset 0 0 34px #42e8e526}.reward-visual:before,.reward-visual:after{content:"";border:1px dashed #7af5ef47;border-radius:50%;animation:20s linear infinite rewardOrbit;position:absolute;inset:-12px}.reward-visual:after{border-style:solid;border-color:#ffc96b29 #0000;animation-duration:28s;animation-direction:reverse;inset:-22px}.reward-img{z-index:1;object-fit:contain;filter:drop-shadow(0 0 18px #ffc96b47);width:84%;height:84%;animation:rewardReveal .52s var(--ease-out) both .1s;position:relative}.reward-aura{filter:blur(60px);background:#42e8e521;border-radius:50%;width:300px;height:240px;position:absolute;top:-90px;left:50%;transform:translate(-50%)}.completion-card{text-align:center;animation:panelEnter .42s var(--ease-out) both;flex-direction:column;align-items:center;display:flex}.completion-sigil{width:84px;height:84px;color:var(--cyan-300);margin-bottom:18px}.completion-sigil svg{fill:none;stroke:currentColor;stroke-width:1.4px;filter:drop-shadow(0 0 11px #42e8e59e);width:100%;height:100%}.completion-card .quiz-prompt{margin-bottom:6px}@keyframes panelEnter{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes hudEnter{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes hintEnter{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}@keyframes answerWrong{0%,to{transform:translate(0)}30%{transform:translate(-5px)}60%{transform:translate(4px)}}@keyframes backdropEnter{0%{opacity:0}to{opacity:1}}@keyframes dialogEnter{0%{opacity:0;transform:translateY(14px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes rewardReveal{0%{opacity:0;transform:scale(.5)rotate(-8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes rewardOrbit{to{transform:rotate(360deg)}}@keyframes moteFloat{0%{opacity:0;transform:translateY(12px)scale(.7)}25%{opacity:.9}70%{opacity:.5}to{opacity:0;transform:translate(18px,-80px)scale(1.15)}}@keyframes mistDriftOne{0%{transform:translate(0,0)scale(1)}to{transform:translate(24vw,-2vh)scale(1.08)}}@keyframes mistDriftTwo{0%{transform:translate(0,0)scale(1)}to{transform:translate(-18vw,3vh)scale(.92)}}@media (width<=720px){.app-shell{place-items:start center;padding-inline:12px}.stage{justify-content:flex-start;gap:16px;min-height:calc(100dvh - 44px)}.game-hud{align-items:center;padding:4px 4px 0}.brand-mark{gap:8px}.brand-mark svg{width:31px;height:31px}.brand-mark strong{font-size:1.18rem}.brand-mark small,.progress-copy span{display:none}.progress{width:112px}.progress-copy{justify-content:flex-end;margin-bottom:6px}.quiz-transition{flex:1;align-content:center;display:grid}.quiz-card{border-radius:25px;padding:38px 18px 24px}.quiz-card:before{border-radius:19px;inset:7px}.panel-ornament{top:10px}.quiz-prompt{margin-top:8px;margin-bottom:24px;font-size:clamp(1.92rem,9vw,2.55rem);line-height:1.07}.riddle-card{padding-top:36px}.riddle-prompt{margin-bottom:15px;font-size:clamp(1.55rem,7.2vw,2rem);line-height:1.12}.riddle-verse{gap:2px;margin-bottom:18px;padding:13px 10px;font-size:clamp(1.02rem,4.5vw,1.18rem);line-height:1.4}.answer-input-wrap{grid-template-columns:auto minmax(0,1fr);padding:6px 10px 10px 14px}.answer-input-wrap input{height:44px;font-size:16px}.answer-submit{grid-column:1/-1;width:100%;min-height:48px}.answer-help{text-align:center}.answer-grid{grid-template-columns:1fr;gap:10px}.answer-btn{min-height:58px;padding:10px 13px;font-size:.9rem}.answer-glyph{width:30px;height:30px}.quiz-footnote{margin-top:15px;font-size:.67rem}.hint-banner{margin-top:-8px;margin-bottom:20px;padding:12px}.modal-dialog{padding-inline:21px}.dialog-actions{flex-direction:column}.btn-primary,.btn-secondary{width:100%}.scene-art{object-position:58% 50%;filter:saturate(.9)brightness(.72)}.scene-scrim{background:linear-gradient(#04061461,#04061414 35%,#0406145c),radial-gradient(at 50% 45%,#0508191a,#03051285 82%)}}@media (width<=380px){.brand-mark small{display:none}.brand-mark strong{font-size:1.04rem}.progress{width:96px}.question-kicker{letter-spacing:.15em;font-size:.61rem}.quiz-card{padding-inline:14px}}@media (height<=760px) and (width>=721px){.stage{gap:16px;min-height:calc(100dvh - 44px)}.quiz-card{padding-top:38px;padding-bottom:28px}.quiz-prompt{margin-bottom:24px;font-size:clamp(2rem,4.5vw,2.85rem)}.answer-btn{min-height:62px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}input{font:inherit}button:disabled{cursor:not-allowed;opacity:.48}input:focus-visible{outline-offset:2px;outline:3px solid #ffc96bb8}.portal-card,.dashboard{isolation:isolate;border:1px solid var(--border-strong);width:min(100%,760px);box-shadow:var(--shadow-panel), inset 0 1px 0 #ffffff14;-webkit-backdrop-filter:blur(16px)saturate(112%);animation:panelEnter .42s var(--ease-out) both;background:radial-gradient(at 50% -10%,#4ec9c929,#0000 50%),linear-gradient(160deg,#101638f2,#080c23f0);position:relative;overflow:hidden}.portal-card{border-radius:32px;padding:clamp(48px,6vw,66px) clamp(22px,6vw,70px) clamp(28px,5vw,46px)}.portal-card:before,.dashboard:before{content:"";z-index:-1;border-radius:inherit;pointer-events:none;border:1px solid #7af5ef21;position:absolute;inset:8px}.portal-title{font-family:var(--font-display);text-align:center;text-wrap:balance;margin:8px 0 24px;font-size:clamp(2.25rem,6vw,3.5rem);font-weight:600;line-height:1}.invite-room{width:fit-content;color:var(--mint-200);background:#42e8e514;border:1px solid #7af5ef38;border-radius:13px;justify-items:center;margin:-12px auto 24px;padding:9px 20px;display:grid}.invite-room span,.invite-room small{color:var(--text-secondary);font-size:.68rem}.invite-room strong{letter-spacing:.16em;font-size:1.05rem}.mode-switch{background:#0206167a;border:1px solid #7af5ef2b;border-radius:14px;grid-template-columns:repeat(2,1fr);gap:5px;max-width:480px;margin:0 auto 24px;padding:5px;display:grid}.mode-switch button{min-height:44px;color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:10px;padding:8px 12px;font-size:.84rem;font-weight:700;transition:color .18s,background .18s,border-color .18s}.mode-switch button[aria-selected=true]{color:var(--mint-200);background:#2b54708a;border-color:#7af5ef4d;box-shadow:inset 0 1px #ffffff0f}.portal-form{gap:15px;max-width:480px;margin:0 auto;display:grid}.portal-form label{gap:7px;display:grid}.portal-form label>span{color:var(--text-primary);letter-spacing:.035em;font-size:.77rem;font-weight:650}.portal-form input{width:100%;min-height:50px;color:var(--text-primary);background:#0b112fe0;border:1px solid #7af5ef47;border-radius:13px;padding:11px 14px;font-size:16px;transition:border-color .18s,box-shadow .18s;box-shadow:inset 0 1px #ffffff0d}.portal-form input:focus{border-color:var(--cyan-300);box-shadow:0 0 0 3px #42e8e51a,0 0 22px #42e8e514}.portal-form input::placeholder{color:#b8d8dc7a}.form-note{color:#b8d8dcb8;font-size:.72rem;line-height:1.5}.form-error{color:#ffc2c7;min-height:1.25rem;font-size:.76rem;line-height:1.5}.portal-submit{width:100%;margin-top:2px}.text-link{width:fit-content;color:var(--text-secondary);text-underline-offset:4px;margin:20px auto 0;font-size:.78rem;display:block}.loading-card{min-width:min(100%,360px);color:var(--text-secondary);background:var(--surface-panel);border:1px solid var(--border-subtle);border-radius:24px;justify-items:center;gap:16px;padding:42px;display:grid}.loading-orb{background:radial-gradient(circle at 35% 30%, white, var(--cyan-300) 28%, #355f9b 70%);width:42px;height:42px;box-shadow:0 0 34px var(--cyan-400);border-radius:50%;animation:1.3s linear infinite rewardOrbit}.team-context{justify-content:space-between;align-items:center;gap:16px;width:min(100%,840px);margin-bottom:-10px;padding:0 8px;display:flex}.team-context>div{display:grid}.team-context span{color:var(--text-secondary);font-size:.7rem}.team-context strong{color:var(--mint-200);font-family:var(--font-display);font-size:1.3rem}.text-button{min-height:44px;color:var(--text-secondary);cursor:pointer;text-underline-offset:4px;background:0 0;border:0;padding:8px 4px;font-size:.76rem;text-decoration:underline}.floating-notice{color:#ffc2c7;text-align:center;background:#5c1a30c2;border:1px solid #ff8b9573;border-radius:12px;width:min(100%,840px);margin-bottom:-12px;padding:10px 14px;font-size:.8rem}.hint-action{background:#275b602e;border:1px solid #7af5ef30;border-radius:14px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;max-width:650px;margin:18px auto 0;padding:13px 14px;display:grid}.hint-action>span{width:34px;height:34px;color:var(--warm-400);background:#ffc96b14;border-radius:50%;place-items:center;display:grid}.hint-action svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.6px;width:21px;height:21px}.hint-action>div{line-height:1.3;display:grid}.hint-action strong{font-size:.78rem}.hint-action small{color:var(--text-secondary);margin-top:3px;font-size:.66rem}.compact-btn{white-space:nowrap;min-height:44px;padding:8px 15px}.hint-dialog{width:min(100%,620px)}.hint-image-frame{aspect-ratio:auto;background:var(--night-950);border:1px solid #7af5ef6b;border-radius:17px;margin-top:20px;overflow:hidden;box-shadow:0 16px 40px #00000057,0 0 28px #42e8e51a}.hint-image-frame img{object-fit:contain;width:100%;height:auto;display:block}.reward-dialog{width:min(100%,760px)}.reward-visual{aspect-ratio:auto;border-radius:18px;width:min(100%,620px);margin-bottom:22px;overflow:hidden}.reward-visual:before,.reward-visual:after{display:none}.reward-img{object-fit:contain;width:100%;height:auto;display:block}.stage--dashboard{justify-content:center;width:min(100%,1180px)}.dashboard{border-radius:30px;width:100%;padding:clamp(28px,4vw,48px)}.dashboard-header{justify-content:space-between;align-items:flex-start;gap:24px;padding:2px 3px 24px;display:flex}.dashboard-header .question-kicker{text-align:left}.dashboard-header h1{font-family:var(--font-display);margin-top:7px;font-size:clamp(2.3rem,5vw,3.8rem);font-weight:600;line-height:1}.dashboard-header p:last-child{color:var(--text-secondary);margin-top:8px;font-size:.78rem}.dashboard-header p strong{color:var(--mint-200);letter-spacing:.14em}.invite-panel{background:#234e5d4d;border:1px solid #7af5ef47;border-radius:16px;justify-content:space-between;align-items:center;gap:20px;padding:16px 18px;display:flex}.invite-panel>div{gap:4px;min-width:0;display:grid}.invite-panel span{color:var(--warm-400);letter-spacing:.08em;text-transform:uppercase;font-size:.68rem;font-weight:700}.invite-panel strong{color:var(--mint-200);text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;overflow:hidden}.dashboard-error{margin-top:12px}.dashboard-grid{grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);gap:18px;margin-top:18px;display:grid}.dashboard-panel{background:#05091d8c;border:1px solid #7af5ef29;border-radius:18px;min-width:0;padding:22px}.section-heading{justify-content:space-between;align-items:center;gap:16px;margin-bottom:18px;display:flex}.section-heading>div{display:grid}.section-heading span{color:var(--text-secondary);letter-spacing:.12em;text-transform:uppercase;font-size:.68rem;font-weight:600}.section-heading h2{font-family:var(--font-display);margin-top:3px;font-size:1.75rem;font-weight:600}.icon-button{width:44px;height:44px;color:var(--cyan-300);cursor:pointer;background:#42e8e514;border:1px solid #7af5ef38;border-radius:12px;place-items:center;display:grid}.icon-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:20px;height:20px}.empty-state{color:#b8d8dcb3;text-align:center;background:#11193b6b;border:1px dashed #7af5ef2e;border-radius:14px;padding:28px 14px;font-size:.82rem;line-height:1.6}.team-list{gap:9px;display:grid}.team-row{background:#151f468a;border:1px solid #7af5ef1a;border-radius:13px;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;padding:11px;display:grid}.team-avatar{color:#07333a;background:linear-gradient(145deg, var(--mint-200), var(--cyan-400));width:38px;height:38px;font-family:var(--font-display);border-radius:50%;place-items:center;font-size:1.2rem;font-weight:700;display:grid}.team-row>div:nth-child(2){min-width:0;display:grid}.team-row strong{text-overflow:ellipsis;white-space:nowrap;font-size:.82rem;overflow:hidden}.team-row span{color:var(--text-secondary);font-size:.66rem}.team-status{justify-items:end;gap:6px;display:grid}.team-solved-time{color:#b8d8dcc7;text-align:right;white-space:nowrap;font-size:.61rem;line-height:1.35}.status-pill{min-height:26px;color:var(--text-secondary);white-space:nowrap;background:#b8d8dc14;border:1px solid #b8d8dc29;border-radius:999px;align-items:center;padding:4px 9px;display:inline-flex;font-size:.64rem!important}.status-pill--hint{background:#ffc96b17;border-color:#ffc96b40;color:#ffe0a8!important}.status-pill--solved{background:#71edb217;border-color:#71edb245;color:#b8fbd7!important}.log-list{gap:0;max-height:350px;padding:0;list-style:none;display:grid;overflow-y:auto}.log-list li{grid-template-columns:auto minmax(0,1fr);gap:12px;padding:4px 4px 17px;display:grid;position:relative}.log-list li:not(:last-child):before{content:"";background:#7af5ef33;width:1px;position:absolute;top:16px;bottom:-1px;left:8px}.log-dot{z-index:1;background:var(--warm-400);border:5px solid #182249;border-radius:50%;width:17px;height:17px;margin-top:3px;position:relative;box-shadow:0 0 10px #ffc96b73}.log-list li>div{display:grid}.log-list strong{font-size:.8rem}.log-list span,.log-list time{color:var(--text-secondary);font-size:.68rem}.log-list time{color:#dffdfa;font-variant-numeric:tabular-nums;margin-top:4px}@media (width<=820px){.dashboard-grid{grid-template-columns:1fr}.stage--dashboard{justify-content:flex-start}}@media (width<=620px){.portal-card,.dashboard{border-radius:24px;padding-inline:17px}.portal-title{font-size:2.25rem}.team-context{padding-inline:4px}.hint-action{grid-template-columns:auto minmax(0,1fr)}.hint-action .compact-btn{grid-column:1/-1;width:100%}.invite-panel{flex-direction:column;align-items:stretch}.invite-panel .compact-btn{width:100%}.dashboard-header{flex-direction:column;align-items:stretch;gap:14px}.dashboard-header .compact-btn{width:100%}.dashboard-panel{padding:16px}.team-row{grid-template-columns:auto minmax(0,1fr)}.team-status{grid-column:2;justify-items:start}.team-solved-time{text-align:left}.reward-visual{border-radius:12px}}
