@import"https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&display=swap";.lobby-scene{background:#263e33}.lobby-scene .lobby-world{box-shadow:0 12px 48px #0009}.lobby-scene .lobby-map{object-fit:fill}.lobby-scene-frame{position:absolute;inset:0;border:.65cqw solid #58310f;box-shadow:inset 0 0 0 .24cqw #e9b44a,inset 0 0 0 .48cqw #8c531d,inset 0 0 1.8cqw #0008;pointer-events:none;z-index:3}.scene-building{position:absolute;z-index:2;display:grid;place-items:end center;min-width:44px;min-height:44px;padding:0;border:0;border-radius:2cqw;background:transparent;cursor:pointer}.scene-highlight{position:absolute;inset:0;z-index:1;opacity:0;transition:opacity .25s;pointer-events:none}.scene-cutout,.scene-rim,.scene-highlight img{position:absolute;inset:0;width:100%;height:100%}.scene-highlight img{filter:brightness(1.12) saturate(1.1)}.scene-cutout{filter:drop-shadow(0 0 .5cqw #ffd77a99) drop-shadow(0 0 1.6cqw #ffb24d55)}.scene-rim{overflow:visible;animation:scene-rim-breathe 2.6s ease-in-out infinite}.scene-rim polygon{fill:none;stroke-linejoin:round;vector-effect:non-scaling-stroke}.rim-glow{filter:blur(.5cqw)}.rim-glow polygon{stroke:#ffd36b;stroke-width:.9cqw;stroke-opacity:.45}.rim-line{filter:blur(.12cqw)}.rim-line polygon{stroke:#fff1c4;stroke-width:.18cqw;stroke-opacity:.7}@keyframes scene-rim-breathe{50%{opacity:.65}}@media(prefers-reduced-motion:reduce){.scene-rim{animation:none}}.scene-building:is(:hover,:focus-visible)+.scene-highlight{opacity:1}.lobby-map{transition:filter .25s}.lobby-world:has(.scene-building:is(:hover,:focus-visible)) .lobby-map{filter:brightness(.7) saturate(.85)}.scene-building:hover,.scene-building:active{background:transparent;transform:none}.scene-building:focus-visible{outline:none}.scene-building:is(:hover,:focus-visible) .scene-plaque{border-color:#ffe9a0;box-shadow:inset 0 0 0 .15cqw #ffe39a,0 0 1cqw #ffd04d}.scene-building-camp{left:3%;top:12%;width:28%;height:32%}.scene-building-camp .scene-plaque{transform:translateY(60%)}@media(max-width:600px){.scene-building-camp .scene-plaque{transform:translateY(110%)}}.scene-building-arena{left:34%;top:17%;width:36%;height:42%}.scene-building-dungeon{left:70%;top:3%;width:27%;height:55%;padding-left:5.6%;padding-bottom:2.36%}.scene-plaque{display:grid;gap:.1cqw;min-width:11cqw;padding:.45cqw 1.05cqw;border:.2cqw solid #593210;border-radius:.75cqw;background:linear-gradient(#b97c3d,#77441d);box-shadow:inset 0 0 0 .15cqw #edc268,0 .25cqw .5cqw #39220b99;color:#fff3d0;text-align:center;text-shadow:0 1px 1px #3b200b}.scene-plaque strong{font-size:clamp(14px,1.65cqw,24px);line-height:1.2}.scene-plaque small{font-size:clamp(10px,.85cqw,13px);line-height:1.2}.camp-backdrop,.camp-character .character-doll{pointer-events:none}.camp-character:active{transform:translate(-50%,-92%)}.camp-pet:active{transform:translate(-50%,-100%)}.camp-pet.empty:active{transform:translate(-50%,-80%)}.camp-aura{position:absolute;width:130%;height:auto;left:-15%;top:-20%;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 5px #ffd893) drop-shadow(0 0 13px #fb765e);opacity:.5;transition:opacity .4s}.camp-character.active .camp-aura,.camp-character:hover .camp-aura{opacity:.85}.camp-aura.ground{top:auto;bottom:8%;width:125%;left:-12.5%;transform:translateY(50%) scaleY(.3);opacity:.9}.camp-character .character-doll{position:relative}.aura-glow{fill:#c746482b;stroke:#ffd9a0;stroke-width:1;opacity:.8}.aura-ring{transform-origin:100px 100px;animation:camp-aura-turn 14s linear infinite}.camp-aura.ground .aura-ring{animation-direction:reverse}.aura-edge{fill:#dd53594a;stroke:#ffe2b0;stroke-width:2.5}.aura-inner{fill:#7f313831;stroke:#fff2c5;stroke-width:1.4}.aura-dashes{fill:none;stroke:#fff0bd;stroke-width:3;stroke-dasharray:2 7;opacity:.75}.aura-mark,.aura-glyph{fill:#fff2c7}.aura-glyph{opacity:.8}.aura-star{fill:none;stroke:#ffdbb0;stroke-width:1;opacity:.55}@keyframes camp-aura-turn{to{transform:rotate(360deg)}}.hero-ground{position:absolute;left:50%;bottom:8%;width:95%;aspect-ratio:3 / 1;transform:translate(-50%,50%);border-radius:50%;background:radial-gradient(closest-side,#fff6d0d0,#ffd77a80 45%,#ffb34f26 75%,transparent);box-shadow:0 0 0 .25cqw #ffe7a866,0 0 2cqw #ffcf6a88;animation:hero-ground-pulse 3s ease-in-out infinite}@keyframes hero-ground-pulse{50%{opacity:.7}}.camp-sparkles{position:absolute;inset:0;pointer-events:none;filter:drop-shadow(0 0 .15cqw #a0560f) drop-shadow(0 0 .6cqw #ffb84d)}.camp-sparkle{position:absolute;width:var(--spark);aspect-ratio:1;margin:calc(var(--spark) / -2);clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);background:linear-gradient(#fffbe8,#ffd36b);opacity:0;animation:camp-sparkle 3.6s ease-in-out infinite}@keyframes camp-sparkle{40%{opacity:1;transform:translateY(-1cqw) scale(1) rotate(45deg)}70%{opacity:.6;transform:translateY(-2cqw) scale(.6) rotate(90deg)}0%,to{opacity:0;transform:scale(.2)}}@media(prefers-reduced-motion:reduce){.aura-ring,.hero-ground{animation:none}.camp-sparkle{animation:none;opacity:.8}}.spot{position:absolute;left:50%;bottom:var(--feet, 0%);width:130%;aspect-ratio:1 / 2;transform:translate(-50%,7.5%);opacity:0;transition:opacity .35s;pointer-events:none}.camp-character{--feet: 8%}.camp-pet .spot{width:120%}.spot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.camp-actor:is(:hover,:focus-visible,.active) .spot{opacity:1}.spot-haze{opacity:.3}.spot-mote{position:absolute;width:var(--mote);aspect-ratio:1;margin:calc(var(--mote) / -2);border-radius:50%;background:radial-gradient(closest-side,#fffdf0,#ffe9a8aa 55%,transparent);opacity:0;animation:spot-mote 6s ease-in-out infinite paused}.spot-mote.glint{width:calc(var(--mote) * 1.8);margin:calc(var(--mote) * -.9);border-radius:0;clip-path:polygon(50% 0,61% 39%,100% 50%,61% 61%,50% 100%,39% 61%,0 50%,39% 39%);background:linear-gradient(#fffbe8,#ffd36b)}.camp-actor:is(:hover,:focus-visible,.active) .spot-mote{animation-play-state:running}@keyframes spot-mote{0%{opacity:0;transform:translate(0) scale(.6)}30%{opacity:.95}70%{opacity:.7}to{opacity:0;transform:translate(var(--drift),-6cqw) scale(1) rotate(90deg)}}@media(prefers-reduced-motion:reduce){.spot-mote{animation:none;opacity:.7}}.camp-label{position:absolute;left:50%;bottom:100%;z-index:1;display:grid;justify-items:center;padding:.3cqw 1cqw;border:.18cqw solid #e9b44a;border-radius:.8cqw;background:linear-gradient(#5a3415eb,#2e1a09eb);box-shadow:0 .3cqw .8cqw #0007;color:#fff3d0;font-size:max(12px,1.2cqw);font-weight:900;line-height:1.25;white-space:nowrap;text-shadow:0 1px 1px #000;opacity:0;transform:translate(-50%,.6cqw);transition:opacity .2s,transform .2s;pointer-events:none}.camp-character .camp-label{bottom:96%}.camp-label small{color:#ffe39a;font-size:max(10px,.9cqw);font-weight:700}.camp-actor:is(:hover,:focus-visible) .camp-label{opacity:1;transform:translate(-50%,-.3cqw)}.camp-backdrop{transition:filter .35s}.camp-stage:has(.camp-actor:hover,.camp-actor:focus-visible) .camp-backdrop{filter:brightness(.6) saturate(.8)}@media(max-width:600px)and (orientation:portrait){.game .camp{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.camp .camp-toolbar{position:static;order:-1;box-sizing:border-box;width:100%;padding:12px}.camp .camp-viewport{flex:none}}.arena-choice{display:grid;justify-items:center;gap:12px;text-align:center}.arena-choice-emblem{display:grid;place-items:center;width:78px;height:78px;border:3px solid #a76b31;border-radius:50%;background:radial-gradient(circle at 35% 25%,#ffe79a,#cf7a2f);box-shadow:inset 0 0 0 4px #fce3a6,0 4px #70421e;color:#6c351d;font-size:42px}.arena-choice p{margin:4px 0;color:#765033}.arena-choice .game-button{width:min(100%,320px)}.arena-choice .game-button small{display:block;font-size:12px}.arena-board-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.arena-eyebrow{color:#987042;font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.12em}.arena-empty-note{padding:44px 12px;text-align:center;border:2px dashed #d9bb85;border-radius:12px}.arena-empty-slot{min-height:92px;display:grid;place-items:center;border:2px dashed #d7bb88;border-radius:16px;background:#fff2d9b3;color:#83684a}@media(max-width:700px){.arena-board-head,.arena-room-layout .room-list li{flex-wrap:wrap}}:root{font-family:Nunito,system-ui,sans-serif;color:#46443f;background:#f1eee6;font-synthesis:none;font-weight:600;--green: #597b56;--muted: #7e8175;--cream: #faf8f1}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}button{cursor:pointer;min-height:44px;border:1px solid #dedfd3;border-radius:14px;background:#fffdf7;color:inherit;padding:10px 16px;transition:transform .15s,background .15s}button:hover{background:#f1f2e7}button:active{transform:scale(.98)}button:disabled{opacity:.6;cursor:default}button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #bd95c5;outline-offset:3px}h1{font-size:clamp(26px,5vw,36px);line-height:1.2;letter-spacing:-1px;margin:10px 0 14px;font-weight:900}h2{font-size:21px;margin:12px 0}p{line-height:1.65;margin:8px 0;color:#74776a}.app-shell{max-width:840px;margin:auto;background:var(--cream);min-height:100dvh;padding-bottom:100px;box-shadow:0 0 80px #5e70500b}header{height:86px;padding:0 32px;border-bottom:1px solid #e9e7dd;display:flex;align-items:center;justify-content:space-between;gap:10px}.brand{font-weight:900;border:0;background:none;padding:0;font-size:21px;letter-spacing:-.7px;color:var(--green)}.xp-pill{border:1px solid #e5dbc2;background:#fbf2da;border-radius:20px;padding:7px 12px;font-size:13px}main{padding:28px 32px}.eyebrow{font-size:11px;letter-spacing:2px;font-weight:900;color:#7f916f}.page-heading{margin-bottom:28px}.page-heading>p:last-child{max-width:470px;font-size:14px}.adventure-card{position:relative;border:1px solid #dce3cc;border-radius:28px;padding:24px;background:linear-gradient(145deg,#eff2df,#e1ebd7);text-align:center;overflow:hidden}.adventure-card .badge{position:absolute;left:22px;top:22px}.badge{display:inline-block;border:1px solid #d4ddc9;border-radius:20px;background:#f8faefb0;padding:6px 12px;font-size:10px;letter-spacing:1px;font-weight:800}.garden{height:180px;position:relative;display:flex;align-items:center;justify-content:center}.garden:before{content:"";position:absolute;border-radius:50%;width:200px;height:200px;background:#ffffff40;top:10px}.pet-portrait{width:170px;height:160px;position:relative;transition:transform .3s}img.pet-portrait{object-fit:contain}.pet-portrait.small{width:76px;height:72px;flex-shrink:0}.spark{position:absolute;font-size:30px;color:#bca76b}.s1{left:22%;top:55px}.s2{right:23%;top:105px}.adventure-card h2{font-size:27px;letter-spacing:-.5px}.adventure-card p{font-size:14px;margin-bottom:23px}.primary{background:var(--green);border-color:var(--green);color:#fff;font-weight:800;min-height:52px;box-shadow:0 4px #435f41}.primary:hover{background:#496c47}.adventure-card .primary{width:100%;max-width:350px}.section-title{display:flex;justify-content:space-between;align-items:center;margin-top:22px;gap:12px}.section-title h2{font-size:18px}.text-button{border:0;background:none;color:var(--green);font-size:13px}.companion-card{width:100%;display:flex;align-items:center;text-align:left;gap:12px;border-radius:20px;padding:10px 16px}.companion-card>div{flex:1}.companion-card strong{font-size:17px}.companion-card p{font-size:12px}.companion-card>span{font-size:12px;color:var(--green)}.tip{display:flex;align-items:center;gap:14px;margin:23px 4px}.tip>span{font-size:28px;color:#a997ae}.tip p{font-size:12px}.app-shell>nav{position:fixed;bottom:0;left:50%;transform:translate(-50%);width:min(100%,840px);padding:10px 20px max(12px,env(safe-area-inset-bottom));display:flex;justify-content:space-around;background:#faf8f1f5;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid #e7e5dc;z-index:5}nav button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11px;border:0;background:none;min-width:65px;color:#909183}nav button>span{font-size:22px}nav button.active{background:#e7eddf;color:var(--green)}.welcome{min-height:100dvh;max-width:600px;margin:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px;background:radial-gradient(ellipse,#e8efdc,#faf8f1)}.welcome h1{font-size:48px;color:var(--green)}.welcome .primary{width:100%;max-width:320px}.brand-mark{font-size:72px;color:#829e6d}.welcome-pets{font-size:58px;padding:30px 0}.welcome .muted{font-size:12px;margin-top:20px}.pet-list{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.pet-card{padding:18px 10px;border-radius:24px;text-align:center}.pet-card .pet-portrait{width:100%;max-width:160px}.pet-card.selected{border:2px solid #88a57b;background:#eef2e5}.pet-card p{font-size:12px;min-height:40px}.selection-label{display:block;font-size:12px;color:var(--green);margin-top:15px}.panel{background:#fffdf8;border:1px solid #e5e2d8;border-radius:24px;padding:24px}.panel label{display:flex;align-items:center;justify-content:space-between;gap:15px;min-height:64px;border-bottom:1px solid #eeece4;font-size:14px}.panel label:last-of-type{margin-bottom:20px}.panel small{display:block;font-size:11px;max-width:270px;color:var(--muted);margin-top:5px}select{max-width:55%;border:1px solid #daddce;border-radius:12px;padding:10px;background:#f7f8ef;color:inherit;min-height:44px}input[type=checkbox]{width:24px;height:24px;accent-color:var(--green)}input[type=color]{border:0;width:55px;height:44px;background:none}.panel>.primary{width:100%}.doll-stage{background:radial-gradient(ellipse,#e9e0ef,#f5f0e8);border-radius:28px;text-align:center;padding:20px}.character-doll{width:220px;height:260px}.animation-tabs{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0}.animation-tabs button{font-size:11px;flex:1;padding:8px}.animation-tabs [aria-pressed=true]{background:#e6dcf0}.animation-idle{animation:bob 2s ease-in-out infinite}.animation-idle .bone-head{animation:nod 4s ease-in-out infinite}.animation-idle .bone-upperArmBack{animation:sway 4s ease-in-out infinite}.animation-idle .bone-upperArmFront{animation:sway 4s ease-in-out infinite reverse}.animation-idle .layer-eyeLeft,.animation-idle .layer-eyeRight,.animation-blink .layer-eyeLeft,.animation-blink .layer-eyeRight{animation:blink 4s infinite}.animation-attack .bone-upperArmFront{animation:swing-shoulder .7s ease-in-out infinite}.character-doll.animation-attack,.character-doll.animation-victory{overflow:visible}.animation-attack .bone-forearmFront{animation:swing-elbow .7s ease-in-out infinite}.animation-attack .bone-handFront{animation:swing-wrist .7s ease-in-out infinite}.animation-attack .bone-torso{animation:lunge .7s ease-in-out infinite}.animation-hit{animation:shake .35s infinite}.animation-hit .bone-head{animation:flinch .35s infinite}.animation-hit .bone-upperArmBack{animation:flail-back .35s infinite}.animation-victory{animation:jump .7s infinite}.animation-victory .bone-upperArmBack{animation:cheer-back .7s ease-in-out infinite}.animation-victory .bone-upperArmFront{animation:cheer-front .7s ease-in-out infinite}.animation-victory .bone-forearmFront{animation:cheer-elbow .7s ease-in-out infinite}.animation-victory .bone-handFront{animation:cheer-wrist .7s ease-in-out infinite}@keyframes nod{50%{transform:rotate(-3deg)}}@keyframes sway{50%{transform:rotate(5deg)}}@keyframes swing-shoulder{45%{transform:rotate(-80deg)}70%{transform:rotate(15deg)}}@keyframes swing-elbow{45%{transform:rotate(-40deg)}70%{transform:rotate(10deg)}}@keyframes swing-wrist{45%{transform:rotate(130deg)}70%{transform:rotate(0)}}@keyframes lunge{45%{transform:rotate(-4deg)}70%{transform:rotate(5deg)}}@keyframes flinch{50%{transform:rotate(9deg)}}@keyframes flail-back{50%{transform:rotate(35deg)}}@keyframes cheer-back{50%{transform:rotate(110deg)}}@keyframes cheer-front{50%{transform:rotate(-120deg)}}@keyframes cheer-elbow{50%{transform:rotate(-30deg)}}@keyframes cheer-wrist{50%{transform:rotate(160deg)}}.hp-row{display:flex;justify-content:space-between;gap:32px;margin:12px 0}.hp-row label{width:45%;font-size:12px}.hp-row label:last-child{text-align:right}meter{display:block;width:100%;height:17px;accent-color:#86ae75}meter::-webkit-meter-optimum-value{background:#92b77e}meter::-webkit-meter-bar{background:#e8e5dc;border:0}.hp-row small{font-size:10px;color:#929386}.battle-canvas{width:100%;aspect-ratio:440/280;border-radius:24px;overflow:hidden}.battle-canvas canvas{display:block}.question-card{position:relative;margin-top:16px;background:#fff;border:1px solid #e5e2d8;border-radius:24px;padding:22px}.question-meta{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--green)}.question-meta>span:nth-child(2){margin-left:auto}.timer{width:40px;height:40px;border-radius:50%;display:grid;place-items:center}.timer b{width:32px;height:32px;display:grid;place-items:center;background:#fff;border-radius:50%;font-size:14px}.question-card h2{font-size:23px;margin:17px 0 22px}.answers{display:grid;grid-template-columns:1fr 1fr;gap:10px}.answers button{display:flex;align-items:center;text-align:left;gap:9px;min-height:66px;font-size:13px;padding:10px;background:#faf9f4}.answers button>span{border-radius:8px;background:#ecebdf;min-width:24px;height:26px;text-align:center;padding-top:4px;font-size:11px}.answers button.correct{background:#e6f2dd;border-color:#83a875;opacity:1}.special{width:100%;margin-top:14px;background:#f4edf8;border-color:#e4d6ee;color:#866393;font-size:12px}.special[aria-pressed=true]{background:#e5d5ef}.feedback{margin-top:16px;border:1px solid #e5dcbf;background:#fcf5df;border-radius:18px;padding:16px;font-size:13px}.feedback.good{background:#edf6e7;border-color:#c5dabb}.feedback p{font-size:12px}.result{text-align:center;margin-top:20px}.result strong{display:block;font-size:24px;color:var(--green);margin:20px}.result-flower{font-size:48px;color:#96ad77}.battle-intro{text-align:center;margin-top:40px}.battle-intro p{margin:24px 0}.battle-intro button{display:block;width:100%;margin-top:16px}@keyframes bob{50%{transform:translateY(-5px)}}@keyframes blink{48%,54%{transform:scaleY(1);filter:brightness(1)}50%{transform:scaleY(.08);filter:brightness(0)}}@keyframes swing{50%{transform:rotate(-35deg)}}@keyframes shake{25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes jump{50%{transform:translateY(-15px) rotate(4deg)}}@media(max-width:520px){.app-shell:has(.battle-stage){padding-bottom:24px}.app-shell:has(.battle-stage) main{padding-top:8px}.battle-stage .battle-canvas{max-height:175px}.battle-stage .battle-character .character-doll{width:65px;height:80px}header{padding:0 20px;height:72px}main{padding:24px 20px}.brand{font-size:19px}.adventure-card{padding:20px}.garden{height:170px}.pet-list{grid-template-columns:1fr}.pet-card{display:grid;grid-template-columns:100px 1fr;text-align:left;column-gap:15px}.pet-card .pet-portrait{grid-row:1/7;width:100px;height:120px}.pet-card h2{margin:0 0 10px}.pet-card p{min-height:0;margin:7px 0}.pet-card .badge{justify-self:start}.selection-label{margin-top:7px}.question-card{padding:16px}.answers{grid-template-columns:1fr}.answers button{min-height:52px}.battle-canvas{max-height:240px}.question-card h2{font-size:20px;margin:12px 0 16px}.welcome h1{font-size:40px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}.battle-stage{position:relative}.battle-character{position:absolute;z-index:1;left:0;bottom:9%;pointer-events:none}.battle-character .character-doll{width:80px;height:100px}.mode-grid,.shop-grid,.fighters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:22px 0}.mode-grid button{min-height:76px}.mode-grid small{display:block;font-size:11px;color:var(--muted);margin-top:8px}.quest,.push-settings{margin-bottom:16px}.quest progress{width:100%;accent-color:var(--green)}.account-panel{width:100%;text-align:left}.account-panel input,.panel input:not([type=checkbox]):not([type=color]){min-width:0;width:60%;min-height:44px;border:1px solid #daddce;border-radius:10px;padding:8px;background:#fffdf9;color:inherit}.account-panel button{margin-top:12px}.account-panel form button{width:100%}.recovery-code{color:#2c1d14;display:block;overflow-wrap:anywhere;-webkit-user-select:all;user-select:all;padding:16px;background:#f1e8d8;border-radius:12px}.fighter{background:#f2f3e9;border:1px solid #dddfd0;border-radius:20px;text-align:center;padding:12px}.fighter.me{border-color:#7d9e73}.fighter .pet-portrait{display:block;margin:auto}.fighter p,.fighter small{font-size:11px;margin:4px 0}.boss{background:#eee4f5;border-radius:20px;padding:14px;text-align:center}.question-audio button{width:100%;margin-bottom:14px}.shop-grid h3{margin-top:0}.push-settings button{margin-right:8px;margin-top:8px}.panel>button{margin-right:8px;margin-bottom:8px}.auth-panel{display:grid;gap:10px;text-align:left}.auth-panel h2{margin:0}.auth-panel form{display:grid;gap:10px}.auth-panel label{display:grid;gap:4px;font-size:14px}.auth-panel input:not([type=checkbox]){width:100%;min-height:44px;border:1px solid #c9a76a;border-radius:10px;padding:8px 10px;background:#fffaf0;color:#2c1d14;font:inherit}.auth-panel .auth-remember{display:flex;align-items:center;gap:8px;min-height:44px}.auth-panel .auth-remember input{width:20px;height:20px;accent-color:#e8a33d}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;border-radius:12px;padding:4px;background:#0000002e}.auth-tabs button{min-height:40px;border:0;border-radius:9px;background:none;color:inherit;font:inherit;font-weight:700;cursor:pointer}.auth-tabs [aria-pressed=true]{background:#f7d68a;color:#3b2514}.auth-hint,.auth-error{margin:0;font-size:13px;line-height:1.4}.auth-panel .google-button{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;background:#fff;color:#1f1f1f}.google-mark{width:20px;height:20px}.auth-divider{display:flex;align-items:center;gap:10px;margin:0;font-size:13px;opacity:.8}.auth-divider:before,.auth-divider:after{content:"";flex:1;border-top:1px solid currentColor;opacity:.4}.auth-links{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px}.link-button{min-height:44px;border:0;background:none;color:inherit;font:inherit;font-size:14px;text-decoration:underline;cursor:pointer}.title-actions .auth-panel .game-button{width:100%}.title-actions .auth-panel{color:#fff1c2}.auth-tabs button:hover:not([aria-pressed=true]){background:#ffffff1f}.auth-tabs button:not([aria-pressed=true]){color:inherit;opacity:.85}.auth-panel .google-button:hover{background:#f3f3f3}.panel .auth-panel label{display:grid;justify-content:stretch;gap:4px;min-height:0;margin-bottom:0;border-bottom:0}.panel .auth-panel .auth-remember{display:flex;justify-content:flex-start}.panel .auth-panel input:not([type=checkbox]):not([type=color]){width:100%}.title-actions .auth-panel input:not([type=checkbox]){background:#fffaf0e6}.title-actions .auth-tabs{background:#00000040}.auth-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.auth-row .link-button{min-height:44px;padding:0}.auth-panel .guest-button{width:100%;background:#ffffff1f;border:1px solid #f7d68a99;color:inherit}.auth-panel .guest-button:hover{background:#fff3}.auth-note{margin:-4px 0 0;font-size:12px;text-align:center;text-shadow:0 1px 2px #000a}.title-actions .auth-error{padding:6px 10px;border-radius:8px;background:#7a1f1f99}.title-actions .auth-divider{opacity:1;text-shadow:0 1px 2px #000a}.title-actions .auth-hint{text-shadow:0 1px 2px #000a}.auth-panel{gap:12px}.account-panel .auth-panel button{margin-top:0}.auth-heading{display:flex;align-items:center;gap:12px;padding:2px 2px 5px}.auth-heading h2{font-size:19px;line-height:1.2}.auth-heading p{margin:4px 0 0;font-size:12px;line-height:1.4;opacity:.88}.auth-emblem{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border:2px solid #d79d49;border-radius:14px;color:#fff1b6;background:radial-gradient(circle at 35% 25%,#55cee1,#286b99 65%,#26436e);box-shadow:inset 0 1px 2px #fff9,0 3px #75421f;font-size:25px;text-shadow:0 2px 3px #143a60}.auth-section-title{margin:0;font-size:16px}.auth-panel form{gap:11px}.auth-panel label{gap:5px;font-size:13px;font-weight:700}.auth-panel label small{font-size:12px;font-weight:400;opacity:.88}.auth-panel input:not([type=checkbox]){min-height:46px;padding:10px 12px;border:1px solid #bd925f;border-radius:10px;background:#fffaf0;box-shadow:inset 0 2px 4px #69432112}.auth-panel input:focus-visible{outline:3px solid #58b9ce;outline-offset:2px;border-color:#235d7b}.auth-tabs{gap:3px;padding:4px;border:1px solid #b98d5680;background:#3d2b2438}.auth-tabs button{min-height:44px;transition:background-color .12s ease}.auth-tabs [aria-pressed=true]{background:linear-gradient(#ffe4a8,#e9b75e);box-shadow:0 2px 4px #2b190c45,inset 0 1px #fff8}.auth-panel button:focus-visible{outline:3px solid #58b9ce;outline-offset:2px}.auth-panel .google-button{min-height:46px;border:1px solid #d6c7ad;border-radius:10px;box-shadow:0 3px #9c8265}.title-actions .auth-heading h2{color:#fff3ce;text-shadow:0 2px 2px #2b1813}.title-actions .auth-heading p,.title-actions .auth-divider,.title-actions .auth-hint{color:#fff2d2;opacity:1}.title-actions .auth-tabs{background:#1b202dd9;border-color:#f4d59b55}.title-actions .auth-panel input:not([type=checkbox]){background:#fffaf2}.title-actions .auth-row .link-button{color:#ffe4a3;text-decoration-color:#ffdaa28a;text-underline-offset:3px}@media(prefers-reduced-motion:reduce){.auth-tabs button{transition:none}}:root{--wood-dark: #3e2410;--wood: #7a4a24;--wood-light: #a8723e;--parchment: #f8ecd0;--parchment-dark: #ead3a2;--gold: #f2c14e;--gold-dark: #a8691a;--ink: #4a2a14;--hud-height: 64px}body:has(.game),body:has(.title-screen){background:var(--wood-dark);overflow:hidden}.game header,.title-screen header{height:auto;padding:0;border:0}.game main,main.title-screen{padding:0}.stroked{color:#fff;text-shadow:0 2px 0 var(--wood-dark),0 0 4px var(--wood-dark)}.game-button{min-height:44px;padding:8px 20px;border:2px solid var(--wood);border-radius:12px;background:linear-gradient(#fff6de,#efd7a4);color:var(--ink);font-weight:900;box-shadow:inset 0 -3px #0000001f,0 2px 0 var(--wood-dark)}.game-button:hover{background:linear-gradient(#fffaf0,#f6e2b6)}.game-button.primary{background:linear-gradient(#ffd66b,#f08a2c);border-color:#8a3f10;color:#fff;text-shadow:0 1px 0 #8a3f10}.game-button.primary:hover{background:linear-gradient(#ffe08a,#f59a44)}.game-button.big{padding:12px 32px;font-size:18px}.game-button.small{padding:6px 14px;font-size:14px}.game-button[aria-pressed=true]{background:linear-gradient(#ffe9a8,#f2c14e);border-color:var(--gold-dark)}.title-screen{min-height:100dvh;display:grid;place-items:center;background:linear-gradient(#0000,#0004),url(/assets/placeholders/lobby/world.svg) center / cover}.title-card{width:min(520px,92vw);padding:32px 36px;text-align:center;background:linear-gradient(#a8723e,#7a4a24);border:4px solid var(--wood-dark);border-radius:24px;box-shadow:inset 0 0 0 3px var(--gold),0 20px 60px #0007;display:grid;gap:12px}.title-tagline{margin:0;color:var(--gold);letter-spacing:4px;font-weight:900}.title-logo{margin:0;font-size:clamp(40px,6vw,64px);color:#fff3c4;text-shadow:0 4px 0 var(--wood-dark),0 0 12px #ffb340}.title-copy,.title-note{color:#fbe9c4;margin:0}.title-note{font-size:13px;opacity:.85}.game{height:100dvh;display:grid;grid-template-rows:var(--hud-height) 1fr;grid-template-columns:minmax(0,1fr);color:var(--ink)}.game-main{position:relative;overflow:auto;min-height:0}.hud{display:flex;align-items:center;gap:12px;padding:0 16px!important;background:linear-gradient(#8a5a2e,#5e3618);border-bottom:3px solid var(--gold)!important;box-shadow:0 4px 12px #0006;z-index:30}.hud-profile{display:flex;align-items:center;gap:10px;border:0;background:none;padding:0;color:#fff}.hud-profile:hover{background:none}.hud-avatar{width:48px;height:48px;border-radius:50%;border:3px solid var(--gold);background:radial-gradient(#fff6de,#e9c98a);overflow:hidden;position:relative}.hud-avatar .character-doll{position:absolute;width:74px;height:86px;left:-13px;top:-6px;animation:none}.hud-xp,.hud-currency{padding:5px 12px;border-radius:20px;background:#0000004d;border:1px solid #ffffff33;color:#fff3c4;font-weight:900;font-size:14px;white-space:nowrap}.hud-currency span{color:var(--gold);margin-right:6px}.hud-nav{margin-left:auto;display:flex;gap:8px}.hud-nav button{min-height:44px;border:2px solid var(--wood-dark);border-radius:12px;background:linear-gradient(#ffe9b0,#e9b85c);color:var(--ink);font-weight:900;font-size:14px;padding:6px 14px}.hud-nav button span{margin-right:6px}.hud-nav button.active{background:linear-gradient(#fff6d6,#f2c14e);box-shadow:0 0 0 2px #fff6}.game.immersive .hud-nav button:not(:first-child){display:none}.lobby{height:100%;display:grid;place-items:center;background:linear-gradient(#7cc6f0 0 45%,#5ea33c 45%)}.lobby-world{position:relative;width:min(100%,calc((100dvh - var(--hud-height)) * 16 / 9));aspect-ratio:16 / 9;container-type:inline-size;overflow:hidden}.lobby-map{position:absolute;inset:0;width:100%;height:100%}.building{position:absolute;transform:translate(-50%,-50%);border:0;background:none;padding:0;min-height:0;display:grid;justify-items:center;transition:transform .25s,filter .25s}.building:hover,.building:focus-visible{background:none;transform:translate(-50%,-53%) scale(1.05);filter:drop-shadow(0 0 1.2cqw #fff6b0)}.building img{width:100%;filter:drop-shadow(0 .6cqw .6cqw #0005)}.plaque{margin-top:-1.5cqw;padding:.5cqw 1.6cqw;display:grid;background:linear-gradient(#a8723e,#6e3f1d);border:.3cqw solid var(--wood-dark);border-radius:1cqw;box-shadow:inset 0 0 0 .2cqw var(--gold)}.plaque strong{font-size:max(16px,2cqw);color:#fff3c4;text-shadow:0 2px 0 var(--wood-dark)}.plaque small{font-size:max(11px,1cqw);color:#f6dfae}.window-backdrop{position:absolute;inset:0;z-index:20;display:grid;place-items:center;background:#1a0d0466}.game-window{width:min(780px,94%);max-height:90%;overflow:auto;background:var(--parchment);border:5px solid var(--wood);border-radius:20px;box-shadow:inset 0 0 0 3px var(--gold),0 24px 60px #0008}.window-title{position:sticky;top:0;z-index:2;display:flex;align-items:center;justify-content:space-between;padding:10px 16px!important;background:linear-gradient(#a8723e,#6e3f1d);border-bottom:3px solid var(--gold)!important}.window-title h1{margin:0;font-size:24px;color:#fff3c4;text-shadow:0 2px 0 var(--wood-dark)}.window-close{min-width:44px;min-height:44px;border-radius:50%;border:2px solid #7a1a1a;background:linear-gradient(#ff8a7a,#d0453a);color:#fff;font-weight:900;padding:0}.window-close:hover{background:linear-gradient(#ff9d8f,#e05548)}.window-body{padding:18px 24px 24px}.window-body .page-heading h1{display:none}.window-body .panel{background:#fffaf0}.element-badge{display:inline-block;padding:1px 9px;border-radius:10px;color:#fff;font-size:12px;font-weight:900;text-shadow:0 1px 0 #0006;vertical-align:middle}.pet-sprite{position:absolute;width:var(--cell);height:var(--cell);left:calc(50% - var(--cell) * var(--anchor-x));top:calc(100% - var(--cell) * var(--anchor-y));overflow:hidden;pointer-events:none}.pet-sprite.flip{transform:scaleX(-1)}.pet-sprite .pet-portrait{width:100%;height:100%}.pet-sprite-strip{display:block;width:calc(var(--frames) * 100%);height:100%;background-size:100% 100%;animation:sprite-strip var(--duration) steps(var(--frames)) infinite}@keyframes sprite-strip{to{transform:translate(-100%)}}@media(prefers-reduced-motion:reduce){.pet-sprite-strip{animation:none}}.camp{position:relative;height:100%;display:grid;place-items:center;background:#2b1a0e;overflow:hidden}.camp-viewport{position:relative;width:min(100%,calc((100dvh - var(--hud-height)) * 680 / 383));aspect-ratio:680 / 383;overflow:hidden;container-type:inline-size}.camp-stage{position:absolute;inset:0;transform-origin:0 0;transition:transform .6s cubic-bezier(.2,.8,.2,1)}.camp-backdrop{position:absolute;inset:0;width:100%;height:100%}.camp-dismiss{position:absolute;inset:0;z-index:1;border:0;background:none;min-height:0;cursor:zoom-out}.camp-dismiss:hover{background:none}.camp-actor{position:absolute;z-index:2;border:0;background:none;padding:0;min-height:0;transition:filter .2s,opacity .3s}.camp-actor:hover,.camp-actor:focus-visible,.camp-actor.active{background:none}.camp-actor:is(:hover,:focus-visible,.active) :is(.character-doll,.pet-sprite,.camp-plus){filter:drop-shadow(0 0 .5cqw #fff6a0) drop-shadow(0 0 .5cqw #fff6a0)}.camp.zoomed .camp-actor:not(.active){opacity:.6}.camp-character{width:20cqw;transform:translate(-50%,-92%)}.camp-character .character-doll{width:100%;height:auto;aspect-ratio:180 / 210;display:block}.camp-pet{width:16cqw;height:16cqw;transform:translate(-50%,-100%)}.camp-pet.empty{width:8cqw;height:5cqw;transform:translate(-50%,-80%)}.camp-plus{display:grid;place-items:center;width:100%;height:100%;border:.3cqw dashed #fff;border-radius:50%;color:#fff;font-size:3cqw;font-weight:900;text-shadow:0 1px 2px #0008}.camp-toolbar{position:absolute;top:12px;left:12px;right:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px;pointer-events:none}.camp-toolbar>*{pointer-events:auto}.camp-title{padding:6px 16px;border-radius:12px;background:linear-gradient(#a8723e,#6e3f1d);border:2px solid var(--gold);color:#fff3c4;font-size:20px;font-weight:900;text-shadow:0 2px 0 var(--wood-dark)}.camp-hint{padding:6px 12px;border-radius:12px;background:#0000006b;color:#fff;font-size:13px}.camp-panel{position:absolute;top:16px;right:16px;bottom:16px;width:min(400px,40%);overflow:auto;z-index:5;background:var(--parchment);border:5px solid var(--wood);border-radius:20px;box-shadow:inset 0 0 0 3px var(--gold),0 20px 50px #0009;animation:panel-in .4s cubic-bezier(.2,.8,.2,1)}.camp-panel>.window-close{position:sticky;top:10px;float:right;margin:10px 10px 0 0;z-index:3}@keyframes panel-in{0%{transform:translate(110%)}}.panel-content{padding:18px 22px 22px}.panel-content h2{margin:4px 0 12px;font-size:26px}.panel-content h3{margin:18px 0 8px;font-size:16px;color:var(--wood)}.panel-kicker{margin:0;font-size:12px;letter-spacing:2px;font-weight:900;color:var(--gold-dark);text-transform:uppercase}.gear-group{border:2px solid var(--parchment-dark);border-radius:14px;margin:0 0 12px;padding:8px 12px 12px}.gear-group legend{font-weight:900;color:var(--wood);padding:0 6px}.gear-row{display:grid;gap:4px;margin-top:8px}.gear-label{font-size:13px;color:var(--wood)}.gear-options{display:flex;flex-wrap:wrap;gap:6px}.gear-chip{min-height:44px;padding:6px 12px;border:2px solid var(--parchment-dark);border-radius:12px;background:#fffaf0;font-size:14px}.gear-chip[aria-pressed=true]{border-color:var(--gold-dark);background:linear-gradient(#fff3c4,#f6d77a);font-weight:900}.color-row{display:flex;gap:16px;flex-wrap:wrap}.color-row label{display:grid;gap:4px;font-size:13px}.color-row input{width:64px;height:44px;border:2px solid var(--parchment-dark);border-radius:10px;background:#fff}.pet-heading{display:flex;gap:12px;align-items:center}.level-tag{font-size:13px;font-weight:900;color:var(--wood)}.stat-grid{display:grid;grid-template-columns:auto 1fr;gap:6px 16px;margin:14px 0 0;padding:10px 14px;border-radius:12px;background:#fffaf0;border:2px solid var(--parchment-dark)}.stat-grid dt{color:var(--wood)}.stat-grid dd{margin:0;font-weight:900}.skill-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.skill-list li{display:grid;gap:2px;padding:8px 12px;border-radius:12px;background:#fffaf0;border-left:4px solid var(--gold)}.skill-list span{font-size:13px;color:#6b5a44}.matchup{line-height:2.2}.team-actions,.card-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.bench{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.bench-pet{display:grid;justify-items:center;gap:4px;padding:8px;border:2px solid var(--parchment-dark);border-radius:14px;background:#fffaf0}.bench-pet .pet-portrait.small{width:64px;height:58px}.mode-screen{min-height:100%;padding:20px 28px 40px;background:radial-gradient(circle at 50% 0,#6b3f1f,#2b1a0e 70%) fixed}.mode-header{display:flex!important;flex-wrap:wrap;align-items:center;gap:16px;margin-bottom:18px}.mode-header h1{margin:0;color:#fff3c4;text-shadow:0 3px 0 #000,0 0 10px #ffb340}.room-code{margin-left:auto;color:#fff3c4;font-weight:900}.team-strip{margin-left:auto;display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:16px;background:#0000004d;border:1px solid #ffffff2e}.team-strip-label{color:#fff3c4;font-weight:900}.team-strip-pet{display:grid;justify-items:center}.team-strip-pet .pet-portrait.small{width:52px;height:46px}.dungeon-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px}.dungeon-card,.room-board,.arena-actions,.room-lobby,.result-banner,.battle-intro .game-window{background:var(--parchment);border:4px solid var(--wood);border-radius:18px;box-shadow:inset 0 0 0 2px var(--gold),0 10px 30px #0006;padding:18px 20px}.dungeon-card h2{margin:0}.wave-strip{list-style:none;display:flex;gap:8px;padding:0;margin:12px 0 4px}.wave-strip li{display:grid;justify-items:center;gap:2px;padding:6px;border-radius:12px;background:#fffaf0;border:2px solid var(--parchment-dark);font-size:12px;font-weight:900}.wave-strip li.boss{border-color:#c0392b;background:#fff0e8}.wave-strip .pet-portrait.small{width:58px;height:52px}.join-row{display:flex;align-items:end;gap:8px;margin-top:18px;color:#fff3c4}.arena-actions .join-row{color:var(--ink)}.join-row label{display:grid;gap:4px;font-size:13px}.join-row input{min-height:44px;border-radius:10px;border:2px solid var(--wood);padding:0 12px;background:#fffaf0}.arena-layout{display:grid;grid-template-columns:1.4fr 1fr;gap:18px;align-items:start}.arena-actions{display:grid;gap:10px}.arena-actions h2,.room-board h2{margin:0 0 6px}.room-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.room-list li{display:flex;align-items:center;gap:12px;padding:8px 12px;border-radius:12px;background:#fffaf0;border:2px solid var(--parchment-dark)}.room-list code{margin-left:auto;font-size:12px;color:#8a7a60}.empty-note{color:#8a7a60}.sides{display:grid;gap:16px}.sides-2{grid-template-columns:1fr 1fr}.side{display:grid;gap:10px;align-content:start}.side h2{margin:0;color:#fff3c4}.side-1 h2{text-align:right}.fighter{background:var(--parchment);border:3px solid var(--wood);border-radius:16px;padding:10px 14px}.fighter.me{border-color:var(--gold-dark);box-shadow:0 0 0 3px var(--gold)}.fighter.down{opacity:.55}.fighter header{display:flex!important;gap:10px;align-items:baseline}.fighter header .ready{color:#2f7a2f}.fighter-team{list-style:none;padding:0;margin:6px 0 0;display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.fighter-team li{display:grid;justify-items:center;font-size:11px;padding:4px;border-radius:10px;border:2px solid transparent}.fighter-team li.active{border-color:var(--gold);background:#fff6d6}.fighter-team .pet-portrait.small{width:52px;height:46px;margin:0}.room-lobby{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:16px}.room-lobby p{margin:0 auto 0 0}.result-banner{text-align:center;display:grid;gap:6px;justify-items:center;align-content:center}.result-banner h1,.result-banner h2{margin:0;color:var(--gold-dark)}.battle-screen{min-height:100%;padding:14px 24px 28px;background:radial-gradient(circle at 30% 20%,#5b7f3a,#1f2d14 75%)}.battle-top{display:flex!important;align-items:center;gap:18px;padding:8px 14px!important;margin-bottom:12px;border-radius:16px;background:#0000005c;border:1px solid #ffffff2a!important;color:#fff3c4}.wave-progress{display:flex;align-items:center;gap:6px;font-weight:900}.wave-dot{width:14px;height:14px;border-radius:50%;background:#fff3;border:2px solid #fff3c4}.wave-dot.done{background:#8bd06a}.wave-dot.current{background:var(--gold);box-shadow:0 0 8px var(--gold)}.wave-dot.boss{border-color:#ff6b5a;width:18px;height:18px}.enemy-hp{margin-left:auto;width:min(360px,40%);display:grid;gap:2px}.boss-tag{margin-left:6px;padding:0 6px;border-radius:6px;background:#c0392b;color:#fff;font-size:11px}.enemy-hp meter::-webkit-meter-optimum-value{background:#e05548}.battle-main{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(360px,1fr);gap:18px;align-items:start}.battle-screen .battle-stage{border:4px solid var(--wood);border-radius:20px;overflow:hidden;background-color:#b7ceaa;background-position:center;background-size:cover;box-shadow:inset 0 0 0 2px var(--gold),0 12px 30px #0007}.battle-screen .battle-canvas{border-radius:0}.battle-screen .battle-character{left:2%;bottom:6%}.battle-screen .battle-character .character-doll{width:19cqw;height:auto;aspect-ratio:180 / 210}.battle-screen .battle-stage{container-type:inline-size}.battle-screen .question-card,.room-screen .question-card{margin-top:0;background:var(--parchment);border:4px solid var(--wood);box-shadow:inset 0 0 0 2px var(--gold),0 12px 30px #0007}.room-screen .question-card{margin-top:16px}.question-card .question-meta{color:var(--wood);font-size:13px;font-weight:900}.timer-text{font-size:20px;color:var(--gold-dark)}.answers button{background:#fffaf0;border:2px solid var(--parchment-dark);font-size:15px}.answers button:hover:not(:disabled){border-color:var(--gold-dark);background:#fff3c4}.answers button>span{background:var(--wood);color:#fff}.team-picker{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:12px 0 0}.team-slot{display:flex;align-items:center;gap:6px;padding:4px 6px;border:2px solid var(--parchment-dark);border-radius:12px;background:#fffaf0;text-align:left}.team-slot[aria-pressed=true]{border-color:var(--gold-dark);background:linear-gradient(#fff6d6,#f6d77a);box-shadow:0 0 0 2px var(--gold)}.team-slot .pet-portrait.small{width:42px;height:38px;flex-shrink:0}.team-slot-info{display:grid;gap:2px;min-width:0;font-size:11px}.team-slot-info strong{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.team-slot meter{height:8px}.battle-screen .feedback,.room-screen .feedback{background:var(--parchment);border:3px solid var(--wood)}.battle-screen .feedback.good{background:#eef8e4;border-color:#4f8a33}.battle-screen .result-banner{min-height:100%}.battle-intro{display:grid;place-items:center;text-align:left;margin:0}.battle-intro .game-window{padding:0;max-width:640px}.battle-intro .team-strip{margin:12px 0}@media(max-width:900px){.battle-main,.arena-layout,.sides-2{grid-template-columns:1fr}.hud-nav button{font-size:0;padding:6px 12px}.hud-nav button span{font-size:18px;margin:0}.camp-panel{width:auto;left:16px;top:auto;height:55%}}.update-banner{position:fixed;left:50%;bottom:max(16px,env(safe-area-inset-bottom));z-index:1000;display:flex;align-items:center;gap:12px;max-width:calc(100vw - 32px);padding:8px 8px 8px 16px;transform:translate(-50%);border:2px solid var(--gold-dark);border-radius:14px;background:var(--parchment);color:var(--ink);font-weight:700;box-shadow:0 8px 24px #00000059}.update-banner button{min-height:44px;padding:0 16px;border:0;border-radius:10px;background:linear-gradient(var(--gold),var(--gold-dark));color:var(--wood-dark);font:inherit;cursor:pointer}.title-screen{height:100dvh;overflow-y:auto;padding:24px 16px!important;background:radial-gradient(ellipse at 50% 40%,#10204726,#07162c33),url(/assets/title/spirit-duel.webp) center / cover no-repeat,#203d64}.title-card{width:min(530px,100%);padding:0;border:0;border-radius:0;background:none;box-shadow:none;gap:clamp(20px,5vh,64px);justify-items:center;margin:auto}.title-brand{position:relative;width:100%;padding:20px 0 0;text-align:center;isolation:isolate;filter:drop-shadow(0 7px 6px #111d35bb)}.title-brand:before{position:absolute;z-index:-1;inset:5px 0 18px;content:"";background:radial-gradient(ellipse at center,#59c9eb7a 0%,#507bc23d 30%,transparent 69%),linear-gradient(110deg,transparent 30%,#e9faff55 50%,transparent 70%);clip-path:polygon(50% 0,62% 24%,100% 48%,64% 65%,50% 100%,36% 65%,0 48%,38% 24%)}.title-brand:after{position:absolute;top:3px;left:50%;width:15px;height:15px;content:"";border:2px solid #ffe9a6;border-radius:3px;background:linear-gradient(135deg,#e9fdff 5%,#5fe2f5 40%,#3670a7 95%);box-shadow:0 0 0 2px #805020,0 0 15px #8ff3ff;transform:translate(-50%) rotate(45deg)}.title-logo{margin:0;color:#fff0b2;font-family:Georgia,Times New Roman,serif;font-size:clamp(52px,8vw,100px);font-weight:900;line-height:1;letter-spacing:-.055em;-webkit-text-stroke:2px #63351e;paint-order:stroke fill;text-shadow:0 2px 0 #f2ba54,0 4px 0 #bc722e,0 6px 0 #77401f,0 8px 0 #39221e,0 12px 15px #08152f}.title-tagline{display:inline-block;margin:12px 0 0;padding:5px 28px;border-block:1px solid #f3d188;background:linear-gradient(90deg,transparent,#293553e8 14%,#293553ed 86%,transparent);color:#fff1c2;font-size:clamp(13px,1.4vw,17px);letter-spacing:.13em;text-transform:uppercase;text-shadow:0 2px 2px #382116}.title-actions{width:min(385px,100%);display:grid;gap:10px;padding:20px 22px;border:2px solid #dca44fcc;border-radius:18px;background:linear-gradient(#2a1c1a8c,#1b1420a6);backdrop-filter:blur(6px) saturate(1.1);-webkit-backdrop-filter:blur(6px) saturate(1.1);box-shadow:inset 0 0 0 2px #5e432d,0 12px 32px #0c162a99;text-align:center}.title-actions .title-copy{font-size:14px;line-height:1.45}.title-actions .game-button{width:100%}.title-actions .game-button:focus-visible{outline:3px solid #fff3a8;outline-offset:3px}.title-actions [role=alert]{color:#fff1c2;margin:0}.title-screen>.game-window{max-height:calc(100dvh - 48px);overflow-y:auto}@media(min-aspect-ratio:14/10)and (max-aspect-ratio:16/9){.title-screen{background-size:auto,100% 100%,auto}}@media(max-width:600px),(max-height:650px){.title-actions{padding:16px}.title-logo{font-size:clamp(50px,11.5vw,76px)}}@media(max-height:800px){.title-screen{padding-block:12px!important}.title-card{gap:clamp(8px,2vh,20px)}.title-brand{padding-top:14px}.title-logo{font-size:clamp(42px,9vh,72px)}.title-tagline{margin-top:6px;padding:3px 22px;font-size:13px}.title-actions{gap:8px;padding:12px 18px}.title-actions .auth-panel,.title-actions .auth-panel form{gap:8px}.title-actions .auth-panel label{gap:2px}.title-actions .auth-heading{padding:0}}@media(max-height:680px){.title-actions .auth-heading p{display:none}.title-actions .auth-emblem{flex-basis:32px;width:32px;height:32px;border-radius:10px;font-size:19px}}@media(max-width:600px)and (orientation:portrait){.title-screen{place-items:start center;background:linear-gradient(180deg,#12243a00 15%,#172b48 42% 100%),url(/assets/title/spirit-duel.webp) center top / 100% auto no-repeat,#172b48}.title-card{padding-top:clamp(130px,42vw,220px);gap:28px}.title-screen>.game-window{margin:auto 0}}.difficulty-chip{margin-left:auto;padding:3px 12px;border-radius:999px;font-weight:900;background:#4f8a33;color:#fff}.difficulty-chip.normal{background:#2f6fb0}.difficulty-chip.hard{background:#b0552f}.difficulty-chip.nightmare{background:#5a2a7a;box-shadow:0 0 10px #b06bff}.game-main .battle-screen.solo{grid-template:"top" auto "stage" minmax(0,1fr) "dock" auto / minmax(0,1fr)}.battle-screen.solo>.battle-top{grid-area:top;padding:8px clamp(10px,2vw,28px)!important;background:linear-gradient(#140b06c8,#140b0660)}.solo-field{grid-area:stage;position:relative;container-type:size;min-width:0;min-height:0;overflow:hidden;--room: 34px;--chrome: 48px;--pet: max(48px, min(9.5cqw, 50cqh - var(--room) / 2 - var(--chrome) - 14px));--box: calc(var(--pet) + var(--chrome));--big: calc(var(--pet) * 1.45 + var(--chrome));--row-top: calc(var(--room) + var(--box));--row-low: calc(100% - 6px) ;--row-mid: calc((var(--room) + 100% - 6px + var(--box)) / 2);--row-mid-big: calc((var(--room) + 100% - 6px + var(--big)) / 2)}.solo-side{position:absolute;top:0;bottom:0}.solo-allies{left:0;right:50%}.solo-foes{left:50%;right:0}.solo-fighter{--w: var(--pet);--h: var(--pet);position:absolute;z-index:1;display:grid;justify-items:center;gap:3px;min-height:0;padding:0;border:0;background:none;color:#fff;transform:translate(-50%,-100%);transition:filter .4s ease var(--fall, 0s),opacity .4s ease var(--fall, 0s)}.solo-fighter.hero{--w: calc(var(--pet) * 1.2);--h: calc(var(--pet) * 1.45)}.solo-fighter.boss{--w: calc(var(--pet) * 1.45);--h: calc(var(--pet) * 1.45)}.solo-fighter:active{transform:translate(-50%,-100%)}.solo-fighter:hover:not(:disabled){background:none;filter:drop-shadow(0 0 10px #fff3a8)}.solo-fighter:disabled{opacity:1;cursor:default}.solo-fighter.down{opacity:.35;filter:grayscale(1)}.solo-fighter.hero{left:15%;top:var(--row-mid-big)}.solo-fighter.pet.slot-1{left:80%;top:var(--row-mid)}.solo-fighter.pet.slot-2{left:49%;top:var(--row-top)}.solo-fighter.pet.slot-3{left:49%;top:var(--row-low)}.solo-fighter.foe.slot-1{left:28%;top:var(--row-mid)}.solo-fighter.foe.slot-1.boss{top:var(--row-mid-big)}.solo-fighter.foe.slot-2{left:66%;top:var(--row-top)}.solo-fighter.foe.slot-2.boss{top:calc(var(--room) + var(--big))}.solo-fighter.foe.slot-3{left:66%;top:var(--row-low)}.solo-body{position:relative;display:block;width:var(--w);height:var(--h)}.solo-fighter.hero .character-doll{width:100%;height:100%}.solo-fighter:before{content:"";position:absolute;left:50%;top:calc(var(--h) - var(--pet) * .12);width:calc(var(--w) * 1.05);height:calc(var(--pet) * .26);transform:translate(-50%);border-radius:50%;background:#0004;z-index:-1}.solo-fighter.picked:before{background:radial-gradient(#fff3a888,#f2c14e66 60%,transparent 70%);box-shadow:0 0 0 3px #f2c14e;animation:ring-pulse 1.2s ease-in-out infinite}.solo-fighter.targeted:before{background:radial-gradient(#ff8a7a88,#e0554866 60%,transparent 70%);box-shadow:0 0 0 3px #e05548;animation:ring-pulse 1.2s ease-in-out infinite}.solo-fighter.picked .solo-tag{box-shadow:0 0 0 2px #f2c14e}.solo-fighter.targeted .solo-tag{box-shadow:0 0 0 2px #e05548}@keyframes ring-pulse{50%{transform:translate(-50%) scale(1.08)}}.solo-tag{display:flex;align-items:center;gap:5px;max-width:max(var(--w),120px);padding:2px 9px;border-radius:999px;background:#2a1a0ee0;font-size:clamp(11px,calc(var(--pet) * .085),15px);line-height:1.25;white-space:nowrap}.solo-tag strong{overflow:hidden;text-overflow:ellipsis}.solo-tag .element-badge{font-size:.85em}.solo-hp{--bar: clamp(11px, calc(var(--pet) * .075), 15px);position:relative;display:block;width:calc(var(--w) * .85);min-width:70px;height:var(--bar);border-radius:6px;background:#000a;border:1px solid #fff8;overflow:hidden}.solo-hp>span{display:block;height:100%;background:linear-gradient(#8be06a,#4f8a33);transition:width .5s ease var(--bar-delay, 0s)}.solo-fighter.foe .solo-hp>span{background:linear-gradient(#ff8a7a,#c0392b)}.solo-hp small{position:absolute;inset:0;font-size:calc(var(--bar) - 2px);font-weight:800;line-height:calc(var(--bar) - 2px);text-align:center;color:#fff;text-shadow:0 1px 0 #000}.solo-edge{position:absolute;top:-1.6em;padding:0 8px;border-radius:6px;font-size:clamp(11px,calc(var(--pet) * .07),14px);font-weight:900}.solo-edge.strong{background:#3d9b3a}.solo-edge.weak{background:#6a6a6a}.solo-charging{position:absolute;top:-1.8em;padding:1px 8px;border-radius:8px;background:#c0392b;font-weight:900;animation:charge-pulse .8s ease-in-out infinite}@keyframes charge-pulse{50%{transform:scale(1.12);box-shadow:0 0 14px #ff6b5a}}.solo-target-line{position:absolute;inset:0;z-index:2;width:100%;height:100%;overflow:visible;pointer-events:none}.solo-line,.solo-line-glow{fill:none;stroke-linecap:round}.solo-line-glow{stroke:#140b06aa;stroke-width:9}.solo-line{stroke:#ffd84a;stroke-width:4;stroke-dasharray:12 9;animation:line-march .8s linear infinite}.solo-arrow-head{fill:#ffd84a}.solo-line-end{fill:none;stroke:#ffd84a;stroke-width:3}.solo-target-line.ulti .solo-line,.solo-target-line.ulti .solo-line-end{stroke:#ff8a3a}.solo-target-line.ulti .solo-arrow-head{fill:#ff8a3a}@keyframes line-march{to{stroke-dashoffset:-21}}@keyframes solo-lunge{0%,to{transform:none}35%,50%{transform:translate(var(--dx),var(--dy)) scale(1.08)}}@keyframes solo-hurt{20%,60%{transform:translate(-6px);filter:brightness(1.8) saturate(.4)}40%,80%{transform:translate(6px)}}@keyframes solo-glow{0%,to{filter:none}30%{filter:drop-shadow(0 0 18px #fff3a8) brightness(1.4)}}@keyframes solo-charge{50%{transform:scale(1.1);filter:drop-shadow(0 0 16px #ff6b5a) brightness(1.3)}}.solo-fighter.arrive .solo-body{animation:solo-arrive .5s ease}@keyframes solo-arrive{0%{opacity:0;transform:translate(40px)}}.solo-ulti-flash{position:absolute;inset:0;z-index:3;pointer-events:none;background:radial-gradient(circle at 55% 50%,var(--ulti),transparent 65%);opacity:0;animation:ulti-flash 1.1s ease}@keyframes ulti-flash{15%{opacity:.85}to{opacity:0}}.solo-pops{position:absolute;inset:0;z-index:5;pointer-events:none}.solo-pop{position:absolute;margin-top:-.6em;font-weight:900;font-size:clamp(18px,calc(var(--pet) * .17),34px);color:#fff;text-shadow:0 2px 0 #000,0 0 6px #000;pointer-events:none;opacity:0;animation:pop 1.4s ease forwards;animation-delay:var(--delay, 0s);white-space:nowrap}.solo-pop.crit{color:#ffd84a;font-size:clamp(20px,calc(var(--pet) * .2),42px)}.solo-pop.miss{color:#d8d8d8}.solo-pop.heal{color:#8be06a}.solo-pop.info{color:#ffb08a;font-size:clamp(14px,calc(var(--pet) * .12),24px)}@keyframes pop{0%{opacity:0;transform:translate(-50%,.5em) scale(.6)}15%{opacity:1;transform:translate(-50%) scale(1.15)}70%{opacity:1}to{opacity:0;transform:translate(-50%,-1.2em) scale(1)}}.solo-rage{display:flex;align-items:center;gap:10px;color:#fff3c4;font-weight:900;text-shadow:0 2px 0 #000}.solo-rage-bar{flex:1;height:14px;border-radius:8px;background:#0009;border:2px solid #ffffff4a;overflow:hidden}.solo-rage-bar>span{display:block;height:100%;background:linear-gradient(90deg,#f2c14e,#ff6b3a);transition:width .6s ease .4s}.solo-rage-bar.full{border-color:#ffd84a;animation:rage-full 1s ease-in-out infinite}@keyframes rage-full{50%{box-shadow:0 0 16px #ff8a3a}}.solo-plan{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 20px}.solo-plan p,.solo-feedback p{margin:0 0 4px}.solo-plan p:last-child,.solo-feedback p:last-child{margin-bottom:0}.solo-plan .card-actions{margin:0;justify-content:flex-end}.solo-plan-pick{font-size:20px;font-weight:900}.solo-warning{color:#c0392b;font-weight:900}.solo-ulti.armed{background:linear-gradient(#ffd84a,#ff8a3a);color:#3e2410;box-shadow:0 0 14px #ff8a3a}.solo-feedback{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr) auto;align-items:center;gap:8px 24px}.battle-dock .solo-feedback.good{background:#eef8e4;border-color:#4f8a33}.turn-summary{margin:0;padding-left:18px;font-weight:700}.question-card .cefr{padding:0 6px;border-radius:6px;background:var(--wood);color:#fff}.battle-dock .question-card.ulti-question{border-color:#ff8a3a;box-shadow:inset 0 0 0 2px #ffd84a,0 0 24px #ff8a3a99}.solo-ulti-tag{padding:0 8px;border-radius:6px;background:linear-gradient(#ffd84a,#ff8a3a);color:#3e2410}.solo-unlock{color:#5a2a7a;font-weight:900}.difficulty-picker{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:10px 0;padding:0;border:0}.difficulty-picker legend{margin-bottom:6px;font-weight:900}.difficulty-option{display:grid;gap:2px;justify-items:center;padding:8px 4px;border:2px solid var(--parchment-dark);border-radius:12px;background:#fffaf0;color:var(--ink)}.difficulty-option span{font-size:12px}.difficulty-option em,.difficulty-option small{font-size:11px;font-style:normal;text-align:center}.difficulty-option em{color:#4f8a33;font-weight:900}.difficulty-option[aria-pressed=true]{border-color:var(--gold-dark);background:linear-gradient(#fff6d6,#f6d77a);box-shadow:0 0 0 2px var(--gold)}.difficulty-option.nightmare[aria-pressed=true]{border-color:#5a2a7a;background:linear-gradient(#e9d8ff,#b98bff);box-shadow:0 0 0 2px #b06bff}.battle-review{width:100%;margin-top:10px;text-align:left}.battle-review h3{margin:0 0 6px}.battle-review ol{display:grid;gap:8px;max-height:340px;overflow-y:auto;margin:0;padding:0;list-style:none}.battle-review li{padding:8px 10px;border-radius:10px;border-left:5px solid #4f8a33;background:#fffaf0}.battle-review li.wrong{border-left-color:#c0392b}.battle-review p{margin:0 0 3px}.battle-review-prompt{display:flex;gap:6px;font-weight:900}.battle-review-prompt em{margin-left:auto;font-style:normal;color:#b0552f}.battle-review-yours{color:#c0392b}.battle-review-why{font-size:13px;opacity:.85}.wave-strip-squad{display:flex}.dungeon-history{display:grid;gap:8px;margin:14px 0}.battle-history{display:grid;gap:6px;margin:0;padding:0;list-style:none}.battle-history-row{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%;text-align:left;background:var(--parchment);color:var(--ink)}.battle-history-row .won{color:#4f8a33;font-weight:900}.battle-history-row .lost{color:#c0392b;font-weight:900}.battle-history-row time{margin-left:auto;font-size:12px}@media(max-width:700px){.game-main .battle-screen.solo{height:100%;min-height:0;grid-template-rows:auto minmax(0,1fr) auto;overflow:hidden}.battle-screen.solo>.battle-top{flex-wrap:nowrap;gap:8px;padding:6px 10px!important;font-size:13px}.battle-screen.solo .battle-dock{min-height:272px;max-height:52%;overflow-y:auto;gap:6px;padding:10px 8px 8px}.battle-screen.solo .battle-dock .question-card,.battle-screen.solo .battle-dock .solo-plan,.battle-screen.solo .battle-dock .solo-feedback{padding:8px 10px;font-size:14px}.battle-screen.solo .battle-dock .question-card h2{margin:4px 0 8px;font-size:19px}.battle-screen.solo .battle-dock .answers{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.battle-screen.solo .battle-dock .answers button{min-height:44px;padding:4px 6px;font-size:14px;line-height:1.2}.solo-plan-pick{font-size:17px}.solo-field{--room: 28px;--chrome: 38px;--pet: max( 40px, min(24cqw, (100cqh - var(--room) - 3 * var(--chrome) - 22px) / 3.9) )}.solo-side{position:static}.solo-tag{max-width:max(var(--w),31vw);gap:3px;padding:1px 6px}.solo-hp{min-width:62px}.solo-fighter.foe.slot-1,.solo-fighter.foe.slot-2,.solo-fighter.foe.slot-3,.solo-fighter.foe.slot-1.boss,.solo-fighter.foe.slot-2.boss{top:calc(var(--room) + var(--big))}.solo-fighter.foe.slot-1{left:50%}.solo-fighter.foe.slot-2{left:17%}.solo-fighter.foe.slot-3{left:83%}.solo-fighter.pet.slot-1{left:50%;top:calc(var(--room) + var(--big) + 8px + var(--box))}.solo-fighter.pet.slot-2{left:17%;top:calc(100% - 6px)}.solo-fighter.pet.slot-3{left:83%;top:calc(100% - 6px)}.solo-fighter.hero{left:50%;top:calc(100% - 6px)}.solo-plan,.solo-feedback{grid-template-columns:minmax(0,1fr)}.solo-plan .card-actions{justify-content:stretch}.solo-plan .card-actions .game-button{flex:1 1 auto}.difficulty-picker{grid-template-columns:repeat(2,1fr)}}@media(prefers-reduced-motion:reduce){.solo-body,.solo-line,.solo-ulti-flash,.solo-fighter:before,.solo-charging,.solo-rage-bar.full{animation:none!important}.solo-pop{animation-duration:.01s;animation-delay:0s;opacity:1}}.solo-result .card-actions{flex-wrap:wrap;justify-content:center}.difficulty-picker .difficulty-option{display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.2}.dungeon-card .wave-strip{flex-wrap:wrap}.wave-strip-squad .pet-portrait.small{width:34px;height:32px}@media(max-width:600px){:root:has(.battle-screen.solo){--hud-height: 52px}body:has(.battle-screen.solo) .hud{grid-template-rows:44px}body:has(.battle-screen.solo) .hud-nav{display:none}}.battle-screen.solo,.battle-screen.room-match{position:relative;display:grid;grid-template:"stage" minmax(0,1fr) "dock" auto / minmax(0,1fr);height:100%;min-height:0;max-width:none;margin:0;padding:0;overflow:hidden;background:var(--map, none) center 45% / cover no-repeat,radial-gradient(circle at 30% 20%,#5b7f3a,#1f2d14 75%)}.battle-screen>.battle-top{grid-area:stage;align-self:start;position:relative;z-index:6;flex-wrap:wrap;gap:10px 14px;margin:0;padding:10px clamp(10px,2vw,28px) 30px!important;border:0!important;border-radius:0;background:linear-gradient(#140b06b8,#140b0600);pointer-events:none}.battle-screen>.battle-top>*{pointer-events:auto}.battle-top .wave-progress,.battle-top .battle-title,.battle-top .room-code{color:#fff3c4;text-shadow:0 2px 0 #000,0 0 6px #000}.battle-title{margin:0;font-size:clamp(18px,2vw,26px);letter-spacing:0}.battle-dock{grid-area:dock;position:relative;z-index:6;display:grid;align-content:end;gap:8px;min-height:212px;max-height:62dvh;overflow-y:auto;padding:22px clamp(10px,2vw,28px) 12px;background:linear-gradient(#140b0600,#140b06c4 22px,#140b06e6)}.battle-dock>*{width:min(100%,1680px);justify-self:center;margin:0}.battle-dock .question-card,.battle-dock .solo-plan,.battle-dock .solo-feedback,.battle-dock .feedback{margin:0;padding:12px 18px;border:3px solid var(--wood);border-radius:16px;background:var(--parchment);color:var(--ink);font-size:15px;box-shadow:inset 0 0 0 2px var(--gold),0 -4px 24px #0006}.battle-dock .feedback p{margin:0 0 4px}.battle-error{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}.battle-dock .battle-error p{margin:0}.battle-dock .question-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px 18px}.battle-dock .question-card>:not(.question-meta,h2){grid-column:1 / -1}.battle-dock .question-meta{grid-column:1;flex-wrap:wrap;gap:8px}.battle-dock .question-meta>span:nth-child(2){margin-left:0}.battle-dock .question-card h2{grid-column:2;margin:0;font-size:clamp(20px,1.8vw,28px);line-height:1.25}.battle-dock .question-audio button{margin:0}.battle-dock .answers{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.battle-dock .answers button{min-height:52px;font-size:16px;font-weight:800}.battle-result-layer{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:16px;background:#140b0680}.battle-result-layer .result-banner{width:min(640px,100%);min-height:0;max-height:100%;overflow-y:auto;padding:18px 22px;border:4px solid var(--wood);border-radius:20px;background:var(--parchment);color:var(--ink);box-shadow:inset 0 0 0 2px var(--gold),0 16px 40px #000a}.battle-result-layer .result-banner p{margin:0}.battle-result-layer .card-actions{margin-top:6px}.mode-screen.battle-intro{background:linear-gradient(#140b0670,#140b06b0),var(--map, none) center 45% / cover no-repeat,radial-gradient(circle at 50% 0,#6b3f1f,#2b1a0e 70%)}@media(max-width:1100px){.battle-dock .answers{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.battle-screen.solo,.battle-screen.room-match{height:auto;min-height:100%;grid-template-rows:minmax(300px,1fr) auto;overflow:visible}.battle-dock{min-height:0;max-height:none;overflow:visible}.battle-dock .question-card{display:block}.battle-dock .question-card h2{margin:8px 0 10px}.battle-dock .answers{grid-template-columns:minmax(0,1fr)}.battle-dock .answers button{min-height:48px}}.room-stage{grid-area:stage;container-type:size;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 clamp(16px,6vw,140px);min-width:0;min-height:0;padding:56px clamp(10px,3vw,56px) 6px;overflow:hidden}.room-stage.dungeon{grid-template-columns:minmax(0,1.4fr) minmax(0,1fr)}.room-side{display:flex;flex-wrap:wrap;align-content:flex-end;align-items:flex-end;justify-content:center;gap:8px 2cqw;min-width:0}.room-side h2{flex-basis:100%;margin:0;text-align:center;color:#fff9df;font-size:clamp(18px,1.8vw,24px);text-shadow:0 2px 0 #000,0 0 6px #000}.room-fighter{--pet: min( calc(34cqw / (var(--n, 1) + 1)), 42cqh, calc(100cqh - var(--reserve, 120px)) );display:grid;justify-items:center;gap:4px;min-width:0;transition:opacity .3s,filter .3s}.room-fighter.foe{--pet: min(20cqw, 48cqh, calc(100cqh - 90px) )}.room-fighter.foe.boss{--pet: min(24cqw, 56cqh, calc(100cqh - 90px) )}.room-stage.arena{--reserve: 160px}.room-fighter.down{opacity:.45;filter:grayscale(1)}.room-body{position:relative;display:block;width:var(--pet);height:var(--pet)}.room-body:before{content:"";position:absolute;left:50%;bottom:calc(var(--pet) * -.08);width:calc(var(--pet) * .9);height:calc(var(--pet) * .22);transform:translate(-50%);border-radius:50%;background:#0004}.room-fighter.me .room-body:before{background:radial-gradient(#fff3a888,#f2c14e55 60%,transparent 70%);box-shadow:0 0 0 3px #f2c14e}.room-card{display:grid;gap:2px;width:clamp(150px,var(--pet),240px);padding:6px 10px;border:3px solid var(--wood);border-radius:14px;background:#f8ecd0f2;color:var(--ink);font-size:13px;text-align:center;box-shadow:0 6px 16px #0006}.room-fighter.me .room-card{border-color:var(--gold-dark);box-shadow:0 0 0 3px var(--gold),0 6px 16px #0006}.room-card header{display:flex!important;flex-wrap:wrap;align-items:center;justify-content:center;gap:2px 6px}.room-card small{font-size:11px}.room-card meter{height:9px}.room-card .fighter-team{margin:2px 0 0;gap:4px}.room-card .fighter-team li{position:relative;padding:2px}.room-card .fighter-team .pet-portrait.small{width:34px;height:30px}.room-card .fighter-team small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.room-match .battle-dock .question-card{grid-template-columns:auto minmax(0,1fr) auto}.room-match .battle-dock .question-meta,.room-match .battle-dock .question-card h2{grid-row:1}.room-match .battle-dock .question-card .special,.room-match .battle-dock .question-card .room-note{grid-column:3;grid-row:1;width:auto;margin:0;padding:8px 16px;font-size:14px;font-weight:800}.room-match .battle-dock .team-picker{margin:0}.room-match .battle-dock .room-reveal{margin:0;padding:8px 14px;border:2px solid #4f8a33;border-radius:12px;background:#eef8e4;box-shadow:none}.room-match .battle-dock .room-reveal p{margin:2px 0 0}.room-match .battle-dock .question-card .room-note{max-width:260px;padding:0;font-weight:700;text-align:right}.room-match .battle-dock .team-slot{min-height:44px;padding:2px 8px}.room-match .battle-dock .team-slot .pet-portrait.small{width:34px;height:30px}.room-match .battle-dock .team-slot-info{grid-template-columns:auto auto minmax(40px,1fr);align-items:center;column-gap:6px}.room-match .battle-dock .team-slot{position:relative}.room-match .battle-dock .team-slot-info small{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.room-match .battle-dock .timer-text{font-size:24px}@media(max-width:700px){.room-stage{gap:0 12px;padding:64px 8px 6px}.room-fighter{--pet: min(calc(44cqw / (var(--n, 1) + 1)), 30cqh)}.room-card{width:clamp(130px,var(--pet),200px)}.room-match .battle-dock .question-card .special{width:100%;margin-top:10px}}.window-backdrop{background:#17152d88;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.game-window{background:linear-gradient(150deg,#fff3d8,#f2dfb7);box-shadow:inset 0 0 0 3px #f4c86d,0 22px 60px #10122299}.window-title{background:linear-gradient(180deg,#a9713d,#71401e);box-shadow:inset 0 1px #ffe5a480,0 4px 12px #70461c30}.window-backdrop .window-body{color:#49301d}.window-backdrop .window-body .page-heading{margin-bottom:18px}.window-backdrop .window-body .page-heading p{color:#795b3d;font-weight:700}.window-backdrop .window-body .panel{padding:20px;border:1px solid #dfbd83;border-radius:16px;background:linear-gradient(155deg,#fffaf0,#f9edcf);box-shadow:inset 0 1px #fff,0 3px 9px #94632416}.window-backdrop .window-body .panel h2,.window-backdrop .window-body .panel h3{color:#56331b}.window-backdrop .window-body .panel p,.window-backdrop .window-body .panel small{color:#795b3d}.window-backdrop .window-body button:not(.window-close):not(.link-button):not(.auth-tabs button){min-height:44px;border:2px solid #9a6638;border-radius:10px;background:linear-gradient(#fff3d3,#eacb91);color:#513019;font-weight:800;box-shadow:inset 0 1px #fff9,0 2px #825127}.window-backdrop .window-body button:not(.window-close):not(.link-button):not(.auth-tabs button):hover:not(:disabled){background:linear-gradient(#fff9e8,#f6dba6)}.window-backdrop .window-body button.primary{background:linear-gradient(#ffd66b,#ef9438)!important;border-color:#95501f!important;color:#fff!important;text-shadow:0 1px #914419;box-shadow:inset 0 1px #fff7,0 3px #85431d!important}.window-backdrop .window-body .auth-panel .google-button{background:#fff!important;color:#1f1f1f!important;text-shadow:none}.window-backdrop .window-body .shop-grid{gap:12px;margin:12px 0 20px}.window-backdrop .window-body .shop-grid .panel{display:flex;flex-direction:column;align-items:flex-start;gap:5px}.window-backdrop .window-body .shop-grid .panel h3,.window-backdrop .window-body .shop-grid .panel p{margin:0}.window-backdrop .window-body .shop-grid .panel button{margin-top:8px}.window-backdrop .window-body .quest progress{height:12px;accent-color:#d99536}.window-backdrop .window-body .settings label,.window-backdrop .window-body .push-settings label{border-color:#dfc69e}.window-backdrop .window-body .settings select,.window-backdrop .window-body .push-settings input{border-color:#bb9360;background:#fffaf0}.window-backdrop .window-body input[type=checkbox]{accent-color:#c97d2d}.dungeon-screen{background:linear-gradient(135deg,#192e30e8,#332818e8),url(/assets/battle-maps/misty-forest.webp) center / cover fixed}.arena-screen{background:linear-gradient(135deg,#49311ee8,#292034eb),url(/assets/battle-maps/colosseum.webp) center / cover fixed}.dungeon-card,.room-board,.arena-actions,.room-lobby{background:linear-gradient(150deg,#fff3d8,#efdbb2);box-shadow:inset 0 0 0 2px #f2c66e,0 10px 30px #160c0a77}.dungeon-card p,.room-board p,.arena-actions p,.room-lobby p{color:#795b3d}.wave-strip li,.room-list li{background:linear-gradient(#fffaf0,#f8eacb);box-shadow:inset 0 1px #fff}.wave-strip li.boss{background:linear-gradient(#fff4e9,#f9dfd0)}.join-row input{min-width:0;max-width:100%}@media(max-width:600px){:root{--hud-height: 108px}.hud{display:grid;grid-template-columns:auto minmax(0,1fr) minmax(0,1fr);grid-template-rows:48px 44px;column-gap:6px;row-gap:2px;padding:4px 8px!important}.hud-profile{gap:5px;min-width:0}.hud-avatar{width:40px;height:40px}.hud-avatar .character-doll{width:64px;height:74px;left:-12px;top:-5px}.hud-xp,.hud-currency{overflow:hidden;padding:5px 7px;font-size:12px;text-overflow:ellipsis}.hud-nav{grid-column:1 / -1;width:100%;margin:0;gap:5px}.hud-nav button{flex:1 1 0;min-width:0;min-height:44px;padding:4px}.window-backdrop .window-body,.window-backdrop .window-body .panel{padding:16px}.mode-screen{padding:16px 12px 32px}.mode-header{gap:10px}.dungeon-list{grid-template-columns:minmax(0,1fr)}.wave-strip{flex-wrap:wrap}.join-row label{min-width:0}.room-list li{flex-wrap:wrap}.room-screen .sides-2 .side:has(.fighter:nth-of-type(2)){grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.room-screen .sides-2 .side h2{grid-column:1 / -1}.room-screen .sides-2 .side:has(.fighter:nth-of-type(2)) .fighter{min-width:0;padding:8px 6px}.room-screen .sides-2 .side:has(.fighter:nth-of-type(2)) .fighter header{flex-wrap:wrap;gap:2px 6px;line-height:1.2}.room-screen .sides-2 .side:has(.fighter:nth-of-type(2)) .fighter-team{gap:2px}.room-screen .sides-2 .side:has(.fighter:nth-of-type(2)) .fighter-team li{min-width:0;padding:1px}.room-screen .sides-2 .side:has(.fighter:nth-of-type(2)) .pet-portrait.small{width:34px;height:32px}}.game,.title-screen{-webkit-user-select:none;user-select:none}.game input,.game textarea,.game [contenteditable=true],.game code,.game .room-code,.game .question-card h2,.game .battle-review p,.game .solo-feedback p,.game .feedback p,.title-screen input,.title-screen textarea,.title-screen [contenteditable=true],.title-screen code{-webkit-user-select:text;user-select:text}.game .recovery-code,.title-screen .recovery-code{-webkit-user-select:all;user-select:all}.dungeon-adventure{background-position:center;background-size:cover;background-attachment:fixed}.dungeon-picker{max-width:850px;margin:clamp(12px,4vh,46px) auto 0;padding:clamp(18px,3vw,32px);border:4px solid #784526;border-radius:22px;background:linear-gradient(145deg,#fdf0d2,#e7c994);box-shadow:inset 0 0 0 2px #f9dc9b,0 18px 55px #100a09a8}.dungeon-picker-title{text-align:center;color:#5e351c;margin-bottom:18px}.dungeon-picker-title h2,.journey-heading h2,.journey-actions h2{margin:4px 0;font-size:clamp(24px,2.4vw,34px)}.dungeon-picker-title p,.journey-heading p,.journey-actions p{margin:4px 0}.journey-eyebrow{color:#b17c38;font-size:12px;font-weight:900;letter-spacing:.15em;text-transform:uppercase}.dungeon-destinations{display:grid;gap:12px}.dungeon-destination{display:flex;justify-content:space-between;align-items:end;gap:16px;width:100%;min-height:142px;padding:20px 24px;border:3px solid #89603a;border-radius:14px;background-color:#294c3e;background-position:center;background-size:cover;box-shadow:inset 0 0 0 2px #ffffff36,0 4px #694322;color:#fff7da;text-align:left;text-shadow:0 2px 4px #000;cursor:pointer;transition:transform .16s,filter .16s}.dungeon-destination:hover,.dungeon-destination:focus-visible{transform:translateY(-3px);filter:brightness(1.12)}.destination-copy{display:grid;gap:5px;max-width:70%}.destination-copy strong{font-size:clamp(21px,2vw,29px)}.destination-copy small{color:#f9d887;font-weight:900}.destination-go{flex:none;padding:8px 13px;border:1px solid #ffe1a17d;border-radius:99px;background:#312619b5;font-weight:900}.destination-go span{margin-left:7px;font-size:22px;line-height:0}.dungeon-extras{display:grid;gap:8px;margin-top:20px}.dungeon-extras .join-row{color:#5e351c;margin-top:4px}.journey-layout{display:grid;grid-template-columns:minmax(0,760px) minmax(260px,330px);align-items:start;justify-content:center;gap:24px;padding:10px 0 50px}.journey-map{overflow:hidden;border:3px solid #d9af6b;border-radius:22px;background:linear-gradient(#182d22ac,#152619a8);box-shadow:0 14px 45px #100a0988,inset 0 0 40px #17251d;color:#fff7de}.journey-heading{padding:28px 24px 22px;background:linear-gradient(100deg,#3c522bdd,#273d2ab5);border-bottom:2px solid #e0bc7280;text-align:center;text-shadow:0 2px 4px #0009}.journey-heading .journey-eyebrow{color:#ffda8b}.journey-heading p{color:#fff0c9}.journey-status{display:inline-block;margin-top:12px;padding:5px 12px;border:1px solid #f2dfb28c;border-radius:99px;background:#243022b8;font-size:12px;font-weight:900}.journey-status.cleared{background:#668333}.journey-explanation{margin:18px 20px 0;text-align:center;font-size:14px;color:#fff1c7}.journey-path-wrap{position:relative}.journey-path{position:relative;display:grid;gap:18px;margin:0;padding:24px 10% 36px;list-style:none}.journey-trail{position:absolute;top:24px;bottom:36px;left:10%;width:80%;height:calc(100% - 60px);overflow:visible}.journey-trail polyline{fill:none;stroke:#f8d58fb0;stroke-width:5px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1 13;vector-effect:non-scaling-stroke}.journey-node{position:relative;min-height:124px}.journey-node .journey-medallion{position:absolute;top:50%;left:35%;transform:translate(-50%,-50%)}.journey-node:nth-of-type(2n) .journey-medallion{left:65%}.journey-node-card{position:absolute;top:50%;left:calc(35% + 54px);transform:translateY(-50%)}.journey-node:nth-of-type(2n) .journey-node-card{right:calc(35% + 54px);left:auto}.journey-medallion{position:relative;z-index:1;display:grid;width:76px;place-items:center;height:76px;border:5px solid #fbe2a2;border-radius:50%;background:linear-gradient(#e4b45d,#a3682e);box-shadow:0 5px #694322,0 8px 20px #0008,inset 0 0 0 2px #9d692d;color:#fff3c6;font-size:28px;font-weight:900;text-shadow:0 2px 2px #5a311c}.journey-node.journey-boss .journey-medallion{background:linear-gradient(#bc6a4a,#7a3328)}.journey-node-card{display:grid;justify-items:center;min-width:145px;padding:8px 16px;border:2px solid #d8af68;border-radius:14px;background:#fff0d6ec;color:#5c371d;box-shadow:0 5px 15px #0005}.journey-enemies{display:flex;justify-content:center}.journey-enemies .pet-portrait.small{width:42px;height:40px}.journey-actions{position:sticky;top:20px;display:grid;gap:10px;padding:22px;border:4px solid #784526;border-radius:18px;background:linear-gradient(145deg,#fdf0d2,#e7c994);box-shadow:inset 0 0 0 2px #f9dc9b,0 12px 35px #100a0988;color:#5e351c}.journey-actions h2{font-size:24px}.journey-actions p{margin-bottom:8px;color:#795b3d}@media(max-width:800px){.journey-layout{display:flex;flex-direction:column-reverse}.journey-actions,.journey-map{width:100%}.journey-actions{position:static}}@media(max-width:500px){.dungeon-picker{padding:16px}.dungeon-destination{padding:14px;min-height:130px}.destination-copy{max-width:none}.destination-copy>span{font-size:13px}.destination-go{font-size:0;padding:9px 12px}.destination-go span{font-size:22px;margin:0}.journey-path{padding-right:5%;padding-left:5%}.journey-trail{left:5%;width:90%}.journey-medallion{width:62px;height:62px}}@media(prefers-reduced-motion:reduce){.dungeon-destination{transition:none}}
