/* 0.2 — original pre-rendered city art and continuous kingdom terrain. */
.power-banner{display:flex;align-items:center;gap:12px;width:100%;min-height:45px;padding:8px 16px;margin:0 0 12px;background:linear-gradient(100deg,#172b20,#35482b 50%,#172b20);border:2px ridge #9d905b;box-shadow:inset 0 0 14px #06110a77,0 2px 5px #0005;color:#dec68b;text-shadow:0 1px #000;font-family:var(--serif);font-size:13px;cursor:pointer}.power-banner:hover{border-color:#d4c17f}.power-banner strong{font:24px Georgia;color:#f3df9f;letter-spacing:1px;font-variant-numeric:tabular-nums}.power-emblem{font:24px Georgia;color:#d4b66c}.power-detail-link{margin-left:auto;color:#b6bc98;font:11px var(--sans)}.power-total{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:15px;background:linear-gradient(100deg,#183021,#3b502f);border:1px solid #a49358}.power-total span{color:#dbc995}.power-total strong{font:30px Georgia;color:#f7dda0;font-variant-numeric:tabular-nums}.power-row{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #63734b55;font-size:12px}.power-row small{color:#acb597;font-size:11px}.power-row strong{font-weight:500;color:#e7d09a;font-variant-numeric:tabular-nums}
@media(max-width:640px){.power-banner{padding:7px 10px;gap:9px;min-height:43px;margin-bottom:10px;font-size:12px}.power-banner strong{font-size:23px}.power-detail-link{font-size:10px}}
:root{color-scheme:dark;--ink:#e5dcc6;--muted:#a8ac93;--paper:#18241f;--line:#5d6045;--gold:#c8aa65;--green:#c5d0ad}
body{background:#101a15;background-image:radial-gradient(ellipse at top,#2b3b2a66,transparent 65%);color:var(--ink)}
.app{max-width:1240px;padding:0 25px}.masthead{height:91px;border-color:#797348;background:linear-gradient(180deg,#253429,#142019);box-shadow:0 2px 0 #060b08;padding:0 18px;margin:0 -1px;border-left:1px solid #555c40;border-right:1px solid #555c40}
.brand{gap:11px}.brand .crest{display:block;width:52px;height:62px;padding:0;border:0;background:url('assets/art/world-props-v2.png') 100% 100%/200% 200% no-repeat}.brand small{color:#b6ae8a;font-size:8px;letter-spacing:1.7px}.brand strong{font-size:28px;letter-spacing:5px;color:#e3cf94;text-shadow:0 2px 2px #000}.prototype{color:#aaa584}.icon-button{color:#d6c28c;background:radial-gradient(circle at 35% 25%,#52614a,#1b2a20 70%);border:2px ridge #9e8e5a;box-shadow:0 2px 3px #0008}.realm-strip{padding:10px 2px;color:#b1b69e}.live-dot{background:#a2ba70;box-shadow:0 0 6px #b9d37255}#city-name{color:#e8d7a1}#level-tag{color:#d2be83}.quiet-button{color:#b9b38e;font-size:11px}.resources{background:linear-gradient(#1c281f,#111a15);border:2px ridge #77734c;box-shadow:0 3px 10px #0006;margin-bottom:17px}.resource{padding:13px 20px;grid-template-columns:32px 1fr}.resource+.resource{border-color:#655f40}.resource-head{color:#c9c5a9}.resource-head strong{color:#f4ebd1;text-shadow:0 2px #000;font-size:26px}.food{color:#dcc06b}.wood{color:#b1bd89}.resource-track{background:#080f0b;box-shadow:0 1px #56603d}.resource-track i{background:linear-gradient(90deg,#8a713c,#d5bb6d)}.wood-track i{background:linear-gradient(90deg,#4f693b,#a7b46a)}.resource-meta{color:#c2bd9b}.layout{gap:21px;grid-template-columns:minmax(0,1fr) 280px}.page-heading{margin-bottom:10px}.page-heading h1{font-size:23px;letter-spacing:3px;text-shadow:0 2px #000}.page-heading p{color:#aeb49c}.eyebrow{font-size:9px;color:#9aa38a;letter-spacing:1.7px}.text-action{color:#dfc47e}.small-tag{color:#c8bd91}.panel,.plain-panel,.unit-card{border:2px ridge #666748;background:linear-gradient(135deg,#26362a,#15241c 80%);box-shadow:0 4px 12px #0004}.panel{padding:19px}.panel h2,.plain-panel h3{color:#e1cf96;text-shadow:0 1px #000}.queue-item,.quest{border-color:#72704a66}.queue-label strong{color:#e1dcc7}.queue-label time{color:#e7c879}.empty-work{color:#b6bca5;border-color:#626644}.job-track{background:#080f0a}.job-track i{background:linear-gradient(90deg,#6b8b47,#b6c77b)}.quest-symbol{color:#d0b76c}.quest strong{color:#e5dcc2}.quest p{color:#abb198}.quest button{border:1px solid #a89961;background:linear-gradient(#4e6340,#263e26);color:#f0db9d;min-height:34px}.quest.done{opacity:.55}.counsel{color:#a2ac92}.counsel>span{color:#a7a46a}.bottom-nav{background:linear-gradient(#283c2d,#0b160e);border:3px ridge #7b8053;box-shadow:0 -3px 14px #0008}.bottom-nav button{border-right-color:#aa9b5c33;color:#c6c7a4;text-shadow:0 2px #000}.bottom-nav button>span{color:#bfad69;text-shadow:1px 2px 2px #000;font-size:27px}.bottom-nav button.active{background:linear-gradient(#60774780,#2a4426);color:#ffeba9;box-shadow:inset 0 2px #d4bf6d}.bottom-nav button:hover{background:#405b31}.bottom-nav button.active>span{color:#efd58b}.footnote{color:#85917b}.page-heading .eyebrow{color:#9eaa8c}
.city-stage{aspect-ratio:1;overflow:auto;border:3px ridge #81805b;background:#2b3828;box-shadow:0 8px 25px #0005;scrollbar-width:thin;scrollbar-color:#9f9868 #253327;isolation:isolate;touch-action:pan-x pan-y;cursor:grab;overscroll-behavior:contain}
.city-stage:active,.map-viewport:active{cursor:grabbing}.city-surface{position:relative;width:100%;min-width:100%;aspect-ratio:1}.city-scene-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none;user-select:none}.scene-title{top:12px;left:12px;pointer-events:none;z-index:5;padding:7px 13px;background:linear-gradient(90deg,#0c1e17d9,#0d20194d);border-left:2px solid #cbb67c;max-width:55%}.scene-title strong{font-size:17px;color:#f5e7ba;letter-spacing:2px}.scene-title span{font-size:9px;color:#c7d0ae;letter-spacing:1px}.scene-compass{right:13px;top:12px;background:#10221899;padding:5px 9px;border:1px solid #8c8c574d;color:#e0d3a2;pointer-events:none;font-size:24px}.scene-compass small{font-size:9px}
.city-stage .building,.city-stage .building.keep,.city-stage .building.wall{transform:translate(-50%,-50%);padding:0 2px 3px;border:0;background:transparent;filter:none;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;z-index:3;min-width:44px;min-height:44px;cursor:pointer}
.city-stage .building:hover,.city-stage .building:focus-visible{filter:none;background:radial-gradient(ellipse at 50% 75%,#f4de8859,transparent 65%);outline:0}.city-stage .building:focus-visible .building-label{outline:2px solid #ffe2a0;outline-offset:3px}.building-label{font-size:11px;background:linear-gradient(#172d22ee,#09160ff5);color:#f2e2b5;border:1px solid #b1a06b;padding:3px 8px;box-shadow:0 2px 5px #0009;text-shadow:0 1px #000;gap:6px;min-height:24px}.building-label i{font:10px Georgia;color:#e0bd62}.city-stage .building .working{top:10%;background:linear-gradient(#c8aa59,#82622d);color:#fff0c4;border:1px solid #e8d292;text-shadow:0 1px #49350e;box-shadow:0 2px 5px #0008;font-size:10px}.scene-zoom{position:absolute;left:50%;bottom:10px;transform:translateX(-50%);z-index:6;display:flex;gap:6px}.scene-control{padding:6px 11px;min-height:32px;color:#ebddb4;background:#11271de6;border:1px solid #a99a62;font-size:11px;white-space:nowrap}.scene-control:hover{background:#3b5030}.scene-caption{background:linear-gradient(#28382a,#17251b);border:2px ridge #6c6f48;border-top:0;color:#c3c5a7;font-size:11px;padding:10px 12px}.building-portrait{width:100%;height:180px;background-image:url('assets/art/city-scene-v3.png');background-size:330%;background-position:var(--portrait-x) var(--portrait-y);background-repeat:no-repeat;border:2px ridge #7d8059;box-shadow:inset 0 0 28px #0b1b1644}.dialog-preview{padding:0;background:#243829}.dialog-preview .building-portrait{height:190px}
.map-viewport{height:560px;background:#46552e;border:2px ridge #777a4f;scrollbar-color:#91985e #283e26;overscroll-behavior:contain;touch-action:pan-x pan-y;cursor:grab}.map-grid{position:relative;grid-template-columns:repeat(20,160px);grid-auto-rows:160px;gap:0;padding:0;width:3200px;height:3200px;background:#4a5b2e url('assets/art/world-terrain-v2.png') repeat;background-size:900px 900px;isolation:isolate}.map-tile,.map-tile:nth-child(3n),.map-tile:nth-child(7n){width:160px;height:160px;background:transparent;overflow:visible;border:0;box-shadow:none;isolation:isolate}.map-tile.home{box-shadow:none}.map-tile:hover,.map-tile:focus-visible{background:radial-gradient(ellipse at center,#e5df9250,transparent 65%);box-shadow:none;outline:0;z-index:4}.map-tile:focus-visible .tile-name{outline:2px solid #e2d38d}.map-tile img{position:absolute;inset:auto;left:50%;top:40%;width:124px;height:124px;object-fit:contain;transform:translate(calc(-50% + var(--node-x)),calc(-50% + var(--node-y)));mask-image:linear-gradient(to bottom,transparent 0%,#000 9%,#000 80%,transparent 100%),linear-gradient(to right,transparent,#000 10%,#000 88%,transparent);mask-composite:intersect;filter:drop-shadow(3px 8px 3px #10200d66);pointer-events:none;user-select:none}.map-tile.home img{outline:0;width:132px;height:132px}.map-tile .tile-name{position:absolute;left:5px;right:5px;bottom:15px;z-index:3;padding:3px 3px 2px;background:linear-gradient(90deg,transparent,#15220dd9 14%,#15220dd9 86%,transparent);color:#e7e4bd;font-size:12px;line-height:1.35;text-shadow:0 1px 2px #000;white-space:nowrap;transform:translate(var(--node-x),var(--node-y));border-bottom:1px solid #8a8f5844}.tile-name i{font:10px Georgia;color:#d6c98d;display:block}.map-tile.home .tile-name{color:#f2cf58;text-shadow:0 1px 2px #000;font-weight:500}.map-tile.empty{color:transparent;pointer-events:none}.world-prop{position:absolute;left:50%;top:39%;width:126px;height:126px;background-image:url('assets/art/world-props-v2.png');background-size:200% 200%;background-repeat:no-repeat;transform:translate(calc(-50% + var(--node-x)),calc(-50% + var(--node-y)));filter:drop-shadow(3px 6px 3px #1a291357);pointer-events:none}.world-prop.food{background-position:0 0}.world-prop.wood{background-position:100% 0}.world-prop.monster{background-position:0 100%;width:112px;height:112px}.world-banner{position:absolute;left:4px;top:12px;width:33px;height:42px;background:url('assets/art/world-props-v2.png') 100% 100%/200% 200% no-repeat;filter:drop-shadow(2px 4px 2px #14270c99);pointer-events:none;z-index:3}.world-toolbar,.world-bottom{background:linear-gradient(#293b2b,#142318);border:2px ridge #6f7750;padding:10px 13px;color:#d4d7ae;font-size:11px;display:flex;align-items:center;justify-content:space-between;gap:8px}.world-toolbar{border-bottom:0}.world-bottom{border-top:0}.march-routes{position:absolute;inset:0;z-index:5;pointer-events:none}.march-line{fill:none;stroke:#f3e4a1;stroke-width:3;stroke-dasharray:7 8;filter:drop-shadow(0 1px 1px #14220b);opacity:.85}.march-line.returning{stroke:#b4d294}.march-dot{fill:#ecdd99;stroke:#2f4327;stroke-width:2}.summary-row .mini-stat{border-color:#63704a}.mini-stat span,.mini-stat small{color:#b4bc9f}.mini-stat strong{color:#e9d59c;text-shadow:0 2px #000}.unit-emblem{background:linear-gradient(#6d7847,#233b26);color:#d8bd74;box-shadow:inset 0 1px #bbaa65}.unit-title span{color:#d6bf7d}.unit-card p{color:#c0c5ae}.cost{color:#d1b975}.hint{color:#b0b79e}.unit-title h3{color:#ede0b8}.primary-button{background:linear-gradient(#667644,#344a29);border:2px ridge #a99b5c;color:#faebbc;box-shadow:0 2px 4px #0006;text-shadow:0 1px #26321b}.primary-button:hover{background:linear-gradient(#788750,#425a32)}.secondary-button{background:linear-gradient(#344b37,#172d20);border:1px solid #8a9461;color:#d7ddb7}.secondary-button:hover{background:#3d5538}.danger-button{background:linear-gradient(#79482c,#42291f);border:2px ridge #b28251;color:#f4d6aa}.text-muted,.army-card-progress{color:#c3be9a}.count-input,input,textarea,select{background:#0d1c14;color:#eee2bb;border-color:#79825c}.field label{color:#c0c7ac}input:focus,textarea:focus,select:focus{outline-color:#d4bd78}.notice,.battle-preview{background:#34472b;color:#d1d4af;border-color:#c9ac64}.battle-preview strong{color:#f0dda6}.alliance-banner{background:radial-gradient(ellipse at top,#485b33,#152c1e);border:3px ridge #8c8b57;box-shadow:inset 0 0 50px #0a180e}.alliance-banner .banner-icon{display:block;width:105px;height:115px;background:url('assets/art/world-props-v2.png') 100% 100%/200% 200% no-repeat;margin:0 auto;font-size:0}.alliance-banner p{color:#c1cfab}.alliance-banner button{background:linear-gradient(#8a8a49,#425831);color:#f8e7b4;border-color:#c5b475}.join-note{color:#a8b49b}.chat-message small{color:#c1b78b}.chat-message p{background:#293e2b;color:#e2e0c5;border:1px solid #5a6c4580}.report{border-color:#596b41}.report strong{color:#e7d39b}.report p{color:#bdc8ab}.report small{color:#8f9d7e}.mission-row{background:linear-gradient(#30452f,#1b3021);border-color:#728151}.mission-row p{color:#bfc8a7}.mission-row strong{color:#e2d8ae}.mission-row header>span{color:#c1bd8b}.castle-viewer{background:#2a3c25;box-shadow:inset 0 0 35px #101e0d}.castle-viewer p{color:#d6d4ad}.exterior-preview{border:2px ridge #96966c}.slot-item{border-color:#60704b}.slot-item small{color:#afb99c}.current-slot{color:#edd18a}.toast{background:linear-gradient(#2f452c,#14261a);color:#fae9b8;border:2px ridge #afa16b;box-shadow:0 5px 28px #0009}dialog{background:linear-gradient(130deg,#2b3a2c,#15281e);color:#e4dcc1;border:3px ridge #aaa075;box-shadow:0 20px 90px #000b}dialog::backdrop{background:#030c07dd}dialog h2{color:#e5cd8c;text-shadow:0 2px #000}dialog p{color:#bbc4ac}dialog hr{border-color:#66744e}.dialog-top .eyebrow{color:#9fae8b}.slot-item strong{color:#e3d3a2}.storage-error{color:#ffba98!important}
.castle-cutout{position:absolute;left:50%;top:40%;width:138px;height:138px;background-image:var(--castle-atlas);background-size:200% 200%;background-position:var(--castle-x) var(--castle-y);background-repeat:no-repeat;transform:translate(calc(-50% + var(--node-x)),calc(-50% + var(--node-y)));pointer-events:none;filter:drop-shadow(2px 5px 2px #10200d44)}
.map-tile.home .castle-cutout{width:146px;height:146px}
.map-tile .tile-name{left:10px;right:10px;background:radial-gradient(ellipse at center,#13210ca6,transparent 73%);border-bottom:0;text-shadow:0 1px 2px #000,1px 0 2px #14210b,-1px 0 2px #14210b}
.scene-caption .scene-zoom{position:static;transform:none;display:flex;gap:5px;margin:0}.scene-caption{align-items:center;flex-wrap:wrap}.scene-caption .scene-control{min-height:30px;padding:4px 9px}.scene-caption>span:last-child{margin-left:auto}
@media(min-width:1000px){.bottom-nav{width:calc(100% - 301px)}.layout{min-height:unset}}
@media(max-width:800px){.layout{grid-template-columns:minmax(0,1fr) 235px;gap:15px}.app{padding:0 15px}.masthead{height:82px;padding:0 12px}.brand strong{font-size:25px}.brand .crest{width:42px;height:52px}.resource{padding:12px}.city-stage{aspect-ratio:1}.panel{padding:15px}.building-label{font-size:10px;padding:3px 6px}.building-label i{font-size:9px}}
@media(max-width:640px){.app{padding:0 10px}.masthead{height:70px;padding:0 8px;border-width:1px}.brand{gap:8px}.brand .crest{width:34px;height:43px}.brand strong{font-size:21px;letter-spacing:4px}.brand small{font-size:6px;letter-spacing:1.2px}.top-actions{gap:7px}.prototype{font-size:8px}.icon-button{width:33px;height:33px;font-size:19px}.realm-strip{padding:7px 2px;font-size:11px}.quiet-button{font-size:9px}.resources{margin-bottom:12px}.resource{padding:10px 9px;grid-template-columns:24px 1fr;gap:6px}.resource-icon{font-size:27px}.resource-head{font-size:10px}.resource-head strong{font-size:23px}.resource-track{margin:6px 0}.resource-meta{font-size:9px}.layout{display:flex;gap:14px}.page-heading h1{font-size:20px;margin:1px 0}.page-heading .eyebrow{font-size:8px;letter-spacing:1px}.page-heading{padding:0 3px;margin-bottom:8px}.page-heading .text-action{font-size:10px}.city-stage{aspect-ratio:1;border-width:2px;margin:0 -2px}.scene-title{top:6px;left:6px;padding:4px 7px;max-width:40%;border-left-width:1px}.scene-title strong{font-size:13px;letter-spacing:1px}.scene-title span{font-size:8px;letter-spacing:0}.scene-compass{top:6px;right:6px;font-size:18px;padding:3px 6px}.scene-compass small{font-size:8px}.city-stage .building,.city-stage .building.keep,.city-stage .building.wall{padding-bottom:0}.building-label{font-size:10px;gap:4px;min-height:22px;padding:2px 5px;box-shadow:0 1px 4px #000b}.building-label i{font-size:9px}.scene-caption{font-size:10px;padding:8px;gap:6px}.scene-zoom{bottom:5px;gap:4px}.scene-control{min-height:28px;padding:4px 8px;font-size:10px}.city-stage .building .working{font-size:9px;padding:1px 5px}.map-viewport{height:440px}.world-toolbar,.world-bottom{padding:8px 10px;font-size:10px}.world-toolbar .text-action{font-size:10px;padding:4px 0}.bottom-nav{margin:16px -10px 0;border-width:3px 0 1px;position:sticky;bottom:0}.bottom-nav button{font-size:11px;min-height:62px;padding:8px 2px}.bottom-nav button>span{font-size:26px}.panel{padding:15px}.panel h2{font-size:18px}.quest p{font-size:10px}.queue-label{font-size:12px}.empty-work{font-size:12px}.quest strong{font-size:12px}.unit-card{padding:15px}.unit-card p{font-size:12px}.footnote{font-size:8px;letter-spacing:0}.toast{bottom:82px}.building-portrait{height:160px}.primary-button,.secondary-button,.danger-button{min-height:42px}}
