#title-screen{background:#090e18 url('assets/generated/title-citadel.png') center center/cover no-repeat}
#title-canvas{display:none}
.title-shade{background:linear-gradient(90deg,#080d18f5 0%,#080d18c9 26%,#0d132073 52%,#0d132000 80%),linear-gradient(0deg,#06080bc9,transparent 27%,transparent 76%,#06080b44)}
.title-vignette{box-shadow:inset 0 0 170px #03050ab5}
.title-content{text-align:left;left:8%;width:min(42vw,550px)}
.title-content h1{font-size:clamp(60px,6vw,98px);letter-spacing:.13em;line-height:1.1;color:#f2d6ab;text-shadow:0 4px 0 #372b2a,0 8px 15px #000,0 0 30px #d3965f33}
.title-crest{text-align:center;width:84px;font-size:54px}
.title-kicker{font-size:11px;letter-spacing:.34em;color:#d0af87}
.title-sub{justify-content:flex-start;gap:18px;letter-spacing:.45em;color:#e0cfb3;font-size:22px}
.title-content p{font-size:15px;letter-spacing:.3em;color:#dfd7c9;margin-top:24px}
.title-menu{margin:0;width:min(340px,90%)}
.title-menu button{min-height:48px;text-align:left;padding-left:26px;letter-spacing:.15em;background:linear-gradient(90deg,#1b2532ec,#1d2430c4);border-color:#8a897e}
.title-menu .grand-button{min-height:56px;background:linear-gradient(90deg,#826044,#4e3540ed);border-color:#e8c18a;color:#fff0c9;font-size:17px}
#load-status{font-size:12px;color:#d2c6b7}
.shell{background:radial-gradient(ellipse at 55% 0,#35343c,#151b23 54%,#0a1119)}
.topbar{background:linear-gradient(180deg,#222b32,#101822);border-bottom-color:#837860}
.main-nav{background:linear-gradient(#151e26,#0b1219);border-bottom-color:#544e46}
.main-nav button{background:linear-gradient(#2c3640,#1a242e);border-color:#697176;box-shadow:inset 0 1px #b6b2a33b}
.main-nav button.active{background:linear-gradient(#71523d,#302a2a);border-color:#d1af78}
.frame{background:linear-gradient(145deg,#252e32,#151d25 56%,#121920);border-color:#73746d;box-shadow:inset 0 0 0 2px #0b1217,inset 0 0 0 3px #585b56,0 9px 28px #0008}
.frame:before,.frame:after{color:#c9b68d}
.battle-head{margin-bottom:10px}
.battle-head h2{font-size:25px;text-shadow:0 1px 8px #000}
.tactic-deck{display:flex;align-items:stretch;gap:8px;margin:0 0 11px}
.tactic-deck>.eyebrow{width:103px;flex:0 0 103px;align-self:center;line-height:1.5;margin:0}
.tactic-deck button{flex:1;min-width:0;text-align:left;white-space:normal;padding:7px 12px;min-height:56px;background:linear-gradient(135deg,#232f34,#151c24);border-color:#5d6468}
.tactic-deck button.selected{background:linear-gradient(135deg,#574335,#292634);border-color:#d6b87f;box-shadow:inset 0 0 14px #d69e4b26,0 0 0 1px #9e7b4c}
.tactic-deck button b{display:block;font-size:12px;color:#e3ceb0;margin-bottom:3px}
.tactic-deck button small{font-size:10px;white-space:normal;line-height:1.3;color:#aeb5b2}
.arena-frame{border-color:#a08a6c;box-shadow:inset 0 0 0 2px #090d16,inset 0 0 0 4px #58515a,0 10px 28px #000b;padding:7px;min-height:280px}
.arena-frame canvas{min-height:260px}
.party-card{background:linear-gradient(135deg,#303b3e,#171e27);border-color:#72736e;box-shadow:inset 0 0 0 2px #0b1219,0 4px 12px #0006}
.party-card.ready{animation:ember-ready 1.3s ease-in-out infinite alternate}
@keyframes ember-ready{from{box-shadow:inset 0 0 13px #c69a342b,0 0 4px #d6b97b30}to{box-shadow:inset 0 0 24px #f0b6624c,0 0 18px #d6b97b66}}
.boon-overlay{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:14px;background:linear-gradient(#070d16df,#171a25d9);backdrop-filter:blur(3px)}
.boon-card{width:min(790px,94%);text-align:center;padding:23px;background:linear-gradient(145deg,#2d303a,#151c27);border:1px solid #c2a275;box-shadow:0 0 0 3px #0c131b,0 18px 55px #000b}
.boon-card h3{font-size:22px;margin:5px 0 18px;color:#f0ddbb}
.boon-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:16px}
.boon-options button{min-height:106px;white-space:normal;text-align:center;background:radial-gradient(ellipse at 50% 0,#574840,#202a32 75%);border:1px solid #9d8a72;padding:13px}
.boon-options button strong{display:block;font:18px 'Songti SC',Georgia,serif;color:#f4d9aa;margin-bottom:9px}
.boon-options button small{line-height:1.6;color:#d2d2ca}
.boon-card>[data-boon-timer]{color:#aeb4bd;font-size:11px}
.town-scene{border-color:#a78764;box-shadow:inset 0 0 0 2px #0b1018,inset 0 0 0 4px #78634e,0 11px 35px #000b;overflow:hidden}
.town-scene canvas{filter:saturate(1.14) contrast(1.12)}
.building-point{background:linear-gradient(#6e5746f0,#242e35f2);border-color:#d0ad80;color:#fff0ce;box-shadow:0 0 0 2px #10191f,0 7px 20px #000c,0 0 21px #eaa15c4a;font-size:15px}
.building-point:hover{transform:translate(-50%,-50%) scale(1.06)}
.map-card canvas{opacity:.86}
.map-card.selected{border-color:#ebbf7f;box-shadow:0 0 0 2px #5a3e2a,0 0 18px #d99a5a41}
.stage-node.current{border-color:#e8b968;box-shadow:inset 0 0 18px #dca25a55,0 0 14px #dca25a29}
.talent-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.talent-head small{color:#e5c78f}
.talent-grid{align-items:stretch}
.talent-path{min-height:0;padding:15px;background:linear-gradient(145deg,#30343b,#1a222b);border-color:#747379}
.talent-path.selected{border-color:#d2ae7a;box-shadow:inset 0 0 25px #d7a76117,0 0 14px #d7a76126}
.talent-route{display:flex;width:100%;align-items:center;gap:12px;min-height:59px;text-align:left;border:0;background:none;box-shadow:none;padding:0 3px 12px;color:#ead6b9}
.talent-route .talent-orb{flex:0 0 43px;width:43px;height:43px;margin:0;font-size:22px}
.talent-route b{font:16px 'Songti SC',serif}
.talent-route small{margin-left:auto;font-size:10px}
.talent-nodes{display:flex;flex-direction:column;gap:7px}
.talent-nodes button{display:flex;align-items:center;gap:9px;min-height:45px;white-space:normal;text-align:left;padding:7px 9px;background:linear-gradient(90deg,#202a31,#171e26);border-color:#5c6770}
.talent-nodes button span{display:grid;place-items:center;width:25px;height:25px;flex:0 0 25px;border-radius:50%;background:#323c46;color:#d4b989;border:1px solid #9a876d}
.talent-nodes button b{font-size:11px;font-weight:500;color:#cbd0cb}
.talent-nodes button.learned{border-color:#ba996b;background:linear-gradient(90deg,#49382f,#242b30)}
.talent-nodes button.learned span{background:#896447;color:#fff0c9}
.talent-nodes button:disabled{opacity:.7}
@media(max-width:850px){.tactic-deck{gap:4px}.tactic-deck>.eyebrow{display:none}.tactic-deck button{padding:5px 7px;min-height:46px}.tactic-deck button b{font-size:10px}.tactic-deck button small{font-size:9px}.boon-card{padding:12px}.boon-card h3{font-size:16px;margin-bottom:9px}.boon-options{gap:5px;margin-bottom:8px}.boon-options button{min-height:76px;padding:5px}.boon-options button strong{font-size:13px;margin-bottom:3px}.boon-options button small{font-size:9px}.title-content{left:6%;width:54vw}.title-content h1{font-size:clamp(45px,6vw,70px)}}
@media(max-height:560px) and (orientation:landscape){.tactic-deck{margin-bottom:5px}.tactic-deck button{min-height:30px;padding:3px 7px}.tactic-deck button small{display:none}.tactic-deck button b{font-size:10px;margin:0}.arena-frame{min-height:110px}.arena-frame canvas{min-height:100px}.boon-card{padding:8px}.boon-card h3{font-size:14px;margin:2px 0 5px}.boon-options button{min-height:48px}.boon-options button strong{font-size:12px}.boon-options button small{font-size:8px}.title-content{left:7%;width:44vw}.title-content h1{font-size:42px}.title-crest{font-size:26px;line-height:1.1}.title-content p{font-size:10px;margin:8px 0 15px}.title-menu button{min-height:33px}.title-menu .grand-button{min-height:38px;font-size:12px}.title-sub{margin:5px 0;font-size:16px}}
@media(max-width:600px) and (orientation:portrait){.title-content{left:50%;width:82vw;text-align:center}.title-crest{text-align:center;width:auto}.title-sub{justify-content:center}.title-content h1{font-size:clamp(40px,10vw,60px)}.title-menu{margin:auto}.tactic-deck{display:grid;grid-template-columns:repeat(3,1fr)}.tactic-deck button{min-height:52px}.boon-options{grid-template-columns:1fr}.boon-options button{min-height:48px}.boon-card{max-height:90%;overflow:auto}}
@media(prefers-reduced-motion:reduce){.party-card.ready{animation:none}}
