.campaign-page{--accent:#ffd17d;--ink:#352a30}.campaign-page [hidden]{display:none!important}.campaign-page #stage{background:#1b3040}.campaign-page .game-stage-frame{background:#122237}.campaign-page .control-dock{gap:10px}.campaign-readout{flex:1 0 100%;width:100%;min-width:0;pointer-events:none}.campaign-meters{display:flex;gap:12px;justify-content:center;align-items:center;flex-wrap:wrap;color:#ffe3a7;font-size:12px}.campaign-readout #gameMetric,.campaign-readout #feedback{position:static;inset:auto;transform:none;max-width:none;margin:5px 0 0;padding:0;border:0;background:none;color:#d9e3ef;font-size:12px;line-height:1.5;white-space:normal;text-align:center;opacity:1}.campaign-readout #feedback{height:3em;min-height:3em;color:#ffda99;overflow:hidden}.campaign-readout #chapterLabel{font-size:12px;color:#ffd17d;line-height:1.5;margin:0 0 5px;text-align:center}.campaign-readout #missionLabel,.campaign-readout #goldLabel{font-size:12px;line-height:1.5;text-align:center;margin:4px 0;color:#e7eef8}.campaign-readout #missionLabel{min-height:3em;max-height:3em;overflow:hidden}.campaign-readout #goldLabel{color:#ffd17d;height:3em;min-height:3em;overflow:hidden}.campaign-page #gameControls{display:flex;gap:7px;flex-wrap:wrap;justify-content:center}.campaign-page #gameControls button{flex:1 1 90px}.campaign-page .dialog-cover{object-fit:cover;height:150px;width:100%;border-radius:12px;margin-bottom:14px}.campaign-page .dialog .outline{margin-top:10px;width:100%}.campaign-page #resultStars{font-size:30px;letter-spacing:8px;color:#ffd078;margin:12px 0}.campaign-page .board h3:not(:first-child){margin-top:22px}.campaign-page dialog{color:#edf3ff;background:#142136;border:1px solid #536580;border-radius:22px;padding:24px;max-width:min(820px,calc(100vw - 24px));max-height:calc(100dvh - 32px);overflow:auto;box-sizing:border-box}.campaign-page dialog::backdrop{background:#060d20d9;backdrop-filter:blur(8px)}.campaign-page dialog button{min-height:44px;cursor:pointer}.map-heading{display:flex;justify-content:space-between;gap:20px;align-items:start}.map-heading h2{font-size:23px;margin:0 0 8px}.map-heading p{color:#a9c0d8;font-size:13px}#closeMap{width:44px;flex-shrink:0;border:1px solid #4c5a70;border-radius:12px;background:#25354b;color:#fff;font-size:24px}.world-tabs{display:flex;gap:6px;overflow:auto;padding:8px 0 14px}.world-tabs button{flex-shrink:0;min-width:44px;padding:8px 12px;border:1px solid #52617a;border-radius:12px;background:#26354c;color:#c4d2e5;white-space:nowrap}.world-tabs button[aria-pressed=true]{background:#ffd17d;color:#342a29;border-color:#ffd17d;font-weight:800}.world-preview{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:18px;margin-bottom:18px}.world-preview img{width:100%;height:100px;object-fit:cover;border-radius:14px}.world-preview h3{margin:0 0 8px;color:#ffe2ac}.world-preview p{font-size:12px;color:#bdcde0}.level-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.level-grid button{min-height:78px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:1px solid #56657b;border-radius:14px;background:#24344c;color:#f6f4ef;font-size:18px}.level-grid button[aria-current=true]{outline:2px solid #ffd17d;outline-offset:2px}.level-grid button small{font-size:11px;color:#ffd17d}.campaign-map>p{font-size:12px;color:#aebfd4;line-height:1.6}.level-grid button em{font-size:11px;font-style:normal;color:#c6d7ed}.level-grid button{min-height:92px}.campaign-score{width:400px}.campaign-score input{display:block;width:100%;box-sizing:border-box;background:#09162a;border:1px solid #53657f;border-radius:10px;color:#fff;padding:12px;font-size:16px;margin:12px 0}.campaign-share{width:460px}.campaign-share img{display:block;max-width:100%;max-height:38dvh;object-fit:contain;margin:0 auto 16px}.campaign-share input{width:100%;box-sizing:border-box;margin:8px 0 14px;padding:12px;border:1px solid #53657f;border-radius:10px;background:#09162a;color:#fff;font-size:14px}.campaign-share a,.campaign-share button{display:block;width:100%;box-sizing:border-box;min-height:44px;text-align:center;margin-top:10px}.campaign-share a{padding:14px;text-decoration:none;border-radius:12px}@media(min-width:851px){.campaign-page .control-dock>.primary{min-width:145px}.campaign-page .game-workspace .game-controls button{min-width:84px;max-width:170px;flex:0 1 auto}.campaign-page .game-workspace .game-sidebar{grid-template-columns:minmax(0,1fr) 270px}}@media(max-width:850px){.campaign-page main{padding:16px 14px}.campaign-page #stage{height:clamp(300px,calc(100svh - 390px),500px);border-radius:18px}.campaign-page .control-dock{position:static}.campaign-page .campaign-meters{font-size:11px;gap:7px}.campaign-page .campaign-readout #gameMetric,.campaign-page .campaign-readout #feedback,.campaign-page .game-controls button{font-size:11px}.campaign-page dialog{padding:18px}.world-preview{grid-template-columns:100px 1fr;gap:12px}.world-preview img{height:80px}.map-heading h2{font-size:20px}.level-grid{gap:7px}.level-grid button{min-height:65px}.campaign-page .dialog-cover{height:115px}}@media(min-width:851px){.campaign-page .game-workspace{--desktop-stage-height:max(610px,calc(100svh - var(--site-header-height,72px) - 136px))}}@media(max-width:850px){.campaign-readout #chapterLabel,.campaign-readout #missionLabel,.campaign-readout #goldLabel{font-size:11px}.campaign-readout #goldLabel{height:4.5em;min-height:4.5em}.campaign-readout #missionLabel{height:4.5em;max-height:4.5em}.campaign-page #stage{height:clamp(320px,calc(100svh - 440px),500px)}.level-grid button{min-height:85px}}.campaign-page #subtitle{display:none}.campaign-page #chapterLabel{color:#ffd17d;font-size:12px;line-height:1.5;margin:6px 0}.campaign-page #missionLabel{font-size:13px;line-height:1.6;margin:5px 0 0;color:#d6e3f2;max-width:760px}.campaign-page #missionLabel:empty{display:none}.campaign-page .title-row>div{min-width:0}.campaign-page .campaign-readout #goldLabel{height:3em;min-height:3em}.campaign-page .title-row{align-items:center}@media(max-width:850px){.campaign-page #chapterLabel{font-size:11px}.campaign-page #missionLabel{font-size:12px}.campaign-page .title-row{align-items:start}}
