/* PLAYFUL PRINT — Paper & Ink with bolder strokes and butter/mint spot colors. */
body[data-theme="playful-print"] {
  --felt:#eee5cf;--deep:#eee5cf;--panel:#fffdf7;--line:#1c1b18;
  --lime:#e8c558;--gold:#b8860b;--paper:#1c1b18;--ink:#1c1b18;--muted:#655f52;
  --pink:#a82c86;--value:#0e6e8c;--growth:#398c32;--meme:#c92776;
  --stage-shared:#fffdf7;--stage-shared-line:#1c1b18;--stage-shared-head:#f3eddd;
  --stage-personal:#e7f1e4;--stage-personal-line:#1c1b18;--stage-personal-head:#cfe3cb;--stage-plot:#f8fbf4;
  background:#eee5cf;color:#1c1b18;font-family:Body,Arial,sans-serif;min-height:100dvh;
}
body[data-theme="playful-print"] :is(h1,h2,h3,.brand) {font-family:Display,Body,sans-serif;color:#1c1b18}
body[data-theme="playful-print"] :is(.quiet,.panel-hint,.table-footer,.eyebrow,.field,.field small) {color:#655f52}
body[data-theme="playful-print"] a {color:#0e6e8c}
body[data-theme="playful-print"] .topbar {
  background:#fffdf7;border:2px solid #1c1b18;border-radius:11px 16px 10px 14px;
  box-shadow:3px 4px 0 #1c1b18;backdrop-filter:none;padding-block:16px;
}
body[data-theme="playful-print"] .brand {letter-spacing:-.035em}
body[data-theme="playful-print"] .brand > span {color:#1c1b18;text-decoration:underline;text-decoration-color:#e8c558;text-decoration-thickness:6px;text-underline-offset:2px}
body[data-theme="playful-print"] .online-name {color:#655f52;text-decoration:none;letter-spacing:.18em}
body[data-theme="playful-print"] :is(.primary,.secondary,.icon-button,.nav,.portfolio-switch button,.phase-advance) {
  color:#1c1b18;border:2px solid #1c1b18;background:#fffdf7;border-radius:7px 9px 6px 8px;
  box-shadow:2px 3px 0 #1c1b18;backdrop-filter:none;font-family:Body,Arial,sans-serif;
}
body[data-theme="playful-print"] :is(.primary,.phase-advance,#tutorial-next) {background:#e8c558;color:#1c1b18}
body[data-theme="playful-print"] :is(.primary,.secondary,.icon-button,.nav,.portfolio-switch button,.phase-advance):hover:not(:disabled) {
  color:#1c1b18;background:#f5dd8b;border-color:#1c1b18;box-shadow:1px 1px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.primary,.secondary,.icon-button,.nav,.phase-advance):active:not(:disabled) {transform:translate(1px,2px);box-shadow:none}
body[data-theme="playful-print"] button:focus-visible {outline:3px solid #1c1b18;outline-offset:3px}
body[data-theme="playful-print"] button:disabled {color:#655f52;background:#e4dfd1;opacity:.55;box-shadow:none}
body[data-theme="playful-print"] .icon-button svg {color:inherit}
body[data-theme="playful-print"] .topbar .icon-button {background:#fffdf7;color:#1c1b18;border:2px solid #1c1b18;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] :is(input,select,textarea) {background:#fffdf7;color:#1c1b18;border:2px solid #1c1b18;border-radius:6px;box-shadow:none}
body[data-theme="playful-print"] :is(.market-draft-board,#news-section) {
  background:#fffdf7;border:2px solid #1c1b18;border-radius:14px 18px 12px 16px;
  box-shadow:3px 4px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.player-board,#app>.floating-hand) {
  --plot-ink:#f8fbf4;background:#e7f1e4;border:2px solid #1c1b18;border-radius:18px 15px 18px 16px;
  box-shadow:3px 4px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.market-draft-board,#news-section,.player-board,#app>.floating-hand):not(.phase-lifted) {box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] .board-bubble::before {background:#1c1b18}
body[data-theme="playful-print"] :is(.market-draft-board,#news-section) .board-section-head {background:#f3eddd;border-bottom:2px solid #1c1b18}
body[data-theme="playful-print"] :is(.player-board,#app>.floating-hand) .board-section-head {background:#cfe3cb;border-bottom:2px solid #1c1b18}
body[data-theme="playful-print"] .board-section-head h2 {font-weight:700;letter-spacing:-.03em}
body[data-theme="playful-print"] :is(.section-info,.board-head-actions .quiet) {color:#4a4b3e}
body[data-theme="playful-print"] .section-info::before {border-color:#1c1b18}
body[data-theme="playful-print"] #market-cards.market-grid.market-stack {background:#fffdf7;box-shadow:none;border:1px solid #1c1b18;border-radius:5px}
body[data-theme="playful-print"] #market-cards.market-stack > .market-quote-row {
  color:#1c1b18;background:#fffdf7;border-bottom:1px solid #d9d2c0;border-left-width:4px;
}
body[data-theme="playful-print"] #market-cards.market-stack > .market-quote-row:nth-child(even) {background:#f5f1e6}
body[data-theme="playful-print"] #market-cards.market-stack > .market-quote-row:hover {background:#f5e9b7;box-shadow:none}
body[data-theme="playful-print"] #market-cards.market-stack .quote-icons {border-right:1px solid #1c1b18}
body[data-theme="playful-print"] #market-cards.market-stack :is(.quote-name,.quote-price,.quote-ticker) {color:#1c1b18}
body[data-theme="playful-print"] #market-cards.market-stack .quote-name {font-family:Body,Arial,sans-serif;font-weight:700}
body[data-theme="playful-print"] #market-cards.market-stack .quote-price {border-color:#b7ad94;color:#1c1b18}
body[data-theme="playful-print"] #market-cards.market-stack > .market-quote-row.unaffordable .quote-price {color:#8a8171}
body[data-theme="playful-print"] .quote-original-price {color:#7d7568}
body[data-theme="playful-print"] #market-cards.market-stack > .empty-market {color:#7d7568;background:#eee8d8;border-color:#d4ccb9}
body[data-theme="playful-print"] .compact-dd--rail {background:#fffdf7;border:1.5px solid #1c1b18;border-radius:6px 8px 5px 7px;box-shadow:0 2px 0 #1c1b18}
body[data-theme="playful-print"] :is(.dd-card:hover,.swap-choice-card:hover) .compact-dd--rail {border-color:#1c1b18;background:#f6e6ae}
body[data-theme="playful-print"] #app .dd-action-glow {outline:2px solid #b8860b;outline-offset:2px;box-shadow:2px 3px 0 #1c1b18;animation:none}
body[data-theme="playful-print"] :is(.draft-actions,.dd-phase-actions,.hand-tray) {color:#1c1b18}
body[data-theme="playful-print"] .portfolio-switch {background:#f8fbf4;border:1px solid #1c1b18;border-radius:7px;padding:2px}
body[data-theme="playful-print"] .portfolio-switch button {border:0;box-shadow:none;background:transparent;color:#655f52}
body[data-theme="playful-print"] .portfolio-switch button[aria-pressed="true"] {background:#e8c558;color:#1c1b18}
body[data-theme="playful-print"] .portfolio-balances {background:#e7f1e4;border-bottom:1px solid #78816d}
body[data-theme="playful-print"] .portfolio-balance > span:first-child {color:#4c5845}
body[data-theme="playful-print"] .portfolio-balance strong {color:#1c1b18}
body[data-theme="playful-print"] .net-worth-dot {background:#4fa83d;border-color:#fffdf7;box-shadow:0 0 0 1px #1c1b18;animation:none}
body[data-theme="playful-print"] :is(.portfolio-ladder-svg,.networth-candles-svg,.chart-scroll) {background:#f8fbf4;--plot-ink:#f8fbf4}
body[data-theme="playful-print"] .ladder-cell {fill:#f8fbf4;stroke:#a4b09c;stroke-opacity:.75}
body[data-theme="playful-print"] .ladder-rung[data-style="V"] .ladder-cell {fill:#eaf2f3}
body[data-theme="playful-print"] .ladder-rung[data-style="G"] .ladder-cell {fill:#e7f1e4}
body[data-theme="playful-print"] .ladder-rung[data-style="M"] .ladder-cell {fill:#f8edf2}
body[data-theme="playful-print"] .ladder-rung.occupied .ladder-cell {stroke:#1c1b18;stroke-opacity:1}
body[data-theme="playful-print"] .ladder-rung.is-blue-chip .ladder-cell {fill:#cde2e9;stroke:#0e6e8c}
body[data-theme="playful-print"] :is(.ladder-price,.ladder-rung.has-fork .ladder-price,.ladder-fork-mark) {fill:#1c1b18}
body[data-theme="playful-print"] .ladder-cap-cell {fill:#e8c558;stroke:#1c1b18}
body[data-theme="playful-print"] :is(.ladder-cap-price,.ladder-cap-label) {fill:#1c1b18}
body[data-theme="playful-print"] .ladder-blue-chip-label {fill:#0e6e8c}
body[data-theme="playful-print"] .ladder-blue-chip-coin {fill:#0e6e8c;stroke:#fffdf7}
body[data-theme="playful-print"] .ladder-income-coin {fill:#e8c558;stroke:#1c1b18}
body[data-theme="playful-print"] .ladder-income-rim {stroke:#9a7627}
body[data-theme="playful-print"] .ladder-income {fill:#1c1b18}
body[data-theme="playful-print"] .ladder-style-name {fill:#1c1b18;stroke:none}
body[data-theme="playful-print"] .ladder-holding-card {fill:#fffdf7;stroke:#1c1b18;stroke-width:1.3}
body[data-theme="playful-print"] .ladder-stock[data-blue-chip] .ladder-holding-card {fill:#dcebf0;stroke:#1c1b18}
body[data-theme="playful-print"] :is(.ladder-stock:hover,.ladder-stock:focus-visible) .ladder-holding-card {fill:#f5dd8b;stroke:#1c1b18}
body[data-theme="playful-print"] .ladder-ticker {fill:#1c1b18;stroke:none}
body[data-theme="playful-print"] .ladder-stock[data-ladder-style="V"] .ladder-ticker {fill:#0e6e8c}
body[data-theme="playful-print"] .ladder-stock[data-ladder-style="G"] .ladder-ticker {fill:#398c32}
body[data-theme="playful-print"] .ladder-stock[data-ladder-style="M"] .ladder-ticker {fill:#c92776}
body[data-theme="playful-print"] :is(.chart-axis-text,.chart-axis-title,.chart-phase-tick,.chart-phase-tick.live,.candle-title,.candle-axis-caption,.candle-payout-title,.candle-axis,.candle-round,.candle-live,.candle-unknown,.candle-footnote) {fill:#4a4d42}
body[data-theme="playful-print"] :is(.chart-gridline,.chart-round-rule,.candle-gridline) {stroke:#8b917e;stroke-opacity:.35}
body[data-theme="playful-print"] .chart-axis-mask {fill:#f8fbf4}
body[data-theme="playful-print"] :is(.stock-path,.chart-leader) {filter:brightness(.65);opacity:.9}
body[data-theme="playful-print"] .worth-path {stroke:#1c1b18}
body[data-theme="playful-print"] .candle-up {--candle-color:#398c32}
body[data-theme="playful-print"] .candle-down {--candle-color:#b23a32}
body[data-theme="playful-print"] :is(.candle-dividend-bar,.candle-dividend-value) {fill:#9f7711}
body[data-theme="playful-print"] :is(.candle-detail,.candle-detail>strong,.candle-detail dd) {color:#1c1b18}
body[data-theme="playful-print"] .candle-detail dt {color:#655f52}
body[data-theme="playful-print"] #app>.floating-hand .board-phase-row[data-phase] {background:#1c1b18;color:#fffdf7;border:0;border-radius:0}
body[data-theme="playful-print"] .board-phase-row[data-phase] .tracker-round {color:#fffdf7}
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail li,
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail li.complete {color:#d7d1bf}
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail li.current {color:#1c1b18;background:#e8c558}
body[data-theme="playful-print"] .phase-tracker-cursor {background:#e8c558}
body[data-theme="playful-print"] .board-phase-row.phase-tracker-moving .phase-rail li.current {background:transparent}
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail button {background:#e8c558;color:#1c1b18;border-color:#1c1b18;box-shadow:none}
body[data-theme="playful-print"] .floating-hand .hand-action-count {color:#415238}
body[data-theme="playful-print"] #app>.floating-hand .hand-section>.board-section-head {border-radius:0}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance,
body[data-theme="playful-print"] #app>.floating-hand .dd-phase-actions .primary {background:#e8c558;color:#1c1b18;border:2px solid #1c1b18;box-shadow:2px 3px 0 #1c1b18;border-radius:7px 9px 6px 8px}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance:disabled {color:#655f52;background:#e4dfd1;box-shadow:none}
body[data-theme="playful-print"] .news-preview-eye {color:#1c1b18;background:#e8c558;box-shadow:1px 2px 0 #1c1b18}
body[data-theme="playful-print"] .news-stack-card.is-preview {outline-color:#b8860b}
body[data-theme="playful-print"] :is(.news-unaffected-status,.dividend-visible,#toast,#stock-hover-hint) {background:#fffdf7;color:#1c1b18;border:2px solid #1c1b18;box-shadow:2px 3px 0 #1c1b18;border-radius:7px}
body[data-theme="playful-print"] .dividend-visible strong {color:#8f6707}
body[data-theme="playful-print"] #modal {background:#fffdf7;color:#1c1b18;border:2px solid #1c1b18;border-radius:13px 17px 11px 15px;box-shadow:5px 6px 0 #1c1b18}
body[data-theme="playful-print"] #modal::backdrop {background:#1c1b185c;backdrop-filter:none}
body[data-theme="playful-print"] #modal:is(.dd-card-dialog,:has(.blind-draw-reveal),:has(.reveal-stage),:has(.memo-popup),:has(.news-single-card)) {background:transparent;border:0;box-shadow:none}
body[data-theme="playful-print"] #modal :is(.modal-intro,.prose,.quiet,.card-detail-copy,.swap-effect,.journal-entry p,.journal-entry small) {color:#1c1b18}
body[data-theme="playful-print"] #modal :is(.close,.stock-detail,.fork-question,.fork-option,.tag-options button,.preview-tags button,.dd-preview-row) {background:#f4eedf;color:#1c1b18;border-color:#1c1b18;box-shadow:none}
body[data-theme="playful-print"] #modal :is(.swap-choice-card,.swap-card-grid .swap-choice-card) {background:#f4eedf;color:#1c1b18;border-color:#1c1b18}
body[data-theme="playful-print"] #modal :is(.swap-choice-card:hover,.swap-choice-card[aria-pressed="true"],.swap-choice-card:has(>.swap-check:checked)) {background:#f6e6ae;border-color:#1c1b18;box-shadow:0 0 0 2px #e8c558}
body[data-theme="playful-print"] #modal .swap-choice-title {color:#1c1b18}
body[data-theme="playful-print"] #modal .swap-card-grid .swap-choice-card:is([aria-pressed="true"],:has(>.swap-check:checked)) .swap-choice-title {color:#1c1b18}
body[data-theme="playful-print"] :is(th,td,.journal-entry) {border-color:#bcb29b;color:#1c1b18}
body[data-theme="playful-print"] th {color:#655f52}
body[data-theme="playful-print"] #tutorial-coach .tutorial-panel {background:#fffdf7;color:#1c1b18;border:2px solid #1c1b18;border-radius:11px 16px 12px 14px;box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] #tutorial-coach :is(.tutorial-title,.tutorial-progress,.tutorial-top button,#tutorial-description,#tutorial-hint) {color:#1c1b18}
body[data-theme="playful-print"] #tutorial-coach .tutorial-speech {background:#f3eddd;border:1.5px solid #1c1b18;border-radius:8px 11px 6px 8px}
body[data-theme="playful-print"] #tutorial-coach .tutorial-speech::before {border-color:#1c1b18}
body[data-theme="playful-print"] #tutorial-coach .tutorial-portrait {background:#cfe3cb;border-radius:7px}
body[data-theme="playful-print"] #tutorial-next {background:#e8c558;color:#1c1b18;border:2px solid #1c1b18;box-shadow:2px 2px 0 #1c1b18}
body[data-theme="playful-print"] #tutorial-highlight {border-color:#e8c558;box-shadow:0 0 0 100vmax #1c1b186b,0 0 0 2px #1c1b18}
body[data-theme="playful-print"] :is(.lab-controls,.lab-stats>div,.distribution,.news-analysis,.lab-notes,.score-experiment,.result-banner,.results-panel) {background:#fffdf7;color:#1c1b18;border:1.5px solid #1c1b18;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] :is(.lab-stats strong,.result-stats strong,.target-buttons small,.news-accounting strong,.dividend-summary strong) {color:#1c1b18}
body[data-theme="playful-print"] .game-info-menu .secondary {background:#f5f0e4}
body[data-theme="playful-print"] :is(.dd-targeting,.market-share-instructions,.hedge-dock) {color:#1c1b18;background:#eadfbb;border-color:#1c1b18}
body[data-theme="playful-print"] .phase-arrival {animation:none}
body[data-theme="playful-print"] .phase-lifted {box-shadow:3px 4px 0 #1c1b18,0 0 0 3px #e8c558}

/* Refinement B: confident ink, softer spots, and a slightly wonky print cut. */
body[data-theme="playful-print"] {
  --felt:#f2e7cc;--deep:#f2e7cc;--panel:#fff9e8;--line:#1c1b18;
  --paper:#1c1b18;--ink:#1c1b18;--muted:#5d584b;--lime:#f2d571;--gold:#9c7111;
  --stage-shared:#fffdf7;--stage-shared-head:#f2d571;
  --stage-personal:#e7f1e4;--stage-personal-head:#cfe3cb;--stage-plot:#f9fcf5;
  background:#f2e7cc;background-image:none;color:#1c1b18;
}
body[data-theme="playful-print"] :is(h1,h2,h3,.brand) {font-weight:700;letter-spacing:-.04em}
body[data-theme="playful-print"] .topbar {
  background:#fffdf7;border:3px solid #1c1b18;border-radius:14px 21px 13px 18px;
  box-shadow:4px 5px 0 #1c1b18;
}
body[data-theme="playful-print"] .brand>span {
  text-decoration-color:#f2d571;text-decoration-thickness:7px;text-underline-offset:3px;
}
body[data-theme="playful-print"] :is(.primary,.secondary,.icon-button,.nav,.phase-advance,#tutorial-next) {
  font-weight:700;border:2.5px solid #1c1b18;border-radius:9px 6px 10px 7px;
  box-shadow:3px 4px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.primary,.phase-advance,#tutorial-next) {background:#f2d571;color:#1c1b18}
body[data-theme="playful-print"] .secondary {background:#fffdf7}
body[data-theme="playful-print"] .topbar .icon-button {
  background:#e7f1e4;border:2.5px solid #1c1b18;box-shadow:2px 3px 0 #1c1b18;border-radius:9px 6px 10px 7px;
}
body[data-theme="playful-print"] :is(.primary,.secondary,.icon-button,.nav,.phase-advance):hover:not(:disabled) {
  color:#1c1b18;background:#f8e6a1;border-color:#1c1b18;transform:translate(1px,1px);box-shadow:2px 3px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.primary,.secondary,.icon-button,.nav,.phase-advance):active:not(:disabled) {transform:translate(3px,4px);box-shadow:none}
body[data-theme="playful-print"] button:disabled {background:#e4dfd1;color:#655f52;border-color:#1c1b18;box-shadow:none}
body[data-theme="playful-print"] :is(input,select,textarea) {border:2.5px solid #1c1b18;border-radius:7px 9px 6px 8px}
body[data-theme="playful-print"] :is(.market-draft-board,#news-section) {
  background:#fffdf7;border:3px solid #1c1b18;border-radius:16px 21px 14px 18px;box-shadow:4px 5px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.player-board,#app>.floating-hand) {
  --plot-ink:#f9fcf5;background:#e7f1e4;border:3px solid #1c1b18;border-radius:19px 15px 21px 16px;box-shadow:4px 5px 0 #1c1b18;
}
body[data-theme="playful-print"] :is(.market-draft-board,#news-section,.player-board,#app>.floating-hand):not(.phase-lifted) {box-shadow:4px 5px 0 #1c1b18}
body[data-theme="playful-print"] :is(.market-draft-board,#news-section) .board-section-head {
  color:#1c1b18;background:#f2d571;border-bottom:3px solid #1c1b18;
}
body[data-theme="playful-print"] :is(.player-board,#app>.floating-hand) .board-section-head {
  color:#1c1b18;background:#cfe3cb;border-bottom:3px solid #1c1b18;
}
body[data-theme="playful-print"] .board-section-head h2 {font-size:24px;font-weight:700;letter-spacing:-.04em}
body[data-theme="playful-print"] :is(.section-info,.board-head-actions .quiet) {color:#1c1b18}
body[data-theme="playful-print"] .section-info::before {border-width:1.5px;border-color:#1c1b18}
body[data-theme="playful-print"] #market-cards.market-grid.market-stack {border:1.5px solid #1c1b18;border-radius:6px 9px 5px 7px}
body[data-theme="playful-print"] #market-cards.market-stack>.market-quote-row {border-bottom:1px solid #bcb39d;background:#fffdf7}
body[data-theme="playful-print"] #market-cards.market-stack>.market-quote-row:nth-child(even) {background:#f9f3e4}
body[data-theme="playful-print"] #market-cards.market-stack>.market-quote-row:hover {background:#faebba}
body[data-theme="playful-print"] #market-cards.market-stack .quote-price {font-weight:700;border-left:1.5px solid #1c1b18}
body[data-theme="playful-print"] .compact-dd--rail {background:#fffdf7;border:2px solid #1c1b18;border-radius:7px 9px 6px 8px;box-shadow:1px 2px 0 #1c1b18}
body[data-theme="playful-print"] :is(.dd-card:hover,.swap-choice-card:hover) .compact-dd--rail {background:#f8e6a1;border-color:#1c1b18}
body[data-theme="playful-print"] #app .dd-action-glow {outline:2px solid #9c7111;outline-offset:2px;box-shadow:2px 3px 0 #1c1b18;animation:none}
body[data-theme="playful-print"] .portfolio-balances {background:#e7f1e4;border-bottom:1.5px solid #8a987f}
body[data-theme="playful-print"] .portfolio-switch {background:#fffdf7;border:2px solid #1c1b18;border-radius:7px 9px 6px 8px}
body[data-theme="playful-print"] .portfolio-switch button {border:0;box-shadow:none;background:transparent}
body[data-theme="playful-print"] .portfolio-switch button[aria-pressed="true"] {background:#f2d571;color:#1c1b18}
body[data-theme="playful-print"] :is(.portfolio-ladder-svg,.networth-candles-svg,.chart-scroll) {background:#f9fcf5;--plot-ink:#f9fcf5}
body[data-theme="playful-print"] .ladder-cell {stroke:#7e8b73;stroke-opacity:.75;stroke-width:.85}
body[data-theme="playful-print"] .ladder-rung.occupied .ladder-cell {stroke:#1c1b18;stroke-width:1.2;stroke-opacity:1}
body[data-theme="playful-print"] .ladder-holding-card {fill:#fffdf7;stroke:#1c1b18;stroke-width:1.7}
body[data-theme="playful-print"] .ladder-cap-cell {fill:#f2d571;stroke:#1c1b18;stroke-width:1.5}
body[data-theme="playful-print"] .ladder-income-coin {fill:#f2d571;stroke:#1c1b18;stroke-width:1}
body[data-theme="playful-print"] .ladder-ticker {font-weight:700}
body[data-theme="playful-print"] .chart-axis-mask {fill:#f9fcf5}
body[data-theme="playful-print"] #app>.floating-hand .hand-section>.board-section-head {border-radius:0}
body[data-theme="playful-print"] #app>.floating-hand .board-phase-row[data-phase] {background:#1c1b18;border:0;border-radius:0}
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail li.current,
body[data-theme="playful-print"] .phase-tracker-cursor {background:#f2d571;color:#1c1b18}
body[data-theme="playful-print"] .board-phase-row.phase-tracker-moving .phase-rail li.current {background:transparent}
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail button {background:#f2d571;border-color:#1c1b18;color:#1c1b18}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance,
body[data-theme="playful-print"] #app>.floating-hand .dd-phase-actions .primary {
  color:#1c1b18;background:#f2d571;border:2.5px solid #1c1b18;border-radius:9px 6px 10px 7px;box-shadow:2px 3px 0 #1c1b18;
}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance:disabled {color:#655f52;background:#e4dfd1;box-shadow:none}
body[data-theme="playful-print"] .floating-hand .board-section-head h2 {font-size:14px;letter-spacing:-.025em}
body[data-theme="playful-print"] :is(.news-preview-eye,.dividend-visible strong) {color:#1c1b18}
body[data-theme="playful-print"] .news-preview-eye {background:#f2d571;border:1.5px solid #1c1b18;box-shadow:1px 2px 0 #1c1b18}
body[data-theme="playful-print"] .news-stack-card.is-preview {outline-color:#9c7111}
body[data-theme="playful-print"] :is(.news-unaffected-status,.dividend-visible,#toast,#stock-hover-hint) {
  color:#1c1b18;background:#fff9e8;border:2.5px solid #1c1b18;border-radius:9px 12px 7px 10px;box-shadow:3px 4px 0 #1c1b18;
}
body[data-theme="playful-print"] #modal {background:#fffdf7;border:3px solid #1c1b18;border-radius:15px 21px 13px 18px;box-shadow:5px 6px 0 #1c1b18}
body[data-theme="playful-print"] #modal:is(.dd-card-dialog,:has(.blind-draw-reveal),:has(.reveal-stage),:has(.memo-popup),:has(.news-single-card)) {background:transparent;border:0;box-shadow:none}
body[data-theme="playful-print"] #modal .modal-heading h2 {font-weight:700;letter-spacing:-.04em}
body[data-theme="playful-print"] #modal .close {background:#e7f1e4;color:#1c1b18;border:2px solid #1c1b18;border-radius:7px 9px 6px 8px;box-shadow:1px 2px 0 #1c1b18}
body[data-theme="playful-print"] #modal :is(.fork-question,.fork-option,.tag-options button,.preview-tags button,.dd-preview-row,.swap-choice-card) {background:#f8f0d9;border:2px solid #1c1b18;border-radius:8px 11px 6px 9px}
body[data-theme="playful-print"] #modal :is(.swap-choice-card:hover,.swap-choice-card[aria-pressed="true"],.swap-choice-card:has(>.swap-check:checked)) {background:#f8e6a1;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] .game-info-menu .secondary {background:#fff9e8}
body[data-theme="playful-print"] .game-info-menu .secondary:nth-child(even) {background:#e7f1e4}
body[data-theme="playful-print"] :is(th,td,.journal-entry) {border-color:#9b927a}
body[data-theme="playful-print"] th {color:#1c1b18;background:#f8e6a1;font-weight:700}
body[data-theme="playful-print"] #tutorial-coach .tutorial-panel {background:#fffdf7;border:3px solid #1c1b18;border-radius:14px 19px 12px 17px;box-shadow:4px 5px 0 #1c1b18}
body[data-theme="playful-print"] #tutorial-coach .tutorial-speech {background:#fff9e8;border:2px solid #1c1b18;border-radius:10px 14px 8px 11px}
body[data-theme="playful-print"] #tutorial-coach .tutorial-portrait {background:#cfe3cb;border-radius:9px 12px 7px 10px}
body[data-theme="playful-print"] #tutorial-next {background:#f2d571;border:2.5px solid #1c1b18;border-radius:9px 6px 10px 7px;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] #tutorial-highlight {border-color:#f2d571;box-shadow:0 0 0 100vmax #1c1b186b,0 0 0 2px #1c1b18}
body[data-theme="playful-print"] :is(.lab-controls,.lab-stats>div,.distribution,.news-analysis,.lab-notes,.score-experiment,.result-banner,.results-panel) {border:2.5px solid #1c1b18;border-radius:11px 15px 9px 12px;box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] :is(.dd-targeting,.market-share-instructions,.hedge-dock) {background:#f8e6a1;border-color:#1c1b18;color:#1c1b18}
body[data-theme="playful-print"] .phase-lifted {box-shadow:4px 5px 0 #1c1b18,0 0 0 3px #f2d571}
@media(max-width:740px) {
  body[data-theme="playful-print"] .board-section-head h2 {font-size:21px}
  body[data-theme="playful-print"] .floating-hand .board-section-head h2 {font-size:13.5px}
  body[data-theme="playful-print"] .topbar {box-shadow:3px 4px 0 #1c1b18}
}
/* Stock confirmation lives in its own native dialog. */
body[data-theme="playful-print"] #purchase-confirm-dialog {background:#fffdf7;color:#1c1b18;border:3px solid #1c1b18;border-radius:11px 15px 9px 12px;box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] #purchase-confirm-dialog:is([data-stock-action="buy"],[data-stock-action="sell"]) {background:transparent;border:0;box-shadow:none}
body[data-theme="playful-print"] #purchase-confirm-dialog :is(.purchase-trade,#sell-stock) {background:#f2d571;color:#1c1b18;border:2.5px solid #1c1b18;border-radius:9px 6px 10px 7px;box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] #purchase-confirm-dialog :is(.purchase-trade,#sell-stock):hover:not(:disabled) {background:#f8e6a1;box-shadow:2px 3px 0 #1c1b18;transform:translate(1px,1px)}
body[data-theme="playful-print"] #purchase-confirm-dialog :is(.purchase-trade,#sell-stock):active:not(:disabled) {box-shadow:none;transform:translate(3px,4px)}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-close {background:#cfe3cb;color:#1c1b18;border-radius:8px 6px 9px 7px}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-close:hover {background:#f2d571;color:#1c1b18;transform:none}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="view"] .purchase-close {background:transparent;color:#fffdf7;box-shadow:none}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="view"] .purchase-close::before {background:#1c1b18;border-radius:5px 4px 6px 4px}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="view"] .purchase-close:hover::before {background:#594a1d}
body[data-theme="playful-print"] #purchase-confirm-dialog button:focus-visible {outline:3px solid #1c1b18;outline-offset:3px}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="view"] .purchase-close:focus-visible {outline:3px solid #f2d571;outline-offset:-3px}

/* Playful Print: a quieter 12 / 14 / 18 / 21 / 27 type scale.
   Load after playful.css. Original printed card artwork is never restyled. */
body[data-theme="playful-print"] {font-size:14px;line-height:1.45}
body[data-theme="playful-print"] :is(h1,h2,h3) {line-height:1.2}
body[data-theme="playful-print"] h1 {font-size:27px;letter-spacing:-.035em}
body[data-theme="playful-print"] h2 {font-size:21px;letter-spacing:-.03em}
body[data-theme="playful-print"] h3 {font-size:18px;letter-spacing:-.02em}
body[data-theme="playful-print"] .topbar .brand {font-size:27px;line-height:.95;letter-spacing:-.035em}
body[data-theme="playful-print"] .online-name {font-size:12px;line-height:1.3;letter-spacing:.13em}
body[data-theme="playful-print"] :is(.board-section-head,.panel-title,.panel-title.small) h2 {font-size:21px;line-height:1.2}
body[data-theme="playful-print"] :is(.run-label h1,.lab-heading h1) {font-size:27px}
body[data-theme="playful-print"] .run-label h1 span {font-size:16px}
body[data-theme="playful-print"] :is(.turn-banner h2,.results-banner h2,.lab-empty h2,.news-analysis h2,.lab-notes h2,.distribution h2) {font-size:21px}

/* Main controls are readable body size; metadata uses one shared small size. */
body[data-theme="playful-print"] :is(.primary,.secondary,.nav,.phase-focus-button,.dashboard-tutorial,.tag-options button,.preview-tags button) {font-size:14px;line-height:1.3}
body[data-theme="playful-print"] :is(.quiet,.panel-hint,.eyebrow,.edition,.edition span,.shelf-count,.text-button,.tag,.free-badge,.action-badge,.lock-label,.news-stamp,.news-round-chip,.market-footer,.market-footer .text-button,.table-footer,.table-footer .text-button) {font-size:12px;line-height:1.45}
body[data-theme="playful-print"] .eyebrow {letter-spacing:.08em}
body[data-theme="playful-print"] :is(.panel-title,.panel-title.small,.hand-title,.turn-banner,.lab-heading,.lab-notes,.news-analysis,.distribution,.score-experiment) .eyebrow {font-size:12px}
body[data-theme="playful-print"] :is(input,select,textarea,.field,.lab-controls .field,.lab-controls input,.lab-controls select) {font-size:14px;line-height:1.4}
body[data-theme="playful-print"] .field small {font-size:12px}
body[data-theme="playful-print"] :is(.lab-controls .primary,.lab-notes .secondary,.distribution .secondary,.button-row>*,.preview-actions>button,.hand-title .secondary,.board-head-actions .secondary) {font-size:14px;line-height:1.3}
body[data-theme="playful-print"] :is(.market-card-meta,.market-quote,.market-quote strong,.market-quote b) {font-size:14px}
body[data-theme="playful-print"] :is(.market-card-meta small,.market-card-meta .affordability,.market-quote small,.preview-or,.closed-market,.market-panel .board-head-actions .quiet) {font-size:12px}
body[data-theme="playful-print"] .market-draft-board .draft-actions .secondary {font-size:14px;line-height:1.3;white-space:normal}
body[data-theme="playful-print"] :is(.dd-preview-row,.dd-preview-row strong,.dd-preview-row b,.swap-hand label) {font-size:14px;line-height:1.4}
body[data-theme="playful-print"] :is(.dd-preview-row small,.swap-effect) {font-size:12px;line-height:1.4}

/* ID-specific quote rules override both the old compact and phone styles. */
body[data-theme="playful-print"] #market-cards.market-stack .quote-name {font-size:14px;line-height:1.2}
body[data-theme="playful-print"] #market-cards.market-stack .quote-ticker {font-size:12px;line-height:1.2;letter-spacing:0}
body[data-theme="playful-print"] #market-cards.market-stack .quote-price {font-size:14px;line-height:1.2}
body[data-theme="playful-print"] .quote-original-price {font-size:12px}
body[data-theme="playful-print"] #market-cards.market-stack>.empty-market {font-size:12px;line-height:1.3}

/* The two portfolio metrics sit between labels and section headings in scale. */
body[data-theme="playful-print"] .portfolio-balance span:first-child {font-size:12px;line-height:1.3}
body[data-theme="playful-print"] .portfolio-balance strong {font-size:18px;line-height:1.25}
body[data-theme="playful-print"] :is(.stat>strong,.detail-stats strong,.result-stats b,.lab-stats strong,.empty-facts b) {font-size:22px;line-height:1.25}
body[data-theme="playful-print"] :is(.stat>span,.detail-stats span,.result-stats span,.lab-stats span,.lab-stats small,.empty-facts span) {font-size:12px;line-height:1.4}
body[data-theme="playful-print"] :is(.stat strong small,.result-hero small) {font-size:18px}
body[data-theme="playful-print"] .result-hero>strong {font-size:28px;line-height:1.2}

/* Attached phase strip: full labels fit at 12px without the old 8–11px clamp. */
body[data-theme="playful-print"] .board-phase-row[data-phase] .tracker-round {font-size:12px;line-height:1.25}
body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail :is(li,button) {font-size:12px;line-height:1.2;letter-spacing:-.015em}
body[data-theme="playful-print"] :is(.phase,.phase-step,.phase-directive>span,.mobile-board-nav button,.board-phase-row[data-phase] .phase-summary>.turn-resources) {font-size:12px;line-height:1.3}
body[data-theme="playful-print"] .board-phase-row[data-phase] :is(.phase-summary>strong,.phase-directive>strong) {font-size:18px;line-height:1.25}
body[data-theme="playful-print"] .board-phase-row[data-phase] :is(.phase-focus-button,.phase-controls #next-button,.mobile-board-nav button) {font-size:14px;line-height:1.25}
body[data-theme="playful-print"] #app>.floating-hand .board-section-head h2 {font-size:14px;line-height:1.25;letter-spacing:-.03em}
body[data-theme="playful-print"] #app>.floating-hand .hand-action-count {font-size:12px;font-weight:600;line-height:1.25}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance {font-size:14px;line-height:1.25;white-space:normal}
body[data-theme="playful-print"] .dd-phase-actions>button,
body[data-theme="playful-print"] #app>.floating-hand .dd-phase-actions>.phase-advance {font-size:14px;line-height:1.3}
body[data-theme="playful-print"] :is(.empty-hand,.online-table .dd-card .card-state,.dd-targeting strong,.dd-targeting span,.hedge-dock b,.hedge-dock>span:last-child) {font-size:12px;line-height:1.4}

/* SVG geometry uses actual CSS pixels. All tickers share natural Mono type at
   each viewport size; narrow layouts reduce both icons equally to make room. */
body[data-theme="playful-print"] .ladder-ticker {font-family:Mono,monospace;font-weight:700;letter-spacing:0;font-kerning:none}
body[data-theme="playful-print"] :is(.ladder-price,.ladder-cap-price) {font-size:13px}
body[data-theme="playful-print"] .ladder-style-name {font-size:14px}
body[data-theme="playful-print"] .ladder-income {font-size:12px}
body[data-theme="playful-print"] :is(.ladder-cap-label,.ladder-blue-chip-label,.ladder-fork-mark) {font-size:11.5px}
body[data-theme="playful-print"] :is(.chart-axis-text,.chart-axis-title,.chart-point-label,.chart-point-dividend,.chart-worth-label) {font-size:12px}
/* Five time slots share ~125px per round; preserve their fitted layout. */
body[data-theme="playful-print"] .chart-phase-tick {font-family:Body,sans-serif;font-size:10px;letter-spacing:-.02em}
body[data-theme="playful-print"] :is(.chart-key,.chart-scales,.chart-caption) {font-size:12px;line-height:1.4}
body[data-theme="playful-print"] .candle-title {font-size:14px}
body[data-theme="playful-print"] :is(.candle-axis-caption,.candle-payout-title,.candle-dividend-value) {font-size:12px}
body[data-theme="playful-print"] :is(.candle-axis,.candle-round,.candle-live,.candle-footnote) {font-size:11.5px;letter-spacing:0}
body[data-theme="playful-print"] .candle-unknown {font-size:16px}
body[data-theme="playful-print"] :is(.candle-detail,.candle-detail>strong,.candle-detail dd,.candle-detail p,.candle-round-change) {font-size:14px;line-height:1.4}
body[data-theme="playful-print"] .candle-detail dt {font-size:12px}
body[data-theme="playful-print"] .wealth-chart text {font-size:12px}

/* Menus, score history and guided practice follow the same scale as the board. */
body[data-theme="playful-print"] #modal .modal-heading h2 {font-size:21px;line-height:1.2;letter-spacing:-.03em}
body[data-theme="playful-print"] #modal :is(.modal-heading .eyebrow,.quiet,.journal-entry small) {font-size:12px;line-height:1.4}
body[data-theme="playful-print"] #modal :is(p,.modal-intro,.prose p,.journal-entry p,.card-detail-copy p,.guide-steps p,.reveal-copy p) {font-size:14px;line-height:1.55}
body[data-theme="playful-print"] #modal :is(.card-detail-copy h3,.guide-steps h3,.reveal-copy h3,.peek-cards h3,.swap-layout h3) {font-size:18px;line-height:1.25}
body[data-theme="playful-print"] #modal :is(.game-info-menu button,.button-row>*,.card-detail-copy .primary,.card-detail-copy .secondary) {font-size:14px;line-height:1.35}
body[data-theme="playful-print"] #modal :is(.detail-tags .tag,.tag-options .tag,.tag-options button>span:last-child,.card-detail-copy .free-badge,.card-detail-copy .action-badge) {font-size:12px}
body[data-theme="playful-print"] #modal .fork-options strong {font-size:24px;line-height:1.2}
body[data-theme="playful-print"] #modal :is(.fork-options p,.swap-card-grid .swap-choice-title) {font-size:14px;line-height:1.45}
body[data-theme="playful-print"] #modal .swap-draft-head h3 {font-size:18px}
body[data-theme="playful-print"] #modal .swap-draft-head :is(#toggle-swap-draft,#toggle-swap-hand) {font-size:12px;line-height:1.25}
body[data-theme="playful-print"] :is(table,.news-analysis table) {font-size:14px;line-height:1.45}
body[data-theme="playful-print"] :is(th,.news-analysis th) {font-size:12px;line-height:1.4}
body[data-theme="playful-print"] #tutorial-coach .tutorial-title {font-size:18px;line-height:1.2}
body[data-theme="playful-print"] #tutorial-coach :is(.tutorial-progress,.tutorial-top button,#tutorial-hint) {font-size:12px;line-height:1.35}
body[data-theme="playful-print"] #tutorial-coach #tutorial-description {font-size:14px;line-height:1.45}
body[data-theme="playful-print"] #tutorial-next {font-size:14px;line-height:1.25}
body[data-theme="playful-print"] #purchase-confirm-dialog :is(#confirm-stock-buy,#sell-stock) {font-size:14px;line-height:1.25}
body[data-theme="playful-print"] :is(#toast,#stock-hover-hint,.news-unaffected-status,.dividend-visible,.dividend-payers>span,.dd-targeting .secondary) {font-size:14px;line-height:1.35}
body[data-theme="playful-print"] .dividend-visible strong {font-size:15px;line-height:1.25}
body[data-theme="playful-print"] .dividend-summary :is(.eyebrow,.text-button) {font-size:12px}
body[data-theme="playful-print"] .dividend-summary strong {font-size:18px}
body[data-theme="playful-print"] :is(.lab-heading p,.lab-notes p,.news-analysis p,.score-experiment p,.lab-empty p) {font-size:14px;line-height:1.55}
body[data-theme="playful-print"] :is(.chart-caption,.hist-bin>div>span,.hist-bin small,#lab-progress,.target-buttons small) {font-size:12px}

/* The compact hand has a long title, action count, and up to two icon controls.
   Retain its smaller heading tier so all three stay reachable at 390px. */
body[data-theme="playful-print"][data-table-layout="phone"] .topbar .brand {font-size:26px}
body[data-theme="playful-print"][data-table-layout="phone"] .board-section-head h2 {font-size:20px}
body[data-theme="playful-print"][data-table-layout="phone"] #app>.floating-hand .board-section-head h2 {font-size:13.5px;line-height:1.2}
body[data-theme="playful-print"][data-table-layout="phone"] #app>.floating-hand .hand-action-count {font-size:12px}
body[data-theme="playful-print"][data-table-layout="phone"] #market-cards.market-stack .quote-name {font-size:14px}
body[data-theme="playful-print"][data-table-layout="phone"] #market-cards.market-stack .quote-ticker {font-size:12px}
body[data-theme="playful-print"][data-table-layout="phone"] #market-cards.market-stack .quote-price {font-size:14px}
@media(max-width:420px) {
  body[data-theme="playful-print"] #app>.floating-hand .board-section-head h2 {font-size:13.5px;line-height:1.2}
  body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail li {padding-inline:1px}
  body[data-theme="playful-print"] .board-phase-row[data-phase] .phase-rail button {padding-inline:1px;white-space:normal}
  body[data-theme="playful-print"] .floating-hand .board-head-actions {gap:3px}
}

/* PLAYFUL PRINT — live-renderer consistency pass.
   Original card artwork, colored icon symbols, and the brown shield stay intact. */

/* Portfolio chips use the same ivory, ink edge, and small soft corner as the market. */
body[data-theme="playful-print"] #portfolio-section .ladder-holding-card {
  fill:#fffdf7;stroke:#1c1b18;stroke-width:1.7;stroke-opacity:1;
  rx:5px;ry:5px;vector-effect:non-scaling-stroke;paint-order:stroke fill;
}
body[data-theme="playful-print"] #portfolio-section .ladder-stock[data-blue-chip] .ladder-holding-card {fill:#e1eef1;stroke:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .ladder-stock > rect.point-hit {rx:5px;ry:5px;fill:transparent;stroke:none}
body[data-theme="playful-print"] #portfolio-section .ladder-stock[data-ladder-style] .ladder-ticker {fill:#1c1b18;stroke:none;paint-order:normal}
body[data-theme="playful-print"] #portfolio-section .ladder-stock:is(:hover,:focus-visible) .ladder-holding-card {fill:#f8e6a1;stroke:#1c1b18;stroke-width:2}
body[data-theme="playful-print"] #portfolio-section .ladder-stock:is(:hover,:focus-visible) > rect.point-hit {fill:transparent;stroke:none}
body[data-theme="playful-print"] #portfolio-section .stock-point.is-dd-target .point-hit,
body[data-theme="playful-print"] #portfolio-section .stock-point.preview-affected .point-hit {fill:#f2d57118;stroke:#9c7111;stroke-width:1.5;vector-effect:non-scaling-stroke}
body[data-theme="playful-print"] #portfolio-section .stock-point.is-dd-target:is(:hover,:focus-visible) .point-hit {fill:#f2d57126;stroke:#1c1b18;stroke-width:2}
body[data-theme="playful-print"] #portfolio-section .stock-point.is-dd-target:is(:hover,:focus-visible) .ladder-holding-card {fill:#f8e6a1;stroke:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .stock-point.is-sellable:is(:hover,:focus-visible) .point-hit {fill:#f2d57118;stroke:#1c1b18;stroke-width:1.5;vector-effect:non-scaling-stroke}

/* One enclosing curve clips the header and every changing portfolio footer. */
body[data-theme="playful-print"] .player-board > .portfolio {border-radius:16px 12px 18px 13px}
body[data-theme="playful-print"] .player-board.no-memo > .portfolio > .board-section-head {border-radius:0}
body[data-theme="playful-print"] .player-board > .portfolio > .chart-shell:last-child :is(.portfolio-ladder-svg,.networth-candles-svg,.chart-scroll) {border-radius:0}
@media (min-width:1000px) {
  body[data-theme="playful-print"][data-table-layout="desktop"] .player-board:not(.no-memo) > .portfolio {border-radius:0 12px 18px 0}
  body[data-theme="playful-print"][data-table-layout="desktop"] .player-board:not(.no-memo) > .portfolio > .board-section-head {border-radius:0}
  body[data-theme="playful-print"][data-table-layout="desktop"] .player-board:not(.no-memo) > .portfolio > .chart-shell:last-child :is(.portfolio-ladder-svg,.networth-candles-svg,.chart-scroll) {border-radius:0}
}

/* Charts retain their data colors; supporting ink stays legible on mint paper. */
body[data-theme="playful-print"] #portfolio-section :is(.chart-key,.chart-scales,.chart-caption) {color:#5d584b}
body[data-theme="playful-print"] #portfolio-section .chart-scales span:last-child {color:#1c1b18}
body[data-theme="playful-print"] #portfolio-section :is(.chart-worth-label,.worth-axis) {fill:#1c1b18;color:#1c1b18;stroke:none}
body[data-theme="playful-print"] #portfolio-section .chart-point-label {fill:#1c1b18;stroke:none}
body[data-theme="playful-print"] #portfolio-section .chart-point-dividend {fill:#84600d}
body[data-theme="playful-print"] #portfolio-section :is(.chart-axis-line,.chart-current-rule) {stroke:#7e8b73}
body[data-theme="playful-print"] #portfolio-section .chart-scroll {border-color:#a7b09c;scrollbar-color:#91856b #f9fcf5}
body[data-theme="playful-print"] #portfolio-section .chart-scroll:focus-visible {outline-color:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .worth-path {filter:none;stroke:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .networth-candle:is(:hover,:focus-visible,.is-selected) .candle-hit {fill:#f2d57118;stroke:#1c1b18;stroke-width:1.5;rx:5px;ry:5px}
body[data-theme="playful-print"] #portfolio-section .candle-worth .chart-worth-label {fill:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .candle-detail {background:#e7f1e4;border-top:1px solid #a7b09c}

/* Dividend, news, sale, and protection footers belong to the same personal board. */
body[data-theme="playful-print"] #portfolio-section :is(.dividend-summary,.news-impact) {background:#e7f1e4;border-color:#a7b09c;color:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .dividend-summary :is(.eyebrow,strong) {color:#84600d}
body[data-theme="playful-print"] #portfolio-section .dividend-payers > span {background:#fffdf7;border:1px solid #b8b49f;border-radius:5px}
body[data-theme="playful-print"] #portfolio-section .dividend-payers b {color:#84600d}
body[data-theme="playful-print"] #portfolio-section .sell-mode-hint {background:#f5efdd;color:#5d584b;border-top-color:#b8b49f}
body[data-theme="playful-print"] #portfolio-section .sell-mode-hint strong {color:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .hedge-dock {background:#eee1bd;border-top-color:#b29b6f}
body[data-theme="playful-print"] #portfolio-section .hedge-dock b {color:#78522f}
body[data-theme="playful-print"] #portfolio-section .hedge-dock > span:last-child {color:#65503a}

/* Cover interaction states with greater specificity than the original dark UI. */
body[data-theme="playful-print"] .portfolio-switch button:hover:not(:disabled) {color:#1c1b18;background:#f8e6a1;box-shadow:none;transform:none}
body[data-theme="playful-print"] .portfolio-switch button[aria-pressed="true"] {color:#1c1b18;background:#f2d571}
body[data-theme="playful-print"] #market-cards.market-stack > .market-quote-row:is(:focus-visible,.preview-affected) {outline:2px solid #9c7111;outline-offset:-2px}
body[data-theme="playful-print"] .online-table .dd-card.playable {outline-color:#9c711155;box-shadow:none}
body[data-theme="playful-print"] .online-table .dd-card.playable:is(:hover,:focus-visible) {outline-color:#9c7111;box-shadow:none}
body[data-theme="playful-print"] .dd-targeting span {color:#5d584b}
body[data-theme="playful-print"] #tutorial-button {background:#cfe3cb;color:#1c1b18;border:2.5px solid #1c1b18;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] #tutorial-button:hover {background:#f8e6a1;color:#1c1b18;border-color:#1c1b18}

/* Actual choice markup is .fork-options button; there is no .fork-option class. */
body[data-theme="playful-print"] #modal .fork-options button {background:#fff9e8;color:#1c1b18;border:2px solid #1c1b18;border-radius:8px 11px 6px 9px;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] #modal .fork-options button:hover {background:#f8e6a1;border-color:#1c1b18;box-shadow:1px 1px 0 #1c1b18}
body[data-theme="playful-print"] #modal :is(.tag-options button,.preview-tags button,.dd-preview-row):is(:hover,.selected,[aria-pressed="true"]) {background:#f8e6a1;color:#1c1b18;border-color:#1c1b18;box-shadow:none}
body[data-theme="playful-print"] #modal .guide-goal {background:#f8e6a1;color:#1c1b18;border:2px solid #1c1b18;border-radius:8px 11px 6px 9px}
body[data-theme="playful-print"] :is(.guide-steps p,.result-hero p,.lab-notes p,#lab-progress) {color:#5d584b}
body[data-theme="playful-print"] .result-hero > strong {color:#1c1b18}
body[data-theme="playful-print"] .result-hero small {color:#84600d}
body[data-theme="playful-print"] .result-stats {border-color:#b8ad92}
body[data-theme="playful-print"] .result-stats b {color:#1c1b18}
body[data-theme="playful-print"] .results-banner {background:#f2d571;color:#1c1b18;border:2.5px solid #1c1b18;border-radius:11px 15px 9px 12px;box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] .results-banner .eyebrow {color:#65503a}
body[data-theme="playful-print"] .results-banner .primary {background:#fffdf7;color:#1c1b18;border-color:#1c1b18;box-shadow:3px 4px 0 #1c1b18}
body[data-theme="playful-print"] .results-banner .primary:hover:not(:disabled) {background:#f8e6a1;color:#1c1b18;box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] .progress-track {background:#ded4b9}
body[data-theme="playful-print"] .progress-track > div {background:#9c7111}
body[data-theme="playful-print"] .secondary > span {background:#f2d571;color:#1c1b18}
body[data-theme="playful-print"] .text-button:hover {color:#84600d}
body[data-theme="playful-print"] #purchase-confirm-dialog::backdrop {background:#1c1b185c}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="buy"]::backdrop {background:#1c1b1826}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"]::backdrop {background:transparent}
body[data-theme="playful-print"] ::-webkit-scrollbar-thumb {background:#91856b}
body[data-theme="playful-print"] ::-webkit-scrollbar-track {background:#eee5cf}

/* Clip shared header fills to the same irregular printed edge. */
body[data-theme="playful-print"] .market-draft-board {overflow:hidden;isolation:isolate}

/* Selected Paper sticker portfolio cards. Keep chart markers outside the ladder unchanged. */
body[data-theme="playful-print"] #portfolio-section .ladder-stock .ladder-holding-card {fill:#f5f0dc;stroke:#1c1b18;stroke-width:1.2;rx:3px;ry:3px}
body[data-theme="playful-print"] #portfolio-section .ladder-paper-shadow {fill:#1c1b18;stroke:none;pointer-events:none}
body[data-theme="playful-print"] #portfolio-section .ladder-style-strip {fill:var(--paper-style);stroke:none;pointer-events:none}
body[data-theme="playful-print"] #portfolio-section .ladder-stock[data-ladder-style="V"] {--paper-style:#0E6E8C}
body[data-theme="playful-print"] #portfolio-section .ladder-stock[data-ladder-style="G"] {--paper-style:#4FA83D}
body[data-theme="playful-print"] #portfolio-section .ladder-stock[data-ladder-style="M"] {--paper-style:#EC3F8E}
body[data-theme="playful-print"] #portfolio-section .ladder-stock[data-blue-chip] .ladder-holding-card {fill:#e1eef1;stroke:#1c1b18}
body[data-theme="playful-print"] #portfolio-section .ladder-stock:is(:hover,:focus-visible) .ladder-holding-card {fill:#f8e6a1;stroke:#1c1b18;stroke-width:2}


/* Selected card-stack B; Plum is the selected action accent. */
#app{--ri-dd-accent:#75466c}
#app #dd-hand .dd-swap-b{--swap-accent:var(--ri-dd-accent)}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-pair{position:relative;display:block;flex:none;width:46px;height:26px}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-card{position:absolute;top:0;display:grid;place-items:center;width:20px;height:25px;overflow:hidden;border:1.2px solid #122e20;border-radius:4px;background:#1f4d36;color:#fffdf7;font-style:normal;box-shadow:0 1px 0 #122e20}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-card:first-child{left:1px;transform:translateY(1px) rotate(-2deg)}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-card:last-child{right:1px;transform:translateY(-1px) rotate(2deg)}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-card::before{position:absolute;content:'';inset:0;background-image:url('/game/cards/dd-back.svg?v=eef54631b07f9191');background-size:84px 118px;background-position:left top;opacity:.22}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-card b{position:relative;z-index:1;font:700 20px/1 Display,Body,sans-serif;transform:translateY(-.4px)}
#app #dd-hand .dd-swap-b .dd-action-tile.swap-quantity{width:39px;height:21px;border-radius:4px;background:var(--swap-accent);color:#fffdf7}
#app #dd-hand .dd-swap-b .dd-action-tile.swap-quantity svg{display:block;width:37px;height:21px}
#app #dd-hand .dd-swap-b .dd-rail-icon.dd-rail-free{position:relative;display:flex;align-items:center;justify-content:center;width:45.871px;height:21px;padding:0 6px;border:0;border-radius:4px;overflow:hidden;box-sizing:border-box;background:var(--swap-accent)}
#app #dd-hand .dd-swap-b .dd-rail-icon.dd-rail-free>img{position:static;inset:auto;display:block;flex:none;width:33.871px;height:21px;min-width:33.871px;max-width:none;border:0;transform:none;object-fit:contain}

/* Equal compact-tag gutters without stretching the original artwork. */
.compact-dd--rail > .dd-rail-icon.dd-rail-free {display:flex;align-items:center;justify-content:center;flex:0 0 45.871px;width:45.871px;min-width:45.871px;height:21px;padding:0 6px;box-sizing:border-box}
.compact-dd--rail > .dd-rail-icon.dd-rail-free > img {position:static;inset:auto;flex:none;width:33.871px;min-width:33.871px;height:21px;max-width:none;transform:none;object-fit:contain}
/* Flying icon clones scale proportionally instead of keeping fixed glyph pixels. */
.dd-rail-flight > .dd-rail-icon.dd-rail-free > img {position:absolute;inset:0 auto auto 13.0801683%;width:73.8396634%;height:100%;min-width:0;max-width:none;object-fit:contain}
#app #dd-hand .dd-swap-b .dd-action-tile.swap-quantity {display:flex;align-items:center;justify-content:center;flex:none;width:49px;min-width:49px;height:21px;padding:0 6px;box-sizing:border-box}
#app #dd-hand .dd-swap-b .dd-action-tile.swap-quantity svg {flex:none;width:37px;min-width:37px;max-width:none;height:21px}
#app :is(#dd-hand,#dd-draft) .dd-draw-b .dd-question-card .dd-question-mark {position:absolute;inset:0;z-index:1;display:block;width:100%;height:100%;transform:none;pointer-events:none}

/* B Cut-Paper Play drawings + C beige paper on neutral controls. */
body[data-theme="playful-print"] {--ri-button-neutral:#f7f1df}
.ri-ui-icon {display:inline-block;flex:none;width:21px;height:21px;vertical-align:middle;pointer-events:none;overflow:visible}
body[data-theme="playful-print"] .topbar nav .icon-button {display:inline-flex;align-items:center;justify-content:center;padding:0;background:var(--ri-button-neutral);border-radius:9px 6px 10px 7px}
body[data-theme="playful-print"] .topbar nav .icon-button::before {content:none}
body[data-theme="playful-print"] .topbar nav .icon-button:nth-child(2n) {border-radius:6px 10px 7px 9px}
body[data-theme="playful-print"] .topbar .ri-ui-icon {width:23px;height:23px}
body[data-theme="playful-print"] :is(.secondary,.portfolio-switch button,.expand-icon-button,.close,.purchase-close) {background:var(--ri-button-neutral);color:#1c1b18}
body[data-theme="playful-print"] :is(.topbar .icon-button.on,.portfolio-switch button[aria-pressed="true"]) {background:#f2d571;color:#1c1b18}
body[data-theme="playful-print"] :is(.secondary,.topbar .icon-button,.portfolio-switch button,.close,.purchase-close):hover:not(:disabled) {background:#f8e6a1;color:#1c1b18}
body[data-theme="playful-print"] :is(.expand-icon-button,.portfolio-switch button,.close,.purchase-close) {border-radius:9px 6px 10px 7px}
body[data-theme="playful-print"] .section-info::before {content:none}
body[data-theme="playful-print"] .section-info .ri-ui-icon {position:relative;width:21px;height:21px}
body[data-theme="playful-print"] .floating-hand .section-info .ri-ui-icon {width:19px;height:19px}
body[data-theme="playful-print"] :is(.expand-icon-button,.portfolio-switch button) .ri-ui-icon {width:18px;height:18px}
body[data-theme="playful-print"] .close {display:inline-flex;align-items:center;justify-content:center;padding:0}
body[data-theme="playful-print"] .close .ri-ui-icon {width:23px;height:23px}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-close::before {content:none}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-close .ri-ui-icon {width:22px;height:22px}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-trade {display:inline-flex;align-items:center;justify-content:center;gap:8px}
body[data-theme="playful-print"] .phase-advance .ri-ui-icon {width:18px;height:18px;margin-inline:2px;transform:rotate(-3deg)}
body[data-theme="playful-print"] #tutorial-next .ri-ui-icon {width:18px;height:18px;margin-left:6px}
body[data-theme="playful-print"] .dd-action-rail {border-radius:8px 5px 9px 6px;background:var(--ri-button-neutral)}
body[data-theme="playful-print"] .news-ticker-toggle-icon {width:22px;height:22px}
@media(prefers-reduced-motion:reduce){body[data-theme="playful-print"] .ri-ui-icon {animation:none;transition:none}}

/* The blind draw is a shared acquisition option beside the draft row. */
#app #dd-draft > .dd-action-card.dd-draw-b {flex:0 0 auto;align-self:flex-start;justify-self:start;width:max-content;max-width:100%;margin:0}
#app #dd-draft:not(.is-compact) > .dd-action-card.dd-draw-b {margin-top:6px}
#app #dd-draft .dd-draw-b .dd-question-pair {min-width:46px}

/* Small Cut-Paper toolbar controls. The five icons stay together on one row. */
body[data-theme="playful-print"] .topbar nav {
  display:grid;grid-template-columns:repeat(5,32px);grid-auto-flow:row;
  align-items:center;justify-content:end;gap:5px;flex:none;flex-wrap:nowrap;
}
body[data-theme="playful-print"] .topbar nav > .nav:not([hidden]) {
  grid-column:1 / -1;justify-self:end;width:max-content;max-width:100%;
  padding:5px 8px;min-height:28px;font-size:11px;
}
body[data-theme="playful-print"] .topbar nav :is(#header-layout-switch,#undo-button,#tutorial-button,#guide-button,#sound-button) {
  display:inline-flex;align-items:center;justify-content:center;flex:none;
  box-sizing:border-box;width:32px;min-width:32px;max-width:32px;
  height:32px;min-height:32px;max-height:32px;padding:0;
  border-width:2px;box-shadow:1px 2px 0 #1c1b18;
}
body[data-theme="playful-print"] .topbar nav .icon-button .ri-ui-icon {
  width:18px;height:18px;flex:none;
}
body[data-theme="playful-print"] .topbar nav .icon-button:hover:not(:disabled) {
  box-shadow:1px 1px 0 #1c1b18;
}
body[data-theme="playful-print"] .topbar nav .icon-button:active:not(:disabled) {
  transform:translate(1px,2px);box-shadow:none;
}
body[data-theme="playful-print"] .topbar nav .icon-button:disabled {box-shadow:none}
body[data-theme="playful-print"] .topbar nav :is(#header-layout-switch,#undo-button,#tutorial-button,#guide-button,#sound-button):focus-visible {
  outline:2px solid #1c1b18;outline-offset:3px;
}
body[data-theme="playful-print"][data-table-layout="phone"] .topbar nav {
  grid-template-columns:repeat(5,30px);gap:4px;
}
body[data-theme="playful-print"][data-table-layout="phone"] .topbar nav :is(#header-layout-switch,#undo-button,#tutorial-button,#guide-button,#sound-button) {
  width:30px;min-width:30px;max-width:30px;height:30px;min-height:30px;max-height:30px;padding:0;
}
body[data-theme="playful-print"][data-table-layout="phone"] .topbar nav .icon-button .ri-ui-icon {width:17px;height:17px}
/* Also keep manual Computer mode compact on a physically narrow screen. */
@media(max-width:600px) {
  body[data-theme="playful-print"] .topbar nav {grid-template-columns:repeat(5,30px);gap:4px}
  body[data-theme="playful-print"] .topbar nav :is(#header-layout-switch,#undo-button,#tutorial-button,#guide-button,#sound-button) {
    width:30px;min-width:30px;max-width:30px;height:30px;min-height:30px;max-height:30px;padding:0;
  }
  body[data-theme="playful-print"] .topbar nav .icon-button .ri-ui-icon {width:17px;height:17px}
}
body[data-theme="playful-print"] .topbar:has(nav > .nav:not([hidden])) {height:auto}
/* Let the brand use its own row at the smallest widths, never split the icons. */
@media(max-width:379px) {
  body[data-theme="playful-print"] .topbar {
    height:auto;flex-direction:column;align-items:flex-start;gap:8px;padding-block:9px;
  }
  body[data-theme="playful-print"] .topbar .brand,
  body[data-theme="playful-print"][data-table-layout="phone"] .topbar .brand {font-size:22px}
  body[data-theme="playful-print"] .topbar nav {align-self:flex-end;margin-left:0}
}

/* Plum control artwork; original printed card backs stay untouched. */
body[data-theme="playful-print"] #app #dd-draft .dd-draw-b .dd-question-card {
 background:#75466c;color:#fffdf7;border-color:#4d2d47;box-shadow:0 1px 0 #4d2d47;
}
body[data-theme="playful-print"] #app #dd-draft .dd-draw-b .dd-question-card::before {content:none}
/* One beige surface beneath all three portfolio view buttons. */
body[data-theme="playful-print"] .portfolio-switch {background:#f7f1df}

/* A closed ticker belongs to the board, beneath the sticky/expanded hand.
   Do not give its dock a z-index: the fixed News stage must still escape it. */
/* The phase-attention class sets z-index:2; it must not trap the fixed News stage. */
body[data-theme="playful-print"] #app #news-section.news-ticker-dock {z-index:auto}
body[data-theme="playful-print"] #app #news-section:not([data-news-open="true"]) .news-banner-toggle {z-index:10}

/* Section expand/fold controls stay square; phone .secondary rules cannot stretch them. */
body[data-theme="playful-print"] :is(#app,#modal) :is(.board-section-head,.swap-draft-head) .expand-icon-button.secondary {
 display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
 flex:0 0 30px;width:30px;min-width:30px;max-width:30px;
 height:30px;min-height:30px;max-height:30px;padding:3px;gap:0;line-height:1;color:#1c1b18;
}
body[data-theme="playful-print"] :is(#app,#modal) :is(.board-section-head,.swap-draft-head) .expand-icon-button.secondary svg {
 display:block;flex:none;width:18px;height:18px;min-width:18px;max-width:18px;color:inherit;
}

/* Dark green ONLINE edition stamp with a black outline. */
body[data-theme="playful-print"] .brand.brand-edition-stamp > span {color:#1c1b18;text-decoration:none}
body[data-theme="playful-print"] .brand.brand-edition-stamp .brand-retail-row {display:flex;align-items:center;gap:8px}
body[data-theme="playful-print"] .brand.brand-edition-stamp .brand-investor {position:relative;display:block;width:max-content;padding-bottom:6px}
body[data-theme="playful-print"] .brand.brand-edition-stamp .brand-investor::after {content:'';position:absolute;left:0;right:0;bottom:0;height:4px;background:#f2d571}
body[data-theme="playful-print"] .brand.brand-edition-stamp .online-name {
 display:inline-block;margin:0;padding:3px 4px;border:1px solid #1c1b18;border-radius:2px;
 font:700 7px/1.2 Body,Arial,sans-serif;letter-spacing:.08em;color:#fffdf7;background:#1f4d36;text-decoration:none;transform:rotate(-3deg);
}
/* Remove only the extra vertical space, preserving logo and button sizes. */
body[data-theme="playful-print"] .topbar,
body[data-theme="playful-print"][data-table-layout="phone"] .topbar {height:auto;min-height:0;padding-top:4px;padding-bottom:4px}

/* Availability grows gently in place; it adds no frame or luminous outline. */
body[data-theme="playful-print"] #app .dd-action-glow {
 outline:none;box-shadow:none;transform-origin:center;
 animation:ri-dd-choice-pulse 1.75s ease-in-out infinite;
}
body[data-theme="playful-print"] #app :is(.primary,.secondary).dd-action-glow {box-shadow:2px 3px 0 #1c1b18}
body[data-theme="playful-print"] #app :is(.primary,.secondary).dd-action-glow:active:not(:disabled) {box-shadow:none}
body[data-theme="playful-print"] #app .dd-action-glow:focus-visible {outline:2px solid #1c1b18;outline-offset:3px}
body[data-theme="playful-print"] #app .dd-action-glow.hand-drag-source {animation:none;scale:1}
@keyframes ri-dd-choice-pulse {
 0%,100% {scale:1}
 50% {scale:1.05}
}
@media(prefers-reduced-motion:reduce) {
 body[data-theme="playful-print"] #app .dd-action-glow {animation:none;scale:1}
}
/* Selected swap cards stay yellow in compact and full-art views, distinct from hover. */
body[data-theme="playful-print"] #modal :is(#swap-hand-cards,#swap-draft-cards) .swap-choice-card:is([aria-pressed="true"],:has(>.swap-check:checked)) {
 background:#f2d571;color:#1c1b18;border-color:#1c1b18;box-shadow:2px 3px 0 #1c1b18;
}
body[data-theme="playful-print"] #modal :is(#swap-hand-cards,#swap-draft-cards) .swap-choice-card:is([aria-pressed="true"],:has(>.swap-check:checked)) :is(.compact-dd--rail,.swap-choice-title) {
 background:#f2d571;color:#1c1b18;border-color:#1c1b18;
}
body[data-theme="playful-print"] #modal :is(#swap-hand-cards,#swap-draft-cards) .swap-choice-card:is([aria-pressed="true"],:has(>.swap-check:checked)) .swap-choice-title {font-weight:700}

/* Keep the existing Buy caption and artwork in one row; no Buy size/flow changes. */
body[data-theme="playful-print"] #purchase-confirm-dialog #confirm-stock-buy {
 display:inline-flex;align-items:center;justify-content:center;gap:6px;
}
body[data-theme="playful-print"] #purchase-confirm-dialog #confirm-stock-buy > .ri-ui-icon {
 flex:none;width:18px;height:18px;min-width:18px;max-width:18px;
}
/* An anchored sale has one readable action row, not an icon stacked over text. */
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] {
 width:max-content;max-width:calc(100vw - 16px);overflow:visible;padding:0;border:0;background:transparent;box-shadow:none;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] .sale-confirm-actions {
 display:flex;align-items:center;gap:6px;width:max-content;max-width:100%;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] :is(#sell-stock,.purchase-cancel-sale) {
 display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
 flex:0 0 auto;width:auto;min-width:0;max-width:none;height:34px;min-height:34px;max-height:34px;
 margin:0;padding:6px 10px;gap:0;border:2px solid #1c1b18;border-radius:7px 6px 8px 6px;
 color:#1c1b18;font:700 13px/1.15 Body,Arial,sans-serif;white-space:nowrap;box-shadow:0 2px 0 #1c1b18;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock {background:#f2d571}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] .purchase-cancel-sale {background:#f7f1df}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] :is(#sell-stock,.purchase-cancel-sale):hover:not(:disabled) {background:#f8e6a1;transform:none;box-shadow:0 1px 0 #1c1b18}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] :is(#sell-stock,.purchase-cancel-sale):active:not(:disabled) {transform:translateY(1px);box-shadow:none}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] :is(#sell-stock,.purchase-cancel-sale):focus-visible {outline:2px solid #1c1b18;outline-offset:3px}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] .sale-confirm-label {display:block;white-space:nowrap}

/* Selected M1: distinguish the ticker without changing any type or icon sizes. */
body[data-theme="playful-print"] #market-cards.market-stack .quote-ticker {
 background:#f2e7cc;outline:1px solid #b8ad94;outline-offset:1px;border-radius:2px;
}
/* Selected D2: a fixed aligned rule, with the dollar amount four pixels after it. */
body[data-theme="playful-print"] #market-cards.market-stack .quote-price {
 box-sizing:border-box;display:flex;align-items:center;justify-content:flex-start;position:relative;
 flex:0 0 calc(3ch + 5px);min-width:calc(3ch + 5px);width:calc(3ch + 5px);
 padding-left:4px;padding-right:0;border-left:0;text-align:left;
}
body[data-theme="playful-print"] #market-cards.market-stack .quote-price::before {
 content:'';position:absolute;left:0;top:50%;height:1.2em;transform:translateY(-50%);border-left:1.5px solid #1c1b18;
}
/* Discount rows retain both the struck original price and the purchase amount. */
body[data-theme="playful-print"] #market-section.is-share-targeting #market-cards.market-stack .quote-price {
 flex-basis:calc(6ch + 10px);min-width:calc(6ch + 10px);width:calc(6ch + 10px);gap:4px;
}

/* Whole section headers forward to the existing fold/expand control. */
body:is([data-theme="playful-print"],[data-review-direction="playful"]) :is(#app,#modal) .header-toggleable:has(.header-toggle-target:not(:disabled):not([aria-disabled="true"])) {
 cursor:pointer;
}
body:is([data-theme="playful-print"],[data-review-direction="playful"]) :is(#app,#modal) .header-toggleable:hover:not(:has(.section-info:hover)) .header-toggle-target.secondary:not(:disabled):not([aria-disabled="true"]),
body:is([data-theme="playful-print"],[data-review-direction="playful"]) :is(#app,#modal) .header-toggle-target.secondary:focus-visible:not(:disabled):not([aria-disabled="true"]) {
 background:#f8e6a1;color:#1c1b18;
}
/* Payout amounts use ink on paper, including the SVG receipt above coin flights. */
body:is([data-theme="playful-print"],[data-review-direction="playful"]) #app :is(.dividend-visible strong,.dividend-summary strong,.dividend-payers>span b) {
 color:#1c1b18;
}
body:is([data-theme="playful-print"],[data-review-direction="playful"]) #app .dividend-summary .eyebrow {
 color:#5a5141;
}
body:is([data-theme="playful-print"],[data-review-direction="playful"]) #app .dividend-flight .dividend-receipt {
 fill:#1c1b18;stroke:#fffdf7;stroke-width:3px;paint-order:stroke fill;
}

/* Memo stays in the retained News stage. Its return action follows the pair. */
body[data-theme="playful-print"] #news-object-actions[data-news-anchor="memo"] #news-object-back {
 white-space:nowrap;
}
/* Upcoming News is identified by the existing yellow eye, without a yellow frame. */
body[data-theme="playful-print"] #news-object-stage .news-stack-card.is-preview:not(:focus-visible) {
 outline:none;outline-offset:0;
}
/* The phase control explains why the visible card is now the active action. */
body[data-theme="playful-print"] #next-button[data-news-reading="true"] {
 background:#f7f1df;color:#75466c;border-color:#75466c;opacity:1;cursor:progress;
}

/* Selected News direction 1: a shared section heading and quiet ticker dots. */
body[data-theme="playful-print"] #app #news-section .news-banner-toggle,
body[data-theme="playful-print"] #app #news-section .news-banner-toggle:is(:hover,:disabled) {
 background:#f3eddd;color:#1c1b18;border:2px solid #1c1b18;
 border-radius:12px;box-shadow:3px 4px 0 #1c1b18;
}
body[data-theme="playful-print"] #app #news-section .news-banner-toggle>strong {
 padding:0;border:0;border-radius:0;background:transparent;
 font:700 21px/1.2 Display,Georgia,serif;letter-spacing:-.04em;
}
body[data-theme="playful-print"] #app #news-section .news-ticker-track>span {font-size:14px;font-weight:500}
body[data-theme="playful-print"] #app #news-section .news-ticker-track i {
 display:block;flex:none;width:4px;height:4px;border-radius:50%;background:#655f52;color:transparent;font-size:0;
}
body[data-theme="playful-print"][data-table-layout="phone"] #app #news-section .news-banner-toggle>strong {font-size:20px}

/* Each physical card supplies perspective to its own rotor, without flattening it. */
#news-object-stage .news-stack-card {perspective:1200px;overflow:visible}
#news-object-stage .news-card-turn {transform-style:preserve-3d;transform-origin:center;overflow:visible}
#news-object-stage .news-visible-face {transform:translateZ(.25px)}
#news-object-stage .news-reverse-back {transform:rotateY(180deg) translateZ(.25px)}
#news-object-stage .news-stack-card[data-news-face-known="false"] .news-preview-eye {visibility:hidden}
#news-object-stage .news-stack-card[data-news-memo="true"] .news-preview-eye {visibility:visible}
#news-object-stage .news-stack-card.has-card-motion {touch-action:none;cursor:grab}
#news-object-stage .news-stack-card.has-card-motion.is-dragging {cursor:grabbing}

/* Printed News cards keep their clean edges in every reveal and gesture state. */
body[data-theme="playful-print"] #app #news-object-stage :is(.news-stack-card,.news-card-turn,.news-card-face,.news-card-face img) {
 box-shadow:none;filter:none;
}

/* Keep the existing Buy caption and artwork in one row; no Buy size/flow changes. */
body[data-theme="playful-print"] #purchase-confirm-dialog #confirm-stock-buy {
 display:inline-flex;align-items:center;justify-content:center;gap:6px;
}
body[data-theme="playful-print"] #purchase-confirm-dialog #confirm-stock-buy > .ri-ui-icon {
 flex:none;width:18px;height:18px;min-width:18px;max-width:18px;
}
/* One compact sale confirmation remains under the selected click point. */
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] {
 width:max-content;max-width:100vw;overflow:visible;padding:0;border:0;background:transparent;box-shadow:none;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] .sale-confirm-actions {
 display:flex;align-items:center;width:max-content;max-width:100%;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock {
 display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;
 flex:0 0 auto;width:auto;min-width:0;max-width:none;height:34px;min-height:34px;max-height:34px;
 margin:0;padding:6px 10px;gap:0;border:2px solid #1c1b18;border-radius:7px 6px 8px 6px;
 color:#1c1b18;background:#f2d571;font:700 13px/1.15 Body,Arial,sans-serif;white-space:nowrap;box-shadow:0 2px 0 #1c1b18;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:hover:not(:disabled) {background:#f8e6a1;transform:none;box-shadow:0 1px 0 #1c1b18}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:active:not(:disabled) {transform:translateY(1px);box-shadow:none}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:focus-visible {outline:2px solid #1c1b18;outline-offset:3px}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] .sale-confirm-label {display:block;white-space:nowrap}

/* Pile controls occupy the cell space behind the real, individually interactive cards. */
#history-plot .portfolio-ladder-svg {overflow-anchor:none}
.portfolio-heading-actions {gap:5px}
#toggle-portfolio-piles {flex:none}
#history-plot .portfolio-pile-toggle {cursor:pointer}
#history-plot .portfolio-pile-hit {fill:transparent;stroke:transparent;pointer-events:all}
#history-plot .portfolio-pile-toggle:focus-visible {outline:none}
#history-plot .portfolio-pile-toggle:focus-visible .portfolio-pile-hit {stroke:#75466c;stroke-width:2}
#history-plot .ladder-stock {transform-origin:0 0}
/* Use the phone canvas for the portfolio without widening the other boards. */
body[data-theme="playful-print"][data-table-layout="phone"] #app .player-board {
 width:calc(100% + 20px);max-width:none;margin-inline:-10px;
}
/* Compact rows keep their annotations in the small space above the face. */
body[data-theme="playful-print"] #portfolio-section .ladder-fork-mark {font-size:6.5px;letter-spacing:0}
body[data-theme="playful-print"] #portfolio-section :is(.ladder-blue-chip-label,.ladder-cap-label) {font-size:11px;font-weight:800;letter-spacing:0}
body[data-theme="playful-print"] #portfolio-section .portfolio-pile-count {font:700 6.5px Body,sans-serif;fill:#625643}

/* Selected 1B: the warm split frame, with price and coin ink centered separately. */
body[data-theme="playful-print"] #portfolio-section .ladder-money-frame {
 fill:#926d49;stroke:#725235;stroke-width:1.1;pointer-events:none;
}
body[data-theme="playful-print"] #portfolio-section .ladder-price-bed {fill:#efdeba;pointer-events:none}
body[data-theme="playful-print"] #portfolio-section .ladder-dividend-bed {fill:#ead9b8;pointer-events:none}
body[data-theme="playful-print"] #portfolio-section .ladder-frame-divider {fill:#725235;pointer-events:none}
body[data-theme="playful-print"] #portfolio-section :is(.ladder-price,.ladder-cap-price,.ladder-income) {
 dominant-baseline:alphabetic;font-kerning:none;font-variant-numeric:normal;font-synthesis:weight;letter-spacing:0;
}
body[data-theme="playful-print"] #portfolio-section :is(.ladder-price,.ladder-cap-price) {fill:#4c3522;font-family:Mono,monospace;font-weight:700}
body[data-theme="playful-print"] #portfolio-section .ladder-income-coin {fill:#ffe69a;stroke:#5e491c;stroke-width:1}
body[data-theme="playful-print"] #portfolio-section .ladder-income {fill:#282316;font:800 10px Body,sans-serif;pointer-events:none}

/* Compact Open fan uses the shared plum DD accent, matching Swap 2 for 1. */
body:is([data-review-direction="playful"],[data-theme="playful-print"]) #app #dd-draft.is-compact > .dd-action-card.dd-draw-b {
 width:53px;max-width:none;height:34px;min-height:34px;padding:0;opacity:1;filter:none;
}
body:is([data-review-direction="playful"],[data-theme="playful-print"]) #app #dd-draft.is-compact .dd-draw-b.dd-action-card .dd-action-rail {
 justify-content:center;width:53px;height:34px;min-height:34px;padding:0;
 background:var(--ri-dd-accent);color:#fffdf7;
}
body:is([data-review-direction="playful"],[data-theme="playful-print"]) #app #dd-draft.is-compact .dd-draw-b .ri-ui-icon {
 display:block;width:32px;height:30px;
}

body:is([data-review-direction="playful"],[data-theme="playful-print"]) #app #dd-draft.is-compact .dd-draw-b .ri-ui-icon path {fill:var(--ri-dd-accent)}

/* Expanded shared draft uses the same staggered two-row fan as the hand. */
body[data-theme="playful-print"] .draft-panel {container-type:inline-size}
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) {
 --draft-fan-width:clamp(88px,calc((100cqw - 50px) / 3),170px);
 --dd-width:var(--draft-fan-width);
 display:grid;grid-template-rows:44px 44px;grid-auto-flow:column;grid-auto-columns:var(--draft-fan-width);
 justify-content:safe center;align-items:start;align-content:start;column-gap:10px;row-gap:0;
 width:100%;height:calc(var(--draft-fan-width) * 1051 / 751 + 72px);padding:12px 26px 16px 8px;
 overflow-x:auto;overflow-y:hidden;scrollbar-width:thin;
}
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) > .dd-card {
 position:relative;width:var(--draft-fan-width);min-width:0;padding:0;z-index:1;
}
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) > .dd-card:nth-child(even) {z-index:2}
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) > .dd-card .dd-face {
 border-radius:8px;transform:rotate(-2deg);transform-origin:center top;box-shadow:0 5px 12px #001b1466;
}
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) > .dd-card:nth-child(even) .dd-face {transform:rotate(2deg)}
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) > .dd-draw-b {grid-row:1 / span 2;align-self:start;z-index:3}
/* Expanded Draw 2 is two complete, untouched printed backs in the same fan. */
body[data-theme="playful-print"] #app #dd-draft:not(.is-compact) > .dd-action-card.dd-draw-expanded {
 display:block;position:relative;width:var(--draft-fan-width);max-width:none;height:calc(var(--draft-fan-width) * 1051 / 751 + 44px);
 min-height:44px;margin:0;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;transform:none;
}
body[data-theme="playful-print"] #app #dd-draft .dd-draft-back-pair {position:relative;display:block;width:100%;height:100%;pointer-events:none}
body[data-theme="playful-print"] #app #dd-draft .dd-draft-back {
 position:absolute;top:0;left:0;display:block;width:100%;height:auto;border:0;border-radius:8px;
 transform:rotate(-2deg);transform-origin:center top;box-shadow:0 5px 12px #001b1466;
}
body[data-theme="playful-print"] #app #dd-draft .dd-draft-back:last-child {top:44px;transform:rotate(2deg)}
/* Keep the retained fan and its actions within a narrow phone panel. */
body[data-theme="playful-print"] #app > .floating-hand.hand-fan-open .hand-section,
body[data-theme="playful-print"] #app > .floating-hand.hand-fan-open .dd-phase-overview {width:100%;min-width:0}
body[data-theme="playful-print"] #app > .floating-hand.hand-fan-open .dd-phase-actions > button {min-width:0;white-space:normal}
/* Budget the fan against its padded panel, including both gaps and rotated edges. */
body[data-theme="playful-print"] #app > .floating-hand.hand-fan-open .hand-section {container-type:inline-size}
body[data-theme="playful-print"] #app > .floating-hand #dd-hand.dd-phase-fan {
 --phase-fan-art-width:min(170px,calc((100cqw - 44px) / 3));padding-inline:12px;
}
body[data-theme="playful-print"][data-table-layout="phone"] #app > .floating-hand #dd-hand.dd-phase-fan {
 --phase-fan-art-width:min(140px,calc((100cqw - 44px) / 3));
}
@media(max-height:540px){
 body[data-theme="playful-print"] #app > .floating-hand #dd-hand.dd-phase-fan,
 body[data-theme="playful-print"][data-table-layout="phone"] #app > .floating-hand #dd-hand.dd-phase-fan {
  --phase-fan-art-width:min(100px,calc((100cqw - 44px) / 3));
 }
}


#modal:has(.blind-back-preview) {width:min(680px,calc(100vw - 24px));max-height:94dvh;overflow:auto}
.blind-back-preview {display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:20px 14px 26px;perspective:1000px}
.blind-back-preview>button {position:relative;display:block;width:100%;max-width:min(260px,calc((100dvh - 260px) * .714));min-width:0;justify-self:center;padding:0;background:transparent;border:0;box-shadow:none;transform:translate(23%,8px) rotate(-9deg);transition:transform .36s cubic-bezier(.2,.72,.2,1)}
.blind-back-preview>button:last-child {transform:translate(-23%,-3px) rotate(6deg);z-index:1}
.blind-back-preview>button>img {display:block;width:100%;height:auto;border-radius:9px;box-shadow:0 6px 16px #1c1b1844}
.blind-back-preview.is-fanned>button:first-child {transform:translate(0,8px) rotate(-6deg)}
.blind-back-preview.is-fanned>button:last-child {transform:translate(0,-3px) rotate(4deg)}
.blind-back-preview>button:focus-visible {outline:2px solid #1c1b18;outline-offset:5px}
.blind-back-actions {display:flex;justify-content:center;flex-wrap:wrap;gap:10px}
.blind-back-actions>button {min-width:0;white-space:normal}
@media(prefers-reduced-motion:reduce){.blind-back-preview>button{transition:none}}

/* Readable card objects: looping browse, touch swipe, and two-sided 3D flip. */
.dd-preview-face {perspective:1200px;overflow:visible;touch-action:pan-y;cursor:pointer}
.dd-card-rotor {position:relative;display:block;transform-style:preserve-3d;transition:transform .45s cubic-bezier(.2,.72,.2,1);border-radius:inherit}
.dd-preview-face.is-back .dd-card-rotor {transform:rotateY(180deg)}
.dd-card-rotor>img {display:block;width:100%;height:auto;border-radius:10px;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.dd-card-rotor>.dd-card-back {position:absolute;inset:0;transform:rotateY(180deg)}
.dd-object-controls {display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px}
.dd-object-controls>.secondary {min-width:44px;min-height:44px;padding:7px 12px}
.dd-object-status {display:block;text-align:center;font:12px/1.3 Body,sans-serif;padding:5px;color:var(--muted)}
.dd-preview-face:focus-visible {outline:2px solid #1c1b18;outline-offset:3px}
/* Mouse inspection has no surrounding focus decoration. Keyboard focus stays visible. */
body[data-theme="playful-print"] #modal:is(.dd-card-dialog,:has(.blind-back-preview)):not(:focus-visible),
body[data-theme="playful-print"] #modal :is(.dd-preview-face,.blind-back-preview>button):not(:focus-visible) {outline:none}
#modal.dd-card-dialog {--dd-dialog-max-width:520px;width:min(calc(100vw - 20px),var(--dd-dialog-max-width),max(180px,calc((100dvh - 230px) * .714 + 20px)))}
@media(prefers-reduced-motion:reduce){.dd-card-rotor{transition:none}}

/* Direct manipulation: no flip toolbar or click-to-flip; drag tracks the pointer. */
.dd-preview-face {touch-action:none;cursor:grab}
.dd-preview-face.is-dragging {cursor:grabbing}
.dd-preview-face.is-dragging .dd-card-rotor {transition:none}
#modal.dd-card-dialog {width:min(calc(100vw - 20px),var(--dd-dialog-max-width),max(180px,calc((100dvh - 175px) * .714 + 20px)))}
#modal:has(.blind-back-preview),body[data-table-layout="phone"] #modal:has(.blind-back-preview) {
 width:min(680px,calc(100vw - 24px));max-width:calc(100vw - 24px);max-height:94dvh;
 padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;
}
#modal:has(.blind-back-preview) .modal-heading,#modal:has(.blind-back-preview) .close {display:none}
.blind-back-preview>button {touch-action:none;cursor:grab}
.blind-back-preview>button>img {transition:transform .32s cubic-bezier(.2,.72,.2,1),opacity .4s;transform-origin:center}
.blind-back-preview>button.is-dragging>img {transition:none}
.blind-back-preview.is-refusing>button>img {opacity:.18}
.blind-back-refusal {position:absolute;top:40%;left:5%;width:90%;margin:0;text-align:center;font:700 20px/1.4 Body,sans-serif;color:#1c1b18;text-shadow:0 1px 2px #fffdf7,0 0 10px #fffdf7;pointer-events:none}
.blind-back-refusal:empty {display:none}
@media(prefers-reduced-motion:reduce){.blind-back-preview>button>img{transition:none}}
body[data-theme="playful-print"] #modal:has(.blind-back-preview) {padding:0;border:0;background:transparent;box-shadow:none;overflow:visible}
/* Each blind card owns its camera: the intervening button must not flatten its turn. */
.blind-back-preview>button,.blind-draw-reveal>button {perspective:650px;perspective-origin:50% 50%;transform-style:preserve-3d}
.blind-back-preview>button>img {backface-visibility:hidden;-webkit-backface-visibility:hidden}
/* Leave room for the near edge to project above/below the resting card while turning. */
body[data-theme="playful-print"] #modal.dd-card-dialog {
 overflow:visible;
 width:min(calc(100vw - 32px),var(--dd-dialog-max-width),max(180px,calc((100dvh - 240px) * .714 + 20px)));
}
/* Keep the refusal readable above the 3D backs, on an opaque paper label. */
body[data-theme="playful-print"] #modal .blind-back-refusal {
 z-index:10;box-sizing:border-box;left:5%;width:90%;padding:12px 16px;
 color:#1c1b18;background:#fffdf7;border:2px solid #1c1b18;border-radius:8px;
 box-shadow:3px 4px 0 #1c1b18;text-shadow:none;opacity:1;
 font:700 clamp(18px,3vw,22px)/1.35 Body,sans-serif;
}

/* Trailing clearance is needed only when content follows an offscreen hand. */
#app:has(> .floating-hand)::after {content:'';display:block;grid-column:1 / -1;width:100%;height:var(--expanded-hand-space,0px);flex:none;pointer-events:none}
html {scroll-padding-bottom:var(--hand-scroll-clearance,0px)}
body[data-theme="playful-print"] #app > .floating-hand.hand-fan-open {max-height:min(60dvh,calc(100dvh - 160px));overflow-y:auto;overscroll-behavior:contain}
body[data-theme="playful-print"] #app > .floating-hand.hand-fan-open .hand-section {flex:none}
/* Keep the browse position available to assistive technology, without a visible caption. */
#dd-preview .dd-object-status {position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#dd-preview .preview-actions {margin-top:6px}
/* The compact dashboard shows every DD icon in wrapping rows, never a horizontal strip. */
body[data-theme="playful-print"] #app > .floating-hand .hand-tray {flex-wrap:wrap}
body[data-theme="playful-print"] #app > .floating-hand .hand-tray #dd-hand.is-compact {
 flex:1 1 100%;width:100%;max-height:none;flex-wrap:wrap;overflow:visible;
}
body[data-theme="playful-print"] #app > .floating-hand .hand-tray > .phase-advance {margin-left:auto}
body[data-theme="playful-print"] #app > .floating-hand.hand-tall:not(.hand-fan-open) {position:relative;bottom:auto}

/* The personal hand belongs below the portfolio, docking with the phase dashboard only when offscreen. */
#personal-hand-anchor {height:0;pointer-events:none}
body[data-theme="playful-print"] #app > .floating-hand:not(.hand-docked) {
 position:relative;left:auto;top:auto;bottom:auto;transform:none;width:100%;margin:16px auto 0;
}
body[data-theme="playful-print"] #app > .floating-hand.hand-docked {
 position:fixed;left:50%;top:auto;bottom:max(8px,env(safe-area-inset-bottom));transform:translateX(-50%);
 width:min(1636px,calc(100vw - 64px));margin:0;z-index:21;
}
@media(max-width:1150px){body[data-theme="playful-print"] #app > .floating-hand.hand-docked{width:calc(100vw - 40px)}}
@media(max-width:740px){body[data-theme="playful-print"] #app > .floating-hand.hand-docked{width:calc(100vw - 24px)}}
body[data-theme="playful-print"][data-table-layout="phone"] #app > .floating-hand.hand-docked {width:min(calc(100vw - 20px),calc(var(--phone-canvas-width,390px) - 20px))}

/* The whole stable card surface catches gestures, even at its corners or mid-spin. */
.has-card-motion {touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
.has-card-motion.is-dragging {cursor:grabbing}
.has-card-motion :is(.dd-card-rotor,.news-card-turn),.has-card-motion :is(.dd-card-rotor,.news-card-turn) * {pointer-events:none;user-select:none;-webkit-user-select:none}
.card-motion-active :is(.dd-card-rotor,.news-card-turn) {transition:none!important;will-change:transform}

/* A swapped card explains its one-round lock on touch as well as hover/focus. */
body[data-theme="playful-print"] #dd-preview .dd-lock-note {margin:8px 0 0;padding:8px 12px;background:#f3eddd;color:#1c1b18;border:1px solid #1c1b18;border-radius:6px;font:600 14px/1.4 Body,sans-serif;text-align:center}

/* Clean cut, whiter: neutral 350 gsm-style stock between the untouched printed faces.
   The sidewall mesh uses the same rounded outline and travels with the 3D rotor.
   Original print planes close the core; extra white face caps would risk covering the art. */
.card-stock {position:absolute;display:block;inset:0;border-radius:inherit;transform-style:preserve-3d;overflow:visible;pointer-events:none}
.card-stock>.card-stock-edge {position:absolute;display:block;background:#fff;transform-origin:center;backface-visibility:visible;pointer-events:none}
.dd-card-rotor>img:not(.dd-card-back) {transform:translateZ(var(--card-stock-half,0px))}
.dd-card-rotor>.dd-card-back {transform:rotateY(180deg) translateZ(var(--card-stock-half,0px))}
#news-object-stage .news-visible-face {transform:translateZ(var(--card-stock-half,0px))}
#news-object-stage .news-reverse-back {transform:rotateY(180deg) translateZ(var(--card-stock-half,0px))}

/* A hidden DD object has only its public back and this neutral core, never a front. */
.blind-back-rotor {position:relative;display:block;width:100%;border-radius:9px;transform-style:preserve-3d;transform-origin:center;transition:transform .32s cubic-bezier(.2,.72,.2,1),opacity .4s;box-shadow:0 6px 16px #1c1b1844}
.blind-back-rotor>img {display:block;width:100%;height:auto;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(var(--card-stock-half,0px))}
.blind-back-preview>button.is-dragging>.blind-back-rotor {transition:none}
.blind-back-preview.is-refusing>button>.blind-back-rotor {opacity:.18}
.blind-back-rotor>* {pointer-events:none;user-select:none;-webkit-user-select:none}
.blind-draw-flip>img:not(.blind-draw-back) {transform:translateZ(var(--card-stock-half,0px))}
.blind-draw-flip>.blind-draw-back {transform:rotateY(180deg) translateZ(var(--card-stock-half,0px))}
@media(prefers-reduced-motion:reduce){.blind-back-rotor{transition:none}}

/* Confirming Draw 2 turns the backs already on the table, in their existing fan. */
.blind-back-preview.is-retained-draw .blind-draw-flip {animation:none;transition:none;aspect-ratio:751 / 1051}
.blind-back-preview.is-retained-draw .blind-draw-flip>img {position:absolute;inset:0;width:100%;height:100%;border-radius:inherit;object-fit:cover}
.blind-back-preview.is-retained-draw>button {cursor:pointer}
.blind-back-preview.is-retained-draw>button:first-child {z-index:auto;transform:translate(23%,8px) rotate(-9deg)}
.blind-back-preview.is-retained-draw>button:last-child {z-index:1;transform:translate(-23%,-3px) rotate(6deg)}
.blind-back-preview.is-retained-draw.is-fanned>button:first-child {transform:translate(0,8px) rotate(-6deg)}
.blind-back-preview.is-retained-draw.is-fanned>button:last-child {transform:translate(0,-3px) rotate(4deg)}
.blind-back-preview.is-retained-draw .blind-draw-flip>.blind-draw-back {transform:rotateY(180deg) translateZ(var(--card-stock-half,0px))}

/* A shorter attached tab sits behind the entire floating dashboard. */
body[data-theme="playful-print"] #app>.floating-hand {
 padding:24px 0 0!important;border:0!important;border-radius:0;
 background:transparent!important;box-shadow:none!important;overflow:visible!important;isolation:isolate;
}
#app>.floating-hand>.floating-dashboard {
 position:relative;z-index:0;width:100%;min-width:0;padding:0 8px 8px;
 border:2px solid #1c1b18;border-radius:12px;background:#e9f0df;
 box-shadow:3px 4px 0 #1c1b18;
}
body[data-theme="playful-print"] #app>.floating-hand .board-phase-row[data-phase] {border-radius:9px 9px 0 0}
#app>.floating-hand .phase-tracker-slot {flex:none}
#app>.floating-hand .phase-advance-tab {
 position:absolute;top:0;left:0;width:104px;z-index:-1;
 visibility:hidden;transform-origin:center;
}
#app>.floating-hand .phase-round-tab {
 position:absolute;top:0;left:0;z-index:-1;display:flex;align-items:center;justify-content:center;
 box-sizing:border-box;width:76px;height:42px;padding:0 5px 18px;border:2px solid #1c1b18;border-bottom:0;
 border-radius:8px 8px 0 0;background:#1c1b18;color:#f2d571;
 font:700 13px/18px Body,sans-serif;white-space:nowrap;pointer-events:none;
}
#app>.floating-hand .phase-round-label {display:inline-block;transform-origin:center}
/* The round has its own tab, leaving the full black strip for the five phases. */
body[data-theme="playful-print"] #app>.floating-hand .board-phase-row[data-phase] .phase-rail li {
 font-size:clamp(10.5px,3.2vw,13px);line-height:1.2;letter-spacing:0;
}
#app>.floating-hand .phase-advance-tab[data-positioned="true"] {visibility:visible}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance-tab>#next-button {
 display:flex;align-items:center;justify-content:center;gap:5px;width:100%;height:42px;min-height:42px;
 position:relative;margin:0;padding:0 0 12px;border:2px solid #1c1b18;border-bottom:0;border-radius:8px 8px 0 0;
 background:#f2d571;color:#1c1b18;box-shadow:none;font:700 13px/1 Body,sans-serif;white-space:nowrap;
}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance-tab>#next-button:disabled {background:#e4dfd1;color:#655f52}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance-tab>#next-button:hover:not(:disabled) {background:#f8e3a0;transform:none;box-shadow:none}
body[data-theme="playful-print"] #app>.floating-hand .phase-advance-tab>#next-button:active:not(:disabled) {background:#e8c558;transform:none}
#app>.floating-hand .phase-advance-tab .ri-ui-icon {width:18px;height:18px;flex:none;transform:none}
#app>.floating-hand .floating-dashboard>.hand-section {margin:0;border-radius:0 0 9px 9px;overflow:hidden}
body[data-theme="playful-print"] #app>.floating-hand.hand-fan-open {max-height:none;display:block}
#app>.floating-hand.hand-fan-open>.floating-dashboard {
 display:flex;flex-direction:column;max-height:min(calc(60dvh - 24px),calc(100dvh - 184px));min-height:0;
}
body[data-theme="playful-print"] #app>.floating-hand.hand-fan-open .floating-dashboard>.hand-section {
 flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
}
/* The pulse must not detach the tab from its dashboard edge. */
#app>.floating-hand .phase-advance-tab>#next-button.dd-action-glow {animation:none;scale:1}
/* Center the label and arrow together in the exposed face, with equal side space. */
#app>.floating-hand .phase-advance-tab>#next-button .phase-advance-label {
 display:inline-flex;align-items:center;justify-content:center;gap:6px;position:relative;top:-4px;width:auto;max-width:100%;margin:0;padding:0;background:transparent;font:inherit;line-height:18px;text-align:center;
}
#app>.floating-hand .phase-advance-tab>#next-button .phase-advance-label>.ri-ui-icon {
 position:static;flex:none;width:16px;height:16px;margin:0;transform:none;
}

/* Unrevealed News can be moved and tested, but never exposes its hidden face. */
#news-object-stage .news-back-draggable {touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab}
#news-object-stage .news-back-draggable.is-news-dragging {cursor:grabbing}
#news-object-stage .news-back-draggable>.news-card-turn,
#news-object-stage .news-back-draggable>.news-card-turn * {pointer-events:none;user-select:none;-webkit-user-select:none}
#news-object-stage .news-back-draggable>.news-card-turn {transition:transform .32s cubic-bezier(.2,.72,.2,1),opacity .4s}
#news-object-stage .is-news-dragging>.news-card-turn {transition:none}
#news-object-stage .is-news-refusing>.news-card-turn {opacity:.18}
.news-locked-notice {
 position:fixed;left:50%;top:40%;transform:translate(-50%,-50%);z-index:1200;
 width:min(430px,calc(100vw - 40px));margin:0;padding:12px 16px;
 color:#1c1b18;background:#fffdf7;border:2px solid #1c1b18;border-radius:8px;
 box-shadow:3px 4px 0 #1c1b18;text-shadow:none;text-align:center;pointer-events:none;
 font:700 clamp(18px,3vw,22px)/1.35 Body,sans-serif;
}
@media(prefers-reduced-motion:reduce){#news-object-stage .news-back-draggable>.news-card-turn {transition:none}}

/* Selected Single line: the compact dark wire with a restrained LIVE signal. */
body[data-theme="playful-print"] #app #news-section .news-banner-toggle,
body[data-theme="playful-print"] #app #news-section .news-banner-toggle:is(:hover,:disabled) {
 min-height:44px;padding:9px 11px;gap:7px;background:#191b17;color:#f3eddd;scroll-margin-top:8px;
 border:1.5px solid #25261e;border-radius:8px;box-shadow:none;
}
body[data-theme="playful-print"] #app #news-section .news-banner-toggle>strong,
body[data-theme="playful-print"][data-table-layout="phone"] #app #news-section .news-banner-toggle>strong {
 padding:0;border:0;border-radius:0;background:transparent;color:#e8cb66;
 font:700 18px/1 Display,sans-serif;letter-spacing:-.035em;
}
body[data-theme="playful-print"] #app #news-section .news-live {
 display:inline-flex;align-items:center;gap:3px;flex:none;padding:3px 4px;position:relative;isolation:isolate;
 border:1px solid #ce6e5d;border-radius:3px;background:#ce6e5d;color:#fffdf7;
 font:800 8px/1 Arial,sans-serif;letter-spacing:.04em;
}
/* Selected Rounded pulse: one smooth beat, one fine ring, then a rest.
   Both pseudo-elements share the existing 3px dot center; the ring adds no layout space. */
body[data-theme="playful-print"] #app #news-section .news-live::before {
 content:'';position:relative;z-index:1;flex:none;width:3px;height:3px;
 border-radius:50%;background:currentColor;pointer-events:none;transform-origin:center;
 animation:ri-news-rounded-dot 2.8s ease-in-out infinite;
}
body[data-theme="playful-print"] #app #news-section .news-live::after {
 content:'';position:absolute;z-index:0;box-sizing:border-box;left:4px;top:50%;margin-top:-1.5px;
 width:3px;height:3px;border:1px solid currentColor;border-radius:50%;opacity:0;
 pointer-events:none;transform-origin:center;
 animation:ri-news-rounded-ring 2.8s cubic-bezier(.2,.5,.45,1) infinite,ri-news-rounded-ring-swell 2.8s ease-in-out infinite;
}
@keyframes ri-news-rounded-dot {
 0%,40%,100% {transform:scale(1)}
 15% {transform:scale(1.3)}
}
@keyframes ri-news-rounded-ring {
 0%,8% {opacity:0;transform:scale(1)}
 18% {opacity:.62;transform:scale(1.35)}
 62%,100% {opacity:0;transform:scale(2.9)}
}
/* Reproduce the review's ring inheriting its parent dot's gentle swell. */
@keyframes ri-news-rounded-ring-swell {
 0%,40%,100% {scale:1}
 15% {scale:1.3}
}
@media(prefers-reduced-motion:reduce) {
 body[data-theme="playful-print"] #app #news-section .news-live::before,
 body[data-theme="playful-print"] #app #news-section .news-live::after {animation:none;transform:none;scale:1}
 body[data-theme="playful-print"] #app #news-section .news-live::after {opacity:0}
}
body[data-theme="playful-print"] #app #news-section .news-single-divider {flex:none;align-self:stretch;width:1px;margin-block:2px;background:#625b3a}
body[data-theme="playful-print"] #app #news-section .news-ticker-track>span {font-size:12px;font-weight:500}
body[data-theme="playful-print"] #app #news-section .news-ticker-track i {background:#8e8052}
body[data-theme="playful-print"] #app #news-section .news-ticker-toggle-icon {
 box-sizing:border-box;flex:none;width:24px;height:24px;padding:4px;border:1px solid #77704b;border-radius:6px;color:#e8cb66;
}
body[data-theme="playful-print"] #app #news-section .news-banner-toggle:focus-visible {outline-color:#aa8740}

/* The measured left edge follows the market's first printed stock glyph. */
body[data-theme="playful-print"] #app :is(#dd-draft,#dd-hand).is-compact {
 position:relative;left:var(--dd-icon-offset,0px);
}

/* Keep both the compact and expanded hand inside the actual visible viewport. */
body[data-theme="playful-print"] #app>.floating-hand>.floating-dashboard {
 display:flex;flex-direction:column;min-height:0;
 max-height:var(--hand-dock-height,calc(60dvh - 24px));
}
body[data-theme="playful-print"] #app>.floating-hand .floating-dashboard>.hand-section {
 flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
}
body[data-theme="playful-print"] #app>.floating-hand .floating-dashboard>.hand-section>.board-section-head {
 position:sticky;top:0;z-index:4;
}
body[data-theme="playful-print"] #app>.floating-hand:is(.hand-docked,.hand-fan-open) {
 bottom:calc(max(8px,env(safe-area-inset-bottom)) + var(--hand-viewport-bottom-gap,0px));
}

/* Balances share the heading; the view control belongs to the DD card area. */
body[data-theme="playful-print"] #app>.floating-hand .hand-heading {
 display:flex;align-items:center;column-gap:2px;flex:1 1 auto;min-width:0;flex-wrap:wrap;row-gap:0;
}
body[data-theme="playful-print"] #app>.floating-hand .hand-heading .hand-action-count {margin-inline-start:5px}
body[data-theme="playful-print"] #app>.floating-hand .board-head-actions {
 flex:none;flex-wrap:nowrap;gap:7px;margin-inline-start:8px;
}
body[data-theme="playful-print"] .dashboard-cash {
 display:inline-flex;align-items:baseline;gap:4px;flex:none;white-space:nowrap;color:#1c1b18;
}
body[data-theme="playful-print"] .dashboard-cash>span {font:600 11px/1.2 Body,sans-serif}
body[data-theme="playful-print"] .dashboard-cash>strong {font:700 16px/1.2 Mono,monospace;font-variant-numeric:tabular-nums}
body[data-theme="playful-print"] .dashboard-worth {
 display:inline-flex;align-items:center;gap:5px;flex:none;max-width:100%;white-space:nowrap;color:#1c1b18;
}
body[data-theme="playful-print"] .dashboard-worth>span {font:600 12px/1.2 Body,sans-serif}
body[data-theme="playful-print"] .dashboard-worth>strong {font:700 18px/1.2 Mono,monospace;font-variant-numeric:tabular-nums}
body[data-theme="playful-print"] .dashboard-worth>.net-worth-dot {flex:none;width:10px;height:10px;margin:0}
body[data-theme="playful-print"] #app>.floating-hand :is(.hand-tray,.dd-hand-layout) {
 display:flex;align-items:flex-start;flex-wrap:nowrap;gap:6px;min-width:0;
}
body[data-theme="playful-print"] #app>.floating-hand .hand-tray #dd-hand.is-compact {flex:1 1 0;width:0;min-width:0}
body[data-theme="playful-print"] #app>.floating-hand .dd-hand-layout {flex:none}
body[data-theme="playful-print"] #app>.floating-hand .dd-hand-layout #dd-hand.dd-phase-fan {flex:1 1 0;min-width:0;width:0}
body[data-theme="playful-print"] #app>.floating-hand .hand-view-control {
 display:flex;align-items:flex-start;justify-content:center;flex:0 0 44px;min-width:44px;padding-top:7px;
}
body[data-theme="playful-print"] #app>.floating-hand .hand-view-control #toggle-hand-stack {flex:none;margin:0}
body[data-theme="playful-print"] #app>.floating-hand .hand-view-control #toggle-hand-stack::after {inset:-7px}
@media(max-width:420px) {
 body[data-theme="playful-print"] .dashboard-worth>span {max-width:60px;white-space:normal;line-height:1.1}
 body[data-theme="playful-print"] #app>.floating-hand .hand-heading .hand-action-count {flex-basis:100%;margin-inline-start:0}
 body[data-theme="playful-print"] #app>.floating-hand .board-head-actions {gap:5px;margin-inline-start:5px}
}

/* Round labels identify scryed cards without changing their physical slots. */
#news-object-stage .news-order-label {
 display:none;position:absolute;left:50%;top:calc(100% + 5px);z-index:3;
 transform:translateX(-50%) rotate(var(--news-order-angle,0deg)) scale(var(--news-order-scale,1));transform-origin:top center;
 padding:3px 5px;border:1px solid #746d5c;border-radius:5px;background:#f3eddd;color:#1c1b18;
 font:700 var(--news-order-font,12px)/1.1 Body,sans-serif;white-space:nowrap;pointer-events:none;
}
#news-object-stage[data-news-mode="spread"] .news-order-label {display:block}
#news-object-stage[data-news-moving="true"] .news-order-label {opacity:0}
#news-object-stage [data-news-order="next"] .news-order-label {background:#f2d571;border-color:#1c1b18;box-shadow:0 2px 0 #1c1b18}
#news-object-stage [data-news-order="then"] .news-order-label {background:#dce8d3;border-color:#5a6c51}
#news-object-stage [data-news-order="read"] .news-order-label {background:#e0dccf;color:#625e53;border-color:#a09a8a;font-weight:500}
/* Memo tabs belong to the two printed sides of the retained 3D card. */
#news-object-stage .news-memo-tab-side {
 position:absolute;z-index:3;top:-48px;width:56px;height:62px;
 overflow:visible;transform-style:preserve-3d;backface-visibility:hidden;-webkit-backface-visibility:hidden;
 pointer-events:auto!important;
}
#news-object-stage .news-memo-tab-front {right:22px;transform:translateZ(calc(var(--card-stock-half,.5px) + .2px))}
#news-object-stage .news-memo-tab-back {right:22px;transform:rotateY(180deg) translateZ(calc(var(--card-stock-half,.5px) + .2px))}
body[data-theme="playful-print"] #news-object-stage .news-preview-eye.news-memo-tab {
 position:absolute;inset:0 auto auto 0;z-index:auto;box-sizing:border-box;
 display:grid;grid-template-rows:28px 2px 13px;row-gap:2.5px;justify-items:center;align-content:center;
 width:56px;height:62px;max-width:none;max-height:none;margin:0;padding:4px 2px 5px;
 border:2.2px solid #1c1b18;border-radius:11px 11px 6px 6px;background:#f2d571;color:#1c1b18;
 transform-origin:top left;backface-visibility:hidden;-webkit-backface-visibility:hidden;
 box-shadow:none;filter:none;pointer-events:none!important;
}
body[data-theme="playful-print"] #news-object-stage .news-memo-tab>.ri-ui-icon {
 display:block;position:static;width:28px;height:28px;min-width:28px;max-width:28px;min-height:28px;max-height:28px;
 margin:0;transform:none;pointer-events:none;
}
#news-object-stage .news-memo-tab-divider {display:block;width:calc(100% - 4px);height:2px;background:#1c1b18;pointer-events:none}
#news-object-stage .news-memo-tab-round {font:800 11.5px/13px Body,sans-serif;letter-spacing:0;text-align:center;white-space:nowrap;pointer-events:none}
#news-object-stage [data-news-memo="true"] .news-order-label {display:none!important}

/* A single first-use gesture cue demonstrates the motion without turning paper. */
#news-object-stage .memo-drag-hint {
 position:absolute;z-index:2000;display:flex;flex-direction:column;align-items:center;gap:4px;
 width:124px;height:74px;transform:translate(-50%,-50%);pointer-events:none!important;
 animation:memo-drag-hint-fade 1900ms ease-out both;
}
#news-object-stage .memo-drag-hint * {pointer-events:none!important}
#news-object-stage .memo-drag-hint-track {position:relative;display:block;width:92px;height:40px}
#news-object-stage .memo-drag-hint-track::before {content:"";position:absolute;left:14px;right:14px;top:22px;height:3px;border-radius:2px;background:#75466c;opacity:.65}
#news-object-stage .memo-drag-hint-track>.ri-ui-icon {
 position:absolute;left:30px;top:2px;display:block;width:32px;height:32px;color:#1c1b18;
 animation:memo-drag-gesture 1550ms cubic-bezier(.25,.7,.2,1) both;
}
#news-object-stage .memo-drag-hint-label {display:block;padding:3px 8px;border:1.5px solid #1c1b18;border-radius:12px;background:#fffdf7;color:#1c1b18;font:700 12px/1.2 Body,sans-serif;white-space:nowrap}
@keyframes memo-drag-hint-fade {0%{opacity:0}10%,74%{opacity:1}100%{opacity:0}}
@keyframes memo-drag-gesture {0%,18%{transform:translate(-30px,4px) rotate(0deg)}70%,100%{transform:translate(28px,-6px) rotate(-7deg)}}
@media(prefers-reduced-motion:reduce){#news-object-stage .memo-drag-hint {display:none;animation:none}#news-object-stage .memo-drag-hint-track>.ri-ui-icon {animation:none}}

/* Selected direction: compact controls directly under their card, with full touch targets. */
body[data-theme="playful-print"] :is(#dd-preview .preview-actions>button,#news-object-actions #finish-reading-news,#news-object-actions #news-object-back,#purchase-confirm-dialog .purchase-trade,#purchase-confirm-dialog .purchase-close) {
 display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
 position:relative;inset:auto;width:auto;min-width:0;max-width:100%;height:auto;min-height:44px;max-height:none;
 margin:0;padding:5px 0;gap:0;border:0;border-radius:0;background:transparent;color:#1c1b18;box-shadow:none;
 font:700 12px/1.15 Body,sans-serif;white-space:nowrap;transform:none;
}
body[data-theme="playful-print"] :is(#dd-preview .preview-actions>button,#news-object-actions #finish-reading-news,#news-object-actions #news-object-back,#purchase-confirm-dialog .purchase-trade,#purchase-confirm-dialog .purchase-close):is(:hover,:active,:disabled) {
 background:transparent;box-shadow:none;transform:none;
}
body[data-theme="playful-print"] :is(#dd-preview,#news-object-actions,#purchase-confirm-dialog) .card-action-face {
 display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;max-width:100%;
 position:static;margin:0;padding:5px 11px;border:1.5px solid #1c1b18;border-radius:16px;
 background:#f2d571;color:#1c1b18;box-shadow:none;font:inherit;line-height:1.15;white-space:inherit;
}
body[data-theme="playful-print"] :is(#dd-preview,#news-object-actions,#purchase-confirm-dialog) .card-action-face>.ri-ui-icon {
 position:static;width:16px;height:16px;min-width:16px;max-width:16px;margin:0;flex:none;transform:none;
}
body[data-theme="playful-print"] :is(#dd-preview,#news-object-actions,#purchase-confirm-dialog) button:hover:not(:disabled)>.card-action-face {background:#f8e3a0}
body[data-theme="playful-print"] #dd-preview .primary>.card-action-face {background:#75466c;color:#fffdf7}
body[data-theme="playful-print"] #dd-preview .primary:hover:not(:disabled)>.card-action-face {background:#86527b}
body[data-theme="playful-print"] #dd-preview #play-this>.card-action-face {background:#155c44;color:#fffdf7}
body[data-theme="playful-print"] #dd-preview #play-this:hover:not(:disabled)>.card-action-face {background:#1d7054}
body[data-theme="playful-print"] #dd-preview .secondary>.card-action-face {
 border-color:transparent;background:#f3e9d5;color:#625745;border-radius:7px;padding-inline:7px;font-weight:500;
}
body[data-theme="playful-print"] #dd-preview .secondary:hover:not(:disabled)>.card-action-face {background:#e6d7b9}
body[data-theme="playful-print"] :is(#dd-preview,#purchase-confirm-dialog) .card-action-close {min-width:44px;width:44px}
body[data-theme="playful-print"] :is(#dd-preview,#purchase-confirm-dialog) .card-action-close>.card-action-face {
 width:30px;min-height:30px;height:30px;padding:0;border:1px solid #a99a7c;border-radius:50%;background:#f7efdc;color:#1c1b18;
}
body[data-theme="playful-print"] #modal.dd-card-dialog .close {display:none}
body[data-theme="playful-print"] #dd-preview .preview-actions {
 display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:2px 5px;margin:4px 0 0;
}
body[data-theme="playful-print"] #dd-preview .preview-actions>button {flex:0 0 auto;white-space:normal}
body[data-theme="playful-print"] #dd-preview .preview-actions .card-action-face {text-align:center}
body[data-theme="playful-print"] #app #news-object-actions.news-object-actions {max-width:calc(100vw - 24px);align-items:center}
body[data-theme="playful-print"] #app #news-object-actions #news-outcome {
 width:auto;max-width:100%;max-height:none;overflow:visible;text-align:center;
}
body[data-theme="playful-print"] #app #news-object-actions #news-outcome:has(.fork-question) {width:100%;max-height:min(42dvh,300px);overflow:auto}
body[data-theme="playful-print"] #app #news-object-actions :is(#finish-reading-news,#news-object-back) {width:auto;max-width:100%;min-height:44px}
/* Give the two primary reading/play actions a larger visible face. */
body[data-theme="playful-print"] #dd-preview #play-this,
body[data-theme="playful-print"] #app #news-object-actions #finish-reading-news {
 min-height:48px;padding:4px 0;font-size:14px;
}
body[data-theme="playful-print"] #dd-preview #play-this>.card-action-face,
body[data-theme="playful-print"] #app #news-object-actions #finish-reading-news>.card-action-face {
 min-height:40px;padding:7px 18px;gap:7px;border-radius:20px;text-align:center;
}
body[data-theme="playful-print"] #dd-preview #play-this>.card-action-face>.ri-ui-icon,
body[data-theme="playful-print"] #app #news-object-actions #finish-reading-news>.card-action-face>.ri-ui-icon {
 width:20px;height:20px;min-width:20px;max-width:20px;
}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-action-row,
body[data-theme="playful-print"] #purchase-confirm-dialog .sale-confirm-actions {
 position:relative;inset:auto;display:flex;justify-content:center;align-items:center;gap:5px;
 width:100%;height:auto;min-height:44px;margin:4px 0 0;padding:0;
}
body[data-theme="playful-print"] #purchase-confirm-dialog:is([data-stock-action="buy"],[data-stock-action="sell"]) .purchase-action-row {margin-top:0}
/* Keep the Buy target under the opening click, including the right screen edge. */
body[data-theme="playful-print"] #purchase-confirm-dialog[data-cursor-close-side="left"] .purchase-action-row {flex-direction:row-reverse}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="view"] {
 --stock-dialog-vertical-reserve:74px;padding:0;border:0;background:transparent;box-shadow:none;overflow:visible;
}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-close::before,
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="view"] .purchase-close::before {content:none}
body[data-theme="playful-print"] #purchase-confirm-dialog .purchase-close svg {position:static;width:14px;height:14px}
/* Trade IDs also have older action-specific rules; keep their outer hit area invisible. */
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy) {
 display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;
 position:relative;inset:auto;width:auto;min-width:0;max-width:100%;height:auto;min-height:44px;max-height:none;
 margin:0;padding:5px 0;gap:0;border:0;border-radius:0;background:transparent;color:#1c1b18;box-shadow:none;
 font:700 12px/1.15 Body,sans-serif;white-space:nowrap;transform:none;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy):is(:hover,:active,:disabled) {
 background:transparent;box-shadow:none;transform:none;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy)>.card-action-face {
 display:inline-flex;align-items:center;justify-content:center;gap:5px;margin:0;
}
/* Legacy Sell :hover:not(:disabled) has two state selectors. Match that
   specificity so the 44px target stays invisible; feedback belongs to its pill. */
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock,
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:is(:hover,:active,:focus,:focus-visible):not(:disabled),
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:disabled {
 background:transparent;border:0;box-shadow:none;outline:none;transform:none;-webkit-tap-highlight-color:transparent;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:is(:hover,:active,:focus-visible):not(:disabled)>.card-action-face {
 background:#f8e3a0;
}
body[data-theme="playful-print"] #purchase-confirm-dialog[data-stock-action="sell"] #sell-stock:focus-visible>.card-action-face {
 outline:2px solid #1c1b18;outline-offset:2px;
}
@media(max-height:540px){
 body[data-theme="playful-print"] #modal.dd-card-dialog {max-height:calc(100dvh - 16px);overflow-y:auto;overscroll-behavior:contain}
}

/* The expanded phone hand may wrap metadata without squeezing its controls. */
body[data-theme="playful-print"][data-table-layout="phone"] #app>.floating-hand.hand-fan-open .hand-section>.board-section-head {flex-wrap:wrap}
body[data-theme="playful-print"] #app {--phase-accent:#9c7111!important}

/* The News action uses the selected single-outline Simple pill. */
body[data-theme="playful-print"] #app #news-object-actions #finish-reading-news>.card-action-face {
 border:3px solid #1c1b18;border-radius:999px;background:#f8dc73;color:#1c1b18;box-shadow:none;font-weight:500;
}
body[data-theme="playful-print"][data-table-layout="desktop"] #app #news-object-actions #finish-reading-news>.card-action-face {
 background:#f8dc73;box-shadow:none;font-weight:500;
}
body[data-theme="playful-print"] #app #news-object-actions #finish-reading-news:hover:not(:disabled)>.card-action-face {background:#ffe995}
body[data-theme="playful-print"] #tutorial-coach #tutorial-next {
 border:3px solid #1c1b18;border-radius:999px;background:#f8dc73;color:#1c1b18;box-shadow:none;font-weight:500;
}
body[data-theme="playful-print"] #tutorial-coach #tutorial-next:hover:enabled {background:#ffe995}

/* Desktop card actions: the selected bright, generously sized pill treatment.
   Keep the outer trade targets transparent so the cursor remains on Buy/Sell. */
body[data-theme="playful-print"][data-table-layout="desktop"] :is(#dd-preview .preview-actions>button,#app #news-object-actions #finish-reading-news,#app #news-object-actions #news-object-back,#purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy),#purchase-confirm-dialog .purchase-close) {
 min-height:54px;padding:3px 0;font-size:16px;
}
body[data-theme="playful-print"][data-table-layout="desktop"] #dd-preview .preview-actions>button>.card-action-face,
body[data-theme="playful-print"][data-table-layout="desktop"] #app #news-object-actions :is(#finish-reading-news,#news-object-back)>.card-action-face,
body[data-theme="playful-print"][data-table-layout="desktop"] #purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy)>.card-action-face {
 box-sizing:border-box;min-height:48px;padding:10px 17px;gap:7px;border:3px solid #1c1b18;border-radius:999px;
 background:#ffdf6a;color:#1c1b18;box-shadow:2px 3px 0 #1c1b18;font:700 16px/1.15 Body,sans-serif;
}
body[data-theme="playful-print"][data-table-layout="desktop"] #dd-preview .preview-actions {position:relative;left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100vw - 30px);gap:5px 8px}
body[data-theme="playful-print"][data-table-layout="desktop"] #dd-preview #play-this>.card-action-face,
body[data-theme="playful-print"][data-table-layout="desktop"] #purchase-confirm-dialog[data-stock-action="buy"] #confirm-stock-buy>.card-action-face {
 background:#1a995b;color:#fffdf4;
}
body[data-theme="playful-print"][data-table-layout="desktop"] #dd-preview #draft-this>.card-action-face {background:#84539a;color:#fffdf7}
body[data-theme="playful-print"][data-table-layout="desktop"] #app #news-object-actions #finish-reading-news>.card-action-face {background:#ffdb57}
body[data-theme="playful-print"][data-table-layout="desktop"] :is(#dd-preview .preview-actions>button,#app #news-object-actions #finish-reading-news,#app #news-object-actions #news-object-back,#purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy)):hover:not(:disabled)>.card-action-face {filter:brightness(1.08)}
body[data-theme="playful-print"][data-table-layout="desktop"] :is(#dd-preview .preview-actions>button,#app #news-object-actions #finish-reading-news,#app #news-object-actions #news-object-back,#purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy)):disabled {opacity:.7}
body[data-theme="playful-print"][data-table-layout="desktop"] :is(#dd-preview .preview-actions>button,#app #news-object-actions #finish-reading-news,#app #news-object-actions #news-object-back,#purchase-confirm-dialog[data-stock-action] :is(#sell-stock,#confirm-stock-buy)):disabled>.card-action-face {opacity:1;box-shadow:none}
body[data-theme="playful-print"][data-table-layout="desktop"] :is(#dd-preview .preview-actions,#app #news-object-actions,#purchase-confirm-dialog) .card-action-face>.ri-ui-icon {width:20px;height:20px;min-width:20px;max-width:20px}
body[data-theme="playful-print"][data-table-layout="desktop"] :is(#dd-preview,#purchase-confirm-dialog) .card-action-close {width:54px;min-width:54px}
body[data-theme="playful-print"][data-table-layout="desktop"] #dd-preview .preview-actions>button.card-action-close>.card-action-face,
body[data-theme="playful-print"][data-table-layout="desktop"] #purchase-confirm-dialog .card-action-close>.card-action-face {
 box-sizing:border-box;width:48px;height:48px;min-height:48px;padding:0;border:3px solid #1c1b18;border-radius:50%;background:#ffdf6a;color:#1c1b18;box-shadow:2px 3px 0 #1c1b18;
}
body[data-theme="playful-print"][data-table-layout="desktop"] #purchase-confirm-dialog .purchase-close svg {width:20px;height:20px}
