@font-face{font-family:Marchitect Thai;src:url(../assets/fonts/noto-sans-thai-variable.ttf)format("truetype");font-weight:100 900;font-style:normal;font-display:swap}:root{--paper:#f7f6f0;--ink:#2d4239;--muted:#566650;--line:#dce1d4;--blue:#23688d;--game-font:"Marchitect Thai","Segoe UI",Tahoma,sans-serif}*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden}body{background:var(--paper);color:var(--ink);font-family:Tahoma,Segoe UI,sans-serif;font-size:13px}button,select{font:inherit}button{min-height:44px;color:var(--blue);cursor:pointer;touch-action:manipulation;background:0 0;border:1px solid #0000;border-radius:7px;padding:8px 12px}button:hover{border-color:var(--line)}button:disabled{opacity:.4;cursor:not-allowed}button:focus-visible,a:focus-visible,select:focus-visible{outline-offset:3px;outline:3px solid #3b93ba}button[hidden],[hidden]{display:none!important}select{min-height:44px;color:var(--ink);background:0 0;border:0;max-width:100%;padding-right:10px;font-weight:700}a{color:inherit;text-decoration:none}h1,h2,h3,p{margin:0}#app{height:100dvh;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right);padding-bottom:env(safe-area-inset-bottom);flex-direction:column;display:flex}.topbar{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;align-items:center;gap:16px;height:72px;padding:0 28px;display:flex}.brand{letter-spacing:2.5px;align-items:center;gap:12px;font-size:18px;font-weight:800;display:flex}.brand small{letter-spacing:.4px;color:var(--muted);margin-top:5px;font-size:10px;font-weight:400;display:block}.brand-mark{color:#a7d6b8;letter-spacing:-3px;background:#1d3c35;border-radius:11px 2px;place-items:center;width:38px;height:40px;padding-right:4px;font-family:Georgia,serif;font-size:28px;font-weight:400;display:grid;position:relative}.brand-mark span{font:13px Tahoma;position:absolute;top:1px;right:2px}.prototype{letter-spacing:1.6px;color:var(--muted);align-items:center;gap:8px;font-size:9px;display:flex}.prototype i,.footer i{background:#5d977c;border-radius:50%;width:5px;height:5px;display:inline-block}.header-actions{gap:8px;display:flex}.header-actions button{font-size:12px}.missionbar{border-bottom:1px solid var(--line);background:#efeee6;flex-shrink:0;align-items:center;gap:28px;min-height:78px;padding:10px 28px;display:flex}.eyebrow{letter-spacing:1.8px;color:var(--muted);font-family:Segoe UI,sans-serif;font-size:9px;font-weight:700;display:block}.mission-picker{min-width:220px}.mission-picker select{margin-left:-4px;font-size:16px}.mission-copy{flex-direction:column;gap:6px;min-width:0;display:flex}.mission-copy strong{font-size:12px}.mission-copy span{color:var(--muted);font-size:11px}.phase-indicator{white-space:nowrap;align-items:center;gap:8px;margin-left:auto;font-size:11px;display:flex}.phase-indicator>span:first-child{background:#b59856;border-radius:50%;width:6px;height:6px}.mobile-tabs{display:none}.workspace-layout{flex:1;grid-template-rows:minmax(0,1fr) 126px;grid-template-columns:410px minmax(0,1fr);gap:0;min-height:0;display:grid}.plan-panel{border-right:1px solid var(--line);background:#f7f6f0;flex-direction:column;grid-row:1/3;min-width:0;min-height:0;display:flex}.panel-heading{justify-content:space-between;align-items:center;padding:20px 22px 15px;display:flex}.panel-heading h1{margin-top:5px;font-size:20px;font-weight:400}.panel-number{color:#bfc9bd;font-family:Georgia,serif;font-size:28px}.plan-summary{color:var(--muted);gap:24px;padding:0 22px 16px;font-size:11px;display:flex}.plan-summary strong{color:var(--ink);margin:0 4px 0 8px;font-family:Georgia,serif;font-size:23px;font-weight:400}.plan-summary small{font-size:10px}.editor-tools{border-top:1px solid var(--line);border-bottom:1px solid var(--line);justify-content:space-between;gap:0;padding:0 12px;display:flex}.editor-tools button{white-space:nowrap;padding:7px;font-size:11px}.editor-wrap{flex:1;min-height:0;position:relative}.editor-wrap #blockly{position:absolute;inset:0}.editor-lock{z-index:5;pointer-events:all;-webkit-backdrop-filter:grayscale(.4);backdrop-filter:grayscale(.4);background:#f7f6f06b;flex-direction:column;justify-content:flex-end;align-items:center;padding:18px;display:none;position:absolute;inset:0}.editor-lock span{background:#f7f6f0e8;border-radius:5px;padding:8px 12px;font-weight:700}.editor-lock small{background:#f7f6f0e8;padding:4px 8px}.running-plan .editor-lock{display:flex}.validation{text-align:left;border-top:1px solid var(--line);color:#3e7768;border-radius:0;min-height:40px;padding:9px 18px;font-size:11px}.validation.error{color:#aa5143}.file-tools{border-top:1px solid var(--line);justify-content:flex-end;align-items:center;gap:0;min-height:44px;padding:0 12px;display:flex}.file-tools>span{color:var(--muted);margin-right:auto;font-size:9px}.file-tools button{padding:5px 8px;font-size:10px}.battle-panel{background:#fcfbf7;flex-direction:column;min-width:0;min-height:0;display:flex}.battle-topline{justify-content:space-between;align-items:center;gap:12px;height:58px;padding:15px 24px;display:flex}.battle-topline>div{align-items:center;gap:12px;min-width:0;display:flex}.live-tag{color:#587b63;letter-spacing:1.2px;white-space:nowrap;border:1px solid #bccabb;padding:5px 7px;font:8px Segoe UI,sans-serif}#battle-label{color:var(--muted);font-size:10px}#clock{color:#425948;font-variant-numeric:tabular-nums;font-family:Georgia,serif;font-size:24px}.battlefield-shell{isolation:isolate;background:#183833;border-radius:12px 12px 0 0;flex:1;min-height:120px;margin:0 20px;position:relative;overflow:hidden}#battlefield{position:absolute;inset:0}#battlefield canvas{display:block}.battle-legend{color:#b5c8b2;pointer-events:none;justify-content:space-between;align-items:center;font-size:10px;display:flex;position:absolute;top:16px;left:20px;right:20px}.battle-legend>span:nth-child(2){letter-spacing:1px;opacity:.6;font-size:8px}.ally-dot,.enemy-dot{background:#9ac9b3;border-radius:50%;width:6px;height:6px;margin:0 4px;display:inline-block}.enemy-dot{background:#dba18b}.scene-caption{text-align:center;pointer-events:none;color:#d1dec0;width:100%;transition:opacity .4s;position:absolute;top:24%;left:0}.scene-caption span{letter-spacing:2px;opacity:.65;margin-bottom:6px;font-size:10px;display:block}.scene-caption strong{font-size:clamp(12px,1.5vw,18px);font-weight:400}.scene-caption.hidden{opacity:0}.army-dock{flex-shrink:0;padding:14px 20px 8px}.dock-title{color:var(--muted);justify-content:space-between;margin-bottom:8px;font-size:9px;display:flex}.dock-title small{color:#9aab99}.army-stats{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.unit-card{border:1px solid var(--line);border-radius:8px;align-items:center;gap:10px;min-width:0;padding:10px 12px;display:flex}.unit-symbol{color:#2b8a8a;background:#e4eeea;border-radius:8px;place-items:center;width:30px;height:30px;font-size:22px;display:grid}.unit-card[data-unit=archer] .unit-symbol{color:#9d7b3d;background:#f2ead8}.unit-card[data-unit=cavalry] .unit-symbol{color:#8666a6;background:#eee6f2}.unit-card .unit-name{color:var(--muted);font-size:10px}.unit-amount{white-space:nowrap;margin-left:auto;font-family:Georgia,serif;font-size:26px}.unit-amount small{color:#87a58f;margin-left:3px;font:11px Tahoma}.economy{border-top:1px solid var(--line);align-items:center;gap:20px;margin-top:10px;padding:9px 2px 0;font-size:10px;display:flex}.economy>div:first-child{white-space:nowrap;align-items:center;gap:10px;display:flex}.economy strong{color:#997c43;font-family:Georgia,serif;font-size:22px;font-weight:400}.economy small{color:var(--muted);font-size:9px}.queue-summary{text-align:right;color:var(--muted);flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.queue-summary b{color:var(--ink);margin-left:10px;font-weight:400}#queue-detail{text-overflow:ellipsis;white-space:nowrap;font-size:9px;overflow:hidden}.battle-controls{flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:8px 20px 14px;display:flex}.control-secondary{gap:2px;display:flex}.control-secondary button{padding:8px 10px;font-size:11px}.control-secondary #speed{border:1px solid var(--line);min-width:44px;margin:0 4px;font:15px Georgia,serif}.start-button{border:1px solid #448fba;justify-content:center;align-items:center;gap:10px;min-width:180px;font-size:13px;display:flex}.button-arrow{margin-left:auto}.events-panel{border-top:1px solid var(--line);background:#f1f1e9;gap:22px;min-height:0;padding:16px 24px;display:flex;overflow:hidden}.events-heading strong{margin:8px 0;font-size:12px;font-weight:400;display:block}.events-heading>span:last-child{color:var(--muted);font-size:9px}#event-log{flex:1;min-width:0;margin:0;padding:0;font-size:10px;list-style:none;overflow:auto}#event-log li{gap:12px;padding:4px 0;line-height:1.5;display:flex}#event-log time{color:#869386;flex-shrink:0;font-family:monospace}#event-log li[data-type=formation_destroyed]{color:#ae6650}#event-log li[data-type=order_accepted]{color:#3c846d}.footer{border-top:1px solid var(--line);color:#7e8e80;flex-shrink:0;justify-content:space-between;align-items:center;height:30px;padding:0 24px;font-size:8px;display:flex}.footer>span:first-child{letter-spacing:1.5px;font:8px Segoe UI,sans-serif}.footer i{margin-right:6px}.footer button{min-height:26px;padding:2px 8px;font-size:9px}dialog{background:var(--paper);width:min(500px,100vw - 32px);max-height:calc(100dvh - 24px);color:var(--ink);border:1px solid #d0d7c7;border-radius:16px;padding:24px 28px 28px;overflow:auto;box-shadow:0 24px 80px #0b211c44}dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#102a25aa}.dialog-heading{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.dialog-heading button{min-width:44px}dialog h2{font-family:Georgia,Tahoma,serif;font-size:25px;font-weight:400;line-height:1.5}.dialog-lead{color:var(--muted);margin-top:8px;font-size:12px;line-height:1.8}.help-steps{margin-top:16px}.help-steps article{border-bottom:1px solid var(--line);gap:16px;padding:14px 0;display:flex}.help-steps b{color:#8ba695;font:24px Georgia,serif}.help-steps h3{margin-bottom:5px;font-size:13px}.help-steps p{color:var(--muted);font-size:11px;line-height:1.8}.matchup-note{margin:18px 0;font-size:11px;line-height:1.9}.matchup-note small{color:var(--muted)}.dialog-action{border:1px solid #448fba;width:100%;margin:14px 0 8px}.result-emblem{color:#4b957b;margin:10px 0;font-size:38px}.result-stats{grid-template-columns:repeat(3,1fr);gap:10px;margin:20px 0;display:grid}.result-stats div{border:1px solid var(--line);text-align:center;border-radius:8px;padding:12px}.result-stats span{color:var(--muted);margin-top:4px;font-size:10px;display:block}.result-stats strong{font:28px Georgia,serif}#result-comparison{color:var(--muted);font-size:11px;line-height:1.8}#toast{z-index:1000;color:#e5edda;background:#1e3d34;border:1px solid #62836f;border-radius:10px;width:max-content;max-width:calc(100vw - 32px);padding:12px 20px;font-size:12px;position:fixed;bottom:42px;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #18382c33}.blocklyTreeLabel{font-family:Tahoma,sans-serif!important;font-size:12px!important}.blocklyToolboxCategory{padding:8px 4px!important}.blocklySvg{outline:none}.blocklyWidgetDiv input{font-family:Tahoma,sans-serif!important}@media (width>=1500px){html[data-shell=desktop] .workspace-layout{grid-template-columns:470px minmax(0,1fr)}html[data-shell=desktop] .battlefield-shell{margin:0 28px}html[data-shell=desktop] .army-dock{padding-left:28px;padding-right:28px}}html[data-shell=mobile] .topbar{height:48px;padding:0 18px}html[data-shell=mobile] .brand{gap:9px;font-size:15px}html[data-shell=mobile] .brand-mark{width:30px;height:32px;font-size:24px}html[data-shell=mobile] .brand small{display:none}html[data-shell=mobile] .prototype{font-size:8px}html[data-shell=mobile] .header-actions button{min-height:40px;padding:6px 10px;font-size:11px}html[data-shell=mobile] .missionbar{gap:20px;min-height:50px;padding:3px 18px}html[data-shell=mobile] .mission-picker{align-items:center;gap:8px;min-width:185px;display:flex}html[data-shell=mobile] .mission-picker .eyebrow{display:none}html[data-shell=mobile] .mission-picker select{font-size:13px}html[data-shell=mobile] .mission-copy strong{display:none}html[data-shell=mobile] .mission-copy span,html[data-shell=mobile] .phase-indicator{font-size:10px}html[data-shell=mobile] .mobile-tabs{border-bottom:1px solid var(--line);flex-shrink:0;justify-content:center;gap:12px;height:44px;display:flex}html[data-shell=mobile] .mobile-tabs button{border-radius:0;min-height:44px;padding:4px 14px;font-size:11px}html[data-shell=mobile] .mobile-tabs button[aria-pressed=true]{border-bottom:2px solid var(--blue)}html[data-shell=mobile] .workspace-layout{display:block;position:relative}html[data-shell=mobile] .plan-panel,html[data-shell=mobile] .battle-panel,html[data-shell=mobile] .events-panel{border:0;display:none;position:absolute;inset:0}html[data-shell=mobile] #app[data-view=plan] .plan-panel,html[data-shell=mobile] #app[data-view=battle] .battle-panel,html[data-shell=mobile] #app[data-view=events] .events-panel{display:flex}html[data-shell=mobile] .plan-panel{flex-direction:column}html[data-shell=mobile] .panel-heading{padding:8px 18px}html[data-shell=mobile] .panel-heading .eyebrow{display:none}html[data-shell=mobile] .panel-heading h1{margin:0;font-size:16px}html[data-shell=mobile] .panel-number{display:none}html[data-shell=mobile] .plan-summary{gap:16px;padding:0;position:absolute;top:7px;right:18px}html[data-shell=mobile] .file-tools{min-height:44px}html[data-shell=mobile] .battle-topline{flex-shrink:0;height:36px;padding:2px 18px}html[data-shell=mobile] .battle-topline #clock{font-size:21px}html[data-shell=mobile] .live-tag{padding:4px;font-size:7px}html[data-shell=mobile] .battlefield-shell{border-radius:8px 8px 0 0;min-height:70px;margin:0 16px}html[data-shell=mobile] .battle-legend{font-size:9px;top:10px}html[data-shell=mobile] .scene-caption{top:23%}html[data-shell=mobile] .scene-caption span{margin-bottom:4px;font-size:8px}html[data-shell=mobile] .scene-caption strong{font-size:13px}html[data-shell=mobile] .army-dock{align-items:center;gap:16px;padding:7px 18px 0;display:flex}html[data-shell=mobile] .dock-title{display:none}html[data-shell=mobile] .army-stats{flex:1;gap:7px}html[data-shell=mobile] .unit-card{border-radius:6px;gap:6px;padding:5px 8px}html[data-shell=mobile] .unit-symbol{width:25px;height:25px;font-size:18px}html[data-shell=mobile] .unit-name{font-size:9px!important}html[data-shell=mobile] .unit-amount small{font-size:9px}html[data-shell=mobile] .economy{border:0;flex-direction:column;flex:0 0 190px;align-items:flex-end;gap:8px;margin:0;padding:0}html[data-shell=mobile] .queue-summary{text-align:right;width:190px;font-size:9px}html[data-shell=mobile] .queue-summary>span:last-child{display:none}html[data-shell=mobile] .battle-controls{min-height:52px;padding:5px 18px 6px}html[data-shell=mobile] .start-button{min-width:200px;min-height:44px}html[data-shell=mobile] .control-secondary button{min-height:44px}html[data-shell=mobile] .events-panel{gap:16px;padding:14px 20px}html[data-shell=mobile] .events-heading{flex-basis:170px}html[data-shell=mobile] .events-heading strong{font-size:16px;line-height:1.8}html[data-shell=mobile] .event-tip{width:155px;color:var(--muted);font-size:11px;line-height:1.9;display:block;position:absolute;bottom:20px;left:20px}html[data-shell=mobile] .footer{height:22px;padding:0 18px}html[data-shell=mobile] .footer button{min-height:22px}html[data-shell=mobile] .footer>span:nth-child(2){font-size:8px}@media (width<=700px){html[data-shell=mobile] .prototype{display:none}html[data-shell=mobile] .header-actions{gap:0}html[data-shell=mobile] .missionbar{gap:4px}html[data-shell=mobile] .mission-picker{flex:1;min-width:0}html[data-shell=mobile] .mission-copy{display:none}html[data-shell=mobile] .phase-indicator{font-size:9px}html[data-shell=mobile] .army-dock{gap:8px;padding:7px 12px 0}html[data-shell=mobile] .unit-name{display:none}html[data-shell=mobile] .unit-card{gap:2px;padding:5px}html[data-shell=mobile] .unit-amount{font-size:19px}html[data-shell=mobile] .economy{flex-basis:115px}html[data-shell=mobile] .economy>div:first-child{gap:5px}html[data-shell=mobile] .economy small{display:none}html[data-shell=mobile] .queue-summary{width:115px}html[data-shell=mobile] .scene-caption strong{font-size:11px}html[data-shell=mobile] .footer>span:nth-child(2){display:none}html[data-shell=mobile] .plan-summary{gap:10px;font-size:9px}html[data-shell=mobile] .plan-summary strong{margin-left:5px;font-size:17px}html[data-shell=mobile] .panel-heading h1{font-size:14px}html[data-shell=mobile] .events-heading{flex-basis:130px}html[data-shell=mobile] .event-tip{width:115px}html[data-shell=mobile] .start-button{min-width:165px}html[data-shell=mobile] .battle-controls{padding-left:12px;padding-right:12px}html[data-shell=mobile] .control-secondary button{padding:5px 7px}html[data-shell=mobile] .battlefield-shell{margin:0 10px}}@media (orientation:portrait) and (width<=700px){html[data-shell=mobile] .battlefield-shell{min-height:200px}html[data-shell=mobile] .army-dock{padding-top:12px;display:block}html[data-shell=mobile] .unit-name{display:block}html[data-shell=mobile] .economy{flex-direction:row;justify-content:space-between;margin-top:10px}html[data-shell=mobile] .queue-summary{width:auto}html[data-shell=mobile] .scene-caption strong{font-size:13px}html[data-shell=mobile] .footer>span:nth-child(2){display:none}html[data-shell=mobile] .events-panel{flex-direction:column}html[data-shell=mobile] .events-heading{flex:0}html[data-shell=mobile] .event-tip{width:auto;position:static}html[data-shell=mobile] .battle-controls{padding-bottom:12px}html[data-shell=mobile] .header-actions span{display:none}html[data-shell=mobile] .panel-heading{padding-bottom:12px}html[data-shell=mobile] .plan-summary{top:7px}html[data-shell=mobile] .scene-caption:after{content:"หมุนโทรศัพท์แนวนอน เพื่อมองสนามได้กว้างขึ้น";color:#9bb59d;margin:12px;font-size:10px;display:block}}@media (orientation:landscape) and (height<=480px){html[data-shell=mobile] .topbar{height:44px}html[data-shell=mobile] .header-actions button{min-height:44px}html[data-shell=mobile] .missionbar{height:44px;min-height:44px}html[data-shell=mobile] .footer{display:none}html[data-shell=mobile] .battle-topline{height:30px}html[data-shell=mobile] .battlefield-shell{min-height:80px}html[data-shell=mobile] .battle-legend{top:7px}html[data-shell=mobile] .scene-caption{top:20%}html[data-shell=mobile] .army-dock{padding-top:5px}html[data-shell=mobile] .economy strong{font-size:17px}html[data-shell=mobile] .battle-controls{min-height:52px;padding-top:4px;padding-bottom:4px}html[data-shell=mobile] .panel-heading{padding-top:5px;padding-bottom:5px}html[data-shell=mobile] .validation{min-height:30px}html[data-shell=mobile] .file-tools{min-height:44px}html[data-shell=mobile] #app[data-view=plan] .topbar,html[data-shell=mobile] #app[data-view=plan] .missionbar{display:none}html[data-shell=mobile] #app[data-view=plan] .mobile-tabs{justify-content:flex-start;padding-left:12px}html[data-shell=mobile] #app[data-view=plan] .mobile-tabs:after{content:"MARCHITECT / PLAN";letter-spacing:1.5px;color:var(--muted);margin:auto 18px auto auto;font:8px Segoe UI,sans-serif}html[data-shell=mobile] #app[data-view=plan] .panel-heading{min-height:30px}}.unit-symbol{flex-shrink:0;width:40px;height:40px;position:relative;overflow:hidden}.unit-symbol img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.unit-symbol>span{position:relative}.unit-symbol[data-loaded=true]>span{visibility:hidden}.battle-legend>span{color:#d5e5cd;background:#142f2a99;border-radius:4px;padding:4px 6px}.scene-caption{text-shadow:0 1px 4px #10291e}.scene-caption strong{background:#142f2a9c;border-radius:6px;padding:7px 12px;display:inline-block}.scene-caption>span{color:#fff7da;opacity:1}.battle-legend>span:nth-child(2){opacity:1}html[data-shell=mobile] .battle-legend>span{padding:2px 5px}html[data-shell=mobile] .scene-caption strong{padding:4px 8px}#battle-label{display:none}#march-order{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:10px;overflow:hidden}.battle-topline>div{overflow:hidden}#clock{flex-shrink:0}html[data-shell=mobile] #march-order{font-size:9px}html[data-shell=mobile] .battle-topline .live-tag{display:none}#results-dialog{width:min(520px,100vw - 28px);max-height:calc(100dvh - 28px);color:var(--ink);background:var(--paper);border:1px solid #b9c6af;border-radius:20px;padding:24px;overflow:auto}#results-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#08251ed9}#results-dialog .dialog-heading{justify-content:center;margin:0 0 12px;padding:0}#results-dialog[open]{flex-direction:column;display:flex;overflow:hidden}#results-dialog .dialog-heading{flex-shrink:0}#results-dialog .result-body{text-align:center;overscroll-behavior:contain;scrollbar-gutter:stable;min-height:0;padding:0 2px;overflow-y:auto}#results-dialog .result-emblem{color:#7b704c;background:#e7e8dc;border-radius:50%;place-items:center;width:64px;height:64px;margin:0 auto 12px;font-size:36px;display:grid}#results-dialog #result-title{outline:none;margin:0 0 8px;font-size:clamp(28px,6vw,40px);line-height:1.3}#results-dialog .dialog-lead{margin:0 0 18px;font-size:14px;line-height:1.6}#results-dialog[data-outcome=win]{border-top:6px solid #c3a04a}#results-dialog[data-outcome=win] .result-emblem{color:#9b751a;background:#f5ebc9;box-shadow:0 0 0 7px #c3a04a14}#results-dialog[data-outcome=win] #result-title{color:#226448}#results-dialog[data-outcome=lose] #result-title{color:#a14d3d}#results-dialog .result-stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0 0 14px;display:grid}#results-dialog .result-stats>div{border:1px solid var(--line);border-radius:10px;padding:12px 4px}#results-dialog .result-stats strong{font-size:26px;line-height:1.3}#results-dialog .result-stats span{margin-top:5px;font-size:11px;display:block}#results-dialog #result-comparison{color:var(--muted);margin:0;font-size:12px;line-height:1.6}#results-dialog .result-reward{border:1px solid var(--line);color:var(--muted);background:#e9eddf;border-radius:8px;margin:0 0 6px;padding:9px 12px;font-size:12px;font-weight:400;display:block}#results-dialog .result-actions{background:var(--paper);border-top:1px solid var(--line);flex-shrink:0;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0 0;padding:12px 0 0;display:grid;position:static}#results-dialog .result-actions button{border:1px solid #9baea0;border-radius:10px;width:100%;min-height:48px;margin:0;font-size:14px;font-weight:700}#results-dialog #result-map{color:#fff;background:#245e48;border-color:#245e48}#results-dialog #result-map:hover{background:#194c38}@media (height<=500px){#results-dialog{padding:16px}#results-dialog .result-emblem{width:40px;height:40px;margin-bottom:6px;font-size:25px}#results-dialog #result-title{font-size:28px}#results-dialog .dialog-lead{margin-bottom:10px}#results-dialog .result-stats>div{padding:6px 4px}#results-dialog .result-actions{margin-top:12px}#results-dialog .dialog-heading{margin-bottom:6px}#results-dialog .result-emblem{display:none}#results-dialog #result-title{margin-bottom:4px;font-size:26px}#results-dialog .dialog-lead{margin-bottom:8px;font-size:12px}#results-dialog .result-stats{margin-bottom:8px}#results-dialog .result-stats strong{font-size:22px}#results-dialog .result-actions{margin-top:22px;padding-top:6px;position:relative;bottom:auto}#results-dialog[data-overflow=true] .result-actions:before{content:"เลื่อนอ่านรายละเอียดด้านบน ↕";text-align:center;color:var(--muted);font-size:10px;line-height:1.4;position:absolute;top:-18px;left:0;right:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}#app{padding-top:env(safe-area-inset-top)}#app[aria-busy=true] .workspace-layout:after{content:"กำลังเตรียมเกม…";z-index:10;background:var(--paper);color:var(--muted);place-items:center;font-size:16px;display:grid;position:absolute;inset:0}#app[aria-busy=true] .workspace-layout{position:relative}#app[aria-busy=true] .battle-controls{visibility:hidden}button,select{min-width:44px;min-height:44px}.battle-controls{border-top:1px solid var(--line);background:var(--paper);min-height:56px;padding:4px 20px}.start-button{min-width:190px;font-size:15px}.control-secondary{gap:4px}.control-secondary button{min-width:44px;font-size:14px}#field-info{position:relative}#supply-badge{border:1px solid var(--blue);background:var(--paper);min-width:16px;color:var(--blue);border-radius:8px;font:11px Tahoma;position:absolute;top:0;right:0}.panel-heading{gap:12px;padding:12px 18px 8px}.panel-heading h1{font-size:18px}#save-summary{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;max-width:48%;font-size:12px;overflow:hidden}.plan-summary{padding:0 18px 8px}.editor-tools{flex-shrink:0}.editor-tools button{font-size:13px}.validation{flex-shrink:0;min-height:44px;max-height:88px;font-size:12px;overflow:auto}.workspace-layout{grid-template-rows:minmax(0,1fr) 100px}.battlefield-shell{min-height:0}.battle-topline{flex-shrink:0;height:40px;padding:4px 20px}#march-order{font-size:12px}.battle-vitals{color:var(--muted);flex:0 0 32px;justify-content:space-around;align-items:center;gap:8px;padding:4px 12px;font-size:13px;display:flex}.battle-vitals b{color:var(--ink);font-variant-numeric:tabular-nums}.army-dock{padding:8px 20px 0}.dock-title{display:none}.army-stats{gap:6px}.unit-card{padding:5px 8px}.unit-card .unit-name{font-size:12px}.unit-amount small{color:var(--muted);font-size:12px}.economy{border:0;justify-content:flex-end;margin:4px 0 0;padding:0;font-size:13px}.economy small{font-size:12px}.events-panel{gap:16px;padding:10px 18px;display:flex}.events-heading{flex:0 0 160px}.events-heading strong{margin:4px 0;font-size:14px}.events-heading>span:last-child{font-size:12px}.event-tip{display:none}#event-log{font-size:13px}#event-log li{padding:5px 0}#event-log time{color:var(--muted)}.footer{height:24px}.footer>span:nth-child(2){font-size:11px}.dialog-heading{z-index:1;background:var(--paper);padding:4px 0;position:sticky;top:-24px}.dialog-heading h2{font:20px Tahoma,sans-serif}dialog p,.help-steps p,.skill-guide p,.dialog-lead{font-size:14px;line-height:1.7}dialog h3{margin-top:16px;font-size:15px}.quick-guide{border-bottom:1px solid var(--line);padding-bottom:12px}#queue-detail{white-space:normal;font-size:14px;display:block;overflow:visible}.skill-inventory{color:#4b3c20;grid-template-columns:1fr 1fr;gap:10px;padding:10px 0;font-size:13px;display:grid}.skill-item{min-width:0;color:var(--ink);background:#f4eddc;border:1px solid #b49c68;border-radius:8px;flex-direction:column;gap:4px;padding:9px 10px;display:flex}.skill-item strong{color:#234338;font-size:13px}.skill-item span{color:#405d50;font-size:12px;line-height:1.5}.skill-item [data-skill-status]{color:#7a5a22;font-weight:700}.skill-options{gap:10px;padding:8px 0 4px;display:grid}#skill-dialog{width:min(620px,100vw - 32px)}@media (orientation:landscape) and (height<=480px){#skill-dialog{width:min(760px,100vw - 24px);padding:14px 18px 16px}#skill-dialog .dialog-heading{margin-bottom:4px}#skill-dialog .dialog-lead{margin-bottom:4px;font-size:12px;line-height:1.45}#skill-dialog .skill-options{grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;padding:2px 0}#skill-dialog .skill-item{padding:7px 9px}}.skill-options .skill-item{background:#fffdf2}.skill-options button{color:#174f70;background:#e9e4cf;border:1px solid #b49c68;align-self:flex-start}.skill-guide{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.skill-guide h3{font-size:13px}.skill-guide p{color:var(--muted);flex-direction:column;gap:2px;margin-top:7px;font-size:12px;line-height:1.6;display:flex}.file-tools{flex-wrap:wrap;gap:8px;padding:8px 0;display:flex}.file-tools>span{flex:1 0 100%;font-size:12px}.file-tools button{font-size:14px}.detail-actions{border-top:1px solid var(--line);flex-wrap:wrap;gap:8px;padding-top:8px;display:flex}.detail-actions button{font-size:13px}.header-actions button{min-height:44px}#toast{bottom:calc(64px + env(safe-area-inset-bottom));pointer-events:none}.editor-zoom{z-index:3;background:var(--paper);border:1px solid var(--line);border-radius:8px;align-items:center;gap:2px;display:flex;position:absolute;bottom:14px;right:14px;box-shadow:0 2px 8px #18382c22}.editor-zoom button{width:44px;height:44px;padding:4px;font-size:20px}.editor-zoom output{text-align:center;min-width:46px;color:var(--muted);font-variant-numeric:tabular-nums;font-size:12px}.running-plan .editor-zoom{z-index:6}.blocklyToolbox{overscroll-behavior:contain;touch-action:pan-y;min-width:84px;overflow:hidden auto}.blocklyToolbox .blocklyToolboxCategoryGroup{padding:4px 0}.blocklyToolbox .blocklyToolboxCategoryContainer{min-height:44px;margin:0}.blocklyToolbox .blocklyToolboxCategory{align-items:center;height:44px;min-height:44px;line-height:normal;display:flex;padding:0 10px!important}.blocklyToolbox .blocklyTreeRowContentContainer{align-items:center;min-height:44px;display:flex}.blocklyToolbox .blocklyToolboxCategoryIcon{display:none!important}.blocklyToolbox .blocklyToolboxCategoryLabel{white-space:nowrap;padding:0;display:block;font:14px/24px Tahoma,sans-serif!important}html[data-shell=mobile] .battle-controls{padding:4px 12px}html[data-shell=mobile] .topbar{height:44px}html[data-shell=mobile] .missionbar{min-height:44px;padding:0 12px}html[data-shell=mobile] .mobile-tabs{gap:0;height:44px}html[data-shell=mobile] .mobile-tabs button{padding:4px 12px;font-size:13px}html[data-shell=mobile] .panel-heading{min-height:34px;padding:4px 12px}html[data-shell=mobile] #save-summary{max-width:110px;font-size:12px;display:block}html[data-shell=mobile] .panel-heading{justify-content:flex-start;gap:8px}html[data-shell=mobile] .panel-heading h1{font-size:0}html[data-shell=mobile] .panel-heading h1:after{content:"แผน";font-size:14px}html[data-shell=mobile] .plan-summary{gap:12px;padding:0;font-size:12px;top:4px;right:12px}html[data-shell=mobile] .plan-summary strong{font-size:18px}html[data-shell=mobile] .editor-tools{min-height:44px;padding:0 6px}html[data-shell=mobile] .editor-tools button{padding:4px 10px}html[data-shell=mobile] .validation{min-height:44px;padding:4px 12px}html[data-shell=mobile] .battle-topline{height:30px;padding:2px 12px}html[data-shell=mobile] .battlefield-shell{min-height:0;margin:0 12px}html[data-shell=mobile] .army-dock{flex-shrink:0;align-items:center;gap:8px;padding:4px 12px 0;display:flex}html[data-shell=mobile] .army-stats{flex:1;min-width:0}html[data-shell=mobile] .unit-card{gap:4px;padding:3px 6px}html[data-shell=mobile] .unit-symbol{width:30px;height:30px}html[data-shell=mobile] .unit-card .unit-name{font-size:12px!important}html[data-shell=mobile] .unit-amount{font-size:22px}html[data-shell=mobile] .economy{flex:none;margin:0;font-size:12px}html[data-shell=mobile] .economy strong{font-size:22px}html[data-shell=mobile] .economy small{display:none}html[data-shell=mobile] .battle-vitals{font-size:13px}html[data-shell=mobile] .events-panel{flex-direction:column;gap:8px;padding:8px 12px;display:none}html[data-shell=mobile] .events-heading{flex-wrap:wrap;flex:none;align-items:center;gap:4px 12px;display:flex}html[data-shell=mobile] .events-heading .eyebrow{display:none}html[data-shell=mobile] .events-heading>span:last-child{font-size:12px}html[data-shell=mobile] #event-log{font-size:14px}html[data-shell=mobile] .event-tip{display:none;position:static}html[data-shell=mobile] .footer{display:none}@media (orientation:landscape) and (height<=480px){html[data-shell=mobile] .topbar,html[data-shell=mobile] #app[data-view=plan] .topbar{display:none}html[data-shell=mobile] .missionbar,html[data-shell=mobile] #app[data-view=plan] .missionbar{z-index:2;left:env(safe-area-inset-left);top:env(safe-area-inset-top);background:var(--paper);width:215px;height:44px;min-height:44px;padding:0 6px;display:flex;position:absolute}html[data-shell=mobile] .mission-picker{width:100%;min-width:0}html[data-shell=mobile] .mission-picker select{text-overflow:ellipsis;width:100%;margin:0;font-size:13px;overflow:hidden}html[data-shell=mobile] .mission-copy,html[data-shell=mobile] .phase-indicator{display:none}html[data-shell=mobile] .mobile-tabs,html[data-shell=mobile] #app[data-view=plan] .mobile-tabs{justify-content:flex-end;margin-left:215px;padding:0}html[data-shell=mobile] #app[data-view=plan] .mobile-tabs:after{display:none}html[data-shell=mobile] .mobile-tabs button{white-space:nowrap;flex:1;padding:4px 6px;font-size:13px}html[data-shell=mobile] .scene-caption{top:18%}html[data-shell=mobile] .scene-caption strong{max-width:85%;font-size:12px}html[data-shell=mobile] .scene-caption>span{display:none}html[data-shell=mobile] .battle-controls{min-height:52px;padding:4px 8px}html[data-shell=mobile] .panel-heading{min-height:30px}html[data-shell=mobile] .validation{min-height:44px}html[data-shell=mobile] .validation:not(.error){display:none}}@media (width<=700px){html[data-shell=mobile] .unit-card .unit-name{display:none}html[data-shell=mobile] .army-dock{padding:4px 8px 0;display:flex}html[data-shell=mobile] .unit-card{gap:2px;padding:3px 4px}html[data-shell=mobile] .unit-symbol{width:26px;height:26px}html[data-shell=mobile] .unit-amount{font-size:20px}html[data-shell=mobile] .economy{flex:none}html[data-shell=mobile] .economy>div:first-child{gap:3px}html[data-shell=mobile] .economy>div:first-child>span{display:none}html[data-shell=mobile] .economy strong:before{content:"◈ ";font:14px Tahoma}html[data-shell=mobile] .battle-topline{padding:2px 8px}html[data-shell=mobile] .battlefield-shell{margin:0 8px}html[data-shell=mobile] .battle-vitals{padding:3px 8px;font-size:12px}html[data-shell=mobile] .control-secondary button{padding:4px}html[data-shell=mobile] .control-secondary button span,html[data-shell=mobile] .button-arrow{display:none}html[data-shell=mobile] .control-secondary{gap:2px}html[data-shell=mobile] .start-button{gap:4px;min-width:145px;padding:4px 8px;font-size:14px}html[data-shell=mobile] .battle-controls{gap:6px;padding:4px 8px}html[data-shell=mobile] .plan-summary{gap:6px;font-size:11px}html[data-shell=mobile] .plan-summary strong{margin:0 2px;font-size:17px}html[data-shell=mobile] .panel-heading h1{font-size:0}html[data-shell=mobile] .editor-tools button{padding:4px 6px;font-size:12px}html[data-shell=mobile] .scene-caption:after{display:none}html[data-shell=mobile] .header-actions button{width:44px;min-height:44px;padding:4px}}@media (orientation:landscape) and (height<=350px){html[data-shell=mobile] .battle-topline{height:26px}html[data-shell=mobile] #march-order{font-size:12px}html[data-shell=mobile] .battle-vitals{flex-basis:28px}html[data-shell=mobile] .battle-legend>span:nth-child(2){display:none}}@media (width<=380px){html[data-shell=mobile] .start-button{min-width:112px;padding:4px;font-size:13px}html[data-shell=mobile] .control-secondary{gap:0}html[data-shell=mobile] .panel-heading #save-summary{max-width:60px}}@media (width<=500px){html[data-shell=mobile] .skill-inventory{grid-template-columns:1fr}}@media (width>=1100px) and (height>=681px) and (height<=820px){html[data-shell=mobile] .topbar{height:48px}html[data-shell=mobile] .missionbar{min-height:56px;padding-top:4px;padding-bottom:4px}html[data-shell=mobile] .brand small{display:none}}.game-menu-actions{border-bottom:1px solid var(--line);flex-direction:column;gap:8px;padding:12px 0 16px;display:flex}.game-menu-actions p{color:var(--muted);font-size:13px}.game-menu-actions button{border:1px solid var(--blue);color:var(--blue);text-align:left;background:0 0;min-height:48px;padding:10px 14px;font-size:15px}#app #field-info{white-space:nowrap;align-items:center;gap:5px;width:auto;display:flex}#app #field-info>span{font-size:12px;display:inline}@media (width<=380px){html[data-shell=mobile] #app #field-info{gap:0;width:54px;min-width:54px;padding:0;font-size:0}}body,#campaign{font-family:var(--game-font);font-size:14px;line-height:1.55}button,select,input,output{font-family:var(--game-font)}#app h1,#app h2,#app h3,#campaign h1,#campaign h2,#campaign h3{font-family:var(--game-font);letter-spacing:0;font-weight:700}#clock,.unit-amount,.economy strong,.plan-summary strong,.result-stats strong{font-family:var(--game-font);font-variant-numeric:tabular-nums}#app .brand,.campaign-brand{font-family:var(--game-font);letter-spacing:.06em}.blocklyToolbox .blocklyToolboxCategoryLabel{font-family:var(--game-font)!important}#app .prototype,#app .footer,#app .scene-caption,#app .live-tag,#app .panel-heading .eyebrow{display:none}#app .battlefield-shell{border-radius:8px;margin:0 8px}#app .battle-topline{padding:0 8px}#app .battle-topline>div{flex:1;min-width:0}#toggle-battle-log{flex-shrink:0;padding:4px 8px;font-size:12px;display:none}#app .battle-controls{min-height:52px;padding-top:4px;padding-bottom:4px}@media (width>=1100px) and (height>=681px){html[data-shell=desktop] #app{position:relative}html[data-shell=desktop] #app .topbar{height:48px;padding:0 12px}html[data-shell=desktop] #app .brand{gap:0}html[data-shell=desktop] #app .brand>span:last-child{display:none}html[data-shell=desktop] #app .brand-mark{width:32px;height:32px;font-size:24px}html[data-shell=desktop] #app .missionbar{top:env(safe-area-inset-top);background:0 0;border:0;gap:12px;height:48px;min-height:48px;padding:0;position:absolute;left:60px;right:330px}html[data-shell=desktop] #app .mission-picker{min-width:0}html[data-shell=desktop] #app .mission-picker .eyebrow,html[data-shell=desktop] #app .mission-copy{display:none}html[data-shell=desktop] #app .mission-picker select{max-width:310px;margin:0;font-size:14px}html[data-shell=desktop] #app .phase-indicator{white-space:nowrap;margin-left:auto}html[data-shell=desktop] #app .workspace-layout{grid-template-rows:minmax(0,1fr) 0}html[data-shell=desktop] #app .events-panel{display:none}html[data-shell=desktop] #app[data-log-open=true] .workspace-layout{grid-template-rows:minmax(0,1fr) 100px}html[data-shell=desktop] #app[data-log-open=true] .events-panel{display:flex}html[data-shell=desktop] #toggle-battle-log{display:block}html[data-shell=desktop] #app .battle-topline{gap:12px;height:44px}html[data-shell=desktop] #app .plan-panel{position:relative}html[data-shell=desktop] #app .panel-heading{min-height:44px;padding:6px 12px}html[data-shell=desktop] #app .panel-heading h1{margin:0;font-size:14px}html[data-shell=desktop] #app #save-summary{max-width:100px;font-size:11px}html[data-shell=desktop] #app .plan-summary{gap:16px;padding:0 12px 4px;font-size:12px}html[data-shell=desktop] #app .plan-summary strong{font-size:20px}html[data-shell=desktop] #app .editor-tools{min-height:44px;padding:0 6px}html[data-shell=desktop] #app .validation:not(.error){display:none}html[data-shell=desktop] #app .army-dock{align-items:center;gap:8px;padding:6px 8px 0;display:flex}html[data-shell=desktop] #app .army-stats{flex:1;min-width:0}html[data-shell=desktop] #app .unit-card{gap:6px;padding:4px 6px}html[data-shell=desktop] #app .unit-symbol{width:30px;height:30px}html[data-shell=desktop] #app .unit-amount{font-size:22px}html[data-shell=desktop] #app .economy{flex:none;margin:0}html[data-shell=desktop] #app .economy small{display:none}html[data-shell=desktop] #app .battle-vitals{flex-basis:28px}}html[data-shell=mobile] #app .topbar{height:44px}html[data-shell=mobile] #app .mission-copy{display:none}html[data-shell=mobile] #app .panel-heading{min-height:32px}html[data-shell=mobile] #app .validation:not(.error){display:none}.reinforcement-help{white-space:nowrap;color:var(--blue);padding:4px;font-size:12px}.shell-fit{left:50%;bottom:calc(68px + env(safe-area-inset-bottom));z-index:20;max-width:calc(100vw - 24px);color:var(--ink);background:#fffdf2;border:1px solid #bbad7e;border-radius:12px;align-items:center;gap:10px;padding:8px 12px;font-size:12px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 10px 28px #12282438}.shell-fit button{border:1px solid var(--blue);color:var(--blue);background:0 0;min-height:36px;padding:4px 10px;font-size:12px}.save-warning{z-index:19;right:calc(8px + env(safe-area-inset-right));bottom:calc(60px + env(safe-area-inset-bottom));color:#57250f;background:#fff3d8;border:2px solid #893b1d;border-radius:8px;align-items:center;gap:8px;max-width:calc(100vw - 24px);padding:4px 8px;font-size:13px;font-weight:700;display:flex;position:fixed;box-shadow:0 3px 12px #0006}.save-warning button{color:#174f70;background:#fffaf0;border:1px solid #174f70;min-height:44px}#reinforcement-dialog{width:min(560px,100vw - 24px);max-height:calc(100dvh - 24px);overflow:auto}#reinforcement-dialog pre{font:13px/1.7 var(--game-font);white-space:pre-wrap}#reinforcement-dialog>button{color:var(--blue);border:1px solid var(--blue);background:0 0}@media (orientation:landscape) and (height<=480px){html[data-shell=mobile] #results-dialog[open]{grid-template-rows:auto minmax(0,1fr) auto;width:min(700px,100vw - 20px);height:min(370px,100dvh - 20px);max-height:calc(100dvh - 20px);padding:10px 16px;display:grid;overflow:hidden}html[data-shell=mobile] #results-dialog .dialog-heading{min-height:44px;margin:0;padding:0;position:static}html[data-shell=mobile] .result-body{overscroll-behavior:contain;min-height:0;overflow:auto}html[data-shell=mobile] .result-emblem{display:none}html[data-shell=mobile] #result-title{margin:0;font-size:20px}html[data-shell=mobile] #result-description{margin:2px 0;font-size:12px;line-height:1.4}html[data-shell=mobile] .result-stats{gap:6px;margin:6px 0}html[data-shell=mobile] .result-stats>div{padding:4px}html[data-shell=mobile] .result-stats strong{font-size:19px}html[data-shell=mobile] #result-comparison{margin:4px 0;font-size:12px}html[data-shell=mobile] #result-comparison .result-reward{padding:5px 8px;font-size:14px}html[data-shell=mobile] .result-actions{border-top:1px solid var(--line);align-items:center;gap:6px;padding-top:5px;display:flex}html[data-shell=mobile] .result-actions button{flex:1;min-width:0;min-height:44px;padding:5px;font-size:12px;line-height:1.3}html[data-shell=mobile] .result-actions .dialog-action{margin:0}html[data-shell=mobile] .result-actions [data-close]{flex:0 auto}html[data-shell=mobile] #app .panel-heading{min-height:28px}}@media (width<=600px){html[data-shell=mobile] #app .panel-heading #save-summary{display:none}html[data-shell=mobile] #app .editor-tools{overscroll-behavior-x:contain;justify-content:flex-start;overflow-x:auto}html[data-shell=mobile] #app .editor-tools button{white-space:nowrap;flex:none}}#campaign{z-index:200;color:#233f36;padding:var(--campaign-safe-top,env(safe-area-inset-top)) var(--campaign-safe-right,env(safe-area-inset-right)) var(--campaign-safe-bottom,env(safe-area-inset-bottom)) var(--campaign-safe-left,env(safe-area-inset-left));background:#f4f5ee;flex-direction:column;font-family:Tahoma,sans-serif;display:flex;position:fixed;inset:0;overflow:hidden}#campaign[hidden]{display:none}.card-stars{color:#8a6214;letter-spacing:2px;white-space:nowrap;font:18px/1.4 Tahoma,sans-serif;display:block}.camp-stage .card-stars{color:#f4d580;text-shadow:0 1px 2px #102f29}.card-stars.stars-1{color:#646b73}.card-stars.stars-2{color:#1671bb}.card-stars.stars-3{color:#8950b3}.card-stars.stars-4{color:#956410}.card-stars.stars-5{color:#956410;-webkit-text-fill-color:transparent;background:linear-gradient(110deg,#956410 10%,#a57612 30%,#8950b3 55%,#a57612 80%);-webkit-background-clip:text;background-clip:text;display:inline-block;position:relative}.card-stars.stars-5:after{content:"✦";color:#8950b3;-webkit-text-fill-color:#8950b3;font-size:12px;animation:2s ease-in-out infinite card-sparkle;position:absolute;top:-5px;right:-15px}.camp-stage .stars-1{color:#c0c5cd}.camp-stage .stars-2{color:#7dc4ff}.camp-stage .stars-3{color:#d0a0f5}.camp-stage .stars-4{color:#f4d580}.camp-stage .stars-5{text-shadow:none;background-image:linear-gradient(110deg,#f4d580,#e3b5ff,#f4d580)}@keyframes card-sparkle{0%,to{opacity:.4;transform:scale(.8)rotate(0)}50%{opacity:1;transform:scale(1.2)rotate(30deg)}}@media (prefers-reduced-motion:reduce){.card-stars.stars-5:after{animation:none}}#campaign button:focus-visible,#campaign summary:focus-visible{outline-offset:4px;outline:3px solid #d5a442}#campaign .campaign-hero{background:linear-gradient(90deg,#102f29ed,#173f3566 55%,#102f29dc),url(../assets/art/battlefield-meadow.webp) 50%/cover;border:1px solid #9b8655;grid-template-columns:1fr 1.2fr .8fr;gap:24px;min-height:370px;display:grid;box-shadow:0 14px 35px #173f3520}.camp-quest{background:#102f29dd;border:1px solid #b6a06b;border-radius:12px;flex-direction:column;gap:10px;padding:20px;display:flex}.camp-quest p{margin:0;font-size:13px}.camp-quest small{color:#f0d997}.camp-quest button{margin-top:10px}.camp-team{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:650px;margin:0 auto;display:grid}.camp-member{color:#204537;min-width:0;min-height:170px;font:inherit;cursor:pointer;background:linear-gradient(#e9eee5,#d5dfd0);border:1px solid #a99b6c;border-radius:70px 70px 12px 12px;flex-direction:column;justify-content:end;align-items:center;padding:12px 8px;transition:transform .18s;display:flex;box-shadow:0 7px #203e3429}.camp-member:hover{transform:translateY(-4px)}.camp-member strong{font-size:17px}.camp-member small{text-align:center;margin-top:5px;font-size:11px}.camp-portrait{object-fit:contain;width:100%;max-width:150px;height:auto}.camp-unit{color:#54705c;margin:4px;font-size:11px}.camp-stage .camp-member{color:#f5edd5;background:linear-gradient(#102f2910,#102f29cc);border-color:#cbb47a80}.camp-stage .camp-unit{color:#e1cc9c}.campaign-backup summary{cursor:pointer;color:#15639b;align-content:center;min-height:44px;font-weight:700}#campaign .campaign-map{background:linear-gradient(#e5e8d7ec,#f3ebd7ec),url(../assets/art/battlefield-meadow.webp) 50%/cover;border:1px solid #c8c3a5;border-radius:16px;gap:32px;margin-top:20px;padding:28px 24px;list-style:none;position:relative}.campaign-map .level-tile{background:#fffdf3;border-color:#c7c8ae;padding-top:40px;position:relative;box-shadow:0 6px #b4baa64d}.map-node{color:#fff6cf;z-index:1;background:#214f42;border:3px solid #ddc58b;border-radius:50%;place-items:center;width:44px;height:44px;font-weight:700;display:grid;position:absolute;top:-18px;left:20px}.campaign-map .level-tile:after{content:"";border-left:3px dashed #79927b;height:16px;position:absolute;top:-34px;left:40px}.campaign-map .level-tile:first-child:after{display:none}.campaign-map .cleared .map-node{background:#46745b}.campaign-map .recommended{border:2px solid #9a7a32}.map-reward{color:#795e24;background:#f5ecd3;border-radius:6px;padding:6px 9px;font-size:12px}.result-reward{color:#68501d;background:#f7efd9;border:1px solid #cfb674;border-radius:10px;margin-bottom:12px;padding:14px;font-size:20px;display:block}#result-comparison>span{font-size:13px;line-height:1.6;display:block}#result-map{color:#15639b;cursor:pointer;background:0 0;border:1px solid #9abbbb;border-radius:8px;min-height:44px;margin:8px;padding:9px 14px}#results-dialog[data-outcome=win] .result-emblem{color:#9e792a}@media (width<=1050px){#campaign .campaign-hero{grid-template-columns:1fr 1fr}.camp-quest{grid-column:1/-1;grid-template-columns:1fr 1fr;align-items:center;display:grid}.camp-quest p{grid-column:1}.camp-quest button{grid-area:2/2/4}.camp-quest small{grid-column:1}}@media (width<=600px){#campaign .campaign-hero{grid-template-columns:1fr;gap:20px;padding:20px}.camp-quest{grid-column:auto;display:flex}.camp-member{min-height:130px;padding:10px 5px}.camp-member strong{font-size:14px}.camp-member small{font-size:10px}.camp-team{gap:8px}.campaign-map .level-tile{margin-left:12px}#campaign .campaign-map{padding:28px 14px}}@media (height<=450px) and (orientation:landscape){#campaign .campaign-hero{grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);align-items:center;gap:14px;min-height:0;padding:16px}#campaign .camp-stage{display:none}#campaign .camp-quest{grid-column:auto;gap:5px;padding:12px;display:flex}.campaign-hero-copy h1{font-size:26px!important}.campaign-hero-copy p{font-size:12px}.campaign-hero-actions{gap:6px;margin-top:10px}#campaign-content{padding-top:10px;padding-bottom:20px}#campaign .campaign-kicker{display:none}#campaign .campaign-hero-copy>p{font-size:11px;line-height:1.4}#campaign .campaign-hero-actions{flex-wrap:nowrap;gap:4px;margin-top:6px}#campaign .campaign-hero-actions button{min-height:40px;padding:6px 8px;font-size:12px}#campaign .camp-quest{gap:2px;padding:10px}#campaign .camp-quest h2{margin:0;font-size:20px}#campaign .camp-quest p,#campaign .camp-quest small{font-size:11px;line-height:1.35}#campaign .camp-quest button{min-height:40px;margin-top:4px;padding:6px 10px}}@media (prefers-reduced-motion:reduce){.camp-member{transition:none}.camp-member:hover{transform:none}}.campaign-header{background:#fff;border-bottom:1px solid #d7e0d6;justify-content:space-between;align-items:center;gap:12px;padding:14px clamp(16px,4vw,56px);display:flex}.campaign-brand{letter-spacing:.12em;align-items:center;gap:12px;font-size:15px;font-weight:700;display:flex}.campaign-brand small{letter-spacing:0;color:#688077;margin-top:3px;font-size:11px;font-weight:400;display:block}.campaign-mark{color:#b7ead5;letter-spacing:0;background:#173f35;border-radius:10px;place-items:center;width:42px;height:42px;display:grid}#campaign-coins{color:#785824;white-space:nowrap;background:#fffaf0;border:1px solid #d8c08a;border-radius:99px;padding:9px 14px}.campaign-actions{align-items:center;gap:8px;min-width:0;display:flex}.campaign-shell-toggle{color:#15639b;white-space:nowrap;background:#fff;border:1px solid #9abbbb;min-height:40px;padding:6px 10px;font-size:12px}@media (width<=600px){.campaign-shell-toggle [data-shell-label]{display:none}}.campaign-nav{background:#fff;border-bottom:1px solid #d7e0d6;flex-shrink:0;gap:6px;padding:8px clamp(12px,4vw,56px);display:flex;overflow-x:auto}.campaign-nav button,.campaign-action,.campaign-primary{font:inherit;color:#15639b;cursor:pointer;white-space:nowrap;background:#fff;border:1px solid #9abbbb;border-radius:8px;min-height:44px;padding:9px 15px}.campaign-nav button{border-color:#0000;flex:none}.campaign-nav button[aria-pressed=true]{color:#164e45;background:#e9f4f1;border-color:#87b9ac;font-weight:700}.campaign-primary{color:#fff;background:#195e50;border-color:#195e50;font-weight:700}.campaign-action:disabled,.campaign-primary:disabled{opacity:.45;cursor:not-allowed}#campaign-message{color:#8a532d;min-height:0;margin:0;padding:0 clamp(16px,4vw,56px);font-size:12px}#campaign-message:not(:empty){padding-top:8px}#campaign-content{overscroll-behavior:contain;flex:1;padding:clamp(18px,3vw,36px) clamp(16px,4vw,56px) 60px;overflow:auto}#campaign-content h1{margin:0 0 12px;font-size:clamp(25px,4vw,42px);line-height:1.2}#campaign-content h2{margin:6px 0;font-size:19px}#campaign-content h3{margin:5px 0;font-size:16px}#campaign-content p{line-height:1.6}.campaign-lead{color:#61756c;max-width:850px}.campaign-hero{color:#f4f5e8;background:linear-gradient(110deg,#13392efa 8%,#1c4938e8 52%,#2047337a),url(../assets/art/battlefield-meadow.webp) 50%/cover;border-radius:18px;justify-content:space-between;align-items:center;min-height:300px;padding:clamp(24px,4vw,56px);display:flex;position:relative;overflow:hidden}.campaign-hero-copy{z-index:1;max-width:600px;position:relative}.campaign-hero-copy p{color:#d7e7d4;max-width:500px}.campaign-hero .campaign-primary{color:#205b50;background:#f3f6eb;border-color:#f3f6eb}.campaign-hero .campaign-action{color:#fff;background:0 0;border-color:#9fc4ad}.campaign-hero-actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.campaign-kicker{letter-spacing:.12em;color:#7a9f8a;font-size:11px;font-weight:700}.campaign-hero .campaign-kicker{color:#a6ddbf}.campaign-home-art{filter:drop-shadow(0 10px 14px #10251a);align-self:center;width:clamp(150px,25vw,300px);height:auto}.campaign-summary,.team-summary,.rates{flex-wrap:wrap;gap:12px;margin:18px 0;display:flex}.campaign-summary p,.team-summary span,.rates span{background:#fff;border:1px solid #dce5da;border-radius:9px;margin:0;padding:14px 18px}.level-grid,.card-grid,.monster-grid{grid-template-columns:repeat(auto-fit,minmax(235px,1fr));gap:14px;margin-top:22px;display:grid}.level-tile,.monster-card,.hero-card{background:#fff;border:1px solid #dbe4d9;border-radius:12px;padding:18px}.level-tile{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.level-tile p{color:#536c61;margin:0}.level-tile small{color:#687e72;flex:1;line-height:1.6}.level-tile button{margin-top:12px}.hero-card{border-top:4px solid #aab8ae;grid-template-columns:76px 1fr;gap:12px;display:grid}.hero-card.rarity-rare{border-top-color:#528ec7}.hero-card.rarity-epic{border-top-color:#a16bba}.hero-card.rarity-legendary{border-top-color:#d5a442}.hero-portrait{object-fit:cover;background:#e6eee7;border-radius:9px;width:76px;height:76px}.hero-card-copy p{color:#4e685c;margin:4px 0;font-size:12px}.hero-card-copy small{color:#71857a;font-size:11px}.card-rarity{color:#668578;font-size:11px}.hero-card.locked img{filter:grayscale();opacity:.3}.card-actions{flex-wrap:wrap;grid-column:1/-1;gap:6px;display:flex}.card-actions button{flex:1;font-size:12px}.monster-card{text-align:center}.monster-card p{color:#667c70;margin:3px}.monster-icon{text-shadow:0 1px 1px #20372a;font-size:45px;display:block}.monster-portrait{object-fit:contain;width:75px;height:75px}@media (width<=600px){.campaign-header{padding:8px 14px}.campaign-brand{font-size:12px}.campaign-brand small{font-size:10px}.campaign-mark{width:34px;height:34px}.campaign-nav{padding:4px 10px}.campaign-nav button{padding:6px 10px;font-size:12px}#campaign-content{padding:16px 14px 40px}.campaign-hero{min-height:220px;padding:20px}.campaign-home-art{width:110px}.campaign-hero-copy h1{font-size:25px!important}.campaign-hero-copy p{font-size:13px}.campaign-summary{gap:6px}.campaign-summary p{padding:10px;font-size:12px}.level-grid,.card-grid,.monster-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}.card-actions button{white-space:normal;min-width:100px;line-height:1.3}.hero-card.card-tier-1{border-top-color:#78818a}.hero-card.card-tier-2{border-top-color:#2589d4}.hero-card.card-tier-3{border-top-color:#9858bf}.hero-card.card-tier-4{border-top-color:#c59732}.hero-card.card-tier-5{border-top-color:#c59732;box-shadow:inset 0 2px #ad75c9,0 0 12px #a16bba26}.hero-card,.camp-member{isolation:isolate;position:relative}.hero-card.card-tier-1,.camp-member.card-tier-1{background:linear-gradient(135deg,#fafbfc,#e4e7eb);border-color:#929aa3;box-shadow:inset 0 0 0 1px #ffffffb3,0 4px 12px #59657118}.hero-card.card-tier-2,.camp-member.card-tier-2{background:radial-gradient(at 0 0,#b9e2ff80,#0000 70%),linear-gradient(135deg,#f6fbff,#dcecf9);border-color:#468fc8;box-shadow:inset 0 0 0 1px #ffffffb3,0 4px 14px #318bd12b}.hero-card.card-tier-3,.camp-member.card-tier-3{background:radial-gradient(at 0 0,#d6b1f780,#0000 70%),linear-gradient(135deg,#fdfaff,#ecdef7);border-color:#a16bc7;box-shadow:inset 0 0 0 1px #ffffffb3,0 4px 14px #9252b833}.hero-card.card-tier-4,.camp-member.card-tier-4{background:radial-gradient(at 0 0,#ffe39b99,#0000 70%),linear-gradient(135deg,#fffdf4,#f5e6ba);border-color:#be9334;box-shadow:inset 0 0 0 1px #fff6d8,0 4px 16px #c7953438}.hero-card.card-tier-5,.camp-member.card-tier-5{background:radial-gradient(at 0 0,#ffe5a6cc,#0000 60%),radial-gradient(at 100% 100%,#d6b2f2bb,#0000 65%),linear-gradient(135deg,#fffaf0,#f5ecfb);border-color:#c49a42;box-shadow:inset 0 0 0 1px #edcf82,0 0 0 1px #b586cb66,0 5px 20px #9c62bd40}.hero-card.card-tier-5:after,.camp-member.card-tier-5:after{content:"";z-index:-1;pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 90% 12%,#fff8ca 0 2px,#0000 4px),radial-gradient(circle at 78% 22%,#b377cb 0 1px,#0000 3px),radial-gradient(circle at 12% 85%,#fff9db 0 2px,#0000 4px),radial-gradient(circle at 92% 80%,#c79743 0 1px,#0000 3px);animation:3s ease-in-out infinite card-aura;position:absolute;inset:0}@keyframes card-aura{0%,to{opacity:.4}50%{opacity:1}}.camp-stage .camp-member[class*=card-tier-]{color:#233f36;text-shadow:none}.camp-stage .camp-member[class*=card-tier-] .camp-unit{color:#54705c}.camp-stage .camp-member .stars-1{color:#646b73;text-shadow:none}.camp-stage .camp-member .stars-2{color:#1671bb;text-shadow:none}.camp-stage .camp-member .stars-3{color:#8950b3;text-shadow:none}.camp-stage .camp-member .stars-4{color:#956410;text-shadow:none}.camp-stage .camp-member .stars-5{background-image:linear-gradient(110deg,#956410,#8950b3,#956410)}@media (prefers-reduced-motion:reduce){.hero-card.card-tier-5:after,.camp-member.card-tier-5:after{animation:none}}.card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:20px}.hero-card{outline-offset:1px;border-style:solid;border-width:5px;border-radius:10px;outline:1px solid #394e4c66;flex-direction:column;gap:0;width:100%;max-width:360px;margin:0 auto;padding:12px;display:flex}.trading-card-heading{background:#fff6;border:1px solid #ffffffb3;justify-content:space-between;align-items:center;gap:8px;min-height:48px;padding:8px 10px;display:flex;box-shadow:inset 0 1px 4px #2c3d3526,0 1px #ffffff8c}#campaign .trading-card-heading h3{margin:0;font-size:18px;line-height:1.3}.trading-card-unit{color:#284b3c;background:#ffffff80;border:1px solid #546d5d66;border-radius:50%;flex-shrink:0;padding:5px;font-size:11px}.trading-card-stars{justify-content:flex-end;min-height:30px;padding:2px 8px;display:flex}.trading-card-art{aspect-ratio:1;background:radial-gradient(#fffb,#0000 68%),linear-gradient(145deg,#536e6266,#fff3);border:3px solid #4d685e;outline:1px solid #ffffffb3;place-items:center;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 20px #142f2933,0 2px 6px #142f2926}.hero-card .hero-portrait{object-fit:cover;background:0 0;border-radius:0;width:100%;height:100%;max-height:none}.hero-card .hero-card-copy{color:#233f36;background:#fffcf1e8;border:1px solid #937e5b99;min-height:115px;margin-top:12px;padding:10px;box-shadow:inset 0 1px 4px #6050321a}.hero-card .card-rarity{color:#405d50;border-bottom:1px solid #b2ac9466;padding-bottom:5px;font-weight:700;display:block}.hero-card .hero-card-copy p{margin:6px 0;font-size:13px;line-height:1.6}.hero-card .hero-card-copy small{color:#53685b;font-size:11px;line-height:1.5;display:block}.hero-card .card-actions{gap:8px;margin-top:10px}.hero-card .card-actions button{background:#fffdf2b3;min-width:0}.hero-card.card-tier-2 .trading-card-art{border-color:#3c80b3}.hero-card.card-tier-3 .trading-card-art{border-color:#8052a0}.hero-card.card-tier-4 .trading-card-art{border-color:#ae8231}.hero-card.card-tier-5 .trading-card-art{border-color:#a674bd;box-shadow:0 0 0 1px #e5c36d,inset 0 0 20px #9767b94d,0 0 14px #d7ae6366}.hero-card.card-tier-5:after{z-index:1}.camp-team .hero-card.camp-member{text-align:left;border-width:3px;border-radius:8px;justify-content:flex-start;align-items:stretch;gap:0;min-height:0;padding:7px;display:flex;transform:none}#campaign .camp-team .trading-card-heading{gap:3px;min-height:34px;padding:4px}#campaign .camp-team .trading-card-heading h3{font-size:clamp(11px,1.2vw,15px)}.camp-team .trading-card-unit{padding:3px;font-size:9px}.camp-team .trading-card-stars{min-height:24px;padding:0 4px}.camp-team .card-stars{letter-spacing:0;font-size:clamp(11px,1.3vw,16px)}.camp-team .trading-card-art{border-width:2px;flex-shrink:0}.camp-team .hero-card-copy{flex:1;min-height:0;margin-top:6px;padding:6px}.camp-team .card-rarity{font-size:10px}.camp-team .hero-card-copy p{font-size:11px;line-height:1.4}.camp-team .hero-card-copy small{font-size:10px}.team-card-action{color:#15639b;background:0 0;border:1px solid #7d9eaa;width:100%;min-height:44px;margin-top:5px;padding:4px;font-size:11px}.camp-stage .hero-card-copy p{color:#233f36}@media (width<=600px){.camp-team .trading-card-unit{display:none}.camp-team .hero-card.camp-member{padding:4px}.camp-team .card-rarity{font-size:9px}.camp-team .hero-card-copy{padding:4px}.camp-team .hero-card-copy small{font-size:9px}}.camp-stage .hero-card-copy .card-rarity,.camp-stage .hero-card-copy small{display:none}.camp-stage .hero-card-copy p{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.camp-stage .hero-card-copy{min-height:46px}@media (width>=601px){#campaign .campaign-hero{grid-template-columns:.9fr 1.5fr .9fr}}@media (width>=601px) and (width<=1050px) and (height>=451px){#campaign .campaign-hero{grid-template-columns:1fr 1.5fr}}@media (height<=450px) and (orientation:landscape){.camp-stage .trading-card-unit{display:none}.camp-stage .hero-card-copy{margin-top:4px;padding:4px}#campaign .campaign-commander-line{margin:2px 0;font-size:11px}#campaign .campaign-commander-link{display:none}}.camp-stage .hero-card-copy p{-webkit-line-clamp:unset;overflow-wrap:anywhere;display:block;overflow:visible}.team-card-action{white-space:normal;line-height:1.4}.card-filters{flex-wrap:wrap;gap:8px;margin:20px 0 12px;scroll-margin-top:12px;display:flex}.card-filters [aria-pressed=true]{outline-offset:0;outline:2px solid #15639b}.hero-card:focus-visible{outline-offset:3px;outline:3px solid #15639b}.draw-reveal{color:#f5eed8;border:2px solid #b79a5b;border-top:4px solid var(--card-edge,#c7a35d);background:radial-gradient(at 50% 0,#c7a35d22,#0000 58%),linear-gradient(160deg,#173f34,#0a231d 72%);border-radius:16px;width:min(560px,100vw - 24px);max-height:calc(100dvh - 24px);padding:22px 24px 24px;position:relative;overflow:auto;box-shadow:0 24px 60px #04110dcc,inset 0 0 0 1px #f7dc9526}.draw-reveal::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#071b15cc}.draw-reveal-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.draw-reveal-headcopy{min-width:0}.draw-reveal-kicker{color:#e6cc91;letter-spacing:.14em;font-size:10px;font-weight:700;line-height:1.6;display:block}#campaign .draw-reveal h2{color:#fff3cc;text-shadow:0 2px 10px #04110d;margin:4px 0 0;font-size:clamp(22px,3.4vw,30px);line-height:1.3}.draw-reveal-sub{color:#c7d6ca;margin:6px 0 0;font-size:12px;line-height:1.5}.draw-reveal .reveal-close{color:#f3e4bc;cursor:pointer;background:#0d2922b3;border:1px solid #bda36e99;border-radius:50%;flex:none;place-items:center;width:44px;height:44px;min-height:44px;padding:0;font-size:18px;line-height:1;display:grid}.draw-reveal .reveal-close:hover{background:#2a5a49}.draw-reveal-status{flex-wrap:wrap;gap:6px;margin:14px 0 0;display:flex}.reveal-chip{color:#d5e1d4;background:#0c2620b8;border:1px solid #8c7a5266;border-radius:99px;align-items:center;gap:4px;padding:4px 10px;font-size:11px;line-height:1.6;display:inline-flex}.reveal-chip.is-new{color:#17342b;background:#f0dba6;border-color:#f0dba6;font-weight:700}.reveal-chip.is-duplicate{color:#ffe6ad;background:#5d3f1d;border-color:#c9a05b;font-weight:700}.reveal-chip.is-rarity{border-color:var(--card-edge,#c7a35d);color:#f4e7c4}.reveal-chip.is-saved{color:#bfe6c8}.draw-reveal .reveal-info{color:#c7d6ca;text-align:center;margin:10px 0 0;font-size:12px;line-height:1.6}#campaign .draw-reveal>.hero-card{filter:drop-shadow(0 18px 30px #04110dcc);max-width:300px;margin:16px auto 0}.draw-reveal-footer{border-top:1px solid #bda36e55;flex-direction:column;gap:10px;margin-top:18px;padding-top:14px;display:flex}.draw-reveal-note{color:#c7d6ca;text-align:center;margin:0;font-size:12px;line-height:1.5}#campaign .draw-reveal-done{width:100%;min-height:48px;margin:0}.draw-reveal .skip-summon{color:#f0e6cf;width:100%;min-height:44px;font-family:var(--game-font);background:#0d2922b3;border:1px solid #9abbbb;border-radius:4px;margin:8px 0 0;padding:8px 12px;display:block}@media (width<=440px){.draw-reveal{border-radius:12px;padding:18px 16px 20px}#campaign .draw-reveal h2{font-size:21px}#campaign .draw-reveal>.hero-card{margin-top:12px}.draw-reveal-footer{margin-top:14px}}#campaign .hero-card{box-shadow:none;background:0 0;border:0;border-radius:0;outline:0;flex-direction:column;gap:8px;padding:0;display:flex;container-type:inline-size}#campaign .hero-card:after{display:none}.card-face{isolation:isolate;aspect-ratio:5/7;border:3px solid var(--card-edge);background:var(--card-surface);border-radius:7px;flex-shrink:0;grid-template-rows:14% 8% 49% minmax(0,1fr);gap:0;width:100%;padding:4%;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffffb3,0 3px 10px #142f2926}.card-tier-1{--card-edge:#929aa3;--card-surface:linear-gradient(135deg,#fafbfc,#e4e7eb)}.card-tier-2{--card-edge:#468fc8;--card-surface:linear-gradient(135deg,#f6fbff,#cce6fa)}.card-tier-3{--card-edge:#a16bc7;--card-surface:linear-gradient(135deg,#fdfaff,#e3cef5)}.card-tier-4{--card-edge:#be9334;--card-surface:linear-gradient(135deg,#fffdf4,#eed28c)}.card-tier-5{--card-edge:#c49a42;--card-surface:linear-gradient(135deg,#ffe5a6,#f5ecfb 55%,#cca4e9)}.card-tier-5 .card-face:after{content:"";pointer-events:none;border-radius:inherit;background:radial-gradient(circle at 90% 12%,#fff8ca 0 2px,#0000 4px),radial-gradient(circle at 12% 85%,#fff9db 0 2px,#0000 4px);animation:3s ease-in-out infinite card-aura;position:absolute;inset:0}#campaign .hero-card .trading-card-heading{gap:3%;min-height:0;padding:3%}#campaign .hero-card .trading-card-heading h3{font-size:clamp(10px,6cqw,19px);line-height:1.2}#campaign .hero-card .trading-card-unit{padding:3%;font-size:clamp(8px,3.5cqw,11px);display:block}#campaign .hero-card .trading-card-stars{align-items:center;min-height:0;padding:0 3%}#campaign .hero-card .card-stars{letter-spacing:0;font-size:clamp(10px,6cqw,18px)}#campaign .hero-card .trading-card-art{aspect-ratio:auto;border-width:2px;width:100%;height:100%;min-height:0}#campaign .hero-card .hero-card-copy{min-height:0;margin:5% 0 0;padding:4%;overflow:auto}#campaign .hero-card .card-rarity{padding-bottom:2%;font-size:clamp(8px,3.5cqw,11px);display:block}#campaign .hero-card .hero-card-copy p{-webkit-line-clamp:unset;margin:3% 0;font-size:clamp(9px,4cqw,13px);line-height:1.4;display:block;overflow:visible}#campaign .hero-card .hero-card-copy small{font-size:clamp(8px,3.3cqw,11px);line-height:1.3;display:block}#campaign .hero-card .card-actions{min-height:44px;margin:0}#campaign .camp-team{grid-template-columns:repeat(3,minmax(140px,1fr));gap:10px;max-width:100%;padding:3px 2px 8px;overflow-x:auto}.camp-stage,#campaign .camp-team .hero-card{min-width:0}#campaign .camp-team .hero-card-copy .card-rarity,#campaign .camp-team .hero-card-copy small{display:none}#campaign .camp-team .hero-card-copy p{font-size:clamp(10px,5cqw,13px)}#campaign .team-card-action{background:#fffdf2;margin:0}@media (prefers-reduced-motion:reduce){.card-tier-5 .card-face:after{animation:none}}#campaign .camp-team{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;width:100%;max-width:440px;margin:0 auto;overflow-x:visible}#campaign .camp-team .hero-card{width:100%;max-width:140px}#campaign .camp-team .team-card-action{min-height:44px;padding:4px 2px;font-size:10px}@media (width<=600px){#campaign .camp-team{gap:6px}#campaign .camp-team .trading-card-unit{display:none}}#campaign,#campaign button,#campaign .card-stars{font-family:var(--game-font)}.summon-page{width:100%;max-width:1180px;margin:0 auto}.summon-page-heading{margin:0 0 18px}#campaign .summon-page-heading h1{margin:2px 0 6px;font-size:clamp(26px,4vw,40px)}.summon-page-heading .campaign-lead{color:#c9d9cf;margin:0;font-size:14px;line-height:1.6}.summon-hall{grid-template-columns:minmax(0,1.45fr) minmax(300px,.72fr);align-items:stretch;gap:18px;display:grid}.summon-stage{min-width:0;display:flex}.summon-altar{isolation:isolate;color:#f5eed8;text-align:left;background:radial-gradient(circle at 32% 45%,#4d897366 0,#0000 46%),radial-gradient(#37685b,#102f29 78%);border:1px solid #ad945c;border-radius:16px;grid-template-columns:minmax(140px,.75fr) minmax(0,1.25fr);align-items:center;gap:clamp(14px,2.4vw,32px);width:100%;margin:0;padding:clamp(20px,3vw,36px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #f0d18a26,0 10px 26px #071b1577}.summon-altar:before{content:"";pointer-events:none;opacity:.55;background:radial-gradient(circle at 12% 18%,#fff2b8 0 1px,#0000 2px),radial-gradient(circle at 24% 72%,#f8dfa6 0 1px,#0000 2px),radial-gradient(circle at 78% 24%,#e5c987 0 1.5px,#0000 3px),radial-gradient(circle at 90% 84%,#fff3c0 0 1px,#0000 2px),radial-gradient(circle at 64% 8%,#dfc27d 0 1px,#0000 2px);position:absolute;inset:0}.summon-seal,.summon-ritual{place-items:center;width:180px;height:180px;margin:0 auto;display:grid;position:relative}.summon-altar .summon-seal{width:clamp(132px,14vw,180px);height:clamp(132px,14vw,180px)}.summon-ring{border:2px solid #d8bd73;border-radius:50%;animation:12s linear infinite summon-orbit;position:absolute;inset:12px;box-shadow:0 0 20px #f6d48240,inset 0 0 20px #f6d48230}.summon-ring:before,.summon-ring:after{content:"";border:1px dashed #c6a55f;border-radius:50%;position:absolute;inset:10px}.summon-ring:after{border-style:solid;border-radius:12px;inset:24px;transform:rotate(45deg)}.summon-sigil{color:#eed699;text-shadow:0 0 25px #f9dc88;font-size:66px;line-height:1}.summon-altar .summon-sigil{font-size:clamp(44px,5vw,66px)}.summon-altar .summon-sparks{color:#eed699;font-size:16px}.summon-copy{z-index:1;min-width:0;position:relative}.summon-kicker{color:#f0dba6;letter-spacing:.18em;font-size:10px;font-weight:700;line-height:1.6;display:block}#campaign .summon-copy h2{color:#fff3cc;text-shadow:0 2px 10px #071b15;margin:6px 0 8px;font-size:clamp(20px,2.3vw,30px);line-height:1.35}#campaign .summon-copy .summon-intro{color:#d5dfce;max-width:46ch;margin:0 0 12px;font-size:13px;line-height:1.6}.summon-actions{flex-wrap:wrap;align-items:stretch;gap:10px;max-width:480px;display:flex}#campaign .summon-draw{letter-spacing:.02em;flex:1 1 0;justify-content:center;align-items:center;gap:8px;width:auto;min-width:0;max-width:none;min-height:54px;margin:0;padding:10px 12px;font-size:14px;display:flex}#campaign .summon-draw-ten{color:#174f70;background:#e9e4cf;border:1px solid #b49c68;flex:1 1 0;justify-content:center;align-items:center;gap:8px;min-width:0;max-width:none;min-height:54px;padding:10px 12px;font-size:13px;display:flex;box-shadow:inset 0 1px #fff9e6,0 2px #10271d88}#campaign .summon-draw:disabled,#campaign .summon-draw-ten:disabled{opacity:.68}.summon-draw-icon{color:#6d5119;font-size:18px}.summon-draw-ten-icon{color:#8a6214;letter-spacing:-1px;font-size:13px}#campaign .summon-copy .summon-note,#campaign .summon-copy .summon-warning{color:#d5dfce;margin:10px 0 0;font-size:12px;line-height:1.5}#campaign .summon-copy .summon-warning{color:#ffd7a0}.summon-info{color:#243d31;background:#f1ead5;border:1px solid #b69c63;border-radius:12px;flex-direction:column;gap:8px;padding:18px;display:flex;box-shadow:inset 0 0 0 2px #fff9e2,0 4px 14px #071b1577}#campaign .summon-info h2{color:#203e30;margin:2px 0 4px;font-size:19px}#campaign .summon-info .campaign-kicker{color:#7c6331}#campaign .summon-info .rates{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:8px 0;display:grid}#campaign .summon-info .rates span{box-shadow:none;color:inherit;background:0 0;border:0;border-radius:0;padding:0}.rate{color:#596e65;background:#fffbf0;border:1px solid #c5b184;border-radius:8px;padding:9px 10px}.rate-head{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.rate-name{font-size:12px;font-weight:700}.rate-value{color:#314f40;font-size:18px;line-height:1.2}#campaign .summon-info .rates .rate-bar{background:#ded4b8;border-radius:99px;height:4px;margin:6px 0 4px;display:block;overflow:hidden}.rate-bar:after{content:"";width:var(--weight);border-radius:inherit;background:currentColor;height:100%;display:block}.rate-stars{color:inherit;font-size:10px;display:block}.rate-common{background:#f7f6ef}.rate-rare{color:#276b9e;background:#eaf4fb}.rate-epic{color:#7c4b9e;background:#f5ecfa}.rate-legendary{color:#8f671c;background:#fbf1d8}.summon-rate-note{color:#53685b;margin:2px 0 0;font-size:11px;line-height:1.6}.summon-rules{border-top:1px solid #cabb96;margin-top:auto;padding-top:8px}.summon-rules summary{cursor:pointer;color:#2a4f40;align-items:center;min-height:44px;font-size:13px;font-weight:700;display:flex}.summon-rules p{color:#405d50;margin:6px 0;font-size:12px;line-height:1.6}.draw-reveal .summon-ritual{width:200px;max-width:100%;height:200px;color:var(--card-edge);margin:16px auto 4px}.draw-reveal.multi{width:min(940px,100vw - 24px)}.draw-reveal.multi .summon-ritual{width:160px;height:160px;margin:14px auto 2px}.draw-reveal.multi .draw-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin:16px 0 0;display:grid}#campaign .draw-reveal.multi .draw-grid .hero-card{filter:drop-shadow(0 6px 12px #04110d88);width:100%;max-width:none;animation:.35s ease-out both summon-arrival;animation-delay:calc(var(--i,0)*45ms)}.draw-reveal.multi .draw-grid:focus-visible{outline-offset:4px;outline:3px solid #d5a442}@media (width<=700px){.draw-reveal.multi .draw-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=440px){.draw-reveal.multi .draw-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}.draw-reveal .summon-ring{border-color:var(--card-edge);box-shadow:0 0 32px var(--card-edge);animation:1.5s linear infinite summon-orbit}.draw-reveal .summon-sigil{color:var(--card-edge);text-shadow:0 0 22px var(--card-edge);animation:.6s ease-in-out infinite alternate summon-pulse}.summon-sparks{color:var(--card-edge);place-items:end center;font-size:22px;animation:.5s ease-in-out infinite alternate summon-pulse;display:grid;position:absolute;inset:0}.draw-reveal:not(.summoning)>.hero-card{animation:.45s ease-out both summon-arrival}@keyframes summon-orbit{to{transform:rotate(360deg)}}@keyframes summon-pulse{0%{opacity:.5;transform:scale(.9)}to{opacity:1;transform:scale(1.1)}}@keyframes summon-arrival{0%{opacity:0;transform:translateY(16px)scale(.94)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.summon-ring,.draw-reveal .summon-ring,.draw-reveal .summon-sigil,.summon-sparks,.draw-reveal:not(.summoning)>.hero-card,.draw-reveal.multi .draw-grid .hero-card{animation:none}}@media (width<=1100px){.summon-hall{grid-template-columns:1fr}.summon-info{order:2}}@media (width<=600px){.summon-page-heading{margin-bottom:12px}#campaign .summon-page-heading h1{margin-bottom:4px;font-size:26px}.summon-page-heading .campaign-lead{font-size:12px;line-height:1.55}.summon-altar{text-align:center;grid-template-columns:1fr;gap:6px;padding:12px 14px 14px}.summon-altar .summon-seal{width:104px;height:104px}.summon-altar .summon-sigil{font-size:38px}#campaign .summon-copy h2{margin:2px 0 4px;font-size:19px}#campaign .summon-copy .summon-intro{max-width:none;margin-bottom:6px;font-size:11px;line-height:1.5}.summon-actions{flex-direction:column;gap:6px;max-width:none;margin-top:4px}#campaign .summon-draw,#campaign .summon-draw-ten{flex:none;width:100%;max-width:none;min-height:52px;font-size:14px}#campaign .summon-copy .summon-note,#campaign .summon-copy .summon-warning{margin-top:6px;font-size:10px}.summon-info{padding:12px}#campaign .summon-info .rates{gap:6px}.rate{padding:7px 8px}.rate-value{font-size:16px}}@media (orientation:landscape) and (height<=450px) and (width>=700px){.summon-page-heading{margin-bottom:8px}#campaign .summon-page-heading h1{margin:0 0 2px;font-size:24px}.summon-page-heading .campaign-kicker{display:none}.summon-page-heading .campaign-lead{font-size:11px;line-height:1.4}.summon-hall{grid-template-columns:minmax(0,1.35fr) minmax(240px,.65fr);gap:10px}.summon-altar{text-align:left;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:10px 14px}.summon-altar .summon-seal{width:96px;height:96px}.summon-altar .summon-sigil{font-size:34px}#campaign .summon-copy h2{margin:0 0 2px;font-size:17px}#campaign .summon-copy .summon-intro{margin:0 0 4px;font-size:10px;line-height:1.4}.summon-actions{flex-flow:row;gap:6px;margin-top:2px}#campaign .summon-draw,#campaign .summon-draw-ten{flex:1 1 0;width:auto;max-width:none;min-height:44px;padding:6px 8px;font-size:11px}#campaign .summon-copy .summon-note,#campaign .summon-copy .summon-warning{margin-top:4px;font-size:10px}.summon-info{gap:2px;padding:10px}#campaign .summon-info h2{margin:0;font-size:15px}#campaign .summon-info .campaign-kicker{display:none}#campaign .summon-info .rates{gap:4px}.rate{padding:5px 7px}.rate-value{font-size:14px}.rate-stars{display:none}#campaign .summon-info .rates .rate-bar{margin:3px 0 0}.summon-rate-note{display:none}}@media (orientation:landscape) and (height<=450px) and (width<=699px){#campaign-content[data-page=gacha]{padding:8px 12px 24px}.summon-page-heading{margin-bottom:6px}#campaign .summon-page-heading h1{margin:0;font-size:22px}.summon-page-heading .campaign-kicker{display:none}.summon-page-heading .campaign-lead{margin-top:2px;font-size:10px;line-height:1.35}.summon-hall{grid-template-columns:1fr;gap:8px}.summon-altar{text-align:left;grid-template-columns:84px minmax(0,1fr);gap:10px;padding:8px 12px}.summon-altar .summon-seal{width:80px;height:80px}.summon-altar .summon-sigil{font-size:28px}.summon-altar .summon-sparks{font-size:12px}#campaign .summon-copy h2{margin:0 0 2px;font-size:16px;line-height:1.3}#campaign .summon-copy .summon-intro{display:none}.summon-actions{flex-flow:row;gap:6px;margin-top:2px}#campaign .summon-draw,#campaign .summon-draw-ten{flex:1 1 0;width:auto;max-width:none;min-height:44px;padding:4px 8px;font-size:11px}#campaign .summon-copy .summon-note,#campaign .summon-copy .summon-warning{margin-top:3px;font-size:9px}.summon-info{padding:10px 12px}#campaign .summon-info .rates{gap:4px}.rate{padding:5px 7px}.rate-value{font-size:14px}.rate-stars{display:none}#campaign .summon-info .rates .rate-bar{margin:2px 0 0}.summon-rate-note{margin-top:0;font-size:10px}.summon-rules{margin-top:4px;padding-top:4px}.summon-rules summary{min-height:44px;font-size:12px}}@media (orientation:landscape) and (height<=450px){.draw-reveal[open]{grid-template-columns:minmax(0,1fr) minmax(150px,190px);align-items:start;gap:6px 16px;width:min(820px,100vw - 24px);padding:12px 16px;display:grid}.draw-reveal-head,.draw-reveal-sub,.draw-reveal-status,.draw-reveal .reveal-info,.draw-reveal .skip-summon,.draw-reveal-footer{grid-column:1}.draw-reveal>.hero-card,.draw-reveal .summon-ritual{grid-area:1/2/span 8;align-self:center;width:100%;max-width:190px;margin:0 auto}.draw-reveal .summon-ritual{height:160px;max-height:160px}#campaign .draw-reveal h2{font-size:21px}.draw-reveal-sub{margin-top:2px;font-size:11px}.draw-reveal-status{gap:4px;margin-top:6px}.reveal-chip{padding:3px 8px;font-size:10px}.draw-reveal .reveal-info{text-align:left;margin-top:4px;font-size:11px}.draw-reveal .skip-summon{min-height:44px;margin-top:4px}.draw-reveal-footer{gap:6px;margin-top:6px;padding-top:6px}.draw-reveal-note{text-align:left;font-size:11px}.draw-reveal.multi[open]{flex-direction:column;align-items:stretch;width:min(940px,100vw - 24px);padding:12px 16px;display:flex}.draw-reveal.multi .draw-grid{grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:8px;width:100%;margin-top:8px}.draw-reveal.multi .summon-ritual{width:120px;height:120px;max-height:120px}}.monster-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:start;gap:20px}.monster-type-heavy{--card-edge:#7e9184;--card-surface:linear-gradient(135deg,#f5f8ee,#d2dfce)}.monster-type-archer{--card-edge:#6b8eab;--card-surface:linear-gradient(135deg,#f2f8fc,#d1e0eb)}.monster-type-cavalry{--card-edge:#a38663;--card-surface:linear-gradient(135deg,#fff8ec,#ead7bd)}#campaign .monster-card{text-align:left}.monster-card-number{letter-spacing:.08em;color:#405d50;justify-content:flex-end;align-items:center;padding:0 3%;font-size:clamp(9px,4cqw,12px);display:flex}#campaign .monster-card .trading-card-art{background:radial-gradient(#ffffffd9,#fff3 65%),linear-gradient(150deg,#758a7055,#e8ddbd99)}.monster-card .monster-portrait{object-fit:contain;width:100%;height:100%;padding:5%}.monster-card .monster-icon{text-align:center;font-size:64px}.map-help{color:#53685b;font-size:13px;line-height:1.7;margin:10px 0 14px!important}.world-map-scroll{overscroll-behavior:contain;background:#b8d59c;border:2px solid #b39a61;border-radius:16px;overflow:auto;box-shadow:0 10px 30px #254b3720}#campaign .world-map{aspect-ratio:1000/560;isolation:isolate;background:#a9c78e url(../assets/art/adventure-map.webp) 50%/100% 100% no-repeat;border:0;border-radius:0;width:100%;min-width:800px;margin:0;padding:0;position:relative}.world-map-routes{pointer-events:none;filter:drop-shadow(0 2px 2px #3b452e88);width:100%;height:100%;position:absolute;inset:0;overflow:visible}.world-map-routes path{fill:none;stroke:#f6dd9b;stroke-width:14px;stroke-linecap:round;stroke-linejoin:round}.world-map-routes path.route-cleared{stroke:#aee1ba}#campaign .world-map .world-map-stop{box-shadow:none;background:0 0;border:0;width:130px;margin:0;padding:0;display:block;position:absolute;transform:translate(-50%,-50%)}#campaign .world-map-stop:after{display:none}.map-stage{color:#173f35;background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:3px;width:100%;min-height:100px;padding:3px;display:flex}#campaign .world-map .map-node{color:#fff9de;background:#244f41;border:3px solid #f8df9e;border-radius:50%;place-items:center;width:48px;height:48px;min-height:48px;font-size:18px;display:grid;position:static;box-shadow:0 3px #173f35,0 5px 12px #122e2980}.map-stage-name{color:#233f36;text-align:center;background:#fff9e8f5;border:1px solid #b8a671;border-radius:7px;max-width:100%;padding:4px 8px;font-size:13px;font-weight:700;line-height:1.4;display:block}.map-stage-state{color:#fff9de;background:#173f35e8;border-radius:5px;padding:2px 6px;font-size:10px}.world-map-stop.recommended .map-node{outline-offset:3px;outline:3px solid #fff9de}.world-map-stop.cleared .map-node{background:#3e7854}.map-stage[aria-pressed=true] .map-node{outline-offset:3px;background:#735327;outline:3px solid #fff9de}.map-stage[aria-pressed=true] .map-stage-name{border:2px solid #735327}.map-start-sign{color:#4b4a29;background:#fff4d5;border:2px solid #b69755;border-radius:6px;padding:6px 12px;font-weight:700;position:absolute;top:85%;left:3%;box-shadow:0 3px 8px #173f3533}.map-mission-detail{background:#fffbed;border:1px solid #bbad7e;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 18px;margin-top:16px;padding:20px;scroll-margin:12px;display:flex}.map-mission-detail .campaign-kicker{width:100%}.map-mission-detail .map-intel{color:#53685b;flex:1 0 100%;font-size:13px}.map-mission-detail .map-play{border:1px solid #23688d;min-height:44px;margin-left:auto}@media (width<=600px){.map-mission-detail{padding:14px}.map-mission-detail .map-play{width:100%;margin:0}}#campaign .world-map .map-landmark{background:#244f41;border:3px solid #f8df9e;border-radius:18px;width:78px;height:78px;overflow:hidden}.map-landmark img{object-fit:cover;width:100%;height:100%;display:block}.map-landmark{position:relative}.stage-locked .map-landmark img{filter:grayscale();opacity:.55}.map-lock-icon{text-shadow:0 1px 4px #102f29;place-items:center;font-size:22px;display:grid;position:absolute;inset:0}.map-lock-reason{color:#735326;font-size:14px}#campaign .world-map .map-landmark-fallback{font-size:30px}#campaign-content[data-page=levels]{flex-direction:column;gap:8px;min-height:0;padding:12px 16px;display:flex;overflow:hidden}.map-toolbar{flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;display:flex}#campaign .map-toolbar h1{margin:0;font-size:22px}.map-zoom-controls{flex-wrap:wrap;gap:4px;display:flex}.map-zoom-controls button{min-height:44px;padding:6px 10px;font-size:12px}#campaign-content[data-page=levels] .map-help{flex-shrink:0;font-size:12px;margin:0!important}#campaign-content[data-page=levels] .world-map-scroll{background:#183f35;flex:1;min-height:0;display:flex;container-type:inline-size}#campaign .world-map{flex-shrink:0;min-width:0;max-width:none;margin:auto;container-type:inline-size}.map-mission-detail{color:#233f36;width:calc(100vw - 24px);max-width:520px;max-height:calc(100dvh - 24px);margin:auto;overflow:auto}.map-mission-detail:not([open]){display:none}.map-mission-detail[open]{flex-direction:column;align-items:stretch;gap:12px;display:flex}.map-mission-detail::backdrop{background:#102f29aa}.map-detail-close{color:#15639b;align-self:flex-end;min-height:44px}.map-mission-detail .map-play{width:100%;margin:0}@container (width<=700px){#campaign .world-map .world-map-stop{width:54px}#campaign .world-map .map-landmark{border-width:2px;border-radius:10px;width:44px;height:44px;min-height:44px}.world-map .map-stage{gap:0;min-height:44px;padding:0}.world-map .map-stage-name,.world-map .map-stage-state,.world-map .map-start-sign{display:none}}@media (height<=450px){#campaign-content[data-page=levels]{gap:2px;padding:4px 10px}#campaign-content[data-page=levels] .map-help{display:none}#campaign .map-toolbar h1{font-size:16px}}@media (width<=600px){.card-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.hero-card{max-width:320px}}.campaign-backup{background:#fff;border:1px solid #dbe4d9;border-radius:12px;margin-top:24px;padding:18px}.campaign-backup p{color:#536c61}.campaign-backup button{margin:0 8px 6px 0}#campaign-content[data-page=cards]{flex-direction:column;gap:8px;min-height:0;padding:10px 16px;display:flex;overflow:hidden}.army-slots{flex-shrink:0;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0;display:grid}.army-slot{color:#15639b;white-space:normal;background:#fffdf2;border:1px solid #9abbbb;min-width:0;min-height:54px;padding:5px;line-height:1.4}.army-slot strong,.army-slot small{font-size:12px;display:block}.army-slot small{font-size:10px}.army-slot[aria-pressed=true]{outline-offset:-2px;outline:2px solid #15639b}#campaign-content[data-page=cards] .card-filters{flex-shrink:0;gap:6px;margin:0}.army-collection{flex:1;min-width:0;min-height:0}#campaign .army-collection .card-grid{justify-content:center;align-items:center;gap:10px;height:100%;margin:0;display:flex}#campaign .army-collection .hero-card{width:var(--thumb-width);flex-shrink:0;max-width:none;margin:0;position:relative}.inspect-card{border:0;border-radius:8px;width:100%;height:100%;position:absolute;inset:0}.inspect-card:focus-visible{outline-offset:3px;outline:3px solid #15639b}.army-pager{flex-shrink:0;justify-content:space-between;align-items:center;gap:6px;display:flex}.army-pager button{color:#15639b;background:0 0;border:1px solid #9abbbb;min-height:44px}.army-pager span{text-align:center;color:#53685b;font-size:11px}.commander-detail{color:#233f36;background:#f7f6f0;border:2px solid #b39a61;border-radius:14px;width:min(600px,100vw - 24px);max-height:calc(100dvh - 24px);padding:18px;overflow:auto}.commander-detail::backdrop{background:#102f29aa}.commander-detail-close{color:#15639b;min-height:44px;margin-left:auto;display:block}.commander-detail-info p{margin:8px 0;font-size:13px;line-height:1.6}.commander-action-status{color:#15639b}.commander-detail .hero-card{max-width:260px}@media (orientation:landscape) and (height<=450px){#campaign-content[data-page=cards]{gap:4px;padding:4px 10px}.army-slot{min-height:44px}.army-pager span{font-size:10px}.commander-detail[open]{grid-template-columns:1fr minmax(140px,190px);gap:8px 16px;width:min(700px,100vw - 24px);display:grid}.commander-detail>.hero-card{grid-area:1/2/3;width:100%}.commander-detail-close,.commander-detail-info{grid-column:1}}@media (height<=450px) and (orientation:landscape){.campaign-header{padding:5px 14px}.campaign-brand small{display:none}.campaign-mark{width:32px;height:32px}.campaign-nav{padding:0 10px}.campaign-nav button{min-height:44px}#campaign-content{padding:12px 18px 30px}.campaign-hero{min-height:180px}.campaign-home-art{width:130px}}#campaign .army-collection .collection-thumb .trading-card-heading h3{font-size:12px}#campaign .army-collection .collection-thumb .trading-card-unit{display:none}#campaign .army-collection .collection-thumb .hero-card-copy{place-items:center;margin-top:4%;padding:2%;display:grid;overflow:hidden}.thumb-equipped{color:#284f40;text-align:center;font-size:11px;line-height:1.4}#campaign-content[data-page=cards] .card-filters button{padding:6px 8px;font-size:12px}#campaign .commander-detail-close{grid-area:1/1;justify-self:end;margin:0}.commander-detail-body{overscroll-behavior:contain;grid-area:2/1;min-height:0;padding:0 4px;overflow:auto}.commander-detail-dock{background:#f7f6f0;border-top:1px solid #bbad7e;grid-area:3/1;min-width:0;padding-top:8px}.commander-detail-dock p{margin:0;font-size:12px;line-height:1.5}.commander-detail-dock .card-actions{gap:8px;margin-top:6px;display:flex}.commander-detail-dock .card-actions button{color:#23688d;background:0 0;border:1px solid #23688d;flex:1;min-width:0;min-height:44px;padding:8px}@media (orientation:landscape) and (height<=450px){.commander-detail-body{grid-template-columns:minmax(0,1fr) minmax(120px,170px);align-items:start;gap:12px;display:grid}.commander-detail-body .hero-card{width:100%}}.commander-level-summary{background:#fffbed;border:1px solid #bbad7e;border-radius:12px;flex-wrap:wrap;align-items:center;gap:10px 20px;margin:12px 0;padding:16px;font-size:14px;display:flex}.commander-level-summary progress{accent-color:#287d77;width:100%;height:12px}.camp-legend{flex-wrap:wrap;gap:8px;margin:10px 0 0;display:flex}.camp-legend-item{color:#3f5b3a;background:#e9efdc;border:1px solid #b8c69c;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;display:inline-flex}.camp-legend-item i{border-radius:50%;width:9px;height:9px;display:inline-block}.camp-hint{color:#c6d6bf;opacity:.9;margin-left:auto;font-size:11px}.camp-map-viewport{overscroll-behavior:contain;scrollbar-width:none;background:#8aa968;border:1px solid #a9b98f;border-radius:14px;margin:10px 0 12px;position:relative;overflow:auto;box-shadow:inset 0 0 0 2px #f6f9ea,0 4px #0c211c33}.camp-map-viewport::-webkit-scrollbar{display:none}.camp-map{width:100%;min-width:640px;height:clamp(320px,46vh,500px);position:relative}.camp-map>svg{width:100%;height:100%;position:absolute;inset:0}.camp-building{width:clamp(70px,11.5%,132px);box-shadow:none;cursor:pointer;color:inherit;background:0 0;border:0;flex-direction:column;align-items:center;padding:0;display:flex;position:absolute;transform:translate(-50%,-100%)}.camp-building .building-art{width:100%;display:block}.camp-building .building-art :is(img,svg){width:100%;height:auto;transition:transform .15s;display:block}.camp-building:hover .building-art :is(img,svg){transform:translateY(-2px)}.camp-building.built .building-art :is(img,svg){filter:drop-shadow(0 6px 5px #0c211c55)}.camp-building:not(.built) .building-art :is(img,svg){opacity:.75;filter:grayscale(.35)}.camp-building.locked .building-art :is(img,svg){opacity:.55;filter:grayscale(.75)}.camp-building[aria-pressed=true] .building-art :is(img,svg){filter:drop-shadow(0 0 9px #ffe9a8)drop-shadow(0 6px 5px #0c211c55)}.camp-building:focus-visible{outline-offset:4px;border-radius:12px;outline:3px solid #f0d489}.camp-label{color:#f4eccd;white-space:nowrap;text-overflow:ellipsis;background:#0d2b26d9;border:1px solid #6e8a5a;border-radius:999px;align-items:center;gap:4px;max-width:100%;margin-top:2px;padding:2px 9px;font-size:11px;line-height:1.55;display:inline-flex;overflow:hidden}.camp-building.built .camp-label{background:#254a2fd9;border-color:#8fbf7a}.camp-building.ready .camp-label{color:#fff4cf;background:#7d641cd9;border-color:#e0c675}.camp-building.locked .camp-label{color:#d9d9c8;background:#3a3f36cc;border-color:#7d7f6c}.camp-building[aria-pressed=true] .camp-label{outline-offset:1px;outline:2px solid #f0d489}.camp-label-state{font-weight:700}.camp-detail{background:linear-gradient(#fffdf2,#f4e9ca);border:1px solid #b49b6a;border-radius:12px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px 18px;padding:12px 16px;display:grid;box-shadow:inset 0 0 0 2px #fff8e4,0 3px #0c211c44}.camp-detail-head{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.camp-detail-head h2{color:#203e30;margin:0;font-size:20px}.camp-detail-branch{color:#3f5b3a;background:#e5ecd7;border:1px solid #b8c69c;border-radius:999px;padding:2px 9px;font-size:11px}.camp-detail-effect{color:#405d50;margin:3px 0 0;font-size:13px}.camp-detail-status{color:#6b5b32;margin:3px 0 0;font-size:12px}.camp-detail-actions{flex-direction:column;gap:4px;min-width:174px;display:flex}.camp-detail-cost{text-align:center;color:#6b5b32;font-size:12px}.camp-detail-actions button{color:#15639b;background:0 0;border:1px solid #15639b;min-height:44px}.camp-looks{color:#405d50;margin-top:6px;font-size:12px}.camp-looks summary{cursor:pointer;min-height:28px;line-height:28px}.camp-versions{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;max-width:520px;display:grid}.camp-version{text-align:center;background:#dce7c8;border:1px solid #b6c196;border-radius:8px;margin:0;padding:6px}.camp-version.current{border-color:#7d641c;box-shadow:inset 0 0 0 1px #7d641c}.camp-version .building-art{max-width:132px;margin:auto;display:block}.camp-version img{width:100%;height:auto;display:block}.camp-version figcaption{font-size:10px}@media (prefers-reduced-motion:reduce){.camp-building .building-art :is(img,svg){transition:none}}@media (width<=720px){.camp-detail{grid-template-columns:1fr}.camp-detail-actions{flex-direction:row;align-items:center;min-width:0}.camp-detail-actions button{flex:1}.camp-map{min-width:560px;height:clamp(300px,60vh,430px)}#campaign-content[data-page=buildings]{flex-direction:column;display:flex}#campaign-content[data-page=buildings]>*{flex-shrink:0}#campaign-content[data-page=buildings]>.camp-intro{display:none}#campaign-content[data-page=buildings]>.commander-level-summary{order:1;gap:4px 12px;margin:6px 0;padding:8px 12px;font-size:12px}#campaign-content[data-page=buildings]>.camp-legend{order:2}#campaign-content[data-page=buildings]>.camp-map-viewport{order:3}#campaign-content[data-page=buildings]>.camp-detail{order:4}#campaign-content[data-page=buildings]>.demolish-all{order:5}#campaign-content[data-page=buildings]>.camp-footnote{order:6}#campaign-content[data-page=buildings]>.campaign-lead:not(.camp-footnote){order:0}.camp-hint{margin-left:0;font-size:10px}}@media (orientation:landscape) and (height<=560px){#campaign-content[data-page=buildings]>.campaign-lead{display:none}#campaign-content[data-page=buildings] h1{margin:0 0 6px;font-size:22px!important}#campaign-content[data-page=buildings]{flex-direction:column;display:flex}#campaign-content[data-page=buildings]>*{flex-shrink:0}#campaign-content[data-page=buildings]>.commander-level-summary{order:1}#campaign-content[data-page=buildings]>.camp-legend{order:2}#campaign-content[data-page=buildings]>.camp-map-viewport{order:3}#campaign-content[data-page=buildings]>.camp-detail{order:4}#campaign-content[data-page=buildings]>.demolish-all{order:5}#campaign-content[data-page=buildings]>.camp-footnote{order:6}.commander-level-summary{gap:2px 16px;margin:4px 0;padding:6px 12px;font-size:12px}.commander-level-summary progress{display:none}.camp-legend{margin:4px 0 0}.camp-map-viewport{margin:6px 0 8px}.camp-map{min-width:700px;height:clamp(240px,54vh,340px)}.camp-detail{gap:6px 14px;padding:8px 12px}.camp-detail-head h2{font-size:17px}.camp-detail-effect,.camp-detail-status{font-size:12px}.camp-detail-actions button{min-height:40px}}#campaign-content[data-page=buildings]{flex-direction:column;gap:8px;min-height:0;padding:12px 18px;display:flex;overflow:hidden}#campaign-content[data-page=buildings]>*{flex-shrink:0;order:0}#campaign-content[data-page=buildings]>.commander-level-summary{order:0;gap:6px 18px;margin:0;padding:8px 12px;font-size:13px}#campaign-content[data-page=buildings]>.camp-legend{order:0;align-items:center;margin:0}#campaign-content[data-page=buildings]>.camp-workspace{flex:1 1 0;order:0;min-height:0}.camp-workspace{grid-template-columns:minmax(0,1fr) 280px;gap:12px;display:grid}#campaign-content[data-page=buildings] .camp-map-viewport{min-height:0;margin:0}#campaign-content[data-page=buildings] .camp-map{min-width:600px;height:100%;min-height:500px}#campaign-content[data-page=buildings] .camp-building[aria-pressed=true]{z-index:3}#campaign-content[data-page=buildings] .camp-label{max-width:none;padding:3px 8px;font-size:12px;overflow:visible}.camp-building.prerequisite .building-art{filter:drop-shadow(0 0 5px #f4d67f)}.camp-building.prerequisite .camp-label{border:2px dashed #f4d67f}#campaign-content[data-page=buildings] .camp-detail{flex-direction:column;justify-content:space-between;align-items:stretch;gap:12px;min-height:0;padding:16px;display:flex;overflow:auto}.camp-detail-copy{min-width:0;min-height:0;overflow:auto}#campaign-content[data-page=buildings] .camp-detail-effect{margin:10px 0;font-size:15px;line-height:1.5}#campaign-content[data-page=buildings] .camp-detail-status{font-size:13px;line-height:1.5}#campaign-content[data-page=buildings] .camp-detail-actions{flex-direction:column;flex-shrink:0;min-width:0;display:flex}#campaign-content[data-page=buildings] .camp-detail-actions button{width:100%}#campaign-content[data-page=buildings] .camp-help{color:#28574b;cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;margin-left:auto;padding:0 8px;font-size:20px}#campaign-content[data-page=buildings] .camp-detail-actions button{color:#fff4d3;background:#215b42;border-color:#6a8a4a;min-height:48px;font-size:15px}#campaign-content[data-page=buildings] .camp-detail-actions button:disabled{color:#626b5a;opacity:1;background:#e0dfcd;border-color:#adb49b}#campaign-content[data-page=buildings] .camp-looks,.camp-prerequisite-link{color:#235b64;text-underline-offset:3px;cursor:pointer;text-align:left;background:0 0;border:0;min-height:44px;padding:6px 0;font-size:12px;text-decoration:underline}#campaign-content[data-page=buildings]>.demolish-all{order:0;align-self:flex-end;min-height:36px;margin:0;font-size:12px}#campaign-content[data-page=buildings]>.camp-footnote{display:none}.camp-art-dialog{color:#284638;background:#fbf3dc;border:1px solid #b49b6a;border-radius:14px;width:min(680px,100vw - 24px);max-height:90dvh;padding:18px;overflow:auto}.camp-art-dialog::backdrop{background:#061e21b8}.camp-art-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.camp-art-header h2{margin:0;font-size:20px}.camp-art-header button{min-width:44px;min-height:44px}.camp-art-dialog .camp-versions{max-width:none}.camp-art-dialog .camp-version .building-art{max-width:190px}.camp-art-dialog p{font-size:13px}@media (width<=900px){#campaign-content[data-page=buildings]{gap:6px;padding:8px 12px}.camp-workspace{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;gap:6px}#campaign-content[data-page=buildings] .camp-map{min-width:600px;min-height:500px}#campaign-content[data-page=buildings] .camp-detail{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:6px 12px;max-height:40dvh;padding:10px 12px;display:grid}#campaign-content[data-page=buildings] .camp-detail-head h2{font-size:18px}#campaign-content[data-page=buildings] .camp-detail-effect{margin:4px 0;font-size:13px}#campaign-content[data-page=buildings] .camp-detail-status{font-size:12px}#campaign-content[data-page=buildings] .camp-looks,.camp-prerequisite-link{min-height:44px;font-size:11px}#campaign-content[data-page=buildings] .camp-detail-actions button{padding:8px 12px;font-size:13px}#campaign-content[data-page=buildings]>.demolish-all{min-height:44px}.camp-hint{margin-left:auto;font-size:11px;display:block}}@media (width<=480px){#campaign-content[data-page=buildings]>.commander-level-summary{gap:4px 12px;padding:6px 10px;font-size:12px}.camp-exp{font-size:11px}#campaign-content[data-page=buildings] .camp-help{min-width:44px;min-height:44px;font-size:18px}#campaign-content[data-page=buildings] .camp-legend{gap:4px}.camp-hint{width:100%;margin:0;font-size:10px}.camp-legend-item{padding:3px 6px;font-size:10px}#campaign-content[data-page=buildings] .camp-detail{grid-template-rows:minmax(0,1fr) auto;grid-template-columns:1fr;gap:4px;max-height:42dvh;overflow:hidden}#campaign-content[data-page=buildings] .camp-detail-actions button{min-height:44px}.camp-detail-head{gap:6px}#campaign-content[data-page=buildings] .camp-looks{min-height:44px;margin:0}.camp-art-dialog .camp-versions{grid-template-columns:1fr}}@media (orientation:landscape) and (height<=560px){#campaign-content[data-page=buildings]{gap:4px;padding:4px 10px}#campaign-content[data-page=buildings]>.commander-level-summary{padding:4px 10px;font-size:11px}#campaign-content[data-page=buildings]>.camp-legend{display:none}.camp-workspace{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr) 240px;gap:8px}#campaign-content[data-page=buildings] .camp-detail{max-height:none;padding:10px;display:flex}#campaign-content[data-page=buildings] .camp-map{min-width:600px;min-height:500px}#campaign-content[data-page=buildings]>.demolish-all{min-height:44px;font-size:11px}}@media (orientation:portrait) and (height<=640px){#campaign-content[data-page=buildings]>.camp-legend{display:none}}#campaign-content[data-page=buildings]{isolation:isolate;background:#7f9e59;display:block;position:relative;overflow:hidden;padding:0!important}#campaign-content[data-page=buildings]>.camp-workspace{display:block;position:absolute;inset:0}#campaign-content[data-page=buildings] .camp-map-viewport{box-shadow:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#8baa64;border:0;border-radius:0;position:absolute;inset:0;margin:0!important}#campaign-content[data-page=buildings] .camp-map-viewport.grabbing,#campaign-content[data-page=buildings] .camp-map-viewport.grabbing *{cursor:grabbing}#campaign-content[data-page=buildings] .camp-map{background:radial-gradient(#c2cf88,#7f9e59);width:100%;min-width:960px;height:100%;min-height:640px}.camp-terrain{object-fit:cover;pointer-events:none;width:100%;height:100%;display:block;position:absolute;inset:0}.camp-map.has-terrain>svg{visibility:hidden}.camp-map:after{content:"";pointer-events:none;background:radial-gradient(#0000 45%,#24492633);position:absolute;inset:0}.camp-roads{z-index:0;pointer-events:none}#campaign-content[data-page=buildings] .camp-building{z-index:1;width:clamp(110px,13%,160px)}#campaign-content[data-page=buildings] .camp-building .building-art{position:relative}#campaign-content[data-page=buildings] .camp-building[aria-pressed=true] .building-art:before{content:"";background:#ffe58b33;border:2px solid #ffe6a2;border-radius:50%;height:30%;position:absolute;bottom:2%;left:7%;right:7%;box-shadow:0 0 18px #ffed9a88}#campaign-content[data-page=buildings] .camp-label{color:#fff0cb;background:linear-gradient(#324a39ed,#1d3428ed);border:1px solid #d4b777;border-radius:5px;padding:3px 9px;font-size:12px;box-shadow:0 2px 5px #172a2566}#campaign-content[data-page=buildings] .camp-building.ready .camp-label{background:linear-gradient(#a98637,#795b24);border-color:#ffe7a0}#campaign-content[data-page=buildings] .camp-building.built .camp-label{background:linear-gradient(#41643c,#2b4a32)}#campaign-content[data-page=buildings]>.commander-level-summary{z-index:5;color:#fff0cf;background:linear-gradient(#283d36f5,#152d27f5);border:1px solid #c2a26b;border-radius:10px;flex-wrap:nowrap;gap:12px;max-width:calc(100% - 230px);margin:0;padding:6px 10px;display:flex;position:absolute;top:14px;left:18px;box-shadow:0 3px 12px #142b2777,inset 0 1px #e8d5a333}.camp-rank{white-space:nowrap;align-items:center;gap:8px;display:flex}.camp-rank-icon{color:#ffe0a1;background:linear-gradient(#677c59,#314e3d);border:1px solid #edcf8b;border-radius:50%;place-items:center;width:40px;height:40px;font-size:25px;display:grid}.camp-wallet{color:#ffda81;white-space:nowrap;background:#0b251bcc;border:1px solid #ad8b4d;border-radius:20px;padding:6px 12px}#campaign-content[data-page=buildings] .camp-help{color:#f4db9e;margin:0}#campaign-content[data-page=buildings] .commander-level-summary progress{display:none}.camp-city-title{z-index:2;pointer-events:none;color:#fff3d4;text-shadow:0 2px 3px #28472e;flex-direction:column;gap:3px;display:flex;position:absolute;top:96px;left:24px}.camp-city-title>span{letter-spacing:.15em;font-size:11px}.camp-city-title>small{font-size:12px}#campaign-content[data-page=buildings]>.camp-legend{z-index:3;gap:6px;max-width:calc(100% - 390px);display:flex;position:absolute;bottom:72px;left:18px}#campaign-content[data-page=buildings] .camp-legend-item{color:#f7e8c8;background:#233b2ded;border-color:#c2a26b;box-shadow:0 2px 6px #17332444}#campaign-content[data-page=buildings] .camp-hint{display:none}.camp-map-tools{z-index:3;color:#fff0cf;text-shadow:0 1px 3px #173324;pointer-events:none;align-items:center;gap:10px;font-size:12px;display:flex;position:absolute;bottom:16px;left:18px}.camp-map-tools button{color:#ffe4a7;pointer-events:auto;cursor:pointer;background:linear-gradient(#3c5546,#213d31);border:1px solid #d2b478;border-radius:50%;width:44px;height:44px;font-size:28px;box-shadow:0 3px 8px #17332466}#campaign-content[data-page=buildings] .camp-detail{z-index:5;text-align:left;background:linear-gradient(#fff4dcee,#e8d7b5f5);border:2px solid #c9aa70;border-radius:12px;flex-direction:column;align-items:stretch;gap:12px;width:310px;max-height:min(430px,65%);padding:16px;display:flex;position:absolute;bottom:18px;right:18px;overflow:auto;box-shadow:0 8px 25px #142b2777,inset 0 0 0 2px #fff4db}#campaign-content[data-page=buildings] .camp-detail[hidden]{display:none}#campaign-content[data-page=buildings] .camp-detail-copy{min-height:64px;padding-right:32px;overflow:auto}#campaign-content[data-page=buildings] .camp-detail-head{padding-right:24px}#campaign-content[data-page=buildings] .camp-detail-head h2{font-size:22px}.camp-detail-close{color:#705938;cursor:pointer;background:0 0;border:0;min-width:44px;min-height:44px;font-size:18px;position:absolute;top:6px;right:6px}.camp-current-look{color:#746143;margin-top:8px;font-size:11px;display:block}#campaign-content[data-page=buildings] .camp-detail-actions button{color:#fff1c6;background:linear-gradient(#43845a,#235f3d);border:1px solid #977c3c;border-radius:8px;box-shadow:inset 0 1px #c4d6a855,0 3px #163c2b}#campaign-content[data-page=buildings]>.demolish-all{z-index:4;color:#f1dfbb;background:#243a30e8;border:1px solid #a7956c;border-radius:8px;max-width:205px;min-height:44px;padding:8px 12px;font-size:11px;position:absolute;top:14px;bottom:auto;right:18px}#campaign-content[data-page=buildings]>.demolish-all:disabled{opacity:.55}@media (width<=900px){#campaign-content[data-page=buildings]>.commander-level-summary{gap:8px;max-width:calc(100% - 185px);top:10px;left:10px}#campaign-content[data-page=buildings]>.demolish-all{max-width:160px;top:10px;right:10px}#campaign-content[data-page=buildings] .camp-detail{width:280px;max-height:65%;bottom:10px;right:10px}.camp-city-title{top:95px;left:18px}}@media (orientation:portrait) and (width<=600px){#campaign-content[data-page=buildings]>.commander-level-summary{gap:6px;max-width:none;padding:4px 8px;font-size:11px;top:8px;left:8px;right:8px}.camp-rank{gap:5px}.camp-rank-icon{width:30px;height:30px;font-size:21px}.camp-wallet{padding:5px 8px}#campaign-content[data-page=buildings] .camp-exp{display:none}#campaign-content[data-page=buildings] .camp-help{margin-left:auto}.camp-city-title{background:#254c34bb;border:1px solid #b6b07a77;border-radius:5px;padding:5px 10px;top:78px;left:16px}.camp-city-title>strong{font-size:16px}.camp-city-title>small,.camp-city-title>span{display:none}#campaign-content[data-page=buildings]>.camp-legend{flex-wrap:wrap;max-width:200px;bottom:70px;left:12px}#campaign-content[data-page=buildings]>.demolish-all{max-width:175px;top:auto;bottom:16px;right:12px}.camp-map-tools{bottom:16px;left:12px}.camp-map-tools>span{display:none}#campaign-content[data-page=buildings] .camp-detail{gap:8px;width:auto;max-height:44%;padding:12px;bottom:10px;left:10px;right:10px;overflow:auto}#campaign-content[data-page=buildings] .camp-detail-copy{overflow:auto}#campaign-content[data-page=buildings] .camp-detail-head h2{font-size:19px}#campaign-content[data-page=buildings] .camp-detail-effect{margin:5px 0;font-size:13px}:is(#campaign-content[data-page=buildings]:has(.camp-detail:not([hidden]))>.demolish-all,#campaign-content[data-page=buildings]:has(.camp-detail:not([hidden]))>.camp-legend){display:none}.camp-workspace:has(.camp-detail:not([hidden])) .camp-map-tools{display:none}}@media (orientation:landscape) and (height<=560px){#campaign-content[data-page=buildings]>.commander-level-summary{padding:2px 8px;font-size:11px;top:8px}.camp-rank-icon{width:30px;height:30px;font-size:20px}.camp-city-title{top:73px}.camp-city-title>strong{font-size:20px}.camp-city-title>small{display:none}#campaign-content[data-page=buildings] .camp-detail{width:255px;max-height:none;padding:10px;top:65px;bottom:10px}#campaign-content[data-page=buildings] .camp-detail-head h2{font-size:18px}#campaign-content[data-page=buildings]>.camp-legend{display:none}}#campaign[data-page=buildings] .campaign-pagebar{z-index:10;background:0 0;border:0;gap:0;padding:0;position:absolute;top:20px;left:25px}#campaign[data-page=buildings] #lobby-back{color:#ffe4a7;white-space:nowrap;background:0 0;border:0;flex-shrink:0;justify-content:center;width:44px;min-width:44px;height:44px;padding:0;line-height:1}#campaign[data-page=buildings] #lobby-back span{display:none}#campaign[data-page=buildings] #campaign-content>.commander-level-summary{padding-left:58px}#campaign[data-page=buildings] #campaign-page-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#campaign-content[data-page=buildings]>.commander-level-summary{max-width:calc(100% - 36px);padding-left:58px}#campaign-content[data-page=buildings] .camp-map{min-width:1360px;min-height:960px}.camp-terrain{filter:saturate(.72)brightness(.96)}#campaign-content[data-page=buildings] .camp-detail{background:linear-gradient(#fff4dc,#e8d7b5)}#campaign-content[data-page=buildings] .camp-building:not(.built) .building-art:after{content:"";pointer-events:none;background:#b5954322;border:2px dashed #e4cf8e;border-radius:50%;height:25%;position:absolute;bottom:3%;left:5%;right:5%}#campaign-content[data-page=buildings] .camp-building:not(.built) .building-art :is(img,svg){opacity:.68;filter:saturate(.4)}#campaign-content[data-page=buildings] .camp-building.built .building-art :is(img,svg){filter:drop-shadow(0 4px 3px #273c2466)}.camp-construction-marker{color:#fff5d0;background:#3c4835;border:1px solid #e6d8aa;border-radius:50%;place-items:center;width:28px;height:28px;font-size:17px;display:grid;position:absolute;top:22%;right:4%;box-shadow:0 2px 5px #1b342777}.camp-construction-marker.ready{color:#3d391e;background:linear-gradient(#eed184,#bd9141);border-color:#fff1b8;width:32px;height:32px;font-size:25px;font-weight:700}.camp-find-ready{z-index:4;color:#fff0bf;cursor:pointer;background:linear-gradient(#345c41,#1b3f2c);border:1px solid #f2d08a;border-radius:9px;min-height:48px;padding:8px 16px;font-size:13px;position:absolute;top:16px;right:18px;box-shadow:0 3px 10px #132c2766}.camp-find-ready:disabled{color:#e8e4d0;cursor:default;background:#425642}.camp-pan-hint{z-index:2;color:#f9edcc;pointer-events:none;background:#193b28d9;border-radius:4px;padding:4px 8px;font-size:11px;position:absolute;top:176px;left:24px}.camp-city-title{background:#254c34e8;border:1px solid #b6b07a77;border-radius:5px;padding:5px 10px}.camp-city-title>strong{font-size:20px}.camp-city-title>span,.camp-city-title>small,.camp-pan-hint[hidden]{display:none}.camp-art-dialog .demolish-all{color:#6f3326;background:#eee1cb;border:1px solid #9e7050;width:100%;min-height:44px}@media (width<=900px){#campaign[data-page=buildings] .campaign-pagebar{top:16px;left:17px}#campaign-content[data-page=buildings]>.commander-level-summary{max-width:calc(100% - 20px);padding-left:56px}.camp-find-ready{font-size:12px;top:82px;right:12px}}@media (orientation:portrait) and (width<=600px){#campaign[data-page=buildings] .campaign-pagebar{top:12px;left:10px}#campaign-content[data-page=buildings]>.commander-level-summary{gap:5px;max-width:none;padding-left:46px;padding-right:4px}.camp-rank-icon{display:none}.camp-rank{font-size:11px}.camp-wallet{padding:5px 7px;font-size:11px}.camp-find-ready{min-height:44px;padding:6px 10px;font-size:11px;top:72px;right:10px}.camp-city-title{top:74px;left:12px}.camp-city-title>strong{font-size:13px}.camp-pan-hint{font-size:10px;top:126px;left:12px}#campaign-content[data-page=buildings] .camp-detail{max-height:43%}#campaign-content[data-page=buildings] .camp-building{width:132px}.camp-workspace:has(.camp-detail:not([hidden])) .camp-pan-hint{display:none}}@media (orientation:landscape) and (height<=560px){#campaign[data-page=buildings] .campaign-pagebar{top:10px;left:17px}#campaign-content[data-page=buildings]>.commander-level-summary{padding-left:56px}.camp-find-ready{top:8px;right:10px}.camp-pan-hint{display:none}}#campaign-content[data-page=buildings] .camp-building[aria-pressed=true] .building-art:before{background:#64d9ec33;border:3px solid #b8f5ff;box-shadow:0 0 12px #70e5fb99}#campaign-content[data-page=buildings] .camp-building[aria-pressed=true] .building-art :is(img,svg){filter:drop-shadow(0 0 5px #a6efff)drop-shadow(0 5px 4px #173c3855)}#campaign-content[data-page=buildings] .camp-building[aria-pressed=true] .camp-label{outline-offset:2px;outline:2px solid #b8f5ff}.camp-building[aria-pressed=true]:before{content:"";z-index:4;filter:drop-shadow(0 1px 2px #174a4e);pointer-events:none;border-top:12px solid #c9faff;border-left:8px solid #0000;border-right:8px solid #0000;position:absolute;top:-10px;left:calc(50% - 8px)}#campaign-content[data-page=buildings] .camp-building.ready .building-art :is(img,svg){opacity:.95;filter:saturate(.95)drop-shadow(0 3px 3px #233c2b55)}#campaign-content[data-page=buildings] .camp-building.locked .building-art :is(img,svg){opacity:.55;filter:saturate(.3)}.camp-construction-marker.complete{color:#e5ffdd;background:#2d6646;border-color:#b4d5a2;font-size:16px}.camp-find-ready-group{z-index:4;flex-direction:column;align-items:stretch;gap:5px;max-width:220px;display:flex;position:absolute;top:16px;right:18px}.camp-find-ready-group .camp-find-ready{text-align:center;position:static}.camp-ready-selection{color:#fff0cb;text-align:center;background:#153c2eea;border-radius:4px;padding:4px 8px;font-size:11px}.camp-ready-selection[hidden]{display:none}.camp-next-unlock{background:#e8dfbf;border-left:3px solid #b18a39;padding:10px 12px;font-weight:700}.camp-build-success{z-index:6;white-space:nowrap;color:#fff1b3;pointer-events:none;background:#214c36;border:1px solid #fff1b3;border-radius:7px;padding:5px 10px;font-size:13px;animation:2.4s ease-out forwards camp-success-badge;position:absolute;top:8px;left:50%;transform:translate(-50%);box-shadow:0 3px 12px #132b2588}.camp-building.build-success .building-art{transform-origin:50% 95%;animation:.45s cubic-bezier(.16,.8,.28,1.2) camp-success-pop}@keyframes camp-success-pop{0%{transform:scale(.94)}55%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes camp-success-badge{0%{opacity:0;transform:translate(-50%,8px)}15%,80%{opacity:1;transform:translate(-50%,-12px)}to{opacity:0;transform:translate(-50%,-20px)}}@media (width<=900px){.camp-find-ready-group{max-width:210px;top:82px;right:12px}}@media (orientation:portrait) and (width<=600px){.camp-find-ready-group{max-width:190px;top:72px;right:10px}.camp-ready-selection{padding:4px 6px;font-size:10px}.camp-find-ready-group .camp-find-ready{padding:6px 9px;font-size:11px}}@media (orientation:landscape) and (height<=560px){.camp-find-ready-group{top:8px;right:10px}#campaign-content[data-page=buildings] .camp-detail{gap:10px;height:auto;max-height:calc(100% - 118px);top:auto;bottom:12px}#campaign-content[data-page=buildings] .camp-detail-copy{flex:0 auto}}@media (prefers-reduced-motion:reduce){.camp-building.build-success .building-art,.camp-build-success{animation:none}}#campaign[data-page=buildings] #campaign-message{z-index:8;color:#fff0cb;pointer-events:none;background:#173c2ff5;border:1px solid #c2a26b;border-radius:7px;max-width:min(440px,100% - 36px);margin:0;padding:8px 12px;font-size:12px;line-height:1.5;position:absolute;bottom:76px;left:18px;box-shadow:0 3px 12px #132b2577}#campaign[data-page=buildings] #campaign-message:empty{display:none}.camp-construction-marker.needs-coins{color:#eed9a0;background:#4b5140;border-color:#9f926b;border-radius:14px;width:auto;min-width:46px;padding:0 7px;font-size:12px}#campaign-content[data-page=buildings] .camp-detail-actions .camp-next-ready{color:#fff1c6;background:linear-gradient(#43845a,#235f3d);border-color:#977c3c;min-height:44px;font-size:13px;box-shadow:inset 0 1px #c4d6a855,0 3px #163c2b}.camp-built-status{color:#416047;padding:4px 0;font-size:12px;line-height:1.5;display:block}.camp-label-level{color:#f3e3a5;border-left:1px solid #c7cf9b88;padding-left:5px;font-size:10px}.camp-finder-buttons{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;display:grid}.camp-find-ready-group{width:250px;max-width:250px}.camp-finder-buttons .camp-find-ready,.camp-finder-buttons .camp-find-upgrade{color:#fff0bf;cursor:pointer;background:linear-gradient(#345c41,#1b3f2c);border:1px solid #d0b276;border-radius:8px;min-width:0;min-height:46px;margin:0;padding:7px 8px;font-size:12px;position:static}.camp-finder-buttons button:disabled{color:#e0dfcb;opacity:.7;cursor:default;background:#435343}.camp-build-empty,.camp-upgrade-empty{font-size:11px;font-weight:400;line-height:1.4;display:block}.camp-migration-ack{min-height:44px}@media (orientation:landscape) and (width<=700px){#campaign-content[data-page=buildings] .camp-exp,#campaign-content[data-page=buildings] .camp-rank-icon{display:none}#campaign-content[data-page=buildings] .camp-find-ready-group{width:198px;max-width:198px}}.camp-upgrade-shortfall{color:#8b492f;margin-top:8px;font-size:12px;display:block}.camp-upgrade-preview{color:#365b41;background:#f8edcc;border:1px solid #c2b485;border-radius:6px;flex-direction:column;gap:3px;padding:8px;font-size:12px;line-height:1.4;display:flex}.camp-total-bonus{color:#365b41;font-size:12px;display:block}.camp-max-level{color:#626d45;font-size:13px;display:block}#campaign-content[data-page=buildings] .camp-detail-actions:has([data-camp-action=upgrade]) .camp-next-ready{color:#245540;box-shadow:none;background:#f8efda;border-color:#a9b495}#campaign-content[data-page=buildings] .camp-building:focus-visible{outline-offset:4px;outline:1px dashed #fff4c9}@media (orientation:portrait) and (width<=600px){.camp-find-ready-group{width:198px;max-width:198px}.camp-finder-buttons .camp-find-ready,.camp-finder-buttons .camp-find-upgrade{min-height:44px;padding:6px 4px;font-size:10px}.camp-ready-selection{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#campaign[data-page=buildings] #campaign-message{max-width:calc(100% - 24px);font-size:11px;bottom:140px;left:12px}#campaign[data-page=buildings]:has(.camp-detail:not([hidden])) #campaign-message{bottom:calc(43% + 18px)}}@media (orientation:portrait) and (width<=360px){#campaign-content[data-page=buildings] .camp-city-title{max-width:88px;padding:5px 7px}#campaign-content[data-page=buildings] .camp-city-title>strong{white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}}@media (orientation:landscape) and (height<=560px){#campaign[data-page=buildings] #campaign-message{max-width:calc(100% - 310px);bottom:14px}}@media (orientation:portrait) and (width<=600px){#campaign .campaign-hero{gap:12px;padding:16px}#campaign .campaign-hero-copy{order:0}#campaign .camp-quest{order:1;gap:4px;padding:12px}#campaign .camp-stage{order:2}#campaign .camp-quest button{margin-top:4px}#campaign .campaign-hero-actions{gap:6px;margin-top:10px}#campaign-content[data-page=levels] .world-map-scroll{flex:none;height:auto;min-height:0}#campaign-content[data-page=levels] .world-map{margin:0}}@media (orientation:landscape) and (height<=450px){#campaign-content[data-page=buildings]{padding-top:4px}#campaign-content[data-page=buildings] h1{font-size:18px!important}#campaign-content[data-page=buildings] .commander-level-summary{padding:3px 8px}#campaign-content[data-page=buildings] .camp-legend{margin:3px 0}#campaign-content[data-page=buildings] .camp-map-viewport{margin:4px 0}#campaign-content[data-page=buildings] .camp-detail-actions button{min-height:44px}}@media (width<=480px){.campaign-nav{flex-wrap:wrap;overflow:visible}.campaign-nav button{text-align:center;flex:calc(33.333% - 6px);min-width:0;padding-left:4px;padding-right:4px}}@media (width<=360px){.campaign-brand small{display:none}}#campaign-content[data-page=levels]{gap:0;padding:8px;position:relative}#campaign-content[data-page=levels] .map-toolbar{z-index:3;position:absolute;bottom:16px;right:16px}#campaign-content[data-page=levels] .map-zoom-controls{background:#173a30ed;border:1px solid #b49c68;border-radius:10px;gap:4px;padding:4px;box-shadow:0 3px 10px #10271d88}#campaign-content[data-page=levels] .map-zoom-controls button{width:44px;min-width:44px;height:44px;min-height:44px;padding:0;font-size:18px}@media (orientation:portrait) and (width<=600px){#campaign-content[data-page=levels] .map-toolbar{align-self:flex-end;margin-top:6px;position:static}}#campaign-content[data-page=home] details.campaign-backup{color:#eee9d5;width:fit-content;max-width:100%;box-shadow:none;background:#193a30;border-color:#927f53;margin:12px 0 0;padding:0 12px}#campaign-content[data-page=home] details.campaign-backup summary{color:#f4e7bf}#campaign-content[data-page=home] details.campaign-backup[open]{width:min(100%,600px);padding:0 12px 12px}#campaign-content[data-page=home] details.campaign-backup p{color:#d3e0cf}#campaign-content[data-page=home] details.campaign-backup button{color:#174f70;background:#f1ead5;border:1px solid #b49c68}.summon-event{width:100%;max-width:1260px;margin:0 auto;padding:18px 0 168px}.summon-event-hero{isolation:isolate;background:radial-gradient(at 78% 38%,#ffdf9a3d,#0000 56%),linear-gradient(90deg,#0a231df5 0%,#0a231de0 38%,#0a231d55 66%,#0a231d99 100%),url(../assets/art/battlefield-valley.webp) 50% 55%/cover no-repeat;border:2px solid #c7a35d;border-radius:20px;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);align-items:center;min-height:500px;padding:clamp(22px,3.4vw,46px);display:grid;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #f7dc9533,0 22px 55px #04110dcc}.summon-event-hero:before{content:"";pointer-events:none;background:radial-gradient(at 78% 48%,#f0d18a26,#0000 55%),linear-gradient(#0000 62%,#071b15cc);position:absolute;inset:0}.summon-event-copy{z-index:2;min-width:0;max-width:580px;position:relative}.summon-event-kicker{color:#f0dba6;letter-spacing:.2em;font-size:10px;font-weight:700;line-height:1.6;display:block}#campaign .summon-event-copy h1{color:#fff4cf;text-shadow:0 4px 24px #04110d;letter-spacing:-.025em;margin:8px 0 12px;font-size:clamp(36px,5.4vw,68px);line-height:1.12}.summon-event-lead{color:#d9e4d8;max-width:46ch;margin:0;font-size:15px;line-height:1.7}.summon-event-ribbon{color:#e7e2c9;background:#0c2a23cc;border-left:3px solid #e6c67b;flex-wrap:wrap;gap:6px 14px;width:fit-content;max-width:100%;margin-top:18px;padding:8px 14px;font-size:12px;line-height:1.6;display:flex}.summon-event-ribbon b{color:#ffe8ae}.summon-featured-note{color:#e7e2c9;margin:8px 0 0;font-size:12px;line-height:1.6}.summon-event-facts{flex-wrap:wrap;gap:10px 18px;margin-top:16px;display:flex}.summon-event-fact{color:#c9d8cc;align-items:baseline;gap:5px;font-size:11px;display:flex}.summon-event-fact strong{color:#ffe8ae;font-size:20px;line-height:1}.summon-event-odds{color:#d5e1d4;flex-wrap:wrap;gap:5px 12px;margin-top:10px;font-size:11px;line-height:1.6;display:flex}.summon-odd{align-items:center;gap:4px;display:inline-flex}.summon-odd i{background:currentColor;border-radius:50%;flex:none;width:6px;height:6px}.summon-odd strong{color:#fff0c4;font-weight:700}.summon-odd.odd-legendary{color:#f5d580}.summon-event-note{color:#c9d8cc;margin:14px 0 0;font-size:12px;line-height:1.6}.summon-featured{z-index:1;justify-content:center;align-items:flex-end;gap:clamp(6px,1.1vw,14px);min-height:380px;padding:16px 0 0;display:flex;position:relative}.summon-featured:before{content:"";pointer-events:none;background:radial-gradient(at 50% 62%,#f0d18a2e,#0000 64%);position:absolute;inset:2% 4% 0}.summon-featured-card{isolation:isolate;aspect-ratio:3/4;width:clamp(96px,13vw,170px);transform:translateY(var(--lift,0));background:#123029;border:2px solid #c9ad70;border-radius:16px 16px 6px 6px;margin:0;position:relative;overflow:hidden;box-shadow:0 18px 32px #04110daa,inset 0 0 0 1px #fff3c026}.summon-featured-card:nth-child(2){--lift:-18px;border-color:#f0d18a;width:clamp(112px,15vw,195px);box-shadow:0 0 30px #f0d18a3d,0 18px 32px #04110daa}.summon-featured-art{object-fit:cover;object-position:center 18%;width:100%;height:100%;display:block}.summon-featured-card:after{content:"";pointer-events:none;background:linear-gradient(#0000 52%,#071b15f2 100%);position:absolute;inset:0}.summon-featured-rank{z-index:2;color:#ffe8ae;background:#0b241ecc;border:1px solid #f0d18a;border-radius:99px;padding:2px 7px;font-size:9px;font-weight:700;line-height:1.5;position:absolute;top:7px;right:7px}.summon-featured figcaption{z-index:2;text-align:center;color:#fff3cc;padding:16px 6px 9px;position:absolute;inset:auto 0 0}.summon-featured figcaption strong{font-size:clamp(10px,1.1vw,15px);line-height:1.3;display:block}.summon-featured figcaption small{color:#d9c79a;margin-top:2px;font-size:clamp(8px,.8vw,11px);line-height:1.4;display:block}.summon-featured-stars{color:#f4d580;letter-spacing:1px;margin-top:2px;font-size:clamp(8px,.8vw,11px);display:block}.summon-event-meta{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:16px;margin-top:16px;display:grid}#campaign .summon-event-meta .summon-info{color:#243d31;background:#f4eedb;border:1px solid #b69c63;border-radius:14px;order:0;margin:0;padding:18px 20px;box-shadow:inset 0 0 0 2px #fff9e2,0 5px 16px #04110d55}#campaign .summon-event-meta .summon-info h2{margin:2px 0 10px;font-size:22px}#campaign .summon-event-meta .summon-info h2:focus-visible{outline-offset:4px;outline:3px solid #d5a442}#campaign .summon-event-meta .summon-info .rates{margin:0 0 8px}#campaign .summon-event-meta .summon-rate-note{margin:0}.summon-guide{color:#e8e4d1;background:linear-gradient(150deg,#12362d,#0a241e);border:1px solid #9c8559a6;border-radius:14px;padding:18px 20px;box-shadow:inset 0 0 0 1px #f7dc951f,0 5px 16px #04110d55}#campaign .summon-guide .campaign-kicker{color:#e6cc91}#campaign .summon-guide h2{color:#fff1c9;margin:2px 0 8px;font-size:22px}.summon-guide>p{color:#c9d8cc;margin:0;font-size:12px;line-height:1.7}.summon-guide .summon-rules{border-top:1px solid #bda36e55;margin:10px 0 0;padding-top:4px}#campaign .summon-guide .summon-rules summary{color:#f1dfb3;min-height:44px;font-size:12px}.summon-guide .summon-rules p{color:#c9d8cc;margin:6px 0;font-size:11px;line-height:1.65}.summon-guide-link{color:#f2e4bd;background:#0d2a23;border:1px solid #d0b878;border-radius:8px;min-height:44px;margin-top:8px;padding:6px 12px;font-size:12px;display:none}#campaign .summon-event-dock{z-index:6;padding:10px max(clamp(16px,4vw,56px),env(safe-area-inset-right)) calc(10px + env(safe-area-inset-bottom)) max(clamp(16px,4vw,56px),env(safe-area-inset-left));-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:linear-gradient(#0b241ecf,#04110df7);border-top:1px solid #b69c63;justify-content:space-between;align-items:center;gap:14px;display:flex;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -12px 30px #04110d88}.summon-dock-links{flex-wrap:wrap;gap:6px;min-width:0;display:flex}#campaign .summon-dock-link{color:#e9e1c4;background:0 0;border:1px solid #7f9a7e;border-radius:8px;min-height:44px;padding:6px 12px;font-size:12px}#campaign .summon-dock-link:hover{background:#1b4438}#campaign .summon-event-dock .summon-actions{flex-flow:row;flex:0 460px;gap:10px;min-width:0;max-width:none;margin:0;display:flex}#campaign .summon-event-dock .summon-draw,#campaign .summon-event-dock .summon-draw-ten{text-align:left;letter-spacing:.01em;border-radius:10px;flex:1 1 0;grid-template-rows:auto auto;grid-template-columns:auto minmax(0,1fr);align-content:center;place-items:center start;gap:0 8px;width:auto;min-width:0;max-width:none;min-height:56px;padding:7px 14px;font-size:14px;display:grid}#campaign .summon-event-dock .summon-draw{color:#17332b;background:linear-gradient(110deg,#f3dca4,#c8a55f);border:1px solid #f5e3b0;box-shadow:inset 0 0 0 2px #8f6b2d33,0 3px #04110d}#campaign .summon-event-dock .summon-draw-ten{color:#fff0c5;background:#1c443a;border:1px solid #c9ad70;box-shadow:inset 0 0 0 1px #f7dc9524,0 3px #04110d}#campaign .summon-event-dock .summon-draw:disabled,#campaign .summon-event-dock .summon-draw-ten:disabled{opacity:.62}.summon-event-dock .summon-draw-icon,.summon-event-dock .summon-draw-ten-icon{color:inherit;grid-row:1/3;align-self:center;font-size:18px}.summon-event-dock .summon-draw-ten-icon{letter-spacing:-1px;font-size:13px}.summon-event-dock .summon-draw-label{white-space:nowrap;font-size:14px;font-weight:700;line-height:1.25}.summon-event-dock .summon-draw-cost{opacity:.9;white-space:nowrap;font-size:10px;line-height:1.35}@media (width<=900px){.summon-event{padding:12px 0 120px}.summon-event-hero{border-radius:16px;grid-template-columns:1fr;min-height:0;padding:20px 16px}#campaign .summon-event-copy h1{margin:6px 0 8px;font-size:clamp(34px,10vw,48px)}.summon-event-lead{font-size:13px}.summon-event-ribbon{margin-top:12px;padding:6px 10px;font-size:11px}.summon-event-facts{gap:8px 14px;margin-top:12px}.summon-event-odds{gap:4px 10px;margin-top:8px;font-size:10px}.summon-event-note{margin-top:10px;font-size:11px}.summon-featured{min-height:0;margin-top:16px;padding-top:0}.summon-featured-card{width:clamp(76px,22vw,120px)}.summon-featured-card:nth-child(2){--lift:-10px;width:clamp(88px,25vw,138px)}.summon-event-meta{grid-template-columns:1fr;gap:10px;margin-top:12px}#campaign .summon-event-meta .summon-info,.summon-guide{padding:14px}#campaign .summon-event-dock{padding:8px max(12px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(12px,env(safe-area-inset-left));flex-direction:column;justify-content:flex-end;align-items:stretch;gap:7px}.summon-dock-links{display:none}#campaign .summon-event-dock .summon-actions{flex:auto;order:1;gap:8px;width:100%}.summon-guide-link{align-items:center;width:fit-content;display:inline-flex}#campaign .summon-event-dock .summon-draw,#campaign .summon-event-dock .summon-draw-ten{min-height:54px;padding:6px 10px}.summon-event-dock .summon-draw-label{font-size:13px}}@media (orientation:landscape) and (height<=450px){.summon-event{padding:8px 0 108px}.summon-event-hero{grid-template-columns:minmax(0,1fr) minmax(0,.9fr);min-height:0;padding:10px 14px}.summon-event-facts,.summon-event-odds{display:none}#campaign .summon-event-copy h1{margin:2px 0 4px;font-size:26px}.summon-event-kicker{font-size:9px}.summon-event-lead{font-size:10px;line-height:1.4}.summon-event-ribbon{margin-top:6px;padding:4px 8px;font-size:10px}.summon-event-facts{gap:4px 12px;margin-top:6px}.summon-event-fact strong{font-size:15px}.summon-event-note{margin-top:5px;font-size:10px}.summon-featured{padding-top:0}.summon-featured-card{width:72px}.summon-featured-card:nth-child(2){--lift:-6px;width:84px}.summon-event-meta{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}#campaign .summon-event-meta .summon-info,.summon-guide{padding:9px 11px}#campaign .summon-event-meta .summon-info h2,#campaign .summon-guide h2{margin:0 0 5px;font-size:15px}#campaign .summon-event-meta .summon-info .rates{gap:4px}.rate{padding:4px 6px}.rate-value{font-size:13px}.rate-stars,.summon-rate-note,.summon-guide>p{display:none}}@media (orientation:landscape) and (height<=450px) and (width>=700px){#campaign .summon-event-dock{padding:7px max(14px,env(safe-area-inset-right)) calc(7px + env(safe-area-inset-bottom)) max(14px,env(safe-area-inset-left));flex-direction:row;align-items:center;gap:10px}.summon-dock-links{flex-wrap:nowrap;order:0;display:flex}#campaign .summon-dock-link{flex:none;min-height:44px;padding:4px 9px;font-size:10px}#campaign .summon-event-dock .summon-actions{flex:0 440px;order:0;gap:8px;width:auto}#campaign .summon-event-dock .summon-draw,#campaign .summon-event-dock .summon-draw-ten{min-height:44px;padding:4px 9px}.summon-event-dock .summon-draw-label{font-size:11px}.summon-event-dock .summon-draw-cost{font-size:9px}.summon-event-dock .summon-draw-icon{font-size:14px}.summon-event-dock .summon-draw-ten-icon{font-size:11px}}@media (width<=560px){.summon-event-facts,.summon-event-ribbon span:last-child{display:none}#campaign .summon-dock-link{padding:4px;font-size:10px}}#campaign[data-page=gacha]{--summon-ink:#e1e8d8;--summon-gold:#e6cc91;--summon-edge:#927f53;--summon-dark:#102b24;--summon-paper:#f1ead5}#campaign[data-page=gacha] .campaign-pagebar{color:var(--summon-ink);border-color:var(--summon-edge);background:linear-gradient(#1c3e33,#102b24)}#campaign[data-page=gacha] #campaign-page-title{color:var(--summon-paper)}#campaign[data-page=gacha] #campaign-page-coins{color:var(--summon-gold)}#campaign[data-page=gacha] #lobby-back{color:var(--summon-paper);border:1px solid var(--summon-edge);background:#193a30;border-radius:8px}#campaign-content[data-page=gacha]{background:radial-gradient(at 70% 20%,#3d624143,#0000 65%),linear-gradient(125deg,#173a30,#0b211c);padding:18px 3vw 130px}.summon-event{--wish-ink:var(--summon-ink);grid-template-columns:84px minmax(0,1fr);gap:14px 22px;max-width:1500px;margin:auto;padding:0;display:grid}.summon-banner-rail{flex-direction:column;gap:14px;padding-top:10px;display:flex}#campaign .summon-banner-preview{background:var(--summon-dark);opacity:.78;border:1px solid #7c8c70;border-radius:6px;width:84px;height:68px;min-height:44px;padding:0;position:relative;overflow:hidden;box-shadow:0 3px 12px #04110d66}#campaign .summon-banner-preview[aria-pressed=true]{opacity:1;border-color:#ffe2a0;box-shadow:0 0 0 2px #b49c68,0 3px 12px #04110d66}.summon-banner-preview img{object-fit:cover;object-position:center 25%;width:100%;height:100%}.summon-banner-preview span{color:#fff4d5;background:#102b24e8;font-size:10px;line-height:1.6;position:absolute;inset:auto 0 0}.summon-event-hero{border:1px solid var(--summon-edge);background:linear-gradient(90deg,#0d2923fa 0%,#12362de8 28%,#12362d66 58%,#12362d22),url(../assets/art/battlefield-valley.webp) 50%/cover;border-radius:12px;min-height:clamp(420px,68vh,740px);padding:38px 4%;display:block;overflow:hidden;box-shadow:inset 0 0 0 3px #d8be7e12,0 12px 40px #04110d66}.summon-event-hero:before{background:repeating-radial-gradient(at 55% 48%,#0000 0 98px,#bd99592b 99px 100px,#0000 101px 140px);inset:0}.summon-event-copy{z-index:3;width:40%;max-width:470px}.summon-event-kicker{border-left:2px solid var(--summon-gold);width:fit-content;color:var(--summon-gold);letter-spacing:.06em;background:#c5a15c14;padding:4px 14px;font-size:12px}#campaign .summon-event-copy h1{color:#fff1c9;font-family:var(--game-font);text-shadow:0 3px 18px #04110d99;letter-spacing:0;text-wrap:balance;margin:12px 0 22px;font-size:clamp(34px,4.1vw,58px);font-weight:650;line-height:1.35}.summon-event-lead{color:var(--wish-ink);font-size:15px;font-weight:700;line-height:1.65}.summon-event-ribbon{color:#d5e0cd;background:#1c4439dd;border-left:3px solid #b49c68;margin-top:18px;padding:8px 12px;font-size:12px;display:block}.summon-event-ribbon b{color:#fff6e3;font-size:16px;display:block}.summon-event-ribbon span{margin-right:8px}.summon-featured-note{color:#c9d8cc;font-size:12px}.summon-event-facts{display:none}.summon-event-odds{color:var(--summon-ink);gap:5px 10px;font-size:12px}.summon-odd.odd-common{color:#c7d4c8}.summon-odd.odd-rare{color:#8fd0ff}.summon-odd.odd-epic{color:#d8b0ff}.summon-odd.odd-legendary,.summon-odd strong{color:#f5d580}.summon-event-note{color:#c9d8cc;font-size:12px}.summon-event-note.is-warning{color:#ffda9c}.summon-pity-note{color:var(--summon-gold);flex:0 0 100%;order:-1;margin:0;font-size:12px;font-weight:650;line-height:1.6}.summon-featured{pointer-events:none;min-height:0;margin:0;padding:0;display:block;position:absolute;inset:0 0 0 36%}.summon-featured:before{display:none}.summon-featured-card,.summon-featured-card:nth-child(2){aspect-ratio:auto;width:62%;height:66%;box-shadow:none;opacity:.82;background:0 0;border:0;border-radius:0;position:absolute;top:0;right:-8%;overflow:visible;transform:none}.summon-featured-card:nth-child(3){height:70%;top:auto;bottom:-4%;right:-5%}.summon-featured-card.is-selected{z-index:2;opacity:1;width:84%;height:100%;inset:3% auto 0 -5%}.summon-featured-art{object-fit:cover;object-position:center top;width:100%;height:100%;-webkit-mask-image:linear-gradient(90deg,#0000,#000 17% 85%,#0000),linear-gradient(#0000,#000 25% 78%,#0000);mask-image:linear-gradient(90deg,#0000,#000 17% 85%,#0000),linear-gradient(#0000,#000 25% 78%,#0000);-webkit-mask-composite:source-in;mask-composite:intersect}.summon-featured-card:after,.summon-featured-rank,.summon-featured figcaption{display:none}.summon-featured-card.is-selected figcaption{text-align:center;text-shadow:0 2px 8px #18252b;padding:0;display:block;inset:auto 2% 8% 10%}.summon-featured figcaption strong{color:#fff;font-size:clamp(28px,4vw,52px)}.summon-featured figcaption small{color:#fff5df;font-size:13px}.summon-featured-stars{color:#ffd560;font-size:18px}.summon-event-meta{background:0 0;border:0;border-radius:0;grid-column:2;margin:0;padding:0;display:block}.summon-event-meta>summary{width:fit-content;min-height:44px;color:var(--summon-gold);cursor:pointer;align-content:center;font-size:12px}.summon-event-meta[open]{padding-bottom:20px}#campaign .summon-event-meta .summon-info,.summon-event-meta .summon-guide{margin-top:10px}#campaign .summon-event-dock{padding:12px 4vw calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--summon-edge);background:linear-gradient(#193a30f5,#0b211cfa);flex-wrap:wrap;justify-content:space-between;gap:6px 16px;box-shadow:0 -6px 24px #04110d55}.summon-dock-links{gap:8px;display:flex}#campaign .summon-dock-link{min-height:36px;color:var(--summon-paper);background:#193a30;border:1px solid #7f916e;border-radius:8px;padding:4px 20px;font-size:12px}#campaign .summon-dock-link:hover{border-color:var(--summon-gold);background:#2b5140}#campaign .summon-event-dock .summon-actions{flex:0 560px;gap:16px}#campaign .summon-event-dock .summon-draw,#campaign .summon-event-dock .summon-draw-ten{color:#fff1c9;text-align:center;background:linear-gradient(#294f40,#193a30);border:1px solid #b49c68;border-radius:10px;grid-template-columns:24px minmax(0,1fr);justify-items:center;min-height:54px;padding:7px 24px;box-shadow:inset 0 0 0 2px #f5d99812,0 3px #04110d88}#campaign .summon-event-dock .summon-draw-ten{color:#243d31;background:linear-gradient(#edcf8d,#c4a05c);border-color:#f4d997;box-shadow:inset 0 0 0 2px #fff2c833,0 3px #04110d88}#campaign .summon-event-dock .summon-draw:hover:not(:disabled),#campaign .summon-event-dock .summon-draw-ten:hover:not(:disabled){filter:brightness(1.08)}.summon-event-dock .summon-draw-icon,.summon-event-dock .summon-draw-ten-icon{color:inherit}.summon-event-dock .summon-draw-cost{color:inherit;opacity:1}@media (width<=900px){#campaign-content[data-page=gacha]{padding:12px 16px 130px}.summon-event{grid-template-columns:60px minmax(0,1fr);gap:12px}#campaign .summon-banner-preview{width:60px;height:54px}.summon-event-hero{min-height:460px;padding:22px 5%}.summon-event-copy{width:48%}#campaign .summon-event-copy h1{font-size:36px}.summon-event-lead{font-size:12px}.summon-event-ribbon{margin-top:12px;font-size:11px}#campaign .summon-event-dock{flex-direction:row;align-items:center}#campaign .summon-event-dock .summon-actions{flex:360px;gap:8px;width:auto}#campaign .summon-dock-link{min-height:44px;padding:4px 10px;font-size:10px}}@media (width<=600px) and (orientation:portrait){#campaign-content[data-page=gacha]{padding:12px 12px 166px}.summon-event{grid-template-columns:1fr;gap:12px}.summon-banner-rail{flex-direction:row;gap:12px;padding:2px 4px}.summon-event-hero{background:linear-gradient(#0d2923fa 0%,#12362de8 32%,#12362d44 72%),url(../assets/art/battlefield-valley.webp) 50%/cover;min-height:520px;padding:18px}.summon-event-copy{width:100%}#campaign .summon-event-copy h1{max-width:9em;margin:10px 0;font-size:28px}.summon-event-ribbon,.summon-event-lead,.summon-event-odds{display:none}.summon-featured-note,.summon-event-note{font-size:10px}.summon-featured{inset:175px -5% 0 0}.summon-featured-card.is-selected{width:85%}.summon-event-meta{grid-column:1}#campaign .summon-event-dock{padding:8px 12px calc(8px + env(safe-area-inset-bottom));flex-direction:column;gap:6px}.summon-pity-note{flex:none;width:100%;font-size:11px}.summon-dock-links{order:2;justify-content:center;width:100%}#campaign .summon-dock-link{flex:1;min-height:36px}#campaign .summon-event-dock .summon-actions{flex:none;order:1;width:100%}#campaign .summon-event-dock .summon-draw,#campaign .summon-event-dock .summon-draw-ten{padding:6px 10px}}@media (orientation:landscape) and (height<=450px){#campaign-content[data-page=gacha]{padding:8px 3vw 108px}.summon-event{grid-template-columns:56px minmax(0,1fr);gap:14px}.summon-banner-rail{gap:8px;padding-top:4px}#campaign .summon-banner-preview{width:56px;height:48px}.summon-event-hero{min-height:235px;padding:12px 3%}.summon-event-copy{width:43%}.summon-event-kicker{padding:2px 8px;font-size:9px}#campaign .summon-event-copy h1{overflow-wrap:anywhere;margin:6px 0 10px;font-size:clamp(20px,3vw,30px)}.summon-event-lead{font-size:10px;line-height:1.45}.summon-event-ribbon{margin-top:8px;padding:4px 8px;font-size:9px}.summon-event-ribbon b{font-size:12px}.summon-featured-note,.summon-event-note{margin-top:6px;font-size:9px}.summon-featured{inset:0 0 0 35%}.summon-featured figcaption strong{font-size:28px}.summon-featured figcaption small{font-size:10px}.summon-featured-stars{font-size:12px}#campaign .summon-event-dock{padding:7px 3vw calc(7px + env(safe-area-inset-bottom));gap:10px}#campaign .summon-event-dock .summon-draw,#campaign .summon-event-dock .summon-draw-ten{min-height:44px;padding:4px 10px}}@media (orientation:landscape) and (width<=699px){.summon-dock-links{flex-wrap:nowrap;gap:4px}#campaign .summon-dock-link{white-space:nowrap;padding:4px 7px;font-size:9px}#campaign .summon-event-dock .summon-actions{flex-basis:280px}}.summon-event{font-family:var(--game-font);font-weight:400;line-height:1.65}.summon-event-kicker{letter-spacing:0;font-weight:600;line-height:1.6}.summon-event-lead{font-weight:500;line-height:1.75}.summon-event-ribbon{line-height:1.7}.summon-event-ribbon b{font-weight:650}.summon-featured-note,.summon-event-note{line-height:1.75}.summon-event-note{font-variant-numeric:tabular-nums}.summon-featured figcaption strong{letter-spacing:0;font-weight:650;line-height:1.45}.summon-featured figcaption small{font-weight:500;line-height:1.65}#campaign .summon-dock-link{font-weight:500;line-height:1.5}.summon-event-dock .summon-draw-label{letter-spacing:0;font-size:15px;font-weight:650;line-height:1.5}.summon-event-dock .summon-draw-cost{font-variant-numeric:tabular-nums;font-size:12px;font-weight:500;line-height:1.45}.summon-banner-preview span{font-size:11px;font-weight:500;line-height:1.7}@media (width<=600px) and (orientation:portrait){#campaign .summon-event-copy h1{font-size:28px;line-height:1.4}.summon-featured-note,.summon-event-note{font-size:11px}.summon-event-dock .summon-draw-label{font-size:14px}}@media (orientation:landscape) and (height<=450px){#campaign .summon-event-copy h1{font-size:clamp(20px,3vw,28px);line-height:1.4}.summon-event-lead,.summon-featured-note,.summon-event-note{font-size:11px;line-height:1.6}.summon-event-ribbon{font-size:10px}#campaign .summon-dock-link{font-size:11px}.summon-event-dock .summon-draw-label{font-size:13px}.summon-event-dock .summon-draw-cost{font-size:11px}}#campaign .summon-dock-link{min-height:44px}#campaign .summon-event-dock{padding-left:max(4vw,env(safe-area-inset-left));padding-right:max(4vw,env(safe-area-inset-right))}@media (width<=600px) and (orientation:portrait){#campaign .summon-event-dock{padding-left:max(12px,env(safe-area-inset-left));padding-right:max(12px,env(safe-area-inset-right))}}@media (orientation:landscape) and (height<=450px){#campaign .summon-event-dock{padding-left:max(3vw,env(safe-area-inset-left));padding-right:max(3vw,env(safe-area-inset-right))}}#campaign{color:#eee9d5;background:#172e29}#campaign .campaign-header,#campaign .campaign-nav{background:linear-gradient(#203d35,#142c27);border-color:#836e41}#campaign .campaign-brand{color:#f5e6b7}#campaign .campaign-brand small{color:#b4cbb5}#campaign .campaign-mark{color:#e6d398;background:#0d2922;border:1px solid #b69c5b;box-shadow:inset 0 0 0 2px #274b3d}#campaign .campaign-nav{gap:4px}#campaign .campaign-nav button{color:#d3e0cf;background:#23483a;border:1px solid #577358;border-radius:7px 7px 3px 3px;box-shadow:inset 0 1px #ffffff1f,0 2px #0b201a}#campaign .campaign-nav button[aria-pressed=true]{color:#fff4cc;background:#466d4d;border-color:#d1b872;box-shadow:inset 0 0 0 1px #e3ce8a66,0 2px #0b201a}#campaign .campaign-shell-toggle{color:#e4d5aa;background:0 0;border-color:#927f53}#campaign #campaign-coins{color:#ffedb4;background:#4a381b;border-color:#c6a961;box-shadow:inset 0 1px #fff2}#campaign-content>h1,#campaign-content>h2{color:#f7e8bf;text-shadow:0 2px 3px #071b15}#campaign-content>.campaign-lead,#campaign-content .map-help{color:#d4e0cc}#campaign .campaign-summary p,#campaign .team-summary span,#campaign .rates span,#campaign .campaign-backup{color:#294338;background:#ece5ce;border:1px solid #b69d69;box-shadow:inset 0 0 0 2px #fff6,0 3px #10271d66}#campaign .campaign-backup summary{color:#16577a}#campaign .army-pager button,#campaign .card-filters button,#campaign .map-toolbar button{color:#174f70;background:#e9e4cf;border:1px solid #b49c68;box-shadow:inset 0 1px #fff9e6,0 2px #10271d88}#campaign .card-filters button[aria-pressed=true]{color:#174637;background:#c8dfcb;border-color:#e0c675}#campaign .commander-level-summary{color:#243d31;background:#f1ead5;border-color:#b69c63;box-shadow:inset 0 0 0 2px #fff9e2}#campaign .camp-detail{color:#253c32;background:linear-gradient(#fffdf2,#f4e9ca);border-color:#b49b6a;box-shadow:inset 0 0 0 2px #fff8e4,0 3px #0c211c77}#campaign .camp-detail-head h2{color:#203e30}#campaign .camp-detail-effect,#campaign .camp-detail-status{color:#405d50}#campaign .campaign-hero{border:2px solid #b79c61;box-shadow:inset 0 0 0 3px #ebd59c44,0 8px 20px #071b1688}#app .topbar,#app .missionbar,#app .mobile-tabs{color:#f4e7bf;background:linear-gradient(#23443a,#17332c);border-color:#917a49}#app .brand,#app .missionbar select,#app .phase-indicator{color:#f4e7bf}#app .mobile-tabs button{color:#c9d9ca;border-color:#0000}#app .mobile-tabs button[aria-pressed=true]{color:#fff0bc;background:#3a624b;border-color:#d5ba73}#app .plan-panel,#app .events-panel{background:#eee9d9;border-color:#b6a170}#app .panel-heading,#app .editor-tools{background:#e3ddc8;border-color:#b5a173}#app .battle-controls{background:linear-gradient(#274a3b,#17342b);border-color:#a68c52}#app .control-secondary button{color:#e6e8ce}#app .start-button{color:#24432f;background:#e4d09a;border:1px solid #f4e3b3;box-shadow:0 3px #10291e,inset 0 1px #fff8da}#app .battle-topline,#app .army-dock,#app .battle-vitals{background:#e6e1d0}#app .unit-card{background:#f5f0df;border-color:#c1ae80}@media (prefers-reduced-motion:reduce){#campaign .campaign-nav button{transition:none}}#app{position:relative}.visually-hidden{clip-path:inset(50%)!important;white-space:nowrap!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}#app .play-header{color:#f4e7bf;background:linear-gradient(#23443a,#17332c);border-bottom:1px solid #917a49;flex:0 0 52px;align-items:center;gap:16px;min-width:0;padding:0 12px;display:flex}#app .mission-title{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:15px;overflow:hidden}#app .play-header .phase-indicator{color:#d3dfce;white-space:nowrap;align-items:center;gap:6px;font-size:12px;display:flex}#app #clock{color:#fff0bc;font-variant-numeric:tabular-nums;font-size:20px}#app .play-header #field-info{color:#f4e7bf;border:1px solid #a48e5c66;border-radius:8px;justify-content:center;width:44px;height:44px;padding:0;font-size:26px;display:flex}#app .battle-topline{height:24px;min-height:24px}html[data-shell=desktop] #app .battle-topline{height:44px}#app .army-dock{flex-shrink:0;align-items:center;gap:12px;padding:4px 12px 0;display:flex}#app .army-stats{flex:1;min-width:0}#app .unit-card{background:0 0;border:0;border-right:1px solid #b6a17066;border-radius:0;padding:2px 8px}#app .unit-symbol{border-radius:5px;width:30px;height:30px}#app .unit-amount{font-size:22px}#app .economy{border:0;flex:none;margin:0;padding:0}#app .economy strong{font-size:24px}#app .battle-vitals{flex-basis:26px;padding:2px 12px;font-size:12px}#app .battle-controls{min-height:56px}html[data-shell=mobile] #app .mobile-tabs{left:8px;bottom:calc(6px + env(safe-area-inset-bottom));z-index:4;background:#17332c;border:0;border-radius:8px;justify-content:stretch;gap:0;width:320px;height:44px;margin:0;padding:0;display:flex;position:absolute}html[data-shell=mobile] #app .mobile-tabs:after{display:none}html[data-shell=mobile] #app[data-view] .mobile-tabs{margin-left:0}html[data-shell=mobile] #app .mobile-tabs button{white-space:nowrap;border-radius:6px;flex:1;padding:4px 8px;font-size:12px}html[data-shell=mobile] #app .battle-controls{padding-left:340px}html[data-shell=mobile] #app #edit-plan{display:none}html[data-shell=mobile] #app .battle-topline{height:24px}@media (width<=700px){#app .play-header{gap:8px;padding:0 8px}#app .mission-title{font-size:13px}#app .play-header .phase-indicator{font-size:11px}#app #clock{font-size:17px}#app .unit-card{padding:2px 4px}html[data-shell=mobile] #app .mobile-tabs{border-top:1px solid #917a4966;border-radius:0;flex:0 0 44px;width:auto;position:static}html[data-shell=mobile] #app .battle-controls{padding-left:8px}}@media (orientation:landscape) and (height<=480px){#app .play-header{flex-basis:44px}#app .battle-vitals{flex-basis:22px;font-size:11px}#app .unit-symbol{width:26px;height:26px}}#app .play-header #field-info{color:#fff0bc;background:#315345;border-color:#a48e5c;gap:7px;width:auto;min-width:90px;padding:0 12px;font-size:18px}#app .play-header #field-info>span{font-size:14px}#game-menu-dialog{color:#f5ebce;background:linear-gradient(155deg,#25483a,#142e27);border:1px solid #b59b60;border-radius:14px;width:min(420px,100vw - 24px);padding:20px;box-shadow:0 24px 80px #0009}#game-menu-dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#071a16b8}#game-menu-dialog .dialog-heading{color:#f5ebce;background:0 0;margin-bottom:4px;position:static}#game-menu-dialog .dialog-heading button{color:#d7ddcc}#game-menu-dialog .game-menu-actions{border:0;gap:8px;padding:0}#game-menu-status{color:#becfbb;margin-bottom:8px;font-size:13px}#game-menu-dialog .game-menu-actions button,#game-menu-dialog .menu-exit-confirm button{color:#e5ebd9;text-align:left;background:#294c3d;border:1px solid #708369;border-radius:8px;min-height:48px;padding:10px 16px;font-size:15px}#game-menu-dialog #menu-resume{color:#24432f;background:#e4d09a;border-color:#f4e3b3;font-weight:700}#game-menu-dialog .game-menu-actions .menu-exit{color:#f5c6aa;background:#4a352c;border-color:#bf8c73;margin-top:8px}#game-menu-dialog .menu-exit-confirm{gap:12px;display:grid}#game-menu-dialog .menu-exit-confirm p{color:#d2d9c6;font-size:14px}#game-menu-dialog #menu-exit-confirm{color:#fff0dc;background:#85513c;border-color:#d6a180}.back-game-menu{border:1px solid var(--line);color:var(--blue);margin:4px 0 12px;display:block}@media (orientation:landscape) and (height<=480px) and (width>=560px) and (width<=700px){html[data-shell=mobile] #app .mobile-tabs{left:8px;bottom:calc(6px + env(safe-area-inset-bottom));border:0;border-radius:8px;width:232px;height:44px;position:absolute}html[data-shell=mobile] #app .mobile-tabs button{padding:4px;font-size:11px}html[data-shell=mobile] #app .battle-controls{padding-left:248px}html[data-shell=mobile] #app .start-button{min-width:112px}}@media (orientation:landscape) and (height<=480px){#game-menu-dialog{width:min(620px,100vw - 24px);max-height:calc(100dvh - 16px);padding:12px 18px}#game-menu-dialog .game-menu-actions{grid-template-columns:1fr 1fr;gap:6px;display:grid}#game-menu-status,#game-menu-dialog #menu-resume,#game-menu-dialog .menu-exit{grid-column:1/-1}#game-menu-dialog .game-menu-actions button{min-height:44px;padding:6px 12px}}@media (orientation:landscape) and (height<=350px){#game-menu-dialog{padding:8px 16px}#game-menu-dialog .dialog-heading{margin:0;padding:0}#game-menu-dialog .game-menu-actions{gap:4px}#game-menu-dialog #game-menu-status{margin:0;font-size:12px}#game-menu-dialog .game-menu-actions .menu-exit{margin-top:4px}}#campaign{--lobby-ink:#091c20;--lobby-gold:#d7b978;--lobby-text:#f5edda;--lobby-muted:#b7c9c8;background:var(--lobby-ink);color:var(--lobby-text)}#campaign .campaign-header{background:linear-gradient(#0a1b23f5,#102d32eb);border-bottom:1px solid #b89a5866;flex-shrink:0;min-height:72px;padding:10px clamp(16px,3vw,48px)}#campaign .campaign-header[hidden]{display:none}#campaign .campaign-mark{color:#f3d391;border-color:var(--lobby-gold);background:linear-gradient(145deg,#315a57,#10292e);border-radius:3px;transform:rotate(-4deg)}#campaign .campaign-brand{letter-spacing:.18em;color:#f4e5c0}#campaign .campaign-brand small{letter-spacing:.04em;color:var(--lobby-muted)}#campaign #campaign-coins{color:#f5d88f;background:#0a1c25;border-color:#a68a4f88;border-radius:3px;font-size:13px}#campaign .campaign-shell-toggle{color:#c4d4d3;border-color:#67807b66;border-radius:3px;min-height:44px}#campaign-message{color:#f5d88f;background:#102a30;flex-shrink:0}#campaign-content{background:radial-gradient(at 70% 0,#264b4d,#10282d 65%)}#campaign-content[data-page=home]{scrollbar-width:none;background:linear-gradient(90deg,#071c26d9,#0000 76%),linear-gradient(#0000 35%,#0b202688 77%,#081a23 99%),url(../assets/art/lobby-command-citadel-v1.webp) 50% 38%/cover no-repeat;flex-direction:column;gap:12px;min-height:0;padding:0 clamp(16px,3vw,48px) 12px;display:flex;position:relative}#campaign-content[data-page=home]::-webkit-scrollbar{display:none}#campaign .campaign-hero{min-height:0;box-shadow:none;background:0 0;border:0;border-radius:0;flex:1 0 auto;grid-template-rows:minmax(min-content,1fr) auto;grid-template-columns:minmax(280px,1fr) minmax(240px,.8fr);align-items:end;gap:12px 32px;padding:clamp(12px,2dvh,24px) 0 8px;display:grid;overflow:visible}#campaign .campaign-hero-copy{grid-column:1;align-self:center;max-width:550px}#campaign .campaign-kicker{color:#d7bc82;letter-spacing:.18em;font-size:10px;line-height:1.6}#campaign .campaign-hero-copy h1{white-space:pre-line;letter-spacing:-.025em;text-shadow:0 3px 20px #03141d;margin:12px 0;font-size:clamp(30px,3.6vw,56px);line-height:1.35}#campaign .campaign-hero-copy .lobby-intro{color:#c2d5d4;font-size:14px}.lobby-rank{align-items:center;gap:12px;margin-top:28px;font-size:14px;display:flex}.lobby-level{clip-path:polygon(50% 0,100% 20%,100% 76%,50% 100%,0 76%,0 20%);color:#132d32;background:linear-gradient(135deg,#efdaa0,#a17e37);place-items:center;width:48px;height:54px;font:700 24px Georgia,serif;display:grid}.lobby-rank small{color:var(--lobby-muted);margin:5px 0;font-size:10px;display:block}.lobby-rank progress{accent-color:#d7b978;width:180px;height:4px;display:block}#campaign .campaign-commander-line{color:#b7cac9;font-size:11px}#campaign .camp-stage{grid-area:2/1;max-width:390px;display:block}#campaign .camp-team{justify-content:flex-start;gap:10px;margin:10px 0 0;display:flex}#campaign .camp-team .hero-card.camp-member{width:clamp(64px,10dvh,92px);min-height:0;box-shadow:none;background:0 0;border:0;padding:0}#campaign .camp-team .card-face{aspect-ratio:1;border:1px solid #cfb574;border-radius:4px;padding:0;display:block;box-shadow:0 4px 18px #03131baa}#campaign .camp-team .trading-card-heading,#campaign .camp-team .trading-card-stars,#campaign .camp-team .hero-card-copy{display:none}#campaign .camp-team .trading-card-art{border:0;outline:0;height:100%}#campaign .camp-team .team-card-action{background:0 0;border:0;min-height:44px;margin:0;font-size:0;position:absolute;inset:0}#campaign .camp-team .team-card-action:hover{background:#f5da8c22}#campaign .camp-team .team-card-action:focus-visible{outline-offset:3px;outline:3px solid #ffe2a0}#campaign .camp-quest{background:linear-gradient(110deg,#102a35ed,#0b2028eb);border:1px solid #d1b57977;border-radius:3px;grid-area:2/2;justify-self:end;align-items:stretch;gap:6px;width:min(100%,340px);padding:18px 20px;display:flex;box-shadow:0 10px 30px #03141d55}#campaign .camp-quest h2{color:#fff0cb;margin:4px 0;font-size:20px}#campaign .camp-quest p{color:#b9cccb;font-size:12px}#campaign .camp-quest small{color:#d8bf85;font-size:11px}#campaign .campaign-primary{color:#142e32;letter-spacing:.03em;background:linear-gradient(110deg,#f1d9a0,#c3a05c);border:1px solid #f1dca4;border-radius:2px;min-height:52px;font-weight:700;box-shadow:inset 0 0 0 3px #9b773330,0 3px #071921}#campaign .campaign-primary:hover{filter:brightness(1.1)}.lobby-destinations{flex-shrink:0;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;display:grid}#campaign .lobby-portal{text-align:left;color:#f5e8ca;cursor:pointer;background:linear-gradient(120deg,#24434bec,#0a202bea);border:1px solid #9c946866;border-top:2px solid #bda16a;border-radius:3px;grid-template-columns:40px 1fr;align-items:center;gap:4px 10px;min-height:94px;padding:16px;transition:transform .18s,border-color .18s,background .18s;display:grid;position:relative;box-shadow:inset 0 1px #f0df9c18,0 4px 14px #03141d55}#campaign .lobby-portal:hover{background:linear-gradient(120deg,#365a5f,#18343d);border-color:#eed497;transform:translateY(-3px)}#campaign .lobby-portal{background-color:#102b34}.portal-icon{color:#ddc38c;text-shadow:0 2px 10px #e0c78044;grid-row:1/3;place-items:center;width:38px;height:44px;font-size:28px;display:grid}.lobby-portal strong{font-size:15px}.lobby-portal small{color:#bacccb;font-size:10px;line-height:1.5}.portal-arrow{color:#bba36c;font-size:12px;position:absolute;top:7px;right:9px}.portal-badge{color:#173239;background:#e3c382;border-radius:2px;padding:3px 7px;font-size:10px;position:absolute;top:-10px;right:8px}#campaign-content[data-page=home] details.campaign-backup{background:#071c2388;border:0;border-radius:3px;flex-shrink:0;margin:0;padding:0 12px;font-size:11px}#campaign-content[data-page=home] details.campaign-backup summary{color:#bccdca;font-weight:400}.campaign-pagebar{background:linear-gradient(90deg,#10252f,#1b373b);border-bottom:1px solid #b59c6266;flex-shrink:0;align-items:center;gap:20px;padding:10px clamp(16px,3vw,48px);display:flex}.campaign-pagebar[hidden]{display:none}#lobby-back{color:#ecd9aa;cursor:pointer;background:#132f38;border:1px solid #a68d5788;border-radius:2px;align-items:center;gap:10px;min-height:44px;padding:4px 16px 4px 10px;font-size:26px;display:flex}#lobby-back span{font-size:12px}#campaign-page-title{color:#f4e8ca;margin:0;font-size:20px;line-height:1.4}#campaign-page-coins{white-space:nowrap;color:#f5d88f;margin-left:auto;font-size:13px}#campaign-content[data-page=cards] .army-pager span{color:#c5d5ce}#campaign .hero-card .trading-card-heading h3{color:#233f36}#campaign-content[data-page=gacha]>p:not(.campaign-lead){color:#c7d8d3}@media (width>=1600px){#campaign-content[data-page=home]{padding-left:5vw;padding-right:5vw}}@media (width<=1100px){.lobby-destinations{gap:8px}#campaign .lobby-portal{grid-template-columns:30px 1fr;gap:4px 6px;padding:12px 10px}.portal-icon{width:30px;font-size:24px}.lobby-portal strong{font-size:13px}.lobby-portal small{font-size:9px}}@media (width<=600px){#campaign .campaign-header{min-height:60px;padding:8px 14px}#campaign .campaign-brand{letter-spacing:.1em;font-size:11px}#campaign .campaign-brand small{font-size:9px}#campaign #campaign-coins{padding:8px;font-size:11px}#campaign-content[data-page=home]{background-color:#091e26;background-image:linear-gradient(90deg,#071c26e8,#071c2655 90%),linear-gradient(#0000 35%,#0b202688 77%,#081a23 99%),url(../assets/art/lobby-command-citadel-v1.webp);background-position:90% 0;background-size:auto 650px;padding:0 14px 16px}#campaign .campaign-hero{grid-template-rows:auto auto auto;grid-template-columns:1fr;gap:18px;min-height:0;padding:28px 0 20px}#campaign .campaign-hero-copy{max-width:80%}#campaign .campaign-hero-copy h1{font-size:30px}#campaign .campaign-hero-copy .lobby-intro{max-width:230px;font-size:12px}.lobby-rank{margin-top:20px}.lobby-rank progress{width:140px}#campaign .camp-quest{background:#0c2530ec;order:1;grid-area:2/1;grid-template-columns:minmax(0,1fr) auto;justify-self:stretch;align-items:center;gap:4px 10px;width:100%;padding:14px;display:grid}#campaign .camp-quest h2{font-size:17px}#campaign .camp-quest>:not(button){grid-column:1}#campaign .camp-quest button{grid-area:1/2/5;min-height:64px;margin:0;padding:10px}#campaign .camp-quest p{font-size:11px}#campaign .camp-stage{order:2;grid-area:3/1}#campaign .camp-team .hero-card.camp-member{width:64px}#campaign .camp-team{margin-top:6px}.lobby-destinations{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}#campaign .lobby-portal{grid-template-columns:32px 1fr;min-height:82px;padding:12px}.lobby-portal small{font-size:10px}.portal-levels{grid-column:1/-1}.campaign-pagebar{gap:12px;padding:8px 12px}#campaign-page-title{font-size:17px}#campaign-page-coins{font-size:11px}}@media (orientation:landscape) and (height<=740px){#campaign .campaign-header{min-height:48px;padding:4px 16px}#campaign .campaign-brand small{display:none}#campaign .campaign-hero{grid-template-rows:1fr;grid-template-columns:1fr .8fr;align-items:center;gap:12px;min-height:210px;padding:16px 0}#campaign .campaign-hero-copy{grid-column:1}#campaign .campaign-hero-copy h1{margin:6px 0;font-size:26px;line-height:1.25}#campaign .campaign-hero-copy .lobby-intro{margin:5px 0;font-size:11px}.lobby-rank{margin-top:8px}.lobby-level{width:34px;height:38px;font-size:20px}.lobby-rank small{margin:2px 0}#campaign .camp-stage{display:none}#campaign .camp-quest{grid-area:1/2;gap:3px;max-width:320px;padding:12px}#campaign .camp-quest h2{font-size:17px}#campaign .camp-quest button{min-height:44px}#campaign .lobby-portal{grid-template-columns:24px 1fr;gap:2px 6px;min-height:70px;padding:10px 8px}.portal-icon{width:24px;font-size:22px}.lobby-portal small{display:none}.lobby-portal strong{font-size:12px}.campaign-pagebar{padding:4px 16px}#campaign-page-title{font-size:16px}.campaign-pagebar .campaign-kicker{display:none}}@media (prefers-reduced-motion:reduce){#campaign .lobby-portal{transition:none}#campaign .lobby-portal:hover{transform:none}}@media (width>=601px) and (height>=561px){#campaign .camp-quest{grid-row:1/3;align-self:end}}@media (width>=601px) and (height<=800px){#campaign .campaign-hero-copy h1{margin:6px 0;font-size:clamp(26px,4.8dvh,42px)}#campaign .campaign-hero-copy .lobby-intro{margin:6px 0}.lobby-rank{margin-top:12px}#campaign .campaign-commander-line{margin:6px 0}#campaign .lobby-portal{min-height:76px;padding:10px}}@media (width<=600px){#campaign-content[data-page=home]{gap:10px;padding-bottom:8px}#campaign .campaign-hero{gap:12px;padding:12px 0 0}#campaign .campaign-hero-copy{max-width:100%}#campaign .campaign-hero-copy h1{margin:6px 0;font-size:clamp(22px,3.6dvh,30px)}#campaign .campaign-hero-copy .lobby-intro{max-width:none;margin:6px 0}.lobby-rank{margin-top:10px}#campaign .campaign-commander-line{margin:6px 0}#campaign .camp-quest{padding:10px}#campaign .camp-quest button{min-height:44px}#campaign .camp-team .hero-card.camp-member{width:clamp(44px,7dvh,64px)}#campaign .lobby-portal{min-height:60px;padding:8px}}@media (width<=600px) and (height<=850px) and (orientation:portrait){#campaign-content[data-page=home]{gap:6px}#campaign .campaign-hero{gap:6px;padding-top:6px}#campaign .campaign-hero-copy>.campaign-kicker,#campaign .campaign-hero-copy .lobby-intro,#campaign .lobby-portal small{display:none}#campaign .campaign-hero-copy h1{margin:0 0 6px;font-size:22px;line-height:1.2}.lobby-rank{margin-top:0}.lobby-level{width:34px;height:38px;font-size:20px}#campaign .camp-quest h2{font-size:14px}#campaign .camp-quest{gap:2px 6px;padding:6px 8px}#campaign .lobby-portal{min-height:44px;padding:4px 8px}.lobby-destinations{gap:6px}}@media (width<=700px){#campaign[data-page=home] .campaign-header{flex-wrap:nowrap;gap:5px;padding:6px 8px}#campaign[data-page=home] .campaign-brand{gap:0}#campaign[data-page=home] .campaign-brand>span:last-child{display:none}#campaign[data-page=home] .campaign-actions{gap:4px}#campaign[data-page=home] .campaign-account{max-width:44px;padding-inline:4px}#campaign[data-page=home] #campaign-coins{padding:6px 4px;font-size:10px}#campaign[data-page=home] .campaign-shell-toggle{padding-inline:7px}#campaign[data-page=home] .campaign-shell-toggle [data-shell-label]{display:none}#campaign[data-page=home] .warp-energy-chip>summary{min-width:72px;padding-inline:5px;font-size:11px}}@media (width<=600px) and (height<=740px) and (orientation:portrait){#campaign .camp-stage{display:none}#campaign .campaign-hero{grid-template-rows:auto auto}}@media (orientation:landscape) and (height<=740px){#campaign-content[data-page=home]{gap:6px;padding-bottom:6px}#campaign .campaign-hero{gap:10px;min-height:0;padding:6px 0}#campaign .campaign-hero-copy h1{margin:0 0 6px;font-size:24px;line-height:1.2}#campaign .campaign-hero-copy>.campaign-kicker,#campaign .campaign-hero-copy .lobby-intro{display:none}.lobby-rank{margin-top:0}#campaign .lobby-portal{min-height:44px;padding:4px 8px}#campaign .camp-quest{padding:10px}}@media (width>=601px) and (height>=561px) and (height<=740px){#campaign .campaign-hero{grid-template-rows:1fr;align-items:center}#campaign .camp-stage{display:none}#campaign .camp-quest{grid-row:1;align-self:center}}@media (orientation:landscape) and (height<=460px){#campaign .campaign-hero-copy h1{margin-bottom:4px;font-size:20px;line-height:1.1}#campaign .campaign-commander-line{margin:4px 0;font-size:10px}#campaign .lobby-rank{gap:8px;font-size:12px}#campaign .lobby-level{width:28px;height:32px;font-size:18px}#campaign .lobby-rank small{margin:2px 0}#campaign .lobby-destinations{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}#campaign .lobby-portal{text-align:center;grid-template-columns:1fr;gap:0;min-height:44px;padding:4px;font-size:11px}#campaign .lobby-portal .portal-icon{display:none}#campaign .lobby-portal strong{font-size:11px}#campaign .portal-levels{grid-column:auto}}@media (orientation:landscape) and (height<=340px){#campaign[data-page=home] .campaign-header,#campaign .campaign-hero{padding-block:4px}#campaign .campaign-commander-line{display:none}#campaign .campaign-hero-copy [data-army-shortcut]{margin-top:4px}}@media (width<=600px) and (orientation:landscape) and (height<=740px){#campaign .camp-quest{flex-direction:column;align-items:stretch;gap:2px;padding:8px;display:flex}#campaign .camp-quest h2{overflow-wrap:anywhere;font-size:14px}#campaign .camp-quest p{font-size:10px}#campaign .camp-quest button{min-height:44px;margin-top:4px}}#campaign-content[data-page=cards]{background:radial-gradient(at 80% 10%,#24454b80,#0000 65%),linear-gradient(135deg,#0d232c,#142e33);grid-template-columns:220px minmax(0,1fr);gap:20px;padding:18px clamp(16px,2.5vw,36px);display:grid}.army-roster{border-right:1px solid #c4a56b33;flex-direction:column;gap:14px;min-height:0;padding-right:18px;display:flex}#campaign .army-section-heading{flex-wrap:wrap;align-items:baseline;gap:3px 8px;display:flex}#campaign .army-section-heading .campaign-kicker{letter-spacing:.14em;font-size:9px;line-height:1.2}#campaign .army-section-heading h2{color:#f3e6c8;margin:0;font-size:18px;line-height:1.25}#campaign .army-section-heading p{color:#b4c9c6;flex:0 0 100%;margin:0;font-size:11px;line-height:1.45}#campaign .army-slots{flex-direction:column;gap:8px;margin:0;display:flex}#campaign .army-slots .army-slot span{box-shadow:none;background:0 0;border:0;border-radius:0;margin:0;padding:0}#campaign .army-slot{text-align:left;color:#f4e8ce;cursor:pointer;background:linear-gradient(125deg,#294850,#132c35);border:1px solid #718d8766;border-radius:5px;grid-template-columns:56px minmax(0,1fr);align-items:center;gap:10px;min-height:0;padding:8px;display:grid;position:relative;box-shadow:inset 0 1px #ffffff0a}#campaign .army-slot:hover{border-color:#d7b978}#campaign .army-slot[aria-pressed=true]{background:linear-gradient(125deg,#3c514c,#19353c);border-color:#e1bf78;outline:1px solid #e1bf7855}.army-slot-portrait{object-fit:cover;background:#0d252b;border:1px solid #d6b77777;border-radius:2px;width:56px;height:64px}#campaign .army-slot-copy{min-width:0}#campaign .army-slot strong{color:#f4e8ce;font-size:12px;line-height:1.35;display:inline}#campaign .army-slot small{color:#d9c18c;margin-top:2px;font-size:10px;line-height:1.45;display:block}#campaign .army-slots .army-slot .army-slot-combat{color:inherit}#campaign .army-slots .army-slot-level{color:#a6bebc;margin-top:1px;font-size:10px;line-height:1.4;display:block}#campaign .army-slots .army-slot-number{color:#e3c88d;letter-spacing:.04em;margin-right:4px;font-size:9px;line-height:1.3;display:inline}#campaign .army-slots .army-slot-lv{color:#a6bebc;margin-left:2px;font-size:9px;line-height:1.3;display:none}#campaign .army-slots .army-slot-edit{color:#8fa8a4;opacity:.7;pointer-events:none;font-size:10px;line-height:1;position:absolute;top:6px;right:7px}#campaign .army-slot:hover .army-slot-edit{color:#e3c88d;opacity:1}#campaign .army-roster-note{color:#9cb5b4;margin:0;font-size:10px;line-height:1.5}.army-library{flex-direction:column;gap:10px;min-width:0;min-height:0;display:flex}.army-library-heading{border-bottom:1px solid #8fa69b33;flex-wrap:wrap;flex-shrink:0;align-items:center;gap:8px 12px;min-height:44px;padding-bottom:6px;display:flex}.army-library-title{flex:none;min-width:0}.army-library-title .campaign-kicker{letter-spacing:.14em;font-size:9px;line-height:1.2;display:block}#campaign .army-library-title h2{color:#f3e6c8;margin:1px 0 0;font-size:18px;line-height:1.2}.army-owned-count{color:#cbb786;white-space:nowrap;background:#0d242c;border:1px solid #b79d6344;border-radius:4px;order:3;padding:6px 9px;font-size:11px;line-height:1.4}#campaign-content[data-page=cards] .card-filters{border:0;flex-wrap:wrap;order:2;justify-content:flex-end;gap:4px;margin:0 0 0 auto;padding:0}#campaign-content[data-page=cards] .card-filters button{color:#bacfcb;box-shadow:none;background:0 0;border:1px solid #0000;border-radius:4px;min-height:44px;padding:8px 14px;font-size:12px}#campaign-content[data-page=cards] .card-filters button[aria-pressed=true]{color:#f5dfa9;background:#bba16a22;border-color:#c5a96a88;outline:none}#campaign-content[data-page=cards] .card-filters .owned-filter{border-color:#728b8266;margin-left:0}#campaign .army-collection{min-height:0;padding:0;position:relative}#campaign .army-collection .card-grid{grid-template-columns:repeat(var(--army-columns,2),var(--thumb-width));place-content:center;align-items:start;gap:14px;height:100%;display:grid}#campaign .army-collection .collection-thumb{transition:transform .16s}#campaign .army-collection .collection-thumb:hover{transform:translateY(-3px)}#campaign .army-collection .card-face{box-shadow:0 6px 18px #03161e66}#campaign .army-collection .collection-thumb .hero-card-copy{background:#16333c;border-color:#607e7266}#campaign .army-collection .thumb-equipped{color:#d1c29e;font-size:11px}#campaign .army-collection .locked .thumb-equipped{color:#b9c6c2}#campaign .army-collection .locked .card-face{opacity:.7}#campaign .army-pager{border-top:1px solid #8fa69b33;flex-shrink:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;padding-top:8px;display:grid}#campaign .army-pager button{color:#e9d7b0;min-height:44px;box-shadow:none;background:#1c3941;border:1px solid #80938988;border-radius:4px;padding:8px 14px}#campaign .army-pager button:disabled{opacity:.4;cursor:not-allowed}.army-pager-status{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:1px;min-width:0;display:flex}.army-drag-hint{color:#c8d8d2;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;max-width:100%;margin:0;font-size:10px;line-height:1.4;overflow:hidden}.army-pager-count{color:#b9cdca;font-size:11px;line-height:1.4}.army-empty{text-align:center;color:#c5d4d0;grid-column:1/-1;padding:20px;font-size:14px}[data-army-drag]{touch-action:none;-webkit-user-select:none;user-select:none}[data-army-drag] img{-webkit-user-drag:none;pointer-events:none}#campaign [data-army-drag] .inspect-card{cursor:grab;touch-action:none}#campaign .army-slot.army-drop-target{outline-offset:2px;background:#48665a;outline:3px solid #ffe0a0;box-shadow:0 0 20px #e8c77844}.army-dragging,.army-dragging *{cursor:grabbing!important}.army-drag-ghost{z-index:10000;pointer-events:none;background:#14343b;border:2px solid #efd59b;border-radius:4px;width:72px;height:96px;position:fixed;overflow:hidden;transform:translate(-50%,-70%)rotate(-6deg);box-shadow:0 12px 28px #0009}.army-drag-ghost img{object-fit:cover;width:100%;height:100%}.army-equip-label{color:#29483c;flex:1 0 100%;align-items:center;gap:8px;font-size:12px;display:flex}.army-equip-slot{color:#29483c;min-width:0;min-height:44px;font:inherit;background:#fffaf0;border:1px solid #b49c68;flex:1;padding:6px}@media (width<=1100px) and (width>=701px){#campaign-content[data-page=cards]{grid-template-columns:200px minmax(0,1fr);gap:18px;padding:16px}.army-roster{padding-right:16px}#campaign .army-slot{grid-template-columns:48px minmax(0,1fr);gap:8px;padding:7px}.army-slot-portrait{width:48px;height:58px}}@media (width<=820px){#campaign-content[data-page=cards] .card-filters{flex:1 0 100%;order:3;justify-content:flex-start;margin-left:0}.army-owned-count{order:2;margin-left:auto}}@media (width<=700px){#campaign-content[data-page=cards]{gap:10px;padding:12px;display:flex}.army-roster{border-bottom:1px solid #c4a56b33;border-right:0;flex-shrink:0;gap:8px;padding:0 0 10px}#campaign .army-section-heading,#campaign .army-roster-note{display:none}#campaign .army-slots{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}#campaign .army-slot{text-align:center;flex-direction:column;align-items:center;gap:4px;min-height:0;padding:7px 4px;display:flex}.army-slot-portrait{width:48px;height:48px}#campaign .army-slot strong{font-size:11px;line-height:1.25}#campaign .army-slot small{margin-top:0;font-size:9px;line-height:1.2}#campaign .army-slots .army-slot-combat,#campaign .army-slots .army-slot-level,#campaign .army-slots .army-slot-edit{display:none}#campaign .army-slots .army-slot-lv{display:inline}#campaign .army-slots .army-slot-number{background:#0d252bcc;border-radius:3px;margin:0;padding:1px 4px;font-size:8px;line-height:1.3;position:absolute;top:4px;left:4px}.army-library{flex:1;gap:8px}.army-library-heading{border-bottom:0;gap:6px 10px;min-height:0;padding-bottom:0}.army-library-title .campaign-kicker{display:none}#campaign .army-library-title h2{margin:0;font-size:17px}.army-owned-count{order:2;margin-left:auto;padding:5px 8px;font-size:10px}#campaign-content[data-page=cards] .card-filters{border:0;flex:1 0 100%;order:3;justify-content:flex-start;gap:3px;margin:0;padding:0}#campaign-content[data-page=cards] .card-filters button{min-height:40px;padding:6px 9px;font-size:11px}#campaign .army-pager{gap:6px;padding-top:6px}#campaign .army-pager button{padding:6px 10px;font-size:11px}#campaign .army-drag-hint{display:none}#campaign .army-pager-count{font-size:10px}}@media (orientation:landscape) and (height<=560px){#campaign-content[data-page=cards]{grid-template-columns:170px minmax(0,1fr);gap:12px;padding:8px 14px;display:grid}.army-roster{border-bottom:0;border-right:1px solid #c4a56b33;gap:6px;padding:0 12px 0 0}#campaign .army-section-heading,#campaign .army-roster-note{display:none}#campaign .army-slots{flex-direction:column;gap:5px;display:flex}#campaign .army-slot{text-align:left;grid-template-columns:40px minmax(0,1fr);gap:8px;min-height:0;padding:6px;display:grid}.army-slot-portrait{width:40px;height:46px}#campaign .army-slot strong{font-size:11px}#campaign .army-slot small{margin-top:1px;font-size:9px;line-height:1.3}#campaign .army-slots .army-slot-level,#campaign .army-slots .army-slot-edit{display:none}#campaign .army-slots .army-slot-lv{display:inline}#campaign .army-slots .army-slot-number{margin:0;font-size:8px;display:block}.army-library{gap:6px}.army-library-heading{gap:4px 8px;min-height:0;padding-bottom:4px}.army-library-title .campaign-kicker{display:none}#campaign .army-library-title h2{margin:0;font-size:16px}.army-owned-count{padding:4px 8px;font-size:10px}#campaign-content[data-page=cards] .card-filters{border:0;gap:3px;padding:0}#campaign-content[data-page=cards] .card-filters button{min-height:40px;padding:4px 10px;font-size:11px}#campaign .army-pager{padding-top:4px}#campaign .army-pager button{min-height:40px;padding:4px 10px;font-size:11px}#campaign .army-drag-hint{display:none}#campaign .army-pager-count{font-size:10px}}@media (prefers-reduced-motion:reduce){#campaign .army-collection .collection-thumb{transition:none}#campaign .army-collection .collection-thumb:hover{transform:none}}.army-power{color:#f3e6c8;background:linear-gradient(145deg,#17323a,#102730);border:1px solid #c4a56b55;border-radius:6px;gap:3px;padding:10px;display:grid}.army-power-heading{justify-content:space-between;align-items:baseline;gap:6px;display:flex}.army-power-kicker{letter-spacing:.12em;color:#c9b07a;font-size:9px}.army-power-total{color:#ffe0a0;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:20px;line-height:1.2}.army-power-parts{color:#b8cbc5;font-variant-numeric:tabular-nums;margin:0;font-size:10px;line-height:1.5}.army-power-units{border-top:1px solid #c4a56b33;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;margin-top:3px;padding-top:5px;display:grid}.army-power-units>span{text-align:center;gap:1px;display:grid}.army-power-units small{color:#a9bfba;font-size:9px;line-height:1.3}.army-power-units strong{color:#f0d99f;font-variant-numeric:tabular-nums;font-size:11px}.army-power-details{color:#a9bfba;margin-top:2px;font-size:10px}.army-power-details summary{cursor:pointer;color:#cbb786;align-content:center;min-height:30px}.army-power-details ul{gap:3px;margin:0;padding-left:14px;line-height:1.5;display:grid}@media (width<=700px){.army-power{order:2;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:2px 10px;padding:7px 9px}.army-power-heading{grid-row:1/3}.army-power-kicker{display:none}.army-power-total{font-size:17px}.army-power-parts{font-size:9px;line-height:1.35}.army-power-units{display:none}.army-power-details{grid-column:1/-1}.army-roster-note{order:3}}@media (orientation:landscape) and (height<=560px){.army-power{padding:6px}.army-power-total{font-size:16px}.army-power-units{display:none}.army-power-parts{font-size:9px;line-height:1.35}}#campaign .commander-detail{--detail-gold:#d9ba78;--detail-muted:#b6cbc7;color:#f4ead3;background:radial-gradient(at 15% 30%,#29494d,#0d252f 70%);border:1px solid #c4a66c;border-radius:8px;width:min(880px,100vw - 32px);box-shadow:0 28px 90px #0009,inset 0 0 0 4px #c4a66c12}#campaign .commander-detail[open]{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:0;height:min(740px,100dvh - 32px);max-height:calc(100dvh - 32px);padding:0;display:grid;overflow:hidden}#campaign .commander-detail::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#03131dde}.commander-detail-header{background:#0c232cc4;border-bottom:1px solid #bb9e5e44;justify-content:space-between;align-items:center;gap:12px;padding:12px 20px;display:flex}#campaign .commander-detail-header .campaign-kicker{display:block}.commander-detail-info{grid-column:auto;min-width:0}#campaign .commander-detail-close{box-sizing:border-box;color:#ead9b4;cursor:pointer;background:#1c3740;border:1px solid #b9a16d66;border-radius:50%;flex:0 0 44px;justify-self:auto;place-items:center;width:44px;min-width:44px;height:44px;min-height:44px;margin:0;padding:0;font-size:18px;line-height:1;display:grid}.commander-detail-close:hover{background:#36504e}#campaign .commander-detail-body{scrollbar-color:#a18b5c #102b33;grid-template-columns:minmax(200px,.85fr) minmax(0,1fr);align-items:start;gap:30px;min-height:0;padding:26px;display:grid;overflow:auto}.commander-detail-art{background:radial-gradient(#8bb4a125,#0000 70%);align-self:start;min-width:0;padding:12px}#campaign .commander-detail-art .hero-card{width:100%;max-width:280px;margin:auto}#campaign .commander-detail-art .card-face{box-shadow:0 12px 32px #04151a99,0 0 30px #c9aa5818}#campaign .commander-detail-info h2{color:#fff0c9;margin:12px 0 8px;font-size:32px;line-height:1.25}.commander-detail-tags{flex-wrap:wrap;gap:6px;display:flex}.commander-detail-tags span{color:#d5c194;background:#16333c;border:1px solid #b8a37255;border-radius:3px;padding:5px 9px;font-size:11px}#campaign .commander-detail-info .commander-detail-state{color:#b9d8c8;margin:8px 0 20px;font-size:12px}.commander-passive,.commander-active-skill,.commander-upgrade-preview{border-top:1px solid #9db3a433;padding:14px 0}.commander-section-label{color:#a9c0bc;letter-spacing:.07em;margin-bottom:8px;font-size:10px;display:block}.commander-passive strong{color:#efd59a;font-size:20px;line-height:1.5;display:block}.commander-passive small,.commander-active-skill small,.commander-upgrade-preview small{color:var(--detail-muted);font-size:11px;line-height:1.6;display:block}.commander-bonus-track{gap:5px;margin-top:8px;display:flex}.commander-bonus-track span{background:#47605e;width:28px;height:4px}.commander-bonus-track .filled{background:#d9ba78}.commander-stat-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;margin-top:2px;display:grid}.commander-stat{text-align:center;background:#132f37;border:1px solid #70898655;border-radius:4px;min-width:0;padding:8px}.commander-stat-label{color:#a9c0bc;font-size:10px;line-height:1.35;display:block}.commander-stat strong{line-height:1.35;display:block;color:#f0e4c8!important;font-size:18px!important}.commander-stat small{color:#9db5af;font-size:9px;line-height:1.4;display:block}.commander-stat-note{margin-top:6px}.commander-level-track{gap:3px;max-width:240px;margin-top:6px;display:flex}.commander-level-track span{background:#47605e;border-radius:1px;flex:1;height:4px}.commander-level-track .filled{background:#d9ba78}.commander-matchup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.commander-matchup-tile{background:#132f37;border:1px solid #70898666;border-radius:4px;padding:10px}.commander-matchup-label{color:#a9c0bc;letter-spacing:.05em;margin-bottom:4px;font-size:10px;display:block}.commander-matchup-tile strong{color:#efd59a;font-size:17px;line-height:1.4;display:block}.commander-matchup-lose strong{color:#e3a98f}.commander-matchup-tile small{color:#b6cbc7;font-size:10px;line-height:1.5;display:block}.commander-upgrade-cost,.commander-upgrade-chance{color:#e5d3a9!important;margin:4px 0!important;font-size:12px!important}#campaign .commander-active-skill h3{color:#f1dfb6;margin:4px 0;font-size:17px}#campaign .commander-detail-info p{color:#d0dfd7;margin:6px 0;font-size:13px;line-height:1.7}#campaign .commander-upgrade-preview p{color:#e5d3a9;font-size:12px}#campaign .commander-detail-dock{background:#0c222b;border-top:1px solid #b79b6266;padding:12px 20px 16px}#campaign .commander-detail-dock .commander-balance{color:#e7c985;font-size:12px}#campaign .commander-action-status{color:#cce1d3;font-size:12px}#campaign .commander-action-status:empty{display:none}#campaign .commander-detail-dock .card-actions{grid-template-columns:minmax(180px,1fr) minmax(130px,.7fr) minmax(160px,.8fr);align-items:center;gap:12px;margin-top:10px;display:grid}#campaign .commander-detail .army-equip-label{color:#b7cdc7;flex-direction:column;align-items:stretch;gap:4px;font-size:10px;display:flex}#campaign .commander-detail .army-equip-slot{color:#f0e4c8;background:#18333c;border-color:#778b7966;border-radius:3px;min-height:44px;font-size:12px}#campaign .commander-detail-dock .card-actions button{border-radius:3px;align-self:end;min-height:48px;padding:8px 12px;font-size:13px;font-weight:700}#campaign .commander-detail-dock [data-card-action=equip]{color:#132e33;background:linear-gradient(110deg,#eed69d,#c1a05e);border-color:#ead29a}#campaign .commander-detail-dock [data-card-action=upgrade]{color:#ead7a6;background:#26443f;border-color:#9b925f}#campaign .commander-detail button:disabled{opacity:.5;cursor:not-allowed}.commander-locked-note{color:#b9ccc6;font-size:12px;line-height:1.6}@media (width<=600px){#campaign .commander-detail{width:calc(100vw - 20px)}#campaign .commander-detail[open]{height:min(820px,100dvh - 20px);max-height:calc(100dvh - 20px)}.commander-detail-header{padding:8px 12px}.commander-detail-header .campaign-kicker{letter-spacing:.08em!important;font-size:9px!important}#campaign .commander-detail-body{grid-template-columns:88px minmax(0,1fr);align-content:start;gap:12px;padding:14px}#campaign .commander-detail-info{display:contents}.commander-detail-art{grid-area:1/1;align-self:start;padding:0}#campaign .commander-detail-art .hero-card{max-width:88px}#campaign .commander-detail-art .card-face{aspect-ratio:4/5;padding:3px;display:block}#campaign .commander-detail-art .trading-card-heading,#campaign .commander-detail-art .trading-card-stars,#campaign .commander-detail-art .hero-card-copy{display:none}#campaign .commander-detail-art .trading-card-art{aspect-ratio:auto;height:100%;margin:0}.commander-detail-identity{grid-area:1/2;min-width:0}#campaign .commander-detail-info h2{margin:8px 0 6px;font-size:24px}#campaign .commander-detail-info .commander-detail-state{margin:6px 0;font-size:11px}.commander-detail-tags{gap:4px}.commander-detail-tags span{padding:4px 6px;font-size:10px}.commander-passive,.commander-active-skill,.commander-upgrade-preview,.commander-matchup{grid-column:1/-1;padding:10px 0}.commander-section-label{margin-bottom:5px}.commander-stat{padding:5px 3px}.commander-stat strong{font-size:15px!important}.commander-stat-label{font-size:9px}.commander-card-stats .commander-stat-note,.commander-card-stats .commander-level-track{display:none}.commander-card-stats{padding-bottom:4px}.commander-matchup-grid{gap:6px}#campaign .commander-detail-dock{padding:10px 12px 12px}#campaign .commander-detail-dock .card-actions{grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}#campaign .commander-detail .army-equip-label{flex-direction:row;grid-column:1/-1;align-items:center;gap:10px}#campaign .commander-detail .army-equip-slot{width:0}#campaign .commander-detail-dock .card-actions button{min-height:44px;padding:6px;font-size:12px}}@media (orientation:landscape) and (height<=560px){#campaign .commander-detail{width:min(880px,100vw - 20px)}#campaign .commander-detail[open]{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.commander-detail-header{padding:4px 12px}#campaign .commander-detail-body{grid-template-columns:minmax(110px,.55fr) minmax(0,1fr);gap:20px;padding:12px 20px}#campaign .commander-detail-info{display:block}#campaign .commander-detail-art .card-face{aspect-ratio:5/7;padding:4%;display:grid}#campaign .commander-detail-art .trading-card-heading,#campaign .commander-detail-art .trading-card-stars{display:flex}#campaign .commander-detail-art .hero-card-copy{display:block}#campaign .commander-detail-art .trading-card-art{aspect-ratio:auto;height:100%}.commander-detail-art{grid-area:auto;align-self:start;padding:0}#campaign .commander-detail-art .hero-card{max-width:150px}#campaign .commander-detail-info h2{margin-top:8px;font-size:24px}#campaign .commander-detail-dock{padding:6px 12px 8px}#campaign .commander-detail-dock .card-actions{grid-template-columns:minmax(140px,1fr) minmax(100px,.7fr) minmax(140px,.8fr);gap:8px;margin-top:4px}#campaign .commander-detail .army-equip-label{flex-direction:column;grid-column:auto;align-items:stretch;gap:2px}#campaign .commander-detail .army-equip-slot{width:auto}#campaign .commander-detail-dock .card-actions button{min-height:44px;font-size:12px}}@media (orientation:portrait) and (height<=650px) and (width<=600px){#campaign .commander-detail-body{gap:12px;padding:12px}#campaign .commander-detail-info h2{font-size:23px}}#campaign-content[data-page=monsters]{background:radial-gradient(at 80% 8%,#24454b80,#0000 62%),linear-gradient(135deg,#0d232c,#142e33)}.bestiary-page{flex-direction:column;gap:14px;width:100%;max-width:1320px;margin:0 auto;display:flex}.bestiary-heading{justify-content:space-between;align-items:flex-end;gap:24px;display:flex}.bestiary-heading-copy{min-width:0;max-width:800px}.bestiary-heading .campaign-kicker{color:#9fc1b8}#campaign-content[data-page=monsters] .bestiary-heading h1{color:#f3e6c8;margin:4px 0 8px;font-size:clamp(26px,4vw,42px);line-height:1.15}.bestiary-heading .campaign-lead{color:#b8cec9;margin:0;font-size:14px}.bestiary-tally{text-align:right;background:#0d242c;border:1px solid #b79d6344;border-radius:4px;flex-shrink:0;grid-template-columns:auto auto;align-items:baseline;gap:2px 8px;padding:12px 16px;display:grid}.bestiary-tally strong{color:#e7c985;font-size:34px;line-height:1}.bestiary-tally span{color:#d4e0dc;font-size:12px}.bestiary-tally small{color:#9cb5b4;letter-spacing:.04em;grid-column:1/-1;font-size:10px}.bestiary-toolbar{border-bottom:1px solid #8fa69b33;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding-bottom:12px;display:flex}.monster-filters{flex-wrap:wrap;gap:6px;display:flex}#campaign .monster-filters button{color:#bacfcb;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:3px;align-items:center;gap:6px;min-height:44px;padding:8px 14px;font-size:12px;display:inline-flex}#campaign .monster-filters button:hover{color:#f0dfb7;border-color:#c5a96a55}#campaign .monster-filters button[aria-pressed=true]{color:#f5dfa9;background:#bba16a22;border-color:#c5a96a88}.monster-filter-icon{color:#d8c08a;font-size:14px;line-height:1}.bestiary-filter-count{color:#cbb786;white-space:nowrap;font-size:11px}#campaign-content[data-page=monsters] .monster-grid{align-items:start;gap:20px;margin-top:2px}#campaign .monster-card{cursor:pointer;transition:transform .16s,filter .16s;position:relative}#campaign .monster-card:hover{transform:translateY(-3px)}#campaign .monster-card .card-face{box-shadow:0 10px 24px #03161e66}#campaign .inspect-monster{z-index:3;cursor:pointer;background:0 0;border:0;border-radius:9px;width:100%;height:100%;padding:0;position:absolute;inset:0}#campaign .inspect-monster:focus-visible{outline-offset:3px;outline:3px solid #e1bf78}.monster-card-cta{color:#cbb786;letter-spacing:.04em;justify-content:flex-end;align-items:center;gap:6px;margin-top:-2px;padding:0 4px;font-size:11px;line-height:1.4;display:flex}#campaign .monster-card:hover .monster-card-cta{color:#f5dfa9}.monster-empty{color:#c5d4d0;text-align:center;grid-column:1/-1;padding:24px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}#campaign .monster-detail{--monster-accent:#d9ba78;--monster-glow:#c9aa5822;color:#f4ead3;background:radial-gradient(at 15% 30%,#29494d,#0d252f 70%);border:1px solid #c4a66c;border-radius:8px;width:min(880px,100vw - 32px);box-shadow:0 28px 90px #0009,inset 0 0 0 4px #c4a66c12}#campaign .monster-detail[open]{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:0;height:min(740px,100dvh - 32px);max-height:calc(100dvh - 32px);padding:0;display:grid;overflow:hidden}#campaign .monster-detail::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#03131dde}#campaign .monster-detail .commander-detail-art{background:radial-gradient(ellipse at center,var(--monster-glow),transparent 70%)}#campaign .monster-detail .commander-detail-tags span:first-child{border-color:var(--monster-accent);color:#f4e8ce;background:#1a3a3b}#campaign .monster-detail .commander-detail-header{border-bottom-color:var(--monster-glow)}.monster-detail .monster-section{border-top:1px solid #9db3a433;padding:14px 0}.monster-matchup-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;display:grid}.monster-matchup-tile{background:#132f37;border:1px solid #70898666;border-radius:4px;padding:10px}.monster-matchup-label{color:#a9c0bc;letter-spacing:.05em;margin-bottom:4px;font-size:10px;display:block}.monster-matchup-tile strong{color:#efd59a;font-size:18px;line-height:1.4;display:block}.monster-matchup-lose strong{color:#e3a98f}.monster-matchup-tile small{color:#b6cbc7;font-size:11px;line-height:1.5;display:block}.monster-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin:0;display:grid}.monster-stat{text-align:center;background:#132f37;border:1px solid #70898655;border-radius:4px;padding:8px}.monster-stat dt{color:#a9c0bc;font-size:10px;line-height:1.4}.monster-stat dd{color:#f0e4c8;margin:3px 0 0;font-size:17px;font-weight:700;line-height:1.3}.monster-stat-note{color:#b6cbc7;margin-top:6px;font-size:10px;line-height:1.6;display:block}.monster-encounter-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.monster-encounter-list li{border-left:3px solid var(--monster-accent);background:#132f37;border-radius:0 4px 4px 0;padding:8px 10px}.monster-encounter-list strong{color:#f1dfb6;font-size:13px;line-height:1.5;display:block}.monster-encounter-list small{color:#b6cbc7;font-size:11px;line-height:1.5}.monster-encounter-empty{color:#b6cbc7;margin:0;font-size:12px}#campaign .monster-tactic-copy{color:#d0dfd7;margin:0;font-size:13px;line-height:1.7}#campaign .monster-detail-dock .card-actions{grid-template-columns:minmax(120px,.6fr) minmax(180px,1fr);gap:10px;margin-top:10px;display:grid}#campaign .monster-detail-dock .card-actions button{border-radius:3px;min-height:48px;padding:8px 12px;font-size:13px;font-weight:700}#campaign .monster-detail-dismiss{color:#e9d7b0;background:#1c3941;border:1px solid #80938988}#campaign .monster-detail-dismiss:hover{background:#36504e}#campaign .monster-detail-mission{color:#132e33;background:linear-gradient(110deg,#eed69d,#c1a05e);border:1px solid #ead29a}@media (width<=600px){#campaign .monster-detail{width:calc(100vw - 20px)}#campaign .monster-detail[open]{height:min(820px,100dvh - 20px);max-height:calc(100dvh - 20px)}.bestiary-heading{flex-direction:column;align-items:flex-start;gap:10px}.bestiary-tally{text-align:left;align-items:baseline;gap:6px;padding:8px 10px;display:flex}.bestiary-tally strong{font-size:22px}.bestiary-tally small{letter-spacing:0}.monster-filters{gap:3px;width:100%}#campaign .monster-filters button{flex:auto;padding:6px 9px;font-size:11px}.bestiary-filter-count{margin-left:auto}.monster-detail .monster-section{grid-column:1/-1;padding:10px 0}.monster-detail .monster-detail-index-tag{display:none}.monster-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#campaign .monster-detail-dock .card-actions{grid-template-columns:1fr 1.3fr;gap:8px;margin-top:8px}#campaign .monster-detail-dock .card-actions button{min-height:44px;padding:6px;font-size:12px}}@media (width<=360px){.bestiary-heading .campaign-lead{display:none}}@media (orientation:landscape) and (height<=560px){#campaign .monster-detail{width:min(880px,100vw - 20px)}#campaign .monster-detail[open]{height:calc(100dvh - 16px);max-height:calc(100dvh - 16px)}.bestiary-heading .campaign-kicker{display:none}.bestiary-heading{align-items:center;gap:12px}#campaign-content[data-page=monsters] .bestiary-heading h1{margin:0;font-size:22px}.bestiary-heading .campaign-lead{display:none}.bestiary-tally{padding:6px 10px}.bestiary-tally strong{font-size:22px}.bestiary-toolbar{padding-bottom:6px}.monster-detail .monster-section{padding:8px 0}.monster-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#campaign .monster-detail-dock .card-actions{margin-top:4px}#campaign .monster-detail-dock .card-actions button{min-height:44px;font-size:12px}}@media (prefers-reduced-motion:reduce){#campaign .monster-card{transition:none}#campaign .monster-card:hover{transform:none}}.pwa-gate{z-index:500;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));color:#eee9d5;font-family:var(--game-font,Tahoma, sans-serif);background:radial-gradient(at 50% 0,#355c48 0,#162f28 58%,#0b241e 100%);place-items:center;display:grid;position:fixed;inset:0;overflow:auto}.pwa-gate[hidden]{display:none}html[data-pwa-gate] #app,html[data-pwa-gate] #campaign{visibility:hidden}.pwa-card{background:linear-gradient(160deg,#193a30,#102b24);border:2px solid #b79c61;border-radius:18px;width:min(560px,100%);padding:24px;box-shadow:inset 0 0 0 3px #ebd59c22,0 18px 50px #061a14aa}.pwa-icon{border:1px solid #d1b872;border-radius:18px;width:72px;height:72px;margin-bottom:12px;display:block}.pwa-kicker{color:#d1b872;letter-spacing:.14em;font-size:11px;font-weight:700;display:block}.pwa-card h1{color:#f5e6b7;margin:4px 0 8px;font-size:clamp(26px,7vw,38px);line-height:1.15}.pwa-card h1:focus{outline:0}.pwa-lead{color:#d3e0cf;margin:0 0 12px;font-size:14px;line-height:1.55}.pwa-status{color:#ffedb4;min-height:1.5em;margin:0 0 10px;font-size:13px}.pwa-steps{color:#263f34;background:#f4eddc;border:1px solid #b49c68;border-radius:10px;margin:10px 0;padding:12px 14px}.pwa-steps h2{color:#203e30;margin:0 0 6px;font-size:15px}.pwa-steps ol{margin:0;padding-left:20px;font-size:13px;line-height:1.65}.pwa-steps b{color:#174f70}#pwa-gate[data-platform=ios] #pwa-android,#pwa-gate[data-platform=android] #pwa-ios{display:none}.pwa-install{color:#24432f;width:100%;min-height:48px;font:700 15px var(--game-font,Tahoma, sans-serif);cursor:pointer;background:#e4d09a;border:1px solid #f4e3b3;border-radius:9px;margin:12px 0 4px;box-shadow:0 3px #0b201a}.pwa-note{color:#b4cbb5;margin:8px 0 0;font-size:12px;line-height:1.5}@media (height<=640px){.pwa-card{padding:18px}.pwa-icon{width:60px;height:60px;margin-bottom:8px}.pwa-lead{margin-bottom:8px;font-size:13px}.pwa-steps{margin:7px 0;padding:9px 12px}.pwa-steps ol{font-size:12px;line-height:1.5}.pwa-note{margin-top:6px;font-size:11px}}@media (height<=520px){.pwa-gate{place-items:start center}.pwa-card{padding:16px 18px}.pwa-icon{width:56px;height:56px;margin-bottom:8px}.pwa-steps{margin:6px 0;padding:8px 10px}.pwa-steps ol{line-height:1.45}}#campaign .campaign-account{color:#f0dcae;white-space:nowrap;background:#132f38;border:1px solid #a68d5788;border-radius:3px;flex-shrink:0;align-items:center;gap:7px;max-width:190px;min-height:40px;padding:6px 12px;font-size:12px;display:inline-flex}#campaign .campaign-account:hover{background:#1b3b42;border-color:#d7b978}#campaign .campaign-account[data-authenticated=true]{color:#fff0cb;border-color:#d7b97899}.campaign-account-icon{color:#d7b978;font-size:14px}#campaign .campaign-account [data-auth-label]{text-overflow:ellipsis;overflow:hidden}dialog.auth-dialog{color:#f4e8ca;background:#081b22;border:1px solid #a88d54;border-radius:4px;width:min(94vw,540px);max-width:540px;max-height:min(92dvh,820px);margin:auto;padding:0;overflow:hidden;box-shadow:0 30px 90px #000a,0 0 0 1px #f3d39122,inset 0 1px #f6e7b52e}dialog.auth-dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#020d12d9}.auth-card{background:radial-gradient(at 85% -10%,#315a5744,#0000 55%),linear-gradient(155deg,#0c252d 0%,#081b22 58%,#06151b 100%);flex-direction:column;max-height:min(92dvh,820px);padding:0;display:flex;position:relative}.auth-card:before{content:"";pointer-events:none;background:linear-gradient(90deg,#d7b97812,#0000 20% 80%,#d7b97812);position:absolute;inset:0}.auth-head{border-bottom:1px solid #c7ab6b33;flex-shrink:0;justify-content:space-between;align-items:flex-start;gap:12px;padding:20px 22px 14px;display:flex;position:relative}.auth-identity{align-items:center;gap:12px;min-width:0;display:flex}.auth-mark{color:#f3d391;letter-spacing:-3px;background:linear-gradient(145deg,#315a57,#10292e);border:1px solid #c1a565;border-radius:3px;flex-shrink:0;place-items:center;width:44px;height:48px;padding-right:3px;font:24px Georgia,serif;display:grid;transform:rotate(-3deg)}.auth-mark span{letter-spacing:0;align-self:start;margin:2px 0 0 1px;font:11px Tahoma}.auth-kicker{color:#d7bc82;letter-spacing:.18em;font-size:9px;font-weight:700;line-height:1.6;display:block}.auth-head h2{color:#fff0cb;margin:2px 0 0;font-size:21px;line-height:1.3}.auth-close{color:#d8c69a;background:0 0;border:1px solid #0000;border-radius:3px;min-width:44px;min-height:44px;padding:0;font-size:18px;line-height:1}.auth-close:hover{background:#ffffff0d;border-color:#a68d5766}.auth-status{color:#d7e7df;background:#102e36;border:1px solid #8fa9a066;border-radius:3px;margin:14px 22px 0;padding:10px 12px;font-size:12px;line-height:1.6;position:relative}.auth-status[data-tone=success]{color:#c8f0cf;background:#143425;border-color:#79a97c99}.auth-status a{color:#ffe2a0;text-decoration:underline}.auth-view{overscroll-behavior:contain;flex-direction:column;gap:14px;padding:16px 22px 22px;display:flex;position:relative;overflow:auto}.auth-view[hidden]{display:none!important}.auth-lead{color:#c4d4d1;margin:0;font-size:13px;line-height:1.65}.auth-lead strong{color:#f5dca0;font-weight:700}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-field{color:#e9dcbb;flex-direction:column;gap:5px;font-size:12px;display:flex}.auth-field>span:first-child{letter-spacing:.02em;font-weight:700}.auth-field input,.auth-field select{color:#f4e8ca;width:100%;min-height:46px;font:inherit;background:#06161d;border:1px solid #6e857f99;border-radius:3px;padding:9px 11px;font-size:14px}.auth-field input:focus,.auth-field select:focus{outline-offset:1px;border-color:#d7b978;outline:2px solid #d7b978}.auth-field select{appearance:none;background-image:linear-gradient(45deg,#0000 50%,#d7b978 50%),linear-gradient(135deg,#d7b978 50%,#0000 50%);background-position:calc(100% - 17px) 20px,calc(100% - 12px) 20px;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:34px}.auth-input-wrap{display:block;position:relative}.auth-input-wrap button{color:#d7c79f;background:#102e36;border:1px solid #6e857f66;border-radius:3px;min-height:36px;padding:4px 8px;font-size:11px;position:absolute;top:50%;right:5px;transform:translateY(-50%)}.auth-check{color:#c8d6d2;cursor:pointer;align-items:center;gap:8px;font-size:12px;line-height:1.4;display:flex}.auth-check input{accent-color:#c3a05c;flex-shrink:0;width:18px;height:18px}.auth-primary,.auth-secondary,.auth-back,.auth-links button,.auth-guest button{font:inherit;cursor:pointer;font-size:13px}.auth-primary{color:#142e32;letter-spacing:.02em;background:linear-gradient(110deg,#f1d9a0,#c3a05c);border:1px solid #f1dca4;border-radius:3px;min-height:50px;padding:10px 16px;font-weight:700;box-shadow:inset 0 0 0 3px #9b773330,0 3px #041218}.auth-primary:hover:not(:disabled){filter:brightness(1.08)}.auth-primary:disabled{opacity:.55;cursor:wait}.auth-secondary{color:#e7d7ae;background:#102e36;border:1px solid #7f948b99;border-radius:3px;justify-content:center;align-items:center;min-height:44px;padding:8px 12px;font-size:12px;text-decoration:none;display:inline-flex}.auth-secondary:hover{background:#173b43;border-color:#d7b978}.auth-danger{color:#ffd0bf;border-color:#b0776699}.auth-danger:hover{background:#3a1d17;border-color:#e3a08b}.auth-links{border-top:1px solid #a68d5733;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding-top:10px;display:flex}.auth-links button,.auth-back,.auth-guest button{color:#e5cf9d;text-underline-offset:3px;background:0 0;border:1px solid #0000;border-radius:3px;min-height:40px;padding:6px 4px;text-decoration:underline}.auth-links button:hover,.auth-back:hover,.auth-guest button:hover{color:#fff0cb}.auth-back{color:#c8d6d2;align-self:flex-start}.auth-guest{text-align:center;flex-direction:column;align-items:center;gap:3px;padding-top:4px;display:flex}.auth-guest small{color:#88a09a;font-size:10px;line-height:1.5}.auth-guest button{color:#a9c5be}.auth-merge-login{color:#a9c5be;text-align:center;text-underline-offset:3px;border:1px solid #0000;border-radius:3px;justify-content:center;align-items:center;min-height:40px;padding:6px 4px;font-size:11px;text-decoration:underline;display:flex}.auth-merge-login:hover{color:#fff0cb}.auth-actions{flex-wrap:wrap;gap:8px;margin-top:2px;display:flex}.auth-actions .auth-secondary{flex:160px}.auth-profile{background:linear-gradient(120deg,#173b43,#0b232b);border:1px solid #a88d5466;border-radius:3px;align-items:center;gap:14px;padding:12px;display:flex}.auth-avatar{color:#f3d391;object-fit:cover;background:linear-gradient(145deg,#315a57,#10292e);border:2px solid #c9ad70;border-radius:50%;flex-shrink:0;place-items:center;width:64px;height:64px;font:700 25px Georgia,serif;display:grid}.auth-profile h3{color:#fff0cb;overflow-wrap:anywhere;margin:0 0 3px;font-size:18px;line-height:1.35}.auth-profile p{color:#b7cac7;margin:0;font-size:11px;line-height:1.5}.auth-details{border:1px solid #a88d5433;border-radius:3px;flex-direction:column;gap:0;margin:0;display:flex;overflow:hidden}.auth-details>div{border-bottom:1px solid #a88d5433;grid-template-columns:108px 1fr;gap:10px;padding:9px 12px;font-size:12px;line-height:1.5;display:grid}.auth-details>div:last-child{border-bottom:0}.auth-details dt{color:#8fa8a2}.auth-details dd{color:#f0e4c8;overflow-wrap:anywhere;margin:0}.auth-badge{color:#c8f0cf;background:#143425;border:1px solid #79a97c88;border-radius:99px;padding:2px 8px;font-size:10px;display:inline-block}.auth-note{color:#9fb5b0;background:#06161d;border-left:2px solid #c3a05c;margin:0;padding:10px 12px;font-size:11px;line-height:1.65}.auth-emblem{color:#f3d391;background:#102e36;border:1px solid #c9ad70;border-radius:50%;place-items:center;width:54px;height:54px;margin:2px auto 0;font-size:24px;display:grid}.auth-view h3{text-align:center;color:#fff0cb;margin:0;font-size:18px}#auth-verify-view .auth-lead{text-align:center}#auth-verify-view .auth-primary,#auth-verify-view .auth-back{align-self:center}#auth-verify-view .auth-primary{width:100%}@media (width<=600px){#campaign .campaign-account{max-width:110px;min-height:38px;padding:5px 8px;font-size:10px}.campaign-account-icon{display:none}dialog.auth-dialog{width:calc(100vw - 20px);max-height:calc(100dvh - 20px)}.auth-card{max-height:calc(100dvh - 20px)}.auth-head{padding:14px 14px 10px}.auth-mark{width:38px;height:42px;font-size:21px}.auth-head h2{font-size:18px}.auth-status{margin:10px 14px 0}.auth-view{gap:11px;padding:12px 14px 16px}.auth-details>div{grid-template-columns:88px 1fr;padding:8px 10px}}@media (width<=380px){#campaign .campaign-brand>span:last-child{display:none}}@media (height<=560px) and (orientation:landscape){dialog.auth-dialog,.auth-card{max-height:calc(100dvh - 12px)}.auth-head{padding:10px 16px 8px}.auth-mark{width:34px;height:38px;font-size:19px}.auth-view{gap:9px;padding:10px 16px 14px}.auth-lead{font-size:12px}.auth-field input,.auth-field select{min-height:42px}}@media (prefers-reduced-motion:reduce){dialog.auth-dialog::backdrop{-webkit-backdrop-filter:none;backdrop-filter:none}}dialog.auth-dialog{color:#fff4dc;background:#122b32;border-color:#8d9e8b;border-radius:16px;width:min(94vw,480px);max-width:480px;font-family:Tahoma,sans-serif}.auth-card{background:linear-gradient(155deg,#1b3940,#10272f);min-height:0}.auth-card:before{display:none}.auth-head{border-bottom-color:#c4d7d024;align-items:center;padding:18px 28px 14px}.auth-mark{width:40px;height:44px;font-size:25px}.auth-kicker{letter-spacing:.14em;color:#e4c98d;font-size:10px}.auth-head h2{font-size:25px;line-height:1.5}.auth-view{scrollbar-width:none;gap:12px;min-height:0;padding:18px 28px 20px}.auth-view::-webkit-scrollbar{display:none}.auth-lead{color:#f1f5ed;font-size:16px;line-height:1.7}.auth-lead>span{color:#c4d7d4;font-size:14px}.auth-form{gap:12px}.auth-field{color:#f5eedb;gap:8px;font-size:14px}.auth-field input,.auth-field select{color:#fff;background:#0b2028;border-color:#98b3ae;border-radius:8px;min-height:50px;padding:11px 12px;font-size:16px}.auth-field input::placeholder{color:#a4bbb8}.auth-input-wrap input{padding-right:72px}.auth-input-wrap button{color:#fff0cb;background:#24464f;border:0;border-radius:6px;min-height:44px;padding:6px 10px;font-size:12px;right:3px}.auth-primary{min-height:52px;box-shadow:none;border-radius:8px;font-size:16px}.auth-login-options{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;display:flex}.auth-check{color:#dbe8e2;min-height:44px;margin:0;font-size:13px}.auth-check input{width:20px;height:20px;margin:0}.auth-text-link{color:#f3dba2;min-height:44px;font:inherit;text-underline-offset:4px;cursor:pointer;background:0 0;border:0;padding:6px 0;font-size:13px;text-decoration:underline}.auth-divider{color:#bdd0cc;align-items:center;gap:12px;font-size:12px;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:#9ab3aa44;flex:1;height:1px}.auth-merge-login{color:#f2f6ee;background:#24424a;border:1px solid #91aaa6;border-radius:8px;gap:8px;min-height:48px;padding:10px 12px;font-size:14px;line-height:1.5;text-decoration:none}.auth-merge-login:hover{color:#fff;background:#30545c;border-color:#d7b978}.auth-external-hint{text-align:center;color:#c2d4cf;margin:-8px 0 0;font-size:12px;line-height:1.6}.auth-links{color:#d6e2dc;justify-content:center;align-items:center;gap:4px 8px;padding-top:12px;font-size:14px}.auth-links button{color:#f3dba2;min-height:44px;font-size:14px}.auth-guest{padding:0}.auth-guest small{color:#b4cac3;font-size:11px}.auth-status{border-radius:8px;flex-shrink:0;margin:16px 28px 0;padding:12px 14px;font-size:13px;line-height:1.7}.auth-status[data-tone=error]{color:#ffe4d3;background:#493027;border-color:#dcaa8e}.auth-status:not([hidden]):has(.auth-status-retry){align-items:center;gap:12px;display:flex}.auth-status-retry{color:#fff0dc;min-height:44px;font:inherit;cursor:pointer;background:#ffffff0d;border:1px solid #ecc6a5;border-radius:6px;flex-shrink:0;padding:6px 10px}.auth-dialog button:focus-visible,.auth-dialog a:focus-visible{outline-offset:3px;outline:3px solid #f5d68d}@media (width<=600px){dialog.auth-dialog{width:calc(100vw - 24px);max-height:calc(100dvh - 24px)}.auth-card{max-height:calc(100dvh - 24px)}.auth-head{padding:16px 20px 12px}.auth-head h2{font-size:23px}.auth-view{gap:12px;padding:16px 20px 20px}.auth-form{gap:12px}.auth-status{margin:12px 20px 0;font-size:12px}}@media (height<=600px){dialog.auth-dialog,.auth-card{max-height:calc(100dvh - 16px)}.auth-head{padding:10px 18px}.auth-head h2{font-size:21px}.auth-view{gap:12px;padding:12px 18px 18px}.auth-status{max-height:30dvh;margin:10px 18px 0;overflow:auto}}html[data-shell] #app .mobile-tabs{display:none}html[data-shell] #app .workspace-layout{grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(0,1fr);min-height:0;display:grid}html[data-shell] #app .workspace-layout>.events-panel{display:none}html[data-shell] #app .plan-panel,html[data-shell] #app .battle-panel{grid-area:1/1;min-width:0;min-height:0;position:relative;inset:auto}html[data-shell] #app[data-mode=planning] .plan-panel{display:flex}html[data-shell] #app[data-mode=planning][data-view] .workspace-layout>.battle-panel,html[data-shell] #app[data-mode=planning][data-view=battle] .plan-panel{display:none}html[data-shell] #app[data-mode=planning][data-view=battle] .workspace-layout>.battle-panel{flex-direction:column;display:flex}html[data-shell] #app[data-mode=planning] .plan-summary{flex-wrap:wrap;padding:6px 12px;display:flex;position:static}html[data-shell] #app[data-mode=planning] .panel-heading h1{font-size:16px}html[data-shell] #app[data-mode=planning] .panel-heading h1:after{content:none}html[data-shell] #app .battle-panel .army-dock,html[data-shell] #app .battle-panel .battle-vitals,html[data-shell] #app .battle-panel .battle-identities{display:none}html[data-shell] #app .battle-topline{height:auto;min-height:32px;padding:6px 12px}html[data-shell] #app #toggle-battle-log{display:none}html[data-shell] #app .planning-brief{color:#3d5747;flex:1;min-height:0;padding:22px 18px;overflow:auto}#app .planning-brief h2{margin:8px 0;font-size:20px}#app .planning-brief p{margin:8px 0;font-size:14px;line-height:1.8}#app .planning-brief .preview-note{background:#e7e2cf;border-left:3px solid #a28d55;padding:10px}html[data-shell] #app[data-mode=planning] .battlefield-shell{aspect-ratio:16/10;flex:0 auto;min-height:0;max-height:40dvh}html[data-shell] #app .battle-panel{overflow:hidden}html[data-shell] #app .battle-controls{justify-content:flex-end;gap:12px;min-height:60px;padding:8px 16px;display:flex}html[data-shell] #app .battle-controls .control-secondary{margin-right:auto}html[data-shell] #app #edit-plan{align-items:center;gap:4px;display:inline-flex}html[data-shell] #app #edit-plan span{display:inline}#app #deploy-battle{color:#eadba9;border:1px solid #a48e5c}html[data-shell] #app:not([data-mode=planning]) .plan-panel,html[data-shell] #app:not([data-mode=planning]) .battle-controls,html[data-shell] #app:not([data-mode=planning]) .battle-topline,html[data-shell] #app:not([data-mode=planning]) .planning-brief{display:none}html[data-shell] #app[data-mode][data-view]:not([data-mode=planning]) .workspace-layout>.battle-panel{flex-direction:column;grid-area:1/1;padding:0;display:flex}html[data-shell] #app:not([data-mode=planning]) .battlefield-shell{aspect-ratio:auto;border-radius:0;flex:1;min-height:0;max-height:none;margin:0}html[data-shell] #app:not([data-mode=planning]) .battle-legend{display:none}html[data-shell] #app .combat-actions{align-items:center;gap:4px;display:flex}html[data-shell] #app .combat-actions:empty{display:none}html[data-shell] #app .combat-actions .start-button{min-width:44px;min-height:44px;box-shadow:none;color:#fff0bc;background:#315345;border:1px solid #a48e5c66;padding:4px 10px;font-size:13px}#app .combat-actions .button-arrow{display:none}html[data-shell] #app .combat-actions #speed{color:#fff0bc}html[data-shell] #app #step-tick{display:none}html[data-shell] #app .battle-journey{color:#d5bc7d}#results-dialog #result-time{color:var(--muted);margin-bottom:14px;font-size:14px}#results-dialog #result-details{text-align:left;border-top:1px solid var(--line);padding-top:6px}#results-dialog #result-details summary{cursor:pointer;color:#245e48;min-height:44px;padding:10px 4px}#results-dialog #result-details .result-stats{text-align:center;margin-top:10px}#results-dialog .result-actions{flex-wrap:wrap;grid-template-columns:1fr 1fr}#results-dialog .result-actions :is(#result-edit,#result-map,#result-deploy,#result-retry){color:#245e48;background:0 0;border-color:#9baea0}#results-dialog .result-actions :is(#result-edit,#result-map,#result-deploy,#result-retry):hover{color:#245e48;background:#e6eadc}#results-dialog .result-actions :is(#result-edit,#result-map,#result-deploy,#result-retry).result-primary{color:#fff;background:#245e48;border-color:#245e48}#results-dialog .result-actions :is(#result-edit,#result-map,#result-deploy,#result-retry).result-primary:hover{background:#194c38}#results-dialog #result-reward{margin-bottom:12px;font-size:13px;line-height:1.6}html[data-shell] #app .plan-summary .reserve-budget{flex-wrap:wrap;align-items:baseline;gap:5px;display:flex}#results-dialog #result-events{border:1px solid var(--line);margin-top:10px}#battle-report-dialog{width:min(760px,100vw - 24px);max-height:calc(100dvh - 24px)}#battle-report-dialog .events-panel{border:0;padding:0;display:block}#battle-report-dialog .events-heading{margin-bottom:12px}#battle-report-dialog #event-log{max-height:55dvh;overflow:auto}#battle-report-dialog #back-to-results{border:1px solid var(--line);margin-top:12px}@media (width>=1000px) and (height>=560px){html[data-shell] #app[data-mode=planning] .workspace-layout{grid-template-columns:minmax(0,7fr) minmax(280px,3fr)}html[data-shell] #app[data-mode=planning][data-view] .plan-panel{grid-area:1/1;display:flex}html[data-shell] #app[data-mode=planning][data-view] .workspace-layout>.battle-panel{border-left:1px solid #b6a170;flex-direction:column;grid-area:1/2;display:flex}html[data-shell] #app[data-mode=planning] #edit-plan{display:none}}@media (width<=600px){html[data-shell] #app .play-header{gap:5px}html[data-shell] #app:not([data-mode=planning]) .play-header .phase-indicator{font-size:10px}html[data-shell] #app:not([data-mode=planning]) .mission-title{font-size:11px}html[data-shell] #app:not([data-mode=planning]) #field-info{width:44px;min-width:44px;padding:0}html[data-shell] #app:not([data-mode=planning]) .play-header #field-info{font-size:22px}html[data-shell] #app:not([data-mode=planning]) #field-info>span{display:none}html[data-shell] #app .combat-actions .start-button{padding:4px 6px;font-size:12px}html[data-shell] #app .battle-controls{flex-wrap:wrap;gap:6px;padding:6px}html[data-shell] #app[data-mode=planning] .start-button{flex:1;min-width:130px}html[data-shell] #app .battle-controls .control-secondary{flex:1 0 100%}html[data-shell] #app #edit-plan{min-height:44px;font-size:12px}html[data-shell] #app .battle-controls #deploy-battle{flex:1}}@media (orientation:landscape) and (height<=480px){html[data-shell] #results-dialog .dialog-heading{min-height:24px}html[data-shell] #results-dialog .result-actions{grid-template-columns:1fr 1fr;margin-top:6px;padding-top:6px;display:grid}html[data-shell] #results-dialog .result-actions button{min-height:44px}html[data-shell] #results-dialog #result-time{margin:2px 0 4px;font-size:12px}html[data-shell] #results-dialog #result-description{margin:2px 0}html[data-shell] #results-dialog #result-reward{margin:4px 0;padding:4px 8px;font-size:12px}html[data-shell] #results-dialog:not(:has(#result-details[open])) .result-actions:before{display:none}}@media (orientation:landscape) and (height<=350px){html[data-shell] #results-dialog[open]{padding:8px 14px}html[data-shell] #results-dialog #result-title{font-size:22px;line-height:1.2}html[data-shell] #results-dialog #result-description{display:none}}@media (orientation:portrait) and (height<=650px){#results-dialog{padding:16px}#results-dialog .result-emblem{width:40px;height:40px;margin-bottom:6px;font-size:26px}#results-dialog #result-title{margin-bottom:4px;font-size:28px}#results-dialog #result-description{margin-bottom:6px;font-size:12px}#results-dialog #result-time{margin-bottom:6px}#results-dialog #result-reward{margin-bottom:6px;padding:5px 8px}#results-dialog .result-actions{margin-top:8px}}.commander-crest{vertical-align:middle;pointer-events:none;background:#102c27;border:1px solid #d9d5b555;border-radius:5px;flex:none;place-items:center;width:24px;height:24px;display:inline-grid}.commander-crest svg{width:19px;height:19px;display:block}.trading-card-art>.commander-crest{z-index:4;position:absolute;top:5%;left:5%}.army-slot-copy>.commander-crest{float:right;margin-left:4px}.portrait-preview-art>.commander-crest{z-index:4;width:32px;height:32px;position:absolute;top:12px;left:12px}.portrait-preview-art>.commander-crest svg{width:24px;height:24px}.char-card .commander-crest{margin-right:6px}.hero-card.locked .commander-crest{display:none}.hero-card .trading-card-art:has(.commander-crest){background:radial-gradient(#536e62,#16382e)}.hero-card .trading-card-art:has(.commander-crest)>.hero-portrait{object-fit:contain}.battle-identities{flex-wrap:wrap;flex-shrink:0;align-items:center;gap:4px 10px;min-width:0;margin:4px 8px 0;font:12px Tahoma,sans-serif;display:flex}.battle-identity-bar{flex-wrap:wrap;gap:4px;display:flex}.battle-identity-options{display:contents}.battle-identity-toggle{display:none}.battle-identity-bar button{color:#f6efda;cursor:pointer;pointer-events:auto;background:#102c27ed;border:1px solid #d9d5b566;border-radius:5px;align-items:center;gap:5px;min-width:44px;min-height:44px;padding:4px 7px;display:flex}.battle-identity-bar button[aria-pressed=true]{outline-offset:1px;outline:2px solid #fff2b8}.battle-identity-bar button:focus-visible{outline:3px solid #fff2b8}.battle-identity-detail{color:#f6efda;overflow-wrap:anywhere;background:#102c27f5;border-radius:5px;flex:1;min-width:160px;max-width:100%;margin:0;padding:4px 8px;line-height:1.5}@media (height<=450px){.battle-identities{gap:2px 6px;margin-top:2px}.battle-identity-bar button{gap:3px;padding:2px 5px;font-size:10px}.battle-identity-bar .commander-crest{width:19px;height:19px}.battle-identity-bar .commander-crest svg{width:15px;height:15px}}.battle-identity-notice{display:none}html[data-shell] #app:not([data-mode=planning]) .battle-panel .battle-identity-notice:not([hidden]){z-index:30;color:#f6efda;background:#102c27f2;border:1px solid #c6ad6f;border-radius:6px;align-items:center;gap:8px;max-width:min(290px,100% - min(150px,45%) - 24px);padding:4px 4px 4px 10px;font:13px/1.35 Tahoma,sans-serif;display:flex;position:absolute;top:8px;left:8px;box-shadow:0 2px 8px #10251f80}.battle-identity-notice span{overflow-wrap:anywhere;min-width:0}.battle-identity-notice button{width:44px;height:44px;color:inherit;cursor:pointer;background:0 0;border:0;border-radius:4px;flex:none;padding:0;font-size:24px}.battle-identity-notice button:focus-visible{outline-offset:-3px;outline:2px solid #fff2b8}.battle-identity-picker{display:none}html[data-shell] #app:not([data-mode=planning]) .battle-panel .battle-identity-picker:not([hidden]){z-index:30;color:#f6efda;background:#102c27f2;border:1px solid #c6ad6f;border-radius:6px;max-width:min(150px,45%);height:44px;padding:0 8px;font:13px Tahoma,sans-serif;display:block;position:absolute;top:8px;right:8px}.battle-identity-picker:focus-visible{outline-offset:2px;outline:3px solid #fff2b8}@media (orientation:landscape) and (height<=480px){.battle-panel{position:relative}.battle-panel>.battle-identities{flex-shrink:0;align-items:center;gap:8px;margin:2px 8px 0;display:flex;position:static}.battle-identity-toggle{color:#f6efda;background:#102c27ed;border:1px solid #d9d5b566;border-radius:6px;min-height:44px;padding:4px 10px;font-size:12px;display:block}.battle-identity-options{display:none}.battle-panel>.battle-identities[data-expanded=true]>.battle-identity-options{background:#142e27;flex:1;align-items:center;gap:8px;min-width:0;padding:0;display:flex;position:static}.battle-identity-toggle,.battle-identity-detail img{flex-shrink:0}.battle-identities .battle-identity-bar{flex-shrink:0;gap:6px}.battle-identities .battle-identity-bar button{min-height:44px;padding:4px 8px;font-size:12px}.battle-panel:has(>.battle-identities:not([hidden])){grid-template-rows:24px minmax(0,1fr) 44px 22px;grid-template-areas:"topline""field""dock""vitals"}html[data-shell=mobile] #app[data-view=battle] .battle-panel:has(>.battle-identities:not([hidden])){display:grid}html[data-shell=desktop] .battle-panel:has(>.battle-identities:not([hidden])){display:grid}.battle-panel:has(>.battle-identities:not([hidden]))>.battle-topline{grid-area:topline}.battle-panel:has(>.battle-identities:not([hidden]))>.battlefield-shell{grid-area:field;min-height:0}.battle-panel:has(>.battle-identities:not([hidden]))>.army-dock{grid-area:dock;min-width:0;padding-left:124px}.battle-panel:has(>.battle-identities:not([hidden]))>.battle-vitals{grid-area:vitals}.battle-panel>.battle-identities:not([hidden]){z-index:1;flex-wrap:nowrap;grid-area:dock;align-items:center;gap:6px;width:max-content;min-width:0;max-width:calc(100% - 16px);margin:0 8px;display:flex;position:static;inset:auto}.battle-panel>.battle-identities[data-expanded=true]:not([hidden]){background:#142e27;width:auto}.battle-panel:has(>.battle-identities[data-expanded=true]:not([hidden]))>.army-dock{visibility:hidden}.battle-panel>.battle-identities[data-expanded=true]>.battle-identity-options{min-width:0;box-shadow:none;border:0;flex-flow:row;flex:1;align-items:center;gap:6px;padding:0;display:flex;position:static;overflow:visible;width:auto!important;max-height:none!important;inset:auto!important}.battle-panel>.battle-identities .battle-identity-bar{flex-wrap:nowrap;gap:4px}.battle-panel>.battle-identities .battle-identity-bar button{gap:3px;padding:2px 4px;font-size:10px}.battle-panel>.battle-identities .battle-identity-detail{flex:1;align-items:center;gap:4px;min-width:0;padding:0;font-size:10px;display:flex}.battle-panel>.battle-identities .battle-identity-toggle,.battle-panel>.battle-identities .battle-identity-detail img{flex-shrink:0}}.skill-cooldown-dock{z-index:6;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;-webkit-user-select:none;user-select:none;background:#102a24d9;border:1px solid #a48e5c88;border-radius:12px;align-items:flex-end;gap:8px;max-width:calc(100% - 24px);padding:6px 10px;display:flex;position:absolute;bottom:10px;left:50%;transform:translate(-50%);box-shadow:0 6px 18px #071a1466,inset 0 1px #f0dfaf22}.skill-cooldown-dock[hidden]{display:none}.skill-cooldown{flex-direction:column;align-items:center;gap:3px;width:58px;min-width:0;display:flex}.skill-cooldown-frame{background:#0b211b;border:2px solid #8d7a4d;border-radius:11px;width:54px;height:54px;transition:border-color .2s,box-shadow .2s;display:block;position:relative;overflow:hidden}.skill-cooldown-portrait{object-fit:cover;object-position:center 12%;width:100%;height:100%;display:block}.skill-cooldown-sweep{background:conic-gradient(from 0deg, #061410cc calc(var(--skill-cd,0) * 1turn), transparent 0);position:absolute;inset:0}.skill-cooldown-seconds{color:#fff3cf;font-variant-numeric:tabular-nums;text-shadow:0 1px 4px #04100c,0 0 6px #04100c;place-items:center;font-size:20px;font-weight:700;display:grid;position:absolute;inset:0}.skill-cooldown[data-cooldown=false][data-ready=true] .skill-cooldown-seconds{color:#ffe9a6;font-size:17px}.skill-cooldown[data-cooldown=false][data-ready=true] .skill-cooldown-frame{border-color:#e3c883;box-shadow:0 0 0 1px #e3c88355,0 0 10px #e3c88355}.skill-cooldown[data-cooldown=false][data-ready=false] .skill-cooldown-frame{filter:saturate(.55);border-color:#6f7d72}.skill-cooldown[data-cooldown=true] .skill-cooldown-frame{border-color:#b09a64}.skill-cooldown[data-planning=true] .skill-cooldown-frame{box-shadow:none;border-color:#b09a64}.skill-cooldown[data-planning=true] .skill-cooldown-seconds{color:#e8d6a3;font-size:15px}.skill-cooldown-name{text-overflow:ellipsis;white-space:nowrap;color:#efe2bd;letter-spacing:.02em;max-width:100%;font-size:10px;line-height:1.2;overflow:hidden}@media (width<=700px){.skill-cooldown-dock{border-radius:10px;gap:6px;padding:5px 8px;bottom:8px}.skill-cooldown{width:46px}.skill-cooldown-frame{border-radius:9px;width:42px;height:42px}.skill-cooldown-seconds{font-size:16px}.skill-cooldown[data-cooldown=false][data-ready=true] .skill-cooldown-seconds{font-size:14px}.skill-cooldown-name{font-size:9px}}@media (orientation:landscape) and (height<=480px){.skill-cooldown-dock{border-radius:8px;gap:5px;padding:3px 6px;bottom:5px}.skill-cooldown{gap:1px;width:38px}.skill-cooldown-frame{border-width:1px;border-radius:7px;width:34px;height:34px}.skill-cooldown-seconds{font-size:13px}.skill-cooldown[data-cooldown=false][data-ready=true] .skill-cooldown-seconds{font-size:11px}.skill-cooldown-name{font-size:8px}}@media (prefers-reduced-motion:reduce){.skill-cooldown-frame{transition:none}}.territory-view{--land:#adc88b;--ink:#263d30;max-width:1100px;color:var(--ink);margin:auto;padding:clamp(16px,3vw,36px)}.territory-intro h1{margin:.2em 0}.territory-intro p{margin:.4em 0 1em}.territory-notice{background:#f8ecd0;border-left:4px solid #bd8e3f;padding:10px 14px;font-size:.9rem}.territory-regions{flex-wrap:wrap;gap:8px;margin:16px 0;display:flex}.territory-region{color:var(--ink);cursor:pointer;background:#eef2dd;border:1px solid #819777;border-radius:8px;padding:10px 16px}.territory-region[aria-pressed=true]{color:#fff;background:#3d6045}.territory-layout{grid-template-columns:minmax(0,2fr) minmax(220px,1fr);gap:16px;display:grid}.territory-grid{background:#577957;border:5px solid #7a6542;border-radius:12px;grid-template-columns:repeat(8,minmax(0,1fr));gap:3px;padding:10px;display:grid;box-shadow:0 5px #4c5034}.territory-tile{aspect-ratio:1;background:var(--land);color:#648c5f;cursor:pointer;border:1px solid #789c69;border-radius:5px;min-width:0;font-size:clamp(18px,3vw,32px)}.territory-tile:not(:disabled):hover,.territory-tile[aria-pressed=true]{outline-offset:-4px;background:#c4d797;outline:3px solid #fff0a5}.territory-tile:focus-visible,.territory-region:focus-visible{outline-offset:2px;outline:3px solid #273e30}.territory-tile:disabled{cursor:not-allowed;opacity:1}.terrain-forest{color:#315f45;background:#6e9d68}.terrain-mountain{color:#626e67;background:#a7aa92}.terrain-water{color:#e0f1e5;background:#80b8b8}.terrain-resource{color:#8d692a;background:#d3c27a}.terrain-npc{color:#753d31;background:#c59c78}.territory-tile.is-city{color:#fff9dc;text-shadow:0 2px #314f34;background:#577d52}.territory-detail{background:#f4f0dc;border:1px solid #c6bd98;border-radius:10px;padding:20px}.territory-detail h2{margin:.3em 0}.territory-current,.territory-choice{font-weight:700}.territory-detail button{max-width:100%}.territory-legend{font-size:.85rem;line-height:1.8}@media (width<=700px){.territory-layout{grid-template-columns:1fr}.territory-view{padding:16px}.territory-grid{gap:2px;padding:6px}.territory-detail{padding:14px}}.territory-grid{isolation:isolate;background:#8aa956 url(./camp-terrain-v1-cmTBcJb_.webp) 50%/100% 100% no-repeat;border:5px solid #6d6040;gap:0;padding:0;overflow:hidden;box-shadow:0 6px #494f34,inset 0 0 35px #263f3070}.territory-tile{aspect-ratio:1.1;color:#fff7cb;text-shadow:0 2px 4px #273927;background:0 0;border:0;border-radius:0;justify-content:center;align-items:center;font-size:clamp(20px,3vw,32px);display:flex;position:relative;overflow:visible}.territory-tile:not(:disabled):hover,.territory-tile[aria-pressed=true]{outline-offset:-5px;background:#f5e39755;border-radius:50%;outline:3px solid #fff2a2}.territory-tile:focus-visible{z-index:3;outline-offset:-4px;outline:3px solid #fff}.territory-tile.terrain-water{color:#dff9ef;text-shadow:0 1px 3px #245866;background:#4c9aa7bb}.territory-tile.terrain-forest,.territory-tile.terrain-mountain{filter:drop-shadow(1px 3px 2px #293f2a99);background:0 0}.territory-tile.terrain-resource,.territory-tile.terrain-npc{color:#ffec9b;filter:drop-shadow(0 2px 3px #382c1b);background:0 0}.territory-tile.is-city{text-shadow:none;z-index:2;background:0 0}.territory-city-art{object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px #21362199);width:120%;height:120%;position:absolute;bottom:6%}.territory-city-label{white-space:nowrap;color:#fff;background:#283b2bdc;border-radius:9px;padding:2px 6px;font-size:clamp(9px,1vw,12px);font-weight:700;position:absolute;bottom:3%}@media (width<=700px){.territory-grid{gap:0;padding:0}.territory-tile{font-size:clamp(18px,5vw,28px)}}.territory-scroll{overscroll-behavior:contain;border:5px solid #6d6040;border-radius:12px;min-width:0;height:clamp(320px,55vh,590px);overflow:auto;box-shadow:0 6px #494f34}.territory-grid{width:1792px;box-shadow:none;background-repeat:repeat;background-size:448px 336px;border:0;border-radius:0;grid-template-columns:repeat(32,56px);position:relative}.territory-tile{aspect-ratio:auto;width:56px;height:56px;font-size:25px}@media (width<=700px){.territory-scroll{height:360px}.territory-grid{grid-template-columns:repeat(32,56px)}}.territory-grid{--tile-size:56px;width:calc(32 * var(--tile-size));grid-template-columns:repeat(32,var(--tile-size));background-color:#a8c17b;background-image:radial-gradient(at 30% 35%,#d5d99b55,#0000 65%),radial-gradient(at 70% 70%,#6b9a5b66,#0000 70%);background-size:calc(var(--tile-size) * 5) calc(var(--tile-size) * 4),calc(var(--tile-size) * 7) calc(var(--tile-size) * 6);background-repeat:repeat}.territory-tile{width:var(--tile-size);height:var(--tile-size);font-size:calc(var(--tile-size) * .45)}.territory-scroll{touch-action:pan-x pan-y;cursor:grab}.territory-scroll.is-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none}.territory-scroll.is-dragging *{pointer-events:none}.territory-tools{flex-wrap:wrap;justify-content:space-between;gap:10px;margin-bottom:12px;display:flex}.territory-search,.territory-zoom{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.territory-search input{color:#263d30;background:#faf7e8;border:1px solid #819777;border-radius:7px;width:78px;min-height:44px;padding:6px}.territory-search button,.territory-tool{color:#263d30;cursor:pointer;background:#eef2dd;border:1px solid #819777;border-radius:7px;min-height:44px;padding:8px 12px}.territory-tool{min-width:44px;font-size:1.2rem}.territory-search-status{flex-basis:100%;font-size:.85rem}@media (width<=700px){.territory-grid{grid-template-columns:repeat(32,var(--tile-size))}}.territory-tile.is-search-result:after{content:"";pointer-events:none;z-index:4;border:3px dashed #fff5a7;border-radius:50%;position:absolute;inset:3px;box-shadow:0 0 0 2px #354c30}.territory-view{--territory-paper:#faf5e5;--territory-line:#c7bb96;max-width:1440px;padding:18px 24px 24px}.territory-intro{flex-wrap:wrap;align-items:baseline;gap:8px 20px;display:flex}.territory-intro .campaign-kicker{letter-spacing:.14em;flex-basis:100%;font-size:.68rem}.territory-intro h1{margin:0;font-size:clamp(1.3rem,2.5vw,1.9rem)}.territory-intro p{color:#52624b;margin:0;font-size:.9rem}.territory-notice{background:#eee6ce;border-left-width:2px;margin:10px 0 12px;padding:6px 10px;font-size:.75rem}.territory-regions{gap:6px;margin:0 0 12px}.territory-region{background:var(--territory-paper);min-height:44px;font-weight:700}.territory-tools{background:var(--territory-paper);border:1px solid var(--territory-line);border-radius:10px;align-items:flex-start;margin-bottom:12px;padding:10px}.territory-search{flex:1;gap:6px;min-width:0}.territory-search input{width:76px;font:inherit;font-size:.85rem}.territory-search-status:empty{display:none}.territory-search-status{color:#4d6047;line-height:1.5}.territory-zoom{flex-shrink:0}.territory-tool:disabled{opacity:.5;cursor:not-allowed}.territory-layout{grid-template-columns:minmax(0,1fr) 280px;align-items:start;gap:14px}.territory-scroll{border-width:3px;border-radius:12px;height:clamp(360px,62vh,720px);box-shadow:0 3px #494f34}.territory-detail{background:var(--territory-paper);border-color:var(--territory-line);padding:18px}.territory-detail h2{font-size:1.15rem}.territory-detail p{font-size:.85rem;line-height:1.6}.territory-detail .campaign-primary{width:100%;min-height:46px;margin-top:10px}.territory-current{border-top:1px solid var(--territory-line);padding-top:12px}.territory-choice{background:#e4edd6;border:1px solid #a8bd90;border-radius:8px;padding:12px}.territory-empty{text-align:center;color:#52624b;gap:8px;padding:22px 6px 10px;display:grid}.territory-empty-icon{color:#7d9563;font-size:2.3rem}.territory-empty p{margin:0;font-weight:400}.territory-help{color:#52624b;margin-top:16px;font-size:.8rem}.territory-help summary{cursor:pointer;align-content:center;min-height:44px;display:list-item}.territory-help p{margin:8px 0;line-height:1.8}.territory-region:focus-visible,.territory-tools button:focus-visible,.territory-search input:focus-visible,.territory-help summary:focus-visible{outline-offset:3px;outline:3px solid #3c654b}@media (width<=800px){.territory-view{padding:12px}.territory-layout{grid-template-columns:1fr}.territory-tools{gap:8px}.territory-search{flex-basis:100%}.territory-zoom{justify-content:flex-end;width:100%}.territory-home{margin-right:auto}.territory-scroll{height:clamp(260px,46dvh,460px)}.territory-detail{padding:14px}.territory-detail h2{margin:0}.territory-detail>p{margin:6px 0}.territory-empty{text-align:left;grid-template-columns:32px 1fr;gap:4px 10px;padding:10px 0}.territory-empty-icon{grid-row:span 2;font-size:1.7rem}.territory-empty p{grid-column:2}.territory-current{padding-top:8px}.territory-intro p{font-size:.8rem}}@media (height<=500px) and (width>=801px){.territory-scroll{height:300px}}.territory-intro h1{color:#fff3d3}.territory-intro p,.territory-help{color:#d7e1d0}.territory-detail .campaign-kicker{color:#6b5935}#campaign-content[data-page=world]{min-height:0;padding:0;display:flex;overflow:hidden}#campaign[data-page=world] .campaign-pagebar{min-height:52px;padding:6px 16px}#campaign[data-page=world] #campaign-message:empty{display:none}.territory-view{isolation:isolate;background:#93aa68;flex:1;min-width:0;max-width:none;min-height:0;margin:0;padding:0;position:relative;overflow:hidden}.territory-layout{margin:0;display:block;position:absolute;inset:0}.territory-scroll{width:100%;height:100%;box-shadow:none;scrollbar-width:none;border:0;border-radius:0;position:absolute;inset:0}.territory-scroll::-webkit-scrollbar{display:none}.territory-grid{background-color:#99b574;background-image:radial-gradient(at 30% 35%,#d5d99b40,#0000 65%),radial-gradient(at 70% 70%,#6b9a5b30,#0000 70%);background-size:340px 290px,490px 370px}.territory-tile svg{pointer-events:none;width:100%;height:100%;overflow:visible}.territory-tile.terrain-forest,.territory-tile.terrain-mountain,.territory-tile.terrain-resource,.territory-tile.terrain-npc{filter:none}.territory-intro{z-index:3;pointer-events:none;text-shadow:0 2px 4px #243c27;display:block;position:absolute;top:16px;left:18px}.territory-intro .campaign-kicker{display:none}#campaign-content .territory-intro h1{color:#fff8df;margin:0;font-size:17px}.territory-intro p{display:none}.territory-regions{z-index:4;background:#213c32ee;border:1px solid #c1aa71;border-radius:7px;gap:0;margin:0;padding:3px;position:absolute;top:50px;left:18px;box-shadow:0 3px 8px #24372f55}.territory-region{color:#e7d8b0;background:0 0;border:0;border-radius:4px;min-height:38px;padding:7px 14px;font-size:12px}.territory-region[aria-pressed=true]{color:#fff8dd;text-shadow:0 1px #594425;background:linear-gradient(#be9c55,#8e6d34)}.territory-notice{z-index:3;color:#e3d9b9;pointer-events:none;background:#203b31dc;border:0;border-radius:4px;max-width:calc(100% - 100px);margin:0;padding:5px 9px;font-size:10px;position:absolute;bottom:12px;left:18px}.territory-tools{z-index:4;background:0 0;border:0;flex-direction:column;align-items:flex-end;gap:8px;max-width:260px;margin:0;padding:0;display:flex;position:absolute;top:16px;right:16px}.territory-search{background:#213c32ee;border:1px solid #baa36c;border-radius:7px;flex:none;gap:4px;padding:5px;box-shadow:0 3px 8px #24372f33}.territory-search input{color:#f6e9c2;background:#152e27;border:1px solid #63715a;border-radius:3px;width:53px;height:34px;min-height:34px;padding:4px;font-size:12px}.territory-search input::placeholder{color:#c5c6a6}.territory-search button{color:#fff7dc;background:#a68746;border-color:#c7ac6b;border-radius:3px;min-height:34px;padding:5px 8px;font-size:11px}.territory-search-status{color:#fff1c9;max-width:230px;font-size:11px}.territory-zoom{gap:5px;width:auto;display:flex}.territory-tool{color:#f4e2ae;background:linear-gradient(#31584a,#1c382f);border:1px solid #b49b62;border-radius:7px;min-width:40px;min-height:40px;padding:6px 10px;box-shadow:0 2px 5px #24372f55}.territory-home{margin:0;font-size:12px}.territory-detail{z-index:4;color:#f5e7c4;background:linear-gradient(145deg,#294b3fef,#172f28f5);border:1px solid #bda36b;border-radius:8px;width:280px;max-height:60%;padding:16px;position:absolute;bottom:54px;right:16px;overflow:auto;box-shadow:0 8px 24px #182f2866}.territory-detail .campaign-kicker{color:#c4a965;font-size:9px}.territory-detail h2{color:#fff0c6}.territory-detail p{color:#d9dfc8}.territory-current{border-color:#a48b5044;font-size:11px!important}.territory-choice{background:#abc58122;border-color:#9bb97488;color:#f9edc9!important}.territory-detail[data-selected=false],.territory-empty{display:none}.territory-detail .campaign-primary{color:#fff6dd;background:linear-gradient(#c4a15d,#93703c);border:1px solid #e0c586;border-radius:5px}.territory-help{z-index:5;color:#e8dfc3;margin:0;font-size:11px;position:absolute;bottom:12px;right:16px}.territory-help summary{background:#203b31e8;border:1px solid #a48b50;border-radius:5px;min-height:32px;padding:6px 10px}.territory-help[open]{background:#203b31f5;border:1px solid #a48b50;border-radius:6px;width:min(320px,85vw);padding:10px}.territory-help p{color:#e8dfc3}@media (width<=700px){.territory-intro{top:12px;left:10px}.territory-regions{top:42px;left:10px}.territory-region{padding:7px 10px}.territory-tools{max-width:235px;top:96px;right:10px}.territory-search{flex-basis:auto}.territory-zoom{width:auto}.territory-detail{width:auto;max-height:38%;padding:12px;bottom:52px;left:10px;right:10px}.territory-detail>p:not(.territory-choice){display:none}.territory-detail h2{font-size:15px!important}.territory-detail .campaign-kicker{display:none}.territory-choice{padding:7px;margin:7px 0!important}.territory-detail .campaign-primary{margin-top:4px}.territory-notice{max-width:calc(100% - 140px);font-size:9px;bottom:10px;left:10px}.territory-help{bottom:10px;right:10px}}.territory-grid{box-sizing:content-box;padding:180px}.territory-scroll{scroll-padding:180px 90px 160px}.territory-grid{background-color:#99b574;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='211' height='193'%3E%3Cg fill='%235a8248' opacity='.13'%3E%3Cpath d='m23 38 2-4 2 4m86 71 2-4 2 4m51 69 2-4 2 4m-96-45 2-3 2 3m103-104 2-3 2 3'/%3E%3C/g%3E%3Cg fill='%23e0dca4' opacity='.2'%3E%3Cellipse cx='64' cy='73' rx='8' ry='2'/%3E%3Cellipse cx='169' cy='132' rx='12' ry='3'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(at 35% 40%,#c8cd8b66,#0000 65%),radial-gradient(at 75% 80%,#688e5244,#0000 65%);background-repeat:repeat,no-repeat,no-repeat;background-size:211px 193px,100% 100%,100% 100%}.territory-tile svg{filter:drop-shadow(1px 3px 1px #3c59302b);transform:scale(1.2)}.territory-tile.terrain-forest svg,.territory-tile.terrain-mountain svg{transform:scale(1.28)}.territory-tile svg,.territory-tile.terrain-forest svg,.territory-tile.terrain-mountain svg{overflow:hidden;transform:none}.territory-grid{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='211' height='193'%3E%3Cg fill='%235a8248' opacity='.2'%3E%3Cpath d='m23 38 2-4 2 4m86 71 2-4 2 4m51 69 2-4 2 4m-96-45 2-3 2 3m103-104 2-3 2 3'/%3E%3C/g%3E%3Cg fill='%23e0dca4' opacity='.25'%3E%3Cellipse cx='64' cy='73' rx='8' ry='2'/%3E%3Cellipse cx='169' cy='132' rx='12' ry='3'/%3E%3C/g%3E%3C/svg%3E"),radial-gradient(at 30% 25%,#d5ce9570,#0000 36%),radial-gradient(at 70% 60%,#638b4b77,#0000 48%),radial-gradient(at 45% 80%,#bcc47d88,#0000 45%);background-repeat:repeat,no-repeat,no-repeat,no-repeat;background-size:211px 193px,100% 100%,100% 100%,100% 100%}.territory-minimap{z-index:3;color:#ecdfb8;pointer-events:none;background:#1d392fe8;border:1px solid #c1a76e;border-radius:8px;width:126px;padding:5px;position:absolute;bottom:50px;left:16px;box-shadow:0 3px 12px #18352c66}.territory-minimap>span{text-align:center;padding-bottom:4px;font-size:10px;display:block}.territory-minimap canvas{border-radius:3px;width:100%;height:auto;display:block}.territory-city-art{filter:drop-shadow(0 5px 4px #20392588);width:148%;height:148%;bottom:8%}.territory-city-flag{color:#c24e3b;text-shadow:0 1px #f7db91;pointer-events:none;font-size:25px;position:absolute;top:-10%;right:0}.territory-city-label{background:#193c30f0;border:1px solid #c6ac6b;padding:3px 8px;font-size:10px;bottom:-10%}.territory-city-mission{z-index:3;white-space:nowrap;color:#ffe5a7;pointer-events:none;background:#263e2e;border:1px solid #c6ac6b;border-radius:4px;padding:2px;font-size:9px;position:absolute;top:0;left:0}.territory-site-label{white-space:nowrap;color:#f7e7be;pointer-events:none;background:#3c4930cf;border-radius:3px;padding:1px 4px;font-size:8px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.territory-landmark-dialog{color:#f6e6bd;background:linear-gradient(#294a3c,#19372d);border:1px solid #c6ab70;border-radius:10px;width:min(360px,88vw);padding:22px;box-shadow:0 10px 50px #102c2999}.territory-landmark-dialog::backdrop{background:#10271c88}.territory-landmark-dialog h2{color:#fff1cc}.territory-landmark-dialog p{font-size:13px;line-height:1.7}.territory-landmark-dialog button{width:100%}.territory-landmark-dialog .campaign-kicker{color:#d6c18b}@media (width<=700px){.territory-minimap{width:82px;padding:4px;bottom:52px;left:10px}.territory-minimap>span{font-size:9px}.territory-view:has(.territory-detail[data-selected=true]) .territory-minimap{display:none}}.territory-landscape{pointer-events:none;z-index:0;position:absolute;inset:180px}.territory-landscape svg{width:100%;height:100%;display:block}.territory-tile{z-index:1}.territory-tile.terrain-water{background:repeating-linear-gradient(175deg,#0000 0 22px,#c2e0d233 24px,#0000 26px 40px),linear-gradient(90deg,#9ab886 0 4%,#75b6b5 9%,#4f8e9f 52%,#7aafad 94%,#b5c58d);box-shadow:inset 3px 0 #c8d5a299,inset -3px 0 #456e7133}.territory-loop-stage{width:calc(96 * var(--tile-size));height:calc(96 * var(--tile-size));background:#869956 url(../assets/world/world-grass-v1.webp) 0 0/512px;position:relative}.territory-loop-stage>.territory-grid,.territory-echo{grid-template-columns:repeat(32,var(--tile-size));grid-template-rows:repeat(32,var(--tile-size));width:calc(32 * var(--tile-size));height:calc(32 * var(--tile-size));background:0 0;padding:0;display:grid;position:absolute;top:33.3333%;left:33.3333%;overflow:visible}.territory-echo-tile{width:var(--tile-size);height:var(--tile-size);font-size:calc(var(--tile-size) * .45);cursor:pointer;z-index:1;background:0 0;border:0;justify-content:center;align-items:center;display:flex;position:relative}.territory-echo-tile svg{pointer-events:none;width:100%;height:100%}.territory-echo-tile[data-disabled=true]{cursor:grab}.territory-loop-stage .territory-landscape{inset:0}.territory-terrain-art{object-fit:contain;pointer-events:none;filter:drop-shadow(0 3px 2px #263a2b44);width:100%;height:100%}.territory-mission-art{object-fit:contain;pointer-events:none;filter:drop-shadow(0 4px 3px #263a2b55);width:140%;height:140%;position:absolute;bottom:6%}.territory-mission .territory-site-label{z-index:2;background:#263e2ee8;border:1px solid #c6aa66;font-size:10px;bottom:-8%}.territory-mission-state{color:#f8e2a3;pointer-events:none;background:#254433;border:1px solid #d8b967;border-radius:50%;padding:2px;font-size:12px;position:absolute;top:0;right:0}.territory-tools{max-width:330px}.territory-zoom{flex-wrap:wrap;justify-content:flex-end;max-width:330px}.territory-scroll{overflow-anchor:none;overscroll-behavior:none;scroll-padding:0}.territory-mission-picker{color:#f7e3ae;max-width:220px;min-height:40px;font:inherit;background:#213c32ee;border:1px solid #baa36c;border-radius:6px;padding:7px;font-size:12px}.territory-echo-mission .territory-site-label{z-index:2;background:#263e2ee8;border:1px solid #c6aa66;font-size:10px;bottom:-8%}.territory-echo-tile.terrain-water{background:repeating-linear-gradient(175deg,#0000 0 22px,#c2e0d233 24px,#0000 26px 40px),linear-gradient(90deg,#9ab886 0 4%,#75b6b5 9%,#4f8e9f 52%,#7aafad 94%,#b5c58d)}.territory-mission-art{filter:drop-shadow(0 3px 2px #39472a40)}.territory-mission-state{z-index:3;background:#253f30ed;padding:3px;font-size:10px;top:-6px;right:-3px}.territory-mission .territory-site-label,.territory-echo-mission .territory-site-label{background:#253f30dc;border-color:#bba57199;border-radius:4px;padding:2px 6px;font-size:10px;bottom:-12%}.territory-terrain-fallback{pointer-events:none;width:100%;height:100%;display:block}.territory-terrain-fallback svg{width:100%;height:100%;display:block}.terrain-resource .territory-terrain-art,.terrain-npc .territory-terrain-art{filter:drop-shadow(0 3px 2px #39472a40)}.terrain-resource .territory-site-label,.terrain-npc .territory-site-label{background:#253f30dc;border:1px solid #bba57166;border-radius:4px;padding:2px 5px;font-size:9px;bottom:-5%}.army-management{box-sizing:border-box;width:100%}.army-management-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px;display:grid}.army-management input,.army-picker input{color:#f2e4ba;background:#20352b;border:1px solid #9c875d;border-radius:4px;width:74px;padding:8px}.army-management button{min-height:40px;margin:5px}.army-management strong{margin-bottom:8px;display:block}.army-picker{justify-content:space-between;align-items:center;gap:12px;margin:12px 0;display:flex}.deployment-confirm{max-width:480px}.deployment-confirm p{line-height:1.6}.army-management small{display:block}.army-management{color:#f2e4ba;background:#112c25ed;border:1px solid #9c875d;border-radius:5px;margin:16px 0;padding:14px;font-size:13px}.army-management summary{cursor:pointer;align-content:center;min-height:44px;font-weight:700}.army-management p{color:#e4ddc4;line-height:1.6}.army-management button,.deployment-confirm button{color:#213e32;cursor:pointer;background:#eee3bf;border:1px solid #b49c6b;border-radius:5px;padding:9px 12px}.army-management button:disabled{opacity:.5;cursor:default}.deployment-confirm button{width:100%;min-height:44px;margin-top:8px;display:block}.city-army-dialog{box-sizing:border-box;width:min(680px,100vw - 32px);max-height:calc(100dvh - 32px);overflow:auto}.city-army-dialog .army-management{margin-bottom:0}.city-army-open{min-height:44px}.army-action-status:empty{display:none}.army-action-status[data-error=true]{color:#ffd4b8;border-left:3px solid #e8a06d;padding-left:10px}.army-training-types{flex-wrap:wrap;gap:8px;margin:14px 0;display:flex}.army-training-types button{flex:1;min-width:70px}.army-training-types [aria-pressed=true]{color:#142b23;background:#bc974b;box-shadow:inset 0 0 0 2px #f6df9b}.army-training-estimate{margin-top:8px}.army-training-live{font-variant-numeric:tabular-nums}.city-facility{color:#f4e6be;cursor:pointer;z-index:4;background:0 0;border:0;flex-direction:column;align-items:center;width:140px;padding:0;display:flex;position:absolute;transform:translate(-50%,-100%)}.city-facility .building-art{filter:drop-shadow(0 5px 4px #10291c88);width:124px;display:block}.city-facility .building-art img,.city-facility .building-art svg{width:100%;height:auto;display:block}.city-facility:focus-visible{outline-offset:6px;border-radius:8px;outline:3px solid #ffe9a3}.city-facility .camp-label{background:#173e30ed;border:1px solid #b6a16c;max-width:150px;position:relative}.city-facility .camp-label-level{display:block}.city-facility-timer{white-space:nowrap;font-variant-numeric:tabular-nums;background:#112e27ed;border:1px solid #b6a16c;border-radius:5px;margin-top:4px;padding:4px 8px;font-size:11px;line-height:1.5;display:block}.city-facility.is-working .city-facility-timer{color:#ffe7a6;border-color:#efd28a}.city-facility-life{pointer-events:none;width:100%;height:100%;position:absolute;top:0;left:0}.facility-pennant{clip-path:polygon(0 0,100% 12%,75% 50%,100% 88%,0 100%);transform-origin:0;background:#ddbb64;width:21px;height:11px;animation:3s ease-in-out infinite facility-flag;position:absolute;top:20%;left:57%}.facility-worker{opacity:0;background:#efd69a;border-radius:40%;width:5px;height:9px;position:absolute;top:55%;left:25%;box-shadow:0 -4px 0 -1px #9c6b43}.is-working .facility-worker{opacity:1;animation:3s ease-in-out infinite facility-march}.is-working .worker-two{background:#83b5b1;animation-delay:-1.5s}.is-working .building-art{animation:3s ease-in-out infinite facility-work-light}@keyframes facility-flag{0%,to{transform:skewY(-5deg)scaleX(.9)}50%{transform:skewY(7deg)scaleX(1)}}@keyframes facility-march{0%,to{transform:translate(0)}50%{transform:translate(38px,8px)}}@keyframes facility-work-light{0%,to{filter:drop-shadow(0 5px 4px #10291c88)}50%{filter:drop-shadow(0 5px 6px #c9a65e99)}}@media (prefers-reduced-motion:reduce){.city-facility .facility-pennant,.city-facility .facility-worker,.city-facility .building-art{animation:none!important}.city-facility.is-working .facility-worker{opacity:1}}.world-march-plane{width:calc(32 * var(--tile-size));height:calc(32 * var(--tile-size));pointer-events:none;z-index:20;position:absolute;top:0;overflow:hidden}.world-march-plane[hidden]{display:none}.world-march-routes{width:100%;height:100%;position:absolute;inset:0;overflow:hidden}.world-march-routes line{stroke:#f4e5aa;stroke-width:.065px;stroke-dasharray:.16 .14;vector-effect:non-scaling-stroke;filter:drop-shadow(0 1px 2px #183b2e);stroke-width:3px}.world-march-marker{filter:drop-shadow(0 3px 2px #1a3025aa);flex-direction:column;align-items:center;width:76px;display:flex;position:absolute;transform:translate(-50%,-75%)}.world-march-troops{justify-content:center;align-items:center;gap:0;height:38px;display:flex;position:relative}.world-march-troops i{image-rendering:auto;background-image:url(../assets/art/heavy-walk-v2.webp);background-position:0 0;background-size:400% 200%;width:25px;height:19px;display:block}.world-march-troops i:nth-child(2){margin-top:9px;margin-left:-7px;animation-delay:-.2s}.world-march-troops i:nth-child(3){margin-top:15px;margin-left:-7px;animation-delay:-.4s}.world-march-marker.is-moving .world-march-troops i{animation:.8s steps(4,end) infinite world-march-steps}.world-march-marker.is-returning .world-march-troops{transform:scaleX(-1)}.world-march-flag{color:#ffe7a1;text-shadow:0 1px 3px #102c21;font-size:20px;position:absolute;top:-10px;left:29px}.world-march-caption{color:#f6e8c1;white-space:nowrap;background:#17392eeb;border:1px solid #c6ad6f;border-radius:4px;padding:3px 6px;font-size:10px}.world-march-plane[data-phase=stationed] .world-march-routes,.world-march-plane[data-phase=fighting] .world-march-routes{opacity:.55}@keyframes world-march-steps{0%{background-position:0 0}to{background-position:133.333% 0}}@media (prefers-reduced-motion:reduce){.world-march-marker.is-moving .world-march-troops i{animation:none}}.world-march-marker.is-facing-left .world-march-troops{transform:scaleX(-1)}.world-march-marker[hidden]{display:none}.world-march-marker{width:72px}.world-march-troops{height:29px}.world-march-troops i{width:36px;height:27px}.world-mine-occupation{white-space:nowrap;color:#ffe7a8;pointer-events:none;z-index:4;background:#193e31f2;border:1px solid #d4b76e;border-radius:5px;margin-top:12px;padding:4px 7px;font-size:10px;line-height:1.4;position:absolute;top:100%;left:50%;transform:translate(-50%);box-shadow:0 2px 4px #18302566}.territory-tile.has-garrison,.territory-echo-tile.has-garrison{z-index:4}.has-garrison .territory-terrain-art{filter:drop-shadow(0 0 5px #e4c16b99)drop-shadow(0 3px 2px #39472a40)}.world-march-eta{color:#ffe7ab;font-variant-numeric:tabular-nums;white-space:nowrap;background:#17392ef2;border:1px solid #d6bc7f;border-radius:4px;margin-bottom:2px;padding:3px 6px;font-size:11px;line-height:1.4;display:block}.world-march-plane{overflow:visible}.world-march-marker{z-index:1}.world-march-routes{pointer-events:none}.world-march-eta{order:0}.world-march-caption{order:1;margin-bottom:3px}.world-march-troops{order:2}.world-march-marker .world-march-troops{width:68px;height:48px;display:block;position:relative;transform:none}.world-march-marker .world-march-troops i{background-image:url(../assets/world/march-soldier-8dir-v1.webp);background-size:400% 800%;width:36px;height:36px;margin:0;display:block;position:absolute;top:0;left:16px;animation:none!important}.world-march-marker .world-march-troops i:nth-child(2){margin:0;top:10px;left:0}.world-march-marker .world-march-troops i:nth-child(3){margin:0;top:10px;left:32px}.march-art-fallback .world-march-troops i{background-image:url(../assets/art/heavy-walk-v2.webp);background-size:400% 200%}.march-art-fallback .world-march-marker.is-facing-left .world-march-troops{transform:scaleX(-1)}.world-march-marker .world-march-troops{width:64px;height:38px}.world-march-marker .world-march-troops i{width:32px;height:32px}.world-march-marker .world-march-troops i:nth-child(2),.world-march-marker .world-march-troops i:nth-child(3){top:6px}.territory-relocation-lock{line-height:1.6;color:#f3d49b!important;font-size:12px!important}#campaign-content .territory-detail .territory-relocation-lock{display:block}.territory-view .territory-intro{display:none}.territory-view .territory-tools{pointer-events:none;max-width:none;top:10px;left:10px;right:10px}.territory-view .territory-zoom{pointer-events:auto;flex-wrap:nowrap;gap:5px;width:auto;max-width:none;display:flex}.territory-view .territory-tool{min-width:44px;min-height:44px;padding:6px 9px;font-size:12px}.territory-explore{z-index:6;color:#f6e7bf;position:absolute;top:10px;left:10px}.territory-explore>summary{box-sizing:border-box;cursor:pointer;background:#213c32f5;border:1px solid #b49b62;border-radius:7px;justify-content:center;align-items:center;min-height:44px;padding:6px 12px;font-size:13px;list-style:none;display:flex}.territory-explore>summary::-webkit-details-marker{display:none}.territory-explore-body{box-sizing:border-box;background:#19372df7;border:1px solid #b49b62;border-radius:8px;gap:12px;width:min(300px,100vw - 24px);max-height:calc(100dvh - 180px);padding:12px;display:grid;position:absolute;top:50px;left:0;overflow:auto;box-shadow:0 8px 24px #122a22aa}.territory-explore-body .territory-regions,.territory-explore-body .territory-search,.territory-explore-body .territory-notice,.territory-explore-body .territory-help{width:auto;max-width:none;box-shadow:none;margin:0;position:static}.territory-explore-body .territory-region{min-height:44px;font-size:13px}.territory-explore-body .territory-search{background:0 0;border:0;flex-wrap:wrap;padding:0;display:flex}.territory-explore-body .territory-search input{width:60px;height:44px;min-height:44px;font-size:14px}.territory-explore-body .territory-search button{min-height:44px;font-size:12px}.territory-explore-body .territory-search-status{font-size:12px}.territory-explore-body .territory-notice{pointer-events:auto;padding:8px;font-size:12px;line-height:1.7}.territory-explore-body .territory-help{font-size:12px}.territory-explore-body .territory-help summary{box-sizing:border-box;align-content:center;min-height:44px}.territory-explore-body .territory-help[open]{background:0 0;border:0;padding:0}.territory-explore-body .territory-mission-picker{width:100%;max-width:none;min-height:44px;font-size:13px}.territory-explore summary:focus-visible{outline-offset:2px;outline:3px solid #f1d397}.territory-view .territory-minimap{bottom:12px}.territory-view:has(.territory-explore[open]) .territory-minimap{display:none}@media (width<=600px){.territory-view .territory-tools{top:10px;left:10px;right:10px}.territory-view .territory-zoom{grid-template-columns:1fr 1fr 44px 44px;gap:5px;width:100%;display:grid}.territory-view .territory-tool{white-space:nowrap;padding-inline:5px}.territory-explore{top:64px}.territory-explore-body{max-height:calc(100dvh - 220px)}}@media (height<=500px) and (width<=1000px){.territory-view .territory-minimap{width:76px;padding:4px;left:10px}.territory-view .territory-minimap>span{font-size:9px}}.territory-search-feedback{z-index:5;box-sizing:border-box;color:#fff1c9;background:#19372df5;border:1px solid #b49b62;border-radius:8px;gap:8px;width:min(300px,100% - 120px);padding:10px;display:grid;position:absolute;bottom:12px;right:12px;box-shadow:0 3px 12px #122a2266}.territory-search-feedback:has(.territory-search-status:empty){display:none}.territory-search-feedback .territory-search-status{max-width:none;font-size:12px;line-height:1.6}.territory-search-open{color:#fff7dc;min-height:44px;font:inherit;cursor:pointer;background:#a68746;border:1px solid #c6ad71;border-radius:6px;font-size:13px}.territory-search-open[hidden]{display:none}.territory-search-open:focus-visible{outline-offset:2px;outline:3px solid #f1d397}.city-facility .building-art{position:relative}.camp-life{pointer-events:none;isolation:isolate;--life-delay:0s;position:absolute;inset:0}.camp-resident{width:20%;height:25%;animation:13s linear infinite camp-resident-route;animation-delay:var(--life-delay);transform-origin:50% 95%;position:absolute;top:69%;left:24%}.camp-person-sprite{background-image:var(--resident-atlas);filter:drop-shadow(0 1px 1px #28321f55);width:100%;height:100%;animation:.72s steps(4,end) infinite camp-person-frames;animation-delay:var(--life-delay);background-position:0 0;background-repeat:no-repeat;background-size:400% 300%;display:block}.city-facility.is-working .camp-person-sprite{animation-duration:.56s}.camp-resident.resident-2{animation-name:camp-resident-return;animation-duration:17s;animation-delay:calc(var(--life-delay) - 6s);top:66%;left:60%}.resident-2 .camp-person-sprite{animation-delay:calc(var(--life-delay) - .36s)}.activity-training .camp-resident{width:17%;height:21.25%;animation:2.8s ease-in-out infinite camp-training;animation-delay:var(--life-delay);top:44%;left:40%}.activity-training .resident-2{animation-delay:calc(var(--life-delay) - 1.4s);top:41%;left:54%}.activity-training .camp-person-sprite{background-position-y:100%;animation-duration:1.4s}.activity-delivery .camp-person-sprite,.activity-workshop .camp-person-sprite,.activity-healing .camp-person-sprite{background-position-y:50%}.city-facility .facility-worker{display:none}.activity-beacon .camp-resident{animation-duration:19s}.camp-life-effect{width:8%;height:12%;position:absolute;top:10%;left:49%}.camp-life-effect i{opacity:0;width:65%;height:70%;animation:4.8s ease-out infinite camp-life-smoke;animation-delay:var(--life-delay);background:#e0d8ba;border-radius:50%;position:absolute;bottom:0;left:10%}.camp-life-effect i:nth-child(2){animation-delay:calc(var(--life-delay) - 1.6s)}.camp-life-effect i:nth-child(3){animation-delay:calc(var(--life-delay) - 3.2s)}.activity-beacon .camp-life-effect{width:7%;height:10%;top:8%;left:48%}.activity-beacon .camp-life-effect:after{content:"";transform-origin:50% 100%;background:linear-gradient(#ffe5a0,#f3a72b 65%,#d96a24);border-radius:65% 35% 50% 50%;animation:1.3s ease-in-out infinite alternate camp-beacon-flame;position:absolute;inset:25% 15% 0;box-shadow:0 0 7px 2px #ffbd4955}.activity-workshop .camp-life-effect,.activity-healing .camp-life-effect{opacity:.65;top:23%;left:61%}@keyframes camp-person-frames{0%{background-position-x:0}to{background-position-x:133.333%}}@keyframes camp-resident-route{0%,12%{opacity:0;transform:translate(0)}18%,45%{opacity:1}48%,58%{opacity:0;transform:translate(110%,-35%)}64%,90%{opacity:1}to{opacity:0;transform:translate(0)}}@keyframes camp-resident-return{0%,10%{opacity:0;transform:translate(0)}18%,40%{opacity:1}50%,62%{opacity:0;transform:translate(-135%,35%)}70%,90%{opacity:1}to{opacity:0;transform:translate(0)}}@keyframes camp-training{0%,35%,70%,to{transform:translate(0)}45%,55%{transform:translate(4%,-1%)}}@keyframes camp-life-smoke{0%{opacity:0;transform:translate(0)scale(.35)}20%{opacity:.28}to{opacity:0;transform:translate(110%,-220%)scale(1.8)}}@keyframes camp-beacon-flame{0%{opacity:.7;transform:scaleX(.85)rotate(-6deg)}to{opacity:1;transform:scale(1.1,.8)rotate(7deg)}}@media (prefers-reduced-motion:reduce){.camp-life *,.camp-life :after{animation:none!important}.camp-life .camp-resident{opacity:1}.camp-life-effect i{display:none}}.camp-villagers{pointer-events:none;z-index:2;position:absolute;inset:0;overflow:hidden}.camp-villager{pointer-events:none;will-change:transform;width:26px;height:32.5px;position:absolute;top:0;left:0;transform:translate(-50%,-95%)}.camp-villager:before{content:"";background:#26372440;border-radius:50%;width:54%;height:12%;position:absolute;bottom:0;left:23%}.camp-villager-sprite{filter:drop-shadow(0 1px 1px #27332155);background-position:33.3333% 0;background-repeat:no-repeat;background-size:400% 200%;width:100%;height:100%;display:block}#campaign-content.camp-is-loading>:not(.camp-loading){visibility:hidden;pointer-events:none}.camp-loading{z-index:100;text-align:center;color:#f5e7bb;background:radial-gradient(at 50% 45%,#34513c,#142e26 75%);flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:28px;font-size:14px;display:flex;position:absolute;inset:0}.camp-loading strong{color:#ffe2a2;font-size:clamp(20px,4vw,28px)}.camp-loading-icon{background:#102c25;border:1px solid #bea56a;border-radius:50%;place-items:center;width:72px;height:72px;font-size:40px;display:grid;box-shadow:0 0 30px #dcb25e18}.camp-loading-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:8px;display:flex}.camp-loading-actions[hidden]{display:none}.camp-loading-actions button{color:#ffeac0;cursor:pointer;background:#274a38;border:1px solid #c5ab70;border-radius:8px;padding:10px 16px}.camp-loading-actions button:focus-visible{outline-offset:3px;outline:3px solid #ffe4a4}.campaign-account-status{color:#f0dcae;background:#132f38;border-bottom:1px solid #8f7b50;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:8px 16px;font-size:12px;display:flex}.campaign-account-status span{overflow-wrap:anywhere;flex:220px;min-width:0}.campaign-account-status button{color:#fff0cb;max-width:100%;min-height:44px;font:inherit;cursor:pointer;background:#1b3b42;border:1px solid #b79d65;border-radius:8px;padding:6px 12px}.shared-city{z-index:7;width:var(--tile-size);height:var(--tile-size);color:#b9eaff;cursor:pointer;background:#244f41e8;border:2px solid #80d8ff;border-radius:9px;place-items:center;margin:0;padding:0;font-size:30px;display:grid;position:absolute;box-shadow:0 2px 8px #173f3577}.shared-city:focus-visible{outline-offset:2px;outline:3px solid #fff7df}.shared-world-panel{color:#fff7df;background:#193e31f2;border-radius:10px;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px;font-size:12px;display:flex}.shared-world-status{flex:160px;margin:0}.shared-world-panel button{color:#fff7df;background:#244f41;border:1px solid #80d8ff;border-radius:7px;min-height:44px;padding:6px 10px}.city-army-dialog{--army-ink:#f3e8c9;--army-muted:#aebfb1;--army-gold:#dfbf74;width:min(620px,100vw - 28px);color:var(--army-ink);background:linear-gradient(145deg,#1d3f33,#102b25);border:1px solid #a58e55;border-radius:14px;padding:0;box-shadow:0 24px 90px #081b19aa}.city-army-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#071b16a6}.city-army-heading{z-index:2;background:#193b30;border-bottom:1px solid #cfb87930;justify-content:space-between;align-items:center;gap:16px;padding:22px 26px 17px;display:flex;position:sticky;top:0}.city-army-kicker{letter-spacing:1.8px;color:var(--army-gold);font-size:10px}.city-army-heading h2{color:var(--army-ink);margin:6px 0 0;font-size:24px;line-height:1.3}.city-army-dialog .city-army-close{color:#d7e0d0;cursor:pointer;background:#ffffff06;border:1px solid #a2b8a945;border-radius:50%;flex:0 0 40px;place-items:center;width:40px;height:40px;min-height:40px;padding:0;font-size:17px;display:grid}.city-army-dialog .army-management{background:0 0;border:0;border-radius:0;margin:0;padding:18px 26px 20px;font-size:13px}.city-army-dialog .army-management>summary{cursor:pointer;min-height:28px;color:var(--army-ink);font-size:14px;list-style:none}.city-army-dialog .army-management>summary:after{content:"⌄";float:right;color:var(--army-muted)}.army-overview{border-bottom:1px solid #a1b8a32b;grid-template-columns:repeat(4,1fr);gap:8px;margin:12px 0 20px;padding:12px 0;display:grid}.city-army-dialog .army-overview strong{color:var(--army-ink);font-variant-numeric:tabular-nums;margin:0;font-size:20px}.army-overview span{color:var(--army-muted);font-size:11px}.city-army-dialog .army-training-types{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 18px;display:grid}.city-army-dialog .army-training-types button{color:#c5d3c5;min-width:0;min-height:102px;box-shadow:none;background:#0b241e66;border:1px solid #839f8d55;border-radius:8px;flex-direction:column;align-items:center;gap:3px;margin:0;padding:12px 6px;display:flex;position:relative}.city-army-dialog .army-training-types button[aria-pressed=true]{border-color:var(--army-gold);color:#ffe4a0;background:linear-gradient(145deg,#b8954540,#b8954512);box-shadow:inset 0 0 0 1px #dabc6944}.city-army-dialog .army-training-types button[aria-pressed=true]:after{content:"✓";color:#efce7e;font-size:11px;position:absolute;top:5px;right:8px}.army-type-icon{font-size:25px;line-height:1.2}.city-army-dialog .army-training-types strong{margin:0;font-size:13px}.city-army-dialog .army-training-types small{color:var(--army-muted);font-size:10px}.city-army-dialog .army-management-grid{display:block}.city-army-dialog .army-management-grid>div{grid-template-columns:90px minmax(0,1fr);align-items:center;gap:9px 14px;display:grid}.city-army-dialog .army-training-label{color:var(--army-muted);grid-column:1/-1;margin:0;font-size:12px;font-weight:400}.city-army-dialog .army-management input{box-sizing:border-box;width:100%;height:48px;color:var(--army-ink);text-align:center;background:#0c241f;border:1px solid #9eaf9377;border-radius:6px;padding:8px;font-size:20px;font-weight:700}.city-army-dialog [data-army-key=recruit]{color:#243329;background:linear-gradient(#e7cd8b,#cfac61);border:1px solid #ebd18e;border-radius:6px;width:100%;min-height:48px;margin:0;padding:10px 14px;font-size:14px;font-weight:700;box-shadow:0 3px #8a6b32}.city-army-dialog .army-training-estimate{color:#e6cea0;font-variant-numeric:tabular-nums;grid-column:1/-1;margin:2px 0 0;font-size:12px}.city-army-dialog .army-training-live{color:var(--army-muted);background:#ffffff05;border-radius:5px;margin:12px 0 18px;padding:9px 12px;font-size:12px}.city-army-dialog .army-training-live[data-active=true]{color:#f4db9e;background:#b99a3b14;border:1px solid #d5b36a70;border-left:3px solid #dfbf74;padding:12px 14px;font-size:13px;line-height:1.7}.city-army-dialog [data-army-key=recruit]:disabled{box-shadow:none;color:#d2d9d3;opacity:1;cursor:not-allowed;background:#52615a;border-color:#748279;font-weight:400}.army-upgrades{border-top:1px solid #a1b8a32b;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;padding-top:16px;display:grid}.army-upgrades h3{color:var(--army-muted);grid-column:1/-1;margin:0;font-size:12px;font-weight:400}.army-upgrades:has(button:only-of-type){grid-template-columns:minmax(0,1fr)}.city-army-dialog .army-upgrades button{color:#dddcc1;text-align:left;background:#0a211b40;border:1px solid #829c863f;border-radius:6px;flex-direction:column;align-items:flex-start;gap:4px;min-height:84px;margin:0;padding:11px 13px;display:flex}.city-army-dialog .army-upgrades strong{margin:0;font-size:12px}.city-army-dialog .army-upgrades small{color:var(--army-muted);font-size:10px}.army-upgrade-cost{color:var(--army-gold);margin-top:3px;font-size:11px}.city-army-dialog .army-upgrades:has(button:only-of-type) button{background:linear-gradient(110deg,#c6a75b20,#0a211b40);border-color:#c6ad6b66;gap:6px;min-height:0;padding:14px 16px}.city-army-dialog .army-upgrades button:not(:disabled):hover{border-color:var(--army-gold);background-color:#c6a75b20}.city-army-dialog .medical-supply{color:var(--army-ink);background:#0a211b66;border:1px solid #a1b8a34a;padding:12px 14px}.city-army-dialog .medical-supply strong{color:var(--army-ink);margin:0}.city-army-dialog .medical-supply p{color:var(--army-muted);margin:6px 0;font-size:12px}.city-army-dialog .medical-supply button{color:#203a30;background:#ddc382;border-color:#bda36e88;width:100%;margin:4px 0 0}.city-army-dialog .medical-supply button:disabled{opacity:1;color:#c0cbbd;background:#344b40;border-color:#708476}.army-rules{color:var(--army-muted);margin-top:14px}.city-army-dialog .army-rules summary{min-height:32px;color:var(--army-muted);font-size:11px;font-weight:400}.city-army-dialog .army-rules p{color:var(--army-muted);font-size:11px}.city-army-dialog [data-army-key=refresh]{min-height:36px;box-shadow:none;color:#aebfb1;text-underline-offset:3px;background:0 0;border:0;margin:9px auto 0;padding:4px 12px;font-size:11px;text-decoration:underline;display:block}.city-army-dialog .army-save-note{color:#91a79a;text-align:center;margin-top:4px;font-size:10px;display:block}.city-army-dialog .army-action-status:not(:empty){background:#ffffff08;border-radius:4px;padding:9px 12px;font-size:12px}.city-army-dialog .army-last-report{border-left:2px solid #8cae90;padding-left:10px;font-size:11px}.city-army-dialog button:focus-visible,.city-army-dialog input:focus-visible{outline-offset:3px;outline:2px solid #ffe8a7}@media (width<=480px){.city-army-heading{padding:17px 17px 14px}.city-army-heading h2{font-size:21px}.city-army-dialog .army-management{padding:14px 17px 16px}.city-army-dialog .army-training-types{gap:7px}.city-army-dialog .army-training-types button{min-height:94px;padding:10px 3px}.city-army-dialog [data-army-key=recruit]{padding:10px;font-size:13px}.city-army-dialog .army-upgrades button{padding:10px 8px}.army-overview{margin-bottom:15px}.city-army-dialog .army-management-grid>div{grid-template-columns:76px minmax(0,1fr);gap:8px 10px}}.city-troops{z-index:4;box-sizing:border-box;color:#eee5c8;font-variant-numeric:tabular-nums;pointer-events:none;background:#17382fed;border:1px solid #c1a87399;border-radius:8px;width:340px;max-width:calc(100% - 36px);padding:10px 13px;position:absolute;top:84px;left:18px;box-shadow:0 3px 12px #10261e55}.city-troops-heading{justify-content:space-between;align-items:center;gap:12px;font-size:12px;display:flex}.city-troops-capacity{color:#b9c5b0;font-size:10px}.city-troops-types{grid-template-columns:repeat(3,1fr);gap:10px;margin:8px 0;display:grid}.city-troops-types>span{border-right:1px solid #b6c5a52b;justify-content:space-between;align-items:center;gap:6px;padding-right:10px;display:flex}.city-troops-types>span:last-child{border:0;padding-right:0}.city-troops-unit{color:#c3d0bb;font-size:12px}.city-troops-types strong{color:#ffe0a0;font-size:20px;line-height:1.2}.city-troops-status{color:#c4cfba;font-size:10px;display:block}.has-city-troops .camp-city-title,.has-city-troops .camp-pan-hint{display:none!important}@media (width<=600px) and (orientation:portrait){.city-troops{width:calc(100% - 20px);max-width:none;top:76px;left:10px}#campaign-content[data-page=buildings] .has-city-troops .camp-find-ready-group{width:198px;max-width:198px;top:187px;right:10px}}@media (height<=500px) and (orientation:landscape){.city-troops{width:310px;padding:7px 10px;top:70px}.city-troops-types{margin:5px 0}.city-troops-types strong{font-size:17px}}.city-army-dialog{width:min(460px,100vw - 28px)}.city-army-heading{border-bottom:0;padding:15px 20px}.city-army-heading h2{margin:0;font-size:21px}.city-army-dialog .army-management{padding:0 20px 18px}.city-army-dialog .army-management>summary{color:#b9c6b4;min-height:30px;margin-bottom:12px;font-size:12px;font-weight:400}.city-army-dialog .army-management>summary:after{content:none}.city-army-dialog .army-training-types{gap:8px;margin-bottom:16px}.city-army-dialog .army-training-types button{text-align:left;grid-template-rows:auto auto;grid-template-columns:18px minmax(0,1fr);align-content:center;gap:3px 5px;min-height:66px;padding:10px 9px;display:grid}.city-army-dialog .army-type-icon{grid-row:1/3;align-self:center;font-size:17px}.city-army-dialog .army-training-types strong{font-size:12px}.city-army-dialog .army-training-types small{font-size:10px}.city-army-dialog .army-training-types button[aria-pressed=true]:after{font-size:9px;top:2px;right:5px}.city-army-dialog .army-training-live[data-active=false],.city-army-dialog .army-action-status[data-error=false]{display:none}.city-army-dialog .army-training-live[data-active=true]{margin:0 0 14px;padding:9px 11px;font-size:12px}.army-extra{border-top:1px solid #a1b8a32b;margin-top:18px;padding-top:6px}.city-army-dialog .army-extra>summary{color:#b4c0ae;cursor:pointer;min-height:36px;font-size:11px;font-weight:400}.army-extra .army-upgrades{border-top:0;margin-top:6px;padding-top:0}.site-dispatch-dialog{box-sizing:border-box;color:#f3e8c9;background:#17392e;border:1px solid #a58e55;border-radius:12px;width:min(400px,100vw - 28px);max-height:calc(100dvh - 28px);padding:20px;overflow:auto}.site-dispatch-dialog::backdrop{-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#071b16a6}.site-dispatch-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.site-dispatch-header h2{margin:0 0 5px;font-size:21px}.site-dispatch-header small{color:#b5c3af;font-size:11px}.site-dispatch-dialog .site-close{color:#d7e0d0;cursor:pointer;background:0 0;border:1px solid #a2b8a945;border-radius:50%;flex:0 0 44px;width:44px;height:44px;min-height:44px;padding:0;font-size:16px}.site-intel{color:#e9d29d;border-block:1px solid #a1b8a32b;margin:12px 0;padding:11px 0;font-size:12px;line-height:1.6}.site-dispatch-dialog .army-picker{gap:10px;margin:9px 0;font-size:12px}.site-dispatch-dialog .army-picker input{box-sizing:border-box;text-align:center;color:#f3e8c9;background:#0d281f;border:1px solid #96a58c77;border-radius:5px;width:76px;min-height:44px;font-size:16px}.site-total{margin:16px 0 4px;font-size:12px}.site-real-warning{color:#cbb885;margin-bottom:12px;font-size:11px;display:block}.site-action-status{color:#ffd0ab;font-size:12px;line-height:1.5}.site-action-status:empty{display:none}.site-dispatch-dialog .site-primary{color:#243329;cursor:pointer;background:linear-gradient(#e7cd8b,#cfac61);border:1px solid #ebd18e;border-radius:6px;width:100%;min-height:46px;padding:10px;font-weight:700;display:block}.site-more{color:#b6c3b0;margin-top:10px}.site-more summary{cursor:pointer;align-content:center;min-height:36px;font-size:11px}.site-more p{font-size:12px;line-height:1.6}.site-dispatch-dialog .site-manage{color:#e3cca0;cursor:pointer;background:0 0;border:0;min-height:40px;padding:8px 0;font-size:12px;text-decoration:underline}.site-flow{color:#e8dbb4;margin:12px 0 4px;font-size:12px;line-height:1.7}.site-travel{color:#adbeae;margin:0 0 10px;font-size:11px}.site-expedition-status{background:#0b291f80;border:1px solid #c8ad6b77;border-radius:7px;margin-top:18px;padding:14px}.site-expedition-status strong{color:#f2ddaa;font-size:14px}.site-expedition-status p{color:#c8d2be;margin:8px 0;font-size:12px;line-height:1.5}.site-expedition-status .site-expedition-phase,.site-expedition-status .site-expedition-income{color:#ffda88;font-weight:700}.site-expedition-timer{font-variant-numeric:tabular-nums}.site-slot-note{color:#d9cba6;margin:14px 0;font-size:12px;line-height:1.6}.site-dispatch-dialog .site-secondary{color:#eadbb6;cursor:pointer;background:0 0;border:1px solid #baa370;border-radius:6px;width:100%;min-height:44px;margin-top:8px;padding:9px;display:block}.site-dispatch-dialog{--site-line:#a1b8a332;--site-muted:#bdccbc;width:min(460px,100vw - 28px)}.site-dispatch-header{border-bottom:1px solid var(--site-line);padding-bottom:16px}.site-expedition-status{border-color:#c8ad6b55;border-radius:10px;margin-top:16px;padding:16px}.site-expedition-status .site-expedition-context{color:var(--site-muted);margin:0 0 6px;font-size:12px}.site-expedition-status .site-expedition-phase{color:#ffe2a0;margin:0;font-size:19px;line-height:1.5}.site-expedition-destination{color:var(--site-muted);gap:3px;margin-top:12px;font-size:12px;display:grid}.site-expedition-destination strong{color:#e7eddf;font-size:13px;line-height:1.6}.site-expedition-steps{border-top:1px solid var(--site-line);gap:6px;margin:14px 0 0;padding:14px 0;list-style:none;display:flex}.site-expedition-steps li{text-align:center;color:#aab9ad;flex-direction:column;flex:1;align-items:center;gap:6px;font-size:11px;line-height:1.5;display:flex}.site-expedition-steps li>span{border:1px solid #a1b8a355;border-radius:50%;place-items:center;width:24px;height:24px;font-size:12px;display:grid}.site-expedition-steps .is-current{color:#ffe2a0;font-weight:700}.site-expedition-steps .is-current>span{color:#19372d;background:#e2c27e;border-color:#e2c27e}.site-expedition-steps .is-complete{color:#bddcc5}.site-expedition-timing{border-top:1px solid var(--site-line);color:#e0e8d9;gap:5px;padding-top:14px;font-size:12px;display:grid}.site-expedition-timing .site-expedition-timer,.site-expedition-timing .site-expedition-income{color:#fff0c9;font-variant-numeric:tabular-nums;letter-spacing:.02em;font-size:32px;font-weight:700;line-height:1.2}.site-expedition-timing small{color:var(--site-muted);font-size:11px;line-height:1.7}.site-expedition-force{padding:16px 0 0}.site-force-heading{justify-content:space-between;align-items:center;gap:8px;display:flex}.site-force-heading h3{color:var(--site-muted);margin:0;font-size:13px;font-weight:400}.site-force-heading strong{color:#f6e6bd;font-size:16px}.site-force-units{border-block:1px solid var(--site-line);grid-template-columns:repeat(3,minmax(0,1fr));margin:10px 0 0;padding:10px 0;display:grid}.site-force-units>div{text-align:center}.site-force-units>div+div{border-left:1px solid var(--site-line)}.site-force-units dt{color:var(--site-muted);font-size:12px}.site-force-units dd{color:#f4ebd4;font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:22px;font-weight:700}.site-dispatch-dialog .site-slot-note{color:#d5c8a5;font-size:12px;line-height:1.7}.site-expedition-footer{border-top:1px solid var(--site-line);justify-content:space-between;align-items:center;gap:8px;margin-top:12px;padding-top:4px;display:flex}.site-expedition-footer small{color:var(--site-muted);font-size:10px}.site-expedition-footer .site-manage{width:auto;min-height:44px}.site-dispatch-dialog button:focus-visible{outline-offset:3px;outline:2px solid #f0d18c}.site-expedition-steps .is-failed{color:#ffbd9f;font-weight:700}.site-expedition-steps .is-failed>span{color:#ffbd9f;border-color:#ffbd9f}.site-dispatch-dialog[open]:not([data-expedition-phase=none]){flex-direction:column;padding:0;display:flex;overflow:hidden}.site-dispatch-dialog:not([data-expedition-phase=none]) .site-dispatch-header{flex:none;padding:20px 20px 16px}.site-expedition-body{overscroll-behavior:contain;scrollbar-color:#a58e55 #17392e;min-height:0;padding:0 20px;overflow-y:auto}.site-expedition-body:focus-visible{outline-offset:-3px;outline:2px solid #f0d18c}.site-expedition-dock{background:#17392e;flex:none;padding:0 20px 12px;box-shadow:0 -5px 12px #0a241c55}.site-expedition-dock .site-expedition-footer{margin-top:0}.site-expedition-dock .site-action-status{grid-column:1/-1}.site-scroll-hint{text-align:center;color:#e7d39d;margin:0;padding:4px 0;font-size:11px;line-height:1.4}.site-scroll-hint[hidden]{display:none}.site-dispatch-dialog .site-dock-income{color:#f6e6bd;font-variant-numeric:tabular-nums;margin:0 0 6px;font-size:12px;line-height:1.4}.site-battle-result{border-top:1px solid var(--site-line);color:var(--site-muted);gap:3px;padding:12px 0;font-size:12px;display:grid}.site-battle-result strong{color:#ffe2a0;font-size:16px}.site-battle-result small{color:#e7eddf;font-size:12px}@media (height<=500px){.site-dispatch-dialog:not([data-expedition-phase=none]) .site-dispatch-header{padding:8px 16px}.site-expedition-body{padding-inline:16px}.site-expedition-dock{grid-template-columns:1fr 1fr;gap:6px;padding:8px 16px;display:grid}.site-expedition-dock .site-secondary{margin:0}.site-expedition-dock .site-expedition-footer,.site-expedition-dock .site-scroll-hint,.site-expedition-dock .site-dock-income{grid-column:1/-1}.site-dispatch-dialog .site-dock-income{margin:0}.site-expedition-status{margin-top:10px}}@media (width<=380px){.site-dispatch-dialog{padding:16px}.site-expedition-status{padding:12px}.site-expedition-status .site-expedition-phase{font-size:17px}.city-army-heading{padding:14px 16px}.city-army-dialog .army-management{padding:0 16px 16px}.city-army-dialog .army-training-types{gap:6px}.city-army-dialog .army-training-types button{grid-template-columns:14px minmax(0,1fr);padding:9px 6px}.city-army-dialog .army-type-icon{font-size:14px}}.warp-energy{--warp-color:#73d6df;color:#dbfaff;background:#122c37;border:1px solid #73d6df55;border-radius:10px;gap:3px;min-width:0;max-width:300px;padding:7px 10px;font-size:12px;display:grid}.warp-energy strong{font-size:12px}.warp-energy small{color:#bddce0;font-size:10px;line-height:1.4}.warp-energy progress{width:100%;height:7px;accent-color:var(--warp-color)}.warp-energy.is-empty{--warp-color:#c49aba}.campaign-pagebar .warp-energy{margin-left:auto}.deployment-confirm .warp-energy{max-width:none;margin-block:10px}@media (width<=600px){.campaign-header,.campaign-pagebar{flex-wrap:wrap}.campaign-pagebar .warp-energy{max-width:200px;padding:5px 8px}.warp-energy small{font-size:9px}}.warp-energy-chip{color:#dbfaff;flex-shrink:0;margin-left:auto;position:relative}.warp-energy-chip>summary{box-sizing:border-box;cursor:pointer;white-space:nowrap;background:#122c37;border:1px solid #73d6df66;border-radius:8px;justify-content:center;align-items:center;min-width:92px;min-height:44px;padding:6px 10px;font-size:13px;font-weight:700;list-style:none;display:flex}.warp-energy-chip>summary::-webkit-details-marker{display:none}.warp-energy-chip>summary:focus-visible{outline-offset:2px;outline:3px solid #f1d397}.warp-energy-popover{z-index:30;box-sizing:border-box;background:#122c37;border:1px solid #73d6df66;border-radius:10px;width:min(300px,100vw - 32px);padding:12px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 8px 24px #071c25aa}.warp-energy-popover p{color:#d0e9eb;margin:10px 0 0;font-size:12px;line-height:1.7}.warp-energy-popover .warp-energy{border:0;max-width:none;margin:0;padding:0}.warp-energy-popover .warp-energy small{font-size:11px}.campaign-pagebar:has(.warp-energy-chip){z-index:15;position:relative}.campaign-header:has(.warp-energy-chip){z-index:15;position:relative}#campaign[data-page=world] .campaign-pagebar{box-sizing:border-box;flex-wrap:nowrap;gap:10px;min-height:56px}#campaign[data-page=world] #lobby-back{min-height:44px}#campaign[data-page=world] #campaign-page-title{white-space:nowrap;font-size:15px}@media (width<=400px){#campaign[data-page=world] .campaign-pagebar{gap:7px;padding-inline:10px}#campaign[data-page=world] #lobby-back{padding-inline:8px;font-size:12px}#campaign[data-page=world] #campaign-page-title{font-size:13px}.warp-energy-chip>summary{min-width:84px;font-size:12px}}#campaign[data-page=buildings] .warp-energy-popover{max-height:calc(100dvh - 88px);position:fixed;top:76px;left:12px;right:auto;overflow:auto}.deployment-guidance{background:#102e2780;border:1px solid #80b2a166;border-radius:7px;margin-block:12px;padding:10px;font-size:12px}.deployment-guidance ul{gap:5px;margin:8px 0;padding:0;line-height:1.6;list-style:none;display:grid}.deployment-guidance p{color:#dbe6d3;margin:6px 0 0;font-size:12px;line-height:1.7}.deployment-guidance.has-warning{border-color:#dfbd74}.deployment-guidance.has-warning p{color:#ffdd9a}.deployment-guidance p{white-space:pre-line}#campaign[data-page=world] .campaign-pagebar{min-height:48px;padding-block:2px}#campaign[data-page=world] #lobby-back{line-height:1}#campaign[data-page=world] .campaign-pagebar{z-index:15;top:calc(var(--campaign-safe-top,env(safe-area-inset-top)) + 10px);left:calc(var(--campaign-safe-left,env(safe-area-inset-left)) + 10px);right:calc(var(--campaign-safe-right,env(safe-area-inset-right)) + 10px);pointer-events:none;background:0 0;border:0;min-height:44px;padding:0;position:absolute}#campaign[data-page=world] .campaign-pagebar #campaign-page-title{display:none}#campaign[data-page=world] .campaign-pagebar #lobby-back,#campaign[data-page=world] .campaign-pagebar .warp-energy-chip{pointer-events:auto}#campaign[data-page=world] #lobby-back{background:#193a30f5;border-radius:7px}#campaign[data-page=world] .territory-view .territory-tools{top:64px}#campaign[data-page=world] .territory-explore{top:10px;left:118px}#campaign[data-page=world] #campaign-message:not(:empty){z-index:8;color:#fff0cb;overflow-wrap:anywhere;pointer-events:none;background:#173c2ff5;border:1px solid #c2a26b;border-radius:7px;max-width:min(320px,100% - 120px);margin:0;padding:6px 10px;font-size:11px;line-height:1.5;position:absolute;bottom:10px;right:10px;box-shadow:0 3px 12px #132b2755}#campaign[data-page=world],#campaign[data-page=buildings],#campaign button,#campaign summary{-webkit-user-select:none;user-select:none}#campaign dialog,#campaign .camp-detail,#campaign .territory-detail,#campaign input,#campaign textarea,#campaign [contenteditable=true]{-webkit-user-select:text;user-select:text}.city-army-dialog .city-army-close,.site-dispatch-dialog .site-close{box-sizing:border-box;border-radius:50%;flex:0 0 44px;place-items:center;width:44px;min-width:44px;max-width:44px;height:44px;min-height:44px;max-height:44px;padding:0;line-height:1;display:grid}.deployment-body .deployment-reserve-note{color:#f1d8a3;background:#dfbd7412;border-left:3px solid #dfbd74;margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.7}.deployment-readiness{color:#e1f1d8;background:#143b30;border:1px solid #91bfa17a;border-radius:8px;margin-bottom:16px;padding:12px}.deployment-readiness>strong{font-size:18px}.deployment-readiness ul{margin:6px 0 0;padding-left:18px;font-size:12px;line-height:1.7}.deployment-readiness.has-warning{color:#ffe0a2;background:#443b25;border-color:#dfbd74}.deployment-readiness li+li{margin-top:6px}.deployment-total{color:#f4dfae;font-variant-numeric:tabular-nums;font-size:18px}.deployment-confirm{--deploy-line:#9c875d66;--deploy-muted:#bac9b5;box-sizing:border-box;width:min(520px,100vw - 24px);max-width:520px;max-height:calc(100dvh - 24px);padding:0;overflow:hidden}.deployment-confirm[open]{flex-direction:column;display:flex}.deployment-heading{border-bottom:1px solid var(--deploy-line);flex-shrink:0;padding:18px 22px 12px}.deployment-heading .campaign-kicker{letter-spacing:.04em;font-size:11px}.deployment-heading h2{margin:4px 0;font-size:24px}.deployment-heading p{color:var(--deploy-muted);margin:0}.deployment-body{overscroll-behavior:contain;min-height:0;padding:16px 22px;overflow-y:auto}.deployment-body h3{margin:0 0 4px;font-size:15px}.deployment-body .deployment-intro{color:var(--deploy-muted);margin:0 0 14px;font-size:12px}.deployment-picker{gap:9px;display:grid}.deployment-troop{border:1px solid var(--deploy-line);background:#102c2580;border-radius:8px;padding:10px 12px}.deployment-troop.has-warning{border-color:#dfbd74}.deployment-troop .army-picker{gap:8px;margin:0 0 4px}.deployment-unit{align-items:center;gap:9px;font-size:15px;display:flex}.deployment-unit>span{font-size:21px}.deployment-count{align-items:center;gap:8px;display:flex}.deployment-count small{color:var(--deploy-muted);font-size:11px}.deployment-confirm .army-picker input{box-sizing:border-box;text-align:center;font-variant-numeric:tabular-nums;color:#fff1cc;background:#0c241e;border-radius:6px;width:76px;min-height:44px;font-size:18px}.deployment-confirm input:focus-visible,.deployment-confirm button:focus-visible,.deployment-rules summary:focus-visible{outline-offset:3px;outline:2px solid #f0d18c}.deployment-confirm input[aria-invalid=true]{border-color:#f0b58a}.deployment-troop>small{color:var(--deploy-muted);font-size:11px}.deployment-troop .deployment-split{color:#e9d6a4;margin:5px 0 0;font-size:12px}.deployment-confirm .deployment-guidance{margin-bottom:0}.deployment-guidance[hidden]{display:none}.deployment-rules{color:var(--deploy-muted);margin-top:12px;font-size:12px}.deployment-rules summary{cursor:pointer;align-content:center;min-height:40px}.deployment-rules p{font-size:12px}.deployment-actions{border-top:1px solid var(--deploy-line);background:#142f27;flex-shrink:0;padding:12px 22px 16px}.deployment-actions .deployment-summary{color:#f3dfae;font-variant-numeric:tabular-nums;margin:0;font-size:12px;font-weight:700}.deployment-actions .has-warning{color:#ffd09a}.deployment-status{color:#ffd09a;margin:6px 0}.deployment-status:empty{display:none}.deployment-buttons{grid-template-columns:1fr 2fr;gap:10px;display:grid}.deployment-confirm .deployment-buttons button{margin-top:10px;font-weight:700}.deployment-buttons button:first-child{color:#e4d5ad;background:0 0}.deployment-buttons [data-warp-deploy]{background:linear-gradient(#edd395,#d5b66f)}.deployment-buttons button:disabled{opacity:.45;cursor:not-allowed}@media (width<=420px){.deployment-heading{padding:14px 16px 10px}.deployment-body{padding:12px 16px}.deployment-actions{padding:10px 16px 12px}.deployment-count{gap:6px}.deployment-count small{font-size:10px}}@media (height<=500px){.deployment-heading{padding-block:9px}.deployment-heading h2{font-size:20px}.deployment-heading .campaign-kicker{display:none}.deployment-body{padding-block:10px}.deployment-actions{padding-block:8px}}.city-troops-power{color:#ffdf9a;white-space:nowrap;font-variant-numeric:tabular-nums;font-size:11px;font-weight:700}.city-army-dialog .army-power-inline{color:#ffe0a0;font-variant-numeric:tabular-nums;background:#0b241e66;border:1px solid #c9ad6b55;border-radius:5px;margin:8px 0 12px;padding:8px 10px;font-size:12px;line-height:1.5}.city-troops-heading{flex-wrap:wrap}.deployment-power{color:#ffe0a0;font-variant-numeric:tabular-nums;background:#0f2b25;border:1px solid #c9ad6b55;border-radius:7px;margin:12px 0 0;padding:10px 12px;font-size:12px;line-height:1.6}.deployment-power:empty{display:none}.daily-login{color:#46391f;background:#f7efd9;border:1px solid #b89c65;border-radius:14px;margin:1rem 0;padding:1rem;box-shadow:0 4px 14px #3a2b161a}.daily-login summary{cursor:pointer;font-weight:700}.daily-login p,.medical-supply p{margin:.6rem 0;font-size:.9rem}.daily-rewards{grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:.45rem;padding:0;list-style:none;display:grid}.daily-rewards li{background:#fff9e9;border:1px solid #d6c7a3;border-radius:8px;flex-direction:column;gap:.25rem;padding:.6rem;font-size:.85rem;display:flex}.daily-rewards .is-next{background:#fff0c7;border-color:#a16a25;box-shadow:inset 0 0 0 1px #a16a25}.daily-claim{margin-top:.5rem}.medical-supply{background:#fff7e4;border:1px solid #bfa87d;border-radius:10px;margin-top:1rem;padding:.8rem}
