* {box-sizing: border-box;}
body {margin: 0; background: var(--av-bg-page); color: var(--av-text-primary); font: var(--av-detail-1)/1.5 var(--av-font-body);}
button,input,textarea,select {font: inherit;}
button {cursor: pointer;}
a {color: inherit;}
.portal {display: grid; grid-template-columns: var(--av-detail-2) minmax(0,1fr); min-height: 100vh;}
.portal-side {background: var(--av-bg-sidebar); border-right: var(--av-line-1) solid var(--av-border-gold); display: flex; flex-direction: column; padding: var(--av-detail-3) var(--av-fs-16); gap: var(--av-fs-32);}
.brand {display: flex; align-items: center; gap: var(--av-detail-4); text-decoration: none;}
.brand img {width: var(--av-detail-5); height: var(--av-detail-5); object-fit: contain;}
.brand strong {font: 600 var(--av-fs-20) var(--av-font-display); letter-spacing: .07em; color: var(--av-gold-50);}
.brand small {display: block; color: var(--av-text-secondary); font: var(--av-detail-6) var(--av-font-ui);}
nav {display: grid; gap: var(--av-detail-7);}
nav button {width: 100%; text-align: left; padding: var(--av-detail-6) var(--av-detail-8); background: transparent; color: var(--av-text-secondary); border: var(--av-line-1) solid transparent; font-family: var(--av-font-ui); font-size: var(--av-detail-8);}
nav button:hover,nav button.active {border-color: var(--av-border-gold-soft); background: var(--av-bg-panel-2); color: var(--av-gold-50);}
.side-foot {margin-top: auto; border-top: var(--av-line-1) solid var(--av-border-gold-soft); padding-top: var(--av-fs-16); color: var(--av-text-muted); font-size: var(--av-detail-9);}
.portal-stage {min-width: 0; display: flex; flex-direction: column;}
.portal-top {height: var(--av-detail-10); display: flex; align-items: center; justify-content: space-between; padding: 0 clamp(var(--av-fs-16),3vw,var(--av-sp-12)); border-bottom: var(--av-line-1) solid var(--av-border-gold-soft); background: var(--av-bg-shell);}
.top-name {font: 600 var(--av-fs-16) var(--av-font-display); letter-spacing: .1em;}
.top-actions {display: flex; align-items: center; gap: var(--av-fs-16);}
.language-switch {display: flex; border: var(--av-line-1) solid var(--av-border-gold);}
.language-switch button {background: transparent; border: 0; color: var(--av-text-secondary); padding: var(--av-detail-11) var(--av-detail-12); font: var(--av-detail-13) var(--av-font-ui);}
.language-switch button.active {background: var(--av-gold-300); color: var(--av-bg-sidebar);}
.bell,.mobile-menu {border: var(--av-line-1) solid var(--av-border-gold); color: var(--av-gold-50); background: transparent; min-width: var(--av-detail-14); min-height: var(--av-detail-14); font-size: var(--av-detail-3); position: relative;}
.bell span {position: absolute; right: -7px; top: -7px; border-radius: 100%; background: var(--av-burgundy-300); color: var(--av-parchment-50); min-width: var(--av-detail-15); font: 700 var(--av-detail-6) var(--av-font-ui); padding: var(--av-radius-1);}
.mobile-menu {display: none;}
.portal-hero {background: linear-gradient(90deg,rgba(5,13,18,.88),rgba(5,13,18,.35)),url('./assets/hero.jpg') center/cover; border-bottom: var(--av-line-1) solid var(--av-border-gold); min-height: var(--av-detail-16); display: flex; align-items: center; padding: var(--av-fs-32) clamp(var(--av-fs-16),4vw,var(--av-sp-16));}
.eyebrow {text-transform: uppercase; letter-spacing: .18em; font: var(--av-detail-17) var(--av-font-ui); color: var(--av-gold-100);}
h1,h2,h3 {font-family: var(--av-font-display); line-height: 1.25;}
h1 {font-size: clamp(var(--av-detail-18),3vw,var(--av-detail-19)); margin: var(--av-detail-20) 0;}
.portal-hero p {margin: 0; color: var(--av-gold-50);}
main {width: min(var(--av-detail-21),100%); margin: 0 auto; padding: clamp(var(--av-fs-16),3vw,var(--av-sp-12)); flex: 1;}
footer {text-align: center; padding: var(--av-detail-22); color: var(--av-text-muted); border-top: var(--av-line-1) solid var(--av-border-gold-soft); font-size: var(--av-detail-9);}
.heading {display: flex; justify-content: space-between; align-items: center; gap: var(--av-fs-16); margin: 0 0 var(--av-fs-24);}
.heading h2 {color: var(--av-gold-50); margin: 0; font-size: var(--av-detail-23);}
.button {display: inline-flex; align-items: center; justify-content: center; gap: var(--av-detail-11); text-decoration: none; background: var(--av-burgundy-500); color: var(--av-parchment-50); border: var(--av-line-1) solid var(--av-gold-300); padding: var(--av-detail-24) var(--av-detail-25); font-family: var(--av-font-ui); font-size: var(--av-detail-9); min-height: var(--av-detail-26);}
.button:hover {background: var(--av-burgundy-300);}
.button.alt {background: var(--av-bg-panel); color: var(--av-gold-50);}
.button.plain {background: transparent; color: var(--av-parchment-ink); border-color: var(--av-border-parchment);}
.button:disabled {opacity: .55; cursor: not-allowed;}
.grid {display: grid; grid-template-columns: repeat(auto-fill,minmax(var(--av-detail-27),1fr)); gap: var(--av-fs-16);}
.card,.paper {background: var(--av-parchment-50); border: var(--av-line-1) solid var(--av-border-parchment); color: var(--av-parchment-ink); padding: var(--av-detail-28); box-shadow: 0 var(--av-detail-30) 0 var(--av-detail-29);}
.card h3 {margin: var(--av-detail-7) 0 var(--av-detail-20); font-size: var(--av-detail-31);}
.card p {min-height: var(--av-detail-32); margin: var(--av-detail-33) 0 var(--av-fs-16);}
.meta {font-size: var(--av-detail-9); color: var(--av-parchment-muted);}
.card-actions,.actions {display: flex; gap: var(--av-detail-20); flex-wrap: wrap; margin-top: var(--av-fs-16);}
.search {width: min(var(--av-detail-34),100%); margin-bottom: var(--av-detail-22);}
.input,textarea,select {width: 100%; background: var(--av-parchment-50); color: var(--av-parchment-ink); border: var(--av-line-1) solid var(--av-border-parchment); padding: var(--av-detail-4); min-height: var(--av-detail-26); border-radius: 0;}
textarea {min-height: var(--av-detail-35); resize: vertical;}
label {display: grid; gap: var(--av-detail-36); margin: var(--av-detail-4) 0; color: var(--av-text-primary); font-family: var(--av-font-ui); font-size: var(--av-detail-37);}
.paper label {color: var(--av-parchment-ink);}
.paper textarea {background: var(--av-parchment-50);}
.stack {display: grid; gap: var(--av-detail-33);}
.notice {padding: var(--av-fs-16) var(--av-detail-38); border: var(--av-line-1) solid var(--av-border-gold); background: var(--av-bg-panel); margin: var(--av-fs-16) 0;}
.muted-dark {color: var(--av-text-secondary);}
.reader {max-width: var(--av-detail-39); margin: 0 auto;}
.reader .paper {margin-bottom: var(--av-fs-16); padding: clamp(var(--av-detail-40),3vw,var(--av-sp-10));}
.reader .paper h2 {font-size: var(--av-fs-24);}
.reader .paper p {line-height: 1.75; margin: var(--av-detail-33) 0 var(--av-detail-22);}
.story-block {position: relative; border-top: var(--av-line-1) solid var(--av-parchment-200); padding: var(--av-detail-20) 0;}
.story-block .anchor {float: right; font-size: var(--av-detail-41); background: transparent; color: var(--av-burgundy-500); border: 0; text-decoration: underline; padding: var(--av-detail-42);}
.annotation {border-left: var(--av-detail-30) solid var(--av-info); background: var(--av-parchment-100); padding: var(--av-detail-12) var(--av-detail-13); margin: var(--av-detail-11) 0; font-size: var(--av-detail-43);}
.annotation.dm {border-color: var(--av-burgundy-500); background: var(--av-parchment-100);}
.annotation strong {font-family: var(--av-font-ui); font-size: var(--av-detail-13);}
.annotation p {margin: var(--av-detail-44) 0;}
.annotation-form {display: flex; gap: var(--av-detail-33); margin: var(--av-detail-33) 0;}
.annotation-form input {flex: 1;}
.small {font-size: var(--av-detail-45);}
.member-list {display: flex; gap: var(--av-detail-33); flex-wrap: wrap; margin: var(--av-fs-16) 0;}
.member-pill {border: var(--av-line-1) solid var(--av-border-parchment); padding: var(--av-detail-36) var(--av-detail-20);}
.split {display: grid; grid-template-columns: minmax(0,2fr) minmax(var(--av-hero-h),1fr); gap: var(--av-detail-40);}
.split aside .paper {margin-bottom: var(--av-fs-16);}
.auth-box {max-width: var(--av-detail-46); margin: auto;}
.empty {padding: var(--av-fs-32); border: var(--av-line-1) solid var(--av-border-gold-soft); color: var(--av-text-secondary);}
.close-modal {float: right; background: transparent; color: var(--av-parchment-ink); border: 0; font-size: var(--av-fs-24);}
dialog {width: min(var(--av-detail-47),calc(100% - var(--av-fs-32))); max-height: 90vh; overflow: auto; border: var(--av-line-1) solid var(--av-border-gold); background: var(--av-parchment-50); color: var(--av-parchment-ink); padding: var(--av-detail-22);}
dialog::backdrop {background: var(--av-detail-48);}
dialog label {color: var(--av-parchment-ink);}
dialog h2 {margin: 0 0 var(--av-fs-16);}
#toast:not(:empty) {position: fixed; bottom: var(--av-fs-24); right: var(--av-fs-24); max-width: var(--av-detail-49); background: var(--av-bg-panel); border: var(--av-line-1) solid var(--av-gold-300); padding: var(--av-fs-16); color: var(--av-gold-50); z-index: 5;}
:focus-visible {outline: var(--av-detail-30) solid var(--av-gold-300); outline-offset: var(--av-radius-1);}
@media (max-width:850px) {.portal {grid-template-columns: 1fr;}.portal-side {display: none; position: fixed; z-index: 4; top: var(--av-detail-10); left: 0; bottom: 0; width: min(var(--av-detail-50),85vw); box-shadow: var(--av-detail-52) 0 var(--av-btn-pad-x-lg) var(--av-detail-51);}.portal-side.open {display: flex;}.mobile-menu {display: block;}.split {grid-template-columns: 1fr;}.portal-hero {min-height: var(--av-detail-53);}.top-name {display: none;}}
.input.search {max-width: var(--av-detail-34);}
@media (max-width:520px) {.heading {align-items: flex-start; flex-direction: column;}.grid {grid-template-columns: 1fr;}.reader .paper {padding: var(--av-fs-16);}.annotation-form {flex-direction: column;}}
@media (prefers-reduced-motion:reduce) {*,*::before,*::after {scroll-behavior: auto !important; animation: none !important; transition: none !important;}}
.campaign-layout {display: grid; gap: var(--av-fs-32);}
.campaign-section {border-top: var(--av-line-1) solid var(--av-border-gold-soft); padding-top: var(--av-detail-54);}
.campaign-section .heading h2 {color: var(--av-gold-50);}
.lore-group {margin: var(--av-fs-16) 0 var(--av-fs-32);}
.lore-group>h3 {color: var(--av-gold-50); font-size: var(--av-detail-31);}
.lore-group small {color: var(--av-gold-300); font: 400 var(--av-detail-13) var(--av-font-ui);}
.lore-card p {white-space: pre-wrap;}
.lore-body {line-height: 1.75; white-space: normal;}
.lore-body p {white-space: pre-wrap;}
.campaign-section.paper {color: var(--av-parchment-ink);}
.map-selector {display: flex; flex-wrap: wrap; gap: var(--av-detail-33); margin: var(--av-fs-16) 0;}
.map-tools {display: flex; gap: var(--av-fs-16); flex-wrap: wrap; align-items: end;}
.map-tools label {width: min(var(--av-detail-55),100%); color: var(--av-parchment-ink);}
.map-tools output {align-self: center; color: var(--av-burgundy-500); font-weight: 700;}
.map-scroll {overflow: auto; background: var(--av-bg-panel); border: var(--av-line-1) solid var(--av-border-parchment); margin-top: var(--av-fs-16);}
.map-scroll svg {display: block; width: 100%; min-width: var(--av-detail-46); max-height: 75vh; touch-action: none;}
.map-token {cursor: crosshair;}
.map-token circle {fill: var(--av-burgundy-500); stroke: var(--av-gold-300); stroke-width: 3;}
.map-token.selected circle {fill: var(--av-info); stroke: var(--av-gold-50); stroke-width: 5;}
.map-token text {fill: var(--av-parchment-50); font: 700 var(--av-detail-56) var(--av-font-ui); pointer-events: none;}
.measure-shape {fill: var(--av-detail-57); stroke: var(--av-burgundy-500); stroke-width: 3; stroke-dasharray: 9 4;}
.measure-shape line {fill: none; stroke: var(--av-burgundy-500); stroke-width: 5;}
.map-upload {cursor: pointer;}
.member-pill .button {padding: var(--av-detail-42) var(--av-detail-11); min-height: var(--av-stat-value); font-size: var(--av-detail-58);}
.combat-heading {display: flex; align-items: end; justify-content: space-between; gap: var(--av-fs-16); margin-bottom: var(--av-detail-40);}
.combat-heading h2 {color: var(--av-gold-50); font-size: var(--av-detail-59); margin: var(--av-detail-42) 0;}
.combat-heading p {color: var(--av-text-secondary); margin: 0;}
.combat-board {display: grid; grid-template-columns: minmax(0,1fr) var(--av-hero-h); gap: var(--av-detail-40); position: relative;}
.combat-list {display: grid; gap: var(--av-detail-4); position: relative;}
.initiative-rail {position: absolute; left: var(--av-detail-60); top: var(--av-stat-value); bottom: var(--av-stat-value); width: var(--av-line-1); background: linear-gradient(var(--av-gold-300),var(--av-border-gold-soft)); z-index: 0;}
.combat-unit {position: relative; z-index: 1; display: grid; grid-template-columns: var(--av-detail-61) minmax(0,1fr) var(--av-detail-62) var(--av-nav-item-h); align-items: center; min-height: var(--av-detail-63); background: linear-gradient(100deg,var(--av-parchment-100),var(--av-parchment-200)); color: var(--av-parchment-ink); border: var(--av-line-1) solid var(--av-border-parchment); box-shadow: 0 var(--av-detail-30) 0 var(--av-detail-64); transition: transform .18s ease,border-color .18s ease;}
.combat-unit.enemy {border-right: var(--av-radius-2) solid var(--av-burgundy-500);}
.combat-unit.ally {border-left: var(--av-radius-2) solid var(--av-info);}
.combat-unit.active {background: linear-gradient(100deg,var(--av-parchment-50),var(--av-text-primary)); border-color: var(--av-gold-300); box-shadow: 0 0 0 var(--av-radius-1) var(--av-detail-65),0 var(--av-radius-3) var(--av-content-pad-x) var(--av-detail-66); transform: translateX(var(--av-detail-67));}
.combat-portrait {width: var(--av-header-h); height: var(--av-header-h); margin: var(--av-detail-52); display: grid; place-items: center; background: var(--av-bg-panel-2); border: var(--av-line-1) solid var(--av-gold-300); clip-path: polygon(50% 0,90% 18%,100% 62%,72% 100%,28% 100%,0 62%,10% 18%); overflow: hidden;}
.combat-portrait img {width: 100%; height: 100%; object-fit: cover;}
.combat-sigil {color: var(--av-gold-100); font: 600 var(--av-detail-68) var(--av-font-display);}
.combat-unit-copy {padding: var(--av-detail-69) var(--av-detail-11);}
.combat-unit-title {display: flex; align-items: center; gap: var(--av-detail-33); flex-wrap: wrap;}
.combat-unit h3 {font-size: var(--av-detail-70); margin: 0;}
.combat-unit p {font-size: var(--av-detail-45); margin: var(--av-detail-71) 0; color: var(--av-parchment-muted);}
.active-chip,.condition-chip {display: inline-flex; align-items: center; min-height: var(--av-detail-72); padding: var(--av-detail-73) var(--av-detail-7); border: var(--av-line-1) solid var(--av-text-muted); font: 700 var(--av-detail-4) var(--av-font-ui); background: var(--av-text-primary);}
.active-chip {background: var(--av-burgundy-500); border-color: var(--av-burgundy-500); color: var(--av-parchment-50); text-transform: uppercase; letter-spacing: .06em;}
.condition-row {display: flex; gap: var(--av-detail-36); flex-wrap: wrap; margin-top: var(--av-detail-74);}
.condition-empty {font-size: var(--av-detail-6); color: var(--av-parchment-muted);}
.initiative-box {margin: 0; padding: var(--av-detail-7); display: grid; place-items: center; color: var(--av-parchment-muted); font-size: var(--av-detail-4);}
.initiative-box input {width: var(--av-detail-75); height: var(--av-detail-76); text-align: center; border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50); color: var(--av-burgundy-700); font: 600 var(--av-detail-23) var(--av-font-display);}
.combat-menu {align-self: start; position: relative; margin: var(--av-detail-7) var(--av-detail-7) 0 0;}
.combat-menu summary {list-style: none; width: var(--av-detail-77); height: var(--av-detail-77); display: grid; place-items: center; border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50); cursor: pointer; font-weight: 700;}
.combat-menu summary::-webkit-details-marker {display: none;}
.combat-menu>div {position: absolute; right: 0; top: var(--av-btn-h-md); z-index: 4; width: var(--av-hero-h); display: grid; background: var(--av-parchment-50); border: var(--av-line-1) solid var(--av-border-parchment); box-shadow: 0 var(--av-detail-52) var(--av-detail-72) var(--av-detail-78);}
.combat-menu button {padding: var(--av-detail-4); text-align: left; border: 0; border-bottom: var(--av-line-1) solid var(--av-parchment-200); background: transparent; color: var(--av-parchment-ink); font: 500 var(--av-detail-13) var(--av-font-ui);}
.combat-menu button:hover {background: var(--av-parchment-100);}
.combat-menu button.danger {color: var(--av-burgundy-500);}
.combat-actions {position: sticky; top: var(--av-fs-16); height: max-content; display: grid; gap: var(--av-detail-6); padding: var(--av-fs-16); background: var(--av-bg-panel); border: var(--av-line-1) solid var(--av-border-gold);}
.combat-actions strong {text-align: center; color: var(--av-gold-50); font-family: var(--av-font-display);}
.combat-next {min-height: var(--av-detail-79); font-size: var(--av-fs-16);}
.combat-empty {text-align: center;}
.combat-attribution {margin: var(--av-detail-13) 0 0; font-size: var(--av-detail-80); color: var(--av-text-muted);}
.combat-attribution a {color: inherit;}
.condition-grid {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--av-detail-7); margin: var(--av-fs-16) 0;}
.condition-grid label {display: flex; align-items: center; gap: var(--av-detail-12); margin: 0; padding: var(--av-detail-12); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50);}
.condition-grid input {width: var(--av-content-pad-x); height: var(--av-content-pad-x);}
.condition-form>label {color: var(--av-parchment-ink);}
.card-cover {height: var(--av-detail-81); background: linear-gradient(90deg,#0d1924aa,#0d192433),url('./assets/hero.jpg') center 40%/cover; margin: -1.var(--av-detail-82) -1.var(--av-detail-82) var(--av-fs-16); border-bottom: var(--av-line-1) solid var(--av-border-gold);}
.file-list {display: grid; grid-template-columns: repeat(auto-fill,minmax(var(--av-detail-83),1fr)); gap: var(--av-detail-69);}
.file-card {display: grid; align-content: start; gap: var(--av-detail-36); overflow-wrap: anywhere; border: var(--av-line-1) solid var(--av-border-parchment); padding: var(--av-detail-33); color: var(--av-parchment-ink); text-decoration: none;}
.file-card img {width: 100%; aspect-ratio: 4/3; object-fit: cover;}
.file-card span {font: var(--av-detail-13) var(--av-font-ui);}
.lore-stats {display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--av-detail-4);}
.lore-stat {display: grid; border: var(--av-line-1) solid var(--av-border-gold-soft); padding: var(--av-detail-13) var(--av-fs-16); background: var(--av-bg-panel); color: var(--av-text-secondary);}
.lore-stat strong {color: var(--av-gold-50); font: 600 var(--av-fs-24) var(--av-font-display);}
.lore-stat span {font: var(--av-detail-17) var(--av-font-ui);}
@media (max-width:650px) {.lore-stats {grid-template-columns: repeat(2,minmax(0,1fr));}}
[hidden] {display: none !important;}
@media (max-width:650px) {.map-tools {display: grid; grid-template-columns: repeat(2,minmax(0,1fr));}.map-tools label {width: auto;}.map-tools output {grid-column: 1/-1;}}
@media (max-width:850px) {.combat-board {grid-template-columns: 1fr;}.combat-actions {position: static; grid-template-columns: repeat(3,minmax(0,1fr));}.combat-actions strong {grid-column: 1/-1;}.combat-unit {grid-template-columns: var(--av-detail-84) minmax(0,1fr) var(--av-detail-10) var(--av-btn-h-md);}.combat-portrait {width: var(--av-detail-5); height: var(--av-detail-5); margin: var(--av-radius-3);}.combat-unit.active {transform: none;}}
@media (max-width:650px) {.combat-heading {align-items: stretch; flex-direction: column;}.combat-actions {grid-template-columns: 1fr;}.combat-unit {grid-template-columns: var(--av-detail-75) minmax(0,1fr) var(--av-detail-79) var(--av-detail-77); min-height: var(--av-detail-62);}.combat-portrait {width: var(--av-detail-85); height: var(--av-detail-85);}.combat-unit-copy {padding: var(--av-detail-7) var(--av-detail-44);}.combat-unit h3 {font-size: var(--av-detail-25);}.combat-unit p {font-size: var(--av-detail-80);}.initiative-box input {width: var(--av-detail-76); height: var(--av-nav-item-h); font-size: var(--av-detail-40);}.condition-grid {grid-template-columns: 1fr;}.initiative-rail {left: var(--av-detail-86);}}
@media (prefers-reduced-motion:reduce) {.combat-unit {transition: none;}}
.combat-page {width: min(var(--av-detail-87),100%); margin: auto;}
.combat-setup {display: grid; gap: var(--av-fs-16); margin: 0 0 var(--av-fs-24);}
.combat-setup-actions {display: flex; gap: var(--av-detail-4); flex-wrap: wrap; padding: var(--av-fs-16); background: var(--av-bg-panel); border: var(--av-line-1) solid var(--av-border-gold);}
.combat-roster-summary {display: flex; gap: var(--av-detail-40); color: var(--av-text-secondary); font: 500 var(--av-detail-17) var(--av-font-ui); text-transform: uppercase; letter-spacing: .09em;}
.enemy-library {padding: var(--av-fs-16); border: var(--av-line-1) solid var(--av-border-gold-soft); background: var(--av-detail-88);}
.enemy-library .heading {margin-bottom: var(--av-detail-13);}
.enemy-library .heading h3 {margin: 0; color: var(--av-gold-50);}
.enemy-template-grid {display: grid; grid-template-columns: repeat(auto-fill,minmax(var(--av-detail-89),1fr)); gap: var(--av-detail-13);}
.enemy-template-card {display: grid; grid-template-columns: var(--av-detail-90) minmax(0,1fr); gap: var(--av-detail-9); padding: var(--av-detail-8); background: linear-gradient(105deg,var(--av-parchment-100),var(--av-parchment-200)); border: var(--av-line-1) solid var(--av-border-parchment); color: var(--av-parchment-ink); box-shadow: 0 var(--av-detail-30) 0 var(--av-detail-91);}
.enemy-template-card h3 {margin: var(--av-detail-71) 0; font-size: var(--av-detail-70);}
.enemy-template-card p {margin: var(--av-detail-92) 0; color: var(--av-parchment-muted); font-size: var(--av-detail-13);}
.enemy-template-portrait {width: var(--av-detail-93); height: var(--av-sidebar-w); display: grid; place-items: center; overflow: hidden; background: var(--av-bg-panel-2); border: var(--av-line-1) solid var(--av-gold-300); clip-path: polygon(50% 0,92% 18%,100% 68%,72% 100%,28% 100%,0 68%,8% 18%);}
.enemy-template-portrait img {width: 100%; height: 100%; object-fit: cover;}
.enemy-template-stats {display: flex; gap: var(--av-detail-74); flex-wrap: wrap; margin-top: var(--av-detail-7);}
.enemy-template-stats span {padding: var(--av-detail-73) var(--av-detail-94); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50); font: 600 var(--av-detail-4) var(--av-font-ui);}
.enemy-template-card .actions {margin-top: var(--av-detail-69);}
.enemy-template-card .button {min-height: var(--av-detail-95); padding: var(--av-detail-74) var(--av-detail-12); font-size: var(--av-detail-80);}
.player-picker {display: grid; gap: var(--av-detail-33); margin: var(--av-fs-16) 0;}
.player-picker label {display: flex; align-items: center; gap: var(--av-detail-6); margin: 0; padding: var(--av-detail-4); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50);}
.player-picker input {width: var(--av-btn-pad-x-lg); height: var(--av-btn-pad-x-lg);}
.player-picker span {display: grid; font-weight: 700;}
.player-picker small {font-weight: 400; color: var(--av-parchment-muted);}
.enemy-template-form {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--av-detail-12);}
.enemy-template-form label {margin: 0;}
.stat-field-wide {grid-column: 1/-1;}
.stat-block {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--av-detail-12);}
.stat-row {display: grid; gap: var(--av-detail-92); padding: var(--av-detail-69); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50);}
.stat-row.wide {grid-column: 1/-1;}
.stat-row strong {font: 700 var(--av-detail-96) var(--av-font-ui); color: var(--av-burgundy-500); text-transform: uppercase; letter-spacing: .05em;}
.stat-row span {white-space: normal; overflow-wrap: anywhere;}
.combat-page>.heading {border-bottom: var(--av-line-1) solid var(--av-border-gold-soft); padding-bottom: var(--av-fs-16);}
.combat-page #combat-section {border-top: 0; padding-top: 0;}
@media (max-width:650px) {.enemy-template-grid {grid-template-columns: 1fr;}.enemy-template-form,.stat-block {grid-template-columns: 1fr;}.stat-field-wide,.stat-row.wide {grid-column: auto;}.enemy-template-card {grid-template-columns: var(--av-detail-75) minmax(0,1fr);}.enemy-template-portrait {width: var(--av-detail-97); height: var(--av-detail-79);}.combat-setup-actions {display: grid;}.combat-setup-actions .button {width: 100%;}}
.group-count {display: inline-flex; align-items: center; justify-content: center; min-width: var(--av-detail-95); min-height: var(--av-detail-98); padding: var(--av-detail-71) var(--av-detail-99); border-radius: var(--av-radius-pill); background: var(--av-burgundy-500); color: var(--av-parchment-50); font: 700 var(--av-detail-80) var(--av-font-ui); box-shadow: inset 0 0 0 var(--av-line-1) var(--av-gold-300);}
.group-health {max-width: var(--av-detail-100); margin: var(--av-detail-7) 0 var(--av-detail-92);}
.group-health-copy {display: flex; justify-content: space-between; gap: var(--av-detail-13); margin-bottom: var(--av-detail-101); color: var(--av-parchment-muted); font: 700 var(--av-detail-4) var(--av-font-ui);}
.group-health-copy strong {color: var(--av-burgundy-500);}
.group-health-track {position: relative; height: var(--av-grid-gap); overflow: hidden; border: var(--av-line-1) solid var(--av-parchment-muted); background: var(--av-text-secondary);}
.group-health-track>span {display: block; height: 100%; background: linear-gradient(90deg,var(--av-burgundy-300),var(--av-burgundy-300)); transition: width .22s ease;}
.group-health-track>i {position: absolute; z-index: 1; top: -1px; bottom: -1px; width: var(--av-line-1); background: var(--av-detail-102); box-shadow: var(--av-line-1) 0 var(--av-detail-103);}
.form-pair {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--av-detail-69);}
.draft-enemies {padding: var(--av-detail-6); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50);}
.draft-list {display: grid; gap: var(--av-detail-6);}
.draft-card {display: grid; grid-template-columns: minmax(0,1fr) auto; gap: var(--av-fs-16); align-items: start; padding: var(--av-fs-16); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50);}
.draft-card h3,.draft-card p {margin: var(--av-detail-44) 0;}
.draft-card p {white-space: pre-wrap;}
.draft-card .actions {display: grid; margin: 0;}
.combat-log {grid-column: 1/-1; margin-top: var(--av-detail-74); padding-top: var(--av-detail-9); border-top: var(--av-line-1) solid var(--av-border-gold-soft); min-width: 0;}
.combat-log h3 {margin: 0 0 var(--av-detail-33); color: var(--av-gold-50); font-size: var(--av-fs-16);}
.combat-log>p {margin: 0; color: var(--av-text-muted); font-size: var(--av-detail-96);}
.combat-log ol {display: grid; gap: var(--av-detail-7); max-height: var(--av-detail-50); overflow: auto; margin: 0; padding: 0; list-style: none;}
.combat-log li {display: grid; grid-template-columns: var(--av-detail-104) minmax(0,1fr); gap: var(--av-detail-11); padding: var(--av-detail-7); border-left: var(--av-radius-1) solid var(--av-gold-300); background: var(--av-detail-105); color: var(--av-text-secondary); font: var(--av-detail-4)/1.35 var(--av-font-ui);}
.combat-log li.defeat {border-color: var(--av-burgundy-300);}
.combat-log time {color: var(--av-gold-100); font-variant-numeric: tabular-nums;}
.combat-log span {overflow-wrap: anywhere;}
@media (max-width:650px) {.form-pair,.draft-card {grid-template-columns: 1fr;}.draft-card .actions {display: flex;}.group-health {margin-right: var(--av-detail-44);}.combat-log ol {max-height: var(--av-hero-h);}}
.srd-shell {display: grid; gap: var(--av-fs-16);}
.srd-toolbar {position: sticky; top: var(--av-detail-106); z-index: 3; display: grid; gap: var(--av-detail-6); padding: var(--av-detail-9); background: var(--av-detail-107); border: var(--av-line-1) solid var(--av-border-gold); box-shadow: 0 var(--av-grid-gap) var(--av-detail-109) var(--av-detail-108); backdrop-filter: blur(var(--av-content-pad-y));}
.srd-search {display: flex; align-items: center; gap: var(--av-detail-4); padding: var(--av-detail-44) var(--av-detail-13); background: var(--av-parchment-50); border: var(--av-line-1) solid var(--av-border-gold);}
.srd-search span {font-size: var(--av-detail-22); color: var(--av-burgundy-500);}
.srd-search input {width: 100%; min-height: var(--av-detail-110); border: 0; outline: 0; background: transparent; color: var(--av-parchment-ink);}
.srd-tabs {display: flex; gap: var(--av-detail-11); overflow-x: auto; padding-bottom: var(--av-detail-92); scrollbar-width: thin;}
.srd-tabs button,.srd-page-actions button {min-height: var(--av-detail-111); padding: var(--av-detail-7) var(--av-detail-13); border: var(--av-line-1) solid var(--av-border-gold-soft); background: var(--av-bg-panel); color: var(--av-gold-50); white-space: nowrap;}
.srd-tabs button.active {background: var(--av-burgundy-500); border-color: var(--av-gold-300); color: var(--av-parchment-50);}
.srd-overview-grid {display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: var(--av-fs-16);}
.srd-overview-grid .paper {margin: 0;}
.srd-summary,.srd-legal {grid-column: 1/-1;}
.srd-counts {display: grid; grid-template-columns: auto 1fr auto 1fr; gap: var(--av-detail-42) var(--av-detail-4); align-items: baseline; margin-top: var(--av-fs-20); padding-top: var(--av-fs-16); border-top: var(--av-line-1) solid var(--av-border-parchment);}
.srd-counts strong {font: 600 var(--av-fs-32) var(--av-font-display); color: var(--av-burgundy-500);}
.srd-counts span {color: var(--av-parchment-muted);}
.srd-chip-grid {display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--av-detail-33);}
.srd-chip {display: grid; gap: var(--av-detail-92); text-align: left; padding: var(--av-detail-6); border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50); color: var(--av-parchment-ink);}
.srd-chip strong {color: var(--av-burgundy-500);}
.srd-chip span {font-size: var(--av-detail-13); color: var(--av-parchment-muted); line-height: 1.35;}
.srd-condition-list {display: flex; flex-wrap: wrap; gap: var(--av-detail-7);}
.srd-condition-list button {padding: var(--av-detail-7) var(--av-detail-112); border: var(--av-line-1) solid var(--av-burgundy-300); border-radius: var(--av-radius-pill); background: var(--av-parchment-50); color: var(--av-burgundy-500);}
.srd-monster-grid {display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--av-detail-12); max-height: var(--av-detail-113); overflow: auto; padding: var(--av-detail-44);}
.srd-monster {display: grid; gap: var(--av-detail-44); min-height: var(--av-detail-114); padding: var(--av-detail-6); text-align: left; border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50); color: var(--av-parchment-ink);}
.srd-monster:hover,.srd-results button:hover,.srd-chip:hover {border-color: var(--av-gold-300); transform: translateY(-1px);}
.srd-monster span {font-size: var(--av-detail-17); color: var(--av-parchment-muted);}
.srd-results {display: grid; gap: var(--av-detail-12);}
.srd-results button {display: grid; grid-template-columns: var(--av-detail-115) 1fr; gap: var(--av-detail-13); padding: var(--av-detail-6); text-align: left; border: var(--av-line-1) solid var(--av-border-parchment); background: var(--av-parchment-50); color: var(--av-parchment-ink);}
.srd-results button strong {color: var(--av-burgundy-500);}
.srd-results button span {font-size: var(--av-detail-8); line-height: 1.45; color: var(--av-parchment-muted);}
.srd-reader {margin-top: var(--av-fs-16); padding: clamp(var(--av-fs-16),3vw,var(--av-detail-116)); border: var(--av-line-1) solid var(--av-border-parchment); background: linear-gradient(90deg,var(--av-detail-117) var(--av-line-1),transparent var(--av-line-1)),var(--av-parchment-50); background-size: var(--av-detail-116) 100%; color: var(--av-parchment-ink); box-shadow: 0 var(--av-content-pad-y) var(--av-detail-119) var(--av-detail-118); scroll-margin-top: var(--av-detail-120);}
.srd-reader-head {display: flex; justify-content: space-between; align-items: flex-start; gap: var(--av-fs-16); padding-bottom: var(--av-fs-16); border-bottom: var(--av-radius-1) solid var(--av-gold-300);}
.srd-reader-head h2 {margin: var(--av-detail-42) 0 0;}
.srd-page-actions {display: flex; gap: var(--av-detail-11);}
.srd-page-actions button {background: var(--av-bg-sidebar);}
.srd-page-actions button:disabled {opacity: .35; cursor: not-allowed;}
.srd-page-hint {font-size: var(--av-detail-37); color: var(--av-parchment-muted);}
.srd-page-text {max-width: 76ch; margin: var(--av-fs-24) auto 0; font-family: Georgia,'Times New Roman',serif; font-size: var(--av-fs-16); line-height: 1.62; overflow-wrap: anywhere;}
@media (max-width:900px) {.srd-overview-grid {grid-template-columns: 1fr;}.srd-summary,.srd-legal {grid-column: auto;}.srd-monster-grid {grid-template-columns: repeat(2,minmax(0,1fr));}}
@media (max-width:620px) {.srd-toolbar {top: var(--av-detail-121); margin-inline: -.var(--av-detail-82);}.srd-chip-grid,.srd-monster-grid {grid-template-columns: 1fr;}.srd-reader-head {display: grid;}.srd-results button {grid-template-columns: 1fr;}.srd-counts {grid-template-columns: auto 1fr;}.srd-page-actions {width: 100%;}.srd-page-actions button {flex: 1;}.srd-page-text {font-size: var(--av-detail-122); line-height: 1.55;}}
@media (prefers-reduced-motion:reduce) {.srd-monster:hover,.srd-results button:hover,.srd-chip:hover {transform: none;}}
