:root{color-scheme:light;font-family:Georgia,"Times New Roman",serif;color:#362510;background:#21190f;font-synthesis:none;--stone:#c4a16b;--gold:#ebcf86;--ink:#362510;--edge:#76512d;--lapis:#2f6670;--noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.47' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.16' filter='url(%23n)'/%3E%3C/svg%3E")}
*{box-sizing:border-box}body{margin:0}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:default;opacity:.48}button:focus-visible,a:focus-visible,select:focus-visible,canvas:focus-visible{outline:3px solid #163f51;outline-offset:2px;z-index:5}button img{pointer-events:none}button,select{min-height:44px}button{border-radius:0}a{color:inherit}[hidden]{display:none!important}h1,h2,p{margin:0}h1{font-size:32px;line-height:1.15;font-weight:500}h2{font-size:18px;font-weight:600}p{line-height:1.5}.stone,.appbar,.btn,.build-button{background-image:var(--noise),linear-gradient(105deg,#d4b27b,#b8925d 52%,#c8a36e);border:1px solid #73532f;box-shadow:inset 1px 1px #f3d49a,inset -1px -1px #825b32}
.btn{padding:9px 14px;min-width:44px;line-height:1.2;text-shadow:0 1px #edd6a7}.btn:hover:not(:disabled),.build-button:hover{filter:brightness(1.1)}.btn:active:not(:disabled),.btn.selected,.build-button.selected{background-color:#8b6b3c;background-image:var(--noise),linear-gradient(#8d7047,#b08d54);box-shadow:inset 2px 2px 3px #4d371f,inset -1px -1px #e5c186;color:#fff0bd;text-shadow:0 1px #443217}.btn.primary{background-image:var(--noise),linear-gradient(#e0c27c,#b18841);font-weight:bold;border-color:#79551e}.appbar{height:46px;display:flex;align-items:center;padding:0 8px;gap:24px;border-bottom:5px solid #775a35;position:relative;z-index:3}.appbar:after{content:"";position:absolute;bottom:-5px;left:0;right:0;height:4px;background:repeating-linear-gradient(90deg,#245d66 0 7px,#dbc887 7px 11px,#693b22 11px 17px,#ddc68a 17px 21px)}.brand{background:none;border:none;font-size:20px;letter-spacing:.01em;padding:0 6px;white-space:nowrap;text-shadow:0 1px #ebd3a0;min-height:40px}.brand span{font-size:15px}.appbar nav{display:flex;gap:4px}.appbar nav .btn{border:0;background:none;box-shadow:none;min-height:40px;padding:6px 12px;font-size:17px}.appbar nav .btn:hover{background:#b79460}.scenario-title{margin-left:auto;font-size:14px;padding-right:12px}.screen{min-height:100dvh}.screen-menu{display:flex;align-items:center;justify-content:center;background:#ae905d url('./assets/classic/title-city.webp') center/cover no-repeat;position:relative;padding:30px 20px}.screen-menu:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#19160d45,transparent 70%)}.menu-panel{position:relative;width:386px;padding:22px 34px 16px;text-align:center;border:7px ridge #b59860;box-shadow:0 12px 40px #271a16a8,inset 0 0 0 2px #71522e}.winged-sun{color:#765026;font-size:26px;letter-spacing:.13em;margin-bottom:7px;text-shadow:0 1px #ecd49b}.menu-panel h1{font-size:46px;font-variant:small-caps;letter-spacing:.045em;color:#4d2914;text-shadow:0 1px #f7e6ab}.menu-panel h1 span{display:block;font-size:29px;letter-spacing:.13em}.menu-intro{font-size:14px;margin:13px 0 19px}.menu-actions{display:grid;gap:9px}.menu-actions .btn{min-height:48px;font-size:16px}.scenario-description{font-size:13px;margin:17px 0 9px}.return-link{display:flex;justify-content:center;align-items:center;min-height:44px;font-size:13px}.carved-rule{font-size:24px;color:#76522f;margin-top:6px;text-shadow:0 1px #d6bd87}.screen-game{height:100dvh;min-height:560px;display:flex;flex-direction:column;overflow:hidden}.resources{display:flex;align-items:center;gap:28px;padding:0 14px;min-height:36px;border-bottom:3px ridge #a7834e;font-size:16px}.resources>span{display:flex;align-items:center;gap:8px;white-space:nowrap}.resources small{font-size:13px}.resources b{font-weight:600}.river-date{margin-left:auto;font-size:14px}.game-main{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 216px}.map-wrap{min-width:0;min-height:0;position:relative;background:#b8a576;overflow:hidden}.world-stage{position:absolute;inset:0;touch-action:none}.world-stage canvas{display:block;width:100%;height:100%;touch-action:none}.construction{border-width:0 0 0 4px;border-left-style:ridge;display:flex;flex-direction:column;padding:6px;gap:5px;min-height:0;overflow:auto;scrollbar-color:#80623c #c3a271}.rail-title{text-align:center;padding:5px 0;font-size:15px;border-bottom:1px solid #89673e}.construction canvas{display:block;width:100%;max-height:135px;object-fit:fill;border:3px ridge #a57d46;background:#6d8955}.rail-section{text-align:center;font-size:17px;padding:4px 0;border-block:1px solid #9d7549;box-shadow:0 1px #e0bd81}.build-picker{display:none}.build-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px}.build-button{height:57px;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2px 0 4px;position:relative}.build-button img{width:47px;height:36px;object-fit:contain;filter:drop-shadow(1px 2px 1px #59402550)}.build-button>span:last-child{font:11px/1.1 Georgia,serif}.road-icon{height:36px;line-height:29px;font-size:43px;color:#efdfb4;text-shadow:1px 1px #634c2c}.tool-row{display:flex;gap:3px}.tool-row .btn{flex:1;font-size:12px;padding:4px;min-width:44px}.rail-bottom{margin-top:auto}.speed-controls{display:flex;gap:3px}.speed-controls .btn{flex:1;padding:5px;font-size:17px}.objective{font-size:12px;text-align:center;padding:9px 0 3px}.camera-tools{position:absolute;bottom:14px;left:14px;display:flex;gap:4px;z-index:2}.camera-tools .btn{width:44px;padding:4px;font:25px Georgia,serif}.map-instruction{position:absolute;bottom:18px;left:169px;color:#fff8e4;background:#3c321fac;padding:6px 9px;font-size:12px;pointer-events:none;text-shadow:0 1px #35291a}.statusbar{min-height:29px;display:flex;align-items:center;gap:20px;padding:4px 13px;border-top:4px ridge #b89862;font-size:13px}.js-autosave{margin-left:auto;white-space:nowrap;padding-right:95px}.inspector{position:absolute;top:16px;right:16px;width:322px;border:4px ridge #b6955c;box-shadow:0 5px 18px #30281880;max-height:calc(100% - 86px);display:flex;flex-direction:column;z-index:4}.inspector header{display:flex;align-items:center;padding:0 0 0 10px;border-bottom:1px solid #886239;gap:5px}.inspector h2{flex:1;font-size:20px}.close{font:28px Georgia,serif;padding:4px;width:44px;flex-shrink:0}.inspector-content{padding:12px;overflow:auto;font-size:13px}.inspector-advice{margin:10px 0;background:#eee0ac6b;padding:10px;border:1px solid #997345}.inspector dl{margin:10px 0 14px}.inspector dl>div{padding:6px 0;border-bottom:1px solid #96704766;display:flex;justify-content:space-between;gap:15px}.inspector dt{opacity:.85}.inspector dd{margin:0;text-align:right;max-width:65%;font-weight:600}.inspector-content>.btn{width:100%;font-size:13px}.toast{position:absolute;left:50%;bottom:74px;transform:translateX(-50%);width:max-content;max-width:90%;background:#3f2d1a;color:#f8e5b1;border:2px solid #d9b76c;box-shadow:0 3px 12px #38231166;padding:12px 18px;font:14px/1.4 Georgia,serif;z-index:6}
.screen-panel{background:#aa915f url('./assets/classic/title-city.webp') center/cover fixed}.panel-main{padding:32px 20px;display:flex;justify-content:center}.dialog-panel{width:min(920px,100%);border:6px ridge #b8995f;box-shadow:0 10px 35px #241b16a6;padding:22px 26px}.dialog-heading{display:flex;align-items:center;justify-content:space-between;gap:18px;padding-bottom:16px;border-bottom:1px solid #8f6b40}.dialog-heading h1{font-size:32px}.dialog-actions{display:flex;gap:9px;flex-wrap:wrap;padding-top:18px}.tabs{display:flex;flex-wrap:wrap;gap:4px;margin-top:18px}.tab{font-size:14px;flex:1}.report-summary{font-size:14px;padding:17px 0;border-bottom:1px solid #9a794b}.report-list{min-height:180px;max-height:43vh;overflow:auto}.report-row{display:flex;align-items:center;gap:20px;padding:15px 0;border-bottom:1px solid #8b6b3d66}.report-row>div{flex:1}.report-row h2{font-size:17px;margin-bottom:4px}.report-row p,.empty-state{font-size:14px;line-height:1.5}.empty-state{padding:24px 0;max-width:570px}.save-message{padding:13px 0;font-size:14px;min-height:48px}.slots{display:grid;grid-template-columns:1fr 1fr;gap:12px}.save-slot{background:#e4cea05e;border:1px solid #8a6940;box-shadow:inset 1px 1px #eed5a7;padding:15px;min-width:0}.save-slot p{font-size:13px;margin:6px 0 15px}.slot-actions{display:flex;gap:5px;flex-wrap:wrap}.slot-actions .btn{padding:7px 10px;font-size:14px}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 0;border-bottom:1px solid #99754a8a}.setting-row h2{font-size:18px;margin-bottom:5px}.setting-row p{font-size:14px}.setting-row>.btn{min-width:65px}.completion-copy{padding:20px 0;max-width:610px;margin:auto;text-align:center}.completion-copy p{margin:12px 0}.completion-copy .winged-sun{font-size:32px}.rex-progress-pill{bottom:3px!important;right:4px!important;max-width:90px!important;font-size:11px!important}
@media(min-width:1600px){.game-main{grid-template-columns:minmax(0,1fr) 240px}.build-button{height:64px}.build-button img{height:42px;width:58px}}
@media(max-width:850px){.brand{font-size:17px}.brand span{display:none}.appbar{gap:6px}.appbar nav .btn{font-size:15px;padding:5px 9px}.scenario-title{display:none}.resources{gap:17px}.resources small{display:none}.game-main{grid-template-columns:minmax(0,1fr) 192px}.construction{padding:4px}.build-button>span:last-child{font-size:10px}.map-instruction{display:none}.js-autosave{display:none}.statusbar{padding-right:100px}.dialog-panel{padding:18px}.panel-main{padding:20px 14px}}
@media(max-width:600px){.screen-menu{padding:16px;align-items:center;background-position:62% center}.menu-panel{width:min(348px,100%);padding:16px 22px 12px}.menu-panel h1{font-size:36px}.menu-panel h1 span{font-size:24px}.menu-intro{font-size:13px;margin:12px 0}.menu-actions{gap:7px}.menu-actions .btn{font-size:15px;min-height:46px}.scenario-description{margin-top:13px}.carved-rule{margin:0;font-size:20px}.screen-game{min-height:560px}.appbar{height:48px;padding:0 4px;gap:0;flex-shrink:0}.brand{font-size:15px;padding:0 6px}.appbar nav{flex:1;justify-content:flex-end;gap:0}.appbar nav .btn{font-size:14px;padding:6px 8px;min-height:44px}.resources{min-height:39px;gap:13px;padding:0 9px;font-size:13px;flex-shrink:0}.resources>span{gap:4px}.river-date{font-size:11px;max-width:90px;white-space:normal!important}.game-main{display:flex;flex-direction:column}.map-wrap{flex:1;min-height:215px}.construction{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:6px;border:0;border-top:4px ridge #b69460;overflow:visible}.rail-title,.rail-section,.construction canvas,.build-grid,.objective{display:none}.build-picker{display:flex;grid-column:1/-1;align-items:center;gap:9px;font-size:13px;min-width:0}.build-picker select{flex:1;min-width:0;width:100%;border:2px inset #9c7843;background:#ddc498;padding:4px 7px;font-size:14px}.tool-row .btn{font-size:12px;padding:3px;min-width:44px}.rail-bottom{margin:0}.speed-controls{height:44px}.speed-controls .btn{min-width:36px;font-size:15px}.statusbar{font-size:11px;min-height:34px;padding:4px 94px 4px 8px;flex-shrink:0}.camera-tools{bottom:10px;left:10px}.inspector{top:8px;right:8px;left:8px;width:auto;max-height:calc(100% - 68px)}.inspector h2{font-size:18px}.inspector-content{font-size:13px;padding:8px 10px}.inspector-advice{margin:6px 0;padding:7px}.inspector dl>div{padding:5px 0}.toast{bottom:65px;font-size:13px;padding:9px 12px}.panel-main{padding:13px 10px 48px}.dialog-panel{padding:12px;border-width:4px}.dialog-heading{padding-bottom:10px;gap:8px}.dialog-heading h1{font-size:26px}.dialog-actions{gap:6px;padding-top:12px}.dialog-actions .btn{font-size:13px;flex:1}.tabs{gap:4px;margin-top:12px}.tab{flex:1 0 28%;font-size:13px;padding:6px}.report-summary{font-size:12px;padding:12px 0}.report-list{max-height:43vh;min-height:130px}.report-row{gap:10px}.report-row h2{font-size:16px}.report-row p{font-size:13px}.report-row>.btn{font-size:12px;padding:7px}.slots{grid-template-columns:1fr;gap:9px}.save-slot{padding:11px}.save-slot h2{font-size:17px}.save-slot p{margin-bottom:9px}.save-message{font-size:13px;min-height:0}.setting-row{padding:12px 0;gap:13px}.setting-row h2{font-size:16px}.setting-row p{font-size:13px}.setting-row>.btn{min-width:55px}.completion-copy{font-size:15px}.rex-progress-pill{font-size:10px!important;max-width:88px!important}}
@media(max-height:690px) and (min-width:601px){.construction canvas{max-height:90px}.build-button{height:49px}.build-button img{height:29px}.rail-title{padding:2px 0}.rail-section{padding:2px}.objective{padding:4px 0}.menu-panel{padding-top:12px;padding-bottom:9px}.menu-panel h1{font-size:40px}.menu-intro{margin:10px 0}.menu-actions{gap:6px}.menu-actions .btn{min-height:44px}.scenario-description{margin-top:10px}.carved-rule{display:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation:none!important;transition:none!important}}

/* The shared save control occupies its own strip, including after account status resolves. */
body{padding-bottom:44px}.screen{min-height:calc(100dvh - 44px)}.screen-game{height:calc(100dvh - 44px);min-height:540px}.appbar{height:50px}.appbar nav .btn,.brand{min-height:44px}.rex-progress-pill{left:0!important;right:0!important;bottom:0!important;max-width:none!important;width:100%!important;height:44px!important;padding:0 12px!important;border-radius:0!important;justify-content:flex-end!important;gap:12px!important;background:#d0b17d!important;color:#352612!important;border:1px solid #80623c!important;box-shadow:inset 0 1px #edd6a0!important;backdrop-filter:none!important;font:12px Georgia,serif!important}.rex-progress-pill button{min-height:40px!important;background:#785e37!important;border-radius:0!important;padding:0 14px!important;color:#fff1c9!important}.rex-progress-pill span{white-space:nowrap}.statusbar{padding-right:13px}.js-autosave{padding-right:0}@media(max-width:600px){.construction{grid-template-columns:minmax(132px,1fr) 185px}.speed-controls .btn{min-width:44px}.appbar{height:50px}.rex-progress-pill{justify-content:space-between!important;font-size:12px!important}.statusbar{padding-right:8px}.resources .river-date{max-width:96px}}

:root[data-color-safe=true] .selected{outline:3px double #fff0b0;outline-offset:-4px}

.construction-preview{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);max-width:90%;padding:8px 12px;background:#ead2a4;border:2px ridge #d4b481;color:#35210e;font:14px Georgia,serif;pointer-events:none;z-index:5;box-shadow:0 2px 8px #0005;}
.construction-preview[hidden]{display:none;}
