:root {
    --game-ink: #171717;
    --game-paper: #f4f0e8;
    --game-red: #f04438;
    --game-yellow: #ffd84d;
    --game-green: #39d98a;
    --game-blue: #72a7ff;
    --game-panel: #242424;
    --game-border: rgba(255, 255, 255, .18);
}

.games-hub,
.game-page {
    width: min(1260px, calc(100% - 32px));
    margin: 0 auto;
    padding: 36px 0 72px;
    color: #f7f4ed;
}

.games-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 32px;
    align-items: end;
    overflow: hidden;
    min-height: 310px;
    padding: clamp(28px, 6vw, 70px);
    background: #f04438;
    color: #151515;
    border: 3px solid #151515;
    box-shadow: 10px 10px 0 #151515;
}

.games-hero::before {
    content: '';
    position: absolute;
    width: 350px;
    height: 350px;
    right: 18%;
    top: -210px;
    border: 60px solid #ffd84d;
    border-radius: 50%;
    opacity: .9;
}

.games-hero-copy { position: relative; z-index: 1; max-width: 850px; }
.games-kicker,
.game-card-eyebrow,
.game-info-label {
    margin: 0 0 10px;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 900;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.games-hero h1,
.game-intro h1 {
    margin: 0;
    font-size: clamp(38px, 7vw, 88px);
    line-height: .92;
    letter-spacing: -.065em;
}

.games-hero-copy > p:last-child {
    max-width: 720px;
    margin: 24px 0 0;
    font-size: clamp(17px, 2vw, 23px);
    line-height: 1.35;
    font-weight: 650;
}

.games-hero-stamp {
    position: relative;
    z-index: 1;
    display: grid;
    place-items: center;
    width: 150px;
    height: 150px;
    transform: rotate(7deg);
    background: #ffd84d;
    border: 3px solid #151515;
    border-radius: 50%;
    box-shadow: 6px 6px 0 #151515;
}

.games-hero-stamp span { font-size: 66px; line-height: .8; font-weight: 950; }
.games-hero-stamp small { font-size: 18px; font-weight: 900; text-transform: uppercase; }

.games-grid {
    display: grid;
    grid-template-columns: repeat(12, minmax(0, 1fr));
    gap: 18px;
    margin-top: 34px;
}

.game-card {
    grid-column: span 4;
    min-height: 360px;
    color: #171717;
    border: 2px solid #171717;
    transition: transform .2s ease, box-shadow .2s ease;
}
.game-card:nth-child(4), .game-card:nth-child(5) { grid-column: span 6; }
.game-card:hover { transform: translateY(-6px); box-shadow: 8px 8px 0 #f04438; }
.game-card--tomato { background: #ff695e; }
.game-card--night { background: #759fff; }
.game-card--sunset { background: #ffad6d; }
.game-card--paper { background: #f4f0e8; }
.game-card--terminal { background: #72e4a8; }

.game-card-link {
    display: flex;
    flex-direction: column;
    height: 100%;
    padding: 26px;
    color: inherit;
    text-decoration: none;
}
.game-card-topline { display: flex; justify-content: space-between; align-items: flex-start; }
.game-card-number { font: 900 42px/1 monospace; opacity: .28; }
.game-card-icon { font-size: 58px; filter: saturate(.9); }
.game-card-eyebrow { margin-top: 40px; }
.game-card h2 { margin: 0; font-size: clamp(26px, 3vw, 42px); line-height: 1; letter-spacing: -.035em; }
.game-card p:not(.game-card-eyebrow) { margin: 16px 0 22px; font-size: 16px; line-height: 1.45; }
.game-card-action { margin-top: auto; font-weight: 900; text-transform: uppercase; }
.game-card-action span { display: inline-block; margin-left: 6px; transition: transform .2s ease; }
.game-card:hover .game-card-action span { transform: translateX(6px); }

.games-editor-note {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 20px;
    margin-top: 32px;
    padding: 20px 24px;
    border: 1px solid var(--game-border);
    color: rgba(255,255,255,.72);
    font-size: 14px;
    line-height: 1.5;
}
.games-editor-note strong { color: #fff; }

.game-breadcrumb { display: flex; gap: 10px; align-items: center; margin-bottom: 26px; color: rgba(255,255,255,.55); font-size: 13px; }
.game-breadcrumb a { color: #fff; font-weight: 800; text-decoration: none; }
.game-breadcrumb a:hover { color: #f04438; }

.game-intro {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr);
    gap: clamp(20px, 4vw, 52px);
    align-items: center;
    margin-bottom: 34px;
}
.game-intro-icon {
    display: grid;
    place-items: center;
    width: clamp(92px, 13vw, 160px);
    aspect-ratio: 1;
    background: var(--game-accent, #f04438);
    border: 3px solid #fff;
    font-size: clamp(48px, 7vw, 88px);
    transform: rotate(-3deg);
    box-shadow: 8px 8px 0 rgba(255,255,255,.17);
}
.game-page--tomato { --game-accent: #f04438; }
.game-page--night { --game-accent: #416cff; }
.game-page--sunset { --game-accent: #ff8b50; }
.game-page--paper { --game-accent: #e2d9c8; }
.game-page--terminal { --game-accent: #25b86d; }
.game-intro h1 { font-size: clamp(38px, 6vw, 76px); }
.game-intro > div > p:last-child { max-width: 800px; margin: 18px 0 0; color: rgba(255,255,255,.72); font-size: 18px; line-height: 1.5; }

.game-layout {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 300px;
    gap: 22px;
    align-items: start;
}
.game-stage-card {
    min-width: 0;
    overflow: hidden;
    background: #171717;
    border: 1px solid var(--game-border);
    box-shadow: 0 24px 70px rgba(0,0,0,.25);
}
.game-root { position: relative; min-height: 620px; overflow: hidden; }
.game-loading { display: flex; min-height: 620px; align-items: center; justify-content: center; gap: 12px; color: rgba(255,255,255,.6); }
.game-loading-dot { width: 14px; height: 14px; border-radius: 50%; background: var(--game-accent); animation: game-pulse 1s infinite alternate; }
@keyframes game-pulse { to { transform: scale(1.6); opacity: .4; } }

.game-sidebar { display: grid; gap: 16px; }
.game-info-card,
.game-news-card { padding: 22px; border: 1px solid var(--game-border); background: rgba(255,255,255,.035); }
.game-info-card ul { display: grid; gap: 10px; margin: 0; padding-left: 19px; color: rgba(255,255,255,.73); font-size: 14px; line-height: 1.45; }
.game-info-card > p:not(.game-info-label) { margin: 0; color: rgba(255,255,255,.72); font-size: 14px; line-height: 1.55; }
.game-news-card { border-color: color-mix(in srgb, var(--game-accent) 62%, transparent); }
.game-news-card a { color: #fff; font-size: 15px; font-weight: 850; line-height: 1.35; text-decoration: none; }
.game-news-card a:hover { color: var(--game-accent); }
.game-news-card small { display: block; margin-top: 14px; color: rgba(255,255,255,.5); line-height: 1.45; }

.game-screen {
    position: relative;
    display: flex;
    flex-direction: column;
    min-height: 620px;
    padding: clamp(16px, 3vw, 30px);
    background: var(--screen-bg, #242424);
    color: var(--screen-text, #fff);
}
.game-screen--paper { --screen-bg: #ece6da; --screen-text: #181818; }
.game-screen--terminal { --screen-bg: #06140d; --screen-text: #caffde; font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }

.game-hud {
    position: relative;
    z-index: 3;
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 18px;
}
.game-hud-group { display: flex; flex-wrap: wrap; gap: 8px; }
.game-chip {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    min-height: 34px;
    padding: 7px 11px;
    background: rgba(0,0,0,.25);
    border: 1px solid rgba(255,255,255,.22);
    border-radius: 999px;
    font-size: 12px;
    font-weight: 850;
}
.game-screen--paper .game-chip { background: rgba(255,255,255,.55); border-color: rgba(0,0,0,.18); }
.game-progress { height: 8px; overflow: hidden; background: rgba(255,255,255,.14); border-radius: 99px; }
.game-progress > span { display: block; width: var(--progress, 0%); height: 100%; background: var(--game-accent, #f04438); transition: width .25s ease; }

.game-button {
    appearance: none;
    min-height: 48px;
    padding: 12px 18px;
    border: 2px solid currentColor;
    border-radius: 0;
    font: inherit;
    font-size: 14px;
    font-weight: 900;
    cursor: pointer;
    transition: transform .12s ease, box-shadow .12s ease, opacity .12s ease;
}
.game-button:hover { transform: translateY(-2px); }
.game-button:active { transform: translateY(1px); }
.game-button:focus-visible { outline: 3px solid #ffd84d; outline-offset: 3px; }
.game-button:disabled { opacity: .45; cursor: not-allowed; transform: none; }
.game-button--primary { background: var(--game-accent, #f04438); color: #fff; border-color: var(--game-accent, #f04438); box-shadow: 4px 4px 0 rgba(255,255,255,.2); }
.game-button--ghost { background: transparent; color: inherit; border-color: currentColor; }

.game-start,
.game-result {
    position: relative;
    z-index: 5;
    display: flex;
    flex: 1;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    max-width: 660px;
    margin: 0 auto;
    padding: clamp(24px, 6vw, 64px);
}
.game-start-badge,
.game-result-kicker { margin: 0 0 12px; color: var(--game-accent); font-size: 12px; font-weight: 900; letter-spacing: .14em; text-transform: uppercase; }
.game-start h2,
.game-result h2 { margin: 0; font-size: clamp(34px, 7vw, 70px); line-height: .96; letter-spacing: -.055em; }
.game-start > p:not(.game-start-badge),
.game-result > p:not(.game-result-kicker) { margin: 20px 0 0; color: color-mix(in srgb, currentColor 70%, transparent); font-size: 17px; line-height: 1.5; }
.game-start-actions,
.game-result-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.game-result-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; width: 100%; margin-top: 28px; }
.game-result-stat { padding: 14px; border: 1px solid currentColor; }
.game-result-stat strong { display: block; font-size: 26px; }
.game-result-stat span { display: block; margin-top: 3px; opacity: .65; font-size: 11px; text-transform: uppercase; }
.game-particle { position: absolute; z-index: 20; left: 50%; top: 55%; color: #ffd84d; font-size: 18px; pointer-events: none; animation: game-burst .8s ease-out forwards; }
@keyframes game-burst { to { transform: translate(var(--x), var(--y)) rotate(var(--r)); opacity: 0; } }
.game-shake { animation: game-shake .24s linear; }
@keyframes game-shake { 25% { transform: translateX(-7px); } 50% { transform: translateX(7px); } 75% { transform: translateX(-4px); } }

/* Food sorter */
.food-screen { --screen-bg: #31201d; background-image: radial-gradient(circle at 80% 10%, rgba(240,68,56,.25), transparent 34%), linear-gradient(160deg, #35221e, #151515); }
.food-board { display: grid; grid-template-columns: 1fr minmax(240px, 1.2fr) 1fr; gap: 16px; align-items: stretch; flex: 1; min-height: 430px; }
.food-bin { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-width: 0; padding: 14px; background: rgba(255,255,255,.04); border: 2px dashed rgba(255,255,255,.2); color: rgba(255,255,255,.7); text-align: center; }
.food-bin span { font-size: clamp(32px, 6vw, 64px); }
.food-bin strong { font-size: 14px; text-transform: uppercase; }
.food-bin--real { border-color: rgba(57,217,138,.55); }
.food-bin--fake { border-color: rgba(240,68,56,.65); }
.food-card { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; min-width: 0; padding: clamp(16px, 4vw, 34px); overflow: hidden; background: #f5efe6; color: #191919; border: 3px solid #191919; box-shadow: 8px 8px 0 #f04438; text-align: center; }
.food-card::before { content: ''; position: absolute; inset: 12px; border: 1px solid rgba(0,0,0,.12); pointer-events: none; }
.food-visual { font-size: clamp(64px, 12vw, 128px); filter: drop-shadow(0 10px 0 rgba(0,0,0,.08)); }
.food-card h2 { position: relative; margin: 18px 0 6px; font-size: clamp(22px, 4vw, 38px); line-height: 1.02; }
.food-card p { position: relative; margin: 0; color: #716d65; font-size: 13px; }
.food-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 16px; }
.food-feedback { position: absolute; z-index: 10; inset: 50% auto auto 50%; min-width: 230px; padding: 16px 20px; transform: translate(-50%, -50%) rotate(-2deg); background: #171717; border: 2px solid #fff; font-weight: 900; text-align: center; box-shadow: 8px 8px 0 var(--game-accent); }

/* Drone canvas */
.drone-screen { --screen-bg: #081020; padding: 0; }
.drone-hud { position: absolute; inset: 16px 16px auto; z-index: 5; pointer-events: none; }
.drone-canvas-wrap { position: relative; flex: 1; min-height: 620px; background: #081020; touch-action: none; }
.drone-canvas { display: block; width: 100%; height: 100%; min-height: 620px; }
.drone-overlay { position: absolute; z-index: 6; inset: 0; display: grid; place-items: center; padding: 24px; background: rgba(3,8,17,.68); }
.drone-overlay .game-start,
.drone-overlay .game-result { flex: none; color: #fff; }
.drone-mobile-thrust { position: absolute; z-index: 5; right: 18px; bottom: 18px; width: 78px; height: 78px; border-radius: 50%; background: rgba(240,68,56,.88); color: #fff; border: 2px solid #fff; font-weight: 900; touch-action: none; }

/* Narrative */
.bride-screen { --screen-bg: #2b1722; background: radial-gradient(circle at 80% 10%, rgba(255,139,80,.3), transparent 35%), linear-gradient(145deg, #311421, #17131a); }
.story-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; margin-bottom: 16px; }
.story-meter { padding: 10px; background: rgba(0,0,0,.2); border: 1px solid rgba(255,255,255,.17); }
.story-meter-label { display: flex; justify-content: space-between; gap: 10px; font-size: 11px; font-weight: 850; text-transform: uppercase; }
.story-meter-track { height: 6px; margin-top: 8px; background: rgba(255,255,255,.12); }
.story-meter-track span { display: block; height: 100%; width: var(--value); background: var(--meter-color, #ff8b50); transition: width .3s ease; }
.story-card { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(240px, .9fr); gap: 20px; flex: 1; min-height: 430px; }
.story-scene { display: flex; flex-direction: column; justify-content: flex-end; padding: clamp(22px, 5vw, 46px); background: linear-gradient(0deg, rgba(0,0,0,.83), rgba(0,0,0,.08)), var(--scene-color, #7a3f51); border: 1px solid rgba(255,255,255,.18); }
.story-scene-icon { margin-bottom: auto; font-size: clamp(68px, 14vw, 138px); text-align: center; filter: drop-shadow(0 16px 20px rgba(0,0,0,.25)); }
.story-chapter { margin: 0 0 8px; color: #ffb07d; font-size: 11px; font-weight: 900; letter-spacing: .12em; text-transform: uppercase; }
.story-scene h2 { margin: 0; font-size: clamp(28px, 5vw, 48px); line-height: 1; }
.story-scene p { margin: 14px 0 0; color: rgba(255,255,255,.76); line-height: 1.5; }
.story-choices { display: flex; flex-direction: column; justify-content: center; gap: 10px; }
.story-choice { padding: 16px; background: rgba(255,255,255,.055); color: #fff; border: 1px solid rgba(255,255,255,.24); text-align: left; cursor: pointer; }
.story-choice:hover { background: rgba(255,139,80,.17); border-color: #ff8b50; transform: translateX(-4px); }
.story-choice strong { display: block; font-size: 15px; }
.story-choice small { display: block; margin-top: 6px; color: rgba(255,255,255,.55); line-height: 1.35; }
.ending-collection { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 18px; }
.ending-badge { padding: 7px 9px; border: 1px solid rgba(255,255,255,.2); font-size: 11px; opacity: .45; }
.ending-badge.is-open { opacity: 1; border-color: #ff8b50; color: #ffb07d; }

/* Fact check */
.fact-screen { --screen-bg: #e8e0d2; --screen-text: #171717; background-image: linear-gradient(rgba(0,0,0,.035) 1px, transparent 1px); background-size: 100% 28px; }
.fact-board { display: grid; grid-template-columns: 1fr minmax(280px, 1.15fr) 1fr; gap: 16px; flex: 1; align-items: stretch; min-height: 430px; }
.fact-zone { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 12px; padding: 16px; border: 2px dashed rgba(0,0,0,.24); text-align: center; }
.fact-zone--true { border-color: #1c9760; }
.fact-zone--fake { border-color: #d64138; }
.fact-zone span { font-size: 48px; }
.fact-document { position: relative; padding: 28px; background: #f8f4ec; border: 1px solid #b9b0a3; box-shadow: 7px 7px 0 rgba(0,0,0,.14); }
.fact-document::before { content: 'АРХИВНАЯ КАРТОЧКА'; display: block; padding-bottom: 10px; border-bottom: 2px solid #171717; font: 800 10px/1 monospace; letter-spacing: .12em; }
.fact-portrait { display: grid; place-items: center; width: 100px; height: 100px; margin: 22px auto 14px; background: #d8d0c2; border: 1px solid #8e877d; font-size: 55px; filter: grayscale(1); }
.fact-document h2 { margin: 0; font: 800 clamp(22px, 4vw, 34px)/1.05 Georgia, serif; text-align: center; }
.fact-document p { margin: 13px 0 0; font: 16px/1.45 Georgia, serif; }
.fact-source { display: block; margin-top: 16px; padding-top: 12px; border-top: 1px solid #c5bdae; color: #6f675c; font: 12px/1.4 monospace; }
.fact-feedback { position: absolute; z-index: 9; inset: auto 24px 24px; padding: 18px; background: #171717; color: #fff; border-left: 6px solid var(--feedback-color, #39d98a); box-shadow: 5px 5px 0 rgba(0,0,0,.2); }
.fact-feedback strong { display: block; margin-bottom: 5px; }
.fact-feedback p { margin: 0; color: rgba(255,255,255,.72); font-size: 13px; line-height: 1.45; }

/* Human.exe */
.human-screen { background-image: linear-gradient(rgba(37,184,109,.055) 1px, transparent 1px), linear-gradient(90deg, rgba(37,184,109,.055) 1px, transparent 1px); background-size: 24px 24px; }
.race-panel { display: grid; gap: 8px; margin-bottom: 16px; }
.race-row { display: grid; grid-template-columns: 82px 1fr 48px; gap: 10px; align-items: center; font-size: 11px; font-weight: 900; text-transform: uppercase; }
.race-track { height: 11px; overflow: hidden; background: rgba(202,255,222,.1); border: 1px solid rgba(202,255,222,.22); }
.race-track span { display: block; width: var(--value); height: 100%; background: #25b86d; transition: width .25s ease; }
.race-row--bot .race-track span { background: #f04438; }
.captcha-shell { display: flex; flex: 1; align-items: center; justify-content: center; }
.captcha-card { width: min(620px, 100%); padding: clamp(18px, 4vw, 34px); background: #e8e8e8; color: #161616; border: 4px solid #2b2b2b; box-shadow: 10px 10px 0 #25b86d; font-family: Arial, sans-serif; }
.captcha-header { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 20px; padding: 16px; background: #2457d6; color: #fff; }
.captcha-header h2 { margin: 0; font-size: clamp(20px, 4vw, 31px); line-height: 1.05; }
.captcha-header span { white-space: nowrap; font: 800 13px/1 monospace; }
.captcha-body { min-height: 250px; }
.captcha-footer { display: flex; justify-content: space-between; align-items: center; gap: 14px; margin-top: 20px; padding-top: 15px; border-top: 1px solid #aaa; }
.captcha-timer { font: 900 15px/1 monospace; }
.captcha-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.captcha-tile { display: grid; place-items: center; aspect-ratio: 1; background: #c8c8c8; border: 3px solid transparent; font-size: clamp(28px, 7vw, 58px); cursor: pointer; }
.captcha-tile.is-selected { border-color: #2457d6; box-shadow: inset 0 0 0 3px #fff; }
.captcha-checkbox { display: flex; align-items: center; gap: 18px; min-height: 150px; padding: 24px; background: #f8f8f8; border: 1px solid #bcbcbc; font-size: 22px; }
.captcha-checkbox input { width: 34px; height: 34px; accent-color: #2457d6; }
.captcha-range { display: grid; gap: 20px; padding: 34px 12px; text-align: center; }
.captcha-range input { width: 100%; accent-color: #2457d6; }
.captcha-range-output { font-size: 42px; font-weight: 900; }
.captcha-symbols { display: flex; justify-content: center; gap: 12px; flex-wrap: wrap; padding: 28px 0; }
.captcha-symbol { display: grid; place-items: center; width: 72px; height: 72px; background: #fff; border: 2px solid #777; font-size: 38px; cursor: pointer; }
.captcha-symbol:hover { border-color: #2457d6; }
.captcha-input { display: grid; gap: 12px; padding: 28px 0; }
.captcha-input-code { padding: 16px; background: #2b2b2b; color: #d6ffdf; font: 900 clamp(25px, 6vw, 45px)/1 monospace; letter-spacing: .18em; text-align: center; text-decoration: line-through; }
.captcha-input input { padding: 14px; border: 2px solid #777; font: 700 20px/1 Arial; }
.memory-stage { display: grid; place-items: center; min-height: 220px; }
.memory-sequence { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; }
.memory-key { display: grid; place-items: center; width: 68px; height: 68px; background: #fff; border: 2px solid #555; font-size: 30px; cursor: pointer; }
.color-options { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; padding-top: 22px; }
.color-option { min-height: 64px; border: 3px solid #222; cursor: pointer; font-weight: 900; }

/* Concept-art edition */
.game-card {
    min-height: 0;
    overflow: hidden;
    background: #111;
    color: #fff;
    border: 3px solid #080808;
}
.game-card-link { padding: 0; }
.game-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #080808;
    border-bottom: 3px solid #080808;
}
.game-card-media::after {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,0,0,.06), rgba(0,0,0,.72));
    pointer-events: none;
}
.game-card-art {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transform: scale(1.015);
    filter: saturate(1.08) contrast(1.04);
    transition: transform .35s ease, filter .35s ease;
}
.game-card:hover .game-card-art { transform: scale(1.07); filter: saturate(1.2) contrast(1.07); }
.game-card-topline {
    position: absolute;
    z-index: 2;
    inset: 16px 16px auto;
    align-items: center;
}
.game-card-number {
    padding: 7px 10px;
    background: rgba(5,5,5,.88);
    border: 2px solid rgba(255,255,255,.8);
    color: #fff;
    font-size: 24px;
    opacity: 1;
    box-shadow: 4px 4px 0 rgba(0,0,0,.8);
}
.game-card-icon {
    display: grid;
    place-items: center;
    width: 50px;
    height: 50px;
    background: rgba(5,5,5,.88);
    border: 2px solid rgba(255,255,255,.8);
    font-size: 27px;
    box-shadow: 4px 4px 0 rgba(0,0,0,.8);
}
.game-card-copy {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-height: 245px;
    padding: 24px;
    color: #111;
}
.game-card--tomato .game-card-copy { background: #ff5b4f; }
.game-card--night .game-card-copy { background: #5f83db; }
.game-card--sunset .game-card-copy { background: #f39b5d; }
.game-card--paper .game-card-copy { background: #e9dfcc; }
.game-card--terminal .game-card-copy { background: #47d68a; }
.game-card-eyebrow { margin-top: 0; }

.game-intro { grid-template-columns: minmax(180px, 270px) minmax(0, 1fr); }
.game-intro-art {
    position: relative;
    overflow: hidden;
    aspect-ratio: 16 / 10;
    border: 3px solid #fff;
    background: #080808;
    transform: rotate(-2deg);
    box-shadow: 9px 9px 0 color-mix(in srgb, var(--game-accent) 80%, #000);
}
.game-intro-art img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    filter: saturate(1.08) contrast(1.04);
}

.game-layout { grid-template-columns: minmax(0, 1fr); }
.game-sidebar { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.game-stage-card {
    background: #050505;
    border: 4px solid #0a0a0a;
    box-shadow: 12px 12px 0 color-mix(in srgb, var(--game-accent) 72%, #000), 0 30px 80px rgba(0,0,0,.42);
}
.game-root {
    min-height: 0;
    aspect-ratio: 16 / 9;
    background: #050505 var(--game-art) center / cover no-repeat;
}
.game-screen {
    isolation: isolate;
    min-height: 100%;
    overflow: hidden;
    font-family: ui-monospace, "Cascadia Mono", "Courier New", monospace;
}
.game-screen::before,
.game-screen::after {
    content: '';
    position: absolute;
    z-index: 0;
    inset: 0;
    pointer-events: none;
}
.game-screen::before {
    background: var(--game-art) center / cover no-repeat;
    opacity: .42;
    filter: saturate(1.14) contrast(1.06);
}
.game-screen::after { background: rgba(4,4,6,.48); }
.game-screen > * { position: relative; z-index: 1; }
.food-screen::before { opacity: .48; }
.food-screen::after { background: rgba(12,6,5,.48); }
.bride-screen::before { opacity: .5; }
.bride-screen::after { background: linear-gradient(90deg, rgba(9,4,8,.72), rgba(9,4,8,.37)); }
.fact-screen::before { opacity: .24; }
.fact-screen::after { background: rgba(237,228,210,.72); }
.human-screen::before { opacity: .46; }
.human-screen::after { background: rgba(2,4,7,.58); }

.game-start,
.game-result {
    width: min(820px, calc(100% - 38px));
    max-width: 820px;
    max-height: calc(100% - 38px);
    margin: auto;
    overflow: auto;
    background: rgba(5,5,7,.88);
    color: #fff;
    border: 3px solid #f2f2f2;
    box-shadow: 9px 9px 0 var(--game-accent, #f04438);
    backdrop-filter: blur(5px);
}
.game-start h2,
.game-result h2 { text-transform: uppercase; text-shadow: 3px 3px 0 #000; }
.game-start > p:not(.game-start-badge),
.game-result > p:not(.game-result-kicker) { color: rgba(255,255,255,.78); }
.game-button {
    border: 2px solid currentColor;
    font-family: ui-monospace, "Cascadia Mono", "Courier New", monospace;
    text-transform: uppercase;
    box-shadow: 4px 4px 0 rgba(0,0,0,.75);
}
.game-button:hover { box-shadow: 6px 6px 0 rgba(0,0,0,.78); }
.game-chip {
    border-radius: 0;
    background: rgba(4,4,6,.86);
    border-width: 2px;
    box-shadow: 3px 3px 0 rgba(0,0,0,.65);
    text-transform: uppercase;
}

.food-bin { background: rgba(8,8,10,.76); backdrop-filter: blur(4px); }
.food-card { background: rgba(250,244,230,.94); }
.story-meter { background: rgba(4,4,6,.78); backdrop-filter: blur(4px); }
.story-scene { background-color: rgba(8,5,8,.78); backdrop-filter: blur(4px); }
.story-choice { background: rgba(8,5,8,.82); backdrop-filter: blur(4px); }
.fact-zone { background: rgba(248,242,230,.82); backdrop-filter: blur(3px); }
.fact-document { background: rgba(255,250,240,.96); }
.captcha-card { background: rgba(238,238,238,.96); }
.drone-canvas-wrap {
    min-height: 0;
    background: #081020 var(--game-art) center / cover no-repeat;
}
.drone-canvas {
    min-height: 0;
    aspect-ratio: 16 / 9;
    opacity: .78;
    mix-blend-mode: screen;
}
.drone-overlay { background: rgba(3,8,17,.52); }

.game-news-card time {
    display: block;
    margin: -2px 0 10px;
    color: var(--game-accent);
    font: 850 12px/1.3 ui-monospace, "Cascadia Mono", monospace;
    text-transform: uppercase;
}
.game-news-card > p:not(.game-info-label) {
    margin: 14px 0 0;
    color: rgba(255,255,255,.7);
    font-size: 13px;
    line-height: 1.55;
}

body.light-theme .games-hub,
body.light-theme .game-page { color: #171717; }
body.light-theme .game-intro > div > p:last-child,
body.light-theme .game-breadcrumb,
body.light-theme .games-editor-note,
body.light-theme .game-info-card > p:not(.game-info-label),
body.light-theme .game-news-card > p:not(.game-info-label),
body.light-theme .game-info-card ul { color: rgba(0,0,0,.66); }
body.light-theme .game-breadcrumb a,
body.light-theme .game-news-card a { color: #171717; }
body.light-theme .game-stage-card { border-color: rgba(0,0,0,.2); }
body.light-theme .game-info-card,
body.light-theme .game-news-card,
body.light-theme .games-editor-note { border-color: rgba(0,0,0,.18); background: rgba(0,0,0,.025); }
body.light-theme .games-editor-note strong { color: #171717; }

@media (max-width: 1000px) {
    .game-layout { grid-template-columns: 1fr; }
    .game-sidebar { grid-template-columns: repeat(3, 1fr); }
    .game-card { grid-column: span 6; }
    .game-card:nth-child(5) { grid-column: 4 / span 6; }
}

@media (max-width: 720px) {
    .games-hub, .game-page { width: min(100% - 20px, 1260px); padding-top: 18px; }
    .games-hero { grid-template-columns: 1fr; min-height: 0; padding: 28px 22px; box-shadow: 5px 5px 0 #151515; }
    .games-hero-stamp { width: 92px; height: 92px; justify-self: end; }
    .games-hero-stamp span { font-size: 40px; }
    .games-hero-stamp small { font-size: 12px; }
    .games-grid { display: grid; grid-template-columns: 1fr; }
    .game-card, .game-card:nth-child(4), .game-card:nth-child(5) { grid-column: auto; min-height: 300px; }
    .games-editor-note { grid-template-columns: 1fr; }
    .game-intro { grid-template-columns: 132px minmax(0, 1fr); align-items: start; }
    .game-intro-art { width: 132px; }
    .game-intro-icon { width: 84px; font-size: 43px; }
    .game-sidebar { grid-template-columns: 1fr; }
    .game-root { aspect-ratio: auto; }
    .game-root, .game-loading, .game-screen { min-height: 620px; }
    .game-start, .game-result { width: calc(100% - 26px); padding: 24px; }
    .food-board, .fact-board { grid-template-columns: 1fr 1fr; grid-template-rows: 1fr auto; min-height: 380px; }
    .food-card, .fact-document { grid-column: 1 / -1; grid-row: 1; }
    .food-bin, .fact-zone { min-height: 100px; }
    .food-bin span, .fact-zone span { font-size: 30px; }
    .story-card { grid-template-columns: 1fr; }
    .story-scene { min-height: 330px; }
    .story-stats { grid-template-columns: 1fr; }
    .drone-canvas, .drone-canvas-wrap { min-height: 620px; }
    .game-result-stats { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .game-intro { grid-template-columns: 1fr; }
    .game-intro-art { width: min(100%, 360px); }
    .game-intro-icon { width: 72px; }
    .game-screen { padding: 13px; }
    .food-card, .fact-document { padding: 18px; }
    .food-actions { position: sticky; bottom: 0; }
    .captcha-card { padding: 12px; box-shadow: 5px 5px 0 #25b86d; }
    .captcha-header { padding: 12px; }
    .captcha-body { min-height: 220px; }
    .race-row { grid-template-columns: 68px 1fr 38px; }
}

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
