:root {
  --cream: #f8f0e2;
  --paper: #fffaf1;
  --ink: #243d69;
  --ink-soft: #52607a;
  --brown: #75452f;
  --terracotta: #b86d4d;
  --peach: #f4c3a2;
  --gold: #d99a5a;
  --olive: #72724b;
  --line: rgba(117, 69, 47, .22);
  --shadow: 0 20px 60px rgba(92, 49, 28, .16);
  font-family: Georgia, "Times New Roman", "Noto Serif", serif;
  color: var(--ink);
  background: var(--cream);
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--cream); }
body { margin: 0; min-width: 320px; background: var(--cream); overflow-x: hidden; }
body.modal-open { overflow: hidden; }
button, input, select { font: inherit; }
button { color: inherit; }
button:focus-visible, input:focus-visible, select:focus-visible { outline: 3px solid #d27e50; outline-offset: 3px; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

.app-shell { min-height: 100vh; overflow: hidden; }
.hero { position: relative; min-height: min(780px, 94vh); display: grid; place-items: start center; isolation: isolate; padding: clamp(2.25rem, 6vw, 5rem) 1rem 4rem; overflow: hidden; }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 22%; background: linear-gradient(transparent, var(--cream)); z-index: -1; }
.hero-scene { position: absolute; inset: 0; z-index: -2; background-image: url("assets/new_image_upscaled.png"); background-size: cover; background-position: center 65%; filter: saturate(.86) contrast(.96); }
.hero-scene::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,247,235,.82) 0 34%, rgba(255,247,235,.05) 57%, rgba(248,240,226,.36)); }
.hero-copy { position: relative; width: min(670px, 100%); margin-inline: auto; padding: clamp(1.5rem, 4vw, 2.5rem) clamp(1.25rem, 5vw, 4rem) 1.75rem; text-align: center; background: rgba(255,248,236,.88); border: 1px solid rgba(255,255,255,.75); border-radius: 0 0 44% 44% / 0 0 20% 20%; box-shadow: 0 10px 35px rgba(106,59,31,.08); }
.eyebrow { margin: 0 0 .25rem; color: var(--ink); font: 600 clamp(1.25rem, 3vw, 2rem)/1.1 Georgia, serif; letter-spacing: .05em; }
h1 { margin: 0; color: #311b14; font-size: clamp(3rem, 10vw, 6.7rem); font-weight: 500; line-height: .95; letter-spacing: -.055em; }
.hero-copy > p:last-child { max-width: 40rem; margin: 1.2rem auto 0; font-size: clamp(1.05rem, 2.1vw, 1.45rem); line-height: 1.45; color: #3d3c46; }
.hero-scroll-hint { position: absolute; bottom: 1.4rem; left: 50%; width: 2rem; height: 3.25rem; transform: translateX(-50%); border: 2px solid rgba(117,69,47,.45); border-radius: 2rem; }
.hero-scroll-hint span { display: block; width: .38rem; height: .65rem; margin: .55rem auto; border-radius: 99px; background: var(--terracotta); animation: scrollHint 2s ease-in-out infinite; }
@keyframes scrollHint { 0%,100% { transform: translateY(0); opacity: .55; } 50% { transform: translateY(1rem); opacity: 1; } }

.route { position: relative; width: min(100%, 960px); min-height: 1980px; margin: 0 auto; padding: 2rem 1rem 4rem; isolation: isolate; }
.route-paper { position: absolute; inset: 0; z-index: -4; background: radial-gradient(ellipse at 50% 8%, rgba(255,255,255,.88), transparent 36%), linear-gradient(180deg, var(--cream), #fbf4e7 55%, #f4ead9); }
.route::after { content: ""; position: absolute; inset: auto 0 0; height: 15rem; z-index: -1; background: linear-gradient(transparent, rgba(99,73,41,.22)), url("assets/new_image_upscaled.png") center bottom / cover; opacity: .55; filter: blur(1px) saturate(.7); mask-image: linear-gradient(transparent, #000 70%); }
.route-trail { position: absolute; inset: 0 0 2rem; width: 100%; height: calc(100% - 2rem); z-index: -1; overflow: visible; }
.trail-shadow { fill: none; stroke: rgba(143,78,49,.12); stroke-width: 34; stroke-linecap: round; }
.trail-main { fill: none; stroke: #efa785; stroke-width: 22; stroke-linecap: round; }
.trail-dash { fill: none; stroke: #fff4e9; stroke-width: 6; stroke-dasharray: 7 24; stroke-linecap: round; }
.route-island { position: absolute; z-index: -2; width: 13rem; height: 7rem; border-radius: 50%; opacity: .62; filter: saturate(.7); background-image: url("assets/new_image_upscaled.png"); background-size: 300% auto; box-shadow: 0 20px 25px rgba(102,67,37,.09); }
.island-a { top: 18%; left: -3%; background-position: 12% 46%; transform: rotate(-4deg); }
.island-b { top: 42%; right: -3%; background-position: 85% 58%; transform: rotate(5deg); }
.island-c { top: 67%; left: 3%; background-position: 10% 74%; transform: rotate(3deg); }
.island-d { top: 86%; right: 4%; background-position: 88% 90%; transform: rotate(-6deg); }
.route-footprints { position: absolute; z-index: 0; color: rgba(184,109,77,.62); font-size: 1.35rem; letter-spacing: .85rem; white-space: nowrap; transform: rotate(-24deg); }
.footprints-a { top: 25%; left: 41%; }
.footprints-b { top: 71%; left: 39%; transform: rotate(22deg); }
.route-hiker { position: absolute; z-index: 1; top: 12%; left: 43%; width: 7rem; height: 7rem; border-radius: 50%; background: url("assets/new_image_upscaled.png") 51% 46% / 420% auto; filter: saturate(.85); box-shadow: 0 8px 18px rgba(97,57,35,.12); transform: rotate(-8deg); }

.stations { position: relative; min-height: 1900px; }
.station { position: absolute; display: grid; grid-template-columns: auto minmax(0, 1fr); grid-template-rows: auto auto; align-items: center; gap: .25rem .7rem; width: min(31rem, 49%); min-height: 11.5rem; padding: 1rem; border: 0; border-radius: 1.9rem; background: transparent; cursor: pointer; text-align: left; transition: transform .22s ease, filter .22s ease; }
.station:hover { transform: translateY(-5px) rotate(-1deg); filter: drop-shadow(0 13px 13px rgba(119,72,45,.16)); }
.station:active { transform: translateY(-1px) scale(.99); }
.station-art { grid-row: 1 / span 2; width: clamp(5.5rem, 15vw, 9rem); aspect-ratio: 1 / 1; border-radius: 1.35rem; background-image: url("assets/new_image_upscaled.png"); background-repeat: no-repeat; background-size: 270% auto; box-shadow: var(--shadow); border: 5px solid rgba(255,249,237,.87); transform: rotate(-4deg); }
.station-2 .station-art, .station-4 .station-art, .station-6 .station-art, .station-8 .station-art { transform: rotate(4deg); }
.station-marker { display: inline-grid; place-items: center; width: 3.2rem; height: 3.2rem; border-radius: 50%; color: #fff8ee; background: linear-gradient(145deg, #c4815a, #75452f); font-size: 1.7rem; box-shadow: 0 5px 14px rgba(91,51,32,.23); }
.station-title { align-self: center; display: block; padding: .8rem 1rem 1rem; border-radius: .9rem 2.1rem .9rem 1.7rem; background: rgba(255,252,245,.91); box-shadow: 0 8px 22px rgba(105,64,34,.11); color: #173e78; font-size: clamp(1.25rem, 2.8vw, 2rem); line-height: 1.08; }
.station-1 { top: 7%; left: 3%; }
.station-2 { top: 19%; right: 1%; }
.station-3 { top: 31%; left: 2%; }
.station-4 { top: 43%; right: 3%; }
.station-5 { top: 55%; left: 1%; }
.station-6 { top: 67%; right: 2%; }
.station-7 { top: 79%; left: 2%; }
.station-8 { top: 91%; right: 4%; }
.art-notebook { background-position: 10% 35%; }
.art-spinner { background-position: 91% 42%; }
.art-compass { background-position: 10% 52%; }
.art-photos { background-position: 89% 58%; }
.art-tea { background-position: 14% 69%; }
.art-house { background-position: 87% 72%; }
.art-sign { background-position: 12% 87%; }
.art-cards { background-position: 88% 93%; }

.activity[hidden] { display: none; }
.activity { position: fixed; inset: 0; z-index: 20; display: grid; place-items: stretch; }
.activity-backdrop { position: absolute; inset: 0; background: rgba(48,27,19,.48); backdrop-filter: blur(8px); }
.activity-panel { position: relative; display: flex; flex-direction: column; width: min(100%, 920px); height: 100%; margin-inline: auto; overflow: hidden auto; background: linear-gradient(150deg, #fffaf0 0%, #fbf0de 100%); box-shadow: -10px 0 50px rgba(39,21,14,.25); }
.activity-header { position: sticky; top: 0; z-index: 5; display: grid; grid-template-columns: 2.7rem 1fr 2.7rem; align-items: center; gap: .7rem; min-height: 5.2rem; padding: .75rem 1rem; background: rgba(255,250,240,.92); border-bottom: 1px solid var(--line); backdrop-filter: blur(16px); }
.activity-header h2 { margin: 0; color: #173e78; font-size: clamp(1.35rem, 4vw, 2.25rem); line-height: 1.02; }
.activity-kicker { display: block; margin-bottom: .18rem; color: var(--terracotta); font: 700 .77rem/1.1 Arial, sans-serif; letter-spacing: .11em; text-transform: uppercase; }
.icon-button { width: 2.7rem; height: 2.7rem; padding: 0; border: 1px solid var(--line); border-radius: 50%; background: rgba(255,255,255,.65); font: 1.8rem/1 Arial, sans-serif; cursor: pointer; }
.icon-button:last-child { justify-self: end; }
.activity-content { width: min(100%, 720px); margin: 0 auto; padding: clamp(1.25rem, 4vw, 3rem) clamp(1rem, 5vw, 3rem) 4rem; }
.intro-card, .question-card, .game-card, .result-card { padding: clamp(1.2rem, 4vw, 2rem); border: 1px solid rgba(117,69,47,.16); border-radius: 1.4rem 3rem 1.4rem 2.2rem; background: rgba(255,255,255,.7); box-shadow: 0 12px 35px rgba(105,64,34,.1); }
.intro-card h3, .question-card h3, .game-card h3, .result-card h3 { margin: 0 0 .7rem; color: #173e78; font-size: clamp(1.45rem, 4vw, 2.4rem); line-height: 1.1; }
.intro-card p, .question-card p, .game-card p, .result-card p { margin: .75rem 0; font-size: 1.05rem; line-height: 1.55; }
.rules { margin: 1rem 0 0; padding: .9rem 1rem; border-left: 3px solid var(--peach); color: #4c4b50; font-size: 1rem; line-height: 1.55; }
.progress-row { display: flex; justify-content: space-between; gap: 1rem; margin: 0 0 .75rem; color: var(--ink-soft); font: 700 .86rem/1.2 Arial, sans-serif; }
.progress-bar { height: .55rem; margin-bottom: 1.25rem; overflow: hidden; border-radius: 99px; background: #ead8c0; }
.progress-bar span { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--terracotta), var(--gold)); transition: width .25s ease; }
.subject-pill, .speaker-pill { display: inline-flex; margin-bottom: .75rem; padding: .45rem .75rem; border-radius: 999px; color: #75452f; background: #f9dfc4; font: 700 .88rem/1.2 Arial, sans-serif; }
.choice-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin: 1.15rem 0; }
.choice-button, .action-button, .secondary-button, .danger-button { min-height: 3rem; padding: .75rem 1rem; border: 1px solid rgba(117,69,47,.22); border-radius: .95rem; background: #fffaf1; cursor: pointer; font-weight: 700; transition: transform .18s ease, background .18s ease, box-shadow .18s ease; }
.choice-button { min-height: 5.2rem; color: #173e78; background: #fffdf8; font-size: 1.02rem; }
.action-button { color: #fffaf0; border-color: #854d34; background: linear-gradient(135deg, #9c5a3b, #704129); box-shadow: 0 8px 15px rgba(117,69,47,.2); }
.secondary-button { color: #75452f; background: #f8e5ce; }
.danger-button { color: #7d3025; background: #fff0e8; }
.choice-button:hover, .action-button:hover, .secondary-button:hover, .danger-button:hover { transform: translateY(-2px); box-shadow: 0 8px 18px rgba(117,69,47,.12); }
.button-row { display: flex; flex-wrap: wrap; gap: .65rem; margin-top: 1.2rem; }
.button-row > button { flex: 1 1 9rem; }
.button-row.center { justify-content: center; }
.button-row.center > button { flex: 0 1 auto; }
.subtle { color: var(--ink-soft); font-size: .9rem !important; }
.note { padding: .85rem 1rem; border-radius: .9rem; background: #f7e7d0; color: #654839; font-size: .96rem !important; }
.field { display: grid; gap: .35rem; margin: .9rem 0; }
.field label { font: 700 .86rem/1.2 Arial, sans-serif; color: var(--brown); }
.field input, .field select { min-height: 2.9rem; padding: .65rem .75rem; border: 1px solid rgba(117,69,47,.28); border-radius: .75rem; background: #fffdf8; color: var(--ink); }
.game-list { display: grid; gap: .7rem; margin-top: 1.2rem; }
.game-list button { display: grid; grid-template-columns: 2.4rem 1fr auto; align-items: center; gap: .75rem; width: 100%; padding: .85rem 1rem; border: 1px solid rgba(117,69,47,.17); border-radius: 1rem; background: rgba(255,255,255,.75); text-align: left; cursor: pointer; }
.game-list button:hover { background: #fff; box-shadow: 0 8px 18px rgba(117,69,47,.1); transform: translateY(-2px); }
.game-number { display: inline-grid; place-items: center; width: 2.2rem; height: 2.2rem; border-radius: 50%; color: #fff; background: var(--terracotta); font: 700 1rem/1 Arial, sans-serif; }
.game-name { color: #173e78; font-size: 1.1rem; font-weight: 700; }
.game-arrow { color: var(--terracotta); font: 1.5rem/1 Arial, sans-serif; }
.secret-box { margin: 1rem 0; padding: 1rem; border: 1px dashed var(--terracotta); border-radius: 1rem; background: #fbe6cc; }
.secret-box strong { display: block; margin-bottom: .4rem; color: var(--brown); }
.score-strip { display: flex; justify-content: space-between; gap: .75rem; margin: .9rem 0; padding: .75rem 1rem; border-radius: .9rem; color: #654839; background: #f7e7d0; font-weight: 700; }
.answer-board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .55rem; margin: 1rem 0; }
.answer-board button { min-height: 3.4rem; border: 1px solid var(--line); border-radius: .7rem; background: #fffdf8; cursor: pointer; }
.answer-board button.selected { color: #fff; background: var(--terracotta); }
.history { margin: 1rem 0 0; padding-left: 1.2rem; color: #654839; }
.history li { margin: .35rem 0; }
.toast { position: fixed; left: 50%; bottom: 1.25rem; z-index: 30; max-width: min(90vw, 32rem); padding: .75rem 1rem; border-radius: 999px; color: #fffaf0; background: #493126; box-shadow: var(--shadow); transform: translate(-50%, 160%); opacity: 0; transition: transform .25s ease, opacity .25s ease; pointer-events: none; font: 700 .9rem/1.2 Arial, sans-serif; }
.toast.show { transform: translate(-50%, 0); opacity: 1; }

.know-rules ol { padding-left: 1.4rem; margin: 1rem 0; }
.know-rules li { padding-left: .3rem; margin: .7rem 0; font-size: 1rem; line-height: 1.55; }
.know-rounds { display: grid; gap: .8rem; margin: 1.5rem 0; }
.know-round { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.2rem; border: 1px solid var(--line); border-radius: 1.1rem; background: rgba(255,255,255,.7); }
.know-round h3 { margin: .3rem 0; font-size: 1.25rem; }
.know-round p { margin: .35rem 0 0; font-size: .9rem; line-height: 1.5; color: var(--ink-soft); }
.know-round button { flex-shrink: 0; }
.know-scores { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: .8rem; padding: .9rem; margin: .7rem 0 1.5rem; background: #f7e7d0; border-radius: .9rem; font-size: 1.15rem; }
.know-scores strong { font-size: 1.45rem; }
.know-question h3 { overflow-wrap: anywhere; font-size: clamp(1.45rem, 4vw, 2rem); line-height: 1.4; }
.know-game .activity-kicker { font-size: .875rem; line-height: 1.5; }
.know-controls { margin-top: 1.5rem; }
.know-game button { min-height: 3rem; }
.know-countdown { display: grid; place-items: center; min-height: 9rem; padding: 1rem 0; color: var(--brown); font-size: 5rem; font-variant-numeric: tabular-nums; }
.know-reveal { min-height: 5rem; font-size: clamp(1.8rem, 6vw, 2.8rem); }
.know-result { text-align: center; }
.know-result-scores { display: grid; gap: .3rem; padding: 1rem; margin-top: 1.5rem; border-radius: 1rem; background: #f7e7d0; }
.know-result .know-winner { font-size: 1.5rem; color: var(--brown); }
.know-game [data-know-heading]:focus { outline: none; }
@media (max-width: 450px) {
  .know-round { align-items: stretch; flex-direction: column; }
  .know-round button { width: 100%; }
}

/* The home screen is the approved vertical poster itself. The image is kept
   intact for pixel-level visual fidelity; only semantic, accessible buttons
   are layered above the eight illustrated stops. */
.app-shell { background: #f7efe1; }
.poster-page { width: 100%; min-height: 100vh; min-height: 100svh; display: grid; place-items: start center; padding: 0; background: #f7efe1; }
.poster-frame { position: relative; width: 100%; max-width: none; margin: 0 auto; line-height: 0; }
.poster-image { display: block; width: 100%; height: auto; }
.poster-hotspots { position: absolute; inset: 0; }
.poster-hotspot { position: absolute; display: block; padding: 0; border: 0; border-radius: 1.4rem; background: transparent; cursor: pointer; }
.poster-hotspot:hover { background: rgba(255,255,255,.06); box-shadow: inset 0 0 0 3px rgba(255,255,255,.5), 0 0 0 3px rgba(117,69,47,.17); }
.poster-hotspot:active { background: rgba(117,69,47,.08); }
.poster-stop-1 { left: 18%; top: 25%; width: 32%; height: 14%; }
.poster-stop-2 { left: 55%; top: 34%; width: 42%; height: 14%; }
.poster-stop-3 { left: 3%; top: 38%; width: 52%; height: 15%; }
.poster-stop-4 { left: 52%; top: 46%; width: 47%; height: 15%; }
.poster-stop-5 { left: 0; top: 52%; width: 54%; height: 17%; }
.poster-stop-6 { left: 51%; top: 61%; width: 49%; height: 17%; }
.poster-stop-7 { left: 0; top: 70%; width: 54%; height: 16%; }
.poster-stop-8 { left: 52%; top: 78%; width: 48%; height: 15%; }
.poster-hotspot:focus-visible { outline: 4px solid #fff; outline-offset: -7px; box-shadow: inset 0 0 0 3px #75452f; }

@media (max-width: 700px) {
  .poster-frame { width: 100%; }
  .hero { min-height: 680px; padding-top: 1.25rem; }
  .hero-scene { background-position: center 62%; }
  .hero-copy { padding-inline: 1rem; border-radius: 0 0 34% 34% / 0 0 13% 13%; }
  .hero-copy > p:last-child { font-size: 1rem; }
  .route { min-height: 1840px; padding-inline: .25rem; }
  .stations { min-height: 1770px; }
  .station { width: 78%; min-height: 9rem; padding: .45rem; gap: .25rem .45rem; }
  .station-art { width: 5.2rem; border-width: 3px; border-radius: .9rem; }
  .station-marker { width: 2.55rem; height: 2.55rem; font-size: 1.25rem; }
  .station-title { padding: .6rem .65rem .7rem; font-size: 1.2rem; }
  .station-1, .station-3, .station-5, .station-7 { left: 0; }
  .station-2, .station-4, .station-6, .station-8 { right: 0; }
  .route-island { width: 8rem; height: 4.5rem; }
  .route-hiker { left: 40%; width: 5rem; height: 5rem; }
  .activity-header { min-height: 4.5rem; }
  .activity-content { padding-top: 1.15rem; }
  .choice-grid { grid-template-columns: 1fr; }
  .answer-board { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
.who-cue { color: var(--brown); font-weight: 700; }
.who-question h3 { overflow-wrap: anywhere; }
.who-game [data-who-heading]:focus { outline: none; }
.travel-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.4rem 0; }
.travel-option { padding: 1.2rem; border: 1px solid rgba(117,69,47,.22); border-radius: 1rem; background: #fffaf2; }
.travel-option p { font-size: 1.15rem; line-height: 1.5; overflow-wrap: anywhere; margin-bottom: 0; }
.travel-game [aria-pressed="true"] { background: #75452f; color: #fffaf0; }
.travel-game [data-travel-heading]:focus { outline: none; }
@media (max-width: 580px) { .travel-options { grid-template-columns: 1fr; } }
.memory-game [data-memory-heading]:focus { outline: none; }
.memory-question h3 { overflow-wrap: anywhere; }
.memory-question .speaker-pill { display: inline-block; max-width: 100%; white-space: normal; line-height: 1.5; }
.talk-game [data-talk-heading]:focus { outline: none; }
.talk-question h3 { overflow-wrap: anywhere; }
.future-game [data-future-heading]:focus { outline: none; }
.future-question h3 { overflow-wrap: anywhere; }
.either-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin: 1.2rem 0; }
.either-option { display: flex; flex-direction: column; gap: 1rem; align-items: flex-start; text-align: left; padding: 1.2rem; font-size: 1.1rem; line-height: 1.5; overflow-wrap: anywhere; }
.either-option[aria-pressed="true"] { border-color: #75452f; background: #f8e5ce; box-shadow: inset 0 0 0 2px #75452f; }
.either-game [data-either-heading]:focus { outline: none; }
@media (max-width: 580px) { .either-options { grid-template-columns: 1fr; } }
.shared-countdown { margin: 1.2rem 0; }
.countdown-button { width: 100%; min-height: 4.5rem; font-size: 1.15rem; }
.countdown-button.countdown-running { font-size: 2.5rem; font-variant-numeric: tabular-nums; animation: countdown-pulse 1s ease-in-out infinite; cursor: wait; }
.countdown-button.countdown-reveal { font-size: 1.5rem; }
@keyframes countdown-pulse { 0%, 100% { transform: scale(1); } 35% { transform: scale(.96); } }
@media (prefers-reduced-motion: reduce) { .countdown-button.countdown-running { animation: none; } }
.mini-games { --heart: #973d36; }
.mini-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.1rem; }
.mini-menu-card { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .75rem; min-height: 15rem; padding: 2.8rem 1.8rem; background: #fffdf8; color: var(--ink); border: 1px solid #d7c2aa; border-radius: 1rem; box-shadow: 0 9px 22px #70412912; cursor: pointer; }
.mini-menu-card:hover { border-color: var(--heart); background: #fff8ed; }
.mini-heart { color: var(--heart); font-size: 2.5rem; line-height: 1; }
.mini-corner { position: absolute; top: .7rem; left: .8rem; color: var(--heart); font-size: 1rem; line-height: 1.2; }
.mini-corner-end { top: auto; left: auto; right: .8rem; bottom: .7rem; transform: rotate(180deg); }
.mini-menu-title { font-size: 1.25rem; font-weight: 700; text-align: center; line-height: 1.3; }
.mini-meta { font: .875rem/1.4 Arial, sans-serif; color: var(--ink-soft); }
.mini-playing-card { padding: clamp(1.2rem, 4vw, 2.5rem); border: 1px solid #d7c2aa; border-radius: 1.3rem; background: #fffdf8; box-shadow: 0 12px 30px #70412914; }
.mini-card-suit { margin: 0 0 .5rem; color: var(--heart); font-size: 2rem; }
.mini-playing-card h3 { margin: 0 0 1.4rem; font-size: clamp(1.5rem, 3vw, 2.2rem); line-height: 1.2; }
.mini-rules p, .mini-playing-card > p { line-height: 1.6; }
.mini-prompt { font-size: clamp(1.25rem, 3vw, 1.65rem); line-height: 1.4; margin: 1.3rem 0; overflow-wrap: anywhere; }
.mini-example { white-space: pre-line; line-height: 1.6; }
.mini-word-list, .mini-ranking { padding-left: 1.6rem; line-height: 1.8; font-size: 1.2rem; }
.mini-word-list li { padding: .2rem 0; }
.mini-target { color: var(--heart); font-weight: 700; }
.mini-secret { border: 1px solid #d7c2aa; background: #f8e5ce; padding: 1rem; margin: 1.2rem 0; border-radius: 1rem; }
.mini-letter { margin: 0; text-align: center; font-size: 4rem; color: var(--heart); }
.mini-games [data-mini-heading]:focus { outline: none; }
@media (max-width: 420px) { .mini-grid { gap: .65rem; } .mini-menu-card { min-height: 13rem; padding: 2.5rem .65rem; } .mini-menu-title { font-size: 1.05rem; } }
@media (max-width: 340px) { .mini-grid { grid-template-columns: 1fr; } }
