@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}.item-inventory{border-top:1px solid var(--line);color:#8d7045;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;min-height:32px;padding:5px 20px;font-size:10px;display:flex}.item-inventory .inventory-label{color:var(--muted);font-size:9px}.battle-topline>div{overflow:hidden}#clock{flex-shrink:0}html[data-shell=mobile] .item-inventory{gap:5px;min-height:28px;padding:4px 18px;font-size:9px}html[data-shell=mobile] .item-inventory .inventory-label{font-size:8px}html[data-shell=mobile] #march-order{font-size:9px}html[data-shell=mobile] .battle-topline .live-tag{display:none}@media (width<=700px){html[data-shell=mobile] .item-inventory{padding:4px 12px}html[data-shell=mobile] .item-inventory .inventory-label{display:none}}.item-guide{border-top:1px solid var(--line);margin-top:12px;padding-top:12px}.item-guide h3{font-size:12px}.item-guide p{color:var(--muted);margin-top:7px;font-size:11px;line-height:1.8}@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,.item-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}.item-inventory{color:#735831;grid-template-columns:1fr 1fr;gap:12px;padding:12px 0;font-size:14px;display:grid}.inventory-item{border:1px solid var(--line);min-width:0;color:var(--ink);border-radius:8px;align-items:center;gap:10px;padding:8px;display:flex}.item-art{flex:0 0 64px;place-items:center;width:64px;height:64px;display:inline-grid;position:relative}.item-art img{object-fit:contain;width:100%;height:100%;position:absolute;inset:0}.item-art-fallback{color:var(--blue);font-size:28px}.item-art[data-loaded=true] .item-art-fallback{visibility:hidden}.inventory-copy{flex-direction:column;gap:4px;min-width:0;line-height:1.5;display:flex}.inventory-copy strong{font-size:14px}.inventory-copy>span{color:var(--muted);font-size:12px}.item-guide p{align-items:center;gap:12px;display:flex}.item-guide p>span:last-child{flex-direction:column;gap:3px;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] .item-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}#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}#campaign{z-index:200;color:#233f36;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:1fr 1fr 1fr;gap:16px;min-height:240px;padding:20px}#campaign .camp-quest{grid-column:auto;padding:14px;display:flex}.camp-member{min-height:130px}.camp-stage .camp-portrait{max-width:90px}.campaign-hero-copy h1{font-size:28px!important}.campaign-hero-copy p{font-size:12px}}@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}.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}.draw-result{max-width:440px;margin-top:22px}.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}.draw-result .hero-card{max-width:320px}.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:#233f36;background:#f4f5ee;border:2px solid #ba9b57;border-radius:14px;width:min(440px,100vw - 24px);max-height:calc(100dvh - 24px);padding:18px;overflow:auto}.draw-reveal::backdrop{background:#102f29bb}.draw-reveal>p{margin:8px 0;font-size:13px;line-height:1.6}.draw-reveal>button{color:#15639b;background:0 0;border:1px solid #15639b;width:100%;min-height:44px;margin:8px 0 14px;display:block}.draw-reveal .hero-card{max-width:300px}#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-altar{isolation:isolate;text-align:center;color:#f5eed8;background:radial-gradient(#37685b,#102f29 75%);border:1px solid #ad945c;border-radius:16px;margin:18px 0;padding:26px 16px;position:relative;overflow:hidden}#campaign .summon-altar h2{color:#f5eed8;font-size:24px}.summon-altar p{color:#d5dfce;font-size:14px}.summon-seal,.summon-ritual{place-items:center;width:180px;height:180px;margin:0 auto;display:grid;position:relative}.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}.draw-reveal .summon-ritual{width:200px;max-width:100%;height:200px;color:var(--card-edge)}.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}.draw-reveal .summon-saved{color:#53685b;font-size:12px}.draw-reveal .skip-summon{font-family:var(--game-font)}@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{animation:none}}@media (orientation:landscape) and (height<=450px){.draw-reveal[open]{grid-template-columns:minmax(0,1fr) minmax(140px,190px);align-items:center;gap:8px 18px;width:min(740px,100vw - 24px);padding:12px 18px;display:grid}.draw-reveal>h2,.draw-reveal>p,.draw-reveal>button{grid-column:1;margin:0}.draw-reveal>.hero-card,.draw-reveal>.summon-ritual{grid-area:1/2/7;width:100%;margin:0}.draw-reveal>.summon-ritual{max-height:200px}.draw-reveal>h2{font-size:22px}}.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:36px}#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[open]{grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:10px;height:min(720px,100dvh - 24px);max-height:calc(100dvh - 24px);padding:14px;display:grid;overflow:hidden}#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}.skill-branches{flex-wrap:wrap;gap:8px;margin:12px 0;display:flex}.skill-branches button{color:#15639b;background:0 0;border:1px solid #9abbbb}.skill-branches [aria-pressed=true]{outline:2px solid #15639b}.commander-tree{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:18px 0;padding:0;list-style:none;display:grid}.commander-skill{background:#fffdf2;border:1px solid #9abbbb;border-radius:10px;flex-direction:column;gap:10px;padding:14px;display:flex;position:relative}.commander-skill:not(:first-child):before{content:"→";color:#54705c;position:absolute;top:40%;left:-16px}.commander-skill p{color:#405d50;font-size:14px}.commander-skill small{color:#53685b;font-size:12px}.commander-skill button{color:#15639b;background:0 0;border:1px solid #15639b;margin-top:auto}.commander-skill.learned{background:#eaf4ec;border:2px solid #43836c}@media (width<=750px){.commander-tree{grid-template-columns:1fr}.commander-skill:not(:first-child):before{content:"↓";top:-20px;left:50%}}@media (orientation:landscape) and (height<=560px){#campaign-content[data-page=skills]>.campaign-lead{display:none}#campaign-content[data-page=skills] h1{margin:0 0 6px;font-size:22px!important}.commander-level-summary{gap:2px 16px;margin:4px 0;padding:6px 12px;font-size:12px}.commander-level-summary progress{display:none}.skill-branches{margin:6px 0}.commander-tree{gap:10px;margin:8px 0}.commander-skill{gap:6px;padding:10px}.commander-skill h2{font-size:15px}.commander-skill p{font-size:12px;line-height:1.45}.commander-skill small{font-size:11px}.commander-skill button{min-height:36px;padding:6px 8px;font-size:12px}}@media (orientation:landscape) and (height<=560px) and (width>=470px){.commander-tree{grid-template-columns:repeat(2,minmax(0,1fr))}.commander-skill:not(:first-child):before{content:"→";top:40%;left:-10px}}@media (orientation:landscape) and (height<=560px) and (width>=700px){.commander-tree{grid-template-columns:repeat(4,minmax(0,1fr))}}
