@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/fonts/dmsans-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./assets/fonts/dmsans-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(./assets/fonts/dmsans-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(./assets/fonts/dmsans-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(./assets/fonts/dmsans-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(./assets/fonts/dmsans-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/fonts/dmmono-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'DM Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(./assets/fonts/dmmono-1.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Patrick Hand';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(./assets/fonts/patrickhand-0.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root{--paper:#f6efde;--ink:#28372c;--green:#193e33;--muted:#797d67;--coral:#e78c70;--line:#c9c7af;--hand:'Patrick Hand','Comic Sans MS',cursive;--sans:'DM Sans',system-ui,sans-serif;--mono:'DM Mono',monospace}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.7' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%238e7742' opacity='.04' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}button,a,input{ -webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:disabled{cursor:not-allowed;opacity:.42}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #b35d3f;outline-offset:4px}a{color:inherit}button{touch-action:manipulation}.masthead{height:94px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:42px;padding:0 4vw;max-width:1700px;margin:auto}.wordmark{text-decoration:none;min-width:170px;transform:rotate(-1deg);display:flex;flex-direction:column;align-items:center}.wordmark b{font-family:var(--hand);font-weight:bold;font-size:38px;line-height:1;letter-spacing:1px}.wordmark b span{font:11px var(--mono);vertical-align:top;margin-left:4px}.wordmark small{font:10px var(--mono);letter-spacing:3px;margin-top:4px}.masthead nav{display:flex;gap:26px}.nav-link{border:0;background:none;font-size:13px;padding:14px 0;color:#6f7562}.nav-link.active{color:var(--green);border-bottom:2px solid var(--green)}.header-right{display:flex;align-items:center;gap:20px;margin-left:auto}.thread-count{font:18px var(--hand);white-space:nowrap}.icon-btn{background:none;border:1px solid var(--line);border-radius:50%;width:36px;height:36px;font-size:18px}.account-btn{background:none;border:1px solid #78806a;padding:10px 15px;border-radius:5px;font-size:12px}.site-footer{display:flex;gap:18px;justify-content:space-between;margin:40px 4vw 0;padding:20px 0;border-top:1px solid var(--line);font:9px var(--mono);letter-spacing:1px;color:#737965}.site-footer a{text-decoration:none}.home{max-width:1440px;margin:0 auto;padding:38px 4vw 0}.eyebrow{font:10px var(--mono);letter-spacing:2px;text-transform:uppercase;color:#6f7960}.intro-row{display:flex;align-items:flex-end;justify-content:space-between;gap:30px;margin-bottom:27px}.intro-row h1{font:70px/.88 var(--hand);letter-spacing:-2px;margin:13px 0;color:var(--green);transform:rotate(-1deg)}.intro-row h1 em{color:#c87055;font-style:normal}.intro-row p{font-size:13px;line-height:1.7;max-width:310px;margin:0 0 10px;color:#737764}.intro-note{display:flex;align-items:center;gap:12px;font:16px var(--hand);max-width:240px;transform:rotate(3deg)}.intro-note img{width:70px;height:76px;object-fit:contain}.campaign-layout{display:grid;grid-template-columns:1fr 310px;gap:24px}.map-panel{border:1.5px solid #6a765e;border-radius:12px 8px 16px 7px;overflow:hidden;background:#e4e6cb;position:relative;min-height:420px;box-shadow:3px 4px 0 #d9dac2}.map-head{position:absolute;top:19px;left:23px;z-index:2}.map-head strong{font:24px var(--hand)}.map-head small{display:block;font:9px var(--mono);margin-top:4px;letter-spacing:1px}.world-svg{width:100%;height:420px;display:block}.region-node{position:absolute;z-index:3;width:115px;text-align:center;transform:translate(-50%,-50%)}.region-node button{background:#f9f2db;border:2px solid #56674f;box-shadow:3px 3px 0 #798b6655;width:44px;height:44px;border-radius:50%;font:22px var(--hand)}.region-node.selected button{background:var(--green);color:var(--paper);box-shadow:0 0 0 5px #f7edca,0 0 0 6px #7c8b65}.region-node.locked button{background:#d5d9c4;color:#8f967e}.region-node>span{display:block;margin-top:7px;font:15px var(--hand);background:#f4eed8d9;border-radius:5px;padding:2px 4px}.region-node small{font:11px var(--mono);color:#a97b39}.map-caption{position:absolute;bottom:14px;left:22px;font:13px var(--hand);color:#69795e;transform:rotate(-2deg)}.mission-panel{display:flex;flex-direction:column;padding:24px;background:#eee7d3;border:1px solid #c6c4ab;border-radius:5px 14px 6px 12px}.mission-panel h2{font:36px/1.05 var(--hand);margin:12px 0}.mission-panel .story{font-size:12px;line-height:1.7;color:#727660;min-height:64px}.mission-options{display:flex;flex-direction:column;gap:8px;margin:14px 0}.mission-option{text-align:left;border:1px solid #c4c3aa;background:#f7f1e0;padding:12px;border-radius:5px;display:flex;justify-content:space-between;align-items:center;font-size:12px}.mission-option.selected{border:1.5px solid var(--green);background:#e2e5cd}.stars{color:#ad7e39;letter-spacing:2px;font-size:12px;white-space:nowrap}.mission-meta{display:flex;gap:10px;font:10px var(--mono);margin:6px 0 15px;color:#747861}.primary{background:var(--green);color:#fcf4dc;border:1.5px solid #132e24;border-radius:5px 8px 4px 7px;box-shadow:0 3px 0 #0e2a20;padding:14px 20px;font-size:13px;font-weight:700;transition:transform .15s,background .15s}.primary:hover{background:#2b5644;transform:translateY(-1px)}.primary:active{transform:translateY(2px);box-shadow:none}.primary.coral{background:var(--coral);color:#2c382a;box-shadow:0 3px 0 #ab6049;border-color:#804d39}.secondary{background:#faf3df;border:1px solid #77816a;padding:11px 16px;border-radius:5px;font-size:12px}.small-note{font-size:10px;line-height:1.6;color:#7d806b;margin:12px 0 0}.roster-section{margin-top:30px}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.section-heading h2{font:24px var(--hand);margin:0}.section-heading small{font:9px var(--mono);color:#7b806e;letter-spacing:1px}.roster{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.hero-card{display:flex;text-align:left;align-items:center;gap:12px;position:relative;background:#f5efde;border:1px solid #c1c3aa;border-radius:9px 5px 8px 5px;padding:12px;min-height:114px}.hero-card.selected{border:2px solid #3f5b42;background:#e6e8d1}.hero-card img{width:74px;height:80px;object-fit:contain}.hero-card strong{font:25px var(--hand)}.hero-card p{font-size:10px;margin:3px 0 8px;color:#757a64}.hero-card small{font:9px var(--mono)}.hero-card .xp-track{height:3px;width:80px;background:#d7dac3;margin-top:5px}.hero-card .xp-track i{height:3px;background:#567c59;display:block}.selected-tag{position:absolute;top:7px;right:8px;font:8px var(--mono);color:#4c6d49}.modes{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:22px}.mode-card{display:flex;gap:17px;align-items:center;padding:18px 20px;border:1px dashed #939b80;border-radius:8px;background:none;text-align:left}.mode-card .mode-icon{font:35px var(--hand)}.mode-card strong{font:20px var(--hand)}.mode-card p{font-size:11px;color:#767c67;margin:4px 0}.mode-card .arrow{margin-left:auto;font-size:25px}.game-screen{max-width:1450px;margin:0 auto;padding:18px 2vw 0}.battle-top{display:flex;gap:20px;align-items:center;margin-bottom:12px}.battle-top .mission-title{flex:1}.mission-title strong{display:block;font:25px var(--hand)}.mission-title small{font:9px var(--mono);letter-spacing:1px;color:#707b62}.metric{display:flex;align-items:center;gap:9px;font:24px var(--hand);white-space:nowrap}.metric small{display:block;font:8px var(--mono);color:#7c826a;letter-spacing:1px}.metric .health-icon{color:#bd6650}.metric .scrap-icon{color:#9c803b}.battle-controls{display:flex;gap:7px}.battle-controls button{padding:8px 11px;border:1px solid #8d967e;background:none;border-radius:4px;font:12px var(--mono);min-height:34px}.canvas-wrap{position:relative;overflow:hidden;border-radius:8px 5px 7px 4px;background:#d4dcb7;box-shadow:0 4px 0 #c3c7ac}#battle{width:100%;height:auto;aspect-ratio:2;display:block;touch-action:none}.battle-banner{position:absolute;top:17px;left:50%;transform:translateX(-50%);background:#f9f0dce8;border:1px solid #637653;padding:9px 24px;border-radius:5px;pointer-events:none;text-align:center;max-width:80%}.battle-banner strong{font:24px var(--hand)}.battle-banner small{display:block;font:9px var(--mono);margin-top:3px}.coach{position:absolute;bottom:15px;left:20px;background:#f9f0dfed;border:1px solid #879178;border-radius:5px;padding:11px 15px;max-width:320px;font-size:11px;line-height:1.5;pointer-events:none}.coach b{font:17px var(--hand);display:block}.command-deck{display:grid;grid-template-columns:1fr 270px;gap:15px;margin-top:17px}.recruit-row{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.recruit-card{display:flex;position:relative;align-items:center;gap:6px;background:#faf3df;border:1.5px solid #adb397;border-radius:8px 5px 8px 4px;padding:8px;text-align:left;min-height:100px}.recruit-card.selected{border:2px solid #355437;background:#e1e6ca;box-shadow:0 0 0 2px #bac5a3}.recruit-card img{width:60px;height:66px}.recruit-card strong{font:22px var(--hand)}.recruit-card small{display:block;font:10px var(--mono);margin-top:3px}.recruit-card kbd{position:absolute;top:7px;right:8px;font:8px var(--mono);color:#94977e}.hero-controls{display:grid;grid-template-columns:1fr 60px;gap:8px}.ability-btn{border:2px solid #485f42;border-radius:6px;background:#dfe4c9;text-align:left;padding:12px;position:relative;overflow:hidden}.ability-btn strong{font:21px var(--hand);position:relative;display:block}.ability-btn small{font:9px var(--mono);position:relative}.ability-fill{position:absolute;inset:0;background:#879d7450;transform-origin:left}.move-btn{border:1px solid #8d967e;background:none;border-radius:5px;font:12px var(--hand)}.below-battle{display:flex;align-items:center;gap:18px;margin-top:13px;min-height:60px}.wave-preview{flex:1;font-size:11px;color:#727d63}.wave-preview b{font:11px var(--mono);color:#344d34;display:block;margin-bottom:4px}.relic-strip{display:flex;gap:5px}.relic-chip{background:#e4dfc5;border:1px solid #adae8f;border-radius:50%;width:27px;height:27px;display:grid;place-items:center;font:15px var(--hand)}.unit-inspector{border:1px solid #abb298;border-radius:6px;margin-top:13px;padding:14px 18px;display:flex;align-items:center;gap:18px;background:#e8e6cf}.unit-inspector h3{font:24px var(--hand);margin:0}.unit-inspector p{font-size:10px;color:#707a61;margin:3px 0}.unit-inspector .inspect-stats{font:10px var(--mono);line-height:1.8;flex:1}.unit-inspector button{font-size:11px}.unit-inspector .branches{display:flex;gap:7px}.branches button{max-width:170px;text-align:left}.branches small{display:block;font-size:9px;margin-top:4px}.center-page{max-width:1080px;margin:40px auto;padding:0 4vw}.page-title{font:54px var(--hand);margin:10px 0}.page-lead{color:#747b63;font-size:13px;line-height:1.8;max-width:620px}.workshop-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin:25px 0}.workshop-card{padding:25px;background:#ede8d4;border:1.5px solid #aab095;border-radius:8px 12px 5px 9px}.workshop-card h2{font:28px var(--hand);margin:10px 0}.workshop-card p{font-size:12px;line-height:1.6;color:#717a62}.workshop-card .ranks{font:25px var(--hand);letter-spacing:7px;margin:15px 0}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.guide-card{padding:22px;border:1px solid #b7bea2;border-radius:9px;background:#efe9d5}.guide-card canvas{display:block;margin:auto;width:110px;height:95px}.guide-card h3{font:25px var(--hand);margin:8px 0}.guide-card p{font-size:12px;line-height:1.7;color:#737b66}.guide-card small{font:9px var(--mono)}.guide-tabs{display:flex;gap:8px;margin:25px 0}.guide-tabs button.active{background:var(--green);color:var(--paper)}.modal-backdrop{position:fixed;inset:0;background:#172c22a8;backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:20px;overflow:auto}.modal{width:min(560px,100%);background:var(--paper);border:2px solid #384735;box-shadow:8px 9px 0 #142c2460;border-radius:11px 6px 15px 6px;padding:30px;position:relative;max-height:90vh;overflow:auto}.modal.wide{width:min(850px,100%)}.modal h2{font:43px/1.05 var(--hand);margin:12px 0 16px}.modal p{font-size:13px;line-height:1.75;color:#6c765f}.modal .close{position:absolute;top:14px;right:16px;background:none;border:none;font:24px var(--hand)}.modal-actions{display:flex;gap:10px;margin-top:22px}.modal-actions>*{flex:1;text-align:center}.setting-row{display:flex;align-items:center;justify-content:space-between;padding:15px 0;border-bottom:1px solid #d4d2ba;font-size:13px}.setting-row input[type=range]{accent-color:var(--green);width:45%}.setting-row input[type=checkbox]{accent-color:var(--green);width:20px;height:20px}.save-actions{display:flex;gap:8px;margin-top:20px;flex-wrap:wrap}.danger{color:#a04c39}.relic-options{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;margin:25px 0 5px}.relic-option{text-align:left;background:#eee7cf;border:1.5px solid #96a080;border-radius:6px;padding:23px 17px;transition:transform .15s}.relic-option:hover{transform:translateY(-6px);background:#e2e6ca}.relic-option .relic-icon{font:45px var(--hand);display:block;margin-bottom:12px;color:#79824f}.relic-option strong{font:25px/1.1 var(--hand)}.relic-option p{font-size:12px;line-height:1.65}.result-art{width:100px;height:110px;display:block;margin:0 auto}.result-title{text-align:center}.result-stars{font:35px var(--hand);color:#b18943;letter-spacing:12px;text-align:center}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0}.result-grid div{text-align:center;background:#e9e5cf;padding:14px 5px;border-radius:5px}.result-grid strong{display:block;font:26px var(--hand)}.result-grid small{font:9px var(--mono);color:#7a8169}.reward-line{text-align:center;font:20px var(--hand)}#toast{position:fixed;bottom:25px;left:50%;transform:translate(-50%,20px);opacity:0;transition:.2s;background:#213f32;color:#faf1d7;padding:12px 20px;border:1px solid #83936e;border-radius:6px;max-width:90vw;font-size:12px;z-index:100;pointer-events:none}#toast.show{transform:translate(-50%,0);opacity:1}.gate-steps{list-style:none;padding:0;margin:20px 0}.gate-steps li{display:flex;gap:13px;padding:14px 0;border-bottom:1px solid #d3d1b7}.gate-steps i{font:22px var(--hand);width:28px;height:28px;border:1px solid #87946f;text-align:center;border-radius:50%;font-style:normal}.gate-steps strong{font-size:13px}.gate-steps small{display:block;font-size:11px;color:#7c836c;margin-top:5px}.error-message{background:#f3ddcc;padding:12px;border:1px solid #c28b71;border-radius:4px;color:#964b36!important}.mobile-label{display:none}.screen-reader{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}.contrast .canvas-wrap{filter:contrast(1.15)}.reduced-motion *, .reduced-motion *::before,.reduced-motion *::after{animation:none!important;transition:none!important}@media(min-width:1600px){.home{padding-top:55px}.map-panel,.world-svg{min-height:470px;height:470px}.intro-row h1{font-size:80px}.campaign-layout{grid-template-columns:1fr 340px}}
@media(max-width:1000px){.masthead{gap:20px;padding:0 3vw;height:80px}.masthead nav{gap:15px}.header-right{gap:10px}.account-btn{font-size:10px;padding:9px}.wordmark{min-width:130px}.wordmark b{font-size:32px}.campaign-layout{grid-template-columns:1fr 270px}.hero-card{gap:4px;padding:8px}.hero-card img{width:55px}.hero-card p{font-size:9px}.command-deck{grid-template-columns:1fr 220px}.recruit-card{gap:2px}.recruit-card img{width:43px;height:55px}.recruit-card strong{font-size:19px}.intro-row h1{font-size:60px}.metric{font-size:21px}.battle-top{gap:13px}.unit-inspector{flex-wrap:wrap}.unit-inspector .inspect-stats{min-width:120px}.guide-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.masthead{height:72px;gap:10px}.masthead nav{display:none}.wordmark{min-width:120px}.wordmark b{font-size:30px}.wordmark small{font-size:8px}.header-right{gap:8px}.thread-count{font-size:15px}.account-btn{padding:8px;max-width:120px}.home{padding:24px 4vw 0}.intro-row{gap:12px;align-items:center}.intro-row h1{font-size:49px;letter-spacing:-1px}.intro-row p{font-size:11px;max-width:180px}.intro-note{display:none}.eyebrow{font-size:8px;letter-spacing:1px}.campaign-layout{grid-template-columns:1fr}.map-panel,.world-svg{min-height:330px;height:330px}.map-head{top:14px;left:17px}.map-head strong{font-size:20px}.region-node{width:95px}.region-node>span{font-size:13px}.region-node button{width:36px;height:36px;font-size:18px}.mission-panel{padding:20px}.mission-panel h2{font-size:30px;margin:8px 0}.mission-panel .story{min-height:0;margin:5px 0}.mission-options{flex-direction:row}.mission-option{flex:1;gap:6px;font-size:10px;padding:10px}.mission-panel .primary{padding:13px}.roster{grid-template-columns:1fr 1fr;gap:8px}.hero-card{min-height:100px}.hero-card img{width:61px}.hero-card strong{font-size:23px}.modes{grid-template-columns:1fr;gap:10px}.mode-card{padding:14px}.site-footer{font-size:8px;line-height:1.8;flex-wrap:wrap;margin-top:24px}.site-footer span:nth-child(2){display:none}.game-screen{padding:12px 2vw}.battle-top{gap:8px;flex-wrap:wrap}.mission-title{min-width:130px}.mission-title strong{font-size:20px}.metric{font-size:20px}.metric small{font-size:7px}.battle-controls{margin-left:auto}.battle-controls button{padding:6px 8px}.command-deck{grid-template-columns:1fr;gap:10px;margin-top:10px}.recruit-row{gap:6px}.recruit-card{flex-direction:column;text-align:center;padding:7px 3px;min-height:107px}.recruit-card img{width:43px;height:48px}.recruit-card strong{font-size:18px}.recruit-card small{font-size:9px}.recruit-card kbd{display:none}.hero-controls{grid-template-columns:1fr 100px}.ability-btn{padding:9px 13px}.ability-btn strong{font-size:20px}.ability-btn small{font-size:8px}.move-btn{font-size:14px}.below-battle{gap:8px;flex-wrap:wrap}.wave-preview{font-size:9px;min-width:160px}.below-battle .primary{padding:12px;font-size:11px}.coach{left:8px;bottom:8px;max-width:200px;padding:7px 10px;font-size:9px}.coach b{font-size:13px}.battle-banner{top:9px;padding:5px 12px}.battle-banner strong{font-size:17px}.battle-banner small{font-size:8px}.unit-inspector{gap:10px;padding:12px}.unit-inspector h3{font-size:22px}.unit-inspector .branches{width:100%}.branches button{max-width:none;flex:1}.workshop-grid{grid-template-columns:1fr}.page-title{font-size:42px}.guide-grid{grid-template-columns:1fr 1fr;gap:10px}.guide-card{padding:14px}.guide-card h3{font-size:22px}.guide-card p{font-size:11px}.modal{padding:24px 20px}.modal h2{font-size:35px}.relic-options{grid-template-columns:1fr;gap:9px;margin-top:16px}.relic-option{padding:13px;display:grid;grid-template-columns:45px 1fr;column-gap:12px}.relic-option .relic-icon{grid-row:span 2;margin:0;font-size:32px}.relic-option strong{font-size:22px}.relic-option p{margin:5px 0 0;font-size:11px}.modal-actions{flex-wrap:wrap}.modal-actions>*{min-width:120px}.mobile-label{display:block;font:9px var(--mono);text-align:center;color:#888d76;margin:8px 0}.section-heading small{font-size:8px;max-width:130px;text-align:right}}
@media(max-width:450px){.intro-row p{max-width:150px}.intro-row h1{font-size:44px}.hero-card{gap:3px}.hero-card img{width:47px}.hero-card p{max-width:100px}.hero-card .xp-track{width:65px}.selected-tag{font-size:7px}.battle-top .mission-title{width:100%;flex:auto}.battle-controls{position:absolute;right:3vw}.metric{font-size:19px}.battle-top{padding-top:0}.canvas-wrap{overflow:auto}#battle{min-height:245px;object-fit:cover}.game-screen .site-footer{display:none}.recruit-card img{height:42px}.guide-grid{grid-template-columns:1fr 1fr}.map-head small{font-size:8px}}

/* The frame stays quiet; the world owns the screen. */
.entering>.home,.entering>.center-page{animation:arrive .32s ease-out both}
@keyframes arrive{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
button:not(:disabled){transition:background .16s,transform .16s,box-shadow .16s}
.hero-card:hover:not(:disabled),.recruit-card:hover:not(:disabled){background:#e8e8cf;transform:translateY(-2px)}
.hero-card canvas{width:74px;height:80px;flex:none}.mission-modifier:empty{display:none}.mission-modifier{border-left:3px solid #9c6d48;padding:8px 10px;margin:8px 0;background:#dbd6bb60}.mission-modifier b{display:block;font:17px var(--hand)}.mission-modifier span{display:block;font-size:10px;line-height:1.6;margin-top:3px;color:#647057}
.brief-art{height:160px;position:relative;margin:-16px 0 12px;display:flex;align-items:center;justify-content:center;background:radial-gradient(ellipse at center,#cbd5b1 0,transparent 65%)}.brief-art canvas{width:175px;height:175px;z-index:1}.brief-number{position:absolute;right:10px;bottom:-20px;font:150px/1 var(--hand);color:#74835c16}.brief-rule{background:#e5e5cc;padding:10px 14px;border-left:3px solid #697d58}.brief-rule strong{font:21px var(--hand)}.brief-rule p{margin:4px 0;font-size:12px}.brief-objectives{display:flex;flex-wrap:wrap;gap:8px 16px;margin:22px 0;font:11px var(--sans);color:#52664f}.deploy-button{width:100%;font-size:15px;padding:16px}.modal{animation:arrive .22s ease-out}.modal-backdrop{background:#0f231de0}.modal .result-stars{animation:arrive .6s .15s both}.captain-icon{display:none}
.is-playing{background:#182d24;overflow:hidden}.is-playing .masthead{height:55px;max-width:none;padding:0 20px;background:#f0e9d5;gap:30px;border-bottom:2px solid #5d7156}.is-playing .wordmark{min-width:125px;flex-direction:row;gap:12px}.is-playing .wordmark b{font-size:27px}.is-playing .wordmark small{font-size:7px;letter-spacing:2px;max-width:80px;line-height:1.4;margin:0}.is-playing .masthead nav{gap:20px}.is-playing .nav-link{font-size:11px;padding:10px 0}.is-playing .account-btn{padding:7px 12px}.is-playing .site-footer{display:none}.is-playing #main{height:calc(100dvh - 55px);min-height:450px}.is-playing .game-screen{height:100%;width:100%;max-width:1800px;padding:12px 20px 13px;display:flex;flex-direction:column;gap:0;position:relative}.is-playing .battle-top{color:#f3ead4;flex:none;height:45px;margin:0 0 10px;gap:25px}.is-playing .mission-title small,.is-playing .metric small{color:#b1bca1}.is-playing .mission-title strong{font-size:25px}.is-playing .battle-controls button{color:#eee6cf;background:#294335;border-color:#638062}.is-playing .metric{min-width:80px}.is-playing .metric.critical{color:#ffa98e}.is-playing .canvas-wrap{flex:1;min-height:150px;max-height:none;box-shadow:0 3px 0 #0c1e17;border:2px solid #748460;background:#bdc99f;border-radius:9px 5px 10px 4px}.is-playing #battle{height:100%;width:100%;min-height:0;aspect-ratio:auto;object-fit:contain;cursor:crosshair}.is-playing .command-deck{flex:none;margin-top:10px;grid-template-columns:1fr 300px;gap:12px}.is-playing .recruit-card{min-height:66px;height:70px;padding:3px 13px;flex-direction:row;gap:10px;text-align:left;background:#ece7d0;border-color:#859371;box-shadow:0 3px 0 #0b2118}.is-playing .recruit-card.selected{background:#f6e6ad;box-shadow:0 0 0 1px #d9c07d,0 3px 0 #0b2118;border-color:#efd38c}.is-playing .recruit-card img{width:48px;height:55px}.is-playing .recruit-card strong{font-size:24px}.is-playing .recruit-card kbd{display:block;color:#667351;font-size:10px}.is-playing .recruit-card small{font-size:11px}.is-playing .hero-controls{grid-template-columns:1fr 62px;position:relative}.is-playing .ability-btn{padding:7px 11px 7px 52px;box-shadow:0 3px 0 #0b2118;background:#e5ddbb;border-color:#a3a783}.is-playing .ability-btn strong{font-size:20px;line-height:1.05;margin-bottom:7px}.is-playing .ability-btn small{font-size:8px}.is-playing .captain-icon{display:block;position:absolute;left:4px;top:10px;width:48px;height:50px;z-index:1;pointer-events:none}.is-playing .move-btn{background:#2e4737;color:#f2e7c8;border:1px solid #819072;font-size:13px}.is-playing .below-battle{flex:none;margin-top:10px;min-height:42px;gap:14px}.is-playing .wave-preview{color:#b9c6a9;font-size:10px;line-height:1.5}.is-playing .wave-preview b{color:#f0e5c8;font-size:9px;letter-spacing:1px}.is-playing .below-battle .primary{min-width:165px;padding:11px 17px}.is-playing .relic-chip{background:#3d513a;color:#f1e1b8;border-color:#839268}.is-playing #inspector:not(:empty){position:absolute;z-index:5;left:40px;right:40px;bottom:145px;filter:drop-shadow(0 5px 12px #13251f55)}.is-playing .unit-inspector{background:#f4ecd5f5;backdrop-filter:blur(8px);border:2px solid #708261;margin:0;min-height:80px;animation:arrive .15s ease-out}.is-playing .mobile-label{display:none}.is-playing .coach{font-size:11px;max-width:270px;bottom:14px;background:#f6efdce8;box-shadow:3px 3px 0 #59664730}.battle-banner{top:12px;border:2px solid #4d6547;box-shadow:3px 4px 0 #1b392e24;animation:arrive .25s ease-out}.boss-hud{position:absolute;top:12px;left:50%;transform:translateX(-50%);width:min(420px,55%);background:#1b382ce8;padding:9px 15px;border:1px solid #8ca17b;border-radius:4px;text-align:center;color:#f5edce;pointer-events:none}.boss-hud strong{font:23px var(--hand);display:block}.boss-hud span{font:8px var(--mono);letter-spacing:1px}.boss-hud>div{height:6px;background:#587255;margin-top:7px;overflow:hidden;border:1px solid #a4b191}.boss-hud i{height:100%;display:block;background:#00c783;transition:width .15s}.boss-hud:not([hidden])~.battle-banner{display:none}.captain-bark{position:absolute;bottom:14px;right:18px;display:flex;align-items:center;gap:7px;pointer-events:none;max-width:260px;animation:arrive .2s}.captain-bark[hidden]{display:none}.captain-bark img{width:48px;height:58px;filter:drop-shadow(1px 2px 0 #fff0cb)}.captain-bark span{background:#fff0cfed;border:1.5px solid #627456;border-radius:12px 12px 12px 2px;padding:8px 12px;font:18px/1.1 var(--hand);box-shadow:2px 3px 0 #203e2d20}.game-screen:fullscreen{background:#182d24;padding-top:15px;height:100dvh!important}
@media(max-width:1000px){.is-playing .command-deck{grid-template-columns:1fr 235px}.is-playing .recruit-card{padding:3px 6px;gap:4px}.is-playing .recruit-card strong{font-size:20px}.is-playing .recruit-card img{width:38px}.is-playing .ability-btn strong{font-size:17px}.hero-card canvas{width:55px}}
@media(max-width:720px){.hero-card canvas{width:61px}.is-playing .masthead{padding:0 12px;height:48px}.is-playing .wordmark small{display:none}.is-playing .wordmark{min-width:110px}.is-playing #main{height:calc(100dvh - 48px);min-height:480px}.is-playing .game-screen{padding:8px 10px 10px}.is-playing .battle-top{height:47px;gap:12px;flex-wrap:nowrap;margin-bottom:8px}.is-playing .mission-title{min-width:90px}.is-playing .mission-title strong{font-size:19px;line-height:1.05}.is-playing .mission-title small{font-size:7px}.is-playing .metric{font-size:20px;min-width:0;gap:4px}.is-playing .metric small{font-size:6px}.is-playing .battle-controls{gap:4px;position:static}.is-playing .battle-controls button{padding:5px;min-width:28px;font-size:11px}.is-playing .command-deck{grid-template-columns:1fr;margin-top:8px;gap:7px}.is-playing .recruit-row{gap:6px}.is-playing .recruit-card{height:65px;min-height:65px}.is-playing .recruit-card kbd{display:none}.is-playing .hero-controls{height:49px;grid-template-columns:1fr 90px}.is-playing .ability-btn{padding-left:50px}.is-playing .ability-btn strong{font-size:18px;margin:0}.is-playing .captain-icon{height:45px;top:0}.is-playing .ability-btn small{font-size:8px}.is-playing .below-battle{margin-top:7px;flex-wrap:nowrap;min-height:40px}.is-playing .wave-preview{min-width:0;font-size:9px;max-height:48px;overflow:auto}.is-playing .below-battle .primary{min-width:120px;padding:11px;font-size:11px}.is-playing .relic-strip{gap:3px}.is-playing .relic-chip{width:21px;height:21px;font-size:12px}.is-playing #inspector:not(:empty){left:17px;right:17px;bottom:190px}.is-playing .unit-inspector{gap:8px;padding:10px;flex-wrap:wrap}.is-playing .unit-inspector .inspect-stats{font-size:8px}.is-playing .unit-inspector h3{font-size:20px}.is-playing .unit-inspector button{padding:8px;font-size:10px}.is-playing .coach{max-width:190px;padding:7px;font-size:9px;left:9px;bottom:9px}.is-playing .coach b{font-size:14px}.captain-bark{right:9px;bottom:9px;max-width:170px}.captain-bark img{width:35px;height:40px}.captain-bark span{font-size:14px;padding:6px}.boss-hud strong{font-size:18px}.boss-hud span{font-size:6px}.boss-hud{width:60%;padding:5px 10px}.battle-banner{max-width:90%;padding:6px 15px}.battle-banner strong{font-size:19px}}
@media(max-width:450px){.hero-card canvas{width:47px}.is-playing .mission-title{max-width:110px;width:auto!important;flex:1!important}.is-playing .battle-top{height:67px;flex-wrap:wrap;gap:5px 12px;position:relative;padding-right:95px}.is-playing .battle-controls{position:absolute;right:0;top:5px}.is-playing .battle-top .metric{font-size:18px}.is-playing .battle-top .mission-title{min-width:100%;max-width:none}.is-playing .mission-title strong{font-size:19px}.is-playing .recruit-card{height:59px;min-height:59px;gap:0;padding:2px;justify-content:center}.is-playing .recruit-card img{width:34px;height:42px}.is-playing .recruit-card strong{font-size:18px}.is-playing .recruit-card small{font-size:9px}.is-playing .relic-strip{max-width:60px;overflow:auto}.is-playing .coach{display:none}.is-playing #inspector:not(:empty){bottom:180px}.is-playing .canvas-wrap{overflow:hidden}}
@media(max-height:600px) and (min-width:721px){.is-playing .masthead{height:42px}.is-playing #main{height:calc(100dvh - 42px);min-height:0}.is-playing .game-screen{padding:5px 12px}.is-playing .battle-top{height:35px;margin-bottom:5px}.is-playing .command-deck{margin-top:5px}.is-playing .recruit-card{height:54px;min-height:54px}.is-playing .recruit-card img{height:46px}.is-playing .below-battle{margin-top:5px;min-height:35px}.is-playing #inspector:not(:empty){bottom:115px}.is-playing .coach{display:none}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
/* Camp navigation remains reachable on narrow screens. */
@media(max-width:720px){.masthead{height:auto;min-height:72px;padding:12px 4vw 0;flex-wrap:wrap;gap:8px}.masthead nav{display:flex;order:3;width:100%;justify-content:space-between;gap:12px}.masthead nav .nav-link{padding:10px 0;font-size:12px}.masthead .header-right{margin-left:auto}.is-playing .masthead{height:48px;min-height:48px;padding:0 12px;flex-wrap:nowrap}.is-playing .masthead nav{display:none}.is-playing #main{min-height:0}}
@media(max-height:500px) and (orientation:landscape){.is-playing .masthead{display:none}.is-playing #main{height:100dvh;min-height:0}.is-playing .game-screen{padding:4px 10px}.is-playing .battle-top{height:29px;margin-bottom:4px;flex-wrap:nowrap;padding:0}.is-playing .mission-title{min-width:120px!important;width:auto!important}.is-playing .mission-title small{display:none}.is-playing .battle-controls{position:static}.is-playing .command-deck{grid-template-columns:1fr 215px;gap:8px;margin-top:4px}.is-playing .recruit-card{min-height:44px;height:44px}.is-playing .recruit-card img{height:38px;width:32px}.is-playing .recruit-card strong{font-size:17px}.is-playing .hero-controls{height:44px;grid-template-columns:1fr 45px}.is-playing .ability-btn strong{font-size:15px}.is-playing .below-battle{min-height:30px;margin-top:4px}.is-playing .below-battle .primary{padding:7px 12px}.is-playing .canvas-wrap{min-height:100px}.is-playing .coach{display:none}.is-playing #inspector:not(:empty){bottom:91px}.is-playing .unit-inspector{padding:7px;min-height:60px}.is-playing .unit-inspector .branches{width:auto}.is-playing .captain-bark{display:none}}
.gate-status:empty{display:none}.gate-status{font:12px var(--mono)!important;color:#3f6747!important;background:#e2e8d1;border-radius:4px;padding:10px 12px}.gate-status:before{content:'◌';display:inline-block;margin-right:8px;animation:spin 1.5s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}

/* Game shell: title stage, campaign chart, and authored HUD. */
body{background-color:#142b23;background-image:radial-gradient(ellipse at 60% 10%,#3d594333,transparent 65%);color:#eadfc4}.site-footer{display:none}.masthead{background:#132b23;color:#ecdfbd;border-bottom:1px solid #647354;height:68px;max-width:none;padding:0 3vw;gap:32px}.wordmark{flex-direction:row;gap:10px;min-width:190px;transform:none}.wordmark>img{width:48px;height:48px;border-radius:50%;border:2px solid #081b13}.wordmark>span{display:flex;flex-direction:column;text-align:left}.wordmark b{font:26px/.95 var(--hand);letter-spacing:2px}.wordmark small{font-size:8px;letter-spacing:2px;margin-top:5px}.nav-link{color:#b2bba0;font:16px var(--hand);padding:12px 0}.nav-link.active{color:#f2d88c;border-color:#d4ba76}.icon-btn img{width:23px;height:23px;vertical-align:middle;filter:invert(1)}.account-btn{color:#e5dcc0;border-color:#748463;background:#263e30}.thread-count{color:#d6c08a}.game-icon{display:inline-block;vertical-align:middle;flex-shrink:0}.star-mark{display:inline-flex;color:#89916b;vertical-align:middle}.star-mark.earned{color:#d9ac55}.star-mark.earned svg{fill:#e6be6733}.result-stars .star-mark svg{width:38px;height:38px}.stars{display:inline-flex;gap:2px}.primary svg,.secondary svg{vertical-align:middle;margin-right:7px}.modal,.workshop-card,.guide-card{color:#263a2c}.center-page{background:#e8e0c7;color:#2b392c;border:2px solid #708164;border-radius:3px 15px 4px 12px;padding:30px 35px;margin:24px auto;box-shadow:0 8px 30px #071a1744}.modal .close{color:#31432e}.is-camp #main{max-height:calc(100dvh - 68px);overflow:auto}.is-camp .center-page{max-width:1100px;min-height:calc(100dvh - 115px)}
.is-title{overflow:hidden;background:#10291f}.is-title .masthead{display:none}.is-title #main{height:100dvh}.title-screen{height:100%;min-height:560px;position:relative;isolation:isolate;overflow:hidden}.title-screen:after{content:'';position:absolute;inset:0;z-index:-1;box-shadow:inset 0 0 100px #081b1d88;pointer-events:none}#title-scene{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.title-content{position:absolute;left:7.5%;top:50%;transform:translateY(-50%);width:min(440px,40vw);padding:22px 0}.title-brand{width:125px;height:125px;object-fit:contain;border-radius:50%;display:block;margin:0 0 16px;box-shadow:0 5px 0 #061d15,0 0 0 5px #163d2c;transform:rotate(-6deg)}.title-overline{font:10px var(--mono);letter-spacing:4px;color:#c4c997}.title-content h1{font:bold clamp(60px,6.5vw,104px)/.78 var(--hand);letter-spacing:2px;color:#f4e7bd;margin:18px 0 24px;text-shadow:3px 5px 0 #0c231a;transform:rotate(-2deg);position:relative;width:max-content}.title-underline{display:block;height:6px;background:#00c783;width:86%;margin-top:20px;clip-path:polygon(0 30%,98% 0,100% 70%,3% 100%)}.title-tagline{font:21px var(--hand);color:#d5d9b3;margin:8px 0 22px}.title-menu{display:flex;flex-direction:column;gap:5px}.title-menu button{border:0;border-bottom:1px solid #a9b78b33;background:transparent;color:#e3e4bd;display:flex;gap:13px;align-items:center;text-align:left;padding:12px 10px;font:23px var(--hand);position:relative}.title-menu button small{font:7px var(--mono);letter-spacing:1px;color:#a2b194;max-width:90px;margin-left:auto;line-height:1.7}.title-menu button>svg{width:25px;height:25px;color:#abc4a0;flex:none}.title-menu button:hover{color:#fff2c3;background:#6f8b462b;transform:translateX(5px)}.title-menu .title-play{background:#e9d293;color:#183725;border:2px solid #eadba7;border-radius:4px 11px 5px 2px;box-shadow:0 5px 0 #092519;padding:15px 18px;margin-bottom:9px;font-size:27px;transform:rotate(-1deg)}.title-menu .title-play>svg{color:#23452f}.title-play span{flex:1}.title-menu .title-play:hover{background:#f4e3ad;transform:rotate(0) translateX(4px);color:#183725}.title-tools{display:flex;gap:20px;align-items:center;margin-top:23px}.title-tools button{background:none;border:none;color:#b9c7a6;display:flex;align-items:center;gap:7px;padding:5px 0;font:15px var(--hand)}.title-tools button svg{width:20px;height:20px}.title-tools button:hover{color:#f6e8b7}.title-wallet{position:absolute;top:28px;right:3vw;background:#132e23d9;color:#d9e3b9;border:1px solid #728d60;border-radius:4px;padding:10px 16px;display:flex;align-items:center;gap:10px;font:12px var(--sans)}.title-wallet svg{width:21px;height:21px}.title-version{position:absolute;bottom:18px;left:7.5%;font:8px var(--mono);letter-spacing:1.5px;color:#9ab196}.title-cast-note{position:absolute;right:6%;bottom:7%;text-align:right;text-shadow:1px 2px #183425}.title-cast-note b{font:25px var(--hand);display:block;color:#e7e3ba}.title-cast-note span{font:12px var(--hand);color:#b4c19b}.title-screen button:focus-visible{outline-color:#f3df9a}
.is-hub{overflow:hidden}.is-hub #main{height:calc(100dvh - 68px);min-height:560px}.is-hub .home{padding:14px 3vw 18px;height:100%;max-width:1600px;display:flex;flex-direction:column;gap:12px}.campaign-heading{display:flex;align-items:center;gap:15px;flex:none}.back-title{width:42px;height:42px;color:#cfd5aa;background:#314931;border:1px solid #7a8b63;border-radius:50%;display:grid;place-items:center}.back-title svg{transform:rotate(180deg)}.campaign-heading .eyebrow{color:#8ca783;font-size:8px}.campaign-heading h1{font:30px/1 var(--hand);margin:4px 0 0;color:#eee1b9}.campaign-total{margin-left:auto;display:flex;align-items:center;gap:7px;font:21px var(--hand);color:#dbbd72}.is-hub .campaign-layout{flex:1;min-height:210px;grid-template-columns:1fr 300px;gap:14px}.is-hub .map-panel,.is-hub .world-svg{height:100%;min-height:0}.is-hub .map-panel{border:3px solid #7e8961;border-radius:3px 15px 3px 7px;box-shadow:0 5px 0 #061e15}.is-hub .map-head{color:#3b5135;top:14px;left:20px}.is-hub .map-head strong{font-size:21px}.is-hub .map-head small{display:none}.is-hub .map-caption{font-size:12px}.is-hub .mission-panel{border:2px solid #85906b;border-radius:12px 3px 8px 3px;padding:15px 18px;background:#dedbb8;overflow:auto;box-shadow:0 5px 0 #061e15;color:#293d2b}.is-hub .mission-panel h2{font-size:28px;margin:5px 0}.is-hub .mission-panel .eyebrow{font-size:8px}.is-hub .mission-panel .story{font-size:11px;line-height:1.5;min-height:0;margin:6px 0}.is-hub .mission-options{margin:10px 0;gap:6px}.is-hub .mission-option{padding:8px;font-size:10px}.is-hub .mission-meta{font-size:8px;margin:3px 0 10px}.is-hub .mission-panel>.primary{padding:10px}.is-hub .mission-panel>.small-note{font-size:9px;margin-top:8px}.is-hub .roster-section{margin:0;flex:none}.is-hub .section-heading{margin-bottom:6px}.is-hub .section-heading h2{font-size:20px;color:#e7dab5}.is-hub .section-heading small{color:#8ba580;font-size:8px}.is-hub .hero-card{min-height:77px;height:77px;padding:4px 10px;background:#293f2e;border:1px solid #6c8058;color:#e0dfb5;box-shadow:0 3px 0 #081e16;border-radius:4px 10px 4px 4px}.is-hub .hero-card.selected{background:#425a35;border:2px solid #cbb675}.is-hub .hero-card p{color:#aaba92;font-size:10px;margin:1px 0 5px}.is-hub .hero-card canvas{width:58px;height:64px}.is-hub .hero-card strong{font-size:23px}.is-hub .hero-card small{font-size:8px}.is-hub .selected-tag{color:#d8c889;font-size:7px}.is-hub .hero-card:hover{background:#4a603a}.is-hub .modes{margin:0;gap:14px;flex:none}.is-hub .mode-card{padding:8px 15px;border:1px solid #5a744c;background:#243c2b;gap:12px;color:#d4ddb6;border-radius:3px 7px 2px 4px}.is-hub .mode-card .mode-icon{font-size:25px;color:#d7bf7c}.is-hub .mode-card strong{font-size:18px}.is-hub .mode-card p{font-size:9px;color:#95ac87;margin:2px 0}.is-hub .home>.small-note{font-size:8px;margin:0;color:#8ea87f}.region-node button{color:#314c33}.mission-option{color:#33492f}.is-hub .mission-modifier{padding:5px 8px;margin:4px 0}.is-hub .mission-modifier b{font-size:14px}.is-hub .mission-modifier span{font-size:9px}
/* No site chrome in combat. Resources live in the game HUD. */
.is-playing .masthead{display:none!important}.is-playing #main{height:100dvh!important;min-height:0}.is-playing .game-screen{padding:10px 16px 12px;max-width:1900px}.is-playing .battle-top{height:51px;margin-bottom:9px;background:#213a2c;border:1px solid #70815d;border-radius:4px 12px 3px 7px;padding:3px 10px 3px 4px;gap:20px;box-shadow:0 3px 0 #061e16;position:relative;flex-wrap:nowrap}.battle-emblem{padding:0;background:none;border:0;width:44px;height:44px;flex:none}.battle-emblem img{width:44px;height:44px;display:block;border-radius:50%;border:2px solid #102617;transform:rotate(-5deg)}.is-playing .mission-title{min-width:0;flex:1!important}.is-playing .mission-title strong{font-size:24px;color:#efe2bc}.is-playing .mission-title small{font-size:8px;letter-spacing:2px;color:#9bb38a}.is-playing .metric{display:flex;gap:9px;min-width:85px;font:24px var(--hand);color:#dfdfb4;padding:0 10px;border-left:1px solid #61765155}.metric>svg{width:28px;height:28px;flex:none}.health-metric>svg{color:#e89574}.scrap-metric>svg{color:#e0c16e}.wave-metric>svg{color:#a0c598}.is-playing .metric small{font-size:6px;letter-spacing:2px}.is-playing .battle-controls{position:static;display:flex;gap:6px;margin:0}.is-playing .battle-controls button{width:31px;height:31px;min-height:0;padding:4px;border:1px solid #7f9068;border-radius:3px 6px 2px 4px;background:#314a33}.battle-controls svg{width:21px;height:21px;vertical-align:middle}.is-playing .canvas-wrap{border:3px solid #87966c;border-radius:4px 15px 5px 10px;box-shadow:0 4px 0 #061c16;background:#9aaa80}.arena-corner{position:absolute;pointer-events:none;width:34px;height:34px;border:5px solid #dfc88d;filter:drop-shadow(2px 2px #1d3826)}.arena-corner.top-left{left:-1px;top:-1px;border-right:none;border-bottom:none;border-radius:0 0 0 5px}.arena-corner.bottom-right{right:-1px;bottom:-1px;border-top:none;border-left:none}.is-playing .command-deck{grid-template-columns:1fr 325px;margin-top:11px;gap:14px}.is-playing .recruit-card{height:82px;min-height:82px;border-radius:3px 12px 3px 7px;padding:5px 8px;background:#293f2c;color:#dfdfb8;border:1px solid #829268;box-shadow:0 4px 0 #061e16;gap:7px;overflow:hidden}.is-playing .recruit-card.selected{background:#465a32;color:#fff0bd;border:2px solid #e7cf8a;box-shadow:0 0 0 1px #141e14,0 4px 0 #061e16}.is-playing .recruit-card:hover:not(:disabled){background:#49603b}.is-playing .recruit-card:disabled{opacity:.55}.recruit-portrait{background:#e5d49b;display:grid;place-items:center;width:59px;height:62px;border:2px solid #192c1f;border-radius:50% 45% 48% 43%;flex:none;transform:rotate(-3deg)}.family-plop .recruit-portrait{background:#94c1bd}.family-wob .recruit-portrait{background:#ad9bc1}.family-mote .recruit-portrait{background:#d99873}.is-playing .recruit-card img{width:57px;height:63px}.is-playing .recruit-card strong{font:25px/1 var(--hand)}.recruit-role{display:block;font:7px var(--mono);letter-spacing:1.5px;color:#adc096;margin:5px 0}.is-playing .recruit-card small{font:11px var(--mono);color:#e6c57c;display:flex;align-items:center;gap:4px}.is-playing .recruit-card small svg{width:12px;height:12px}.recruit-symbol{position:absolute;right:8px;bottom:8px;color:#a4b68b;opacity:.65}.is-playing .recruit-card kbd{font-size:9px;color:#c1c59d;right:9px;top:8px}.is-playing .hero-controls{grid-template-columns:1fr 53px;gap:8px}.is-playing .ability-btn{background:#d8c184;border:2px solid #e7d496;color:#263a24;padding:9px 35px 8px 60px;border-radius:9px 3px 9px 3px;box-shadow:0 4px 0 #061e16}.is-playing .ability-btn strong{font:23px/1 var(--hand);margin:0 0 7px}.is-playing .ability-btn small{font:8px var(--mono)}.is-playing .ability-btn:not(:disabled){animation:ability-ready 3s ease-in-out infinite}.is-playing .ability-btn:disabled{opacity:.6}.ability-symbol{position:absolute;right:8px;top:12px;opacity:.7}.is-playing .captain-icon{width:65px;height:75px;left:-4px;top:2px;filter:drop-shadow(1px 2px 0 #233b1e)}.is-playing .move-btn{background:#304b32;color:#d6dfb8;border:1px solid #8b9b70;border-radius:3px 8px 3px 5px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.move-btn span{font:7px var(--mono);letter-spacing:1px}.is-playing .below-battle{margin-top:11px;min-height:40px;gap:15px}.is-playing .below-battle .primary{min-width:170px;background:#d7bd79;border:2px solid #f0d798;color:#193224;font:19px var(--hand);padding:10px 14px;box-shadow:0 3px 0 #061e16;display:flex;align-items:center;justify-content:center;gap:6px}.is-playing .wave-preview{color:#9eb78d;font-size:10px}.is-playing .wave-preview b{font-size:8px;letter-spacing:2px}.is-playing #inspector:not(:empty){bottom:160px}.is-playing .unit-inspector{background:#e4d8b3f5;border:3px solid #819369;border-radius:3px 12px 3px 8px}.boss-hud{border:2px solid #a8bf89;border-radius:3px 8px 3px 8px;background:#13372bec}.battle-banner{background:#e7d9afd9;color:#304529;border:2px solid #849867;border-radius:3px 12px 3px 7px}.is-playing .coach{color:#2d412b;border:2px solid #8c9b70;background:#e8dcbfe8}.is-playing .metric.critical>svg{animation:danger-pulse 1s ease-in-out infinite}@keyframes danger-pulse{50%{transform:scale(1.13)}}@keyframes ability-ready{50%{box-shadow:0 4px 0 #061e16,0 0 15px #d9c27d44}}
@media(max-width:1000px){.is-playing .command-deck{grid-template-columns:1fr 250px;gap:9px}.recruit-portrait{width:46px;height:52px}.is-playing .recruit-card img{width:47px;height:54px}.is-playing .recruit-card strong{font-size:22px}.recruit-symbol{display:none}.is-playing .ability-btn{padding-left:45px;padding-right:27px}.is-playing .ability-btn strong{font-size:19px}.ability-symbol svg{width:23px}.is-playing .captain-icon{width:52px;height:64px;top:8px}.is-playing .battle-top{gap:12px}.is-playing .metric{min-width:65px;padding:0 5px;font-size:22px}.metric>svg{width:23px;height:23px}.title-brand{width:100px;height:100px}.title-content{width:41vw;left:6%}.title-content h1{font-size:76px}.title-menu button{font-size:21px}.title-menu .title-play{font-size:23px;padding:12px}.title-cast-note{right:4%;bottom:7%}.is-hub .campaign-layout{grid-template-columns:1fr 265px}}
@media(max-width:720px){.masthead{height:auto;min-height:62px;padding:8px 14px 0;gap:8px}.wordmark{min-width:135px;gap:8px}.wordmark>img{width:36px;height:36px}.wordmark b{font-size:22px}.wordmark small{font-size:6px}.masthead nav{padding-bottom:2px}.masthead nav .nav-link{font:15px var(--hand);padding:8px 0}.header-right{gap:8px}.account-btn{font-size:10px;padding:8px}.title-content{left:7%;width:52%;top:49%;padding:0}.title-brand{width:86px;height:86px;margin-bottom:14px}.title-overline{font-size:8px;letter-spacing:2px}.title-content h1{font-size:68px}.title-tagline{font-size:17px;margin-bottom:15px}.title-menu button{font-size:19px;padding:10px 8px;gap:7px}.title-menu button small{display:none}.title-menu .title-play{font-size:21px;padding:13px 9px}.title-menu button>svg{width:21px;height:21px}.title-tools{gap:15px;margin-top:15px}.title-tools button{font-size:14px}.title-wallet{right:18px;top:18px;font-size:10px;padding:8px;max-width:180px}.title-wallet svg{width:18px;height:18px}.title-cast-note{right:4%;bottom:8%;max-width:190px}.title-cast-note b{font-size:19px}.title-version{left:7%;font-size:6px;letter-spacing:1px}.is-hub{overflow:auto}.is-hub #main{height:auto;min-height:calc(100dvh - 105px)}.is-hub .home{height:auto;padding:15px 14px}.is-hub .campaign-layout{display:flex;flex-direction:column;min-height:0;flex:none}.is-hub .map-panel,.is-hub .world-svg{height:280px;min-height:280px}.is-hub .mission-panel{padding:14px}.is-hub .mission-panel h2{font-size:26px}.is-hub .mission-options{flex-direction:row}.is-hub .mission-option{min-height:40px}.is-hub .roster{grid-template-columns:1fr 1fr}.is-hub .hero-card{height:84px}.is-hub .hero-card canvas{width:63px}.is-hub .modes{grid-template-columns:1fr}.is-hub .map-head strong{font-size:18px}.is-hub .region-node>span{font-size:12px}.is-hub .region-node{width:90px}.is-hub .region-node button{width:33px;height:33px}.is-playing .game-screen{padding:7px 9px 9px}.is-playing .battle-top{height:52px;padding:3px 5px;gap:8px;margin-bottom:8px}.battle-emblem,.battle-emblem img{width:36px;height:36px}.is-playing .mission-title strong{font-size:18px;line-height:1}.is-playing .mission-title small{font-size:6px;letter-spacing:1px}.is-playing .metric{min-width:0;font-size:20px;gap:4px;border:0;padding:0}.metric>svg{width:19px;height:19px}.is-playing .metric small{font-size:5px;letter-spacing:1px}.is-playing .battle-controls{gap:3px}.is-playing .battle-controls button{width:27px;height:29px;padding:3px}.is-playing .battle-controls svg{width:18px;height:18px}.is-playing .command-deck{grid-template-columns:1fr;margin-top:8px;gap:8px}.is-playing .recruit-card{height:75px;min-height:75px;padding:4px 5px;gap:3px}.recruit-portrait{width:45px;height:54px}.is-playing .recruit-card img{width:46px;height:55px}.is-playing .recruit-card strong{font-size:22px}.is-playing .recruit-card small{font-size:10px}.recruit-role{font-size:6px;letter-spacing:1px;margin:4px 0}.is-playing .hero-controls{height:53px;grid-template-columns:1fr 75px}.is-playing .ability-btn{padding:6px 45px 5px 55px}.is-playing .ability-btn strong{font-size:23px;margin:0 0 3px}.is-playing .captain-icon{height:56px;width:55px;top:-2px;left:0}.is-playing .ability-symbol{top:9px;right:13px}.is-playing .ability-symbol svg{width:29px}.is-playing .move-btn{flex-direction:row;gap:7px}.is-playing .move-btn svg{width:20px;height:20px}.is-playing .below-battle{margin-top:8px;gap:8px;min-height:43px}.is-playing .below-battle .primary{min-width:130px;font-size:17px;padding:8px}.is-playing .below-battle .primary svg{width:18px}.is-playing #inspector:not(:empty){bottom:201px}.is-playing .canvas-wrap{min-height:150px}.is-camp #main{max-height:none}.center-page{padding:22px 18px;margin:18px 12px}.workshop-card{padding:18px}}
@media(max-width:450px){.title-screen{min-height:600px}.title-content{width:78%;left:9%;top:49%}#title-scene{object-position:62% center;opacity:.55}.title-content h1{font-size:74px}.title-brand{width:92px;height:92px}.title-overline{font-size:9px}.title-content .title-tagline{font-size:19px}.title-menu .title-play{font-size:25px}.title-menu button{font-size:22px}.title-wallet{top:16px;right:16px;max-width:180px}.title-cast-note{display:none}.title-tools button{font-size:17px}.title-version{left:9%;max-width:80%;line-height:1.8}.is-playing .battle-top{height:70px;gap:5px 9px;flex-wrap:wrap;padding-left:45px;padding-right:87px}.battle-emblem{position:absolute;left:4px;top:9px}.is-playing .battle-top .mission-title{min-width:100%!important;max-width:none;width:auto!important}.is-playing .battle-controls{position:absolute;right:5px;top:9px}.is-playing .battle-controls button:last-child{display:none}.is-playing .metric{font-size:18px}.is-playing .metric small{display:none}.is-playing .metric>svg{width:17px;height:17px}.is-playing .recruit-card{flex-direction:column;height:91px;min-height:91px;text-align:center;gap:2px;padding:3px}.recruit-portrait{width:43px;height:43px}.is-playing .recruit-card img{width:43px;height:46px}.is-playing .recruit-card strong{font-size:18px}.is-playing .recruit-card small{font-size:9px;margin:2px 0;justify-content:center}.recruit-role{display:none}.is-playing #inspector:not(:empty){bottom:213px}.is-playing .ability-btn strong{font-size:21px}}
@media(max-height:650px) and (min-width:721px){.title-brand{width:80px;height:80px;margin-bottom:10px}.title-content h1{font-size:73px;margin:12px 0 17px}.title-tagline{font-size:18px;margin:5px 0 13px}.title-menu button{padding:8px;font-size:20px}.title-menu .title-play{font-size:24px;padding:10px}.title-tools{margin-top:12px}.is-hub #main{min-height:0}.is-hub .campaign-heading{display:none}.is-hub .home{gap:9px;padding-top:10px}.is-hub .section-heading{display:none}.is-hub .hero-card{height:68px;min-height:68px}.is-hub .hero-card canvas{height:59px}.is-hub .modes .mode-card{padding:5px 10px}.is-playing .game-screen{padding:5px 12px}.is-playing .battle-top{height:40px;margin-bottom:5px}.battle-emblem,.battle-emblem img{height:34px;width:34px}.is-playing .command-deck{margin-top:6px}.is-playing .recruit-card{height:65px;min-height:65px}.is-playing .recruit-portrait{height:51px;width:45px}.is-playing .recruit-card img{height:53px;width:46px}.is-playing .below-battle{margin-top:6px;min-height:35px}.is-playing #inspector:not(:empty){bottom:132px}}
@media(max-height:500px) and (orientation:landscape){.is-title .title-screen{min-height:0}.title-content{width:47%;top:50%;left:5%;padding:0}.title-brand{width:55px;height:55px;float:left;margin:0 15px 0 0}.title-overline{display:block;padding-top:4px;font-size:7px}.title-content h1{font-size:46px;line-height:.85;margin:7px 0 15px}.title-content h1 br{display:none}.title-content h1{white-space:nowrap}.title-underline{height:3px;margin-top:9px}.title-tagline{display:none}.title-menu{gap:1px}.title-menu button{padding:7px 9px;font-size:19px}.title-menu .title-play{padding:9px;font-size:21px;margin-bottom:4px}.title-tools{margin-top:8px;gap:15px}.title-version{font-size:5px;bottom:8px}.title-wallet{top:12px;font-size:9px;padding:6px}.title-cast-note{display:none}.is-playing .battle-top{height:32px;margin-bottom:4px;padding:2px 6px;flex-wrap:nowrap}.is-playing .battle-top .mission-title{min-width:80px!important;width:auto!important}.battle-emblem{position:static}.battle-emblem,.battle-emblem img{width:26px;height:26px}.is-playing .mission-title strong{font-size:17px}.is-playing .mission-title small{display:none}.is-playing .battle-controls{position:static}.is-playing .command-deck{grid-template-columns:1fr 210px;margin-top:5px;gap:7px}.is-playing .recruit-card{flex-direction:row;height:48px;min-height:48px;padding:2px 4px;gap:4px;text-align:left}.recruit-portrait{width:34px!important;height:38px!important}.is-playing .recruit-card img{width:35px!important;height:39px!important}.is-playing .recruit-card strong{font-size:18px}.recruit-role{display:none}.is-playing .hero-controls{height:48px;grid-template-columns:1fr 40px}.is-playing .ability-btn{padding:4px 22px 4px 37px}.is-playing .ability-btn strong{font-size:16px}.is-playing .captain-icon{height:47px;width:42px;top:0}.is-playing .ability-symbol{right:2px;top:9px}.is-playing .ability-symbol svg{width:20px;height:20px}.is-playing .move-btn span{display:none}.is-playing .below-battle{margin-top:4px;min-height:30px}.is-playing .below-battle .primary{font-size:16px;padding:6px 10px}.is-playing #inspector:not(:empty){bottom:98px}.is-playing .canvas-wrap{min-height:90px}}

.region-node>span{color:#314b32}.region-node small{display:flex;justify-content:center;gap:2px;margin-top:4px}.region-node .star-mark{margin:0;padding:0;display:inline-flex;background:none}.region-node .star-mark svg{width:13px;height:13px}.mode-icon svg{width:28px;height:28px}.thread-count img{width:20px;height:20px;vertical-align:middle;filter:invert(1)}.account-btn svg{vertical-align:middle;margin-right:5px}.relic-icon svg{width:42px;height:42px}.relic-chip svg{width:17px;height:17px}
.captain-bark span{color:#2b412d}.brief-objectives span{display:flex;align-items:center;gap:5px}
.battle-banner{top:8px;padding:6px 18px}.battle-banner strong{font-size:22px}.battle-banner small{font-size:7px}
.boot-scene{height:100dvh;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:24px;background:#10291f}.boot-scene img{width:120px;height:120px;border-radius:50%}.boot-scene span{font:9px var(--mono);letter-spacing:2px;color:#c6d2a9}.boot-scene i{width:160px;height:3px;background:#d4bb76;animation:boot 1s ease-in-out infinite}@keyframes boot{50%{transform:scaleX(.3)}}

/* Expedition debrief: earned progress and readable tactical feedback. */
.debrief-head{display:flex;align-items:center;gap:20px}.debrief-head>img{width:90px;height:100px;object-fit:contain}.debrief-head h2{margin:7px 0;font:44px/1 var(--hand)}.debrief-stars{display:flex;gap:7px;color:#a8ac95}.debrief-stars .earned{color:#976e29}.debrief-stars .earned svg{fill:#e4c57233}.debrief-totals{display:grid;grid-template-columns:repeat(3,1fr);margin:18px 0;border-block:1px solid #b9bea4;padding:13px 0}.debrief-totals>span{display:grid;grid-template-columns:28px 1fr;column-gap:8px;padding:0 16px;border-right:1px solid #bcc1a7}.debrief-totals>span:last-child{border:0}.debrief-totals svg{grid-row:span 2;align-self:center;color:#597153}.debrief-totals b{font:28px var(--hand)}.debrief-totals small{font:8px var(--mono);letter-spacing:1px}.debrief-rewards{display:grid;grid-template-columns:1fr 150px;gap:22px;align-items:center}.mastery-reward>div:first-child{display:flex;justify-content:space-between;gap:12px;font:21px var(--hand)}.mastery-reward>div>span{color:#677248}.mastery-meter{height:10px;border:1px solid #899975;background:#d7dec4;border-radius:3px;margin:9px 0;overflow:hidden}.mastery-meter i{display:block;width:var(--progress);height:100%;background:#658b5d;transform-origin:left;animation:mastery-grow .8s ease-out}.mastery-reward>small{font:8px/1.8 var(--mono);color:#627153}.thread-reward{display:grid;grid-template-columns:36px 1fr;align-items:center;gap:0 8px;border-left:1px solid #b9bea4;padding-left:20px}.thread-reward svg{grid-row:span 2}.thread-reward b{font:30px var(--hand)}.thread-reward>span{font:8px var(--mono);letter-spacing:2px}.thread-reward small{grid-column:span 2;font-size:9px;margin-top:8px;color:#6c765e}.debrief-unlocks{display:flex;flex-wrap:wrap;gap:10px;margin-top:17px}.debrief-unlocks>div{display:flex;gap:10px;align-items:center;padding:9px 13px;background:#e8dfb8;border:1px solid #b9ab70;border-radius:3px 8px 3px 6px}.debrief-unlocks b,.debrief-unlocks small,.debrief-unlocks em{display:block}.debrief-unlocks b{font:21px var(--hand)}.debrief-unlocks small{font:7px var(--mono);letter-spacing:1px}.debrief-unlocks em{font-size:10px;font-style:normal}.debrief-advice{display:flex;gap:12px;background:#e1e6d3;border-left:3px solid #688665;padding:12px 14px;font-size:12px;line-height:1.65}.debrief-advice>svg{flex-shrink:0;margin-top:3px}.combat-report{border-block:1px solid #bbc1a8}.combat-report summary{cursor:pointer;padding:13px 2px;font:20px var(--hand)}.combat-report summary>span{float:right;font:8px/2 var(--mono);color:#6b775e;margin-top:5px}.combat-report-body{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:0 0 16px}.family-report>div{display:flex;gap:9px;align-items:center;margin:8px 0}.family-report img{width:37px;height:40px}.family-report>div>span{flex:1}.family-report b{font:18px var(--hand)}.family-report i{display:block;width:var(--contribution);height:5px;background:var(--family);border-bottom:1px solid #758569;margin-top:3px}.family-report small{font:8px/1.8 var(--mono);text-align:right;min-width:90px}.lane-report{padding:10px 0 0}.lane-report>b{font:21px var(--hand)}.lane-report>div{display:grid;grid-template-columns:1fr 60px;gap:4px;padding:8px 0;border-bottom:1px solid #c9ceb8;font:17px var(--hand)}.lane-report strong{text-align:right;font:12px var(--mono);color:#796446}.lane-report small{font:8px var(--mono);color:#6d765c}.lane-report p{font-size:9px;line-height:1.6;color:#6d765c}.debrief-actions{margin-top:20px}.debrief-actions button{display:inline-flex;gap:12px;justify-content:center;align-items:center}.memento-cabinet{margin-top:30px}.memento-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.memento{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #899479;border-radius:4px 9px 3px 8px;background:#e6e4ca}.memento.locked{background:#d7ddc9;color:#707a66}.memento>svg{flex-shrink:0}.memento h3{font:23px var(--hand);margin:0}.memento p{font-size:11px;line-height:1.6;margin:4px 0}.memento small{font:8px var(--mono);letter-spacing:1px}.memento.earned{border-color:#a28f4c;background:#ece4c3}.memento-cabinet .section-heading small{color:#506345}.reduced-motion .mastery-meter i{animation:none}@keyframes mastery-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(max-width:600px){.debrief-head{gap:12px}.debrief-head>img{width:65px;height:78px}.debrief-head h2{font-size:31px}.debrief-totals>span{padding:0 7px;grid-template-columns:1fr;text-align:center}.debrief-totals svg{display:none}.debrief-totals small{font-size:7px;letter-spacing:0}.debrief-rewards{grid-template-columns:1fr 105px;gap:12px}.mastery-reward>div:first-child{font-size:19px;flex-wrap:wrap;gap:0}.thread-reward{padding-left:12px;grid-template-columns:26px 1fr}.thread-reward>svg{width:25px}.combat-report summary>span{float:none;display:block;margin:5px 0 0}.combat-report-body{grid-template-columns:1fr;gap:5px}.memento-grid{grid-template-columns:1fr}.memento-cabinet .section-heading{gap:12px;align-items:flex-start}.memento-cabinet .section-heading small{white-space:nowrap}.debrief-unlocks>div{flex:1;min-width:155px}.debrief-actions{flex-wrap:wrap}.debrief-actions button{flex:1;white-space:nowrap}}
.sound-retry{position:fixed;right:18px;bottom:18px;z-index:40;display:flex;align-items:center;gap:8px;background:#f1e4b8;color:#293d2d;border:1px solid #758166;border-radius:4px 8px 5px 7px;padding:10px 14px;font:18px var(--hand);box-shadow:0 3px 0 #10291f66}.sound-retry[hidden]{display:none}.audio-settings{background:#e4e8d7;border:1px solid #b1bea2;border-radius:6px;padding:13px;margin-bottom:15px}.audio-settings>div:first-child{display:flex;gap:9px;align-items:center;font-size:12px;line-height:1.6}.audio-settings svg{flex-shrink:0}.audio-actions{display:flex;gap:8px;margin-top:10px}.audio-actions button{flex:1;min-height:40px}.is-playing .sound-retry{bottom:auto;top:75px}.audio-actions .secondary{font-size:12px}@media(max-width:450px){.is-playing .sound-retry{top:84px;font-size:15px;padding:7px 10px}}
.is-playing .unit-inspector{color:#283d2c}.portrait-guidance{display:none}@media(max-width:600px) and (orientation:portrait){.portrait-guidance{display:flex;align-items:center;gap:9px;padding:10px;background:#e2e7d2;border:1px solid #a8b897;border-radius:5px}.portrait-guidance svg{flex-shrink:0}.is-playing .battle-banner{width:calc(100% - 24px);min-width:0;padding:6px}.is-playing .battle-banner strong{font-size:18px}.is-playing .battle-banner small{font-size:6px}}
.is-playing #battle{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);object-fit:fill;max-width:none;max-height:none}
@media(max-height:500px) and (orientation:landscape){.is-playing .battle-banner{left:8px;top:8px;transform:none;width:92px;min-width:0;padding:6px}.is-playing .battle-banner strong{font-size:15px;line-height:1.1}.is-playing .battle-banner small{font-size:6px;line-height:1.5}}

/* Tactical field notes and resident orders share the game's ink vocabulary. */
.scout-btn{display:flex;align-items:center;justify-content:center;gap:6px;min-width:44px;min-height:44px;border:1px solid #97a678;border-radius:5px 2px 7px 3px;background:#2e4634;color:#ece5c9;font:18px var(--hand);padding:6px 10px}.scout-btn:hover:not(:disabled){background:#405a3e}.scout-sheet h2{margin-bottom:5px}.scout-sheet .scout-intro{margin:0 0 20px}.scout-lanes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.scout-lane{padding:12px;border:1px solid #a6ad8d;border-radius:4px 10px 3px 8px;background:#e8e5c9}.scout-lane header{display:flex;align-items:center;gap:8px}.scout-lane header>span{font:11px var(--mono);color:#69735a}.scout-lane h3{font:23px var(--hand);margin:0;flex:1}.scout-lane header>b{font:28px var(--hand)}.scout-meter{height:4px;background:#c7c9aa;margin:9px 0}.scout-meter i{height:100%;background:#547352;display:block}.scout-lane p{font:9px/1.6 var(--mono);margin:8px 0}.scout-lane ul{padding:0;list-style:none;margin:10px 0 0}.scout-lane li{display:flex;justify-content:space-between;gap:8px;font-size:11px;line-height:1.8}.scout-lane li strong{font-family:var(--mono);white-space:nowrap}.scout-roster{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.scout-enemy{display:flex;align-items:flex-start;gap:5px;border-top:1px dashed #b6b99b;padding-top:12px}.scout-enemy canvas{width:62px;height:56px;flex:none}.scout-enemy h3{font:23px var(--hand);margin:0}.scout-enemy h3 span{font:8px var(--mono);color:#9b503b;margin-left:7px}.scout-enemy p{font-size:11px;line-height:1.5;margin:5px 0}.scout-counter{display:flex;gap:7px;align-items:flex-start;font-size:10px;line-height:1.5;color:#36533a}.scout-counter svg{flex:none}.scout-sheet .scout-footnote{font-size:10px;line-height:1.6;margin:18px 0}.scout-sheet>.primary{display:flex;gap:8px;align-items:center}.unit-orders{display:flex;align-items:center;gap:6px;white-space:nowrap}.orders-heading{display:flex;align-items:center;gap:16px}.orders-heading img{width:70px;height:85px}.orders-heading h2{margin-bottom:3px}.orders-heading p{margin-top:0}.target-orders{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.target-orders button{display:flex;align-items:center;gap:10px;border:2px solid #bbc0a1;background:#e9e8cf;padding:14px;text-align:left;border-radius:4px 10px 3px 8px;min-height:102px}.target-orders button[aria-pressed=true]{background:#253f30;border-color:#d4b974;color:#f5ecd3;box-shadow:0 3px 0 #17291f}.target-orders button>svg{flex:none}.target-orders strong{display:block;font:25px var(--hand)}.target-orders small{display:block;font-size:10px;line-height:1.5;margin-top:4px}.target-orders button:hover{border-color:#8b7545}.is-playing .unit-inspector .inspect-stats{min-width:145px}
@media(max-width:600px){.scout-lanes{grid-template-columns:1fr;gap:8px}.scout-lane{padding:8px 12px}.scout-lane ul{display:flex;flex-wrap:wrap;gap:0 16px}.scout-lane li{gap:5px}.scout-roster{grid-template-columns:1fr}.scout-btn{padding:5px;flex:none}.scout-btn span{display:none}.target-orders{grid-template-columns:1fr}.target-orders button{min-height:75px}.target-orders button span{flex:1}.is-playing .unit-inspector .inspect-stats{min-width:125px}.unit-orders{margin-left:auto}}
@media(max-height:500px) and (orientation:landscape){.scout-sheet h2{font-size:30px}.scout-lanes{gap:8px}.scout-lane{padding:8px}.scout-btn{min-height:36px}.scout-sheet .scout-intro{margin-bottom:12px}.is-playing .unit-inspector{max-height:48vh;overflow:auto}.target-orders button{min-height:80px;padding:10px}}

.scout-assault{display:flex;gap:12px;padding:14px;margin:0 0 18px;background:#e9d8ad;border:2px solid #8c7850;border-radius:3px 12px 5px 9px;box-shadow:3px 3px 0 #c4bd97}.scout-assault>span{flex:none;color:#69552e}.scout-assault>div{min-width:0}.scout-assault h3{font:28px var(--hand);margin:0}.scout-assault p{font-size:12px;line-height:1.5;margin:4px 0 10px}.scout-packets{display:flex;flex-wrap:wrap;gap:6px;list-style:none;padding:0;margin:0}.scout-packets li{display:flex;flex-direction:column;gap:3px;padding:6px 9px;background:#f4eace;border:1px dashed #9d906e;border-radius:3px;font:10px var(--mono)}.scout-packets b{font-size:12px}.mission-panel .assault-brief{padding:10px;margin:12px 0}.mission-panel .assault-brief strong{font:23px var(--hand)}.mission-panel .assault-brief p{font-size:11px;line-height:1.5;margin:4px 0 0}

.mission-panel>*{flex-shrink:0}.mission-pressure{display:flex;align-items:center;gap:6px;font:11px/1.4 var(--mono);margin:6px 0 10px;color:#4b6043}.mission-pressure svg{flex:none}

/* The residents' roll is a camp ledger, with the same portraits and ink. */
.ranked-screen{max-width:1440px;margin:auto;padding:36px clamp(18px,4vw,60px)}.ranked-screen h1{font:clamp(38px,5vw,68px)/1.05 var(--hand);margin:10px 0}.ranked-intro{margin:0 0 28px;color:#c3cdb6}.ranked-screen>.section-heading .eyebrow{color:#c3cdb6}.ranked-screen .secondary{color:#28372c}.ranked-layout{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr);gap:24px}.ranked-ledger,.ranked-brief{color:#28372c;background:#f8f0db;border:2px solid #43533d;border-radius:16px;box-shadow:5px 6px 0 #35442f25;overflow:hidden}.ranked-brief{padding:24px}.ranked-own{display:flex;gap:16px;align-items:center;padding:22px;background:#dae3c9;border-bottom:2px solid #43533d}.ranked-own img{width:72px;height:80px}.ranked-own div{display:grid;gap:6px}.ranked-own span{font-size:10px;letter-spacing:.12em}.ranked-own strong{font-size:28px}.ranked-table-wrap{overflow:auto}.ranked-ledger table{width:100%;border-collapse:collapse;white-space:nowrap}.ranked-ledger th,.ranked-ledger td{padding:16px 12px;text-align:left;border-bottom:1px solid #43533d30;font-size:13px}.ranked-ledger th{font-size:10px;text-transform:uppercase;letter-spacing:.08em}.ranked-ledger caption{caption-side:bottom;padding:16px;font-size:11px;white-space:normal;text-align:left}.ranked-ledger .is-you{background:#e1d8ed}.ranked-empty{text-align:center;padding:32px 22px}.ranked-empty h2{font-size:24px}.ranked-pages{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:16px}.ranked-pages span{font-size:12px}.ranked-captains{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:20px 0}.ranked-captains button{border:2px solid #788267;border-radius:10px;background:#fff8e8;padding:6px;color:#293324;cursor:pointer}.ranked-captains button[aria-pressed=true]{background:#e3d5ec;border-color:#755c8b;box-shadow:0 3px 0 #755c8b}.ranked-captains img{width:100%;height:65px;object-fit:contain}.ranked-captains span{display:block;font-size:12px}.ranked-missions{display:grid;gap:8px;max-height:360px;overflow:auto;padding:3px}.ranked-missions button{display:flex;justify-content:space-between;gap:12px;text-align:left}.ranked-missions button:disabled{opacity:.5}.ranked-verification{padding:18px;border:2px dashed #798b64;background:#e8ecd8;margin:18px 0}.ranked-verification b{font-size:11px;letter-spacing:.12em}.ranked-verification p{margin:10px 0}.title-tools{flex-wrap:wrap}.ranked-screen button:focus-visible{outline:3px solid #8a5eac;outline-offset:3px}@media(max-width:800px){.ranked-layout{grid-template-columns:1fr}.ranked-screen{padding:20px 14px}.ranked-brief{padding:18px}.ranked-ledger th,.ranked-ledger td{padding:12px 9px}.ranked-screen .section-heading{gap:10px;align-items:start}.ranked-screen .section-heading .secondary{min-width:70px}}

/* Wallet-claimed names remain secondary to the address used for ownership. */
.ranked-resident{display:inline-block;max-width:180px;vertical-align:middle;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700}.ranked-wallet{display:block;color:#4b5d48;font-size:11px;margin-top:3px}.ranked-player-name{display:block;font:20px var(--hand);overflow-wrap:anywhere}.account-address{overflow-wrap:anywhere}#account-label{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
