:root{color-scheme:dark;--ink: #221d14;--ink-soft: #524a38;--parchment: #fff2d6;--paper: #fff8e8;--paper-2: #f4e2bc;--paper-edge: #e0c184;--forest: #2f9350;--forest-deep: #0d3a1f;--night: #07130e;--night-2: #0e2b1c;--teal: #0f938c;--brick: #c8452d;--gold: #f5b215;--gold-soft: #ffdd72;--line: rgba(78, 65, 43, .25);--shadow: 0 18px 40px rgba(0, 0, 0, .32);--font-display: Georgia, "Iowan Old Style", "Palatino Linotype", "Times New Roman", serif;--font-body: "Segoe UI", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{margin:0;background:radial-gradient(1200px 700px at 12% -10%,rgba(24,224,132,.26),transparent 62%),radial-gradient(900px 600px at 108% 16%,rgba(0,205,214,.24),transparent 62%),radial-gradient(760px 520px at 55% 118%,rgba(255,60,140,.18),transparent 68%),#07130e;color:var(--parchment);font-family:var(--font-body);font-size:15px;line-height:1.45;-webkit-text-size-adjust:100%}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}:focus-visible{outline:2px solid var(--gold-soft);outline-offset:2px}h1,h2,h3,h4{font-family:var(--font-display);font-weight:600;letter-spacing:.01em;margin:0}p{margin:0 0 8px}ul{margin:6px 0;padding-left:18px}.app-shell{min-height:100%}.screen{min-height:100dvh}.muted{color:var(--ink-soft);opacity:.9}.battle-screen .muted{color:#f1e7d0a6}.tiny{font-size:12px;line-height:1.4}.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.16em;font-size:10.5px;font-weight:700;color:var(--brick);margin:0 0 4px}.battle-screen .eyebrow,.report-hero .eyebrow{color:var(--gold-soft)}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.paper-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(180deg,#f8f1e0,#e7dabf);color:var(--ink);border:1px solid #b9a780;border-radius:10px;padding:9px 14px;font-weight:650;font-size:13.5px;box-shadow:0 2px #a8946e,0 6px 14px #00000029;transition:transform .12s ease,box-shadow .12s ease,background .12s ease;text-align:center;text-decoration:none}.paper-button:hover:not(:disabled){transform:translateY(-1px);background:linear-gradient(180deg,#fff8e8,#ecdfc5)}.paper-button:active:not(:disabled){transform:translateY(1px);box-shadow:0 1px #a8946e,0 3px 8px #00000024}.paper-button.primary{background:linear-gradient(180deg,#5f7d5f,#3f5a44);color:#fbf4e3;border-color:#2e4636;box-shadow:0 2px #25392d,0 6px 16px #00000040}.paper-button.primary:hover:not(:disabled){background:linear-gradient(180deg,#6b8a69,#47644b)}.paper-button.ghost{background:transparent;color:var(--ink);border-color:#4e412b66;box-shadow:none}.paper-button.big{padding:13px 20px;font-size:15px}.paper-button.small{padding:6px 10px;font-size:12px}.ghost{background:transparent;border:1px solid rgba(78,65,43,.3);color:var(--ink);border-radius:8px;padding:6px 10px;font-weight:600}.battle-screen .ghost,.report-hero .ghost,.screen-header .ghost{color:var(--parchment);border-color:#f1e7d04d}.ghost.small{padding:4px 8px;font-size:12px}.ghost.danger{color:var(--brick);border-color:#96483c66}.ghost.light{border-color:#f1e7d059}input[type=text],input[type=number],input:not([type]),select,.dm-note{background:#fbf6ea;color:var(--ink);border:1px solid #c4b48e;border-radius:8px;padding:8px 9px;min-width:0;width:100%;box-shadow:inset 0 1px 2px #503c1e14}input[type=checkbox],input[type=radio]{accent-color:var(--forest);width:17px;height:17px;flex:0 0 auto}.check-row{display:flex;align-items:flex-start;gap:9px;background:#fffcf280;border:1px solid rgba(120,100,65,.22);border-radius:9px;padding:8px 10px}.check-row.compact{padding:6px 8px}.check-row span{display:flex;flex-direction:column;gap:1px;line-height:1.3}.check-row small{color:var(--ink-soft);font-size:11.5px}.switch{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:600;white-space:nowrap}.switch input{accent-color:var(--gold)}.badge{display:inline-flex;min-width:17px;height:17px;align-items:center;justify-content:center;border-radius:9px;background:#c9a22740;color:var(--gold-soft);font-size:10px;padding:0 4px}.legality{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:4px 8px;border-radius:999px;white-space:nowrap}.legality.ok{background:#4e6a5026;color:#3d5c40;border:1px solid rgba(78,106,80,.35)}.legality.ko{background:#96483c1f;color:#8c3f34;border:1px solid rgba(150,72,60,.35)}.warn-dot{width:9px;height:9px;border-radius:50%;background:var(--brick);box-shadow:0 0 0 3px #96483c33;flex:0 0 auto}.panel{position:relative;background:linear-gradient(155deg,#fffbf0f5,#e9ddc2fa),repeating-linear-gradient(0deg,rgba(100,80,45,.035) 0 2px,transparent 2px 5px);color:var(--ink);border:1px solid var(--paper-edge);border-radius:14px;box-shadow:var(--shadow),inset 0 1px #ffffffa6;padding:16px}.panel:after{content:"";position:absolute;inset:4px;border:1px solid rgba(120,98,60,.13);border-radius:10px;pointer-events:none}.panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.panel-head h2{font-size:20px}.panel-head-actions{display:flex;gap:6px}.panel-actions{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}.panel-actions.wrap{flex-wrap:wrap}.home-screen{padding-bottom:12px}.masthead{position:relative;overflow:hidden;padding:28px 18px 24px;background:radial-gradient(90% 120% at 18% 0%,rgba(145,168,125,.22),transparent 55%),linear-gradient(160deg,#203027,#121a16 70%);border-bottom:1px solid rgba(231,203,120,.25)}.masthead:before{content:"";position:absolute;left:-10%;right:-10%;bottom:-70px;height:170px;background:radial-gradient(50% 100% at 20% 100%,rgba(93,116,80,.5),transparent 70%),radial-gradient(45% 100% at 68% 100%,rgba(62,109,108,.4),transparent 70%);clip-path:polygon(0 100%,0 55%,18% 35%,32% 62%,48% 25%,65% 58%,80% 38%,100% 62%,100% 100%);pointer-events:none}.masthead-paper{position:absolute;inset:0;background:repeating-linear-gradient(105deg,rgba(255,255,255,.025) 0 1px,transparent 1px 7px);pointer-events:none}.brand{position:relative;display:flex;align-items:center;gap:18px;max-width:1260px;margin:0 auto}.brand-mark{position:relative;flex:0 0 auto;width:74px;height:74px;display:grid;place-items:center;background:linear-gradient(145deg,#f1e3c1,#cbb382);clip-path:polygon(50% 0,88% 14%,100% 52%,78% 92%,35% 100%,5% 72%,0 32%,24% 8%);color:#3d3324;transform:rotate(-4deg);box-shadow:0 10px 24px #00000059}.brand-die{font-family:var(--font-display);font-size:27px;font-weight:700;transform:rotate(4deg)}.brand-fold{position:absolute;bottom:5px;right:9px;width:20px;height:13px;border-top:1px solid rgba(70,55,30,.35);transform:rotate(32deg)}.brand h1{font-size:clamp(36px,7vw,62px);line-height:.95;color:#f7eed9;letter-spacing:.01em;text-shadow:0 3px 0 rgba(0,0,0,.25)}.brand-sub{color:#f1e7d0b8;max-width:620px;margin-top:6px;font-size:14px}.masthead-actions{position:relative;display:flex;gap:8px;margin-top:18px;max-width:1260px;margin-left:auto;margin-right:auto;flex-wrap:wrap}.home-main{max-width:1280px;margin:0 auto;padding:18px 14px 10px;display:grid;grid-template-columns:1fr;gap:16px}.party-list{display:grid;grid-template-columns:1fr;gap:8px}.party-card{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:#fffcf28c;border:1px solid rgba(120,100,65,.22);border-radius:10px;padding:8px;color:var(--ink);transition:background .12s ease,transform .12s ease}.party-card:hover{background:#fffaf0;transform:translateY(-1px)}.party-portrait{flex:0 0 auto;width:44px;height:44px;border-radius:10px;display:grid;place-items:center;color:#fbf4e4;font-family:var(--font-display);font-size:20px;border:2px solid;box-shadow:inset 0 -6px 10px #0003,0 3px 8px #0000002e;clip-path:polygon(12% 0,100% 0,100% 86%,88% 100%,0 100%,0 14%)}.party-portrait.small{width:34px;height:34px;font-size:16px;border-radius:8px}.party-portrait.tiny{width:24px;height:24px;font-size:12px;border-radius:6px}.party-info{display:flex;flex-direction:column;min-width:0;flex:1}.party-info strong{font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.party-info span{font-size:11.5px;color:var(--ink-soft)}.party-skills{opacity:.8}.option-grid{display:grid;grid-template-columns:1fr;gap:9px}.option-grid label,.field-grid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:650;color:var(--ink-soft)}.option-grid select,.option-grid input{font-size:13px}.check-row span strong{color:var(--ink)}.scenario-grid{display:grid;grid-template-columns:1fr;gap:12px}.scenario-card{position:relative;border:1px solid rgba(120,100,65,.28);border-radius:12px;padding:13px;background:#fffcf19e;display:flex;flex-direction:column;gap:6px}.scenario-card:before{content:"";position:absolute;top:0;left:16px;right:16px;height:3px;border-radius:0 0 3px 3px;background:var(--forest)}.scenario-card.scenario-hard:before{background:var(--brick)}.scenario-card.scenario-deadly:before{background:#5d2a2a}.scenario-card.scenario-easy:before{background:var(--teal)}.scenario-top{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px}.scenario-map{text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);font-weight:700}.difficulty-tag{background:#4e6a5024;border:1px solid rgba(78,106,80,.28);color:#3f5a44;padding:2px 7px;border-radius:999px;font-weight:700}.scenario-card h3{font-size:20px}.scenario-sub{font-weight:700;color:var(--brick);font-size:12px}.scenario-card p{font-size:13px;color:var(--ink-soft);margin:0}.scenario-monsters{font-size:12px;font-weight:700;color:var(--teal);background:#3e6d6c14;padding:5px 7px;border-radius:6px}.scenario-stakes{font-style:italic}.scenario-card .paper-button{margin-top:auto}.sim-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:10px 0}.sim-busy{font-size:12px;font-weight:700;color:var(--brick);animation:softPulse 1.2s infinite}.sim-result{border-top:1px dashed rgba(100,80,45,.3);padding-top:10px}.sim-rate{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}.sim-rate strong{font-family:var(--font-display);font-size:38px;color:var(--forest);line-height:1}.sim-rate span{font-weight:700;font-size:13px}.sim-rate em{font-size:11.5px;color:var(--ink-soft)}.sim-stats{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.sim-stats span{background:#4e6a501a;border-radius:999px;padding:3px 8px;font-size:11.5px}.sim-enemies{font-size:12.5px;margin:6px 0}.sim-notes{font-size:11.5px;color:var(--ink-soft)}.rules-columns{display:grid;grid-template-columns:1fr;gap:14px}.rules-columns h3{font-size:16px;margin:4px 0}.rules-columns p,.rules-columns li{font-size:12.5px;color:var(--ink-soft)}.limitation-list{max-height:210px;overflow:auto;padding-right:6px}.attribution{border-top:1px solid rgba(100,80,45,.25);margin-top:12px;padding-top:10px}.attribution p{font-size:10.5px;color:var(--ink-soft)}.home-footer{max-width:1280px;margin:0 auto;padding:8px 18px 26px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:#f1e7d07a;font-size:11px}.squad-screen{padding:0 0 28px}.screen-header{position:relative;display:flex;align-items:center;gap:14px;padding:16px 16px 14px;background:linear-gradient(180deg,#151d18fa,#151d18d1);border-bottom:1px solid rgba(231,203,120,.2);flex-wrap:wrap}.screen-header h1{font-size:clamp(24px,5vw,38px);color:var(--parchment)}.screen-header .eyebrow{color:var(--gold-soft)}.header-actions{display:flex;align-items:center;gap:8px;margin-left:auto;flex-wrap:wrap}.squad-layout{max-width:1280px;margin:0 auto;padding:16px 14px;display:grid;grid-template-columns:1fr;gap:14px}.squad-note{display:flex;flex-direction:column;gap:10px;align-self:start}.squad-note h2{font-size:20px}.squad-note p{font-size:12.5px;color:var(--ink-soft)}.squad-summary{display:flex;flex-direction:column;gap:5px;border-top:1px dashed rgba(100,80,45,.25);padding-top:8px}.mini-summary{display:flex;align-items:center;gap:7px}.mini-summary span:nth-child(2){display:flex;flex-direction:column;min-width:0}.mini-summary strong{font-size:12.5px}.mini-summary small{color:var(--ink-soft);font-size:10.5px}.hero-editor-list{display:flex;flex-direction:column;gap:12px}.hero-editor{padding:0;overflow:hidden}.hero-editor summary{display:flex;align-items:center;gap:10px;padding:11px 12px;cursor:pointer;list-style:none;user-select:none}.hero-editor summary::-webkit-details-marker{display:none}.hero-editor[open] summary{border-bottom:1px solid rgba(100,80,45,.2);background:#fffcf273}.editor-summary{display:flex;flex-direction:column;min-width:0;flex:1}.editor-summary strong{font-size:15px}.editor-summary span{font-size:11.5px;color:var(--ink-soft)}.chevron{transition:transform .15s ease;color:var(--ink-soft);font-size:18px}.hero-editor[open] .chevron{transform:rotate(180deg)}.editor-body{padding:12px;display:flex;flex-direction:column;gap:12px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.field-grid .wide{grid-column:1 / -1}.species-note{font-size:11.5px;background:#3e6d6c12;border-left:3px solid rgba(62,109,108,.4);padding:7px 9px;border-radius:0 6px 6px 0;color:var(--ink-soft)}.ability-editor{display:grid;grid-template-columns:1fr 1fr;gap:7px}.ability-edit{border:1px solid rgba(120,100,65,.22);background:#fffcf280;border-radius:8px;padding:6px 8px}.ability-edit.invalid{border-color:#96483c99;background:#96483c0f}.ability-edit-head{display:flex;align-items:baseline;gap:6px;font-size:11px}.ability-edit-head span{flex:1;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);font-weight:700}.ability-edit-head strong{font-size:18px;font-family:var(--font-display)}.ability-edit-head em{color:var(--forest);font-style:normal;font-weight:700;font-size:11px}.stepper{display:flex;align-items:center;justify-content:space-between;gap:4px;margin-top:3px}.stepper button{width:25px;height:23px;border-radius:5px;border:1px solid rgba(100,80,45,.3);background:#f6eedb;color:var(--ink);font-weight:700;line-height:1}.stepper span{font-size:10px;color:var(--ink-soft)}.point-buy{font-size:11.5px;color:var(--ink-soft);margin:0}.point-buy.ko{color:var(--brick);font-weight:700}.equip-grid{display:grid;grid-template-columns:1fr;gap:10px}.equip-grid h3,.spell-editor h3,.palette-row h3{font-size:14px;margin-bottom:5px}.check-list{display:flex;flex-direction:column;gap:5px}.spell-editor{display:grid;grid-template-columns:1fr;gap:10px}.spell-editor h3{display:flex;justify-content:space-between;align-items:baseline}.spell-editor h3 span{font-size:10.5px;color:var(--ink-soft);font-weight:400}.spell-column{display:flex;flex-direction:column;gap:5px}.palette-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.palette-row h3{margin:0}.palettes{display:flex;gap:6px}.palette{width:30px;height:30px;border-radius:50%;border:2px solid;display:grid;place-items:center;padding:0}.palette span{width:10px;height:10px;border-radius:50%}.palette.is-active{box-shadow:0 0 0 2px #fff,0 0 0 4px var(--forest)}.computed-row{display:flex;flex-wrap:wrap;gap:6px;background:#4e6a5014;border-radius:8px;padding:8px;font-size:11.5px}.computed-row strong{color:var(--forest)}.validation-box{border:1px solid rgba(150,72,60,.32);background:#96483c0f;border-radius:8px;padding:8px}.error-line{color:#8c3f34;font-size:11.5px;font-weight:600;margin:0 0 3px}.warning-line{color:#7a6330;font-size:11.5px;margin:0 0 3px}.editor-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.battle-screen{position:fixed;inset:0;overflow:hidden;height:100dvh;background:#141c17;color:var(--parchment)}.diorama-wrap{position:absolute;inset:0}.diorama-wrap canvas{display:block;touch-action:none}.battle-overlay-top{position:absolute;top:0;left:0;right:0;z-index:20;padding:8px;display:flex;flex-direction:column;gap:6px;pointer-events:none}.battle-bar,.initiative-bar{pointer-events:auto;background:linear-gradient(180deg,#161f1af5,#161f1adb);border:1px solid rgba(231,203,120,.2);border-radius:12px;box-shadow:0 10px 24px #0000004d;backdrop-filter:blur(8px)}.battle-bar{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:7px 9px;flex-wrap:wrap}.battle-bar-left{display:flex;align-items:center;gap:9px;min-width:0}.brand-mini{background:linear-gradient(145deg,#efe1c0,#c8af7e);color:#3b3223;border:1px solid #a89066;border-radius:7px;font-family:var(--font-display);font-weight:700;font-size:12px;padding:5px 7px;white-space:nowrap}.battle-name{display:flex;flex-direction:column;min-width:0}.battle-name strong{font-family:var(--font-display);font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.battle-name span{font-size:10px;color:#f1e7d09e;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:52vw}.battle-bar-right{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.battle-tool{background:#f1e7d00f;color:var(--parchment);border:1px solid rgba(241,231,208,.18);border-radius:6px;padding:4px 7px;font-size:11px;font-weight:600;white-space:nowrap}.battle-tool:hover:not(:disabled),.battle-tool.is-on{background:#e7cb782e;border-color:#e7cb7873}.battle-view-toggle{min-width:40px;justify-content:center}.target-tap-hint{margin:3px 0 6px;font-size:10px;line-height:1.35;color:#f1e7d09e}.battle-toggle-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.battle-toggle{display:inline-flex;align-items:center;gap:3px;font-size:10.5px;font-weight:700;color:#f1e7d0cc;white-space:nowrap}.battle-toggle input{width:14px;height:14px;accent-color:var(--gold)}.battle-toggle select{width:auto;background:#f1e7d014;color:var(--parchment);border:1px solid rgba(241,231,208,.2);border-radius:5px;padding:2px 3px;font-size:10.5px}.battle-toggle option{color:var(--ink);background:var(--paper)}.initiative-bar{display:flex;align-items:center;gap:6px;padding:5px 6px;overflow:hidden}.round-pill{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:41px;height:41px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#f7e8c3,#cfb47c);color:#3b3223;border:1px solid #a89066;line-height:1}.round-pill span{font-size:8px;text-transform:uppercase;letter-spacing:.08em}.round-pill strong{font-family:var(--font-display);font-size:18px}.initiative-scroll{display:flex;gap:4px;overflow-x:auto;flex:1;scrollbar-width:thin;padding-bottom:2px}.initiative-token{position:relative;display:flex;align-items:center;gap:5px;background:#f1e7d00e;border:1px solid rgba(241,231,208,.14);border-radius:7px;color:var(--parchment);padding:3px 5px 6px;min-width:74px;flex:0 0 auto;overflow:hidden;text-align:left}.initiative-token.is-active{background:#e7cb7829;border-color:#e7cb78b3;box-shadow:0 0 0 1px #e7cb784d inset}.initiative-token.is-selected{outline:2px solid rgba(241,231,208,.55);outline-offset:1px}.initiative-token.is-down{opacity:.45;filter:grayscale(.8)}.token-face{width:24px;height:24px;flex:0 0 auto;border-radius:50%;border:1.5px solid;display:grid;place-items:center;color:#fff8e8;font-family:var(--font-display);font-size:12px;font-weight:700}.token-stack{display:flex;flex-direction:column;min-width:0;flex:1}.token-label{font-size:9.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:66px}.token-ini{font-size:9px;font-weight:700}.token-ini.heroes{color:var(--gold-soft)}.token-ini.foes{color:#e08b7d}.token-hp{position:absolute;left:0;right:0;bottom:0;height:2px;background:#00000080}.token-hp span{display:block;height:100%;background:#8fb07a}.initiative-side{display:none;align-items:center;gap:5px;font-size:10px;color:#f1e7d0a6;white-space:nowrap}.side-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.side-dot.heroes{background:#9fc08b}.side-dot.foes{background:#d07868}.side-dot.neutral{background:#c9b98d}.battle-bottom{position:absolute;left:0;right:0;bottom:0;z-index:25;padding:7px;display:flex;flex-direction:column;gap:6px;pointer-events:none}.battle-bottom>*{pointer-events:auto}.battle-bottom{transition:opacity .18s ease,transform .22s ease}.actionbar{width:100%;max-width:1140px;margin:0 auto;background:linear-gradient(180deg,#18221cf7,#121b16f7);border:1px solid rgba(231,203,120,.24);border-radius:14px;box-shadow:0 16px 40px #00000073;display:flex;flex-direction:column;max-height:43vh;overflow:hidden}.actionbar.passive{flex-direction:row;align-items:center;gap:10px;padding:11px 13px;font-size:13px}.actionbar.passive .ghost{margin-left:auto;color:var(--parchment);border-color:#f1e7d04d}.actor-head{display:flex;align-items:center;gap:7px;padding:7px 9px;border-bottom:1px solid rgba(241,231,208,.1);flex-wrap:wrap}.actor-face{width:31px;height:31px;border-radius:8px;border:1.5px solid;display:grid;place-items:center;color:#fff8e8;font-family:var(--font-display);font-size:15px;flex:0 0 auto}.actor-id{display:flex;flex-direction:column;min-width:0}.actor-id strong{font-size:13px;white-space:nowrap}.actor-id span{font-size:10px;color:#f1e7d099}.pips{display:flex;gap:3px;flex-wrap:wrap}.pip{font-size:8.5px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;padding:2px 5px;border-radius:4px;border:1px solid rgba(241,231,208,.16);color:#f1e7d066}.pip.on{color:#f6edda;background:#8fb07a38;border-color:#8fb07a73}.pip.move{color:var(--gold-soft);border-color:#e7cb7859}.end-turn{margin-left:auto;background:linear-gradient(180deg,#d3b45c,#a98932);color:#2f2716;border:1px solid #8b6f26;border-radius:8px;padding:6px 10px;font-size:11px;font-weight:800;box-shadow:0 2px #7c6220;white-space:nowrap}.end-turn:hover{background:linear-gradient(180deg,#e2c46c,#b6973c)}.action-tabs{display:flex;align-items:center;gap:3px;padding:4px 8px 0;overflow-x:auto}.tab{background:transparent;border:none;border-bottom:2px solid transparent;color:#f1e7d09e;font-size:11px;font-weight:700;padding:5px 7px;white-space:nowrap}.tab.active{color:var(--gold-soft);border-bottom-color:var(--gold)}.move-hint{margin-left:auto;font-size:9.5px;color:#f1e7d06b;display:none}.action-body{overflow-y:auto;padding:7px 8px 9px;-webkit-overflow-scrolling:touch}.action-group h4{font-family:var(--font-body);font-size:9.5px;text-transform:uppercase;letter-spacing:.13em;color:#f1e7d075;margin:1px 0 5px}.action-grid,.spell-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(136px,1fr));gap:5px}.action-chip,.spell-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;background:linear-gradient(152deg,#00ffaa17,#f1e7d00d);border:1px solid rgba(120,255,200,.24);border-radius:7px;color:var(--parchment);padding:6px 7px;text-align:left;min-height:41px;transition:background .12s ease,border-color .12s ease}.action-chip:hover,.spell-chip:hover{background:linear-gradient(152deg,#00ffaa2e,#ffc4281f);border-color:#ffd866a6;box-shadow:0 0 14px #00ffaa2e}.action-chip strong,.spell-chip strong{font-size:11.5px;line-height:1.2}.action-chip span,.spell-chip span,.spell-chip em{font-size:9.5px;color:#f1e7d094;font-style:normal;line-height:1.25}.action-chip em{font-size:9px;color:var(--gold-soft);font-style:normal}.action-chip.small{min-height:35px}.action-chip.is-unavailable,.spell-chip.is-unavailable{opacity:.52;border-style:dashed}.action-chip.is-pending,.spell-chip.is-pending{border-color:var(--gold);background:linear-gradient(152deg,#ffc21f47,#ff6a3d29);box-shadow:0 0 16px #ffb21547}.spell-cost{font-size:8px!important;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-soft)!important;font-weight:700}.ready-row{display:flex;gap:5px;flex-wrap:wrap;margin-top:6px}.ready-row .ghost{color:var(--parchment);border-color:#f1e7d047}.target-panel{width:min(620px,100%);align-self:center;max-height:36vh;overflow-y:auto;background:linear-gradient(155deg,#fffbf0fa,#e9ddc2fc),repeating-linear-gradient(0deg,rgba(100,80,45,.03) 0 2px,transparent 2px 5px);color:var(--ink);border:1px solid var(--paper-edge);border-radius:12px;box-shadow:0 14px 34px #0006;padding:10px;animation:panelRise .16s ease-out}.target-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.target-head h3{font-size:15px;margin:0}.target-sub{font-size:10.5px;color:var(--ink-soft);margin:2px 0 0}.target-panel .ghost{color:var(--ink);border-color:#4e412b59}.target-list{display:flex;flex-direction:column;gap:5px;margin-top:8px}.target-row{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fffcf2b3;border:1px solid rgba(120,100,65,.24);border-radius:8px;padding:6px 8px;color:var(--ink)}.target-row.is-valid:hover{background:#fffaf0;border-color:var(--forest)}.target-row.is-aimed{background:#fff5d7;border-color:var(--gold);box-shadow:0 0 0 2px #c9a2272e}.aim-card{margin-top:8px;padding:8px 9px;border:1px solid rgba(201,162,39,.52);border-radius:9px;background:linear-gradient(135deg,#e7cb783d,#fffcf2e0),repeating-linear-gradient(0deg,rgba(100,80,45,.03) 0 2px,transparent 2px 5px);display:flex;align-items:flex-start;justify-content:space-between;gap:9px;flex-wrap:wrap;box-shadow:inset 0 1px #ffffff8c}.aim-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 240px}.aim-kicker{font-size:8.5px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#7a6425}.aim-copy strong{font-size:12.5px}.aim-copy>span:not(.aim-kicker):not(.aim-note){font-size:10px;color:var(--ink-soft)}.aim-note{font-size:9.5px;line-height:1.35;color:var(--ink-soft)}.aim-actions{display:flex;align-items:center;gap:5px;flex-wrap:wrap}.aim-actions .paper-button{padding:6px 10px;font-size:11px;min-height:0}.aim-actions .ghost{font-size:10px}.target-row.is-invalid{opacity:.72;border-style:dashed;cursor:help}.target-dot{width:18px;height:18px;border-radius:50%;border:1px solid rgba(0,0,0,.18);flex:0 0 auto}.target-main{display:flex;flex-direction:column;min-width:0;flex:1}.target-main strong{font-size:12px}.target-main span{font-size:10px;color:var(--ink-soft)}.target-reason{font-size:9.5px;color:var(--ink-soft);max-width:44%;text-align:right}.target-row.is-invalid .target-reason{color:var(--brick)}.spell-desc{margin-top:7px;border-top:1px dashed rgba(100,80,45,.25);padding-top:6px}.spell-desc p{font-size:11px;color:var(--ink-soft);margin:0 0 4px}.slot-row{display:flex;align-items:center;gap:5px;flex-wrap:wrap;font-size:11px}.slot-chip{border:1px solid rgba(100,80,45,.35);background:transparent;border-radius:999px;padding:2px 7px;font-size:10px;color:var(--ink)}.slot-chip.is-active{background:var(--forest);color:var(--paper);border-color:var(--forest)}.area-instruction{margin-top:7px;font-size:11.5px;color:var(--ink-soft)}.area-hint{background:#3e6d6c17;border-left:3px solid rgba(62,109,108,.45);padding:6px 8px;border-radius:0 5px 5px 0;margin-top:5px!important}.deploy-bar{width:min(1040px,100%);align-self:center;max-height:46vh;overflow-y:auto;background:linear-gradient(155deg,#fffbf0fa,#e9ddc2fc);color:var(--ink);border:1px solid var(--paper-edge);border-radius:14px;box-shadow:0 16px 40px #00000073;padding:12px}.deploy-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.deploy-head h2{font-size:22px}.deploy-head p{font-size:11.5px;max-width:660px}.deploy-body{display:grid;grid-template-columns:1fr;gap:10px;margin-top:9px}.deploy-body h3{font-family:var(--font-body);font-size:10px;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-soft);margin-bottom:5px}.deploy-heroes{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:5px}.deploy-hero{display:flex;align-items:center;gap:7px;background:#fffcf2a6;border:1px solid rgba(120,100,65,.24);border-radius:8px;padding:6px;text-align:left;color:var(--ink)}.deploy-hero.is-selected{border-color:var(--gold);background:#e7cb7840;box-shadow:0 0 0 2px #c9a22733}.deploy-hero span:last-child{display:flex;flex-direction:column;min-width:0}.deploy-hero strong{font-size:11.5px}.deploy-hero small{font-size:9.5px;color:var(--ink-soft)}.deploy-foes{border-top:1px dashed rgba(100,80,45,.25);padding-top:8px}.foe-chips{display:flex;flex-wrap:wrap;gap:5px}.foe-chip{background:#96483c1a;border:1px solid rgba(150,72,60,.25);color:#7c3b31;border-radius:999px;font-size:10.5px;font-weight:700;padding:3px 8px}.replay-bar,.ended-bar{width:min(820px,100%);align-self:center;display:flex;align-items:center;gap:10px;background:linear-gradient(180deg,#18221cf7,#121b16f7);border:1px solid rgba(231,203,120,.35);border-radius:12px;padding:9px 11px;box-shadow:0 14px 34px #0006;flex-wrap:wrap}.replay-label{display:flex;flex-direction:column;font-size:11px}.replay-label strong{color:var(--gold-soft);font-size:12px}.replay-label span{color:#f1e7d099;font-size:9.5px}.replay-progress{flex:1;min-width:90px;height:5px;background:#f1e7d01f;border-radius:3px;overflow:hidden}.replay-progress span{display:block;height:100%;background:var(--gold);transition:width .2s linear}.replay-actions,.ended-bar{display:flex;gap:5px;flex-wrap:wrap}.replay-actions .ghost{color:var(--parchment);border-color:#f1e7d04d}.ended-bar{justify-content:space-between}.ended-bar>div{display:flex;flex-direction:column;font-size:11px}.ended-bar strong{font-family:var(--font-display);font-size:15px;color:var(--gold-soft)}.ended-bar span{color:#f1e7d09e}.outcome-overlay{position:absolute;inset:0;z-index:55;display:grid;place-items:center;background:#0c120e8f;pointer-events:none;padding:18px;animation:fadeIn .25s ease-out}.outcome-card{pointer-events:auto;width:min(470px,100%);background:linear-gradient(155deg,#fbf5e5,#e6d7b5);color:var(--ink);border:1px solid var(--paper-edge);border-radius:14px;box-shadow:0 24px 60px #00000080;padding:20px;text-align:center;transform:rotate(-.6deg)}.outcome-card h2{font-size:26px;margin-bottom:6px}.outcome-card p{font-size:12.5px;color:var(--ink-soft)}.outcome-actions{display:flex;justify-content:center;gap:8px;margin-top:12px}.sheet-panel,.log-panel{position:absolute;top:0;bottom:0;z-index:45;width:min(390px,100%);background:linear-gradient(160deg,#faf3e2,#e9dcc0);color:var(--ink);box-shadow:0 0 50px #00000073;display:flex;flex-direction:column;animation:slideIn .18s ease-out}.sheet-panel{left:0}.log-panel{right:0;width:min(440px,100%);background:linear-gradient(160deg,#1c2821,#121a15);color:var(--parchment)}.sheet-panel .panel-head,.log-panel .panel-head{padding:12px 12px 9px;margin:0;border-bottom:1px solid rgba(100,80,45,.2)}.log-panel .panel-head{border-bottom-color:#f1e7d01f}.sheet-panel .panel-head h2,.log-panel .panel-head h2{font-size:19px}.log-panel .muted{color:#f1e7d08c}.sheet-scroll,.log-scroll{overflow-y:auto;padding:10px 12px 26px;-webkit-overflow-scrolling:touch}.sheet-identity{display:flex;align-items:center;gap:10px;margin-bottom:9px}.sheet-portrait{width:54px;height:54px;border-radius:11px;border:2px solid;display:grid;place-items:center;color:#fff8e8;font-family:var(--font-display);font-size:24px;flex:0 0 auto}.sheet-identity h3{font-size:19px}.sheet-identity p{margin:0;font-size:11px}.hp-block{margin-bottom:9px}.hp-label{display:flex;justify-content:space-between;font-size:10.5px;color:var(--ink-soft);margin-bottom:3px}.hp-label strong{color:var(--ink);font-size:12px}.hp-track{height:9px;border-radius:5px;background:#3c2d192e;overflow:hidden;border:1px solid rgba(60,45,25,.15)}.hp-track span{display:block;height:100%;background:linear-gradient(90deg,#6d8c5f,#8fae78)}.hp-track.wounded span{background:linear-gradient(90deg,#b08a3c,#d1ae5e)}.hp-track.critical span{background:linear-gradient(90deg,#9a4438,#c56a5a)}.status-ribbon{margin-top:4px;background:#96483c1a;border-radius:5px;padding:3px 6px;font-size:10px;color:#7c3b31;font-weight:600}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-bottom:9px}.stat-grid div{background:#4e6a5014;border:1px solid rgba(78,106,80,.16);border-radius:7px;padding:5px;display:flex;flex-direction:column;align-items:center}.stat-grid span{font-size:8px;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft)}.stat-grid strong{font-family:var(--font-display);font-size:15px;color:var(--ink)}.sheet-section{border-top:1px dashed rgba(100,80,45,.24);padding-top:7px;margin-top:7px}.sheet-section h3{font-family:var(--font-body);font-size:9px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:4px}.ability-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:3px}.ability-box{background:#fffcf2a6;border:1px solid rgba(100,80,45,.18);border-radius:5px;padding:3px 2px;display:flex;flex-direction:column;align-items:center;line-height:1.1}.ability-box span{font-size:7.5px;color:var(--ink-soft);font-weight:700}.ability-box strong{font-size:12px}.ability-box em{font-size:8.5px;color:var(--forest);font-style:normal;font-weight:700}.chip-row{display:flex;flex-wrap:wrap;gap:3px;margin-bottom:5px}.mini-chip{background:#fffcf2b3;border:1px solid rgba(100,80,45,.2);border-radius:999px;padding:2px 6px;font-size:9.5px}.mini-chip.is-prof{border-color:#4e6a5073;background:#4e6a501f;font-weight:700}.attack-mini-list{display:flex;flex-direction:column;gap:3px}.attack-mini{display:flex;justify-content:space-between;gap:6px;font-size:10.5px;background:#fffcf299;border-radius:5px;padding:3px 6px}.attack-mini span{color:var(--ink-soft);text-align:right}.condition-details{display:flex;flex-direction:column;gap:3px}.condition-details details{background:#96483c0f;border:1px solid rgba(150,72,60,.18);border-radius:5px;padding:3px 5px}.condition-details summary{cursor:pointer;font-size:10px}.condition-details p{font-size:10px;color:var(--ink-soft);margin:4px 0 0}.cond-badge{font-weight:700;color:#7c3b31}.effect-chip{font-size:9.5px;background:#3e6d6c1a;border-radius:4px;padding:2px 5px}.concentration p{font-size:10.5px;color:var(--ink-soft)}.slot-summary{display:flex;flex-wrap:wrap;gap:3px;margin:3px 0 5px}.slot-pip{font-size:9.5px;background:#3e6d6c1a;border:1px solid rgba(62,109,108,.22);border-radius:999px;padding:2px 6px;font-weight:600}.spell-mini-list,.feature-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:3px}.spell-mini-list li,.feature-list li{display:flex;flex-direction:column;font-size:10px;background:#fffcf28c;border-radius:5px;padding:3px 6px}.spell-mini-list span,.feature-list span{color:var(--ink-soft);font-size:9.5px}.death-row{display:flex;gap:10px;font-size:10.5px;font-weight:700;color:#7c3b31}.effect-inline{font-size:10px;background:#4e6a501f;border-radius:5px;padding:4px 6px}.tactics p{font-size:10.5px;color:var(--ink-soft)}.dm-tools{background:#c9a22714;border:1px solid rgba(201,162,39,.28);border-radius:8px;padding:7px}.dm-tools p{font-size:9.5px}.dm-row{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:4px}.dm-row .ghost{padding:3px 6px;font-size:9.5px}.dm-row select{flex:1;min-width:100px;font-size:10px;padding:4px}.dm-note{font-size:10px;padding:4px 6px;margin-bottom:4px}.log-entry{border-bottom:1px solid rgba(241,231,208,.08);padding:5px 0}.log-entry summary{display:flex;align-items:baseline;gap:5px;cursor:pointer;list-style:none;font-size:10.5px;line-height:1.3}.log-entry summary::-webkit-details-marker{display:none}.log-round{font-size:8px;font-weight:800;color:var(--gold-soft);background:#e7cb781f;border-radius:3px;padding:1px 3px;flex:0 0 auto}.log-title{flex:1;color:#f1e7d0e0}.why{font-size:8.5px;color:#e7cb78bf;border:1px solid rgba(231,203,120,.25);border-radius:3px;padding:0 3px;flex:0 0 auto}.log-body{padding:5px 2px 3px 20px;font-size:10px;color:#f1e7d0ad}.log-body p{margin:0 0 4px}.narration{font-style:italic;color:#e7cb78c7;border-left:2px solid rgba(231,203,120,.28);padding-left:6px}.roll-list{display:flex;flex-direction:column;gap:2px;margin:4px 0}.roll-line{display:flex;align-items:center;flex-wrap:wrap;gap:4px;background:#f1e7d00d;border-radius:4px;padding:2px 4px;font-size:9.5px}.roll-die{color:var(--gold-soft);font-weight:700}.roll-line strong{color:#f6edda}.roll-line .ok{color:#9fc08b}.roll-line .ko{color:#e08b7d}.calc-list{margin:4px 0;padding-left:14px;font-size:9.5px;color:#f1e7d094}.rule-box{background:#e7cb7812;border-left:2px solid rgba(231,203,120,.4);padding:4px 6px;margin:4px 0}.rule-box strong{font-size:8.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gold-soft)}.rule-box p{font-size:9.5px;margin:2px 0 0}.state-diff{display:flex;flex-direction:column;font-size:9px;color:#f1e7d080}.log-attack .log-title,.log-damage .log-title{color:#f3d9c8}.log-death .log-title{color:#e08b7d}.log-heal .log-title{color:#a9c99a}.log-spell .log-title{color:#c9b6e8}.dice-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;pointer-events:none;padding:16px}.dice-card{width:min(310px,92vw);background:linear-gradient(155deg,#fbf5e6,#e5d5b2);color:var(--ink);border:1px solid var(--paper-edge);border-radius:13px;box-shadow:0 26px 70px #0000008c;padding:13px;transform:rotate(.6deg);animation:diceCard .2s ease-out}.dice-title{font-family:var(--font-display);font-size:14px;text-align:center;margin-bottom:7px}.dice-row{display:flex;align-items:center;gap:12px}.d20{position:relative;width:68px;height:68px;flex:0 0 auto;display:grid;place-items:center;background:linear-gradient(145deg,#f5e8c8,#d3b87f);clip-path:polygon(50% 0,93% 25%,100% 72%,63% 100%,17% 95%,0 58%,9% 18%);border:1px solid #a68a55;animation:diceTumble .55s cubic-bezier(.2,.8,.3,1.2)}.d20.crit{background:linear-gradient(145deg,#f3dda0,#cba438);box-shadow:0 0 0 3px #c9a22740}.d20.fumble{background:linear-gradient(145deg,#e8c4b6,#b56a58)}.d20-face{font-family:var(--font-display);font-size:29px;font-weight:700;color:#3a3020;line-height:1}.d20-label{position:absolute;bottom:7px;font-size:7px;text-transform:uppercase;letter-spacing:.1em;color:#3a3020a6}.dice-math{display:flex;flex-direction:column;gap:1px}.dice-formula{font-size:9.5px;color:var(--ink-soft)}.dice-formula em{font-style:normal;color:var(--teal);font-weight:700}.dice-total{font-family:var(--font-display);font-size:27px;line-height:1}.dice-mod{font-size:12px;color:var(--forest);margin-left:3px}.dice-target{font-size:9.5px;color:var(--ink-soft)}.dice-outcome{font-size:11px;font-weight:800;margin-top:2px}.dice-outcome.ok{color:#3f6244}.dice-outcome.ko{color:#943f33}.dice-note{margin-top:6px;font-size:9px;color:var(--ink-soft);border-top:1px dashed rgba(100,80,45,.25);padding-top:4px}.dice-disclaimer{margin-top:4px;font-size:8px;color:#3c32238c;text-align:center}.token-plate{background:linear-gradient(160deg,#06261ceb,#14201adb);border:1px solid rgba(109,255,192,.4);border-radius:4px;color:#f4ecd8;min-width:68px;max-width:132px;padding:2px 4px;font-family:var(--font-body);box-shadow:0 3px 8px #0000004d;transform:translateY(-3px)}.token-plate.is-active{border-color:var(--gold);box-shadow:0 0 0 1px #c9a22766,0 3px 10px #00000059}.token-plate.is-down{opacity:.65}.token-name{font-size:8.5px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.token-bar{height:2px;background:#00000080;border-radius:1px;margin:1px 0;overflow:hidden}.token-bar span{display:block;height:100%;background:linear-gradient(90deg,#00e884,#b6ff3d);box-shadow:0 0 6px #00ff8cb3}.token-meta{font-size:7px;color:#f1e7d0ad;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.toast{position:fixed;left:50%;bottom:18px;transform:translate(-50%);z-index:90;max-width:min(520px,92vw);background:linear-gradient(155deg,#fbf5e6,#e5d5b2);color:var(--ink);border:1px solid var(--paper-edge);border-radius:9px;box-shadow:0 16px 40px #00000073;padding:9px 13px 9px 19px;font-size:12px;font-weight:600;animation:toastIn .22s ease-out}.toast-pin{position:absolute;left:6px;top:50%;width:6px;height:6px;border-radius:50%;background:var(--brick);transform:translateY(-50%);box-shadow:0 0 0 2px #96483c33}.report-screen{background:radial-gradient(1000px 600px at 10% 0%,rgba(86,110,82,.22),transparent 60%),#151d18;padding-bottom:18px}.report-hero{position:relative;overflow:hidden;padding:22px 18px 26px;background:linear-gradient(155deg,#263a2e,#121a15 70%);border-bottom:1px solid rgba(231,203,120,.25)}.report-hero.lose{background:linear-gradient(155deg,#3a2723,#171311 70%)}.report-hero.draw{background:linear-gradient(155deg,#2c302b,#141815 70%)}.report-hero:before{content:"";position:absolute;right:-40px;top:-40px;width:280px;height:280px;border-radius:50%;border:1px solid rgba(231,203,120,.15);box-shadow:0 0 0 30px #e7cb7809,0 0 0 70px #e7cb7805;pointer-events:none}.report-hero-inner{position:relative;max-width:1180px;margin:0 auto}.report-hero h1{font-size:clamp(30px,6vw,52px);margin-bottom:4px}.report-reason{color:#f1e7d0b8;font-size:13px;max-width:760px}.report-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:12px}.report-meta span{font-size:10px;border:1px solid rgba(241,231,208,.2);background:#f1e7d00f;border-radius:999px;padding:3px 8px;color:#f1e7d0bd}.report-main{max-width:1180px;margin:0 auto;padding:16px 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px}.report-panel{min-width:0}.report-story{font-family:var(--font-display);font-size:17px;line-height:1.5;color:#383021}.report-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.report-kpis div{background:#4e6a5017;border:1px solid rgba(78,106,80,.18);border-radius:8px;padding:7px;text-align:center;display:flex;flex-direction:column}.report-kpis strong{font-family:var(--font-display);font-size:21px;line-height:1;color:var(--forest)}.report-kpis span{font-size:9px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-soft)}.report-substats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;font-size:11px}.report-substats span{background:#3e6d6c14;border-radius:999px;padding:3px 8px}.table-scroll{width:100%;max-width:100%;overflow-x:auto}.stat-table{width:100%;border-collapse:collapse;min-width:720px;font-size:11.5px}.stat-table th{text-align:left;font-size:9px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);border-bottom:1px solid rgba(100,80,45,.3);padding:5px 6px;white-space:nowrap}.stat-table td{padding:5px 6px;border-bottom:1px solid rgba(100,80,45,.12);vertical-align:middle}.stat-table tr:hover td{background:#fffcf280}.table-name{display:flex;align-items:center;gap:5px;font-weight:650;white-space:nowrap}.table-name small{color:var(--ink-soft);font-size:9px;font-weight:400}.resource-grid{display:grid;grid-template-columns:1fr;gap:7px}.resource-card{background:#fffcf28c;border:1px solid rgba(120,100,65,.2);border-radius:8px;padding:7px}.resource-head{display:flex;align-items:center;gap:6px;margin-bottom:4px}.resource-head strong{font-size:12.5px}.feature-uses{display:flex;flex-wrap:wrap;gap:3px}.timeline{display:flex;flex-direction:column;gap:3px;max-height:270px;overflow-y:auto}.timeline-row{display:grid;grid-template-columns:34px minmax(110px,1.2fr) 2fr;gap:6px;align-items:baseline;font-size:10.5px;border-bottom:1px solid rgba(100,80,45,.12);padding:3px 0}.timeline-round{font-size:8.5px;font-weight:800;color:var(--brick)}.report-sim p{font-size:12px;color:var(--ink-soft)}.report-actions{display:flex;gap:8px;flex-wrap:wrap}.report-actions .ghost{color:var(--ink);border-color:#4e412b4d}.report-footer{max-width:1180px;margin:0 auto;padding:4px 18px 20px;color:#f1e7d073;font-size:9.5px}.empty-screen{display:grid;place-items:center;padding:20px;background:#151d18}.empty-card{max-width:480px;text-align:center}.empty-card h1{font-size:28px}.codex-screen{padding-bottom:18px;background:radial-gradient(1000px 620px at 12% 0%,rgba(86,110,82,.2),transparent 60%),#151d18}.codex-header h1{font-size:clamp(25px,4.5vw,38px)}.codex-header-meta{flex-direction:column;align-items:flex-end;gap:4px}.codex-main{max-width:1280px;margin:0 auto;padding:16px 14px;display:grid;grid-template-columns:minmax(0,1fr);gap:14px;align-items:start}.codex-browser{align-self:start;min-width:0}.codex-filters{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:9px}.codex-filter{border:1px solid rgba(100,80,45,.3);background:#fffcf280;color:var(--ink-soft);border-radius:999px;padding:5px 10px;font-size:11px;font-weight:750}.codex-filter.is-active{background:var(--forest);border-color:var(--forest);color:var(--paper)}.codex-list{display:flex;flex-direction:column;gap:5px;width:100%;min-width:0;max-height:64vh;overflow-y:auto;padding-right:3px;scrollbar-width:thin}.codex-item{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:#fffcf28c;border:1px solid rgba(120,100,65,.22);border-radius:9px;padding:6px;color:var(--ink);transition:background .12s ease,border-color .12s ease}.codex-item:hover{background:#fffaf0;border-color:#4e6a5073}.codex-item.is-active{border-color:var(--gold);background:#e7cb783d;box-shadow:0 0 0 2px #c9a22729}.codex-swatch{width:38px;height:38px;flex:0 0 auto;border-radius:9px;border:2px solid;display:grid;place-items:center;color:#fff8e8;font-family:var(--font-display);font-size:17px;box-shadow:inset 0 -7px 12px #00000038}.codex-item-text{display:flex;flex-direction:column;min-width:0;flex:1}.codex-item-text strong{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.codex-item-text small{font-size:9.5px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.codex-item-tag{flex:0 0 auto;border-radius:999px;background:#96483c1a;color:var(--brick);font-size:9px;font-weight:800;padding:2px 6px}.codex-stage{min-width:0;display:flex;flex-direction:column;gap:14px}.codex-viewer{width:100%;min-width:0;padding:0;overflow:hidden}.codex-viewer:after{display:none}.codex-viewer-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;padding:12px 14px 10px;background:linear-gradient(160deg,#fbf5e5,#eee0c2)}.codex-viewer-head h2{font-size:clamp(23px,4vw,32px)}.codex-viewer-head span:not(.codex-tag){display:block;font-size:11px;color:var(--ink-soft)}.codex-tag{flex:0 0 auto;border-radius:999px;background:var(--forest);color:#f7efdc;font-size:10px;font-weight:800;padding:4px 8px;white-space:nowrap}.codex-canvas{position:relative;width:100%;min-width:0;height:clamp(290px,43vw,440px);background:#1a251e;touch-action:none}.codex-canvas canvas{display:block}.codex-viewer-actions{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:9px 12px;background:linear-gradient(160deg,#fbf5e5,#eee0c2);border-top:1px solid rgba(100,80,45,.18)}.codex-viewer-actions>div{display:flex;flex-wrap:wrap;gap:6px}.codex-impacts{min-width:0;padding:12px}.codex-impacts-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.codex-impacts-head h2{font-size:20px}.codex-impacts-head .paper-button.small{flex:0 0 auto}.codex-impact-strip{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}.codex-impact-chip{display:inline-flex;align-items:center;gap:5px;min-height:36px;padding:5px 8px;border:1px solid rgba(100,80,45,.24);border-radius:999px;background:#fffcf2b3;color:var(--ink);font-size:10px;font-weight:750;line-height:1;white-space:nowrap}.codex-impact-chip:hover,.codex-impact-chip.is-active{border-color:var(--forest);background:#4e6a5024;color:var(--forest-deep)}.codex-impact-chip.is-active{box-shadow:inset 0 0 0 1px #4e6a5047}.codex-canvas.codex-impact-preview{height:200px;margin-top:8px;border-radius:9px;overflow:hidden}.codex-impact-strip::-webkit-scrollbar{height:4px}.codex-impact-strip::-webkit-scrollbar-thumb{background:#4e6a5059;border-radius:999px}.codex-impact-dot{width:9px;height:9px;flex:0 0 auto;border-radius:50%;box-shadow:inset 0 0 0 1px #2c282040}.codex-impact-current{display:flex;align-items:center;flex-wrap:wrap;gap:5px;margin-top:8px;color:var(--ink-soft);font-size:10px}.codex-impact-current strong{color:var(--ink)}.codex-info{padding:16px}.codex-info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:8px}.codex-info-head h2{font-size:24px}.codex-description{font-family:var(--font-display);font-size:16px;line-height:1.45;color:#383021}.codex-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin:10px 0}.codex-stat{display:flex;align-items:baseline;justify-content:space-between;gap:6px;background:#4e6a5017;border:1px solid rgba(78,106,80,.18);border-radius:8px;padding:6px 8px}.codex-stat span{font-size:8.5px;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-soft);font-weight:750}.codex-stat strong{font-family:var(--font-display);font-size:17px;color:var(--forest);line-height:1;white-space:nowrap}.codex-section{border-top:1px dashed rgba(100,80,45,.24);padding-top:9px;margin-top:9px}.codex-section h3{font-family:var(--font-body);font-size:9.5px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-soft);margin-bottom:6px}.codex-abilities{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px}.codex-ability{display:flex;flex-direction:column;align-items:center;background:#fffcf2a6;border:1px solid rgba(100,80,45,.18);border-radius:6px;padding:4px 2px;line-height:1.1}.codex-ability span{font-size:7.5px;font-weight:800;color:var(--ink-soft)}.codex-ability strong{font-family:var(--font-display);font-size:15px}.codex-columns{display:grid;grid-template-columns:1fr;gap:10px}.codex-attacks{display:flex;flex-direction:column;gap:4px}.codex-attack{display:flex;flex-direction:column;background:#fffcf299;border-radius:6px;padding:5px 7px}.codex-attack strong{font-size:11.5px}.codex-attack span{font-size:9.5px;color:var(--ink-soft)}.codex-traits{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}.codex-traits li{display:flex;flex-direction:column;background:#3e6d6c14;border-radius:6px;padding:5px 7px;font-size:10px}.codex-traits strong{font-size:11px}.codex-traits span{color:var(--ink-soft)}.codex-tactics p{font-size:12px;color:var(--ink-soft)}.codex-extra-row{display:flex;flex-wrap:wrap;gap:4px;margin-top:9px}.codex-source{margin-top:9px;padding-top:8px;border-top:1px dashed rgba(100,80,45,.24);font-size:9.5px;color:var(--ink-soft)}.battle-tools{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.battle-tools-toggle{display:none}@keyframes diceCard{0%{opacity:0;transform:rotate(.6deg) scale(.92) translateY(10px)}to{opacity:1;transform:rotate(.6deg) scale(1) translateY(0)}}@keyframes diceTumble{0%{transform:rotate(-24deg) scale(.8)}55%{transform:rotate(10deg) scale(1.06)}to{transform:rotate(0) scale(1)}}@keyframes panelRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideIn{0%{opacity:.6;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes softPulse{0%,to{opacity:.6}50%{opacity:1}}@media (min-width: 620px){.home-main{grid-template-columns:1fr 1fr}.scenarios-panel,.rules-panel{grid-column:1 / -1}.scenario-grid{grid-template-columns:repeat(2,1fr)}.party-list,.option-grid{grid-template-columns:1fr 1fr}.field-grid{grid-template-columns:repeat(4,1fr)}.field-grid .wide{grid-column:span 2}.ability-editor{grid-template-columns:repeat(3,1fr)}.equip-grid,.spell-editor{grid-template-columns:1fr 1fr}.deploy-body{grid-template-columns:1.5fr 1fr}.resource-grid{grid-template-columns:repeat(2,1fr)}.report-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.report-table-panel,.report-timeline,.report-actions,.report-footer{grid-column:1 / -1}.rules-columns{grid-template-columns:1fr 1fr}.report-kpis{grid-template-columns:repeat(6,1fr)}.move-hint{display:inline}.initiative-side{display:flex}}@media (min-width: 900px){.home-main{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);padding:24px 22px;gap:20px}.scenario-grid{grid-template-columns:repeat(4,1fr)}.party-list{grid-template-columns:1fr}.squad-layout{grid-template-columns:290px minmax(0,1fr);padding:22px}.squad-note{position:sticky;top:14px}.battle-bar{padding:8px 12px}.actionbar{max-height:300px}.battle-bottom{padding:10px 14px 12px}.target-panel{max-height:34vh}.sheet-panel{width:390px}.log-panel{width:440px}.battle-name span{max-width:46vw}.report-main{padding:22px;gap:18px}.codex-main{grid-template-columns:310px minmax(0,1fr);padding:22px;gap:18px}.codex-browser{position:sticky;top:14px}.codex-columns{grid-template-columns:1fr 1fr}.codex-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media (max-width: 619px){.masthead{padding:20px 14px 18px}.brand{align-items:flex-start}.brand h1{font-size:clamp(34px,10vw,46px)}.brand-sub{font-size:12.5px}.masthead-actions .paper-button{flex:1 1 140px}.home-main{padding:12px 10px 8px;gap:12px}.panel{padding:13px}.screen-header{padding:12px}.header-actions{width:100%;margin-left:0}.squad-layout{padding:12px 10px 24px}.report-main{padding:12px 10px}.report-kpis{grid-template-columns:repeat(3,1fr)}.battle-overlay-top{padding:5px;gap:4px;z-index:30}.battle-bar{position:relative;z-index:2;flex-wrap:nowrap;gap:4px;padding:5px 6px}.initiative-bar{position:relative;z-index:1}.battle-bar-left{flex:1;gap:5px}.brand-mini{font-size:10px;padding:5px 6px}.battle-name strong{font-size:12px}.battle-name span{display:none}.battle-bar-right{position:relative;flex:0 0 auto}.battle-tools-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:6px 9px}.battle-view-toggle{min-height:38px;padding:6px 8px}.battle-tools{display:none;position:absolute;top:calc(100% + 6px);right:0;z-index:50;width:188px;max-height:64vh;overflow-y:auto;flex-direction:column;align-items:stretch;gap:4px;padding:6px;background:linear-gradient(180deg,#18221cfc,#0f1712fc);border:1px solid rgba(231,203,120,.35);border-radius:10px;box-shadow:0 16px 36px #00000080}.battle-tools.is-open{display:flex}.battle-tools .battle-tool{min-height:38px;padding:6px 8px;text-align:left}.battle-tools .battle-toggle-row{display:flex;gap:4px;flex-wrap:nowrap}.battle-tools .battle-toggle-row .battle-toggle{flex:1}.battle-tools .battle-toggle{min-height:38px;padding:0 7px;border-radius:6px;background:#f1e7d00d}.battle-tools .battle-toggle select{margin-left:auto;min-height:28px}.battle-bottom{padding:5px 5px max(7px,env(safe-area-inset-bottom));gap:4px}.actionbar{max-height:40vh;border-radius:11px}.target-panel{max-height:30vh;padding:9px}.action-chip,.spell-chip{min-height:44px}.action-chip.small{min-height:38px}.tab{min-height:38px;padding:9px 8px}.end-turn{min-height:38px;padding:7px 10px}.paper-button,.ghost{min-height:38px}.paper-button.small,.ghost.small{min-height:34px}.sheet-panel,.log-panel{width:100%}.sheet-panel .panel-head,.log-panel .panel-head{padding:10px}.sheet-scroll,.log-scroll{padding-bottom:max(26px,env(safe-area-inset-bottom))}.codex-header{align-items:flex-start}.codex-header-meta{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.codex-main{padding:10px 10px 24px;gap:10px}.codex-browser{order:2;position:static}.codex-stage{order:1;gap:10px}.codex-list{flex-direction:row;width:100%;max-width:100%;min-width:0;max-height:none;overflow-x:auto;overflow-y:hidden;gap:6px;padding:0 0 6px;-webkit-overflow-scrolling:touch}.codex-item{min-width:186px;flex:0 0 auto;min-height:54px}.codex-canvas{height:296px}.codex-viewer-head{padding:10px 12px 9px}.codex-viewer-head h2{font-size:22px}.codex-viewer-actions{padding:8px 10px}.codex-viewer-actions>span{order:2}.codex-info{padding:12px}.codex-impacts{padding:10px}.codex-impacts-head h2{font-size:18px}.codex-impact-strip{flex-wrap:nowrap;overflow-x:auto;padding-bottom:5px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}.codex-impact-chip{flex:0 0 auto;min-height:42px;scroll-snap-align:start}.codex-canvas.codex-impact-preview{height:190px}.codex-abilities{grid-template-columns:repeat(3,1fr)}.codex-stat-grid{grid-template-columns:repeat(2,1fr)}.dice-overlay{place-items:start end;padding:121px 6px 0}.dice-card{width:174px;padding:8px;transform:rotate(.4deg)}.dice-title{margin-bottom:5px;font-size:10.5px;text-align:left}.dice-row{gap:7px}.d20{width:46px;height:46px}.d20-face{font-size:20px}.d20-label{bottom:4px;font-size:5.5px}.dice-formula{display:none}.dice-total{font-size:20px}.dice-mod{font-size:9px}.dice-target{font-size:8px}.dice-outcome{font-size:9.5px}.dice-note{margin-top:4px;padding-top:3px;font-size:8px;line-height:1.25}.dice-disclaimer{display:none}}@media (max-width: 420px){.brand{gap:12px}.brand-mark{width:58px;height:58px}.brand-die{font-size:21px}.battle-tool{padding:3px 5px;font-size:10px}.battle-name span,.token-hp,.actor-id span{display:none}.pips .pip{padding:1px 3px;font-size:7.5px}.spell-grid{grid-template-columns:repeat(auto-fill,minmax(118px,1fr))}.action-grid{grid-template-columns:repeat(auto-fill,minmax(112px,1fr))}.codex-viewer-head h2{font-size:20px}.codex-canvas{height:270px}}@media (max-width: 640px){.battle-screen.has-impact .battle-bottom{opacity:0;transform:translateY(24px);pointer-events:none}.aim-card{padding:7px}.aim-actions{width:100%}.aim-actions .paper-button,.aim-actions .ghost{flex:1 1 auto}.battle-screen.has-aim .actionbar,.battle-screen.has-targeting .actionbar{display:none}.battle-screen.has-aim .target-panel{max-height:42vh;overflow:visible}}.map-studio-screen{padding-bottom:28px}.map-studio-main{max-width:1440px;margin:0 auto;padding:16px 14px;display:grid;grid-template-columns:1fr;gap:14px}.map-studio-settings,.map-studio-palette{align-self:start}.map-studio-field{display:flex;flex-direction:column;gap:5px;margin-bottom:12px;font-size:12px;font-weight:650;color:var(--ink-soft)}.map-studio-field>span{display:block}.map-studio-field input,.map-studio-field select,.map-studio-field textarea{width:100%;font-size:13px}.map-studio-field textarea{resize:vertical;min-height:64px}.texture-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.texture-swatch{display:flex;align-items:center;gap:7px;min-width:0;padding:6px 7px;border:1px solid rgba(120,100,65,.26);border-radius:8px;background:#fffcf299;color:var(--ink);font-size:11px;text-align:left}.texture-swatch:hover{background:#fffaf0}.texture-swatch.is-active{border-color:var(--gold);box-shadow:0 0 0 2px #c9a2272e;background:#fff8e6}.texture-swatch>span{flex:0 0 auto;width:19px;height:19px;border-radius:5px;border:1px solid rgba(62,49,30,.3);box-shadow:inset 0 0 0 1px #fffaeb40}.map-size-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.map-size-row label{display:flex;flex-direction:column;gap:4px;font-size:11px}.map-tool-list{display:grid;grid-template-columns:1fr 1fr;gap:6px}.map-tool{display:flex;align-items:center;gap:7px;min-width:0;padding:7px 8px;border:1px solid rgba(120,100,65,.26);border-radius:8px;background:#fffcf294;color:var(--ink);font-size:11.5px;text-align:left}.map-tool:hover{background:#fffaf0}.map-tool.is-active{border-color:var(--gold);background:#fff5d9;box-shadow:0 0 0 2px #c9a22729}.map-tool-dot{flex:0 0 auto;width:16px;height:16px;border-radius:5px;border:1px solid rgba(62,49,30,.28)}.map-legend{display:flex;flex-wrap:wrap;gap:10px;margin-top:12px;color:var(--ink-soft);font-size:11px}.map-legend span{display:inline-flex;align-items:center;gap:5px}.map-legend i{width:13px;height:13px;border-radius:3px;border:1px dashed}.legend-hero{border-color:#2d8d7d!important;background:#2d8d7d2e}.legend-foe{border-color:#b25f4f!important;background:#b25f4f29}.legend-object{border-color:#7c5a35!important;background:#7c5a3533}.map-studio-board-panel{min-width:0}.map-texture-badge{padding:3px 8px;border-radius:999px;border:1px solid rgba(62,49,30,.28);color:#2c261c;font-size:10.5px;font-weight:700;letter-spacing:.02em}.map-studio-board-scroll{overflow:auto;padding:3px 2px 10px}.map-studio-grid{display:grid;width:100%;max-width:860px;margin:0 auto;border:5px solid #49392a;border-radius:5px;box-shadow:0 12px 26px #261d124d,inset 0 0 0 1px #fff7e133;touch-action:none;user-select:none;cursor:crosshair;overflow:hidden}.map-studio-cell{position:relative;display:grid;place-items:center;min-width:0;min-height:0;border:1px solid rgba(62,49,30,.16);color:#282218b8;font-size:clamp(8px,1.15vw,13px);line-height:1}.map-cell-glyph{pointer-events:none;opacity:.78;text-shadow:0 1px 0 rgba(255,248,230,.4)}.map-cell-glyph.is-object{color:#3b2612;opacity:.92;font-size:1.2em}.map-studio-cell.is-hero-zone:after,.map-studio-cell.is-foe-zone:after{content:"";position:absolute;inset:3px;border:1px dashed;border-radius:2px;pointer-events:none}.map-studio-cell.is-hero-zone:after{border-color:#187064cc;background:#2d8d7d21}.map-studio-cell.is-foe-zone:after{border-color:#994537c2;background:#b25f4f1a}@media (min-width: 900px){.map-studio-main{grid-template-columns:300px minmax(0,1fr);padding:20px}.map-studio-board-panel{grid-column:1 / -1}.map-tool-list{grid-template-columns:1fr 1fr}}@media (min-width: 1180px){.map-studio-main{grid-template-columns:285px 255px minmax(0,1fr)}.map-studio-board-panel{grid-column:auto}}.settings-screen{width:min(1040px,100%);margin:0 auto;padding:clamp(22px,4vw,48px) clamp(16px,4vw,38px) 60px}.settings-header{display:flex;align-items:flex-start;justify-content:space-between;gap:22px;margin-bottom:24px}.settings-header h1{font-size:clamp(30px,5vw,46px);line-height:1.05;margin-bottom:10px}.settings-header .eyebrow{color:var(--gold-soft);margin-bottom:5px}.settings-lead{max-width:620px;color:#f1e7d0b3;margin:0}.settings-panel{color:var(--parchment);background:linear-gradient(140deg,rgba(247,240,223,.08),transparent 45%),#17221ce6;border:1px solid rgba(201,183,143,.24);border-radius:12px;padding:clamp(18px,3vw,28px);box-shadow:var(--shadow)}.settings-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding-bottom:14px;margin-bottom:18px;border-bottom:1px solid rgba(241,231,208,.12)}.settings-section-heading .eyebrow{color:var(--gold-soft);font-size:10px;margin-bottom:3px}.settings-section-heading h2{font-size:clamp(21px,3vw,28px)}.settings-current{flex:0 0 auto;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-soft);border:1px solid rgba(231,203,120,.35);border-radius:999px;padding:5px 10px;background:#e7cb7814}.model-style-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.model-style-card{display:grid;grid-template-columns:minmax(105px,.8fr) minmax(0,1.2fr);gap:14px;align-items:stretch;padding:12px;text-align:left;color:var(--parchment);background:#f7f0df0b;border:1px solid rgba(201,183,143,.22);border-radius:10px;transition:border-color .16s ease,background .16s ease,transform .16s ease}.model-style-card:hover{border-color:#e7cb788c;background:#f7f0df13;transform:translateY(-1px)}.model-style-card.is-active{border-color:var(--gold-soft);background:#c9a2271a;box-shadow:inset 0 0 0 1px #e7cb7840,0 8px 24px #0000002e}.model-style-preview{display:grid;place-items:center;min-height:132px;border-radius:7px;background:radial-gradient(circle at 50% 35%,#fff7e1f2,#dbc9a099 55%,#6f5b3980),#c9b78f;border:1px solid rgba(44,40,32,.24);overflow:hidden}.model-style-preview svg{width:100%;max-width:132px;height:auto}.model-style-copy{display:flex;flex-direction:column;gap:7px;min-width:0;padding:4px 2px}.model-style-name{display:flex;align-items:center;justify-content:space-between;gap:8px;font-family:var(--font-display);font-size:19px;font-weight:600}.model-style-check{display:grid;place-items:center;width:21px;height:21px;flex:0 0 auto;border-radius:50%;border:1px solid rgba(201,183,143,.45);color:var(--night);font-family:var(--font-body);font-size:12px;line-height:1}.model-style-check.is-on{background:var(--gold-soft);border-color:var(--gold-soft)}.model-style-description{color:#f1e7d0a8;font-size:12px;line-height:1.45}.settings-note{margin:16px 0 0;padding-top:13px;border-top:1px solid rgba(241,231,208,.09);color:#f1e7d080;font-size:11px}@media (max-width: 780px){.settings-header{flex-direction:column}.model-style-grid{grid-template-columns:1fr}}@media (max-width: 480px){.model-style-card{grid-template-columns:92px minmax(0,1fr);gap:11px;padding:9px}.model-style-preview{min-height:112px}.settings-section-heading{align-items:flex-start;flex-direction:column}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.target-hint{width:min(760px,100%);align-self:center;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;padding:8px 11px;border-radius:12px;color:var(--parchment);background:linear-gradient(135deg,#082017f2,#05110de6),radial-gradient(140px 70px at 0% 0%,rgba(0,255,170,.2),transparent 72%);border:1px solid rgba(255,216,102,.55);box-shadow:0 12px 30px #00000073,inset 0 0 22px #00ffaa17;backdrop-filter:blur(6px);animation:panelRise .16s ease-out}.target-hint-copy{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1 1 260px}.target-hint-kicker{font-size:8.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#6dffc0}.target-hint-copy strong{font-size:13px;font-family:var(--font-display);letter-spacing:.01em}.target-hint-copy span{font-size:10.5px;line-height:1.35;color:#f1e7d0b8}.target-hint-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.target-hint .slot-chip{color:var(--parchment);border-color:#f1e7d057}.target-hint .slot-chip.is-active{background:linear-gradient(120deg,#ffc21f,#ff6a3d);border-color:#ffc21f;color:#20130a;box-shadow:0 0 14px #ffa02873}.target-hint .ghost{color:var(--parchment);border-color:#f1e7d059}.target-hint.is-firing{border-color:#78ffc8a6;box-shadow:0 0 26px #00ffaa3d,0 12px 30px #00000073}.target-hint-dot{width:10px;height:10px;border-radius:50%;background:#6dffc0;box-shadow:0 0 12px #6dffc0;animation:shotPulse .7s ease-in-out infinite}@keyframes shotPulse{0%,to{transform:scale(.8);opacity:.7}50%{transform:scale(1.25);opacity:1}}.battle-screen.has-shot .actionbar{opacity:.4;pointer-events:none}@media (max-width: 640px){.target-hint{padding:7px 9px}.target-hint-actions{width:100%}.target-hint-actions .ghost,.target-hint-actions .paper-button{flex:1 1 auto}}.dice-overlay.is-rolling{background:radial-gradient(circle at 50% 46%,#00ffaa1f,#030c09b8 62%);backdrop-filter:blur(2px)}.dice-stage{display:flex;flex-direction:column;align-items:center;gap:16px;animation:diceStageIn .22s ease-out}.dice-stage-title{font-family:var(--font-display);font-size:15px;text-align:center;color:var(--parchment);text-shadow:0 2px 12px rgba(0,0,0,.75)}.dice-stage-hint{font-size:9px;font-weight:800;letter-spacing:.22em;text-transform:uppercase;color:#6dffc0;text-shadow:0 0 12px rgba(0,255,170,.55);animation:diceHintPulse .9s ease-in-out infinite}.dice-cube-wrap{position:relative;width:130px;height:130px;display:grid;place-items:center;perspective:780px}.dice-cube{position:relative;width:78px;height:78px;transform-style:preserve-3d;animation:diceCubeTumble 2.5s cubic-bezier(.18,.72,.22,1) forwards;will-change:transform}.dice-face{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--font-display);font-size:31px;font-weight:700;color:#2a2117;border-radius:11px;border:1px solid #caa765;background:linear-gradient(150deg,#fffaea,#efd9ab 62%,#dcbe86);box-shadow:inset 0 0 20px #ba7e1e4d,0 0 18px #ffc44266}.dice-face-0{transform:translateZ(39px)}.dice-face-1{transform:rotateY(180deg) translateZ(39px)}.dice-face-2{transform:rotateY(90deg) translateZ(39px)}.dice-face-3{transform:rotateY(-90deg) translateZ(39px)}.dice-face-4{transform:rotateX(90deg) translateZ(39px)}.dice-face-5{transform:rotateX(-90deg) translateZ(39px)}.dice-shadow{position:absolute;bottom:4px;width:86px;height:16px;border-radius:50%;background:radial-gradient(rgba(0,0,0,.62),transparent 72%);filter:blur(3px);animation:diceShadowRoll 2.5s ease-in-out forwards}@keyframes diceCubeTumble{0%{transform:translateY(-110px) rotateX(0) rotateY(0) rotate(0) scale(.66)}12%{transform:translateY(0) rotateX(235deg) rotateY(175deg) rotate(38deg) scale(1)}23%{transform:translateY(-44px) rotateX(425deg) rotateY(320deg) rotate(86deg) scale(1.03)}37%{transform:translateY(0) rotateX(615deg) rotateY(495deg) rotate(148deg) scale(1)}51%{transform:translateY(-22px) rotateX(755deg) rotateY(630deg) rotate(198deg) scale(1.02)}67%{transform:translateY(0) rotateX(875deg) rotateY(755deg) rotate(248deg) scale(1)}81%{transform:translateY(-9px) rotateX(940deg) rotateY(815deg) rotate(298deg) scale(.99)}91%{transform:translateY(0) rotateX(985deg) rotateY(862deg) rotate(338deg) scale(1)}to{transform:translateY(0) rotateX(1080deg) rotateY(1080deg) rotate(360deg) scale(1)}}@keyframes diceShadowRoll{0%{transform:scale(.5);opacity:.2}12%{transform:scale(1.05);opacity:.75}23%{transform:scale(.72);opacity:.4}37%{transform:scale(1.02);opacity:.7}51%{transform:scale(.8);opacity:.45}67%{transform:scale(1);opacity:.68}91%{transform:scale(.98);opacity:.7}to{transform:scale(1);opacity:.55}}@keyframes diceStageIn{0%{opacity:0;transform:translateY(10px) scale(.94)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes diceHintPulse{0%,to{opacity:.55}50%{opacity:1}}.dice-overlay.is-revealed .dice-card{animation:diceReveal .34s cubic-bezier(.2,.9,.3,1.15);box-shadow:0 26px 70px #0000008c,0 0 0 2px #ffcd5a59,0 0 34px #ffb42847}.dice-overlay.is-revealed .d20{animation:diceSettle .5s cubic-bezier(.2,.85,.25,1.1)}@keyframes diceReveal{0%{opacity:0;transform:scale(.82) rotate(-1.4deg)}60%{opacity:1;transform:scale(1.03) rotate(.8deg)}to{opacity:1;transform:scale(1) rotate(.6deg)}}@keyframes diceSettle{0%{transform:scale(.72) rotate(-16deg)}55%{transform:scale(1.09) rotate(5deg)}to{transform:scale(1) rotate(0)}}@media (max-width: 640px){.dice-cube-wrap{width:108px;height:108px}.dice-cube{width:66px;height:66px}.dice-face{font-size:26px}.dice-face-0{transform:translateZ(33px)}.dice-face-1{transform:rotateY(180deg) translateZ(33px)}.dice-face-2{transform:rotateY(90deg) translateZ(33px)}.dice-face-3{transform:rotateY(-90deg) translateZ(33px)}.dice-face-4{transform:rotateX(90deg) translateZ(33px)}.dice-face-5{transform:rotateX(-90deg) translateZ(33px)}.dice-shadow{width:72px;height:13px}}.gpu-notice{pointer-events:auto;width:min(720px,100%);align-self:center;display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;padding:10px 12px;border-radius:12px;color:var(--parchment);background:linear-gradient(135deg,#2e120cf2,#140b08eb),radial-gradient(160px 80px at 0% 0%,rgba(255,154,79,.22),transparent 72%);border:1px solid rgba(255,176,92,.55);box-shadow:0 12px 30px #00000073;animation:panelRise .18s ease-out}.gpu-notice-copy{display:flex;flex-direction:column;gap:3px;flex:1 1 320px;min-width:0}.gpu-notice-kicker{font-size:8.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:#ffb45c}.gpu-notice-copy strong{font-family:var(--font-display);font-size:13.5px}.gpu-notice-copy span{font-size:10.5px;line-height:1.4;color:#f1e7d0c2}.gpu-notice-copy em{font-style:normal;color:#ffd9a8;word-break:break-word}.gpu-notice-fps{font-variant-numeric:tabular-nums;font-weight:700;color:#ffb45c!important}.gpu-notice-actions{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.gpu-notice .paper-button{color:var(--parchment);border-color:#ffc88c66}.gpu-notice-steps{flex:1 1 100%;margin:2px 0 0;padding-left:18px;font-size:10.5px;line-height:1.55;color:#f1e7d0d1}.gpu-notice-steps code{padding:1px 4px;border-radius:4px;background:#ffffff1f;font-size:10px}.gl-lost{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:30;display:flex;flex-direction:column;align-items:center;gap:8px;max-width:380px;padding:18px;text-align:center;border-radius:14px;color:var(--parchment);background:#0a1612f0;border:1px solid rgba(255,176,92,.5);box-shadow:0 18px 40px #00000080}.gl-lost span{font-size:11.5px;line-height:1.5;color:#f1e7d0c7}.gpu-status{padding:4px 9px;border-radius:999px;border:1px solid;font-size:10.5px;font-weight:700;letter-spacing:.03em}.gpu-status.is-hardware{color:#1d5c3c;border-color:#1d5c3c66;background:#78dca038}.gpu-status.is-software{color:#8a2f1c;border-color:#8a2f1c73;background:#ff966e47}.gpu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;margin:10px 0}.gpu-grid>div{min-width:0;padding:8px 10px;border-radius:10px;background:#ffffff80;border:1px solid rgba(120,98,60,.18)}.gpu-grid dt{font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:#3a332699}.gpu-grid dd{margin:2px 0 0;font-size:12px;font-weight:600;word-break:break-word}.map-studio-library{grid-column:1 / -1;margin-bottom:12px}.map-library-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:4px 0 10px}.map-library-item{display:flex;flex-direction:column;gap:6px;padding:9px 10px;border-radius:12px;border:1px solid rgba(120,98,60,.22);background:#ffffff8c}.map-library-item.is-open{border-color:var(--gold);box-shadow:0 0 0 1px #c9a22759}.map-library-swatch{height:6px;border-radius:4px}.map-library-name{display:flex;align-items:center;justify-content:space-between;gap:6px;font-family:var(--font-display);font-size:13px;color:var(--ink)}.map-library-tag{padding:1px 6px;border-radius:999px;background:#2e5c4624;font-family:var(--font-body);font-size:9px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}.map-library-meta{font-size:10.5px;color:var(--ink-soft)}.map-library-actions{display:flex;flex-wrap:wrap;gap:5px}.map-library-actions .paper-button{padding:3px 8px;font-size:11px}.map-layer-tabs{display:flex;gap:6px;margin-bottom:10px}.map-layer-tab{flex:1;padding:6px 8px;border-radius:9px;border:1px solid rgba(120,98,60,.3);background:#ffffff80;color:var(--ink);font-size:11px;font-weight:700;cursor:pointer}.map-layer-tab.is-active{background:var(--ink);border-color:var(--ink);color:var(--parchment)}.map-edit-actions{display:flex;flex-wrap:wrap;gap:6px;margin:10px 0}.map-edit-actions .paper-button{padding:4px 9px;font-size:11px}.map-edit-actions .paper-button:disabled{opacity:.45;cursor:not-allowed}.map-shared-badge{padding:3px 9px;border-radius:999px;border:1px solid rgba(46,92,70,.35);font-size:10px;font-weight:750;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-soft);background:#ffffff80}.map-shared-badge.online{color:#1d5c3c;border-color:#1d5c3c73;background:#78dca03d}.map-shared-badge.offline{color:#8a2f1c;border-color:#8a2f1c66;background:#ff966e33}.map-library-sync{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.dice-stage-die{position:relative;width:156px;height:156px;display:grid;place-items:center;perspective:900px}.dice-3d-canvas{position:absolute;inset:0;border-radius:50%;overflow:hidden}.dice-3d-canvas canvas{display:block;touch-action:none}.dice-stage-shadow{position:absolute;bottom:6px;width:108px;height:18px;border-radius:50%;background:radial-gradient(rgba(0,0,0,.66),transparent 72%);filter:blur(4px)}.die{position:relative;width:96px;height:96px;display:grid;place-items:center;color:#2a2117;background:radial-gradient(circle at 32% 28%,rgba(255,255,255,.72),transparent 42%),linear-gradient(150deg,#fffdf0,#efd9ab 52%,#d9ba80 88%,#b88944);border:1px solid #c9a763;box-shadow:inset 0 0 18px #ba7e1e3d,inset 0 3px #ffffff8c,inset 0 -4px 8px #8a5b1847,0 0 28px #ffc44275,0 8px 16px #2a211757;will-change:transform;transform-style:preserve-3d;filter:drop-shadow(0 10px 12px rgba(42,33,23,.28))}.die-d4{clip-path:polygon(50% 0%,100% 86%,0% 86%)}.die-d6{border-radius:18px}.die-d8{clip-path:polygon(50% 0%,100% 50%,50% 100%,0% 50%)}.die-d10{clip-path:polygon(50% 0%,92% 28%,82% 100%,18% 100%,8% 28%)}.die-d12{clip-path:polygon(50% 0%,96% 30%,80% 96%,20% 96%,4% 30%)}.die-d20{clip-path:polygon(50% 0%,92% 22%,100% 68%,64% 100%,18% 96%,0% 60%,8% 18%)}.die-d100{border-radius:50%}.die-face-number{font-family:var(--font-display);font-size:34px;font-weight:700;line-height:1;color:#33291a;text-shadow:0 1px 0 rgba(255,255,255,.5)}.die-face-tag{position:absolute;bottom:10px;font-size:8px;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:#3a302099}.die.is-rolling{animation-name:dieRoll;animation-timing-function:cubic-bezier(.2,.75,.25,1);animation-iteration-count:infinite;animation-fill-mode:both}@keyframes dieRoll{0%{transform:translateY(-120px) rotate3d(1,1,0,0) scale(.72)}25%{transform:translateY(0) rotate3d(1,1,.4,180deg) scale(1.05)}50%{transform:translateY(-56px) rotate3d(.6,1,.2,360deg) scale(.98)}75%{transform:translateY(0) rotate3d(1,.7,.3,540deg) scale(1.03)}to{transform:translateY(-18px) rotate3d(1,1,.5,720deg) scale(1)}}.die-small{width:46px;height:46px;flex:0 0 auto;box-shadow:inset 0 0 12px #ba7e1e47,0 0 12px #ffc4424d}.die-small .die-face-number{font-size:17px}.die-small .die-face-tag{bottom:4px;font-size:6px}.die-small.is-crit{background:linear-gradient(150deg,#ffeeb0,#e7c25c);box-shadow:0 0 0 2px #c9a22766,0 0 18px #ffc44299}.die-small.is-fumble{background:linear-gradient(150deg,#f0cfc2,#cf9d8b)}.dice-rolls{display:flex;flex-direction:column;gap:8px}.dice-roll-row{display:grid;grid-template-columns:46px minmax(0,1fr) auto auto;gap:8px;align-items:center;border-bottom:1px dashed rgba(100,80,45,.22);padding-bottom:7px}.dice-roll-row:last-child{border-bottom:0;padding-bottom:2px}.dice-roll-info{display:flex;flex-direction:column;gap:1px;min-width:0}.dice-roll-label{font-size:10px;font-weight:700;line-height:1.2}.dice-roll-total{text-align:right;display:flex;flex-direction:column}.dice-roll-total strong{font-family:var(--font-display);font-size:20px;line-height:1}.dice-roll-total span{font-size:8px;color:var(--forest)}.dice-roll-target{font-size:8.5px;color:var(--ink-soft);white-space:nowrap}.dice-roll-outcome{grid-column:2 / -1;font-size:9px;font-weight:800}.dice-roll-outcome.ok{color:#3f6244}.dice-roll-outcome.ko{color:#943f33}.dice-flair{margin-top:6px;text-align:center;font-size:10px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.dice-flair.crit{color:#8a6a12;text-shadow:0 0 14px rgba(255,196,66,.5)}.dice-flair.fumble{color:#943f33}.dice-detail{margin-top:8px;border-top:1px dashed rgba(100,80,45,.25);padding-top:6px}.dice-detail-label{font-size:7.5px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft)}.dice-detail p{margin:2px 0 0;font-size:10px;line-height:1.35}.battle-view-group{display:inline-flex;align-items:center;gap:2px;padding:2px;border-radius:999px;background:#0619138c}.battle-view-group .battle-tool{border:0;background:transparent;min-width:32px}.battle-view-group .battle-tool.is-on{background:linear-gradient(150deg,#f4e3b4,#d3b271);color:#14261d;font-weight:800}.target-hint.is-confirm{border-color:#c9a227ad;box-shadow:0 0 0 1px #c9a22740,0 12px 30px #00000047}.dice-overlay.is-revealed{align-items:end;justify-items:center;padding-bottom:max(16px,3.5vh)}.dice-overlay.is-revealed .dice-card{width:min(430px,94vw);max-height:72vh;overflow-y:auto}.battle-screen .battle-overlay-top,.battle-screen .battle-bottom,.battle-screen .token-plate{transition:opacity .22s ease,transform .22s ease}.battle-screen.is-cinematic .battle-overlay-top,.battle-screen.is-cinematic .battle-bottom{opacity:0;pointer-events:none;transform:translateY(-8px)}.battle-screen.is-cinematic .battle-bottom{transform:translateY(10px)}.battle-screen.is-cinematic .token-plate{opacity:0}.battle-move-toggle{display:inline-flex;align-items:center;gap:5px;border-color:#e7cb7859}.battle-move-toggle em{font-style:normal;font-size:9.5px;opacity:.6}.battle-move-toggle.is-on{background:linear-gradient(150deg,#f4e3b4,#d3b271);color:#14261d;border-color:#d3b271}.battle-move-toggle.is-on em{opacity:.8}.move-glyph{font-size:12px;line-height:1}.move-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:4px;background:#f1e7d00f;border:1px solid rgba(241,231,208,.18);border-radius:999px;padding:3px 9px;color:var(--parchment);font-size:10px;font-weight:700;white-space:nowrap;cursor:pointer}.move-toggle.is-on{background:linear-gradient(150deg,#f4e3b4,#d3b271);border-color:#d3b271;color:#14261d}.diorama-wrap{background:radial-gradient(120% 90% at 50% 8%,#31523f,#1b3a2e 42%,#0b1b15)}.diorama-wrap:after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(115% 80% at 50% 42%,transparent 42%,rgba(4,10,8,.52) 100%);box-shadow:inset 0 0 140px #00000073;z-index:1}.battle-bar,.initiative-bar{background:linear-gradient(180deg,#202c23f5,#0e1712f0);border:1px solid rgba(214,178,108,.3);box-shadow:0 14px 30px #00000061,inset 0 1px #fff0cd1f}.actionbar{background:linear-gradient(180deg,#1e2921fa,#0c1410f5);border:1px solid rgba(214,178,108,.28);border-radius:14px;box-shadow:0 -12px 34px #00000061,inset 0 1px #fff0cd1a}.actor-head{background:linear-gradient(180deg,#c9a45c1f,#0000);border-bottom:1px solid rgba(214,178,108,.24)}.actor-face{box-shadow:0 0 0 1px #0006,inset 0 1px 2px #ffffff47}.actor-id strong,.battle-name strong,.token-name,.round-pill strong{font-family:var(--font-display, "Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif);letter-spacing:.015em}.tab{color:#f1e7d0a8;border-radius:6px 6px 0 0}.tab.active{color:#f8e6b4;border-bottom-color:#e6c477;text-shadow:0 0 14px rgba(231,203,120,.4)}.action-chip,.spell-chip{background:linear-gradient(180deg,#fff6e21a,#fff6e209);border:1px solid rgba(214,178,108,.24);border-radius:9px;box-shadow:inset 0 1px #ffffff14;transition:transform .12s ease,border-color .12s ease,background .12s ease}.action-chip:hover,.spell-chip:hover{transform:translateY(-1px);border-color:#e9cb808c;background:linear-gradient(180deg,#fff6e229,#fff6e20f)}.action-chip.is-pending,.spell-chip.is-pending{border-color:var(--gold);box-shadow:0 0 0 1px #f5b21573,0 6px 16px #0000004d}.pip{border-color:#d6b26c42;color:#f1e7d080;background:#00000029}.pip.on{background:linear-gradient(180deg,#96b88061,#789c6433);border-color:#aac88c80;color:#f6efdd}.end-turn{background:linear-gradient(180deg,#e6c77a,#b8903a);border-color:#8a6a2a;box-shadow:0 2px #7a5c22,0 6px 14px #0000004d;border-radius:9px}.initiative-token{background:linear-gradient(180deg,#f1e7d017,#f1e7d009);border-color:#d6b26c38}.initiative-token.is-active{background:linear-gradient(180deg,#e7cb783d,#e7cb781a);border-color:#f5c864cc;box-shadow:0 0 18px #e7cb7833,inset 0 1px #fff0cd38}.token-plate{background:linear-gradient(180deg,#212c23f2,#0e1611f2);border:1px solid rgba(214,178,108,.38);border-radius:9px;box-shadow:0 8px 20px #0000006b}.token-plate.is-active{border-color:#f5c864d9;box-shadow:0 0 0 1px #f5c86459,0 10px 24px #00000080}.token-bar{background:#00000080}.token-bar span{background:linear-gradient(90deg,#4f8f52,#a9c46a)}.spell-cost,.action-group h4{letter-spacing:.14em}.codex-skins{display:grid;gap:6px;padding:10px 12px;border-top:1px dashed rgba(58,44,28,.22)}.codex-skins-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.codex-skin-row{display:flex;flex-wrap:wrap;gap:6px;max-height:132px;overflow-y:auto}.codex-skin-row .paper-button.is-active{outline:2px solid currentColor;outline-offset:1px;font-weight:700}
