/* Woodland joinery. Loaded after the game's layout and typography.
   Action groups are explicit: illustrated tokens, inventory objects and the
   field guide's painted book remain in their own material system. */
@font-face {
  font-family: "Gothic Pixel";
  src: url("../fonts/gothic-pixel/gothic-pixel-font.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
@font-face {
  font-family: "Press Start 2P";
  src: url("../fonts/press-start-2p/PressStart2P.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
  font-display: swap;
}
:root {
  --woodland-font: "Gothic Pixel", Georgia, serif;
  --woodland-ui-font: "Press Start 2P", monospace;
  --woodland-moss-frame: url("moss-frame.svg");
  --woodland-bark-frame: url("bark-frame.svg");
  --woodland-honey-frame: url("honey-frame.svg");
  --woodland-cream: #f4e6c2;
  --woodland-muted: #b8c3a0;
  --woodland-amber: #e3bc71;
  --woodland-ink: #302616;
  --woodland-shadow: #08170e99;
  --woodland-focus: #f1d68f;
  --woodland-control-height: 48px;
  --woodland-control-compact: 44px;
}

/* Shared action treatment; opt-in classes also power the reference sheet. */
:is(.woodland-button, .welcome-menu button, .pause-guide-links button,
    #field-guide button, #leaderboard button, .tower-card > button,
    .tower-card .tower-actions button, .stash-disposal button,
    #world-map .planning-tools button, #trail-choice footer button,
    #portal-confirm button) {
  font-family: var(--woodland-action-font, var(--woodland-ui-font));
  font-size: var(--woodland-action-size, 11px);
  line-height: var(--woodland-action-leading, 1.6);
  letter-spacing: 0;
  font-synthesis: none;
  box-sizing: border-box;
  min-height: var(--woodland-control-height);
  min-width: var(--woodland-control-compact);
  border: 3px solid transparent;
  border-image: var(--woodland-action-frame, var(--woodland-moss-frame)) 18 fill / var(--woodland-action-edge, 15px) / 2px stretch;
  border-radius: 0;
  background: none;
  box-shadow: none;
  color: var(--woodland-action-color, var(--woodland-cream));
  text-shadow: 0 1px 1px #07180d99;
  filter: drop-shadow(0 3px 2px var(--woodland-shadow));
  transition: filter 140ms ease, translate 140ms ease;
}
:is(.woodland-button, .welcome-menu button, .pause-guide-links button,
    #field-guide button, #leaderboard button, .tower-card > button,
    .tower-card .tower-actions button, .stash-disposal button,
    #world-map .planning-tools button, #trail-choice footer button,
    #portal-confirm button):hover:not(:disabled):not([aria-disabled="true"]) {
  background: none;
  border-color: transparent;
  color: var(--woodland-action-color, var(--woodland-cream));
  filter: brightness(1.16) drop-shadow(0 4px 3px var(--woodland-shadow));
}
:is(.woodland-button, .welcome-menu button, .pause-guide-links button,
    #field-guide button, #leaderboard button, .tower-card > button,
    .tower-card .tower-actions button, .stash-disposal button,
    #world-map .planning-tools button, #trail-choice footer button,
    #portal-confirm button):active:not(:disabled):not([aria-disabled="true"]) {
  translate: 0 1px;
  filter: brightness(.94) drop-shadow(0 1px 1px var(--woodland-shadow));
}
:is(.woodland-button, .welcome-menu button, .pause-guide-links button,
    #field-guide button, #leaderboard button, .tower-card > button,
    .tower-card .tower-actions button, .stash-disposal button,
    #world-map .planning-tools button, #trail-choice footer button,
    #portal-confirm button):is(:disabled, [aria-disabled="true"]) {
  opacity: .48;
  filter: saturate(.35) drop-shadow(0 1px 1px var(--woodland-shadow));
  translate: none;
  cursor: not-allowed;
}
:is(.woodland-button.primary, .welcome-menu button.primary,
    .pause-guide-links button.primary, #field-guide button.primary,
    #leaderboard button.primary, .tower-card > button.primary,
    #world-map .planning-tools button.primary, #trail-choice footer button.primary,
    #portal-confirm button.primary, #welcome-new, #welcome-solo, #save-slot-go,
    #online-host, #resume) {
  --woodland-action-frame: var(--woodland-honey-frame);
  --woodland-action-color: var(--woodland-ink);
  border-image-source: var(--woodland-action-frame);
  color: var(--woodland-action-color, var(--woodland-cream));
  text-shadow: 0 1px #ffe8ad66;
}

/* Title plaques keep ornament around the uninterrupted label space. */
.welcome-screen .welcome-menu button,
.woodland-button.woodland-plaque {
  --woodland-action-frame: var(--woodland-bark-frame);
  --woodland-action-edge: 18px;
  padding: 12px 24px;
  min-height: 48px;
}
.welcome-screen :is(#welcome-new, #welcome-solo, #save-slot-go, #online-host,
                    #online-join, #welcome-start) {
  --woodland-action-frame: var(--woodland-honey-frame);
  --woodland-action-color: var(--woodland-ink);
}
.welcome-screen:is([data-menu="home"], [data-menu="mode"]) .welcome-options button {
  --woodland-action-font: var(--woodland-font);
  --woodland-action-size: 26px;
  --woodland-action-leading: 1.2;
  border: 4px solid transparent;
  border-image: var(--woodland-action-frame) 18 fill / 18px / 2px stretch;
  background: none;
  box-shadow: none;
  color: var(--woodland-action-color, var(--woodland-cream));
  text-shadow: 0 1px 1px #07180d66;
  padding: 12px 26px;
}
.welcome-screen:is([data-menu="home"], [data-menu="mode"]) .welcome-options button:hover:not(:disabled) {
  background: none;
  color: var(--woodland-action-color, var(--woodland-cream));
  outline: none;
}
.welcome-screen .welcome-menu > [data-leaderboard-open] {
  margin-top: 10px;
  min-height: 40px;
  --woodland-action-edge: 14px;
  padding: 10px 18px;
  font-size: 13px;
}
.welcome-screen #welcome-menu-back {
  min-height: 36px;
  padding: 8px 18px;
  --woodland-action-edge: 12px;
}
.welcome-screen .save-slot-list button {
  --woodland-action-edge: 15px;
  padding: 12px 16px;
}
.welcome-screen .save-slot-list button[aria-pressed="true"] {
  --woodland-action-frame: var(--woodland-moss-frame);
  outline: none;
  filter: drop-shadow(0 0 2px #e3bc7180) drop-shadow(0 3px 2px var(--woodland-shadow));
  color: var(--woodland-cream);
}
.welcome-screen .save-preview {
  border: 5px solid transparent;
  border-image: var(--woodland-bark-frame) 18 fill / 17px / 1px stretch;
  background: none;
  padding: 18px 20px;
}

/* Fixed corner sizes keep the ivy and brass joinery at a natural scale. */
.woodland-panel {
  box-sizing: border-box;
  border: 8px solid transparent;
  border-image: var(--woodland-bark-frame) 18 fill / 30px / 3px stretch;
  border-radius: 0;
  padding: 24px;
  background: none;
  color: var(--woodland-cream);
  filter: drop-shadow(0 8px 5px var(--woodland-shadow));
}
.woodland-panel.woodland-panel-moss { border-image-source: var(--woodland-moss-frame); }
.woodland-panel.woodland-panel-honey { border-image-source: var(--woodland-honey-frame); color: var(--woodland-ink); }
.tower-card:not(.tower-strip):not(.tower-center), .charm-bag-panel, .charm-tooltip {
  border-image-width: 15px;
  padding: 13px 14px;
}
.overlay-inner.event-moment, .overlay-inner.nature-moment,
.overlay-inner.pause-menu, .loadout-warning-card {
  border: 8px solid transparent;
  border-image: var(--woodland-bark-frame) 18 fill / 24px / 3px stretch;
  border-radius: 0;
  background: none;
  filter: drop-shadow(0 8px 5px var(--woodland-shadow));
}
:is(#leaderboard, #portal-confirm) {
  border: 8px solid transparent;
  border-image: var(--woodland-bark-frame) 18 fill / 24px / 2px stretch;
  border-radius: 0;
  background: none;
  box-shadow: 0 12px 32px #06130d88;
  padding: 26px;
}
:is(#leaderboard, #portal-confirm)::backdrop {
  background: #081a13cf;
  backdrop-filter: blur(3px);
}
.pause-menu-break { border-top-color: #b59b5c55; }
#world-map .journey-column {
  border: 6px solid transparent;
  border-image: var(--woodland-bark-frame) 18 fill / 18px / 1px stretch;
  border-radius: 0;
  background: none;
}
#world-map .planning-tools button { padding: 0; }
#leaderboard button[aria-pressed="true"] {
  --woodland-action-frame: var(--woodland-honey-frame);
  --woodland-action-color: var(--woodland-ink);
  color: var(--woodland-ink);
  text-shadow: 0 1px #ffe8ad66;
}

/* Inset form controls keep ornament away from typed text. */
.welcome-screen .welcome-name input,
.welcome-screen .welcome-join input {
  border: 1px solid #a68a56;
  border-image: none;
  border-radius: 3px;
  background: linear-gradient(#101e17, #203127);
  box-shadow: inset 0 2px 4px #070f0c88, 0 1px #d8ba7455;
  color: var(--woodland-cream);
  caret-color: var(--woodland-amber);
}
.welcome-screen .welcome-name input::placeholder,
.welcome-screen .welcome-join input::placeholder { color: #b4b59a; opacity: 1; }

/* The standalone style sheet sample previews deliberate keyboard selection.
   Live game controls use the shared hover treatment below. */
#sample-focus.woodland-button.sample-focus:not(:disabled):not([aria-disabled="true"]) {
  outline: none;
  filter: brightness(1.12) drop-shadow(0 3px 2px var(--woodland-shadow));
}
.welcome-screen input:focus-visible {
  outline: none;
  border-color: var(--woodland-focus);
  box-shadow: inset 0 2px 4px #070f0c88, 0 0 7px #e3bc7170;
}
@media (max-width: 520px) {
  :is(#leaderboard, #portal-confirm) { border-image-width: 18px; padding: 18px; }
  #leaderboard header { flex-wrap: wrap; gap: 12px; }
  #leaderboard header > div { min-width: 0; }
  #leaderboard header > button { flex-shrink: 0; }
  #leaderboard nav { gap: 8px; }
  #leaderboard nav button { min-width: 0; padding-inline: 10px; }
  .woodland-panel { border-image-width: 26px; padding: 22px; }
  .tower-card:not(.tower-strip):not(.tower-center), .charm-bag-panel, .charm-tooltip {
    border-image-width: 12px;
    padding: 11px 12px;
  }
  .welcome-screen .welcome-menu button { padding-inline: 18px; }
  .overlay-inner.pause-menu { padding-inline: 30px; border-image-width: 20px; }
}
@media (max-height: 560px) and (min-aspect-ratio: 6/5) {
  .welcome-screen:is([data-menu="home"], [data-menu="mode"]) .welcome-options button {
    min-height: 38px;
    padding: 7px 22px;
    --woodland-action-edge: 14px;
    border-image-width: 14px;
    font-size: 23px;
  }
  .welcome-screen .welcome-menu > [data-leaderboard-open] {
    min-height: 34px; padding-block: 7px; margin-top: 5px; font-size: 11px;
  }
}
@media (prefers-reduced-motion: reduce) {
  :is(.woodland-button, .welcome-menu button, .pause-guide-links button,
      #field-guide button, #leaderboard button, .tower-card > button,
      .tower-card .tower-actions button, .stash-disposal button,
      #world-map .planning-tools button, #trail-choice footer button,
      #portal-confirm button) { transition: none; translate: none !important; }
}
@media (forced-colors: active) {
  button:focus-visible, .welcome-screen button:focus-visible,
  :is(.woodland-button, .welcome-menu button, .pause-guide-links button,
      #field-guide button, #leaderboard button, .tower-card > button,
      .tower-card .tower-actions button, .stash-disposal button,
      #world-map .planning-tools button, #trail-choice footer button,
      #portal-confirm button):focus-visible:not(:disabled):not([aria-disabled="true"]),
  .welcome-screen:is([data-menu="home"], [data-menu="mode"]) .welcome-options button:focus-visible,
  #sample-focus.woodland-button.sample-focus:not(:disabled):not([aria-disabled="true"]), .welcome-screen input:focus-visible {
    outline: 2px solid Highlight;
    outline-offset: 3px;
    filter: none;
  }
  :is(.woodland-button, .welcome-menu button, .pause-guide-links button,
      .woodland-panel, #leaderboard, #portal-confirm) {
    border-image: none;
    border: 2px solid ButtonText;
    background: Canvas;
    color: CanvasText;
    filter: none;
    text-shadow: none;
  }
}

/* Game-wide integration. The runtime opts real UI controls into this layer;
   inventory pieces, illustrated map targets and book artwork are excluded.
   Appearance overrides intentionally beat legacy per-screen rules while
   leaving positioning, padding and interaction logic in place. Shared size
   floors keep legacy compact rules from shrinking the actual click targets. */
body {
  --font-ui: var(--woodland-ui-font);
  --font-nature: var(--woodland-font);
}
:where(button[data-woodland-control],summary[data-woodland-control]) { position: relative; }
body :is(button,summary)[data-woodland-control] {
  box-sizing: border-box;
  min-height: var(--woodland-control-min-height, var(--woodland-control-height)) !important;
  min-width: var(--woodland-control-min-width, var(--woodland-control-compact)) !important;
  outline: none !important;
  border: 3px solid transparent !important;
  border-image: var(--woodland-game-frame, var(--woodland-action-frame, var(--woodland-moss-frame))) 18 fill / var(--woodland-action-edge, 13px) / 1px stretch !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
  font-family: var(--woodland-action-font, var(--woodland-ui-font)) !important;
  font-size: var(--woodland-action-size, 10px) !important;
  line-height: var(--woodland-action-leading, 1.65) !important;
  font-weight: 400;
  font-synthesis: none;
  letter-spacing: 0;
  color: var(--woodland-game-color, var(--woodland-action-color, var(--woodland-cream))) !important;
  text-shadow: 0 1px 1px #07180d66;
  filter: drop-shadow(0 3px 2px var(--woodland-shadow));
  transition: filter 140ms ease;
}
/* Toolbar and icon controls stay compact, with the same floor for every pointer. */
body :is(.map-hud, #packing-actions, .planning-tools) [data-woodland-control],
body :is(.bag-close, .stash-back, #stash-trash, #close-bag, .copy-code)[data-woodland-control] {
  --woodland-control-min-height: var(--woodland-control-compact);
}
/* Tabs need room for both the lettering and the carved rim. Wrap before the
   labels crowd one another, including in the narrow chest on small screens. */
body .stash-tabs { flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
body .stash-tab {
  --woodland-control-min-width: 112px;
  flex: 1 1 112px;
  padding: 10px 12px;
}
body .stash-grid-label { height: auto; min-height: var(--woodland-control-height); }
body .minimal-packing #packing-actions { height: auto; min-height: var(--woodland-control-compact); }
body .stash-disposal { height: auto; }
/* Let the bottom bar gain a row instead of pushing larger targets offscreen. */
@media(max-width:700px) {
  body #game-surface > .map-hud { flex-wrap: wrap; }
  body :is(#run-arms, #weapon-hud, #tactical-minimap) {
    bottom: calc(180px + env(safe-area-inset-bottom));
  }
}
/* Save cards intentionally exceed the common action floor. */
body #welcome-screen .save-slot-list button { --woodland-control-min-height: 132px; }
@media(max-height:700px) {
  body #welcome-screen .save-slot-list button { --woodland-control-min-height: 116px; }
}
body :is(button,summary)[data-woodland-control]:is(.primary,#first-wave-next,#confirm-loadout,[aria-pressed="true"],[aria-selected="true"],[aria-current="page"]) {
  --woodland-game-frame: var(--woodland-honey-frame);
  --woodland-game-color: var(--woodland-ink);
  text-shadow: none;
}
/* Mouse focus is bookkeeping, not a selection. Flat controls use native hover;
   curved controls follow the visible hit target supplied by the screen bend. */
body :is(button,summary)[data-woodland-control] {
  translate: none !important;
  filter: drop-shadow(0 3px 2px var(--woodland-shadow)) !important;
}
body :is(button,summary)[data-woodland-control]:is(
  :hover:not(.crt-ui-bent *):not(.keyboard-navigation *),
  .crt-ui-hover:not(.keyboard-navigation *),
  .keyboard-navigation :focus-visible
):not(:disabled):not([aria-disabled="true"]) {
  --woodland-game-frame: var(--woodland-honey-frame);
  --woodland-game-color: var(--woodland-ink);
  text-shadow: none;
  filter: brightness(1.12) drop-shadow(0 3px 2px var(--woodland-shadow)) !important;
}
body :is(button,summary)[data-woodland-control]:active:not(:disabled):not([aria-disabled="true"]) {
  filter: brightness(.94) drop-shadow(0 1px 1px var(--woodland-shadow)) !important;
}
body :is(button,summary)[data-woodland-control]:is(:disabled,[aria-disabled="true"]) {
  opacity: .45 !important;
  filter: saturate(.35) !important;
}
/* Small leaves sit on the carved rim, leaving dense controls and hit areas fixed.
   Save slots reserve their own pseudo-elements for the saved selection mark. */
body :is(button,summary)[data-woodland-control]:not([data-woodland-close]):not(.save-slot-list button)::before,
body :is(button,summary)[data-woodland-control]:not([data-woodland-close]):not(.save-slot-list button)::after {
  content: ""; display: block; position: absolute; top: 50%;
  width: var(--woodland-pointer-size, 12px); height: var(--woodland-pointer-size, 12px);
  margin-top: calc(var(--woodland-pointer-size, 12px) / -2);
  background: url("gold-oak-pointer.svg") center/contain no-repeat;
  clip-path: none; opacity: 0; visibility: hidden; pointer-events: none;
  filter: drop-shadow(0 2px 2px #09180caa); animation: none;
  transition: opacity 140ms ease;
}
body :is(button,summary)[data-woodland-control]:not([data-woodland-close]):not(.save-slot-list button)::before { left: var(--woodland-pointer-offset, -2px); transform: none; }
body :is(button,summary)[data-woodland-control]:not([data-woodland-close]):not(.save-slot-list button)::after { right: var(--woodland-pointer-offset, -2px); transform: scaleX(-1); }
body :is(button,summary)[data-woodland-control]:not([data-woodland-close]):not(.save-slot-list button):is(
  :hover:not(.crt-ui-bent *):not(.keyboard-navigation *),
  .crt-ui-hover:not(.keyboard-navigation *),
  .keyboard-navigation :focus-visible
):not(:disabled):not([aria-disabled="true"])::before,
body :is(button,summary)[data-woodland-control]:not([data-woodland-close]):not(.save-slot-list button):is(
  :hover:not(.crt-ui-bent *):not(.keyboard-navigation *),
  .crt-ui-hover:not(.keyboard-navigation *),
  .keyboard-navigation :focus-visible
):not(:disabled):not([aria-disabled="true"])::after { opacity: 1; visibility: visible; }
body :is(.result-actions,.pause-guide-links) button[data-woodland-control] {
  --woodland-pointer-size: 28px; --woodland-pointer-offset: -36px;
  position: relative; overflow: visible;
}
@media(max-width:420px) {
  body .result-actions button[data-woodland-control] {
    --woodland-pointer-size: 24px; --woodland-pointer-offset: -28px;
  }
}
/* Clicking or restoring focus never leaves a browser rectangle on game pieces. */
body:not(.keyboard-navigation) :is(button,summary,[tabindex]):focus {
  outline: none !important;
}
body [data-woodland-panel] {
  border: 6px solid transparent !important;
  border-image: var(--woodland-panel-frame, var(--woodland-bark-frame)) 18 fill / var(--woodland-panel-edge, 22px) / 1px stretch !important;
  border-radius: 0 !important;
  background: none !important;
  box-shadow: none !important;
}
body :is(.pg-chart,.pg-player-card,.pg-summary > div,.inventory-stats,.trade-invite-popover,.trade-toast,.online-notice,.stash-emerald-counter) {
  --woodland-panel-edge: 13px;
}
body :is(.woodland-panel,.overlay-inner,.fortune-dialog,.trade-dialog) { --woodland-panel-edge: 28px; }
body :is(dialog,.overlay-inner,#inventory-panel) h2 {
  font-family: var(--woodland-font);
  font-weight: 400;
  text-transform: none;
  letter-spacing: 0;
}
body :is(.hud-pill,.hud-phase,.run-clock,.wave-forecast,.dev-menu-nav,.dev-category-nav,.pg-tabs) {
  --woodland-action-size: 9px;
}
body :is(.hud-pill,.run-clock,.wave-forecast) { font-family: var(--woodland-ui-font); font-size: 9px; }
body .welcome-screen:is([data-menu="home"],[data-menu="mode"]) .welcome-options button {
  --woodland-action-font: var(--woodland-font);
  --woodland-action-size: 26px;
  --woodland-action-leading: 1.2;
}
body :is(.pause-menu #resume,.pause-guide-links button) {
  --woodland-action-font: var(--woodland-font);
  --woodland-action-size: 24px;
  --woodland-action-leading: 1.2;
}
@media(max-width:520px) {
  body [data-woodland-panel] { border-image-width: min(var(--woodland-panel-edge, 22px), 20px) !important; }
  body :is(.fortune-dialog,.trade-dialog,#first-wave) header { flex-wrap: wrap; gap: 10px; }
}
@media(prefers-reduced-motion:reduce) {
  body :is(button,summary)[data-woodland-control],
  body :is(button,summary)[data-woodland-control]::before,
  body :is(button,summary)[data-woodland-control]::after { transition: none !important; }
}
@media(forced-colors:active) {
  body :is(button,summary)[data-woodland-control], body [data-woodland-panel] {
    border-image: none !important;
    border: 2px solid ButtonText !important;
    background: Canvas !important;
    color: CanvasText !important;
    filter: none !important;
  }
  body :is(button,summary)[data-woodland-control]:focus-visible {
    outline: 2px solid Highlight !important;
    outline-offset: 3px;
    filter: none !important;
  }
}

.woodland-panel-moss { --woodland-panel-frame: var(--woodland-moss-frame); }
.woodland-panel-honey { --woodland-panel-frame: var(--woodland-honey-frame); }

/* Dense information needs space inside the carved rim with the pixel face. */
body #first-wave-lines p { font-size: 12px; line-height: 1.8; }
body #first-wave .first-wave-copy > small, body #first-wave footer + p { font-size: 9px; line-height: 1.7; }
body #inventory-stats button[data-woodland-control] { --woodland-action-edge: 10px; padding: 10px 8px !important; }
body #inventory-stats button[data-woodland-control] span { line-height: 1.5; }

body :is(input[type="text"],input[type="number"],input:not([type]),select,textarea) {
  font-family: var(--woodland-ui-font); font-size: 10px; line-height: 1.7;
  border: 1px solid #a68a56; border-image: none; border-radius: 3px;
  background: #15271e; color: var(--woodland-cream);
  box-shadow: inset 0 2px 4px #070f0c88, 0 1px #d8ba7440;
}
body :is(input[type="text"],input[type="number"],input:not([type]),select,textarea):focus-visible {
  outline: none; border-color: var(--woodland-focus); box-shadow: 0 0 7px #e3bc7170;
}
body #inventory-panel .inventory-stat-label { min-width: 0; max-width: 100%; overflow-wrap: anywhere; }
@media(max-width:520px) {
  body #inventory-panel .inventory-stats-grid { grid-template-columns: minmax(0,1fr); }
  body #inventory-stats button[data-woodland-control] { min-height: 42px; padding: 9px 8px !important; flex-direction: row; align-items: center; justify-content: space-between; gap: 6px; }
  body #inventory-panel .inventory-stat-label { flex: 1; font-size: 7px; }
  body #inventory-panel .inventory-stat-value { flex: none; margin: 0; font-size: 10px; }
}

/* Save files keep a fixed footprint within the shared woodland frames. */
.welcome-screen #welcome-save-slots .save-slot-list button{height:76px;min-height:0;padding:12px 14px;overflow:hidden}
.welcome-screen #welcome-save-slots .save-slot-list button[data-state="empty"]{
 --woodland-action-frame:var(--woodland-moss-frame);--woodland-action-color:#c5d4ae;
 border:3px solid transparent;border-image:var(--woodland-moss-frame) 18 fill / 15px / 2px stretch;background:none;color:#c5d4ae;
}
.welcome-screen #welcome-save-slots .save-slot-list button[data-state="empty"][aria-pressed="true"]{color:#f7e2a5;filter:drop-shadow(0 0 3px #e3bc7190)}
.welcome-screen #welcome-save-slots .save-preview{height:164px;min-height:0;grid-template-rows:32px 52px 18px;padding:18px 20px}
.welcome-screen #save-slot-go{height:48px;min-height:0;padding:10px 18px}
.welcome-screen #welcome-save-slots #save-slot-go[data-action="load"]{--woodland-action-frame:var(--woodland-bark-frame);--woodland-action-color:var(--woodland-cream)}
.welcome-screen #welcome-save-slots #save-slot-go[data-action="new"]{--woodland-action-frame:var(--woodland-honey-frame);--woodland-action-color:var(--woodland-ink);border:3px solid transparent;border-image:var(--woodland-honey-frame) 18 fill / 18px / 2px stretch;background:none;color:var(--woodland-ink);box-shadow:none}
.welcome-screen #save-slot-delete{height:34px;min-height:0;padding:4px 8px;--woodland-action-edge:10px;--woodland-action-color:#e6b9a6;font-size:10px}
.welcome-screen #delete-save-confirm #delete-save-hold{border:2px solid #b57e65;border-image:none;background:#492d27;color:#ffe8cb;padding:12px 8px}
.welcome-screen #delete-save-confirm #delete-save-hold:hover{background:#492d27;border-color:#d49a75}
@media(max-height:680px){
 .welcome-screen #welcome-save-slots .save-slot-list button{height:60px;padding:8px 12px}
 .welcome-screen #welcome-save-slots .save-preview{height:142px;grid-template-rows:28px 44px 16px;padding:14px 18px}
}

/* Native hover applies only to flat menus; curved menus use the visible hit.
   Restored focus stays quiet until the player navigates with the keyboard. */
body #welcome-screen #welcome-options button{
 --woodland-game-frame:var(--woodland-bark-frame);
 --woodland-game-color:var(--woodland-cream);
 text-shadow:0 1px 1px #07180d66;
 animation:none;outline:none!important;
 filter:drop-shadow(0 3px 2px var(--woodland-shadow))!important;
}
body #welcome-screen #welcome-options button:is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled){
 --woodland-game-frame:var(--woodland-honey-frame);
 --woodland-game-color:var(--woodland-ink);
 text-shadow:none;
}

/* Gilded oak leaves point inward without moving the button or its hit area. */
body #welcome-screen #welcome-options button{position:relative;overflow:visible}
body #welcome-screen #welcome-options button::before,
body #welcome-screen #welcome-options button::after{
 content:"";position:absolute;top:50%;width:32px;height:32px;margin-top:-16px;
 background:url("gold-oak-pointer.svg") center/contain no-repeat;
 opacity:0;visibility:hidden;pointer-events:none;filter:drop-shadow(0 2px 2px #09180caa);
 transition:opacity 140ms ease;
}
body #welcome-screen #welcome-options button::before{left:-49px}
body #welcome-screen #welcome-options button::after{right:-49px;transform:scaleX(-1)}
body #welcome-screen #welcome-options button:is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled)::before,
body #welcome-screen #welcome-options button:is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled)::after{opacity:1;visibility:visible}
body #welcome-screen #welcome-options button:is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled)::before{animation:oak-point-left 1.7s ease-in-out infinite alternate}
body #welcome-screen #welcome-options button:is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled)::after{animation:oak-point-right 1.7s ease-in-out infinite alternate}
@keyframes oak-point-left{from{transform:translateX(0)}to{transform:translateX(5px)}}
@keyframes oak-point-right{from{transform:translateX(0) scaleX(-1)}to{transform:translateX(-5px) scaleX(-1)}}
@media(max-width:420px){
 body #welcome-screen #welcome-options button::before,body #welcome-screen #welcome-options button::after{width:24px;height:28px;margin-top:-14px}
 body #welcome-screen #welcome-options button::before{left:-33px}
 body #welcome-screen #welcome-options button::after{right:-33px}
}
@media(prefers-reduced-motion:reduce){
 body #welcome-screen #welcome-options button::before,body #welcome-screen #welcome-options button::after{animation:none!important;transition:none}
}
@media(max-width:420px){body #welcome-screen[data-menu="home"] .welcome-menu{max-width:calc(100% - 88px)}}


/* The plaque and its leaves breathe with one warm light. */
@property --title-oak-glow{syntax:"<number>";inherits:true;initial-value:0}
body #welcome-screen #welcome-options button:is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled){
 animation:title-oak-glow 2.4s ease-in-out infinite;
 filter:brightness(calc(1.04 + var(--title-oak-glow)*.10)) drop-shadow(0 0 calc(3px + var(--title-oak-glow)*7px) rgb(245 198 86 / calc(.22 + var(--title-oak-glow)*.3))) drop-shadow(0 3px 2px var(--woodland-shadow))!important;
}
body #welcome-screen #welcome-options button::before,
body #welcome-screen #welcome-options button::after{
 filter:brightness(calc(1.02 + var(--title-oak-glow)*.16)) drop-shadow(0 0 calc(2px + var(--title-oak-glow)*5px) rgb(255 214 111 / calc(.3 + var(--title-oak-glow)*.4))) drop-shadow(0 2px 2px #09180caa);
}
@keyframes title-oak-glow{0%,100%{--title-oak-glow:0}50%{--title-oak-glow:1}}
@media(prefers-reduced-motion:reduce){
 body #welcome-screen #welcome-options button{animation:none!important}
}

/* Title menus share one type scale, column and quiet selection treatment. */
body #welcome-screen .welcome-menu,
body #welcome-screen:is([data-menu="host"],[data-menu="join"]) .welcome-menu{
 width:min(360px,calc(100% - 80px));max-width:none;
}
body #welcome-screen .welcome-menu :is(.welcome-options button,#welcome-menu-back,#save-slot-go,#online-host,#online-join),
body #title-options button{
 --woodland-action-font:var(--woodland-font);--woodland-action-size:26px;--woodland-action-leading:1.2;
 --woodland-game-frame:var(--woodland-bark-frame);--woodland-game-color:var(--woodland-cream);
 box-sizing:border-box;height:52px;min-height:52px;padding:10px 18px;flex:0 0 auto;
}
body #welcome-screen .welcome-menu :is(.welcome-options button,#welcome-menu-back,#save-slot-go,#online-host,#online-join):is(.welcome-inner:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled),
body #title-options button:is(#title-options:not(.crt-ui-bent) button:hover:not(.keyboard-navigation button),.crt-ui-bent button.crt-ui-hover:not(.keyboard-navigation button),.keyboard-navigation button:focus-visible):not(:disabled){
 --woodland-game-frame:var(--woodland-honey-frame);--woodland-game-color:var(--woodland-ink);
}
body #welcome-screen .welcome-options{gap:12px}
body #welcome-screen:is([data-menu="solo"],[data-menu="online"]) .welcome-options{min-height:216px}
body #welcome-screen #welcome-menu-back{width:100%;margin:12px 0 0}
body #welcome-screen:not([data-menu="home"]) .welcome-kicker{visibility:hidden}
body #welcome-screen #welcome-form-title{font:400 30px/1.2 var(--woodland-font);min-height:36px;height:auto;margin:0 0 16px}
body #welcome-screen .welcome-name label,
body #welcome-screen .welcome-join label{font:400 16px/1.4 Georgia,serif;color:var(--woodland-cream)}
body #welcome-screen :is(#player-name,#online-code){font:400 18px/1.4 Georgia,serif;padding:10px 12px;text-align:center}
body #welcome-screen .welcome-host{margin:12px 0 0;width:100%}
body #welcome-screen .welcome-join{display:flex;flex-direction:column;gap:10px;margin:12px 0 0;width:100%}
body #welcome-screen #online-code{width:100%}
body #welcome-screen[data-menu="slots"] .welcome-menu{overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;padding:0 6px 6px}
body #welcome-screen #welcome-save-slots .save-slot-list{grid-template-columns:1fr;grid-auto-rows:48px;gap:8px}
body #welcome-screen #welcome-save-slots .save-slot-list button,
body #welcome-screen .saved-friends button{
 --woodland-action-font:var(--woodland-font);--woodland-action-size:23px;--woodland-action-leading:1.2;
 height:48px;min-height:48px;padding:9px 18px;width:100%;display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;
}
body #welcome-screen .saved-friends{display:grid;gap:8px;margin:8px 0 0;max-height:160px;overflow-y:auto;scrollbar-width:thin}
body #welcome-screen #welcome-save-slots .save-preview{
 height:94px;min-height:0;grid-template-rows:26px 20px 16px;gap:4px;margin:12px 0;padding:10px 14px;
}
body #welcome-screen #welcome-save-slots .save-preview strong{font:400 24px/26px var(--woodland-font)}
body #welcome-screen #welcome-save-slots .save-preview p{font:400 10px/20px var(--woodland-ui-font);display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
body #welcome-screen #welcome-save-slots .save-preview small{font:400 8px/16px var(--woodland-ui-font)}
body #welcome-screen #save-slot-delete{
 --woodland-action-font:var(--woodland-font);--woodland-action-size:22px;--woodland-action-leading:1.2;
 --woodland-game-frame:var(--woodland-bark-frame);--woodland-game-color:#e6b9a6;
}
/* Options categories use the title list; sliders live on their own single panel. */
body #title-options{width:min(360px,calc(100vw - 48px));max-height:calc(100dvh - 48px);overflow-y:auto;scrollbar-width:thin}
body:has(#title-options[open]) #welcome-screen .welcome-menu{visibility:hidden}
body #title-options::backdrop{background:#06180c33;backdrop-filter:none}
body #title-options .overlay-inner{width:100%;max-width:none;box-sizing:border-box;padding:20px;text-align:center}
body #title-options .options-menu{border:0!important;border-image:none!important;background:none!important;box-shadow:none!important;padding:0 4px}
body #title-options .options-menu .pause-guide-links{width:100%;max-width:none;display:flex;flex-direction:column;gap:12px;margin:16px 0 0}
body #title-options h2{font:400 30px/1.2 var(--woodland-font);margin:0 0 16px}
body #title-options .sound-menu-controls{padding:0;border:0!important;border-image:none!important;background:none!important;box-shadow:none!important;margin:0}
body #title-options :is(label,output,.sound-menu-note,#visual-save,.mixer-save){font:400 15px/1.4 Georgia,serif}
body #title-options :is(.visual-sliders,.audio-mixer){display:grid;grid-template-columns:1fr;gap:12px;margin-top:16px}
body #title-options :is(.visual-slider,.mixer-row){font:400 15px/1.4 Georgia,serif;margin:0}
body #title-options .checkbox{display:flex;justify-content:center;gap:8px;align-items:center;margin:0 0 16px}
body #title-options .mixer-actions{display:grid;grid-template-columns:1fr;gap:8px}
body #title-options button{--woodland-action-size:23px;width:100%}
/* This scrollable menu keeps its leaves inside the plaque to avoid clipping. */
body #title-options button[data-woodland-control]{--woodland-pointer-size:24px;--woodland-pointer-offset:12px}
body #title-options :is(#visual-save,.mixer-save,.sound-menu-note):empty{display:none}
body #title-options .pause-guide-links{width:100%;max-width:none;margin:16px 0 0}
@media(max-height:700px){
 body #welcome-screen .welcome-menu :is(.welcome-options button,#welcome-menu-back,#save-slot-go,#online-host,#online-join){height:46px;min-height:46px;--woodland-action-size:23px}
 body #welcome-screen:is([data-menu="solo"],[data-menu="online"]) .welcome-options{min-height:188px}
}
body #title-options .options-menu button{--woodland-action-size:26px}
body:has(#title-options[open]) #welcome-screen .welcome-kicker{visibility:hidden}
body #title-options :is(.visual-menu,.sound-menu) .pause-guide-links{position:sticky;bottom:0;z-index:2;padding-top:8px}
body #welcome-screen:is([data-menu="solo"],[data-menu="online"]) .welcome-options{min-height:180px;justify-content:flex-start}
@media(max-height:700px){body #welcome-screen:is([data-menu="solo"],[data-menu="online"]) .welcome-options{min-height:162px}}
/* The sound shortcut belongs to Home; file actions need the whole lower stage. */
body #welcome-screen:not([data-menu="home"]) #welcome-audio,
body:has(#title-options[open]) #welcome-screen #welcome-audio{display:none}

/* Save choices carry their own identity; selection and the next action stay together. */
body #welcome-screen[data-menu="slots"] .welcome-menu{width:min(420px,calc(100% - 48px))}
body #welcome-screen[data-menu="slots"] #welcome-form-title{height:auto;min-height:36px;margin:0 0 10px;font-size:32px;line-height:1.2}
body #welcome-screen #save-slot-prompt{margin:0 12px 18px;font:400 10px/1.7 var(--woodland-ui-font);color:var(--woodland-cream);text-shadow:0 2px 3px #09170d}
body #welcome-screen #welcome-save-slots .save-slot-list{grid-auto-rows:auto;gap:12px;margin-bottom:18px}
body #welcome-screen #welcome-save-slots .save-slot-list button{
 position:relative;display:grid;grid-template-columns:minmax(0,1fr);gap:5px;height:auto;min-height:132px;padding:17px 24px;text-align:left;white-space:normal;
 --woodland-action-font:var(--woodland-font);--woodland-action-size:24px;--woodland-action-leading:1.2;
}
body #welcome-screen .save-slot-list button > *{display:block;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:inherit}
body #welcome-screen .save-slot-list .save-card-label{font:400 9px/18px var(--woodland-ui-font);letter-spacing:.06em}
body #welcome-screen .save-slot-list strong{font:400 24px/26px var(--woodland-font);padding-right:24px}
body #welcome-screen .save-slot-list .save-card-progress{font:400 9px/20px var(--woodland-ui-font)}
body #welcome-screen .save-slot-list small{font:400 8px/18px var(--woodland-ui-font)}
body #welcome-screen .save-slot-list button[aria-pressed="true"]::after{content:"✓";position:absolute;right:22px;top:18px;font:400 18px/20px var(--woodland-font)}
body #welcome-screen[data-menu="slots"] #save-slot-go{--woodland-action-font:var(--woodland-font);--woodland-action-size:26px}

/* Workshop uses one compact text scale and one heading treatment on every page. */
#dev-drawer {
  --workshop-text-size: 10px;
  font: 400 var(--workshop-text-size)/1.45 var(--font-ui);
}
#dev-drawer :is(.dev-editor-menu,.dev-controls,.dev-page,.lab-section,.controls,.dev-context,.journal) {
  font-size: var(--workshop-text-size);
}
#dev-drawer :is(h2,h3,p,li,small,label,a,select,input,summary,span,output,kbd) {
  font-family: var(--font-ui);
  font-size: var(--workshop-text-size);
  line-height: 1.45;
  font-weight: 400;
  letter-spacing: 0;
}
#dev-drawer :is(button,summary)[data-woodland-control],
#dev-drawer button {
  --woodland-action-size: var(--workshop-text-size);
  --woodland-action-leading: 1.45;
  font-family: var(--font-ui) !important;
  font-size: var(--workshop-text-size) !important;
  line-height: 1.45 !important;
  font-weight: 400;
  letter-spacing: 0;
}
#dev-drawer :is(h2,h3) {
  margin-top: 0;
  font-size: var(--workshop-text-size);
  color: var(--gold);
  text-transform: uppercase;
  letter-spacing: .06em;
}
#dev-drawer .lab-section h3 { font-size: var(--workshop-text-size); }
body #welcome-screen #save-slot-delete{margin-top:8px}
body #welcome-screen #welcome-save-slots [hidden]{display:none!important}
@media(max-height:700px){
 body #welcome-screen #welcome-save-slots .save-slot-list button{min-height:116px;padding:12px 20px;gap:3px}
 body #welcome-screen #save-slot-prompt{margin-bottom:12px}
}

body #welcome-screen #new-game-confirm{padding:24px;background:#18271ff5;border:1px solid #c2a15b;border-radius:4px}
body #welcome-screen #new-game-question{margin:0 0 12px;font:400 30px/1.2 var(--woodland-font);overflow-wrap:anywhere;color:var(--woodland-cream)}
body #welcome-screen #new-game-warning{font:400 10px/1.7 var(--woodland-ui-font);margin:0 0 18px}
body #welcome-screen #new-game-confirm button{--woodland-action-font:var(--woodland-font);--woodland-action-size:26px;--woodland-action-leading:1.2;min-height:46px}
body #welcome-screen #delete-save-confirm p{font:400 10px/1.7 var(--woodland-ui-font)}
body #welcome-screen #delete-save-confirm button{--woodland-action-font:var(--woodland-font);--woodland-action-size:26px;--woodland-action-leading:1.2}
body #welcome-screen .welcome-menu:has(#new-game-confirm:not([hidden])) > :not(#new-game-confirm){visibility:hidden}

/* Challenger offers: a woodland encounter, with the party gathered beneath it. */
body #overlay.challenger-overlay:not([hidden]){align-items:center;padding:24px 24px 54px;background:radial-gradient(ellipse at 50% 40%,#0d1c1433,#07130fc2);}
body #overlay .challenger-encounter{width:min(720px,100%);max-height:calc(100dvh - 78px);padding:28px 38px 30px;border:8px solid transparent;border-image:var(--woodland-bark-frame) 18 fill / 28px / 4px stretch;border-radius:0;background:none;box-shadow:none;filter:drop-shadow(0 20px 28px #05100bd9);color:var(--woodland-cream);scrollbar-width:thin;scrollbar-color:#9a885b #23291e;}
body #overlay .challenger-encounter .eyebrow{font:400 11px/1.6 var(--woodland-ui-font);letter-spacing:.12em;color:var(--woodland-amber);margin:0 0 9px;}
body #overlay .challenger-encounter h2{font:400 clamp(32px,4vw,46px)/1.15 var(--woodland-font);color:var(--woodland-cream);margin:0;}
body #overlay .challenger-encounter p{font:400 10px/1.8 var(--woodland-ui-font);}
body #overlay .challenger-encounter .encounter-lineup{position:relative;isolation:isolate;gap:14px;align-items:end;margin:0 0 10px;padding:6px 14px 14px;}
body #overlay .encounter-lineup::before{content:"";position:absolute;z-index:-1;inset:12% 0 0;background:radial-gradient(ellipse at 50% 75%,#b4a1652e,transparent 67%);border-bottom:1px solid #b79c5855;}
body #overlay .encounter-specimen:first-child{order:1;flex:1.6;}
body #overlay .encounter-specimen:nth-child(2){order:0;}
body #overlay .encounter-specimen:nth-child(n+3){order:2;}
body #overlay .encounter-specimen img{height:112px;max-width:138px;filter:drop-shadow(0 7px 4px #050e0c88);}
body #overlay .encounter-specimen:first-child img{height:190px;max-width:230px;}
body #overlay .encounter-specimen figcaption{font:400 9px/1.65 var(--woodland-ui-font);color:#c5c8a3;}
body #overlay .challenger-encounter .encounter-reward{color:#e4d5a3;margin:12px 0 5px;}
body #overlay .challenger-encounter .encounter-stakes{color:#c6b599;font-size:9px;line-height:1.8;margin:0 0 10px;}
body #overlay .stake-party{gap:16px;margin:14px 0 4px;flex-wrap:nowrap;}
body #overlay .stake-player{position:relative;flex:0 1 128px;min-width:0;padding:0 4px 7px;border:0;border-radius:0;background:none;gap:4px;overflow-wrap:anywhere;}
body #overlay .stake-player::after{content:"";height:2px;width:24px;background:#6d7559;box-shadow:0 2px #0b1c14;}
body #overlay .stake-player.is-staking::after{background:#e4c776;box-shadow:0 0 9px #dab96188;}
body #overlay .stake-player>img,body #overlay .stake-player>.pg-portrait{width:64px;height:62px;object-fit:contain;background:none;border:0;border-radius:0;filter:drop-shadow(0 4px 3px #07140b88);}
body #overlay .stake-player strong{font:400 22px/1.1 var(--woodland-font);color:#eee0bb;}
body #overlay .stake-player span{font:400 8px/1.65 var(--woodland-ui-font);color:#b6bea0;}
body #overlay .stake-player.is-staking span{color:#e9ce82;}
body #overlay .challenger-encounter .stake-waiting{color:#d9c991;font-size:9px;margin:4px 0 10px;}
body #overlay .challenger-encounter .stake-rule{font-size:8px;line-height:1.9;color:#b4baa1;margin:8px auto;max-width:430px;}
body #overlay .challenger-encounter .challenge-actions{gap:16px;margin:16px 0 0;}
body #overlay .challenger-encounter button{--woodland-action-font:var(--woodland-font);--woodland-action-size:25px;--woodland-action-leading:1.15;font-family:var(--woodland-font);font-size:25px;min-height:50px;padding:12px 18px;}
body #overlay .challenger-encounter .challenge-actions button{background:none;border-radius:0;outline:none;}
body #overlay .challenger-encounter button:focus-visible{outline:2px solid var(--woodland-focus)!important;outline-offset:4px;}
body #overlay .challenger-encounter button[aria-pressed=true]{border-image-source:var(--woodland-honey-frame);color:var(--woodland-ink);}
body #overlay .challenge-duel{padding-top:12px;}
body #overlay .challenge-duel h3{font:400 30px/1.2 var(--woodland-font);margin:10px 0;color:var(--woodland-amber);}
body #overlay .duel-contenders{gap:32px;margin:16px 0;}
body #overlay .duel-contender strong{font:400 24px/1.2 var(--woodland-font);}
body #overlay .duel-contender small,body #overlay .duel-contender>span:last-child{font:400 9px/1.6 var(--woodland-ui-font);}
body #overlay .duel-hand{width:88px;height:88px;border:5px solid transparent;border-image:var(--woodland-moss-frame) 18 fill / 16px / 1px stretch;border-radius:0;background:none;}
body #overlay .duel-token{width:56px;height:56px;display:block;margin:auto;filter:drop-shadow(0 3px 2px #0b1b1699);}
body #overlay .duel-versus{font:400 25px var(--woodland-font);}
body #overlay .duel-throws{gap:14px;}
body #overlay .duel-throws button{min-width:100px;}
@media(max-width:560px){
 body #overlay.challenger-overlay:not([hidden]){padding:16px 12px 30px;}
 body #overlay .challenger-encounter{padding:22px 18px;max-height:calc(100dvh - 46px);border-image-width:22px;}
 body #overlay .challenger-encounter .eyebrow{font-size:9px;}
 body #overlay .challenger-encounter p{font-size:9px;}
 body #overlay .encounter-specimen img{height:80px;}
 body #overlay .encounter-specimen:first-child img{height:142px;}
 body #overlay .encounter-specimen figcaption{font-size:7px;}
 body #overlay .challenger-encounter .encounter-lineup{padding-inline:0;gap:6px;}
 body #overlay .stake-party{gap:4px;flex-wrap:wrap;}
 body #overlay .stake-player{flex-basis:calc(50% - 8px);}
 body #overlay .stake-player>img,body #overlay .stake-player>.pg-portrait{height:48px;width:54px;}
 body #overlay .challenger-encounter button{--woodland-action-size:21px;font-size:21px;padding:10px 12px;}
 body #overlay .challenger-encounter .challenge-actions{gap:10px;}
 body #overlay .duel-throws{gap:8px;}
 body #overlay .duel-throws button{min-width:0;flex:1;}
 body #overlay .duel-token{width:46px;height:46px;}
}
@media(max-height:650px) and (min-width:561px){
 body #overlay.challenger-overlay:not([hidden]){padding:16px 20px;}
 body #overlay .challenger-encounter{max-height:calc(100dvh - 32px);padding:22px 30px;}
 body #overlay .encounter-specimen:first-child img{height:120px;}
 body #overlay .encounter-specimen img{height:76px;}
 body #overlay .stake-player>img,body #overlay .stake-player>.pg-portrait{height:40px;}
}

body #overlay .challenger-encounter button .stake-amount{font:400 12px/1.5 var(--woodland-ui-font);display:inline-block;vertical-align:middle;white-space:nowrap;}

/* Put the actual wager and payout on the table; reveal the tiebreaker only when needed. */
body #overlay .challenge-terms{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:6px auto 12px;max-width:520px;}
body #overlay .challenge-terms section{min-width:0;}
body #overlay .challenge-terms section+section{border-left:1px solid #b79c5844;}
body #overlay .challenge-terms h3{font:400 25px/1.1 var(--woodland-font);color:#e4d5a3;margin:0 0 3px;}
body #overlay .challenge-prize{display:flex;align-items:center;justify-content:center;gap:10px;min-height:48px;}
body #overlay .stake-amount{display:inline-flex!important;align-items:center;gap:4px;font:400 12px/1.5 var(--woodland-ui-font);vertical-align:middle;white-space:nowrap;}
body #overlay .stake-emerald{display:block;width:28px;height:28px;flex:none;filter:drop-shadow(0 0 3px #6ade9266);}
body #overlay .challenge-prize .stake-amount{font-size:18px;color:#d3edb8;}
body #overlay .challenge-prize .stake-emerald{width:42px;height:42px;}
body #overlay .challenge-prize .prize-name,body #overlay .challenge-terms small{font:400 8px/1.9 var(--woodland-ui-font);color:#c6c7ac;}
body #overlay .challenge-terms small{display:block;}
body #overlay .stake-charm{display:inline-flex;align-items:center;gap:5px;font:400 18px/1.5 var(--woodland-ui-font);color:#ede1b8;}
body #overlay .stake-charm svg{display:block;width:40px;height:45px;filter:drop-shadow(0 3px 2px #081b1599);}
body #overlay .prize-plus{font:400 12px var(--woodland-ui-font);color:#c8bf9c;}
body #overlay .stake-player .stake-amount{font-size:8px;gap:1px;}
body #overlay .stake-player .stake-emerald{width:17px;height:17px;}
body #overlay .challenger-encounter .encounter-stakes{color:#e1bd9b;max-width:510px;margin:4px auto 12px;}
@media(max-width:560px){body #overlay .challenge-terms{gap:12px;}body #overlay .challenge-terms h3{font-size:23px;}body #overlay .challenge-prize{gap:5px;}body #overlay .challenge-prize .stake-amount,body #overlay .stake-charm{font-size:14px;}body #overlay .challenge-prize .stake-emerald{width:32px;height:36px;}body #overlay .challenge-prize .prize-name{font-size:7px;}body #overlay .challenge-terms small{font-size:7px;}body #overlay .stake-charm svg{width:32px;height:38px;}}

body #overlay .challenge-wager .challenge-prize .stake-amount,
body #overlay .challenge-wager .stake-charm{color:#edab8c;}
body #overlay .challenge-wager .challenge-prize{gap:14px;}
@media(max-width:560px){body #overlay .challenge-wager .challenge-prize{gap:7px;}body #overlay .challenge-wager .stake-charm,body #overlay .challenge-wager .challenge-prize .stake-amount{font-size:12px;}}
body #overlay .challenger-encounter .stake-cover{--woodland-action-font:var(--woodland-ui-font);--woodland-action-size:9px;--woodland-action-leading:1.5;--woodland-action-edge:10px;font:400 9px/1.5 var(--woodland-ui-font);min-height:34px;height:34px;padding:7px 9px;margin:0;white-space:nowrap;}
body #overlay .stake-player .stake-cover-choice{font:400 8px/1.7 var(--woodland-ui-font);color:#e6d19a;}
body #overlay .stake-player .stake-cover .stake-amount{font-size:9px;}
body #overlay .challenger-encounter:has(.stake-cover) .encounter-specimen:first-child img{height:145px;}
body #overlay .challenger-encounter:has(.stake-cover) .stake-player>img{height:50px;}

/* Shared rows keep every keeper's portrait, funding, action and choice aligned. */
body #overlay .stake-party{display:grid;grid-template-columns:repeat(var(--stake-count,2),minmax(0,128px));grid-template-rows:56px auto minmax(32px,auto) 38px auto 2px;column-gap:16px;row-gap:4px;}
body #overlay .stake-player{display:grid;grid-template-rows:subgrid;grid-row:span 6;align-items:center;align-content:start;padding:0 4px;gap:4px;}
body #overlay .stake-player>img,body #overlay .stake-player>.pg-portrait,body #overlay .challenger-encounter:has(.stake-cover) .stake-player>img{height:50px;}
body #overlay .stake-player strong{align-self:start;}
body #overlay .stake-cover-slot{display:flex;align-items:center;justify-content:center;width:100%;min-height:38px;}
body #overlay .stake-player .stake-cover-choice{align-self:start;}
@media(max-width:560px){body #overlay .stake-party{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:8px;}body #overlay .stake-player{min-width:0;}body #overlay .stake-player>img,body #overlay .stake-player>.pg-portrait,body #overlay .challenger-encounter:has(.stake-cover) .stake-player>img{height:46px;}}

/* Dismiss icons keep their carved rim and hover tint, without oak pointers.
   One centered mark replaces both font glyphs and per-panel pseudo-element Xs. */
body :is(button[data-woodland-close], #dev-drawer button[data-woodland-close]) {
  --woodland-control-min-height: var(--woodland-control-compact);
  --woodland-control-min-width: var(--woodland-control-compact);
  display: grid;
  place-items: center;
  padding: 0 !important;
  font-size: 0 !important;
  line-height: 1 !important;
}
body button[data-woodland-close] > svg,
body button[data-woodland-close]::before { display: none !important; }
body button[data-woodland-close]::after {
  content: "";
  display: block;
  position: absolute;
  inset: 50% auto auto 50%;
  width: 20px;
  height: 20px;
  margin: 0;
  transform: translate(-50%, -50%);
  background: linear-gradient(45deg, transparent 46%, currentColor 47% 53%, transparent 54%),
              linear-gradient(-45deg, transparent 46%, currentColor 47% 53%, transparent 54%);
  opacity: 1;
  visibility: visible;
  pointer-events: none;
}
