/* templates/default/default.css */
/* assets/css/large-armies.css */
.army-capacity-summary{margin:18px 0;padding:18px 22px;color:var(--ink,#244b3b)}
.army-capacity-heading{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:13px}
.army-capacity-summary dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:16px 0}
.army-capacity-summary dt{font-size:13px}.panel.army-capacity-summary dl dd{font-size:clamp(21px,3vw,30px);font-weight:750;margin:2px 0;font-variant-numeric:tabular-nums}
.army-capacity-summary summary{cursor:pointer;font-size:14px;font-weight:650}.army-capacity-summary details p{font-size:13px;line-height:1.65;margin:10px 0}
.army-capacity-levels{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.army-capacity-levels span{padding:7px 11px;border:1px solid #b99b60;border-radius:8px;font-size:12px}.army-capacity-levels b{margin-left:6px}
@media(max-width:480px){.army-capacity-summary{padding:15px 14px}.army-capacity-summary dl{gap:9px}.army-capacity-summary dt{font-size:11px}.army-capacity-heading{font-size:12px}}


/* templates/default/legacy.css */
body.body
{
 background-color: black;
 font-family: "Verdana";
 background-image: url("../../templates/default/images/background.jpg");
 background-repeat: no-repeat;
 background-position: center bottom;
 background-attachment: fixed;
 text-align: center;
 overflow-x: hidden;
}
a.small
{
 color: white;
 text-decoration: none;
 font-size: x-small;
}
a.link
{
 color: white;
 text-decoration: none;
 font-weight: bold;
 font-size: small;
}
a.link:hover, a.small:hover
{
 color: orange;
}
textarea.textbox
{
 font-size: medium;
 background-color: #b7c5cf;
 border: 1px solid #000;
}
textarea.textbox:focus
{
 font-size: medium;
 background-color: #a6b0b7;
 border: 1px solid #eee;
 outline: none;
}
textarea.textbox:hover
{
 font-size: medium;
 border: 1px solid #eee;
}
input.textbox, select.dropdown
{
 font-size: small;
 background-color: #b7c5cf;
 border: 1px solid #000;
 padding: 3px;
}
input.textbox:focus, select.dropdown:focus
{
 font-size: small;
 background-color: #a6b0b7;
 border: 1px solid #eee;
 outline: none;
}
input.textbox:hover, select.dropdown:hover
{
 font-size: small;
 border: 1px solid #eee;
}
input.button
{
 font-size: small;
 background-color: #b7c5cf;
 border: 1px solid #000;
 padding: 7px;
}
input.button:focus
{
 font-size: small;
 background-color: #a6b0b7;
 border: 1px solid #eee;
 outline: none;
}
input.button:hover
{
 font-size: small;
 border: 1px solid #eee;
}
input.numeric
{
 text-align: right;
}
div.content
{
 background-color: #758d9b;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #000;
 display: inline-block;
 padding: 10px;
 font-size: small;
 text-align: right;
 color: #000;
 margin-left: auto;
 margin-right: auto;
 margin-top: 2px;
 margin-bottom: 2px;
}
div.container
{
 max-width: 1200px;
 margin: 0 auto;
}
div.cell
{
 display: inline-block;
 padding: 2px;
 vertical-align: middle;
}
div.right
{
 text-align: right;
}
div.section
{
 border: 1px solid black;
 border-width: 0 0 1px 0;
 padding: 0 0 5px 0;
 margin: 0 0 5px 0;
}
div.footer
{
 text-align: center;
 font-size: x-small;
 color: #000;
 margin-top: 15px;
}
div.benchmark
{
 text-align: center;
 font-size: x-small;
 color: #000;
}
div.ad
{
 display: inline-block;
 vertical-align: top;
 position: fixed;
 left: 20px;
 background-color: #49606d;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #000;
 padding: 10px;
 font-size: small;
 text-align: right;
 color: #000;
 margin: 5px;
 margin-top: 12px;
}
div.node
{
 width: 1153px;
 height: 637px;
 background-repeat: no-repeat;
 text-align: left;
 position: relative;
}
div.slots
{
 position: relative;
 top: 30px;
 left: 330px;
}
div.module
{
 width: 300px;
 height: 300px;
 background-repeat: no-repeat;
}
div.queue
{
 display: inline-block;
 background-image: url("../../templates/default/images/menuBackground.png");
 background-repeat: repeat-x repeat-y;
 padding: 10px;
 border-radius: 5px;
 position: absolute;
 top: 75px;
 max-height: 530px;
 overflow: auto;
 text-align: right;
}
div.leftQueue
{
 left: 13px;
}
div.rightQueue
{
 right: 13px;
}
.unitBlock
{
 width: 38px;
}
div.inline
{
 display: inline-block;
}
div.topMenu
{
 background-color: #49606d;
 white-space: nowrap;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #000;
 display: inline-block;
 padding: 10px;
 font-size: small;
 margin-top: 10px;
 margin-bottom: 10px;
 float: left;
}
div.bottomMenu
{
 background-color: #49606d;
 white-space: nowrap;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #000;
 display: inline-block;
 padding: 10px;
 font-size: small;
 margin-left: auto;
 margin-right: auto;
 margin-top: 10px;
 margin-bottom: 5px;
}
div.message
{
 background-color: #758d9b;
 border-radius: 5px;
 -moz-border-radius: 5px;
 -webkit-border-radius: 5px;
 border: 1px solid #000;
 display: inline-block;
 padding: 10px;
 font-size: small;
 color: #000;
 margin-left: auto;
 margin-right: auto;
 margin-top: 2px;
 margin-bottom: 2px;
}
div.clear
{
 display: block;
 clear: both;
 height: 0px;
}
img.module
{
 border: 5px solid transparent;
 border-radius: 15px;
 width: 150px;
}
img.module:hover
{
 border: 5px solid white;
}
img.resource
{
 max-height: 30px;
 border: 0px;
}
img.item
{
 max-height: 72px;
 border: 0px;
}
img
{
 border: 0px;
}

/* assets/css/app.css */
/* Fonts are self-hosted in ui-coherence.css. */
:root{--paper:#f7f7f2;--white:#fff;--ink:#28382f;--muted:#81877c;--green:#315741;--deep:#253e31;--sage:#eaf0e7;--border:#e5e8de;--gold:#dfbf79;--serif:Georgia,'Noto Sans Thai',serif;--font:'DM Sans','Noto Sans Thai',Tahoma,sans-serif;--shadow:0 4px 20px #243f2d05}
*{box-sizing:border-box}html{scroll-behavior:smooth}body.body{margin:0;background:var(--paper);background-image:none;color:var(--ink);font:14px/1.65 var(--font);text-align:left;overflow-x:hidden}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer}img{max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.45;letter-spacing:-.035em}h1{font-size:32px;font-weight:600}h2{font-size:18px;font-weight:600}h3{font-size:17px}p{color:var(--muted)}.icon{flex-shrink:0;vertical-align:middle}.icon-button{width:38px;height:38px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid transparent;border-radius:9px;color:var(--muted)}.icon-button:hover{color:var(--green);background:var(--sage)}:focus-visible{outline:3px solid #bb8b35;outline-offset:3px}.skip-link{position:fixed;top:-100px;left:20px;padding:10px 20px;background:var(--green);color:white;z-index:100}.skip-link:focus{top:10px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:11px 20px;border:1px solid transparent;border-radius:7px;font-size:13px;font-weight:600;transition:.18s;line-height:1.5}.btn:hover{transform:translateY(-1px)}.btn-primary{background:var(--green);color:#fff;box-shadow:0 3px 8px #31574113}.btn-primary:hover{background:#244530}.btn-outline{background:#fff;border-color:var(--border);color:var(--ink)}.btn-gold{background:#ead19b;color:#35412f;box-shadow:0 4px 20px #0002}.btn-small{min-height:34px;padding:7px 12px;font-size:12px}.text-link{display:flex;align-items:center;justify-content:space-between;gap:8px;color:var(--green);font-size:12px;font-weight:600}.eyebrow{display:inline-flex;align-items:center;gap:8px;font:600 10px/1.6 var(--font);letter-spacing:1.7px;color:#8b946f}.eyebrow.light{color:#e5d8ad}.status-dot{display:inline-block;width:6px;height:6px;background:#9ab78b;border-radius:50%}.app-shell{display:flex;min-height:100vh}.sidebar{width:228px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border);padding:28px 18px 14px;z-index:40}.brand{display:flex;align-items:center;gap:10px;padding:0 10px;white-space:nowrap}.brand>span{font-size:22px;font-weight:700;letter-spacing:2.4px;line-height:1.3;color:var(--deep)}.brand small{display:block;font-size:7px;letter-spacing:2.2px;font-weight:500;margin-top:4px;color:#7f8878}.world-pill{display:flex;align-items:center;gap:8px;padding:12px 10px;margin:30px 7px 25px;border:1px solid var(--border);border-radius:7px;font-size:12px}.world-pill>span:last-child{font-size:8px;margin-left:auto;color:#949a8c;letter-spacing:.7px}.nav-caption{font-size:10px;letter-spacing:1.4px;color:#a0a498;padding:0 14px;margin-bottom:10px}.main-nav{display:flex;flex-direction:column;gap:5px}.nav-link{display:flex;align-items:center;gap:13px;border-radius:7px;padding:12px 14px;font-size:13px;color:#7a8279;position:relative}.nav-link:hover{background:#f6f8f3;color:var(--green)}.nav-link.active{background:#eaf0e6;color:#315741;font-weight:600}.nav-link.active:before{content:'';width:3px;height:18px;border-radius:3px;background:#5d8054;position:absolute;left:0}.nav-link .icon{width:19px;height:19px}.sidebar-divider{height:1px;background:var(--border);margin:24px 12px 17px}.secondary-nav .nav-link{font-size:12px}.sidebar-bottom{margin-top:auto;padding-top:30px}.season-card{background:#f5f7ef;padding:16px 12px;border-radius:8px;display:flex;gap:9px;color:#7d9561}.season-card p{font-size:10px;font-weight:500;color:#6e7e61}.season-card small{display:block;font-size:9px;color:#9da58f;margin-top:4px}.profile{display:flex;align-items:center;gap:10px;margin-top:18px;padding:15px 5px 0;border-top:1px solid var(--border);font-size:12px;font-weight:600}.profile>span:nth-child(2){flex:1}.profile small{display:block;font-size:9px;font-weight:400;color:var(--muted)}.profile>.icon{width:16px;color:#929989}.avatar{width:34px;height:34px;border-radius:50%;background:#efe9db;color:#867a57;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px}.workspace{margin-left:228px;width:calc(100% - 228px)}.topbar{height:76px;padding:0 38px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:15px}.topbar-left,.topbar-right{display:flex;align-items:center;gap:12px}.breadcrumb{font-size:11px;color:#92998d}.breadcrumb span{padding:0 10px;color:#c0c5ba}.topbar-right{gap:12px}.world-state{font-size:10px;color:#959a88;display:flex;align-items:center;gap:7px;margin-right:8px}.world-state .icon{color:#b9aa78;width:16px}.language{border:1px solid var(--border);border-radius:5px;font-size:10px;padding:3px 6px;color:#7d8578}.mobile-menu{display:none}.workspace-body{padding:31px 38px 0;max-width:1600px;margin:auto}.demo-notice{display:flex;align-items:center;gap:8px;padding:8px 12px;border:1px solid #e6dfc8;background:#f7f2e4;border-radius:6px;font-size:10px;margin:-8px 0 23px;color:#8f825c}.demo-notice .icon{width:14px;height:14px}.demo-notice button{margin-left:auto;background:none;border:0;color:#7d7150;font-size:10px;text-decoration:underline}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:27px}.page-heading h1{margin:6px 0}.page-heading p{font-size:12px;color:#92978d}.page-heading .btn{font-size:11px;min-height:39px;padding:9px 14px}.page-heading .btn .icon{width:16px}.resource-bar{display:grid;grid-template-columns:repeat(6,1fr);gap:0;background:#fff;border:1px solid var(--border);border-radius:9px;margin-bottom:24px;box-shadow:var(--shadow);overflow:hidden}.resource-stat{position:relative;display:flex;align-items:center;gap:10px;padding:18px 15px;min-width:0}.resource-stat+.resource-stat:before{content:'';height:37px;position:absolute;left:0;border-left:1px solid #eceee6}.resource-symbol{display:flex;width:30px;height:34px;justify-content:center;align-items:center;color:#b9a064}.resource-symbol.r1{color:#926b49}.resource-symbol.r2{color:#83959d}.resource-symbol.r3{color:#92a278}.resource-symbol.r4{color:#b29b79}.resource-symbol.r5{color:#c8ae67}.resource-symbol .icon{width:23px;height:23px}.resource-stat>div{line-height:1.4;min-width:0}.resource-name{display:block;font-size:10px;color:#93998c;margin-bottom:3px;white-space:nowrap}.resource-stat strong{display:inline;font-size:16px;font-weight:600;letter-spacing:-.3px}.resource-stat small{display:block;font-size:9px;color:#a4a999;margin-top:3px}.resource-rate{position:absolute;right:10px;bottom:17px;color:#94a77f;font-size:8px}.village-layout{display:grid;grid-template-columns:minmax(0,1fr) 265px;gap:24px}.village-main{min-width:0}.village-scene{height:296px;position:relative;border-radius:10px;overflow:hidden;background:#a5b39a}.village-scene>img{width:100%;height:100%;object-fit:cover;object-position:50% 54%;transition:transform 1s}.village-scene:hover>img{transform:scale(1.025)}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,#14271bd9 0%,transparent 60%,#162b281f)}.scene-top{position:absolute;top:18px;left:20px;right:20px;display:flex;justify-content:space-between;gap:10px}.scene-location,.scene-faction{display:flex;align-items:center;gap:6px;background:#23362973;backdrop-filter:blur(8px);border:1px solid #ffffff30;border-radius:5px;padding:5px 9px;font-size:10px;color:#f6f5e8}.scene-location .icon{width:12px;height:12px}.scene-faction{background:#f1eddfdf;color:#556443}.scene-bottom{position:absolute;left:24px;right:24px;bottom:21px;display:flex;align-items:flex-end;justify-content:space-between;color:white}.scene-bottom .eyebrow{font-size:8px;letter-spacing:1.6px}.scene-bottom h2{font-size:28px;line-height:1.35;margin:5px 0;font-weight:500;letter-spacing:0}.scene-bottom p{font-size:10px;color:#d8dfcd}.scene-settings{display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid #ffffff3b;width:34px;height:34px;border-radius:6px}.scene-settings .icon{width:16px}.panel{background:#fff;border:1px solid var(--border);border-radius:9px;box-shadow:var(--shadow);padding:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.panel-heading h2{font-size:14px;display:flex;align-items:center;gap:7px}.panel-heading h2>.icon{color:#849473;width:15px}.panel-heading p{font-size:10px;margin-top:4px}.subtle-label{color:#9ea58e;font-size:10px;white-space:nowrap}.buildings-panel{margin-top:22px}.building-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.building-card{border:1px solid #e8ebdf;border-radius:7px;min-width:0;position:relative;transition:.2s;overflow:hidden;background:#fff}.building-card:hover{border-color:#a5b899;box-shadow:0 3px 12px #47634110;transform:translateY(-2px)}.building-illustration{height:94px;background:radial-gradient(ellipse at center,#edf0e5 0,#fafbf5 70%);display:flex;align-items:center;justify-content:center;padding:5px 10px}.building-illustration img{height:92px;width:120px;object-fit:contain;mix-blend-mode:multiply}.building-info{padding:10px 12px;border-top:1px solid #f1f2eb;min-height:57px}.building-info strong{display:block;font-size:11px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.building-info span{font-size:9px;color:#a0a58e}.building-chevron{position:absolute;bottom:13px;right:11px;color:#afbaa1;font-size:14px}.empty-plot{border-style:dashed;background:#fcfcf8}.empty-plot .building-illustration{background:#f8f9f2}.plot-plus{display:flex;align-items:center;justify-content:center;width:35px;height:35px;border:1px dashed #c2cdb2;border-radius:50%;color:#a9b395;font-weight:300;font-size:23px}.quick-cards{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:20px}.quick-cards>a{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--border);border-radius:8px;padding:17px}.quick-cards b{font-size:11px;font-weight:500;display:block}.quick-cards small{font-size:9px;color:#9ca38f}.quick-cards>a>.icon{margin-left:auto;width:15px;color:#8e9e7e}.quick-icon{color:#8b9d7a;background:#f2f5eb;border-radius:7px;padding:9px;display:flex}.village-aside{display:flex;flex-direction:column;gap:20px}.count-badge{font-size:9px;background:#f0f3e9;color:#8d9c7c;min-width:21px;height:21px;display:flex;align-items:center;justify-content:center;border-radius:5px}.queue-empty{text-align:center;padding:19px 5px 11px}.queue-empty>.icon{width:30px;height:30px;color:#b8c4a9;stroke-width:1.1;margin-bottom:10px}.queue-empty p{font-size:11px;color:#8a957e}.queue-empty small{font-size:9px;color:#a6ae9c;display:block;margin-top:3px;line-height:1.8}.queue-item{display:flex;gap:10px;margin:16px 0}.queue-dot{width:6px;height:6px;background:#9cb17e;border-radius:50%;margin-top:7px}.queue-item>div{flex:1}.queue-item b{display:block;font-size:11px;font-weight:500}.queue-item span{font-size:10px;color:#9ba58c;font-variant-numeric:tabular-nums}.progress{height:4px;background:#edf0e6;border-radius:4px;margin-top:9px;overflow:hidden}.progress i{height:100%;display:block;background:#a1b488;border-radius:4px}.growth-panel{background:linear-gradient(130deg,#f3f5eb,#fafbf7);border-color:#e2e7d7}.growth-panel .eyebrow{font-size:8px;letter-spacing:1.2px}.growth-panel h2{font-size:16px;margin-top:8px}.next-steps{list-style:none;margin:20px 0 21px;padding:0;display:flex;flex-direction:column;gap:13px}.next-steps li{display:flex;gap:9px;font-size:10px;color:#929c84}.next-steps .icon{width:14px;height:17px;color:#a2b18d}.movements-panel .muted{font-size:10px;margin:7px 0 25px}.movement{display:flex;align-items:center;gap:7px;font-size:10px;padding:10px 0;border-top:1px solid var(--border)}.movement .icon{width:14px}.game-footer{display:flex;align-items:center;justify-content:space-between;gap:16px;font-size:9px;color:#a5ac9a;border-top:1px solid var(--border);margin-top:36px;padding:19px 0 22px}.game-footer>span:first-child{font-size:10px;letter-spacing:1.5px;font-weight:500}.game-footer small{font-size:8px;font-weight:400;letter-spacing:0;margin-left:7px}.game-footer a{font-size:9px}.muted{color:var(--muted)}.alert{background:#f4f0df;border:1px solid #e2d7b2;border-radius:7px;color:#8d7f4c;padding:14px 20px;margin-bottom:24px}.empty-state{display:grid;grid-template-columns:1.2fr 1fr;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}.empty-state>img{height:100%;object-fit:cover}.empty-state>div{padding:50px 40px}.empty-state h2{font-size:28px;margin:12px 0}.empty-state p{font-size:13px;margin:12px 0 24px}.public-main{min-height:70vh}.landing-hero{max-width:1440px;height:620px;margin:auto;position:relative;background:#677d5f;overflow:hidden}.landing-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.landing-shade{position:absolute;inset:0;background:linear-gradient(90deg,#162e29ed,#182e2580 43%,#172e2400 78%)}.landing-copy{position:relative;z-index:1;max-width:1280px;margin:auto;padding:113px 50px;color:white}.landing-copy h1{font-size:53px;line-height:1.4;font-weight:500;letter-spacing:-1px;margin:21px 0}.landing-copy p{font-size:13px;line-height:2;color:#d3dbc8}.hero-actions{display:flex;align-items:center;gap:26px;margin-top:31px}.hero-text-link{font-size:11px;color:#d7dfc9}.hero-note{font-size:9px;color:#b7c5ac;margin-top:26px;display:flex;align-items:center;gap:7px}.hero-note .icon{width:12px;height:12px}.art-caption{position:absolute;bottom:20px;right:30px;font-size:7px;letter-spacing:3px;color:#f3f4e2b3}.landing-section{max-width:1150px;margin:0 auto;padding:78px 35px}.section-heading{text-align:center}.section-heading h2{font-size:31px;margin:12px 0}.section-heading p{font-size:12px}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:40px}.feature-card{background:#fff;border:1px solid var(--border);border-radius:9px;padding:25px}.feature-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px;color:#b5bda5;font-size:11px}.feature-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;background:#eef2e7;border-radius:9px;color:#8b9f78}.feature-card h3{font-size:17px;margin-bottom:10px}.feature-card p{font-size:11px;line-height:1.9}.faction-section{display:grid;grid-template-columns:1fr 1.5fr;gap:55px;align-items:center;max-width:1080px;margin:auto;padding:20px 0 80px}.faction-section h2{font-size:29px;margin:15px 0}.faction-section>div>p{font-size:11px}.faction-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.faction-cards article{background:#ecefe5;border:1px solid #e0e5d6;border-radius:70px 70px 7px 7px;padding:35px 12px 24px;text-align:center}.faction-cards article:nth-child(2){background:#e8eee3;margin-top:25px;margin-bottom:-25px}.faction-cards article:nth-child(3){background:#ebece7}.faction-cards .icon{width:36px;height:36px;color:#8d9b75;stroke-width:1.2;margin-bottom:20px}.faction-cards h3{font-family:var(--serif);font-size:19px;font-weight:400;letter-spacing:.3px}.faction-cards p{font-size:9px;margin-top:8px}.landing-cta{max-width:1280px;margin:25px auto 50px;background:#e9eee1;border-radius:10px;padding:55px 25px;text-align:center}.landing-cta h2{font-size:31px;margin:13px 0 25px}.public-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;border-top:1px solid var(--border);max-width:1280px;margin:auto;padding:27px 25px;font-size:10px;color:#9aa18e}.public-footer b{letter-spacing:2px;font-weight:500;color:#657454}.auth-layout{max-width:1130px;margin:20px auto 65px;background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;min-height:590px}.auth-art{position:relative;min-height:590px;overflow:hidden}.auth-art>img{height:100%;width:100%;object-fit:cover;object-position:65%;position:absolute}.auth-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#17342ce6,transparent)}.auth-art>div{position:absolute;z-index:1;bottom:50px;left:40px;color:#fff}.auth-art h1{font-size:39px;font-weight:500;margin:14px 0}.auth-art p{font-size:11px;color:#c2d0b6}.auth-form{padding:47px 52px}.auth-form h2{font-size:29px;margin:11px 0 4px}.auth-form>p{font-size:11px}.auth-form form{margin-top:27px;display:flex;flex-direction:column;gap:17px}.auth-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#6c7865}.auth-form input.textbox{width:100%;min-height:43px}.auth-form label>small{font-size:9px;color:#a2a997}.auth-form .btn{width:100%;margin-top:4px}.auth-switch{text-align:center;margin-top:24px;font-size:11px!important}.auth-switch a{color:var(--green);font-weight:500}.form-help{font-size:10px;align-self:flex-end;color:#899876}.form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.checkbox-label{flex-direction:row!important;align-items:center;gap:9px!important}.checkbox-label input{accent-color:var(--green)}.checkbox-label a{text-decoration:underline}.captcha-row{display:flex;gap:12px;align-items:center}.captcha-row>img{max-width:100px}.captcha-row input{flex:1;min-width:0}.auth-form .muted{font-size:9px;margin-top:-8px}.toast{position:fixed;left:50%;bottom:30px;transform:translate(-50%,15px);background:var(--deep);color:white;box-shadow:0 8px 30px #0002;border:1px solid #8a9b7130;border-radius:9px;padding:13px 22px;opacity:0;visibility:hidden;z-index:90;font-size:12px;max-width:min(90vw,550px);transition:.2s}.toast.visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
/* Modernize retained Devana screens without replacing their engine operations. */
a.link,a.small{color:var(--green);font:500 12px/1.7 var(--font);text-decoration:none}a.link:hover,a.small:hover{color:#9c843c;text-decoration:underline}div.container{max-width:100%;margin:0;min-width:0}div.content{display:block;max-width:100%!important;width:auto;background:#fff;border:1px solid var(--border);border-radius:9px;color:var(--ink);padding:25px;text-align:left;box-shadow:var(--shadow);font:12px/1.8 var(--font);margin:0 0 20px;overflow-x:auto}div.content .content{box-shadow:none}input.textbox,textarea.textbox,select.dropdown{background:#fbfcf8;color:var(--ink);border:1px solid #dfe5d4;border-radius:5px;padding:8px 10px;font:12px/1.5 var(--font);max-width:100%}input.textbox:focus,textarea.textbox:focus,select.dropdown:focus{background:#fff;border-color:#95ac7e;outline:2px solid #aabd9320;font:12px/1.5 var(--font)}input.textbox:hover,textarea.textbox:hover,select.dropdown:hover{border-color:#9eaf8c}input.button{padding:8px 16px;background:var(--green);border:1px solid var(--green);border-radius:5px;color:white;font:500 12px/1.7 var(--font)}input.button:hover{background:#244b31;border-color:#244b31}div.section{border-color:var(--border);padding-bottom:13px;margin-bottom:13px}div.message{background:#f2f0df;color:#8b7b4b;border:1px solid #e5ddbe;border-radius:7px;padding:12px 20px}div.cell{max-width:100%;vertical-align:middle}div.cell:has(> .textbox){padding:5px}div.queue{background:#f8faf2;border:1px solid #e1e6d4;border-radius:6px;padding:12px;margin:15px 0}div.footer,div.benchmark{display:none}div.node{max-width:100%;height:auto;min-height:540px}div.node>div{max-width:100%}table{border-collapse:collapse;width:100%;font-size:12px}th,td{padding:13px 14px;border-bottom:1px solid var(--border);text-align:left}th{background:#fafbf6;font-size:10px;font-weight:500;color:#929c84}.table-wrap{overflow-x:auto}.page-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:23px}.filter-input{max-width:260px;width:100%;padding:10px 13px;border:1px solid var(--border);background:white;border-radius:6px;font:12px var(--font)}.badge{display:inline-flex;align-items:center;gap:5px;font-size:9px;padding:4px 8px;background:#ecf1e4;color:#82936c;border-radius:4px}.ranking-num{font-size:14px;color:#8d9f78}.faction-mini{font-size:10px;color:#8f9c83}.unit-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.unit-card{border:1px solid var(--border);border-radius:8px;padding:20px;text-align:center}.unit-card img{height:92px;object-fit:contain}.unit-card h3{font-size:13px;margin:10px 0}.unit-card p{font-size:10px;min-height:36px}.unit-card .btn{margin-top:16px;width:100%;font-size:10px}.unit-card strong{display:block;font-size:21px;font-weight:500;color:#7b9269}.world-layout{display:grid;grid-template-columns:1fr 240px;gap:22px}.world-grid{display:grid;grid-template-columns:repeat(11,minmax(0,1fr));gap:3px;background:#e1e6d5;padding:16px;border-radius:8px;aspect-ratio:1.35}.world-tile{border:1px solid #cbd9b5;background:#c4d4ad;border-radius:3px;display:flex;align-items:center;justify-content:center;color:#738d5e;min-width:0;transition:.15s;padding:0}.world-tile .icon{width:65%;height:65%;max-width:28px;max-height:28px;stroke-width:1.3}.world-tile.forest{background:#a0bb90;border-color:#92ac80;color:#6a8b54}.world-tile.water{background:#b7cfce;border-color:#a8c5c6;color:#8bafb4}.world-tile.own{background:#f1e4b8;border-color:#d9c99a;color:#9c874e;box-shadow:0 0 0 2px #9c874e inset}.world-tile.village{background:#e4dbc1;color:#9c8960;border-color:#d4c8a8}.world-tile:hover{filter:brightness(1.08);transform:translateY(-2px)}.legend{display:flex;gap:17px;margin-top:18px;font-size:10px;color:#96a087;flex-wrap:wrap}.legend i{display:inline-block;width:9px;height:9px;border-radius:2px;background:#b8cda2;margin-right:6px}.legend i.own{background:#e5d39f}.legend i.village{background:#d7cba9}.legend i.water{background:#b5cecd}.world-info h3{font-size:14px;margin-bottom:10px}.world-info p{font-size:11px;margin-bottom:15px}.world-info dl{font-size:11px;display:grid;grid-template-columns:1fr 1fr;gap:12px}.world-info dt{color:#a0a78f}.world-info dd{margin:0;text-align:right}.demo-dialog{width:min(460px,92vw);border:1px solid var(--border);border-radius:13px;padding:28px;background:#fff;box-shadow:0 30px 100px #20392135;color:var(--ink)}.demo-dialog::backdrop{background:#20352b65;backdrop-filter:blur(3px)}.demo-dialog h2{font-size:21px;margin-bottom:8px}.demo-dialog p{font-size:12px;margin-bottom:20px}.dialog-actions{display:flex;gap:10px;justify-content:flex-end}.dialog-list{display:flex;flex-direction:column;gap:8px;margin:20px 0}.dialog-list button{display:flex;justify-content:space-between;padding:13px;border:1px solid var(--border);border-radius:6px;background:#f9fbf5;color:var(--green);font-size:12px}.dialog-list button:disabled{opacity:.45;cursor:not-allowed}.dialog-list small{color:#98a187}.guide-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.guide-card{padding:25px;background:white;border:1px solid var(--border);border-radius:9px}.guide-card .icon{color:#9aab82;margin-bottom:10px}.guide-card h2{font-size:16px;margin-bottom:12px}.guide-card p{font-size:12px}.account-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.alliance-banner{background:#e9eedf;border:1px solid #dee5d1;border-radius:10px;padding:30px;display:flex;align-items:center;gap:25px;margin-bottom:24px}.alliance-emblem{background:#f6f7ee;color:#8e9f72;width:75px;height:85px;display:flex;align-items:center;justify-content:center;clip-path:polygon(0 0,100% 0,100% 72%,50% 100%,0 72%)}.alliance-emblem .icon{width:38px;height:38px;stroke-width:1.1}.alliance-banner h2{font:28px var(--serif);letter-spacing:0}.alliance-banner p{font-size:11px;margin-top:7px}.alliance-banner>.btn{margin-left:auto}.message-row{display:flex;gap:14px;padding:20px 0;border-bottom:1px solid var(--border)}.message-row h3{font-size:12px;margin-bottom:4px}.message-row p{font-size:11px}.message-row time{font-size:9px;margin-left:auto;white-space:nowrap;color:#a5ad98}
@media(min-width:1650px){.village-scene{height:365px}.building-illustration{height:110px}.building-illustration img{height:108px}.village-layout{grid-template-columns:minmax(0,1fr) 290px}}
@media(max-width:1200px){.sidebar{width:205px;padding-left:13px;padding-right:13px}.workspace{margin-left:205px;width:calc(100% - 205px)}.workspace-body{padding:26px 24px 0}.topbar{padding:0 24px}.village-layout{grid-template-columns:minmax(0,1fr) 235px;gap:18px}.village-scene{height:270px}.resource-stat{padding:16px 9px;gap:6px}.resource-stat strong{font-size:14px}.resource-stat .resource-symbol{width:23px}.resource-rate{font-size:7px;right:7px;bottom:14px}.resource-stat small{font-size:8px}.panel{padding:16px}.panel-heading{gap:5px}.panel-heading p{font-size:9px}.building-grid{gap:8px}.building-illustration{height:80px}.building-illustration img{height:80px}.building-info{padding:8px}.building-info strong{font-size:10px}.building-chevron{display:none}.world-state{display:none}.faction-section{padding:20px 35px 65px}.landing-hero{height:580px}.landing-cta{margin-left:30px;margin-right:30px}.auth-layout{margin:20px 30px 50px}.auth-form{padding:40px 35px}}
@media(max-width:980px){.village-layout{grid-template-columns:1fr}.village-aside{display:grid;grid-template-columns:repeat(2,1fr);gap:15px}.village-aside .growth-panel{grid-row:span 2}.resource-bar{grid-template-columns:repeat(3,1fr)}.resource-stat:nth-child(4){border-top:1px solid var(--border)}.resource-stat:nth-child(5),.resource-stat:nth-child(6){border-top:1px solid var(--border)}.village-scene{height:310px}.building-illustration{height:96px}.building-illustration img{height:94px}.world-layout{grid-template-columns:1fr}.world-info{display:block}.faction-section{grid-template-columns:1fr}.faction-section h2 br{display:none}.faction-cards{max-width:600px;gap:20px}.landing-copy h1{font-size:44px}.auth-layout{grid-template-columns:.85fr 1fr}.auth-form{padding:35px 25px}.auth-art h1{font-size:31px}.auth-art>div{left:25px}.unit-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:760px){.sidebar{transform:translateX(-100%);transition:.22s;width:228px;box-shadow:15px 0 40px #20352810}.sidebar.open{transform:translateX(0)}.workspace{width:100%;margin-left:0}.mobile-menu{display:inline-flex}.topbar{height:62px;padding:0 17px}.topbar-right{gap:5px}.topbar .icon-button{width:31px;height:31px}.topbar-left{gap:4px}.breadcrumb{font-size:10px}.workspace-body{padding:23px 18px 0}.demo-notice{font-size:9px;margin-top:0;gap:6px}.demo-notice .icon{display:none}.demo-notice button{font-size:9px;white-space:nowrap}.page-heading h1{font-size:27px}.page-heading p{font-size:10px;max-width:230px}.page-heading .btn{font-size:10px;padding:8px 10px}.page-heading .eyebrow{font-size:8px;letter-spacing:1.1px}.page-heading .btn .icon{display:none}.page-heading{gap:12px;margin-bottom:20px}.resource-bar{margin-bottom:19px}.resource-stat{padding:13px;gap:10px}.resource-rate{bottom:12px;right:13px;font-size:8px}.resource-stat strong{font-size:16px}.village-scene{height:290px}.scene-bottom h2{font-size:26px}.scene-bottom{left:19px;bottom:18px}.scene-top{left:16px;right:16px;top:15px}.building-grid{gap:10px}.building-info strong{font-size:11px}.buildings-panel{margin-top:18px}.building-info span{font-size:8px}.panel-heading p{font-size:9px}.panel-heading h2{font-size:14px}.panel-heading .subtle-label{font-size:9px}.quick-cards{gap:10px}.quick-cards>a{padding:13px 11px;gap:8px}.quick-cards b{font-size:10px}.quick-cards small{font-size:8px}.quick-icon{padding:7px}.quick-icon .icon{width:16px}.quick-cards>a>.icon{display:none}.game-footer{font-size:8px;gap:6px}.game-footer>span:nth-child(2){display:none}.game-footer small{font-size:7px}.landing-hero{height:580px}.landing-art{object-position:63%}.landing-shade{background:linear-gradient(90deg,#163229e6,#19332a52)}.landing-copy{padding:100px 28px}.landing-copy h1{font-size:41px}.landing-copy p{font-size:11px}.landing-copy .eyebrow{font-size:8px;letter-spacing:1.2px}.landing-copy .btn{padding:13px 20px;font-size:11px}.hero-actions{gap:19px}.hero-text-link{font-size:10px}.landing-section{padding:55px 24px}.section-heading h2{font-size:27px}.section-heading p{font-size:11px}.feature-grid{grid-template-columns:1fr;gap:14px;margin-top:27px}.feature-card{padding:22px}.feature-top{margin-bottom:14px}.faction-section{padding:10px 24px 60px;gap:28px}.faction-section h2{font-size:26px}.faction-cards{gap:10px}.faction-cards article{padding:28px 6px 22px}.faction-cards h3{font-size:17px}.faction-cards p{font-size:8px}.landing-cta{margin:0 22px 35px;padding:37px 18px}.landing-cta h2{font-size:24px}.public-footer{font-size:8px;padding:23px;flex-wrap:wrap;gap:10px}.public-footer b{font-size:10px}.auth-layout{grid-template-columns:1fr;margin:10px 20px 35px}.auth-art{min-height:235px}.auth-art>div{bottom:25px}.auth-art h1{font-size:29px;margin:8px 0}.auth-art h1 br{display:none}.auth-art p{font-size:10px}.auth-art .eyebrow{font-size:8px}.auth-form{padding:30px 25px}.auth-form h2{font-size:26px}.empty-state{grid-template-columns:1fr}.empty-state>img{height:200px;width:100%}.empty-state>div{padding:28px}.empty-state h2{font-size:23px}.guide-grid,.account-grid{grid-template-columns:1fr}.alliance-banner{gap:15px;flex-wrap:wrap;padding:20px}.alliance-banner h2{font-size:22px}.alliance-banner>.btn{margin-left:0}.alliance-emblem{width:50px;height:60px}.alliance-emblem .icon{width:28px}.world-grid{padding:8px;gap:2px}div.content{padding:17px}div.content div.cell{max-width:100%}div.content .module{max-width:100%}.message-row time{font-size:8px}}
@media(max-width:420px){.resource-stat{padding:12px 8px;gap:5px}.resource-stat strong{font-size:14px}.resource-rate{font-size:7px;right:8px;bottom:12px}.resource-name{font-size:9px}.resource-stat small{font-size:8px}.village-scene{height:255px}.building-illustration{height:76px}.building-illustration img{height:74px}.building-info strong{font-size:9px}.building-info span{font-size:7px}.building-info{padding:8px 7px}.village-aside{grid-template-columns:1fr}.village-aside .growth-panel{grid-row:auto}.landing-copy{padding:95px 22px}.landing-copy h1{font-size:36px}.hero-actions{gap:15px}.hero-text-link{font-size:9px}.unit-grid{grid-template-columns:1fr 1fr}.unit-card{padding:14px}.unit-card p{font-size:9px}.form-two{grid-template-columns:1fr}.page-heading p{max-width:200px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.coordinate-form{display:flex;align-items:center;gap:7px;font-size:10px;color:#99a18d}.coordinate-form label{display:flex;align-items:center;gap:5px}.coordinate-form .textbox{padding:6px;width:60px!important}.coordinate-form button{padding:6px 10px}.world-grid{min-height:300px}@media(max-width:420px){.coordinate-form{gap:4px}.coordinate-form .textbox{width:44px!important}.page-toolbar>h2{font-size:12px}}
.sidebar .brand{gap:9px}.sidebar .brand img{width:30px;height:30px}.sidebar .brand>span{font-size:18px;letter-spacing:1.1px}.brand small{font-size:8px;letter-spacing:0;color:#8e987e;font-weight:400}@media(max-width:420px){}@media(max-width:420px){.resource-stat{min-height:88px}.scene-bottom .eyebrow{font-size:7px}}

@media(max-width:760px){.topbar .icon-button{width:40px;height:40px}.topbar .language{display:inline-flex;align-items:center;justify-content:center;min-width:36px;min-height:36px}.building-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.building-info strong{font-size:12px}.building-info span{font-size:10px}.building-illustration{height:100px}.building-illustration img{height:98px}.building-info{min-height:65px;padding:11px}.resource-name{font-size:10px}.resource-stat strong{font-size:16px}.resource-rate{font-size:9px}.panel-heading p{font-size:10px}.page-heading p{font-size:11px}.quick-cards small{font-size:10px}.queue-empty small{font-size:11px}.next-steps li{font-size:11px}.world-grid{gap:3px}.world-info{display:block}.world-info dl{font-size:12px}}
@media(max-width:420px){.building-info strong{font-size:12px}.building-info span{font-size:10px}.building-illustration{height:96px}.building-illustration img{height:94px}.resource-stat strong{font-size:16px}.resource-name{font-size:10px}.resource-stat small{font-size:9px}.resource-rate{font-size:8px}.resource-stat{min-height:92px}.scene-bottom h2{font-size:27px}.page-heading .btn{max-width:100px;text-align:center}}

.mobile-wordmark{display:none;font-size:11px;letter-spacing:1px;font-weight:700;color:var(--green)}@media(max-width:760px){.mobile-wordmark{display:inline}.breadcrumb{display:none}}
.sidebar{overflow-y:auto}.sidebar-bottom{flex-shrink:0}.journey-callout{display:flex;align-items:center;gap:15px;margin:0 0 22px;padding:16px 20px;background:#edf1e4;border:1px solid #dee6ce;border-radius:9px}.journey-callout strong{font-size:12px;font-weight:600}.journey-callout p{font-size:10px;margin-top:3px}.journey-callout .btn{margin-left:auto;white-space:nowrap}.campaign-strip{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--border);border-radius:9px;background:white;margin-bottom:23px}.campaign-strip>div{padding:20px 24px;display:flex;flex-direction:column;gap:5px}.campaign-strip>div+div{border-left:1px solid var(--border)}.campaign-strip .eyebrow{font-size:8px;letter-spacing:1.2px}.campaign-strip strong{font-size:20px;font-weight:500}.campaign-strip strong small{font-size:11px;color:#a2ab92}.campaign-strip>div>span:last-child{font-size:10px;color:#9da58e}.campaign-strip .progress{max-width:200px}.story-intro{display:flex;align-items:center;gap:22px;margin-bottom:22px;background:#f1f4ea}.story-symbol{display:flex;align-items:center;justify-content:center;background:#e9eddf;border-radius:50%;width:75px;height:75px;flex-shrink:0;color:#a7a16c}.story-symbol .icon{width:35px;height:35px;stroke-width:1.1}.story-intro h2{font-size:20px;margin:8px 0}.story-intro p{font-size:12px;line-height:1.9;max-width:780px}.quest-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.quest-card{padding:23px;background:#fff;border:1px solid var(--border);border-radius:9px}.quest-card.completed{background:#f7faf2}.quest-locked{background:#f8f9f4}.quest-card-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}.quest-symbol{display:flex;align-items:center;justify-content:center;width:34px;height:34px;background:#eef2e7;color:#9aa981;border-radius:8px;flex-shrink:0}.quest-card h2{font-size:15px;margin-bottom:9px}.quest-card>p{font-size:11px;min-height:60px}.quest-progress{display:flex;justify-content:space-between;font-size:10px;color:#99a18b;margin-top:17px}.quest-progress b{font-weight:500}.quest-reward{font-size:11px;color:#9e9567;margin:17px 0;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.quest-reward .icon{width:15px}.quest-reward small{font-size:9px;color:#a0a68f;width:100%}.quest-card .btn{width:100%;font-size:11px;min-height:41px}.btn:disabled{cursor:not-allowed;opacity:.45;transform:none}.campaign-footnote{font-size:10px;line-height:1.9;margin:20px 0;color:#9ca58d}.npc-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:23px}.npc-rules{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;background:#f5f7ef;border-radius:8px;padding:17px}.npc-rules>div{display:flex;flex-direction:column;gap:5px}.npc-rules strong{font-size:23px;font-weight:500;color:#80956a}.npc-rules span{font-size:9px;color:#a0a68e}.campaign-actions{display:flex;gap:10px;flex-wrap:wrap;margin:21px 0 12px}.campaign-actions .btn{font-size:11px}.npc-preferences h2{font-size:18px;margin:10px 0}.npc-preferences>p{font-size:11px;line-height:1.9}.npc-preferences form{display:flex;flex-direction:column;gap:19px;margin:25px 0}.npc-preferences label,.admin-npc-form label,.contribution-form label{display:flex;flex-direction:column;gap:7px;font-size:11px;color:#8e9980}.npc-preferences .checkbox-label{align-items:flex-start}.npc-preferences .textbox{width:100%}.protection-note{padding:12px;background:#f2f5e9;border-radius:7px;font-size:10px;color:#98a580;line-height:1.9}.protection-note .icon{width:14px}.wave-row{display:flex;gap:13px;align-items:flex-start;padding:17px 0;border-bottom:1px solid var(--border)}.wave-row:last-child{border:0}.wave-row b{font-size:12px;display:block}.wave-row small{font-size:10px;color:#9aa48b;display:block;margin:4px 0}.wave-row time{font-size:11px;color:#a6976e;font-variant-numeric:tabular-nums}.season-hero{background:linear-gradient(110deg,#e5ecda,#f6f8f0);padding:32px}.season-hero h2{font-size:25px;max-width:740px;margin:12px 0}.season-hero p{font-size:12px;line-height:2;max-width:800px}.chapter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:23px 0}.chapter-card{border:1px solid var(--border);border-radius:8px;padding:22px 18px;background:#fff}.chapter-card.current{border-color:#aebf96;background:#f0f4e8}.chapter-card .eyebrow{font-size:8px}.chapter-card h3{font-size:14px;margin:13px 0 9px}.chapter-card p{font-size:10px;line-height:1.9}.season-ending-grid{display:grid;grid-template-columns:1fr 1fr;gap:23px}.season-ending-grid p{font-size:12px;line-height:1.9}.season-progress{height:7px;margin:22px 0}.contribution-form{display:flex;gap:15px;align-items:flex-end;margin-top:20px}.contribution-form .textbox{max-width:160px}.ending-card{background:#f2f4e9}.ending-card h2{font-size:22px;margin:10px 0 13px}.ending-checks{display:flex;flex-direction:column;gap:10px;font-size:11px;color:#8e9e77;margin:20px 0}.ending-checks .icon{width:15px;margin-right:7px}.ending-card>small{font-size:10px;color:#9ca68d}.admin-npc-form{display:flex;flex-direction:column;gap:23px}.admin-field-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.admin-npc-form>.btn{align-self:flex-start}.admin-npc-form>label>.textbox{max-width:360px}.demo-campaign-controls p{font-size:11px;margin-top:10px}.demo-dialog form{display:flex;flex-direction:column;gap:12px}.demo-dialog input{padding:10px;border:1px solid var(--border);border-radius:6px}
@media(max-width:1200px){.quest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.npc-layout{grid-template-columns:1fr 260px}.campaign-strip>div{padding:18px}.campaign-strip strong{font-size:17px}.chapter-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:980px){.npc-layout{grid-template-columns:1fr}.npc-preferences{max-width:100%}.npc-preferences form .form-two{grid-template-columns:1fr 1fr}.season-ending-grid{grid-template-columns:1fr}.admin-field-grid{grid-template-columns:repeat(2,1fr)}.journey-callout{flex-wrap:wrap}.journey-callout .btn{margin-left:50px}}
@media(max-width:760px){.campaign-strip{grid-template-columns:1fr 1fr}.campaign-strip>div+div{border-left:0}.campaign-strip>div:nth-child(2){border-left:1px solid var(--border)}.campaign-strip>div:last-child{grid-column:1/-1;border-top:1px solid var(--border)}.campaign-strip strong{font-size:17px}.campaign-strip .eyebrow{font-size:7px}.campaign-strip>div{padding:17px}.quest-grid{grid-template-columns:1fr}.quest-card>p{min-height:0}.quest-card h2{font-size:17px}.quest-card>p{font-size:12px}.quest-card .btn{min-height:44px}.story-intro{gap:13px;align-items:flex-start}.story-symbol{width:38px;height:38px}.story-symbol .icon{width:22px;height:22px}.story-intro h2{font-size:17px}.story-intro p{font-size:11px}.story-intro .eyebrow{font-size:7px}.season-hero{padding:23px}.season-hero h2{font-size:22px}.chapter-grid{gap:10px}.chapter-card{padding:17px 13px}.chapter-card h3{font-size:13px}.chapter-card p{font-size:11px}.campaign-actions{flex-direction:column}.campaign-actions .btn{width:100%;min-height:44px}.npc-rules strong{font-size:22px}.npc-rules span{font-size:10px}.admin-field-grid{grid-template-columns:1fr}.journey-callout{padding:16px;gap:10px}.journey-callout>div{max-width:calc(100% - 50px)}.journey-callout p{font-size:11px}.journey-callout .btn{margin-left:0;width:100%}.journey-callout .quick-icon{padding:8px}.ending-card h2{font-size:20px}.contribution-form{flex-wrap:wrap}.npc-preferences .form-two{display:grid;grid-template-columns:1fr 1fr}.demo-campaign-controls .campaign-actions{gap:9px}}
/* Persistent account cosmetics and the travelling merchant. */
.store-hero{padding:28px 32px;display:flex;justify-content:space-between;align-items:center;gap:24px;background:linear-gradient(115deg,#f9f4e9,#fff)}
.store-hero p{font-size:13px;line-height:1.8;color:var(--muted);max-width:650px}.wallet-amount{display:flex;align-items:center;gap:13px;margin:12px 0}.wallet-amount .icon{width:34px;height:34px;color:#b08944}.wallet-amount b{font-size:44px;letter-spacing:-2px}.wallet-amount span{font-size:15px;color:var(--muted)}
.store-section{margin-top:28px}.store-section>.panel-heading{margin-bottom:18px}.store-packs,.store-items{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.crown-pack{padding:26px;display:flex;flex-direction:column}.pack-icon{color:#b08944}.pack-icon .icon{width:32px;height:32px}.crown-pack h3{font-size:30px;letter-spacing:-1px;margin-top:12px}.crown-pack h3 small{font-size:13px;letter-spacing:0;font-weight:500}.crown-pack>p{font-size:12px;color:var(--muted);margin:7px 0}.pack-price{font-size:23px;margin:10px 0 20px}.crown-pack form{display:grid;gap:12px}.crown-pack label{font-size:12px;display:grid;gap:7px}.crown-pack .dropdown{width:100%;height:42px}.crown-pack .store-confirm{display:flex;align-items:flex-start;gap:8px;font-size:11px;line-height:1.5}.store-confirm input{width:16px;height:16px;accent-color:#35664b}.store-footnote{font-size:12px;color:var(--muted);line-height:1.9;margin:14px 0}.cosmetic-preview{min-height:165px;display:flex;gap:17px;align-items:center;justify-content:center;flex-direction:column;background:#f3f0e9;padding:20px;color:#816333;font-size:13px}.cosmetic-avatar{height:65px;width:65px;display:grid;place-items:center;border-radius:50%;background:#fff9e9}.cosmetic-avatar .icon{width:33px;height:33px}.cosmetic-dawn .cosmetic-avatar{outline:4px double #be9447;outline-offset:5px}.cosmetic-moon{background:linear-gradient(130deg,#283b50,#496178);color:#eff4fa}.cosmetic-moon .cosmetic-avatar{background:#d8e6ef;color:#324d63}.cosmetic-founder{background:#e4ebe1;color:#31523b}.store-item{overflow:hidden}.store-item-body{padding:23px}.store-item h3{font-size:16px}.store-item-body>p{font-size:12px;line-height:1.8;color:var(--muted);min-height:44px;margin:10px 0}.item-price{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:20px;font-size:12px}.store-item .btn{width:100%}.table-detail{display:block;font-size:11px;color:var(--muted);margin-top:6px}.table-scroll{overflow-x:auto}.store-section.panel{padding:24px}.store-section table{min-width:560px}.frame-dawn{outline:3px double #d7ae5f;outline-offset:3px}.theme-moon .workspace{background:#e9eef4}.theme-moon .sidebar{background:#213449}.theme-moon .topbar{background:#f4f7fb}.theme-moon .nav-link.active{background:#3d5b73;color:white}.theme-moon .village-hero{background:linear-gradient(130deg,#344a61,#637d94)}
@media(max-width:760px){.store-packs,.store-items{grid-template-columns:1fr}.store-hero{padding:24px;align-items:flex-start;flex-direction:column}.store-hero .btn{width:100%}.crown-pack{padding:23px}.crown-pack h3{font-size:30px}.cosmetic-preview{min-height:145px}.store-section.panel{padding:18px}.store-section .panel-heading{align-items:flex-start;gap:10px;flex-wrap:wrap}}

[hidden]{display:none!important}

html[lang="th"] .eyebrow{letter-spacing:.04em} .staging-notice{border-color:#dec89c;background:#fff8e7;color:#715b2b}

.logout-form{display:flex;margin:0;padding:0}


/* assets/css/motion.css */
/* TOWNBORAN 0.3: a playable miniature world, bronze controls and parchment journals. */
:root{--paper:#172d27;--white:#f3ebd9;--ink:#332e24;--muted:#7d7460;--green:#3e6748;--deep:#203c30;--sage:#e6dfc8;--border:#d1c4a3;--gold:#d9b76c;--shadow:0 12px 40px #071a1833}
body.body{background:#172d27;color:#e9e1cd}.game-shell{background:radial-gradient(ellipse at 50% 0,#3a5140,#142821 80%)}.game-shell .workspace{margin-left:0;width:100%;min-width:0}.game-shell .workspace-body{padding:30px clamp(18px,4vw,70px) 0;max-width:1440px}.game-shell .topbar{height:58px;background:linear-gradient(#203b31f5,#142a24f5);border-bottom:1px solid #b99c5950;color:#efe4c9;padding:0 24px;position:relative;z-index:60;box-shadow:0 3px 15px #0004}.game-shell .mobile-menu{display:inline-flex;color:#e7d7b0;border:1px solid #d8bd7b66;border-radius:50%;width:38px;height:38px}.game-shell .mobile-wordmark{display:block;font-family:var(--serif);font-size:19px;letter-spacing:3px;color:#f3dfab}.game-shell .breadcrumb{display:none}.game-shell .world-state{color:#c5c7ae}.game-shell .language{color:#f0dfb7;border-color:#b99c5970;min-height:36px;min-width:38px;display:grid;place-items:center}.game-shell .topbar-right>.icon-button{color:#d9cba7}.game-shell .sidebar{width:272px;max-width:90vw;transform:translateX(-105%);transition:transform .35s cubic-bezier(.2,.8,.2,1);background:linear-gradient(140deg,#f7f0df,#ddd1b1);border-right:3px double #b99b5b;box-shadow:20px 0 80px #071a18aa;top:58px;overflow-y:auto;padding-top:22px;z-index:90}.game-shell .sidebar.open{transform:translateX(0)}.game-shell .sidebar-bottom{padding-top:20px}.game-shell .brand>span{color:#294b37}.game-shell .world-pill{margin:20px 7px 14px}.game-shell .nav-caption{color:#827555}.game-shell .nav-link{color:#726a52;padding:9px 14px}.game-shell .nav-link:hover,.game-shell .nav-link.active{background:#385b3e;color:#f8e8bd}.game-shell .season-card{background:#e4dbc1}.game-shell .page-heading h1{font-family:var(--serif);font-size:35px;color:#f3e6c5}.game-shell .page-heading p{color:#c3c8b3;font-size:13px}.game-shell .eyebrow{color:#b59859}.game-shell .panel,.game-shell .quest-card,.game-shell .chapter-card,.game-shell .unit-card,.game-shell .guide-card,.game-shell .feature-card{background:linear-gradient(125deg,#f7f0df,#e8dcc0);border:1px solid #c1a76b;border-radius:3px;color:#393325;box-shadow:0 2px 0 #ad8b4e,0 12px 30px #07191140}.game-shell .panel h2,.game-shell .quest-card h2{color:#343526}.game-shell .panel p{color:#7c735e}.game-shell .btn{border-radius:3px;min-height:44px}.game-shell .btn-primary{background:linear-gradient(#527a50,#31593d);border:1px solid #e4c88488;box-shadow:inset 0 0 0 2px #ffffff0b,0 4px 10px #0002;color:#fff3d4}.game-shell .btn-outline{background:#f0e6cc;color:#574c34;border-color:#b6a273}.game-shell .badge,.game-shell .count-badge{background:#e0d4b2;color:#6e5d34;border-color:#c4ae78}.game-shell .demo-notice{margin:0 0 24px;background:#122a24;color:#bdbd9e;border-color:#a38a4f55;font-size:10px}.game-shell .demo-notice button{color:#d9c48c;min-height:24px}.game-shell .game-footer{border-color:#cdb57b44;color:#b0b496;margin-top:30px;padding-bottom:24px}.game-shell .game-footer a{color:#d1bd87}.game-shell .season-hero,.game-shell .story-intro{background:linear-gradient(115deg,#eee3c7,#d9c89e)}.game-shell .story-intro h2{color:#3b442e}.game-shell .chapter-card.current{border-color:#e3bd62;box-shadow:0 0 25px #e5b64c33;background:#e9dcb5}.game-shell .quest-card.completed{background:linear-gradient(130deg,#e1dfb9,#bccba3)}.game-shell .campaign-strip{background:#1d382e;color:#f1dfb3;border-color:#b4975966}.game-shell .campaign-strip strong{color:#f0dba3}.game-shell .campaign-strip>div+div{border-color:#a08e5744}.game-shell .npc-rules,.game-shell .protection-note{background:#dfd8bc}.game-shell .cosmetic-preview{border-bottom:1px solid #bba166}.game-shell .store-hero{background:linear-gradient(110deg,#f5eacb,#d5c397)}.game-shell table{color:#504831}.game-shell .textbox,.game-shell .dropdown,.game-shell input,.game-shell select,.game-shell textarea{background:#fffaec;color:#3c382c;border-color:#bcaa7b}.game-shell .alert{background:#e8d9ad;color:#544729;border-color:#c5a660}.game-shell .theme-moon .workspace{background:#183348}.game-shell.theme-moon{background:radial-gradient(ellipse at 50% 0,#35566c,#102d40)}.game-shell.theme-moon .city-world{filter:brightness(.78) saturate(.8) hue-rotate(12deg)}
/* Village camera and the six resource counters float above the world. */
.is-city .workspace-body{padding:0;max-width:none}.is-city .workspace-body>.demo-notice{margin:0;border-radius:0;border-width:0 0 1px;min-height:30px;padding:3px 22px;position:relative;z-index:10}.is-city .game-footer{display:none}.is-city .container,.is-city .content{padding:0;margin:0;background:none;border:0}.city-stage{position:relative;height:calc(100svh - 88px);min-height:650px;isolation:isolate;overflow:hidden;background:#344c38}.city-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab;outline-offset:-5px}.city-viewport.is-dragging{cursor:grabbing}.city-world{position:absolute;width:1536px;height:1024px;transform-origin:0 0;will-change:transform;user-select:none}.city-terrain{position:absolute;inset:0;width:1536px;max-width:none;height:1024px;pointer-events:none}.city-vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#102d2366,transparent 30%,transparent 65%,#0a211da3),linear-gradient(90deg,#0d291d25,transparent 25%,transparent 75%,#0d291d20);z-index:2;box-shadow:inset 0 0 100px #132b2633}.city-resources.resource-bar{position:absolute;top:16px;left:50%;transform:translateX(-50%);width:min(960px,calc(100% - 48px));grid-template-columns:repeat(6,minmax(0,1fr));margin:0;background:linear-gradient(#1e3c32f5,#142b25ef);border:1px solid #d1b06a;outline:3px solid #0c20194d;box-shadow:0 6px 25px #0006,inset 0 0 0 2px #6a633a55;border-radius:6px;color:#fff0c8;z-index:10;backdrop-filter:blur(12px)}.city-resources .resource-stat{padding:11px 14px;gap:7px}.city-resources .resource-stat+.resource-stat:before{border-color:#d5b77744;height:33px}.city-resources .resource-name{color:#c4c6a2;font-size:9px}.city-resources .resource-symbol{color:#d3b05b;filter:drop-shadow(0 2px 2px #0007)}.city-resources .resource-symbol.r1{color:#b4c48a}.city-resources .resource-symbol.r2{color:#c3d3da}.city-resources .resource-stat strong{font-size:17px;color:#fff1c9;line-height:1.2;font-variant-numeric:tabular-nums}.city-resources .resource-stat small{font-size:8px;color:#a9b496}.city-resources .resource-rate{right:12px;bottom:9px;color:#bdd29c;font-size:8px}.city-heading{position:absolute;left:30px;top:110px;z-index:5;color:#fff1cf;text-shadow:0 2px 10px #15271d;pointer-events:none}.city-heading h1{font-family:var(--serif);font-size:39px;line-height:1.25;font-weight:500;letter-spacing:.3px;margin:2px 0 8px}.city-heading .eyebrow{font-size:9px;color:#ffe4a8;letter-spacing:1.8px}.city-coordinates{display:flex;align-items:center;gap:7px;font-size:10px;color:#f2e6c2}.city-coordinates .icon{width:13px}.city-coordinates i{height:3px;width:3px;background:#d2bd8c;border-radius:50%;margin:0 3px}.city-queue.panel{position:absolute;right:24px;top:117px;z-index:10;width:240px;padding:0;background:linear-gradient(120deg,#f1e7caed,#d9c89fe8);border:1px solid #a28242;box-shadow:0 8px 26px #12251955,inset 0 0 0 3px #fff8de55;backdrop-filter:blur(10px);border-radius:4px}.city-queue summary{display:flex;align-items:center;gap:9px;cursor:pointer;padding:12px 15px;font-size:12px;font-weight:600;list-style:none}.city-queue summary::-webkit-details-marker{display:none}.city-queue summary:after{content:'⌄';margin-left:4px}.city-queue summary .count-badge{margin-left:auto}.city-queue .queue-list{padding:0 15px 13px}.city-queue .queue-empty{padding:3px 0 2px;text-align:left}.city-queue .queue-empty p{font-size:12px;color:#4d5736}.city-queue .queue-empty small{font-size:10px;line-height:1.7;color:#7e6d46}.city-queue .queue-item{padding:9px 0}.city-queue .queue-item b{font-size:12px}.city-queue .queue-item>div{width:100%}.city-queue .queue-item span{color:#806c3c}.city-queue .progress{background:#c4b183}.city-queue .progress i{background:#5c7a43}.city-advisor{position:absolute;bottom:111px;left:24px;width:310px;z-index:10;background:linear-gradient(120deg,#f3e8cfee,#ddcc9fee);border:1px solid #d6b66a;box-shadow:0 8px 25px #102c1c66,inset 0 0 0 3px #fff9e333;display:flex;gap:12px;align-items:center;padding:15px;border-radius:4px;color:#4a452e;transition:transform .25s}.city-advisor:hover{transform:translateY(-4px)}.advisor-seal{width:43px;height:48px;display:grid;place-items:center;color:#e3c683;background:#3b5c40;border:3px double #c5ab67;border-radius:45% 45% 40% 40%;flex-shrink:0}.city-advisor>span:nth-child(2){display:grid;gap:3px}.city-advisor small{font-size:8px;letter-spacing:1px;color:#9a7940}.city-advisor strong{font-size:13px;color:#42462e}.city-advisor>span>span{font-size:10px;color:#88764c}.city-advisor>b{margin-left:auto;font-size:25px;color:#89713c}.city-hint{position:absolute;bottom:102px;left:50%;transform:translateX(-50%);z-index:4;pointer-events:none;color:#f4e5b9;font-size:9px;letter-spacing:1.6px;text-shadow:0 2px 4px #0009;white-space:nowrap}.city-dock{position:absolute;bottom:20px;left:50%;transform:translateX(-50%);display:flex;gap:5px;padding:7px 15px;background:linear-gradient(#244334f5,#12291ff5);border:1px solid #cfad68;outline:3px solid #132c20aa;border-radius:9px;box-shadow:0 10px 35px #0008,inset 0 0 0 3px #9e8e4b33;z-index:10;backdrop-filter:blur(10px)}.city-dock a{display:grid;justify-items:center;gap:5px;min-width:69px;padding:6px 10px;color:#d0c6a1;position:relative;border-radius:5px;transition:background .2s,transform .25s}.city-dock a>.icon{width:23px;height:23px;filter:drop-shadow(0 2px 2px #0006)}.city-dock a>span{font-size:10px}.city-dock a:hover,.city-dock a[aria-current]{color:#ffdf97;background:#f1c26319;transform:translateY(-3px)}.city-dock a[aria-current]:before{content:'';height:2px;position:absolute;top:-8px;width:32px;background:#efd28d;box-shadow:0 0 12px #e1bd64}.city-camera{position:absolute;right:24px;bottom:112px;z-index:11;display:grid;grid-template-columns:44px;gap:5px}.city-camera button{width:44px;height:44px;border:1px solid #b79958;border-radius:50%;background:linear-gradient(#284c3de8,#152e25f0);color:#f2db9d;display:grid;place-items:center;box-shadow:0 3px 9px #0004;font-size:22px;line-height:1}.city-camera button:hover{background:#426344}.city-camera button[aria-pressed='false']{color:#a3a58c;opacity:.85}.city-camera button .icon{width:18px;height:18px}.city-noscript{padding:18px;color:#dfd7bd}
/* Consistent atlas. Each full sprite occupies one fourth of a transparent square. */
.city-sprite{display:block;width:100%;height:100%;background-image:url("../images/city-buildings-lite.webp");background-size:400% 400%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;filter:drop-shadow(4px 7px 4px #25301b55)}.city-building.building-card,.city-prop{position:absolute;left:var(--x);top:var(--y);width:196px;height:196px;transform:translate(-50%,-78%);z-index:var(--depth,410);display:block;background:none;border:0;border-radius:0;padding:0;overflow:visible;box-shadow:none;color:#fff0c6;text-align:center}.city-prop.city-townhall{width:235px;height:235px;z-index:410}.city-prop.scenery-tower{width:115px;height:115px;z-index:815;pointer-events:none}.city-building .building-illustration{display:block;position:absolute;inset:0;height:auto;background:none;transition:transform .25s,filter .25s}.city-building:hover,.city-building:focus-visible{background:none;box-shadow:none;transform:translate(-50%,-78%)}.city-building:hover .building-illustration,.city-building:focus-visible .building-illustration{transform:translateY(-7px);filter:brightness(1.13) drop-shadow(0 0 9px #ffdb8288)}.city-building .plot-ground{position:absolute;inset:auto 15% 10%;height:44px;background:#80704455;border:1px solid #ebd49c55;transform:rotate(-8deg);border-radius:50%;filter:blur(1px)}.city-building .building-info{position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);padding:5px 12px;background:linear-gradient(#263e2fe8,#182c22e8);border:1px solid #ceaf6b99;border-radius:4px;white-space:nowrap;box-shadow:0 3px 8px #0004;min-width:108px;pointer-events:none}.city-building .building-info strong{display:block;font-size:11px;color:#ffe7af;font-weight:500;line-height:1.7}.city-building .building-info>span{display:none;color:#bfc9a5;font-size:9px;line-height:1.5}.city-building:hover .building-info>span,.city-building:focus-visible .building-info>span,.city-building.is-building .building-info>span{display:block}.city-building .plot-plus{position:absolute;bottom:34px;left:50%;transform:translateX(-50%);height:54px;width:67px;display:grid;place-items:center;border:2px dashed #e7cf95ab;border-radius:50%;background:#26483366;color:#ffe6a1;font-size:34px;box-shadow:0 0 25px #f6d18a22;animation:plot-beacon 3s ease-in-out infinite}.city-building.empty-plot .plot-ground{background:#a88b5044;border:2px dashed #e0c48666}.city-building.empty-plot .building-info{background:#dccc9bcc;border-color:#806f3d}.city-building.empty-plot .building-info strong{color:#455236}.city-building.is-building .construction-ring{display:block;position:absolute;bottom:20px;left:14%;width:72%;height:65px;border:2px dashed #f3d779;border-radius:50%;background:#fff0a41a;animation:construction-breathe 1.8s ease-in-out infinite}.city-building.is-building .building-info{border-color:#f6d681}.city-building.is-building .plot-plus{font-size:0}.city-building.is-building .plot-plus:after{content:'⚒';font-size:24px}.city-building.just-completed .building-illustration{animation:building-arrive .7s cubic-bezier(.2,.8,.25,1)}.prop-label{position:absolute;left:50%;bottom:0;transform:translateX(-50%);font-size:10px;padding:3px 12px;background:#213e2de6;border:1px solid #b79a58;color:#ffe7ae;border-radius:3px;white-space:nowrap}.townhall-flag{position:absolute;top:26px;left:128px;width:30px;height:15px;background:linear-gradient(90deg,#3d6948,#9cad6a);clip-path:polygon(0 0,100% 10%,85% 55%,100% 100%,0 100%);transform-origin:left;animation:flag-wave 2.5s ease-in-out infinite}.chimney{display:none;position:absolute;left:40%;top:8px;pointer-events:none}.city-building[data-module='1'] .chimney,.city-building[data-module='3'] .chimney,.city-building[data-module='4'] .chimney{display:block}.chimney i{position:absolute;width:14px;height:15px;background:#e6e2cd77;filter:blur(4px);border-radius:50%;animation:smoke-rise 4.5s linear infinite}.chimney i:nth-child(2){animation-delay:-1.5s}.chimney i:nth-child(3){animation-delay:-3s}.city-cloud{position:absolute;pointer-events:none;width:650px;height:220px;background:radial-gradient(ellipse,#f4f1dd25,transparent 65%);filter:blur(30px);z-index:1500;animation:cloud-drift 80s linear infinite}.cloud-one{top:120px;left:-300px}.cloud-two{top:550px;left:600px;animation-delay:-40s;animation-duration:110s}.river-light{position:absolute;left:60px;top:230px;width:140px;height:650px;background:repeating-linear-gradient(163deg,transparent 0,transparent 20px,#e2ffff22 22px,transparent 25px);border-radius:55% 30% 60% 45%;mix-blend-mode:screen;filter:blur(3px);animation:river-flow 5s linear infinite;pointer-events:none}.city-life{position:absolute;inset:0;z-index:1300;width:1536px;height:1024px;pointer-events:none}.fx-particle{position:fixed;left:var(--fx-x);top:var(--fx-y);width:7px;height:7px;border-radius:2px;background:#f6d57e;box-shadow:0 0 9px #ffd57d;pointer-events:none;z-index:1000;animation:reward-fly .85s ease-out forwards}.motion-paused *, .effects-off .city-stage *{animation-play-state:paused!important}.effects-off .city-cloud,.effects-off .city-life,.effects-off .chimney,.effects-off .river-light{display:none}.effects-off *{scroll-behavior:auto!important}.effects-off .fx-particle{display:none}.demo-dialog{color:#49412e;background:linear-gradient(130deg,#fff6df,#ddcda5);border:3px double #ae8a43;border-radius:6px;max-width:700px;width:calc(100% - 32px);max-height:85svh;box-shadow:0 30px 100px #03120ee6;padding:28px;animation:journal-open .35s ease-out}.demo-dialog::backdrop{background:#071d19bb;backdrop-filter:blur(4px)}.demo-dialog h2{font-family:var(--serif);font-size:25px;color:#334c32}.demo-dialog>p{font-size:12px;color:#82704e;line-height:1.9;margin:8px 0 20px}.demo-dialog .dialog-list{max-height:55svh;overflow-y:auto}.demo-dialog .build-catalog{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.demo-dialog .build-option{display:grid;justify-items:center;gap:4px;padding:10px 7px;background:#fff8e53d;border:1px solid #b29b63;border-radius:4px;color:#4c4d31;min-width:0;line-height:1.6;text-align:center;transition:transform .2s,background .2s}.demo-dialog .build-option:hover{background:#fff6da;transform:translateY(-3px)}.demo-dialog .build-option:disabled{opacity:.5;cursor:not-allowed}.build-option>.city-sprite{width:95px;height:95px}.build-option>b{font-size:12px}.build-option>small{font-size:9px;color:#947e4b}.building-dialog-art{width:190px;height:190px;display:block;margin:0 auto}.demo-dialog .btn-outline{background:#f9efd4;border-color:#c2a86b}.dialog-actions{margin-top:18px}.toast{background:#18392e;color:#f6dfaa;border:1px solid #d2b46d;box-shadow:0 8px 35px #0006;font-size:13px;z-index:1200}
/* The public entry is a layered story scene. Journals move as they enter view. */
body:has(.public-main){background:#f1e6cb;color:#3a392c}.public-header{background:#132e25;color:#ead8ac;border-bottom:1px solid #b59958}.public-header .brand>span{color:#ebd8a4}.public-header .brand small{color:#a7ad8b}.public-header nav>a{color:#dacb9e}.public-main>.demo-notice{background:#e6d8af;border-color:#bda66f}.landing-hero{min-height:660px;border:1px solid #bca06b;border-radius:3px;position:relative;isolation:isolate;overflow:hidden}.landing-art{animation:cinematic-drift 35s ease-in-out infinite alternate}.landing-shade{background:linear-gradient(90deg,#0c251ce6, #0f2c2277 48%,#102d2311)}.landing-hero:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 10px #c7b17c22,inset 0 0 0 12px #e5cc8c55;pointer-events:none}.landing-copy{z-index:3}.landing-copy h1{font-family:var(--serif);font-size:clamp(38px,4vw,65px);font-weight:500;line-height:1.45;text-shadow:0 4px 25px #0004}.landing-copy>p{font-size:15px;color:#e5e3ca;line-height:2}.landing-hero .hero-note{color:#c9d2b4}.landing-atmosphere{position:absolute;inset:0;pointer-events:none;z-index:2;background:radial-gradient(ellipse at 90% 40%,#e6e2bf44,transparent 50%);animation:atmosphere-breathe 12s ease-in-out infinite}.landing-atmosphere:before,.landing-atmosphere:after{content:'';position:absolute;width:5px;height:5px;left:70%;top:50%;border-radius:50%;background:#f9e3aa;box-shadow:120px 130px 2px #f9e3aa77,-70px 60px 1px #fff0aa88,200px -140px 2px #f9e3aa44,-120px -110px 2px #ffdb8977,40px -50px 2px #fff0aa66;animation:mote-rise 14s linear infinite}.landing-atmosphere:after{left:50%;top:80%;animation-delay:-7s}.story-reveal{transition:transform .7s ease,opacity .7s ease}.story-reveal.is-observed{opacity:0;transform:translateY(28px)}.story-reveal.is-visible{opacity:1;transform:none}.quest-card{position:relative}.quest-card:before{content:'';position:absolute;top:10px;left:10px;width:6px;height:6px;border:1px solid #a58b51;transform:rotate(45deg)}.quest-card .progress i{background:linear-gradient(90deg,#647d40,#b1a35d)}
@keyframes plot-beacon{50%{box-shadow:0 0 30px #f6d18a77;background:#496c3d88}}@keyframes construction-breathe{50%{opacity:.55;transform:scale(1.08)}}@keyframes building-arrive{0%{transform:translateY(-45px) scale(.7);opacity:0}65%{transform:translateY(4px) scale(1.04)}100%{transform:none;opacity:1}}@keyframes flag-wave{50%{transform:skewY(-8deg) scaleX(.84)}}@keyframes smoke-rise{0%{transform:translate(0,0) scale(.5);opacity:0}15%{opacity:.55}100%{transform:translate(28px,-80px) scale(2.7);opacity:0}}@keyframes cloud-drift{from{transform:translateX(-700px)}to{transform:translateX(1600px)}}@keyframes river-flow{to{background-position:0 100px}}@keyframes reward-fly{to{transform:translate(var(--fx-dx),var(--fx-dy)) rotate(200deg);opacity:0}}@keyframes journal-open{from{opacity:0;transform:translateY(18px) rotateX(-7deg)}to{opacity:1;transform:none}}@keyframes cinematic-drift{from{transform:scale(1.02) translateY(1%)}to{transform:scale(1.13) translateY(-2%)}}@keyframes atmosphere-breathe{50%{opacity:.35;transform:translateX(-3%)}}@keyframes mote-rise{from{transform:translateY(100px);opacity:0}30%{opacity:.7}to{transform:translateY(-300px) translateX(60px);opacity:0}}
@media(max-width:1000px){.city-resources.resource-bar{width:calc(100% - 36px)}.city-queue.panel{width:210px}.city-heading{top:110px}.city-advisor{width:270px}.city-hint{display:none}}
@media(max-width:600px){.game-shell .topbar{padding:0 12px;height:54px;gap:8px}.game-shell .sidebar{top:54px}.game-shell .mobile-wordmark{font-size:16px;letter-spacing:2px}.game-shell .topbar-left,.game-shell .topbar-right{gap:7px}.game-shell .world-state{display:none}.game-shell .topbar-right .icon-button{width:31px}.game-shell .workspace-body{padding:22px 14px 0}.game-shell .page-heading{align-items:flex-start}.game-shell .page-heading h1{font-size:28px}.game-shell .page-heading p{font-size:12px}.is-city .workspace-body{padding:0}.is-city .workspace-body>.demo-notice{padding:4px 12px;font-size:8px;min-height:29px}.is-city .demo-notice .icon{display:none}.is-city .demo-notice button{font-size:8px;white-space:nowrap}.city-stage{height:calc(100svh - 83px);min-height:660px}.city-resources.resource-bar{left:12px;right:12px;top:10px;width:auto;transform:none;grid-template-columns:repeat(3,minmax(0,1fr));border-radius:5px}.city-resources .resource-stat{padding:6px 9px;min-height:50px;gap:6px}.city-resources .resource-stat strong{font-size:14px}.city-resources .resource-name{font-size:8px;margin-bottom:1px}.city-resources .resource-stat small{display:none}.city-resources .resource-symbol{width:24px;height:25px}.city-resources .resource-symbol .icon{width:20px;height:20px}.city-resources .resource-rate{font-size:7px;bottom:5px;right:8px}.city-resources .resource-stat:nth-child(n+4){border-top:1px solid #a38e5655;min-height:40px}.city-resources .resource-stat:nth-child(n+4) .resource-name{display:none}.city-resources .resource-stat:nth-child(4):before{display:none}.city-heading{left:16px;top:122px}.city-heading h1{font-size:29px;margin-bottom:5px}.city-heading .eyebrow{font-size:7px;letter-spacing:1.2px}.city-coordinates{font-size:9px}.city-queue.panel{right:12px;top:215px;width:158px}.city-queue summary{padding:8px 10px;gap:5px;font-size:10px;min-height:44px}.city-queue summary>.icon{width:15px}.city-queue summary .count-badge{font-size:9px;min-width:17px;height:18px}.city-queue .queue-list{padding:0 10px 10px}.city-queue .queue-empty p{font-size:10px}.city-queue .queue-empty small{font-size:9px}.city-queue .queue-item b{font-size:10px}.city-queue .queue-item span{font-size:9px}.city-advisor{left:12px;bottom:96px;width:240px;gap:9px;padding:10px}.advisor-seal{width:33px;height:39px}.advisor-seal>.icon{width:20px}.city-advisor small{font-size:7px}.city-advisor strong{font-size:11px}.city-advisor>span>span{font-size:9px}.city-camera{right:12px;bottom:98px;gap:4px;grid-template-columns:40px}.city-camera button{width:40px;height:40px;min-height:40px}.city-dock{bottom:13px;width:calc(100% - 26px);padding:6px 5px;gap:0;justify-content:space-around;border-radius:6px}.city-dock a{padding:6px 3px;min-width:0;flex:1;gap:5px}.city-dock a>.icon{width:21px;height:21px}.city-dock a>span{font-size:9px;white-space:nowrap}.demo-dialog{padding:20px}.demo-dialog .build-catalog{grid-template-columns:repeat(2,minmax(0,1fr))}.build-option>.city-sprite{width:88px;height:88px}.landing-hero{min-height:650px}.landing-copy h1{font-size:36px}.landing-copy>p{font-size:13px}.public-header nav>.btn{padding:9px 11px;font-size:11px}.public-header .brand>span{font-size:16px}}
@media(prefers-reduced-motion:reduce){.city-stage *,.landing-hero *,.demo-dialog,.fx-particle{animation:none!important;transition:none!important}.city-cloud,.city-life,.chimney,.river-light,.landing-atmosphere{display:none}.story-reveal.is-observed{opacity:1;transform:none}}
/* A continuous realm: terrain is painted from the actual sector records. */
.is-world .workspace-body{padding:0;max-width:none}.is-world .workspace-body>.demo-notice{margin:0;border-radius:0;border-width:0 0 1px;padding:3px 22px;min-height:30px}.is-world .game-footer{display:none}.realm-stage{position:relative;isolation:isolate;height:calc(100svh - 88px);min-height:680px;background:#6d8250;overflow:hidden}.realm-viewport{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:grab}.realm-viewport.is-dragging{cursor:grabbing}.realm-world{position:absolute;left:0;top:0;width:1536px;height:1024px;transform-origin:0 0;will-change:transform}.realm-ground{position:absolute;inset:0;background:#849663 url("../images/realm-ground.webp") center/cover;filter:saturate(.85)}.realm-world>canvas{position:absolute;inset:0;pointer-events:none;width:1536px;height:1024px}.realm-landmarks{position:absolute;inset:0}.realm-vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 140px #183b3380;background:linear-gradient(#16342666,transparent 30%,transparent 65%,#16342655);z-index:2}.realm-toolbar{position:absolute;top:25px;left:28px;right:28px;z-index:5;display:flex;justify-content:space-between;align-items:flex-start;gap:16px;pointer-events:none;color:#ffefc9;text-shadow:0 2px 10px #143126}.realm-toolbar .eyebrow{color:#f4dfa8;font-size:9px}.realm-toolbar h1{font-family:var(--serif);font-size:38px;font-weight:500;letter-spacing:0;margin:4px 0}.realm-toolbar p{color:#e6e6c7;font-size:11px}.realm-toolbar form{pointer-events:auto;padding:10px 13px;background:#1b392de8;border:1px solid #b79b5e;border-radius:5px;box-shadow:0 5px 15px #0a211c55}.realm-toolbar .coordinate-form{font-size:11px;color:#ead7a6;gap:10px}.realm-toolbar .coordinate-form .textbox{width:60px!important;height:36px;background:#e9dfc0;border-color:#cbb77d;font-size:12px}.realm-toolbar .coordinate-form .btn{font-size:11px;min-height:38px;padding:7px 12px;background:#d8c695;color:#36452f;border-color:#ad9251}.realm-compass{position:absolute;right:29px;top:108px;z-index:6;display:grid;grid-template-columns:repeat(3,36px);gap:4px;width:116px}.realm-compass a{width:36px;height:36px;border-radius:50%;display:grid;place-items:center;background:#213f32eb;border:1px solid #b99b59;color:#ecd8a3;font-size:20px;text-shadow:0 1px 2px #0006;box-shadow:0 3px 8px #0004}.realm-compass a:first-child{grid-column:2}.realm-compass a:nth-child(2){grid-column:1}.realm-compass a:nth-child(4){grid-column:2}.realm-marker{position:absolute;left:var(--map-x);top:var(--map-y);width:78px;height:66px;transform:translate(-50%,-70%);z-index:5;display:block;border-radius:50%;outline-offset:5px}.realm-marker:not(.realm-village){opacity:0}.realm-marker:not(.realm-village):hover,.realm-marker:not(.realm-village):focus-visible,.realm-marker.realm-selected{opacity:1}.realm-marker:after{content:'';position:absolute;left:50%;bottom:5px;width:52px;height:24px;transform:translateX(-50%);border-radius:50%;border:2px solid transparent;pointer-events:none}.realm-marker:hover:after,.realm-marker:focus-visible:after,.realm-selected:after{border-color:#ffda77;box-shadow:0 0 17px #ffcd5c77;background:#ffe49822}.realm-village{width:105px;height:105px;z-index:12;filter:drop-shadow(3px 5px 3px #20341c55)}.realm-village>.city-sprite{position:absolute;inset:0}.realm-marker .realm-name{position:absolute;left:50%;bottom:-11px;transform:translateX(-50%);white-space:nowrap;font-size:10px;color:#fff3c8;padding:2px 8px;border:1px solid #cfb36d88;border-radius:3px;background:#314b30d9;pointer-events:none;text-shadow:0 1px 3px #0005}.realm-village .realm-name{bottom:-5px;font-size:9px}.realm-own .realm-name{background:#e9cf86;color:#30462b;text-shadow:none;border-color:#fff1ad}.realm-banner{position:absolute;right:13px;top:18px;width:14px;height:21px;background:#a25e39;clip-path:polygon(0 0,100% 0,100% 100%,50% 75%,0 100%);border-top:2px solid #f6dc95}.realm-own .realm-banner{background:#2d825c}.realm-info.panel{position:absolute;left:24px;bottom:24px;width:258px;z-index:10;padding:18px 20px;background:linear-gradient(130deg,#f4e9cfee,#ddcba2ee);box-shadow:0 10px 30px #0b241b66;backdrop-filter:blur(8px)}.realm-info h2{font-size:18px;margin:5px 0 12px}.realm-info dl{display:grid;grid-template-columns:auto 1fr;gap:7px 12px;margin:0 0 13px;font-size:11px}.realm-info dt{color:#948054}.realm-info dd{margin:0;color:#44462e;text-align:right;max-width:148px;overflow-wrap:anywhere}.realm-info>p{font-size:9px;line-height:1.9;margin-bottom:12px}.realm-info .text-link{font-size:11px}.realm-legend{position:absolute;left:50%;bottom:26px;transform:translateX(-50%);z-index:4;display:flex;gap:18px;padding:9px 17px;background:#1b372bdd;border:1px solid #c1a05e88;border-radius:4px;color:#e6d4a5;white-space:nowrap;font-size:10px}.realm-legend>span{display:flex;gap:7px;align-items:center}.realm-legend i{display:block;width:8px;height:8px;border-radius:50%;background:#ce9461;border:1px solid #efdbac}.realm-legend .legend-own{background:#70a47c}.realm-legend .legend-water{background:#68a8af}.realm-camera{bottom:26px;right:25px}.city-building .building-info{min-height:0;height:auto}.city-building .building-info strong{margin:0}.game-shell.theme-moon .realm-world{filter:brightness(.85) saturate(.8)}
@media(max-width:600px){.is-world .workspace-body{padding:0}.is-world .workspace-body>.demo-notice{padding:4px 12px;font-size:8px;min-height:29px}.is-world .demo-notice button{font-size:8px;white-space:nowrap}.realm-stage{height:calc(100svh - 83px);min-height:700px}.realm-toolbar{top:16px;left:16px;right:16px;display:block}.realm-toolbar h1{font-size:29px}.realm-toolbar .eyebrow{font-size:7px}.realm-toolbar p{font-size:10px}.realm-toolbar form{margin-top:16px;display:flex;justify-content:space-between;padding:8px 10px}.realm-toolbar .coordinate-form{gap:7px}.realm-toolbar .coordinate-form .btn{font-size:10px}.realm-compass{right:15px;top:174px;grid-template-columns:repeat(3,40px);width:128px}.realm-compass a{width:40px;height:40px}.realm-info.panel{left:13px;bottom:65px;width:240px;padding:13px 16px}.realm-info h2{font-size:16px;margin:3px 0 9px}.realm-info dl{font-size:10px;gap:5px 10px}.realm-info>p{font-size:8px;margin-bottom:7px}.realm-info .eyebrow{font-size:7px}.realm-legend{bottom:16px;font-size:8px;width:calc(100% - 26px);justify-content:space-around;gap:8px;padding:8px 7px}.realm-camera{right:13px;bottom:66px}}
.city-army-alert{position:absolute;top:210px;left:30px;z-index:12;display:flex;gap:8px;align-items:center;padding:8px 12px;border:1px solid #e2b365;background:#753d2de8;color:#ffe6af;border-radius:4px;font-size:11px;box-shadow:0 3px 12px #0004}.city-army-alert .icon{width:17px}
@media(max-width:600px){.city-queue.panel{top:132px;width:145px}.city-army-alert{top:193px;left:16px;font-size:10px;padding:6px 9px}.city-queue .queue-item{gap:6px}}
.realm-cloud{position:absolute;left:-30%;top:10%;width:65%;height:30%;z-index:3;pointer-events:none;background:radial-gradient(ellipse,#fff8d923,transparent 65%);filter:blur(20px);animation:realm-cloud-drift 75s linear infinite}.effects-off .realm-cloud{display:none}.wave-row time{animation:encounter-glow 2.8s ease-in-out infinite}[data-season-state='victory'] .ending-card{box-shadow:0 0 45px #e6c46a88,inset 0 0 35px #fff2ba88}.effects-off .wave-row time{animation:none}
@keyframes realm-cloud-drift{to{transform:translateX(240%)}}@keyframes encounter-glow{50%{text-shadow:0 0 14px #c28c37;color:#8b6227}}
@media(prefers-reduced-motion:reduce){.realm-cloud{display:none}}
.effects-off *{animation:none!important;transition:none!important}.effects-off .story-reveal.is-observed{opacity:1;transform:none}
.realm-overview{position:absolute;right:26px;bottom:185px;z-index:9;width:164px;padding:5px 6px 3px;border:1px solid #c7ab67;background:#1b352de8;border-radius:4px;box-shadow:0 5px 20px #0005}.realm-overview>span{display:block;font-size:7px;letter-spacing:.5px;color:#d6c595;margin:3px 0 5px;text-align:center}.realm-overview canvas{width:150px;height:104px;display:block;cursor:crosshair;touch-action:none}.city-camera button:disabled{opacity:.4;cursor:default}.realm-world{max-width:none}.realm-world>canvas{max-width:none}
@media(max-width:600px){.realm-overview{width:114px;right:12px;bottom:230px;padding:4px}.realm-overview>span{font-size:5px;letter-spacing:0}.realm-overview canvas{width:104px;height:72px}}

/* Explorer journal has its own compact control; Bua yields while it is open. */
.realm-info.panel[data-realm-notes]{left:12px;bottom:var(--realm-panel-bottom,110px);width:280px;max-width:calc(100% - 100px);padding:0;max-height:calc(100% - 210px);overflow:auto;backdrop-filter:none;border-radius:10px;scrollbar-width:thin}
.realm-info[data-realm-notes]>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;list-style:none;min-height:48px;padding:10px 15px;cursor:pointer}.realm-info[data-realm-notes]>summary::-webkit-details-marker{display:none}.realm-info[data-realm-notes] .eyebrow{font-size:14px!important;line-height:1.6;letter-spacing:.5px;color:#705b2d}.realm-notes-toggle{color:#705b2d;font-size:24px;line-height:1}.realm-info[open] .realm-notes-toggle{transform:rotate(180deg)}.realm-notes-body{padding:0 15px 16px}.realm-notes-body dl{font-size:15px;line-height:1.7;gap:10px}.realm-notes-body dd{max-width:160px;color:#353e2c}.realm-notes-body dt{color:#766039}.realm-notes-body p,.realm-notes-body .text-link{font-size:14px;line-height:1.75}.realm-info>summary:focus-visible{outline:2px solid #384e36;outline-offset:-4px}
@media(max-width:760px){.realm-info.panel[data-realm-notes]{width:250px;max-height:calc(100% - 225px)}.realm-notes-body dl{font-size:14px}}



/* assets/css/expansion.css */
/* TOWNBORAN 0.4: the chronicle, seasonal landscapes, new garrison and shared game dock. */
[hidden]{display:none!important}.game-dock.city-dock{position:fixed;bottom:18px;left:50%;z-index:70}.game-dock.city-dock a{min-width:67px}.game-shell:not(.is-city):not(.is-world):not(.is-story) .workspace-body{padding-bottom:120px}.game-shell .sidebar{padding-bottom:30px}.is-story .workspace-body,.is-mission .workspace-body,.is-season .workspace-body{max-width:none!important;padding:0!important}.is-story .game-footer{display:none}.is-story .demo-notice,.is-mission .demo-notice,.is-season .demo-notice{margin:0!important;border-radius:0;padding:4px 22px;min-height:30px}.is-story .topbar{position:relative}.is-mission .game-footer,.is-season .game-footer{margin:32px 4vw 0;padding-bottom:125px}.is-season .campaign-strip,.is-season .chapter-grid,.is-season .season-ending-grid,.is-season .workspace-body>section.panel,.is-season .ending-preview-links{margin:28px 4vw}.is-season .season-ending-grid{margin-bottom:30px}.is-season .demo-campaign-controls{margin:28px 4vw 120px!important}.is-season .workspace-body>.panel:not(.season-theatre){margin:28px 4vw}.is-season .page-heading{padding:30px 4vw}
.cinema-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;animation:scene-breath 26s ease-in-out infinite alternate;transform-origin:center;transition:opacity .5s}.cinema-veil{position:absolute;inset:0;background:linear-gradient(90deg,#071e1ce8, #0b2523a8 40%,#102a2220 75%),linear-gradient(0deg,#0c231fe0,transparent 50%);pointer-events:none}.mission-cinema{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:8vw;align-items:center;min-height:calc(100svh - 88px);padding:70px 5vw 130px;overflow:hidden;background:#102920}.mission-copy{position:relative;z-index:3;max-width:660px;color:#fff0cb}.cinema-back{display:inline-flex;align-items:center;color:#e8d3a1;font-size:11px;letter-spacing:.7px;margin-bottom:35px;min-height:34px}.mission-copy>.eyebrow{display:block;color:#ddbe7c;font-size:10px;letter-spacing:2px}.mission-copy h1{font-family:var(--serif);font-size:clamp(34px,4.3vw,66px);line-height:1.35;font-weight:500;letter-spacing:0;margin:16px 0 22px;text-shadow:0 3px 25px #0006}.mission-narrative{color:#dedfc9;font-size:15px;line-height:2.1;max-width:550px}.scene-chapter{display:block;font-size:8px;letter-spacing:2px;color:#d0b67c;margin-top:30px}.mission-objective.panel{position:relative;z-index:4;padding:27px;border:3px double #b9a16c;background:linear-gradient(135deg,#f4e9cfee,#d9c79cee);backdrop-filter:blur(9px);box-shadow:0 20px 60px #0005;border-radius:4px;opacity:1!important}.mission-objective h2{font-size:18px;line-height:1.8;margin:12px 0}.mission-objective p{font-size:12px;line-height:1.9;margin:10px 0 24px}.mission-objective .btn{width:100%;margin-top:12px;min-height:44px}.mission-objective.quest-card:before{display:none}.mission-objective.quest-locked{opacity:1}.mission-note{display:block;font-size:10px;color:#82724c;line-height:1.8;margin-top:17px}.mission-objective .quest-reward{margin-top:20px;padding:15px 0;border-top:1px solid #bda775;border-bottom:1px solid #bda775}.defence-number{font-size:42px;color:#3a6041;font-family:var(--serif);font-weight:500}.encounter-facts{display:grid;grid-template-columns:1fr auto;gap:9px 12px;font-size:11px;margin:18px 0}.encounter-facts dt{color:#8b7952}.encounter-facts dd{color:#4e4b32;margin:0;text-align:right}.mission-wave-status{max-height:120px;overflow:auto;margin-top:15px}.mission-wave-status .wave-row{padding:9px 0}.mission-wave-status p{font-size:10px;margin:4px 0}.mission-wave-status .badge{font-size:9px}
.cinematic-quest-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.cinematic-quest-grid .quest-card{padding:0;overflow:hidden;display:block;opacity:1}.quest-picture{display:block;height:180px;position:relative;overflow:hidden}.quest-picture>img{width:100%;height:100%;object-fit:cover;transition:transform .7s}.quest-picture:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 45%,#173a2cd9)}.quest-picture>span{position:absolute;bottom:14px;left:20px;color:#f8e4b4;z-index:1;font-size:9px;letter-spacing:1px}.quest-card:hover .quest-picture>img{transform:scale(1.05)}.quest-card-content{padding:22px}.quest-card-content h2{font-size:18px;margin:15px 0 9px}.quest-card-content p{min-height:45px;font-size:12px;line-height:1.9}.quest-card-content .btn{width:100%;margin-top:17px}.quest-card-content .quest-reward{margin-top:18px}.cinematic-quest-grid .quest-card:before{display:none}.cinematic-quest-grid .quest-locked .quest-picture>img{filter:saturate(.65)}.npc-scene-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:27px}.npc-scene-card{height:340px;position:relative;overflow:hidden;border:1px solid #a78b52;box-shadow:0 10px 30px #071c1b55;border-radius:4px}.npc-scene-card>img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.npc-scene-card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 15%,#071d1cdd)}.npc-scene-card>div{position:absolute;left:25px;right:25px;bottom:24px;z-index:2}.npc-scene-card h2{font-family:var(--serif);font-size:30px;color:#ffeac2;margin:7px 0}.npc-scene-card p{font-size:12px;color:#d5ddc7}.npc-scene-card>div>span:last-child{display:block;margin-top:17px;color:#dfc18a;font-size:11px}.npc-scene-card:hover img{transform:scale(1.04)}
.season-theatre{position:relative;isolation:isolate;height:calc(100svh - 88px);min-height:680px;overflow:hidden;background:#17352c}.season-theatre .cinema-veil{background:linear-gradient(90deg,#071e1bcc,transparent 75%),linear-gradient(0deg,#0b211dea,transparent 65%)}.season-scene-copy{position:absolute;left:6vw;bottom:230px;z-index:3;color:#fff0ca;max-width:660px}.season-scene-copy h1{font-family:var(--serif);font-size:clamp(34px,4.6vw,65px);line-height:1.45;font-weight:500;margin:16px 0;letter-spacing:0;text-shadow:0 3px 20px #0005}.season-scene-copy p{color:#d5ddc4;font-size:15px;line-height:2}.season-viewing{display:inline-block;font-size:8px;letter-spacing:1.4px;color:#ddc18a;margin-top:15px}.season-scene-actions{display:flex;gap:12px;margin-top:25px;flex-wrap:wrap}.season-scene-actions .btn-outline{background:#163b2ca6;color:#e9d3a5;border-color:#d6bb7666}.season-scene-chapters{position:absolute;left:6vw;right:6vw;bottom:116px;z-index:3;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.season-scene-chapters button{position:relative;min-height:84px;text-align:left;border:1px solid #c8ae6c77;background:linear-gradient(90deg,#0e2b25ed,#15372cad);isolation:isolate;overflow:hidden;color:#d5d6ba;padding:15px 17px;border-radius:3px;box-shadow:0 4px 15px #0003}.season-scene-chapters button>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-1;opacity:.38}.season-scene-chapters button[aria-pressed='true']{border-color:#ffe0a1;color:#ffedc7;box-shadow:0 0 20px #e9c37b33,inset 0 0 0 2px #e9c37b44}.season-scene-chapters small{display:block;font-size:8px;letter-spacing:1px;color:#b8a67b;margin-bottom:5px}.season-scene-chapters strong{font-size:12px;font-weight:500}.ending-preview-links{display:flex;gap:18px;font-size:12px;color:#d8bf87;flex-wrap:wrap}.ending-preview-links a{text-decoration:underline}.scene-weather{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}.scene-weather i{position:absolute;left:var(--left);top:-15px;width:5px;height:5px;background:#fff8e8;border-radius:50%;opacity:.65;box-shadow:0 0 5px #fff5;animation:weather-fall var(--duration) linear var(--delay) infinite}.scene-weather[data-weather='leaves'] i{width:10px;height:6px;background:#c59040;border-radius:2px 10px 2px 10px;box-shadow:none}.scene-weather[data-weather='petals'] i{width:7px;height:5px;background:#e6c4b0;border-radius:2px 7px 3px 7px;box-shadow:none}.scene-weather[data-weather='motes'] i{background:#f5d985;width:3px;height:3px;animation-direction:reverse}.scene-weather[data-weather='embers'] i{background:#e6ab5e;width:3px;height:3px;box-shadow:0 0 10px #ffb15f;animation-direction:reverse}
.story-player{position:relative;height:calc(100svh - 88px);min-height:650px;background:#0b2220;overflow:hidden;isolation:isolate;color:#f5e2b9}.story-darkness{position:absolute;inset:0;background:linear-gradient(0deg,#061816f2,transparent 80%),linear-gradient(90deg,#071f1e55,transparent);z-index:1}.story-topline{position:absolute;top:26px;left:5vw;right:5vw;display:flex;justify-content:space-between;gap:20px;align-items:center;z-index:4}.story-topline>span{font-family:var(--serif);font-size:20px;letter-spacing:4px}.story-topline small{display:block;font-family:var(--font);font-size:8px;letter-spacing:1.6px;margin-top:7px;color:#d7c497}.story-topline .cinema-back{margin:0;align-self:flex-start}.story-dialogue{position:absolute;left:50%;bottom:52px;transform:translateX(-50%);width:min(860px,86%);text-align:center;z-index:4}.story-dialogue h1{font:500 clamp(30px,4vw,60px)/1.5 var(--serif);letter-spacing:0;color:#ffedc7;margin:13px 0 18px;text-shadow:0 3px 18px #0005}.story-dialogue>p{font-size:15px;line-height:2.1;color:#dfdfc9;max-width:790px;margin:0 auto}.story-dialogue .eyebrow{font-size:10px;letter-spacing:4px}.story-controls{display:flex;align-items:center;justify-content:center;gap:25px;margin-top:32px}.story-controls>.btn{min-width:145px}.story-controls .btn-outline{background:#15352ba3;color:#e3d2a9;border-color:#d2b66a66}.story-dots{display:flex;gap:10px;align-items:center}.story-dots button{width:9px;height:9px;min-width:9px;padding:0;border:1px solid #d8be7a;background:transparent;border-radius:50%;box-shadow:0 0 0 8px transparent}.story-dots button[aria-pressed='true']{background:#f3d08b;box-shadow:0 0 15px #e1b96b66}.ending-preview-label{position:absolute;top:110px;left:5vw;z-index:3;font-size:9px;letter-spacing:1px;color:#d7c9a5;padding:7px 12px;border:1px solid #e0c88655;background:#18362aaa}
.army-muster{height:380px;position:relative;overflow:hidden;border:1px solid #b89b5c;border-radius:4px;margin-bottom:28px;background:#284532}.muster-background{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.55}.muster-veil{position:absolute;inset:0;background:linear-gradient(90deg,#112e25ef,#183c2b55)}.muster-copy{position:relative;z-index:3;padding:48px 40px;max-width:560px}.muster-copy h2{font-family:var(--serif);font-size:38px;line-height:1.5;color:#ffe9b8;font-weight:500;margin:12px 0}.muster-copy p{font-size:13px;color:#d6dcc4;line-height:1.9;max-width:410px}.muster-copy .btn{margin-top:25px}.muster-troops{position:absolute;inset:auto 1% -8px auto;width:48%;height:97%;display:flex;align-items:flex-end;justify-content:center;z-index:2;filter:drop-shadow(7px 12px 5px #081a18aa)}.muster-troop{height:88%;width:36%;object-fit:contain;object-position:bottom;max-width:none;animation:unit-breath 7s ease-in-out infinite alternate}.muster-troop:nth-child(2){height:96%;z-index:2;margin:0 -12%;animation-delay:-2s}.muster-troop:nth-child(3){width:47%;height:95%;animation-delay:-4s}.unit-toolbar{display:flex;gap:8px;flex-wrap:wrap;margin:22px 0}.unit-toolbar button{border:1px solid #b59a5d88;background:#1c3b2e;color:#c7c9ac;padding:10px 18px;border-radius:3px;font-size:12px;min-height:44px}.unit-toolbar button[aria-pressed='true']{background:#d2bd85;color:#34442d;border-color:#eed79e}.new-unit-roster{grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}.new-unit-roster .unit-card{padding:0;overflow:hidden;display:flex;flex-direction:column;text-align:left}.unit-portrait{height:190px;position:relative;background:radial-gradient(ellipse at 50% 65%,#d9c17c77,transparent 65%),linear-gradient(#254637,#142e25);overflow:hidden;border-bottom:1px solid #a98d53}.unit-portrait>img{height:185px;width:100%;object-fit:contain;object-position:center bottom;max-width:none;filter:drop-shadow(5px 7px 3px #0005);transition:transform .35s}.unit-card:hover .unit-portrait>img{transform:translateY(-4px)}.unit-stock{position:absolute;bottom:7px;right:10px;padding:3px 8px;background:#112a23d9;color:#dac28c;border:1px solid #a58b4e66;border-radius:3px;font-size:9px}.unit-stock>b{font-size:15px;font-weight:500;color:#ffe9b4}.unit-card-copy{padding:19px;flex:1;display:flex;flex-direction:column}.unit-card-copy>.eyebrow{font-size:7px}.unit-card-copy h2{font-size:17px;margin:7px 0 10px}.unit-card-copy>p{font-size:10px;line-height:1.9;min-height:56px}.unit-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:12px 0;border-top:1px solid #bdaa7b66;margin:15px 0}.unit-stats>div{text-align:center}.unit-stats dt{font-size:8px;color:#998253}.unit-stats dd{font-size:16px;color:#4a5234;margin:4px 0 0}.unit-card-copy>.btn{width:100%;margin-top:auto;font-size:11px}.army-training{margin-top:27px}.army-training>h2{margin-bottom:17px}
.news-feed{display:grid;gap:22px;margin-top:26px}.news-article{padding:28px!important}.news-meta{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:18px}.news-meta time{font-size:10px;color:#9a8353}.news-article h2{font-size:24px;margin:7px 0 17px}.news-body{white-space:pre-line;line-height:2.1!important;font-size:13px;color:#716548}.news-article .text-link,.news-article .btn{margin-top:20px}.news-editor>h2{font-size:23px}.news-editor>p{font-size:12px;margin:10px 0 22px}.news-language-columns{display:grid;grid-template-columns:1fr 1fr;gap:23px}.news-language-columns fieldset{min-width:0;border:1px solid #baa16a;padding:20px}.news-language-columns legend{font-size:13px;color:#7b693f;padding:0 7px}.news-language-columns label{display:grid;gap:7px;margin-bottom:15px;font-size:11px;color:#7d6c43}.news-language-columns .textbox{width:100%;max-width:none}.news-language-columns textarea{resize:vertical;min-height:170px}.news-editor-actions{display:flex;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-top:20px}.news-editor-actions label{display:grid;gap:7px;font-size:11px}.news-editor-actions select{min-width:140px;height:44px;padding:8px}.about-game{padding:34px!important;max-width:1000px}.about-game h2{font-size:23px;margin:25px 0 12px}.about-game p{font-size:13px;line-height:2.1}.about-game details{margin-top:26px;border-top:1px solid #bba56c;padding-top:17px}.about-game summary{cursor:pointer;font-size:13px}.about-game details p{margin-top:16px;font-size:12px}.release-timeline{display:grid;gap:25px;padding-left:30px;border-left:1px solid #b7995455;max-width:1000px;margin-left:15px}.release-entry{position:relative;padding:28px!important}.release-entry:before{content:'';position:absolute;left:-38px;top:35px;width:12px;height:12px;border-radius:50%;border:2px solid #e5c982;background:#48694b;box-shadow:0 0 20px #e4bb5b44}.release-version{font-size:14px;color:#546943;background:#ddd3af;padding:5px 10px;display:inline-block;border:1px solid #ad9c67}.release-entry>time{float:right;font-size:10px;color:#9e895b;margin-top:9px}.release-entry h2{font-size:24px;margin:20px 0 14px}.release-entry ul{font-size:12px;line-height:2.2;color:#7b6d4c;padding-left:19px}
@keyframes scene-breath{from{transform:scale(1.01)}to{transform:scale(1.07) translateY(-1%)}}@keyframes weather-fall{0%{transform:translate3d(0,-20px,0) rotate(0deg);opacity:0}10%{opacity:.7}90%{opacity:.65}100%{transform:translate3d(var(--sway),95vh,0) rotate(140deg);opacity:0}}@keyframes unit-breath{to{transform:translateY(-4px) rotate(.4deg)}}
@media(max-width:1050px){.new-unit-roster{grid-template-columns:repeat(3,minmax(0,1fr))}.muster-copy{max-width:50%;padding-left:28px}.muster-copy h2{font-size:30px}.muster-troops{width:52%}.cinematic-quest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.mission-cinema{gap:35px;grid-template-columns:minmax(0,1fr) 300px;padding-left:4vw;padding-right:4vw}.mission-copy h1{font-size:42px}.mission-narrative{font-size:13px}.mission-objective.panel{padding:22px}.season-scene-chapters{left:4vw;right:4vw}.season-scene-copy{left:4vw;max-width:600px}}
@media(max-width:600px){.game-dock.city-dock{bottom:12px;padding:5px 4px;width:calc(100% - 22px)}.game-dock.city-dock a{min-width:0;padding:7px 1px;gap:5px}.game-dock.city-dock a>span{font-size:8px}.game-dock.city-dock a>.icon{width:20px;height:20px}.game-dock.city-dock a[aria-current]:before{width:24px;top:-6px}.game-shell:not(.is-city):not(.is-world):not(.is-story) .workspace-body{padding-bottom:110px}.is-mission .demo-notice,.is-season .demo-notice,.is-story .demo-notice{padding:4px 12px;font-size:8px}.is-mission .demo-notice button,.is-season .demo-notice button,.is-story .demo-notice button{font-size:8px;white-space:nowrap}.mission-cinema{display:block;min-height:0;padding:28px 16px 105px}.mission-copy{min-height:440px;padding-top:25px;max-width:none}.mission-copy h1{font-size:36px;max-width:330px}.mission-narrative{font-size:12px;line-height:2.1;max-width:330px}.cinema-back{margin-bottom:25px;font-size:10px}.mission-copy .eyebrow{font-size:8px}.scene-chapter{font-size:7px;margin-top:20px}.mission-cinema .cinema-art{background-position:55% top;background-size:auto 650px;background-repeat:no-repeat}.mission-cinema .cinema-veil{background:linear-gradient(#0e2724a8,#0b262189 20%,#0b2523e6 52%,#102c24)}.mission-objective.panel{padding:23px}.mission-objective h2{font-size:18px}.mission-objective p{font-size:12px}.mission-note{font-size:10px}.cinematic-quest-grid{grid-template-columns:1fr;gap:22px}.quest-picture{height:195px}.quest-card-content h2{font-size:21px}.quest-card-content p{min-height:0;font-size:12px}.quest-card-content .btn{min-height:44px}.npc-scene-grid{grid-template-columns:1fr;gap:18px}.npc-scene-card{height:310px}.npc-scene-card h2{font-size:29px}.season-theatre{height:calc(100svh - 83px);min-height:740px}.season-scene-copy{left:20px;right:20px;bottom:290px}.season-scene-copy h1{font-size:32px;line-height:1.55}.season-scene-copy p{font-size:12px;line-height:2}.season-scene-copy .eyebrow{font-size:8px}.season-viewing{font-size:7px;letter-spacing:.6px}.season-scene-actions{gap:8px;margin-top:20px}.season-scene-actions .btn{font-size:10px;padding:9px 11px;min-height:42px}.season-scene-chapters{left:16px;right:16px;bottom:100px;grid-template-columns:1fr 1fr;gap:8px}.season-scene-chapters button{padding:12px;min-height:72px}.season-scene-chapters strong{font-size:10px}.season-scene-chapters small{font-size:7px}.is-season .campaign-strip,.is-season .chapter-grid,.is-season .season-ending-grid{margin:22px 14px}.is-season .workspace-body>.panel:not(.season-theatre){margin:22px 14px}.ending-preview-links{font-size:10px;gap:12px}.story-player{height:calc(100svh - 83px);min-height:680px}.story-topline{left:20px;right:20px;top:22px;gap:12px}.story-topline>span{font-size:17px;letter-spacing:2px}.story-topline small{font-size:6px;letter-spacing:.5px}.story-topline .cinema-back{font-size:9px;white-space:nowrap}.story-dialogue{bottom:35px;width:88%}.story-dialogue h1{font-size:29px;line-height:1.55;margin:15px 0}.story-dialogue>p{font-size:12px;line-height:2.1}.story-controls{gap:10px;flex-wrap:wrap;margin-top:25px}.story-controls>.btn{font-size:11px;min-width:120px;flex:1}.story-dots{order:-1;flex-basis:100%;justify-content:center;margin:0 0 8px;gap:17px;min-height:22px}.story-dots button{width:9px;height:9px}.ending-preview-label{top:100px;left:20px;right:20px;font-size:7px;letter-spacing:.3px}.army-muster{height:480px}.muster-copy{padding:25px 22px;max-width:none;z-index:3}.muster-copy h2{font-size:27px;margin:10px 0}.muster-copy p{font-size:11px;max-width:280px}.muster-copy .btn{margin-top:15px;min-height:40px;font-size:10px}.muster-troops{height:230px;width:85%;right:-8px;bottom:-4px}.muster-troop{height:93%}.muster-veil{background:linear-gradient(#102e25ef,#173b2b66)}.new-unit-roster{grid-template-columns:1fr 1fr;gap:12px}.unit-portrait{height:155px}.unit-portrait>img{height:152px}.unit-card-copy{padding:14px 12px}.unit-card-copy h2{font-size:15px}.unit-card-copy>p{font-size:10px;min-height:74px}.unit-card-copy>.eyebrow{font-size:6px}.unit-stats dt{font-size:6px}.unit-stats dd{font-size:13px}.unit-stats{gap:1px}.unit-card-copy>.btn{font-size:10px;padding:8px 4px;min-height:44px}.unit-stock{font-size:8px;right:6px}.unit-toolbar{gap:6px}.unit-toolbar button{font-size:10px;padding:8px 12px;min-height:40px}.news-language-columns{grid-template-columns:1fr;gap:18px}.news-language-columns fieldset{padding:15px}.news-article{padding:22px!important}.news-article h2{font-size:21px}.news-body{font-size:12px}.news-meta{gap:9px;flex-wrap:wrap}.news-meta .badge{font-size:8px}.news-editor-actions .btn{flex:1;font-size:11px}.about-game{padding:23px!important}.about-game h2{font-size:20px}.about-game p{font-size:12px}.release-timeline{padding-left:18px;margin-left:5px}.release-entry{padding:20px!important}.release-entry:before{left:-25px;width:10px;height:10px}.release-entry h2{font-size:20px}.release-entry ul{font-size:11px;line-height:2.1}.release-entry>time{float:none;display:block;margin-top:12px}}
.effects-off .scene-weather{display:none}@media(prefers-reduced-motion:reduce){.cinema-art,.muster-troop,.scene-weather i{animation:none!important;transition:none!important}.scene-weather{display:none}}



/* assets/css/dawn.css */
/* TOWNBORAN 0.5 — valley, council, sanctuary, bazaar and account chambers. */
.city-world{width:3072px;height:2048px}.city-panorama{position:absolute;inset:0;width:3072px;height:2048px;max-width:none;pointer-events:none}.city-core{position:absolute;left:768px;top:512px;width:1536px;height:1024px}.city-core>.city-terrain{mask-image:radial-gradient(ellipse 49% 49% at 50% 50%,#000 68%,transparent 100%)}.city-camera{z-index:18;gap:5px;max-width:calc(100% - 24px)}.city-camera button{width:48px;height:48px;min-width:44px;font-size:25px;touch-action:manipulation}.city-camera button[data-city-fit],.city-camera button[data-city-home]{font-size:14px}.city-fortification[hidden]{display:none!important}.village-wall{position:absolute;inset:0;width:1536px;height:1024px;pointer-events:none}.village-wall svg{width:1536px;height:1024px;max-width:none;overflow:visible;fill:none;stroke-linejoin:round}.wall-rear{z-index:100}.wall-front{z-index:950}.wall-shadow{stroke:#122d2390;stroke-width:38;filter:blur(4px)}.wall-face{stroke:#62675c;stroke-width:30}.wall-walk{stroke:#c7c1a0;stroke-width:20}.wall-crenel{stroke:#b4ae91;stroke-width:15;stroke-dasharray:13 9;stroke-linecap:butt}.wall-front svg path{pointer-events:stroke}.fortification-label{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);font-size:12px;color:#ffedba;background:#17362eeb;border:1px solid #c4a05a;padding:6px 12px;white-space:nowrap;pointer-events:auto}.fortification-label small,.city-watchtower .prop-label small{display:block;font-size:10px;color:#edc66d}.city-watchtower{z-index:var(--depth);width:155px;height:170px}.city-watchtower .city-sprite{width:100%;height:100%}.is-pending{opacity:.48;filter:sepia(.6)}.village-council{position:absolute;z-index:12;left:26px;bottom:113px;width:330px;max-width:calc(100% - 92px);background:linear-gradient(130deg,#142e28f5,#243f30f2);border:1px solid #cfb16c;border-top:3px double #cfb16c;box-shadow:0 10px 35px #0007;color:#f8ebc4;border-radius:4px;backdrop-filter:blur(14px)}.village-council>summary{display:flex;align-items:center;gap:11px;padding:12px 15px;list-style:none;cursor:pointer;min-height:62px}.village-council>summary::-webkit-details-marker{display:none}.village-council .advisor-seal{width:37px;height:37px;flex:0 0 37px}.village-council summary small{display:block;font-size:8px;letter-spacing:1.4px;color:#d7c184}.village-council summary b{font-size:13px;font-weight:500}.council-chevron{margin-left:auto}.council-content{padding:0 16px 15px;border-top:1px solid #b59b5840}.council-strength{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:5px;padding:11px 0;border-bottom:1px solid #c9ab5c40}.council-strength>span{font-size:9px;color:#aebba1;display:flex;flex-direction:column}.council-strength b{font-size:19px;color:#f5e3a9;line-height:1.5;font-family:var(--serif);font-variant-numeric:tabular-nums}.village-council h2{font-size:14px;line-height:1.7;margin:12px 0 6px;color:#ffe3a1}.village-council p{font-size:10px;line-height:1.9;color:#c2c8af}.council-actions{display:flex;gap:15px;align-items:center;margin:12px 0}.council-actions .text-link{font-size:10px;color:#edd290}.council-actions .btn{min-height:42px;font-size:11px}.council-threat{font-size:8px;line-height:1.7;display:block;color:#a5b69d}.city-dragon-link{position:relative;left:auto;top:auto;z-index:8;display:flex;gap:14px;align-items:center;background:#183329d9;border:1px solid #bca66960;padding:5px 14px 5px 5px;border-radius:3px;color:#d6d5b6;font-size:9px}.city-dragon-link{margin-top:16px;width:fit-content;max-width:280px;pointer-events:auto;text-shadow:none}.city-dragon-link img{flex:0 0 50px;width:50px;height:50px;object-fit:contain}.city-dragon-link b{display:block;font-size:11px;color:#ffe6a7}.build-option.is-recommended{outline:3px solid #cfa84f;outline-offset:2px;background:#f7edc9}.game-dock.city-dock a{min-width:72px}.game-dock.city-dock{max-width:calc(100% - 24px)}
/* The gilded caravan */
.is-store .workspace-body{max-width:none;padding:0 0 130px}.is-store .workspace-body>.demo-notice{margin:0}.market-cinema{position:relative;min-height:440px;padding:58px max(5vw,24px) 40px;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:45px;isolation:isolate}.market-backdrop,.market-veil{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.market-backdrop{object-position:center 48%;animation:market-depth 30s ease-in-out infinite alternate}.market-veil{background:linear-gradient(90deg,#071d1be8 3%,#0b241faa 45%,#0a1a1260),linear-gradient(0deg,#152d27,transparent 38%);z-index:-1}.market-intro{max-width:570px;position:relative}.market-intro h1{font-family:var(--serif);font-size:clamp(38px,5vw,67px);line-height:1.25;margin:15px 0 20px;color:#f8e8bd;text-shadow:0 4px 22px #0009}.market-intro>p{color:#d4d7bf;font-size:14px;line-height:2;max-width:440px}.market-promise{display:flex;align-items:center;gap:9px;font-size:11px;color:#d4bf85;border-top:1px solid #c2a45c55;padding-top:19px;margin-top:23px;width:fit-content}.market-promise .icon{width:17px}.market-cinema .store-hero.panel{display:block;width:290px;min-width:250px;margin:0;padding:25px;background:linear-gradient(130deg,#102b25e8,#293c2ae8);color:#f1e1b8;border:1px solid #bfa365;outline:4px double #a1884c66;outline-offset:4px;box-shadow:0 15px 45px #0008;backdrop-filter:blur(12px)}.market-cinema .store-hero .eyebrow{color:#d7bd78}.market-cinema .store-hero p{color:#b5c0a6;font-size:10px;line-height:1.9;margin-bottom:20px}.market-cinema .wallet-amount{color:#f3cf70;gap:8px;margin:9px 0}.market-cinema .wallet-amount b{font-size:48px;color:#ffe6a4}.market-cinema .wallet-amount span{font-size:13px;color:#c8c2a0}.market-cinema .store-hero .btn{width:100%}.market-nav{display:flex;justify-content:center;gap:32px;position:relative;z-index:2;padding:15px 20px;border-top:1px solid #c8a45d55;border-bottom:1px solid #c8a45d55;background:#102820}.market-nav a{color:#dccc9b;font-size:12px;min-height:35px;display:flex;align-items:center}.market-nav a:hover{color:#fff1c7}.is-store .workspace-body> .store-section,.is-store .workspace-body>.demo-notice,.is-store .workspace-body>.alert,.is-store .store-records,.is-store .workspace-body>.store-footnote,.is-store .market-legal{width:min(1180px,calc(100% - 64px));margin:30px auto}.is-store .panel-heading h2{font-family:var(--serif);color:#f2dfb3;font-size:29px}.is-store .panel-heading .eyebrow{font-size:8px;letter-spacing:2px}.is-store .store-item{overflow:hidden;background:linear-gradient(130deg,#1c372f,#10261f);color:#e6d7ae;border:1px solid #b29a5c;box-shadow:0 12px 32px #06171090;transition:transform .25s,border-color .25s}.is-store .store-item:hover{transform:translateY(-6px);border-color:#f7d179}.is-store .store-item h3{color:#f4dfab;font-size:19px;font-family:var(--serif)}.is-store .store-item p{color:#b0bfa3;font-size:11px}.is-store .store-item .item-price>b{color:#ebcf7e}.is-store .cosmetic-preview{height:245px;position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;background:radial-gradient(ellipse at 50% 65%,#4a573044,#0a201d);border-bottom:1px solid #c6a35e66;overflow:hidden}.is-store .cosmetic-preview>b{font-size:10px;letter-spacing:2px;color:#e6cd8f;position:relative;z-index:2}.is-store .cosmetic-avatar{width:110px;height:110px;position:relative;z-index:2;display:grid;place-items:center;background:radial-gradient(#5a7550,#173a2e);border:5px double #d9b965;border-radius:50%;box-shadow:0 0 0 7px #9a792644,0 0 0 9px #d3af5b,0 20px 25px #0009}.is-store .cosmetic-avatar .icon{width:57px;height:57px;color:#e0c276}.is-store .relic-aura{position:absolute;width:220px;height:220px;border-radius:50%;border:1px solid #c9a3544d;box-shadow:0 0 30px #c3983430;animation:relic-glow 5s ease-in-out infinite alternate}.is-store .cosmetic-founder .cosmetic-avatar{border-radius:0 0 46% 46%;height:128px;width:90px;background:linear-gradient(90deg,#154834,#367650,#154834);border:4px double #dabb6c;transform:rotate(-4deg);box-shadow:5px 7px 0 #baa056,0 20px 30px #0008}.is-store .cosmetic-moon{background:#0b2535}.is-store .relic-city{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.43) hue-rotate(35deg) saturate(.75)}.is-store .cosmetic-moon .cosmetic-avatar{background:#25466caa;border-color:#a2b9ca;box-shadow:0 0 30px #99d4ff80}.is-store .store-item-body{padding:24px}.is-store .store-item .btn-outline{background:#213e30;color:#f3ddb0}.is-store .crown-pack{background:linear-gradient(145deg,#f0e4bf,#d0bd89);position:relative;overflow:hidden;padding:30px 24px;border:1px solid #d9ba72;box-shadow:0 18px 35px #061b1770}.is-store .crown-pack:before{content:'';position:absolute;inset:8px;border:1px solid #a1824380;pointer-events:none}.is-store .crown-pack:nth-child(2){background:linear-gradient(145deg,#f7e7b4,#dcc080);border-top:3px solid #f6cc65}.is-store .pack-icon{width:105px;height:78px;border-radius:35% 35% 9px 9px;background:linear-gradient(#b79b49 0 43%,#53461f 44% 48%,#937235 49%);border:4px double #edd382;color:#fff0a6;box-shadow:inset 0 0 0 7px #6f542a55,0 9px 15px #70572340;margin:4px auto 25px;display:grid;place-items:center;transform:perspective(300px) rotateY(-12deg)}.is-store .pack-icon .icon{width:40px;height:40px;filter:drop-shadow(0 2px 3px #61471a)}.store-records{border:1px solid #b49d5e;color:#d4c494;background:#163029}.store-records>summary{display:flex;gap:12px;align-items:center;padding:20px;cursor:pointer;font-size:13px}.store-records>summary>span{margin-left:auto}.store-records>.store-section{margin:12px 18px 18px}.is-store .store-records .panel-heading h2{color:#50482c;font-size:20px}.market-legal,.market-legal a{font-size:11px;color:#ccbb8d}.market-sparks{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle at 20% 70%,#ffe39d 0 1px,transparent 2px),radial-gradient(circle at 55% 35%,#ffd47599 0 1px,transparent 2px),radial-gradient(circle at 80% 65%,#ffe39d99 0 1px,transparent 2px);background-size:350px 300px,410px 290px,270px 250px;animation:market-motes 16s linear infinite;opacity:.6}
/* Dragon sanctuary */
.dragon-sanctuary{position:relative;isolation:isolate;margin:0 auto;max-width:1450px;min-height:850px;padding:45px 50px 30px;overflow:hidden;border:1px solid #b9a06080}.sanctuary-background,.sanctuary-veil{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.sanctuary-veil{z-index:-1;background:linear-gradient(90deg,#0a261deb,transparent 75%),linear-gradient(0deg,#0d281fea,transparent 60%)}.sanctuary-heading{position:relative;z-index:3;max-width:630px}.sanctuary-heading h1{font-family:var(--serif);font-size:46px;color:#f8e9c2;margin:12px 0}.sanctuary-heading>p{font-size:13px;line-height:2;color:#c9d1b7}.dragon-display{position:absolute;right:0;top:175px;width:55%;height:465px;display:grid;place-items:center}.dragon-display>img{position:relative;width:95%;height:100%;object-fit:contain;max-width:570px;filter:drop-shadow(0 20px 20px #0009);animation:dragon-breathe 7s ease-in-out infinite;z-index:2}.dragon-halo{position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(#f1cf5c28,transparent 65%);border:1px solid #f3d37b30;box-shadow:0 0 80px #e6b13622}.dragon-stage{position:absolute;bottom:0;left:50%;transform:translateX(-50%);z-index:3;color:#eed8a0;background:#17372edb;border:1px solid #c3a46b80;padding:7px 20px;white-space:nowrap;font-size:12px}.dragon-task.panel{position:relative;margin:35px 0 38px;width:41%;max-width:440px;padding:25px;background:linear-gradient(130deg,#1b362deb,#132f27f0);color:#ddd4b1;box-shadow:0 12px 45px #0006;backdrop-filter:blur(12px)}.game-shell .dragon-task h2{color:#f6dda1;font-family:var(--serif);font-size:25px;line-height:1.65;margin:10px 0}.game-shell .dragon-task p{color:#c6ccb3;font-size:12px;line-height:2}.dragon-cost{display:flex;gap:15px;flex-wrap:wrap;font-size:12px;color:#e1c983;margin:20px 0}.dragon-cost span{display:flex;gap:5px;align-items:center}.dragon-cost .icon{width:16px}.dragon-cost small{width:100%;color:#a5b598;font-size:10px}.dragon-task .dragon-timer{font-size:11px;color:#f1d480;min-height:26px;font-variant-numeric:tabular-nums}.dragon-task .btn{width:100%;margin:8px 0 15px}.dragon-back{font-size:10px;color:#d4c387}.dragon-journey{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;position:relative;z-index:3;list-style:none;padding:0;margin:18px 0 24px}.dragon-journey li{border-top:1px solid #8d9a695e;color:#a6b294;padding:15px 6px;background:#132d247d;text-align:center}.dragon-journey li>span{display:grid;place-items:center;width:26px;height:26px;margin:0 auto 8px;border:1px solid #7b8c64;border-radius:50%;font-size:11px}.dragon-journey li>b{font-size:9px;font-weight:400;line-height:1.8}.dragon-journey li.current{border-top-color:#f1d17c;color:#f3d99c;background:#584a2240}.dragon-journey li.current>span{border-color:#dabb74;box-shadow:0 0 18px #f0c15233}.dragon-journey li.complete{color:#bbd3a5}.dragon-fairness{font-size:10px;line-height:1.9;color:#a8b79a;max-width:900px;position:relative}.sanctuary-fireflies{position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 58% 38%,#ffe4a9 0 1px,transparent 3px),radial-gradient(circle at 73% 53%,#ffe4a9 0 1px,transparent 3px),radial-gradient(circle at 86% 70%,#ffe4a9 0 1px,transparent 3px);animation:relic-glow 4s infinite alternate}.public-main{background:radial-gradient(ellipse at 50% 0,#294738,#10271f);padding-top:1px}.auth-layout{max-width:1250px;margin:36px auto 70px;border:1px solid #b59a61;box-shadow:0 18px 75px #061610a6;min-height:630px;overflow:hidden;position:relative}.auth-art{background:#152e26;position:relative;min-height:630px;overflow:hidden}.auth-art>img{filter:brightness(.7);animation:market-depth 35s ease-in-out infinite alternate}.auth-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#0d281ef0,transparent 70%);pointer-events:none}.auth-art>div{z-index:2}.auth-art .auth-logo{position:relative;width:215px;height:215px;object-fit:contain;filter:drop-shadow(0 7px 15px #0008);margin-bottom:10px;animation:none}.auth-layout .auth-form{padding:48px 42px;background:linear-gradient(135deg,#f2e9ce,#d7c79f);color:#4a412a}.auth-layout .auth-form h2{font-family:var(--serif);font-size:31px;color:#344632;margin:10px 0}.auth-layout .auth-form>p{font-size:12px;line-height:1.9;color:#796c50}.auth-layout .textbox,.auth-layout .dropdown{background:#fff9e7;border:1px solid #bfa771;min-height:46px;color:#403c2b;border-radius:2px}.auth-layout .textbox:focus{outline:2px solid #7e954e;outline-offset:2px}.auth-layout .auth-form label{font-size:11px;line-height:1.9}.auth-layout .btn-primary{background:linear-gradient(#557c4c,#2b553b);border:1px solid #bbaa64;color:#fff0c8;box-shadow:inset 0 0 0 3px #f5d98910,0 5px 15px #253b2730;border-radius:2px;min-height:49px}.auth-layout .checkbox-label{align-items:flex-start}.auth-layout .checkbox-label input{width:18px;height:18px;min-height:18px;flex:0 0 18px;margin-top:4px;accent-color:#496b3d}.auth-layout .form-help,.auth-layout .auth-switch a{color:#497044}.auth-switch{font-size:11px}.auth-note{background:#d9c994;border-left:3px solid #a18747;padding:12px;font-size:11px;line-height:1.8;color:#6b5c3c;margin:18px 0}.auth-chamber .auth-art h1{font-size:40px}.auth-links{display:flex;gap:16px;flex-wrap:wrap;font-size:10px;margin-top:20px;color:#685839}.public-footer{background:#0b211b;color:#b6b99a;border-color:#b19c5b4d}.public-footer a{color:#d7c390}.legal-folio{max-width:1000px;margin:40px auto 70px;padding:45px;background:linear-gradient(120deg,#eee4c7,#ddcda5);border:1px solid #b9a166;box-shadow:0 15px 50px #04150f66;color:#51452b}.legal-folio h1{font-family:var(--serif);font-size:37px;color:#304b35;margin:12px 0 16px}.legal-folio h2{font-size:18px;color:#3a5338;line-height:1.7;margin:28px 0 10px}.legal-folio p,.legal-folio li{font-size:12px;line-height:2;color:#706246}.legal-folio ul{padding-left:22px}.legal-folio .legal-tabs{display:flex;gap:24px;flex-wrap:wrap;border-block:1px solid #af97585e;padding:14px 0;margin:22px 0;color:#406341;font-size:11px}.legal-folio .legal-status{font-size:11px;background:#e4d39e;border:1px solid #bba267;padding:14px;line-height:1.9;color:#6d5931}.legal-folio a{text-decoration:underline;text-underline-offset:3px}.legal-meta{font-size:10px;color:#93805a}.account-chamber{display:grid;grid-template-columns:1.1fr 1fr;gap:25px;margin-bottom:25px}.account-chamber .panel{padding:28px}.account-chamber .auth-form{width:auto}.account-chamber .auth-form .textbox{width:100%}.password-banner{background:linear-gradient(90deg,#102b24d9,#182d2099),url("../images/valley.webp") center/cover;padding:35px;border:1px solid #b7a161;margin-bottom:25px}.password-banner h1{font-family:var(--serif);font-size:38px;color:#f3dfb2}.password-banner p{color:#bfcaac;font-size:12px;line-height:1.9;margin-top:12px}
@keyframes market-depth{from{transform:scale(1)}to{transform:scale(1.055)}}@keyframes market-motes{from{background-position:0 0,0 0,0 0}to{background-position:60px -300px,-40px -290px,45px -250px}}@keyframes relic-glow{from{opacity:.45;transform:scale(.96)}to{opacity:.9;transform:scale(1.04)}}@keyframes dragon-breathe{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-6px) scale(1.012)}}
@media(max-width:1050px){.market-cinema{padding-inline:30px;gap:30px}.market-intro{max-width:480px}.dragon-sanctuary{padding:30px;min-height:900px}.dragon-task.panel{width:45%}.dragon-display{width:53%;right:0;top:210px;height:430px}.auth-layout{margin-inline:24px}.auth-layout .auth-form{padding:35px 28px}.legal-folio{margin-inline:25px}}
@media(max-width:600px){.city-stage{min-height:calc(100svh - 83px)}.city-camera{right:10px;bottom:110px;display:grid;grid-template-columns:repeat(2,44px);gap:5px;padding:6px}.city-camera button{height:44px;width:44px}.realm-camera{grid-template-columns:repeat(3,44px);right:12px;bottom:95px}.village-council{left:10px;bottom:104px;width:calc(100% - 120px);max-width:330px}.village-council>summary{padding:10px;gap:7px;min-height:58px}.village-council summary small{font-size:7px;letter-spacing:.7px}.village-council summary b{font-size:11px}.village-council .advisor-seal{width:30px;height:30px;flex-basis:30px}.council-content{padding:0 10px 12px}.council-strength{grid-template-columns:1fr 1fr}.council-strength>span:last-child{grid-column:1 / -1;flex-direction:row;align-items:center;justify-content:space-between}.council-strength b{font-size:16px}.village-council h2{font-size:12px}.village-council p{font-size:9px}.council-actions{gap:8px;flex-wrap:wrap}.council-actions .btn{font-size:10px}.city-dragon-link{margin-top:14px;top:auto;left:auto;max-width:215px;gap:10px;font-size:9px;padding:5px 10px 5px 5px}.city-dragon-link img{width:38px;height:38px;flex-basis:38px}.city-dragon-link b{font-size:9px}.game-dock.city-dock{width:calc(100% - 16px);max-width:none;padding:5px 3px;gap:0;justify-content:space-around}.game-dock.city-dock a{min-width:0;min-height:44px;padding:5px 1px;flex:1}.game-dock.city-dock a>span{font-size:7px}.game-dock.city-dock a>.icon{width:18px;height:18px}.market-cinema{display:block;min-height:620px;padding:35px 22px 25px}.market-intro h1{font-size:40px;margin:12px 0}.market-intro>p{font-size:12px;max-width:290px}.market-cinema .store-hero.panel{width:100%;min-width:0;margin:35px 0 0;padding:20px}.market-cinema .wallet-amount b{font-size:37px}.market-cinema .store-hero p{font-size:10px;max-width:260px}.market-promise{font-size:9px;margin-top:17px;padding-top:14px}.market-nav{gap:20px;padding:10px 12px}.market-nav a{font-size:10px}.is-store .workspace-body>.store-section,.is-store .workspace-body>.demo-notice,.is-store .workspace-body>.alert,.is-store .store-records,.is-store .workspace-body>.store-footnote,.is-store .market-legal{width:calc(100% - 28px);margin:24px auto}.is-store .store-items,.is-store .store-packs{grid-template-columns:1fr}.is-store .panel-heading h2{font-size:25px}.is-store .panel-heading{gap:10px;align-items:flex-start}.is-store .cosmetic-preview{height:240px}.is-store .crown-pack{padding:28px}.is-store .crown-pack .pack-icon{margin-top:10px}.is-store .store-footnote{font-size:10px;line-height:1.9}.store-records>summary{font-size:10px;padding:16px 13px}.store-records>.store-section{margin:12px 8px}.dragon-sanctuary{padding:28px 16px 25px;margin:0;min-height:0}.sanctuary-heading h1{font-size:34px}.sanctuary-heading>p{font-size:11px;max-width:290px}.sanctuary-background{object-position:70% center}.sanctuary-veil{background:linear-gradient(0deg,#102a20ef,transparent),linear-gradient(90deg,#0c281bdc,#0c281b22)}.dragon-display{position:relative;top:auto;right:auto;width:100%;height:330px;margin:12px 0 25px}.dragon-display>img{width:100%;height:310px}.dragon-stage{bottom:-2px;font-size:11px}.dragon-task.panel{width:100%;max-width:none;margin:0 0 28px;padding:22px}.game-shell .dragon-task h2{font-size:25px}.dragon-journey{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}.dragon-journey li{padding:12px 4px}.dragon-journey li>b{font-size:8px}.dragon-fairness{font-size:9px;line-height:2}.auth-layout{display:flex;flex-direction:column;margin:18px 14px 40px;min-height:0}.auth-art{min-height:285px;max-height:300px;width:100%}.auth-art>div{padding:24px;bottom:15px}.auth-art .auth-logo{width:115px;height:115px;margin-bottom:0}.auth-art h1,.auth-chamber .auth-art h1{font-size:27px;line-height:1.5}.auth-art p{font-size:10px}.auth-layout .auth-form{padding:28px 22px;width:100%}.auth-layout .auth-form h2{font-size:28px}.auth-layout .form-two{grid-template-columns:1fr}.public-main>.demo-notice{margin-inline:14px!important;font-size:9px}.legal-folio{margin:22px 14px 40px;padding:25px 20px}.legal-folio h1{font-size:29px}.legal-folio h2{font-size:17px}.legal-folio p,.legal-folio li{font-size:11px}.legal-folio .legal-tabs{gap:15px;font-size:10px}.legal-folio .legal-status{font-size:10px}.account-chamber{grid-template-columns:1fr}.account-chamber .panel{padding:22px}.password-banner{padding:25px}.password-banner h1{font-size:30px}}
.effects-off .market-backdrop,.effects-off .market-sparks,.effects-off .relic-aura,.effects-off .dragon-display>img,.effects-off .sanctuary-fireflies,.effects-off .auth-art>img{animation:none!important}@media(prefers-reduced-motion:reduce){.market-backdrop,.market-sparks,.relic-aura,.dragon-display>img,.sanctuary-fireflies,.auth-art>img{animation:none!important}.is-store .store-item{transition:none}}
.village-wall>img{position:absolute;left:-130px;top:-120px;width:1760px;height:1160px;max-width:none;pointer-events:none;transform:skewY(5deg);transform-origin:30.5% 73.5%;filter:drop-shadow(0 8px 4px #13291e44)}.wall-rear>img{clip-path:polygon(0 0,100% 0,100% 52%,0 52%)}.wall-front>img{clip-path:polygon(0 52%,100% 52%,100% 100%,0 100%)}
@media(max-width:600px){.auth-art>div{left:0;right:0;bottom:12px;padding:22px}.public-main>.demo-notice{margin:4px 14px 15px!important;position:relative;min-height:40px;padding:9px 12px;line-height:1.7}}



/* assets/css/legend.css */
/* Public introduction. Scoped so account and game screens keep their own theme. */
body:has([data-landing]){background:#0c201b;color:#f8edcf}
body:has([data-landing]) .public-main{background:#0c201b;padding:0}
body:has([data-landing]) .public-main>.demo-notice{max-width:none!important;margin:0!important;padding:9px 24px;background:#203c31;color:#eee3c5;border:0;border-bottom:1px solid #bca56544;text-align:center;font-size:11px;display:block;border-radius:0}
body:has([data-landing]) .public-main>.demo-notice a{color:#ffe1a0}
body:has([data-landing]) .public-footer{max-width:none;padding:32px max(5vw,24px);background:#081b16;color:#c4c9b7;font-size:12px}
body:has([data-landing]) .public-footer b{color:#f1d794}
.landing-experience{--legend-gold:#ebc77e;--legend-ink:#0c201b;--legend-muted:#c5cdbd;overflow:hidden;font-size:15px;line-height:1.85}
.landing-experience a:focus-visible,.landing-experience button:focus-visible,.landing-experience summary:focus-visible{outline:2px solid #ffe1a1;outline-offset:5px}
.landing-experience button{font:inherit;cursor:pointer}
.landing-experience h2{font-family:var(--serif);font-size:clamp(32px,3.6vw,54px);line-height:1.45;font-weight:500;letter-spacing:-.5px;color:#fff0d0}
.landing-experience em{font-style:normal;color:var(--legend-gold)}
.legend-kicker{display:inline-flex;align-items:center;gap:10px;color:#edd49d;font-size:11px;line-height:1.8;letter-spacing:1.6px;font-weight:500}
.legend-kicker .status-dot{background:#e7ca80;box-shadow:0 0 12px #e7ca8088;flex:0 0 5px}
.legend-hero{width:100%;max-width:none;height:auto;min-height:750px;margin:0;border:0;border-radius:0;background:#10291f;display:flex;align-items:center}
.legend-hero:after{box-shadow:none;border:1px solid #d6b57350;inset:20px;z-index:7}
.legend-depth{position:absolute;inset:-4%;transform:translate3d(var(--landing-x,0px),var(--landing-y,0px),0);transition:transform .3s ease-out;z-index:0;pointer-events:none}
.legend-hero .landing-art{animation:legend-landscape 32s ease-in-out infinite alternate;object-position:center 55%;filter:saturate(.82) brightness(.85)}
.legend-hero .landing-shade{z-index:1;background:linear-gradient(90deg,#09221cf5 1%,#0b241edb 34%,#0b241e3d 68%,#0b241e55),linear-gradient(0deg,#0c201b 0%,transparent 38%,#0b201b44)}
.legend-mist{position:absolute;inset:25% -25% -10%;background:radial-gradient(ellipse at 70% 60%,#ccdbbd3a,transparent 45%),radial-gradient(ellipse at 50% 10%,#f8e9c821,transparent 45%);animation:legend-mist 23s ease-in-out infinite alternate;mix-blend-mode:screen}
.legend-hero .landing-copy{width:min(1300px,90%);max-width:none;margin:0 auto;padding:100px 0 132px;position:relative;z-index:5;pointer-events:none}
.legend-hero .landing-copy :is(a,button){pointer-events:auto}
.legend-hero .landing-copy h1{font-family:var(--serif);font-size:clamp(42px,4.65vw,72px);font-weight:500;line-height:1.38;letter-spacing:-.9px;margin:24px 0 25px;color:#fff5dc;text-shadow:0 3px 28px #051610aa}
.legend-hero .landing-copy>p{color:#e0e5d3;font-size:15px;line-height:2.1;max-width:520px;margin:0}
.legend-hero .hero-actions{gap:25px;flex-wrap:wrap;margin-top:32px}
.landing-experience .legend-primary{min-height:54px;display:inline-flex;justify-content:center;gap:18px;padding:14px 24px;background:linear-gradient(110deg,#f4d796,#d8af62);border:1px solid #f4d89e;box-shadow:inset 0 0 0 3px #fff8db14,0 7px 22px #03170e66;color:#173a2b;border-radius:2px;font-size:14px;font-weight:600;transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden}
.legend-primary:before{content:'';position:absolute;inset:-100% 100% -100% -100%;background:linear-gradient(100deg,transparent 30%,#fff6c94d 50%,transparent 70%);transform:translateX(-15%);animation:legend-sheen 7s ease-in-out infinite}
.landing-experience .legend-primary:hover{transform:translateY(-3px);box-shadow:0 9px 30px #d9b55c33}
.legend-hero .hero-text-link{display:inline-flex;gap:9px;align-items:center;color:#f3e6c6;font-size:13px;min-height:44px;border-bottom:1px solid #d5bb7c66}
.legend-hero .hero-text-link .icon{width:17px}
.legend-hero .hero-note{color:#c7d1be;font-size:11px;margin-top:24px}
.legend-dragon{position:absolute;right:-1%;top:6%;height:85%;width:57%;z-index:3;pointer-events:none;display:grid;place-items:center}
.legend-dragon>img{position:relative;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 25px 20px #071e14aa);animation:legend-dragon-breathe 9s ease-in-out infinite}
.legend-halo{position:absolute;width:67%;aspect-ratio:1;border:1px solid #ead29638;border-radius:50%;box-shadow:inset 0 0 100px #dabb6e12,0 0 120px #baaa7120;transform:rotateX(12deg);background:radial-gradient(circle,#ccb76d21,transparent 70%)}
.legend-halo:before,.legend-halo:after{content:'';position:absolute;border:1px solid #ead29625;border-radius:50%;inset:5%;border-style:dashed;animation:legend-orbit 130s linear infinite}
.legend-halo:after{inset:-8%;border-style:solid;border-left-color:transparent;border-right-color:transparent;animation-direction:reverse}
.legend-dragon-caption{position:absolute;right:10%;bottom:2%;font-size:9px;letter-spacing:2px;color:#f1ddb1;display:flex;align-items:center;gap:12px;text-shadow:0 2px 8px #000}
.legend-dragon-caption i{width:35px;height:1px;background:#d8b86e}
.legend-rune{position:absolute;width:9px;height:9px;border:1px solid #d8c07a66;transform:rotate(45deg);z-index:2;animation:legend-spark 6s ease-in-out infinite}
.rune-one{left:55%;top:22%}.rune-two{right:12%;top:70%;animation-delay:-3s}
.legend-hero .landing-atmosphere{z-index:4;opacity:.6;background:none}
.legend-hero-bottom{position:absolute;bottom:36px;left:5%;right:5%;display:flex;justify-content:space-between;align-items:center;z-index:8}
.legend-hero-bottom>a{display:flex;align-items:center;gap:15px;color:#d6d3b7;font-size:9px;letter-spacing:1.8px;min-height:44px}
.legend-hero-bottom>a>span{font-size:22px;animation:legend-scroll 2.5s ease-in-out infinite}
.legend-motion{min-height:44px;display:flex;align-items:center;gap:8px;border:1px solid #d5bb7c66;background:#112b22b3;color:#f4e7c9;padding:6px 12px;border-radius:2px;font-size:11px!important;backdrop-filter:blur(8px)}
.legend-motion .icon{width:17px}.legend-motion[aria-pressed='false']{color:#bbc7b2}
.legend-world-facts{max-width:1180px;margin:auto;padding:30px 25px 38px;display:grid;grid-template-columns:repeat(3,1fr);border-bottom:1px solid #d9bd7633;gap:20px}
.legend-world-facts>span{display:flex;align-items:center;justify-content:center;gap:16px;font-size:11px;color:#c9d0bd;letter-spacing:.7px}
.legend-world-facts>span+span{border-left:1px solid #d9bd7633}
.legend-world-facts b{font-size:38px;font-weight:400;font-family:var(--serif);color:#e6c689;line-height:1}
.legend-chapter{width:min(1180px,90%);margin:auto;padding:100px 0;position:relative;scroll-margin-top:25px}
.legend-section-heading{max-width:690px;margin:0 auto 45px;text-align:center}
.legend-section-heading h2{margin:16px 0 20px}
.legend-section-heading>p{color:#c8d0bd;max-width:590px;margin:auto;font-size:14px;line-height:2}
.legend-discovery{display:grid;grid-template-columns:1.25fr 1fr;gap:35px;align-items:stretch}
.legend-scene{position:relative;min-height:460px;border:1px solid #d4b86b66;padding:8px;background:#21392c;overflow:hidden}
.legend-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 62%,#0b201be6);pointer-events:none}
.legend-scene>img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:opacity .2s ease-out,transform 1s;transform:scale(1.015)}
.legend-scene:hover>img{transform:scale(1.06)}
.legend-scene-tag{position:absolute;left:25px;right:25px;bottom:22px;z-index:1;color:#f4e5bc;font-size:11px;letter-spacing:1px;line-height:1.9}
.legend-paths{display:grid;align-content:space-between;gap:12px}
.legend-path{border:1px solid #d6b77326;border-left:2px solid #d6b77326;background:#102a22;display:flex;gap:17px;align-items:flex-start;padding:23px 22px;text-align:left;color:#b6c2ac;transition:background .25s,border-color .25s}
.legend-path:hover{background:#1c382b}.legend-path[aria-pressed='true']{background:linear-gradient(115deg,#284431,#132e24);border-color:#d2b36b88;border-left:2px solid #e4c179}
.legend-path-icon{color:#d4bb80;padding-top:3px;flex:0 0 25px}.legend-path-icon>.icon{width:25px;height:25px}
.legend-path>span:nth-child(2){flex:1}.legend-path b{display:block;color:#f6e6bc;font-size:17px;font-weight:500;margin-bottom:8px;line-height:1.6}
.legend-path>span>span{font-size:12px;line-height:1.9;display:block;color:#c5cdb8}
.legend-path>i{font-style:normal;color:#91a18c;font-family:var(--serif);font-size:12px;padding-top:3px}
.legend-dragon-story{position:relative;isolation:isolate;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:35px;min-height:650px;padding:80px max(5vw,25px);border-block:1px solid #b9a16944}
.legend-sanctuary,.legend-sanctuary-shade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.legend-sanctuary{opacity:.6;object-position:center 60%}.legend-sanctuary-shade{z-index:-1;background:linear-gradient(90deg,#0a201978,#0a2019ed 70%),linear-gradient(0deg,#0c201b,transparent 25%,transparent 75%,#0c201b)}
.legend-bond-art{height:490px;position:relative;display:grid;place-items:center;max-width:650px;width:100%;justify-self:end}
.legend-bond-art>img{height:95%;width:100%;object-fit:contain;position:relative;filter:drop-shadow(0 25px 20px #03170d88);animation:legend-dragon-breathe 9s ease-in-out infinite;transition:opacity .2s ease-out}
.legend-bond-circle{position:absolute;width:78%;aspect-ratio:1;max-height:420px;border:1px solid #dfc08066;border-radius:50%;background:radial-gradient(circle,#e1bc6a18,transparent 70%);box-shadow:0 0 100px #e1bc6a14}
.legend-bond-circle:before,.legend-bond-circle:after{content:'';position:absolute;inset:4%;border:1px dashed #dfc08044;border-radius:50%;animation:legend-orbit 150s linear infinite}.legend-bond-circle:after{inset:-8%;border-style:solid;border-top-color:transparent;border-bottom-color:transparent;animation-direction:reverse}
.legend-bond-copy{max-width:580px}.legend-bond-copy h2{font-size:clamp(30px,3vw,48px);margin:18px 0 24px}
.legend-bond-copy>p{color:#d4dcc9;font-size:14px;line-height:2;max-width:490px}
.legend-bond-copy .legend-small{color:#b9c7ad;font-size:11px;line-height:1.9;display:block;margin-top:18px}
.legend-growth{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:28px}
.legend-growth button{background:#0b251ec4;border:1px solid #ceaf663b;color:#c0ccaf;padding:13px 5px;min-height:82px;font-size:11px;line-height:1.6;text-align:center;transition:background .2s,border-color .2s}
.legend-growth button>span{display:block;margin-bottom:9px;font-family:var(--serif);color:#e6cd91;font-size:18px}
.legend-growth button[aria-pressed='true']{border-color:#e0be73;background:#d6b67022;color:#ffe6ae}
.legend-season-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.legend-season-card{height:355px;position:relative;overflow:hidden;border:1px solid #d5b67266;background:#173b29}
.legend-season-card:nth-child(even){margin-top:25px;margin-bottom:-25px}
.legend-season-card>img{width:100%;height:100%;object-fit:cover;transition:transform 1s;filter:saturate(.8)}
.legend-season-card:hover>img{transform:scale(1.07)}
.legend-season-card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 10%,#09201940 35%,#081c17f5)}
.legend-season-card>div{position:absolute;bottom:24px;left:20px;right:16px;z-index:1}
.legend-season-card span{color:#f2d594;font-size:10px;letter-spacing:1.6px}
.legend-season-card h3{color:#fff0d1;font-family:var(--serif);font-size:22px;font-weight:500;line-height:1.6;margin:11px 0 7px}
.legend-season-card p{color:#d2d8c1;font-size:11px;line-height:1.8}
.legend-finale{display:flex;gap:20px;align-items:center;max-width:800px;margin:70px auto 0;padding:20px 0;border-block:1px solid #d5b67233}
.legend-finale>span{width:50px;height:50px;display:grid;place-items:center;flex:0 0 50px;border:1px solid #c8ac6455;transform:rotate(45deg);color:#e0c587}.legend-finale .icon{transform:rotate(-45deg)}
.legend-finale p{font-size:12px;line-height:2;color:#becab4}.legend-finale b{display:block;color:#f4dfac;font-weight:500;font-size:15px;margin-bottom:4px}
.legend-factions{padding-top:30px;padding-bottom:85px}
.legend-faction-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.legend-faction-grid article{background:radial-gradient(ellipse at 50% 40%,#355437,#102a21 75%);border:1px solid #d0b57355;position:relative;min-height:270px;padding:25px;overflow:hidden;display:flex;align-items:flex-end;justify-content:center;text-align:center}
.legend-faction-grid article:nth-child(2){background:radial-gradient(ellipse at 50% 40%,#416040,#102a21 75%)}
.legend-faction-grid article:nth-child(3){background:radial-gradient(ellipse at 50% 40%,#536164,#102a21 75%)}
.legend-faction-grid article>.icon{position:absolute;top:20px;left:20px;color:#ddbf7b;width:25px;height:25px;z-index:2}
.legend-faction-grid img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:.65;transform:scale(.88);transition:transform .7s}
.legend-faction-grid article:hover img{transform:scale(.95)}
.legend-faction-grid article:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 30%,#0b201be6)}
.legend-faction-grid article>div{z-index:1;position:relative}
.legend-faction-grid h3{font-family:var(--serif);font-size:27px;font-weight:500;letter-spacing:1px;color:#f8e6b8}
.legend-faction-grid p{color:#d0dac3;font-size:12px;margin-top:5px}
.legend-questions{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;border-top:1px solid #d5b67233;padding-top:65px;padding-bottom:90px}
.legend-questions h2{font-size:34px;margin-top:18px;line-height:1.6}
.legend-questions details{border-bottom:1px solid #d5b67244;padding:18px 0}
.legend-questions details:first-child{padding-top:0}.legend-questions summary{color:#f2dfb2;cursor:pointer;font-size:14px;min-height:30px;list-style:none;display:flex;justify-content:space-between;gap:20px;align-items:center}
.legend-questions summary::-webkit-details-marker{display:none}.legend-questions summary:after{content:'+';font-size:21px;font-weight:300;color:#d7b66e}.legend-questions details[open] summary:after{content:'−'}
.legend-questions details p{color:#c4ceba;font-size:12px;line-height:2;margin:14px 18px 3px 0}
.legend-cta{max-width:none;width:100%;margin:0;min-height:470px;padding:70px 25px;border-radius:0;position:relative;isolation:isolate;border-top:1px solid #d4b47766;background:#1c3b29;overflow:hidden;display:grid;place-items:center}
.legend-cta>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.65)}
.legend-cta:before{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0c201be0,#0c201b9c,#0c201be0),linear-gradient(0deg,#0c201b,transparent 50%,#0c201baa);z-index:-1}
.legend-cta h2{font-size:clamp(34px,4vw,57px);line-height:1.5;margin:16px 0 27px}
.legend-cta-links{margin-top:26px;display:flex;justify-content:center;align-items:center;gap:15px;color:#e6d199;font-size:12px}.legend-cta-links a{min-height:32px}
.legend-changing{opacity:.28!important}
[data-landing-reveal].legend-observed{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}
[data-landing-reveal].legend-observed.is-visible{opacity:1;transform:none}
@keyframes legend-landscape{from{transform:scale(1)}to{transform:scale(1.07)}}
@keyframes legend-mist{from{transform:translateX(-5%);opacity:.4}to{transform:translateX(5%);opacity:.85}}
@keyframes legend-dragon-breathe{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-9px) rotate(1deg)}}
@keyframes legend-orbit{to{transform:rotate(360deg)}}
@keyframes legend-spark{0%,100%{opacity:.2;translate:0 0}50%{opacity:.9;translate:0 -18px}}
@keyframes legend-scroll{0%,100%{transform:translateY(0)}50%{transform:translateY(5px)}}
@keyframes legend-sheen{0%,75%{transform:translateX(-30%)}100%{transform:translateX(160%)}}
@media(min-width:1600px){.legend-hero{min-height:850px}.legend-hero .landing-copy{padding-block:140px 165px}.legend-dragon{width:55%;right:2%}}
@media(max-width:1050px){.legend-hero{min-height:700px}.legend-hero .landing-copy h1{font-size:52px}.legend-hero .landing-copy>p{font-size:14px;max-width:440px}.legend-dragon{width:62%;right:-10%;opacity:.9}.legend-dragon-caption{display:none}.legend-discovery{gap:22px;grid-template-columns:1fr 1fr}.legend-scene{min-height:500px}.legend-path{padding:20px 16px;gap:11px}.legend-bond-copy h2{font-size:35px}.legend-bond-art{height:380px}.legend-growth{gap:5px}.legend-season-card h3{font-size:19px}.legend-season-card>div{left:15px}.legend-questions{gap:35px}}
@media(max-width:900px){body:has([data-landing]) .public-main>.demo-notice{font-size:10px;line-height:1.9;padding:10px 5%}body:has([data-landing]) .public-footer{font-size:11px;line-height:1.9;gap:10px;flex-wrap:wrap}
 .legend-hero{display:block;min-height:840px}.legend-hero:after{inset:12px}.legend-hero .landing-copy{padding:40px 0 0;width:86%}.legend-hero .landing-copy h1{font-size:clamp(35px,7vw,50px);margin:20px 0 18px;letter-spacing:-.5px}.legend-hero .landing-copy>p{font-size:13px;line-height:2;max-width:520px}.legend-hero .landing-copy>p br{display:none}.legend-hero .landing-shade{background:linear-gradient(180deg,#08231ef2 0%,#0b261fdb 42%,#0b241e22 73%,#0c201b),linear-gradient(90deg,#0b241e99,transparent)}.legend-hero .landing-art{object-position:66% center}.legend-hero .hero-actions{gap:18px;margin-top:23px}.landing-experience .legend-primary{font-size:13px;min-height:50px;padding:13px 19px;gap:12px}.legend-hero .hero-text-link{font-size:12px;gap:6px}.legend-hero .hero-note{font-size:10px;margin-top:19px}.legend-kicker{font-size:10px;letter-spacing:1px}.legend-dragon{position:relative;top:auto;bottom:auto;right:auto;width:94%;height:340px;margin:12px auto 90px;z-index:3}.legend-halo{width:64%}.legend-hero-bottom{bottom:22px;left:7%;right:7%;gap:12px}.legend-hero-bottom>a{font-size:8px;letter-spacing:.7px}.legend-motion{padding:6px 9px;font-size:10px!important;gap:6px}.legend-world-facts{padding:25px 5% 30px;gap:10px}.legend-world-facts>span{flex-direction:column;gap:9px;font-size:9px;text-align:center;letter-spacing:0;line-height:1.6}.legend-world-facts b{font-size:31px}.legend-chapter{width:88%;padding:65px 0}.legend-section-heading{margin-bottom:32px}.landing-experience h2{font-size:32px;line-height:1.5}.legend-section-heading>p{font-size:12px;line-height:2}.legend-section-heading>p br{display:none}.legend-discovery{grid-template-columns:1fr;gap:18px}.legend-scene{min-height:300px;aspect-ratio:1.25}.legend-scene-tag{font-size:10px;left:19px;bottom:16px}.legend-paths{gap:9px}.legend-path{padding:18px 16px}.legend-path b{font-size:16px;margin-bottom:5px}.legend-path>span>span{font-size:12px}.legend-dragon-story{grid-template-columns:1fr;gap:10px;padding:50px 6% 55px;display:flex;flex-direction:column-reverse}.legend-sanctuary-shade{background:linear-gradient(0deg,#0c201b,transparent 40%,#0c201bdd),linear-gradient(90deg,#0c201bbb,#0c201b99)}.legend-bond-copy{max-width:600px}.legend-bond-copy h2{font-size:31px;margin:18px 0}.legend-bond-copy>p{font-size:12px}.legend-bond-copy .legend-small{font-size:10px}.legend-growth{gap:6px;margin-top:23px}.legend-growth button{font-size:10px;min-height:78px;padding:10px 2px}.legend-bond-art{height:330px;margin-top:12px;max-width:420px;flex-shrink:0}.legend-bond-circle{width:70%}.legend-season-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.legend-season-card{height:265px}.legend-season-card:nth-child(even){margin:0}.legend-season-card>div{left:14px;right:12px;bottom:17px}.legend-season-card h3{font-size:18px;line-height:1.5;margin-top:8px}.legend-season-card p{font-size:10px}.legend-season-card span{font-size:9px;letter-spacing:1px}.legend-finale{margin-top:30px;gap:18px;align-items:flex-start;padding:22px 0}.legend-finale>span{width:33px;height:33px;flex-basis:33px;margin:10px 4px}.legend-finale b{font-size:13px}.legend-finale p{font-size:11px}.legend-factions{padding-top:10px}.legend-faction-grid{grid-template-columns:1fr;gap:13px}.legend-faction-grid article{min-height:190px;justify-content:flex-end;text-align:right;padding:26px}.legend-faction-grid img{width:62%;height:100%;left:-4%;object-position:top center;transform:scale(.95)}.legend-faction-grid article>.icon{left:auto;right:26px;top:27px;width:22px;height:22px}.legend-faction-grid article:after{background:linear-gradient(90deg,transparent 0%,#0b201b99 60%,#0b201bcc)}.legend-faction-grid article>div{max-width:58%}.legend-faction-grid h3{font-size:26px}.legend-faction-grid p{font-size:11px}.legend-questions{grid-template-columns:1fr;gap:26px;padding-top:45px}.legend-questions h2{font-size:27px;margin-top:13px}.legend-questions summary{font-size:13px}.legend-questions details p{font-size:12px}.legend-cta{padding:55px 6%;min-height:400px}.legend-cta h2{font-size:35px}.legend-cta-links{font-size:11px;gap:12px}}
@media(max-width:370px){.legend-hero{min-height:850px}.legend-hero .landing-copy h1{font-size:33px}.legend-hero .hero-actions{gap:12px}.legend-hero .hero-text-link{font-size:10px}.landing-experience .legend-primary{font-size:12px;padding-inline:16px}.legend-motion span{display:none}.legend-season-card h3{font-size:16px}.legend-bond-copy h2{font-size:28px}}
.effects-off .landing-experience *,.effects-off .landing-experience *:before,.effects-off .landing-experience *:after{animation:none!important;transition:none!important}
.effects-off .legend-depth,.motion-paused .legend-depth{transform:none!important}
.effects-off [data-landing-reveal],.motion-paused [data-landing-reveal]{opacity:1!important;transform:none!important}
.motion-paused .landing-experience *,.motion-paused .landing-experience *:before,.motion-paused .landing-experience *:after{animation-play-state:paused!important}
@media(prefers-reduced-motion:reduce){.landing-experience *,.landing-experience *:before,.landing-experience *:after{animation:none!important;transition:none!important}.legend-depth{transform:none!important}[data-landing-reveal]{opacity:1!important;transform:none!important}}



/* assets/css/dragon-command.css */
/* The roost: resource-funded training, flights and private reports. */
.dragon-command{max-width:1180px;margin:45px auto 55px;color:#eadcba;border-top:1px solid #cbae6855;padding-top:40px}
.command-heading{max-width:720px}.command-heading h2{font-family:var(--serif);font-size:37px;font-weight:500;line-height:1.5;color:#ffe9ba;margin:13px 0}.command-heading>p{font-size:13px;color:#c6d0b7;line-height:2}
.command-demo-note{border-left:2px solid #c0a25b;background:#233c2b;color:#e2d7ad;padding:14px 18px;font-size:11px;line-height:1.9;margin:25px 0}
.dragon-perks{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin-top:30px;background:linear-gradient(110deg,#1a3529,#10271f);border:1px solid #b59b5c77;padding:25px}
.dragon-perks>span{display:grid;gap:7px;padding:0 20px}.dragon-perks>span+span{border-left:1px solid #c7ad6a44}.dragon-perks small{font-size:10px;color:#c6c9a8;letter-spacing:1px}.dragon-perks b{font-size:34px;color:#eed194;font-weight:400;font-family:var(--serif)}.dragon-perks i{font-style:normal}
.command-fineprint{color:#bbc8ae;font-size:11px;line-height:1.9;margin:13px 0 30px}
.command-drills{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.command-drills article{border:1px solid #b89c5d66;padding:26px 23px;background:linear-gradient(145deg,#203b2d,#10261f);position:relative;overflow:hidden;transition:border-color .3s}
.command-drills article>span{display:block;font-family:var(--serif);font-size:47px;color:#ceb57666;line-height:1;margin-bottom:16px}
.command-drills article.complete{border-color:#d2b76e;background:linear-gradient(145deg,#334c30,#152e22)}.command-drills article.complete:after{content:'✓';position:absolute;right:18px;top:17px;font-size:20px;color:#e9cf8c}
.command-drills h3{color:#f4dca8;font-size:19px;font-weight:500;line-height:1.6;margin-bottom:11px}.command-drills p{font-size:12px;line-height:1.9;color:#c6cfb3;min-height:48px}.command-drills small{font-size:10px;line-height:1.9;color:#b8c4a4;display:block}
.command-cost{display:flex;gap:17px;align-items:center;flex-wrap:wrap;margin:17px 0;color:#f0d493;font-size:13px;line-height:1.9}.command-cost>span{display:inline-flex;align-items:center;gap:6px}.command-cost .icon{width:17px;height:17px}
.command-training-form{display:flex;gap:20px;align-items:flex-end;flex-wrap:wrap;margin:25px 0 45px}.command-training-form label{max-width:280px;flex:1;min-width:170px}.dragon-command label{display:grid;gap:7px;font-size:11px;line-height:1.8;color:#d4dabf}.dragon-command select,.dragon-command input[type=number]{height:45px;padding:7px 10px;border:1px solid #a68e5688;background:#193529;color:#f6e4bb;border-radius:2px;font-size:12px;width:100%;max-width:100%}.dragon-command select:focus-visible,.dragon-command input:focus-visible{outline:2px solid #f1cd80;outline-offset:2px}.dragon-command .btn{min-height:46px;padding:11px 20px;border-radius:2px;white-space:normal;font-size:12px}.dragon-command .btn-gold{background:linear-gradient(#edcf8d,#c6a15c);color:#213e2c;border:1px solid #f0d292}.dragon-command .btn:disabled{cursor:not-allowed;opacity:.5}.command-training-form>span{font-size:11px;color:#e8cf8d;min-height:35px;align-content:center;line-height:1.9}
.command-missions{display:grid;grid-template-columns:1.05fr 1fr;gap:24px;align-items:start}
.command-launch,.command-rules{padding:30px;border:1px solid #bca36555;position:relative;background:#122c23;overflow:hidden;isolation:isolate}
.command-launch:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(#122c23d9,#122c23f5 55%),url("../images/quests/npc-expedition.webp") center top/auto 420px no-repeat;opacity:.7}
.command-missions h3{font-size:24px;font-family:var(--serif);font-weight:500;color:#f2d9a0;line-height:1.6;margin:10px 0 15px}.command-launch>p{color:#c9d0b7;font-size:12px;line-height:2}.command-launch form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-top:24px}.command-launch form>.command-cost,.command-launch form>small,.command-launch form>.btn{grid-column:1/-1}.command-launch .command-cost{font-size:12px;margin:5px 0 0}.command-launch form>small{font-size:10px;line-height:1.9;color:#bac7ae}.command-launch form>.btn{width:100%;margin-top:10px}
.command-rules ul{padding-left:19px;display:grid;gap:15px}.command-rules li{color:#c8d1b9;font-size:12px;line-height:2}.command-rules form{margin:25px 0 15px}.command-rules form .btn{width:100%;background:#253f2d;color:#efda9f;border-color:#b69b5d}.command-rules>small{display:block;font-size:10px;line-height:2;color:#adbea4}.command-rules>a{display:inline-block;font-size:11px;margin-top:16px;color:#ecd18b;min-height:35px}
.command-reports{margin-top:35px;border-top:1px solid #bba26455;padding-top:25px}.command-reports>h3{font-family:var(--serif);font-size:27px;font-weight:500;color:#f1dba9;margin-bottom:20px}.command-reports>div>p{font-size:12px;color:#bac6af}
.command-report{padding:20px 24px;background:#142e24;border:1px solid #a9925644;border-left:2px solid #c9b271;margin-bottom:12px}.command-report b{font-size:14px;color:#f0d99c;font-weight:500}.command-report>div{display:flex;gap:20px;justify-content:space-between;flex-wrap:wrap}.command-report>div>span{font-size:10px;color:#bbbd9d}.command-report p{font-size:12px;color:#c9d0b8;line-height:2;margin-top:9px;overflow-wrap:anywhere}.command-report p>span{display:block}.command-report small{font-size:10px;color:#adbfa1}.command-report.is-flame{border-color:#ba965e88;background:linear-gradient(110deg,#3c3423,#162c22)}
.dragon-army-bonus{display:flex;align-items:center;gap:25px;padding:16px 22px;margin:0 0 24px;border:1px solid #c9aa6366;background:linear-gradient(120deg,#1d3e2d,#10291f);flex-wrap:wrap;color:#dec68c}.dragon-army-bonus>span{display:flex;align-items:center;gap:9px;font-size:11px;letter-spacing:1px}.dragon-army-bonus>p{font-size:12px;color:#c8d1b6}.dragon-army-bonus b{font-size:16px;color:#f0d69a}.dragon-army-bonus>a{font-size:11px;margin-left:auto;min-height:34px;align-content:center}
.city-dragon-warning{position:absolute;right:24px;top:292px;z-index:13;width:240px;padding:13px 15px;border:1px solid #dcb078;background:#442c20e8;color:#ffe4af;font-size:11px;line-height:1.9;box-shadow:0 7px 25px #0006}.city-fire-glow{position:absolute;inset:0;pointer-events:none;z-index:960;background:radial-gradient(ellipse at 35% 70%,#db6c2a35,transparent 23%),radial-gradient(ellipse at 70% 60%,#ec8b2740,transparent 19%);animation:scorch-glow 4s ease-in-out infinite alternate}.city-fire-glow:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 40% 55%,#47382a55,transparent 30%);animation:scorch-smoke 9s ease-in-out infinite alternate}
@keyframes scorch-glow{to{opacity:.45}}@keyframes scorch-smoke{to{transform:translateY(-25px);opacity:.4}}
.effects-off .city-fire-glow,.effects-off .city-fire-glow:after,.motion-paused .city-fire-glow,.motion-paused .city-fire-glow:after{animation:none}
@media(max-width:900px){.command-missions{grid-template-columns:1fr}.command-drills{gap:10px}.command-drills article{padding:22px 17px}.command-drills h3{font-size:17px}.dragon-perks{padding:22px 15px}.dragon-perks>span{padding:0 10px}.dragon-perks small{font-size:9px}}
@media(max-width:600px){.dragon-command{margin-top:28px;padding-top:30px}.command-heading h2{font-size:29px}.command-heading>p{font-size:12px}.command-demo-note{font-size:10px;padding:12px 14px}.dragon-perks{gap:8px;padding:18px 9px}.dragon-perks>span{padding:0 5px}.dragon-perks b{font-size:27px}.dragon-perks small{font-size:8px;letter-spacing:0;line-height:1.8}.command-fineprint{font-size:10px}.command-drills{grid-template-columns:1fr;gap:12px}.command-drills article{padding:20px 22px}.command-drills article>span{font-size:34px;float:right;margin:0 0 15px 12px}.command-drills p{min-height:0}.command-drills h3{font-size:20px}.command-drills small{font-size:11px}.command-training-form{gap:14px;margin-bottom:30px}.command-training-form label{max-width:none;min-width:100%;flex:0 0 100%}.command-training-form>.btn{width:100%}.command-training-form>span{width:100%;min-height:0}.command-launch,.command-rules{padding:24px 19px}.command-missions h3{font-size:24px}.command-launch form{grid-template-columns:1fr;gap:13px}.command-launch form>.command-cost,.command-launch form>small,.command-launch form>.btn{grid-column:auto}.command-rules li{font-size:11px}.command-report{padding:17px 16px}.command-report p{font-size:11px}.command-reports>h3{font-size:25px}.dragon-army-bonus{padding:14px 17px;gap:7px 20px}.dragon-army-bonus>a{margin-left:0}.city-dragon-warning{right:12px;top:285px;width:205px;font-size:10px}.city-fire-glow{opacity:.7}}
@media(prefers-reduced-motion:reduce){.city-fire-glow,.city-fire-glow:after{animation:none}.command-drills article{transition:none}}

/* One account companion, anchored to its canonical main town. */
.sanctuary-home{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;margin:16px 0;color:#f4e3b5;position:relative;z-index:3}.sanctuary-home>a{font-size:14px;line-height:1.8;overflow-wrap:anywhere;color:#f6d890}.sanctuary-home .badge{font-size:11px;letter-spacing:.04em;border:1px solid #d8b66880;background:#17372edf;color:#f6e3ad}.dragon-home-supplies{display:grid;gap:5px;min-width:0;flex:1;margin:0;padding:10px 14px;border:1px solid #b9a16480;background:#17372c;color:#f6e5bc;overflow-wrap:anywhere}.dragon-home-supplies small{font-size:11px;line-height:1.7;color:#cfdbb4}.dragon-home-supplies strong{font-size:15px;line-height:1.8}@media(max-width:600px){.sanctuary-home{gap:8px;margin-block:14px}.sanctuary-home>a{font-size:13px}.command-training-form .dragon-home-supplies{flex-basis:100%;width:100%}}



/* assets/css/progression.css */
.building-level{position:absolute;right:15%;bottom:43px;z-index:3;font-size:10px;line-height:1.7;padding:2px 6px;background:#143c2ce8;color:#ffe1a0;border:1px solid #d3b771;pointer-events:none;border-radius:2px}.building-level[hidden]{display:none}.is-building .building-level{background:#745f29}
.building-upgrade-card{display:grid;grid-template-columns:1.15fr 1fr;gap:30px;background:linear-gradient(120deg,#183a2b,#10271f);border:1px solid #c3a6658c;padding:25px 28px;margin-bottom:28px;color:#e7d6ad}
.building-upgrade-card h2{font-size:25px;line-height:1.7;color:#f4dfab;font-family:var(--serif);font-weight:500;margin:12px 0}.building-upgrade-card h2 b{font-family:var(--sans);font-size:13px;font-weight:500;display:inline-block;border:1px solid #bb9e5e;padding:1px 8px;margin-left:8px}.building-upgrade-card p{font-size:12px;line-height:1.9;color:#d1d5b9}.building-upgrade-card small{display:block;color:#b1c0a3;font-size:10px;line-height:1.9;margin-top:10px}.building-upgrade-card .btn{margin-top:17px;min-height:46px;background:linear-gradient(#e8ce91,#c8a565);color:#1c3b2b;border:1px solid #eed495;border-radius:2px}.building-upgrade-card time{color:#f1d38a;font-variant-numeric:tabular-nums}
.level-description,.level-upgrade-cost{font-size:12px;line-height:1.9;margin-block:14px;color:#d8dbbd}.demo-dialog .level-description,.demo-dialog .level-upgrade-cost{color:#6d6040}.demo-dialog .badge{margin-top:12px}.demo-dialog .btn{min-height:44px}.building-upgrade-card .level-flash{color:#ffe19b;padding:10px;background:#45603966;border:1px solid #b49b5a77;margin-bottom:14px}
@media(max-width:700px){.building-upgrade-card{grid-template-columns:1fr;gap:20px;padding:22px 19px}.building-upgrade-card h2{font-size:22px}.building-upgrade-card .btn{width:100%}.building-level{font-size:9px}}
.logistics-panel{padding:24px;margin:22px 0;position:relative}.logistics-panel h2{font-size:22px}.logistics-panel dl,.town-profile-card dl{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:22px 0}.logistics-panel dd{font:600 26px Georgia,serif;margin:8px 0;color:#e6d4a0}.logistics-panel small,.recruit-quote small{display:block;font-size:11px;color:#adb9a9;line-height:1.7}.logistics-actions{display:flex;flex-wrap:wrap;gap:20px}.supply-warning,.supply-report{background:#392a20;border-left:3px solid #d6a764;padding:12px 16px;color:#f4d6ac;line-height:1.8}.recruit-control{display:grid;gap:8px;margin-top:12px}.quantity-picker{display:flex;gap:8px}.quantity-picker input{width:100%;min-width:0}.recruit-quote{font-size:12px;line-height:1.7;margin:0}.recruit-all{font-size:11px}.demo-town-switch{position:relative;z-index:10;margin:10px 0;padding:8px 14px;background:#192c25;border:1px solid #425143;border-radius:12px;width:max-content;max-width:100%}.demo-town-switch label{display:flex;gap:12px;align-items:center}.winter-bastion{position:relative;isolation:isolate;overflow:hidden;border-radius:24px;background:linear-gradient(100deg,#0c1d2be8,#173e53b0),url("../images/seasons/winter-siege.webp") center/cover;display:grid;grid-template-columns:1.4fr 1fr;gap:35px;padding:42px;color:#e7eff2;margin:28px 0;border:1px solid #8faebe40}.winter-copy h2{font:500 clamp(28px,4vw,45px)/1.35 Georgia,serif;color:#fff;margin:18px 0}.winter-copy p,.scorpion-card p{line-height:1.9;font-size:14px}.winter-stats{display:flex;flex-wrap:wrap;gap:12px;margin-top:22px}.winter-stats span{padding:10px 14px;background:#75b6d41c;border:1px solid #a8d1e53b;border-radius:8px;font-size:12px}.winter-deadline{color:#d0e7f1}.winter-deadline time{display:block;font-weight:600}.scorpion-card{background:#0a192bbb;border:1px solid #a6c0cd45;border-radius:18px;padding:25px;display:grid;gap:12px;align-content:start}.scorpion-card h3{font-size:22px;color:#f5e1b0}.scorpion-card small{font-size:11px;line-height:1.8;color:#bfd0dc}.scorpion-card form{display:grid;gap:9px}.winter-flakes{position:absolute;inset:-80px;z-index:-1;pointer-events:none;background-image:radial-gradient(2px 2px at 5% 10%,#fff9 70%,transparent),radial-gradient(2px 2px at 65% 70%,#fff6 70%,transparent),radial-gradient(3px 3px at 35% 40%,#fff8 70%,transparent);background-size:180px 170px,280px 240px,390px 340px;animation:winter-snow 14s linear infinite}.scorpion-illustration{height:120px;position:relative;filter:drop-shadow(0 10px 10px #0008)}.scorpion-illustration i{position:absolute;width:170px;height:70px;border:10px solid #9b7544;border-top:0;left:calc(50% - 85px);top:15px;border-radius:0 0 50% 50%;transform:perspective(160px) rotateX(35deg)}.scorpion-illustration b{position:absolute;left:calc(50% - 5px);height:100px;width:10px;background:linear-gradient(90deg,#dbd4b3,#706750);transform:rotate(8deg);top:0}.scorpion-illustration span{position:absolute;left:calc(50% - 12px);font-size:36px;top:-25px;color:#cbd7db}.scorpion-illustration:after{content:'';width:120px;height:13px;background:#5e4430;border:2px solid #b29965;position:absolute;left:calc(50% - 60px);bottom:6px;transform:rotate(-8deg)}@keyframes winter-snow{to{transform:translateY(170px)}}.town-profile-hero{min-height:330px;position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:end;padding:40px;border-radius:22px;background:#14261d}.town-profile-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.town-profile-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#12281f,transparent);z-index:-1}.town-profile-hero h1{font-size:clamp(32px,4vw,54px);color:#fff4d4}.town-profile-card,.expansion-panel,.raid-planner{padding:30px;margin:22px 0}.town-profile-card dt{font-size:12px;color:#aebfaf}.town-profile-card dd{font-size:20px;margin:10px 0}.profile-secrets{display:flex;gap:20px;padding:24px;background:#16251f;border:1px solid #435145;border-radius:15px;margin:20px 0}.profile-secrets h2{font-size:21px}.profile-secrets p{line-height:1.9}.profile-actions{display:flex;flex-wrap:wrap;gap:12px}.expansion-hero h1{max-width:720px}.expansion-requirements{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:25px 0}.expansion-requirements article{padding:22px;border:1px solid #435145;border-radius:16px;text-align:center}.expansion-requirements .city-sprite{display:block;position:relative;width:160px;height:140px;margin:auto}.expansion-requirements .progress{margin-top:20px}.expansion-panel>p,.raid-planner>p{line-height:1.9}.expansion-panel form{display:grid;gap:16px;max-width:420px}.raid-troops{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:25px 0}.raid-troops label{display:grid;gap:8px;padding:14px;background:#16281f;border-radius:12px}.raid-troops small{color:#aebfaf;font-size:11px}.raid-troops input{width:100%;min-width:0}.city-fire-glow{pointer-events:none}.winter-store-card{padding:30px;border:1px solid #9cb4c2;background:linear-gradient(120deg,#122e40,#253a40);border-radius:22px;margin:30px 0}.winter-store-card h2{font-size:28px}.winter-store-card p{line-height:1.8}.winter-store-card form{display:flex;gap:14px;flex-wrap:wrap;align-items:center}.winter-store-card label{display:grid;gap:7px}
@media(max-width:900px){.winter-bastion{padding:26px;gap:24px;grid-template-columns:1fr}.logistics-panel dl{gap:14px}.raid-troops{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.logistics-panel{padding:18px}.logistics-panel dl,.town-profile-card dl{grid-template-columns:1fr;gap:14px}.logistics-panel dl>div{padding-bottom:12px;border-bottom:1px solid #435145}.logistics-panel dd{font-size:24px}.winter-bastion{padding:20px;border-radius:16px}.winter-copy p{font-size:13px}.scorpion-card{padding:18px}.town-profile-hero{padding:24px;min-height:290px}.town-profile-card,.expansion-panel,.raid-planner{padding:20px}.expansion-requirements{gap:10px}.expansion-requirements article{padding:14px 8px}.expansion-requirements .city-sprite{width:120px;height:110px}.profile-secrets{padding:16px;gap:10px}.profile-actions .btn{width:100%}.demo-town-switch{font-size:12px}.raid-troops{gap:8px}.raid-troops label{font-size:12px;padding:10px}.winter-store-card{padding:20px}}
@media(prefers-reduced-motion:reduce){.winter-flakes{animation:none}}html[data-motion="off"] .winter-flakes{animation:none}
/* The base game uses parchment panels; retain readable ink on those surfaces. */
.logistics-panel dd{color:#284b35}.logistics-panel small,.recruit-quote small{color:#56634c}.logistics-panel .muted{color:#59644f}.town-profile-card .profile-secrets{color:#e2ebdb}.profile-secrets h2{color:#f0e2ba}.raid-troops label{color:#e6ebdf}.winter-store-card{color:#e4edf0}.winter-store-card h2{color:#fff0c7}.winter-store-card .muted{color:#bdcfd7}.demo-town-switch{color:#dfebdc}

.scorpion-illustration{height:160px;border-radius:12px;background:url("../images/seasons/winter-siege.webp") right center/auto 230px;box-shadow:inset 0 0 28px #081d2d66}.scorpion-illustration span,.scorpion-illustration i,.scorpion-illustration b,.scorpion-illustration:after{display:none}.winter-bastion{background-image:linear-gradient(100deg,#0c1d2bf0,#173e538c),url("../images/seasons/winter-siege.webp")}
.winter-bastion .winter-copy p,.winter-bastion .scorpion-card p{color:#e2ebf1}.winter-bastion .winter-deadline{color:#f0e1b4}.winter-bastion .scorpion-card h3{color:#f4e1ad}.winter-bastion .scorpion-card .eyebrow{color:#c5dce7}.recruit-duration{font-size:12px;line-height:1.7;color:#3d503b}.recruit-duration small{display:block;font-size:10px;color:#60684f}.recruit-reason{font-size:11px;line-height:1.7;color:#8a482e}
.winter-store-card p{color:#dce8ed}.winter-store-card .muted{color:#bdcfd7}.winter-bastion .scorpion-card p.badge{color:#36482e;background:#ead6a0}.winter-bastion .scorpion-card a.text-link{color:#d6e9ee}



/* assets/css/operations.css */
/* Shared navigation geometry and fixed-size controls, across public and game routes. */
html{scrollbar-gutter:stable}body.body{font-size:14px}.workspace,.public-main{min-width:0}.game-shell .topbar{height:72px;min-height:72px;max-width:none;width:100%;margin:0;padding:0 clamp(18px,3vw,48px);display:flex;align-items:center;justify-content:space-between;gap:20px;box-sizing:border-box}.game-shell .mobile-wordmark{font-size:20px;letter-spacing:2px;line-height:1.2}.game-shell .sidebar{top:72px;bottom:0;height:auto;width:272px}.game-shell .workspace-body{width:min(1440px,100%);max-width:1440px;margin-inline:auto;padding:28px clamp(18px,3vw,48px) 90px}.is-city .workspace-body,.is-world .workspace-body,.is-store .workspace-body,.is-season .workspace-body,.is-mission .workspace-body,.is-story .workspace-body{max-width:none;width:100%;padding:0 0 90px}.game-shell .topbar{flex-shrink:0}.game-shell .topbar-left{gap:14px}.game-shell .topbar .mobile-menu{width:38px;height:38px;min-width:38px}.game-shell .topbar-right{gap:15px}.game-shell .nav-link{font-size:13px;min-height:42px;display:flex;gap:12px;align-items:center}.game-shell .nav-link .icon{width:19px;height:19px;flex:0 0 19px}.public-main{width:100%;max-width:none;margin:0}.public-main>.auth-layout,.public-main>.legal-document,.public-main>.guide-grid,.public-main>.page-heading,.public-main>.panel{max-width:1200px;margin-left:auto;margin-right:auto}.public-main>.page-heading{padding:30px 24px 10px}.public-main>.guide-grid{padding:0 24px 45px}.public-main>.demo-notice{width:100%;max-width:none!important;margin:0!important;min-height:34px;border-radius:0;display:flex;align-items:center;justify-content:center;gap:6px;padding:5px 18px;line-height:1.6}.game-shell .workspace-body>.demo-notice{min-height:34px;font-size:10px}.is-city .workspace-body>.demo-notice,.is-world .workspace-body>.demo-notice,.is-store .workspace-body>.demo-notice,.is-season .workspace-body>.demo-notice{margin:0;border-radius:0;padding:5px 18px}.demo-town-switch{min-height:44px;align-items:center}.is-city .demo-town-switch,.is-world .demo-town-switch{margin:0;padding:5px 18px;background:#162e27}.world-clock{min-height:42px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:7px clamp(18px,3vw,48px);background:linear-gradient(90deg,#142b23,#244134,#142b23);border-bottom:1px solid #a1884a66;color:#e9dbb2;font-size:11px;font-variant-numeric:tabular-nums}.world-clock a{display:flex;align-items:center;gap:9px;white-space:nowrap}.world-clock .icon{width:18px;height:18px}.season-countdown{display:flex;gap:12px;align-items:center}.season-countdown time{color:#ffdfa1;font-weight:600;min-width:135px;text-align:right}.world-clock>span:nth-child(2){color:#b9c7aa}.realm-stage,.city-stage{min-height:calc(100svh - 150px)}
.recruit-control .quantity-picker{display:flex;align-items:center;gap:8px;margin:8px 0}.recruit-control .quantity-picker .textbox{width:100px;min-width:0;height:40px;min-height:40px;font-size:15px;padding:7px 10px;border-radius:4px}.recruit-control .quantity-picker .btn{width:auto;min-height:40px;height:40px;padding:7px 16px;margin:0;font-size:12px}.recruit-control>label{font-size:12px}.recruit-control .recruit-quote{font-size:11px;line-height:1.9;margin:8px 0}.recruit-control .recruit-duration{font-size:11px;line-height:1.8;margin:8px 0}.recruit-control>button{font-size:12px;min-height:40px;padding:9px 12px;margin-top:9px}.recruit-control .recruit-all{margin-top:7px}.recruit-control small{font-size:10px}.new-unit-roster .unit-card-copy{padding:23px}.new-unit-roster .unit-stats{padding-block:15px;margin-block:18px}.recruitment-sets{padding:24px;margin-bottom:24px}.recruit-set-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.recruit-set-grid form{padding:18px;border:1px solid #c4af7c;background:#ede3ca;display:flex;flex-direction:column;gap:8px}.recruit-set-grid h3{font-size:16px;color:#354530;margin:0}.recruit-set-grid p{font-size:12px;margin:0}.recruit-set-grid small{display:block;font-size:10px;line-height:1.8;color:#73654a}.recruit-set-grid button{margin-top:auto;min-height:40px}.army-percentages{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0 10px}.army-percentages .btn{min-height:40px;padding:8px 15px}.raid-troops label{background:#eee3c8;color:#4d5038;padding:12px;border-radius:4px}.raid-troops input.textbox{max-width:110px;min-height:40px;height:40px}.raid-troops label[hidden]{display:none}.raid-troops small{color:#74725a}.raid-planner{padding:25px}.raid-planner>p{font-size:12px}.raid-planner form>label{display:grid;gap:8px;margin-block:15px;max-width:460px}
.city-development-advice{padding:20px 0 22px;margin-bottom:20px;border-bottom:1px solid #b69a5c66}.city-development-advice .eyebrow,.military-advice .eyebrow{color:#dfc580;font-size:9px;letter-spacing:1.4px}.city-development-advice h2,.military-advice h2{font-size:17px!important;line-height:1.8;color:#ffe2a0;margin:8px 0 12px}.city-development-advice p,.military-advice p{font-size:12px;line-height:1.9}.village-council .council-content{max-height:min(62svh,650px);overflow-y:auto;overscroll-behavior:contain}.village-council .city-development-advice .btn{color:#f5dfaa;background:#31503d;border-color:#bda060}.village-wall>img{left:-240px;top:-260px;width:2000px;height:1400px;transform:none;transform-origin:center}.city-watchtower{pointer-events:auto}.city-stage[data-faction="0"] .city-building .city-sprite,.city-stage[data-faction="0"] .city-townhall .city-sprite{filter:sepia(.14) saturate(1.05)}.city-stage[data-faction="1"] .city-terrain,.city-stage[data-faction="1"] .city-panorama{filter:hue-rotate(13deg) saturate(1.2) brightness(.9)}.city-stage[data-faction="1"] .city-building .city-sprite,.city-stage[data-faction="1"] .city-townhall .city-sprite{filter:hue-rotate(38deg) saturate(.85)}.city-stage[data-faction="1"] .townhall-flag{filter:hue-rotate(70deg)}.city-stage[data-faction="2"] .city-terrain,.city-stage[data-faction="2"] .city-panorama{filter:saturate(.48) brightness(.92) hue-rotate(12deg)}.city-stage[data-faction="2"] .city-building .city-sprite,.city-stage[data-faction="2"] .city-townhall .city-sprite{filter:hue-rotate(140deg) saturate(.65) contrast(1.05)}.city-stage[data-faction="2"] .townhall-flag{filter:hue-rotate(280deg) saturate(1.5)}.civilization-atmosphere{position:absolute;inset:0;pointer-events:none;z-index:90}.civilization-atmosphere i{display:none}.city-stage[data-faction="1"] .civilization-atmosphere i{display:block;position:absolute;width:160px;height:300px;background:url("../images/terrain-props.webp") 0 0/200% 200%;filter:saturate(1.3);opacity:.9}.city-stage[data-faction="1"] .civilization-atmosphere i:nth-child(1){left:170px;top:190px}.city-stage[data-faction="1"] .civilization-atmosphere i:nth-child(2){right:5px;top:210px}.city-stage[data-faction="1"] .civilization-atmosphere i:nth-child(3){left:30px;bottom:45px}.city-stage[data-faction="1"] .civilization-atmosphere i:nth-child(4){right:60px;bottom:5px}.city-stage[data-faction="2"] .civilization-atmosphere{background:none}.city-stage[data-faction="2"] .city-world:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,#f5f9ecdd 1px,transparent 2px);background-size:87px 103px;opacity:.6;pointer-events:none;animation:city-highland-snow 18s linear infinite}
.town-modal{border:1px solid #bca46b;border-radius:8px;padding:0;width:min(680px,calc(100vw - 28px));max-height:85svh;overflow-y:auto;background:#f1e7cf;color:#3e412f;box-shadow:0 25px 110px #000b}.town-modal::backdrop{background:#041b16c9;backdrop-filter:blur(6px)}.town-modal .modal-close{position:absolute;right:12px;top:12px;z-index:5;background:#142f27e8;border:1px solid #c9b06b;color:#f8e2ad;width:40px;height:40px;border-radius:50%;font-size:25px;cursor:pointer}.town-modal-art{min-height:160px;display:flex;flex-direction:column;justify-content:flex-end;padding:32px;background:linear-gradient(0deg,#102c22,transparent),url("../images/quests/first_home.webp") center 48%/cover;color:#ffe7ad}.town-modal-art h2{font:32px/1.5 var(--serif);margin:5px 0}.town-modal-body{padding:25px 30px}.profile-facts{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding-bottom:20px;border-bottom:1px solid #caba91}.profile-facts dt{font-size:11px;color:#7d765b}.profile-facts dd{margin:5px 0;font-size:15px;font-weight:600;overflow-wrap:anywhere}.profile-town-list{padding:0;list-style:none;max-height:180px;overflow-y:auto}.profile-town-list li{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid #c9bb963f;font-size:12px}.profile-town-list li span{font-variant-numeric:tabular-nums;white-space:nowrap}.profile-actions{display:flex;gap:9px;flex-wrap:wrap;margin-top:20px}.profile-actions .btn{font-size:11px;padding:8px 14px;min-height:40px}.profile-actions .text-link{align-self:center;padding:6px}.town-profile-card{padding:28px}.town-modal-body h3{font-size:16px}.inbox-intelligence{padding:26px;margin-top:25px}.inbox-report-link{display:flex;gap:15px;padding:17px 0;border-bottom:1px solid #c4b58b}.inbox-report-link small{display:block;font-size:10px;color:#827453}.inbox-report-link b{font-size:13px}.intel-detail{margin-top:15px;padding:16px;border:1px solid #bbad87;border-radius:4px}.intel-detail summary{cursor:pointer;font-size:12px;font-weight:600}.intel-detail p,.intel-values{font-size:12px;overflow-wrap:anywhere;white-space:pre-wrap}.intel-detail b{font-size:11px;color:#4d6242}.intel-detail small{font-size:10px;display:block;margin-top:14px}
.scorpion-store-item .cosmetic-scorpion{padding:20px}.cosmetic-scorpion .scorpion-emblem>.icon{width:64px;height:64px;stroke-width:1.45}.item-locked .cosmetic-scorpion :is(.scorpion-emblem,.relic-aura){filter:grayscale(1);opacity:.55}.item-lock{position:absolute;z-index:3;top:8px;left:50%;transform:translateX(-50%);margin:0;padding:4px 10px;max-width:calc(100% - 24px);border:1px solid #7b8374;border-radius:4px;background:#102721ed;color:#d8d8c9;font-size:11px;line-height:1.6;text-align:center;white-space:nowrap}.item-lock[hidden]{display:none}.scorpion-store-item small,.speed-item small{display:block;line-height:1.8;font-size:10px;margin-top:12px;color:#afbea5}.scorpion-store-item label,.speed-item label{display:grid;gap:8px;font-size:11px;margin:15px 0}.scorpion-store-item select,.speed-item select{width:100%;max-width:100%;min-width:0;background:#eae1c8;color:#45513b;padding:8px;font-size:11px;height:40px}.store-item-body{display:flex;flex-direction:column}.store-item-body>form{margin-top:auto}.cosmetic-speed .speed-relic{width:105px;height:105px;border:2px solid #cbb174;border-radius:50%;display:grid;place-items:center;background:radial-gradient(#a5a15f55,#16372c);box-shadow:0 0 35px #d8b95f33,inset 0 0 20px #e2c99522;position:relative;z-index:2}.speed-relic>.icon{width:52px;height:52px;color:#e7c66f;stroke-width:1}.cosmetic-speed>b{font-size:19px!important;letter-spacing:4px!important}.is-store .pack-icon.gem-cluster{width:150px;height:115px;position:relative;margin:0 auto 20px;display:grid;place-items:center;border:0;background:radial-gradient(ellipse,#70dcbd44,transparent 65%);box-shadow:none;overflow:visible}.gem-cluster>.icon{width:82px;height:82px;stroke:#b8ffe6;fill:#32bfa2;filter:drop-shadow(0 4px 8px #07160d88) drop-shadow(0 0 15px #57e8c999);position:relative;z-index:2;animation:gem-float 5s ease-in-out infinite}.gem-side{position:absolute;display:block;bottom:12px}.gem-side>.icon{width:52px;height:52px;fill:#42c8d1;stroke:#c6fff2;filter:drop-shadow(0 0 7px #5bdce2aa)}.gem-a{left:9px;transform:rotate(-20deg)}.gem-b{right:4px;transform:rotate(22deg)}.gem-spark{position:absolute;font-style:normal;color:#edfff6;filter:drop-shadow(0 0 5px #b7fff2);animation:gem-sparkle 3.5s ease-in-out infinite}.gem-spark.s1{top:2px;right:17px;font-size:25px}.gem-spark.s2{left:8px;top:25px;font-size:17px;animation-delay:1.2s}.gem-spark.s3{bottom:9px;right:8px;font-size:15px;animation-delay:2.1s}.wallet-amount>.icon{fill:#42d4af;stroke:#b8ffe9;filter:drop-shadow(0 0 8px #42f5c599)}
.staff-panel,.alliance-panel{padding:26px;margin-bottom:25px}.staff-panel form,.alliance-panel form{display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end;margin-block:20px}.staff-panel label,.alliance-panel label{display:grid;gap:7px;min-width:160px;font-size:12px}.staff-panel p,.alliance-panel p{font-size:12px;line-height:1.9}.staff-settings-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.staff-settings-grid label{min-width:0}.staff-settings-grid input{width:100%}.staff-panel small{display:block;font-size:10px}.civilization-picker{border:1px solid #c2ad78;border-radius:6px;padding:18px;margin:20px 0;min-width:0}.civilization-picker legend{font-size:16px;font-weight:600;color:#3f593d;padding:0 6px}.civilization-picker>p{font-size:11px;line-height:1.8}.civilization-choice{display:flex!important;flex-direction:row!important;align-items:center;gap:10px!important;cursor:pointer;margin:12px 0!important;padding:12px;background:#e9e2c9;border:1px solid #caba91;border-radius:5px}.civilization-choice:has(input:checked){border-color:#7d985c;box-shadow:inset 0 0 0 1px #7d985c;background:#e0e9d0}.civilization-choice input{width:16px!important;min-height:16px!important;flex:0 0 16px;accent-color:#315c40}.civilization-choice img{width:64px;height:76px;object-fit:contain;flex-shrink:0}.civilization-choice b{font-size:12px;display:block;line-height:1.7}.civilization-choice small{font-size:10px;line-height:1.9;display:block}.civilization-choice em{font-size:9px;font-style:normal;color:#7e714d;display:block;margin-top:5px}.landing-lore{display:grid;grid-template-columns:1fr 1.2fr;gap:65px}.landing-lore .lore-lead{font-size:17px;line-height:2;color:#dacb9e}.lore-scroll p{font-size:13px;line-height:2.2;color:#b7c3ae;margin:0 0 20px}.landing-experience .legend-faction-grid{align-items:stretch}.landing-experience .civilization-story-card{min-height:460px;padding:32px 25px 25px;align-items:flex-end}.landing-experience .civilization-story-card>img{width:55%;height:220px;top:5px;left:0;opacity:.65}.landing-experience .civilization-story-card>div{max-width:none;position:relative;z-index:3;padding-top:145px}.landing-experience .civilization-story-card:after{background:linear-gradient(0deg,#091f1be8 40%,transparent)}.civilization-story-card p{font-size:11px!important;line-height:1.9!important;margin:12px 0}.civilization-story-card .civilization-play{padding-top:12px;border-top:1px solid #c4ad6e55;color:#e2c78c}.civilization-story-card a{font-size:11px;color:#e9ce89}.dragon-motion-rig.legend-dragon{max-width:650px;max-height:650px;right:3%;top:50%;transform:translateY(-50%);height:min(48vw,650px);width:min(48vw,650px)}.dragon-rig{width:100%;height:100%;overflow:visible;filter:drop-shadow(0 18px 20px #00181088)}.dragon-wing-left{transform-origin:38% 48%;animation:dragon-wing-left 7s ease-in-out infinite;transform-box:view-box}.dragon-wing-right{transform-origin:82% 47%;animation:dragon-wing-right 7s ease-in-out infinite;transform-box:view-box}.dragon-body{animation:dragon-body-breathe 7s ease-in-out infinite;transform-origin:50% 90%}.dragon-fire{opacity:0;transform-origin:78% 29%;animation:dragon-fire-burst 14s ease-in-out infinite;transform-box:view-box}.motion-disabled .dragon-rig *,.reduce-motion .dragon-rig *{animation:none!important}.motion-disabled .dragon-fire,.reduce-motion .dragon-fire{opacity:0}
.dm-layout{display:grid;grid-template-columns:270px minmax(0,1fr);gap:22px}.dm-threads{padding:22px;height:fit-content}.dm-threads h2{font-size:16px}.dm-thread{display:flex;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid #c8bb96}.dm-thread b{font-size:12px}.dm-conversation{padding:0;overflow:hidden}.dm-conversation>header{display:flex;align-items:center;gap:15px;padding:20px;border-bottom:1px solid #c3af7f}.dm-conversation>header h2{font-size:20px;margin:0}.dm-conversation>header small{font-size:10px}.dm-conversation>header a{margin-left:auto;font-size:11px}.dm-messages{height:380px;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:12px;background:radial-gradient(ellipse at 0 0,#e2d9b8,#f4edd9);overscroll-behavior:contain}.dm-bubble{align-self:flex-start;max-width:82%;padding:12px 15px;background:#fff7e2;border:1px solid #cab989;border-radius:10px 10px 10px 0}.dm-bubble.is-self{align-self:flex-end;background:#365840;color:#f1e3bc;border-color:#6f8555;border-radius:10px 10px 0 10px}.dm-bubble p{margin:0;font-size:12px;color:inherit!important;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}.dm-bubble time{font-size:9px;display:block;opacity:.65;margin-top:6px}.dm-conversation>form{padding:18px 20px;display:grid;gap:10px}.dm-conversation>form textarea{width:100%;min-width:0;resize:vertical;max-height:200px}.dm-conversation>form .btn{justify-self:end}.dm-conversation>small{display:block;padding:0 20px 20px;font-size:10px;line-height:1.8;color:#7c7254}.alliance-hall-hero{position:relative;isolation:isolate;overflow:hidden;border:1px solid #b7a36a;padding:40px;margin-bottom:25px;color:#f4dfad}.alliance-hall-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.alliance-hall-hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#102b24ed,#102b2466);z-index:-1}.alliance-hall-hero h1{font:35px/1.5 var(--serif);margin:8px 0}.alliance-hall-hero p{font-size:13px;max-width:530px}.alliance-gate{display:flex;gap:25px;flex-wrap:wrap;padding:20px 0}.alliance-gate span{font-size:12px}.alliance-gate b{display:block;font-size:24px;color:#476443}.alliance-member{padding:12px 0;border-bottom:1px solid #cbbb91;display:flex;justify-content:space-between}
@keyframes gem-float{50%{transform:translateY(-5px) rotate(4deg)}}@keyframes gem-sparkle{0%,100%{opacity:.25;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}@keyframes dragon-wing-left{0%,100%{transform:rotate(0)}50%{transform:rotate(-3deg) skewY(1.5deg)}}@keyframes dragon-wing-right{0%,100%{transform:rotate(0)}50%{transform:rotate(3deg) skewY(-1.5deg)}}@keyframes dragon-body-breathe{50%{transform:scaleY(1.006)}}@keyframes dragon-fire-burst{0%,64%,84%,100%{opacity:0;transform:scaleX(.1) scaleY(.25)}68%{opacity:.8;transform:scaleX(.9) scaleY(.7)}72%{opacity:1;transform:scaleX(1) scaleY(1)}76%{opacity:.85;transform:scaleX(.96) scaleY(.8)}81%{opacity:0;transform:scaleX(1.05) scaleY(.4)}}@keyframes city-highland-snow{to{transform:translateY(103px)}}
@media(max-width:900px){.recruit-set-grid{grid-template-columns:1fr}.staff-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dm-layout{grid-template-columns:210px minmax(0,1fr)}.dragon-motion-rig.legend-dragon{right:-1%;width:52vw;height:52vw;max-width:620px}.landing-lore{gap:30px}.landing-experience .civilization-story-card{min-height:500px;padding-inline:20px}}
@media(max-width:760px){.game-shell .topbar{height:64px;min-height:64px;padding:0 16px;gap:12px}.game-shell .sidebar{top:64px}.game-shell .mobile-wordmark{font-size:16px;letter-spacing:1.4px}.game-shell .topbar-right{gap:10px}.game-shell .world-state{display:none}.game-shell .workspace-body{padding:22px 16px 100px}.is-city .workspace-body,.is-world .workspace-body,.is-store .workspace-body,.is-season .workspace-body,.is-mission .workspace-body,.is-story .workspace-body{padding:0 0 90px}.world-clock{padding:7px 16px;gap:12px;min-height:43px;font-size:10px}.world-clock>span:nth-child(2){display:none}.season-countdown{gap:7px}.season-countdown time{min-width:105px}.world-clock .icon{width:15px;height:15px}.game-shell .workspace-body>.demo-notice{font-size:9px}.new-unit-roster .unit-card-copy{padding:20px}.recruit-control .quantity-picker .textbox{width:95px;flex:none}.recruitment-sets{padding:20px}.recruitment-sets .panel-heading{align-items:start;gap:12px;flex-wrap:wrap}.raid-troops{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.raid-planner{padding:20px}.raid-troops label{font-size:11px}.town-modal-body{padding:20px}.profile-facts{grid-template-columns:1fr 1fr}.profile-actions .btn{flex:1 1 40%;text-align:center}.town-modal-art{padding:25px;min-height:140px}.staff-panel,.alliance-panel{padding:20px}.staff-settings-grid{grid-template-columns:1fr}.staff-panel form{display:grid;grid-template-columns:1fr}.staff-panel input{max-width:100%}.landing-lore{grid-template-columns:1fr;gap:12px}.landing-lore .lore-lead{font-size:15px}.lore-scroll p{font-size:12px}.landing-experience .civilization-story-card{min-height:0;display:block;padding:24px 22px}.landing-experience .civilization-story-card>img{width:125px;height:170px;left:auto;right:10px;top:12px;opacity:.3}.landing-experience .civilization-story-card>div{padding-top:0;max-width:none;text-align:left}.landing-experience .civilization-story-card>.icon{display:none}.dragon-motion-rig.legend-dragon{position:relative;top:auto;right:auto;width:min(90vw,470px);height:min(90vw,470px);transform:none;margin:20px auto 80px}.legend-hero{min-height:0!important}.dm-layout{grid-template-columns:1fr}.dm-threads{padding:18px}.dm-threads [data-dm-threads]{display:flex;gap:15px;overflow-x:auto}.dm-thread{flex-shrink:0}.dm-conversation>header{gap:10px;padding:18px}.dm-conversation>header h2{font-size:18px}.dm-conversation>header>a{max-width:95px;font-size:10px}.dm-messages{height:350px;padding:15px}.alliance-hall-hero{padding:28px}.civilization-choice img{width:48px;height:65px}.civilization-picker{padding:12px}.civilization-choice{padding:10px}.village-council .council-content{max-height:55svh}}
@media(prefers-reduced-motion:reduce){.dragon-rig *,.gem-cluster *,.city-world:after{animation:none!important}.dragon-fire{display:none}.town-modal::backdrop{backdrop-filter:none}}
.village-beacon{display:grid;grid-template-columns:1fr auto;gap:5px 20px;max-width:320px;margin:8px 0 18px;padding:10px 13px;border:1px solid #c8a76499;background:#17382ee8;color:#f1d996;font-size:11px;backdrop-filter:blur(6px)}.village-beacon>b{font-size:12px}.village-beacon-track{display:block;grid-column:1/-1;height:4px;background:#091d17;border-radius:5px;overflow:hidden}.village-beacon-track>i{display:block;height:100%;background:linear-gradient(90deg,#79b18a,#f8dc91);box-shadow:0 0 8px #ffe598}.settlement-coordinates{font-size:17px!important;color:#43643d!important;font-weight:600}[data-settlement-form]{display:grid;gap:14px}[data-settlement-form] label{display:grid;gap:8px}[data-settlement-form] p{font-size:12px;line-height:1.9}[data-settlement-form] input{width:100%}.effects-off .dragon-rig *,.effects-off .gem-cluster *,.effects-off .city-world:after{animation:none!important}.effects-off .dragon-fire{opacity:0!important}@media(max-width:760px){}.public-navigation{position:fixed;top:72px;left:0;bottom:0;width:272px;max-width:90vw;z-index:150;overflow-y:auto;background:linear-gradient(140deg,#f7f0df,#ddd1b1);color:#4c6040;padding:30px 22px;box-shadow:20px 0 80px #071a1888;border-right:3px double #b99b5b}.public-navigation[hidden]{display:none}.public-navigation nav{display:grid;gap:4px}.public-navigation nav>a{display:flex;align-items:center;gap:12px;font-size:13px;min-height:42px;padding:9px 12px;border-radius:3px}.public-navigation nav>a:hover{background:#385b3e;color:#f8e8bd}.public-navigation .icon{width:19px;height:19px}.public-navigation-close{position:absolute;right:12px;top:9px;border:0;background:none;font-size:27px;color:#47643e}.public-navigation .nav-caption{font-size:10px;margin:13px 12px 20px}@media(max-width:760px){.public-navigation{top:64px}}@media(max-width:540px){}@media(max-width:380px){.game-shell .topbar{gap:8px}.game-shell .topbar-left{gap:8px}.game-shell .topbar .mobile-menu{width:34px;height:34px;flex-basis:34px;min-width:34px}.game-shell .topbar-right{gap:8px}.game-shell .topbar-right .icon-button{width:30px;height:34px}.game-shell .topbar .language{min-width:30px}.game-shell .mobile-wordmark{font-size:14px;letter-spacing:1px}}
.dragon-motion-rig.legend-dragon{max-width:625px;max-height:625px;width:min(48vw,625px);height:min(48vw,625px)}.village-council[open]{max-height:390px}.village-council[open] .council-content{max-height:310px}@media(min-width:761px){.village-council[open]{top:360px;bottom:auto;max-height:min(390px,calc(100svh - 545px))}.village-council[open] .council-content{max-height:min(310px,calc(100svh - 625px));min-height:95px}}@media(max-width:760px){.dragon-motion-rig.legend-dragon{width:min(90vw,470px);height:min(90vw,470px)}.village-council[open]{max-height:65svh}.village-council[open] .council-content{max-height:50svh}}
.city-stage .city-building.building-card{width:154px;height:154px}.city-sprite[data-food-art="13"]{background-image:url("../images/logistics/barn.webp");background-size:contain;background-position:center}.city-sprite[data-food-art="14"]{background-image:url("../images/logistics/granary.webp");background-size:contain;background-position:center}
.supply-hero{display:grid;grid-template-columns:1fr minmax(220px,38%);gap:25px;align-items:center;overflow:hidden;background:linear-gradient(135deg,#153a2e,#273c2b);color:#f4e6bc}.supply-hero h2{color:#f4d69c}.supply-hero p{color:#d7dfc8}.supply-hero .eyebrow,.supply-hero a{color:#ead198}.supply-art{position:relative;min-height:270px}.supply-art img{position:absolute;object-fit:contain;bottom:0;height:260px;width:55%;left:0;filter:drop-shadow(0 12px 10px #0005)}.supply-art img+img{left:auto;right:-10px;width:75%;height:220px}.convoy-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.convoy-grid label{display:grid;gap:6px;font-size:12px}.convoy-grid input,.convoy-grid select{width:100%;min-width:0;min-height:44px;padding:9px;border:1px solid #ac9970;background:#f7eedb;border-radius:4px;color:#253a2c;font:inherit}.convoy-grid label:nth-child(-n+2){grid-column:span 2}[data-convoy-form]>.btn{margin-top:20px}[data-convoy-form]>small{display:block;line-height:1.9}[data-convoy-quote]{color:#355e39;font-weight:600;line-height:2}.convoy-row{border-top:1px solid #b6a071;padding:18px 0}.convoy-row p{overflow-wrap:anywhere}.convoy-row time{display:block;margin:8px 0}.convoy-row h3{font-size:17px}
@media(max-width:650px){.supply-hero{grid-template-columns:1fr}.supply-art{min-height:200px}.supply-art img{height:210px}.supply-art img+img{height:190px}.convoy-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.convoy-grid label:nth-child(-n+2){grid-column:1/-1}}

.city-supply-road{position:absolute;inset:0;pointer-events:none;z-index:1;fill:none;stroke:#b69d65;stroke-width:28;stroke-linecap:round;opacity:.65;filter:drop-shadow(0 1px 2px #756b48)}

@media(max-width:760px){.city-stage .city-queue{top:auto;bottom:190px;right:12px;width:142px;max-height:220px;overflow:auto}.city-stage .city-queue summary{font-size:10px;padding:11px}.city-stage .city-queue .queue-list{max-height:160px;overflow:auto}}
.travel-estimate{padding:14px 18px;background:#ede0bb;border:1px solid #b29a63;border-left:3px solid #638059;border-radius:4px;color:#304c37;overflow-wrap:anywhere}.travel-estimate p{margin:4px 0;font-size:12px;line-height:1.9}.travel-estimate small{display:block;line-height:1.9}

.city-building[hidden]{display:none!important}.city-stage[data-site="woodland"] .civilization-atmosphere{filter:hue-rotate(22deg)}.city-stage[data-site="highland"] .city-terrain{filter:saturate(.85) contrast(1.05)}.city-stage[data-site="riverplain"] .river-light{opacity:.85}
.staff-member-link{display:inline-block;color:#315a3b;font-weight:600;text-decoration:underline;text-underline-offset:4px;padding:7px 0}.staff-member-heading{display:flex;justify-content:space-between;gap:18px;align-items:center}.staff-member-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:24px 0}.staff-member-facts dt{font-size:13px;color:#66694e}.staff-member-facts dd{font-size:16px;line-height:1.8;color:#2d4832;margin:5px 0 0;overflow-wrap:anywhere}.staff-owned-towns{display:grid;gap:9px;list-style:none;padding:0;margin:15px 0 24px}.staff-owned-towns li{display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;background:#b4ae7d26;padding:10px 14px;border-radius:7px}.staff-reset-result label{min-width:0;width:100%;margin:15px 0}.staff-reset-result input{width:100%;font-size:14px}.staff-mail-pending{padding:12px 16px;background:#e7d9b8;border-left:3px solid #ab8b43}.staff-panel .staff-member-actions label{min-width:0;flex:1 1 190px}.auth-form [data-recovery-form]{display:grid;gap:17px;margin:18px 0}.auth-form [data-recovery-form][hidden]{display:none}.auth-form [data-recovery-form] label{display:grid;gap:7px;font-size:15px}.auth-form>[data-recovery-help]+.btn{margin-top:18px}@media(max-width:760px){.staff-member-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.staff-member-facts dd{font-size:15px}.staff-panel .staff-member-actions{display:grid;grid-template-columns:1fr}.staff-member-heading{align-items:flex-start}.staff-member-heading h2{overflow-wrap:anywhere}}@media(max-width:380px){.staff-member-facts{grid-template-columns:1fr}}

/* Town defence summaries stay compact over the scene; full details use normal page flow. */
.city-heading .city-defence-badges{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0;max-width:340px;pointer-events:auto;text-shadow:none}
.city-defence-badges>a{display:inline-flex;align-items:center;gap:6px;min-height:44px;max-width:100%;padding:5px 9px;border:1px solid #c6ad6e;border-radius:6px;background:#15382ef2;color:#fff0cc;font-size:13px;line-height:1.45;text-decoration:none;box-sizing:border-box;overflow-wrap:anywhere}
.city-defence-badges .icon{width:17px;height:17px;flex:none}.city-defence-badges b{font-variant-numeric:tabular-nums;color:inherit}
.city-defence-badges .city-incoming-badge{background:#833f23;border-color:#efba73;color:#fff5df;animation:city-threat-glow 2s ease-in-out 3}
.city-defence-badges .city-forces-badge{background:#173f5a;color:#e4f4ff;touch-action:manipulation}
.city-defence-badges .city-forces-badge.is-threatened{background:#833f23;border-color:#efba73;color:#fff5df;animation:city-threat-glow 2s ease-in-out 3}
.city-force-counts{display:flex;align-items:center;flex-wrap:wrap;column-gap:6px;row-gap:2px;min-width:0}.city-force-count{max-width:100%;overflow-wrap:anywhere}.city-force-divider{opacity:.65}.city-forces-badge:focus-visible{outline:2px solid #f1cd75;outline-offset:3px}
@media(prefers-reduced-motion:reduce){.city-defence-badges .city-forces-badge{animation:none}}
.city-defence-badges .city-movement-badge{font-size:12px}
.city-battle-panel.panel{position:relative;z-index:1;max-width:1160px;margin:22px auto;padding:0;background:#f0e5ca;color:#2d4938;border:1px solid #ad955e;scroll-margin-top:90px}
.city-battle-panel>summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-height:54px;padding:14px 20px;list-style:none;cursor:pointer;font-size:16px}
.city-battle-panel>summary::-webkit-details-marker{display:none}.city-battle-panel>summary>span:first-child{display:flex;align-items:center;gap:9px;flex:1 1 220px}.city-battle-panel>summary>span:last-child{margin-left:auto}.city-battle-panel>summary .icon{width:21px;height:21px}.city-battle-panel>summary>b{font-variant-numeric:tabular-nums}
.city-threat-count{background:#b15b28;color:white;padding:3px 9px;border-radius:14px;font-size:13px;font-weight:600}
.city-battle-content{padding:4px 24px 24px;max-width:none}.city-battle-content p{font-size:16px;line-height:1.85;color:#344f3d}.city-battle-content h2{font-size:21px;margin:25px 0 12px}.city-battle-actions{display:flex;gap:10px;flex-wrap:wrap;margin:18px 0}.city-battle-actions>.btn{white-space:normal}
.city-battle-row{padding:15px 0;border-top:1px solid #a58c5d66;overflow-wrap:anywhere}.city-battle-row>header,.city-battle-row>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.city-battle-row>header time{font-size:13px}.city-battle-row>time{display:block;font-weight:600;margin:8px 0}.city-battle-row.is-incoming{border-left:3px solid #b7622d;padding-left:14px}.city-battle-row p{margin:7px 0}.city-battle-loot>.report-resource-grid{max-width:600px}.city-integrity-result b{color:#814523}.siege-rules{margin:16px 0;border:1px solid #b69f69;border-radius:6px;padding:12px 16px}.siege-rules>summary{cursor:pointer;font-weight:600;min-height:32px;display:flex;align-items:center}.siege-rules p{font-size:16px;line-height:1.85}
@keyframes city-threat-glow{50%{box-shadow:0 0 0 3px #e9a34b55}}
@media(max-width:760px){.city-heading .city-defence-badges{max-width:100%;gap:4px;margin:4px 0}.city-defence-badges>a{padding:4px 6px;font-size:12px;gap:4px}.city-integrity-badge>span{display:none}.city-defence-badges .city-movement-badge{display:none}.city-battle-panel.panel{margin:16px 12px;max-width:none}.city-battle-panel>summary{padding:12px 14px;font-size:15px;gap:8px}.city-battle-panel>summary>span:first-child{flex-basis:190px}.city-battle-content{padding:0 16px 18px}.city-battle-actions>.btn{flex:1 1 160px;text-align:center}.city-battle-row>header{align-items:flex-start}.city-battle-row>header time{width:100%}.siege-rules{padding:10px 12px}}
@media(prefers-reduced-motion:reduce){.city-defence-badges .city-incoming-badge{animation:none}}

.city-ruin-notice .btn{margin:8px 10px 0 0}.city-stage[data-city-ruined] [aria-disabled=true]{cursor:default;opacity:.6}.city-defence-badges>span.city-incoming-badge{display:inline-flex;align-items:center;min-height:44px;padding:6px 10px;border-radius:6px;font-size:14px;color:#fff3d7}

.is-city .workspace-body>.city-battle-panel.panel,.is-city .workspace-body>.logistics-panel.panel{max-width:none;margin:22px 24px}@media(max-width:760px){.is-city .workspace-body>.city-battle-panel.panel,.is-city .workspace-body>.logistics-panel.panel{margin:16px 12px}}

/* Realm activation and compact growth administration. */
.activation-steps{list-style:none;padding:0;display:grid;gap:12px;margin:24px 0}.activation-steps li{padding:12px 16px;border:1px solid #bda06077;border-radius:10px;color:#786d51;background:#eadfbd66}.activation-steps .is-complete{color:#245439;background:#dce8d6}.activation-actions{display:grid;gap:16px;margin-top:22px}.activation-actions .btn{text-align:center}.growth-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:20px 0}.growth-tabs a{padding:12px 18px;border:1px solid #bda060;border-radius:12px;color:#f2dfa7;text-decoration:none}.growth-tabs a[aria-current=page]{background:#dfc580;color:#153a2a}.referral-steps{list-style:none;padding:0;display:grid;gap:10px}.referral-steps li{border-left:4px solid #b38c38;background:#eee1bd;color:#51422d;padding:12px 16px;border-radius:8px}.referral-steps .is-complete{border-color:#477451;background:#dfe8d8;color:#2c5039}.growth-admin-tabs .growth-admin-form{gap:18px}.growth-admin-tabs .growth-card{margin-bottom:24px}.growth-log-row{overflow-wrap:anywhere}.growth-log-row td{padding:14px}.growth-review-list{display:grid;gap:18px}.growth-review-list form{padding:18px;border:1px solid #bda06077;border-radius:12px;flex-wrap:wrap}.growth-review-list input[type=password]{max-width:300px}@media(max-width:640px){.growth-tabs{display:grid;grid-template-columns:1fr 1fr}.growth-tabs a{text-align:center;padding:11px 8px;font-size:15px}.activation-chamber .auth-art{min-height:210px}.growth-admin-tabs .growth-admin-form{grid-template-columns:1fr}.growth-review-list form{display:grid;grid-template-columns:1fr}}

.defence-level-badge{display:grid;place-items:center;min-width:52px;padding:6px 10px;border:1px solid #d8b765;border-radius:10px;background:#163d2de8;color:#f4dfa1;font-size:16px;font-weight:700}.city-defence-site:not(.empty-plot) .plot-ground{opacity:0}.city-defence-site[data-defence-state=built] .building-illustration{background:none!important}

.city-outgoing-badge{display:inline-flex;color:#bfe4ff;background:#173f5a;padding:6px 10px;border-radius:6px}.city-battle-row.is-outgoing{border-left:3px solid #449ac9;padding-left:14px}.city-defence-next{margin:18px 0;padding:14px;border:1px solid #bda060;border-radius:10px}.realm-march-routes{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden;z-index:4}.march-route{fill:none;stroke-width:2;stroke-dasharray:4 6;opacity:.8;animation:march-dash 2s linear infinite}.march-route.is-incoming{stroke:#eb805e}.march-route.is-outgoing{stroke:#65c6ed}.march-route.is-returning{stroke:#9edb8d}.march-legend{position:absolute;left:14px;bottom:14px;z-index:8;max-width:calc(100% - 28px);padding:6px 9px;border-radius:6px;background:#133b2cdd;color:#f5e7c6;font-size:12px;pointer-events:none}@keyframes march-dash{to{stroke-dashoffset:-20}}@media(prefers-reduced-motion:reduce){.march-route{animation:none}}

@media(max-width:760px){.march-legend{top:82px;bottom:auto;max-width:180px;font-size:11px;line-height:1.4}.city-defence-next .city-battle-actions{display:grid;grid-template-columns:1fr}.city-outgoing-list .city-battle-row .btn{margin-top:8px}}

/* Compact route information; native details remains usable without JavaScript. */
.realm-stage .march-legend{pointer-events:auto;padding:0;max-width:calc(100% - 28px)}
.march-legend>summary{display:none;cursor:pointer;list-style:none;width:44px;height:44px;align-items:center;justify-content:center;color:#f5e7c6;border:1px solid #c4a66c;border-radius:50%;background:#173e30}
.march-legend>summary::-webkit-details-marker{display:none}.march-legend>summary span{display:grid;place-items:center;border:1.5px solid currentColor;border-radius:50%;width:23px;height:23px;font-family:serif;font-size:18px;font-weight:700;line-height:1}
.march-legend-copy{display:flex;flex-wrap:wrap;gap:12px;padding:8px 12px}.march-legend-copy>span{display:flex;align-items:center;gap:6px}.march-legend-copy i{width:18px;border-top:2px dashed;display:inline-block}.route-incoming{color:#ef786d}.route-outbound{color:#80c7ff}.route-returning{color:#8fd69b}
@media(max-width:760px){.realm-stage .march-legend{top:82px;bottom:auto;left:14px;max-width:44px;background:transparent}.march-legend>summary{display:flex}.march-legend .march-legend-copy{position:absolute;top:50px;left:0;display:grid;gap:10px;width:max-content;max-width:calc(100vw - 60px);padding:12px;background:#173e30f5;border:1px solid #b59a63;border-radius:10px;font-size:13px;box-shadow:0 8px 20px #0005}.march-legend:not([open]) .march-legend-copy{display:none}}

/* Selected town context and compact, editable supply presets. */
.profile-town-list .profile-town-identity{display:flex;align-items:center;flex-wrap:wrap;gap:6px 9px;min-width:0}
.profile-town-list .profile-town-name{font-weight:400;white-space:normal;overflow-wrap:anywhere}
.profile-town-list .is-viewed .profile-town-name{font-weight:750;color:#234e37}
.profile-town-list li.is-viewed{background:#d9dfc64d;border-radius:5px;padding-inline:8px}
.profile-town-list .profile-town-badge{font:600 11px/1.5 var(--sans,Arial,sans-serif);padding:2px 7px;border:1px solid #526e46;border-radius:20px;background:#e0e7d3;color:#284c32;white-space:nowrap}
.profile-town-list .profile-town-badge.is-playing{background:#f1deb0;border-color:#a98a48;color:#5a4824}
.profile-town-list .profile-town-coordinates{font-weight:400;flex:none;align-self:center}
.convoy-selection{min-width:0;margin:20px 0;padding:16px;border:1px solid #bbab7c;border-radius:8px}
.convoy-selection legend{padding:0 8px;font-weight:700}.convoy-selection>small{display:block;margin:8px 0 14px;font-size:13px;line-height:1.6;color:#566146}
.convoy-presets{display:flex;flex-wrap:wrap;gap:8px}.convoy-presets .btn{min-height:44px;min-width:64px;padding:8px 14px;font-size:14px}
.convoy-presets [aria-pressed=true]{background:#294f3b;color:#fff1ca;border-color:#294f3b}
.convoy-presets button:disabled{opacity:.5;cursor:default}.convoy-grid.convoy-crew-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.convoy-summary{margin:18px 0;padding:16px 18px;background:#e3e8d5;border-left:4px solid #365f43;border-radius:6px;overflow-wrap:anywhere}
.convoy-summary strong{font-size:16px}.convoy-summary p{margin:8px 0;font-size:14px}.convoy-summary [data-ready=false]{color:#81441d}.convoy-summary [data-ready=true]{color:#294f3b;font-weight:600}
.convoy-cargo-list{margin:14px 0}.convoy-cargo-list>div{display:grid;grid-template-columns:minmax(100px,140px) 1fr;gap:12px;margin:8px 0}.convoy-cargo-list dt{color:#59644a;font-weight:400}.convoy-cargo-list dd{margin:0;font-weight:600;overflow-wrap:anywhere}.convoy-row:target{outline:2px solid #967536;outline-offset:5px;scroll-margin-top:90px}
@media(max-width:650px){.convoy-grid.convoy-crew-grid label{grid-column:auto}.convoy-selection{padding:12px}.convoy-presets .btn{flex:1;min-width:50px}.convoy-cargo-list>div{grid-template-columns:1fr;gap:3px}.profile-town-list li{gap:10px}.profile-town-list .profile-town-badge{font-size:10px}}

.convoy-selection .convoy-grid label{grid-column:auto}

.convoy-selection input,.convoy-selection select{font-size:16px}.convoy-selection legend{font-size:16px}

/* March clocks and city links remain readable inside the mobile defence modal. */
.march-clock{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px;margin:8px 0}.march-departure,.march-window{display:block}.march-town-link{font:inherit;white-space:normal;overflow-wrap:anywhere}.march-clock>time{font-variant-numeric:tabular-nums}.city-battle-row>div>b{min-width:0}

.reinforcement-tracking,.reinforcement-group,#support-dispatch{scroll-margin-top:95px}
.reinforcement-tracking{margin-bottom:22px}
.reinforcement-row-heading,.reinforcement-town-filter{display:flex;align-items:center;flex-wrap:wrap;justify-content:space-between;gap:10px}
.reinforcement-row-heading>h2,.reinforcement-row-heading>h3{margin:0;overflow-wrap:anywhere;min-width:0}
.reinforcement-row-heading>.badge{white-space:normal}
.reinforcement-town-filter{justify-content:flex-start;margin:18px 0}
.reinforcement-town-filter label{display:flex;align-items:center;flex-wrap:wrap;gap:8px;min-width:0}
.reinforcement-town-filter select{min-height:44px;max-width:100%;font:inherit;color:#253a2c;background:#f7eedb;border:1px solid #ac9970;border-radius:4px;padding:6px}
.reinforcement-group{border-top:1px solid #b6a071;padding:16px 0 4px;margin-top:12px}
.reinforcement-group>h3{margin:0 0 12px}
.reinforcement-row p{margin:6px 0}
.reinforcement-row .reinforcement-eta time{display:inline;font-weight:700}
.reinforcement-row form{margin-top:12px}
.reinforcement-row form .btn{white-space:normal;max-width:100%}
.reinforcement-history{border-top:1px solid #b6a071;margin-top:10px;padding-top:14px}
.reinforcement-history summary{cursor:pointer;font-weight:700}



/* assets/css/realm-footer.css */
/* The same footer is outside the content panel on every public and game page. */
body:has(>.public-main){display:flex;flex-direction:column;min-height:100svh}
.public-main{flex:1 0 auto}
.game-shell .workspace{display:flex;flex-direction:column}
.game-shell .workspace-body{flex:1 0 auto;padding-bottom:32px!important}
.game-shell:is(.is-city,.is-world,.is-store,.is-season,.is-mission,.is-story) .workspace-body{padding-bottom:0!important}
.realm-footer{display:block;flex:0 0 auto;width:100%;margin:0;border-top:1px solid #b79b574d;background:#0b211b;color:#ccd0bb;font-size:12px;line-height:1.7}
.realm-footer-inner{box-sizing:border-box;width:min(1440px,100%);margin-inline:auto;padding:24px clamp(18px,3vw,48px);display:flex;align-items:center;justify-content:space-between;gap:24px}
.realm-footer-brand{min-width:0;flex:0 1 410px}
.realm-footer-brand>a{display:inline-block;color:#edda9f;font-size:15px;font-weight:600;letter-spacing:2px;text-decoration:none}
.realm-footer-brand>small{display:inline-block;margin-left:10px;color:#c3b98e;font-size:11px;white-space:nowrap}
.realm-footer-brand>p{margin:5px 0 0;color:#bcc5b3;font-size:12px}
.realm-footer nav{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:0 14px}
.realm-footer nav>a{display:inline-flex;align-items:center;min-height:44px;color:#e1cf9d;text-decoration:none;white-space:nowrap;font-size:12px}
.realm-footer a{scroll-margin-block:115px}
.realm-footer a:hover{color:#fff0bd;text-decoration:underline;text-underline-offset:5px}
.realm-footer a:focus-visible{outline:2px solid #e6c56b;outline-offset:4px;border-radius:2px}
.dock-footer-clearance{height:calc(110px + env(safe-area-inset-bottom,0px));flex:0 0 auto;background:#0b211b}
@media(max-width:760px){
 .realm-footer-inner{padding:22px 16px;display:block}
 .realm-footer-brand{margin-bottom:12px}
 .realm-footer nav{justify-content:flex-start;column-gap:18px}
 .realm-footer-brand>a{font-size:14px}
 .dock-footer-clearance{height:calc(100px + env(safe-area-inset-bottom,0px))}
}


/* assets/css/founding.css */
/* A settlement scene, using the shared game navigation and geographical renderer. */
.founding-page{--settle-gold:#e8cd88;--settle-muted:#b6c4ad;max-width:1440px;margin:0 auto 38px;color:#f3e7c9}
.founding-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:3px 0 24px}
.founding-heading .eyebrow{font-size:10px;letter-spacing:2px;color:#dcc37e}
.founding-heading h1{font-family:var(--serif);font-size:clamp(26px,2.7vw,40px);font-weight:500;line-height:1.5;letter-spacing:0;margin:7px 0}
.founding-heading p{font-size:13px;line-height:1.9;color:var(--settle-muted);margin:0}
.founding-world-badge{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;min-width:144px;max-width:170px;padding:14px 16px;border:1px solid #d6bc7045;border-radius:8px;background:#102c24;font-size:16px;color:#e6d39a}
.founding-world-badge>span{width:100%;text-align:center;font-size:9px;letter-spacing:1px;color:#aabd9e}
.founding-layout{display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:22px;align-items:start}
.founding-map.realm-stage{height:690px;min-height:590px;border:1px solid #bfa5658c;border-radius:14px;box-shadow:0 20px 60px #071b1455}
.founding-map .realm-viewport{border-radius:13px}
.founding-map .realm-world>canvas{width:4096px;height:2664px}
.founding-map-caption{position:absolute;z-index:5;top:23px;left:22px;max-width:220px;color:#fff0cc;pointer-events:none;text-shadow:0 2px 12px #10271f}
.founding-map-caption .eyebrow{display:block;font-size:9px;letter-spacing:1.4px;color:#f4dda3}
.founding-map-caption strong{display:block;font-family:var(--serif);font-size:23px;font-weight:500;margin-top:5px}
.founding-map-caption small{display:block;font-size:10px;margin-top:4px;color:#e2e5c2}
.founding-map .realm-compass{top:22px;right:18px;width:140px;grid-template-columns:repeat(3,44px);gap:4px}
.founding-map .realm-compass a{width:44px;height:44px}
.founding-map .realm-camera{bottom:20px;right:20px;z-index:14}
.founding-map .realm-camera button{width:44px;height:44px;min-height:44px}
.founding-map .realm-overview{right:20px;bottom:176px}
.founding-map .realm-marker{appearance:none;min-width:0;min-height:0;padding:0;background:transparent;border:0;cursor:pointer;color:#f7e5b5;font:inherit;touch-action:manipulation}
.founding-map .realm-marker[data-world-type=land]{opacity:1}
.founding-map .realm-marker[data-world-type=land]:before{content:'';position:absolute;left:50%;bottom:11px;width:7px;height:7px;border:1px solid #fff0bba1;border-radius:50%;background:#f8dc8659;transform:translateX(-50%);box-shadow:0 0 10px #ffe1a22b}
.founding-map .realm-marker:not(.realm-village) .realm-name{opacity:0;transition:opacity .15s}
.founding-map .realm-marker:hover .realm-name,.founding-map .realm-marker:focus-visible .realm-name,.founding-map .realm-marker.realm-selected .realm-name{opacity:1}
.founding-map .realm-selected{z-index:16}
.founding-map .realm-selected:after{border-width:3px;background:#f4d27b38;box-shadow:0 0 22px #ffe2929c}
.founding-map .realm-selected[data-world-type=water]:after,.founding-map .realm-selected[data-world-type=forest]:after,.founding-map .realm-selected[data-world-type=mountain]:after,.founding-map .realm-selected.realm-village:after{border-color:#efaf91;box-shadow:0 0 18px #ee9b7759}
.founding-map-legend{position:absolute;left:18px;bottom:20px;z-index:6;display:flex;flex-direction:column;gap:8px;padding:11px 14px;background:#15372de8;border:1px solid #c3a46266;border-radius:6px;color:#ead6a0;font-size:10px;pointer-events:none}
.founding-map-legend span{display:flex;align-items:center;gap:8px}
.founding-map-legend i{display:block;width:8px;height:8px;border-radius:50%;background:#f2da92;box-shadow:0 0 7px #ecd38266}
.founding-map-legend .occupied{background:#cd946c;box-shadow:none}
.founding-details{display:flex;flex-direction:column;gap:16px;min-width:0}
.founding-civilization,.founding-form{padding:23px;border:1px solid #a58e584a;border-radius:12px;background:linear-gradient(145deg,#1a3c30,#102c24);box-shadow:0 12px 35px #081c1526}
.founding-civilization{display:grid;grid-template-columns:46px 1fr;gap:10px 13px;position:relative;overflow:hidden}
.founding-civilization:before{content:'';position:absolute;width:190px;height:190px;border-radius:50%;background:radial-gradient(circle,#e9c77a16,transparent 70%);right:-70px;top:-40px;pointer-events:none}
.founding-civilization-icon{display:grid;place-items:center;width:46px;height:54px;border:1px solid #c6a8668a;border-radius:8px 8px 18px 18px;color:#edcf80;background:#c8a25a12}
.founding-civilization-icon .icon{width:27px;height:27px}
.founding-civilization .eyebrow{font-size:9px;letter-spacing:1px;color:#afbd9d}
.founding-civilization h2{font-family:var(--serif);font-size:27px;font-weight:500;color:#f2d894;line-height:1.2;margin:2px 0 4px}
.founding-civilization strong{font-size:11px;font-weight:500;color:#e2d3a7}
.founding-civilization p{grid-column:1/-1;margin:4px 0 0;font-size:11px;line-height:1.95;color:#b8c8b2}
.founding-civilization>small{grid-column:1/-1;font-size:10px;line-height:1.8;color:#92aa95}
.founding-saved{grid-column:1/-1;display:flex;gap:5px;align-items:center;width:max-content;padding:3px 8px;border:1px solid #86b5863d;border-radius:20px;font-size:9px;color:#b8d5a4;background:#91bd7e09}
.founding-saved .icon{width:12px;height:12px}
.faction-1 .founding-civilization-icon{color:#b6df9e;border-color:#94b775}.faction-2 .founding-civilization-icon{color:#bacbd9;border-color:#91a5b3}
.founding-form{display:flex;flex-direction:column;gap:10px}
.founding-form>.eyebrow{font-size:9px;letter-spacing:1.5px;color:#c6b887;margin-bottom:5px}
.founding-form label{font-size:13px;font-weight:500;color:#eadbb4}
.founding-form .textbox{box-sizing:border-box;width:100%;height:49px;background:#0e261f;border:1px solid #8c885757;border-radius:6px;color:#fff0cf;font-family:var(--font);font-size:14px;padding:11px 13px;max-width:100%}
.founding-form .textbox::placeholder{color:#83947f}
.founding-form .textbox:focus{outline:2px solid #d6bb7377;outline-offset:2px;border-color:#dbbf79}
.founding-name-help{font-size:10px;color:#91a88f;margin-top:-4px;line-height:1.6}
.founding-site{padding:15px 16px;margin-top:7px;border:1px solid #bb9f6059;border-radius:8px;background:#e4c37908}
.founding-site>span{display:flex;align-items:center;gap:7px;font-size:9px;letter-spacing:.6px;color:#bec3a0}
.founding-site>span .icon{width:15px;height:15px}
.founding-site output{display:block;font:500 30px/1.7 var(--serif);color:#f3db9e;letter-spacing:2px}
.founding-site output em{font-style:normal;color:#918b5c;font-size:18px;margin:0 9px}
.founding-site>strong{display:block;font-size:11px;font-weight:500;color:#c8daa5}
.founding-site p{font-size:10px;line-height:1.9;color:#9cb39a;margin:6px 0 0}
.founding-site.is-unavailable{border-color:#c0896b88;background:#bd69470b}.founding-site.is-unavailable>strong{color:#edb59b}
.founding-site-actions{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.founding-site-actions .btn{min-height:44px;padding:8px 7px;font-size:10px;line-height:1.5;color:#e3d5ae;border-color:#a791554f;border-radius:5px}
.founding-rules{border-top:1px solid #b59d5833;padding-top:14px;margin-top:4px;font-size:11px;line-height:1.9;color:#adbfa6}
.founding-rules strong{display:flex;gap:6px;align-items:center;font-size:11px;font-weight:500;color:#d9d5a7}
.founding-rules .icon{flex:0 0 15px;width:15px;height:15px;color:#b4d39d}
.founding-rules p{margin:5px 0;font-size:10px;color:#99af94}
.founding-rules a{font-size:10px;color:#e2c781;text-decoration:underline;text-underline-offset:3px}
.founding-live-status{font-size:11px;line-height:1.8;color:#edb496;margin:0}.founding-live-status:empty{display:none}
.founding-submit.btn{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:50px;margin-top:4px;padding:12px 15px;font-size:13px;border-radius:6px;background:linear-gradient(110deg,#f1d79a,#d4b36b);border-color:#e4c786;color:#263d2c}
.founding-submit.btn:disabled{opacity:.4;cursor:not-allowed;filter:saturate(.35)}
.founding-confirm-note{font-size:9px;text-align:center;color:#869e85;line-height:1.8}
.founding-noscript{padding:14px;margin:16px 0;background:#19382d;color:#ddcc9c;font-size:12px}
.founding-page :focus-visible{outline:2px solid #f2d78b;outline-offset:4px}
@media(min-width:1500px){.founding-layout{grid-template-columns:minmax(0,1fr) 380px}.founding-map.realm-stage{height:735px}}
@media(max-width:1050px){.founding-layout{grid-template-columns:minmax(0,1fr) 310px;gap:14px}.founding-civilization,.founding-form{padding:18px}.founding-map.realm-stage{height:720px}.founding-map-caption strong{font-size:20px}.founding-map-caption{left:16px;max-width:160px}.founding-map .realm-compass{right:12px;top:110px}}
@media(max-width:800px){.founding-layout{grid-template-columns:1fr}.founding-map.realm-stage{height:490px;min-height:490px}.founding-details{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:14px}.founding-civilization{align-self:start}.founding-map .realm-compass{top:18px}.founding-heading{gap:12px}.founding-world-badge{min-width:105px;max-width:125px;padding:10px;font-size:14px}.founding-world-badge>span{font-size:8px}}
@media(max-width:540px){.founding-heading{display:block;margin-bottom:18px}.founding-heading h1{font-size:27px}.founding-heading p{font-size:11px}.founding-world-badge{display:none}.founding-map.realm-stage{height:455px;min-height:455px;border-radius:10px}.founding-map-caption{left:15px;top:18px;max-width:165px}.founding-map-caption strong{font-size:20px}.founding-map-caption small{max-width:160px;font-size:9px}.founding-map .realm-compass{top:104px;right:10px;width:140px}.founding-map .realm-overview{right:12px;bottom:173px;width:106px}.founding-map .realm-overview canvas{width:94px;height:65px}.founding-map .realm-overview>span{font-size:5px}.founding-map .realm-camera{right:13px;bottom:16px}.founding-map-legend{left:12px;bottom:16px;font-size:9px;padding:10px}.founding-details{display:flex;flex-direction:column}.founding-civilization,.founding-form{padding:20px}.founding-civilization{width:100%;box-sizing:border-box}.founding-civilization h2{font-size:27px}.founding-civilization p{font-size:11px}.founding-site-actions .btn{font-size:11px}.founding-form .textbox{font-size:16px}.founding-submit.btn{font-size:14px;min-height:52px}.founding-form label{font-size:14px}}
@media(prefers-reduced-motion:reduce){.founding-map .realm-name{transition:none}}

.founding-form input.textbox:focus{background:#0b291f;color:#fff0cf;border-color:#e2c583;outline:2px solid #d6bb7377;outline-offset:2px}
.founding-site-actions button.btn.btn-outline{background:#143b2d;color:#f0dba4;border-color:#b1995c99;opacity:1}
.founding-site-actions button.btn.btn-outline:hover{background:#214e38;border-color:#e1c47f;color:#fff0c7}
@media(max-width:540px){.founding-map .realm-compass{top:116px}.founding-map .realm-overview{bottom:76px;right:12px}.founding-map .realm-camera{bottom:22px}}



/* assets/css/ui-coherence.css */
@font-face{font-family:'Townboran Sans';font-style:normal;font-weight:400 500;font-display:swap;src:url("../fonts/NotoSans-Regular.woff") format('woff')}
@font-face{font-family:'Townboran Sans';font-style:normal;font-weight:600 800;font-display:swap;src:url("../fonts/NotoSans-Bold.woff") format('woff')}
@font-face{font-family:'Townboran Thai';font-style:normal;font-weight:400 500;font-display:swap;src:url("../fonts/NotoSansThai-Regular.woff") format('woff')}
@font-face{font-family:'Townboran Thai';font-style:normal;font-weight:600 800;font-display:swap;src:url("../fonts/NotoSansThai-Bold.woff") format('woff')}
:root{--font:'Townboran Sans','Townboran Thai',Tahoma,sans-serif;--serif:Georgia,'Townboran Thai',serif}
/* Shared navigation and legacy server forms, after all feature styles. */
.header-cta-compact{display:none}
body.body .public-header{width:100%;max-width:none;height:72px;min-height:72px;margin:0;padding:0 clamp(18px,3vw,48px);display:flex;align-items:center;justify-content:space-between;flex-wrap:nowrap;gap:24px;box-sizing:border-box;background:#0b211df5;border-bottom:1px solid #b89a5355;position:relative;z-index:25}
body.body .masthead-brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1 1 auto}
body.body .masthead-brand>.icon-button{width:44px;height:44px;min-width:44px;flex:0 0 44px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1px solid #c2a76966;background:#102c24;color:#e9d294}
body.body .public-header .brand{min-width:0;margin:0;padding:0;flex:0 1 auto}
body.body .public-header .brand>span{font-size:21px;letter-spacing:1.4px;white-space:nowrap;color:#f4e4bd}
body.body .public-header .brand small{font-size:9px;letter-spacing:.5px;line-height:1.5;color:#b8c7b6}
body.body .public-header nav{display:flex;align-items:center;flex:0 0 auto;width:auto;margin:0;gap:22px;justify-content:flex-end;flex-wrap:nowrap}
html body.body .public-header nav>.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;width:auto;max-width:none;flex:0 0 auto;margin:0;padding:10px 18px;white-space:nowrap;line-height:1.5;background:#dec080;color:#102c23;border:1px solid #f1d393;font-size:12px}
body.body .public-header nav>.language{display:inline-flex!important;align-items:center;justify-content:center;margin:0;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;flex:0 0 44px;line-height:1;color:#eee1bb;border:1px solid #bda15e88}
body.body .public-header nav>a:not(.btn):not(.language){white-space:nowrap;font-size:12px;color:#e4d7b4}
body.body .staging-notice{position:relative;z-index:1;box-sizing:border-box;line-height:1.7;align-items:flex-start;gap:9px;padding:11px 18px;margin:0 0 20px;min-height:0;height:auto}
body.body .staging-notice>.icon{flex:0 0 16px;margin-top:2px}
body.body .staging-notice>span{min-width:0;overflow-wrap:anywhere}
body.body:has([data-landing]) .staging-notice{margin-bottom:0}
/* A consistent reading width and comfortable text rhythm for both policies. */
body.body .legal-folio{box-sizing:border-box;width:min(100%,960px);max-width:960px;margin:28px auto 48px;padding:clamp(24px,4vw,48px);text-align:left;border-radius:12px}
body.body .public-main>.legal-folio{width:min(calc(100% - 40px),960px)}
body.body .legal-folio h1{font-size:clamp(27px,3.2vw,40px);line-height:1.45;overflow-wrap:anywhere}
body.body .legal-folio h2{font-size:18px;margin:30px 0 12px;line-height:1.7}
body.body .legal-folio p,body.body .legal-folio li{font-size:14px;line-height:1.95;overflow-wrap:anywhere}
body.body .legal-folio .legal-tabs{gap:8px 12px;padding:14px 0;align-items:center}
body.body .legal-tabs>a{min-height:42px;display:inline-flex;align-items:center;padding:6px 12px;border:1px solid #a98c4a55;border-radius:5px;text-decoration:none}
body.body .legal-folio .legal-status{padding:16px 18px;font-size:13px;line-height:1.85;border-radius:6px}
/* Legacy controllers use the same workspace and footer as new game screens. */
.legacy-game-view .workspace-body>div.container>.content,.legacy-game-view .public-main>.container>.content{box-sizing:border-box;background:linear-gradient(145deg,#173b30,#0c2922);color:#e9dfbf;border:1px solid #a78b4e66;border-radius:12px;padding:28px;box-shadow:0 14px 35px #001b1625;text-align:left!important;font-size:14px;line-height:1.85;overflow-x:auto;margin-bottom:24px}
.legacy-game-view .content .cell{max-width:100%;padding:6px 8px;vertical-align:middle;overflow-wrap:anywhere}
.legacy-game-view .content .content{background:#15352c;color:#e8ddbc;border-color:#a78b4e55;padding:18px}
.legacy-game-view .content .section{border-color:#a78b4e66;padding-bottom:18px;margin-bottom:18px}
.legacy-game-view .content form{margin:14px 0 20px;max-width:100%}
.legacy-game-view .content form>div{margin-block:8px}
.legacy-game-view .content .textbox,.legacy-game-view .content .dropdown{box-sizing:border-box;min-height:42px;padding:9px 12px;max-width:100%;background:#09271f;color:#f0e5c5;border:1px solid #b4995e88;border-radius:5px;font:inherit;font-size:14px}
.legacy-game-view .content textarea.textbox{width:min(100%,680px);min-height:160px;line-height:1.8;resize:vertical}
.legacy-game-view .content .textbox:focus,.legacy-game-view .content .dropdown:focus{border-color:#f1cd7d;outline:2px solid #f1cd7d55;outline-offset:2px;background:#0b3026}
.legacy-game-view .content input.numeric{width:110px;min-width:76px}
.legacy-game-view .content .button{box-sizing:border-box;min-height:44px;max-width:100%;padding:10px 18px;background:#dfbf7b;border:1px solid #f2d59a;color:#16382b;border-radius:5px;font:inherit;font-size:13px;cursor:pointer;white-space:normal}
.legacy-game-view .content a.link,.legacy-game-view .content a.small{color:#ecd08b;font-size:inherit;text-decoration:underline;text-underline-offset:3px;line-height:1.8}
.legacy-game-view .content .module{max-width:100%;background-color:#224b38;border-radius:8px;overflow:hidden}
.legacy-game-view .content .module>img{max-width:100%;height:auto;object-fit:contain}
.legacy-game-view .content table{border-collapse:separate;border-spacing:0 8px}
.legacy-game-view .content td,.legacy-game-view .content th{padding:8px 10px;vertical-align:top}
.legacy-game-view .page-heading{gap:16px;margin-bottom:26px}
/* No cuts, masks or independently transformed wing layers. */
.dragon-art-surface{position:absolute;inset:0;filter:drop-shadow(0 16px 18px #00181099)}
.dragon-poster,.dragon-mesh,.dragon-breath{display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:contain}
.dragon-mesh{visibility:hidden;pointer-events:none}
.dragon-mesh-ready .dragon-mesh{visibility:visible}
.dragon-mesh-ready .dragon-poster{visibility:hidden}
.dragon-breath{overflow:visible;pointer-events:none}
.effects-off .dragon-fire,.motion-paused .dragon-fire{animation:none!important;opacity:0!important}
@media(max-width:900px){body.body .public-header nav{gap:14px}body.body .public-header nav>a[href*='#how-to-play']{display:none}}
@media(max-width:760px){
 body.body .public-header{height:64px;min-height:64px;padding:0 14px;gap:12px}
 body.body .masthead-brand{gap:9px}
 body.body .public-header .brand>span{font-size:17px;letter-spacing:.7px}
 body.body .public-header .brand small{font-size:8px;letter-spacing:0}
 body.body .public-header nav{width:auto;gap:8px}
 body.body .public-header nav>a:not(.btn):not(.language){display:none}
 html body.body .public-header nav>.btn{font-size:12px!important;min-height:44px;padding:10px 13px!important;white-space:nowrap;max-width:none}
 .header-cta-wide{display:none}.header-cta-compact{display:inline}
 body.body .public-header nav>.btn .icon{display:none}
 .game-shell .topbar{padding:0 12px!important;gap:8px!important;height:64px;min-height:64px}
 .game-shell .topbar-left{gap:8px;min-width:0}.game-shell .topbar-right{gap:5px;flex-shrink:0}
 .game-shell .mobile-wordmark{font-size:15px;letter-spacing:.5px;white-space:nowrap}
 .game-shell .topbar .icon-button{width:40px;height:40px;min-width:40px;flex:0 0 40px;padding:0;display:inline-flex;align-items:center;justify-content:center}
 .game-shell .topbar .language{width:36px;height:40px;padding:0;flex:0 0 36px}
 body.body .staging-notice{font-size:11px;padding:10px 14px}
 .legacy-game-view .workspace-body>div.container>.content,.legacy-game-view .public-main>.container>.content{padding:20px 16px;font-size:13px}
 .legacy-game-view .content .cell{padding:6px 5px}
 body.body .legal-folio{margin:18px auto 32px;padding:26px 20px}
 body.body .public-main>.legal-folio{width:calc(100% - 28px)}
 body.body .legal-folio p,body.body .legal-folio li{font-size:13px;line-height:1.95}
}
@media(max-width:360px){body.body .public-header{padding:0 10px;gap:7px}body.body .masthead-brand{gap:6px}body.body .public-header .brand>span{font-size:14px}body.body .public-header .brand small{font-size:7px}html body.body .public-header nav>.btn{padding:10px!important;font-size:11px!important}.game-shell .mobile-wordmark{font-size:13px}.game-shell .topbar{padding:0 8px!important}.game-shell .topbar-left{gap:5px}.game-shell .topbar-right{gap:2px}}
@media(prefers-reduced-motion:reduce){.dragon-fire{animation:none!important;opacity:0!important}}



/* assets/css/building-dialog.css */
/* The live game shares the preview's illustrated building vocabulary. */
.city-defence-layer{display:contents}
.city-defence-layer .city-fortification{pointer-events:none}
/* Same geometry as every empty construction plot. Camera transforms only the world. */
.city-stage .city-building.city-defence-site{z-index:1150;pointer-events:none}
.city-stage .city-defence-site .plot-plus,.city-stage .city-defence-site .building-info{pointer-events:auto}
.city-stage .city-defence-site .plot-plus{animation:none}
.city-stage .city-defence-site .building-illustration{pointer-events:none}
.city-stage .city-defence-site:hover .building-illustration,.city-stage .city-defence-site:focus-visible .building-illustration{transform:none;transition:none}
.city-stage .city-building.city-defence-site:focus-visible{outline:3px solid #ffe6a4;outline-offset:4px}
.city-defence-demo-form{display:grid;gap:16px}.city-defence-demo-form label{display:grid;gap:8px}.city-defence-demo-form input{box-sizing:border-box;max-width:160px;min-height:44px;padding:8px 12px;font:inherit}.city-defence-demo-form .btn{min-height:44px;white-space:normal}
.city-defence-panel .city-defence-card{display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);gap:28px;margin:0 0 26px;padding:24px;background:#173b2d;border:1px solid #b29a6255;border-radius:12px;color:#eee3c3}
.city-defence-panel .city-defence-card .unit-portrait{position:relative;display:grid;place-items:center;align-self:start;min-height:190px;padding:14px;border-radius:10px;background:radial-gradient(ellipse,#b79b4b30,transparent 72%),#102f24}
.city-defence-panel .city-defence-card .unit-portrait img{display:block;max-width:100%;width:180px;height:180px;object-fit:contain}
.city-defence-panel .city-defence-card .unit-stock{display:block;position:static;margin-top:8px;padding:5px 10px;color:#f3dfb1;background:#163929;border:1px solid #bfa16466;border-radius:6px;font-size:15px}
.city-defence-panel .city-defence-card .unit-card-copy{min-width:0;padding:0}
.city-defence-panel .city-defence-card h2{color:#f3dba5;font-size:25px;line-height:1.6;margin:8px 0 14px}
.city-defence-panel .city-defence-card p{color:#d1dbc1;line-height:1.85;font-size:16px}
.city-defence-panel .city-defence-card .unit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:20px 0}
.city-defence-panel .city-defence-card .unit-stats>div{padding:12px;border:1px solid #bca56744;border-radius:7px;background:#102f25}
.city-defence-panel .city-defence-card .unit-stats dt{color:#bdcfb7;font-size:14px;line-height:1.6}.city-defence-panel .city-defence-card .unit-stats dd{margin:5px 0 0;color:#f5e3b5;font-size:20px}
.city-defence-panel>.army-training{margin-top:24px;padding:20px;background:#143629;color:#dce3c6;border:1px solid #b39a5b55;border-radius:10px}
.city-defence-panel>.army-training h3{font-size:19px;line-height:1.7;color:#f1dca8}.city-defence-panel .wave-row{display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;padding:12px 0;border-top:1px solid #a8905b44;color:#e9debb}
@media(max-width:600px){.city-defence-panel .city-defence-card{grid-template-columns:minmax(0,1fr);gap:18px;padding:18px 14px}.city-defence-panel .city-defence-card .unit-portrait{min-height:140px}.city-defence-panel .city-defence-card .unit-portrait img{width:140px;height:140px}.city-defence-panel .city-defence-card h2{font-size:23px}.city-defence-panel>.army-training{padding:18px 14px}}
.building-art{position:relative;display:inline-block;width:160px;height:150px;isolation:isolate;vertical-align:middle}
.building-art>.city-sprite{position:absolute;inset:0;display:block;width:100%;height:100%;background-image:url("../images/city-buildings-lite.webp");background-size:400% 400%;background-position:var(--sprite-x) var(--sprite-y);background-repeat:no-repeat;filter:drop-shadow(0 12px 12px #00150e66)}
.building-art>.city-sprite[data-food-art="13"]{background-image:url("../images/logistics/barn.webp");background-size:contain;background-position:center}
.building-art>.city-sprite[data-food-art="14"]{background-image:url("../images/logistics/granary.webp");background-size:contain;background-position:center}
.building-art[data-art-faction="1"]>.city-sprite{filter:drop-shadow(0 12px 12px #00150e66) hue-rotate(38deg) saturate(.85)}
.building-art[data-art-faction="2"]>.city-sprite{filter:drop-shadow(0 12px 12px #00150e66) hue-rotate(140deg) saturate(.65) contrast(1.05)}
.building-art.building-art-mini{width:40px;height:38px}
.building-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1120px,calc(100vw - 48px));max-width:none;max-height:calc(100dvh - 48px);padding:0;border:1px solid #b69b62;border-radius:16px;background:#102e25;color:#f0e4c4;box-shadow:0 28px 100px #0009;font-family:var(--font);overflow:auto;scrollbar-color:#aa915a #122e25}
.building-dialog::backdrop{background:#021910bd;backdrop-filter:blur(5px)}
.building-dialog-header{position:sticky;top:0;z-index:4;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:20px 28px;background:#102c24f7;border-bottom:1px solid #ad925966;backdrop-filter:blur(12px)}
.building-dialog-header h2{font-family:var(--serif);font-size:26px;margin:4px 0 0;color:#f5dba4;line-height:1.5}
.building-dialog-header>button{display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;padding:0;font:28px/1 var(--font);border:1px solid #b79a6288;border-radius:50%;color:#f3dfaf;background:#1c3b30;cursor:pointer}
.building-dialog-header>button:focus-visible{outline:3px solid #f3cc7b;outline-offset:3px}
.building-dialog-body{padding:28px;min-height:180px}
.building-dialog-notice{position:relative;z-index:3;margin:20px 28px 0;padding:13px 18px;border:1px solid #8cae6c66;background:#234832;border-radius:8px;line-height:1.8;font-size:14px}
.building-dialog-notice.is-error{background:#4c2924;border-color:#ce9a7888;color:#ffe4cf}
.building-dialog[aria-busy="true"] .building-dialog-body{opacity:.65}
.building-dialog-body .building-management-heading,.building-dialog-body .page-toolbar{display:none}
.building-dialog-body .building-panel-fragment>.container{width:100%;max-width:100%;padding:0;margin:0}
.building-dialog-body .content{color:#efe2bf;font-size:15px;line-height:1.9}
.building-dialog-body .content>.resource-bar{margin-bottom:26px}
.building-dialog-body .module-lead-art{display:inline-flex;vertical-align:top;padding:16px!important;background:radial-gradient(ellipse,#c7a35e25,transparent 70%);border-radius:12px}
.building-dialog-body .module-lead-art>.building-art{width:210px;height:200px}
.building-dialog-body .module-lead-art+.cell{display:inline-block;max-width:calc(100% - 250px);min-width:0;vertical-align:top;padding:12px 18px!important}
.building-dialog-body .building-upgrade-card{display:grid;grid-template-columns:1fr auto;gap:20px;padding:22px;margin:0 0 28px;background:linear-gradient(120deg,#294932,#173b2c);border:1px solid #b19a6355;border-radius:10px;align-items:center}
.building-dialog-body .building-upgrade-card h2{font-size:22px;margin:8px 0 12px;color:#f3dba9}
.building-dialog-body .building-upgrade-card p{margin:8px 0;line-height:1.8}
.building-dialog-body .building-upgrade-card small{display:block;line-height:1.8}
.building-dialog-body .building-upgrade-card>p{grid-column:1/-1}
.building-dialog-body .level-upgrade-cost{overflow-wrap:anywhere}
.building-catalog-intro h2{font-family:var(--serif);font-size:28px;line-height:1.5;color:#f2d9a2;margin:8px 0 12px}
.building-catalog-intro p{font-size:15px;line-height:1.9;color:#c5c6a6;margin:0}
.building-wallet{display:flex;gap:15px 24px;flex-wrap:wrap;padding:18px 20px;margin:24px 0;background:#0a251e;border:1px solid #b29b5c44;border-radius:10px}
.building-wallet>span{display:flex;gap:10px;align-items:center;min-width:110px;font-size:12px;color:#bbc8ac}
.building-wallet .icon{width:25px;height:25px;color:#e6c37d}
.building-wallet b{display:block;font-size:18px;color:#f3e5bf;margin-top:3px}
.building-filters{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}
.building-filter{font:inherit;font-size:13px;line-height:1.6;min-height:42px;padding:8px 16px;border:1px solid #aa925a77;border-radius:20px;background:#102d23;color:#e2d4aa;cursor:pointer}
.building-filter[aria-pressed="true"]{background:#e1c17c;border-color:#f0d79e;color:#163825}
.building-catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.building-choice{display:flex;flex-direction:column;min-width:0;border:1px solid #a78c554f;border-radius:12px;overflow:hidden;background:linear-gradient(145deg,#244432,#123326);box-shadow:0 10px 24px #00170f44}
.building-choice[hidden]{display:none}
.building-choice-art{position:relative;display:grid;place-items:center;padding:18px;min-height:170px;background:radial-gradient(ellipse at 50% 75%,#dfb45c40,transparent 70%),linear-gradient(#334b2b55,#071e1255);border-bottom:1px solid #b19a5f33}
.building-choice-art>.building-art{width:185px;height:170px;transition:transform .25s ease}
.building-choice:hover .building-choice-art>.building-art{transform:translateY(-4px)}
.building-choice-count{position:absolute;right:12px;top:12px;padding:5px 9px;font-size:12px;border:1px solid #b3a06c66;border-radius:5px;background:#112c23dd;color:#e7ce94}
.building-choice-body{display:flex;flex-direction:column;gap:12px;padding:20px;flex:1}
.building-choice h3{font:600 20px/1.6 var(--serif);color:#f3daa3;margin:0}
.building-choice p{font-size:14px;line-height:1.85;color:#c7cdb3;margin:0;overflow-wrap:anywhere}
.building-choice-duration{display:flex;gap:8px;align-items:center;font-size:13px;color:#e2cf9b}
.building-choice-cost{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:13px;color:#e9ddba}
.building-choice-cost>span{display:inline-flex;gap:7px;align-items:center}.building-choice-cost .icon{width:19px;height:19px}.building-choice-cost .is-short{color:#ffbd97}
.building-prerequisites{padding:0;margin:0;display:grid;gap:6px;list-style:none;font-size:12px;line-height:1.8}
.building-prerequisites li{display:flex;align-items:center;gap:6px}.building-prerequisites .icon{width:16px;height:16px;flex:0 0 16px}.building-prerequisites .is-met{color:#c3d4a2}.building-prerequisites .is-unmet{color:#d6b990}
.building-choice p.building-choice-status{font-size:12px;line-height:1.8;color:#cfbf96;margin-top:auto}
.building-choice form{margin:0!important}.building-choice .btn{width:100%;justify-content:center;gap:10px;min-height:46px;white-space:normal}.building-choice .btn:disabled{opacity:.45;cursor:not-allowed;filter:saturate(.2)}
.building-slot-notice{display:flex;gap:16px;align-items:center;border:1px solid #b6a27166;background:#3e4629;padding:18px;border-radius:8px;line-height:1.8;margin:24px 0}.building-slot-notice>div{flex:1}.building-slot-notice p{margin:6px 0 0}.building-slot-notice form{margin:0}
.information-page{box-sizing:border-box;width:min(100%,1080px);margin:0 auto 40px}
.public-main>.information-page{width:min(calc(100% - 48px),1080px);padding-top:32px}
.information-page>.page-heading{margin:0 0 30px;gap:20px}
.information-page .release-timeline{box-sizing:border-box;width:100%;max-width:none;margin-inline:0;padding-left:30px;gap:28px}
.information-page .about-game{max-width:none;margin:0}
.site-guide{margin-top:28px!important}.site-guide>p{margin:16px 0 24px}.site-guide .table-scroll{margin:22px 0}
.guide-grid{gap:24px!important}.guide-card{padding:26px!important}.guide-card h2{margin-bottom:14px}.guide-card p+p{margin-top:16px}
.workspace-body>.panel+.panel{margin-top:26px}
@media(max-width:900px){.building-catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.building-dialog-body .building-upgrade-card{grid-template-columns:1fr}.building-dialog-body .building-upgrade-card>p{grid-column:auto}}
@media(max-width:600px){.building-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:12px}.building-dialog-header{padding:16px;gap:12px}.building-dialog-header h2{font-size:23px}.building-dialog-body{padding:18px 16px}.building-dialog-notice{margin:16px 16px 0}.building-catalog-grid{grid-template-columns:1fr;gap:20px}.building-choice-art{min-height:150px}.building-choice-art>.building-art{height:155px;width:170px}.building-choice-body{padding:20px}.building-catalog-intro h2{font-size:25px}.building-wallet{padding:16px;gap:14px 20px}.building-wallet>span{min-width:calc(50% - 15px)}.building-filters{gap:8px}.building-filter{font-size:12px;padding:8px 12px}.building-dialog-body .module-lead-art{width:100%;justify-content:center}.building-dialog-body .module-lead-art+.cell{max-width:100%;display:block;padding:16px 0!important}.building-dialog-body .resource-bar{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.building-slot-notice{align-items:flex-start;flex-wrap:wrap}.building-slot-notice form{width:100%}.building-dialog-body .building-upgrade-card{padding:18px}.public-main>.information-page{width:calc(100% - 32px);padding-top:24px}.information-page .release-timeline{padding-left:22px;margin-inline:0}.information-page .release-entry:before{left:-29px}.guide-card{padding:23px!important}}
@media(prefers-reduced-motion:reduce){.building-choice-art>.building-art{transition:none;transform:none!important}}

.military-advice[hidden]{display:none!important}

.special-building-copy{display:inline-block;max-width:calc(100% - 250px);vertical-align:top;padding:18px!important}.special-building-copy h2{font-size:23px;margin-bottom:14px;color:#f2dca9}.special-building-copy p+p{margin-top:18px}.special-building-actions{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.food-building-facts{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:24px 0}.food-building-facts>div{padding:16px;background:#09261d;border:1px solid #c0a66b44;border-radius:8px}.food-building-facts dt{color:#c4c9a9}.food-building-facts dd{margin:8px 0 0;font-size:20px!important;font-weight:600;color:#f2dca9}@media(max-width:600px){.special-building-copy{display:block;max-width:none;width:100%;padding:12px 0!important}.food-building-facts{grid-template-columns:1fr}}

.activity-report-detail{box-sizing:border-box;margin-top:28px;padding:26px;background:#102e25;color:#f0e4c4;border:1px solid #a8905955;border-radius:10px}.activity-report-detail :is(h3,p,td){color:#f0e4c4}.activity-report-detail .report-resource-grid li{color:#e8d7ae}.activity-report-detail>h3{font-size:25px;margin-bottom:14px}.activity-report-detail>time{display:block;margin-bottom:24px;color:#b8c9aa}.report-field{padding:18px 0;border-top:1px solid #ad975c44}.report-field h4{font-size:14px;line-height:1.8;margin:0 0 12px;color:#d9c895}.report-field>div{font-size:15px;line-height:1.9;color:#efdfba}.report-resource-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;margin:0;padding:0}.report-resource-grid li{padding:14px;border:1px solid #b39a5b55;border-radius:8px;background:#143226}.activity-report-detail .report-resource-grid b{display:block;margin-top:8px;color:#f3dfac;font-size:16px;line-height:1.8}.report-unit-table{width:100%;border-collapse:collapse}.report-unit-table td{padding:10px;border-bottom:1px solid #ad975c33}.report-unit-table td:last-child{text-align:right}.inbox-intelligence>.panel-heading{flex-wrap:wrap;gap:18px;margin-bottom:18px}.inbox-intelligence>p{margin-bottom:22px}.inbox-report-link{padding:18px!important;margin-top:12px}.inbox-report-link.is-unread{border-left:3px solid #e6c27a}.battle-outcome{font-size:22px!important;color:#ebd18f!important;margin:24px 0!important}@media(max-width:600px){.activity-report-detail{padding:18px 16px}.report-resource-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.report-resource-grid li{padding:12px 8px;font-size:13px!important;overflow-wrap:anywhere}.activity-report-detail>h3{font-size:21px}.report-field{padding:18px 0}}

/* The command marker remains above the front rampart, without changing world geometry. */
.city-stage .city-building.empty-plot:not(.city-defence-site){z-index:1100}
.city-stage .city-prop.city-watchtower{width:180px;height:264px;pointer-events:none}
.city-watchtower .city-sprite[data-fortification-art]{position:relative;z-index:1;background-image:url("../images/fortifications/watchtower-stone-v2.webp");background-position:center;background-size:100% 100%;filter:none}
.city-stage .city-defence-site[data-defence-state=built] .defence-level-badge{position:absolute;left:50%;bottom:46px;transform:translateX(-50%);width:max-content;min-width:44px;padding:2px 7px;font-size:14px;line-height:1.5}

.city-defence-panel .city-defence-card .fort-position{background:#102f25;color:#eee3c3;border:1px solid #b29a6277;margin-bottom:14px}
.city-defence-panel .fort-position h3{color:#f3dba5}
.city-defence-panel .fort-upgrade-cost{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,90px),1fr));gap:8px;margin:14px 0}
.city-defence-panel .fort-upgrade-cost>div{padding:8px;border:1px solid #bfa16455;border-radius:6px}
.city-defence-panel .fort-upgrade-cost dd{margin:3px 0 0;font-weight:700;color:#f5e3b5}
.city-defence-panel .fort-upgrade-cost small{display:block;font-weight:400;color:#ffcaad}
.city-defence-panel .fort-upgrade-cost .fort-cost-short{border-color:#e8a47d99}
.city-defence-panel .city-defence-card .fort-upgrade-blocked{color:#ffcaad;margin:12px 0}
.city-defence-panel .fort-position button:disabled{cursor:not-allowed;opacity:.72;background:#3c4b40;color:#d9dece}

.city-defence-panel .fort-position .fort-upgrade-cost small{color:#c6d4c3}
.city-defence-panel .fort-position .fort-upgrade-cost .fort-short-count{color:#ffd2b5;font-weight:700}
.city-defence-panel .fort-position .fort-upgrade-blocked{border-inline-start:3px solid #d9a079;background:#1e382e;padding:10px 14px;border-radius:5px;text-align:start}
.city-defence-panel .fort-position .fort-upgrade-blocked ul{margin:.4rem 0 0;padding-inline-start:1.2rem;line-height:1.55}
.city-defence-panel .fort-position button.btn:disabled{opacity:1;background:#758078;color:#101b15;border-color:#89948b;box-shadow:none;cursor:not-allowed}


/* assets/css/readability.css */
/* Increase body copy without resizing headings or the illustrated world. */
html body.body{font-size:17px}
html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) :is(p,li,td,th,dd){font-size:17px;line-height:1.9}
html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) :is(label,dt,.muted,.news-meta,.text-link,.level-upgrade-cost){font-size:16px;line-height:1.8}
html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) small{font-size:14px;line-height:1.85}
html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) .eyebrow{font-size:13px;line-height:1.7;letter-spacing:1.2px}
html body.body :is(.textbox,.dropdown,.filter-input,textarea,select){font-size:17px;line-height:1.65}
html body.body :is(.btn,.button){font-size:16px;line-height:1.65}
html body.body :is(.btn-small,.btn.btn-small){font-size:15px;min-height:42px}
html body.body .nav-link{font-size:16px;min-height:44px;line-height:1.7}
html body.body .realm-footer :is(p,a,small){font-size:14px;line-height:1.9}
html body.body .legal-folio :is(p,li){font-size:17px;line-height:2}
html body.body .civilization-card :is(p,li){font-size:16px}
html body.body .civilization-card .eyebrow{font-size:13px}
html body.body .building-dialog :is(.building-choice-status,.building-choice-cost,.building-prerequisites){font-size:15px;line-height:1.85}
html body.body .building-dialog .building-catalog-intro p{font-size:17px}
html body.body .legacy-game-view .content{font-size:17px;line-height:1.9}
html body.body .legacy-game-view .content a.small{font-size:15px}
html body.body .topbar .language,html body.body .public-header .language{font-size:15px}
/* Scene overlays have limited space: retain their positions with readable copy. */
html body.body .city-stage .city-resources :is(.resource-name,small){font-size:13px;line-height:1.6}
html body.body .city-stage .resource-rate{font-size:13px}
html body.body .city-stage .city-hint{font-size:13px;line-height:1.7}
html body.body .city-stage .city-queue :is(p,small){font-size:14px;line-height:1.8}
html body.body .village-council :is(p,small){font-size:15px;line-height:1.9}
html body.body .village-council .council-strength>span{font-size:14px}
html body.body .game-dock a>span{font-size:13px;line-height:1.5}
html body.body .world-detail :is(p,dt,dd){font-size:15px}
html body.body .town-modal :is(p,li,dd){font-size:16px}
html body.body .army-roster :is(input,select){font-size:17px}
html body.body .staging-notice,html body.body .demo-notice{font-size:14px;line-height:1.7}
@media(max-width:760px){
 html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) :is(p,li,td,th,dd){font-size:16px;line-height:1.9}
 html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) :is(label,dt,.muted,.text-link){font-size:15px}
 html body.body :is(.public-main,.workspace-body,.building-dialog,.town-modal) small{font-size:14px}
 html body.body :is(input.textbox,textarea.textbox,select.dropdown){font-size:16px}
 html body.body .legal-folio :is(p,li){font-size:16px;line-height:2}
 html body.body .city-stage .city-resources :is(.resource-name,small){font-size:12px}
 html body.body .city-stage .resource-rate{font-size:12px}
 html body.body .city-stage .city-hint{font-size:12px}
 html body.body .city-stage .city-queue :is(p,small){font-size:14px}
 html body.body .game-dock a>span{font-size:12px}
 html body.body .village-council :is(p,small){font-size:15px}
 html body.body .village-council .btn{white-space:normal}
 html body.body .building-dialog :is(.building-choice-status,.building-choice-cost,.building-prerequisites){font-size:15px}
}
.unit-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.unit-stats .unit-carry{grid-column:1/-1;border-top:1px solid #c4a76c44;padding-top:12px}.raid-carry-estimate{padding:16px 18px;border:1px solid #b9a26466;background:#244732;border-radius:8px;color:#f0dcab!important;margin:18px 0!important}

.town-modal-body{padding:28px 30px}.town-modal .profile-town-list{margin:18px 0 26px}.town-modal .profile-actions{gap:12px;margin-top:24px}.town-modal .profile-actions .btn{min-height:44px;white-space:normal}@media(max-width:600px){.town-modal-body{padding:22px 20px}.town-modal .profile-actions .btn{flex:1 1 45%}}

/* Public landing copy and legacy form hints also share the comfortable reading size. */
html body.body .landing-experience :is(.landing-copy>p,.legend-section-heading>p,.legend-dragon-copy>p,.lore-scroll p,.lore-lead,.civilization-story-card p,.legend-questions p,.beginner-card p,.beginner-bua p){font-size:17px;line-height:1.95}
html body.body .landing-experience .legend-questions summary{font-size:17px;line-height:1.8;padding-block:20px}
html body.body .legacy-game-view .content :is(.cell,.inline){line-height:1.85}
html body.body .village-council summary small{font-size:13px}
html body.body .bua-header-help{flex-shrink:0}
html body.body .topbar-right{gap:9px}
@media(max-width:760px){html body.body .landing-experience :is(.landing-copy>p,.legend-section-heading>p,.legend-dragon-copy>p,.lore-scroll p,.lore-lead,.civilization-story-card p,.legend-questions p,.beginner-card p,.beginner-bua p){font-size:16px;line-height:1.9}html body.body .topbar-right{gap:5px}html body.body .topbar .world-state{display:none}}

@media(max-width:390px){html body.body .bua-header-help{display:none}}



/* assets/css/bua-guide.css */
/* One companion: her complete portrait floats outside a speech card, above the fixed controls. */
.starter-quick{color:#bdf8cc!important}.starter-quick-label{display:block;color:#c9e6c4;font-size:14px;line-height:1.7;margin:6px 0 12px}
.bua-launcher,.bua-guide{position:fixed;left:var(--bua-left,16px);right:auto;bottom:var(--bua-bottom,100px);z-index:75;box-sizing:border-box;max-width:calc(100vw - 24px)}
.bua-launcher{display:flex;gap:10px;align-items:center;width:var(--bua-width,330px);min-height:48px;border:1px solid #c2ad77;border-radius:12px;padding:5px 12px 5px 6px;color:#fff0cd;background:linear-gradient(120deg,#143b2ffb,#0a281ffb);box-shadow:0 8px 25px #001c1966;font:600 14px/1.6 var(--font);cursor:pointer;text-align:left}.bua-launcher img{height:44px;width:37px;object-fit:cover;object-position:top;border-radius:8px;background:#45644a;flex:none}.bua-launch-spark{color:#ffe6a5;font-size:18px;margin-left:auto}.bua-launcher.is-open,.bua-launcher[hidden],.bua-guide[hidden]{display:none!important}
.bua-guide{width:var(--bua-width,350px);z-index:80;color:#f8edda;filter:drop-shadow(0 10px 20px #00171066);animation:bua-arrive .35s ease-out}.bua-speech{box-sizing:border-box;max-height:var(--bua-height,360px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#c4ae76 #123328;border:1px solid #baa972;border-radius:12px;padding:14px 16px;background:linear-gradient(145deg,#173d31fc,#0b291ffc);box-shadow:inset 0 1px #f8dda92b}
.bua-heading{display:flex;align-items:center;gap:10px;padding:0 0 10px;margin-bottom:10px;border-bottom:1px solid #c6b47c44}.bua-avatar{display:block;width:44px;height:52px;flex:0 0 44px;object-fit:cover;object-position:50% 4%;border-radius:9px;background:#52744a;box-shadow:0 0 14px #cbbc6933}.bua-heading>span{flex:1;min-width:0}.bua-heading b{font-family:var(--serif);color:#ffe3a1;font-size:21px}.bua-heading small{display:block;color:#c3d6c5;font-size:12px;line-height:1.6}.bua-close{display:grid;place-items:center;border:1px solid #dbc38c88;color:#ffe9c3;border-radius:50%;background:#061f18;flex:0 0 36px;width:36px;height:36px;padding:0;font:24px/1 var(--font);cursor:pointer}
.bua-tabs{display:flex;gap:7px;margin-bottom:11px}.bua-tabs button{flex:1;min-width:0;padding:7px 6px;min-height:38px;border:1px solid #a79b6d66;border-radius:7px;background:#09271e;color:#d1dfcb;font:500 13px/1.6 var(--font);cursor:pointer}.bua-tabs [aria-selected=true]{background:#d8bd7d;color:#183b2b;border-color:#f0d99b}.bua-tabs [hidden]{display:none}.bua-chapter{display:flex;justify-content:space-between;gap:8px;font-size:11px;line-height:1.7;color:#c4d4b9}.bua-progress{height:3px;margin:6px 0 12px;background:#c3bb8b33;border-radius:4px;overflow:hidden}.bua-progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,#93c69c,#ffe3a1);transition:width .6s ease}
html body.body .bua-step-copy h2{font-size:18px;line-height:1.6;color:#fff0cc;margin:0 0 8px;letter-spacing:0}html body.body .bua-step-copy p{font-size:16px;line-height:1.8;color:#e1eadb;margin:0}.bua-wait{display:flex;gap:9px;align-items:center;margin:12px 0;padding:10px;background:#061f1888;border-radius:7px;font-size:14px;color:#d2e2cd}.bua-wait b{display:block;color:#ffe6ac;font-size:20px;font-variant-numeric:tabular-nums;letter-spacing:1px}.bua-hourglass{font-size:24px}
.bua-reserve{margin:13px 0 12px;padding:9px 0;border-block:1px solid #b6bc8a44;color:#c8dcc4;font-size:13px}.bua-reserve summary{display:flex;justify-content:space-between;gap:10px;cursor:pointer;list-style:none}.bua-reserve summary:before{content:'✦';color:#f2d595}.bua-reserve summary b{margin-left:auto;color:#ffe4aa;font-variant-numeric:tabular-nums}.bua-reserve p{font-size:14px!important;line-height:1.8!important;color:#c7dbc6!important;margin:10px 0!important}.bua-reserve [data-bua-resources],.bua-reward-preview{display:grid;grid-template-columns:1fr 1fr;gap:6px;font-size:13px}.bua-reserve [data-bua-resources] span,.bua-reward-preview span{padding:6px;border-radius:5px;background:#d3bf7826;color:#ffe5ab}.bua-reward-preview{margin-top:12px}
.bua-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:13px}.bua-actions .btn{font-size:14px!important;flex:1 1 170px;min-height:44px;padding:9px 11px;white-space:normal;line-height:1.7}.bua-explore{border:0;background:none;color:#dae5c9;font-size:13px;padding:9px 0;text-decoration:underline;text-underline-offset:4px;cursor:pointer}.bua-footnote{display:block;margin-top:10px;font-size:12px;line-height:1.8;color:#b9cdb3}.bua-explore-links{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 0 0}.bua-explore-links a{display:flex;align-items:center;gap:6px;border:1px solid #c9b27b66;padding:8px;border-radius:6px;font-size:13px;line-height:1.7;color:#f7e7bf}.bua-error{color:#ffd7b6;font-size:14px;line-height:1.7;margin:10px 0}
.bua-town .village-council{position:static!important;inset:auto!important;width:100%;max-width:none;max-height:none!important;background:transparent;border:0;box-shadow:none;backdrop-filter:none;margin:0;color:#f8ebd2}.bua-town .village-council>summary{display:none}.bua-town .village-council .council-content{padding:0;max-height:none!important;overflow:visible}.bua-town .village-council .council-strength{gap:7px}.bua-town .village-council .council-strength>span{font-size:12px}.bua-town .village-council .council-strength b{font-size:18px}.bua-town .village-council :is(p,small){color:#d0dfc9;font-size:15px!important;line-height:1.8!important}.bua-town .village-council h2{font-size:18px;color:#ffe2a5}.bua-town .city-development-advice{margin-block:14px}.bua-town .council-actions{display:flex;flex-wrap:wrap;gap:9px}.bua-town .military-advice{border-top:1px solid #c3b77c55;padding-top:14px;margin-top:14px}
/* A quiet pointer appears once per confirmed step, instead of an endless glow. */
.bua-point-target{outline:2px solid #f0d292!important;outline-offset:3px!important;scroll-margin-block:100px}
.bua-pointer{position:fixed;z-index:120;display:flex;flex-direction:column;align-items:center;gap:4px;box-sizing:border-box;pointer-events:none!important;user-select:none;animation:bua-point-appear .2s ease-out}
.bua-pointer[hidden]{display:none!important}.bua-pointer svg{align-self:flex-start;margin-left:calc(var(--point-x,86px) - 13px);width:27px;height:34px;fill:#fff8e8;stroke:#17392c;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 2px 2px #001b1755)}
.bua-pointer span{display:block;padding:4px 9px;border:1px solid #cdb77b;border-radius:8px;background:#173a2ff5;color:#fff1d1;font:600 13px/1.55 var(--font);text-align:center;max-width:100%;overflow-wrap:anywhere;box-shadow:0 2px 6px #001b1733}
.bua-pointer.points-down{flex-direction:column-reverse}.bua-pointer.points-down svg{transform:rotate(180deg)}
html body.body .bua-guide .bua-point-again{min-height:32px;padding:4px 1px;margin:0;border:0;background:none;color:#e6d3a2;font:500 13px/1.6 var(--font);text-decoration:underline;text-underline-offset:4px;cursor:pointer}.bua-point-again[hidden]{display:none!important}
@keyframes bua-point-appear{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){.bua-pointer{animation:none!important}}.effects-off .bua-pointer{animation:none!important}
/* Inside a modal, Bua occupies a footer row; she never covers the worker/build buttons. */
.bua-guide.bua-in-dialog{position:relative;inset:auto;width:100%;max-width:none;margin:0;z-index:auto;flex:0 0 auto;filter:none;animation:none}.bua-in-dialog .bua-speech{border-radius:0;border-width:1px 0 0;padding:12px 18px;max-height:min(31dvh,205px);overflow:auto;background:#10362bfC}.bua-in-dialog .bua-heading{float:left;width:64px;border:0;padding:0 10px 0 0;margin:0;flex-wrap:wrap;gap:0}.bua-in-dialog .bua-avatar{width:46px;height:52px;flex-basis:46px}.bua-in-dialog .bua-heading>span{display:none}.bua-in-dialog .bua-close{width:30px;height:30px;flex-basis:30px;position:absolute;top:10px;right:12px;background:#173f31}.bua-in-dialog .bua-step-copy{padding-left:64px;padding-right:34px}.bua-in-dialog .bua-step-copy h2{font-size:17px!important;margin-bottom:4px}.bua-in-dialog .bua-step-copy p{font-size:15px!important;line-height:1.7!important}.bua-in-dialog :is(.bua-tabs,.bua-chapter,.bua-progress,.bua-reserve,.bua-footnote,.bua-wait){display:none}.bua-in-dialog .bua-actions{padding-left:64px;margin-top:9px}.bua-in-dialog .bua-actions .btn{flex:0 1 auto;min-height:40px}.bua-in-dialog .bua-explore-links{clear:both}
.bua-short .bua-heading small,.bua-short .bua-chapter,.bua-short .bua-progress,.bua-short .bua-footnote{display:none}.bua-short .bua-heading{padding-bottom:7px;margin-bottom:7px}.bua-short .bua-avatar{height:38px}.bua-short .bua-actions{margin-top:9px}
@keyframes bua-arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@keyframes bua-target{50%{box-shadow:0 0 0 9px #eaca7812,0 0 22px #f2c56644}}
@media(max-width:760px){.bua-speech{padding:11px 12px}.bua-heading{gap:8px}.bua-heading small{display:none}.bua-heading b{font-size:20px}.bua-heading .bua-close{width:32px;height:32px;flex-basis:32px}.bua-avatar{width:37px;height:44px;flex-basis:37px}.bua-launcher{font-size:13px}.bua-launcher img{height:38px;width:32px}.bua-tabs button{font-size:12px}.bua-actions .btn{flex-basis:100%;font-size:14px!important}.bua-explore{font-size:13px}.bua-footnote{display:none}.bua-explore-links{grid-template-columns:1fr}.bua-in-dialog .bua-speech{padding:10px 12px;max-height:min(30dvh,190px)}.bua-in-dialog .bua-heading{width:48px;padding-right:4px}.bua-in-dialog .bua-step-copy{padding-left:48px;padding-right:27px}.bua-in-dialog .bua-actions{padding-left:48px;gap:8px}.bua-in-dialog .bua-actions .btn{min-height:40px;flex:1 1 auto;font-size:13px!important}.bua-header-help{width:34px!important;min-width:34px!important}}
.effects-off :is(.bua-guide,.bua-target){animation:none!important}.motion-paused :is(.bua-guide,.bua-target){animation-play-state:paused!important}@media(prefers-reduced-motion:reduce){.bua-guide,.bua-target{animation:none!important}.bua-progress i{transition:none}}

/* Keep the protruding portrait within the measured companion footprint. */
.bua-guide{width:var(--bua-width,440px);filter:none;overflow:visible}
.bua-portrait{position:absolute;left:-4px;bottom:-2px;width:138px;height:210px;object-fit:contain;object-position:bottom;pointer-events:none;z-index:2;filter:drop-shadow(0 5px 7px #00150e66)}
.bua-speech{position:relative;margin-left:105px;min-height:175px;padding:14px 16px 14px 22px;box-shadow:0 8px 26px #00171066,inset 0 1px #f8dda92b;overflow:auto}
.bua-speech:before{content:'';position:absolute;left:0;bottom:52px;width:10px;height:20px;background:#15392d;clip-path:polygon(100% 0,0 50%,100% 100%)}
.bua-heading{min-height:37px}.bua-heading small{font-size:12px}.bua-guide .bua-tabs{clear:both}.bua-guide .bua-tabs button{font-size:13px;line-height:1.65}
.bua-plan-intro{font-size:14px!important;line-height:1.8!important;color:#d0dfc9!important;margin:0 0 12px!important}.bua-plan{list-style:none;counter-reset:bua-plan;display:grid;gap:8px;padding:0;margin:0}.bua-plan li{counter-increment:bua-plan;position:relative;padding-left:27px}.bua-plan li:before{content:counter(bua-plan);position:absolute;left:0;top:9px;color:#efd59c;font-size:13px;font-variant-numeric:tabular-nums}.bua-plan button{display:block;width:100%;padding:9px 11px;border:1px solid #d2bd8559;border-radius:8px;background:#173e30;color:#f8eccb;text-align:left;font:400 14px/1.7 var(--font);cursor:pointer}.bua-plan b{display:block;font-size:15px;font-weight:600}.bua-plan small{display:block;font-size:12px;color:#c2d6be;margin-top:3px}.bua-plan button:hover{border-color:#efcf87;background:#204b37}.bua-plan button:disabled{opacity:.67;cursor:default;background:#0c2c22}.bua-plan button:focus-visible,.bua-tabs button:focus-visible{outline:2px solid #ffe0a0;outline-offset:3px}
.bua-guide.bua-in-dialog{display:flex;align-items:stretch;min-height:136px;background:#10362b;overflow:visible}.bua-in-dialog .bua-portrait{left:6px;bottom:0;width:92px;height:min(132px,100%);filter:none}.bua-in-dialog .bua-speech{flex:1;margin-left:94px;padding:12px 46px 12px 10px;min-height:136px;max-height:min(34dvh,225px);border-radius:10px 0 0;border-width:1px 0 0;box-shadow:none;overflow:auto}.bua-in-dialog .bua-speech:before{display:none}.bua-in-dialog .bua-heading{float:none;width:auto;min-height:0;padding:0;margin:0 0 5px}.bua-in-dialog .bua-heading>span{display:block}.bua-in-dialog .bua-heading b{font-size:16px}.bua-in-dialog .bua-heading small{display:none}.bua-in-dialog .bua-step-copy,.bua-in-dialog .bua-actions{padding-left:0;padding-right:0}.bua-in-dialog .bua-tabs{display:flex;gap:6px;margin:5px 0 8px}.bua-in-dialog .bua-tabs button{min-height:30px;font-size:12px;padding:3px 5px}.bua-in-dialog .bua-close{top:9px;right:9px}.bua-in-dialog .bua-step-copy h2{font-size:16px!important}.bua-in-dialog .bua-step-copy p{font-size:14px!important;line-height:1.75!important}.bua-in-dialog .bua-actions{margin-top:8px}.bua-in-dialog .bua-actions .btn{font-size:13px!important;min-height:38px;padding:7px 9px}.bua-in-dialog .bua-explore{display:none}
@media(max-width:760px){.bua-portrait{width:80px;height:112px;left:-4px;bottom:auto;top:-46px}.bua-speech{margin-left:14px;padding:11px 12px;min-height:170px}.bua-heading{padding-left:62px;min-height:43px}.bua-heading>span{align-self:center}.bua-heading .bua-close{margin-left:auto}.bua-speech:before{display:none}.bua-guide .bua-tabs button{font-size:12px;min-height:36px}.bua-guide.bua-short .bua-heading{min-height:43px}.bua-in-dialog .bua-portrait{top:auto;left:4px;bottom:0;width:68px;height:min(112px,100%)}.bua-in-dialog .bua-speech{margin-left:72px;min-height:136px;padding:9px 39px 9px 8px;max-height:min(35dvh,225px)}.bua-in-dialog .bua-heading{padding:0;min-height:0}.bua-in-dialog .bua-tabs{margin:3px 0 6px}.bua-in-dialog .bua-tabs button{font-size:11px;min-height:30px;padding:3px}.bua-in-dialog .bua-close{right:7px;top:8px}.bua-in-dialog .bua-plan b{font-size:14px}.bua-in-dialog .bua-step-copy p{font-size:14px!important}.bua-in-dialog .bua-actions{padding-left:0}.bua-in-dialog .bua-actions .btn{font-size:12px!important;flex:1 1 auto}}
@media(max-height:540px){.bua-guide:not(.bua-in-dialog) .bua-portrait{width:68px;height:104px;top:auto;bottom:0}.bua-guide:not(.bua-in-dialog) .bua-speech{margin-left:65px;padding:9px 12px}.bua-guide:not(.bua-in-dialog) .bua-heading{padding-left:0}}
.bua-portrait{max-height:calc(var(--bua-height,360px) + 12px)}.bua-short .bua-speech{min-height:0}.bua-in-dialog .bua-portrait{height:128px;max-height:100%}@media(max-width:760px){.bua-in-dialog .bua-portrait{height:108px}}

.bua-progress[hidden],.bua-reserve[hidden],.bua-count[hidden]{display:none!important}

.bua-launcher.bua-in-dialog{position:relative;inset:auto;width:100%;max-width:none;z-index:auto;margin:0;border-radius:0;flex:0 0 auto;padding:7px 18px;min-height:48px}.bua-launcher.bua-in-dialog img{width:34px;height:42px}

/* Compact launcher and preserved camera positioning. */
.bua-launcher:not(.bua-in-dialog){width:max-content;max-width:min(224px,var(--bua-width,224px));min-height:46px;gap:8px;padding:5px 10px 5px 6px;font-size:14px;line-height:1.55}
.bua-launcher:not(.bua-in-dialog) img{height:36px;width:30px}.bua-launcher:not(.bua-in-dialog) .bua-launch-spark{font-size:16px;margin-left:4px}
.bua-guide{width:var(--bua-width,390px)}.bua-guide:not(.bua-in-dialog) .bua-portrait{width:118px;height:180px}.bua-guide:not(.bua-in-dialog) .bua-speech{margin-left:85px;padding-left:18px}
.bua-guide.bua-obscured,.bua-launcher.bua-obscured{display:none!important}
.bua-hint-anchor{position:relative}.bua-target:is([data-realm-viewport],[data-city-viewport]):after{display:none}
@media(max-width:760px){.bua-launcher:not(.bua-in-dialog){max-width:min(204px,var(--bua-width,204px));font-size:13px}.bua-guide:not(.bua-in-dialog) .bua-portrait{width:80px;height:112px}.bua-guide:not(.bua-in-dialog) .bua-speech{margin-left:14px;padding-left:12px}}
@media(max-height:540px){.bua-guide:not(.bua-in-dialog) .bua-portrait{width:68px;height:104px}.bua-guide:not(.bua-in-dialog) .bua-speech{margin-left:65px}}

.bua-target:is([data-realm-viewport],[data-city-viewport]){animation:none!important;box-shadow:none!important;outline-offset:-4px!important}.bua-heading{position:sticky;top:0;z-index:3;background:#12362b}.bua-in-dialog .bua-heading{position:static}


/* assets/css/game-fx.css */
.game-motion-scene{isolation:isolate}.game-scene-motes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;opacity:.85}.game-scene-motes i{position:absolute;left:var(--mote-x);top:var(--mote-y);width:3px;height:3px;background:#fce4a0;border-radius:50%;box-shadow:0 0 12px #ffc65b;opacity:0;animation:game-mote var(--mote-time) ease-in-out var(--mote-delay) infinite;animation-play-state:paused}.game-scene-visible .game-scene-motes i{animation-play-state:running}.game-enter-card{opacity:0;transform:translateY(17px);transition:opacity .55s ease var(--enter-delay),transform .55s cubic-bezier(.2,.65,.2,1) var(--enter-delay)}.game-enter-card.game-entered{opacity:1;transform:translateY(0)}
.game-ripple-host{position:relative;overflow:hidden}.game-touch-ripple{pointer-events:none;position:absolute;z-index:3;width:8px;height:8px;background:#fff0caa0;border-radius:50%;transform:translate(-50%,-50%);animation:game-ripple .65s ease-out forwards}.game-build-complete .city-sprite{animation:game-built 1.9s ease-out!important}.game-build-complete:after{content:'✦';position:absolute;inset:-12px 0 auto;text-align:center;color:#ffe7a4;font-size:35px;pointer-events:none;animation:game-built-star 1.9s ease-out both}
.game-reward-banner{position:fixed;inset:15dvh 50% auto auto;transform:translateX(50%);width:min(560px,calc(100vw - 38px));padding:24px 28px;display:flex;align-items:center;gap:22px;z-index:180;pointer-events:none;border-block:1px solid #d1b36c;background:linear-gradient(100deg,#08271c00,#133b2af7 12%,#133b2af7 88%,#08271c00);box-shadow:0 12px 60px #061b1b55;color:#f8df9d;animation:game-reward 4.5s ease both}.game-reward-medallion{width:68px;height:68px;min-width:68px;display:grid;place-items:center;font-size:32px;border:1px solid #e1be6d;border-radius:50%;background:radial-gradient(circle,#e1be6d55,transparent 70%);box-shadow:0 0 25px #eac56933;color:#ffe7a4}.game-reward-banner small{font-size:10px;color:#bac5a5;letter-spacing:1.1px;line-height:1.7}.game-reward-banner strong{display:block;font-size:23px;line-height:1.6;font-family:var(--serif);font-weight:500}.game-reward-banner p{font-size:14px;line-height:1.85;color:#edd69f;margin-top:5px}
@keyframes game-mote{0%,100%{opacity:0;transform:translate(0,12px)}25%{opacity:.7}70%{opacity:.2;transform:translate(18px,-70px)}}@keyframes game-ripple{to{width:230px;height:230px;opacity:0}}@keyframes game-built{0%{filter:brightness(1) drop-shadow(0 8px 12px #0007)}25%{filter:brightness(1.65) drop-shadow(0 0 30px #ffd377)}100%{filter:brightness(1) drop-shadow(0 8px 12px #0007)}}@keyframes game-built-star{0%{opacity:0;transform:translateY(10px) scale(.7)}30%{opacity:1}100%{opacity:0;transform:translateY(-65px) scale(1.15)}}@keyframes game-reward{0%{opacity:0;transform:translate(50%,20px) scale(.96)}12%,82%{opacity:1;transform:translate(50%,0) scale(1)}100%{opacity:0;transform:translate(50%,-12px)}}
.effects-off :is(.game-scene-motes,.game-touch-ripple){display:none}.effects-off .game-enter-card,.motion-paused .game-enter-card{opacity:1;transform:none;transition:none}.effects-off .game-build-complete :is(.city-sprite),.effects-off .game-build-complete:after{animation:none!important}.effects-off .game-reward-banner{animation:none}.motion-paused .game-scene-motes i{animation-play-state:paused!important}
@media(max-width:760px){.game-reward-banner{padding:18px 20px;gap:13px;inset-block-start:13dvh}.game-reward-medallion{width:48px;height:48px;min-width:48px;font-size:26px}.game-reward-banner strong{font-size:21px}.game-reward-banner p{font-size:14px}}
@media(prefers-reduced-motion:reduce){.game-scene-motes,.game-touch-ripple{display:none}.game-enter-card{opacity:1;transform:none;transition:none}.game-reward-banner,.game-build-complete .city-sprite,.game-build-complete:after{animation:none!important}}


/* assets/css/opening-cinematic.css */
.opening-film{position:fixed;inset:0;width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;overflow:hidden;background:#031510;color:#f8e8c2;z-index:1000;outline:none}.opening-film::backdrop{background:#031510}.opening-film:not([open]){display:none}.opening-playing{overflow:hidden}.opening-stage{position:absolute;inset:0;overflow:hidden;isolation:isolate;background:#071b18;--egg-tilt:0deg;--egg-x:0px;--egg-y:0px;--crack:0;--hatch-opacity:1;--baby-y:20%;--baby-scale:.36;--baby-opacity:0}.opening-stage>div,.opening-stage>img,.opening-stage>canvas{pointer-events:none}
.opening-valley{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.32) saturate(.72);transform:scale(1.08)}.opening-night{position:absolute;inset:0;background:linear-gradient(0deg,#041e19d9,#071c1a55 65%,#081c27b8);opacity:var(--night,1)}.opening-moon{position:absolute;top:13%;right:22%;width:54px;aspect-ratio:1;border-radius:50%;background:#dedac2;box-shadow:0 0 80px 20px #e9d5a01c;opacity:.5}.opening-mist{position:absolute;inset:25% -30% -15%;opacity:.26;background:radial-gradient(ellipse at 30% 60%,#9db6a466 0,transparent 44%),radial-gradient(ellipse at 80% 80%,#90a99555,transparent 42%);filter:blur(30px);animation:opening-mist 23s ease-in-out infinite alternate}.opening-mist-near{inset:55% -40% -10%;opacity:.3;animation-direction:alternate-reverse;animation-duration:18s}.opening-dawn{position:absolute;inset:0;background:radial-gradient(ellipse at 28% 32%,#e3b56b77,transparent 68%);opacity:var(--dawn,0)}
.opening-hatch-scene{position:absolute;left:50%;top:43%;width:min(530px,78vw);aspect-ratio:1;opacity:var(--hatch-opacity);transform:translate(calc(-50% + var(--egg-x)),calc(-50% + var(--egg-y))) rotate(var(--egg-tilt));transform-origin:50% 79%;filter:drop-shadow(0 18px 15px #0008)}.opening-hatch-scene>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.opening-shell-piece{mask:url("../images/egg-shell-mask.svg") center/contain no-repeat;-webkit-mask:url("../images/egg-shell-mask.svg") center/contain no-repeat;z-index:3;transform-origin:50% 68%;will-change:transform}.opening-nest{mask:url("../images/egg-nest-mask.svg") center/contain no-repeat;-webkit-mask:url("../images/egg-nest-mask.svg") center/contain no-repeat;z-index:5}.opening-egg-interior{position:absolute;left:26%;top:27%;width:49%;height:49%;border-radius:52% 48% 45% 46%;background:radial-gradient(ellipse at 50% 30%,#493e20,#0c1712 66%);opacity:var(--interior-opacity,0);box-shadow:inset 0 0 28px #030b08}
.opening-newborn-window{position:absolute;inset:0;z-index:2;clip-path:polygon(0 0,100% 0,100% 81%,0 81%)}.opening-newborn{position:absolute;inset:0;z-index:2;transform:translateY(var(--baby-y)) scale(var(--baby-scale));transform-origin:50% 84%;opacity:var(--baby-opacity);will-change:transform,opacity}.opening-newborn img{width:100%;height:100%;object-fit:contain;transform:rotate(var(--baby-turn,0deg));transform-origin:55% 80%}.opening-cracks{position:absolute;inset:0;width:100%;height:100%;opacity:var(--crack);z-index:4;filter:drop-shadow(0 0 1px #e7b76d66)}.opening-cracks path{fill:none;stroke:#1d1c13;stroke-width:.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:190;stroke-dashoffset:var(--crack-dash,190)}
.opening-ground-shadow{position:absolute;left:50%;top:65%;width:min(360px,60vw);height:45px;transform:translate(-50%,-50%);border-radius:50%;background:#00120dda;filter:blur(17px);opacity:var(--hatch-opacity)}.opening-shell-dust{position:absolute;inset:0;z-index:6;opacity:var(--dust-opacity,0)}.opening-shell-dust i{position:absolute;left:49%;top:61%;width:4px;height:5px;background:#967b45;clip-path:polygon(0 10%,80% 0,100% 85%,15% 100%);transform:translate(var(--dust-x,0px),var(--dust-y,0px)) rotate(23deg)}.opening-shell-dust i:nth-child(2){left:42%;top:55%;transform:translate(calc(var(--dust-x)*-1.4),calc(var(--dust-y)*.8)) rotate(85deg)}.opening-shell-dust i:nth-child(3){left:55%;top:50%;transform:translate(calc(var(--dust-x)*1.6),calc(var(--dust-y)*1.3)) rotate(123deg)}.opening-shell-dust i:nth-child(4){left:45%;top:45%;transform:translate(calc(var(--dust-x)*-.7),calc(var(--dust-y)*1.5)) rotate(74deg)}.opening-shell-dust i:nth-child(5){left:58%;top:61%;transform:translate(calc(var(--dust-x)*2),var(--dust-y)) rotate(30deg)}.opening-shell-dust i:nth-child(6){left:38%;top:58%;transform:translate(calc(var(--dust-x)*-2),calc(var(--dust-y)*1.6)) rotate(105deg)}
.opening-time-passage{position:absolute;inset:0;z-index:5;display:flex;align-items:center;justify-content:center;gap:20px;background:radial-gradient(ellipse,#071c17ed,#071c17fa);opacity:var(--time-opacity,0);color:#ecd4a2}.opening-time-passage span{font:400 clamp(17px,2.2vw,25px)/1.9 var(--serif);letter-spacing:1px;text-align:center;max-width:70vw}.opening-time-passage i{width:45px;height:1px;background:#c7aa6d88}
.opening-flight{position:absolute;left:var(--flight-x,57%);top:var(--flight-y,48%);width:min(1200px,115vw);aspect-ratio:3/2;opacity:var(--flight-opacity,0);transform:translate(-50%,-50%) scale(var(--flight-scale,.65)) rotate(var(--flight-angle,0deg));filter:drop-shadow(0 14px 20px #0005);will-change:transform,left,top,opacity;z-index:3}.opening-flight-rig{position:absolute;inset:0;padding:0;overflow:visible}.opening-flight-rig img,.opening-flight-rig canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.opening-flight-rig img{inset:10%;width:80%;height:80%}.opening-flight-rig canvas{opacity:0}.opening-flight-rig.mesh-ready canvas{opacity:1}.opening-flight-rig.mesh-ready img{opacity:0}.opening-flight-shadow{position:absolute;left:var(--flight-x,50%);top:72%;width:250px;height:35px;transform:translateX(-50%) scale(var(--flight-scale,.65));background:#0008;border-radius:50%;filter:blur(19px);opacity:var(--flight-shadow,0)}
.opening-embers{position:absolute;inset:0;width:100%;height:100%;z-index:4}.opening-vignette{position:absolute;inset:0;z-index:5;background:radial-gradient(ellipse at 50% 43%,transparent 24%,#00110e66 82%,#000a)}.opening-film-grain{position:absolute;inset:0;z-index:6;opacity:.1;background-image:url("../images/opening-grain.svg");mix-blend-mode:soft-light}.opening-letterbox{position:absolute;inset:0;border-block:min(3dvh,26px) solid #020c0b;z-index:8}
.opening-caption{position:absolute;bottom:12%;left:50%;width:min(790px,88vw);text-align:center;transform:translateX(-50%);z-index:7;text-shadow:0 2px 18px #000,0 2px 4px #000}.opening-caption>span{display:block;color:#e5d4a8;font-size:12px;letter-spacing:2px;line-height:1.8;margin-bottom:9px}.opening-caption h2{font:400 clamp(24px,3vw,39px)/1.65 var(--serif);letter-spacing:0;color:#fff0cb;margin:0}.opening-caption p{font:400 17px/1.9 var(--font);color:#dbe4d6;margin:9px auto 0;max-width:640px}.opening-caption.is-changing{animation:opening-caption .5s ease both}.opening-stage[data-phase=time] .opening-caption,.opening-stage[data-phase=logo] .opening-caption{opacity:0}
.opening-wordmark{position:absolute;inset:0;z-index:7;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:var(--logo-opacity,0);text-align:center;transform:scale(var(--logo-scale,.97));background:radial-gradient(ellipse,#041b16a8,transparent 75%)}.opening-wordmark>span{font-size:30px;color:#dfc18b;margin-bottom:22px}.opening-wordmark b{font:400 clamp(38px,7vw,92px)/1.2 var(--serif);letter-spacing:clamp(3px,1vw,12px);color:#ffe6ac;text-shadow:0 4px 35px #bf8e3d44}.opening-wordmark p{font-size:14px;letter-spacing:2px;color:#d7ddc6;margin-top:20px}
.opening-bottom{position:absolute;bottom:max(5%,calc(env(safe-area-inset-bottom) + 16px));left:6%;right:6%;z-index:10;display:flex;justify-content:space-between;align-items:center;pointer-events:auto!important}.opening-bottom form{margin:0}.opening-skip{display:flex;align-items:center;gap:12px;border:1px solid #e6d9b555;border-radius:20px;background:#0a2119b8;color:#eae1c6;padding:6px 14px;font:400 12px/1.8 var(--font);cursor:pointer;min-height:34px}.opening-skip:hover{background:#244532;color:#fff0c8}.opening-skip:focus-visible{outline:2px solid #ffe2a5;outline-offset:4px}.opening-sequence{display:flex;align-items:center;gap:10px;font-size:10px;letter-spacing:2px;color:#c1cdb6}.opening-sequence i{display:block;width:80px;height:1px;background:linear-gradient(90deg,#f1cd8a var(--opening-progress,0%),#d3d5b533 0)}.opening-film.is-ending{opacity:0;transition:opacity .7s ease}.opening-playing :is(.hero-dragon-portrait,.hero-embers,.hero-dragon-fire,.hero-haze,.hero-sigil,.landing-story-image img){animation-play-state:paused!important}
.opening-film.is-still :is(.opening-mist,.opening-newborn){animation:none}.opening-film.is-still .opening-hatch-scene,.opening-film.is-still .opening-ground-shadow{opacity:0}.opening-film.is-still .opening-wordmark{opacity:1}.opening-film.is-still .opening-caption{display:none}
@keyframes opening-mist{to{transform:translateX(9%) translateY(-3%)}}@keyframes opening-caption{from{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%,0)}}
@media(max-width:600px){.opening-hatch-scene{width:min(500px,100vw);top:41%}.opening-caption{bottom:16%;width:88vw}.opening-caption>span{font-size:10px;letter-spacing:1px}.opening-caption h2{font-size:25px}.opening-caption p{font-size:16px;line-height:1.8}.opening-flight{width:145vw}.opening-wordmark p{font-size:12px;letter-spacing:1px}.opening-sequence{font-size:9px}.opening-bottom{bottom:max(5%,calc(env(safe-area-inset-bottom) + 14px));left:6%;right:6%}.opening-moon{width:39px}.opening-time-passage i{width:20px;flex:none}}
@media(max-height:500px){.opening-hatch-scene{width:65dvh;top:42%}.opening-flight{width:90dvh}.opening-caption{bottom:14%}.opening-caption h2{font-size:21px}.opening-caption p{font-size:14px;margin-top:3px}.opening-caption>span{display:none}.opening-wordmark b{font-size:45px}}
@media(prefers-reduced-motion:reduce){.opening-film *{animation:none!important;transition:none!important}}
/* Native video is a single precomposed mobile layer: no masks, blur stacks or WebGL redraw. */
.opening-native-video{display:none;position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#071b18}
.opening-native .opening-native-video{display:block;z-index:1;transform:none;filter:none;opacity:1}
.opening-native :is(.opening-valley,.opening-night,.opening-moon,.opening-mist,.opening-dawn,.opening-ground-shadow,.opening-hatch-scene,.opening-flight,.opening-flight-shadow,.opening-embers,.opening-vignette,.opening-film-grain,.opening-letterbox){display:none!important}
.opening-native .opening-stage{isolation:auto}.opening-native .opening-caption{z-index:7;transition:opacity .3s ease;animation:none;will-change:auto}.opening-native .opening-time-passage{display:none;background:transparent;opacity:1;z-index:6}.opening-native [data-phase=time] .opening-time-passage{display:flex}.opening-native .opening-wordmark{display:none;opacity:1;transform:none}.opening-native [data-phase=logo] .opening-wordmark{display:flex;animation:opening-native-logo 1s ease both}
.opening-load-status{position:absolute;bottom:9%;left:8%;right:8%;z-index:11;text-align:center;font:400 14px/1.8 var(--font);color:#e9e7d2;text-shadow:0 2px 5px #000}.opening-load-status:empty{display:none}.opening-play{position:absolute;left:50%;top:45%;transform:translate(-50%,-50%);z-index:12;min-height:48px;padding:12px 24px;border:1px solid #e7cd92;border-radius:24px;background:#123a2cf0;color:#ffebba;font:600 16px/1.6 var(--font);cursor:pointer}
.opening-sound{min-height:36px;border:1px solid #e6d9b555;border-radius:20px;padding:6px 13px;background:#0a2119d9;color:#eae1c6;font:400 13px/1.8 var(--font);cursor:pointer;white-space:nowrap}.opening-sound[aria-pressed=true]{border-color:#dfbe77;color:#ffe5a4}.opening-sound:focus-visible,.opening-play:focus-visible{outline:2px solid #ffe2a5;outline-offset:4px}.opening-bottom{gap:12px}.opening-sequence{margin:auto}.opening-play[hidden]{display:none}
.legend-hero .opening-replay{display:inline-flex;align-items:center;justify-content:center;gap:11px;min-height:52px;border:1px solid #d6ba7a99;border-radius:7px;background:linear-gradient(135deg,#193d31f5,#0c271ff2);padding:13px 24px;color:#ffe2a5;font:500 16px/1.7 var(--font);margin-top:14px;box-shadow:inset 0 1px #f8d69222;cursor:pointer;text-decoration:none}.legend-hero .opening-replay:hover{border-color:#f7d693;background:#244c37;box-shadow:0 4px 25px #142e2199}.legend-hero .opening-replay:focus-visible{outline:2px solid #ffe2a5;outline-offset:4px}.opening-play-icon{display:inline-grid;place-items:center;border:1px solid #ddc38777;border-radius:50%;width:25px;height:25px;font-size:17px;line-height:1;flex:none}.opening-replay [class=game-touch-ripple]{pointer-events:none}
@keyframes opening-native-logo{from{opacity:0}to{opacity:1}}
@media(max-width:900px),(pointer:coarse){.opening-film{height:100svh;max-height:100svh}.opening-native .opening-stage{height:100%;contain:layout paint}.opening-native .opening-native-video{backface-visibility:hidden}.opening-native .opening-caption{bottom:16%}.opening-sound{font-size:12px;padding:6px 11px}.opening-sequence{font-size:9px;gap:6px}.opening-sequence i{width:36px}.opening-bottom{left:5%;right:5%;gap:8px}.legend-hero .opening-replay{width:100%;max-width:320px;font-size:15px;min-height:50px;padding:12px 16px;box-sizing:border-box}.opening-film.is-still .opening-native-video{display:none}}
@media(max-height:500px){.opening-native .opening-caption{bottom:16%;width:80%}.opening-native .opening-caption h2{font-size:20px}.opening-native .opening-caption p{font-size:14px}.opening-native .opening-caption>span{display:none}.opening-native .opening-time-passage span{font-size:16px}.opening-load-status{bottom:5%}.opening-bottom{bottom:12px}}
@media(prefers-reduced-motion:reduce){.opening-native [data-phase=logo] .opening-wordmark{animation:none}.opening-sound{display:none}}

.opening-native-video{pointer-events:none}
.opening-film.is-still .opening-wordmark{display:flex!important}

/* A normal video page remains usable when dialog or animation support is unavailable. */
.prologue-player{max-width:1040px;margin:32px auto;padding:clamp(20px,4vw,42px);box-sizing:border-box}.prologue-player h1{font-size:clamp(28px,4vw,44px);line-height:1.5}.prologue-player p{font-size:17px;line-height:1.85}.prologue-player video{display:block;width:100%;max-height:70svh;margin:24px 0;border:1px solid #bba26d;border-radius:12px;background:#071c16}.prologue-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}.prologue-actions .btn{min-height:44px}.prologue-caption{color:#4b5946}
@media(max-width:760px){.prologue-player{margin:20px 12px;padding:20px 16px}.prologue-player p{font-size:16px}.prologue-actions .btn{width:100%;box-sizing:border-box}}


/* assets/css/landing-beginners.css */
.beginner-chapter{position:relative}.beginner-chapter .legend-section-heading>p{max-width:810px;line-height:1.95!important}.beginner-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px;margin-top:43px}.beginner-card{overflow:hidden;border:1px solid #b3a16e44;border-radius:12px;background:linear-gradient(145deg,#1c3e32,#102c24);box-shadow:0 15px 35px #061e181c}.beginner-card-art{position:relative;height:205px;overflow:hidden}.beginner-card-art:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,#15372b,transparent 65%)}.beginner-card-art img{width:100%;height:100%;object-fit:cover;transition:transform 1.3s cubic-bezier(.2,.6,.2,1)}.beginner-card:hover .beginner-card-art img{transform:scale(1.07)}.beginner-card-art>span{position:absolute;bottom:6px;left:24px;z-index:1;font:400 35px/1.2 Georgia,serif;color:#e0c58a}.beginner-card-copy{padding:19px 25px 29px}.beginner-card-copy h3{font-size:23px;line-height:1.6;font-weight:500;color:#f4e2b9;letter-spacing:0;margin-bottom:13px}.beginner-card-copy p{color:#c2ceb8;font-size:17px;line-height:1.95}.beginner-bua{display:flex;align-items:center;gap:38px;margin:55px 0 0;padding:26px 38px 0;border:1px solid #ad9b6644;border-radius:12px;background:radial-gradient(ellipse at 6% 100%,#bcac5450,transparent 65%),#16362a}.beginner-bua>img{flex:0 0 145px;width:145px;height:220px;object-fit:cover;object-position:top;align-self:flex-end;filter:drop-shadow(0 0 20px #d9c27c22)}.beginner-bua>div{padding-bottom:27px}.beginner-bua h3{font-size:26px;line-height:1.6;color:#f2dfaa;margin:6px 0 10px;font-weight:500}.beginner-bua p{color:#c8d0b8;font-size:17px;line-height:1.95}.beginner-glossary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;margin-top:45px;padding:30px 0;border-block:1px solid #b3a16e33}.beginner-glossary b{font-size:13px;line-height:1.8;color:#dfc88e;letter-spacing:1px}.beginner-glossary p{margin-top:11px;font-size:16px;line-height:1.95;color:#b8c6b0}
@media(max-width:950px){.beginner-grid{gap:17px}.beginner-card-copy{padding:17px 20px 24px}.beginner-card-copy h3{font-size:21px}.beginner-card-art{height:170px}.beginner-bua{gap:25px;padding:25px 26px 0}}
@media(max-width:700px){.beginner-grid{grid-template-columns:1fr;gap:24px;margin-top:30px}.beginner-card-art{height:210px}.beginner-card-copy{padding:19px 23px 25px}.beginner-card-copy h3{font-size:23px}.beginner-bua{display:block;position:relative;margin-top:35px;padding:24px 24px 0}.beginner-bua>img{float:right;width:88px;height:130px;margin:0 -9px 6px 13px}.beginner-bua>div{padding-bottom:24px}.beginner-bua h3{font-size:23px}.beginner-bua p{clear:both}.beginner-glossary{grid-template-columns:1fr;gap:24px;padding-block:24px;margin-top:30px}.beginner-glossary p{margin-top:7px}}
.effects-off .beginner-card-art img{transition:none}@media(prefers-reduced-motion:reduce){.beginner-card-art img{transition:none}}

.civilization-first-step{padding-top:16px;border-top:1px solid #c4aa6640;margin-top:17px}.civilization-first-step b{display:block;color:#e6ce91;font-size:14px;font-weight:500;line-height:1.8;margin-bottom:8px}



/* assets/css/refinements.css */
/* 0.7.6: shared information width, legible building panels and a quieter world HUD. */
.news-page{min-width:0}.news-page>.page-heading{width:100%;max-width:none;margin-inline:0;padding-inline:0}.news-page .news-feed,.news-page .news-editor{width:100%;max-width:none;box-sizing:border-box}.news-page .news-article{min-width:0;box-sizing:border-box;background:linear-gradient(135deg,#f5eedc,#eae0c7);color:#293f32;border:1px solid #c8b77f;box-shadow:0 12px 32px #05201826}.news-page .news-article h2{color:#25402f;line-height:1.6;overflow-wrap:anywhere}.news-page .news-body{color:#354c3f;font-size:17px!important;line-height:2!important;overflow-wrap:anywhere;white-space:normal}.news-page .news-meta time{color:#546650;font-size:15px}.news-page .news-meta .badge{color:#354e37;background:#dfd8bc;border-color:#b3a36a}.news-page .news-article .text-link{color:#355b3a}.news-page .news-editor{margin-bottom:28px}
/* The legacy fragment is also used inside a native dialog; both paths need the same surface. */
html body.body .building-panel-fragment>.container>.content{box-sizing:border-box;width:100%;max-width:100%;margin:0 0 24px;padding:24px;background:linear-gradient(145deg,#153b30,#0e2b23);border:1px solid #9ca96c55;border-radius:12px;color:#f1ead6;text-align:left!important;font-size:17px;line-height:1.85;overflow-x:auto}
html body.body .building-panel-fragment .content :is(.cell,label,td,th,p){color:#eee7d3}html body.body .building-panel-fragment .content :is(small,.muted){color:#c4d4c2}html body.body .building-panel-fragment .content :is(a.link,a.small){color:#ffdd91}html body.body .building-panel-fragment .content .cell{font-size:17px;line-height:1.9}
html body.body .building-panel-fragment .resource-bar{background:#0b281f;border:1px solid #9ca96c66;box-shadow:0 5px 18px #00170f44;color:#fff0cb;gap:0;margin-bottom:28px}
html body.body .building-panel-fragment .resource-stat{min-width:0;background:transparent;border-color:#bbca9e33;padding:15px 14px}html body.body .building-panel-fragment .resource-name{color:#c7d7c5;font-size:14px}html body.body .building-panel-fragment .resource-stat strong{color:#fff0c7;font-size:20px}html body.body .building-panel-fragment .resource-stat small{color:#bbd0bf;font-size:15px}html body.body .building-panel-fragment .resource-symbol{color:#f0cc7c}
html body.body .building-panel-fragment :is(.textbox,.dropdown){color:#fff3d6;background:#08251c;border-color:#bdac72}html body.body .building-panel-fragment .content .button{color:#163b2a;background:#f1d08a;border-color:#ffe5ab}.building-panel-fragment .level-upgrade-description{color:#d4e1ca}
.building-dialog[open]{display:flex;flex-direction:column;overflow:hidden}.building-dialog-header{position:relative;flex:0 0 auto}.building-dialog-notice{flex:0 0 auto}.building-dialog-body{min-height:0;overflow:auto;overscroll-behavior:contain;flex:1 1 auto;scroll-padding-block:24px}.building-dialog .bua-target{scroll-margin-block:40px}.building-dialog-body .module-lead-art{box-sizing:border-box}.building-dialog-body .content form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
html body.body .village-beacon{width:190px;max-width:100%;box-sizing:border-box;margin:8px 0 12px;padding:7px 10px;gap:4px 12px;border:1px solid #c4b07488;border-radius:6px;background:#09291ff5;color:#e0e8cf;font-size:12px;line-height:1.5;box-shadow:0 3px 12px #00171033}.village-beacon>b{font-size:13px;color:#ffe3a0;font-variant-numeric:tabular-nums}.village-beacon .village-beacon-track{height:3px}.village-beacon-track>i{transition:width .8s ease}.village-beacon>small{grid-column:1/-1;font-size:11px;line-height:1.5;color:#bbcfb8;font-variant-numeric:tabular-nums}
@media(max-width:600px){.news-page .news-article{padding:22px 18px!important}.news-page .news-body{font-size:16px!important}html body.body .building-panel-fragment>.container>.content{padding:18px 14px}html body.body .building-panel-fragment .content .cell{font-size:16px}html body.body .building-panel-fragment .resource-bar{grid-template-columns:repeat(2,minmax(0,1fr))}html body.body .building-panel-fragment .resource-stat{padding:12px 9px}html body.body .building-panel-fragment .resource-stat strong{font-size:18px}html body.body .village-beacon{width:169px;margin-block:5px 8px;padding:5px 8px;font-size:11px}.village-beacon>b{font-size:12px}.village-beacon>small{font-size:10px}}
@media(prefers-reduced-motion:reduce){.village-beacon-track>i{transition:none}}



/* assets/css/troop-portraits.css */
/* A consistent, compact roster for every march and reinforcement selector. */
.raid-troops .troop-choice{display:grid;grid-template-columns:72px minmax(0,1fr);column-gap:14px;row-gap:6px;align-content:start;padding:15px;min-width:0;border:1px solid #b4a16c3d;border-radius:9px;background:#e4d9b58a;position:relative;color:#304735}
.troop-thumbnail{display:block;width:72px;height:80px;object-fit:contain;object-position:center;grid-column:1;grid-row:1/5;align-self:center;background:radial-gradient(ellipse,#77926644,transparent 72%);filter:drop-shadow(0 3px 2px #293e3022);pointer-events:none}
.raid-troops .troop-choice-name{grid-column:2;min-height:25px;font-size:16px;line-height:1.7;font-weight:600;color:#294831;overflow-wrap:anywhere}.raid-troops .troop-choice :is(input,small){grid-column:2}.raid-troops .troop-choice input{width:100%;max-width:112px;min-width:0;min-height:42px;height:42px;font-size:16px;margin:0}.raid-troops .troop-choice small{font-size:13px!important;line-height:1.75;color:#586247}.raid-troops .troop-choice:focus-within{border-color:#6e8a58;box-shadow:0 0 0 2px #6e8a5822}.convoy-grid .convoy-crew-choice{display:grid;grid-template-columns:64px minmax(0,1fr);gap:6px 12px;align-items:center;padding:12px;border:1px solid #b4a16c44;border-radius:9px;background:#e7dfc7}.convoy-crew-choice .troop-thumbnail{width:64px;height:76px;grid-row:1/3}.convoy-crew-choice span,.convoy-crew-choice input{grid-column:2}.convoy-crew-choice input{min-width:0;max-width:120px}
@media(max-width:760px){.raid-troops{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.raid-troops .troop-choice{grid-template-columns:1fr;row-gap:5px;padding:12px}.raid-troops .troop-choice .troop-thumbnail{grid-column:1;grid-row:auto;width:68px;height:76px;margin:auto}.raid-troops .troop-choice-name,.raid-troops .troop-choice :is(input,small){grid-column:1}.raid-troops .troop-choice-name{font-size:15px;min-height:50px}.raid-troops .troop-choice input{max-width:none}.convoy-grid .convoy-crew-choice{grid-template-columns:1fr;padding:11px;gap:6px}.convoy-crew-choice .troop-thumbnail{grid-column:1;grid-row:auto;margin:auto}.convoy-crew-choice span,.convoy-crew-choice input{grid-column:1}.convoy-crew-choice input{width:100%;max-width:none}}



/* assets/css/mobile-scenes.css */
.city-mobile-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;background:#344c38}
@media(max-width:900px),(pointer:coarse){
 .city-stage{isolation:auto;contain:layout paint}.city-viewport,.realm-viewport{touch-action:none;overscroll-behavior:none;user-select:none;-webkit-user-select:none}.realm-world{will-change:transform;backface-visibility:hidden}
 /* The canvas already draws mobile scenery. Do not force the 3072px DOM
    overlay into a tiled 3D layer just to position its interactive labels. */
 .city-stage .city-world{will-change:auto;backface-visibility:visible}
 .city-stage :is(.city-cloud,.chimney,.river-light,.city-life,.city-fire-glow,.civilization-atmosphere){display:none!important}.city-stage .city-world:after{display:none!important}
 .city-stage :is(.city-sprite,.city-panorama,.city-terrain,.building-illustration,.village-wall img,.plot-ground){filter:none!important;will-change:auto!important}.city-stage .city-core>.city-terrain{mask-image:none;-webkit-mask-image:none}
 .city-stage :is(.plot-plus,.construction-ring,.townhall-flag){animation:none!important}.city-stage .city-building:hover .building-illustration{transform:none}
 .city-stage :is(.city-resources,.city-queue,.village-council,.village-beacon,.city-camera,.city-heading,.city-inhabitants,.city-dragon-preview),.game-dock,.topbar,.public-header,.bua-speech{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
 .city-stage .city-resources{background:#173b2ff5}.city-stage .city-queue{background:#efe2c4}.city-stage .village-beacon{background:#17382e}.city-stage .city-camera button{background:#193b2e}.game-dock{background:#14372b}
 .city-canvas-ready :is(.city-panorama,.city-core>.city-terrain,.city-sprite,.village-wall>img){visibility:hidden}.city-canvas-ready .city-world{background:none;z-index:1}.city-canvas-ready .city-prop,.city-canvas-ready .city-building{background:none!important}.city-canvas-ready .city-building .building-info{box-shadow:none}
 .city-canvas-ready .city-prop .prop-label,.city-canvas-ready .city-building :is(.building-info,.building-level),.city-canvas-ready .fortification-label{visibility:visible}
 .city-stage .game-build-complete .city-sprite{animation:none!important}.city-stage .city-building .plot-plus{box-shadow:none}
 .city-mobile-layer{image-rendering:auto}.city-mobile-layer:not([width]){visibility:hidden}
}
/* Account for the scene's actual top after the header, world clock and notices. */
@media(max-width:760px),(max-width:1100px) and (pointer:coarse){
 .city-stage[data-city-stage]{height:var(--city-mobile-height,calc(100dvh - 150px));min-height:240px}
 html body.body .city-stage[data-city-stage] .city-camera{bottom:var(--city-camera-bottom,calc(var(--game-dock-height,76px) + 12px))}
}



/* assets/css/community.css */
/* The builders’ hall shares the game's shell, bronze controls and readable journal. */
.community-hero{position:relative;isolation:isolate;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:28px;min-height:290px;padding:38px clamp(22px,4vw,52px);margin-bottom:30px;border:1px solid #b99b60;border-radius:14px;background:linear-gradient(105deg,#0b2925f5 15%,#123a2ee0 55%,#1c3f3060),url("../images/valley.webp") 55% 50%/cover;box-shadow:0 16px 40px #071b194d,inset 0 0 0 4px #edd49b0c;color:#fff0cb}
.community-hero:after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 86% 15%,#e8c36524,transparent 60%)}
.community-hero>div:first-child{max-width:740px}.community-hero .eyebrow{font-size:14px!important;letter-spacing:1.5px;color:#e4c782!important}.community-hero h1{font-family:var(--serif);font-size:clamp(30px,3vw,43px);line-height:1.45;margin:8px 0 12px;color:#fff0cb}.community-hero p{font-size:17px!important;line-height:1.85;color:#dbe4ca!important;margin:0 0 23px}.community-hero .btn{font-size:16px;min-height:48px;border-radius:8px}
.community-crest{flex:0 0 150px;width:150px;height:180px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:13px;clip-path:polygon(50% 0,96% 18%,90% 74%,50% 100%,10% 74%,4% 18%);background:linear-gradient(145deg,#d9bb773d,#e9d7940e);color:#e7cf99;border-top:1px solid #e2cc8b77}.community-crest>.icon{width:72px;height:72px}.community-crest>span{font-family:var(--serif);font-size:14px;letter-spacing:1px}
.community-toolbar{display:flex;align-items:center;justify-content:space-between;gap:22px;margin:24px 0}.community-toolbar h2{color:#f1dfb3;font-size:25px}.community-toolbar p{font-size:15px!important;color:#bcccaf!important;margin-top:3px}.community-toolbar form{min-width:min(100%,320px)}.community-toolbar label{display:block;font-size:14px;color:#e7d5aa;margin-bottom:6px}.community-toolbar form>div{display:flex;gap:9px}.community-toolbar .textbox{min-width:0;width:100%;font-size:16px;padding:10px 12px;border-radius:7px}.community-toolbar .btn{font-size:15px;border-radius:7px}
.community-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.community-grid .community-card{border-radius:12px;padding:22px;min-width:0;transition:border-color .2s,box-shadow .2s;overflow:hidden}.community-card:hover{border-color:#e8c779;box-shadow:0 8px 30px #07191155}.community-card-person{display:flex;gap:14px;align-items:center;min-width:0}.community-card-person>span{min-width:0}.community-card-person h3{font-size:21px;color:#35452e;overflow-wrap:anywhere;letter-spacing:0}.community-card-person small{font-size:14px;color:#72613f;display:block;line-height:1.65;margin-top:3px;overflow-wrap:anywhere}
.community-avatar{--avatar-size:80px;display:block;flex:0 0 auto;width:var(--avatar-size);height:var(--avatar-size);object-fit:cover;aspect-ratio:1;border-radius:23%;border:2px solid #e6cc8f;outline:3px solid #18382b33;box-shadow:0 5px 15px #162a2933;background:#264d3a;color:#f6dc9f}.community-avatar-default{display:grid;place-items:center;font-family:var(--serif);font-size:calc(var(--avatar-size)*.42);background:radial-gradient(ellipse at top,#477555,#15392d);text-transform:uppercase}.profile-identity .community-avatar,.profile-upload .community-avatar{--avatar-size:112px;width:112px;height:112px}
.community-card .community-card-bio{font-size:16px!important;line-height:1.8!important;color:#63553c!important;margin:20px 0;white-space:pre-line;overflow-wrap:anywhere}.community-card-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:15px;border-top:1px solid #aa914e44;font-size:14px;flex-wrap:wrap}.community-card-footer>span{display:flex;align-items:center;gap:6px;color:#78623e}.community-card-footer .text-link{font-size:15px;color:#31573b}.community-socials{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.community-socials:empty{display:none}.community-social{display:inline-flex;align-items:center;gap:10px;border:1px solid #9c844866;border-radius:20px;padding:5px 13px;color:#34543a;font-size:14px;line-height:1.7;background:#fffbec66}.community-social:hover{border-color:#476a45;background:#fff9e8}.community-empty{text-align:center;padding:38px 24px!important;border-radius:12px!important;margin-bottom:20px}.community-empty>.icon{width:42px;height:42px;color:#8f753e;margin-bottom:14px}.community-empty h2{font-size:26px;margin-bottom:12px}.community-empty p{font-size:17px!important;line-height:1.85;max-width:650px;margin:0 auto 22px;color:#74613f!important}
.community-pagination{display:flex;align-items:center;justify-content:center;gap:18px;margin:28px 0;font-size:15px;color:#e1d3ae}.community-breadcrumb{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:20px}.community-breadcrumb a{font-size:15px;color:#e7cd94}.community-notice{font-size:16px!important;margin-bottom:22px}.profile-hero{min-height:228px;flex-wrap:wrap}.profile-hero .profile-identity{display:flex;align-items:center;gap:25px}.profile-hero h1{overflow-wrap:anywhere}.profile-hero .profile-identity>div{min-width:0}.profile-hero p{margin:0}.profile-hero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.community-visibility-badge{display:inline-block;font-size:13px;line-height:1.7;color:#e6d19a;border:1px solid #c5ad6b66;border-radius:16px;padding:3px 12px;margin-top:12px;background:#102c2588}.profile-layout{display:grid;grid-template-columns:1fr 1fr;gap:24px}.profile-layout>.panel{padding:28px;border-radius:12px;min-width:0}.profile-layout h2{font-size:25px;margin-bottom:14px}.profile-layout p{font-size:17px!important;line-height:1.9!important;color:#63563e!important}.profile-bio{white-space:pre-line;overflow-wrap:anywhere}.profile-public-note{font-size:14px!important;line-height:1.85!important;border-top:1px solid #9e874a55;padding-top:15px;margin-top:22px;color:#766441!important}
.profile-towns ul{list-style:none;margin:0;padding:0;display:grid;gap:12px}.profile-towns li{display:flex;align-items:center;gap:14px;padding:15px 0;border-bottom:1px solid #b9a17055}.profile-towns li>a:not(.profile-map-link){flex:1;min-width:0}.profile-towns b{font-size:18px;color:#394d31;display:block;overflow-wrap:anywhere}.profile-towns small{font-size:14px;color:#7f6940;display:block;margin-top:4px}.profile-town-emblem{display:grid;place-items:center;width:48px;height:54px;flex:none;background:#cdbb8a44;color:#65764b;clip-path:polygon(50% 0,95% 17%,88% 74%,50% 100%,12% 74%,5% 17%)}.profile-town-emblem>.icon{width:29px;height:29px}.profile-map-link{display:grid;place-items:center;width:44px;height:44px;border:1px solid #a58a5266;border-radius:8px;color:#496348}
.community-editor{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,1fr);gap:24px;align-items:start}.community-editor .profile-edit-section{padding:28px;border-radius:12px;min-width:0}.profile-edit-section h2{font-size:24px;margin-bottom:12px}.profile-edit-section>p{font-size:16px!important;line-height:1.85!important;color:#6d5b3d!important;margin-bottom:22px}.profile-upload{display:flex;gap:22px;align-items:center;padding:20px 0 24px;margin-bottom:20px;border-bottom:1px solid #aa914e44}.profile-upload>div:last-child{min-width:0;flex:1}.profile-upload label{font-size:16px;color:#3b4c32;font-weight:600}.profile-upload input[type=file]{display:block;width:100%;max-width:100%;font-size:14px;border:1px dashed #aa914e88;padding:10px;border-radius:7px;margin:10px 0;background:#fff8e788}.profile-upload input::file-selector-button{border:0;background:#31573e;color:#fff0cd;padding:9px 10px;border-radius:5px;margin-right:8px;font:inherit;cursor:pointer}.profile-upload small,.community-field>small{font-size:14px;line-height:1.8;color:#7e6840;display:block;overflow-wrap:anywhere}.community-field{display:grid;gap:8px;font-size:16px;color:#3b4c32;margin-bottom:20px}.community-field .textbox{width:100%;max-width:100%;min-width:0;font-size:16px;line-height:1.8;padding:11px 12px;border-radius:7px}.community-field textarea{resize:vertical;min-height:130px}.profile-social-fields{display:grid;gap:4px}.community-check{display:flex!important;align-items:flex-start;gap:12px;font-size:16px!important;line-height:1.8;color:#415136;cursor:pointer}.community-check input[type=checkbox]{appearance:auto;accent-color:#396446;position:static!important;width:20px!important;height:20px!important;min-height:0!important;min-width:20px!important;max-width:none!important;flex:0 0 20px;margin:4px 0 0!important;padding:0!important}.community-check b{display:block;color:#344e32;font-size:17px}.community-check small{font-size:14px;line-height:1.8;display:block;color:#79653e;font-weight:400;margin-top:4px}.community-publish{padding:18px 16px;background:#e0d9b780;border:1px solid #b8a16b;border-radius:10px;margin-bottom:22px}.profile-visibility-fields{border:1px solid #b8a16b;border-radius:10px;padding:16px;display:grid;gap:14px;margin:0 0 18px;min-width:0}.profile-visibility-fields legend{font-size:14px;color:#76603c;padding:0 6px}.profile-privacy .profile-visibility-status{font-size:15px!important;color:#2c5a40!important;margin-bottom:20px}.profile-privacy>.btn{width:100%;white-space:normal;font-size:16px;border-radius:8px;margin:5px 0 18px}.profile-privacy>.text-link{font-size:14px;color:#526748}.profile-upload [role=status]{font-size:14px!important;color:#8b352b!important;line-height:1.8}.community-social .visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:1100px){.community-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.community-editor{grid-template-columns:1fr}.community-hero .community-crest{display:none}}
@media(max-width:650px){.community-hero{min-height:260px;padding:26px 20px;margin-bottom:24px}.community-hero h1{font-size:31px}.community-hero p{font-size:16px!important}.community-grid,.profile-layout{grid-template-columns:1fr;gap:18px}.community-toolbar{align-items:stretch;flex-direction:column;gap:18px}.community-grid .community-card{padding:20px}.profile-hero .profile-identity{gap:16px;align-items:flex-start}.profile-identity .community-avatar{--avatar-size:80px;width:80px;height:80px}.profile-hero h1{font-size:30px}.profile-hero-actions{width:100%}.profile-hero-actions>.btn{flex:1;font-size:15px}.community-editor .profile-edit-section,.profile-layout>.panel{padding:22px}.profile-upload{align-items:flex-start;flex-direction:column;gap:16px}.profile-upload>div:last-child{width:100%}.profile-layout p{font-size:16px!important}}
@media(prefers-reduced-motion:no-preference){.community-card{animation:community-arrive .35s ease-out both}.community-card:nth-child(2){animation-delay:.04s}.community-card:nth-child(3){animation-delay:.08s}@keyframes community-arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}.effects-off .community-card{animation:none!important}

.community-settings-link{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:24px!important;margin-bottom:24px;border-radius:10px!important}.community-settings-link h2{font-size:24px}.community-settings-link p{font-size:16px!important;line-height:1.8;color:#70603e!important;margin-top:10px}.community-settings-link .btn{flex:none;font-size:15px;border-radius:7px}@media(max-width:650px){.community-settings-link{flex-direction:column;align-items:stretch}.community-settings-link .btn{width:100%}}

/* A compact channel picker reveals only the accounts a ruler chooses to edit. */
.profile-social-picker{border:1px solid #b8a16b;border-radius:10px;padding:18px;min-width:0;margin-top:24px}.profile-social-picker legend{font-size:18px;font-weight:600;color:#3b4c32;padding:0 7px}.profile-social-help{font-size:15px!important;line-height:1.8!important;color:#6d5b3d!important;margin:0 0 16px}.profile-social-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:16px}.profile-social-choice{border:1px solid #b8a16b;border-radius:8px;padding:10px 12px;background:#fff8e755;min-height:46px;align-items:center!important;min-width:0}.profile-social-choice:has(input:checked){background:#dfdfbd;border-color:#4c6d47}.profile-social-choice:focus-within{outline:2px solid #3c6d51;outline-offset:2px}.profile-social-fields [hidden],.profile-visibility-fields [hidden]{display:none!important}.profile-social-fields .community-field{margin:0 0 18px}.profile-social-fields{margin-top:18px}.profile-social-fields:empty{margin:0}@media(max-width:360px){.profile-social-choices{grid-template-columns:1fr}}


/* assets/css/map-panels.css */
.realm-tools{display:contents}.realm-tools>summary{display:none}.realm-tools-body{display:contents}.realm-tools .coordinate-form{position:absolute;right:28px;top:25px;z-index:12;display:flex;gap:9px;align-items:center;background:#16392eee;border:1px solid #bba063;border-radius:8px;padding:10px 13px;color:#eddaa8}.realm-tools .coordinate-form label{display:flex;align-items:center;gap:7px;font-size:14px}.realm-tools .textbox{width:60px!important;min-height:40px;font-size:16px!important}.realm-tools .coordinate-form .btn{font-size:14px;min-height:42px}.realm-tools .realm-overview>span{font-size:11px;line-height:1.5}.realm-info.panel[data-realm-notes]{bottom:var(--realm-panel-bottom,110px)}.realm-camera{bottom:var(--realm-panel-bottom,110px)}
.realm-mobile-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.game-shell.theme-moon .realm-mobile-layer{filter:brightness(.85) saturate(.8)}
@media(max-width:900px),(pointer:coarse){
 .realm-canvas-ready .realm-world>.realm-ground,.realm-canvas-ready .realm-world>canvas{visibility:hidden}
 .realm-canvas-ready .realm-world{will-change:auto;backface-visibility:visible}
}
.first-town-page{max-width:1180px;margin:0 auto}.first-town-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:26px;align-items:stretch}.first-town-art{position:relative;isolation:isolate;min-height:550px;display:flex;flex-direction:column;justify-content:space-between;gap:80px;padding:32px;border:1px solid #af965c;border-radius:14px;overflow:hidden;background:linear-gradient(0deg,#0a2825f5,transparent 80%),url("../images/quests/first_home.webp") center/cover;color:#fff0ca}.first-town-art .eyebrow{color:#ecd59d}.first-town-art h2{font-family:var(--serif);font-size:31px;color:#fff0ca;margin-bottom:14px}.first-town-art p{font-size:17px!important;line-height:1.9;color:#e0e7cc!important}.first-town-details{display:flex;flex-direction:column;gap:22px}.first-town-details .founding-form{flex:1}.first-town-details .founding-form p{font-size:16px;line-height:1.9}.first-town-page>.founding-heading p{font-size:17px;line-height:1.85}
@media(max-width:760px){
 .is-world .realm-stage{height:var(--realm-mobile-height,calc(100dvh - 150px));min-height:320px}.realm-toolbar{left:16px;top:17px;right:160px}.realm-toolbar h1{font-size:29px}.realm-toolbar .eyebrow{font-size:12px!important;line-height:1.6;letter-spacing:.5px}.realm-toolbar p{display:none}
 .realm-tools{display:block;position:absolute;z-index:22;right:12px;top:18px;max-width:calc(100% - 24px);color:#ecd7a7}.realm-tools>summary{display:flex;align-items:center;gap:7px;padding:9px 10px;border:1px solid #b59a63;border-radius:8px;background:#12382ef7;font-size:13px;min-height:44px;list-style:none;cursor:pointer}.realm-tools>summary::-webkit-details-marker{display:none}.realm-tools>summary .icon{width:19px;height:19px}.realm-tools>summary>span{margin-left:auto}.realm-tools[open]>summary>span{transform:rotate(180deg)}.realm-tools-body{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:15px;margin-top:8px;border:1px solid #b69b62;border-radius:10px;background:#13382efb;box-shadow:0 8px 25px #071b1966;width:min(350px,calc(100vw - 24px));max-height:min(350px,calc(100dvh - 300px));min-height:160px;overflow:auto;overscroll-behavior:contain}.realm-tools:not([open])>.realm-tools-body{display:none}
 .realm-tools .coordinate-form{position:static;grid-column:1/-1;padding:0;display:flex;gap:8px;flex-wrap:wrap;border:0;background:transparent;box-shadow:none;margin:0}.realm-tools .coordinate-form label{flex:1;font-size:14px}.realm-tools .textbox{width:60px!important;max-width:100%;font-size:16px!important;padding:6px}.realm-tools .coordinate-form .btn{flex:1 1 auto;white-space:normal;font-size:13px;padding:9px;min-height:44px}.realm-tools .realm-compass{position:static;width:122px;grid-template-columns:repeat(3,38px);gap:3px;align-self:center;justify-self:center}.realm-tools .realm-compass a{width:38px;height:38px;font-size:22px}.realm-tools .realm-overview{position:static;width:100%;padding:4px;align-self:center}.realm-tools .realm-overview>span{font-size:10px;letter-spacing:0}.realm-tools .realm-overview canvas{width:100%;height:auto}
 .realm-camera{display:flex!important;flex-direction:column;gap:5px;right:12px;bottom:var(--realm-panel-bottom,100px);padding:0;z-index:13;background:none;border:0;box-shadow:none}.realm-camera button{width:44px;height:44px;min-height:44px;font-size:24px;border:1px solid #b79c61;background:#163b2feb}.realm-camera button .icon{width:21px;height:21px}.realm-info.panel[data-realm-notes]{width:270px;max-width:calc(100% - 82px);max-height:calc(100% - 190px)}.realm-info[data-realm-notes]>summary{padding:9px 12px;min-height:44px}.realm-info[data-realm-notes] .eyebrow{font-size:13px!important}.realm-info[data-realm-notes] h2{font-size:20px}.realm-info[data-realm-notes] .realm-notes-body dl{grid-template-columns:1fr;gap:3px;font-size:14px}.realm-notes-body dd{text-align:left;max-width:100%;margin-bottom:9px}.realm-notes-body .btn{font-size:14px;max-width:100%;white-space:normal}.realm-legend{display:none}.realm-village{filter:none}.realm-ground{filter:none}.realm-vignette{box-shadow:none;background:linear-gradient(#12392d44,transparent 40%,#14382d22)}
 .first-town-layout{display:flex;flex-direction:column}.first-town-art{min-height:280px;padding:24px}.first-town-art h2{font-size:27px}.first-town-art p{font-size:16px!important}.first-town-page>.founding-heading h1{font-size:30px}.first-town-page>.founding-heading p{font-size:16px}.first-town-details .founding-form,.first-town-details .founding-civilization{width:100%;padding:24px}.first-town-details .founding-form label{font-size:17px}.first-town-details .founding-rules p{font-size:16px}.first-town-details .founding-civilization p{font-size:16px}
}

.realm-tools-inlinezoom{display:none}.realm-info[data-realm-notes]>summary{position:sticky;top:0;background:linear-gradient(130deg,#f4e9cf,#ddcba2);z-index:1}
@media(max-width:760px){.realm-tools-inlinezoom{display:flex;gap:8px;grid-column:1/-1;order:-1}.realm-tools-inlinezoom button{display:grid;place-items:center;min-width:44px;min-height:44px;padding:7px 12px;border:1px solid #b69b62;border-radius:6px;background:#214b39;color:#f4dfaa;font:600 17px/1.5 var(--font)}.realm-tools-inlinezoom button:last-child{flex:1;font-size:14px}.realm-tools-open>.realm-camera{display:none!important}.first-town-details .founding-form{order:0}.first-town-details .founding-civilization{order:1}.first-town-layout>.first-town-details{order:0}.first-town-layout>.first-town-art{order:1;min-height:230px}}
@media(max-width:760px) and (max-height:540px){.realm-tools[open]{position:fixed;top:12px;right:12px;z-index:95}.realm-tools-body{min-height:0;max-height:calc(100dvh - 150px)}.realm-info.panel[data-realm-notes][open]{position:fixed;left:12px;top:72px;bottom:auto;z-index:94;max-height:calc(100dvh - 160px)}}
@media(max-width:760px){.is-world .realm-stage{isolation:auto}}

/* Panel bounds follow the actual visible viewport and dock, including an open keyboard. */
@media(max-width:760px){
 .realm-tools-body{box-sizing:border-box;min-height:0;max-height:min(350px,var(--realm-tools-height,calc(100dvh - 300px)))}
 .realm-info.panel[data-realm-notes]{max-height:var(--realm-notes-height,calc(100% - 190px))}
 .realm-tools>summary,.realm-info[data-realm-notes]>summary{touch-action:manipulation}
}

/* Keep route information beside the title; only the small information mark is visible. */
.realm-title-line{position:relative;display:inline-flex;align-items:center;gap:6px;max-width:100%;vertical-align:middle}
.realm-title-line>h1{white-space:nowrap}
.realm-toolbar .realm-title-line .march-legend{position:static;inset:auto;flex:0 0 28px;width:28px;max-width:28px;padding:0;border:0;border-radius:0;background:none;pointer-events:auto;text-shadow:none}
.realm-toolbar .march-legend>summary{display:flex;align-items:center;justify-content:center;width:28px;min-width:28px;height:28px;min-height:28px;margin:0;padding:0;border:0;border-radius:50%;background:transparent;touch-action:manipulation}
.realm-toolbar .march-legend>summary span{width:18px;height:18px;border-width:1.3px;font-size:14px;line-height:1}
.realm-toolbar .march-legend>summary:focus-visible{outline:2px solid #f1cd75;outline-offset:2px}
.realm-toolbar .march-legend .march-legend-copy{position:absolute;left:0;top:calc(100% + 6px);z-index:24;display:grid;gap:9px;width:max-content;max-width:calc(100vw - 32px);padding:12px 14px;background:#173e30f5;border:1px solid #b59a63;border-radius:8px;color:#f5e7c6;font-size:13px;line-height:1.5;box-shadow:0 8px 20px #0005;text-shadow:none;pointer-events:auto}
.realm-toolbar .march-legend:not([open])>.march-legend-copy{display:none}

/* Reserve separate horizontal space for the overview and the floating controls. */
@media(min-width:761px){
 .realm-stage:not([data-settlement-picker]) .realm-camera{right:24px;width:48px;grid-template-columns:48px}
 .realm-stage:not([data-settlement-picker]) .realm-tools .realm-overview{box-sizing:border-box;right:84px;bottom:var(--realm-panel-bottom,110px);width:164px}
}
@media(max-width:760px){
 .realm-tools[open]~.realm-camera{display:none!important}
}


/* assets/css/resource-hud.css */
/* Capacity and hourly production occupy separate, naturally sized rows. */
html body.body .resource-bar .resource-stat {
 display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;
 align-content:start;column-gap:8px;row-gap:3px;min-height:0;padding:12px;
}
html body.body .resource-bar .resource-stat>.resource-symbol {
 grid-column:1;grid-row:1;align-self:center;flex-shrink:0;width:24px;height:32px;
}
html body.body .resource-bar .resource-stat>div {grid-column:2;min-width:0;line-height:1.5}
html body.body .resource-bar .resource-stat .resource-name {
 display:block;white-space:normal;overflow-wrap:anywhere;line-height:1.55;margin-bottom:4px;
}
html body.body .resource-bar .resource-stat strong {
 display:block;line-height:1.35;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;
}
html body.body .resource-bar .resource-stat small {
 display:block;line-height:1.55;margin-top:4px;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;
}
html body.body .resource-bar .resource-stat>.resource-rate {
 position:static;inset:auto;grid-column:2;display:block;margin:0;padding:0;
 line-height:1.55;white-space:normal;overflow-wrap:anywhere;font-variant-numeric:tabular-nums;
}
html body.body .city-stage .city-resources {
 width:min(1120px,calc(100% - 48px));grid-template-columns:repeat(6,minmax(0,1fr));
}
html body.body .city-stage .city-resources .resource-name,
html body.body .city-stage .city-resources small {font-size:13px;color:#d3dfc6}
html body.body .city-stage .city-resources .resource-rate {font-size:13px;color:#d0efad}
html body.body .city-stage .city-heading {top:calc(var(--city-resource-bottom,142px) + 16px)}
@media(min-width:901px){
 html body.body .city-stage .city-queue {top:calc(var(--city-resource-bottom,142px) + 16px)}
}
@media(max-width:1100px){
 html body.body .city-stage .city-resources {grid-template-columns:repeat(3,minmax(0,1fr))}
 html body.body .city-stage .city-resources .resource-stat:nth-child(n+4) {border-top:1px solid #a38e5655}
 html body.body .city-stage .city-resources .resource-stat:nth-child(4):before {display:none}
 html body.body .city-stage .city-heading {top:calc(var(--city-resource-bottom,256px) + 12px)}
}
@media(max-width:600px){
 html body.body .city-stage .city-resources {left:10px;right:10px;width:auto}
 html body.body .resource-bar .resource-stat {grid-template-columns:20px minmax(0,1fr);column-gap:6px;padding:8px 7px}
 html body.body .resource-bar .resource-stat>.resource-symbol {width:20px;height:26px}
 html body.body .city-stage .city-resources .resource-name,
 html body.body .city-stage .city-resources small,
 html body.body .city-stage .city-resources .resource-rate {font-size:12px}
 html body.body .city-stage .city-resources .resource-name {margin-bottom:3px}
}
/* Crisp vector artwork also replaces the legacy cost and research miniatures. */
html body.body img.resource[src^="assets/icons/"] {
 width:28px;height:28px;object-fit:contain;vertical-align:middle;margin-inline:5px;
 image-rendering:auto;filter:none;border:0;background:none;
}
html body.body img.item[src^="assets/icons/technologies/"],
html body.body img[src^="assets/icons/technologies/"][style] {
 width:72px!important;height:72px;object-fit:contain;vertical-align:middle;
 margin:8px 18px 12px 0;image-rendering:auto;filter:none;border:0;background:none;
}
@media(max-width:600px){
 html body.body img.item[src^="assets/icons/technologies/"],
 html body.body img[src^="assets/icons/technologies/"][style] {width:56px!important;height:56px;margin-right:12px}
}

/* The compact summary only expands. Resource actions live in the open body. */
html body.body .city-resource-panel>summary .city-resource-expanded-title{display:none;flex:1;min-width:0;font-size:16px;font-weight:600;line-height:1.6;color:#fff0c9}
html body.body .city-resource-panel[open]>summary .city-resource-expanded-title{display:block}
html body.body .city-resource-panel[open]>summary [data-resource-mode="compact"],
html body.body .city-resource-panel [hidden]{display:none!important}
html body.body .city-resource-panel[open]>summary{align-items:center;min-height:48px;max-height:none;overflow:visible;border-radius:10px 10px 0 0}
html body.body .city-resource-panel[open]>summary .city-resource-caret{min-height:28px;margin-left:auto}
html body.body .city-resource-panel .city-resource-details{padding:12px;border:1px solid #c3a663;border-top:0;border-radius:0 0 10px 10px;background:#14392efa;max-height:min(340px,var(--city-resource-details-height,calc(100dvh - var(--game-dock-height,76px) - 160px)));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
html body.body .city-resource-panel .city-resource-guide-hint{margin:0 2px 12px;font-size:14px;line-height:1.75;color:#d9e5cb}
html body.body .city-resource-panel .city-resource-details>.city-resources.resource-bar{position:static!important;inset:auto!important;transform:none!important;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;width:100%!important;margin:0;padding:0;background:none;border:0;outline:0;box-shadow:none;border-radius:0;backdrop-filter:none;overflow:visible}
html body.body .city-resource-panel .city-resource-details .resource-guide-link{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;min-width:0;min-height:136px;padding:12px 8px;border:1px solid #c3a66370;border-radius:8px;background:#204936;color:#fff0c9;text-align:center;cursor:pointer;transition:background .15s,border-color .15s}
html body.body .city-resource-panel .city-resource-details .resource-guide-link:hover{background:#2b573e;border-color:#e4c67c}
html body.body .city-resource-panel .city-resource-details .resource-guide-link:focus-visible{outline:3px solid #ffe2a2;outline-offset:2px;background:#2b573e}
html body.body .city-resource-panel .city-resource-details .city-resource-value{display:flex;flex-direction:row;justify-content:center;align-items:center;gap:7px;min-height:32px}
html body.body .city-resource-panel .city-resource-details .resource-guide-link strong{font-size:18px;line-height:1.45}
html body.body .city-resource-panel .city-resource-details .resource-guide-link :is(.resource-name,small,.resource-rate){display:block;margin:0;font-size:14px;line-height:1.6;color:#dbe6cf}
html body.body .city-resource-panel .city-resource-details .resource-guide-link .resource-rate{color:#cdf2a8}
html body.body .city-resource-panel .city-resource-details .resource-guide-action{display:block;margin-top:auto;padding-top:5px;font-size:12px;line-height:1.6;color:#f3d694}
.resource-demo-note{font-size:16px;line-height:1.8;margin-bottom:18px;color:#d9e5cb}
@media(max-width:760px){
 html body.body .city-resource-panel .city-resource-details{padding:10px}
 html body.body .city-resource-panel .city-resource-details>.city-resources.resource-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
 html body.body .city-resource-panel .city-resource-guide-hint{font-size:13px;margin-bottom:10px}
 html body.body .city-resource-panel .city-resource-details .resource-guide-link{padding:10px 6px;min-height:134px}
 html body.body .city-resource-panel .city-resource-details .resource-guide-link strong{font-size:16px}
 html body.body .city-resource-panel[open] .city-resource-details .resource-guide-link :is(.resource-name,small,.resource-rate){font-size:13px}
}
@media(prefers-reduced-motion:reduce){html body.body .city-resource-panel .resource-guide-link{transition:none}}



/* assets/css/usability.css */
/* The companion header, readable scroll area and primary action are separate rows. */
html body.body .bua-guide .bua-speech{display:flex;flex-direction:column;min-height:0;max-height:var(--bua-height,360px);overflow:hidden;padding:12px 14px}
html body.body .bua-guide .bua-heading{position:relative;top:auto;z-index:auto;background:transparent;flex:0 0 auto;padding:0 0 8px 28px;min-height:40px;margin:0 0 8px}
html body.body .bua-guide .bua-portrait{z-index:4;pointer-events:none}
html body.body .bua-guide .bua-tabs{flex:0 0 auto;margin-bottom:8px}
html body.body .bua-tutorial:not([hidden]){display:flex;flex-direction:column;min-height:0;flex:1 1 auto;overflow:hidden}
html body.body .bua-tutorial-scroll{min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;flex:1 1 auto;padding-right:3px}
html body.body .bua-guide .bua-actions{position:relative;flex:0 0 auto;margin-top:8px;padding-top:10px;border-top:1px solid #b8a77555;background:#10362b}
html body.body .bua-guide .bua-actions .btn{flex:1 1 100%;min-height:44px;margin:0;font-size:14px!important}
html body.body .bua-guide .bua-explore{display:none}
html body.body .bua-guide .bua-town{min-height:0;overflow:auto;overscroll-behavior:contain}
html body.body .bua-guide .bua-step-copy h2{font-size:17px;line-height:1.55}
html body.body .bua-guide .bua-step-copy p{font-size:15px;line-height:1.75}
.bua-unread{position:absolute;right:-6px;top:-8px;min-width:22px;height:22px;border-radius:50%;display:grid;place-items:center;padding:0 5px;background:#db3b43;color:#fff;border:2px solid #133c2d;font:700 12px/1 var(--font);box-shadow:0 2px 7px #0005;pointer-events:none}
.bua-unread[hidden]{display:none}.bua-launcher,.bua-header-help{overflow:visible}
/* Both account actions are always visible. */
html body.body .public-header nav .public-login,html body.body .public-header nav .public-register{display:inline-flex;align-items:center;justify-content:center;white-space:nowrap;font-size:15px;min-height:44px}
.landing-returning{margin:18px 0!important;color:#d9e8d5!important;font-size:16px!important}.landing-returning a{display:inline-block;color:#ffe1a0;text-decoration:underline;text-underline-offset:4px;margin-left:8px}
.inbox-intelligence,.inbox-message-detail{min-width:0}.inbox-intelligence .activity-report-detail{margin-top:22px;overflow-wrap:anywhere}.inbox-report-link{min-height:72px;align-items:center;gap:14px}.inbox-report-link>div{min-width:0;flex:1}.inbox-report-link b{display:block;overflow-wrap:anywhere}.inbox-report-link small{display:block;margin-top:5px}.inbox-report-link>span:last-child{flex:none}.inbox-empty{text-align:center;padding:30px 15px}.inbox-empty>.icon{width:36px;height:36px}.inbox-empty h3{font-size:22px;margin:14px 0}.inbox-back{margin-bottom:10px}.message-body{white-space:normal;overflow-wrap:anywhere;line-height:1.9}.inbox-message-detail h2{margin:20px 0}
/* Resource values live once inside the native disclosure summary. */
.city-resource-panel{position:absolute;left:50%;transform:translateX(-50%);top:16px;width:min(1120px,calc(100% - 48px));z-index:10}

.city-camera-options{grid-column:1/-1;position:relative}.city-camera-options>summary{cursor:pointer;list-style:none;display:grid;place-items:center;min-height:32px;background:#173e2e;border:1px solid #b49962;border-radius:18px;color:#f7df9f;font-size:24px;line-height:1}.city-camera-options>summary::-webkit-details-marker{display:none}.city-camera-options>div{position:absolute;right:0;bottom:calc(100% + 6px);display:grid;grid-template-columns:44px 44px;gap:5px;padding:7px;border:1px solid #b49962;border-radius:10px;background:#123629}.city-camera-options:not([open])>div{display:none}
@media(max-width:760px){
 html body.body .public-header{display:grid;grid-template-columns:minmax(0,1fr) 44px;grid-template-rows:auto auto;height:auto;min-height:64px;gap:8px 10px;padding:10px 16px;position:sticky;top:0;box-sizing:border-box}
 html body.body .public-header .masthead-brand{grid-column:1;grid-row:1;min-width:0;min-height:44px}.public-header .brand small{display:none}
 html body.body .public-header nav{grid-column:1/-1;grid-row:2;display:flex;align-items:center;justify-content:flex-end;gap:8px;width:100%;min-width:0;padding-top:8px;border-top:1px solid #d7c38a33;box-sizing:border-box}
 html body.body .public-header nav .language{position:absolute;right:16px;top:12px;min-width:42px;min-height:42px;display:grid;place-items:center}
 html body.body .public-header nav .public-login,html body.body .public-header nav .public-register{position:static;flex:1 1 0;width:auto;min-width:0;max-width:220px;margin:0;padding:9px 12px!important;min-height:44px;font-size:14px!important;border-radius:7px;box-sizing:border-box}
 html body.body .public-header nav .public-login{background:transparent;color:#f4e6c0;border:1px solid #afad8399;box-shadow:none}
 html body.body .public-header nav .public-register{background:#dec080;color:#102c23;border:1px solid #f1d393}
 html body.body .public-header nav .public-register>.header-cta-wide{display:none}html body.body .public-header nav .public-register>.header-cta-compact{display:inline}
 html body.body .public-header nav>a:not(.language):not(.public-login):not(.public-register){display:none}
 html body.body .bua-guide:not(.bua-in-dialog) .bua-portrait{width:76px;height:100px;left:0;top:-46px;bottom:auto}
 html body.body .bua-guide:not(.bua-in-dialog) .bua-speech{margin-left:8px;padding:10px 11px}
 html body.body .bua-guide:not(.bua-in-dialog) .bua-heading{padding-left:60px;min-height:40px}
 html body.body .bua-guide .bua-heading b{font-size:19px}.bua-heading small{display:none!important}
 html body.body .bua-guide .bua-tabs button{min-height:34px;font-size:12px}
 html body.body .bua-guide .bua-actions{padding-top:8px;margin-top:7px}
 html body.body .bua-guide.bua-in-dialog .bua-heading{padding-left:0;min-height:0}
 html body.body .city-resource-panel{top:8px;left:8px;right:8px;transform:none;width:auto}
 html body.body .city-resource-panel>summary{display:flex;gap:5px;align-items:center;min-height:52px;padding:6px 5px;border:1px solid #c3a663;border-radius:8px;background:#14392ef5;color:#fff0c9;cursor:pointer;list-style:none}
 .city-resource-panel>summary::-webkit-details-marker{display:none}.city-resource-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));flex:1;min-width:0;gap:2px}.city-resource-mini{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;line-height:1.1}.city-resource-mini .icon{width:16px;height:16px;color:#e7c574}.city-resource-mini b{font-size:13px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.city-resource-caret{font-size:20px;padding:0 2px}
 html body.body .city-resource-panel[open] .city-resource-caret{transform:rotate(180deg)}
 html body.body .city-stage .city-heading{left:12px;top:calc(var(--city-resource-bottom,60px) + 10px);max-width:calc(100% - 170px);margin:0}
 html body.body .city-heading>.eyebrow{display:none}.city-heading h1{font-size:23px!important;line-height:1.35!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 0 6px}
 html body.body .city-heading .village-beacon{width:auto;max-width:100%;display:inline-flex;align-items:center;gap:9px;padding:5px 7px;margin:0 0 5px;font-size:11px;pointer-events:auto}
 html body.body .city-heading .village-beacon b{font-size:12px}html body.body .city-heading .village-beacon :is(.village-beacon-track,small){display:none}
 html body.body .city-heading .city-coordinates{display:none}
 html body.body .city-heading .city-dragon-link{display:inline-flex;position:static;max-width:100%;margin:0;padding:3px;background:#173b2ebf;pointer-events:auto;border-radius:50%}
 html body.body .city-heading .city-dragon-link img{width:28px;height:28px;flex-basis:28px}html body.body .city-heading .city-dragon-link>span{display:none}
 html body.body .city-stage .city-queue{top:calc(var(--city-resource-bottom,60px) + 10px);bottom:auto;right:10px;width:140px;max-height:200px}
 html body.body .city-stage .city-camera{display:grid;grid-template-columns:44px 44px;gap:5px;right:10px;bottom:calc(var(--game-dock-height,76px) + 12px);padding:0}
 html body.body .city-stage .city-camera button{width:44px;height:44px;min-height:44px}
 .inbox-intelligence{padding:22px 16px!important}.inbox-intelligence .report-field{padding:15px 0}.inbox-intelligence .report-field h4{font-size:16px}.inbox-intelligence .activity-report-detail{padding:18px 12px}.inbox-report-link{padding:15px 0}
}

.city-sprite[data-food-art="15"]{background-image:url("../images/logistics/workers-lodge.webp")!important;background-size:contain!important;background-position:center!important}

.city-sprite[data-food-art="16"]{background-image:url("../images/logistics/equipment-warehouse.webp")!important;background-size:contain!important;background-position:center!important}

/* Desktop uses the same expandable resource summary as the phone. */
@media(min-width:761px){
 html body.body .city-resource-panel{width:min(790px,calc(100% - 48px));top:16px}
 html body.body .city-resource-panel>summary{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 14px;border:1px solid #c3a663;border-radius:10px;background:#14392ef5;color:#fff0c9;cursor:pointer;list-style:none}
 .city-resource-panel>summary::-webkit-details-marker{display:none}
 .city-resource-totals{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));flex:1;min-width:0;gap:10px}
 .city-resource-mini{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;line-height:1.25}
 .city-resource-mini .icon{width:20px;height:20px;flex:0 0 20px;color:#e7c574}.city-resource-mini b{font-size:15px;font-variant-numeric:tabular-nums}
 .city-resource-caret{font-size:22px}.city-resource-panel[open] .city-resource-caret{transform:rotate(180deg)}
 html body.body .city-stage .city-heading,html body.body .city-stage .city-queue{top:calc(var(--city-resource-bottom,64px) + 14px)}
}

.building-speed-bonus,.building-speed-note,.building-queue-summary{font-size:15px!important;line-height:1.8!important;color:#dce9d0}.building-speed-bonus b,.building-queue-summary b{color:#ffe4a5}.building-speed-bonus small{display:block;margin-top:7px;color:#c9dbc4;font-size:14px}

/* A single resource dataset changes from compact counters to detailed cards in place. */
html body.body .city-resource-panel>summary{align-items:flex-start;box-sizing:border-box;min-height:64px;padding:10px 12px;outline-offset:3px}
html body.body .city-resource-panel>summary .city-resources.resource-bar{position:static!important;inset:auto!important;transform:none!important;width:auto!important;flex:1;min-width:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;padding:0;background:none;border:0;outline:0;box-shadow:none;border-radius:0;overflow:visible;gap:0}
html body.body .city-resource-panel>summary .resource-stat{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:3px;padding:0 7px;min-height:0;text-align:center;border:0}
html body.body .city-resource-panel .resource-stat:before{display:none}
html body.body .city-resource-panel .city-resource-value{display:flex;align-items:center;justify-content:center;gap:7px;min-height:42px;min-width:0;width:100%;color:#fff0c9}
html body.body .city-resource-panel .city-resource-value>.resource-symbol{display:flex;width:20px;height:24px;flex:0 0 20px;color:#e7c574}
html body.body .city-resource-panel .resource-stat strong{display:block;white-space:nowrap;font-size:15px;line-height:1.35}
html body.body .city-resource-panel .resource-stat :is(.resource-name,small,.resource-rate){margin:0;padding:0;line-height:1.5;white-space:normal;overflow-wrap:anywhere}
html body.body .city-resource-panel:not([open]) .resource-stat :is(.resource-name,small,.resource-rate){display:none}
html body.body .city-resource-panel[open] .resource-stat :is(.resource-name,small,.resource-rate){display:block}
html body.body .city-resource-panel .city-resource-caret{align-self:flex-start;display:grid;place-items:center;min-height:42px;flex:0 0 18px}
html body.body .city-resource-panel[open]>summary{max-height:min(320px,calc(100dvh - var(--game-dock-height,76px) - 110px));overflow:auto;overscroll-behavior:contain;scrollbar-width:thin}
html body.body .city-resource-panel[open] .resource-stat{padding-bottom:8px}
@media(max-width:760px){
 html body.body .city-resource-panel>summary{padding:7px 5px;gap:3px}
 html body.body .city-resource-panel .city-resource-value{flex-direction:column;gap:2px;min-height:48px}
 html body.body .city-resource-panel .city-resource-value>.resource-symbol{width:18px;height:18px;flex-basis:18px}.city-resource-value .icon{width:18px;height:18px}
 html body.body .city-resource-panel .resource-stat{padding:0 2px}
 html body.body .city-resource-panel .resource-stat strong{font-size:12px;letter-spacing:-.25px}
 html body.body .city-resource-panel .city-resource-caret{min-height:48px;flex-basis:14px}
 html body.body .city-resource-panel[open]>summary .city-resources.resource-bar{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 4px}
 html body.body .city-resource-panel[open] .city-resource-value{flex-direction:row;min-height:30px;gap:5px}
 html body.body .city-resource-panel[open] .resource-stat strong{font-size:15px}
 html body.body .city-resource-panel[open] .resource-stat :is(.resource-name,small,.resource-rate){font-size:12px}
}

/* Expanded resources paint above the fixed builder panel without moving it. */
html body.body .city-resource-panel[open]{z-index:12}

/* Inbox actions remain reachable above the report list on compact screens. */
.inbox-heading-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:12px;max-width:100%}.inbox-heading-actions form{margin:0}.inbox-heading-actions .btn{min-height:44px;white-space:normal}.inbox-read-all-help{font-size:15px!important;line-height:1.8!important;color:#ddd6ba!important;margin:-12px 0 22px;max-width:850px}.inbox-read-all-notice{padding:14px 18px;margin:0 0 22px;border:1px solid #bda567;border-radius:8px;background:#173d30;color:#f7e7b5!important;font-size:16px!important;line-height:1.8}@media(max-width:650px){.inbox-heading-actions{width:100%;justify-content:stretch;gap:10px}.inbox-heading-actions>a,.inbox-heading-actions>form{flex:1 1 155px}.inbox-heading-actions form>.btn{width:100%}.inbox-heading-actions .btn{font-size:15px;padding:10px 12px}.inbox-read-all-help{margin:0 0 22px}}

/* Inbox actions belong below the heading on phones, not in a narrow side column. */
@media(max-width:760px){
 .game-shell .inbox-page-heading{display:flex;flex-direction:column;align-items:stretch;gap:14px;margin-bottom:18px}
 .game-shell .inbox-page-heading>div{width:100%;min-width:0}
 .game-shell .inbox-page-heading h1{font-size:clamp(26px,7.4vw,32px);line-height:1.35}
 .game-shell .inbox-page-heading .eyebrow{font-size:12px;letter-spacing:1.3px}
 .game-shell .inbox-page-heading .inbox-heading-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch;justify-content:stretch}
 .game-shell .inbox-page-heading .inbox-heading-actions>a,.game-shell .inbox-page-heading .inbox-heading-actions>form{width:100%;min-width:0;max-width:none;margin:0}
 .game-shell .inbox-page-heading .inbox-heading-actions .btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:100%;min-height:44px;padding:9px 8px;font-size:14px;line-height:1.4;white-space:normal;text-align:center;box-sizing:border-box}
 .game-shell .inbox-page-heading .inbox-heading-actions .icon{width:17px;height:17px;flex:0 0 17px}
 .game-shell .inbox-page-heading+.inbox-read-all-help{margin-top:0}
}


/* assets/css/growth.css */
.festival-hero{position:relative;overflow:hidden;border:1px solid #cba45c70;border-radius:24px;padding:clamp(24px,5vw,56px);margin:0 0 24px;background:radial-gradient(ellipse at 85% 0,#315c5e 0,transparent 60%),linear-gradient(120deg,#141e29,#26353c);color:#fff3d5;isolation:isolate}.festival-hero h1{max-width:800px;font-size:clamp(30px,4vw,48px);line-height:1.3;color:#fff5d9}.festival-hero p{max-width:760px;font-size:17px;line-height:1.85;color:#e0e9e7}.festival-hero .eyebrow{color:#f3cb7d}.festival-orbit{position:absolute;right:3%;top:-70px;font-size:300px;opacity:.15;z-index:-1;animation:festival-drift 14s ease-in-out infinite}.growth-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:24px 0}.growth-card{padding:clamp(20px,3vw,32px);margin-bottom:22px;min-width:0}.growth-card p{font-size:16px;line-height:1.85}.growth-stat{font-size:44px;font-weight:800;color:var(--gold,#a06c23);margin:14px 0}.growth-stat small{font-size:16px;font-weight:500}.festival-hero .growth-stat{color:#ffd58b}.invite-copy{display:flex;gap:12px;flex-wrap:wrap}.invite-copy input{flex:1;min-width:180px;font-size:16px}.online-rewards{display:grid;gap:10px;margin:15px 0}.online-rewards form{display:flex;align-items:center;justify-content:space-between;gap:12px}.online-rewards b{font-size:15px}.festival-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,330px),1fr));gap:20px}.festival-card{display:flex;align-items:flex-start;gap:18px;padding:24px;min-width:0}.festival-card h3{font-size:21px;margin:12px 0}.festival-card p{font-size:15px;line-height:1.75}.festival-symbol{flex:0 0 54px;display:grid;place-items:center;width:54px;height:54px;border-radius:18px;color:#f7d58f;background:linear-gradient(135deg,#2b555b,#172a35);font-size:32px;box-shadow:inset 0 0 0 1px #d2b26b80}.theme-hearts .festival-symbol{background:linear-gradient(135deg,#88505a,#382638)}.theme-pumpkins .festival-symbol{background:linear-gradient(135deg,#b87229,#3e2422)}.theme-water .festival-symbol{background:linear-gradient(135deg,#368992,#1b3547)}.theme-sale .festival-symbol{background:linear-gradient(135deg,#aa8638,#3a432e)}.sale-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;padding:18px 22px;background:#213b3c;color:#fff0ca;border:1px solid #c5a364;border-radius:16px;margin:22px 0}.item-price del{font-size:14px;color:#746957;margin-right:8px}.growth-admin-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.growth-admin-form label{display:grid;gap:6px}.growth-admin-form .wide{grid-column:1/-1}.growth-admin-form input,.growth-admin-form select{width:100%;min-width:0}.growth-card .table-scroll{margin:16px 0}.growth-card th,.growth-card td{padding:14px;text-align:left}.bua-header-help{position:relative}.bua-header-help .bua-unread{position:absolute;right:-5px;top:-5px}.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}
@keyframes festival-drift{50%{transform:translateY(20px) rotate(8deg)}}
@media(max-width:760px){.growth-grid{grid-template-columns:1fr;gap:0}.growth-card{padding:20px}.festival-hero{border-radius:18px}.festival-card{padding:20px;gap:12px}.festival-symbol{width:42px;height:42px;flex-basis:42px;font-size:26px}.growth-admin-form{grid-template-columns:1fr}.growth-stat{font-size:36px}}
@media(prefers-reduced-motion:reduce){.festival-orbit{animation:none}}
/* 0.7.10: painted festival scenes with quiet, compositor-friendly light. */
.festival-hero{min-height:360px;background:#102d2a;padding:clamp(26px,5vw,54px)}.festival-hero-art{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;opacity:.47;z-index:-2}.festival-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0d2426f5 10%,#0d2426b8 55%,#0d242620);z-index:-1}.festival-hero-copy{max-width:700px}.festival-hero .btn{background:#f7e5bb;color:#214b3b;border-color:#eac67b}.reward-art-card{padding:0!important;overflow:hidden;display:flex;flex-direction:column}.reward-art{position:relative;aspect-ratio:16/7;overflow:hidden;background:#173c34}.reward-art img,.festival-art img{display:block;width:100%;height:100%;object-fit:cover}.reward-art:after{content:'';position:absolute;inset:50% 0 0;background:linear-gradient(transparent,#092823d9)}.reward-art>span{position:absolute;bottom:16px;left:24px;z-index:1;color:#ffe6a4;font-size:12px;font-weight:800;letter-spacing:2px}.reward-card-body{padding:24px;flex:1}.reward-card-body h2{margin-top:0}.reward-card-body small{display:block;color:#575948;font-size:14px;line-height:1.8;margin-top:14px}.daily-gift-actions{display:flex;gap:12px;flex-wrap:wrap}.daily-gift-actions form{flex:1;min-width:180px}.daily-gift-actions .btn{width:100%}.festival-section{margin:34px 0}.festival-explanation{font-size:16px;line-height:1.85;max-width:950px;margin-bottom:24px}.festival-card{display:flex;flex-direction:column;gap:0;padding:0!important;overflow:hidden;border:1px solid #a58e57;background:#f9f1de;box-shadow:0 12px 35px #081c2029}.festival-art{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;isolation:isolate;background:#193d34}.festival-art>.badge{position:absolute;left:14px;bottom:14px;color:#fff5cf;background:#174734e8;border:1px solid #e8cb8580;font-size:13px;z-index:1}.festival-art-glow{position:absolute;inset:0;background:radial-gradient(ellipse at 70% 30%,#ffd4872b,transparent 60%);pointer-events:none;animation:festival-glow 8s ease-in-out infinite}.festival-card-body{display:flex;flex-direction:column;gap:12px;padding:24px;flex:1;color:#334b3c}.festival-card h3{margin:0;font-size:23px;line-height:1.5;color:#214b35}.festival-card p{margin:0;font-size:16px;line-height:1.85}.festival-card small{font-size:15px;color:#72551c}.festival-date{color:#58634f;font-size:14px!important}.festival-perk{display:flex;align-items:center;gap:9px;font-weight:700}.festival-perk .icon{flex:0 0 21px}.festival-card form{margin-top:auto}.festival-card .btn{width:100%;min-height:46px}.festival-preview .festival-art>.badge{background:#343e47e6}.festival-empty{padding:30px;text-align:center;color:#334a3c;background:linear-gradient(135deg,#f9f0db,#e5e5ca)}.festival-empty h3{font-size:23px;color:#244e37}.festival-empty p{font-size:16px;line-height:1.85}.festival-empty-spark{font-size:36px;color:#9d782d}.festival-admin-preview{margin:28px 0;padding:20px;background:#f0e8d2;color:#334b3c}.festival-admin-preview>summary{display:flex;align-items:center;gap:12px;min-height:44px;font-size:18px;font-weight:700;cursor:pointer}.festival-admin-preview>summary>span{margin-left:auto;border:1px solid #94835a;border-radius:20px;padding:2px 12px}.festival-admin-preview>.festival-list{margin-top:24px}.festival-admin-preview>p{font-size:16px;line-height:1.85}.bua-event-summary{color:#32533e}
@keyframes festival-glow{50%{opacity:.3}}
@media(max-width:760px){.festival-list{grid-template-columns:minmax(0,1fr);gap:22px}.festival-hero{min-height:0;padding:26px 22px}.festival-hero-art{opacity:.3}.festival-hero:after{background:#0b2925a6}.festival-card-body,.reward-card-body{padding:20px}.festival-card h3{font-size:22px}.festival-card .btn{width:100%}.festival-admin-preview{padding:16px}.online-rewards form{gap:10px}.festival-hero h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){.festival-art-glow{animation:none}}
.effects-off .festival-art-glow{animation:none}

.queue-pass-item .queue-pass-stock{font-size:17px;color:#284e39;margin:18px 0}.queue-pass-active{padding:12px;border:1px solid #cda757;border-radius:10px;background:#f4ebce;color:#295139}.queue-pass-use{margin:14px 0 20px}.queue-pass-daily{display:block;text-align:center;font-size:15px;color:#315e41;text-decoration:underline;margin-top:15px}



/* assets/css/navigation.css */
/* Shared drawer: compact sections, readable labels and stable positions on every game page. */
.game-shell .sidebar{width:320px;max-width:calc(100vw - 24px);padding:20px 14px 24px;overscroll-behavior:contain;scrollbar-gutter:stable}
.sidebar-top{display:flex;align-items:center;gap:8px}.sidebar-top .brand{flex:1;min-width:0;margin:0;padding:8px}.sidebar-top .brand>span{min-width:0;font-size:20px;letter-spacing:1px}.sidebar-top .brand small{font-size:12px;letter-spacing:0}.sidebar-close{flex:0 0 36px;width:36px;height:36px;color:#31533f;border:1px solid #b4a274;border-radius:50%;font-size:24px;line-height:1;background:transparent;cursor:pointer}.sidebar-close:focus-visible,.nav-group>summary:focus-visible{outline:3px solid #88671c;outline-offset:3px}
.game-shell .sidebar .world-pill{margin:14px 6px 16px;background:#fff8e8;border-color:#b4a274;color:#2c513c;gap:8px;min-height:38px;font-size:13px}.game-shell .sidebar .world-pill>span:last-child{margin-left:auto;color:#6d735e;font-size:11px}.grouped-navigation{display:grid;gap:8px}.nav-group{border:1px solid #c6b78e;border-radius:12px;background:#fff9eb55;overflow:hidden}.nav-group>summary{list-style:none;display:flex;align-items:center;gap:10px;min-height:48px;padding:10px 12px;font-size:15px;font-weight:700;line-height:1.5;color:#294735;cursor:pointer}.nav-group>summary::-webkit-details-marker{display:none}.nav-group>summary>.icon{width:20px;height:20px;flex:0 0 20px}.nav-group>summary>span{flex:1;min-width:0}.nav-group>summary:after{content:'⌄';font-size:20px;line-height:1;transition:transform .18s ease}.nav-group[open]>summary:after{transform:rotate(180deg)}.nav-group.has-current>summary{background:#e5d7af;color:#214e37}.nav-group[open]>summary{border-bottom:1px solid #c6b78e}.nav-group .main-nav{padding:5px;gap:2px}.game-shell .nav-group .nav-link{display:flex;align-items:center;gap:11px;min-height:44px;margin:0;padding:9px 12px;border-radius:8px;font-size:16px;line-height:1.55;color:#4d503e;white-space:normal}.nav-group .nav-link>span{min-width:0;overflow-wrap:anywhere}.nav-group .nav-link>.icon{flex:0 0 20px;width:20px;height:20px}.game-shell .nav-group .nav-link.active{background:#315d40;color:#fff2ca}.game-shell .nav-group .nav-link:hover{background:#e3d8b7;color:#254c36}.game-shell .nav-group .nav-link.active:hover{background:#254b33;color:#fff2ca}.nav-group .nav-link:focus-visible{outline:2px solid #846119;outline-offset:-2px}.game-shell .sidebar-bottom{padding:18px 6px 0;margin:0}.sidebar-bottom .season-card{display:none}.sidebar-bottom .profile{margin:0}.nav-group.staff-nav>summary{background:#e3dccb}
@media(max-width:760px){.game-shell .sidebar{width:300px;max-width:calc(100vw - 24px);padding:14px 10px 22px}.nav-group>summary{min-height:46px;font-size:15px;padding:10px}.game-shell .nav-group .nav-link{font-size:16px;min-height:44px}.grouped-navigation{gap:7px}}
@media(prefers-reduced-motion:reduce){.nav-group>summary:after{transition:none}}

.inbox-link{position:relative}.inbox-unread{display:inline-grid;place-items:center;min-width:21px;height:21px;padding:0 5px;border:0;border-radius:999px;background:#bc530b;color:#fff!important;font-family:var(--font);font-size:12px!important;font-weight:800;line-height:1;box-shadow:0 2px 5px #48230940}.inbox-link>.inbox-unread{position:absolute;top:-5px;right:-6px}.nav-link>.inbox-unread{margin-left:auto;flex:0 0 auto}.inbox-unread[hidden]{display:none!important}

/* Desktop can reserve only 68px, or none. Changing modes does not animate the scene width. */
.sidebar-display{border:0;padding:0;margin:14px 4px 10px;min-width:0}
.sidebar-display legend{font-size:12px;line-height:1.6;color:#52654c;margin-bottom:7px}
.sidebar-display>div{display:flex;gap:3px;padding:4px;background:#d8ccac;border-radius:10px}
.sidebar-display button{flex:1;min-width:0;min-height:40px;border:0;border-radius:7px;padding:6px 5px;background:transparent;color:#38513b;font:600 13px/1.4 var(--font);cursor:pointer}
.sidebar-display button[aria-pressed="true"]{background:#315d40;color:#fff2ca;box-shadow:0 2px 6px #16332326}
.sidebar-display button:focus-visible,.sidebar-rail-item:focus-visible{outline:3px solid #b98d32;outline-offset:2px}
.game-shell .sidebar{width:280px;padding-inline:10px;scrollbar-gutter:auto}
.game-shell .sidebar-close{flex-basis:44px;width:44px;height:44px}
.sidebar-backdrop{position:fixed;inset:72px 0 0;z-index:89;border:0;background:#09251b45;cursor:pointer}
.sidebar-rail{position:fixed;top:72px;bottom:0;left:0;width:68px;z-index:88;padding:12px 8px;display:flex;flex-direction:column;gap:7px;overflow-y:auto;overscroll-behavior:contain;background:linear-gradient(160deg,#173a2d,#10291f);border-right:1px solid #bca57080;box-sizing:border-box}
.sidebar-rail-item{position:relative;display:flex;align-items:center;justify-content:center;flex:0 0 44px;width:50px;min-height:44px;padding:10px;border:1px solid transparent;border-radius:10px;background:transparent;color:#e3d1a1;cursor:pointer;text-decoration:none}
.sidebar-rail-item .icon{width:22px;height:22px;flex:0 0 22px}
.sidebar-rail-item:hover,.sidebar-rail-item.is-current{background:#365b41;border-color:#b7a16d;color:#fff1c6}
.sidebar-rail-item>.inbox-unread{position:absolute;top:-3px;right:-3px;min-width:17px;height:17px;font-size:10px!important;padding:0 3px}
.sidebar-rail[hidden],.sidebar-backdrop[hidden]{display:none!important}
@media(min-width:1051px){
 .game-shell{--navigation-width:0px}
 .game-shell[data-sidebar-mode="compact"]{--navigation-width:68px}
 .game-shell[data-sidebar-mode="full"]{--navigation-width:280px}
 .game-shell[data-sidebar-mode]>.workspace{box-sizing:border-box;padding-left:var(--navigation-width);margin-left:0;width:100%}
 .game-shell[data-sidebar-mode]>.workspace>.topbar{margin-left:calc(-1 * var(--navigation-width));width:calc(100% + var(--navigation-width))}
 .game-shell[data-sidebar-mode="full"]>.sidebar{transform:translateX(0);box-shadow:none}
 .game-shell[data-sidebar-mode="full"]>.sidebar.open{box-shadow:20px 0 80px #071a1860}
}
@media(max-width:760px){
 .game-shell .sidebar{width:280px;max-width:calc(100vw - 24px)}
 .sidebar-backdrop{top:64px}
}


/* assets/css/quest-layout.css */
/* Explicit width and auto height override the older fixed-height artwork rules on every viewport. */
.quest-category{margin:32px 0}.quest-category-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 20px}.quest-category-heading h2{font-size:26px;margin:0 0 6px;color:#f4e8c3}.quest-category-heading p{font-size:16px;line-height:1.8;color:#d2d9c0;margin:0}.quest-category .cinematic-quest-grid,.quest-completed .cinematic-quest-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin:0}.quest-card h3{font-size:22px;line-height:1.55;color:#284a35;margin:14px 0 10px}.quest-card-content>p{font-size:16px;line-height:1.85}.quest-card .quest-picture{display:block;position:relative;width:100%;max-width:100%;height:auto;aspect-ratio:16/8;min-height:0;box-sizing:border-box}.quest-card .quest-picture img{display:block;position:absolute;inset:0;height:100%;width:100%;max-width:100%;object-fit:cover}.quest-card .btn{margin-top:auto;width:100%}.quest-card-content{display:flex;flex-direction:column}.quest-ready{border-color:#e1b358;box-shadow:0 8px 28px #d8ae3f24}.quest-card.quest-locked{opacity:1}.quest-card.quest-locked .quest-picture{opacity:.64}.quest-lock-note{display:flex;align-items:center;gap:8px;color:#5b624e;font-size:15px!important}.quest-lock-note>.icon{width:19px;height:19px;flex:0 0 19px}.quest-completed{margin:34px 0;padding:24px;color:#334b3a;background:#eee6d1}.quest-completed>summary{display:flex;align-items:center;gap:12px;min-height:44px;font-size:20px;font-weight:700;cursor:pointer}.quest-completed>summary>span{margin-left:auto}.quest-completed>p{font-size:16px;line-height:1.8}.quest-completed .quest-card{box-shadow:none}.quest-completed .quest-picture{aspect-ratio:16/6}.quest-category-empty{padding:24px;font-size:16px;line-height:1.85}.quest-category-heading>.badge{flex-shrink:0}
@media(max-width:760px){.quest-category .cinematic-quest-grid,.quest-completed .cinematic-quest-grid{grid-template-columns:minmax(0,1fr)!important;gap:24px}.quest-category-heading{align-items:flex-start}.quest-category-heading h2{font-size:23px}.quest-card .quest-picture{aspect-ratio:16/9}.quest-completed{padding:18px}.quest-card h3{font-size:22px}.quest-completed>summary{font-size:18px}}



/* assets/css/pagination.css */
.information-page .pagination{margin:26px 0 12px;padding:18px 0;border-top:1px solid #baa57477;text-align:center}.pagination>p{font-size:15px!important;line-height:1.75;color:#5a604a;margin:0 0 12px!important}.pagination-controls{display:flex;align-items:center;justify-content:center;gap:12px}.pagination-pages{display:flex;justify-content:center;gap:6px;align-items:center}.pagination-controls a,.pagination-controls button,.pagination-controls .pagination-current,.pagination-controls .is-disabled{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:44px;min-height:44px;border:1px solid #a5905e;border-radius:8px;padding:8px 12px;font:600 15px/1.6 var(--font);color:#244e38;background:#fff8e7;text-decoration:none}.pagination-controls button:not(:disabled):hover,.pagination-controls a:hover{background:#e5d6aa;border-color:#6b7750}.pagination-controls .pagination-current{background:#315c40;color:#fff2ce;border-color:#315c40}.pagination-controls .is-disabled{opacity:.5}.pagination-controls button:focus-visible,.pagination-controls a:focus-visible{outline:3px solid #8f681c;outline-offset:3px}.pagination-gap{padding:0 2px;color:#656a51}.pagination-current{font-variant-numeric:tabular-nums}
@media(max-width:600px){.pagination-controls{flex-wrap:wrap;gap:10px;max-width:380px;margin:auto}.pagination-prev{margin-right:auto}.pagination-next{margin-left:auto}.pagination-pages{order:3;flex-basis:100%;gap:5px}.pagination-controls a,.pagination-controls button,.pagination-controls .pagination-current{padding:8px 11px;font-size:14px}.pagination>p{font-size:14px!important}}

.pagination-controls button{cursor:pointer}.pagination-controls button:disabled:not([aria-current]){opacity:.5;cursor:default}
.inbox-streams{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.inbox-streams .btn{display:flex;align-items:center;justify-content:center;gap:10px;min-height:46px;white-space:normal;line-height:1.65}.inbox-streams .btn>span{font-size:.85em;line-height:1.5;min-width:22px;padding:2px 7px;border-radius:6px;background:#172d2320;font-variant-numeric:tabular-nums}.inbox-streams .btn[aria-current=page]{box-shadow:inset 0 -3px #36513b66}.inbox-intelligence>.pagination,.inbox-legacy>.pagination{border-top:1px solid #a98e5855;margin:22px 0 0;padding-top:18px}.inbox-filter-note{font-size:15px!important;line-height:1.8!important;overflow-wrap:anywhere}@media(max-width:600px){.inbox-streams{gap:10px}.inbox-streams .btn{flex:1 1 145px;font-size:15px;padding:10px 12px;min-width:0;max-width:100%}}



/* assets/css/resource-packs.css */
.resource-pack-intro{font-size:16px;line-height:1.85;max-width:880px;margin:0 0 25px;color:#dbe7cb}
.resource-pack-grid{align-items:stretch}.resource-pack-card{display:flex;flex-direction:column}.resource-pack-card .store-item-body{display:flex;flex:1;flex-direction:column;min-width:0}
.resource-pack-card .resource-pack-art{min-height:188px;display:flex;flex-direction:column;justify-content:center;gap:6px}.resource-pack-art .cosmetic-avatar{margin-bottom:6px}.resource-pack-art>.cosmetic-avatar>.icon{width:54px;height:54px}.is-store .resource-pack-art>b{font-size:24px;letter-spacing:1px}.resource-pack-art>span:last-child{font-size:14px;color:#e1d29f}
.resource-pack-card form{display:flex;flex-direction:column;gap:10px;margin-top:auto;padding-top:10px}.resource-pack-card form>label{font-size:14px;line-height:1.6;color:#d5dfc2}.resource-pack-card select{max-width:100%;width:100%;min-height:44px;font-size:14px}.resource-pack-card button{min-height:46px;line-height:1.6;padding:10px 14px;font-size:15px;white-space:normal}.resource-pack-status{display:block;margin-top:12px;font-size:13px;line-height:1.7;color:#d0d9bf}
@media(max-width:760px){.resource-pack-intro{font-size:16px}.resource-pack-grid{grid-template-columns:1fr}.resource-pack-card .resource-pack-art{min-height:160px}.resource-pack-card .store-item-body{padding:22px}.resource-pack-card button{width:100%}}

@media(max-width:760px){.is-store .market-nav{flex-wrap:wrap;gap:6px 16px;max-width:100%;box-sizing:border-box}.is-store .market-nav>a{min-height:44px;min-width:0;font-size:14px;line-height:1.5;overflow-wrap:anywhere;text-align:center;justify-content:center}}



/* assets/css/requirement-help.css */
.requirement-help{padding:12px 14px;margin:12px 0;border:1px solid #b9a679;border-radius:8px;background:#eee5ce;color:#354533;min-width:0;box-sizing:border-box}.requirement-help.is-blocked{border-left:3px solid #b28b43}.requirement-help .requirement-summary{font-size:14px!important;line-height:1.75!important;color:#57482b!important;margin:0 0 6px!important}.requirement-help .requirement-summary b{color:#3c482e}.requirement-details>summary{display:flex;justify-content:space-between;align-items:center;gap:10px;min-height:44px;font-size:14px;color:#405536;cursor:pointer}.requirement-details>summary span{font-variant-numeric:tabular-nums;flex-shrink:0}.requirement-details ul{list-style:none;margin:5px 0 12px;padding:0;display:grid;gap:9px}.requirement-details li{display:flex;align-items:flex-start;gap:8px;padding:8px 0;border-bottom:1px solid #b8a27544;font-size:14px;line-height:1.75;min-width:0}.requirement-details li>div{min-width:0}.requirement-details li b,.requirement-details li div>span,.requirement-details li small{display:block;overflow-wrap:anywhere}.requirement-details li div>span{font-size:14px;color:#605738}.requirement-details li small{font-size:13px;line-height:1.75;color:#656347;margin-top:4px}.requirement-state{flex:0 0 16px;color:#936c29}.is-met>.requirement-state{color:#456d39}.requirement-ask{font-size:14px!important;min-height:40px;line-height:1.6;padding:8px 12px}.requirement-help .requirement-ask{margin-top:4px;background:#e3d2a9!important;color:#394b30!important;max-width:100%;white-space:normal}.requirement-page{max-width:1000px;margin-inline:auto;padding:24px}.requirement-page-heading{display:flex;gap:18px;align-items:center}.requirement-page-heading img{object-fit:contain;flex:0 0 90px}.requirement-page h1{color:#374a31!important;font-size:28px}.requirement-page-list{list-style:none;padding:0;margin:22px 0;display:grid;gap:14px}.requirement-page-list li{padding:14px;border:1px solid #baa36d;border-radius:8px}.requirement-page-list h2{font-size:20px!important;margin:0 0 8px}.requirement-page-list p{font-size:16px!important;line-height:1.8!important}.requirement-help a:focus-visible,.requirement-details>summary:focus-visible{outline:2px solid #375b3c;outline-offset:3px}@media(max-width:760px){.requirement-help{padding:10px 12px}.requirement-page{padding:18px}.requirement-page-heading{gap:12px}.requirement-page-heading img{width:65px;height:95px;flex-basis:65px}.requirement-page h1{font-size:23px}}

/* Requirement state is communicated with words and an icon, as well as colour. */
.requirement-status-label{display:inline-flex;align-items:center;gap:5px;max-width:100%;box-sizing:border-box;padding:3px 9px;border:1px solid currentColor;border-radius:6px;font-size:13px!important;font-weight:600;line-height:1.6;white-space:normal;overflow-wrap:anywhere;margin-bottom:7px}
.requirement-counts{font-size:14px!important;line-height:1.8!important;color:#41513d!important;margin:8px 0;overflow-wrap:anywhere}
.requirement-details li[class*=requirement-status-]{padding:10px;border:1px solid;border-left-width:4px;border-radius:7px;opacity:1}
:is(.requirement-details,.requirement-page-list) .requirement-status-passed,:is(.requirement-details,.requirement-page-list) .requirement-status-complete{background:#e2e9df;border-color:#a0b09a;color:#40573d}
:is(.requirement-details,.requirement-page-list) .requirement-status-waiting{background:#e4eff4;border-color:#6890a6;color:#244e66}
:is(.requirement-details,.requirement-page-list) .requirement-status-claim{background:#eef0d8;border-color:#929d50;color:#495319}
:is(.requirement-details,.requirement-page-list) .requirement-status-missing{background:#fff0e4;border-color:#bb7348;color:#763e25}
html body.body :is(.requirement-details,.requirement-page-list) li[class*=requirement-status-] :is(b,h2,p,small,.requirement-state,.requirement-status-label){color:inherit!important}
.requirement-details li div>.requirement-status-label{display:inline-flex;font-size:13px;color:inherit}
.requirement-details li div>span:not(.requirement-status-label){color:inherit}

/* Dark Bua panels keep completed checks readable and let unfinished work stand out. */
#bua-guide [data-bua-question-list]>li[class*=requirement-status-]{--requirement-bg:#382521;--requirement-border:#d9956e;--requirement-ink:#ffdfc5;--requirement-detail:#f0cdb6;background:var(--requirement-bg)!important;border:1px solid var(--requirement-border)!important;border-left-width:4px!important;padding:13px;min-width:0;box-sizing:border-box;opacity:1!important;color:var(--requirement-ink)!important}
#bua-guide [data-bua-question-list]>li.requirement-status-passed,#bua-guide [data-bua-question-list]>li.requirement-status-complete{--requirement-bg:#0c3028;--requirement-border:#456556;--requirement-ink:#bfd4c6;--requirement-detail:#b3c5b9}
#bua-guide [data-bua-question-list]>li.requirement-status-waiting{--requirement-bg:#18394a;--requirement-border:#5b9db6;--requirement-ink:#c5ebf4;--requirement-detail:#bedce7}
#bua-guide [data-bua-question-list]>li.requirement-status-claim{--requirement-bg:#343820;--requirement-border:#b9c96e;--requirement-ink:#f0f2c1;--requirement-detail:#e1e6b7}
#bua-guide [data-bua-question-list]>li[class*=requirement-status-]>:is(b,.requirement-status-label){color:var(--requirement-ink)!important}
html body.body #bua-guide [data-bua-question-list]>li[class*=requirement-status-]>:is(p,.requirement-values){color:var(--requirement-detail)!important}
#bua-guide [data-bua-question-list]>li>.requirement-status-label{display:inline-flex;font-size:14px!important;line-height:1.65;font-weight:600;width:auto;padding:3px 9px;margin:0 0 8px;max-width:100%;white-space:normal}
#bua-guide [data-bua-question-list]>li>.requirement-status-label>span{color:inherit}
#bua-guide [data-bua-question-list]>li>b{display:block;overflow-wrap:anywhere}
#bua-guide [data-bua-question-list]>li>.requirement-values{display:block;overflow-wrap:anywhere}
#bua-guide [data-bua-question-list]>li.requirement-status-missing .bua-question-how{color:#ffe4bd!important}
#bua-guide [data-bua-question-list]>li .bua-question-how:focus-visible{outline:2px solid #fff5dc;outline-offset:3px}


/* assets/css/production-panels.css */
/* Compact native disclosures keep the workshop, academy and barracks scannable. */
.production-building-overview{display:grid;grid-template-columns:125px minmax(0,1fr);gap:24px;align-items:start;padding:22px 0;margin-bottom:24px;border-bottom:1px solid #bda56870}.production-building-overview>.module-lead-art{width:125px;max-width:100%;margin:0}.production-building-overview h2{font-size:25px;line-height:1.5;margin:8px 0;color:#f1dfb5}.production-building-overview p{font-size:16px;line-height:1.8;color:#d9ddc6;margin:10px 0}.fixed-workforce{border:1px solid #c5a56765;border-radius:8px;background:#173b2e;padding:15px 17px;margin:16px 0;color:#f4e8c8}.fixed-workforce>div:first-child{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.fixed-workforce>div:first-child>span{display:flex;align-items:center;gap:8px;font-size:15px}.fixed-workforce .icon{width:20px;height:20px;flex-shrink:0}.fixed-workforce>div:first-child>b{font-size:18px}.fixed-workforce p,.fixed-workforce small,.fixed-workforce-note{font-size:15px!important;line-height:1.8!important;color:#dde5cc!important}.fixed-workforce .fixed-workforce-shortfall{color:#ffe0a0!important}.fixed-workforce .fixed-workforce-pending{color:#cee5ab!important}.fixed-workforce .requirement-help{margin-bottom:0}
.production-catalog{margin:22px 0 32px;min-width:0}.production-catalog-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.production-catalog-heading h2{font-size:24px;line-height:1.5;margin:0 0 10px;color:#f1dfb5}.production-catalog-heading p{font-size:16px;line-height:1.85;color:#d8dfc6;margin:0;max-width:850px}.production-catalog-heading>.badge{flex-shrink:0}.production-group{margin:0 0 20px;border:1px solid #b69c60;border-radius:8px;background:#14372b;overflow:hidden}.production-group>summary{display:flex;gap:12px;align-items:center;min-height:52px;padding:14px 18px;cursor:pointer;list-style:none;font-size:18px;font-weight:700;color:#f3dfac}.production-group>summary::-webkit-details-marker{display:none}.production-group>summary>b{display:grid;place-items:center;background:#e2c77f;color:#31482f;padding:2px 8px;border-radius:10px;font-size:14px}.production-group-caret{margin-left:auto;transition:transform .15s}.production-group[open]>.production-group-caret,.production-group[open]>summary>.production-group-caret{transform:rotate(180deg)}.production-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 16px 16px}.production-card{min-width:0;background:linear-gradient(130deg,#f6edda,#e5d7b7);border:1px solid #bca16b;border-radius:6px;color:#3c432d;padding:18px;overflow-wrap:anywhere}.production-card>header{display:flex;align-items:center;gap:14px;margin-bottom:12px}.production-card>header>img{width:54px;height:54px;object-fit:contain;flex:0 0 54px;border:0;background:none;filter:none}.production-card h3{font-size:20px;line-height:1.5;color:#2c4e38;margin:0 0 5px}.production-card p{font-size:16px!important;line-height:1.8!important;color:#5a6049!important;margin:10px 0 16px}.production-card small{display:block;font-size:14px!important;line-height:1.7!important;color:#666b51!important}.production-card-details>summary,.production-secondary-action>summary{font-size:15px;line-height:1.7;min-height:44px;display:flex;align-items:center;cursor:pointer;color:#385b40;text-decoration:underline;text-underline-offset:4px}.production-card-details>div{padding-top:5px}.production-start{margin-top:18px}.production-start .btn{width:100%;min-height:46px;font-size:16px;padding:11px 16px;white-space:normal}.production-time{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.production-time .icon{width:20px;height:20px;flex:0 0 20px}.production-time>small{flex-basis:100%;margin-left:28px}.production-costs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;list-style:none;padding:0;margin:14px 0}.production-costs>li{min-width:0;padding:9px 8px;background:#d9cfb0;border-radius:5px;display:grid;grid-template-columns:22px minmax(0,1fr);gap:3px 7px;align-items:center;color:#3c5037}.production-costs .icon{width:22px;height:22px;grid-row:1/3}.production-costs span{font-size:13px;line-height:1.5}.production-costs b{font-size:16px;line-height:1.5;font-variant-numeric:tabular-nums}.production-costs>li.is-short{background:#ecd4ac;color:#794327}.production-progress-label,.production-completed{display:flex;align-items:center;gap:8px}.production-progress-label .icon,.production-completed .icon{width:20px;height:20px;flex:0 0 20px}.production-progress-label time{font-weight:700;white-space:nowrap}.production-cancel{margin:12px 0}.production-cancel>.text-link{min-height:44px;font-size:15px}.production-job-list{padding:0 16px 16px;display:grid;gap:10px}.production-job-list>article{display:flex;align-items:center;flex-wrap:wrap;gap:12px;background:#eddfbd;color:#33452f;border-radius:5px;padding:13px 15px;min-width:0}.production-job-list>article>div{flex:1;min-width:150px}.production-job-list b{font-size:16px;line-height:1.6}.production-job-list small{display:block;font-size:14px;line-height:1.7;color:#646749}html body.body .training-catalog .production-job-list[data-training-list]>article small{color:#3e4b33}.production-job-list img{object-fit:contain;flex:0 0 44px;border:0;background:none;filter:none}.production-job-list time{font-size:16px;font-variant-numeric:tabular-nums}.production-job-list form{margin:0}.production-job-list button{min-height:44px;font-size:14px}.production-card.equipment-card,.production-card.training-card{padding:0}.production-item>summary{display:flex;align-items:center;gap:13px;list-style:none;padding:16px;cursor:pointer;min-height:100px}.production-item>summary::-webkit-details-marker{display:none}.production-item>summary>img{width:64px;height:74px;object-fit:contain;flex:0 0 64px;background:none;filter:none;border:0}.production-item>summary>span:first-of-type{min-width:0;flex:1}.production-item>summary b{font-size:19px;line-height:1.5;color:#2d4b35;display:block}.production-status{font-size:12px;line-height:1.55;padding:5px 7px;max-width:90px;background:#d4d3b3;color:#5e613d;border-radius:5px;text-align:center}.production-status.is-ready{background:#cfddbc;color:#325934}.production-item-body{padding:0 18px 18px}.production-form{display:grid;gap:10px;margin:16px 0}.production-form>label,.production-secondary-action label{font-size:15px;line-height:1.7;color:#36513a}.production-form>.production-quantity,.production-secondary-action .production-quantity{width:105px;max-width:100%;min-height:44px;height:44px;font-size:16px;margin:0;padding:8px 10px}.production-form>.btn{width:100%;min-height:46px;font-size:16px;white-space:normal}.production-form>.production-costs{margin:4px 0}.production-secondary-action{border-top:1px solid #b69c6a80;margin-top:20px;padding-top:10px}.production-secondary-action>summary{color:#6e5a32}.production-secondary-action form{display:grid;grid-template-columns:1fr;gap:10px;max-width:100%;margin:10px 0}.production-secondary-action form>.btn{min-height:44px;white-space:normal;font-size:15px}.production-unit-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0 18px}.production-unit-stats>div{border-bottom:1px solid #baac7f;padding:7px 0}.production-unit-stats dt{font-size:14px;line-height:1.6;color:#6c684d}.production-unit-stats dd{font-size:18px;color:#395335;margin:4px 0 0;font-variant-numeric:tabular-nums}.production-unit-stats>div:last-child{grid-column:1/-1}.training-card .recruit-control{margin:16px 0}.training-card .recruit-control>button{min-height:44px;font-size:15px;white-space:normal}.training-card .recruit-control .quantity-picker .textbox{height:44px;min-height:44px;font-size:16px}.training-card .recruit-control .quantity-picker .btn{height:44px;min-height:44px;font-size:14px}.training-card .recruit-control>label,.training-card .recruit-quote,.training-card .recruit-duration{font-size:15px!important;line-height:1.8!important}.training-card .recruit-control small{font-size:14px!important;line-height:1.75!important}
@media(max-width:760px){.production-building-overview{grid-template-columns:80px minmax(0,1fr);gap:15px;padding-top:14px}.production-building-overview>.module-lead-art{width:80px}.production-building-overview h2{font-size:22px}.production-building-overview p{font-size:15px;line-height:1.8}.fixed-workforce{padding:13px;margin:13px 0}.production-catalog-heading{flex-wrap:wrap;gap:12px}.production-catalog-heading h2{font-size:22px}.production-grid{grid-template-columns:minmax(0,1fr);padding:0 12px 12px;gap:14px}.production-group>summary{padding:13px 14px;font-size:17px}.production-card{padding:16px}.production-item>summary{gap:10px;padding:13px;min-height:96px}.production-item>summary>img{width:54px;height:65px;flex-basis:54px}.production-item>summary b{font-size:18px}.production-item-body{padding:0 15px 16px}.production-status{max-width:74px;font-size:12px}.production-costs{gap:6px}.production-costs>li{padding:8px 6px;grid-template-columns:18px minmax(0,1fr);gap:2px 4px}.production-costs .icon{width:18px;height:18px}.production-costs b{font-size:15px}.production-costs span{font-size:12px}.production-job-list{padding:0 12px 12px}.production-job-list>article{padding:11px 12px;gap:10px}.production-job-list>article>div{min-width:120px}.production-building-overview .fixed-workforce{margin-left:-95px;margin-top:20px}.production-building-overview .fixed-workforce>div:first-child{align-items:flex-start}.production-catalog .requirement-help{max-width:100%}}
@media(prefers-reduced-motion:reduce){.production-group-caret{transition:none}}

/* These views also load inside the legacy dialog: keep its broad form/art rules out of the cards. */
.production-building-overview .module-lead-art>.building-art,.building-dialog-body .production-building-overview .module-lead-art>.building-art{width:125px;height:125px;max-width:100%}.building-dialog-body .production-building-overview>.module-lead-art{padding:0!important;width:125px;background:none}.building-panel-fragment .production-catalog form.production-form{display:grid;gap:10px;align-items:stretch}.building-panel-fragment .production-catalog form.recruit-control{display:block}.building-panel-fragment .production-catalog .production-secondary-action form{display:grid;gap:10px;align-items:stretch}.building-panel-fragment .production-catalog form.production-start,.building-panel-fragment .production-catalog form.production-cancel{display:block}.building-panel-fragment .production-catalog .production-job-list form{display:block;margin:0}.fixed-workforce form[data-workforce-assign]{margin-top:12px}.fixed-workforce form[data-workforce-assign]>.btn{white-space:normal;min-height:44px;font-size:15px}
@media(max-width:760px){.production-building-overview .module-lead-art>.building-art,.building-dialog-body .production-building-overview .module-lead-art>.building-art{width:80px;height:80px}.building-dialog-body .production-building-overview>.module-lead-art{width:80px}}
.recruit-set-details{margin:14px 0 18px}.recruit-set-unit{margin-top:18px;padding-top:14px;border-top:1px solid #b8a67e}.recruit-set-unit h4{margin:0 0 10px;font-size:17px;line-height:1.6}.recruitment-sets .recruit-set-details .requirement-help{margin-top:10px}
.weapon-upgrade-explanation{padding:14px 18px;border-left:3px solid #d8b96f;border-radius:0 12px 12px 0;background:#183f32;color:#f4e6c1;line-height:1.8}
.weapon-upgrade-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0 0 18px}
.weapon-upgrade-stats>div{padding:12px;border-radius:10px;background:#e7dfc6;color:#294b35}
.weapon-upgrade-stats dt{font-size:.9rem;line-height:1.6}
.weapon-upgrade-stats dd{margin:4px 0 0;font-weight:700;font-size:1.2rem;line-height:1.5}
.weapon-upgrade-stats dd small{display:block;font-size:.85rem;color:#466341}
.production-card.weapon-upgrade-card{padding:0}.weapon-upgrade-card .production-item>summary{align-items:center}
.weapon-upgrade-form .btn{width:100%;min-height:44px;white-space:normal}
.weapon-legacy-storage{margin-top:24px;padding:18px;border:1px solid #a9925c;border-radius:14px;background:#14382e}
.weapon-legacy-storage>summary{min-height:44px;display:list-item;cursor:pointer;color:#f1d995;font-weight:600;line-height:1.8}
.weapon-legacy-storage>p{color:#e0e5cd;line-height:1.8}
@media(max-width:600px){.weapon-upgrade-grid{grid-template-columns:minmax(0,1fr)}.weapon-upgrade-stats{grid-template-columns:minmax(0,1fr)}.weapon-legacy-storage{padding:14px}.weapon-upgrade-card .production-item>summary{display:grid;grid-template-columns:48px minmax(0,1fr)}.weapon-upgrade-card .production-item>summary>img{width:48px;height:48px;grid-row:1/3}.weapon-upgrade-card .production-item>summary>.production-status{grid-column:2;justify-self:start}}
.recruit-equipment-included{margin:14px 0;padding:12px 14px;border:1px solid #b7be9a;border-radius:12px;background:#eae4cf;color:#294b35;font-size:.9rem;line-height:1.7}
.recruit-equipment-included p{margin:0 0 8px;color:inherit}
.recruit-equipment-included dl{display:grid;gap:6px;margin:0}
.recruit-equipment-included dl>div{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}
.recruit-equipment-included dt{font-weight:500}.recruit-equipment-included dd{margin:0;font-variant-numeric:tabular-nums;font-weight:700}
.recruit-equipment-included>small{display:block;margin-top:8px;color:#4a6446}
.weapon-demo-list{display:grid;gap:14px}.weapon-demo-card{padding:16px;border:1px solid #bfa66b;border-radius:12px;background:#143b2f;color:#f2e4c0}.weapon-demo-heading{display:flex;align-items:center;gap:12px}.weapon-demo-heading img{object-fit:contain}.weapon-demo-card .btn{min-height:44px;white-space:normal}.weapon-demo-card small{display:block;line-height:1.8;color:#ead49c}


/* assets/css/bua-help.css */
.bua-question[hidden]{display:none!important}.bua-question{display:flex;flex-direction:column;min-height:0;gap:10px}.bua-question-scroll{min-height:0;max-height:260px;overflow:auto;overscroll-behavior:contain;padding:0 3px 0 0;scrollbar-width:thin}.bua-question h2{font-size:18px!important;line-height:1.55;color:#fff0cc!important;margin:0 0 8px}.bua-question p{font-size:15px!important;line-height:1.75;color:#d9e7d1!important;margin:7px 0}.bua-question ol{list-style:none;display:grid;gap:9px;padding:0;margin:12px 0}.bua-question li{padding:10px;border:1px solid #9eaf7a66;border-radius:7px;background:#092a2180}.bua-question li.is-unmet{border-color:#dcba74}.bua-question li>b,.bua-question li>span{display:block;font-size:15px;line-height:1.7;color:#fff0c6}.bua-question li>span{font-size:14px;color:#c9dcc0}.bua-question li.is-met{opacity:.8}.bua-question-actions{display:flex;flex-wrap:wrap;gap:8px;flex-shrink:0;border-top:1px solid #adad7555;padding-top:10px}.bua-question-actions .btn{min-height:44px;font-size:14px!important;line-height:1.5;flex:1 1 140px;padding:9px 10px}.bua-question-back,.bua-question-how{display:block;min-height:36px;padding:5px 2px;border:0;background:none;color:#f0d99b;font:500 14px/1.7 var(--font);text-align:left;text-decoration:underline;text-underline-offset:3px;cursor:pointer}.bua-question-back{font-size:13px}.bua-guide.has-question .bua-tabs{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}.bua-guide.has-question .bua-tabs button{min-width:0;font-size:12px;padding-inline:4px}.bua-in-dialog .bua-question-scroll{max-height:150px}.bua-in-dialog .bua-question-actions .btn{min-height:40px;font-size:13px!important;padding:7px}.bua-question button:focus-visible{outline:2px solid #ffe6a2;outline-offset:2px}@media(max-width:760px){.bua-question-scroll{max-height:min(240px,38dvh)}.bua-in-dialog .bua-question-scroll{max-height:130px}.bua-question h2{font-size:17px!important}}

/* Keep the chosen next step visible while only the requirements list scrolls. */
.bua-guide.bua-question-active .bua-speech{display:flex;flex-direction:column;overflow:hidden;min-height:0}.bua-question-active .bua-heading,.bua-question-active .bua-tabs{flex:0 0 auto}.bua-question-active .bua-question{flex:1 1 auto;min-height:0;overflow:hidden}.bua-question-active .bua-question-scroll{flex:1 1 auto;min-height:0}.bua-question-active .bua-question-actions{flex:0 0 auto;background:#10362b}.bua-in-dialog.bua-question-active .bua-speech{max-height:min(46dvh,350px)}.bua-in-dialog.bua-question-active .bua-question-scroll{max-height:210px}

/* All advice keeps dependency order, while completed facts remain a quiet ledger. */
.bua-guide .bua-plan.has-groups{gap:22px;counter-reset:none}
.bua-guide .bua-plan.has-groups li{min-width:0;max-width:100%;counter-increment:none;padding:0;overflow:visible}
html body.body .bua-guide.bua-modal .bua-plan.has-groups li:is(.bua-plan-group,.bua-plan-item){padding:0;padding-inline-start:0}
.bua-guide .bua-plan.has-groups li:before{display:none;content:none}
.bua-guide .bua-plan-group h3{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:0 0 10px;color:#f4e6bd;font-size:17px;line-height:1.6}
.bua-guide .bua-plan-count{display:inline-grid;place-items:center;min-width:1.8em;min-height:1.8em;padding:0 .4em;border:1px solid #b9bb9466;border-radius:999px;font-size:13px;color:#d9e6ce;font-variant-numeric:tabular-nums}
.bua-guide .bua-plan-group-items{display:grid;gap:9px;list-style:none;margin:0;padding:0;min-width:0;max-height:none;overflow:visible}
.bua-guide .bua-plan.has-groups .bua-plan-card{display:block;box-sizing:border-box;width:100%;min-width:0;min-height:48px;padding:12px 14px;border:1px solid #d2bd8566;border-radius:10px;background:#173e30;color:#f8eccb;text-align:left;font:400 15px/1.7 var(--font);white-space:normal;overflow-wrap:anywhere}
.bua-guide .bua-plan-rank{display:inline-grid;place-items:center;vertical-align:middle;margin-inline-end:9px;min-width:1.65em;min-height:1.65em;padding:0 .25em;border-radius:50%;background:#ead5a1;color:#14382a;font:600 13px/1.5 var(--font)}
.bua-guide .bua-plan-status{display:inline-block;margin:7px 0 0;padding:2px 8px;border:1px solid #c2c78c55;border-radius:6px;color:#e3e6c5;font-size:13px;line-height:1.6;white-space:normal;overflow-wrap:anywhere}
.bua-guide .bua-plan.has-groups .bua-plan-card small{margin-top:7px;color:#c5d9c2;line-height:1.7}
.bua-guide .bua-plan-item.is-claimable .bua-plan-card{border-color:#e4c778;background:#244c35}
.bua-guide .bua-plan-item.is-claimable .bua-plan-status{color:#fff0b7;border-color:#e4c77888}
.bua-guide .bua-plan-item.is-running .bua-plan-status{color:#cfe9f3;border-color:#8cbdcf77}
.bua-guide .bua-plan-item.is-blocked .bua-plan-card{background:#102f26;border-style:dashed}
.bua-guide .bua-plan-item.is-blocked .bua-plan-status{color:#f1d6ac;border-color:#c59e7477}
.bua-guide .bua-plan-item.is-done .bua-plan-card{background:#102e25;border-color:#819c7e66;color:#c9dbc0}
.bua-guide .bua-plan-item.is-done .bua-plan-status{color:#c5e1b6;border-color:#96bc8277}
.bua-guide .bua-plan.has-groups button.bua-plan-card:hover{border-color:#efd08a;background:#204b37}
@media(max-width:760px){.bua-guide .bua-plan.has-groups{gap:20px}.bua-guide .bua-plan-group h3{font-size:16px}.bua-guide .bua-plan.has-groups .bua-plan-card{padding:11px 12px}.bua-guide .bua-plan-status{max-width:100%;box-sizing:border-box}}



/* assets/css/pointer-focus.css */
/* Four flat shades leave the actual target clickable, without a full-screen blur or mask. */
.bua-focus-layer{position:fixed;inset:0;z-index:118;pointer-events:none!important;overflow:visible}
.bua-focus-layer[hidden]{display:none!important}.bua-focus-layer>i,.bua-focus-frame{position:fixed;box-sizing:border-box;display:block;pointer-events:none!important}
.bua-focus-layer>i{background:#04171080}.bua-focus-frame{border:3px solid #ffe09c;border-radius:10px;box-shadow:0 0 0 2px #183a2ddd,0 0 22px #ffd47488;animation:bua-focus-arrive .6s ease-out 2}
.bua-focus-target{outline:3px solid #ffe8b1!important;outline-offset:4px!important;scroll-margin-block:120px}
.bua-pointer.is-strong{z-index:121;gap:7px}.bua-pointer.is-strong svg{width:38px;height:46px;margin-left:calc(var(--point-x,120px) - 19px);fill:#fff4cb;stroke:#12382a;stroke-width:2.3;filter:drop-shadow(0 3px 3px #001b1780)}
.bua-pointer.is-strong span{padding:9px 13px;border:2px solid #e9c879;border-radius:10px;background:#113b2ffb;color:#fff3cb;font-size:16px;font-weight:700;line-height:1.6;box-shadow:0 5px 18px #00170e88}
@keyframes bua-focus-arrive{from{border-color:#fff5d5;box-shadow:0 0 0 3px #ffe3a455,0 0 26px #ffdc9a88}to{border-color:#ffe09c;box-shadow:0 0 0 2px #183a2ddd,0 0 22px #ffd47488}}
@media(max-width:600px){.bua-pointer.is-strong span{font-size:15px;padding:8px 11px}.bua-focus-frame{border-radius:8px}}
@media(prefers-reduced-motion:reduce){.bua-focus-frame,.bua-pointer{animation:none!important}}.effects-off .bua-focus-frame{animation:none!important}



/* assets/css/bua-tour.css */
.bua-tour[hidden]{display:none!important}.bua-tour{display:flex;flex-direction:column;min-height:0;gap:10px}.bua-tour-scroll{min-height:0;max-height:240px;overflow:auto;overscroll-behavior:contain}.bua-tour-count{display:block;font-size:13px;color:#e7cb89;margin-bottom:8px}.bua-tour h2{font-size:19px!important;line-height:1.5;color:#fff0cc!important;margin:0 0 10px}.bua-tour p{font-size:16px!important;line-height:1.8!important;color:#e0ebd5!important;margin:0 0 6px}.bua-tour-actions{display:flex;gap:9px;flex:0 0 auto}.bua-tour-actions .btn{flex:1;min-width:0;min-height:44px;font-size:15px!important;white-space:normal;padding:9px 10px}.bua-tour-skip{min-height:40px;padding:6px 2px;background:none;border:0;color:#e8d4a1;text-decoration:underline;text-underline-offset:4px;font:500 14px/1.6 var(--font);cursor:pointer;flex:0 0 auto}.bua-guide.bua-tour-active .bua-speech{display:flex;flex-direction:column;overflow:hidden}.bua-tour-active .bua-heading,.bua-tour-active .bua-tabs{flex:0 0 auto}.bua-tour-active .bua-tour{flex:1 1 auto;min-height:0}.bua-tour-active .bua-tour-scroll{flex:1 1 auto}.bua-guide.has-tour .bua-tabs{display:flex;flex-wrap:wrap;gap:5px}.bua-guide.has-tour .bua-tabs button{flex:1 1 100px;min-width:0;font-size:12px;padding-inline:4px}.bua-in-dialog.bua-tour-active .bua-speech{max-height:min(48dvh,350px)}.bua-tour button:focus-visible{outline:2px solid #ffe5a2;outline-offset:2px}.bua-town>[data-bua-tour-replay]{min-height:44px;font-size:14px!important;white-space:normal;width:100%;margin-top:12px}
@media(max-width:760px){.bua-tour h2{font-size:18px!important}.bua-tour p{font-size:15px!important}.bua-guide.has-tour .bua-tabs button{flex-basis:90px;min-height:32px}.bua-tour-scroll{max-height:200px}}

/* The tour talks beside an open menu; its controls stay visible above the shade. */
.bua-guide.bua-tour-active{z-index:123}.bua-guide.bua-tour-active:not(.bua-in-dialog){bottom:12px;--bua-height:320px}.bua-guide.bua-tour-active .bua-tabs{display:none}.bua-tour-active .bua-speech{max-height:min(320px,58dvh)}.bua-tour-active:not(.bua-in-dialog) .bua-portrait{max-height:135px}.bua-tour-active .bua-tour-scroll{max-height:190px}.bua-tour-active .bua-heading{padding-bottom:5px;margin-bottom:6px}.bua-tour-active .bua-tour-actions{padding-top:4px}.bua-tour-active .bua-tour-skip{min-height:36px}


/* assets/css/protection-clock.css */
/* An in-flow status, never an overlay over the town or map. */
.world-clock{flex-wrap:wrap;gap:8px 18px;box-sizing:border-box}
.world-clock>.protection-clock{display:flex;align-items:center;gap:8px;max-width:100%;min-width:0;padding:4px 9px;border:1px solid #759c825c;border-radius:7px;background:#0f2a22;color:#dcebd8;font-size:12px;line-height:1.5}
.protection-clock>.icon{width:17px;height:17px;flex:0 0 17px;color:#b8dcbf}
.protection-clock-copy{display:flex;flex-wrap:wrap;align-items:center;gap:3px 10px;min-width:0;max-width:100%;overflow-wrap:anywhere}
.protection-clock-town{font-weight:500;color:#ecedcc}
.protection-clock-time{display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:5px;min-width:0}
.protection-clock-time>span{color:#b8cdbb}
.protection-clock time,.protection-clock-unavailable{color:#edf4d9;font-weight:600;font-size:12px;font-variant-numeric:tabular-nums;line-height:1.5}
.protection-clock[data-protection-state=expired]{border-color:#a8997566;background:#24362c}
.protection-clock[data-protection-state=expired] .protection-clock-time>span{display:none}
.protection-clock[data-protection-state=unknown]{border-color:#a8997566}
@media(max-width:760px){.world-clock{gap:7px 10px}.world-clock>.protection-clock{flex-basis:100%;padding:3px 7px;font-size:11px;gap:6px}.protection-clock-copy{gap:2px 8px}.protection-clock time,.protection-clock-unavailable{font-size:11px}.protection-clock>.icon{width:15px;height:15px;flex-basis:15px}.protection-clock-town{overflow-wrap:anywhere}}

.world-clock>.protection-clock[hidden]{display:none!important}



/* assets/css/city-status-modal.css */
/* Compact entry points; the army details occupy the native dialog top layer. */
.city-heading .city-defence-badges .city-supply-badge{width:44px;min-width:44px;justify-content:center;font-size:0;gap:0}
.city-heading .city-supply-badge .icon{width:20px;height:20px}
.city-status-launchers{display:flex;flex-wrap:wrap;gap:12px;margin:20px 24px}
.city-status-launchers>.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px;white-space:normal;text-align:center}
.city-status-dialog{box-sizing:border-box;position:fixed;inset:0;margin:auto;width:min(1000px,calc(100vw - 40px));height:min(820px,calc(100vh - 40px));height:min(820px,calc(100dvh - 40px));max-width:none;max-height:none;padding:0;border:1px solid #bba269;border-radius:16px;background:#f1e6ce;color:#2d4938;box-shadow:0 24px 90px #001b17aa;overflow:hidden}
.city-status-dialog:not([open]){display:none}
.city-status-dialog[open]{display:grid;grid-template-rows:auto auto minmax(0,1fr)}
.city-status-dialog::backdrop{background:#061e19c9}
.city-status-header{display:flex;align-items:center;justify-content:space-between;gap:16px;flex:none;padding:20px 24px 16px;background:linear-gradient(115deg,#173e32,#244c38);color:#fff0c9}
.city-status-header .eyebrow{font-size:11px;letter-spacing:2px;color:#dec58b}
.city-status-header h2{font-size:23px;line-height:1.5;margin:4px 0 0;color:#fff0c9}
.city-status-close{display:grid;place-items:center;flex:none;min-width:44px;min-height:44px;border:1px solid #ddc68d77;border-radius:9px;background:#ffffff0d;color:#fff0c9;font-size:30px;line-height:1;cursor:pointer}
.city-status-tabs{display:flex;gap:8px;flex:none;padding:12px 24px;border-bottom:1px solid #bba26977;background:#e7d9b9}
.city-status-tabs>button{flex:1;min-width:0;min-height:44px;padding:9px 12px;border:1px solid #a58b53;border-radius:8px;background:transparent;color:#314d38;font:600 16px/1.5 var(--sans, sans-serif);cursor:pointer}
.city-status-tabs>button[aria-selected=true]{background:#2e573f;border-color:#2e573f;color:#fff0ce}
.city-status-tabs>button:disabled{opacity:.55;cursor:default}
.city-status-dialog :is(button,a,summary):focus-visible{outline:3px solid #c38328;outline-offset:3px}
.city-status-body{position:relative;display:block;min-height:0;overflow:auto;overscroll-behavior:contain;touch-action:pan-y;scrollbar-gutter:stable;padding:0 24px 24px;background:#f1e6ce;-webkit-overflow-scrolling:touch}
.city-status-dialog>.city-status-tabs,.city-status-dialog>.city-status-body{z-index:1}
.city-status-body>[data-city-status-pane]:not([hidden]){display:block}
.city-status-body>[hidden]{display:none!important}
.city-status-dialog .city-battle-panel.panel,.city-status-dialog .logistics-panel.panel{max-width:none;margin:0;padding:0;border:0;box-shadow:none;background:transparent;color:#2d4938}
.city-status-dialog .city-battle-panel>summary{padding:18px 0 12px;font-size:16px}
.city-status-dialog .city-battle-content{padding:0}
.city-status-dialog .logistics-panel{padding-top:22px!important}
.city-status-dialog .logistics-panel h2{font-size:23px;color:#2a4933;margin:8px 0 16px}
.city-status-dialog .logistics-panel :is(p,dt){font-size:16px;line-height:1.8;color:#344f3d}
.city-status-dialog .logistics-panel small{font-size:14px;color:#52634d;line-height:1.75}
.city-status-dialog .logistics-panel dd{font-size:26px;color:#28523a}
.city-status-dialog .logistics-panel .supply-report,.city-status-dialog .logistics-panel .supply-warning{color:#fff0d0;background:#493824;border-color:#b9944f;border-radius:6px;padding:14px 16px}
.city-status-dialog .supply-report :is(a,time),.city-status-dialog .supply-warning a{color:#ffe4a3}
.city-status-dialog .logistics-actions{gap:12px 20px;line-height:1.8;margin:16px 0}
.city-status-dialog .logistics-actions a{font-size:16px;color:#2e613f;text-decoration:underline;text-underline-offset:3px}
@media(max-width:760px){
 .city-status-launchers{margin:16px 12px;gap:8px}.city-status-launchers>.btn{flex:1 1 150px;font-size:14px}
 .city-status-dialog{width:100%;height:100vh;height:100dvh;border:0;border-radius:0}
 .city-status-header{padding:calc(12px + env(safe-area-inset-top,0px)) 16px 12px;gap:10px}.city-status-header h2{font-size:20px}.city-status-header .eyebrow{font-size:10px}
 .city-status-tabs{padding:10px 12px;gap:6px}.city-status-tabs>button{font-size:14px;padding:8px 10px}
 .city-status-body{padding:0 16px calc(24px + env(safe-area-inset-bottom,0px))}
 .city-status-dialog .logistics-panel dl{grid-template-columns:1fr;gap:16px;margin:20px 0}.city-status-dialog .logistics-panel dl>div{padding-bottom:14px;border-bottom:1px solid #bba26955}
 .city-status-dialog .logistics-panel dd{font-size:25px;margin:4px 0}.city-status-dialog .logistics-panel h2{font-size:21px}
 .city-status-dialog .city-battle-panel>summary{gap:8px}.city-status-dialog .city-battle-panel>summary>span:first-child{flex-basis:190px}
}

/* The report cards retain light ink when moved into the parchment dialog. */
.city-status-dialog .city-battle-row{padding:20px 0;border-color:#a58d5d88;color:#243f31}
.city-status-dialog .city-battle-row header>b{font-size:18px;line-height:1.7;color:#193f2b}
.city-status-dialog .city-battle-row :is(p,small){color:#294b37;line-height:1.85}
.city-status-dialog .city-battle-row header time{color:#485c49;font-size:14px;line-height:1.7}
.city-status-dialog .city-battle-loot>span{display:block;margin:12px 0 8px;color:#294b37;font-weight:600;font-size:16px}
.city-status-dialog .city-battle-loot .report-resource-grid{width:100%;max-width:720px;gap:12px}
.city-status-dialog .city-battle-loot .report-resource-grid>li{min-width:0;padding:16px 18px;border:1px solid #6d8768;background:#153c2e;color:#f4eddc;border-radius:9px;font-size:16px;line-height:1.7;overflow-wrap:anywhere}
.city-status-dialog .city-battle-loot .report-resource-grid>li>span{color:#f4eddc;font-size:inherit}
.city-status-dialog .city-battle-loot .report-resource-grid>li :is(b,strong){display:block;color:#ffe1a0;font-size:23px;line-height:1.5;margin-top:5px;font-variant-numeric:tabular-nums}
.city-status-dialog .city-integrity-result b{color:#22573b}
.city-status-dialog .city-integrity-result.is-damaged b,.city-status-dialog .city-loss-count{color:#8c3426}
@media(max-width:600px){.city-status-dialog .city-battle-loot .report-resource-grid{gap:8px}.city-status-dialog .city-battle-loot .report-resource-grid>li{padding:12px 10px;font-size:15px!important}.city-status-dialog .city-battle-loot .report-resource-grid>li :is(b,strong){font-size:20px}.city-status-dialog .city-battle-row header>b{font-size:17px}}

/* The modal already supplies navigation; a second disclosure only hides its contents. */
.city-status-dialog .city-battle-panel>summary{display:none}
.city-status-dialog .city-integrity-overview{margin:18px 0 12px;color:#254c36;font-size:16px}
.city-status-dialog .city-incoming-list,.city-status-dialog .city-outgoing-list{margin:16px 0;padding:16px;border:1px solid #b99b62;border-radius:10px;background:#f8eed9;scroll-margin-top:12px}
.city-status-dialog .city-incoming-list[hidden],.city-status-dialog .city-outgoing-list[hidden]{display:none!important}
.city-status-dialog .city-incoming-list h2,.city-status-dialog .city-outgoing-list h2{margin:0 0 12px;font-size:20px;color:#2a4d36}
.city-status-dialog .city-incoming-list:focus,.city-status-dialog .city-outgoing-list:focus{outline:2px solid #b68130;outline-offset:2px}



/* assets/css/city-markers.css */
/* Keep plot anchors separate from artwork depth sorting.
   A transformed/z-indexed link traps its labels behind the front rampart. */
.city-stage .city-building.building-card{
 width:var(--plot-size,140px);height:var(--plot-size,140px);
 left:calc(var(--x) - var(--plot-half,70px));top:calc(var(--y) - var(--plot-rise,109.2px));
 transform:none!important;z-index:auto!important;isolation:auto;contain:none;
 filter:none;opacity:1;will-change:auto;pointer-events:none;
}
.city-stage .city-building>.building-illustration{padding:0;z-index:var(--depth,410);pointer-events:auto}
.city-stage .city-building>.plot-ground{z-index:calc(var(--depth,410) - 1);pointer-events:none}
.city-stage .city-building>.chimney{z-index:var(--depth,410);pointer-events:none}
.city-stage .city-building>.building-info{z-index:1200;pointer-events:auto;background:#17362ef5;border-color:#d7bc7e;color:#fff0c6}
.city-stage .city-building>.building-level{z-index:1201;pointer-events:auto}
.city-stage .city-building>.construction-ring{z-index:1190;pointer-events:none}
.city-stage .city-building.empty-plot>.building-illustration,
.city-stage .city-building.city-defence-site>.building-illustration{z-index:1190;pointer-events:none}
.city-stage .city-building .plot-plus,.city-stage .city-building .defence-level-badge{pointer-events:auto}
.city-stage .city-building.empty-plot>.building-info{background:#eadbb7f5;border-color:#8b7747}
.city-stage .city-defence-site{--plot-size:154px;--plot-half:77px;--plot-rise:120.12px}
.city-stage .city-prop.city-townhall{
 width:210px;height:210px;left:calc(var(--x) - 105px);top:calc(var(--y) - 163.8px);
 transform:none!important;z-index:auto;pointer-events:none;will-change:auto;
}
.city-stage .city-townhall>.city-sprite{z-index:410;pointer-events:auto}
.city-stage .city-townhall>.townhall-flag{left:114px;top:23px;width:27px;height:14px;z-index:411;pointer-events:none}
.city-stage .city-townhall>.prop-label{z-index:1200;pointer-events:auto}
/* Citizens animate independently of the cached terrain. Labels remain above them. */
.city-stage :is(.city-life,.city-citizens-layer,.city-citizens-canvas){display:block!important;position:absolute;width:1536px;height:1024px;max-width:none;z-index:1100;pointer-events:none;overflow:visible}
.city-stage :is(.city-citizens-layer,.city-citizens-canvas)[hidden],.effects-off .city-stage :is(.city-life,.city-citizens-layer,.city-citizens-canvas){display:none!important}
@media(prefers-reduced-motion:reduce){html:not([data-motion-effects="on"]) .city-stage :is(.city-life,.city-citizens-layer,.city-citizens-canvas){display:none!important}}

/* Keep an idle builder panel out of the scene, including before scripts run. */
.city-stage .city-queue[hidden]{display:none!important}


/* assets/css/city-resources-compact.css */
/* Five active resources fill the disclosure; no retired equipment column. */
html body.body .city-resource-panel{width:min(800px,calc(100% - 32px))}
html body.body .city-resource-panel>summary{align-items:center;min-height:46px;padding:7px 12px;gap:8px}
html body.body .city-resource-panel>summary .city-resources.resource-bar{grid-template-columns:repeat(5,minmax(0,1fr));gap:6px}
html body.body .city-resource-panel>summary .resource-stat{padding:0 2px}
html body.body .city-resource-panel .city-resource-value{min-height:28px;gap:6px}
html body.body .city-resource-panel>summary .resource-stat strong{font-size:16px;line-height:1.25}
html body.body .city-resource-panel .city-resource-caret{min-height:28px;flex-basis:18px}
html body.body .city-resource-panel[open]>summary{min-height:40px;padding:6px 12px}
html body.body .city-resource-panel>summary .city-resource-expanded-title{font-size:14px}
html body.body .city-resource-panel .city-resource-details{padding:10px}
html body.body .city-resource-panel .city-resource-guide-hint{font-size:13px;line-height:1.6;margin:0 0 8px}
html body.body .city-resource-panel .city-resource-details>.city-resources.resource-bar{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
html body.body .city-resource-panel .city-resource-details .resource-guide-link{min-height:120px;padding:9px 7px;gap:3px}
html body.body .city-resource-panel .city-resource-details .resource-guide-link strong{font-size:17px;line-height:1.3}
html body.body .city-resource-panel .city-resource-details .resource-guide-link :is(.resource-name,small,.resource-rate){font-size:13px;line-height:1.5}
html body.body .city-resource-panel .city-resource-details .resource-guide-action{font-size:11px;line-height:1.5;padding-top:3px}
@media(max-width:760px){
 html body.body .city-resource-panel{width:calc(100% - 20px)}
 html body.body .city-resource-panel>summary{padding:6px;gap:3px;min-height:52px}
 html body.body .city-resource-panel>summary .city-resource-value{flex-direction:column;min-height:36px;gap:1px}
 html body.body .city-resource-panel>summary .resource-stat strong{font-size:12px;letter-spacing:0}
 html body.body .city-resource-panel .city-resource-details{padding:8px}
 html body.body .city-resource-panel .city-resource-details>.city-resources.resource-bar{grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
 html body.body .city-resource-panel .city-resource-details .resource-guide-link{grid-column:span 2;min-height:112px;padding:7px 5px}
 html body.body .city-resource-panel .city-resource-details .resource-guide-link:nth-last-child(-n+2){grid-column:span 3}
 html body.body .city-resource-panel[open] .city-resource-details .resource-guide-link :is(.resource-name,small,.resource-rate){font-size:12px}
}



/* assets/css/header-chrome.css */
/* The top bar, season clock and staging strip can release their vertical space. */
.game-shell{--collapsed-chrome-height:calc(56px + env(safe-area-inset-top,0px))}
.game-chrome{flex:0 0 auto;min-width:0}
.header-display{position:relative;flex:0 0 auto}
.header-display>summary{display:flex;align-items:center;justify-content:center;gap:7px;min-height:44px;padding:7px 10px;border:1px solid #bcaa6c88;border-radius:9px;color:#f5e4b4;cursor:pointer;list-style:none;font-size:13px;white-space:nowrap}
.header-display>summary::-webkit-details-marker{display:none}
.header-display[open]>summary{background:#416449}
.header-display-options{position:absolute;right:0;top:calc(100% + 7px);z-index:220;display:grid;gap:6px;width:224px;max-width:calc(100vw - 24px);padding:10px;border:1px solid #b8a36b;border-radius:12px;background:#f4e9cc;box-shadow:0 12px 30px #0b211e66}
.header-display-options button{min-height:44px;padding:9px 12px;border:1px solid #bbac80;border-radius:8px;color:#30503b;background:#fff7e4;text-align:left;font:600 14px/1.5 var(--font);cursor:pointer}
.header-display-options button[aria-pressed="true"]{background:#315d40;color:#fff2ca;border-color:#315d40}
.header-display summary:focus-visible,.header-display button:focus-visible,.chrome-restore:focus-visible,.chrome-brand:focus-visible{outline:3px solid #edcc73;outline-offset:3px}
.chrome-folded{position:relative;z-index:85;display:flex;flex:0 0 auto;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:var(--collapsed-chrome-height);padding:env(safe-area-inset-top,0px) max(14px,env(safe-area-inset-right)) 0 max(14px,env(safe-area-inset-left));box-shadow:inset 0 -1px #b99c5950;background:#173e30;color:#fff1c4}
.chrome-brand{display:inline-flex;align-items:center;gap:9px;min-width:0;min-height:44px;color:#f3d58e;font:700 18px/1.2 var(--serif);letter-spacing:1.8px;white-space:nowrap}
.chrome-folded-left{display:flex;align-items:center;gap:12px;min-width:0}
.chrome-menu{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;width:34px;height:34px;padding:7px;border:1px solid #d4b97688;border-radius:50%;background:transparent;color:#fff1c4;cursor:pointer}
.chrome-menu>.icon{width:18px;height:18px}
.chrome-menu:focus-visible{outline:3px solid #edcc73;outline-offset:2px}
.chrome-restore{display:inline-flex;flex:0 0 auto;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:9px 0 9px 8px;border:0;background:transparent;color:#fff1c4;font:600 14px/1.4 var(--font);cursor:pointer}
.chrome-folded[hidden],.chrome-restore[hidden]{display:none!important}
.game-shell .mobile-wordmark{display:inline-flex;align-items:center;justify-content:center;width:224px;height:56px;flex:0 0 224px}
.game-shell .mobile-wordmark>span,.chrome-brand>span{display:none}
.topbar-mark{display:block;width:224px;height:56px;object-fit:contain}
.chrome-brand{width:180px;min-width:180px;height:40px;min-height:40px;justify-content:center;flex:0 0 180px}
.chrome-brand-logo{display:block;width:180px;height:40px;object-fit:contain}
.game-shell[data-chrome-hidden="true"] [data-game-chrome],.game-shell[data-chrome-hidden="true"] .workspace-body>.staging-notice,.game-shell[data-chrome-hidden="true"] .demo-town-switch{display:none!important}
.game-shell[data-chrome-hidden="true"] .sidebar,.game-shell[data-chrome-hidden="true"] .sidebar-rail,.game-shell[data-chrome-hidden="true"] .sidebar-backdrop{top:var(--collapsed-chrome-height)}
.game-shell[data-chrome-hidden="true"] :is(.city-stage,.realm-stage){height:calc(100vh - var(--collapsed-chrome-height));min-height:calc(100vh - var(--collapsed-chrome-height));height:calc(100svh - var(--collapsed-chrome-height));min-height:calc(100svh - var(--collapsed-chrome-height))}
@media(min-width:1051px){.game-shell[data-sidebar-mode]>.workspace>[data-game-chrome]>.topbar,.game-shell[data-sidebar-mode]>.workspace>.chrome-folded{margin-left:calc(-1 * var(--navigation-width));width:calc(100% + var(--navigation-width))}}
@media(max-width:760px){.header-display>summary{width:34px;min-height:36px;padding:6px}.header-display>summary>span{display:none}.header-display-options{right:-75px}.chrome-restore{font-size:13px}}
@media(max-width:560px){
 .chrome-folded{gap:8px;padding-inline:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right))}.chrome-folded-left{gap:8px}.chrome-brand{font-size:14px;letter-spacing:.8px}.chrome-restore{gap:5px;font-size:12px;padding-left:4px}
 .game-shell .topbar{padding-inline:12px;gap:8px}.game-shell .topbar-left{gap:8px}.game-shell .topbar-right{gap:5px}
 .game-shell .mobile-wordmark>span{display:none}
 .game-shell .topbar-right .icon-button,.game-shell .topbar .language{width:34px;min-width:34px;height:36px;flex:0 0 34px;padding:5px;min-height:36px}
 .game-shell .topbar-right .language{font-size:13px}.header-display>summary{width:34px}
}

.header-display>summary>.icon{transform:rotate(-90deg)}.chrome-restore>.icon{transform:rotate(90deg)}

.chrome-folded-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto}.chrome-folded-actions .icon-button,.chrome-folded-actions .language{position:relative;display:inline-flex;align-items:center;justify-content:center;width:44px;min-width:44px;height:44px;min-height:44px;padding:8px;color:#f5e4b4}.chrome-folded-actions .language{border:1px solid #b59d6380;border-radius:6px;font-size:14px}.chrome-folded-actions .icon{width:20px;height:20px}.chrome-folded-actions .logout-form{display:flex;margin:0}.chrome-folded-actions .inbox-unread,.chrome-folded-actions .bua-unread{right:0;top:0}.chrome-folded-actions :is(a,button):focus-visible{outline:3px solid #edcc73;outline-offset:1px}
@media(max-width:760px){.chrome-folded{gap:4px}.chrome-folded-actions{gap:2px}.chrome-restore>span{display:none}.chrome-restore{width:44px;min-width:44px;padding:8px}.chrome-folded-left{gap:6px}.chrome-brand{letter-spacing:.5px;font-size:14px}}


.auth-form[data-auth-form]:focus{outline:none}

html body.body .game-shell :is(.topbar-right,.chrome-folded-actions) .bua-header-help{display:inline-flex}

.bua-notifications{position:relative;flex-shrink:0}

/* The mobile header keeps all eight controls on one row, including the brand link. */
@media(max-width:760px){
 .game-shell{--mobile-header-row:56px;--mobile-header-control:32px;--mobile-header-brand:clamp(100px,calc(100vw - 278px),180px);--collapsed-chrome-height:calc(var(--mobile-header-row) + env(safe-area-inset-top,0px))}
 .game-shell .topbar,.game-shell .chrome-folded{display:flex;flex-wrap:nowrap;align-items:center;box-sizing:border-box;height:var(--collapsed-chrome-height);min-height:var(--collapsed-chrome-height);padding:env(safe-area-inset-top,0px) max(8px,env(safe-area-inset-right,0px)) 0 max(8px,env(safe-area-inset-left,0px))!important;gap:4px!important}
 .game-shell .topbar-left,.game-shell .chrome-folded-left{display:flex;flex:0 0 auto;align-items:center;gap:4px;min-width:0}
 .game-shell .mobile-wordmark,.game-shell .chrome-brand{display:flex;align-items:center;justify-content:center;width:var(--mobile-header-brand);min-width:var(--mobile-header-brand);height:40px;min-height:40px;padding:0;flex:0 0 var(--mobile-header-brand)}
 .game-shell .mobile-wordmark>span,.game-shell .chrome-brand>span{display:none}
 .game-shell .topbar-mark,.game-shell .chrome-brand-logo{display:block;width:100%;height:100%;object-fit:contain;flex:none}
 .game-shell .topbar-right,.game-shell .chrome-folded-actions{display:flex;flex:0 0 auto;flex-wrap:nowrap;align-items:center;justify-content:flex-end;gap:2px!important;width:auto;min-width:0;margin-left:auto}
 .game-shell .topbar .icon-button,.game-shell .topbar .language,.game-shell .chrome-folded-actions .icon-button,.game-shell .chrome-folded-actions .language,.game-shell .chrome-menu,.game-shell .chrome-restore,.game-shell .header-display>summary{display:inline-flex;align-items:center;justify-content:center;width:var(--mobile-header-control);min-width:var(--mobile-header-control);height:40px;min-height:40px;padding:0;flex:0 0 var(--mobile-header-control);font-size:14px}
 .game-shell .chrome-menu{border-radius:50%}.game-shell .chrome-restore{gap:0}.game-shell .chrome-restore>span,.game-shell .header-display>summary>span{display:none}
 .game-shell .topbar .mobile-menu,.game-shell .chrome-menu{position:relative;border:0;border-radius:0;background:transparent}
 .game-shell .topbar .mobile-menu::before,.game-shell .chrome-menu::before{content:"";position:absolute;left:0;top:50%;width:var(--mobile-header-control);height:var(--mobile-header-control);box-sizing:border-box;transform:translateY(-50%);border:1px solid #d4b97688;border-radius:50%;pointer-events:none}
 .game-shell .topbar .icon,.game-shell .chrome-folded .icon{width:20px;height:20px;flex:0 0 20px}
 .game-shell .topbar .logout-form,.game-shell .chrome-folded .logout-form{display:flex;flex:none;margin:0;padding:0}
 .game-shell .chrome-folded :is(.inbox-unread,.bua-unread){right:0;top:0}
 .game-shell:not([data-chrome-hidden=true]) :is(.sidebar,.sidebar-rail,.sidebar-backdrop){top:var(--collapsed-chrome-height)}
}
@media(max-width:374px){
 .game-shell{--mobile-header-row:52px;--mobile-header-control:30px;--mobile-header-brand:clamp(78px,calc(100vw - 250px),110px)}
 .game-shell .topbar,.game-shell .chrome-folded{gap:2px!important;padding-inline:max(6px,env(safe-area-inset-left,0px)) max(6px,env(safe-area-inset-right,0px))!important}
 .game-shell .topbar-left,.game-shell .chrome-folded-left{gap:2px}
 .game-shell .topbar-right,.game-shell .chrome-folded-actions{gap:1px!important}
}

@media(min-width:561px) and (max-width:760px){.game-shell{--mobile-header-control:40px;--mobile-header-brand:180px}}

@media(max-width:339px){.game-shell .topbar,.game-shell .chrome-folded{padding-inline:max(3px,env(safe-area-inset-left,0px)) max(3px,env(safe-area-inset-right,0px))!important}}

/* The public masthead shares the top-menu artwork; hero/footer branding does not. */
html body.body .public-header .public-topmenu-brand{display:flex;align-items:center;justify-content:center;width:224px;height:56px;min-width:0;padding:0;flex:0 1 224px}
html body.body .public-header .public-topmenu-brand>span{display:none}
html body.body .public-header .public-topmenu-logo{display:block;width:100%;height:100%;object-fit:contain}
@media(max-width:760px){
 html body.body .public-header .public-topmenu-brand{width:clamp(140px,calc(100vw - 150px),224px);max-width:calc(100% - 53px);height:44px;flex:0 1 auto}
}





/* assets/css/city-plots.css */
.city-stage [data-city-plots-open]{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0}.city-stage [data-city-plots-open] svg{width:20px;height:20px}.city-stage [data-city-plots-open] span{font-size:10px;line-height:1.2}
.city-stage [data-city-plots-open][hidden]{display:none!important}
.city-stage .city-building.is-located>.building-info{outline:3px solid #f3c663;outline-offset:4px;box-shadow:0 0 0 8px #1c4b3580}
.city-plots-dialog{position:fixed;inset:0;margin:auto;padding:0;width:min(860px,calc(100vw - 32px));height:min(780px,calc(100dvh - 32px));max-width:none;max-height:none;border:1px solid #b69a5e;border-radius:16px;background:#f3ead4;color:#294734;overflow:hidden;box-shadow:0 24px 90px #001c16a6}
.city-plots-dialog:not([open]){display:none}.city-plots-dialog[open]{display:flex;flex-direction:column}.city-plots-dialog::backdrop{background:#071f19c9}
.city-plots-dialog>header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;background:#173e30;color:#ffebbb}.city-plots-dialog h2{font-size:22px;color:inherit;margin:0;line-height:1.5}.city-plots-dialog>header button{flex-shrink:0;width:44px;height:44px;border:1px solid #b69a5e;border-radius:10px;background:#ffffff0c;color:inherit;font-size:30px;cursor:pointer}
.city-plots-tools{padding:18px 24px 10px;border-bottom:1px solid #b9a47666}.city-plots-tools label{display:grid;gap:7px;font-size:14px;font-weight:600;color:#294734}.city-plots-tools input{box-sizing:border-box;width:100%;min-height:44px;margin:0;padding:10px 12px;border:1px solid #ab9564;border-radius:8px;background:#fffcf3;color:#243e2f;font:inherit}.city-plots-tools input::placeholder{color:#6a705b}
.city-plots-filters{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}.city-plots-dialog button{font:inherit}.city-plots-filters button,.city-plot-actions button{min-height:44px;padding:8px 12px;border:1px solid #ae965f;border-radius:8px;background:#fffcf2;color:#2c4a36;cursor:pointer}.city-plots-filters button[aria-pressed=true]{background:#28563d;color:#ffefc6;border-color:#28563d}.city-plots-count{margin:0;color:#53634e;font-size:13px}
.city-plots-list{min-height:0;overflow:auto;overscroll-behavior:contain;padding:0 24px 16px}.city-plots-list article{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 0;border-bottom:1px solid #b9a47666}.city-plots-list article>div:first-child{min-width:0}.city-plots-list strong{display:block;color:#23482f;font-size:17px;line-height:1.6;overflow-wrap:anywhere}.city-plots-list small{display:block;color:#5a644e;line-height:1.8;font-size:13px}.city-plot-actions{display:flex;gap:8px;flex-shrink:0}.city-plot-actions button:last-child{background:#e4d3a7;color:#2c4632}.city-plots-empty{padding:24px 0;color:#56634d}.city-plots-dialog :is(button,input):focus-visible{outline:3px solid #bb7d22;outline-offset:3px}
@media(max-width:600px){.city-plots-dialog{width:100%;height:100dvh;border:0;border-radius:0}.city-plots-dialog>header{padding:16px}.city-plots-dialog h2{font-size:19px}.city-plots-tools{padding:14px 16px 10px}.city-plots-list{padding:0 16px 18px}.city-plots-list article{align-items:flex-start;flex-direction:column;gap:10px}.city-plot-actions{width:100%}.city-plot-actions button{flex:1}.city-plots-filters{gap:6px}.city-plots-filters button{flex:1 0 calc(50% - 6px)}}



/* assets/css/scene-weather.css */
/* Atmosphere is independent of cached terrain and never intercepts a scene tap. */
.scene-weather-light,.scene-weather-wash,.scene-weather-particles,.scene-weather-field,.scene-season-ground,.city-night-lights{position:absolute;inset:0;pointer-events:none!important;user-select:none}
.city-world>.scene-season-ground{z-index:2}.city-world>.scene-weather-light{z-index:1000}.city-world>.scene-weather-wash{z-index:1001}.city-world>.scene-weather-particles{z-index:1050}.city-world>.city-night-lights{z-index:1060}
.scene-weather-particles,.scene-weather-field,.scene-season-ground{width:100%;height:100%;max-width:none}
.realm-world>.scene-weather-field{z-index:1}.realm-world>.realm-landmarks{z-index:3}.realm-world>.scene-weather-light,.realm-world>.scene-weather-particles{z-index:2}
.realm-canvas-ready .realm-world>canvas:is(.scene-weather-particles,.scene-weather-field){visibility:visible}
.city-stage[data-scene-time="night"]>.city-vignette,.city-stage[data-scene-time="dusk"]>.city-vignette{box-shadow:inset 0 0 70px #11273835;background:linear-gradient(#17314a0d,transparent 30%,transparent 75%,#17314a12)}
.city-night-lights[hidden]{display:none!important}
.city-lamp{position:absolute;width:58px;height:58px;transform:translate(-50%,-50%);background:radial-gradient(ellipse,#fff5bded 0 2%,#ffcf7370 5%,#efae382c 26%,transparent 69%);pointer-events:none;animation:city-lamp-flicker 3.8s ease-in-out infinite alternate}
.city-lamp:nth-child(3n){animation-delay:-1.6s}.city-lamp:nth-child(4n){animation-duration:4.6s}
.city-window-lamp{width:44px;height:44px}.city-window-lamp:after{content:"";position:absolute;left:20px;top:18px;width:4px;height:7px;border:1px solid #7f5c32;background:#ffe3a0;box-shadow:0 0 5px #ffd27da8}
.city-wall-lamp:before,.city-door-lamp:before{content:"";position:absolute;left:28px;top:30px;width:3px;height:11px;background:#59442a;border-radius:1px}
.city-wall-lamp:after,.city-door-lamp:after{content:"";position:absolute;left:26px;top:23px;width:6px;height:10px;border-radius:60% 40% 50% 50%;background:linear-gradient(#fff4b5,#ffca63 60%,#d87a28);box-shadow:0 0 7px #ffc678a8}
.scene-weather-badge{display:table;max-width:100%;margin-top:6px;padding:4px 8px;border:1px solid #bca66c99;border-radius:7px;background:#14372ef2;color:#f9e8bc;font:500 11px/1.5 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap}
.scene-weather-badge .icon{width:15px;height:15px;vertical-align:-3px;margin-right:5px;color:#eed292}.scene-weather-badge[hidden]{display:none}
.world-clock>a:first-child{flex-wrap:wrap;column-gap:10px;row-gap:2px}.world-game-time{display:inline-flex;align-items:center;gap:5px;padding-left:10px;border-left:1px solid #c4ad7166;font-size:11px;color:#d7d9bb}.world-game-time time{color:#ffe6a7;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:760px){.world-game-time{font-size:10px;padding-left:7px;gap:4px}.world-clock>a:first-child{column-gap:7px}.world-clock .season-countdown{flex-wrap:wrap;column-gap:8px;row-gap:0}}
.effects-off .scene-weather-particles{display:none!important}.effects-off .city-lamp{animation:none!important}
@keyframes city-lamp-flicker{from{opacity:.82}to{opacity:1}}
@media(max-width:760px){.scene-weather-badge{font-size:10px;padding:3px 6px;margin-top:4px}.scene-weather-badge .icon{width:13px;height:13px}}
@media(prefers-reduced-motion:reduce){html:not([data-motion-effects="on"]) .scene-weather-particles{display:none!important}.city-lamp{animation:none!important}}
/* Weather stays informational; all march notifications use the town force control. */
.city-atmosphere-status{display:block;width:max-content;max-width:min(340px,calc(100vw - 40px));margin-top:6px}.city-atmosphere-status>.scene-weather-badge{margin-top:0}
@media(max-width:760px){.city-atmosphere-status{margin-top:4px;max-width:min(340px,calc(100vw - 40px))}}

/* Light cover on existing roofs; map markers, routes and text stay legible. */
[data-scene-winter="on"] .scene-season-ground{z-index:3}
[data-scene-winter="on"].city-stage:not(.city-canvas-ready) :is(.city-sprite,.village-wall img){filter:saturate(.74) brightness(1.09)}
[data-scene-winter="on"] .realm-village img{filter:saturate(.77) brightness(1.08)}



/* assets/css/store-swipe.css */
.store-owned,.store-mobile-categories{width:min(calc(100% - 72px),1320px);margin:24px auto}
.store-owned{border:1px solid #a88d55;border-radius:10px;background:#17362c;color:#f7e5b6;scroll-margin-top:90px}
.store-owned>summary{display:flex;gap:10px;align-items:center;min-height:48px;padding:12px 18px;cursor:pointer;list-style:none}
.store-owned>summary::-webkit-details-marker{display:none}
.store-owned-chevron{margin-left:auto}
.store-owned[open] .store-owned-chevron{transform:rotate(180deg)}
.store-owned-content{padding:0 18px 16px}
.store-owned-content h3{font-size:1rem;margin:14px 0 5px;color:#e7c986}
.store-owned-list{list-style:none;margin:0;padding:0}
.store-owned-list li{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;padding:10px 0;border-top:1px solid #aa905a55}
.store-owned-list .badge{margin-inline-start:6px}
.store-owned-list small{display:block;color:#e0d3a9}
.store-owned-list a{color:#f6d98e;text-decoration:underline;text-underline-offset:.2em}
.store-mobile-categories,.store-swipe-controls{display:none}
@media(max-width:700px){
 .is-store .market-cinema{display:block;min-height:0;padding:20px 16px 16px}
 .is-store .market-intro h1{font-size:clamp(26px,8vw,36px);margin:4px 0}
 .is-store .market-intro>p,.is-store .market-promise,.is-store .store-hero p{display:none}
 .is-store .market-cinema .store-hero.panel{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;min-width:0;margin:12px 0 0;padding:10px 12px}
 .is-store .market-cinema .wallet-amount b{font-size:1.45rem}
 .is-store .market-cinema .store-hero .btn{font-size:.8rem;min-height:44px;padding-inline:10px}
 .is-store .market-nav{gap:12px;padding-block:5px;justify-content:center}
 .is-store .market-nav a{min-height:36px;display:flex;align-items:center}
 .store-swipe-enabled .market-nav a[href="#collection"],.store-swipe-enabled .market-nav a[href="#resource-packs"],.store-swipe-enabled .market-nav a[href="#topup"]{display:none}
 .store-owned,.store-mobile-categories{width:calc(100% - 28px);margin:12px auto}
 .store-swipe-enabled .store-mobile-categories{display:flex;gap:6px}
 .store-mobile-categories a{display:grid;place-items:center;text-align:center;flex:1 1 0;min-height:44px;padding:4px 6px;border:1px solid #a88d55;border-radius:6px;color:#f7e5b6;font-size:.85rem}
 .store-mobile-categories a[aria-current]{color:#17362c;background:#eed498;font-weight:bold}
 .store-swipe-enabled [data-store-category]:not(.store-category-active){display:none}
 .is-store .store-section[data-store-category]{margin-block:12px;scroll-margin-top:90px}
 .is-store [data-store-category] .panel-heading{margin-bottom:8px}
 .is-store [data-store-category] .panel-heading>.badge,.is-store [data-store-category] .panel-heading>.muted{display:none}
 .is-store [data-store-category] .panel-heading h2{font-size:1.3rem}
 .is-store .store-items[data-store-rail],.is-store .store-packs[data-store-rail]{
  display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:calc(100% - 20px);gap:10px;align-items:start;
  max-width:100%;min-width:0;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;padding:2px 10px 8px 0;
 }
 .is-store [data-store-rail]>article{scroll-snap-align:start;min-width:0;overflow-wrap:anywhere}
 .is-store [data-store-rail]>article:last-child{scroll-snap-align:end}
 .is-store [data-store-rail] .cosmetic-preview{height:110px;min-height:0}
 .is-store [data-store-rail] .cosmetic-avatar{max-width:56px;max-height:56px}
 .is-store [data-store-rail] .cosmetic-preview .cosmetic-name{display:none}
 .is-store [data-store-rail] .store-item-body,.is-store [data-store-rail] .crown-pack{padding:12px}
 .is-store [data-store-rail] .store-item-body h3{margin-top:0}
 .is-store [data-store-rail] .crown-pack .pack-icon{margin:4px auto}
 .is-store [data-store-rail] [id],.is-store [data-store-rail]>[id]{scroll-margin-top:90px}
 .store-swipe-enabled .store-swipe-controls{display:flex;align-items:center;gap:6px;margin:2px 0 8px;color:#ebd6a0;font-size:.8rem}
 .store-swipe-controls>span:first-child{margin-right:auto}
 .store-swipe-controls button.btn{background:#17362c;color:#f7e5b6;border:1px solid #a88d55;min-width:44px;min-height:44px;padding:0;font-size:1.2rem}
 .store-swipe-controls button.btn:disabled{opacity:.45}
 .store-swipe-controls [data-store-position]{min-width:3.3ch;text-align:center;white-space:nowrap;font-variant-numeric:tabular-nums}
}



/* assets/css/march-reports.css */
.march-reports{min-width:0}
.march-report-list{display:grid;gap:.8rem;min-width:0}
.march-report-card{min-width:0;display:grid;gap:.8rem;padding:clamp(.85rem,3vw,1.2rem);border:1px solid #b3a375;border-radius:.7rem;background:#fffaf0;color:#233a31;overflow-wrap:anywhere}
.march-report-card>header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:.45rem .85rem}
.march-report-card h3{margin:0;min-width:0;font-size:1.05rem;line-height:1.55;color:#233a31}
.march-report-card .march-town-link,.march-report-inbox{color:#255b47;text-decoration:underline;text-underline-offset:.18em}
.march-report-card .badge{width:max-content;max-width:100%;height:auto;line-height:1.4;background:#e6eedb;color:#1b4b36}
.march-report-timing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem .9rem}
.march-report-timing>small,.march-report-timing>p{margin:0;font-size:.92rem;line-height:1.55;color:#4e5948}
.march-report-timing time{display:block;font-weight:700;color:#263f33}
.march-report-facts{margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem .9rem}
.march-report-facts>div{min-width:0;border-top:1px solid #ded3b6;padding-top:.5rem}
.march-report-facts dt{font-size:.88rem;color:#4e5948}
.march-report-facts dd{margin:0;font-weight:700}
.march-report-inbox{justify-self:start;min-height:44px;display:flex;align-items:center}
@media(max-width:620px){.march-report-card>header{display:grid;justify-content:stretch}.march-report-timing{grid-template-columns:minmax(0,1fr)}}
@media(max-width:390px){.march-report-facts{grid-template-columns:minmax(0,1fr)}}



/* assets/css/account-closure.css */
.closure-panel{max-width:52rem;width:100%;min-width:0}
.closure-case{border:1px solid #baab81;border-radius:.65rem;padding:clamp(.85rem,3vw,1.25rem);margin:1rem 0;background:#fffaf0;color:#293e32;overflow-wrap:anywhere}
.closure-case h2{font-size:1.1rem;margin:0 0 .5rem;color:#293e32}
.closure-case p{margin:.45rem 0}
.closure-message{white-space:pre-wrap;overflow-wrap:anywhere}
.closure-reply{border-inline-start:3px solid #7b917a;padding-inline-start:.75rem;margin-top:.75rem}
.closure-form{display:grid;gap:.65rem;max-width:44rem;margin-top:1rem;min-width:0}
.closure-form .textbox{width:100%;min-width:0;box-sizing:border-box}
.closure-form>.btn{justify-self:start}
.closure-form .closure-confirm{display:grid;grid-template-columns:1.125rem minmax(0,1fr);align-items:start;gap:.55rem;padding:.35rem 0;cursor:pointer}
.closure-form .closure-confirm>input[type=checkbox]{inline-size:1.125rem;block-size:1.125rem;margin:.22em 0 0;padding:0;justify-self:start;accent-color:#356b4f}
.closure-form .closure-confirm>span{min-inline-size:0;white-space:normal;word-break:normal;overflow-wrap:break-word;line-height:1.55}
.closure-actions{display:flex;flex-wrap:wrap;gap:.65rem}



