@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;font-family:'DM Sans',sans-serif;color:#dce7e3;background:#101816;--mint:#b6ef80;--line:#2a3731}*{box-sizing:border-box}body{margin:0}header{height:88px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:18px;padding:0 4%}.brand{font-size:32px;text-decoration:none;color:var(--mint);font-weight:700}.brand span{font-size:23px}header b{font-size:14px;letter-spacing:2px}small{display:block;color:#82948c;font-size:11px;margin-top:6px}.muted{color:#83968b}.badge{margin-left:auto;border:1px solid var(--line);border-radius:20px;padding:8px 13px;font-size:10px;letter-spacing:1px}main{max-width:1700px;margin:auto;padding:30px 4%}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.eyebrow{font-size:10px;letter-spacing:2px;color:var(--mint)}h1{font-family:'Space Grotesk',sans-serif;font-size:46px;line-height:1.06;font-weight:500;letter-spacing:-2px;margin:14px 0 0}em{font-style:normal;color:var(--mint)}.intro p{max-width:335px;color:#93a69a;font-size:13px;line-height:1.8}.workspace{display:grid;grid-template-columns:240px minmax(320px,1fr) 205px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#141e19}aside{padding:22px 16px}.panel-title{font-size:10px;letter-spacing:1.7px;color:#91a097;margin-bottom:18px}.panel-title span{float:right;font-size:9px;color:#607468}button,input{font:inherit}button{cursor:pointer;color:inherit;background:transparent;border:1px solid var(--line);border-radius:6px;padding:10px;font-size:12px}button:hover{background:#2a3a2e}button:disabled{opacity:.3;cursor:default}.tool{display:flex;align-items:center;gap:10px;width:100%;text-align:left;margin-bottom:10px;padding:13px 9px;position:relative}.tool.active{background:#273723;border-color:#8aad69}.tool.active .icon{color:var(--mint)}.tool b{font-size:12px}.tool small{font-size:9px}.tool strong{margin-left:auto;font-family:'Space Grotesk';font-size:19px}.icon{font-size:27px;color:#83978a;width:25px;text-align:center}kbd{position:absolute;right:4px;top:2px;font-size:8px;color:#637569}.divider{height:1px;background:var(--line);margin:24px 0}label{font-size:10px;color:#96a99c}.seed-row{display:flex;margin:9px 0;gap:5px}input[type=text],input:not([type]){min-width:0;width:100%;background:#0e1712;color:#c6d9cb;border:1px solid var(--line);border-radius:5px;padding:10px;font-size:11px}.secondary{width:100%}.text-button{border:0;width:100%;color:#a9bcac;font-size:10px;margin-top:5px}.hint{border-left:2px solid #425b3b;padding-left:12px;margin-top:27px;color:#819688;font-size:11px;line-height:1.7}.hint b{color:#b4c7b8;font-weight:500}.hint p{margin:6px 0}.board-panel{border-left:1px solid var(--line);border-right:1px solid var(--line);background:#0f1914;min-width:0}.board-top,.board-bottom{display:flex;justify-content:space-between;align-items:center;padding:17px 18px;font-size:9px;color:#8ea393}.board-top b{font-size:10px;letter-spacing:1px;color:#c4d4c8}#dimensions{margin-left:12px}.live-dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--mint);margin-right:5px}.toggle{display:flex;align-items:center;gap:5px}.toggle input{accent-color:var(--mint)}.canvas-wrap{padding:8px 18px;display:flex;align-items:center;min-height:350px}canvas{width:100%;display:block;touch-action:none;border:1px solid #344338;border-radius:4px}.board-bottom{font-size:8px;gap:10px}.legend{display:inline-block;width:6px;height:6px;margin:0 5px 0 9px}.start{background:#b6ef80}.cp{background:#e5bf75}.finish{background:#91cae6}.score{font-family:'Space Grotesk';font-size:46px;letter-spacing:-2px;color:var(--mint)}.score span{display:block;font-family:'DM Sans';font-size:9px;letter-spacing:2px;color:#95a793;margin-top:4px}.gain{background:#243720;color:var(--mint);display:inline-block;padding:6px 9px;font-size:10px;border-radius:4px;margin:18px 0}.stat{display:flex;justify-content:space-between;font-size:10px;margin:16px 0;gap:10px;color:#8da28f}.stat b{color:#d1ddcb;white-space:nowrap}.stop{display:flex;align-items:center;gap:10px;font-size:11px;padding:9px 0;color:#a8bbaa}.stop span{border:1px solid #4c5c3e;color:#e5bf75;width:25px;height:25px;display:grid;place-items:center;border-radius:6px;font-size:9px}.stop:first-child span{color:var(--mint)}.stop:last-child span{color:#91cae6}footer{display:flex;justify-content:space-between;margin-top:22px;color:#667f6d;font-size:9px;letter-spacing:1px}footer span{color:#9aa994;letter-spacing:0}@media(min-width:1500px){.canvas-wrap{min-height:480px}}@media(max-width:1100px){.workspace{grid-template-columns:200px minmax(300px,1fr)}.stats{grid-column:1/-1;border-top:1px solid var(--line);display:flex;align-items:center;gap:22px;flex-wrap:wrap}.stats .divider,.stats .hint,.stats #stops,.stats>.panel-title{display:none}.score{font-size:32px}.stats .stat{min-width:130px}.intro h1{font-size:40px}}@media(max-width:700px){header{height:70px}.badge{display:none}main{padding:22px 12px}.intro{display:block}.intro p{max-width:none}.workspace{display:flex;flex-direction:column}aside{padding:16px}.workspace>aside:first-child{display:grid;grid-template-columns:1fr 1fr;gap:8px}.workspace>aside:first-child .panel-title,.workspace>aside:first-child .divider,.workspace>aside:first-child .hint{display:none}.tool{margin:0}.seed-row{margin:0}.workspace>aside:first-child>label{grid-column:1/-1}.board-panel{border:0;border-top:1px solid var(--line)}.canvas-wrap{min-height:0;padding:8px}.board-bottom{padding:12px 8px}.board-bottom>span:last-child{display:none}footer{font-size:7px}.stats{gap:14px}}

.daily-panel{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding:24px;margin-bottom:24px;border:1px solid #456039;border-radius:12px;background:linear-gradient(120deg,#203021,#141e19)}.daily-panel h2{font-family:'Space Grotesk',sans-serif;font-size:24px;font-weight:500;margin:10px 0}.daily-panel p{font-size:12px;color:#a6baaa}.daily-panel #dailyPlay{background:var(--mint);color:#142219;font-weight:700}.daily-panel small{line-height:1.7}.daily-submit{display:flex;gap:8px;margin-top:8px}.daily-submit input{flex:1}#dailyClock{font-family:monospace;font-size:16px;margin-left:18px;color:var(--mint)}#dailyRanking{max-height:230px;overflow:auto}.ranking-row{display:grid;grid-template-columns:35px 1fr auto;gap:12px;padding:8px;border-bottom:1px solid var(--line);font-size:12px}.ranking-row.mine{background:#30462a;color:var(--mint)}.ranking-row span:nth-child(2){overflow-wrap:anywhere}@media(max-width:700px){.daily-panel{grid-template-columns:1fr;padding:16px;gap:18px}.daily-panel h2{font-size:21px}.daily-submit{flex-wrap:wrap}}

/* Game workspace — compact, high-contrast play surface. */
.game-page{--mint:#c1f878;--line:#2b3440;background:#0c1017;color:#e5eaf1;font-family:'DM Sans',system-ui,sans-serif}
.game-page header{height:72px;padding:0 28px;background:#111720;gap:16px}
.game-page header b{letter-spacing:1.4px;font-size:12px}
.game-page header small{color:#8390a0}.game-page .muted{color:#8c99aa}
.game-page .campaign-link{margin-left:auto;color:#c5d0df;text-decoration:none;font-size:12px;padding:10px 16px;border:1px solid var(--line);border-radius:9px}
.game-page .badge{margin-left:0;color:#93a1b3;font-size:9px}
.game-page main{max-width:1920px;padding:24px 28px}
.game-page .intro{margin-bottom:22px;gap:24px}
.game-page h1{font-size:32px;letter-spacing:-1.3px;margin:8px 0 0;font-weight:600}
.game-page .intro p{max-width:390px;font-size:12px;line-height:1.65;margin:0;color:#91a0b2}
.game-page .eyebrow{font-size:9px;letter-spacing:2px}
.game-page #campaignNav{display:flex;align-items:center;gap:20px;flex-wrap:wrap;background:#161d28;border:1px solid var(--line);border-radius:12px;padding:14px 18px;margin-bottom:16px;font-size:12px}
.game-page #campaignNav[hidden]{display:none}.game-page #campaignNav a{color:#a7b6c9;text-decoration:none}.game-page #campaignNav a:hover{color:var(--mint)}
.game-page .workspace{grid-template-columns:218px minmax(320px,1fr) 190px;border-radius:16px;background:#141b25;box-shadow:0 16px 48px #0003}
.game-page aside{padding:20px 14px}
.game-page #goldBudget{padding:14px;margin-bottom:24px;border:1px solid #6a5a32;border-radius:10px;color:#f4d48b;background:#2a251b;font-size:13px;line-height:1.7;font-variant-numeric:tabular-nums}
.game-page .panel-title{color:#8f9daf;font-size:9px;letter-spacing:1.6px;margin-bottom:14px}
.game-page button{border-radius:9px;transition:background .15s,border-color .15s,transform .15s}
.game-page button:hover:not(:disabled){background:#263244;border-color:#64758b}
.game-page button:focus-visible,.game-page input:focus-visible,.game-page a:focus-visible{outline:2px solid var(--mint);outline-offset:3px}
.game-page .tool{background:#1b2431;border-color:#303d4d;padding:15px 10px;gap:9px;min-height:68px}
.game-page .tool.active{background:#293725;border-color:#a5d96d;box-shadow:inset 3px 0 0 var(--mint)}
.game-page .tool b{font-size:11px}.game-page .tool small{color:#93a1b2;font-size:9px;line-height:1.4}.game-page .tool strong{font-size:15px;white-space:nowrap;color:#e6d6a9}
.game-page .icon{color:#9aacc1;font-size:25px}.game-page kbd{color:#99a7ba;top:4px;right:6px}
.game-page input:not([type]),.game-page input[type=text]{background:#0e141e;border-color:#354255;color:#d9e2ed;border-radius:8px}
.game-page label{color:#99a9bc}.game-page .text-button{color:#a7b6c9}
.game-page .hint{color:#8596ac;border-color:#39485d;font-size:10px}.game-page .hint b{color:#bbc8d9}
.game-page .board-panel{background:#0d141d}.game-page .board-top{padding:18px 16px;gap:12px;align-items:flex-start}.game-page .board-top b{color:#dbe4ef}
.game-page #dimensions{display:block;margin:7px 0 0 13px;font-size:9px;color:#8396aa;line-height:1.4}
.game-page .toggle{white-space:nowrap}.game-page .canvas-wrap{padding:0 14px;min-height:0}
.game-page canvas{border-color:#364553;border-radius:8px;box-shadow:0 8px 24px #0004}
.game-page .board-bottom{color:#95a7b8;padding:16px 14px;line-height:1.5}
.game-page .score{font-size:44px;letter-spacing:-2px;font-weight:600;font-variant-numeric:tabular-nums}.game-page .score span{color:#8b9bb0}
.game-page .gain{background:#263727;border-radius:6px;margin:15px 0}
.game-page .stat{color:#94a4b8;line-height:1.6}.game-page .stat b{color:#e0e8f1}
.game-page .stop{color:#aabace}.game-page .stop span{background:#1d2735;border-color:#364458}
.game-page .daily-panel{margin:24px 0 0;padding:22px;gap:32px;border-color:var(--line);border-radius:14px;background:linear-gradient(120deg,#1a2530,#131b26)}
.game-page .daily-panel h2{font-size:21px;letter-spacing:-.5px}.game-page .daily-panel p{color:#9fadc0}.game-page .daily-panel small{color:#8798ad}
.game-page footer{color:#7e91a8;line-height:1.8;gap:20px}.game-page footer a{color:#9daec2}
@media(min-width:1600px){.game-page .workspace{grid-template-columns:240px minmax(320px,1fr) 210px}}
@media(max-width:700px){.game-page header{padding:0 14px;height:64px;gap:10px}.game-page header small{display:none}.game-page header b{font-size:10px;letter-spacing:.5px}.game-page .campaign-link{padding:8px;font-size:10px}.game-page main{padding:20px 10px}.game-page h1{font-size:27px}.game-page .intro p{margin-top:12px}.game-page .workspace{display:flex}.game-page #goldBudget{grid-column:1/-1;margin:0}.game-page .tool{min-height:64px}.game-page .canvas-wrap{padding:0 6px}.game-page .daily-panel{grid-template-columns:1fr;padding:18px}.game-page footer{flex-direction:column}.game-page .board-bottom{font-size:8px}.game-page #campaignNav{gap:12px}}
@media(prefers-reduced-motion:reduce){.game-page button{transition:none}}

/* The timed challenge keeps its unrevealed board behind an explicit start. */
.game-page .challenge-lobby{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(260px,.7fr);gap:48px;align-items:center;max-width:1080px;margin:52px auto;padding:48px;border:1px solid #a8804e55;border-radius:18px;background:radial-gradient(ellipse at 90% 0%,#9c69381b,transparent 70%),#1e2b3b;box-shadow:0 18px 48px #0002}
.game-page .challenge-lobby[hidden],.game-page .map-details[hidden],.game-page #board[hidden]{display:none}
.game-page .challenge-lobby h1{font-size:34px;line-height:1.15;margin:16px 0 20px;letter-spacing:-1px}
.game-page .challenge-lobby p{color:#b3c1ce;font-size:14px;line-height:1.8}
.game-page .challenge-run-rules{display:grid;gap:11px;margin:25px 0;color:#9eafc1;font-size:12px}
.game-page .challenge-run-rules span::before{content:'✓';color:#d9ab6b;margin-right:10px}
.game-page .challenge-lobby-action{display:flex;flex-direction:column;align-items:stretch;text-align:center;padding:32px 22px;border:1px solid #dfb46f24;border-radius:14px;background:#101c2b66}
.game-page .challenge-clock-label{font-size:10px;letter-spacing:1.8px;color:#aeb7c2}
.game-page #challengeRunClock{font-family:'Space Grotesk',sans-serif;font-size:60px;font-weight:500;font-variant-numeric:tabular-nums;color:#efc184;margin:13px 0 26px;letter-spacing:-2px}
.game-page #challengeRunClock[data-state=closed]{font-size:35px;letter-spacing:-1px;color:#b5b9c0}
.game-page .challenge-start{padding:14px 18px;background:#d7aa6b;color:#192435;border-color:#d7aa6b;font-weight:700;font-size:13px}
.game-page .challenge-start:hover:not(:disabled){background:#edbf80;border-color:#edbf80}
.game-page #challengeRunStatus{font-size:12px;line-height:1.7;margin:16px 0;color:#bdc7d2}
.game-page #challengeRunStatus:empty{display:none}
.game-page .challenge-lobby-ranking{margin-top:15px;font-size:11px;color:#b2c1d1;border-color:transparent}
.game-page .challenge-lobby .challenge-run-warning{padding:12px 15px;border:1px solid #c4955766;border-radius:8px;background:#bc852c14;color:#efd0a4;font-size:12px}
.game-page .challenge-lobby .challenge-run-best{color:#e6c58f;font-weight:600}
.game-page #challengeBoardClock{display:block;margin:8px 0 0 13px;color:#efc184;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}.game-page #challengeBoardClock[hidden]{display:none}
@media(max-width:700px){.game-page .challenge-lobby{grid-template-columns:1fr;margin:18px auto;padding:26px 20px;gap:25px}.game-page .challenge-lobby h1{font-size:28px}.game-page .challenge-lobby-action{padding:24px}.game-page #challengeRunClock{font-size:50px}.game-page #leaderboard-view .ranking-modes{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* Blue slate with restrained warm accents; rocks retain their copper light. */
.game-page{--mint:#c4e69a;--line:#343c49;background:radial-gradient(ellipse at 10% 0%,#302c30 0%,transparent 52%),#131923;color:#e8e7e3}
.game-page header{background:#1a202b}.game-page .workspace{background:#1d2531}.game-page #campaignNav{background:#222a36}
.game-page .board-panel{background:#16212c}.game-page .tool{background:#26303e;border-color:#3b4758}
.game-page .tool.active{background:#344035;border-color:#acc58b}
.game-page .intro p,.game-page .hint,.game-page .stat{color:#a4adba}.game-page .hint b{color:#c9c8c1}
.game-page .score{color:#e5c39e}.game-page .eyebrow{color:#d3b598}
.game-page #goldBudget{background:#35302a;border-color:#74604a;color:#edcfa8}
.game-page .daily-panel{background:linear-gradient(120deg,#2c3038,#1d2734)}

/* Final workspace hierarchy and quieter controls. */
.game-page header{height:62px}.game-page main{padding:18px 22px}
.game-page #campaignNav{padding:12px 16px;margin-bottom:12px;border-radius:10px;background:#202834}
.game-page .workspace{grid-template-columns:206px minmax(320px,1fr) 184px;border-radius:12px}
.game-page aside{padding:18px 12px}.game-page #goldBudget{padding:16px;margin-bottom:20px;background:linear-gradient(135deg,#3a332b,#292c2d);border-color:#6a5844}
.game-page .gold-label{display:block;font-size:9px;letter-spacing:1.6px;color:#d1b899}.game-page #goldBudget strong{display:block;font-size:32px;line-height:1.5;font-family:'Space Grotesk',sans-serif;font-weight:500;letter-spacing:-1px}.game-page #goldBudget small{display:inline;font-size:13px;letter-spacing:0;color:#b8aa98}.game-page .gold-note{display:block;font-size:9px;color:#c0b29f}
.game-page .tool{min-height:60px;padding:12px 9px;border-radius:8px;margin-bottom:8px}.game-page .tool strong{font-size:13px}.game-page .tool .icon{font-size:23px;width:22px}.game-page .tool.active{box-shadow:inset 3px 0 0 #b5d78b,0 3px 12px #0002}
.game-page .panel-title{font-size:9px;letter-spacing:1.3px}.game-page .divider{margin:20px 0}
.game-page .hint{padding:12px 0;border:0;border-top:1px solid var(--line);margin-top:22px;font-size:10px}.game-page summary{cursor:pointer;color:#b7c1cc;font-size:10px;padding:3px 0}.game-page details[open] summary{margin-bottom:10px}.game-page summary:focus-visible{outline:2px solid var(--mint);outline-offset:4px}
.game-page .board-top{padding:14px}.game-page .board-bottom{padding:12px 14px}
.game-page .score{font-size:48px;line-height:1.05;margin-top:8px}.game-page .score span{margin-top:10px}.game-page .stat{border-bottom:1px solid #ffffff09;padding-bottom:12px;margin:14px 0}.game-page .stop{padding:7px 0}.game-page .stop span{border-radius:50%;width:23px;height:23px}
.game-page .daily-panel{box-shadow:inset 0 1px 0 #ffffff04}
@media(max-width:1100px){.game-page .workspace{grid-template-columns:190px minmax(300px,1fr)}.game-page .score{font-size:34px}.game-page .stats .stat{margin:0;padding:0;border:0}}
@media(max-width:700px){.game-page main{padding:12px 8px}.game-page .workspace{display:flex}.game-page #goldBudget{padding:10px 14px;margin:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}.game-page #goldBudget strong{font-size:24px}.game-page .gold-note{margin-left:auto}.game-page header{padding:0 10px}}

/* Neutral charcoal backdrop lets the stone and route colors lead. */
.game-page{--line:#3c4142;background:#1a1d1e;color:#e8e7e3}
.game-page header{background:#222627}
.game-page #campaignNav{background:#282d2e}
.game-page .workspace{background:#272c2d;box-shadow:0 16px 40px #0002}
.game-page .board-panel{background:#202626}
.game-page .tool{background:#303738;border-color:#454d4d}
.game-page .tool.active{background:#394237;border-color:#acc58b}
.game-page input:not([type]),.game-page input[type=text]{background:#202626;border-color:#454f4e}
.game-page canvas{border-color:#4b5652;box-shadow:0 8px 24px #0003}
.game-page .daily-panel{background:linear-gradient(120deg,#303530,#272d2d)}

/* Selected direction: Ink & Saffron. */
.game-page{--mint:#d9a052;--line:#344459;color-scheme:dark;background:#111e32;color:#e6e6dc}
.game-page header{background:#18283d}.game-page .brand{color:#d9a052}.game-page header b{color:#e6e6dc}.game-page header small,.game-page .muted,.game-page .badge{color:#9eaabd}
.game-page .campaign-link{color:#d9cbb6;border-color:#3e4c5e}.game-page #campaignNav{background:#1c2d43}.game-page #campaignNav a{color:#b6c0cd}
.game-page .workspace{background:#1f3047;border-color:#344459}.game-page .board-panel{background:#14253a}.game-page .board-top b{color:#e6e6dc}.game-page #dimensions{color:#98a9bf}
.game-page .tool{background:#263a51;border-color:#3c5067;color:#e6e6dc}.game-page .tool.active{background:#41382d;border-color:#d9a052;box-shadow:inset 3px 0 0 #d9a052}.game-page .tool.active .icon{color:#edbb78}.game-page .tool strong{color:#e9bb7d}.game-page .tool small,.game-page kbd{color:#aeb9c6}.game-page .icon{color:#9eafc0}
.game-page #goldBudget{background:linear-gradient(135deg,#403629,#283144);border-color:#876539;color:#edc488}.game-page .gold-label,.game-page #goldBudget small,.game-page .gold-note{color:#c8b394}
.game-page .panel-title,.game-page label,.game-page .text-button{color:#aab7c7}.game-page input:not([type]),.game-page input[type=text]{background:#17283c;border-color:#3c5067;color:#e6e6dc}
.game-page button:hover:not(:disabled){background:#344760;border-color:#8092a5}
.game-page canvas{border-color:#43556c}.game-page .board-bottom{color:#aab9ca}.game-page .score{color:#e5b36f}.game-page .gain{background:#41372a;color:#e6b674}.game-page .score span,.game-page .stat{color:#a8b5c5}.game-page .stat b{color:#e6e6dc}
.game-page .hint{border-color:#3c4c61;color:#a5b3c4}.game-page summary{color:#bdc7d3}.game-page .hint b{color:#dbd5c8}
.game-page .daily-panel{background:linear-gradient(120deg,#26354a,#192b41);border-color:#3c4c61}.game-page .daily-panel p{color:#b9c4cf}.game-page .daily-panel small{color:#9fadc0}.game-page footer,.game-page footer a{color:#a8b6c7}



/* Quiet blue-grey foundation. */
.game-page{--line:#383f49;background:#1b2027}
.game-page header{background:#232a33}
.game-page #campaignNav{background:#282f39}
.game-page .workspace{background:#2b323c;border-color:#383f49}
.game-page .board-panel{background:#202832}
.game-page .tool{background:#323b47;border-color:#46505e}
.game-page .tool.active{background:#3c3730;border-color:#b78f59}
.game-page input:not([type]),.game-page input[type=text]{background:#242c36;border-color:#424d5a}
.game-page canvas{border-color:#46525e}
.game-page .daily-panel{background:linear-gradient(120deg,#303944,#252e38);border-color:#414c58}
.game-page .lab-header{height:auto;min-height:100px;display:flex;justify-content:space-between;gap:25px;padding:18px 28px}
.game-page .lab-logo{display:flex;align-items:center;gap:14px;color:#e9b66e;text-decoration:none;flex-shrink:0}.lab-logo>img{width:62px;height:62px}.lab-logo>span{font-family:'Space Grotesk',sans-serif;font-size:32px;font-weight:700;letter-spacing:2px;line-height:1}.lab-logo .logo-lab{color:#e9edf0;margin-left:8px}.game-page .lab-logo small{font-size:8px;letter-spacing:3.1px;color:#a6b1bf;margin-top:12px}
.game-page .main-tabs{display:flex;align-self:stretch;align-items:center;gap:7px}.game-page .main-tabs button{padding:14px 22px;border:1px solid transparent;color:#aab6c6;font-size:14px;border-radius:7px}.game-page .main-tabs button[aria-selected=true]{color:#efbe7b;background:#d9a05214;border-color:#a17b484f;box-shadow:inset 0 -2px #d9a052}
.game-page [role=tabpanel][hidden]{display:none!important}.game-page #campaign-view iframe{width:100%;height:calc(100vh - 150px);min-height:650px;border:0;background:#1b2027;border-radius:12px}.game-page .view-title{font:500 32px 'Space Grotesk',sans-serif;color:#e6e6dc;letter-spacing:-1px;margin:15px 0 25px}.game-page .view-title span{display:block;font:12px 'DM Sans',sans-serif;color:#d9a052;letter-spacing:2px;margin-top:10px}
@media(max-width:700px){.game-page .lab-header{padding:16px;flex-direction:column;align-items:flex-start;gap:16px}.lab-logo>img{width:48px;height:48px}.lab-logo>span{font-size:27px}.game-page .main-tabs{width:100%;gap:5px}.game-page .main-tabs button{flex:1;padding:12px 8px;font-size:12px}}
.game-page .lab-logo{gap:16px}.lab-logo>img{width:68px;height:68px;filter:drop-shadow(0 4px 8px #0003)}.lab-logo>span{font-size:35px;letter-spacing:1.5px}.lab-logo .logo-lab{font-weight:500;color:#dce3ea;margin-left:7px}
@media(max-width:700px){.lab-logo>img{width:52px;height:52px}.lab-logo>span{font-size:29px}}
/* Refined wordmark proportions. */
.game-page .lab-logo{gap:18px}.lab-logo>img{width:60px;height:60px;filter:none}.lab-logo>span{font-size:34px;letter-spacing:2px;font-weight:700}.lab-logo .logo-lab{font-weight:400;margin-left:9px;color:#ced8e2}
@media(max-width:700px){.lab-logo>img{width:48px;height:48px}.lab-logo>span{font-size:27px;letter-spacing:1.4px}}

/* Maze Lab — refined graphite and brass interface. */
.game-page{--mint:#e5b574;--line:#303740;background:radial-gradient(ellipse at 50% -30%,#313c49 0,transparent 65%),#14181e;color:#ecece8}
.game-page .lab-header{min-height:108px;padding:20px 34px;background:transparent;border-bottom:1px solid #ffffff0b;max-width:1920px;margin:auto}
.game-page .lab-logo{gap:16px}.game-page .lab-logo>img{width:54px;height:54px}.game-page .lab-logo>span{font-size:33px;letter-spacing:-1px;color:#f0c68c}.game-page .lab-logo .logo-lab{color:#e1e5e9;letter-spacing:2px;font-weight:400}
.game-page .main-tabs{align-self:center;gap:4px;padding:5px;background:#0e121780;border:1px solid #ffffff0a;border-radius:14px}
.game-page .main-tabs button{padding:12px 23px;font-size:12px;font-weight:600;border-radius:9px;color:#99a4b2}
.game-page .main-tabs button[aria-selected=true]{background:#30343a;color:#f1cc97;border-color:#ffffff10;box-shadow:0 3px 9px #0003}
.game-page main{padding:22px 28px 16px}
.game-page .workspace{grid-template-columns:218px minmax(320px,1fr) 192px;gap:12px;background:transparent;border:0;border-radius:0;box-shadow:none;overflow:visible;align-items:start}
.game-page .workspace>aside{background:linear-gradient(155deg,#252c35,#20262e);border:1px solid #ffffff0b;border-radius:16px;padding:20px 14px;box-shadow:0 8px 22px #0001}
.game-page .board-panel{background:#1c222a;border:1px solid #ffffff10;border-radius:16px;overflow:hidden;box-shadow:0 12px 35px #0003}
.game-page .panel-title{color:#a1aab5;letter-spacing:1.7px;font-size:9px;font-weight:600;margin:2px 0 18px}.game-page .panel-title span{color:#798593}
.game-page .tool{background:#ffffff03;border:1px solid #ffffff0b;border-radius:10px;min-height:66px;margin-bottom:9px;padding:13px 10px;gap:10px}
.game-page .tool b{font-size:11px;font-weight:600;color:#e5e8eb}.game-page .tool small{color:#94a0ae;font-size:9px;margin-top:5px}.game-page .tool strong{color:#dcc3a0;font-size:16px;font-weight:500}
.game-page .tool.active{background:linear-gradient(110deg,#d5a36120,#d5a36108);border-color:#b98b4c80;box-shadow:inset 2px 0 #e5b574}.game-page .tool.active b{color:#f0c991}
.game-page .tool .icon{width:28px;color:#aab6c4}.game-page .tool.active .icon{color:#e5b574}.game-page kbd{font-size:8px;color:#788493}
.game-page button:hover:not(:disabled){background:#ffffff09;border-color:#7b8795}.game-page button:active:not(:disabled){transform:translateY(1px)}
.game-page #goldBudget{border-color:#d2a46b40;background:linear-gradient(120deg,#a17b4524,#ffffff02);border-radius:12px;padding:14px;margin-bottom:22px}.game-page #goldBudget strong{font-size:34px;color:#f0c78f}.game-page .gold-label{font-size:8px;letter-spacing:1.5px}
.game-page .divider{background:#ffffff0b;margin:22px 0}.game-page input:not([type]),.game-page input[type=text]{background:#161c23;border-color:#ffffff12;border-radius:8px;color:#d9e0e8}.game-page .secondary{border-color:#ffffff18;background:#ffffff03;padding:12px 8px;font-size:10px}.game-page .text-button{color:#aab4bf;font-size:9px;padding-top:13px}
.game-page .board-top{padding:18px 18px 16px;align-items:center}.game-page .board-top b{font-size:10px;letter-spacing:1.8px;color:#dce3ea}.game-page .live-dot{width:6px;height:6px;background:#e5b574;box-shadow:0 0 0 4px #e5b57410}.game-page #dimensions{font-size:9px;color:#8995a4;margin-top:8px}.game-page .toggle{font-size:10px;color:#b4bdc7;gap:7px}
.game-page .canvas-wrap{padding:0 12px}.game-page canvas{border-radius:7px;border-color:#ffffff16;box-shadow:none}.game-page .board-bottom{padding:13px 17px;color:#95a1af;font-size:9px}.game-page .legend{border-radius:2px}
.game-page .score{font-size:48px;font-weight:500;letter-spacing:-2px;color:#f1c58b;margin-top:4px}.game-page .score span{font-size:8px;letter-spacing:2px;color:#98a4b2;margin-top:12px}.game-page .gain{background:#d9a05212;border:1px solid #d9a05220;color:#dbb47f;border-radius:7px;padding:7px 10px;font-size:9px;margin:18px 0 9px}
.game-page .stat{font-size:10px;color:#9ca7b5;margin:15px 0;padding-bottom:13px;border-color:#ffffff09}.game-page .stat b{font-weight:500;color:#e0e4e9}.game-page .stop{position:relative;gap:11px;padding:8px 0;font-size:10px;color:#bdc7d2}.game-page .stop span{width:25px;height:25px;background:#1a2028;border-color:#46515e;border-radius:8px;font-size:9px}.game-page .stop:not(:last-child)::after{content:'';position:absolute;width:1px;height:10px;left:12px;bottom:-5px;background:#49535e}
.game-page .hint{border-color:#ffffff0b;margin-top:20px}.game-page summary{font-size:9px;color:#9aa7b6;line-height:1.6}.game-page .hint p{color:#9aa7b6}
.game-page #campaignNav{border-color:#ffffff0b;background:#232a33;border-radius:12px;padding:14px 18px;margin-bottom:16px}.game-page .daily-panel{background:#232a33;border-color:#ffffff10;border-radius:16px}.game-page footer{font-size:8px;color:#707e8f;padding:0 4px;margin-top:20px}.game-page footer a{color:#8592a3;text-decoration:none}.game-page footer a:hover{color:#e5b574}
@media(max-width:1100px){.game-page .workspace{grid-template-columns:200px minmax(300px,1fr)}.game-page .workspace>.stats{grid-column:1/-1;padding:16px 20px}.game-page .score{font-size:34px}.game-page .stats .stat{padding:0;margin:0}}
@media(max-width:700px){.game-page .lab-header{padding:18px 16px;min-height:0;gap:20px}.game-page .lab-logo>img{width:44px;height:44px}.game-page .lab-logo>span{font-size:29px}.game-page .main-tabs{width:100%}.game-page .main-tabs button{padding:11px 8px}.game-page main{padding:12px 8px}.game-page .workspace{display:flex;gap:10px}.game-page .workspace>aside{padding:14px;width:100%}.game-page .tool{margin:0;min-height:62px}.game-page .board-panel{width:100%}.game-page .board-top{padding:14px}.game-page .canvas-wrap{padding:0 6px}.game-page .board-bottom{font-size:8px}.game-page #goldBudget{margin:0}}

/* Legible tool labels and a consistent purpose-drawn icon set. */
.game-page .workspace{grid-template-columns:250px minmax(320px,1fr) 212px}
.game-page .tool{min-height:76px;padding:14px 11px;gap:11px}
.game-page .tool .icon{display:grid;place-items:center;width:30px;min-width:30px;height:32px}
.game-page .tool .icon svg{display:block;width:28px;height:28px}
.game-page .tool b{font-size:14px;line-height:1.3}
.game-page .tool small{font-size:11px;line-height:1.45}
.game-page .tool strong{font-size:18px}
.game-page kbd{font-size:10px}
.game-page .panel-title{font-size:11px;letter-spacing:1.3px}
.game-page .panel-title span{font-size:10px}
.game-page label,.game-page .toggle{font-size:12px}
.game-page input:not([type]),.game-page input[type=text]{font-size:12px}
.game-page .secondary,.game-page .text-button,.game-page summary{font-size:12px}
.game-page .hint{font-size:12px;line-height:1.65}
.game-page .board-top b{font-size:12px}
.game-page #dimensions,.game-page .board-bottom{font-size:11px}
.game-page .stat,.game-page .stop{font-size:12px}
.game-page .stop span{font-size:11px}
.game-page .gain{font-size:11px}
.game-page .score span,.game-page .gold-label,.game-page .gold-note{font-size:10px}
.game-page .main-tabs button{font-size:14px}
@media(max-width:1100px){.game-page .workspace{grid-template-columns:235px minmax(300px,1fr)}}
@media(max-width:700px){.game-page .workspace{display:flex}.game-page .tool{padding:12px 8px;gap:7px}.game-page .tool b{font-size:12px}.game-page .tool small{font-size:10px}.game-page .tool .icon{width:24px;min-width:24px}.game-page .tool .icon svg{width:24px;height:24px}.game-page .tool strong{font-size:15px}.game-page .main-tabs button{font-size:12px}.game-page .board-bottom{font-size:10px}}

/* Fit the complete board and its controls into the desktop viewport. */
@media(min-width:701px){
 .game-page #play-view .workspace{height:calc(100dvh - 152px);min-height:0;grid-template-columns:250px minmax(0,1fr) 212px;align-items:stretch}
 .game-page #play-view:has(#campaignNav:not([hidden])) .workspace{height:calc(100dvh - 218px)}
 .game-page .workspace>aside{min-height:0;overflow-y:auto;scrollbar-width:thin}
 .game-page .board-panel{min-height:0;display:flex;flex-direction:column}
 .game-page .board-top,.game-page .board-bottom{flex-shrink:0}
 .game-page .canvas-wrap{flex:1;min-height:0;min-width:0;justify-content:center;overflow:hidden}
 .game-page canvas{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
 .game-page .workspace>.stats{grid-column:auto;display:block}
 .game-page .stats .divider,.game-page .stats .hint,.game-page .stats #stops,.game-page .stats>.panel-title{display:block}
 .game-page footer{margin-top:12px}
}
@media(min-width:701px) and (max-width:1100px){
 .game-page #play-view .workspace{grid-template-columns:200px minmax(0,1fr) 155px;gap:8px}
 .game-page .workspace>aside{padding:14px 10px}
 .game-page .tool{padding:11px 7px;gap:6px}.game-page .tool b{font-size:12px}.game-page .tool small{font-size:10px}
 .game-page .tool .icon{min-width:24px;width:24px}.game-page .tool .icon svg{width:24px}
 .game-page .board-bottom>span:last-child{display:none}
 .game-page .stats .stat{margin:12px 0;padding-bottom:10px;min-width:0}.game-page .score{font-size:34px}
}

.game-page .header-actions{display:flex;align-items:center;gap:18px;min-width:0}
.game-page .new-map{padding:13px 18px;border:1px solid #bc935965;background:#d9a05212;color:#efc48b;font-size:13px;font-weight:600;border-radius:10px;white-space:nowrap}
.game-page .board-actions{display:flex;align-items:center;gap:16px}
.game-page #fullscreen{display:flex;align-items:center;gap:7px;padding:8px 10px;font-size:11px;color:#c5cfd9;border-color:#ffffff18}
.game-page #play-view .workspace:fullscreen{width:100vw;height:100dvh;max-width:none;margin:0;padding:12px;background:#14181e;grid-template-columns:250px minmax(0,1fr) 212px;border-radius:0}
@media(max-width:1100px){.game-page #play-view .workspace:fullscreen{grid-template-columns:200px minmax(0,1fr) 155px}.game-page .header-actions{gap:10px}.game-page .board-actions{gap:8px}}
@media(max-width:700px){.game-page .header-actions{width:100%;flex-wrap:wrap;gap:12px}.game-page .header-actions .main-tabs{order:-1}.game-page .new-map{width:100%;padding:10px}.game-page .board-actions{gap:6px}.game-page #fullscreen{font-size:10px;padding:6px}.game-page #play-view .workspace:fullscreen{display:flex;overflow:auto}.game-page .workspace:fullscreen .board-panel{flex:1;min-height:50vh}}

.game-page .main-tabs button{padding:12px 16px;min-height:44px}
.game-page .lab-view-head{display:flex;justify-content:space-between;align-items:center;gap:24px;margin:0 0 14px}
.game-page .lab-view-head h1{font-size:28px;color:#efc48b;margin:0}
.game-page .lab-view-head p,.game-page .lab-help{font-size:12px;color:#a7b3c1;line-height:1.6}
.game-page select{font:inherit;color:#e2e6eb;background:#252d38;border:1px solid #485363;border-radius:8px;padding:10px}


#practiceEditor{margin-bottom:20px;border:1px solid #bc935950;border-radius:10px;padding:12px;background:#d9a05208}#practiceEditor summary{font-size:14px;color:#edc48e;font-weight:600;margin-bottom:12px}#practiceEditor label{display:grid;gap:5px;margin:10px 0;font-size:11px}#practiceEditor select,#practiceEditor input[type=number]{width:100%;min-width:0;padding:8px;background:#1b222b;color:#e3e8ef;border:1px solid #465361;border-radius:6px;font:inherit}#practiceEditor button{font-size:11px;padding:9px 6px;flex:1}#practiceEditor .editor-fields{display:grid;grid-template-columns:1fr 1fr;gap:8px}#practiceEditor .editor-actions{display:flex;gap:6px;margin-top:8px}.editor-help{font-size:11px;line-height:1.5;color:#a9b5c3}#editSize{width:100%}@media(max-width:700px){#practiceEditor{grid-column:1/-1}}
#practiceEditor .editor-modes{display:grid;grid-template-columns:1fr 1fr;gap:6px}#practiceEditor .editor-modes button{font-size:12px;padding:11px 5px}#practiceEditor .editor-modes .active{background:#d9a05226;border-color:#c9a36b;color:#f2cb96}#practiceEditor .primary{background:#dcb071;color:#252019}#practiceEditor .editor-settings{margin-top:12px;border-top:1px solid #ffffff12;padding-top:10px}#practiceEditor .editor-settings summary{font-size:12px;margin:0;color:#bfcbd7}#practiceEditor [hidden]{display:none!important}

#practiceEditor .editor-modes{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:54px}
#practiceEditor .editor-modes button{width:100%;height:100%;min-width:0;margin:0;padding:8px 5px;display:flex;align-items:center;justify-content:center;text-align:center;line-height:1.25}


/* Shared challenge navigation and period rankings. */
.game-page #campaignNav{gap:14px;min-height:54px;padding:10px 16px;margin-bottom:14px}
#campaignNav strong{font-size:13px;color:#efd0a5}#challengeClock{font-size:12px;color:#a6b4c3;font-variant-numeric:tabular-nums}#openDaily{margin-left:auto}#campaignNav button{padding:8px 12px;font-size:12px}
.game-page #challengeEntry{margin-top:20px}.game-page #challengeEntry label{display:block;margin-bottom:9px}.game-page #challengeEntry input{width:100%;font-size:12px}.game-page .submit-button{width:100%;margin-top:10px;padding:11px 7px;color:#f1c88e;border-color:#bb955c70;background:#bc94550c}.game-page #challengeStatus{font-size:12px;line-height:1.65;color:#aab8c6;overflow-wrap:anywhere}
.game-page .gold-label,.game-page .gold-note{display:block}.game-page #goldBudget strong{display:block}.game-page #goldBudget strong small{display:inline;font-size:14px}
.game-page #weekly-view iframe,.game-page #campaign-view iframe{width:100%;height:calc(100dvh - 155px);min-height:650px;border:0;background:transparent;border-radius:12px}
.game-page select{font:inherit;font-size:14px;color:#e2e6eb;background:#171e27;border:1px solid #465263;border-radius:8px;padding:12px;width:100%;min-width:0}
.game-page [hidden]{display:none!important}.game-page .main-tabs button{white-space:nowrap}.game-page select:focus-visible{outline:2px solid #e5b574;outline-offset:3px}
@media(min-width:701px){.game-page #play-view .workspace{height:calc(100dvh - 224px);min-height:420px}.game-page .workspace>aside{overflow-y:auto}.game-page #play-view .workspace:fullscreen{height:100dvh}}
@media(max-width:1100px){.game-page .lab-header{flex-wrap:wrap}.game-page .header-actions{gap:10px}.game-page .main-tabs button{padding:10px}.game-page #campaignNav{gap:10px}#campaignNav strong{width:100%}#openDaily{margin-left:0}}
@media(max-width:700px){.game-page #campaignNav{align-items:center}#challengeClock{width:100%;font-size:11px}#challengeEntry{width:100%}.game-page .workspace>.stats{display:block}.game-page .stats .stat{display:flex;margin:13px 0}.game-page .stats>.panel-title{display:block}.game-page #challengeEntry .divider{display:block}.game-page #campaign-view iframe,.game-page #weekly-view iframe{height:80vh;min-height:700px}.game-page .header-actions{width:100%}.game-page .main-tabs{width:100%}.game-page .main-tabs button{flex:1}}

/* Leaderboards — scoped to keep the game workspace unchanged. */
#leaderboard-view{max-width:1280px;min-height:65vh;margin:0 auto;padding:8px 0 18px;--ranking-muted:#a7b2c0;--ranking-gold:#edc48e;--ranking-border:#ffffff12}
#leaderboard-view .ranking-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 2px 26px}
#leaderboard-view .ranking-heading .eyebrow{color:#b69a75;font-size:10px;letter-spacing:1.8px}
#leaderboard-view .ranking-heading .view-title{margin:9px 0 0;font-size:32px;font-weight:500;line-height:1.2;letter-spacing:-1px;color:#f0f1ef}
#leaderboard-view .ranking-heading p{font-size:14px;line-height:1.7;color:#d2d8df;margin:0;text-align:right}
#leaderboard-view .ranking-heading p span{color:var(--ranking-muted);font-size:12px}
#leaderboard-view button,#leaderboard-view select,#leaderboard-view input{min-height:44px;font-family:inherit;font-size:13px}
#leaderboard-view button:focus-visible,#leaderboard-view select:focus-visible,#leaderboard-view input:focus-visible{outline:2px solid var(--ranking-gold);outline-offset:3px}
#leaderboard-view button:disabled{opacity:.36;cursor:not-allowed}
#leaderboard-view .ranking-modes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:18px}
#leaderboard-view .ranking-modes button{display:flex;align-items:center;gap:13px;padding:17px 19px;min-height:78px;background:#202730;border:1px solid var(--ranking-border);border-radius:11px;text-align:left;color:#9faebb}
#leaderboard-view .ranking-modes button>svg{width:23px;height:23px;flex:none}
#leaderboard-view .ranking-modes strong{font-size:15px;font-weight:600;line-height:1.2;color:#d6dde5}
#leaderboard-view .ranking-modes small{font-size:11px;line-height:1.3;margin:5px 0 0;color:#96a3b2}
#leaderboard-view .ranking-mode-dot{height:7px;width:7px;flex:none;margin-left:auto;border-radius:50%;border:1px solid #6a7582}
#leaderboard-view .ranking-modes button:hover:not(:disabled){background:#28313b;border-color:#627184}
#leaderboard-view .ranking-modes button[aria-pressed=true]{background:#e5b5740c;border-color:#b68e566b;color:var(--ranking-gold);box-shadow:inset 0 2px 0 #d8ad74}
#leaderboard-view .ranking-modes button[aria-pressed=true] strong{color:#f0cf9f}
#leaderboard-view .ranking-modes button[aria-pressed=true] small{color:#c2b29d}
#leaderboard-view .ranking-modes button[aria-pressed=true] .ranking-mode-dot{background:var(--ranking-gold);border-color:var(--ranking-gold)}
#leaderboard-view .ranking-context{background:#202730;border:1px solid var(--ranking-border);border-radius:12px;margin-bottom:18px;overflow:hidden}
#leaderboard-view .ranking-filters{display:flex;align-items:flex-end;gap:20px;padding:19px 24px;border-bottom:1px solid var(--ranking-border);background:#ffffff02}
#leaderboard-view .ranking-filters label{display:grid;gap:8px;color:#aebac8;font-size:11px;font-weight:500;letter-spacing:.15px}
#leaderboard-view .ranking-period-field{flex:0 1 375px;min-width:0}
#leaderboard-view .ranking-period-field>label{margin-bottom:8px}
#leaderboard-view .ranking-period-controls{display:flex;gap:6px;align-items:center}
#leaderboard-view select{background:#161d25;border:1px solid #3b4654;border-radius:7px;padding:10px 34px 10px 12px;width:100%;min-width:0;color:#e0e6ec;font-size:13px}
#leaderboard-view .ranking-period-controls select{flex:1}
#leaderboard-view .ranking-arrow{display:grid;place-items:center;flex:none;width:44px;min-height:44px;padding:10px;background:#ffffff03;border-color:#3b4654;border-radius:7px;color:#b7c3d1}
#leaderboard-view .ranking-arrow svg{width:19px;height:19px}
#leaderboard-view #rankingCardField{flex:0 1 285px;min-width:170px}
#leaderboard-view #rankingNow{margin-left:auto;padding:11px 0 11px 12px;white-space:nowrap;border:0;color:var(--ranking-gold);font-size:12px;background:none}
#leaderboard-view #rankingNow:hover{color:#ffe0b5}
#leaderboard-view #rankingNow span{margin-left:4px}
#leaderboard-view .ranking-period-overview{display:flex;align-items:center;justify-content:space-between;gap:30px;padding:23px 24px 25px}
#leaderboard-view .ranking-period-copy{min-width:0}
#leaderboard-view .ranking-period-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
#leaderboard-view #rankingPeriodTitle{margin:0;font-family:'Space Grotesk',sans-serif;font-size:23px;line-height:1.3;font-weight:500;letter-spacing:-.6px;color:#edf0f3}
#leaderboard-view .ranking-state{display:inline-flex;align-items:center;gap:6px;border:1px solid #91bdaa35;border-radius:5px;background:#83b59b0b;color:#bad3c8;padding:4px 7px;font-size:10px;font-weight:500;line-height:1.2;white-space:nowrap}
#leaderboard-view .ranking-state::before{content:'';height:5px;width:5px;border-radius:50%;background:currentColor}
#leaderboard-view .ranking-state[data-state=closed]{color:#acb6c3;background:#ffffff04;border-color:#ffffff15}
#leaderboard-view .ranking-state[data-state=closed]::before{display:none}
#leaderboard-view #rankingDescription{margin:9px 0 0;font-size:13px;line-height:1.65;color:var(--ranking-muted)}
#leaderboard-view #rankingDeadline{margin:8px 0 0;font-size:11px;line-height:1.5;color:#c3ad8f;font-variant-numeric:tabular-nums}
#leaderboard-view #rankingDeadline:empty{display:none}
#leaderboard-view #rankingPlay{display:flex;align-items:center;justify-content:center;gap:25px;flex:none;padding:13px 20px;min-height:46px;background:#e5b574;border:1px solid #f3cc97;border-radius:8px;color:#2d2419;font-size:13px;font-weight:700;box-shadow:0 3px 8px #0002}
#leaderboard-view #rankingPlay:hover:not(:disabled){background:#f1c992;border-color:#ffdfa9}
#leaderboard-view .ranking-personal{display:grid;grid-template-columns:1.45fr repeat(3,1fr);align-items:center;gap:0;background:#dfb5780a;border:1px solid #b48e5552;border-radius:10px;padding:18px 22px;margin:0 0 24px}
#leaderboard-view .ranking-personal-intro{display:flex;align-items:center;gap:12px;min-width:0;padding-right:20px}
#leaderboard-view .ranking-personal-icon{display:grid;place-items:center;flex:none;width:38px;height:38px;border:1px solid #dcb67c30;border-radius:10px;color:#d1b58c;background:#dcb67c08}
#leaderboard-view .ranking-personal-icon svg{width:19px;height:19px}
#leaderboard-view .ranking-personal-intro strong{font-size:12px;color:#ddc09a;font-weight:600}
#leaderboard-view #rankingMyHint{margin:5px 0 0;font-size:11px;line-height:1.5;color:#a8b1bc}
#leaderboard-view .ranking-personal-stat{min-width:0;padding:1px 22px;border-left:1px solid #dcb67c20}
#leaderboard-view .ranking-personal-stat>span{display:block;font-size:11px;line-height:1.4;color:#b3b9bf}
#leaderboard-view .ranking-personal-stat>strong{display:block;margin-top:6px;font-family:'Space Grotesk',sans-serif;font-size:22px;font-weight:500;line-height:1.2;letter-spacing:-.4px;color:#ecd0a7;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
#leaderboard-view .ranking-results{margin-top:25px}
#leaderboard-view .ranking-results-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:13px;padding:0 2px}
#leaderboard-view .ranking-results-title{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
#leaderboard-view .ranking-results-title h2{font-size:16px;font-weight:600;letter-spacing:-.2px;color:#e1e7ed;margin:0}
#leaderboard-view #rankingCount{padding:4px 8px;border:1px solid #ffffff0c;border-radius:5px;background:#ffffff04;color:#9eacbb;font-size:11px;white-space:nowrap;font-variant-numeric:tabular-nums}
#leaderboard-view .ranking-search-actions{display:flex;align-items:center;gap:8px}
#leaderboard-view .ranking-search{display:flex;align-items:center;gap:8px;padding:0 12px;border:1px solid #384350;border-radius:7px;background:#171d25;color:#8b9aaa}
#leaderboard-view .ranking-search:focus-within{outline:2px solid var(--ranking-gold);outline-offset:3px}
#leaderboard-view .ranking-search>svg{width:17px;height:17px;flex:none}
#leaderboard-view #rankingSearch{width:185px;padding:11px 0;background:transparent;border:0;border-radius:0;color:#dce3eb;font-size:12px;min-width:0;outline:none;box-shadow:none}
#leaderboard-view #rankingSearch::placeholder{color:#97a4b4;opacity:1}
#leaderboard-view #rankingFindMe{display:flex;align-items:center;justify-content:center;gap:7px;padding:10px 13px;border:1px solid #4e4b44;border-radius:7px;color:#e0c092;background:#dcb67c08;font-size:12px;white-space:nowrap}
#leaderboard-view #rankingFindMe svg{width:17px;height:17px}
#leaderboard-view .ranking-table-wrap{border:1px solid #ffffff13;border-radius:10px;overflow-x:auto;max-width:100%;background:#1d242d;scrollbar-width:thin}
#leaderboard-view .ranking-table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:14px;text-align:left}
#leaderboard-view .ranking-table th{font-size:10px;font-weight:500;color:#a1b0c1;letter-spacing:1px;text-transform:uppercase;background:#252e39;line-height:1.6}
#leaderboard-view .ranking-table th,#leaderboard-view .ranking-table td{padding:16px 22px;border-bottom:1px solid #ffffff0b}
#leaderboard-view .ranking-table th:first-child{width:92px}
#leaderboard-view .ranking-table th:nth-child(3){width:160px}
#leaderboard-view .ranking-table th:last-child{width:245px;text-align:right}
#leaderboard-view .ranking-table th:nth-child(3),#leaderboard-view .ranking-table td:nth-child(3){text-align:right}
#leaderboard-view .ranking-table td{height:76px;color:#d2dae4;font-variant-numeric:tabular-nums}
#leaderboard-view .ranking-table tr:last-child td{border-bottom:0}
#leaderboard-view .ranking-table tbody tr:hover{background:#ffffff05}
#leaderboard-view .ranking-sort-indicator{display:inline-block;color:#ddbb8b;font-size:13px;margin-left:6px;letter-spacing:0}
#leaderboard-view .rank-badge{display:grid;place-items:center;width:34px;height:34px;border-radius:7px;border:1px solid transparent;color:#8f9fb1;font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:500}
#leaderboard-view .rank-top-1 .rank-badge{background:#d9b67912;border-color:#d9b6794d;color:#efd0a0}
#leaderboard-view .rank-top-2 .rank-badge{background:#b4c9df0a;border-color:#b4c9df2e;color:#c7d4e2}
#leaderboard-view .rank-top-3 .rank-badge{background:#c595750b;border-color:#c5957533;color:#d7b094}
#leaderboard-view .player-cell{display:flex;align-items:center;gap:12px;min-width:0}
#leaderboard-view .player-avatar{display:grid;place-items:center;flex:none;width:34px;height:34px;border-radius:50%;background:#303c4b;border:1px solid #c3d0df0d;color:var(--avatar-color,#b7c5d6);font-family:'Space Grotesk',sans-serif;font-size:11px;font-weight:500}
#leaderboard-view .player-identity{min-width:0;line-height:1.5}
#leaderboard-view .player-name{min-width:0;overflow-wrap:anywhere;color:#dce3eb;font-size:14px;font-weight:500;line-height:1.45}
#leaderboard-view .player-tag{display:inline-flex;align-items:center;flex:none;margin-left:4px;padding:3px 6px;border:1px solid #ffffff14;border-radius:4px;background:#ffffff04;color:#9dabbc;font-size:9px;font-weight:500;line-height:1}
#leaderboard-view .player-tag.is-me{border-color:#d0a97140;background:#d0a97110;color:#ebc58f}
#leaderboard-view .player-tag.is-demo{color:#8da0b6;font-size:9px}
#leaderboard-view .rank-score{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#leaderboard-view .rank-score strong{font-family:'Space Grotesk',sans-serif;font-size:18px;line-height:1.2;font-weight:500;letter-spacing:-.35px;color:#e0e6ed}
#leaderboard-view .rank-score .rank-score-unit{display:inline;margin-left:5px;font-size:10px;color:#8f9fb0;letter-spacing:0}
#leaderboard-view .rank-score-bar{height:3px;width:126px;max-width:100%;margin:9px 0 0 auto;border-radius:4px;background:#ffffff09;overflow:hidden}
#leaderboard-view .rank-score-bar>span{display:block;height:100%;border-radius:4px;background:#6f829a}
#leaderboard-view .rank-top-1 .rank-score strong{color:#e9c99d}
#leaderboard-view .rank-top-1 .rank-score-bar>span{background:#c5a16b}
#leaderboard-view .rank-completion{width:82px;margin-left:auto;text-align:right;font-size:12px;color:#aab8c8}
#leaderboard-view .rank-completion>span{display:block;white-space:nowrap;font-variant-numeric:tabular-nums}
#leaderboard-view .rank-completion>i{display:block;height:3px;margin:8px 0 0;border-radius:4px;background:#ffffff0b;overflow:hidden}
#leaderboard-view .rank-completion>i>b{display:block;height:100%;background:#789283;border-radius:4px}
#leaderboard-view .ranking-table tr.is-mine{background:#d9b6790c;scroll-margin-block:95px}
#leaderboard-view .ranking-table tr.is-mine td{border-top:1px solid #d7af7228;border-bottom:1px solid #d7af7228}
#leaderboard-view .ranking-table tr.is-mine td:first-child{box-shadow:inset 3px 0 #d2a971}
#leaderboard-view .ranking-table tr.is-mine:focus-visible{outline:2px solid #e5b574;outline-offset:-3px}
#leaderboard-view .is-mine .player-avatar{background:#b9915820;border-color:#d9b67935;color:#e5c498}
#leaderboard-view .is-mine .player-name,#leaderboard-view .is-mine .rank-score strong,#leaderboard-view .is-mine .rank-badge{color:#f0cf9f}
#leaderboard-view .is-mine .rank-score-bar>span{background:#c8a06b}
#leaderboard-view #rankingEmpty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;min-height:220px;padding:34px 24px;text-align:center;font-size:14px;line-height:1.7;color:#a8b6c5}
#leaderboard-view .ranking-empty-icon{display:grid;place-items:center;width:52px;height:52px;border:1px solid #d0ad7840;border-radius:14px;color:#c3a575;background:#d0ad780a;margin-bottom:4px}
#leaderboard-view .ranking-empty-icon svg{width:28px;height:28px}
#leaderboard-view #rankingEmpty strong{font-size:16px;color:#dce2e9;font-weight:500}
#leaderboard-view #rankingEmpty p{max-width:390px;margin:0;color:#a7b4c3;font-size:13px;line-height:1.7}
#leaderboard-view .ranking-status-line{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:0 2px;min-height:40px}
#leaderboard-view #rankingInfo{font-size:11px;line-height:1.65;color:#91a1b4;margin:12px 0;min-height:18px}
#leaderboard-view #rankingRetry{padding:8px 12px;color:#edc48e;border-color:#b48e5552;font-size:12px;flex:none}
#leaderboard-view[aria-busy=true] #rankingInfo{color:#d8bd98}
#leaderboard-view #rankingDemoNote{padding:9px 12px;margin:5px 0 12px;font-size:11px;line-height:1.5;background:#ffffff03;border:1px dashed #ffffff19;border-radius:6px;color:#9dabbc}
#leaderboard-view .ranking-footnotes{display:grid;grid-template-columns:1.1fr 1fr;gap:38px;margin:12px 2px 0;padding-top:18px;border-top:1px solid #ffffff0b}
#leaderboard-view .ranking-footnotes p{margin:0;color:#8798ac;font-size:11px;line-height:1.8}
#leaderboard-view .ranking-footnotes strong{display:block;font-size:11px;font-weight:500;color:#b6c2d0;margin-bottom:3px}
#leaderboard-view .ranking-footnotes small{font-size:10px;line-height:1.7;color:#8391a3;margin-top:4px}
#leaderboard-view .ranking-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(max-width:1000px){
  #leaderboard-view .ranking-personal{grid-template-columns:repeat(3,minmax(0,1fr));padding:18px 20px}
  #leaderboard-view .ranking-personal-intro{grid-column:1/-1;padding:0 0 15px;gap:10px}
  #leaderboard-view .ranking-personal-icon{width:30px;height:30px;border-radius:7px}
  #leaderboard-view .ranking-personal-intro>div{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
  #leaderboard-view #rankingMyHint{margin:0}
  #leaderboard-view .ranking-personal-stat{padding:0 18px}
  #leaderboard-view .ranking-personal-stat:nth-child(2){border:0;padding-left:0}
  #leaderboard-view .ranking-personal-stat:last-child{padding-right:0}
  #leaderboard-view .ranking-table th:last-child{width:200px}
  #leaderboard-view .ranking-table th:nth-child(3){width:130px}
  #leaderboard-view .ranking-filters{gap:15px;flex-wrap:wrap}
}
@media(max-width:700px){
  #leaderboard-view{padding:6px 2px 15px}
  #leaderboard-view .ranking-heading{display:block;padding:0 3px 20px}
  #leaderboard-view .ranking-heading .view-title{font-size:28px}
  #leaderboard-view .ranking-heading p{font-size:12px;margin-top:12px;text-align:left}
  #leaderboard-view .ranking-heading p br{display:none}
  #leaderboard-view .ranking-heading p span{display:block;font-size:11px}
  #leaderboard-view .ranking-modes{gap:7px;margin-bottom:13px}
  #leaderboard-view .ranking-modes button{min-height:76px;gap:7px;padding:12px 10px;position:relative}
  #leaderboard-view .ranking-modes button>svg{display:none}
  #leaderboard-view .ranking-modes strong{font-size:13px}
  #leaderboard-view .ranking-modes small{font-size:9px;line-height:1.5;margin-top:5px}
  #leaderboard-view .ranking-mode-dot{position:absolute;right:9px;top:14px;width:5px;height:5px}
  #leaderboard-view .ranking-context{margin-bottom:14px}
  #leaderboard-view .ranking-filters{padding:15px;gap:13px}
  #leaderboard-view .ranking-period-field{flex:1 1 100%}
  #leaderboard-view #rankingCardField{flex:1 1 100%;min-width:0}
  #leaderboard-view #rankingNow{margin:0;padding:0;min-height:44px;line-height:1.4}
  #leaderboard-view .ranking-period-overview{display:block;padding:20px 15px}
  #leaderboard-view #rankingPeriodTitle{font-size:21px}
  #leaderboard-view .ranking-period-title{gap:9px}
  #leaderboard-view #rankingDescription{font-size:12px;line-height:1.7}
  #leaderboard-view #rankingDeadline{font-size:10px}
  #leaderboard-view #rankingPlay{width:100%;margin-top:18px;gap:14px;min-height:44px;padding:12px}
  #leaderboard-view .ranking-personal{padding:16px 14px;margin-bottom:20px}
  #leaderboard-view .ranking-personal-intro{padding-bottom:17px}
  #leaderboard-view .ranking-personal-intro>div{display:block}
  #leaderboard-view #rankingMyHint{margin-top:3px;font-size:10px}
  #leaderboard-view .ranking-personal-stat{padding:0 10px}
  #leaderboard-view .ranking-personal-stat>span{font-size:9px;line-height:1.6}
  #leaderboard-view .ranking-personal-stat>strong{font-size:18px;margin-top:6px}
  #leaderboard-view .ranking-results{margin-top:21px}
  #leaderboard-view .ranking-results-toolbar{flex-wrap:wrap;gap:12px}
  #leaderboard-view .ranking-results-title h2{font-size:15px}
  #leaderboard-view #rankingCount{font-size:10px}
  #leaderboard-view .ranking-search-actions{width:100%;gap:8px}
  #leaderboard-view .ranking-search{flex:1;min-width:0;padding:0 11px}
  #leaderboard-view #rankingSearch{width:100%;font-size:12px}
  #leaderboard-view #rankingFindMe{padding:10px;font-size:11px}
  #leaderboard-view .ranking-table th,#leaderboard-view .ranking-table td{padding:13px 12px}
  #leaderboard-view .ranking-table th{font-size:9px;letter-spacing:.6px}
  #leaderboard-view .ranking-table th:first-child{width:54px}
  #leaderboard-view .ranking-table th:nth-child(3){width:70px;padding-left:5px;padding-right:5px}
  #leaderboard-view .ranking-table th:last-child{width:115px}
  #leaderboard-view .ranking-table td{height:68px}
  #leaderboard-view .ranking-table td:nth-child(3){padding-left:5px;padding-right:5px}
  #leaderboard-view .rank-badge{width:29px;height:29px;font-size:13px}
  #leaderboard-view .player-cell{gap:8px;flex-wrap:wrap}
  #leaderboard-view .player-avatar{display:none}
  #leaderboard-view .player-name{font-size:12px}
  #leaderboard-view .player-tag{font-size:8px;padding:3px 4px;margin-left:0}
  #leaderboard-view .rank-score strong{font-size:16px}
  #leaderboard-view .rank-score .rank-score-unit{font-size:8px;margin-left:3px}
  #leaderboard-view .rank-score-bar{width:80px;margin-top:8px}
  #leaderboard-view .rank-completion{width:44px;font-size:10px}
  #leaderboard-view .ranking-sort-indicator{font-size:11px;margin-left:2px}
  #leaderboard-view #rankingEmpty{min-height:210px;padding:28px 18px}
  #leaderboard-view #rankingEmpty p{font-size:12px}
  #leaderboard-view .ranking-footnotes{grid-template-columns:1fr;gap:14px;padding-top:15px}
}
@media(prefers-reduced-motion:reduce){#leaderboard-view button{transition:none}#leaderboard-view .ranking-table tr{scroll-behavior:auto}}

/* Spiel — a calm workbench, a dominant map, and a clear next action. */
.game-page #play-view{--play-surface:#222a34;--play-border:#ffffff12;--play-muted:#a2afbd;--play-gold:#edc48e}
.game-page #play-view button:focus-visible,.game-page #play-view input:focus-visible,.game-page #play-view summary:focus-visible{outline:2px solid #edc48e;outline-offset:3px}
.game-page #play-view button:disabled{opacity:.34;cursor:not-allowed}
.game-page #play-view #campaignNav{display:flex;justify-content:space-between;align-items:center;flex-wrap:nowrap;gap:22px;padding:15px 19px;margin-bottom:14px;min-height:80px;background:#222a33;border:1px solid var(--play-border);border-radius:12px}
.game-page #play-view .challenge-context{min-width:0}
.game-page #play-view .challenge-heading{display:flex;align-items:center;gap:11px;flex-wrap:wrap}
.game-page #play-view .challenge-chip{display:inline-flex;align-items:center;flex:none;padding:5px 7px;border:1px solid #c69d6338;border-radius:5px;background:#c69d6310;color:#dbc09a;font-size:9px;font-weight:600;letter-spacing:1px;line-height:1.2}
.game-page #play-view #challengeTitle{width:auto;color:#e7ebef;font-family:'Space Grotesk',sans-serif;font-size:19px;font-weight:500;line-height:1.3;letter-spacing:-.35px}
.game-page #play-view #challengeDescription{margin:7px 0 0;color:#a7b3c1;font-size:12px;line-height:1.5}
.game-page #play-view #challengeClock{font-size:10px;line-height:1.5;color:#b9aa95;white-space:nowrap}
.game-page #play-view #challengeClock:empty{display:none}
.game-page #play-view .challenge-links{display:flex;gap:8px;flex-shrink:0}
.game-page #play-view .challenge-links button{margin:0;padding:10px 12px;min-height:40px;white-space:nowrap;background:#ffffff03;border-color:#ffffff16;border-radius:8px;color:#c5cfda;font-size:11px}
.game-page #play-view .challenge-links button span{margin-left:10px;color:#dab98d}
.game-page #play-view .workspace{grid-template-columns:244px minmax(0,1fr) 222px;gap:14px;align-items:stretch}
.game-page #play-view .workspace>aside{padding:18px 14px;background:linear-gradient(145deg,#252d38,#202730);border-color:#ffffff0c;border-radius:13px}
.game-page #play-view .panel-title{font-size:10px;line-height:1.5;font-weight:600;letter-spacing:1.35px;color:#aab6c5;margin:0 0 13px}
.game-page #play-view .panel-title span{color:#7f8d9f;font-size:9px;letter-spacing:.5px}
.game-page #play-view #goldBudget{display:block;padding:14px 14px 12px;margin:0 0 21px;border:1px solid #d4b17632;border-radius:10px;background:linear-gradient(120deg,#b58a431c,#e0c58d03)}
.game-page #play-view .gold-label{color:#b9a486;font-size:9px;letter-spacing:1.25px}
.game-page #play-view #goldBudget strong{font-size:36px;line-height:1.35;letter-spacing:-1.3px;font-weight:500;margin:4px 0 8px;color:#f1c98f}
.game-page #play-view #goldBudget strong small{font-family:'DM Sans',sans-serif;font-size:12px;letter-spacing:0;color:#b2a28b}
.game-page #play-view .gold-note{color:#b7aa95;font-size:10px;line-height:1.5;margin-top:9px}
.game-page #play-view .gold-meter{height:4px;background:#dfb57713;border-radius:4px;overflow:hidden}
.game-page #play-view .gold-meter>span{display:block;height:100%;background:#d7ac72;border-radius:4px;transition:width .2s ease}
.game-page #play-view .tool-grid{display:grid;gap:8px}
.game-page #play-view .tool{display:flex;gap:10px;align-items:center;min-width:0;min-height:74px;margin:0;padding:13px 10px;border:1px solid #ffffff11;border-radius:9px;background:#ffffff02;text-align:left}
.game-page #play-view .tool .icon{width:26px;min-width:26px;height:28px;color:#98aabc}
.game-page #play-view .tool .icon svg{width:25px;height:25px}
.game-page #play-view .tool-copy{min-width:0}
.game-page #play-view .tool b{display:block;font-size:12px;line-height:1.35;font-weight:600;white-space:nowrap;color:#dbe2e9}
.game-page #play-view .tool small{font-size:10px;line-height:1.5;margin-top:4px;color:#96a6b7}
.game-page #play-view .tool strong{font-family:'Space Grotesk',sans-serif;font-size:16px;line-height:1.2;font-weight:500;margin-left:auto;padding-top:5px;white-space:nowrap;color:#e5c498}
.game-page #play-view .tool kbd{position:absolute;right:7px;top:4px;font-size:9px;line-height:1;color:#8592a2;font-family:inherit}
.game-page #play-view .tool-refund{margin-left:auto;color:#8f9eae;font-size:22px}
.game-page #play-view .tool.active,.game-page #play-view .tool[aria-pressed=true]{background:linear-gradient(110deg,#d5a3611c,#d5a36106);border-color:#d3a35e8c;box-shadow:inset 2px 0 #e5b574}
.game-page #play-view .tool.active b,.game-page #play-view .tool[aria-pressed=true] b{color:#f0ce9f}
.game-page #play-view .tool.active .icon,.game-page #play-view .tool[aria-pressed=true] .icon{color:#eac087}
.game-page #play-view .tool:hover:not(:disabled){border-color:#7d8998;background-color:#ffffff07}
.game-page #play-view .tool-hint{font-size:11px;line-height:1.65;color:#c5b394;margin:13px 1px 12px;min-height:37px}
.game-page #play-view .build-summary{display:flex;align-items:center;gap:7px;font-size:10px;color:#8e9cad;padding:11px 0 15px;border-bottom:1px solid #ffffff0c;line-height:1.6}
.game-page #play-view .build-summary-dot{flex:none;width:5px;height:5px;border-radius:2px;background:#8194aa}
.game-page #play-view .build-history{display:grid;gap:5px;min-width:0;padding:12px 0;border-bottom:1px solid #ffffff0c}
.game-page #play-view .build-history .history-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.game-page #play-view .build-history button,.game-page #play-view .run-controls .run{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-width:0;min-height:38px;padding:9px 10px;font-size:11px;border:1px solid #ffffff15;border-radius:7px;background:#ffffff02;color:#aebcd0;white-space:nowrap}
.game-page #play-view .build-history button svg{width:15px;height:15px;flex:none}
.game-page #play-view .build-history #reset{width:100%;min-height:35px;padding:8px 10px;background:#36404e;border-color:#687789;font-size:11px;color:#e2e9f1}
.game-page #play-view .build-history #reset:hover:not(:disabled){background:#435063;border-color:#a6b6c9;color:#fff}
.game-page #play-view .build-history #reset:disabled{opacity:1;background:#2c3541;border-color:#506074;color:#95a3b4}
.game-page #play-view .build-slots{grid-column:1/-1;min-width:0;padding:11px 0;border-bottom:1px solid #ffffff0c}
.game-page #play-view .slot-heading{display:flex;flex-direction:column;gap:4px;margin-bottom:7px}
.game-page #play-view .slot-heading h2{margin:0;color:#bac7d6;font-size:10px;line-height:1.4;font-weight:500}
.game-page #play-view #slotDeadline{margin:0;color:#98a9bb;font-size:9px;line-height:1.4;overflow-wrap:anywhere}
.game-page #play-view .slot-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:5px;min-width:0;padding:6px 0}
.game-page #play-view .slot-row+.slot-row{border-top:1px solid #ffffff08}
.game-page #play-view .slot-label{display:flex;flex-direction:column;gap:2px;min-width:0;font-size:9px;line-height:1.35}
.game-page #play-view .slot-label b{color:#c9d4e0;font-size:10px;font-weight:500}
.game-page #play-view .slot-label span{color:#99aabd;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.game-page #play-view .slot-row button{min-height:32px;padding:6px;color:#d0dbe7;background:#ffffff04;border-color:#526071;font-size:10px;white-space:nowrap}
.game-page #play-view .slot-row button:hover:not(:disabled){background:#3b4758;border-color:#8193aa}
.game-page #play-view .slot-row button:disabled{opacity:1;color:#728194;background:#ffffff02;border-color:#ffffff13}
.game-page #play-view #slotStatus{margin:7px 0 0;color:#d4bb97;font-size:10px;line-height:1.5;overflow-wrap:anywhere}
.game-page #play-view .map-details{grid-column:1/-1;margin:0;padding:8px 0 0}
.game-page #play-view .map-details-heading{display:flex;align-items:center;justify-content:space-between;gap:6px;min-width:0}
.game-page #play-view .map-details label{font-size:10px;line-height:1.6;color:#93a4b8}
.game-page #play-view .seed-row{gap:6px;margin:3px 0 0}
.game-page #play-view #seed{min-width:0;height:33px;font-size:10px;padding:8px}
.game-page #play-view #load{min-height:33px;font-size:10px;padding:7px 9px;background:#ffffff05;border-color:#526071;color:#d8e1eb}
.game-page #play-view #share{width:auto;min-height:30px;padding:4px 0 4px 5px;text-align:right;margin:0;color:#dfbe92;font-size:10px;white-space:nowrap}
.game-page #play-view #share span{margin-left:4px}
.game-page #play-view .hint{display:block;margin:0;padding:13px 0 0;border:0;font-size:11px;line-height:1.75;color:#9dabbc}
.game-page #play-view .hint summary{font-size:11px;line-height:1.6;color:#a7b5c6;margin:0;padding:0}
.game-page #play-view .hint[open] summary{margin-bottom:9px}
.game-page #play-view .hint p{font-size:11px;line-height:1.75;color:#9dabbc;margin:8px 0}
.game-page #play-view .hint b{font-weight:500;color:#c9d4e0}
.game-page #play-view .board-panel{display:flex;flex-direction:column;min-width:0;min-height:0;border-radius:13px;background:#1c232c;border-color:#ffffff14;container-type:inline-size}
.game-page #play-view .board-top{flex-shrink:0;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px 20px;padding:14px 14px 12px}
.game-page #play-view .board-context{flex:0 0 auto;min-width:0}
.game-page #play-view .board-context>div{display:flex;align-items:center;gap:9px}
.game-page #play-view .board-top b{font-size:10px;letter-spacing:1.6px;font-weight:600;color:#ccd8e4}
.game-page #play-view .live-dot{margin:0;width:5px;height:5px;box-shadow:0 0 0 4px #e5b5740c;background:#d7b480}
.game-page #play-view #dimensions{display:block;margin:7px 0 0 14px;color:#8d9eb2;font-size:10px;line-height:1.4}
.game-page #play-view .board-actions{display:flex;align-items:center;justify-content:flex-end;flex:0 1 auto;flex-wrap:wrap;gap:8px 16px;min-width:0;max-width:100%}
.game-page #play-view .board-display-controls{display:flex;align-items:center;gap:8px;flex:none}
.game-page #play-view .toggle{display:inline-flex;align-items:center;justify-content:center;flex:none;height:38px;padding:0 11px;border:1px solid #ffffff13;border-radius:7px;background:#ffffff02;font-size:11px;gap:8px;color:#b8c5d3;white-space:nowrap;cursor:pointer}
.game-page #play-view .toggle:hover{background:#ffffff08}
.game-page #play-view .toggle:has(input:focus-visible){outline:2px solid #e9bf89;outline-offset:2px}
.game-page #play-view .toggle input{margin:0;width:14px;height:14px;accent-color:#d8b178}
.game-page #play-view #fullscreen{display:inline-flex;align-items:center;justify-content:center;flex:none;height:38px;min-height:38px;padding:0 11px;border:1px solid #ffffff13;border-radius:7px;color:#b8c5d3;font-size:11px;gap:7px}
.game-page #play-view .run-controls .run{flex:none;min-width:118px;height:38px;padding:0 13px;border:1px solid #eec691;background:linear-gradient(135deg,#edc590,#d8a668);color:#30271d;font-size:12px;font-weight:700;box-shadow:0 3px 9px #0002}
.game-page #play-view .run-controls .run:hover:not(:disabled){background:#f3d1a1;border-color:#ffe0b4}
.game-page #play-view .canvas-wrap{display:flex;align-items:center;justify-content:center;flex:1;min-width:0;min-height:0;padding:0 10px;overflow:hidden}
.game-page #play-view canvas{width:auto;height:auto;max-width:100%;max-height:100%;border:1px solid #5d6a773e;border-radius:7px;object-fit:contain}
.game-page #play-view .board-bottom{flex-shrink:0;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 15px 10px;font-size:10px;line-height:1.5;color:#91a3b9}
.game-page #play-view .board-legend{display:flex;flex-wrap:wrap;gap:10px}
.game-page #play-view .board-legend>span{display:inline-flex;align-items:center;gap:5px}
.game-page #play-view .legend{margin:0;flex:none;width:6px;height:6px;border-radius:2px}
.game-page #play-view .board-gesture{font-size:9px;white-space:nowrap;color:#8293a7}
.game-page #play-view .run-progress-wrap{flex-shrink:0;display:flex;align-items:center;gap:10px;margin:0 15px}
.game-page #play-view #runProgress{width:100%;height:4px;margin:0 0 11px;appearance:none;border:0;border-radius:4px;background:#ffffff0d;overflow:hidden}
.game-page #play-view #runProgress::-webkit-progress-bar{background:#ffffff0d;border-radius:4px}
.game-page #play-view #runProgress::-webkit-progress-value{background:#d9b37c;border-radius:4px}
.game-page #play-view #runProgress::-moz-progress-bar{background:#d9b37c;border-radius:4px}
.game-page #play-view #runProgressLabel{flex-shrink:0;margin:0 0 11px;font-size:9px;color:#d0b28a;font-variant-numeric:tabular-nums}
.game-page #play-view .stats{display:block;grid-column:auto}
.game-page #play-view .score-overview{padding:2px 2px 0}
.game-page #play-view .score-overview .panel-title{color:#acb9c8;font-size:10px}
.game-page #play-view .score{margin:10px 0 0;font-family:'Space Grotesk',sans-serif;font-size:52px;line-height:1;letter-spacing:-2.8px;font-weight:500;color:#f0c68e;font-variant-numeric:tabular-nums}
.game-page #play-view .score span{margin-top:10px;font-family:'DM Sans',sans-serif;font-size:9px;font-weight:400;letter-spacing:2px;color:#9cabbc}
.game-page #play-view .gain{margin:15px 0 0;padding:7px 9px;border:1px solid #c49b6333;border-radius:6px;background:#b58c5110;color:#dcc199;font-size:10px;line-height:1.5;font-variant-numeric:tabular-nums}
.game-page #play-view .score-explainer{margin:10px 0 0;font-size:10px;line-height:1.5;color:#8293a8}
.game-page #play-view .score-comparison{margin-top:20px}
.game-page #play-view .stat{display:flex;align-items:center;justify-content:space-between;gap:10px;min-width:0;margin:0;padding:12px 1px;border-bottom:1px solid #ffffff0b;color:#9bacc0;font-size:11px;line-height:1.5}
.game-page #play-view .stat b{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:500;color:#dce5ee;white-space:nowrap;letter-spacing:-.3px;font-variant-numeric:tabular-nums}
.game-page #play-view #challengeEntry{margin:20px 0 0;padding:14px 12px 12px;border:1px solid #bc94563a;border-radius:9px;background:#d9b57808}
.game-page #play-view .entry-heading{display:flex;align-items:center;gap:8px;color:#dfbf92;margin-bottom:15px}
.game-page #play-view .entry-heading svg{width:17px;height:17px;flex:none}
.game-page #play-view .entry-heading b{font-size:11px;font-weight:500;line-height:1.4}
.game-page #play-view #challengeEntry label{font-size:10px;line-height:1.5;color:#acb5bf;margin:0 0 7px}
.game-page #play-view #playerName{font-size:11px;padding:10px;min-height:39px;border-color:#ffffff14}
.game-page #play-view #playerName::placeholder{color:#7f8da0}
.game-page #play-view .submit-button{display:flex;align-items:center;justify-content:space-between;width:100%;min-height:41px;margin-top:8px;padding:10px 11px;font-size:11px;font-weight:500;border-radius:7px;background:#c5a06b12;border-color:#c5a06b5c;color:#edc996}
.game-page #play-view #challengeStatus{margin:10px 0 0;color:#a2afbc;font-size:10px;line-height:1.7}
.game-page #play-view #challengeEntry[data-state=closed] .entry-fields{display:none}
.game-page #play-view .route-card{margin-top:22px;padding-top:19px;border-top:1px solid #ffffff0c}
.game-page #play-view .route-card .panel-title{margin-bottom:12px;font-size:9px;letter-spacing:1.1px}
.game-page #play-view .route-card .panel-title span{float:none;display:block;margin-top:4px;font-size:8px;letter-spacing:.8px;color:#72849b}
.game-page #play-view #stops{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.game-page #play-view .stop{position:relative;display:inline-flex;align-items:center;gap:0;margin:0;padding:0;color:#bcc9d6}
.game-page #play-view .stop>span{display:grid;place-items:center;width:28px;height:28px;border:1px solid #d0ae773e;background:#c8a66e09;color:#ddc090;border-radius:6px;font-family:'Space Grotesk',sans-serif;font-size:11px}
.game-page #play-view .stop:first-child>span{color:#b6cfaa;border-color:#b6cfaa38;background:#b6cfaa08}
.game-page #play-view .stop:last-child>span{color:#afc8dd;border-color:#afc8dd38;background:#afc8dd08}
.game-page #play-view .stop:not(:last-child)::after{content:none}
.game-page #play-view .stop-label{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.game-page #play-view .route-card>p{margin:10px 0 0;font-size:10px;line-height:1.65;color:#8d9db0}
.game-page #play-view .strategy-hint{padding-top:15px}
@media(min-width:1001px){
 .game-page #play-view .workspace,.game-page #play-view:has(#campaignNav:not([hidden])) .workspace{height:calc(100dvh - 249px);min-height:460px}
 .game-page #play-view .workspace>aside{min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#6474894d transparent}
 .game-page #play-view .workspace:fullscreen{height:100dvh;min-height:0;padding:12px;background:#181e26;grid-template-columns:244px minmax(0,1fr) 222px}
}
@media(min-width:1001px) and (max-width:1250px){
 .game-page #play-view .workspace{grid-template-columns:213px minmax(0,1fr) 187px;gap:10px}
 .game-page #play-view .workspace>aside{padding:15px 11px}
 .game-page #play-view .tool{gap:7px;padding:12px 8px}
 .game-page #play-view .tool b{font-size:11px}
 .game-page #play-view .tool small{font-size:9px}
 .game-page #play-view .tool .icon{width:22px;min-width:22px}
 .game-page #play-view .tool .icon svg{width:23px;height:23px}
 .game-page #play-view .tool strong{font-size:14px}
 .game-page #play-view .score{font-size:45px}
 .game-page #play-view .run-controls .run{min-width:110px;padding:9px 10px;font-size:11px}
 .game-page #play-view .board-gesture{display:none}
 .game-page #play-view .board-top{padding:14px 13px 11px}
 .game-page #play-view .toggle{font-size:10px}
 .game-page #play-view #challengeEntry{padding:12px 9px}
 .game-page #play-view .submit-button{padding:9px;font-size:10px}
 .game-page #play-view .stat{font-size:10px}
 .game-page #play-view .stat b{font-size:14px}
}
@media(min-width:701px) and (max-width:1000px){
 .game-page #play-view .workspace,.game-page #play-view:has(#campaignNav:not([hidden])) .workspace{height:auto;min-height:0;grid-template-columns:minmax(0,1fr) 210px;align-items:start}
 .game-page #play-view .workspace>.build-panel{display:grid;grid-template-columns:1fr 1fr;gap:0 16px;grid-column:1;padding:17px}
 .game-page #play-view #goldBudget{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:20px;margin-bottom:16px;padding:11px 13px}
 .game-page #play-view #goldBudget strong{grid-column:2;grid-row:1/4;margin:0;font-size:32px}
 .game-page #play-view .gold-meter{width:100%;max-width:250px;margin-top:7px}
 .game-page #play-view .gold-note{font-size:9px;margin-top:6px}
 .game-page #play-view .build-panel>.panel-title,.game-page #play-view .tool-grid,.game-page #play-view .tool-hint,.game-page #play-view .build-summary,.game-page #play-view .build-history{grid-column:1/-1}
 .game-page #play-view .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .game-page #play-view .tool{min-height:69px;gap:7px}
 .game-page #play-view .tool b{font-size:11px}
 .game-page #play-view .tool small{font-size:9px}
 .game-page #play-view .tool .icon{width:23px;min-width:23px}
 .game-page #play-view .tool strong{font-size:14px}
 .game-page #play-view .tool-hint{min-height:0;margin-bottom:8px}
 .game-page #play-view .build-summary{padding-bottom:10px}
 .game-page #play-view .map-details{margin:0;border:0;grid-column:1/-1}
 .game-page #play-view .hint.play-rules{grid-column:2}
 .game-page #play-view .workspace>.stats{grid-column:2;grid-row:1;overflow:visible}
 .game-page #play-view .score{font-size:42px}
 .game-page #play-view .score-comparison{margin-top:13px}
 .game-page #play-view .route-card{margin-top:15px;padding-top:14px}
 .game-page #play-view .board-panel{grid-column:1/-1;grid-row:2;min-height:450px}
 .game-page #play-view .canvas-wrap{flex:none;max-height:65dvh}
 .game-page #play-view canvas{max-height:65dvh}
 .game-page #play-view .board-bottom>span:last-child{display:block}
 .game-page #play-view .workspace:fullscreen{height:100dvh;overflow:auto;display:grid;grid-template-columns:minmax(0,1fr) 210px;padding:12px}
 .game-page #play-view .challenge-links{flex-direction:column;gap:5px}
 .game-page #play-view .challenge-links button{min-height:35px;padding:8px 10px;font-size:10px}
}
@media(max-width:700px){
 .game-page #play-view #campaignNav{gap:11px;align-items:flex-start;flex-wrap:wrap;margin-bottom:10px;padding:14px}
 .game-page #play-view .challenge-context{width:100%}
 .game-page #play-view .challenge-heading{gap:8px}
 .game-page #play-view #challengeTitle{font-size:17px;max-width:100%}
 .game-page #play-view .challenge-chip{font-size:8px;padding:4px 6px}
 .game-page #play-view #challengeDescription{font-size:11px;line-height:1.6}
 .game-page #play-view #challengeClock{width:auto;font-size:9px}
 .game-page #play-view .challenge-links{width:100%;gap:7px}
 .game-page #play-view .challenge-links button{min-height:39px;padding:9px 10px;font-size:10px;flex:1}
 .game-page #play-view .challenge-links button span{margin-left:5px}
 .game-page #play-view .workspace,.game-page #play-view:has(#campaignNav:not([hidden])) .workspace{display:flex;flex-direction:column;height:auto;min-height:0;gap:10px}
 .game-page #play-view .workspace>.build-panel{display:block;width:100%;padding:14px}
 .game-page #play-view #goldBudget{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:15px;padding:11px 12px;margin:0 0 15px}
 .game-page #play-view #goldBudget strong{grid-column:2;grid-row:1/4;margin:0;font-size:31px}
 .game-page #play-view .gold-label{font-size:9px}
 .game-page #play-view .gold-note{font-size:9px;margin-top:6px}
 .game-page #play-view .gold-meter{margin-top:7px;max-width:180px}
 .game-page #play-view .build-panel>.panel-title{display:block;margin-bottom:10px;font-size:9px}
 .game-page #play-view .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
 .game-page #play-view .tool{min-height:69px;padding:11px 8px;gap:7px}
 .game-page #play-view .tool b{font-size:11px}
 .game-page #play-view .tool small{font-size:9px;margin-top:3px}
 .game-page #play-view .tool .icon{width:22px;min-width:22px}
 .game-page #play-view .tool .icon svg{width:22px;height:22px}
 .game-page #play-view .tool strong{font-size:14px}
 .game-page #play-view .tool-hint{font-size:10px;min-height:0;margin:11px 0 8px;line-height:1.6}
 .game-page #play-view .build-summary{font-size:9px;padding:0 0 10px}
 .game-page #play-view .map-details{margin:0}
 .game-page #play-view .hint.play-rules{display:block;padding-top:11px}
 .game-page #play-view .hint summary{font-size:10px}
 .game-page #play-view .hint p{font-size:11px}
 .game-page #play-view .board-panel{width:100%;min-height:0;overflow:hidden}
 .game-page #play-view .board-top{padding:14px 12px 12px;gap:10px}
 .game-page #play-view .board-top b{font-size:9px;letter-spacing:1.3px}
 .game-page #play-view #dimensions{font-size:9px;margin-top:6px}
 .game-page #play-view .toggle{font-size:10px;gap:6px}
 .game-page #play-view .build-history button{min-height:40px;padding:9px;font-size:11px}
 .game-page #play-view .build-history #reset{min-height:36px;font-size:10px;padding:8px}
 .game-page #play-view .run-controls .run{min-width:110px;padding:10px 11px;font-size:11px}
 .game-page #play-view .canvas-wrap{flex:none;padding:0 7px;overflow:visible}
 .game-page #play-view canvas{display:block;width:100%;height:auto;max-height:none}
 .game-page #play-view .board-bottom{padding:11px 12px 9px;font-size:9px}
 .game-page #play-view .board-gesture{display:none}
 .game-page #play-view .workspace>.stats{display:grid;grid-template-columns:1fr 1fr;align-items:start;gap:0 17px;width:100%;padding:17px}
 .game-page #play-view .score-overview{grid-column:1}
 .game-page #play-view .score-overview .panel-title{font-size:9px}
 .game-page #play-view .score{font-size:42px;margin-top:8px}
 .game-page #play-view .score span{font-size:8px;margin-top:8px}
 .game-page #play-view .gain{font-size:9px;padding:6px 8px;margin-top:12px}
 .game-page #play-view .score-explainer{font-size:9px;margin-top:8px}
 .game-page #play-view .score-comparison{grid-column:2;margin-top:0}
 .game-page #play-view .stat{display:block;margin:0;padding:0 0 12px;font-size:10px}
 .game-page #play-view .stat+ .stat{padding-top:12px}
 .game-page #play-view .stat b{display:block;font-size:20px;margin-top:5px}
 .game-page #play-view #challengeEntry{grid-column:1/-1;margin-top:18px;padding:14px}
 .game-page #play-view .entry-heading b{font-size:12px}
 .game-page #play-view #challengeEntry label{font-size:11px}
 .game-page #play-view #playerName,.game-page #play-view .submit-button{min-height:44px;font-size:12px}
 .game-page #play-view #challengeStatus{font-size:11px}
 .game-page #play-view .route-card{grid-column:1/-1;margin-top:18px;padding-top:16px}
 .game-page #play-view .route-card .panel-title span{display:inline;margin-left:8px}
 .game-page #play-view #stops{display:flex;gap:7px}
 .game-page #play-view .stop>span{width:29px;height:29px}
 .game-page #play-view .route-card>p{font-size:10px}
 .game-page #play-view .strategy-hint{grid-column:1/-1}
 .game-page #play-view .workspace:fullscreen{display:flex;height:100dvh;overflow:auto;padding:9px}
 .game-page #play-view .workspace:fullscreen .board-panel{flex:none;min-height:0}
}
@media(max-width:380px){
 .game-page #play-view .tool{gap:5px;padding-inline:6px}
 .game-page #play-view .tool .icon{width:19px;min-width:19px}
 .game-page #play-view .tool .icon svg{width:20px;height:20px}
 .game-page #play-view .tool b{font-size:10px}
 .game-page #play-view .tool strong{font-size:12px}
 .game-page #play-view .tool small{font-size:8px}
 .game-page #play-view .run-controls .run{min-width:105px;padding-inline:9px}
}
@media(prefers-reduced-motion:reduce){.game-page #play-view .gold-meter>span{transition:none}}
.game-page #play-view .stat>span small{margin-top:3px;color:#7d8fa5;font-size:9px;line-height:1.4}.game-page #play-view #practiceEditor{grid-column:1/-1}.game-page #play-view #challengeClock[data-state=closed]{color:#b3a391}
.game-page #play-view .run-controls{display:flex;align-items:center;gap:8px;flex:0 1 auto;min-width:0;max-width:100%}
.game-page #play-view .run-speed{display:grid;grid-template-columns:auto minmax(48px,1fr) 3ch;align-items:center;gap:9px;width:184px;height:38px;min-width:150px;padding:0 10px;border:1px solid #ffffff13;border-radius:7px;background:#ffffff02;flex:0 1 184px}
.game-page #play-view .run-speed label{color:#aab8c8;font-size:11px;margin:0;line-height:1}
.game-page #play-view .run-speed output{color:#efc58f;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.game-page #play-view #runSpeed{display:block;width:100%;min-width:0;height:22px;margin:0;accent-color:#dfb77f;cursor:pointer}
.game-page #play-view #runSpeed:focus-visible{outline:2px solid #e9bf89;outline-offset:3px;border-radius:4px}
@container(max-width:850px){
 .game-page #play-view .board-context{display:flex;align-items:center;flex-wrap:wrap;gap:7px 16px;width:100%}
 .game-page #play-view #dimensions{margin:0}
 .game-page #play-view .board-actions{flex:1 1 100%;justify-content:space-between;gap:8px}
}
@container(max-width:520px){
 .game-page #play-view .run-controls{flex:1 1 100%}
 .game-page #play-view .run-speed{flex:1 1 auto;width:auto}
 .game-page #play-view .board-display-controls{flex:1 1 100%}
 .game-page #play-view .board-display-controls>.toggle,.game-page #play-view .board-display-controls>#fullscreen{flex:1}
}

/* Keep every map destination visible as the navigation wraps. */
.game-page .main-tabs{max-width:100%}
.game-page #play-view .challenge-links{flex-wrap:wrap}
.game-page #play-view .challenge-links .new-map{width:auto;color:#efc48b;border-color:#bc935965;background:#d9a05212}
@media(min-width:701px) and (max-width:1100px){
 .game-page .header-actions{width:100%}
 .game-page .main-tabs{width:100%;display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
 .game-page .main-tabs button{padding:11px 8px;font-size:12px}
}
@media(max-width:700px){
 .game-page .main-tabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px}
 .game-page .main-tabs button{grid-column:span 2;padding:11px 6px;min-width:0;font-size:12px}
 .game-page .main-tabs button:nth-last-child(-n+2){grid-column:span 2}
 .game-page #play-view .challenge-links .new-map{width:auto}
}
.game-page #navigationStatus{margin:0 0 12px;padding:10px 13px;border:1px solid #c7a16930;border-radius:8px;background:#c79b5b0b;color:#dfbf92;font-size:12px;line-height:1.5}

/* Saved leaderboard builds are shown separately from the editable game. */
.game-page .rank-build-button{margin:8px 0 0 45px;padding:6px 10px;min-height:32px;font-size:11px;color:#e4c28c;border-color:#d4b17b45;background:#c59f6010}
.game-page .rank-build-unavailable{margin:6px 0 0 45px;color:#8c98a8;font-size:10px}
#leaderboard-view .ranking-table th:last-child{width:145px}
#leaderboard-view .ranking-table .rank-build-heading{width:165px;text-align:center}
#leaderboard-view .rank-build-cell{text-align:center}
#leaderboard-view .rank-build-cell .rank-build-button{margin:0;white-space:normal;font-size:10px}
#leaderboard-view .rank-build-cell .rank-build-unavailable{margin:0;line-height:1.5}
#leaderboard-view .rank-score-line{display:flex;align-items:center;justify-content:flex-end;gap:14px;min-width:0}
#leaderboard-view .player-completion{display:none}
#leaderboard-view .rank-score-line .rank-score{flex:none;min-width:78px}
#leaderboard-view .rank-score-line .rank-build-button{flex:0 1 auto;min-width:0;min-height:32px;margin:0;padding:6px 8px;font-size:10px;line-height:1.35;white-space:normal;text-align:center}
#leaderboard-view .rank-score-line .rank-build-unavailable{flex:0 1 126px;min-width:0;margin:0;color:#9cabbc;font-size:10px;line-height:1.4;text-align:right;white-space:normal;overflow-wrap:anywhere}
@media(min-width:701px) and (max-width:1000px){
 #leaderboard-view .ranking-table th:last-child{width:120px}
 #leaderboard-view .ranking-table .rank-build-heading{width:145px}
 #leaderboard-view .ranking-table th:nth-child(3){width:100px}
 #leaderboard-view .rank-score-line{gap:10px}
}
@media(max-width:700px){
 #leaderboard-view .ranking-table th,#leaderboard-view .ranking-table td{padding:12px 7px}
 #leaderboard-view .ranking-table th:first-child{width:40px}
 #leaderboard-view .ranking-table th:nth-child(3){width:47px}
 #leaderboard-view .ranking-table th:last-child{width:75px}
 #leaderboard-view .ranking-table .rank-build-heading{width:83px}
 #leaderboard-view .rank-build-cell .rank-build-button{padding:5px;font-size:9px;line-height:1.4}
 #leaderboard-view .rank-build-cell .rank-build-unavailable{font-size:9px}
 #leaderboard-view .rank-score strong{font-size:14px}
 #leaderboard-view .rank-score-unit{display:block;font-size:8px;margin:3px 0 0}
 #leaderboard-view .rank-score-line{gap:7px}
 #leaderboard-view .rank-score-line .rank-score{min-width:50px}
 #leaderboard-view .rank-score-line .rank-score strong{font-size:14px}
 #leaderboard-view .rank-score-line .rank-score-unit{display:block;font-size:8px;margin:3px 0 0}
 #leaderboard-view .rank-score-line .rank-build-button{flex:0 1 74px;min-height:34px;padding:5px;font-size:9px}
 #leaderboard-view .rank-score-line .rank-build-unavailable{flex:0 1 74px;font-size:9px}
 #leaderboard-view .rank-score-bar{width:50px;margin-top:6px}
 #leaderboard-view .player-name{font-size:11px}
 #leaderboard-view .rank-badge{width:26px;height:29px}
 #leaderboard-view .rank-completion{width:auto;font-size:9px}
}
@media(max-width:420px){
 #leaderboard-view .ranking-table th:nth-child(3),#leaderboard-view .ranking-table td:nth-child(3){display:none}
 #leaderboard-view .player-completion{display:block;color:#9cabbc;font-size:9px;line-height:1.5}
}
.game-page .ranking-preview-note{color:#a3b0c1;font-size:12px;line-height:1.7;margin:18px 0 6px}
.game-page #rankingBuildDialog{width:min(1240px,calc(100vw - 36px));max-height:calc(100dvh - 36px);padding:24px;border:1px solid #65717f;border-radius:18px;background:#1b232e;color:#e5eaf1;box-shadow:0 24px 90px #0009;overflow:auto}
.game-page #rankingBuildDialog::backdrop{background:#070b12cf;backdrop-filter:blur(5px)}
.game-page #rankingBuildDialog[open]{display:flex;flex-direction:column;height:min(1000px,calc(100dvh - 36px))}
.game-page #rankingBuildDialog:has(#rankingBuildContent[hidden]){height:auto}
.game-page #rankingBuildContent{display:flex;flex-direction:column;min-height:0;flex:1}
.game-page #rankingBuildContent>div:not(#rankingBuildBoard),.game-page #rankingBuildContent>p,.game-page #rankingBuildDialog>.build-preview-heading,.game-page #rankingBuildNotice{flex-shrink:0}
.game-page #rankingBuildDialog .build-preview-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:18px}
.game-page #rankingBuildDialog h2{margin:7px 0 6px;font-family:'Space Grotesk',sans-serif;font-size:26px;font-weight:600;overflow-wrap:anywhere}
.game-page #rankingBuildDialog .build-preview-eyebrow{color:#e2bd80;font-size:10px;letter-spacing:1.8px}
.game-page #rankingBuildContext{margin:0;color:#a0aec0;font-size:12px}
.game-page #rankingBuildClose{flex:none;min-height:40px;background:#27313e;border-color:#485464;color:#dce5ef;padding:9px 13px}
.game-page #rankingBuildClose span{margin-left:9px;font-size:18px;line-height:1}
.game-page #rankingBuildNotice{font-size:11px;color:#96a6b8;margin:15px 0 20px}
.game-page #rankingBuildStatus{padding:24px 16px;border:1px solid #65717f40;border-radius:10px;color:#d4b783;font-size:13px;line-height:1.7}
.game-page #rankingBuildDialog .build-preview-controls{display:flex;align-items:flex-end;gap:18px;flex-wrap:wrap;padding:15px;background:#222c38;border:1px solid #64748930;border-radius:11px}
.game-page #rankingBuildDialog label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#aebdce}
.game-page #rankingBuildDialog select{max-width:100%;border:1px solid #465466;border-radius:7px;padding:9px;background:#1a2330;color:#e0e8f1;font:inherit;font-size:12px;min-height:37px}
.game-page #rankingBuildDialog .build-preview-path{flex-direction:row;align-items:center;align-self:center;margin-left:auto;gap:8px;color:#d2deec;cursor:pointer;min-height:37px}
.game-page #rankingBuildPath{accent-color:#d8b375;width:16px;height:16px}
.game-page #rankingBuildDialog .build-preview-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:18px 0}
.game-page #rankingBuildDialog .build-preview-stats>div{padding:11px 14px;border-left:2px solid #c7a26d35;min-width:0}
.game-page #rankingBuildDialog .build-preview-stats span{display:block;color:#9babbf;font-size:10px;margin-bottom:7px}
.game-page #rankingBuildDialog .build-preview-stats strong{font-family:'Space Grotesk',sans-serif;font-size:19px;color:#e7ceaa;font-weight:500;overflow-wrap:anywhere}
.game-page #rankingBuildDialog .build-preview-stats small{display:inline;margin:0 0 0 5px;color:#aebdce;font-size:10px}
.game-page #rankingBuildMapTitle{font-size:12px;color:#a9b8ca;margin:0 0 9px}
.game-page #rankingBuildBoard{display:flex;flex:1;min-height:180px;overflow:auto;border:1px solid #465466;border-radius:9px;background:#252f39;scrollbar-color:#637287 #1a222d;padding:8px}
.game-page #rankingBuildCanvas{display:block;width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;margin:auto;touch-action:auto;box-shadow:none}
.game-page #rankingBuildBoard[data-zoom=detail]{display:block}
.game-page #rankingBuildBoard[data-zoom=detail] #rankingBuildCanvas{max-width:none;max-height:none;margin:0}
.game-page #rankingBuildDialog .build-preview-legend{display:flex;gap:13px;align-items:center;flex-wrap:wrap;margin:12px 0 0;color:#a0b0c3;font-size:10px;line-height:1.6}
.game-page #rankingBuildDialog .legend{margin-left:0}
.game-page #rankingBuildDialog :focus-visible{outline:2px solid #e7c383;outline-offset:3px}
@media(max-width:700px){
 .game-page .rank-build-button,.game-page .rank-build-unavailable{margin-left:0;font-size:10px}
 .game-page #rankingBuildDialog{width:calc(100vw - 16px);max-height:calc(100dvh - 16px);padding:15px;border-radius:12px}
 .game-page #rankingBuildDialog h2{font-size:21px}
 .game-page #rankingBuildClose{padding:8px;font-size:10px}
 .game-page #rankingBuildClose span{margin-left:5px}
 .game-page #rankingBuildDialog .build-preview-controls{padding:11px;gap:12px}
 .game-page #rankingBuildCardField{width:100%}
 .game-page #rankingBuildDialog .build-preview-path{margin-left:0;margin-right:auto}
 .game-page #rankingBuildDialog .build-preview-stats{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:13px 0}
 .game-page #rankingBuildDialog .build-preview-stats>div{padding:7px 10px}
 .game-page #rankingBuildDialog .build-preview-stats strong{font-size:17px}
}

/* Instructions live in Guide; playing and browsing keep only actions and data. */
.game-page #play-view #campaignNav{min-height:64px;padding-block:12px}
.game-page #play-view .tool{min-height:58px}
.game-page #play-view .tool strong{padding-top:0}
.game-page #play-view .build-summary{margin-top:8px}
.game-page #challengeStatus:empty{display:none}
#leaderboard-view .ranking-heading{padding-bottom:20px}
#leaderboard-view .ranking-modes button{min-height:60px;padding-block:14px}
#leaderboard-view .ranking-status-line:has(#rankingInfo:empty):has(#rankingRetry[hidden]){display:none}
.game-page #rankingBuildDialog .build-preview-heading{margin-bottom:18px}
.game-page #guide-view .guide-return-row{display:flex;justify-content:flex-end;margin:0 0 12px}
.game-page #guideReturn{min-height:40px;color:#e5c498;border-color:#d4b17b45;padding:10px 14px}
@media(min-width:1101px){
 .game-page #play-view .workspace,.game-page #play-view:has(#campaignNav:not([hidden])) .workspace{height:calc(100dvh - 233px)}
 .game-page #play-view .workspace:fullscreen{height:100dvh}
}
@media(max-width:700px){
 #leaderboard-view .ranking-modes button{min-height:48px;padding:10px 8px}
 .game-page #play-view .tool{min-height:52px}
}

