.battle-workbench .unit-info.svelte-108xfkt{--info-scale:1.2;position:absolute;left:max(12px,env(safe-area-inset-left));top:86px;z-index:8;width:calc(288px * var(--info-scale));height:calc(240px * var(--info-scale));min-width:0;max-width:none;padding:0;border:0;border-radius:3px;background:none;box-shadow:1px 3px 9px #20170ec0;pointer-events:none;overflow:hidden;color:#482a11;font:12px Georgia,Times New Roman,serif}.info-screen.svelte-108xfkt{margin:0;color:#482a11;position:relative;width:288px;height:240px;transform:scale(var(--info-scale));transform-origin:top left;image-rendering:pixelated;background:#d2b476}.info-portrait-panel.svelte-108xfkt{position:absolute;inset:0 auto 0 0;width:112px;background-size:112px 240px}.info-paper.svelte-108xfkt{position:absolute;left:112px;top:0;width:176px;height:240px;background:url(/assets/ui/unit-info/status-paper.png) 0 0/176px 240px}.info-face.svelte-108xfkt{position:absolute;left:0;top:23px;width:112px;height:138px;overflow:hidden}.info-face.svelte-108xfkt img{position:absolute;max-width:none;width:190px;height:190px;object-fit:contain;left:-39px;top:-9px}.info-name.svelte-108xfkt{position:absolute;left:0;top:0;margin:0;width:120px;height:22px;background-size:120px 22px;text-align:center;line-height:21px;font:700 15px/21px Georgia,serif;letter-spacing:.3px;color:#fbe6b1;text-shadow:1px 1px #302a24;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 5px;z-index:1}.info-class.svelte-108xfkt{position:absolute;left:119px;top:3px;width:119px;height:15px;font:700 11px/15px Georgia,serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.info-level.svelte-108xfkt{position:absolute;left:261px;top:3px;font:700 10px/15px Georgia,serif}.info-hp.svelte-108xfkt{position:absolute;left:143px;top:23px;display:flex;align-items:baseline;gap:3px;color:#fff0bc;text-shadow:1px 1px #b18649;height:31px}.unit-info.svelte-108xfkt .info-hp:where(.svelte-108xfkt) b:where(.svelte-108xfkt){display:inline;font:700 30px/31px Georgia,serif;color:inherit}.info-hp.svelte-108xfkt span:where(.svelte-108xfkt){font:700 19px Georgia,serif}.info-exp.svelte-108xfkt,.info-movement.svelte-108xfkt{position:absolute;right:10px;font:700 12px/15px Georgia,serif}.info-exp.svelte-108xfkt{top:25px}.info-movement.svelte-108xfkt{top:42px}.info-stat.svelte-108xfkt{position:absolute;width:51px;height:16px;background-size:51px 16px}.unit-info.svelte-108xfkt .info-stat:where(.svelte-108xfkt) b:where(.svelte-108xfkt){position:absolute;right:3px;top:0;display:inline;font:700 12px/16px Georgia,serif;color:#425938;text-shadow:0 1px #f9df9a}.info-range.svelte-108xfkt{position:absolute;left:5px;top:214px;font:10px/14px Georgia,serif;color:#f4deaf;text-shadow:1px 1px #392923}.info-conditions.svelte-108xfkt{position:absolute;left:3px;bottom:1px;width:106px;color:#fff1bc;font:700 8px/10px Georgia,serif}.info-combat.svelte-108xfkt{position:absolute;left:112px;top:66px;width:122px;height:46px;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:22px 22px;margin:0}.info-combat.svelte-108xfkt>div:where(.svelte-108xfkt){position:relative}.info-combat.svelte-108xfkt dt:where(.svelte-108xfkt){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.info-combat.svelte-108xfkt dd:where(.svelte-108xfkt){position:absolute;right:3px;top:4px;margin:0;font:700 12px/16px Georgia,serif;color:#fff1bb;text-shadow:1px 1px #9e692b}.info-skills.svelte-108xfkt{position:absolute;left:237px;top:64px;width:48px;height:72px;display:grid;grid-template-columns:24px 24px;grid-template-rows:24px 24px 24px;align-items:center;justify-items:center}.info-skills.svelte-108xfkt span:where(.svelte-108xfkt){width:22px;height:22px;border-radius:50%;display:block}.info-skills.svelte-108xfkt img:where(.svelte-108xfkt){width:22px;height:22px;display:block}.info-skills.svelte-108xfkt .personal:where(.svelte-108xfkt){width:24px;height:24px}.info-skills.svelte-108xfkt .personal:where(.svelte-108xfkt) img:where(.svelte-108xfkt){width:24px;height:24px}.info-ranks.svelte-108xfkt{position:absolute;left:116px;top:116px;height:20px;display:flex;align-items:center;gap:4px}.info-ranks.svelte-108xfkt>span:where(.svelte-108xfkt){display:flex;align-items:center;gap:1px}.unit-info.svelte-108xfkt .info-ranks:where(.svelte-108xfkt) b:where(.svelte-108xfkt){display:inline;font:700 11px Georgia,serif;color:#624a25}.info-item-icon.svelte-108xfkt{display:inline-block;width:16px;height:16px;flex:none;background-image:url(/assets/ui/Icon-item.png);background-size:256px 32px}.info-inventory.svelte-108xfkt{position:absolute;left:112px;top:140px;width:176px;list-style:none;margin:0;padding:0;display:grid;grid-template-rows:repeat(5,19px)}.info-inventory.svelte-108xfkt li:where(.svelte-108xfkt){display:flex;gap:2px;align-items:center;padding:0 4px;height:19px;min-width:0;color:#493012;font:700 11px/19px Georgia,serif}.info-inventory.svelte-108xfkt li:where(.svelte-108xfkt)>span:where(.svelte-108xfkt){overflow:hidden;white-space:nowrap;text-overflow:ellipsis;min-width:0}.info-inventory.svelte-108xfkt .equipped:where(.svelte-108xfkt){color:#623517}.unit-info.svelte-108xfkt .info-equipped:where(.svelte-108xfkt){display:inline;margin-left:auto;flex:none;min-width:10px;text-align:center;background:#865631;color:#fff0b7;border-radius:2px;font:700 9px/12px Georgia,serif}@media(max-width:760px){.battle-workbench .unit-info.svelte-108xfkt{--info-scale:.8;top:76px;left:max(8px,env(safe-area-inset-left))}}@media(max-height:430px){.battle-workbench .unit-info.svelte-108xfkt{--info-scale:.78;top:70px}}.battle-volume-control.svelte-11mclin{position:absolute;z-index:70;left:max(14px,env(safe-area-inset-left));bottom:max(14px,env(safe-area-inset-bottom))}.audio-toggle.svelte-11mclin{min-width:100px;min-height:48px;font:17px Georgia,serif;padding:10px 14px;border:2px solid #af925c;background:linear-gradient(#fff2ca,#dac18a);color:#594324;box-shadow:0 2px 7px #241e17a8;border-radius:5px}.audio-toggle.svelte-11mclin span:where(.svelte-11mclin){margin-right:6px}.audio-panel.svelte-11mclin{position:absolute;left:0;bottom:62px;width:min(310px,calc(100vw - 28px));max-height:calc(100dvh - 100px);overflow-y:auto;padding:12px 14px;box-sizing:border-box;border:4px solid transparent;border-image:url(/assets/ui/window-light.png) 4 stretch;background:linear-gradient(#f3edda,#ddd1b0);box-shadow:0 4px 18px #201b16a0;color:#493b28;display:grid;gap:12px}.audio-heading.svelte-11mclin{display:flex;align-items:center;justify-content:space-between;font:18px Georgia,serif}.audio-heading.svelte-11mclin button:where(.svelte-11mclin){min-width:36px;min-height:36px;padding:3px;font-size:24px}.audio-panel.svelte-11mclin>label:where(.svelte-11mclin){display:block;margin:0;font-size:14px}.audio-panel.svelte-11mclin output:where(.svelte-11mclin){float:right;font-variant-numeric:tabular-nums}.audio-panel.svelte-11mclin input[type=range]:where(.svelte-11mclin){display:block;width:100%;min-height:36px;padding:0;margin:0;accent-color:#80663c;touch-action:pan-y}.audio-switches.svelte-11mclin{display:flex;flex-wrap:wrap;gap:8px 16px}.audio-switches.svelte-11mclin label:where(.svelte-11mclin){display:flex;align-items:center;gap:5px;font-size:13px;margin:0}.audio-switches.svelte-11mclin input:where(.svelte-11mclin){width:17px;min-height:17px}.audio-panel.svelte-11mclin small:where(.svelte-11mclin){font-size:11px;color:#80694a}.dragon-vein-original.svelte-xleyoj{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.object-break.svelte-1179g0d{position:absolute;inset:0;z-index:31;touch-action:none}.object-break.svelte-1179g0d span:where(.svelte-1179g0d){position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.phase-transition.svelte-1e976f{position:absolute;inset:0;overflow:hidden;touch-action:none;cursor:default}canvas.svelte-1e976f{position:absolute;inset:0;width:100%;height:100%;pointer-events:auto}.phase-shadow.svelte-1e976f{z-index:90;mix-blend-mode:multiply}.phase-ornaments.svelte-1e976f{z-index:91}.phase-light.svelte-1e976f{z-index:92;mix-blend-mode:plus-lighter}.character-ban.svelte-1k0sn45{display:flex;align-items:center;gap:8px}.character-ban.svelte-1k0sn45 input:where(.svelte-1k0sn45){width:20px;min-height:20px;height:20px;flex:none}.ban-warning.svelte-1k0sn45{color:#873d30;font-weight:600}.support-rules.svelte-1k0sn45{padding:14px 0;margin-bottom:18px;border-bottom:1px solid var(--line)}h3.svelte-1k0sn45{margin-bottom:12px}h4.svelte-1k0sn45{font:15px Georgia,serif;color:var(--ink);margin:16px 0 8px}p.svelte-1k0sn45{font-size:12px;margin:10px 0}ul.svelte-1k0sn45{list-style:none;margin:0 0 12px;padding:0}li.svelte-1k0sn45{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-bottom:1px solid #c9c2ae66;font-size:12px}strong.svelte-1k0sn45{font-weight:600;text-align:right;color:var(--ink)}small.svelte-1k0sn45{display:block;color:var(--muted);line-height:1.5}.family-editor.svelte-e95fcy{padding:14px 22px;border-bottom:1px solid var(--line)}h3.svelte-e95fcy{margin:0 0 10px}fieldset.svelte-e95fcy{border:1px solid var(--line);padding:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:0 0 10px;min-width:0}legend.svelte-e95fcy{font-size:12px;padding:0 5px}fieldset.svelte-e95fcy>div:where(.svelte-e95fcy){min-width:0}label.svelte-e95fcy{display:block;margin-bottom:6px}select.svelte-e95fcy{width:100%;min-width:0}.talent.svelte-e95fcy{grid-column:1/-1}small.svelte-e95fcy{display:block;font-size:11px;color:var(--muted);line-height:1.5}@media(max-width:600px){.family-editor.svelte-e95fcy{padding:14px 16px}fieldset.svelte-e95fcy{grid-template-columns:1fr}}.unit-actions.svelte-1qpxvko{padding:5px 7px 8px;color:#40311f;min-width:156px;max-width:190px;margin:0}.unit-action-name.svelte-1qpxvko{font:700 13px Georgia,serif;border-bottom:1px solid #b89a63;padding:3px 5px 6px;margin-bottom:3px}.unit-action-list.svelte-1qpxvko{display:flex;flex-direction:column;gap:2px}.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko){position:relative;min-height:39px;min-width:0;padding:6px 9px;text-align:left;font:16px Georgia,serif;border:1px solid transparent;background:transparent;box-shadow:none;color:#45331f;border-radius:2px}.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko):hover:not(:disabled),.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko):focus-visible{background:linear-gradient(#6c90a7,#3b5a72);border-color:#b5d7e4;color:#fff2c5;outline:none}.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko):hover:not(:disabled):before,.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko):focus-visible:before{content:"▸";position:absolute;left:-5px;color:#fff0ba}.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko):disabled{opacity:.43}.unit-action-list.svelte-1qpxvko kbd:where(.svelte-1qpxvko){font:10px Georgia,serif;border:1px solid #a28a59;border-radius:50%;padding:0 3px;margin-left:3px}label.svelte-1qpxvko{display:block;font-size:10px;color:#826a42;margin:8px 3px 3px}select.svelte-1qpxvko{width:100%;min-height:32px;font-size:11px;padding:4px}@media(pointer:coarse){.unit-action-list.svelte-1qpxvko button:where(.svelte-1qpxvko){min-height:44px}}.critical-cutin.svelte-1jufjte{position:absolute;inset:0;z-index:40;overflow:hidden;container-type:inline-size}.crit-original.svelte-1jufjte{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.crit-skip.svelte-1jufjte{position:absolute;bottom:4%;right:2%;font-size:clamp(9px,2cqw,12px);padding:3px 7px;background:#eee7cfbd;color:#423729;border:1px solid #bfa778;box-shadow:none;min-height:26px}.crit-skip.svelte-1jufjte kbd:where(.svelte-1jufjte){font:inherit;border:1px solid #a18c64;border-radius:50%;padding:0 3px}.crit-error.svelte-1jufjte{background:#f4e9d6;color:#842323}.sr-only.svelte-1jufjte{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.map-combat-presentation.svelte-8qwob1{position:absolute;inset:0;z-index:30;container-type:inline-size}.map-combat-hud.svelte-8qwob1{position:absolute;bottom:3%;left:8%;width:84%;display:grid;grid-template-columns:1fr 1fr;gap:4%;pointer-events:none}.combatant.svelte-8qwob1{padding:4px 7px;border:4px solid transparent;border-image:url(/assets/ui/window-light.png) 4 stretch;background:linear-gradient(#f3efdadf,#bccddbdc);box-shadow:1px 2px 3px #30291c77;font-family:Georgia,serif;color:#283a4a;min-width:0}.combatant.enemy.svelte-8qwob1{background:linear-gradient(#f5e4dadf,#d3a3a2dc);color:#703534;border-color:#d3aaa0}.combatant.svelte-8qwob1 b:where(.svelte-8qwob1){font-size:clamp(10px,2.9cqw,17px);display:block}.combatant.svelte-8qwob1 span:where(.svelte-8qwob1){font-size:clamp(9px,2.6cqw,15px)}.hp-track.svelte-8qwob1{height:4px;background:#3b2a1d99;margin-top:3px}.hp-track.svelte-8qwob1 i:where(.svelte-8qwob1){display:block;height:100%;background:#68ad55;transition:width .13s linear}.enemy.svelte-8qwob1 .hp-track:where(.svelte-8qwob1) i:where(.svelte-8qwob1){background:#d76566}.map-combat-skip.svelte-8qwob1{position:absolute;top:3%;right:2%;padding:3px 6px;min-height:26px;font-size:clamp(9px,2cqw,12px);background:#eee3bfdb;border:1px solid #a68b52;box-shadow:none}.map-combat-skip.svelte-8qwob1 kbd:where(.svelte-8qwob1){border:1px solid #8d7546;border-radius:50%;font:inherit;padding:0 3px}.sr-only.svelte-8qwob1{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.hp-track.svelte-8qwob1 i:where(.svelte-8qwob1){transition:none}}:root{font-family:Segoe UI,system-ui,-apple-system,sans-serif;color:#333b46;background:#e9e5da;font-synthesis:none;font-weight:400;--ink:#253b55;--blue:#385777;--gold:#a78d58;--line:#ccc5b4;--paper:#f5f1e7;--muted:#77786f;color-scheme:light}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 0,#f8f5ec,transparent 70%),repeating-linear-gradient(0deg,#847c6504 0,#847c6504 1px,transparent 1px,transparent 4px);min-width:320px}button,input,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:not-allowed}button,input,select{min-height:44px}button{border:1px solid #b8b09d;border-radius:3px;background:#f4f0e5;color:#354052;padding:10px 17px;transition:background .15s,border-color .15s,box-shadow .15s}button:hover:enabled{background:#fffaf0;border-color:#988155}button:active:enabled{transform:translateY(1px)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #4d85b2;outline-offset:3px}input,select{width:100%;border:1px solid #c7c0ae;background:#fffdf7;color:#333d49;border-radius:2px;padding:10px 12px;min-width:0}select{padding-right:28px}input::placeholder{color:#9a998f}h1,h2,h3,p{margin-top:0}h1,h2,h3{font-family:Georgia,Times New Roman,serif;color:var(--ink);font-weight:500}h1{font-size:clamp(28px,3.3vw,40px);letter-spacing:-1.1px;line-height:1.15;margin-bottom:10px}h2{font-size:27px}h3{font-size:19px}p{line-height:1.65;font-size:14px}label{font-size:12px;color:#706e62;display:block;margin-bottom:6px}small{font-size:11px}.primary{background:linear-gradient(#426384,#2a4563);border-color:#263f58;color:#fff7e6;box-shadow:inset 0 0 0 1px #c7d4de1c,0 2px 3px #1a2e4318}.primary:hover:enabled{background:linear-gradient(#507494,#365777);border-color:#20364d}.ghost{background:#f6f2e88c}.small{padding:5px 12px;min-height:34px;font-size:12px}.full{width:100%}.hidden{display:none}.topbar{height:94px;background:#263c56;color:#f2ead5;display:flex;justify-content:space-between;align-items:center;padding:0 max(28px,calc((100vw - 1400px)/2));border-bottom:3px solid #b8a477;box-shadow:inset 0 -6px #20344c;background-image:radial-gradient(ellipse at top left,#546c803d,transparent 55%)}.brand{display:flex;align-items:center;gap:17px;text-decoration:none;color:inherit;font:17px Georgia,serif;letter-spacing:2px;line-height:1.2}.brand b{font-size:25px;letter-spacing:4px;margin-left:4px;font-weight:500}.brand small{display:block;letter-spacing:3.8px;font:8px Segoe UI,sans-serif;padding-top:9px;color:#c2c6c6}.brand-mark{font-size:38px;color:#c2b28a;border-left:1px solid #bda77866;border-right:1px solid #bda77866;padding:0 12px}.header-right{display:flex;gap:26px;align-items:center}.mode-tag{font-size:10px;letter-spacing:2px;border:1px solid #aeb7bf50;padding:7px 10px;color:#d8d6cb}.connection{font-size:12px;display:flex;align-items:center;gap:7px;color:#8f9b9f;white-space:nowrap}.connection i,.status-dot{width:6px;height:6px;border-radius:50%;background:#a39a80;display:inline-block}.connection.online i{background:#9ac89e;box-shadow:0 0 7px #9ac89e66}.main-nav{height:61px;display:flex;align-items:stretch;gap:8px;padding:0 max(28px,calc((100vw - 1400px)/2));border-bottom:1px solid #c9c3b3;background:#f7f3e9db}.main-nav button{border:0;border-bottom:3px solid transparent;border-radius:0;padding:0 25px;background:transparent;font-size:13px;letter-spacing:.3px;color:#72796f;white-space:nowrap}.main-nav button span{margin-right:8px;font-size:18px}.main-nav button.active{color:var(--ink);border-bottom-color:var(--blue);background:linear-gradient(transparent,#bdc5c42a)}.main-nav sup{background:#e3dfd1;padding:2px 5px;margin-left:5px;font-size:10px}.nav-end{margin-left:auto;display:flex;align-items:center;gap:18px;font-size:9px;letter-spacing:2px;color:#8b8776}.nav-end span{color:#a08d5d;font-size:17px}main{max-width:1400px;margin:auto;padding:34px 28px 0;min-height:calc(100vh - 240px)}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 28px}.page-heading p:last-child{color:#838276;font-size:13px;margin-bottom:0}.eyebrow{font-size:9px;letter-spacing:2.8px;color:#9e8c65;font-weight:600;margin-bottom:12px}.heading-actions{display:flex;gap:10px;align-items:center}.heading-actions button{font-size:12px}.panel{background:var(--paper);border:1px solid #c9c2ae;border-radius:4px;box-shadow:0 2px 6px #4f44290b;overflow:hidden;position:relative}.panel-heading{height:46px;padding:0 19px;display:flex;align-items:center;justify-content:space-between;gap:10px;background:linear-gradient(#fbf8f0,#ebe7dc);border-bottom:1px solid #d1c9b8;font-size:10px;letter-spacing:1.6px;color:#686b65;font-weight:600}.panel-heading:before{content:"";position:absolute;top:0;left:0;width:100%;height:2px;background:linear-gradient(90deg,transparent,#a58f5b66,transparent)}.counter{font-size:11px;letter-spacing:1px;color:#9b8c6f}.builder-layout{display:grid;grid-template-columns:minmax(230px,.85fr) minmax(340px,1.4fr) minmax(300px,1.1fr);gap:20px;align-items:start}.team-name{padding:19px 17px 18px;border-bottom:1px solid #d6cfbe}.team-name input{font-family:Georgia,serif;font-size:16px;padding-left:9px}.save-state{font-size:10px;color:#9c9177;display:block;margin-top:9px}.unit-list{padding:11px}.unit-card{display:flex;position:relative;width:100%;gap:9px;align-items:center;text-align:left;min-height:84px;background:#f8f4e9;border:1px solid #d9d2c1;border-radius:2px;margin-bottom:8px;padding:5px 11px;overflow:hidden}.unit-card:last-child{margin-bottom:0}.unit-card.selected{border-color:#758ba2;background:linear-gradient(110deg,#e1e8e7,#f6f4e9);box-shadow:inset 3px 0 #365777}.unit-card.selected:after{content:"◆";position:absolute;right:9px;bottom:7px;font-size:7px;color:#59758c}.unit-number{font:10px Georgia,serif;color:#9a967f}.unit-thumb{position:relative;min-width:52px;height:67px;overflow:hidden;align-self:flex-end}.unit-thumb img{height:93px;width:93px;max-width:none;position:absolute;top:-2px;left:-20px;object-fit:contain}.unit-thumb span{font-size:40px;color:#7587a0}.unit-card-text{min-width:0;display:flex;flex-direction:column;gap:5px}.unit-card-text strong{font:19px Georgia,serif;color:#2e435b}.unit-card-text small{font-size:10px;color:#868574;line-height:1.3}.unit-faction{margin-left:auto;align-self:flex-start;margin-top:8px;color:#a99262;font-size:15px}.unit-faction.nohr{color:#7a7b96}.empty-slot{color:#97907b;font-size:12px}.team-bottom{padding:15px 17px 18px}.team-bottom p{font-size:10px;color:#78816b;margin-bottom:15px;display:flex;gap:7px;align-items:center}.status-dot{background:#8b9d70}.status-dot.invalid{background:#c29b62}.team-bottom button{font-size:12px}.text-button{border:0;background:transparent;min-height:32px;padding:3px;font-size:10px;color:#64788c;letter-spacing:0}.character-hero{height:291px;position:relative;overflow:hidden;background:linear-gradient(110deg,#e5e8df,#cdd8d7);isolation:isolate}.character-hero:before{content:"";position:absolute;inset:0;background-image:url(/assets/ui/Wallpaper-Wallpaper.png);background-size:100% auto;opacity:.1;filter:grayscale(1);z-index:-1}.hero-pattern{position:absolute;right:5px;top:-60px;font:350px Georgia,serif;color:#faf8e959;z-index:-1}.character-intro{padding:37px 0 0 24px;width:57%;position:relative;z-index:2}.faction-label{color:#9c8053;font-size:9px;letter-spacing:2px;border-bottom:1px solid #ad936450;padding-bottom:7px;display:inline-block}.faction-label.nohr{color:#767387;border-color:#76738755}.character-intro h2{font-size:43px;letter-spacing:-1px;margin:16px 0 12px}.character-intro p{font-size:11px;line-height:1.7;color:#6a756f;text-wrap:pretty;position:relative;max-width:175px;white-space:pre-line;text-shadow:0 1px 4px #e2e7df}.level-badge{font-size:7px;letter-spacing:1.2px;border:1px solid #c1bfaa;padding:6px;color:#7b826f;background:#f9f5e6bb;display:inline-block;margin-top:6px}.level-badge b{border-left:1px solid #bcbda9;margin-left:5px;padding-left:5px;font-weight:500}.hero-portrait{position:absolute;bottom:-7px;right:-49px;width:330px;height:330px;object-fit:contain;z-index:1;filter:drop-shadow(3px 4px 3px #3d4a5320)}.class-row{display:flex;align-items:center;gap:13px;padding:16px 20px;border-top:1px solid #bec9c2;border-bottom:1px solid #dbd4c3;background:#faf6eb}.class-row label{margin:0;white-space:nowrap}.class-row select{font-size:12px;min-height:38px;padding:6px 8px;flex:1}.class-row>span{font-size:9px;color:#8f8b78;white-space:nowrap}.class-row b{font:19px Georgia,serif;color:#546c68;margin-left:5px}.stats-grid{padding:20px 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:23px 19px}.stat{display:grid;grid-template-columns:1fr auto;align-items:baseline;gap:8px}.stat>span{font-size:9px;color:#85816c}.stat strong{font:23px Georgia,serif;color:#3b5260}.stat-track{height:3px;width:100%;background:#dfdbca;grid-column:span 2}.stat-track i{display:block;height:3px;background:#8e9a81}.stat:first-child .stat-track i{background:#a89069}.weapon-proficiency{border-top:1px solid #e0d9c8;padding:17px 21px;display:flex;flex-wrap:wrap;align-items:center;gap:8px}.weapon-proficiency>span:first-child{font-size:9px;color:#8c8676;margin-right:auto}.proficiency{font-size:10px;background:#eae7d9;padding:5px 8px;border:1px solid #dad1bd;color:#767765}.proficiency b{color:#a18956;padding-left:6px}.unit-description{border-top:1px solid #e2dbc9;display:flex;padding:13px 21px;align-items:center;gap:10px;color:#b09c72;background:#ece9dd55}.unit-description p{font-size:9px;color:#9a9380;margin:0}.equipment-tabs{display:flex;border-bottom:1px solid #d5cdbb;padding:0 15px}.equipment-tabs button{border:0;border-radius:0;background:none;flex:1;font-size:11px;color:#94907e;border-bottom:2px solid transparent}.equipment-tabs button.active{color:#3c526c;border-bottom-color:#6b8192}.equipment-intro{padding:20px 19px 3px}.equipment-intro h3{font-size:20px;margin-bottom:7px}.equipment-intro p{font-size:10px;color:#8b8573;line-height:1.6;margin-bottom:10px}.equipment-list{padding:0 17px 15px}.equipment-slot{padding:13px 0;border-bottom:1px solid #ded7c5}.equipment-slot:last-child{border:0;padding-bottom:3px}.equipment-slot select{font-size:12px;min-height:37px;padding:7px 10px}.slot-title{display:flex;align-items:center;gap:8px;margin-bottom:7px}.slot-title label{margin:0;font-size:9px;color:#8f8871}.weapon-symbol{color:#9d8f66;font-size:17px;line-height:18px}.rank-badge{margin-left:auto;font:12px Georgia,serif;color:#a18b56;border:1px solid #d9cfb3;width:19px;text-align:center;line-height:18px}.weapon-values{display:flex;gap:15px;font-size:9px;color:#aaa18b;padding:9px 1px 3px}.weapon-values b{color:#5b655e;font-weight:500;margin-left:3px}.weapon-description{font-size:10px;color:#8c887a;line-height:1.6;margin:4px 0 0;white-space:pre-line}.personal-skill{margin:16px 17px 0;padding:14px;background:#e8e7d9;border:1px solid #d7d0bc}.personal-skill small{font-size:8px;letter-spacing:1px;color:#9a8a65}.personal-skill h3{font-size:17px;margin:9px 0}.personal-skill p{font-size:10px;color:#82826e;white-space:pre-line;margin:0}.skill-source{font-size:8px;color:#b09c72;display:block;margin-top:7px}.inset-note{font-size:11px;color:#8f8672;padding:18px;line-height:1.8}.rules-copy{padding:22px 20px}.rules-copy p{font-size:11px;color:#847f6e}.rules-copy h3{font-size:19px}.bottom-bar{display:flex;align-items:center;gap:10px;padding:20px 0 8px}.bottom-bar>span{margin-right:auto;font-size:10px;color:#8d8673}.muted{color:#a6a18e}.bottom-bar button{font-size:11px;min-height:36px;padding:7px 13px}footer{max-width:1400px;margin:28px auto 0;padding:22px 28px;display:flex;justify-content:space-between;border-top:1px solid #d1c9b6;font-size:9px;color:#a19a87;gap:14px}footer>span:first-child{letter-spacing:1.3px}footer b{color:#ac976b;margin:0 6px}.banner{padding:12px 28px;background:#ede2bd;border-bottom:1px solid #ccbd91;display:flex;align-items:center;justify-content:space-between;font-size:13px;gap:12px}.banner.error{background:#f0ddcf;color:#854e3e}.banner button{min-height:30px;padding:3px 12px}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);z-index:50;background:#2b4355;color:#faf2da;padding:14px 25px;box-shadow:0 5px 20px #283c5430;border:1px solid #bda478;border-radius:3px;font-size:12px;max-width:92vw}.empty{text-align:center;padding:70px 24px}.empty h2{font-size:25px}.empty p{color:#8b8472}.empty button{margin-top:15px}.loading-crest{font-size:90px;color:#a79365}.archive-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}.archive-card{padding:25px}.archive-card>small{color:#a4916c;font-size:8px;letter-spacing:1.4px}.archive-card h2{font-size:24px;margin:13px 0 22px}.archive-faces{display:flex;height:110px;overflow:hidden;background:#e3e4d9;border-bottom:1px solid #cabf9f}.archive-faces>div{flex:1;min-width:0;position:relative}.archive-faces img{width:150px;height:150px;position:absolute;left:50%;transform:translate(-50%);top:0}.archive-card>p{font-size:10px;color:#a29a84;margin-top:14px}.card-actions{display:flex;gap:9px}.card-actions button:first-child{flex:1;font-size:11px}.online-layout{display:grid;grid-template-columns:1.6fr 1fr;gap:24px;max-width:1000px}.lobby-actions{max-width:450px;padding:35px;margin:auto}.lobby-actions h2{font-size:30px;line-height:1.25}.lobby-actions p{color:#8d8572;font-size:12px}.or-divider{display:flex;align-items:center;gap:14px;margin:25px 0;font-size:9px;letter-spacing:1px;color:#a7997e}.or-divider:before,.or-divider:after{content:"";height:1px;background:#d7cfb9;flex:1}.join-row{display:flex;gap:10px}.join-row input{letter-spacing:3px;text-transform:uppercase}.practice-panel h2,.practice-panel h3,.practice-panel>p,.practice-panel>button{margin-left:25px;margin-right:25px}.practice-panel h2{font-size:27px;line-height:1.3;margin-top:28px}.practice-panel>p{font-size:12px;color:#8b826e}.practice-panel>button{width:calc(100% - 50px);font-size:11px;margin-bottom:22px}.rule-divider{height:1px;background:#d5cbb6;margin:0 25px 25px}.room-info{padding:40px;text-align:center}.room-info>small{letter-spacing:3px;color:#a38c5e}.room-info h2{font:48px Georgia,serif;letter-spacing:9px;margin:20px 0}.room-info p{color:#7e8374}.room-info button{display:block;margin:15px auto}.room-list{margin-top:25px;max-width:1000px}.room-list>p{padding:20px 25px;margin:0;color:#948b75;font-size:12px}.room-list>div:not(.panel-heading){display:flex;align-items:center;justify-content:space-between;padding:12px 22px;border-bottom:1px solid #d9d0ba;font-size:12px}.room-list b{letter-spacing:2px}.inline-error{color:#af6350!important}.battle-layout{display:grid;grid-template-columns:minmax(400px,2fr) minmax(260px,.8fr);gap:24px}.battlefield{padding:12px;background:#e2dfcd;align-self:start}.board{position:relative;width:100%;aspect-ratio:6/5;background:#c1c7a4;border:1px solid #8d9479}.board>canvas{display:block;width:100%!important;height:100%!important}.board-controls{position:absolute;inset:0;display:grid;grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(10,1fr)}.board-controls button{min-height:0;min-width:0;padding:0;border-radius:0;border:1px solid transparent;background:transparent}.board-controls button:hover{background:#ffffd830;border-color:#eee3b1}.board-controls button:focus-visible{outline:3px solid #fceba7;outline-offset:-3px}.board-controls button span{font-size:22px;color:#32598b}.board-legend{display:flex;align-items:center;gap:20px;padding:13px 4px 0;font-size:9px;color:#7d8069;flex-wrap:wrap}.blue-dot,.red-dot{display:inline-block;width:7px;height:7px;border-radius:50%;background:#456990;margin-right:4px}.red-dot{background:#a25457}.battle-selected{padding:22px}.battle-selected h2{margin-bottom:10px}.battle-selected p{font-size:12px;color:#89826c}.battle-selected label{margin-top:24px}.battle-selected select{font-size:12px}.hp-bar{height:6px;background:#ddd7c2}.hp-bar i{height:100%;display:block;background:#8fa571}.battle-log{padding:10px 22px 15px 35px;max-height:350px;overflow:auto;margin:0}.battle-log li{font-size:11px;color:#87816d;padding:7px 0;line-height:1.5;border-bottom:1px solid #e1dac7}dialog{width:min(880px,94vw);max-height:88dvh;background:var(--paper);border:1px solid #b4a075;border-radius:5px;padding:0;color:#333b46;box-shadow:0 20px 100px #14243655}dialog::backdrop{background:#172c407a;backdrop-filter:blur(3px)}.dialog-heading{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;border-bottom:1px solid #d2c7ac}.dialog-heading h2{margin-bottom:0}.dialog-heading .eyebrow{margin-bottom:8px}.roster-filters{display:flex;gap:12px;padding:20px 28px}.roster-filters select{width:150px}.roster-grid{display:grid;grid-template-columns:repeat(6,1fr);padding:0 28px;gap:12px;max-height:50vh;overflow:auto}.roster-character{padding:0 5px 10px;display:flex;align-items:center;flex-direction:column;overflow:hidden;position:relative;min-height:138px;background:linear-gradient(#dee4db,#eeeadd)}.roster-character img{width:110px;height:110px;object-fit:contain;margin-bottom:0}.roster-character strong{font:16px Georgia,serif;color:#334a60}.roster-character small{font-size:8px;color:#8d8773;margin-top:5px}.roster-character.unavailable{filter:grayscale(.7);opacity:.5}.portrait-fallback{height:110px;display:grid;place-items:center;font-size:50px;color:#84948e}.dialog-footnote{padding:15px 28px;margin:0;font-size:10px;color:#91866e}.room-list button{font-size:10px}@media(min-width:1450px){main{padding-top:40px}.character-hero{height:310px}.hero-portrait{width:355px;height:355px;right:-45px}.character-intro{padding-top:40px}.unit-card{min-height:88px}}@media(max-width:1150px){.builder-layout{grid-template-columns:220px minmax(300px,1fr)}.equipment-panel{grid-column:2;grid-row:2}.team-panel{grid-row:span 2}.unit-editor{grid-column:2}.header-right{gap:15px}.brand{font-size:14px}.brand b{font-size:21px}.character-hero{height:280px}.archive-grid{grid-template-columns:repeat(2,1fr)}.equipment-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}.equipment-panel .equipment-list>.equipment-slot:first-child{grid-column:span 2}.bottom-bar .muted{display:none}}@media(max-width:760px){.topbar{height:80px;padding:0 17px}.brand{gap:9px;font-size:11px;letter-spacing:1px}.brand b{font-size:19px;letter-spacing:2px}.brand small{font-size:6px;letter-spacing:2.2px}.brand-mark{font-size:29px;padding:0 8px}.header-right .mode-tag{display:none}.header-right .connection{font-size:9px}.header-right{gap:6px}.header-right button{font-size:9px;padding:4px 7px}.main-nav{height:55px;padding:0 10px;gap:0;overflow-x:auto}.main-nav button{padding:0 13px;font-size:11px}.main-nav button span{font-size:15px;margin-right:4px}.nav-end{display:none}main{padding:25px 16px 0}.page-heading{align-items:start;gap:15px;flex-direction:column;margin-bottom:22px}.page-heading h1{font-size:31px}.page-heading .eyebrow{font-size:8px;margin-bottom:9px}.page-heading p:last-child{font-size:11px}.heading-actions{width:100%;gap:8px}.heading-actions button{flex:1;font-size:11px;padding:9px 10px}.builder-layout{display:flex;flex-direction:column;gap:17px}.builder-layout>.panel{width:100%}.team-panel .panel-heading{height:37px}.team-name{padding:12px 15px;display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.team-name label{margin:0;font-size:9px}.team-name input{width:100%;order:2;font-size:16px;min-height:36px;padding:7px}.team-name .save-state{margin-left:auto;font-size:8px;margin-top:0}.unit-list{display:flex;gap:6px;padding:10px}.unit-card{min-width:0;flex:1;flex-direction:column;gap:0;height:108px;padding:3px 2px;margin:0;min-height:0;justify-content:end}.unit-number{position:absolute;left:5px;top:4px;font-size:8px}.unit-thumb{height:65px;width:52px;min-width:0;align-self:center}.unit-thumb img{height:85px;width:85px;left:-15px;top:0}.unit-card-text{gap:3px;align-items:center;text-align:center;max-width:100%;padding:0 2px}.unit-card-text strong{font-size:12px}.unit-card-text small{font-size:7px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.unit-faction{position:absolute;right:4px;top:0;margin:2px 0;font-size:10px}.unit-card.selected:after{display:none}.empty-slot{font-size:9px;line-height:1.6;padding:20px 0}.team-bottom{padding:5px 13px 12px;display:flex;align-items:center;gap:10px;justify-content:space-between}.team-bottom p{font-size:8px;margin:0}.team-bottom button{width:auto;min-height:30px;font-size:9px;padding:5px 10px}.character-hero{height:265px}.character-intro{padding:28px 0 0 24px}.character-intro h2{font-size:42px}.hero-portrait{width:310px;height:310px;right:-23px}.stats-grid{padding:20px 23px}.class-row{padding:14px 20px}.equipment-list{grid-template-columns:1fr}.equipment-panel .equipment-list>.equipment-slot:first-child{grid-column:auto}.equipment-slot{padding:13px 0}.equipment-slot select{min-height:44px}.equipment-intro p,.weapon-description{font-size:11px}.weapon-values{font-size:10px;gap:24px}.bottom-bar{flex-wrap:wrap}.bottom-bar>span{width:100%;font-size:8px;padding:5px 0}.bottom-bar button{flex:1}footer{margin-top:20px;padding:17px 16px;flex-direction:column;font-size:8px}.archive-grid{grid-template-columns:1fr}.archive-faces{height:130px}.archive-faces img{width:180px;height:180px}.online-layout{grid-template-columns:1fr;gap:18px}.lobby-actions{padding:26px}.lobby-actions h2{font-size:27px}.battle-layout{grid-template-columns:1fr;gap:18px}.battlefield{padding:6px}.battle-sidebar{display:grid;grid-template-columns:1fr 1fr}.battle-sidebar>.panel-heading{grid-column:span 2}.battle-selected{grid-column:span 2}.battle-log{grid-column:span 2;max-height:220px}.board-legend{font-size:8px;gap:10px;padding:10px 5px 4px}.roster-grid{grid-template-columns:repeat(3,1fr);gap:8px;padding:0 16px}.roster-filters{padding:16px;gap:8px}.roster-filters select{width:110px;font-size:12px}.dialog-heading{padding:18px}.dialog-heading h2{font-size:24px}.roster-character strong{font-size:14px}.toast{width:max-content;max-width:94vw;font-size:11px;padding:12px 18px;bottom:14px}.banner{padding:12px 16px;font-size:11px}.room-info{padding:30px 17px}.room-info h2{font-size:40px}.room-info button{font-size:11px}}@media(prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}@media(display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}}:root{--ink:#3c3023;--blue:#5c5744;--gold:#b58b41;--paper:#eee2bc;--line:#b6955d;background:#645541;color:#403a2d}body{background:linear-gradient(#e5d5aece,#dfcfacdf),url(/assets/ui/Wallpaper-Wallpaper.png) center top/512px auto repeat;min-height:100vh}.topbar{height:76px;color:#392e23;border-bottom:3px double #8c6e3c;box-shadow:0 2px 5px #40301b44;background:linear-gradient(90deg,#ded0a9f5,#f1e9d3f2 50%,#d3c198f5);padding-left:max(24px,calc((100vw - 1400px)/2));padding-right:max(24px,calc((100vw - 1400px)/2))}.brand-mark{border-color:#ae8e5688;padding:0 5px;display:block}.brand-mark img{display:block;width:38px;height:45px;object-fit:cover;border-radius:4px}.brand small{color:#82704d}.brand b{font-style:italic}.header-right .connection{color:#77694a}.mode-tag{color:#795f38;border-color:#b69b6b}.connection.online i{background:#5b844e}.main-nav{height:50px;background:linear-gradient(#e6dbbc,#d4c39b);border-color:#a68a56;box-shadow:inset 0 1px #fff5d2}.main-nav button{color:#7a6341;font-family:Georgia,serif;font-size:15px;min-height:46px}.main-nav button.active{color:#362e1f;border-color:#9c7032;background:linear-gradient(#f5edd3,#dfc78f)}.nav-end{color:#92754b}.page-heading{margin-bottom:19px}.page-heading .eyebrow{color:#92703f}.page-heading h1{font-size:32px;letter-spacing:-.6px;margin-bottom:6px}.page-heading p:last-child{color:#84714e}.panel{border:11px solid transparent;border-image:url(/assets/ui/window-light.png) 19 fill stretch;border-radius:0;background:none;box-shadow:0 3px 8px #49351b24;overflow:visible}.panel-heading{margin:-1px -1px 0;height:38px;background:linear-gradient(#e9d7a3bb,#cdb37777);border-color:#b39459;font-family:Georgia,serif;font-size:12px;letter-spacing:.6px;color:#664e2c}.panel-heading:before{display:none}button{border-color:#b1945b;color:#4d3a25;background:linear-gradient(#fbf0c7,#dfca94);border-radius:5px;box-shadow:inset 0 1px #fff6d1}.primary{background:linear-gradient(#68849b,#364e65);color:#fff2cb;border:1px solid #3e4d56;box-shadow:inset 0 1px #c1ccd055,0 1px 2px #34251755}.primary:hover:enabled{background:linear-gradient(#7b98ab,#45667b)}.ghost{background:linear-gradient(#f4e9c9,#ded0aa)}input,select{background:#fff7d9;border-color:#b59c6a;color:#493a24}.team-name{background:#f2e8c7a8;border-color:#c2a16a}.unit-list{padding:6px 1px}.unit-card{border-radius:5px;border-color:#c8ab70;background:linear-gradient(#f4e6b9,#decd9d);min-height:76px;box-shadow:inset 0 1px #fff8d5}.unit-card.selected{border:1px solid #54758a;background:linear-gradient(90deg,#a9bbc1,#e8e3c9);box-shadow:inset 2px 0 #486d83,0 0 0 1px #f8f0d6}.unit-card-text strong{color:#423523}.unit-card-text small{color:#846c43}.unit-card.selected .unit-card-text strong{color:#243c4b}.unit-thumb{height:64px}.unit-card-text strong{font-size:21px}.team-bottom{border-top:1px solid #c8ae78;padding:13px 4px 5px}.unit-editor .panel-heading{margin-bottom:1px}.character-hero{height:275px;background:linear-gradient(110deg,#eddfb9ee,#ded0a6aa);border:1px solid #bea575;border-radius:3px}.character-hero:before{opacity:.19;filter:sepia(.4);background-size:512px auto}.hero-pattern{color:#fff2d369}.character-intro h2{color:#40311f;text-shadow:0 1px #fff7dc}.character-intro p{color:#7b6b4b;text-shadow:0 1px #f5eac7}.hero-portrait{filter:drop-shadow(1px 2px 2px #59462550)}.faction-label{color:#96683a}.class-row{border-color:#bea575;background:#e3d4aa;padding:12px 10px;gap:9px}.stats-grid{padding:17px 10px;gap:17px 14px}.stat{border-bottom:1px solid #c4a568;padding-bottom:4px}.stat>span{color:#8f7345}.stat strong{color:#453923;font-size:24px}.stat-track{background:#c5b783}.stat-track i{background:#7d8b65}.weapon-proficiency{padding:14px 9px;border-color:#bda16a}.proficiency{background:#f4eac8;border-color:#bea16b}.unit-description{padding:11px 9px;background:#d6c39366;border-color:#bda16a}.unit-description p{color:#937d52}.equipment-tabs{background:#ddc99d;padding:0 5px;border-color:#b49a65}.equipment-tabs button{font-family:Georgia,serif;font-size:13px;box-shadow:none}.equipment-tabs button.active{color:#67491d;border-color:#8e6734;background:#edddb655}.equipment-intro{padding:17px 9px 0}.equipment-intro p,.weapon-description{color:#8c7248}.equipment-list{padding:0 8px 10px}.equipment-slot{border-color:#c6ab76}.weapon-values{color:#9b8051}.weapon-values b{color:#614c2c}.original-weapon-icon{width:16px;height:16px;min-width:16px;display:inline-block;font-size:0;line-height:0;background-image:url(/assets/ui/Icon-item.png);image-rendering:pixelated}.rank-badge{color:#855c22;border-color:#c4a46d}.text-button{box-shadow:none;color:#775c30}.save-state{color:#947b4e}.personal-skill{background:#dfcfa2;border-color:#bba06a}.personal-skill p{color:#7a6745}.rules-copy p{color:#806d47}.bottom-bar>span,footer{color:#8c7751}.bottom-bar{padding-top:14px}footer{border-color:#b59b6d}main{padding-top:26px}.roster-character{background:linear-gradient(#e5d4a7,#c7b17b);border:1px solid #b79859;box-shadow:inset 0 0 0 1px #f6eacb}.roster-character strong{color:#4d3821}.roster-character small{color:#7e653e}dialog{background:#eaddb8;border:6px ridge #bba06c}.dialog-heading{background:#dbc593;border-color:#baa066}.banner{color:#5e4527;background:#f0dfad}.toast{background:#454132;border-color:#cbb479;color:#fff1ce}.archive-card>small{color:#92713d}.archive-faces{background:#cbbb8e}.room-list>p{color:#8a7046}.room-list>div:not(.panel-heading){border-color:#bfa36b}.room-info small{color:#96713b}.rule-divider{background:#bba16c}.practice-panel h2{margin-top:24px}.lobby-actions select{margin:0 0 18px}.screen-label{display:flex;justify-content:space-between;gap:12px;align-items:center;font:10px Georgia,serif;color:#8a7148;letter-spacing:1.3px;min-height:23px;padding:0 4px 7px}.screen-label span:last-child{font:10px Segoe UI,sans-serif;letter-spacing:0}.ds-battle-layout{display:grid;grid-template-columns:minmax(420px,1.4fr) minmax(290px,1fr);gap:18px;align-items:start}.screen-top,.screen-bottom{align-self:start;min-width:0}.top-screen{position:relative;aspect-ratio:400/240;background:#322c20;border:2px solid #796040;box-shadow:0 1px #fff1c3;overflow:hidden}.original-map-viewport{width:100%;height:100%;overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8e7954 #423e2d;touch-action:pan-x pan-y}.original-map-world{position:relative;flex-shrink:0}.original-map-world canvas{display:block;width:100%!important;height:100%!important;image-rendering:pixelated}.original-map-controls{position:absolute;inset:0;display:grid}.original-map-controls button{min-width:0;min-height:0;border:1px solid transparent;box-shadow:none;border-radius:0;padding:0;background:none;touch-action:pan-x pan-y}.original-map-controls button:hover{border:1px solid #fff7bc;background:#fff1a71a}.original-map-controls button:focus-visible{outline:2px solid #ffe997;outline-offset:-2px}.map-loading,.map-load-error{position:absolute;left:12px;bottom:5px;background:#423c2de8;color:#f6e7bd;padding:6px 11px;font-size:11px;pointer-events:none}.map-load-error{color:#ffcbab}.map-unit-hud{position:absolute;left:7px;top:6px;min-width:135px;max-width:38%;padding:6px 10px;background:linear-gradient(90deg,#eee0b8f0,#d9c999d9);border:2px ridge #b19761;border-radius:5px;box-shadow:0 1px 4px #30241788;pointer-events:none;font-size:10px}.map-unit-hud b{display:block;font:17px Georgia,serif;color:#3c4b52}.map-unit-hud>span{font-size:8px;color:#827148}.map-unit-hud>div{margin-top:4px;color:#8a7748}.map-unit-hud strong{font-size:14px;color:#3b4029}.map-unit-hud.enemy b{color:#843a2c}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 4px 0}.map-toolbar label{display:flex;align-items:center;gap:5px;font-size:10px;color:#887245;margin:0;white-space:nowrap}.map-toolbar input[type=range]{width:80px;min-height:18px;padding:0;accent-color:#8d7446}.map-toolbar input[type=checkbox]{width:15px;min-height:15px;padding:0;accent-color:#8d7446}.map-toolbar>span{font-size:8px;color:#947c51}.combat-forecast{position:absolute;right:8px;top:6px;bottom:9px;width:42%;max-width:250px;z-index:5;display:flex;flex-direction:column;filter:drop-shadow(1px 2px 3px #34221988)}.forecast-caption{font:8px Georgia,serif;letter-spacing:1.6px;color:#f6e7bd;text-shadow:1px 1px #302519;margin-bottom:4px;text-align:center}.forecast-side{position:relative;flex:1;min-height:0;padding:3px 8px 5px;background:linear-gradient(100deg,#e4d4a5,#c6b07c);border:2px solid #ae8c4f;border-radius:5px;overflow:hidden}.forecast-side.enemy{background:linear-gradient(100deg,#d99d82,#bd765d);border-color:#a65d3b;margin-bottom:5px}.forecast-name{font:bold clamp(11px,1.3vw,19px) Georgia,serif;position:relative;z-index:2;color:#3a493f;display:flex;justify-content:space-between;gap:6px;border-bottom:1px solid #8e804c66;line-height:1.3;padding-bottom:2px}.enemy .forecast-name{color:#5a211d;border-color:#99533566}.forecast-name>span{font:14px Georgia,serif;color:#f7f0cf;text-shadow:1px 1px #53472b}.forecast-name small{font-size:8px}.forecast-weapon{font-size:clamp(8px,.9vw,12px);color:#5b4a2c;position:relative;z-index:2;margin-top:2px}.forecast-hp{position:relative;z-index:2;width:67%;height:4px;background:#837c4a;margin:4px 0}.forecast-hp i{display:block;height:100%;background:linear-gradient(#b6ce78,#7f9c40)}.enemy .forecast-hp{background:#8c4e3b}.enemy .forecast-hp i{background:linear-gradient(#f9d286,#d69746)}.forecast-portrait{position:absolute;right:-13px;bottom:-14px;width:110px;height:110px;opacity:.72;object-fit:contain;mask-image:linear-gradient(90deg,transparent,#000 30%);pointer-events:none}.forecast-side dl{position:relative;z-index:2;margin:0;width:65%;font:clamp(9px,1vw,13px) Georgia,serif;display:grid;gap:1px}.forecast-side dl>div{display:flex;align-items:center;justify-content:space-between;gap:5px;background:#fff1bf66;border-radius:8px;padding:0 6px;min-height:15px}.enemy dl>div{background:#f9dfb777}.forecast-side dt{font-size:9px;color:#806237}.forecast-side dd{font-weight:700;margin:0;color:#392b1c}.forecast-side dd small{font-size:8px;margin-left:2px;font-weight:400}.double-hit{background:#46752a;color:#f4f6c9;font:9px Georgia,serif;padding:1px 2px;margin-left:3px}.forecast-buttons{display:flex;gap:5px;margin-top:4px}.forecast-buttons button{min-height:27px;font-size:10px;padding:4px 7px}.confirm-attack{flex:1;font-weight:600;background:linear-gradient(#fcf1c8,#d8bb79);color:#573715}.cancel-attack{width:30px;padding:3px!important}.bottom-screen{position:relative;aspect-ratio:320/240;border:1px solid #b69c67;background:url(/assets/ui/paper.png) center/112px 108px repeat;overflow:hidden;padding:10px}.ds-unit-summary{position:relative;min-height:95px;padding-right:100px;border-bottom:1px solid #be9e64}.ds-unit-summary>img{position:absolute;right:-24px;top:-26px;width:160px;height:160px;object-fit:contain;mask-image:linear-gradient(#000 70%,transparent);opacity:.97}.ds-unit-summary h2{font-size:25px;margin:0 0 3px}.ds-unit-summary p{font-size:11px;margin-bottom:6px;color:#85683d}.ds-hp{font:11px Georgia,serif;color:#8e6e3c}.ds-hp strong{font-size:20px;color:#5f6236}.ds-unit-summary .hp-bar{height:4px;width:95%;background:#c5b17c;margin:6px 0 10px}.ds-stats{display:grid;grid-template-columns:1fr 1fr;gap:4px 16px;margin-top:12px}.ds-stats>div{display:flex;justify-content:space-between;border-radius:12px;padding:3px 10px;background:linear-gradient(90deg,#d6bb7f99,#f8edccbb);border-bottom:1px solid #c6a15f}.ds-stats span{color:#8b6b35;font-size:11px}.ds-stats b{font:18px Georgia,serif;color:#47351e}.ds-skill-icons{margin-top:10px;display:flex;flex-wrap:wrap;gap:4px;max-height:38px;overflow:hidden}.ds-skill-icons>span{font-size:8px;padding:3px 5px;border:1px solid #bba165;background:#eee2bc}.ds-status-empty{text-align:center;position:relative;height:100%;padding-top:20px;overflow:hidden}.ds-status-empty p{font-size:12px;position:relative;z-index:1;color:#826c43}.ds-status-empty>img{width:150px;height:240px;object-fit:cover;position:absolute;left:50%;transform:translate(-50%);top:10px;opacity:.2}.ds-unit-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin-top:8px}.ds-unit-strip button{position:relative;min-width:0;padding:0 3px 4px;overflow:hidden;font-size:10px;border-radius:4px;min-height:64px}.ds-unit-strip img{height:58px;width:58px;object-fit:contain;display:block;margin:-4px auto -7px}.ds-unit-strip span{display:block;font:11px Georgia,serif}.ds-unit-strip small{font-size:8px;color:#907444}.ds-unit-strip button.selected{border-color:#5e7e92;background:#c9d2c6;box-shadow:inset 0 0 0 1px #f8eecd}.ds-commands{grid-column:1}.ds-log{grid-column:2}.ds-log .battle-log{max-height:190px}.command-controls{padding:12px 6px}.command-controls select{font-size:12px;margin-bottom:10px}.command-buttons{display:flex;gap:8px}.command-buttons button{flex:1;font-family:Georgia,serif;font-size:14px;background:linear-gradient(#f3e6b8,#cdb17a);border:1px solid #ad894c;box-shadow:inset 0 0 0 1px #f7ebca}.command-buttons kbd{font:10px Georgia,serif;border:1px solid #a68c55;border-radius:50%;padding:1px 4px;margin-left:4px}.ds-log .battle-log li{border-color:#cdb27a;color:#846a42}.battle-workbench .page-heading h1{font-size:29px}@media(min-width:1450px){.top-screen{min-height:400px}.forecast-side dl>div{min-height:20px}.forecast-side dt{font-size:12px}.forecast-side dd{font-size:17px}.forecast-portrait{width:150px;height:150px}.forecast-buttons button{min-height:35px;font-size:12px}}@media(max-width:1150px){.ds-battle-layout{grid-template-columns:minmax(350px,1.3fr) minmax(280px,1fr)}.bottom-screen{aspect-ratio:auto;min-height:282px}.ds-unit-summary>img{width:130px;height:130px}.ds-unit-summary{padding-right:85px;min-height:85px}.ds-stats{gap:3px 8px}.ds-stats>div{padding:2px 7px}.ds-stats span{font-size:10px}.ds-stats b{font-size:16px}.ds-unit-strip span{font-size:10px}.ds-unit-strip img{width:48px;height:48px}.combat-forecast{width:45%}.forecast-portrait{width:95px;height:95px}}@media(max-width:760px){.topbar{height:65px;padding:0 13px}.brand-mark img{width:27px;height:35px}.brand small{font-size:6px}.brand b{font-size:20px}.brand{gap:8px}.main-nav{height:48px;padding:0 6px}.main-nav button{font-size:12px;padding:0 12px}.page-heading h1{font-size:28px}.page-heading{gap:14px}.page-heading .heading-actions{flex-wrap:wrap}.heading-actions button{min-width:90px}main{padding:22px 10px 0}.panel{border-width:9px}.builder-layout{gap:14px}.character-hero{height:256px}.hero-portrait{width:300px;height:300px;right:-28px}.character-intro{padding-left:16px}.character-intro h2{font-size:38px}.character-intro p{font-size:10px;max-width:145px}.team-name{padding:9px}.team-name .save-state{font-size:7px}.unit-list{padding:8px 0}.unit-card{min-height:0;height:105px;box-shadow:inset 0 1px #fff1ca}.unit-card-text strong{font-size:12px}.unit-card-text small{font-size:7px}.stats-grid{padding:17px 10px;gap:16px 12px}.equipment-slot select{min-height:43px}.ds-battle-layout{display:flex;flex-direction:column;gap:15px}.ds-battle-layout>.panel{width:100%}.screen-top{order:0}.screen-bottom{order:2}.ds-commands{order:1}.ds-log{order:3}.screen-label{font-size:8px;letter-spacing:.8px;padding-bottom:5px;min-height:20px}.screen-label span:last-child{font-size:8px}.top-screen{aspect-ratio:400/240;min-height:0}.map-unit-hud{min-width:107px;padding:4px 6px;left:4px;top:4px;border-width:1px}.map-unit-hud b{font-size:14px}.map-unit-hud>span{font-size:7px}.map-unit-hud>div{font-size:8px;margin-top:2px}.map-unit-hud strong{font-size:12px}.combat-forecast{width:43%;right:4px;top:4px;bottom:6px}.forecast-caption{font-size:6px;letter-spacing:.9px;margin-bottom:2px}.forecast-side{padding:2px 5px 3px;border-width:1px;border-radius:3px}.forecast-side.enemy{margin-bottom:3px}.forecast-name{font-size:12px;line-height:1.1;padding-bottom:1px}.forecast-name>span{font-size:11px}.forecast-name small{font-size:6px}.forecast-weapon{font-size:8px;margin-top:1px}.forecast-hp{height:3px;margin:2px 0}.forecast-side dl{font-size:9px;gap:0}.forecast-side dl>div{min-height:11px;padding:0 4px}.forecast-side dt{font-size:7px}.forecast-side dd{font-size:10px}.forecast-side dd small{font-size:6px}.forecast-portrait{width:75px;height:75px;bottom:-6px;right:-10px}.forecast-buttons{margin-top:2px;gap:3px}.forecast-buttons button{min-height:23px;padding:2px 3px;font-size:8px;border-radius:3px}.forecast-buttons .cancel-attack{width:24px}.map-toolbar{gap:6px;padding-top:7px}.map-toolbar label{font-size:8px}.map-toolbar input[type=range]{width:60px}.map-toolbar>span{font-size:6px}.bottom-screen{min-height:0;aspect-ratio:320/240;padding:10px}.ds-unit-summary{min-height:91px;padding-right:108px}.ds-unit-summary>img{width:150px;height:150px;top:-22px}.ds-unit-summary h2{font-size:27px}.ds-stats{margin-top:12px;gap:4px 15px}.ds-stats span{font-size:11px}.ds-stats b{font-size:18px}.ds-stats>div{padding:3px 10px}.ds-unit-strip button{min-height:65px}.ds-unit-strip img{height:58px;width:58px}.ds-unit-strip span{font-size:11px}.ds-unit-strip small{font-size:8px}.command-controls{padding:10px 2px}.command-controls label{font-size:10px}.command-controls select{min-height:38px;font-size:12px}.command-buttons button{font-size:13px;min-height:40px}.ds-log .battle-log{max-height:155px}.panel-heading{height:33px;padding:0 10px;font-size:11px}.team-bottom{padding:4px 1px 1px}.page-heading p:last-child{font-size:10px}.battle-workbench .page-heading h1{font-size:27px}.original-map-viewport{scrollbar-width:none}}body{background:linear-gradient(#eee6d5b8,#d8c7a6c9),url(/assets/ui/paper.png) repeat}.panel{border-image-source:url(/assets/ui/window-light.png);border-image-slice:9 fill}.panel-heading{background:linear-gradient(#f3e7c5bb,#d6be8a77)}.bottom-screen{background-size:128px 128px}.ds-status-empty>img{opacity:.1}.stats-grid{background:#ecdfbd66}.equipment-panel .equipment-list,.team-panel .unit-list{background:#eddfbb55}.forecast-caption{background:#342d20b8;border-radius:2px;padding:2px}.panel{border-width:7px;border-image:url(/assets/ui/window-light.png) 4 stretch;background:linear-gradient(#f6ebcfda,#edddbac9),url(/assets/ui/paper.png) center/100% 100%;box-shadow:0 2px 5px #47361d26}.bottom-screen{background-size:100% 100%;background-repeat:no-repeat}.screen-label{color:#8b714c}.ds-unit-strip img{margin-top:-3px;margin-bottom:-2px}.ds-unit-strip span{position:relative;z-index:1}.forecast-side dl{font-size:17px;gap:3px;margin-top:6px;width:73%}.forecast-side dl>div{min-height:22px}.forecast-side dt{font-size:12px}.forecast-side dd small{font-size:10px}.forecast-name{font-size:22px}.forecast-weapon{font-size:12px}.forecast-portrait{width:135px;height:135px}.forecast-buttons button{min-height:32px;font-size:12px}.forecast-caption{font-size:9px}@media(max-width:1150px){.forecast-name{font-size:17px}.forecast-weapon{font-size:10px}.forecast-side dl{font-size:14px;gap:2px;margin-top:3px}.forecast-side dl>div{min-height:17px}.forecast-side dt{font-size:10px}.forecast-portrait{width:110px;height:110px}.forecast-buttons button{min-height:27px;font-size:10px}}@media(max-width:760px){.panel{border-width:6px}.forecast-name{font-size:12px}.forecast-weapon{font-size:8px}.forecast-side dl{font-size:10px;margin-top:1px;gap:0;width:72%}.forecast-side dl>div{min-height:11px}.forecast-side dt{font-size:7px}.forecast-side dd small{font-size:6px}.forecast-portrait{width:75px;height:75px}.forecast-buttons button{min-height:25px;font-size:9px}.forecast-caption{font-size:6px}.ds-unit-strip button{min-height:72px}.ds-unit-strip img{margin-bottom:-2px}.ds-unit-strip span{font-size:10px}.topbar .connection{font-size:8px}.map-toolbar>span{font-size:7px}.ds-unit-summary h2{font-size:25px}.map-unit-hud{background:#eee0b8eb}}@media(max-width:760px){.forecast-buttons{display:none}.combat-forecast{bottom:7px}.command-buttons button{min-height:44px}.forecast-side dl>div{min-height:13px}.forecast-side dt{font-size:8px}.forecast-side dd{font-size:11px}}body{background-size:auto,cover;background-attachment:scroll,fixed;background-repeat:no-repeat,no-repeat}.command-buttons button.primary{background:linear-gradient(#68849b,#364e65);color:#fff4d1;border-color:#4a5660}.original-map-world canvas{image-rendering:auto}.sing-instruction{font-size:11px;color:#486335;margin:10px 0 0}.command-buttons button[aria-pressed=true]{background:linear-gradient(#d3e3aa,#9fb878);border-color:#768957}.map-toolbar{flex-wrap:wrap}body.battle-active{overflow:hidden;height:100dvh;overscroll-behavior:none}.battle-workbench{position:fixed;inset:0;z-index:10;max-width:none;width:100%;height:100dvh;padding:0;margin:0;background:#302d22}.battle-workbench .top-screen{position:absolute;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto;border:0;box-shadow:none}.battle-phase{position:absolute;left:max(12px,env(safe-area-inset-left));top:max(10px,env(safe-area-inset-top));z-index:42;pointer-events:none;padding:6px 12px;background:#eee2bbdc;border:1px solid #a58b52;box-shadow:1px 2px 4px #30271555;color:#403322}.battle-phase>span{font-size:10px}.battle-phase h1{font:20px Georgia,serif;margin:2px 0 0}.battle-workbench .map-unit-hud{top:86px;left:12px}.battle-menu-toggle{position:absolute;bottom:max(14px,env(safe-area-inset-bottom));right:max(14px,env(safe-area-inset-right));z-index:70;min-width:112px;min-height:48px;font:17px Georgia,serif;padding:10px 18px;border:2px solid #af925c;background:linear-gradient(#fff2ca,#dac18a);box-shadow:0 2px 7px #241e17a8}.battle-menu-toggle>span{margin-right:8px}.battle-menu{position:absolute;z-index:65;right:max(14px,env(safe-area-inset-right));bottom:calc(max(14px,env(safe-area-inset-bottom)) + 60px);width:min(420px,calc(100vw - 28px));max-height:calc(100dvh - 110px);display:flex;flex-direction:column;padding:0;color:#44351f;overflow:hidden}.battle-menu[hidden],.battle-menu [hidden]{display:none!important}.battle-menu-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 12px;border-bottom:1px solid #b59660;font:12px Georgia,serif;letter-spacing:1px}.battle-menu-heading button{min-width:36px;min-height:32px;margin:0}.battle-menu-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;padding:6px}.battle-menu-tabs button{min-width:0;padding:8px 4px;min-height:40px;font:13px Georgia,serif;box-shadow:none}.battle-menu-tabs button[aria-selected=true]{background:linear-gradient(#7692a7,#435c71);color:#fff1c8;border-color:#40556b}.battle-menu-content{overflow:auto;overscroll-behavior:contain;padding:7px 10px 12px;min-height:0;scrollbar-width:thin}.battle-menu .panel{border:0;background:none;box-shadow:none;width:100%;margin:0}.battle-menu .screen-label{display:none}.battle-menu .panel-heading{padding:4px 0;background:none;border-bottom:1px solid #b69b69;margin-bottom:8px}.battle-menu .bottom-screen{aspect-ratio:auto;min-height:270px;padding:10px}.battle-menu .ds-unit-strip{margin-top:8px}.battle-menu .battle-log{max-height:none}.battle-menu .map-toolbar{display:flex;flex-wrap:wrap;gap:14px;padding:12px 0;margin-bottom:10px}.battle-menu .map-toolbar label{font-size:12px}.battle-menu .map-toolbar>span{font-size:10px;width:100%}.battle-menu .map-toolbar input[type=range]{width:135px}.battle-menu .full{margin-top:8px;min-height:44px}.battle-menu-map{font-size:12px;color:#826b44;margin:2px 0}.battle-workbench .combat-forecast{top:84px;right:14px;bottom:auto;width:min(290px,43vw);max-width:290px;max-height:calc(100dvh - 160px)}.battle-workbench .forecast-buttons{display:flex}.battle-workbench .forecast-buttons button{min-height:40px;font-size:12px}.battle-workbench .forecast-side{flex:none;padding:8px}.battle-workbench .forecast-side dl{font-size:15px}.battle-workbench .forecast-name{font-size:18px}.battle-workbench .forecast-weapon{font-size:11px}.battle-workbench .map-combat-hud{left:50%;width:min(600px,90%);transform:translate(-50%);bottom:80px}.battle-workbench .critical-cutin{top:50%;bottom:auto;height:auto;max-height:100%;width:100%;aspect-ratio:400/240;transform:translateY(-50%)}@media(max-width:760px){.battle-phase{padding:5px 9px}.battle-phase>span{font-size:9px}.battle-phase h1{font-size:17px}.battle-workbench .map-unit-hud{top:76px}.battle-menu-toggle{min-height:46px;min-width:105px;font-size:16px}.battle-menu{max-height:calc(100dvh - 100px)}.battle-menu .command-buttons{flex-wrap:wrap}.battle-menu .command-buttons button{min-width:88px;min-height:44px}.battle-workbench .combat-forecast{top:76px;right:10px;width:min(275px,62vw)}.battle-workbench .forecast-side{padding:5px}.battle-workbench .forecast-name{font-size:16px}.battle-workbench .forecast-side dl{font-size:13px}.battle-workbench .forecast-side dl>div{min-height:18px}.battle-workbench .forecast-side dt,.battle-workbench .forecast-weapon{font-size:10px}.battle-workbench .map-combat-hud{bottom:76px}}.battle-message{position:absolute;z-index:80;left:50%;bottom:78px;transform:translate(-50%);width:max-content;max-width:min(520px,90vw);padding:10px 15px;background:#f0e4bfdc;color:#43331d;border:1px solid #b69a61;box-shadow:0 2px 8px #271d1266;font-size:12px;display:flex;align-items:center;gap:12px}.battle-message.error{background:#f2d7c9;color:#743827}.battle-message button{min-width:32px;min-height:32px;padding:3px 7px}.original-map-viewport{user-select:none;cursor:grab}.original-map-controls button{cursor:grab}.original-map-controls button[title]{cursor:pointer}.original-map-viewport.dragging,.original-map-viewport.dragging button{cursor:grabbing!important}.original-map-viewport{scrollbar-width:none}.original-map-viewport::-webkit-scrollbar{display:none}.unit-actions-position{position:absolute;z-index:18;max-height:calc(100% - 24px);max-width:calc(100% - 20px);overflow:auto;overscroll-behavior:contain;scrollbar-width:thin;filter:drop-shadow(1px 3px 5px #221a1760)}.battle-menu-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}.unit-target-hint{position:absolute;z-index:19;left:50%;bottom:80px;transform:translate(-50%);margin:0;padding:8px 13px;max-width:90vw;background:#f2e5bddf;border:1px solid #a38c59;color:#493820;font-size:12px;pointer-events:none}.original-map-controls{display:block;transform-origin:top left}.original-map-controls button{position:absolute}.original-map-controls button:active:enabled{transform:none}.original-map-controls button:hover{border:0;box-shadow:inset 0 0 0 1px #fff7bc}.practice-map-picker{width:250px;max-width:100%;flex-shrink:1}.practice-map-picker label{font-size:11px;margin:0 0 4px}.practice-map-picker select{font-size:12px}.heading-actions{flex-wrap:wrap}@media(max-width:650px){.practice-map-picker{width:100%}}.battle-supports{display:flex;flex-wrap:wrap;gap:6px;padding:10px 14px;border-top:1px solid var(--line);font-size:12px}.battle-supports small{width:100%;color:var(--muted)}.battle-supports span{background:#efe6d3;padding:4px 7px;border-radius:2px}.battle-supports b{margin-left:7px;color:var(--ink)}.battle-rule-summary{font-size:12px;margin:8px 0 16px}.support-selection{padding:14px 22px;border-bottom:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:12px}.support-selection label{display:block;margin-bottom:6px}.support-selection select{width:100%;min-width:0}.support-selection>div{min-width:0}.support-selection small{grid-column:1/-1;font-size:11px;color:var(--muted);line-height:1.5}@media(max-width:600px){.support-selection{grid-template-columns:1fr;padding:14px 16px}}.character-hero{height:auto;min-height:280px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center}.character-intro{width:auto;min-width:0;padding:24px 0 24px 20px}.hero-portrait{position:static;right:auto;bottom:auto;width:100%;height:auto;max-height:320px;object-fit:contain;align-self:end;grid-column:2;grid-row:1;margin:0}.character-intro{grid-column:1;grid-row:1}.character-intro p{max-width:none}@media(max-width:760px){.character-hero{min-height:240px}.character-intro{padding:18px 0 18px 12px}.hero-portrait{width:100%;height:auto;max-height:280px}.character-intro h2{font-size:clamp(26px,8vw,38px)}}.original-map-viewport,.original-map-controls button{touch-action:none}.battle-workbench.phase-playing>.battle-phase,.battle-workbench.phase-playing>.battle-menu-toggle,.battle-workbench.phase-playing>.battle-volume-control,.battle-workbench.phase-playing .map-unit-hud,.battle-workbench.phase-playing>.battle-message:not(.error){visibility:hidden}.battle-bottom-actions{position:absolute;z-index:70;right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));display:flex;align-items:stretch;gap:8px;max-width:calc(100vw - 132px)}.battle-bottom-actions .battle-menu-toggle{position:static;min-width:94px;min-height:48px}.battle-end-turn{min-height:48px;padding:8px 12px;font:16px Georgia,serif;border:2px solid #af925c;background:linear-gradient(#fff2ca,#dac18a);color:#594324;box-shadow:0 2px 7px #241e17a8;border-radius:5px}.battle-end-turn:disabled{opacity:.5}.battle-workbench.phase-playing>.battle-bottom-actions{visibility:hidden}@media(max-width:420px){.battle-bottom-actions{gap:5px;max-width:calc(100vw - 130px)}.battle-bottom-actions .battle-menu-toggle{min-width:74px;padding:8px;font-size:14px}.battle-end-turn{padding:6px 8px;font-size:14px}}.builder-skill-choice{display:flex;align-items:center;gap:10px}.builder-skill-choice select{flex:1;min-width:0}.builder-skill-icon,.builder-skill-empty{width:32px;height:32px;flex:0 0 32px;image-rendering:pixelated;object-fit:contain}.builder-skill-empty{display:grid;place-items:center;border:1px solid #9c8a66;color:#8d8064;background:#e4dbc9}.personal-skill h3{display:flex;align-items:center;gap:10px}.battle-danger-toggle{min-height:48px;padding:8px 12px;font:16px Georgia,serif;border:2px solid #af925c;background:linear-gradient(#fff2ca,#dac18a);color:#594324;box-shadow:0 2px 7px #241e17a8;border-radius:5px}.battle-danger-toggle[aria-pressed=true]{background:linear-gradient(#efdcff,#bb94c8);border-color:#805197;color:#502367}.battle-danger-toggle span{border:1px solid currentColor;border-radius:50%;padding:0 4px;margin-right:3px}.battle-danger-toggle:disabled{opacity:.5}@media(max-width:600px){.battle-bottom-actions{flex-wrap:wrap;justify-content:flex-end;max-width:calc(100vw - 120px)}.battle-danger-toggle{flex-basis:100%;min-height:38px;padding:6px 8px;font-size:14px}}.battle-ai-pause{min-height:48px;padding:8px 12px;font:16px Georgia,serif;border:2px solid #af925c;background:linear-gradient(#fff2ca,#dac18a);color:#594324;border-radius:5px}.battle-ai-pause[aria-pressed=true]{background:#ead4a9}@media(max-width:600px){.battle-ai-pause{flex-basis:100%;min-height:36px;font-size:14px}}
