:root{color-scheme:dark;font-family:system-ui,sans-serif;color:#f7edd5;background:#222a22;font-synthesis:none;--gold: #f3d595;--dim: #c8c5aa;--line: #9a996047}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 36% 0%,#46503b,#2c3529 53%,#222a22);min-height:100vh}button{font:inherit;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:3px solid #fff1a9;outline-offset:3px}button:disabled{cursor:default;opacity:.56}.shell{max-width:1280px;margin:auto;padding:clamp(16px,3vw,40px)}.masthead{display:grid;grid-template-columns:1fr auto 1fr;align-items:start;gap:12px;margin-bottom:22px}.masthead-brand{grid-column:2;width:300px;min-width:0;text-align:center}.masthead h1{margin:0}.masthead h1 img{display:block;width:100%;max-width:264px;height:auto;margin-inline:auto}.masthead .sound{justify-self:end}.eyebrow{font-size:.69rem;font-weight:750;letter-spacing:.15em;text-transform:uppercase;color:var(--gold)}.masthead .eyebrow,.controls .eyebrow{margin:0 0 5px}h1,h2,.subtitle{font-family:Georgia,serif;font-weight:400}.subtitle{color:var(--dim);margin:8px 0 0;font-size:clamp(.97rem,2vw,1.2rem)}.sound,.secondary-actions button{background:#303a2d;border:1px solid #737759;border-radius:8px;padding:9px 12px;white-space:nowrap;min-height:42px}.game-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:18px;align-items:start}.game-layout[hidden]{display:none}.valley,.controls{background:#292f25;border:1px solid var(--line);border-radius:14px;box-shadow:0 13px 36px #141b1770}.valley{overflow:hidden}.valley-heading{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;padding:10px 17px}.world-back{padding:6px 9px;min-height:42px;border:1px solid #737759;border-radius:8px;background:#343e31;font-size:.78rem}body[data-gothic=true] .world-back{background:#493745}#run-title{margin:0;font-size:clamp(1.05rem,2vw,1.45rem);line-height:1.08}#phase{text-align:right;font-size:.76rem;color:var(--gold)}.run-unlocks{margin:0 17px 11px;border-left:3px solid var(--gold);background:#d5aa601a;color:#fff0c2;padding:8px 10px;font-size:.83rem;line-height:1.35}.board{position:relative;width:100%;aspect-ratio:960 / 560;background:#667455;isolation:isolate}.marcher-legend{display:flex;flex-wrap:wrap;gap:4px 12px;margin:8px 0 0;padding-inline:17px;color:var(--dim);font-size:.75rem}.energy-key:before,.resolve-key:before{content:"";display:inline-block;width:12px;height:6px;margin-right:4px;border:1px solid #24332d;border-radius:2px;vertical-align:.1em}.energy-key:before{background:#9ce7e2}.resolve-key:before{background:#ffe69e}#scenery,#plots{position:absolute;inset:0}#scenery canvas{display:block;width:100%!important;height:100%!important}.loading{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:1em;text-align:center;background:#202a23eb}.loading[hidden]{display:none}.plot{position:absolute;transform:translate(-50%,-50%);display:grid;place-items:center;padding:0;width:clamp(44px,5vw,49px);aspect-ratio:1;border-radius:50%;border:2px solid #fae6af;background:#303d2dea;color:#fff5d5;font-family:Georgia,serif;font-size:1.05rem;box-shadow:0 3px 6px #20251e88;touch-action:manipulation}.plot:hover,.plot[aria-pressed=true]{background:#6d6139}.plot[data-kind]:not([data-kind=""]){background:transparent;border-color:transparent;box-shadow:none}.plot[data-kind]:not([data-kind=""])[aria-pressed=true]{border-color:#fae6af90}@media(hover:hover){.plot[data-kind]:not([data-kind=""]):hover{border-color:#fae6af90}}.plot:disabled{visibility:hidden}.plot[data-drop=ready]{outline:3px solid #fff2ab;outline-offset:4px}.plot[data-drop=blocked]{outline:3px dashed #f6a5a3;outline-offset:4px}.plot[data-kind]:not([data-kind=""]) .plot-letter{position:absolute;right:-2px;bottom:-2px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;border:1px solid #fae6af;background:#2d372b;font:700 .68rem system-ui,sans-serif;pointer-events:none}.meters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:12px 17px}.meter{display:grid;grid-template-columns:1fr auto;align-content:start;align-items:baseline;padding:0 12px;gap:4px 5px}.meter:first-child{padding-left:0}.meter:last-child{padding-right:0}.meter+.meter{border-left:1px solid var(--line)}.meter small{grid-column:1 / -1;color:var(--dim);font-size:.72rem;line-height:1.35}.meters span{color:var(--dim);font-size:.77rem}.meters strong{font-variant-numeric:tabular-nums;font-size:.92rem;color:var(--gold);white-space:nowrap}.controls{padding:17px}.controls h2{font-size:1.53rem;margin:3px 0 7px}#instructions,.forecast p,.record,.message{font-size:.83rem;line-height:1.5;color:var(--dim)}#instructions{margin:0 0 13px}.tower-options{position:relative;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.tower-tile{position:relative}.tower{width:100%;height:100%;min-width:0;border:1px solid #6e7658;border-radius:9px;background:#384335;padding:10px 6px 8px;text-align:center;display:grid;grid-template-rows:auto 1fr auto;justify-items:center;gap:4px}.tower:enabled{touch-action:none;-webkit-user-select:none;user-select:none;cursor:grab}.tower-ghost{position:fixed;z-index:20;pointer-events:none;width:78px;height:auto;transform:translate(-50%,-64%);filter:drop-shadow(0 4px 4px #172216a8)}.tower[aria-pressed=true]{border-color:var(--gold);background:#484a32}.tower img{width:min(100%,86px);height:auto;margin-inline:auto}.tower strong{align-self:center;font-size:.84rem;line-height:1.18}.tower span{color:var(--gold);font-size:.75rem;font-variant-numeric:tabular-nums;white-space:nowrap}.tower-info{position:absolute;top:0;right:0;display:grid;place-items:center;width:44px;height:44px;padding:0;border:0;border-radius:8px;background:transparent}.tower-info span{display:grid;place-items:center;width:19px;height:19px;border-radius:50%;border:1px solid #c4bd97;color:#f6e8b8;background:#30392b;font:700 .75rem Georgia,serif}.tower-info:hover span,.tower-info[aria-expanded=true] span{background:var(--gold);color:#292f25}.tower-details{position:absolute;z-index:3;inset-inline:0;top:calc(100% + 6px);padding:10px 12px;border:1px solid #a0986c;border-radius:8px;background:#232b22;box-shadow:0 6px 18px #101710a6;color:#fff0cb;font-size:.83rem;line-height:1.45}.tower-details p{margin:3px 0 0;color:#e1dbc3}.forecast{margin-top:13px;padding:11px 0 8px;border-top:1px solid var(--line)}.forecast .eyebrow{margin-right:8px}.forecast strong{font-size:.86rem}.forecast p{margin:4px 0}.actions{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;padding:0 17px 13px}#start{min-height:45px;border:0;border-radius:8px;background:#eed395;color:#27251b;font-weight:750;padding:8px}.secondary-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}.secondary-actions button{padding:6px 10px;font-size:.8rem}.message{min-height:2.5em;margin:11px 0 0;color:#fff0cb}.record{border-top:1px solid var(--line);margin:8px 0 0;padding-top:8px}footer{color:var(--dim);font-size:.75rem;margin-top:15px}@media(max-width:800px){.game-layout{grid-template-columns:minmax(0,1fr);gap:12px}.shell{max-width:650px}.masthead{display:flex;justify-content:space-between;margin-bottom:15px}.masthead-brand{width:clamp(188px,55vw,264px)}.controls{padding:14px}}@media(max-width:420px){.shell{padding:11px}.masthead .eyebrow{font-size:.61rem}.sound{padding:6px 8px;font-size:.73rem;min-height:37px}.meters{padding:10px}.actions{padding:0 10px 10px}.meter{padding:0 6px}.meter small{font-size:.68rem}.meters span{font-size:.69rem}.meters strong{font-size:.8rem}.valley-heading,.marcher-legend{padding-inline:10px}.valley-heading{gap:7px}.world-back{padding-inline:6px;font-size:.7rem}#phase{max-width:91px}.run-unlocks{margin-inline:10px}}.world-map{background:#28342c;border:1px solid #a09d654e;border-radius:16px;box-shadow:0 14px 36px #141b1770;overflow:hidden}.world-heading{display:flex;justify-content:space-between;align-items:end;gap:8px 14px;flex-wrap:wrap;padding:16px 21px 13px;background:#303d31;border-bottom:1px solid var(--line)}.world-heading .eyebrow{margin:0 0 4px}.world-heading h2{font-size:clamp(1.6rem,3vw,2.18rem);line-height:1;margin:0}#world-progress{margin:0;color:var(--dim);font-size:.8rem;font-variant-numeric:tabular-nums}.world-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(285px,31%);align-items:start}.world-atlas{min-width:0;padding:14px}.world-chart{width:100%;aspect-ratio:960 / 600;position:relative;isolation:isolate;background:#3f594b;border:1px solid #9e9c6b78;border-radius:12px;overflow:hidden}.world-chart img,#world-roads,#world-pins{position:absolute;inset:0;width:100%;height:100%}#world-roads path{fill:none;stroke:#d2b981;stroke-width:5;stroke-linecap:round;opacity:.64}#world-roads [data-state=locked]{stroke:#c0c3a4;stroke-dasharray:8 11;opacity:.37}#world-roads [data-state=future]{stroke:#c0c3a4;stroke-width:3;stroke-dasharray:3 12;opacity:.2}#world-roads [data-state=cleared]{stroke:#efd398;opacity:.92}#world-roads [data-state=new]{stroke:#ffe2a3;stroke-width:6;opacity:1}.world-pin{position:absolute;translate:-50% -50%;display:grid;place-items:center;width:clamp(44px,4.5vw,55px);height:clamp(44px,4.5vw,55px);padding:0;border:2px solid #ddc594;border-radius:50%;background:#314637;color:#ffedc7;font:700 1.05rem Georgia,serif;box-shadow:0 2px 8px #172c25bd}.world-pin[data-state=locked]{background:#38463e;color:#dedbc4;border-color:#9fa596}.world-pin[data-state=cleared],.world-pin[data-state=new]{background:#6a5432;border-color:#ffda97}.world-pin[aria-pressed=true]{outline:2px solid #fff0bb;outline-offset:3px}.world-pin:focus-visible{outline:3px solid #fff1a9;outline-offset:5px}.world-castle-label{position:absolute;left:50%;top:64%;translate:-50% 0;width:max-content;max-width:52%;text-align:center;color:#fff0c5;font:italic clamp(.65rem,1.5vw,1.1rem) Georgia,serif;text-shadow:0 1px 3px #17291f;pointer-events:none}.world-panel{min-width:0;align-self:stretch;padding:14px 15px;border-left:1px solid var(--line);background:#29362d}#world-selection{border:1px solid #a6a27353;border-radius:10px;padding:12px 13px;background:#354436}#world-selection h3,#world-selection h4{margin:0;font:1.32rem Georgia,serif}.world-description,.world-record,.world-lock{margin:6px 0 0;color:var(--dim);font-size:.81rem;line-height:1.4}.world-record{color:#efe2bb}.world-lock{color:#ffe6b3;font-weight:650}.world-enter{display:block;width:100%;min-height:44px;margin-top:9px;padding:6px 8px;border:0;border-radius:7px;background:#eed395;color:#302a20;font-weight:750;font-size:.85rem}.world-challenge{margin-top:12px;border-top:1px solid var(--line);border-left:2px solid #c4a363;padding:9px 0 0 9px}.world-challenge .eyebrow{margin:0 0 3px}#world-selection .world-challenge h4{font-size:1.12rem}#world-list{display:grid;gap:5px;margin-top:10px}.world-route{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px;min-height:44px;text-align:left;border:1px solid var(--line);border-radius:7px;background:#334134;padding:5px 8px;font-size:.82rem}.world-route[aria-pressed=true]{border-color:#d2bd81;background:#3f4b37}.world-route-number{color:#e8cf9b;font-variant-numeric:tabular-nums;font-size:.76rem}.world-route-badge{color:var(--dim);font-size:.71rem}.world-route[data-state=new] .world-route-badge{color:#ffdf9f;font-weight:800}@media(max-width:800px){.world-layout{grid-template-columns:minmax(0,1fr)}.world-panel{border-left:0;border-top:1px solid var(--line)}}@media(max-width:420px){.world-heading{padding:12px}.world-atlas{padding:7px}.world-panel{padding:9px}#world-selection{padding:10px}}.finale{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px;padding:9px 17px;background:#4a402d;border-bottom:1px solid #b19c6280;color:#fff0cb;font-size:.81rem;line-height:1.4}.finale[hidden]{display:none}.finale strong{color:#ffe0a2}.bell-status{flex:0 0 100%;color:#ffcc94;font-weight:650;font-variant-numeric:tabular-nums}body[data-gothic=true]{--gold: #f5b697;--dim: #d6bfcb;--line: #b78b9d50;background:radial-gradient(ellipse at 36% 0%,#53394d,#302632 58%,#241d27)}body[data-gothic=true] .valley,body[data-gothic=true] .controls{background:#302632}body[data-gothic=true] .finale{background:#463140;border-color:#ba829a80}body[data-gothic=true] #start{background:#e1ad9c}.plot[data-kind][data-trap=armed]:disabled{visibility:visible;opacity:1;outline:2px solid #ffd69e;outline-offset:3px;background:#e4a37029;box-shadow:0 0 12px #ffd69e90}.plot[data-kind][data-trap=armed]:disabled .plot-letter{background:#ffd69e;border-color:#ffd69e;color:#3c2633}.upgrade-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 14px;padding:10px 17px;background:#323b2d;border-bottom:1px solid var(--line)}.upgrade-panel[hidden],#upgrade-button[hidden]{display:none}.upgrade-panel strong{color:var(--gold);font-size:.88rem}.upgrade-panel p{margin:3px 0;color:#eee5ce;font-size:.79rem;line-height:1.35}.upgrade-panel small{color:var(--dim);font-size:.71rem}#upgrade-button{min-height:42px;padding:7px 11px;border:1px solid #d2b779;border-radius:7px;background:#5a5036;color:#fff0c8;font-weight:700;font-size:.8rem}.plot[data-kind][data-level="2"] .plot-letter{background:#69512b;border-color:#ffe5a8;box-shadow:0 0 0 1px #f1d39760}.plot[data-kind][data-level="3"] .plot-letter{background:#69455b;border-color:#ffdfad;box-shadow:0 0 0 2px #f1d39785}@media(max-width:480px){.upgrade-panel{grid-template-columns:minmax(0,1fr);padding:9px 10px}#upgrade-button{justify-self:start}}
