.app-shell{--type-0: clamp(1rem, .84rem + .36vw, 1.28rem);--type-1: clamp(1.125rem, .92rem + .45vw, 1.46rem);--type-2: clamp(1.25rem, 1rem + .56vw, 1.72rem);--type-3: clamp(1.5rem, 1.12rem + .78vw, 2.16rem);min-height:100vh;height:100vh;overflow:hidden;background:radial-gradient(circle at top left,rgba(204,158,76,.2),transparent 26%),radial-gradient(circle at bottom right,rgba(34,79,118,.22),transparent 28%),linear-gradient(180deg,#040608,#0b1015);color:#efe6c1}.topbar{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 1rem;border-bottom:1px solid rgba(233,196,114,.2);background:#05070be0}.topbar-controls,.topbar-player-copy{display:flex;align-items:center}.topbar-controls{gap:.55rem;flex-wrap:wrap}.topbar-status-readout{min-width:8rem;padding:.35rem .7rem;border:1px solid rgba(231,196,114,.18);border-radius:999px;background:#090c12d6}.topbar-player-chip{display:flex;align-items:center;gap:.55rem;padding:.3rem .7rem;border:1px solid rgba(231,196,114,.18);border-radius:999px;background:#090c12d6}.topbar-player-copy{flex-direction:column;align-items:flex-start;gap:.05rem;line-height:1.05}.topbar-player-copy span{font-size:var(--type-0);color:#d9c99b}.topbar-player-dot{width:.8rem;height:.8rem;border-radius:999px;display:inline-block}.topbar-player-dot-red{background:#d14c48;box-shadow:0 0 0 1px #ffffff40}.panel-card h2{margin:0 0 .35rem}.status-cluster{display:flex;flex-wrap:wrap;gap:.7rem;align-items:center;justify-content:flex-end}.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:0;padding:0;min-height:100vh;height:100vh}.layout-debug-visible{grid-template-columns:260px minmax(0,1fr) 280px;gap:1rem;padding:.75rem 1rem 1rem;min-height:calc(100vh - 4.25rem);height:calc(100vh - 4.25rem)}.side-panel,.center-panel{display:grid;gap:1rem;align-content:start}.side-panel{min-height:0}.side-panel-hidden{display:none}.center-panel{min-height:0;height:100%;position:relative;--viewport-ui-top: clamp(.65rem, 1.6vw, 1rem);--viewport-ui-left: clamp(.65rem, 1.6vw, 1rem);--viewport-ui-right: clamp(.65rem, 1.6vw, 1rem);--viewport-corner-gap: clamp(.4rem, .95vw, .65rem);--viewport-sidebar-padding: clamp(.46rem, 1vw, .9rem)}.panel-card{border:1px solid rgba(231,196,114,.18);background:#090c12db;border-radius:16px;padding:.95rem;box-shadow:0 14px 34px #00000047}.controls{display:grid;gap:.55rem}button{border:1px solid rgba(231,196,114,.28);border-radius:10px;background:linear-gradient(180deg,#1f2630,#12161d);color:#f2e6bb;padding:.62rem .78rem;cursor:pointer}button:disabled{opacity:.45;cursor:default}.scene-shell{position:relative;min-height:100vh;height:100vh;border:0;border-radius:0;overflow:hidden;background:#05070b}.layout-debug-visible .scene-shell{min-height:calc(100vh - 5.4rem);height:calc(100vh - 5.4rem);border:1px solid rgba(231,196,114,.18);border-radius:18px}.mana-bars,.unit-detail-list{display:grid;gap:.55rem}.mana-row,.unit-detail{display:grid;gap:.35rem}.mana-row{grid-template-columns:60px 1fr 56px;align-items:center}.mana-bar{height:.72rem;border-radius:999px;background:#ffffff14;overflow:hidden}.mana-fill{height:100%}.mana-order .mana-fill{background:#7b4fd1}.mana-strife .mana-fill{background:#d34d46}.mana-clarity .mana-fill{background:#d8c24f}.mana-world .mana-fill{background:#4d9d57}.mana-mystery .mana-fill{background:#2fa7a0}.mana-will .mana-fill{background:#d08b41}.unit-detail{border:1px solid rgba(231,196,114,.14);border-radius:12px;padding:.6rem .7rem;background:#ffffff05}.scene-overlay{position:absolute;display:flex;gap:.55rem;z-index:2;pointer-events:none}.scene-overlay button,.scene-overlay span{pointer-events:auto}.scene-overlay-top span,.scene-overlay-side .legend-chip{border:1px solid rgba(231,196,114,.18);border-radius:999px;background:#090c12d6;color:#e8d59f;padding:.35rem .7rem;font-size:1rem}.structure-action-popover{display:flex;gap:.45rem;padding:.45rem .5rem;border:1px solid rgba(231,196,114,.22);border-radius:14px;background:#090c12eb;box-shadow:0 14px 34px #00000057;pointer-events:auto;transform:translateY(.2rem)}.structure-action-popover button{padding:.48rem .62rem;white-space:nowrap}.scene-overlay-mana{left:var(--scene-board-left, var(--viewport-ui-left));top:calc(var(--scene-viewport-top, 0px) + var(--viewport-corner-gap));width:min(20rem,max(14rem,calc(var(--scene-board-left, 18rem) - var(--scene-hand-left, 1rem) - .8rem)));display:grid;grid-auto-flow:row;gap:.5rem;z-index:5}.combat-overlay{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:8;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem;width:min(48rem,calc(100% - 3rem));pointer-events:none}.selected-group-overlay{top:0;width:clamp(22rem,26vw,30rem);transform:none;pointer-events:none;max-height:100%;height:100%}.selected-group-overlay-left{left:0}.selected-group-overlay-right{left:auto;right:0}.scene-overlay-top-right{top:calc(var(--scene-viewport-top, 0px) + 1rem);right:calc(100% - var(--scene-board-right, calc(100% - .8rem) ))}.combat-side{border:1px solid rgba(231,196,114,.24);border-radius:14px;background:#090c12e6;padding:.6rem;box-shadow:0 14px 34px #0000005c}.combat-overlay .combat-side{box-shadow:none}.combat-side-red{background:#180909}.combat-side-blue{background:#080d1c}.combat-side-neutral{background:#181c22}.selected-group-overlay .combat-side,.selected-group-overlay .combat-cell{pointer-events:auto}.selected-group-overlay .combat-side,.viewport-structure-sidebar{border:0;border-radius:0;box-shadow:none;background:color-mix(in srgb,rgb(var(--sidebar-tint, 9, 12, 18)) 16%,#050609);padding:var(--viewport-sidebar-padding, .9rem);min-height:100%}.selected-group-overlay .combat-side{display:grid;align-content:start;overflow:auto}.combat-side h3{margin:0 0 .45rem;text-transform:capitalize;font-size:var(--type-2)}.selected-group-overlay .combat-meta{display:grid;grid-template-columns:minmax(3rem,auto) minmax(0,1fr);align-items:center;gap:.35rem;font-variant-numeric:tabular-nums;min-height:1.6rem;justify-items:stretch;font-size:clamp(.9rem,1.2vw,1.28rem)}.selected-group-overlay .combat-meta>*{min-width:0}.selected-group-overlay .combat-weapon{left:0;right:0;bottom:0;width:100%;height:auto}.combat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}.combat-cell{position:relative;min-height:8.6rem;border:1px solid rgba(231,196,114,.14);border-radius:0;background:#ffffff08;padding:.26rem;display:grid;gap:.24rem;align-content:start;text-align:left;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-style:solid;border-width:1px;color:inherit;font:inherit;cursor:default;overflow:hidden}.selected-group-overlay .combat-grid{align-content:start}.selected-group-overlay .combat-cell{min-height:clamp(10rem,22vh,13rem);padding:.35rem;grid-template-rows:auto auto auto auto auto}.combat-cell:after,.combat-card-modal-shell:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0}.combat-cell-flash-attack:after{animation:combat-cell-flash-attack .26s ease-out;background:#f0d45a38}.combat-cell-flash-damage:after,.combat-cell-flash-hit:after{animation:combat-cell-flash-hit .26s ease-out;background:#d14c483d}.combat-cell-flash-blocked:after{animation:combat-cell-flash-blocked .26s ease-out;background:#b4b9be38}.combat-cell-flash-dodge:after{animation:combat-cell-flash-dodge .26s ease-out;background:#5893d638}.combat-card-modal-shell{position:relative}.combat-card-modal-shell-flash-attack:after{animation:combat-card-modal-flash-attack .26s ease-out;background:#f0d45a29}.combat-card-modal-shell-flash-damage:after,.combat-card-modal-shell-flash-hit:after{animation:combat-card-modal-flash-hit .26s ease-out;background:#d14c482e}.combat-card-modal-shell-flash-blocked:after{animation:combat-card-modal-flash-blocked .26s ease-out;background:#b4b9be29}.combat-card-modal-shell-flash-dodge:after{animation:combat-card-modal-flash-dodge .26s ease-out;background:#5893d629}.combat-cell-empty{opacity:0;border:0;background:transparent;pointer-events:none}.combat-cell-death-fade{pointer-events:none;animation:combat-cell-death-fade .42s ease-out forwards}.combat-cell-targetable{cursor:pointer}.combat-card-modal{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;z-index:40;pointer-events:none}.combat-card-modal-shell{width:min(28rem,calc(100vw - 2rem));border:1px solid rgba(231,196,114,.22);border-radius:18px;background:#06090de6;box-shadow:0 24px 70px #00000073;padding:.9rem;display:grid;gap:.7rem;overflow:hidden}.combat-card-modal-header{display:grid;gap:.12rem}.combat-card-modal-name{font-size:1.15rem;font-weight:700}.combat-card-modal-subtitle{font-size:var(--type-0);color:#c9b87d;text-transform:capitalize}.combat-card-modal-body{display:grid;grid-template-columns:minmax(10rem,12rem) 1fr;gap:.8rem;align-items:start}.combat-card-modal-portrait-wrap{position:relative;aspect-ratio:1 / 1;border-radius:12px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(180deg,#00000014,#00000042)}.combat-card-modal-portrait{position:relative;z-index:2;width:92%;height:92%;object-fit:contain;object-position:center bottom;background:transparent}.combat-card-modal-weapon{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7));z-index:1}.combat-card-modal-meta{display:grid;gap:.35rem;font-size:var(--type-0);line-height:1.25}.combat-cell:disabled{opacity:1}.combat-portrait-wrap{position:relative;width:100%;aspect-ratio:1 / 1;border-radius:8px;overflow:hidden;display:grid;place-items:center;background:linear-gradient(180deg,#0000001a,#00000047)}.selected-group-overlay .combat-portrait-wrap{background:#000}.combat-side-right .combat-portrait-wrap{transform:scaleX(-1)}.combat-portrait,.combat-weapon,.combat-impact-image{display:block}.combat-portrait{position:relative;z-index:2;width:92%;height:92%;object-fit:contain;object-position:center bottom;background:transparent}.combat-weapon{position:absolute;left:0;right:0;bottom:0;width:100%;height:auto;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 1px 2px rgba(0,0,0,.7));pointer-events:none;z-index:1}.combat-impact-image{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;object-fit:contain;object-position:center center;pointer-events:none;animation:combat-impact-pop .26s ease-out}.combat-cell-has-weapon .combat-weapon-attack,.combat-card-modal-weapon.combat-weapon-attack{animation:combat-weapon-swing .26s ease-out;transform-origin:35% 82%}.combat-cell-no-weapon .combat-portrait-wrap-attack .combat-portrait{animation:combat-face-lunge .26s ease-out}.combat-portrait-wrap-dodge .combat-portrait,.combat-portrait-wrap-dodge .combat-weapon,.combat-portrait-wrap-dodge .combat-card-modal-portrait,.combat-portrait-wrap-dodge .combat-card-modal-weapon{animation:combat-dodge-duck .26s ease-out}.combat-hp{position:relative;height:1.4rem;border-radius:999px;overflow:hidden;background:#ffffff1a;width:100%}.combat-hp-green .combat-hp-fill{background:#3fad54}.combat-hp-yellow .combat-hp-fill{background:#d6b83e}.combat-hp-red .combat-hp-fill{background:#d14c48}.combat-hp-fill{height:100%}.combat-hp-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;gap:.18rem;padding:0 .38rem;font-size:var(--type-0);font-weight:700;color:#f6f0da;text-shadow:0 1px 2px rgba(0,0,0,.85)}.combat-hp-heart{display:inline-flex;flex:0 0 1.2rem;align-items:center;justify-content:flex-start;font-size:var(--type-0);line-height:1}.combat-hp-value{min-width:0;text-align:left}.combat-meta{display:flex;flex-wrap:nowrap;align-items:center;gap:.18rem;font-size:var(--type-0);color:#e6d7aa;line-height:1.24;min-height:1.5rem}.combat-meta-icon{display:inline-flex;align-items:center;justify-content:flex-start;flex:0 0 1.2rem;white-space:nowrap}.combat-meta-value{min-width:0;white-space:nowrap;text-align:left;flex:1 1 auto}.combat-spells{display:grid;gap:.16rem;font-size:var(--type-0);color:#c8d7e8;line-height:1.24;min-height:1.2rem}.spell-list-entry{padding:0;border:0;background:transparent;color:inherit;text-align:left;font:inherit;border-radius:0;width:100%}.spell-list-entry:hover,.spell-list-entry:focus-visible{color:#fff4c7;text-decoration:underline;outline:none}.overlay-mana{width:100%;background:transparent;padding:0;display:grid;gap:.3rem}.overlay-mana-row{display:grid;gap:.35rem;grid-template-columns:24px 1fr auto;align-items:center}.overlay-mana-row span,.overlay-mana-row strong{font-size:var(--type-0)}.overlay-mana-compact{display:grid;grid-template-columns:repeat(3,minmax(0,auto));gap:.18rem .26rem;align-items:start}.overlay-mana-row-compact{display:grid;place-items:center}.overlay-mana-compact-chip{position:relative;width:1.45rem;height:1.45rem;display:inline-grid;place-items:center;line-height:1}.overlay-mana-compact-chip .mana-icon,.overlay-mana-compact-chip svg{display:block;width:100%!important;height:100%!important}.overlay-mana-compact-chip strong{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;font-size:.78rem;color:#fff;text-shadow:-1px 0 #000,0 1px #000,1px 0 #000,0 -1px #000;pointer-events:none}.overlay-initiative-chip{display:grid;grid-template-columns:auto 1fr;gap:.32rem;align-items:center;color:#efe6c1;background:transparent;padding:0;min-width:max-content;justify-self:start}.overlay-initiative-chip .topbar-player-copy{display:grid;gap:.02rem;min-width:0}.overlay-initiative-chip .topbar-player-copy strong,.overlay-initiative-chip .topbar-player-copy span{white-space:nowrap}.scene-shell-compact-hud .scene-overlay-mana{left:var(--scene-board-left, var(--viewport-ui-left));width:3.6rem;gap:.1rem}.scene-shell-compact-hud .overlay-mana-row{grid-template-columns:auto}.scene-shell-compact-hud .overlay-mana-row .mana-bar{display:none}.scene-shell-compact-hud .overlay-initiative-chip{gap:.14rem;max-width:3.6rem;width:max-content;min-width:0;grid-template-columns:auto minmax(0,1fr)}.scene-shell-compact-hud .overlay-mana-compact{gap:.06rem .1rem}.scene-shell-compact-hud .overlay-mana-compact-chip{width:.88rem;height:.88rem}.scene-shell-compact-hud .overlay-mana-compact-chip strong{font-size:.48rem}.scene-shell-compact-hud .overlay-initiative-chip .topbar-player-copy{display:grid;gap:0;min-width:0;overflow:visible}.scene-shell-compact-hud .overlay-initiative-chip .topbar-player-copy strong{font-size:.54rem;overflow:visible}.scene-shell-compact-hud .overlay-initiative-chip .topbar-player-copy span{font-size:.46rem;overflow:visible}.scene-shell-compact-hud .viewport-top-right-controls{flex-direction:row;align-items:flex-start;justify-content:flex-end;gap:var(--viewport-corner-gap);width:auto}.scene-shell-compact-hud .viewport-corner-right{right:calc(100% - var(--scene-board-right, calc(100% - var(--viewport-ui-right))) + var(--viewport-corner-gap));top:0}.scene-shell-compact-hud .viewport-menu-button,.scene-shell-compact-hud .viewport-confirm-button{min-height:1.45rem}.scene-shell-compact-hud .viewport-menu-button{min-width:1.45rem}.scene-shell-compact-hud .viewport-confirm-button{padding:.12rem .22rem;font-size:.58rem;line-height:1.1}.scene-shell-compact-hud .viewport-menu-button:before{width:.82rem;height:.11rem;box-shadow:0 -.22rem #f2e6bb,0 .22rem #f2e6bb}.viewport-corner{position:absolute;z-index:7;pointer-events:none}.viewport-corner-left{left:var(--scene-board-left, var(--viewport-ui-left));top:calc(var(--scene-viewport-top, 0px) + 7.25rem)}.viewport-corner-right{right:calc(100% - var(--scene-board-right, calc(100% - var(--viewport-ui-right))) + var(--viewport-corner-gap));top:calc(var(--scene-viewport-top, 0px) + var(--viewport-corner-gap))}.viewport-corner>*{pointer-events:auto}.viewport-status-cluster{display:grid;justify-items:start;gap:.8rem;max-width:11.5rem}.viewport-player-chip{padding-left:0;border:0;background:transparent}.viewport-top-right-controls{display:flex;align-items:flex-start;gap:var(--viewport-corner-gap)}.viewport-menu{position:relative}.viewport-menu-button{min-width:3rem;min-height:3rem;display:grid;place-items:center;font-size:0;line-height:0;color:transparent;position:relative}.viewport-menu-button:before{content:"";position:absolute;left:50%;top:50%;width:1.25rem;height:.14rem;background:#f2e6bb;transform:translate(-50%,-50%);box-shadow:0 -.38rem #f2e6bb,0 .38rem #f2e6bb}.viewport-menu-popover{position:absolute;top:calc(100% + .35rem);right:0;display:grid;gap:.35rem;min-width:10rem;padding:.45rem;background:#090c12f0;border-radius:12px;box-shadow:0 14px 34px #0000005c}.viewport-menu-popover button{text-align:left}.viewport-confirm-button{min-height:3rem;padding:.78rem 1.2rem;font-size:1rem;font-weight:700}.town-choice-panel,.town-choice-modal{display:grid;gap:.45rem}.town-choice-modal{min-width:12rem;padding:.55rem .65rem;border:1px solid rgba(231,196,114,.22);border-radius:12px;background:#090c12eb;color:#efe6c1;text-align:center;box-shadow:0 10px 24px #00000047}.town-choice-buttons{display:flex;gap:.35rem;justify-content:center;flex-wrap:wrap}.town-choice-buttons button{min-width:2.25rem;min-height:2.25rem;padding:.35rem;display:grid;place-items:center}.structure-sidebar{display:grid;gap:.65rem;margin:0;min-height:100%;align-content:start;box-sizing:border-box}.structure-sidebar-header{display:grid;gap:.16rem;font-size:var(--type-1);text-transform:capitalize;margin:0;padding:0;line-height:1.05}.selection-sidebar .structure-sidebar-header{font-size:var(--type-2)}.structure-sidebar-title{display:block;font-weight:800;line-height:1.05}.structure-sidebar-subtitle{display:block;color:#d8c69a;font-size:var(--type-0);line-height:1.15;min-height:1.15em;text-transform:none}.structure-sidebar-meta{display:flex;flex-wrap:wrap;gap:.5rem .8rem;font-size:var(--type-0);color:#dacba2}.structure-sidebar-meta-square{display:grid;gap:.35rem;text-transform:capitalize}.structure-novice-grid,.structure-training-grid{display:grid;gap:.45rem;width:100%;min-width:0;align-items:stretch}.structure-novice-grid,.structure-training-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.novice-cell,.structure-train-cell{aspect-ratio:1;min-height:clamp(4.4rem,10vh,6.4rem);min-width:0;width:100%;padding:.35rem;display:grid;place-items:center;box-sizing:border-box;overflow:hidden}.novice-cell:not(.sidebar-unit-cell){background:#ffffff08;position:relative}.novice-cell:not(.sidebar-unit-cell):disabled{opacity:1}.novice-cell:not(.sidebar-unit-cell):not(.novice-cell-filled){border-style:dashed;border-color:#e7c4721f;background:#ffffff03}.novice-cell:not(.sidebar-unit-cell) img{width:92%;height:92%;object-fit:contain;object-position:center center}.structure-train-cell img{width:100%;height:100%;object-fit:contain;object-position:center center}.novice-cell:not(.sidebar-unit-cell).novice-cell-selected{border-color:#fff5c6e0;box-shadow:0 0 0 2px #ffecaa3d}.novice-cell:not(.sidebar-unit-cell).novice-cell-dragging{opacity:.6}.novice-cell:not(.sidebar-unit-cell).novice-cell-assigned{opacity:.5}.novice-cell:not(.sidebar-unit-cell).novice-cell-assigned .novice-cell-assignment{position:absolute;display:grid;place-items:center;color:#fff4c7;text-shadow:0 1px 2px rgba(0,0,0,.85)}.novice-cell:not(.sidebar-unit-cell).novice-cell-assigned-recruit .novice-cell-assignment{top:0;right:0;bottom:0;left:0;font-size:var(--type-3)}.novice-cell:not(.sidebar-unit-cell).novice-cell-assigned-mana .novice-cell-assignment{top:.25rem;right:.25rem;z-index:3;width:1.5rem;height:1.5rem;align-items:center;justify-items:center}.structure-train-cell-armed{border-color:#e7c47261}.structure-train-cell-hovered{border-color:#fff5c6eb;box-shadow:0 0 0 2px #ffecaa3d}.structure-train-cell .mana-icon{transform:scale(1.25)}.scene-overlay-side{right:.8rem;top:.8rem}.viewport-structure-overlay{width:min(24rem,calc(100% - 1.5rem))}.viewport-sidebar-shell{position:absolute;top:0;left:0;z-index:6;width:max(12rem,calc(var(--scene-board-left, 12rem) - .35rem));height:100%;pointer-events:none;overflow:hidden}.viewport-sidebar-shell>*{pointer-events:auto;animation:viewport-sidebar-in 60ms ease-out}.viewport-preview-shell{position:absolute;top:0;right:0;z-index:6;width:max(12rem,calc(100% - var(--scene-board-right, calc(100% - var(--viewport-ui-right))) - .35rem));height:100%;pointer-events:none;overflow:hidden}.viewport-preview-shell>*{pointer-events:auto;animation:viewport-sidebar-in-right 60ms ease-out}.viewport-right-sidebar-shell{height:100%}.viewport-sidebar-shell-closing>*{animation:viewport-sidebar-out 60ms ease-in forwards}.viewport-preview-shell-closing>*{animation:viewport-sidebar-out-right 60ms ease-in forwards}.viewport-structure-sidebar{height:100%;overflow:auto}.viewport-sidebar-shell .viewport-structure-sidebar{padding-top:var(--viewport-sidebar-padding, .9rem)}.viewport-structure-sidebar button,.viewport-structure-sidebar [role=button]{pointer-events:auto}.viewport-square-spells{display:grid;grid-auto-rows:max-content;align-content:start;align-items:start;gap:.28rem;line-height:1.25}.primary-square-preview{background:transparent}.primary-square-sidebar{grid-template-rows:minmax(0,1fr);position:relative;isolation:isolate;min-height:0}.secondary-square-sidebar{grid-template-rows:auto auto minmax(0,1fr)}.square-contents-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(3.2rem,4.8vw,4.5rem);gap:.14rem;align-content:start;min-height:0;overflow:hidden;position:relative;z-index:1}.primary-square-sidebar .square-contents-grid{height:auto;min-height:0;align-content:start;--square-grid-gap: clamp(.08rem, .22vw, .22rem);--primary-square-grid-rows: 4;--primary-square-cell-width: calc((100% - var(--square-grid-gap)) / 2);--primary-square-cell-content-height: clamp(3.6rem, 5vw, 5.2rem);--primary-square-cell-height: var(--primary-square-cell-content-height);grid-auto-rows:var(--primary-square-cell-height);gap:var(--square-grid-gap)}.primary-square-sidebar .square-contents-grid>*{min-height:0;height:var(--primary-square-cell-height)}.primary-square-sidebar .combat-cell,.secondary-square-sidebar .combat-cell,.primary-square-sidebar .novice-cell{min-height:0;height:100%;aspect-ratio:auto;max-height:none;padding:clamp(.12rem,.24vw,.28rem);gap:clamp(.08rem,.16vw,.14rem);align-items:center;align-content:center}.sidebar-cell-frame,.sidebar-unit-cell,.sidebar-novice-cell{display:grid;grid-template-rows:minmax(0,1fr);row-gap:clamp(.08rem,.18vw,.16rem);align-items:stretch;min-height:0;height:100%;width:100%;box-sizing:border-box}.sidebar-cell-horizontal-hp{grid-template-rows:minmax(0,1fr) auto}.sidebar-cell-horizontal-hp>.sidebar-unit-hp-bar{height:clamp(1.25rem,2vw,1.6rem);min-height:1.25rem}.sidebar-cell-top{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:clamp(.08rem,.22vw,.22rem);align-items:center;min-height:0}.sidebar-cell-top-vertical-hp{grid-template-columns:clamp(.22rem,.46vw,.42rem) minmax(0,.95fr) minmax(0,1.05fr)}.sidebar-unit-hp-bar{position:relative;border-radius:999px;overflow:hidden;background:#ffffff2e;min-width:0;height:100%;align-self:stretch}.sidebar-unit-hp-label{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;gap:.16rem;color:#fff8d6;font-weight:800;font-size:clamp(.72rem,1vw,.95rem);line-height:1;text-shadow:0 1px 2px #000,0 0 3px #000;pointer-events:none}.sidebar-unit-hp-heart{display:inline-flex;flex:0 0 auto;align-items:center;line-height:1}.sidebar-unit-hp-bar-empty{background:transparent}.sidebar-unit-hp-fill{position:absolute;inset:0 auto 0 0}.sidebar-cell-top-vertical-hp>.sidebar-unit-hp-bar{width:100%;height:100%}.sidebar-cell-top-vertical-hp>.sidebar-unit-hp-bar .sidebar-unit-hp-fill{inset:auto 0 0 0;width:100%}.sidebar-unit-hp-green .sidebar-unit-hp-fill{background:#3fad54}.sidebar-unit-hp-yellow .sidebar-unit-hp-fill{background:#d6b83e}.sidebar-unit-hp-red .sidebar-unit-hp-fill{background:#d14c48}.sidebar-unit-art-lane,.sidebar-novice-art-lane{display:grid;align-items:center;align-self:stretch;min-height:0;min-width:0;width:100%;justify-self:stretch;height:100%;container-type:size}.sidebar-unit-art-wrap,.sidebar-novice-art-wrap{position:relative;align-self:center;justify-self:center;width:min(100cqw,calc(100cqh * 81 / 63));height:min(100cqh,calc(100cqw * 63 / 81));max-width:100%;min-width:0;aspect-ratio:81 / 63;overflow:hidden;border-radius:8px;background:transparent}.sidebar-novice-art-wrap{overflow:hidden}.sidebar-unit-portrait,.sidebar-unit-weapon,.sidebar-novice-portrait{position:absolute;left:0;bottom:0;width:100%;height:auto}.sidebar-novice-portrait{left:0;width:100%;max-width:none;height:auto;transform:none}.sidebar-unit-portrait,.sidebar-novice-portrait{z-index:2}.sidebar-novice-portrait-muted{opacity:.25}.sidebar-unit-weapon{z-index:1;pointer-events:none}.sidebar-unit-stats,.sidebar-novice-actions{min-width:0;min-height:0;width:100%;justify-self:stretch;align-self:center}.sidebar-unit-stats{display:grid;grid-auto-rows:minmax(0,1fr);gap:clamp(.04rem,.12vw,.14rem);align-content:center;font-family:Alegreya Sans,Trebuchet MS,sans-serif}.sidebar-unit-stat-row{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:clamp(.08rem,.18vw,.18rem);align-items:center;min-width:0;line-height:1}.sidebar-unit-stat-icons{display:inline-flex;align-items:center;justify-content:flex-start;min-width:.56rem;gap:.02rem;white-space:nowrap}.sidebar-unit-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:clamp(.52rem,1.02vw,.92rem);height:clamp(.52rem,1.02vw,.92rem);font-size:clamp(.48rem,.96vw,.84rem);line-height:1}.sidebar-unit-stat-value{min-width:0;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:clamp(.66rem,1.12vw,1.08rem);line-height:1}.sidebar-unit-level-row .sidebar-unit-stat-value{display:none}.sidebar-unit-level-star{width:clamp(.46rem,.98vw,.88rem);height:clamp(.46rem,.98vw,.88rem);font-size:clamp(.44rem,.94vw,.84rem)}.sidebar-novice-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:.5px;align-content:center;align-self:center;overflow:hidden;justify-self:stretch;width:100%;max-width:100%;height:auto;max-height:100%;aspect-ratio:1;border-radius:0;background:transparent}.sidebar-novice-actions-next{grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr);align-items:center;justify-items:center;aspect-ratio:auto;height:100%;background:#ffffff05}.sidebar-novice-cell-assigned .sidebar-novice-actions{aspect-ratio:auto;height:100%;place-items:center;grid-template-columns:minmax(0,1fr);grid-template-rows:minmax(0,1fr)}.sidebar-novice-train-button{min-height:0;min-width:0;width:100%;height:auto;max-height:100%;aspect-ratio:1;padding:0;display:grid;place-items:center;align-self:center;justify-self:stretch;border-radius:0;border:0;background:#ffffff0d}.sidebar-novice-train-button-disabled{opacity:0;pointer-events:none}.sidebar-novice-actions>:nth-child(1){border-top-left-radius:.44rem}.sidebar-novice-actions>:nth-child(2){border-top-right-radius:.44rem}.sidebar-novice-actions>:nth-child(3){border-bottom-left-radius:.44rem}.sidebar-novice-actions>:nth-child(4){border-bottom-right-radius:.44rem}.sidebar-training-symbol,.sidebar-training-mana{display:inline-grid;place-items:center;width:100%;height:100%}.sidebar-training-symbol{font-size:clamp(.74rem,1.18vw,1.1rem);line-height:1}.sidebar-training-mana svg{width:min(78%,clamp(.78rem,1.3vw,1.18rem))!important;height:min(78%,clamp(.78rem,1.3vw,1.18rem))!important}.sidebar-novice-assigned-mana{display:grid;justify-items:center;align-content:center;align-items:center;align-self:center;width:100%;height:100%;overflow:visible;gap:clamp(.06rem,.16vw,.14rem);font-size:clamp(.72rem,1.24vw,1.05rem);font-weight:800;text-align:center}.sidebar-novice-assigned-mana svg{width:clamp(1.18rem,2vw,1.75rem);height:clamp(1.18rem,2vw,1.75rem)}.sidebar-spell-card{margin-top:0;height:auto;background:transparent;align-self:start;display:grid;grid-template-rows:auto auto;gap:.28rem}.sidebar-spell-card .card-preview-shell{height:auto;padding:0;align-content:start}.sidebar-spell-duration-slot{min-height:1.25em;font-size:var(--type-0);color:#d8c69a;line-height:1.2}.novice-cell-next{cursor:default;border-style:dashed}.novice-cell-next-copy{display:grid;justify-items:center;align-content:center;width:100%;height:100%;gap:.02rem;padding:.04rem;line-height:1;text-align:center}.novice-cell-next-copy small{font-size:clamp(.75rem,.72vw,1.02rem)}.novice-cell-next-copy strong{font-size:clamp(1rem,1.1vw,1.42rem)}.novice-queued-recruit-cell,.sidebar-novice-cell-assigned{opacity:1}.sidebar-unit-cell.novice-cell,.primary-square-sidebar .novice-cell{aspect-ratio:auto;min-width:0;width:100%;place-items:initial;background:#ffffff08;border-style:solid}.sidebar-unit-cell.novice-cell-next,.primary-square-sidebar .novice-cell-next{grid-template-rows:minmax(0,1fr)}.sidebar-unit-cell.novice-cell-next .sidebar-cell-top,.primary-square-sidebar .novice-cell-next .sidebar-cell-top{grid-template-columns:minmax(0,1fr)}.sidebar-unit-cell.novice-cell-next .sidebar-unit-art-lane,.primary-square-sidebar .novice-cell-next .sidebar-unit-art-lane{display:none}.novice-cell-close{position:absolute;top:.12rem;right:.12rem;z-index:3;display:inline-flex;align-items:center;justify-content:center;width:.9rem;height:.9rem;border-radius:999px;background:#000000b8;color:#fff4c7;font-size:.72rem;line-height:1}.novice-cell-close-button{border:0;padding:0}.card-preview-sidebar{display:grid;height:100%;background:#090c12eb}.card-preview-shell{display:grid;grid-template-rows:auto auto;align-content:end;gap:.5rem;height:100%;padding:.9rem;box-sizing:border-box;align-items:end}.card-preview-costs{display:flex;gap:.35rem;align-items:center;justify-content:end;min-width:max-content}.card-preview-art-wrap{position:relative;width:100%;aspect-ratio:.76;background:#2d2b28;overflow:hidden}.card-preview-art{position:absolute;left:0;top:50%;width:100%;height:auto;transform:translateY(-50%);display:block}.card-preview-header-band,.card-preview-typeline-band{position:absolute;left:0;right:0;display:grid;align-items:center;background:#000000ad}.card-preview-header-band{top:0;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;min-height:var(--card-preview-header-height, 10.5%);padding:.32rem var(--card-preview-header-pad-x, 3.6%);font-size:clamp(.92rem,1.15vw,1.2rem);font-family:serif}.card-preview-header-band strong{line-height:1.05;color:#f8f6f0}.card-preview-cost-token{position:relative;width:clamp(1.72rem,2.2vw,2.35rem);height:clamp(1.72rem,2.2vw,2.35rem);display:inline-grid;place-items:center;flex:0 0 auto}.card-preview-cost-token-secondary{width:clamp(1.56rem,2vw,2.12rem);height:clamp(1.56rem,2vw,2.12rem)}.card-preview-cost-token svg{width:100%;height:100%;display:block}.card-preview-cost-token strong{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;color:#fff;font-size:clamp(.92rem,1.1vw,1.08rem);text-shadow:-1px 0 #000,0 1px #000,1px 0 #000,0 -1px #000}.card-preview-typeline-band{bottom:0;min-height:var(--card-preview-typeline-height, 7.8%);padding:.22rem var(--card-preview-header-pad-x, 3.6%)}.card-preview-typeline{font-size:clamp(.88rem,1.05vw,1.08rem);font-family:serif;text-transform:capitalize;color:#fbfaf7;text-align:center}.card-preview-text{font-size:clamp(.96rem,1vw,1.06rem);font-family:serif;line-height:1.28;white-space:pre-wrap;align-self:end}.cast-preview-squandered{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-8deg);padding:.2rem .4rem;background:#000000b8;color:#ff4d4d;font-size:var(--type-1);font-weight:800;letter-spacing:.06em}.cast-preview-card-layer{position:fixed;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;pointer-events:none}.cast-preview-card-dom{position:relative;width:min(19rem,44vw,46vh);aspect-ratio:440 / 860;pointer-events:auto;transform-origin:center center;filter:drop-shadow(0 .8rem 1.2rem rgba(0,0,0,.45));background:#f2e9cf;border-radius:.55rem;overflow:hidden}.cast-preview-card-shell{align-content:start;align-items:start;color:#1f1910;padding:0;gap:0}.cast-preview-card-dom .card-preview-art{top:0;transform:none;width:100%;height:100%;display:block;object-fit:cover}.cast-preview-card-dom .card-preview-text{padding:.65rem .75rem .8rem;font-size:clamp(.86rem,.9vw,1rem);line-height:1.22;overflow:hidden}.cast-preview-card-dom-squandered .cast-preview-card-shell{filter:grayscale(.75) brightness(.72)}.viewport-square-section-label{font-size:1rem;letter-spacing:.04em;text-transform:uppercase;color:#cdbf95}.structure-training-grid-inline{grid-template-columns:repeat(var(--training-columns, 2),minmax(0,1fr));position:relative;z-index:2;align-self:end;position:sticky;bottom:0;padding-top:.35rem;background:linear-gradient(180deg,#090c1200,#090c12eb 22%),#090c12eb}@media (min-width: 821px) and (min-height: 431px){.sidebar-novice-cell .sidebar-cell-top-vertical-hp{grid-template-columns:clamp(.22rem,.46vw,.42rem) minmax(0,.86fr) minmax(0,1.14fr)}}@media (max-width: 820px),(max-height: 430px){.center-panel{--viewport-sidebar-padding: clamp(.32rem, .9vw, .52rem)}.scene-overlay-mana{left:var(--scene-board-left, var(--viewport-ui-left));width:3.6rem;gap:.1rem}.overlay-mana-row{grid-template-columns:auto}.overlay-mana-row .mana-bar{display:none}.overlay-initiative-chip{gap:.14rem;max-width:3.6rem;width:max-content;min-width:0;grid-template-columns:auto minmax(0,1fr)}.overlay-mana-compact{gap:.06rem .1rem}.overlay-mana-compact-chip{width:.88rem;height:.88rem}.overlay-mana-compact-chip strong{font-size:.48rem}.overlay-initiative-chip .topbar-player-copy{display:grid;gap:0;min-width:0;overflow:visible}.overlay-initiative-chip .topbar-player-copy strong{font-size:.54rem;overflow:visible}.overlay-initiative-chip .topbar-player-copy span{font-size:.46rem;overflow:visible}.viewport-top-right-controls{flex-direction:row;align-items:flex-start;justify-content:flex-end;gap:var(--viewport-corner-gap);width:auto}.viewport-corner-right{right:calc(100% - var(--scene-board-right, calc(100% - var(--viewport-ui-right))) + var(--viewport-corner-gap));top:0}.viewport-menu-button,.viewport-confirm-button{min-height:1.45rem}.viewport-menu-button{min-width:1.45rem}.viewport-confirm-button{padding:.12rem .22rem;font-size:.58rem;line-height:1.1}.viewport-menu-button:before{width:.82rem;height:.11rem;box-shadow:0 -.22rem #f2e6bb,0 .22rem #f2e6bb}.square-contents-grid{--square-grid-gap: .05rem;gap:.05rem;overflow:hidden}.primary-square-sidebar .square-contents-grid{--primary-square-cell-width: calc((100% - var(--square-grid-gap)) / 2);--primary-square-cell-content-height: 3.25rem;--primary-square-cell-height: var(--primary-square-cell-content-height);grid-auto-rows:var(--primary-square-cell-height)}.primary-square-sidebar .combat-cell,.secondary-square-sidebar .combat-cell,.primary-square-sidebar .novice-cell{min-height:0;height:100%;padding:.05rem}.viewport-sidebar-shell{top:0;width:calc(var(--scene-board-left, 8rem) - .28rem);height:100%}.viewport-preview-shell{top:0;width:calc(100% - var(--scene-board-right, calc(100% - var(--viewport-ui-right))) - .28rem);height:100%}.viewport-structure-sidebar{overflow:hidden;padding:var(--viewport-sidebar-padding)}.structure-sidebar{gap:.05rem}.sidebar-unit-level-star{width:.38rem;height:.38rem;font-size:.34rem}.sidebar-unit-stat-row{gap:.04rem}.sidebar-unit-stat-icons{min-width:.38rem;gap:.02rem}.sidebar-unit-stat-icon{width:.38rem;height:.38rem;font-size:.34rem}.sidebar-unit-stat-value{font-size:.46rem}.sidebar-cell-horizontal-hp>.sidebar-unit-hp-bar{height:1.25rem;min-height:1.25rem}.sidebar-novice-assigned-mana{gap:0;font-size:.42rem;line-height:1}.sidebar-novice-assigned-mana svg{width:min(.62rem,68%)!important;height:min(.62rem,68%)!important}.sidebar-novice-train-button{min-height:0;padding:0}.sidebar-training-symbol{font-size:.54rem}.sidebar-training-mana svg{width:.54rem;height:.54rem}.sidebar-novice-assigned-mana{gap:.01rem;font-size:.44rem}.novice-cell-next-copy{padding:.06rem}.novice-cell-next-copy small{font-size:clamp(.75rem,1.8vw,.95rem)}.novice-cell-next-copy strong{font-size:clamp(1rem,2.4vw,1.22rem)}.sidebar-novice-actions{border-radius:.34rem}.sidebar-novice-actions>:nth-child(1){border-top-left-radius:.34rem}.sidebar-novice-actions>:nth-child(2){border-top-right-radius:.34rem}.sidebar-novice-actions>:nth-child(3){border-bottom-left-radius:.34rem}.sidebar-novice-actions>:nth-child(4){border-bottom-right-radius:.34rem}.card-preview-header-band{padding:.24rem .32rem;font-size:.88rem}.card-preview-cost-token{width:1.55rem;height:1.55rem}.card-preview-cost-token strong{font-size:.78rem}.card-preview-typeline{font-size:.92rem}.card-preview-text{font-size:.9rem}}.scene-fallback{min-height:22rem;display:grid;place-items:center}@keyframes combat-cell-flash-attack{0%{opacity:0;transform:scale(.94)}30%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02)}}@keyframes combat-cell-flash-hit{0%{opacity:0;transform:scale(.94)}20%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02)}}@keyframes combat-cell-flash-blocked{0%{opacity:0;transform:scale(.94)}20%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.02)}}@keyframes combat-cell-flash-dodge{0%{opacity:0;transform:scale(.94)}25%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.01)}}@keyframes combat-cell-death-fade{0%{opacity:1}to{opacity:0}}@keyframes combat-impact-pop{0%{opacity:0;transform:scale(.84)}25%{opacity:1;transform:scale(1.02)}to{opacity:0;transform:scale(1.12)}}@keyframes combat-weapon-swing{0%{transform:rotate(-18deg) translateY(0)}45%{transform:rotate(24deg) translateY(-4%)}to{transform:rotate(0) translateY(0)}}@keyframes combat-face-lunge{0%{transform:translate(0)}45%{transform:translate(20%)}to{transform:translate(0)}}@keyframes combat-dodge-duck{0%{transform:translateY(0)}45%{transform:translateY(20%)}to{transform:translateY(0)}}@keyframes viewport-sidebar-in{0%{opacity:0;transform:translate(-100%)}to{opacity:1;transform:translate(0)}}@keyframes viewport-sidebar-in-right{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes viewport-sidebar-out{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-100%)}}@keyframes viewport-sidebar-out-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}@keyframes combat-card-modal-flash-attack{0%{opacity:0}35%{opacity:1}to{opacity:0}}@keyframes combat-card-modal-flash-hit{0%{opacity:0}25%{opacity:1}to{opacity:0}}@keyframes combat-card-modal-flash-dodge{0%{opacity:0}25%{opacity:1}to{opacity:0}}.order-list{margin:0;padding-left:1rem;display:grid;gap:.5rem}.order-pill{width:100%;text-align:left}.log-box{min-height:0;max-height:none;height:calc(50vh - 4rem);overflow:auto;display:grid;gap:.3rem;color:#d8cca9;font-size:1rem}.combat-log{color:#f3c5a6}@media (max-width: 1320px){.layout-debug-visible{grid-template-columns:240px minmax(0,1fr)}.layout>.side-panel:last-child{grid-column:1 / -1;grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width: 980px){.layout{grid-template-columns:1fr}.layout>.side-panel:last-child{grid-template-columns:1fr}.scene-shell{height:70vh}.layout:not(.layout-debug-visible) .scene-shell{height:100vh}}:root{font-family:Trebuchet MS,Gill Sans,sans-serif;line-height:1.4;font-weight:400;color:#1d1812;background:#e7dcc3;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0}button{font:inherit}
