@font-face { font-family: "Almendra"; src: url("assets/almendra-700-latin.woff2") format("woff2"); font-style: normal; font-weight: 700; font-display: swap; }

.originals-page { height: 100dvh; overflow-x: hidden; overflow-y: auto; background: radial-gradient(circle at 70% 14%, rgba(148,89,255,.17), transparent 30%), radial-gradient(circle at 14% 42%, rgba(220,183,96,.08), transparent 28%), #070b14; }
.originals-shell { width: min(1180px, calc(100% - 32px)); height: 100dvh; display: grid; grid-template-rows: auto minmax(0, 1fr) auto; margin: 0 auto; }
.originals-topbar { position: relative; z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 12px 0; border-bottom: 1px solid rgba(53,65,88,.8); background: rgba(7,11,20,.9); backdrop-filter: blur(14px); }
.originals-brand { display: flex; align-items: center; gap: 11px; color: #f7f8fc; text-decoration: none; }
.originals-brand img { width: 48px; height: 48px; object-fit: contain; border: 1px solid #344059; border-radius: 13px; background: #0d1422; }
.game-room-page .originals-brand img { padding: 3px; }
.originals-brand span { display: grid; }
.originals-brand strong { font-size: 22px; }
.originals-brand small { color: #7f8ca0; font-style: italic; }
.originals-nav { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 7px; }
.originals-nav a { border: 1px solid #344058; border-radius: 999px; padding: 8px 12px; color: #aebbd0; background: #0c1422; font-size: 12px; font-weight: 800; text-decoration: none; }
.originals-nav a:hover, .originals-nav a:focus-visible, .originals-nav a.active { border-color: #b791ff; color: #fff; outline: none; }
.originals-nav a.active { background: rgba(138,92,255,.16); }
.tower-account { position: relative; display: flex; align-items: center; gap: 8px; }
.tower-account .google-signin { min-width: 190px; min-height: 40px; }
.tower-account-link { color: #f4f7fb; text-decoration: none; }
.tower-account-link[hidden] { display: none; }
.tower-auth-message { position: absolute; z-index: 30; top: calc(100% + 8px); right: 0; width: 240px; border: 1px solid #984b58; border-radius: 9px; padding: 8px 10px; color: #ffd1d8; background: #35151b; font-size: 11px; line-height: 1.35; box-shadow: 0 12px 30px rgba(0,0,0,.38); }
.originals-shell > main { min-height: 0; display: grid; grid-template-rows: clamp(215px, 27vh, 255px) auto minmax(0, 1fr) 112px; gap: 10px 14px; padding: 14px 0 10px; }
.quizard-hero { min-height: 0; display: grid; grid-template-columns: minmax(235px, 270px) minmax(300px, 1fr) minmax(190px, 225px); align-items: center; gap: clamp(18px, 2.4vw, 30px); overflow: hidden; padding: clamp(18px, 2.5vw, 28px); border: 1px solid #3d355a; border-radius: 22px; background-image: radial-gradient(ellipse at center, rgba(7,11,20,.94) 0 38%, rgba(7,11,20,.73) 64%, rgba(7,11,20,.18) 100%), linear-gradient(90deg, rgba(7,11,20,.28), transparent 26%, transparent 74%, rgba(7,11,20,.28)), url("assets/quizard-attic.webp"); background-position: center; background-size: cover; box-shadow: 0 22px 56px rgba(0,0,0,.35); }
.tower-kicker { color: #c7a8ff; font-size: 11px; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.quizard-copy { position: relative; z-index: 1; height: 100%; display: flex; align-items: center; }
.quizard-copy h1 { margin-top: 6px; font-size: clamp(40px, 6vw, 64px); line-height: .98; }
.quizard-copy > p { max-width: 590px; margin-top: 12px; color: #c3ccda; font-size: 16px; line-height: 1.5; }
.quizard-invitation { width: 100%; margin: 0; }
.quizard-speech { position: relative; min-height: clamp(96px, 13vh, 122px); display: flex; align-items: center; border: 2px solid #15131c; border-radius: 20px; padding: clamp(17px, 2vw, 23px); color: #08080d; background: #fff; font-family: "Almendra", Georgia, serif; font-size: clamp(19px, 2vw, 25px); font-weight: 700; line-height: 1.2; box-shadow: 0 14px 34px rgba(0,0,0,.34); }
.quizard-speech::after { position: absolute; top: 50%; right: -15px; width: 26px; height: 26px; content: ""; border-top: 2px solid #15131c; border-right: 2px solid #15131c; background: #fff; transform: translateY(-50%) rotate(45deg); }
.quizard-speech-text { position: relative; z-index: 1; color: #08080d; }
.quizard-invitation-actions { display: flex; justify-content: flex-end; }
.quizard-playlist-link { width: fit-content; display: inline-flex; margin-top: 10px; text-decoration: none; }
.workshop-note { display: inline-block; margin-top: 16px; border: 1px solid #6c5430; border-radius: 999px; padding: 7px 11px; color: #e5c77e; background: rgba(8,11,20,.72); font-size: 11px; font-weight: 800; }
.quizard-figure { position: relative; z-index: 1; min-width: 0; display: grid; justify-items: center; margin: 0; }
.quizard-hero-image { width: 100%; height: clamp(165px, 20vh, 195px); object-fit: contain; object-position: center; filter: drop-shadow(0 16px 18px rgba(0,0,0,.6)); }
.quizard-figure figcaption { margin-top: -5px; color: #7f8ca0; font-size: 12px; font-style: italic; }
.daily-knight-progress { position: relative; z-index: 1; min-width: 0; display: grid; grid-template-columns: 100px minmax(0, 1fr); align-items: center; gap: 10px; }
.daily-knight-image { width: 100px; height: 150px; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 12px 13px rgba(0,0,0,.58)); transition: opacity .2s ease, transform .28s ease, filter .28s ease; }
.daily-knight-image.is-evolving { animation: daily-knight-evolve .55s cubic-bezier(.18,.75,.25,1.18); }
.daily-knight-copy { min-width: 0; display: grid; gap: 5px; }
.daily-knight-title { overflow-wrap: anywhere; color: #f6f2ff; font-size: 15px; line-height: 1.05; }
.daily-knight-copy small { color: #a8b4c7; font-size: 10px; line-height: 1.35; }
.daily-xp-row { display: grid; grid-template-columns: auto minmax(72px, 1fr) auto; align-items: center; gap: 6px; }
.daily-xp-label { color: #c7a8ff; font-size: 9px; font-weight: 950; letter-spacing: .1em; }
.daily-xp-meter { position: relative; height: 10px; overflow: visible; border: 1px solid #46546d; border-radius: 999px; background: #040912; box-shadow: inset 0 0 7px rgba(0,0,0,.8); }
.daily-xp-fill { position: absolute; inset: 1px auto 1px 1px; width: 0%; border-radius: inherit; background: linear-gradient(90deg, #4f8cff, #8a5cff 72%, #dfc8ff); box-shadow: 0 0 10px rgba(138,92,255,.62); transition: width .5s ease; }
.daily-xp-meter i { position: absolute; z-index: 2; top: -4px; left: var(--xp-step); width: 2px; height: 16px; border-radius: 2px; background: #e34c5c; box-shadow: 0 0 5px rgba(255,75,90,.78); transform: translateX(-1px); }
.daily-xp-row b { color: #e8ddff; font-size: 10px; font-variant-numeric: tabular-nums; }
@keyframes daily-knight-evolve { 0% { opacity: .3; transform: translateY(5px) scale(.9); filter: brightness(1.7) saturate(1.5); } 70% { opacity: 1; transform: translateY(-2px) scale(1.04); } 100% { transform: none; } }
.original-games { min-height: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #2e3a51; border-radius: 18px; padding: 14px 14px 10px; background: #000; box-shadow: 0 18px 44px rgba(0,0,0,.28); }
.original-games-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 10px; }
.original-games-title-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 9px 14px; }
.original-games-heading h2 { margin-top: 3px; font-size: 25px; }
.originals-current-score { border: 1px solid #564477; border-radius: 999px; padding: 6px 10px; color: #d8c8f4; background: rgba(31,21,52,.72); font-size: 12px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.originals-current-score.perfect { color: #fff; border-color: #f0cf7c; background: linear-gradient(90deg, rgba(111,67,175,.8), rgba(30,118,105,.8), rgba(155,82,57,.8)); box-shadow: 0 0 18px rgba(235,202,100,.2); }
.original-games-heading > p { max-width: 380px; color: #8e9caf; line-height: 1.5; }
.original-games-scroll { min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 4px 8px 8px 1px; background: #000; scrollbar-color: #665487 #080808; scrollbar-width: thin; }
.original-games-scroll:focus-visible { outline: 1px solid #9b75e8; outline-offset: 4px; border-radius: 10px; }
.original-game-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px; }
.community-leaderboard { display: grid; grid-template-columns: minmax(210px, auto) minmax(0, 1fr); align-items: center; gap: 6px 16px; margin: 0 0 11px; border: 1px solid #35405a; border-radius: 16px; padding: 12px 14px; color: #f5f6fa; background-image: radial-gradient(ellipse at center, rgba(5,9,17,.96) 0 46%, rgba(5,9,17,.8) 70%, rgba(5,9,17,.36) 100%), url("assets/quizard-room.webp"); background-position: center; background-size: cover; }
.leaderboard-heading { min-width: 0; display: flex; align-items: center; justify-content: flex-start; gap: 10px; }
.leaderboard-heading > div { min-width: 0; display: flex; align-items: baseline; gap: 8px; }
.leaderboard-heading .eyebrow { font-size: 9px; }
.leaderboard-heading h3 { margin: 0; font-size: 18px; }
.leaderboard-privacy { flex: 0 0 auto; border: 1px solid #43536f; border-radius: 999px; padding: 4px 7px; color: #aebbd0; font-size: 9px; font-weight: 800; white-space: nowrap; }
.leaderboard-controls { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 8px; margin: 0; }
.leaderboard-range { display: flex; flex-wrap: wrap; gap: 7px; }
.leaderboard-range button, .leaderboard-controls select { min-height: 32px; border: 1px solid #43516d; border-radius: 9px; padding: 6px 9px; color: #bdc8d9; background: #0a1321; font: inherit; font-size: 11px; font-weight: 800; cursor: pointer; }
.leaderboard-range button:hover, .leaderboard-range button:focus-visible,
.leaderboard-range button[aria-pressed="true"] { border-color: #a37bea; color: #fff; background: rgba(126,79,211,.22); outline: none; }
.leaderboard-controls label { display: flex; align-items: center; gap: 6px; color: #8e9caf; font-size: 9px; font-weight: 850; letter-spacing: .06em; text-transform: uppercase; }
.leaderboard-controls select { min-width: 165px; text-transform: none; }
.leaderboard-status { grid-column: 1 / -1; margin: 1px 0 0; color: #8e9caf; font-size: 10px; }
.leaderboard-entries { grid-column: 1 / -1; display: grid; gap: 5px; }
.leaderboard-entry { min-width: 0; display: grid; grid-template-columns: 42px minmax(0, 1fr) auto minmax(118px, auto); align-items: center; gap: 9px; border: 1px solid #27364c; border-radius: 10px; padding: 7px 10px; background: rgba(5,10,18,.72); }
.leaderboard-entry.is-viewer { border-color: #4687d9; background: rgba(25,62,105,.3); box-shadow: inset 3px 0 0 #5b9cf0; }
.leaderboard-rank { color: #b99af0; font-variant-numeric: tabular-nums; }
.leaderboard-player { overflow: hidden; color: #f3f6fb; font-weight: 850; text-overflow: ellipsis; white-space: nowrap; }
.leaderboard-score { color: #6de69e; font-size: 13px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.leaderboard-entry small { color: #8593a7; font-size: 10px; text-align: right; white-space: nowrap; }
.leaderboard-empty { border: 1px dashed #364660; border-radius: 10px; padding: 11px; color: #8f9db0; text-align: center; }
.leaderboard-viewer { grid-column: 1 / -1; margin: 0; color: #9aa8ba; font-size: 10px; line-height: 1.35; }
.leaderboard-viewer > p { margin: 0; }
.leaderboard-viewer a { color: #c6a8ff; font-weight: 800; }
.leaderboard-your-rank-label { display: inline-block; margin-bottom: 6px; color: #cbb1fb; font-size: 10px; font-weight: 900; letter-spacing: .09em; text-transform: uppercase; }
.community-leaderboard.is-loading { opacity: .78; }
.original-game-item { position: relative; min-width: 0; transition: opacity .15s ease, transform .15s ease; }
.original-game-item.is-owner-sortable { cursor: grab; }
.original-game-item.is-owner-sortable:active { cursor: grabbing; }
.original-game-item.is-dragging { z-index: 8; opacity: .38; transform: scale(.985); }
.original-game-drag-handle { position: absolute; z-index: 5; top: 7px; left: 50%; display: grid; grid-template-columns: repeat(3, 3px); gap: 3px; border: 1px solid rgba(183,145,255,.5); border-radius: 999px; padding: 5px 7px; background: rgba(7,11,20,.9); transform: translateX(-50%); pointer-events: none; }
.original-game-drag-handle[hidden] { display: none; }
.original-game-drag-handle i { width: 3px; height: 3px; border-radius: 50%; background: #c7a8ff; }
.original-game-favorite { position: absolute; z-index: 6; top: 8px; right: 8px; width: 27px; height: 27px; display: grid; place-items: center; border: 1px solid rgba(171,148,211,.52); border-radius: 50%; padding: 0; color: #c4b5df; background: rgba(6,10,18,.88); font: inherit; cursor: pointer; box-shadow: 0 4px 12px rgba(0,0,0,.24); transition: color .15s ease, border-color .15s ease, background .15s ease, transform .15s ease; }
.original-game-favorite:hover, .original-game-favorite:focus-visible { border-color: #f2cd69; color: #ffe28a; background: rgba(55,39,83,.96); outline: 2px solid rgba(199,168,255,.4); outline-offset: 2px; transform: scale(1.08); }
.original-game-favorite.is-favorite { border-color: #d9b44f; color: #ffd966; background: rgba(71,49,25,.94); text-shadow: 0 0 9px rgba(255,217,102,.5); }
.original-game-favorite-icon { font-size: 17px; line-height: 1; transform: translateY(-1px); }
.originals-dragging .original-game-card { pointer-events: none; }
.original-game-card { --card-art: url("assets/quizard-room.webp"); --card-accent-rgb: 155,117,232; position: relative; min-height: 172px; height: 100%; display: grid; align-content: start; grid-template-columns: 42px minmax(0, 1fr); gap: 5px 9px; overflow: hidden; border: 1px solid rgba(var(--card-accent-rgb),.38); border-radius: 14px; padding: 12px 13px; color: #f5f6fa; background-color: #050912; background-image: linear-gradient(100deg, rgba(5,9,17,.98) 0%, rgba(5,9,17,.93) 40%, rgba(5,9,17,.68) 76%, rgba(5,9,17,.52) 100%), radial-gradient(circle at 88% 46%, rgba(var(--card-accent-rgb),.2), transparent 52%), var(--card-art); background-position: center, center, right center; background-size: auto, auto, 280px 158px; background-repeat: no-repeat, no-repeat, repeat; text-decoration: none; box-shadow: inset 0 0 34px rgba(var(--card-accent-rgb),.035); transition: transform .18s ease, border-color .18s ease, filter .18s ease, box-shadow .18s ease; }
.original-game-card[data-original-game="plot-lost"] { --card-art: url("assets/card-art-plot-lost.svg"); --card-accent-rgb: 169,138,199; }
.original-game-card[data-original-game="vg-plot-lost"] { --card-art: url("assets/card-art-vg-plot-lost.svg"); --card-accent-rgb: 118,98,167; }
.original-game-card[data-original-game="tiny-tv-triviacross"] { --card-art: url("assets/card-art-tv-triviacross.svg"); --card-accent-rgb: 143,181,171; }
.original-game-card[data-original-game="mini-movie-triviacross"] { --card-art: url("assets/card-art-movie-triviacross.svg"); --card-accent-rgb: 201,169,102; }
.original-game-card[data-original-game="simpsons-trivia"] { --card-art: url("assets/card-art-simpsons-trivia.svg"); --card-accent-rgb: 211,184,95; }
.original-game-card[data-original-game="simpsons-episodes"] { --card-art: url("assets/card-art-simpsons-panels.svg"); --card-accent-rgb: 183,125,152; }
.original-game-card[data-original-game="timeline-tangle"] { --card-art: url("assets/card-art-timeline.svg"); --card-accent-rgb: 155,130,189; }
.original-game-card[data-original-game="wordspell"] { --card-art: url("assets/card-art-wordspell.svg"); --card-accent-rgb: 169,138,202; }
.original-game-card[data-original-game="wizards-alibi"] { --card-art: url("assets/card-art-wizards-alibi.svg"); --card-accent-rgb: 157,134,185; }
.original-game-card[data-original-game="law-of-the-rune"] { --card-art: url("assets/card-art-law-of-the-rune.svg"); --card-accent-rgb: 190,162,91; }
.original-game-card[data-original-game="the-contradiction"] { --card-art: url("assets/card-art-the-contradiction.svg"); --card-accent-rgb: 181,112,139; }
.original-game-card > * { position: relative; z-index: 1; }
.original-game-card:hover, .original-game-card:focus-visible { border-color: rgba(var(--card-accent-rgb),.9); outline: none; box-shadow: inset 0 0 38px rgba(var(--card-accent-rgb),.08), 0 10px 24px rgba(var(--card-accent-rgb),.14); transform: translateY(-3px); }
.original-game-card.has-daily-puzzle .game-status { color: #67ec9a; }
.original-game-card.missing-daily-puzzle { cursor: pointer; }
.original-game-card.missing-daily-puzzle .game-status { color: #f0bd68; }
.original-game-card.missing-daily-puzzle .enter-game { color: #8793a6; }
.game-mark { width: 42px; height: 42px; grid-row: 1 / 3; object-fit: contain; border: 1px solid #7254ad; border-radius: 11px; padding: 4px; background: radial-gradient(circle, rgba(36,26,61,.92), rgba(9,15,27,.96)); }
.game-status { align-self: start; justify-self: end; margin-right: 27px; color: #7fdda1; font-size: 8px; font-weight: 900; letter-spacing: .06em; text-transform: uppercase; }
.game-status.is-countdown { min-width: 0; font-size: 9px; font-variant-numeric: tabular-nums; letter-spacing: .05em; text-align: right; white-space: nowrap; }
.game-status.is-countdown::before { content: "Puzzle refresh: "; color: #67ec9a; font-style: italic; letter-spacing: .02em; text-transform: none; }
.original-game-card h3 { align-self: end; overflow-wrap: anywhere; font-size: 16px; line-height: 1.05; }
.original-game-kind { color: #7f8ca0; font-size: .62em; font-weight: 650; white-space: nowrap; }
.original-game-card p { grid-column: 1 / -1; margin-top: 4px; color: #aab7c9; font-size: 11px; line-height: 1.32; }
.enter-game { grid-column: 1 / -1; align-self: end; margin-top: 5px; color: #c7a8ff; font-size: 10px; font-weight: 900; }
.original-game-score { order: 3; grid-column: 1 / -1; display: flex; flex-wrap: wrap; align-items: center; gap: 3px 6px; margin-top: 4px; border-top: 1px solid rgba(77,91,117,.48); padding-top: 5px; color: #aeb9ca; font-size: 9px; font-variant-numeric: tabular-nums; }
.original-game-score[hidden] { display: none; }
.original-game-completed-label { flex: 0 0 100%; color: #d9e0ea; font-size: 10px; font-weight: 900; letter-spacing: .015em; }
.original-game-score strong { color: #fff; font-size: 12px; }
.original-game-score b { margin-left: auto; color: #fff; font-size: 12px; letter-spacing: .05em; text-shadow: 0 0 12px currentColor; background: linear-gradient(90deg, #ff6078, #ffd166, #55e6a5, #5ab3ff, #c084fc, #ff6078); background-size: 300% 100%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: perfect-score-rainbow 2.4s linear infinite, perfect-score-pulse 1.3s ease-in-out infinite; }
.original-game-score.perfect strong { font-size: 14px; }
.original-game-card.is-completed-today { border-color: #4b5668; box-shadow: inset 0 0 0 999px rgba(126,136,151,.11); }
.original-game-card.is-completed-today .game-mark,
.original-game-card.is-completed-today > p,
.original-game-card.is-completed-today .enter-game { opacity: .47; filter: grayscale(.72); }
.original-game-card.is-completed-today h3,
.original-game-card.is-completed-today .game-status,
.original-game-card.is-completed-today .original-game-score { opacity: 1; filter: none; }
.enter-game { order: 4; }
.original-game-item.is-hidden-puzzle .original-game-card { border-style: dashed; opacity: .58; filter: grayscale(.28); }
.original-game-item.is-hidden-puzzle::before { position: absolute; z-index: 3; top: 11px; left: 11px; content: "Hidden"; border: 1px solid #8e5965; border-radius: 999px; padding: 4px 8px; color: #ffc2ca; background: rgba(55,13,22,.9); font-size: 9px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; pointer-events: none; }
.original-game-admin-actions { position: absolute; z-index: 4; right: 13px; bottom: 13px; display: flex; gap: 7px; opacity: 0; transform: translateY(5px); pointer-events: none; transition: opacity .16s ease, transform .16s ease; }
.original-game-item:hover .original-game-admin-actions, .original-game-item:focus-within .original-game-admin-actions { opacity: 1; transform: translateY(0); pointer-events: auto; }
.original-game-admin-action { border: 1px solid #8e5965; border-radius: 9px; padding: 7px 10px; color: #ffd6dc; background: rgba(55,13,22,.96); font: inherit; font-size: 11px; font-weight: 900; cursor: pointer; box-shadow: 0 8px 22px rgba(0,0,0,.36); }
.original-game-admin-action:hover, .original-game-admin-action:focus-visible { border-color: #ff8192; color: #fff; outline: none; }
.original-game-admin-action.show-puzzle { border-color: #3b9a65; color: #bff5d3; background: rgba(11,61,36,.96); }
.original-game-admin-action.show-puzzle:hover, .original-game-admin-action.show-puzzle:focus-visible { border-color: #62d493; }
.original-game-admin-action:disabled { opacity: .66; cursor: wait; }
.originals-admin-status { margin-left: auto; color: #a9e8c1; font-size: 12px; font-weight: 800; }
.originals-admin-status.error { color: #ff9caa; }
.tower-ad { width: 100%; min-height: 112px; margin: 0; border-color: #2e3a51; border-radius: 18px; background: linear-gradient(145deg, rgba(14,22,37,.97), rgba(7,12,21,.98)); }
.tower-notice-dialog { width: min(92vw, 410px); border: 1px solid #4c5b75; border-radius: 18px; padding: 25px; color: #eef2f8; background: #0c1525; box-shadow: 0 28px 90px rgba(0,0,0,.64); text-align: center; }
.tower-notice-dialog::backdrop { background: rgba(2,6,13,.76); backdrop-filter: blur(4px); }
.tower-notice-dialog .tower-notice-icon { width: 44px; height: 44px; display: grid; place-items: center; margin: 0 auto 13px; border: 1px solid #8867c7; border-radius: 50%; color: #f2cf78; background: #24183d; font-size: 25px; font-weight: 950; }
.tower-notice-dialog h2 { font-size: 21px; }
.tower-notice-dialog p { margin: 9px 0 19px; color: #aeb9ca; line-height: 1.5; }
.tower-notice-dialog form { display: flex; justify-content: center; }
.tower-notice-dialog .primary-btn { min-width: 116px; }
.perfect-day-celebration { position: fixed; z-index: 9999; inset: 0; display: grid; place-items: center; overflow: hidden; opacity: 0; pointer-events: none; background: radial-gradient(circle at 20% 20%, rgba(255,77,109,.46), transparent 34%), radial-gradient(circle at 80% 28%, rgba(90,179,255,.48), transparent 36%), radial-gradient(circle at 48% 78%, rgba(192,132,252,.52), transparent 42%), rgba(255,209,102,.08); transition: opacity .25s ease; }
.perfect-day-celebration[hidden] { display: none; }
.perfect-day-celebration.show { opacity: 1; animation: perfect-day-wash .72s ease-in-out 3 alternate; }
.perfect-day-message { position: relative; z-index: 3; max-width: min(90vw, 820px); border: 2px solid rgba(255,255,255,.78); border-radius: 24px; padding: clamp(22px, 5vw, 48px); color: #fff; background: rgba(8,10,22,.82); box-shadow: 0 0 80px rgba(255,209,102,.46), inset 0 0 30px rgba(192,132,252,.22); font-size: clamp(30px, 6vw, 68px); font-weight: 950; line-height: 1.02; text-align: center; text-shadow: 0 0 18px #c084fc, 0 0 28px #5ab3ff; transform: scale(.72); animation: perfect-day-message-in .62s cubic-bezier(.2,.9,.25,1.3) forwards; }
.firework-burst { position: fixed; z-index: 2; left: var(--firework-x); top: var(--firework-y); width: 1px; height: 1px; animation: firework-pop .25s ease-out var(--firework-delay) both; }
.firework-burst i { position: absolute; left: 0; top: 0; width: 10px; height: 3px; border-radius: 999px; background: var(--spark-color); box-shadow: 0 0 8px var(--spark-color); transform: rotate(var(--spark-angle)) translateX(0); opacity: 0; animation: firework-spark 1.25s cubic-bezier(.16,.7,.2,1) var(--firework-delay) forwards; }
@keyframes perfect-score-rainbow { to { background-position: -300% 0; } }
@keyframes perfect-score-pulse { 50% { transform: scale(1.08); filter: brightness(1.35); } }
@keyframes perfect-day-wash { from { filter: hue-rotate(0deg) brightness(1); } to { filter: hue-rotate(100deg) brightness(1.25); } }
@keyframes perfect-day-message-in { to { transform: scale(1); } }
@keyframes firework-pop { from { transform: scale(.2); } to { transform: scale(1); } }
@keyframes firework-spark { 0% { opacity: 1; transform: rotate(var(--spark-angle)) translateX(5px) scaleX(.4); } 72% { opacity: 1; } 100% { opacity: 0; transform: rotate(var(--spark-angle)) translateX(clamp(75px, 11vw, 150px)) scaleX(1); } }
.originals-footer { display: flex; justify-content: center; gap: 8px; padding: 2px 0 8px; color: #667388; }
.originals-footer a { color: #8d9aad; font-size: 12px; text-decoration: none; }
.game-room-page { height: auto; min-height: 100dvh; overflow-y: auto; }
.game-room-page .originals-shell { height: auto; min-height: 100dvh; }
.originals-shell > main.game-room-main { display: block; padding: 24px 0 60px; }
.originals-utility-row { min-height: 22px; display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.originals-utility-row-landing { justify-content: flex-end; }
.back-to-tower { color: #b89cff; font-size: 13px; font-weight: 800; text-decoration: none; }
.back-to-tower:hover, .back-to-tower:focus-visible { color: #e1d5ff; outline: none; text-decoration: underline; text-underline-offset: 3px; }
.originals-shell > main.archive-main { min-height: 0; display: grid; grid-template-rows: auto minmax(0, 1fr); gap: 12px; padding: 16px 0 12px; }
.archive-card { min-height: 0; display: flex; flex-direction: column; overflow: hidden; border: 1px solid #35405a; border-radius: 20px; padding: clamp(18px, 3vw, 30px); background: linear-gradient(145deg, rgba(14,22,37,.98), rgba(8,12,23,.98)); box-shadow: 0 20px 54px rgba(0,0,0,.34); }
.archive-heading { display: flex; align-items: end; justify-content: space-between; gap: 22px; }
.archive-heading h1 { margin-top: 4px; font-size: clamp(28px, 4vw, 42px); }
.archive-heading p { margin-top: 7px; color: #8e9caf; line-height: 1.45; }
.archive-count { flex: 0 0 auto; border: 1px solid #564477; border-radius: 999px; padding: 7px 11px; color: #d8c8f4; background: rgba(31,21,52,.72); font-size: 12px; font-variant-numeric: tabular-nums; }
.archive-controls { display: grid; grid-template-columns: minmax(145px, 190px) minmax(145px, 190px) minmax(0, 1fr); align-items: end; gap: 10px 14px; margin-top: 20px; border-block: 1px solid rgba(55,68,93,.72); padding: 14px 0; }
.archive-controls label { display: grid; gap: 5px; color: #94a1b4; font-size: 10px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.archive-controls select { min-height: 39px; border: 1px solid #46536c; border-radius: 9px; padding: 8px 34px 8px 10px; color: #edf1f7; background: #09111e; font: inherit; font-size: 12px; font-weight: 750; }
.archive-controls select:focus-visible { border-color: #a982f0; outline: 2px solid rgba(169,130,240,.18); }
.archive-filters { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.archive-filters button { min-height: 34px; border: 1px solid #46536c; border-radius: 999px; padding: 6px 10px; color: #aeb9ca; background: #09111e; font: inherit; font-size: 11px; font-weight: 850; cursor: pointer; }
.archive-filters button:hover, .archive-filters button:focus-visible { border-color: #9f7ce3; color: #fff; outline: none; }
.archive-filters button[aria-pressed="true"] { border-color: #b791ff; color: #fff; background: rgba(105,65,169,.68); box-shadow: 0 0 0 2px rgba(183,145,255,.1); }
.archive-status { margin: auto; color: #94a1b4; text-align: center; }
.archive-status[hidden] { display: none; }
.archive-status.error { color: #ff9caa; }
.archive-list { min-height: 0; display: grid; align-content: start; gap: 8px; overflow-y: auto; overscroll-behavior: contain; margin: 14px 0 0; padding: 0 7px 4px 0; list-style: none; scrollbar-color: #665487 #0a111e; scrollbar-width: thin; }
.archive-item { min-width: 0; }
.archive-item-link { min-height: 72px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 13px; border: 1px solid #35425b; border-radius: 13px; padding: 11px 14px; color: #f4f6fa; background: #0a1322; text-decoration: none; transition: border-color .15s ease, background .15s ease, transform .15s ease; }
.archive-item-link:hover, .archive-item-link:focus-visible { border-color: #9b75e8; outline: none; background: #101b2e; transform: translateX(3px); }
.archive-item-link img { width: 48px; height: 48px; object-fit: contain; border: 1px solid #584779; border-radius: 10px; padding: 4px; background: #131b2d; }
.archive-item-copy { min-width: 0; display: grid; gap: 4px; }
.archive-item-copy strong { overflow: hidden; font-size: 15px; text-overflow: ellipsis; white-space: nowrap; }
.archive-item-copy small { overflow: hidden; color: #8795aa; font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.archive-completion { min-width: 112px; border: 1px solid #46536c; border-radius: 999px; padding: 6px 9px; color: #8e9caf; background: rgba(5,10,18,.72); font-size: 10px; font-weight: 900; text-align: center; white-space: nowrap; }
.archive-item.is-completed .archive-completion { border-color: #2e8253; color: #72efa5; background: rgba(9,54,31,.68); }
.archive-item.is-perfect .archive-completion { border-color: #b58c42; color: #ffe18e; background: linear-gradient(90deg, rgba(82,47,126,.78), rgba(19,86,73,.78)); box-shadow: 0 0 14px rgba(240,207,124,.13); }
.game-room-card { min-height: 620px; display: grid; grid-template-columns: minmax(0, 1fr) 330px; gap: 40px; overflow: hidden; margin-top: 16px; padding: clamp(28px, 6vw, 68px); border: 1px solid #3d355a; border-radius: 24px; background: linear-gradient(145deg, #101a2b, #110c20); }
.game-room-title { display: flex; align-items: center; gap: 18px; }
.game-room-title > div { min-width: 0; }
.game-room-icon { width: 92px; height: 92px; flex: 0 0 auto; object-fit: contain; border: 1px solid #574477; border-radius: 19px; padding: 7px; background: radial-gradient(circle, rgba(41,27,69,.94), rgba(8,13,23,.96)); }
.game-room-copy h1 { margin-top: 4px; font-size: clamp(44px, 7vw, 76px); }
.game-room-copy > p { margin-top: 12px; color: #b5c0d2; font-size: 18px; line-height: 1.6; }
.game-how-it-works { margin-top: 32px; }
.game-how-it-works h2 { font-size: 18px; }
.game-how-it-works ol { display: grid; gap: 9px; padding-left: 22px; color: #aeb9ca; line-height: 1.5; }
.game-placeholder { margin-top: 30px; border: 1px dashed #665487; border-radius: 14px; padding: 20px; background: rgba(31,21,52,.48); }
.game-placeholder strong { color: #e3d7fa; }
.game-placeholder p { margin-top: 5px; color: #8f9caf; line-height: 1.5; }
.plot-lost-game { display: grid; gap: 16px; margin-top: 26px; }
.plot-lost-game[hidden] { display: none !important; }
.plot-lost-puzzle-heading { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.translation-depth, .translation-progress { color: #c7a8ff; font-size: 11px; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
.translation-score { margin-right: auto; border: 1px solid #6c5430; border-radius: 999px; padding: 5px 9px; color: #f0cf7c; background: rgba(55,39,14,.5); font-size: 12px; }
.translation-progress { color: #7f8ca0; }
.translated-plot { min-height: 146px; margin: 0; border: 1px solid #574477; border-radius: 16px; padding: 22px; color: #f0eafb; background: rgba(21,14,37,.75); font-size: clamp(18px, 2.2vw, 23px); font-style: italic; line-height: 1.55; }
.plot-lost-hints { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 9px; }
.plot-lost-hint { width: 100%; min-height: 60px; display: grid; align-content: center; border: 1px solid #4b5b76; border-radius: 11px; padding: 10px 12px; color: inherit; background: #0b1423; font: inherit; text-align: left; }
button.plot-lost-hint { cursor: pointer; transition: border-color .16s ease, background .16s ease, transform .16s ease; }
button.plot-lost-hint:hover, button.plot-lost-hint:focus-visible { border-color: #a982f0; background: #161e32; outline: none; transform: translateY(-1px); }
.plot-lost-hint.revealed { border-color: #675187; background: rgba(29,20,48,.72); }
.plot-lost-hint span { color: #7f8ca0; font-size: 9px; font-weight: 900; letter-spacing: .1em; text-transform: uppercase; }
.plot-lost-hint strong { margin-top: 3px; color: #f4f6fa; font-size: 13px; }
.plot-lost-form { display: grid; gap: 9px; }
.plot-lost-form > label { color: #d7ddea; font-size: 13px; font-weight: 800; }
.movie-combobox { position: relative; min-width: 0; }
.movie-combobox input { width: 100%; border: 1px solid #46536c; border-radius: 11px; padding: 12px 14px; color: #fff; background: #09111e; font: inherit; }
.movie-combobox input:focus { border-color: #a982f0; outline: 2px solid rgba(169,130,240,.18); }
.movie-suggestions { position: absolute; z-index: 60; top: calc(100% + 5px); right: 0; left: 0; max-height: min(300px, 45vh); overflow-y: auto; border: 1px solid #4c5a75; border-radius: 11px; padding: 5px; background: #09111e; box-shadow: 0 12px 28px rgba(0,0,0,.34); }
.movie-suggestion { width: 100%; display: grid; gap: 2px; border: 0; border-radius: 7px; padding: 9px 10px; color: #dfe5ef; background: transparent; text-align: left; font: inherit; cursor: pointer; }
.movie-suggestion span { overflow: hidden; text-overflow: ellipsis; font-weight: 800; white-space: nowrap; }
.movie-suggestion small { overflow: hidden; color: #8f9db2; font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.movie-suggestion:hover, .movie-suggestion:focus-visible, .movie-suggestion.is-active { color: #fff; background: #1d2b43; outline: none; }
.title-suggestion-status { padding: 9px 10px; color: #8f9db2; font-size: 11px; line-height: 1.4; }
.title-suggestions-attribution { border-top: 1px solid #26344b; margin: 4px 5px 0; padding: 7px 5px 3px; color: #7f8da3; font-size: 9px; }
.title-suggestions-attribution a { color: #b796f3; }
.game-actions { display: flex; flex-wrap: wrap; gap: 9px; }
.find-plot-btn { border: 1px solid #a982f0; border-radius: 10px; padding: 10px 13px; color: #fff; background: linear-gradient(135deg, #6740b3, #8a5cff); font: inherit; font-weight: 900; cursor: pointer; box-shadow: 0 0 18px rgba(138,92,255,.2); }
.find-plot-btn:hover, .find-plot-btn:focus-visible { border-color: #d1baff; background: linear-gradient(135deg, #7650c4, #9b72ff); outline: none; }
.find-plot-btn:disabled { opacity: .62; cursor: wait; }
.plot-lost-feedback { min-height: 22px; color: #aeb9ca; font-size: 13px; font-weight: 700; }
.plot-lost-feedback.correct { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; border: 1px solid rgba(102,236,154,.5); border-radius: 14px; padding: 14px 16px; color: #66ec9a; background: rgba(12,59,34,.34); font-size: clamp(20px, 2.5vw, 28px); line-height: 1.25; box-shadow: 0 0 24px rgba(85,230,165,.12); }
.plot-lost-feedback.correct > strong { color: #83f3ab; }
.plot-lost-final-score { color: #ffe08a; font-size: 1.08em; font-weight: 950; white-space: nowrap; }
.plot-lost-return-btn { min-height: 38px; display: inline-flex; align-items: center; justify-content: center; margin-left: auto; border: 1px solid #61d38e; border-radius: 10px; padding: 8px 13px; color: #eafff1; background: #153b27; font-size: 13px; font-weight: 900; text-decoration: none; white-space: nowrap; }
.plot-lost-return-btn:hover, .plot-lost-return-btn:focus-visible { border-color: #8ff0b2; color: #fff; background: #1d5236; outline: 3px solid rgba(85,230,165,.16); }
.plot-lost-feedback.wrong { color: #f3bd67; }
.plot-lost-confetti { position: fixed; z-index: 9998; inset: 0; overflow: hidden; pointer-events: none; }
.plot-lost-confetti[hidden] { display: none; }
.plot-lost-confetti-piece { position: absolute; top: var(--confetti-start-y); width: 11px; height: 6px; border-radius: 2px; opacity: 0; background: var(--confetti-color); box-shadow: 0 0 7px var(--confetti-color); }
.plot-lost-confetti-piece.from-left { left: -14px; }
.plot-lost-confetti-piece.from-right { right: -14px; }
.plot-lost-confetti.show .plot-lost-confetti-piece { animation: plot-lost-confetti-burst var(--confetti-duration) cubic-bezier(.13,.72,.2,1) var(--confetti-delay) forwards; }
@keyframes plot-lost-confetti-burst {
  0% { opacity: 0; transform: translate(0, 0) rotate(0); }
  8% { opacity: 1; }
  72% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--confetti-travel-x), var(--confetti-travel-y)) rotate(var(--confetti-spin)); }
}
.game-room-quizard { width: 100%; height: 520px; align-self: end; object-fit: contain; object-position: center bottom; filter: drop-shadow(0 22px 20px rgba(0,0,0,.52)); }
@keyframes quizard-type-shake {
  0%, 100% { transform: translate(0, 0) rotate(0); }
  20% { transform: translate(-2px, 1px) rotate(-.35deg); }
  40% { transform: translate(2px, -1px) rotate(.35deg); }
  60% { transform: translate(-1px, -2px) rotate(-.2deg); }
  80% { transform: translate(2px, 1px) rotate(.25deg); }
}
.game-room-quizard.quizard-is-typing { animation: quizard-type-shake .11s steps(2, end) infinite; }
@media (prefers-reduced-motion: reduce) {
  .game-room-quizard.quizard-is-typing { animation: none; }
  .plot-lost-confetti { display: none !important; }
  .original-game-favorite, .original-game-score b, .perfect-day-celebration.show, .perfect-day-message, .firework-burst, .firework-burst i { animation: none; transition: none; }
  .perfect-day-message { transform: none; }
}
/* A short desktop window cannot safely contain the hero, puzzle list, and ad in
   one fixed viewport. Let the page scroll while the puzzle list keeps its own
   bounded scrollbar so every section remains reachable. */
@media (min-width: 781px) and (max-height: 820px) {
  body.originals-page:not(.game-room-page):not(.archive-page) { height: auto; min-height: 100dvh; overflow-y: auto; }
  body.originals-page:not(.game-room-page):not(.archive-page) .originals-shell { height: auto; min-height: 100dvh; grid-template-rows: auto auto auto; }
  body.originals-page:not(.game-room-page):not(.archive-page) .originals-shell > main { grid-template-rows: clamp(205px, 38vh, 245px) auto minmax(300px, 62vh) 112px; }
}
@media (max-width: 1120px) and (min-width: 921px) {
  .original-game-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .quizard-hero { grid-template-columns: minmax(220px, 245px) minmax(280px, 1fr) minmax(165px, 195px); gap: 16px; }
  .daily-knight-progress { grid-template-columns: 86px minmax(0, 1fr); }
  .daily-knight-image { width: 86px; height: 138px; }
}
@media (max-width: 920px) and (min-width: 781px) {
  .original-game-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .quizard-hero { grid-template-columns: minmax(210px, 235px) minmax(260px, 1fr) minmax(140px, 165px); gap: 13px; padding-inline: 18px; }
  .daily-knight-progress { grid-template-columns: 78px minmax(0, 1fr); }
  .daily-knight-image { width: 78px; height: 128px; }
  .daily-knight-copy small { font-size: 9px; }
  .quizard-speech { padding: 15px 17px; font-size: 18px; }
}
@media (max-width: 780px) {
  .originals-page { height: auto; min-height: 100vh; overflow: auto; }
  .originals-shell { height: auto; min-height: 100vh; display: block; }
  .originals-topbar { position: sticky; top: 0; }
  .originals-shell > main { display: block; padding: 14px 0; }
  .originals-topbar, .original-games-heading { align-items: flex-start; flex-direction: column; }
  .originals-nav { justify-content: flex-start; }
  .tower-account { width: 100%; justify-content: flex-start; }
  .game-room-card { grid-template-columns: 1fr; }
  .quizard-hero { min-height: 0; grid-template-columns: 1fr 1fr; grid-template-areas: "knight quizard" "speech speech"; gap: 10px 16px; }
  .daily-knight-progress { grid-area: knight; grid-template-columns: 82px minmax(0, 1fr); }
  .daily-knight-image { width: 82px; height: 124px; }
  .quizard-copy { grid-area: speech; }
  .quizard-figure { grid-area: quizard; }
  .quizard-invitation { margin-left: 0; }
  .quizard-speech::after { top: -15px; right: 44px; bottom: auto; border-top: 2px solid #15131c; border-right: 2px solid #15131c; border-bottom: 0; }
  .quizard-hero-image { height: 128px; }
  .original-games { max-height: 68vh; margin-top: 14px; }
  .tower-ad { min-height: 112px; margin-top: 14px; }
  .original-game-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .community-leaderboard { grid-template-columns: 1fr; }
  .leaderboard-controls { align-items: center; justify-content: space-between; flex-wrap: wrap; }
  .leaderboard-controls label, .leaderboard-controls select { width: auto; }
  .game-room-quizard { height: 320px; }
  .plot-lost-hints { grid-template-columns: 1fr; }
  .game-room-title { align-items: flex-start; }
  .game-room-icon { width: 72px; height: 72px; }
  .original-game-admin-actions { opacity: 1; transform: none; pointer-events: auto; }
  .archive-controls { grid-template-columns: 1fr 1fr; }
  .archive-filters { grid-column: 1 / -1; justify-content: flex-start; }
}
@media (max-width: 520px) {
  .originals-shell { width: min(100% - 20px, 1180px); }
  .originals-nav a { padding: 7px 9px; }
  .quizard-hero { padding: 18px 15px; }
  .daily-knight-progress { grid-template-columns: 72px minmax(0, 1fr); gap: 7px; }
  .daily-knight-image { width: 72px; height: 108px; }
  .daily-knight-title { font-size: 13px; }
  .daily-knight-copy small { font-size: 9px; }
  .daily-xp-row { grid-template-columns: auto minmax(50px, 1fr) auto; gap: 4px; }
  .quizard-hero-image { height: 112px; }
  .quizard-figure figcaption { font-size: 10px; }
  .quizard-speech { min-height: 86px; border-radius: 17px; padding: 14px 16px; font-size: 18px; }
  .original-games { padding: 12px 10px 10px; }
  .original-game-card { min-height: 160px; padding: 14px; }
  .original-game-favorite { width: 30px; height: 30px; }
  .game-status { margin-right: 29px; }
  .community-leaderboard { gap: 7px; padding: 11px 10px; }
  .leaderboard-heading { justify-content: space-between; gap: 8px; }
  .leaderboard-heading > div { gap: 6px; }
  .leaderboard-heading h3 { font-size: 17px; }
  .leaderboard-controls { display: grid; grid-template-columns: 1fr; gap: 7px; }
  .leaderboard-range { display: grid; grid-template-columns: repeat(3, 1fr); }
  .leaderboard-range button { padding-inline: 6px; font-size: 10px; }
  .leaderboard-controls label { display: grid; grid-template-columns: auto minmax(0, 1fr); }
  .leaderboard-controls select { width: 100%; min-width: 0; }
  .leaderboard-entry { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 7px; padding: 9px 8px; }
  .leaderboard-entry small { grid-column: 2 / -1; text-align: left; }
  .originals-utility-row { gap: 10px; }
  .back-to-tower { min-height: 36px; display: inline-flex; align-items: center; padding-block: 7px; font-size: 11px; line-height: 1.25; }
  .game-room-title { display: grid; grid-template-columns: 1fr; gap: 12px; }
  .game-room-icon { width: 64px; height: 64px; }
  .game-room-copy h1 { overflow-wrap: anywhere; font-size: clamp(34px, 12vw, 48px); }
  .archive-heading { align-items: flex-start; flex-direction: column; }
  .archive-controls { grid-template-columns: 1fr; }
  .archive-filters { grid-column: auto; }
  .archive-item-link { grid-template-columns: 42px minmax(0, 1fr); }
  .archive-item-link img { width: 42px; height: 42px; }
  .archive-completion { grid-column: 2; justify-self: start; min-width: 0; }
}

@media (max-width: 430px) {
  .original-game-grid { grid-template-columns: 1fr; }
  .original-game-card { min-height: 152px; }
}

@media (max-width: 360px) {
  .originals-utility-row { gap: 7px; }
  .back-to-tower { font-size: 10px; white-space: nowrap; }
}

.plot-lost-feedback.failed { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 14px; border: 1px solid rgba(238,156,98,.56); border-radius: 14px; padding: 14px 16px; color: #f3bd67; background: rgba(82,43,18,.34); font-size: clamp(18px, 2.2vw, 25px); line-height: 1.25; }
.plot-lost-feedback.failed > strong { color: #ffca7a; }

/* Light appearance keeps the illustrated puzzle cards atmospheric while lightening all reading surfaces. */
:root[data-theme="light"] .originals-page { background: radial-gradient(circle at 70% 14%, rgba(118,70,205,.11), transparent 31%), radial-gradient(circle at 14% 42%, rgba(170,124,26,.08), transparent 29%), #eef3fa; }
:root[data-theme="light"] .originals-topbar { border-color: #bdc7d5; background: rgba(255,255,255,.92); }
:root[data-theme="light"] .originals-brand { color: #172033; }
:root[data-theme="light"] .originals-brand img { border-color: #acb9cb; background: #f3f6fa; }
:root[data-theme="light"] .originals-brand small { color: #5d6c80; }
:root[data-theme="light"] .originals-nav a { border-color: #aeb9c9; color: #3d4c61; background: #fff; }
:root[data-theme="light"] .originals-nav a:hover,
:root[data-theme="light"] .originals-nav a:focus-visible,
:root[data-theme="light"] .originals-nav a.active { border-color: #7650bd; color: #3f226f; background: #eee7fb; }
:root[data-theme="light"] .quizard-hero { color: #f7f8fc; }
:root[data-theme="light"] .quizard-speech { color: #08080d; background: #fff; }
:root[data-theme="light"] .original-games,
:root[data-theme="light"] .tower-ad { border-color: #b8c4d4; background: linear-gradient(145deg, #fff, #f5f7fb); box-shadow: 0 16px 36px rgba(45,59,81,.12); }
:root[data-theme="light"] .community-leaderboard { border-color: #bec9d7; color: #172033; background: linear-gradient(145deg, #fff, #f4f7fb); }
:root[data-theme="light"] .leaderboard-privacy { color: #4d5c70; border-color: #aeb9c8; }
:root[data-theme="light"] .leaderboard-range button,
:root[data-theme="light"] .leaderboard-controls select { color: #35455b; border-color: #afbac9; background: #fff; }
:root[data-theme="light"] .leaderboard-range button:hover,
:root[data-theme="light"] .leaderboard-range button:focus-visible,
:root[data-theme="light"] .leaderboard-range button[aria-pressed="true"] { color: #fff; background: #6843a7; }
:root[data-theme="light"] .leaderboard-entry { border-color: #c6cfdb; background: #fff; }
:root[data-theme="light"] .leaderboard-entry.is-viewer { border-color: #4e88cf; background: #e9f2fc; }
:root[data-theme="light"] .leaderboard-player { color: #172033; }
:root[data-theme="light"] .leaderboard-rank { color: #673ca3; }
:root[data-theme="light"] .leaderboard-score { color: #167242; }
:root[data-theme="light"] .leaderboard-entry small,
:root[data-theme="light"] .leaderboard-status,
:root[data-theme="light"] .leaderboard-viewer { color: #56657a; }
:root[data-theme="light"] .leaderboard-empty { color: #56657a; border-color: #aeb9c8; }
:root[data-theme="light"] .original-games-heading > p { color: #536278; }
:root[data-theme="light"] .originals-current-score { color: #4c337b; background: #f0ebfa; }
:root[data-theme="light"] .originals-current-score.perfect { color: #fff; }
:root[data-theme="light"] .original-games-scroll { scrollbar-color: #8d7ba8 #e8e4ef; }
:root[data-theme="light"] .original-game-favorite { border-color: #9b87bb; color: #5f4b7c; background: rgba(255,255,255,.92); box-shadow: 0 4px 12px rgba(37,43,57,.16); }
:root[data-theme="light"] .original-game-favorite:hover,
:root[data-theme="light"] .original-game-favorite:focus-visible { border-color: #8b6410; color: #765300; background: #fff7dc; }
:root[data-theme="light"] .original-game-favorite.is-favorite { border-color: #a87811; color: #7c5700; background: #fff0bd; }
:root[data-theme="light"] .back-to-tower { color: #5d349c; }
:root[data-theme="light"] .back-to-tower:hover,
:root[data-theme="light"] .back-to-tower:focus-visible { color: #351c61; }
:root[data-theme="light"] .originals-footer,
:root[data-theme="light"] .originals-footer a { color: #5b687a; }

:root[data-theme="light"] .archive-card { color: #172033; border-color: #b9c4d3; background: linear-gradient(145deg, #fff, #f5f7fb); box-shadow: 0 16px 40px rgba(45,59,81,.13); }
:root[data-theme="light"] .archive-heading p,
:root[data-theme="light"] .archive-status { color: #58677c; }
:root[data-theme="light"] .archive-count { color: #51327e; background: #f0ebf8; }
:root[data-theme="light"] .archive-controls { border-color: #c8d1de; }
:root[data-theme="light"] .archive-controls label { color: #4f5e73; }
:root[data-theme="light"] .archive-controls select,
:root[data-theme="light"] .archive-filters button { color: #26364a; background: #fff; }
:root[data-theme="light"] .archive-filters button:hover,
:root[data-theme="light"] .archive-filters button:focus-visible { color: #172033; }
:root[data-theme="light"] .archive-filters button[aria-pressed="true"] { color: #fff; background: #6944a6; }
:root[data-theme="light"] .archive-list { scrollbar-color: #9080aa #ebe7f0; }
:root[data-theme="light"] .archive-item-link { color: #172033; border-color: #bcc7d6; background: #fff; }
:root[data-theme="light"] .archive-item-link:hover,
:root[data-theme="light"] .archive-item-link:focus-visible { background: #f1ecfb; }
:root[data-theme="light"] .archive-item-link img { border-color: #a998bf; background: #f5f1fb; }
:root[data-theme="light"] .archive-item-copy small { color: #59687d; }
:root[data-theme="light"] .archive-completion { color: #58677c; background: #f3f5f8; }

:root[data-theme="light"] .game-room-card { color: #172033; border-color: #b9c2d2; background: linear-gradient(145deg, #fff, #f4f0fa); box-shadow: 0 18px 44px rgba(48,57,78,.12); }
:root[data-theme="light"] .game-room-icon { border-color: #a995c7; background: radial-gradient(circle, #eee6fa, #f9f7fc); }
:root[data-theme="light"] .game-room-copy > p,
:root[data-theme="light"] .game-how-it-works ol { color: #47566c; }
:root[data-theme="light"] .game-placeholder { background: #f1ecf8; }
:root[data-theme="light"] .game-placeholder strong { color: #493270; }
:root[data-theme="light"] .game-placeholder p { color: #59687d; }
:root[data-theme="light"] .translation-depth { color: #5f339e; }
:root[data-theme="light"] .translation-progress { color: #59687d; }
:root[data-theme="light"] .translation-score { color: #6b4d0a; background: #fff4d4; }
:root[data-theme="light"] .translated-plot { color: #2f2540; border-color: #a995c4; background: #f3ecfb; }
:root[data-theme="light"] .plot-lost-hint { color: #172033; border-color: #aeb9c9; background: #fff; }
:root[data-theme="light"] button.plot-lost-hint:hover,
:root[data-theme="light"] button.plot-lost-hint:focus-visible { background: #f0eafb; }
:root[data-theme="light"] .plot-lost-hint.revealed { border-color: #9d88ba; background: #f2edf8; }
:root[data-theme="light"] .plot-lost-hint span { color: #59687d; }
:root[data-theme="light"] .plot-lost-hint strong { color: #172033; }
:root[data-theme="light"] .plot-lost-form > label { color: #26364a; }
:root[data-theme="light"] .movie-combobox input { color: #172033; border-color: #aeb9c9; background: #fff; }
:root[data-theme="light"] .movie-suggestions { border-color: #aeb9c9; background: #fff; box-shadow: 0 12px 28px rgba(45,56,75,.18); }
:root[data-theme="light"] .movie-suggestion { color: #26364a; }
:root[data-theme="light"] .movie-suggestion:hover,
:root[data-theme="light"] .movie-suggestion:focus-visible,
:root[data-theme="light"] .movie-suggestion.is-active { color: #172033; background: #eaf2fd; }
:root[data-theme="light"] .movie-suggestion small,
:root[data-theme="light"] .title-suggestion-status { color: #617187; }
:root[data-theme="light"] .title-suggestions-attribution { border-color: #d8e0ea; color: #69788d; }
:root[data-theme="light"] .title-suggestions-attribution a { color: #63389e; }
:root[data-theme="light"] .plot-lost-feedback { color: #4f5f74; }
:root[data-theme="light"] .plot-lost-feedback.correct { color: #14683d; background: #e8f7ee; }
:root[data-theme="light"] .plot-lost-feedback.correct > strong { color: #0d6738; }
:root[data-theme="light"] .plot-lost-feedback.failed { color: #6e4305; background: #fff2dc; }
:root[data-theme="light"] .plot-lost-feedback.failed > strong { color: #7b4000; }
:root[data-theme="light"] .plot-lost-final-score { color: #805a00; }
:root[data-theme="light"] .plot-lost-return-btn { color: #fff; background: #176a3e; }
:root[data-theme="light"] .plot-lost-feedback.wrong { color: #7a4800; }

@media (prefers-reduced-motion: reduce) {
  .theme-toggle { transition: none; }
}

/* Triviacross uses three intentionally loose crossings so the clues remain readable. */
.triviacross-room .game-room-card { position: relative; grid-template-columns: minmax(0, 1fr); padding-right: clamp(28px, 6vw, 68px); }
.triviacross-room .game-room-copy { position: relative; z-index: 1; }
.triviacross-room .game-room-quizard { position: absolute; z-index: 0; top: 34px; right: 34px; width: 126px; height: 150px; opacity: .28; }
.triviacross-game { display: grid; gap: 18px; margin-top: 26px; }
.triviacross-game[hidden] { display: none !important; }
.triviacross-heading-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.triviacross-heading-row h2 { margin-top: 4px; font-size: clamp(22px, 3vw, 32px); }
.triviacross-score { border: 1px solid #7b6032; border-radius: 999px; padding: 7px 11px; color: #ffe08a; background: rgba(66,45,14,.56); font-size: 12px; white-space: nowrap; }
.triviacross-layout { display: grid; grid-template-columns: minmax(340px, 1.08fr) minmax(300px, .92fr); gap: 18px; align-items: start; }
.triviacross-board-panel,
.triviacross-clues,
.triviacross-title-form { border: 1px solid #46536c; border-radius: 16px; background: rgba(7,13,24,.7); }
.triviacross-board-panel { display: grid; justify-items: center; gap: 12px; padding: 18px; }
.triviacross-board-scroll { max-width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; padding: 3px 3px 8px; scrollbar-color: #806aa4 #111827; scrollbar-gutter: stable both-edges; scrollbar-width: thin; touch-action: pan-x pan-y; }
.triviacross-board-scroll::-webkit-scrollbar { height: 9px; }
.triviacross-board-scroll::-webkit-scrollbar-track { border-radius: 999px; background: #111827; }
.triviacross-board-scroll::-webkit-scrollbar-thumb { border: 2px solid #111827; border-radius: 999px; background: #806aa4; }
.triviacross-scroll-hint { display: none; margin: -5px 0 0; color: #8e9caf; font-size: 11px; font-style: italic; text-align: center; }
.triviacross-board { display: grid; grid-template-columns: repeat(var(--triviacross-columns), 34px); grid-template-rows: repeat(var(--triviacross-rows), 34px); gap: 2px; width: max-content; }
.triviacross-gap { width: 34px; height: 34px; }
.triviacross-cell { position: relative; width: 34px; height: 34px; border-radius: 3px; background: #f7f8fb; box-shadow: inset 0 0 0 1px #bec8d6; }
.triviacross-cell > span { position: absolute; z-index: 2; top: 1px; left: 2px; color: #26364a; font-size: 7px; font-weight: 950; line-height: 1; pointer-events: none; }
.triviacross-cell input { width: 100%; height: 100%; border: 0; border-radius: inherit; padding: 5px 1px 1px; color: #111827; background: transparent; font: 900 20px/1 system-ui, sans-serif; text-align: center; text-transform: uppercase; caret-color: #6740b3; }
.triviacross-cell input:focus { outline: 3px solid #c7a8ff; outline-offset: -2px; }
.triviacross-cell.in-active-word { background: #e9dcff; box-shadow: inset 0 0 0 1px #8f69d8; }
.triviacross-cell.is-wrong { background: #ffd9df; box-shadow: inset 0 0 0 2px #dd5269; }
.triviacross-cell.is-missing { background: #fff0ca; box-shadow: inset 0 0 0 2px #cf9841; }
.triviacross-cell.is-correct { background: #d9f8e5; box-shadow: inset 0 0 0 1px #3e9b63; }
.triviacross-check { min-width: 158px; }
.triviacross-clues { display: grid; gap: 18px; padding: 18px; }
.triviacross-clue-view { display: flex; align-items: center; justify-content: space-between; gap: 12px; border-bottom: 1px solid #334058; padding: 0 0 12px; }
.triviacross-clue-view[hidden] { display: none; }
.triviacross-clue-view > span { color: #91a0b5; font-size: 10px; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.triviacross-clue-view > div { display: inline-flex; gap: 5px; border: 1px solid #46536c; border-radius: 999px; padding: 3px; background: #07101d; }
.triviacross-clue-view button { border: 0; border-radius: 999px; padding: 6px 9px; color: #9eacc0; background: transparent; font: inherit; font-size: 10px; font-weight: 850; cursor: pointer; }
.triviacross-clue-view button:hover,
.triviacross-clue-view button:focus-visible { color: #fff; outline: none; }
.triviacross-clue-view button[aria-pressed="true"] { color: #fff; background: #67439e; box-shadow: 0 1px 7px rgba(0,0,0,.35); }
.triviacross-clues h3 { color: #c7a8ff; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
.triviacross-clues ol { display: grid; gap: 7px; margin: 9px 0 0; padding: 0; list-style: none; }
.triviacross-clue { width: 100%; display: grid; grid-template-columns: 30px minmax(0, 1fr); gap: 8px; border: 1px solid transparent; border-radius: 9px; padding: 8px; color: #bdc7d6; background: transparent; font: inherit; text-align: left; cursor: pointer; }
.triviacross-clue:hover,
.triviacross-clue:focus-visible,
.triviacross-clue.active { border-color: #7652b1; color: #fff; background: rgba(90,56,145,.28); outline: none; }
.triviacross-clue.is-locked { border-color: rgba(102,236,154,.48); background: rgba(25,99,58,.18); }
.triviacross-clue strong { color: #ffe08a; font-size: 11px; }
.triviacross-clue span { font-size: 13px; line-height: 1.4; }
.triviacross-clue-copy { display: grid; gap: 3px; }
.triviacross-clue-copy small { color: #66ec9a; text-transform: uppercase; letter-spacing: .08em; font-size: 8px; font-weight: 900; }
.triviacross-title-form { display: grid; gap: 9px; padding: 16px 18px; }
.triviacross-title-form > label { color: #e3e8f1; font-size: 13px; font-weight: 850; }
.triviacross-title-actions { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 9px; }
.triviacross-title-actions input { width: 100%; min-width: 0; border: 1px solid #526078; border-radius: 10px; padding: 11px 13px; color: #fff; background: #09111e; font: inherit; }
.triviacross-title-actions input:focus { border-color: #a982f0; outline: 3px solid rgba(169,130,240,.15); }
.triviacross-title-reveal { color: #ffe08a; font-size: clamp(18px, 3vw, 26px); }
.triviacross-feedback { min-height: 20px; margin: 0; color: #93a1b5; font-size: 12px; font-weight: 750; }
.triviacross-feedback[data-state="wrong"] { color: #f3bd67; }
.triviacross-feedback[data-state="correct"] { color: #66ec9a; }
.triviacross-final { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 16px; border: 1px solid rgba(102,236,154,.5); border-radius: 14px; padding: 15px 17px; color: #83f3ab; background: rgba(12,59,34,.34); font-size: clamp(18px, 2.5vw, 26px); }
.triviacross-final[hidden] { display: none; }
.triviacross-final-score { color: #ffe08a; font-size: 15px; font-weight: 950; }
.triviacross-confetti { position: fixed; z-index: 9999; inset: 0; overflow: hidden; pointer-events: none; }
.triviacross-confetti i { position: absolute; top: var(--start-y); width: 11px; height: 6px; opacity: 0; border-radius: 2px; background: var(--color); }
.triviacross-confetti .from-left { left: -14px; }
.triviacross-confetti .from-right { right: -14px; }
.triviacross-confetti.show i { animation: triviacross-burst 1.7s cubic-bezier(.13,.72,.2,1) var(--delay) forwards; }
@keyframes triviacross-burst {
  0% { opacity: 0; transform: translate(0, 0) rotate(0); }
  10%, 70% { opacity: 1; }
  100% { opacity: 0; transform: translate(var(--travel-x), var(--travel-y)) rotate(var(--spin)); }
}

:root[data-theme="light"] .triviacross-board-panel,
:root[data-theme="light"] .triviacross-clues,
:root[data-theme="light"] .triviacross-title-form { border-color: #b6c1d0; background: rgba(255,255,255,.84); }
:root[data-theme="light"] .triviacross-clues h3 { color: #61379c; }
:root[data-theme="light"] .triviacross-clue-view { border-color: #c8d1dd; }
:root[data-theme="light"] .triviacross-clue-view > span { color: #617187; }
:root[data-theme="light"] .triviacross-clue-view > div { border-color: #b6c1d0; background: #f5f7fa; }
:root[data-theme="light"] .triviacross-clue-view button { color: #59687c; }
:root[data-theme="light"] .triviacross-clue-view button:hover,
:root[data-theme="light"] .triviacross-clue-view button:focus-visible { color: #321b52; }
:root[data-theme="light"] .triviacross-clue-view button[aria-pressed="true"] { color: #fff; background: #69449f; }
:root[data-theme="light"] .triviacross-clue { color: #425168; }
:root[data-theme="light"] .triviacross-clue:hover,
:root[data-theme="light"] .triviacross-clue:focus-visible,
:root[data-theme="light"] .triviacross-clue.active { color: #28163f; background: #eee5fb; }
:root[data-theme="light"] .triviacross-clue.is-locked { border-color: #6fb88b; background: #e6f6ec; }
:root[data-theme="light"] .triviacross-clue-copy small { color: #14683d; }
:root[data-theme="light"] .triviacross-title-form > label { color: #26364a; }
:root[data-theme="light"] .triviacross-title-actions input { color: #172033; border-color: #aeb9c9; background: #fff; }
:root[data-theme="light"] .triviacross-feedback { color: #59687d; }
:root[data-theme="light"] .triviacross-final { color: #14683d; background: #e8f7ee; }
:root[data-theme="light"] .triviacross-board-scroll { scrollbar-color: #7d659f #e3e8ef; }
:root[data-theme="light"] .triviacross-board-scroll::-webkit-scrollbar-track { background: #e3e8ef; }
:root[data-theme="light"] .triviacross-board-scroll::-webkit-scrollbar-thumb { border-color: #e3e8ef; background: #7d659f; }
:root[data-theme="light"] .triviacross-scroll-hint { color: #59687d; }

@media (max-width: 820px) {
  .triviacross-layout { grid-template-columns: 1fr; }
  .triviacross-room .game-room-quizard { width: 82px; height: 98px; top: 24px; right: 24px; }
}
@media (max-width: 700px) {
  .triviacross-scroll-hint { display: block; }
}
@media (max-width: 520px) {
  .triviacross-heading-row { align-items: flex-start; flex-direction: column; }
  .triviacross-board { grid-template-columns: repeat(var(--triviacross-columns), 29px); grid-template-rows: repeat(var(--triviacross-rows), 29px); }
  .triviacross-gap,
  .triviacross-cell { width: 29px; height: 29px; }
  .triviacross-cell input { font-size: 17px; }
  .triviacross-title-actions { grid-template-columns: 1fr; }
  .triviacross-clue-view { align-items: stretch; flex-direction: column; gap: 7px; }
  .triviacross-clue-view > div { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (prefers-reduced-motion: reduce) {
  .triviacross-confetti { display: none !important; }
}
.simpsons-game { margin-top: 1.4rem; display: grid; gap: 1rem; }
.simpsons-section-heading, .simpsons-question-meta { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.simpsons-section-heading h2 { margin: 0; }
.simpsons-trivia-form { display: grid; gap: .8rem; }
.simpsons-question-card { padding: 1rem; border: 1px solid var(--border); border-radius: 14px; background: rgba(4, 9, 21, .55); }
.simpsons-question-card p { margin: .7rem 0; }
.simpsons-question-card.is-correct { border-color: #42db86; background: rgba(24, 100, 62, .24); }
.simpsons-question-card.is-wrong { border-color: #e47070; }
.simpsons-question-meta strong { color: #c7a1ff; }
.simpsons-question-meta span { color: var(--muted); font-size: .82rem; }
.simpsons-select-field { display: grid; gap: .4rem; font-weight: 700; }
.simpsons-select-field select { width: 100%; min-height: 46px; border: 1px solid var(--border); border-radius: 10px; padding: .7rem .8rem; background: var(--panel-deep, #07101f); color: var(--text); }
.simpsons-answer-review { color: #ffd45f; font-weight: 800; }
.simpsons-feedback { min-height: 1.3em; color: #ffd45f; font-weight: 700; }
.simpsons-final { display: flex; flex-wrap: wrap; align-items: center; gap: .8rem 1.2rem; padding: 1rem; border: 1px solid #a875ff; border-radius: 14px; background: rgba(89, 42, 134, .22); }
.simpsons-final strong { font-size: 1.35rem; }
.simpsons-final span { color: #ffd45f; font-weight: 800; }
.simpsons-final.is-perfect { border-color: rgba(255, 209, 102, .9); box-shadow: 0 0 34px rgba(192,132,252,.25), inset 0 0 24px rgba(255,209,102,.08); }
.simpsons-perfect-label { flex-basis: 100%; width: fit-content; color: #fff; font-size: clamp(1.35rem, 5vw, 2.4rem); font-weight: 950; letter-spacing: .08em; text-shadow: 0 0 12px currentColor; background: linear-gradient(90deg, #ff6078, #ffd166, #55e6a5, #5ab3ff, #c084fc, #ff6078); background-size: 300% 100%; background-clip: text; -webkit-background-clip: text; -webkit-text-fill-color: transparent; animation: perfect-score-rainbow 2.4s linear infinite, perfect-score-pulse 1.3s ease-in-out infinite; }
.simpsons-live-score { color: #ffd45f; }
.simpsons-guess-controls { display: grid; grid-template-columns: minmax(220px, 1fr) auto auto; align-items: end; gap: .7rem; }
.simpsons-storyboard { display: grid; grid-template-columns: repeat(3, 1fr); gap: .75rem; }
.give-up-btn { border-color: rgba(255, 112, 132, .5); color: #ff9aaa; background: rgba(78, 18, 31, .28); }
.give-up-btn:hover { border-color: #ff7084; color: #fff; background: rgba(126, 28, 48, .42); }
.triviacross-board-actions { display: flex; flex-wrap: wrap; gap: .65rem; align-items: center; }
.triviacross-board-actions .triviacross-check { margin: 0; }
.simpsons-story-panel { min-height: 180px; padding: 1rem; border: 1px solid #7954a8; border-radius: 14px; background: linear-gradient(145deg, #16112a, #090c18); color: #b88bff; font-size: 2rem; font-weight: 900; cursor: pointer; }
.simpsons-story-panel.is-revealed { color: var(--text); font-size: 1rem; line-height: 1.5; }
@media (max-width: 720px) {
  .simpsons-guess-controls, .simpsons-storyboard { grid-template-columns: 1fr; }
  .simpsons-story-panel { min-height: 120px; }
  .simpsons-section-heading, .simpsons-question-meta { align-items: flex-start; }
}
@media (max-width: 480px) {
  .simpsons-section-heading { display: grid; justify-content: start; gap: .25rem; }
  .simpsons-section-heading strong { font-size: .9rem; }
}
:root[data-theme="light"] .simpsons-question-card { color: #172033; border-color: #bac5d4; background: #fff; }
:root[data-theme="light"] .simpsons-select-field select { color: #172033; border-color: #aeb9c9; background: #fff; }
:root[data-theme="light"] .simpsons-question-card.is-correct { background: #e1f6e9; }
:root[data-theme="light"] .simpsons-question-card.is-wrong { background: #fff0f0; }
:root[data-theme="light"] .simpsons-final { color: #172033; background: #f1eafa; }
:root[data-theme="light"] .give-up-btn { border-color: #c75c6e; color: #8b2639; background: #fff1f3; }
:root[data-theme="light"] .give-up-btn:hover { border-color: #a9364b; color: #681626; background: #ffe2e7; }
:root[data-theme="light"] .simpsons-story-panel { color: #4b2a7b; border-color: #9e86bd; background: linear-gradient(145deg, #fff, #eee8f7); }
@media (prefers-reduced-motion: reduce) {
  .simpsons-perfect-confetti { display: none !important; }
  .simpsons-perfect-label { animation: none; }
}

.discovery-game { margin-top: 1.35rem; }
.discovery-heading,
.discovery-final,
.game-actions,
.timeline-item,
.wordspell-answer-row { display: flex; align-items: center; gap: .75rem; }
.discovery-heading { justify-content: space-between; margin-bottom: 1rem; }
.discovery-heading h2 { margin: .25rem 0 0; font-size: clamp(1.3rem, 3vw, 1.9rem); }
.discovery-score { flex: 0 0 auto; padding: .55rem .8rem; color: #ffd45f; border: 1px solid rgba(255, 204, 70, .4); border-radius: 999px; background: rgba(93, 62, 13, .24); }
.discovery-play-area { display: grid; gap: 1rem; }
.discovery-feedback { min-height: 1.3em; margin: .8rem 0 0; color: #ffd45f; font-weight: 750; }
.discovery-final { flex-wrap: wrap; margin-top: 1rem; padding: 1rem; border: 1px solid #8056b5; border-radius: 14px; background: rgba(80, 43, 120, .2); }
.discovery-final > strong { font-size: 1.35rem; }
.discovery-final > p,
.discovery-source { flex-basis: 100%; margin: 0; }
.discovery-final-score { color: #ffd45f; font-weight: 850; }
.discovery-source { color: var(--muted); font-size: .8rem; }
.discovery-source a { color: #c7a1ff; }
.curator-object-card { display: grid; gap: .6rem; justify-items: center; text-align: center; }
.curator-object-card h3,
.curator-object-card p { margin: 0; }
.curator-object-image { width: min(100%, 680px); max-height: 390px; object-fit: contain; border: 1px solid var(--border); border-radius: 12px; background: #02050b; }
.curator-statements { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .65rem; }
.curator-statement { min-height: 72px; padding: .85rem; text-align: left; color: var(--text); border: 1px solid var(--border); border-radius: 12px; background: rgba(4, 9, 21, .65); cursor: pointer; }
.curator-statement:hover:not(:disabled) { border-color: #a875ff; transform: translateY(-1px); }
.curator-statement.is-wrong { border-color: #d56b75; opacity: .72; }
.curator-statement.is-correct { border-color: #45d989; background: rgba(25, 110, 67, .24); }
.curator-explanation { display: block; margin: -.25rem 0 .5rem; padding: 0 .5rem; color: var(--muted); }
.cabinet-clues { display: grid; gap: .65rem; margin: 0; padding-left: 1.5rem; }
.cabinet-clues li { padding: .8rem 1rem; border: 1px solid var(--border); border-radius: 10px; background: rgba(4, 9, 21, .55); }
.cabinet-category { width: fit-content; display: flex; align-items: center; gap: .55rem; margin: 0; border: 1px solid rgba(168, 117, 255, .5); border-radius: 999px; padding: .45rem .7rem; color: var(--muted); background: rgba(78, 40, 116, .22); font-size: .8rem; }
.cabinet-category span { font-size: .68rem; font-weight: 850; letter-spacing: .08em; text-transform: uppercase; }
.cabinet-category strong { color: #eadfff; }
.cabinet-answer-aids { display: flex; flex-wrap: wrap; gap: .55rem; }
.cabinet-answer-aid { padding: .55rem .75rem; color: var(--muted); border: 1px solid rgba(255, 204, 70, .38); border-radius: 9px; background: rgba(84, 57, 8, .18); font-size: .84rem; }
.cabinet-answer-aid strong { color: #ffd45f; font-size: 1rem; }
.cabinet-guess-form { display: grid; gap: .75rem; }
.cabinet-guess-form label { position: relative; display: grid; gap: .4rem; font-weight: 750; }
.cabinet-guess-form input,
.wordspell-step input { min-height: 44px; padding: .65rem .75rem; color: var(--text); border: 1px solid var(--border); border-radius: 9px; background: var(--panel-deep, #07101f); }
.cabinet-suggestions { position: absolute; z-index: 20; top: calc(100% + 3px); right: 0; left: 0; max-height: 230px; overflow-y: auto; border: 1px solid #5c4a78; border-radius: 10px; padding: 4px; background: #07101f; box-shadow: 0 14px 32px rgba(0, 0, 0, .55); }
.cabinet-suggestions[hidden] { display: none; }
.cabinet-suggestion { width: 100%; display: block; border: 0; border-radius: 7px; padding: .65rem .7rem; color: var(--text); background: transparent; font: inherit; font-size: .88rem; text-align: left; cursor: pointer; }
.cabinet-suggestion:hover,
.cabinet-suggestion[aria-selected="true"] { color: #fff; background: rgba(137, 84, 224, .34); outline: none; }
.game-actions { flex-wrap: wrap; }
.timeline-list { display: grid; gap: .65rem; margin: 0; padding: 0; list-style-position: inside; }
.timeline-item { justify-content: space-between; padding: .75rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(4, 9, 21, .6); }
.timeline-item.is-locked { border-color: rgba(69, 217, 137, .72); background: rgba(18, 79, 52, .28); box-shadow: inset 3px 0 0 #45d989; }
.timeline-copy { display: grid; gap: .25rem; }
.timeline-copy small { color: var(--muted); }
.timeline-copy .timeline-lock-label { color: #63e69d; font-weight: 800; }
.timeline-controls { display: flex; gap: .4rem; }
.timeline-controls button { min-width: 42px; min-height: 40px; padding: .4rem; }
.wordspell-chain { display: grid; gap: .75rem; }
.wordspell-endpoint { width: fit-content; padding: .65rem 1rem; color: #ffd45f; border: 1px solid rgba(255, 204, 70, .45); border-radius: 10px; background: rgba(84, 57, 8, .22); letter-spacing: .12em; }
.wordspell-endpoint[hidden] { display: none; }
.wordspell-step { display: grid; grid-template-columns: minmax(0, 1fr) minmax(190px, .7fr); align-items: center; gap: .85rem; padding: .8rem; border-left: 3px solid #9667d6; background: rgba(4, 9, 21, .45); }
.wordspell-step[hidden] { display: none; }
.wordspell-clue { display: grid; gap: .25rem; }
.wordspell-clue b { color: #c7a1ff; font-size: .78rem; text-transform: uppercase; letter-spacing: .08em; }
.wordspell-answer-row input { width: 100%; text-transform: uppercase; font-weight: 850; letter-spacing: .08em; }
.wordspell-answer-row input.is-correct { border-color: #45d989; background: rgba(25, 110, 67, .2); }
.wordspell-answer-row input.is-wrong { border-color: #d56b75; }
:root[data-theme="light"] .curator-statement,
:root[data-theme="light"] .cabinet-clues li,
:root[data-theme="light"] .timeline-item,
:root[data-theme="light"] .wordspell-step { color: #172033; background: #fff; }
:root[data-theme="light"] .timeline-item.is-locked { border-color: #2b9c63; background: #e5f7ed; }
:root[data-theme="light"] .timeline-copy .timeline-lock-label { color: #176d42; }
:root[data-theme="light"] .cabinet-category { color: #5c6676; border-color: #9e86bd; background: #f1eafa; }
:root[data-theme="light"] .cabinet-category strong { color: #4b2a7b; }
:root[data-theme="light"] .cabinet-answer-aid { color: #5c6676; border-color: #c7a24c; background: #fff9e7; }
:root[data-theme="light"] .cabinet-answer-aid strong { color: #76550a; }
:root[data-theme="light"] .cabinet-guess-form input,
:root[data-theme="light"] .wordspell-step input { color: #172033; border-color: #aeb9c9; background: #fff; }
:root[data-theme="light"] .cabinet-suggestions { border-color: #9e86bd; background: #fff; box-shadow: 0 14px 30px rgba(45, 34, 61, .18); }
:root[data-theme="light"] .cabinet-suggestion { color: #172033; }
:root[data-theme="light"] .cabinet-suggestion:hover,
:root[data-theme="light"] .cabinet-suggestion[aria-selected="true"] { color: #321b52; background: #eee4fb; }
:root[data-theme="light"] .discovery-final { color: #172033; background: #f1eafa; }
@media (max-width: 640px) {
  .discovery-heading { align-items: flex-start; }
  .curator-statements { grid-template-columns: 1fr; }
  .wordspell-step { grid-template-columns: 1fr; }
  .wordspell-answer-row { align-items: stretch; flex-direction: column; }
  .timeline-item { align-items: flex-start; }
}

/* Five daily ingenuity games share a compact, responsive puzzle shell. */
.ingenuity-game { margin-top: 1.35rem; }
.ingenuity-heading,
.ingenuity-final,
.cipher-entry-meta { display: flex; align-items: center; gap: .75rem; }
.ingenuity-heading { justify-content: space-between; margin-bottom: 1rem; }
.ingenuity-heading h2 { margin: .25rem 0 0; font-size: clamp(1.3rem, 3vw, 1.9rem); }
.ingenuity-score { flex: 0 0 auto; padding: .55rem .8rem; color: #ffd45f; border: 1px solid rgba(255,204,70,.4); border-radius: 999px; background: rgba(93,62,13,.24); }
.ingenuity-play-area { display: grid; gap: 1rem; }
.ingenuity-feedback { min-height: 1.3em; margin: .8rem 0 0; color: #ffd45f; font-weight: 750; }
.ingenuity-final { flex-wrap: wrap; margin-top: 1rem; padding: 1rem; border: 1px solid #8056b5; border-radius: 14px; background: rgba(80,43,120,.2); }
.ingenuity-final > strong { font-size: 1.35rem; }
.ingenuity-final > p { flex-basis: 100%; margin: 0; }
.ingenuity-final-score { color: #ffd45f; font-weight: 850; }
.ingenuity-final.is-perfect { border-color: rgba(255,212,95,.82); box-shadow: 0 0 30px rgba(170,111,229,.2); }
.ingenuity-subheading { margin: .2rem 0 -.35rem; font-size: 1rem; }
.ingenuity-play-area select,
.ingenuity-play-area input { width: 100%; min-height: 44px; border: 1px solid var(--border); border-radius: 9px; padding: .65rem .75rem; color: var(--text); background: var(--panel-deep,#07101f); font: inherit; }
.ingenuity-play-area select:focus,
.ingenuity-play-area input:focus { outline: 3px solid rgba(168,117,255,.16); border-color: #a875ff; }
.ingenuity-play-area input.is-correct { border-color: #45d989; background: rgba(25,110,67,.2); }
.ingenuity-play-area input.is-wrong { border-color: #d56b75; }
.alibi-clues { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .55rem 1.4rem; margin: 0; padding: .9rem 1rem .9rem 2.25rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(4,9,21,.5); }
.alibi-clues li { padding-left: .15rem; line-height: 1.45; }
.alibi-table-scroll { max-width: 100%; overflow-x: auto; scrollbar-color: #8465ac #111827; }
.alibi-table { width: 100%; min-width: 610px; border-collapse: separate; border-spacing: 6px; }
.alibi-table th { color: #d2b5ff; text-align: left; }
.alibi-table td,.alibi-table th { padding: .25rem; }
.alibi-table tbody th { color: #ffe08a; }
.alibi-table.is-solved select { border-color: #45d989; background: rgba(25,110,67,.2); }
.rune-example-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .8rem; }
.rune-examples { padding: .9rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(4,9,21,.55); }
.rune-examples h3 { margin: 0 0 .7rem; font-size: .95rem; }
.rune-examples.is-valid h3 { color: #65e49c; }
.rune-examples.is-invalid h3 { color: #e993a2; }
.rune-word-list,.rune-candidates { display: flex; flex-wrap: wrap; gap: .55rem; }
.rune-word-list span,.rune-candidate { padding: .6rem .75rem; border: 1px solid var(--border); border-radius: 9px; color: var(--text); background: rgba(17,24,39,.78); font-weight: 850; letter-spacing: .05em; }
.rune-candidate { cursor: pointer; }
.rune-candidate[aria-pressed="true"] { color: #fff4b5; border-color: #b886f3; background: rgba(101,61,153,.48); }
.rune-candidate.is-correct { border-color: #45d989; background: rgba(25,110,67,.26); }
.rune-candidate.is-locked { position: relative; padding-right: 2rem; opacity: 1; cursor: default; }
.rune-candidate.is-locked::after { content: "\2713"; position: absolute; right: .7rem; color: #65e49c; }
.rune-candidate.is-rejected { border-color: rgba(213,107,117,.7); opacity: .58; }
.rune-attempt-status { margin: 0; color: var(--muted); font-size: .88rem; font-weight: 750; }
.rune-rule-recovery { display: grid; gap: .75rem; padding: .9rem; border: 1px solid rgba(255,212,95,.42); border-radius: 12px; background: rgba(93,62,13,.18); }
.rune-rule-recovery[hidden] { display: none; }
.rune-rule-recovery p { margin: 0; color: var(--muted); }
.rune-rule-label { display: grid; gap: .45rem; font-weight: 800; }
.cipher-entries { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .75rem; }
.cipher-entry { display: grid; gap: .7rem; padding: .9rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(4,9,21,.55); }
.cipher-entry-meta { justify-content: space-between; }
.cipher-entry-meta strong { color: #d2b5ff; }
.cipher-entry-meta span { color: #ffe08a; font-size: .78rem; font-weight: 800; }
.cipher-text { display: block; min-height: 3.3em; padding: .7rem; border-radius: 8px; color: #d9e3f2; background: #050a14; overflow-wrap: anywhere; line-height: 1.45; }
.cipher-entry label,.cipher-meta-card label { display: grid; gap: .35rem; color: var(--muted); font-size: .82rem; font-weight: 800; }
.cipher-meta-card { display: grid; gap: .75rem; justify-items: start; padding: 1rem; border: 1px solid #9d75ce; border-radius: 12px; background: rgba(78,41,116,.24); }
.cipher-meta-card[hidden] { display: none; }
.cipher-meta-card h3 { margin: 0; }
.cipher-meta-card label { width: min(100%,360px); }
.cipher-extraction { display: flex; gap: .45rem; }
.cipher-extraction span { width: 42px; height: 46px; display: grid; place-items: center; border: 1px solid rgba(255,212,95,.6); border-radius: 8px; color: #ffe08a; background: rgba(85,57,8,.3); font-size: 1.35rem; font-weight: 950; }
.contradiction-statements { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .7rem; }
.contradiction-statement { margin: 0; padding: .9rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(4,9,21,.55); }
.contradiction-statement strong { color: #d2b5ff; }
.contradiction-statement p { margin: .45rem 0 0; line-height: 1.45; }
.contradiction-statement.is-true { border-color: #45d989; }
.contradiction-statement.is-lie { border-color: #df7182; background: rgba(107,31,49,.24); }
.contradiction-answer-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.5fr); gap: .8rem; align-items: start; }
.contradiction-answer-grid > label { display: grid; gap: .45rem; font-weight: 800; }
.contradiction-liars { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0; border: 1px solid var(--border); border-radius: 10px; padding: .75rem; }
.contradiction-liars legend { padding: 0 .35rem; color: #d2b5ff; font-weight: 800; }
.contradiction-liars label { display: flex; align-items: center; gap: .35rem; }
.contradiction-liars input { width: 20px; min-height: 20px; accent-color: #9f6edf; }
.knowledge-circuit { display: grid; gap: .65rem; }
.circuit-step { display: grid; grid-template-columns: 52px minmax(0,1fr); gap: .8rem; align-items: start; padding: .9rem; border: 1px solid var(--border); border-radius: 12px; background: rgba(4,9,21,.55); }
.circuit-step[hidden] { display: none; }
.circuit-step.is-powered { border-color: rgba(69,217,137,.62); box-shadow: inset 4px 0 0 #45d989; }
.circuit-number { width: 46px; height: 46px; display: grid; place-items: center; border: 1px solid #a875ff; border-radius: 50%; color: #ffe08a; background: rgba(82,46,126,.34); font-weight: 950; }
.circuit-copy { display: grid; gap: .65rem; }
.circuit-copy > p { margin: 0; line-height: 1.45; }
.circuit-connection { grid-column: 2; margin: 0; color: #65e49c; font-size: .88rem; font-weight: 750; }

:root[data-theme="light"] .alibi-clues,
:root[data-theme="light"] .rune-examples,
:root[data-theme="light"] .cipher-entry,
:root[data-theme="light"] .contradiction-statement,
:root[data-theme="light"] .circuit-step { color: #172033; border-color: #bac5d4; background: #fff; }
:root[data-theme="light"] .ingenuity-play-area select,
:root[data-theme="light"] .ingenuity-play-area input { color: #172033; border-color: #aeb9c9; background: #fff; }
:root[data-theme="light"] .rune-word-list span,
:root[data-theme="light"] .rune-candidate { color: #172033; border-color: #bac5d4; background: #f7f8fb; }
:root[data-theme="light"] .cipher-text { color: #27364a; background: #eef1f5; }
:root[data-theme="light"] .cipher-meta-card,
:root[data-theme="light"] .ingenuity-final { color: #172033; background: #f1eafa; }

@media (max-width: 700px) {
  .ingenuity-heading { align-items: flex-start; }
  .alibi-clues,.cipher-entries,.contradiction-statements,.contradiction-answer-grid { grid-template-columns: 1fr; }
  .rune-example-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .ingenuity-heading { display: grid; }
  .ingenuity-score { width: fit-content; }
  .circuit-step { grid-template-columns: 40px minmax(0,1fr); padding: .7rem; }
  .circuit-number { width: 36px; height: 36px; }
  .circuit-actions { align-items: stretch; flex-direction: column; }
  .circuit-connection { grid-column: 1 / -1; }
}

/* Shared perfect-score celebration: every original game reaches this through one recorder. */
.original-perfect-celebration { position: fixed; z-index: 10020; inset: 0; display: grid; place-items: center; overflow: hidden; pointer-events: none; background: radial-gradient(circle, rgba(128,74,189,.22), rgba(6,10,18,.04) 58%); opacity: 0; transition: opacity .22s ease; }
.original-perfect-celebration[hidden] { display: none; }
.original-perfect-celebration.show { opacity: 1; }
.original-perfect-message { position: relative; z-index: 2; width: min(88vw, 620px); display: grid; gap: .45rem; justify-items: center; border: 2px solid #ffd45c; border-radius: 22px; padding: clamp(1.2rem, 5vw, 2.4rem); color: #fff; text-align: center; background: linear-gradient(145deg, rgba(31,17,51,.97), rgba(8,13,23,.97)); box-shadow: 0 0 0 7px rgba(190,126,255,.13), 0 24px 80px rgba(0,0,0,.55), inset 0 0 34px rgba(255,212,92,.08); transform: scale(.82); animation: original-perfect-pop .5s cubic-bezier(.16,.95,.3,1.2) forwards; }
.original-perfect-message strong { color: #fff4b5; font-size: clamp(2rem, 8vw, 4.8rem); line-height: .95; letter-spacing: .04em; text-shadow: 3px 3px #8c4bc2, -2px -2px #d67a42; }
.original-perfect-message span { color: #e6dcf2; font-weight: 850; }
.original-perfect-piece { position: absolute; top: var(--perfect-y); width: 12px; height: 7px; border-radius: 2px; opacity: 0; background: var(--perfect-color); box-shadow: 0 0 8px var(--perfect-color); }
.original-perfect-piece.from-left { left: -16px; }
.original-perfect-piece.from-right { right: -16px; }
.original-perfect-celebration.show .original-perfect-piece { animation: original-perfect-burst var(--perfect-duration) cubic-bezier(.13,.72,.2,1) var(--perfect-delay) forwards; }
@keyframes original-perfect-pop { to { transform: scale(1); } }
@keyframes original-perfect-burst { 0% { opacity: 0; transform: translate(0,0) rotate(0); } 8%,72% { opacity: 1; } 100% { opacity: 0; transform: translate(var(--perfect-x),var(--perfect-rise)) rotate(var(--perfect-spin)); } }

@media (prefers-reduced-motion: reduce) {
  .original-perfect-message,.original-perfect-piece { animation: none !important; }
  .original-perfect-message { transform: none; }
}
