/* Renderer-owned game, collection and editorial layout; visual tokens are
   shared with Astro through site_theme.css. No business rules live here. */
:root{color-scheme:dark;font-family:var(--font-body);background:var(--paper);color:var(--ink)}*{box-sizing:border-box}body{min-height:100vh;margin:0;background:var(--paper);color:var(--ink)}a{color:inherit;text-decoration:none}.shell{max-width:1440px;margin:auto;padding:22px 34px 56px}nav{display:flex;gap:22px;color:var(--muted);font-size:var(--text-label);font-weight:700}nav a:hover{color:var(--ink)}main{margin-top:58px}.hero{position:relative;overflow:hidden;min-height:500px;border:1px solid color-mix(in srgb,var(--accent) 38%,var(--ink) 10%);border-radius:28px;background:var(--panel);box-shadow:none;isolation:isolate}.art{position:absolute;inset:0;z-index:-2;opacity:.56}.art img{width:100%;height:100%;object-fit:cover}.art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--panel) 8%,rgba(var(--panel-rgb),.82) 46%,rgba(var(--panel-rgb),.3) 100%),linear-gradient(0deg,var(--panel) 0%,transparent 58%)}.hero-copy{max-width:740px;padding:clamp(32px,6vw,76px)}.hero-last-checked{position:absolute;right:26px;bottom:22px;margin:0;color:var(--muted);font-size:var(--text-small);font-weight:700}.hero-last-checked strong{color:var(--ink)}.eyebrow{margin:0;color:var(--accent);font-size:var(--text-small);font-weight:900;text-transform:uppercase;letter-spacing:.14em}h1{font-size:clamp(3.5rem,8.7vw,7rem);line-height:.88;letter-spacing:-.075em;margin:17px 0 22px;max-width:13ch}.summary{font-size:clamp(1.04rem,2vw,1.25rem);line-height:1.5;color:var(--ink);max-width:58ch}.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:25px}.tag{border:1px solid rgba(var(--ink-rgb),.2);border-radius:999px;padding:7px 10px;background:rgba(var(--panel-rgb),.72);font-size:var(--text-small);font-weight:800}.tag.access{border-color:color-mix(in srgb,var(--accent) 65%,var(--ink) 10%);color:var(--accent)}.actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:31px}.button{display:inline-flex;justify-content:center;align-items:center;min-height:48px;padding:12px 17px;border-radius:12px;font-weight:900;font-size:var(--text-label)}.primary{background:var(--accent);color:var(--paper)}.secondary{border:1px solid rgba(var(--ink-rgb),.24);background:rgba(var(--panel-rgb),.7)}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.fact{min-height:108px;padding:19px;border:1px solid rgba(var(--ink-rgb),.14);border-radius:17px;background:var(--panel);box-shadow:none}.fact span{display:block;color:var(--muted);font-size:var(--text-small);text-transform:uppercase;letter-spacing:.1em;font-weight:850;margin-bottom:9px}.fact strong{line-height:1.35;font-size:1rem}.source{display:flex;justify-content:space-between;gap:22px;align-items:center;margin-top:34px;padding:24px;border-top:1px solid rgba(var(--ink-rgb),.17)}.source p{margin:5px 0 0;color:var(--muted);line-height:1.5}.source a{color:var(--accent);font-weight:900;white-space:nowrap}@media(max-width:700px){.shell{padding:17px 20px 38px}nav{gap:13px;font-size:var(--text-small)}.hero{min-height:430px;border-radius:21px}.hero-copy{padding:32px 25px}.hero-last-checked{right:25px;bottom:18px}.art{opacity:.43}.facts{grid-template-columns:1fr 1fr}.source{align-items:flex-start;flex-direction:column}}@media(max-width:440px){nav a:nth-child(2){display:none}h1{font-size:3.25rem}.facts{grid-template-columns:1fr}}
.game-guide{display:grid;grid-template-columns:1fr;gap:18px;margin-top:34px}.game-guide.with-about{grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr)}.about-game,.game-details{padding:26px;border:1px solid rgba(var(--ink-rgb),.14);border-radius:18px;background:rgba(var(--panel-rgb),.74);box-shadow:none}.about-game p:not(.eyebrow){margin:10px 0 0;color:var(--ink);font-size:1.03rem;line-height:1.68}.game-details dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px 20px;margin:13px 0 0}.game-details dl div{min-width:0}.game-details dt{color:var(--muted);font-size:var(--text-small);font-weight:850;letter-spacing:.09em;text-transform:uppercase}.game-details dd{margin:5px 0 0;color:var(--ink);font-size:var(--text-label);font-weight:760;line-height:1.4;overflow-wrap:anywhere}.details-note{margin:18px 0 0;color:var(--muted);font-size:var(--text-small);line-height:1.45}.player-account-slot{display:flex;align-items:center;gap:9px;margin-left:auto}.player-connect,.player-profile-link{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-small);font-weight:850}.player-connect{padding:9px 12px;border:1px solid rgba(var(--ink-rgb),.18);border-radius:10px}.player-profile-link{color:var(--ink)}.player-avatar{display:grid;place-items:center;width:34px;height:34px;overflow:hidden;border:1px solid rgba(var(--lime-rgb),.55);border-radius:50%;background:var(--panel);color:var(--accent);font-size:.7rem;font-weight:900}.player-avatar img{width:100%;height:100%;object-fit:cover}.player-inbox-button{position:relative;display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(var(--ink-rgb),.18);border-radius:10px;color:var(--accent)}.player-inbox-button svg{width:18px;fill:none;stroke:currentColor;stroke-width:1.8}.player-inbox-count{position:absolute;right:-7px;top:-7px;display:grid;place-items:center;min-width:17px;height:17px;padding:0 4px;border-radius:999px;background:var(--accent);color:var(--paper);font-size:var(--text-small)}.hero-launcher-list{position:absolute;z-index:2;top:24px;right:24px;display:grid;justify-items:end;gap:8px}.hero-launcher-route{display:block}.hero-launcher{position:static;display:inline-flex;align-items:center;min-height:42px;padding:7px 10px;border:1px solid rgba(var(--ink-rgb),.18);border-radius:11px;background:rgba(var(--paper-rgb),.66);backdrop-filter:none}.hero-launcher-route:hover .hero-launcher{border-color:var(--accent);transform:translateX(-2px)}.hero-launcher img{display:block;width:30px;height:30px;object-fit:contain}.hero-launcher.launcher-mark-wordmark img{width:78px;height:26px}.hero-launcher.launcher-mark-store-badge img{width:94px;height:31px}.launcher-glyph{display:grid;place-items:center;min-width:26px;height:26px;border-radius:7px;background:rgba(var(--ink-rgb),.12);color:var(--ink);font-size:var(--text-small);letter-spacing:-.04em}.notify-button.is-watching{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 55%,var(--ink) 10%)}.notification-dialog{width:min(430px,calc(100vw - 32px));margin:auto;padding:0;border:1px solid color-mix(in srgb,var(--accent) 45%,var(--ink) 10%);border-radius:18px;background:var(--panel);color:var(--ink);box-shadow:none}.notification-dialog::backdrop{background:rgba(var(--paper-rgb),.7);backdrop-filter:none}.notification-dialog-card{position:relative;padding:26px}.notification-dialog-close{position:absolute;top:14px;right:14px;display:grid;place-items:center;width:32px;height:32px;border:1px solid rgba(var(--ink-rgb),.15);border-radius:9px;background:rgba(var(--ink-rgb),.04);color:var(--muted);font:inherit;font-size:1.5rem;line-height:1;cursor:pointer}.notification-dialog h2{margin:0;font-size:2rem;line-height:1}.notification-dialog-copy{margin:13px 0 0;color:var(--muted);line-height:1.5}.notification-dialog-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:24px}.notification-dialog-actions .button{border:0;cursor:pointer}.notification-dialog-actions .button-secondary{border:1px solid rgba(var(--ink-rgb),.2)}@media(max-width:700px){.game-guide,.game-guide.with-about{grid-template-columns:1fr}.about-game,.game-details{padding:21px}.game-details dl{grid-template-columns:1fr 1fr}.player-profile-name{display:none}.player-account-slot{gap:6px}.player-connect{font-size:var(--text-small);padding:8px 9px}.hero-launcher-list{top:16px;right:16px;gap:6px}.hero-launcher{min-height:37px;padding:6px 8px}.hero-launcher img{width:26px;height:26px}.hero-launcher.launcher-mark-wordmark img{width:68px;height:23px}.hero-launcher.launcher-mark-store-badge img{width:84px;height:28px}.notification-dialog-card{padding:23px 20px 20px}.notification-dialog-actions{flex-direction:column}.notification-dialog-actions .button{width:100%}}@media(max-width:420px){.game-details dl{grid-template-columns:1fr}}
.details-footer{display:flex;justify-content:space-between;gap:18px;align-items:flex-end;margin-top:18px}.details-footer .details-note,.details-footer .details-updated{margin:0;color:var(--muted);font-size:var(--text-small);line-height:1.45}.details-footer .details-updated{white-space:nowrap}.details-footer .details-updated strong{color:var(--ink)}@media(max-width:700px){.details-footer{align-items:flex-start;flex-direction:column;gap:8px}}
.hero-launcher{gap:7px}.launcher-name{color:var(--ink);font-size:var(--text-small);font-weight:850;white-space:nowrap}body{font-family:var(--font-body)}.shell{max-width:1440px;min-height:100vh;margin:auto;padding:0 34px;display:flex;flex-direction:column}.player-account-slot{margin-left:auto;align-self:center}.player-connect,.player-profile-link{font-size:var(--text-small);font-weight:850}.player-connect{padding:9px 11px;border-color:rgba(var(--ink-rgb),.12)}main{flex:1 0 auto;margin-top:34px}@media(max-width:700px){.shell{padding:0 20px}.player-account-slot{margin-left:auto}.player-connect{padding:8px 9px;font-size:var(--text-small)}main{margin-top:27px}.launcher-name{font-size:var(--text-small)}}
.player-account-slot{align-self:flex-start;margin-top:0}.player-connect{min-height:34px;padding:7px 11px}main{margin-top:12px}@media(max-width:700px){.player-connect{min-height:32px;padding:7px 9px}main{margin-top:10px}}
.player-account-slot{min-width:128px;justify-content:flex-end}.player-account-loading{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(var(--ink-rgb),.18);border-radius:50%;background:rgba(var(--ink-rgb),.035)}.player-account-loading>span,.is-profile-loading::after{content:'';display:block;width:15px;height:15px;border:2px solid color-mix(in srgb,var(--accent) 24%,transparent);border-top-color:var(--accent);border-right-color:var(--accent-alt);border-radius:50%;animation:profileLoadingSpin .72s linear infinite}.notify-button.is-profile-loading{position:relative;pointer-events:none;color:transparent!important;cursor:progress}.notify-button.is-profile-loading::after{position:absolute;inset:0;margin:auto}@keyframes profileLoadingSpin{to{transform:rotate(360deg)}}@media(max-width:700px){.player-account-slot{min-width:34px}}

.game-answer{font-weight:720}.game-routes,.availability-history,.related-games{margin-top:28px;padding:26px;border:1px solid rgba(var(--ink-rgb),.14);border-radius:18px;background:rgba(var(--panel-rgb),.74);box-shadow:none}.game-routes h2{margin:7px 0 18px;font-size:clamp(1.55rem,3vw,2.2rem);letter-spacing:-.045em}.game-route{display:flex;justify-content:space-between;gap:22px;padding:20px 0;border-top:1px solid rgba(var(--ink-rgb),.12)}.game-route:first-of-type{border-top:0;padding-top:0}.game-route h3{margin:7px 0;font-size:1.18rem}.game-route p:not(.eyebrow){margin:0;color:var(--muted);line-height:1.48}.route-meta{margin-top:9px!important;color:var(--muted)!important;font-size:var(--text-small)}.route-action{display:grid;align-content:start;justify-items:end;gap:12px;min-width:190px}.route-times{display:grid;gap:7px}.route-times .fact{min-height:0;padding:0;border:0;background:transparent;box-shadow:none}.route-times .fact span{font-size:var(--text-small);margin-bottom:3px}.route-times .fact strong{font-size:var(--text-small)}.availability-history summary{display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;font-weight:850}.availability-history summary::-webkit-details-marker{display:none}.availability-history summary:after{content:'+';display:grid;place-items:center;flex:0 0 auto;width:28px;height:28px;border:1px solid rgba(var(--ink-rgb),.18);border-radius:50%;color:var(--accent);font-size:1.2rem;line-height:1}.availability-history[open] summary:after{content:'−'}.availability-history summary:focus-visible{outline:3px solid var(--accent);outline-offset:5px;border-radius:4px}.availability-history-summary-copy{display:grid;gap:4px}.availability-history-summary-copy small{color:var(--muted);font-size:var(--text-small);font-weight:650}.availability-history ul,.related-games ul{display:grid;gap:9px;margin:13px 0 0;padding:0;list-style:none}.availability-history li,.related-games li{display:flex;justify-content:space-between;gap:15px;padding:11px 0;border-top:1px solid rgba(var(--ink-rgb),.11)}.availability-history li:first-child,.related-games li:first-child{border-top:0}.availability-history span,.related-games span{color:var(--muted);font-size:var(--text-small)}.related-games a{font-weight:850}.related-games a:hover{color:var(--accent)}.collection-page{margin-top:0}.collection-hero{margin:0 0 28px;padding:0;border:0;background:none;box-shadow:none}.collection-hero h1{max-width:17ch;margin:12px 0 14px;font-size:clamp(2.6rem,6.5vw,5.4rem)}.collection-hero p:not(.eyebrow){max-width:62ch;margin:0;color:var(--ink);line-height:1.6}.collection-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.collection-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 14px;border-radius:10px;font-size:var(--text-small);font-weight:850}.collection-actions a.primary{color:var(--paper)}.collection-actions a.secondary{border:1px solid rgba(var(--ink-rgb),.22);background:rgba(var(--ink-rgb),.04)}.collection-guidance{margin:0 0 28px;padding:22px;border:1px solid rgba(var(--lime-rgb),.22);border-radius:18px;background:var(--panel)}.collection-guidance>h2{margin:0 0 15px;font-size:1.35rem;letter-spacing:-.035em}.collection-guidance>div{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.collection-guidance article{min-width:0}.collection-guidance h2{margin:0 0 7px;color:var(--accent);font-size:var(--text-small);letter-spacing:.01em}.collection-guidance p{margin:0;color:var(--muted);font-size:var(--text-label);line-height:1.5}.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.collection-card{overflow:hidden;border:1px solid rgba(var(--ink-rgb),.14);border-radius:16px;background:var(--panel)}.collection-card-image{display:block;aspect-ratio:16/8;background:var(--panel-2)}.collection-card-image img{width:100%;height:100%;object-fit:cover}.collection-card-copy{display:grid;gap:9px;padding:16px}.collection-card-copy h2{margin:0;font-size:1.2rem;letter-spacing:-.035em}.collection-card-copy h2 a:hover{color:var(--accent)}.collection-card-copy p{margin:0;color:var(--muted);font-size:var(--text-label);line-height:1.45}.collection-card-meta{color:var(--accent)!important;font-size:var(--text-small)!important;font-weight:850}.collection-pagination{display:flex;align-items:center;justify-content:center;gap:16px;margin:30px 0 0;color:var(--muted);font-size:var(--text-small);font-weight:800}.collection-pagination a{color:var(--accent)}.collection-pagination a:hover{color:var(--ink)}@media(max-width:900px){.collection-grid,.collection-guidance>div{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.game-route{flex-direction:column}.route-action{justify-items:start;min-width:0}.game-routes,.availability-history,.related-games{padding:21px}.collection-grid,.collection-guidance>div{grid-template-columns:1fr}.collection-pagination{justify-content:space-between;gap:8px}}
.game-route-table-wrap{overflow-x:auto;margin-top:4px}.game-route-table{width:100%;min-width:680px;border-collapse:collapse;text-align:left}.game-route-table th,.game-route-table td{padding:16px 14px;border-top:1px solid rgba(var(--ink-rgb),.12);vertical-align:top}.game-route-table thead th{border-top:0;background:rgba(var(--ink-rgb),.035);color:var(--muted);font-size:var(--text-small);font-weight:850;letter-spacing:.09em;text-transform:uppercase}.game-route-table tbody th{color:var(--ink);font-size:var(--text-label);text-align:left}.game-route-table tbody td{color:var(--ink);font-size:var(--text-label);line-height:1.4}.game-route-launcher{font-weight:850}.game-route-price{color:var(--accent)!important;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}.game-route-visit{min-width:170px;text-align:right}.game-route-visit .button{min-height:38px;padding:8px 11px;font-size:var(--text-small);white-space:nowrap}.game-route-visit .route-times{margin-top:10px;text-align:left}.game-route-visit .route-times .fact{justify-items:start;text-align:left}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;clip-path:inset(50%)}@media(max-width:700px){.game-route-table-wrap{margin-right:-1px;margin-left:-1px}.game-route-table th,.game-route-table td{padding:14px 12px}.game-route-visit{min-width:150px}}
.game-entity-hero{min-height:500px}.game-entity-hero h1{max-width:18ch;font-size:clamp(2.7rem,4.8vw,4.5rem);line-height:.96;margin:0 0 25px}.hero-about{max-width:60ch}.hero-about p:not(.eyebrow){margin:8px 0 0;color:var(--ink);font-size:1.03rem;line-height:1.56}.hero-where-to-play{margin-top:24px}.hero-where-to-play .actions{margin:0}.hero-where-to-play .button{min-height:50px}.game-entity-hero+.facts{grid-template-columns:repeat(4,minmax(0,1fr))}.store-reception-fact{display:flex;flex-direction:column}.store-reception-fact a{display:block;margin-top:7px;color:var(--accent);font-size:var(--text-small);font-weight:820;line-height:1.35}.store-reception-fact a:hover{color:var(--ink)}.about-game-long{margin-top:18px}@media(max-width:900px){.game-entity-hero+.facts{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.game-entity-hero{min-height:0}.game-entity-hero h1{max-width:15ch;font-size:clamp(2.5rem,10vw,3.8rem)}.hero-about{margin-top:19px}.hero-where-to-play{margin-top:20px}.game-entity-hero+.facts{grid-template-columns:1fr 1fr}}@media(max-width:440px){.game-entity-hero+.facts{grid-template-columns:1fr}}
.discord-share-panel{position:relative;margin-top:18px;padding:17px 19px;border:1px solid rgba(var(--blue-rgb),.58);border-radius:16px;background:var(--panel);box-shadow:none}.discord-share-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}.discord-share-heading h2{margin:0;font-size:clamp(1.12rem,2.1vw,1.45rem);letter-spacing:-.035em}.discord-copy-button{position:relative;flex:0 0 auto;min-height:38px;padding:9px 13px;border:1px solid rgba(var(--blue-rgb),.72);background:var(--blue);color:var(--ink);cursor:pointer;transition:transform .16s ease,border-color .16s ease,background .16s ease}.discord-copy-button:hover{border-color:var(--ink);background:var(--blue)}.discord-copy-button:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.discord-copy-button.is-copied{border-color:var(--ink);background:var(--blue);animation:none}.discord-copy-button.is-copied::after{content:'✓';position:absolute;top:-9px;right:-9px;display:grid;place-items:center;width:20px;height:20px;border:2px solid var(--paper);border-radius:50%;background:var(--lime);color:var(--paper);font-size:var(--text-small);font-weight:950;line-height:1;box-shadow:none}.discord-copy-button.is-copy-error{border-color:var(--rust);background:var(--rust)}.discord-share-preview{margin-top:13px;padding:13px 15px;border:1px solid rgba(var(--ink-rgb),.13);border-radius:11px;background:rgba(var(--paper-rgb),.78);box-shadow:none}.discord-share-title{margin:0;color:var(--ink);font-size:1rem;font-weight:900}.discord-share-summary{margin:6px 0 0;color:var(--ink);line-height:1.45}.discord-share-availability{margin:9px 0 0;color:var(--ink);font-size:var(--text-small);font-weight:800;line-height:1.45}.discord-copy-status{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.discord-copy-button{transition:none}.discord-copy-button.is-copied{animation:none}}@media(max-width:700px){.discord-share-panel{padding:16px}.discord-share-heading{align-items:stretch;flex-direction:column}.discord-copy-button{width:100%}}
.game-live-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,.9fr);align-items:center;gap:18px;margin-top:18px;padding:15px 18px;border:1px solid rgba(var(--blue-rgb),.55);border-radius:16px;background:var(--panel);box-shadow:none;scroll-margin-top:20px}.game-live-panel[hidden]{display:none}.game-live-heading{display:flex;align-items:center;gap:11px;min-width:0}.game-live-heading>svg{width:28px;height:28px;flex:0 0 auto;fill:none;stroke:var(--rust);stroke-linecap:round;stroke-linejoin:round;stroke-width:2;filter:none;animation:none}.game-live-heading h2{margin:0;color:var(--ink);font-size:1.05rem;letter-spacing:-.025em}.game-live-heading p{margin:3px 0 0;color:var(--muted);font-size:var(--text-small);line-height:1.35}.game-live-streamers{display:flex;min-width:0;gap:8px;overflow-x:auto;padding:2px 1px 6px;scrollbar-width:thin;scroll-snap-type:x proximity}.game-live-streamer{display:inline-flex;flex:0 0 auto;align-items:center;min-height:34px;padding:7px 10px;border:1px solid rgba(var(--rust-rgb),.48);border-radius:999px;background:rgba(var(--paper-rgb),.7);color:var(--ink);font-size:var(--text-small);font-weight:850;scroll-snap-align:start;white-space:nowrap}.game-live-streamer:before{content:'';width:7px;height:7px;margin-right:7px;border-radius:50%;background:var(--rust);box-shadow:none;animation:none}.game-live-streamer:hover{border-color:var(--ink);color:var(--ink)}.game-live-streamers.has-overflow{mask-image:linear-gradient(90deg,var(--paper) 0, var(--paper) 88%, transparent 100%)}@media(max-width:700px){.game-live-panel{grid-template-columns:1fr;gap:13px;padding:15px}.game-live-streamers{padding-bottom:4px}}@media(prefers-reduced-motion:reduce){.game-live-heading>svg,.game-live-streamer:before{animation:none}}
.recommendation-feedback-prompt{position:fixed;z-index:30;right:22px;bottom:22px;display:grid;gap:10px;width:min(330px,calc(100vw - 36px));padding:14px 48px 14px 15px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--ink) 12%);border-radius:15px;background:rgba(var(--panel-rgb),.96);box-shadow:none;backdrop-filter:none}.recommendation-feedback-prompt p{margin:0;color:var(--ink);font-size:var(--text-label);font-weight:850;line-height:1.35}.recommendation-feedback-actions{display:flex;gap:8px}.recommendation-feedback-vote,.recommendation-feedback-dismiss{border:1px solid rgba(var(--ink-rgb),.2);border-radius:9px;background:rgba(var(--ink-rgb),.05);color:var(--ink);cursor:pointer;font:inherit}.recommendation-feedback-vote{display:grid;place-items:center;width:38px;height:36px;font-size:1.02rem}.recommendation-feedback-vote:hover:not(:disabled){border-color:var(--accent);background:rgba(var(--lime-rgb),.12)}.recommendation-feedback-vote:disabled{opacity:.55;cursor:wait}.recommendation-feedback-dismiss{position:absolute;top:12px;right:12px;display:grid;place-items:center;width:28px;height:28px;padding:0;color:var(--muted);font-size:1.25rem;line-height:1}.recommendation-feedback-dismiss:hover{color:var(--ink);border-color:rgba(var(--ink-rgb),.45)}@media(max-width:700px){.recommendation-feedback-prompt{right:16px;bottom:16px}}
.hybrid-recommendations{margin-top:30px;padding:0;border-top:1px solid rgba(var(--ink-rgb),.18);scroll-margin-top:22px}.hybrid-recommendations h2{margin:0 0 15px;padding-top:24px;font-size:clamp(1.3rem,2.5vw,1.75rem);letter-spacing:-.035em}.hybrid-card-grid{display:grid;gap:10px}.hybrid-card{display:grid;grid-template-columns:84px minmax(0,1fr);gap:13px;align-items:start;min-width:0;padding:11px;border:1px solid rgba(var(--ink-rgb),.14);border-radius:13px;background:rgba(var(--paper-rgb),.54);color:inherit;text-decoration:none;transition:border-color .16s ease,background .16s ease,transform .16s ease}.hybrid-card:hover{border-color:color-mix(in srgb,var(--accent) 56%,var(--ink) 16%);background:rgba(var(--panel-rgb),.78);transform:translateY(-1px)}.hybrid-card:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.hybrid-card-art{display:block;width:84px;height:58px;object-fit:cover;border-radius:8px;background:rgba(var(--ink-rgb),.08)}.hybrid-card-copy{min-width:0}.hybrid-card-title{color:var(--ink);font-size:1rem;font-weight:900;line-height:1.3}.hybrid-card:hover .hybrid-card-title{color:var(--accent)}.hybrid-card p{margin:5px 0 0;color:var(--ink);font-size:var(--text-body);line-height:1.45}.hybrid-card small{display:block;margin-top:7px;color:var(--muted);font-size:var(--text-body);line-height:1.45}.hybrid-recovery{margin-top:16px;padding:15px 0 0;border-top:1px solid rgba(var(--ink-rgb),.12)}.hybrid-recovery p{margin:0 0 9px;color:var(--ink);font-size:var(--text-label);font-weight:800}.hybrid-recovery>div{display:flex;flex-wrap:wrap;gap:8px}.hybrid-choice{min-height:36px;padding:7px 10px;border:1px solid rgba(var(--ink-rgb),.2);border-radius:9px;background:rgba(var(--ink-rgb),.04);color:var(--ink);cursor:pointer;font:inherit;font-size:var(--text-small);font-weight:800}.hybrid-choice:hover,.hybrid-choice:focus-visible{border-color:var(--accent);color:var(--accent)}.hybrid-choice:disabled{opacity:.58;cursor:wait}.hybrid-status{min-height:1.2em;margin:11px 0 0;color:var(--muted);font-size:var(--text-small)}@media(min-width:820px){.hybrid-card-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.hybrid-card{grid-template-columns:1fr;gap:12px;padding:12px;align-content:start}.hybrid-card-art{width:100%;height:clamp(124px,12vw,168px);border-radius:9px}.hybrid-card-title{font-size:1.04rem}.hybrid-card p{font-size:var(--text-body)}.hybrid-card small{font-size:var(--text-body)}}@media(max-width:700px){.hybrid-recommendations{margin-top:24px}.hybrid-card{grid-template-columns:68px minmax(0,1fr);gap:11px}.hybrid-card-art{width:68px;height:50px}.hybrid-card-title{font-size:var(--text-label)}.hybrid-card p{font-size:var(--text-body)}.hybrid-card small{font-size:var(--text-body)}}
.game-entity-hero .hero-copy{display:flex;flex-direction:column;min-height:500px}.game-entity-hero h1{margin:0 0 16px}.hero-tags{margin:0 0 26px}.hero-where-to-play{margin-top:auto;padding-top:28px}.game-entity-hero+.game-timing-facts{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:700px){.game-entity-hero .hero-copy{min-height:0}.hero-tags{margin-bottom:20px}.hero-where-to-play{margin-top:20px;padding-top:0}.game-entity-hero+.game-timing-facts{grid-template-columns:1fr 1fr}}@media(max-width:440px){.game-entity-hero+.game-timing-facts{grid-template-columns:1fr}}

.editorial-index,.editorial-piece{width:100%;max-width:none;margin:0;min-width:0}
.editorial-hero{max-width:none;margin:0 0 36px;padding:0;border:0;background:none}
.editorial-hero h1{max-width:none;margin:0 0 14px;font-size:clamp(2.35rem,4vw,3.8rem);line-height:1.04;letter-spacing:-.055em;text-wrap:balance;overflow-wrap:break-word}
.editorial-summary{max-width:68rem;margin:0;color:var(--ink);font-size:1.08rem;line-height:1.65}
.editorial-index .editorial-summary p{margin:0}
.editorial-index .editorial-summary p+p{margin-top:16px}
.editorial-dates{display:flex;flex-wrap:wrap;gap:8px 24px;margin:20px 0 0;color:var(--muted);font-size:var(--text-label);font-weight:700}
.editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.editorial-card{min-width:0;overflow:hidden;border:1px solid rgba(var(--ink-rgb),.16);border-radius:18px;background:rgba(var(--panel-rgb),.74)}
.editorial-card-art{display:grid;aspect-ratio:16/9;background:var(--panel-2);overflow:hidden;gap:3px}
.editorial-card-art[data-images="2"]{grid-template-columns:repeat(2,minmax(0,1fr))}
.editorial-card-art[data-images="3"],.editorial-card-art[data-images="4"]{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr))}
.editorial-card-art[data-images="3"] img:first-child{grid-row:span 2}
.editorial-card-art img{display:block;width:100%;height:100%;min-height:0;min-width:0;object-fit:cover}
.editorial-card>div{padding:24px}
.editorial-card h2{margin:10px 0 14px;font-size:1.5rem;line-height:1.25;letter-spacing:-.035em}
.editorial-card p:not(.eyebrow){color:var(--muted);line-height:1.6}
.editorial-card small{color:var(--muted);line-height:1.6}
.editorial-copy{width:100%;max-width:none;min-width:0;font-size:1.125rem;line-height:1.7}
.editorial-piece .editorial-summary{max-width:none}
.editorial-piece .editorial-hero h1{font-size:clamp(2rem,3.6vw,3.25rem);line-height:1.15}
.editorial-copy h2{margin:48px 0 18px;font-size:clamp(1.6rem,2.5vw,2rem);line-height:1.25;letter-spacing:-.025em}
.editorial-copy p{max-width:none;margin:0 0 20px;color:var(--ink);font-size:inherit;line-height:inherit;text-wrap:wrap;overflow-wrap:break-word}
.editorial-copy figure{margin:0 0 24px}
.editorial-copy img{display:block;width:100%;max-width:560px;max-height:360px;height:auto;object-fit:cover;border-radius:12px}
.editorial-copy figure+h2{margin-top:40px}
.editorial-game-overview{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(330px,.8fr);gap:32px;align-items:stretch;max-width:1200px;margin:0 0 30px}
.editorial-game-overview figure{margin:0;align-self:start}
.editorial-game-overview figure img{width:100%;max-width:640px;height:clamp(230px,25vw,340px);min-height:0;object-fit:cover}
.editorial-game-facts{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:28px 30px;border:1px solid color-mix(in srgb,var(--accent) 30%,rgba(var(--ink-rgb),.16));border-radius:16px;background:var(--panel);box-shadow:none}
.editorial-copy .editorial-facts-heading{margin:0 0 15px;color:var(--accent);font-size:var(--text-small);font-weight:900;line-height:1.3;letter-spacing:.14em;text-transform:uppercase}
.editorial-game-overview ul{display:grid;gap:0;list-style:none;padding:0;margin:0;font-size:var(--text-label);line-height:1.45}
.editorial-game-overview li{display:grid;grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr);gap:12px;margin:0;padding:11px 0;border-top:1px solid rgba(var(--ink-rgb),.12)}
.editorial-game-overview li:first-child{border-top:0;padding-top:0}
.editorial-game-overview li:last-child{padding-bottom:0}
.editorial-fact-label{color:var(--muted);font-size:var(--text-small);font-weight:850;letter-spacing:.06em;text-transform:uppercase}
.editorial-fact-value{color:var(--ink);font-weight:750;overflow-wrap:anywhere}
@media(max-width:760px){.editorial-game-overview{grid-template-columns:1fr;gap:18px;max-width:680px}.editorial-game-overview figure img{max-width:560px;height:min(62vw,300px)}.editorial-game-facts{padding:23px}.editorial-game-overview li{grid-template-columns:minmax(105px,.7fr) minmax(0,1.3fr)}}
@media(max-width:420px){.editorial-game-overview li{grid-template-columns:1fr;gap:4px}.editorial-fact-label{font-size:var(--text-small)}}
.editorial-piece .editorial-note{max-width:var(--measure-copy)}
@media(max-width:700px){.editorial-copy{font-size:1.0625rem;line-height:1.65}.editorial-copy h2{margin-top:36px}.editorial-copy img{max-width:440px}}
.editorial-copy h3,.editorial-copy h4,.editorial-copy h5,.editorial-copy h6{margin:28px 0 14px;line-height:1.3}
.editorial-copy ul,.editorial-copy ol{margin:0 0 24px;padding-left:28px;color:var(--ink);line-height:1.75}
.editorial-copy li+li{margin-top:8px}
.editorial-copy blockquote{margin:24px 0;padding:12px 20px;border-left:3px solid var(--accent);color:var(--ink);line-height:1.75}
.editorial-copy code{padding:2px 5px;border-radius:4px;background:rgba(var(--ink-rgb),.08)}
.editorial-copy hr{margin:32px 0;border:0;border-top:1px solid rgba(var(--ink-rgb),.16)}
.editorial-copy figcaption{margin-top:10px;color:var(--muted);font-size:var(--text-small);line-height:1.5}
.editorial-copy a{color:var(--accent);font-weight:800;text-decoration:underline;text-underline-offset:4px}
.editorial-back a{color:var(--accent);font-weight:800;text-decoration:none;background:var(--panel);padding:8px 12px;border-radius:5px}
.editorial-back a:hover{background:var(--highlight-bg)}
.editorial-copy .editorial-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0 42px}
.editorial-copy .editorial-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:43px;padding:10px 15px;border:1px solid rgba(var(--ink-rgb),.24);border-radius:10px;color:var(--ink);font-size:var(--text-label);font-weight:850;line-height:1.2;text-decoration:none}
.editorial-copy .editorial-actions a:first-child{border-color:var(--accent);background:var(--accent);color:var(--paper)}
.editorial-copy .editorial-actions .editorial-launcher-link{background:rgba(var(--ink-rgb),.035)}
.editorial-copy .editorial-actions .editorial-launcher-link:hover{border-color:var(--accent);color:var(--accent)}
.editorial-piece a:focus-visible,.editorial-index a:focus-visible{outline:3px solid var(--accent);outline-offset:4px;border-radius:4px}
.editorial-card:hover{border-color:var(--accent)}
.editorial-note{max-width:none;margin-top:40px;padding:22px;border:1px solid rgba(var(--lime-rgb),.25);border-radius:15px;background:rgba(var(--lime-rgb),.06);color:var(--ink);line-height:1.6}
.editorial-note strong{color:var(--accent)}
.editorial-back{margin:0 0 24px}
.editorial-back a{display:inline-flex;align-items:center;min-height:44px}
.editorial-piece>.editorial-back:last-child{margin:28px 0 0}
@media(max-width:700px){.editorial-grid{grid-template-columns:1fr}.editorial-hero{margin-bottom:28px}.editorial-card>div{padding:20px}.editorial-dates{gap:8px 16px}}
    body{background-image:none;background-size:auto,auto,8px 8px,13px 13px;background-position:0 0,0 0,0 0,4px 3px;background-color:var(--paper);color:var(--ink)}
    h1,h2,h3{text-wrap:balance}.summary,.about-game p:not(.eyebrow),.collection-hero p:not(.eyebrow),.editorial-copy p{color:var(--ink)}
    a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:4px}
    .hero,.fact,.about-game,.game-details,.game-routes,.availability-history,.related-games,.collection-card,.collection-guidance,.editorial-card,.editorial-note{border-color:rgba(var(--ink-rgb),.3);box-shadow:none}
    .hero{background:var(--panel);box-shadow:none}
    .art:after{background:linear-gradient(90deg,var(--paper) 8%,rgba(var(--paper-rgb),.84) 46%,rgba(var(--paper-rgb),.3) 100%),linear-gradient(0deg,var(--paper) 0%,transparent 58%)}
    .fact,.about-game,.game-details,.game-routes,.availability-history,.related-games,.collection-card{background:var(--panel)}
    .collection-guidance{background:var(--panel)}
    .tag,.secondary,.collection-actions a.secondary{border-color:rgba(var(--ink-rgb),.34);background:rgba(var(--paper-rgb),.55)}
    .button,.collection-actions a{border-radius:8px}.collection-card{border-radius:10px}.collection-card:hover,.editorial-card:hover{border-color:rgba(var(--lime-rgb),.68);box-shadow:none}
    .collection-hero h1,.editorial-hero h1{letter-spacing:-.06em}.collection-pagination{margin-top:34px}
    /* Editorial is a reading surface, not a generic catalogue grid. It uses
       the shared paper texture rather than a full-viewport pseudo-element,
       which keeps the background contained at every viewport width. */
    .editorial-index,.editorial-piece{background:transparent}
    .editorial-hero{padding:0;border:0;background:none}
    .editorial-card{background:var(--panel)}
    @media(max-width:700px){body{background:var(--paper)}}
    @media(prefers-reduced-motion:reduce){.collection-card,.editorial-card{transition:none}.collection-card:hover,.editorial-card:hover{transform:none}}
    
.game-route-table-wrap{position:relative;min-width:0;max-width:100%}
/* One useful peer is a complete set, not a full-width stretched poster. */
.hybrid-card:only-child{width:100%;max-width:420px}

/* Shared by Astro and the publication renderer. Keep shell rules here only. */
.ggpn-header,.ggpn-footer{--shell-accent:var(--accent,var(--lime,var(--lime)));box-sizing:border-box;width:100%;max-width:1600px;margin-left:auto;margin-right:auto;font-family:var(--font-body)}
.ggpn-header{min-height:80px;border-bottom:1px solid rgba(var(--ink-rgb),.2);background:transparent}
.ggpn-header-main{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:24px;min-height:80px;padding:22px 34px}
.ggpn-header[data-back="true"]{border-bottom:0}
.ggpn-header[data-back="true"] .ggpn-header-main{border-bottom:1px solid rgba(var(--ink-rgb),.2)}
.ggpn-brand-stack{display:grid;flex-shrink:0;min-width:0}
.ggpn-brand{display:flex;align-items:center;gap:9px;min-height:34px;font-size:1.06rem;font-weight:850;letter-spacing:-.04em;color:var(--ink);text-decoration:none}
.ggpn-brand img{display:block;width:29px;height:29px;object-fit:contain}
.ggpn-header-actions{display:flex;flex-wrap:wrap;min-width:0;align-items:center;justify-content:flex-end;gap:22px;min-height:34px;margin-left:auto}
.ggpn-primary-nav{display:flex;flex-wrap:wrap;min-width:0;align-items:center;gap:8px;margin:0;font-size:var(--text-label);font-weight:700;color:var(--ink)}
.ggpn-primary-nav a{display:inline-flex;align-items:center;min-height:34px;max-width:100%;padding:4px 9px;border:1px solid transparent;border-radius:6px;white-space:normal;overflow-wrap:anywhere;text-decoration:none;transition:background .16s ease,border-color .16s ease,color .16s ease}
.ggpn-primary-nav a[aria-current="page"]{color:var(--shell-accent);text-decoration:none;background:var(--highlight-bg)}
.ggpn-primary-nav a:not([aria-current="page"]):is(:hover,:focus-visible){color:var(--shell-accent);background:var(--highlight-hover)}
.ggpn-back{display:inline-flex;align-items:center;gap:9px;min-height:36px;width:max-content;margin:10px 34px 12px;padding:4px 0;border:0;border-radius:0;background:transparent;color:var(--ink);font-size:var(--text-label);font-weight:650;text-decoration:none}
.ggpn-back[hidden]{display:none!important}
.ggpn-back-icon{display:grid;place-items:center;flex:0 0 20px;width:20px;height:25px;border:0;background:transparent;color:var(--shell-accent);font-size:1.18rem}
.ggpn-back-label{display:block;min-width:0;color:inherit;white-space:nowrap}
.ggpn-back:hover{background:var(--highlight-hover)}
.ggpn-header .player-account-slot{display:flex;align-items:center;justify-content:flex-end;gap:9px;align-self:center;margin:0;min-width:128px;transform:none}
.ggpn-header .player-connect,.ggpn-header .player-profile-link{display:inline-flex;align-items:center;gap:8px;font-size:var(--text-small);font-weight:850;color:var(--ink)}
.ggpn-header .player-connect{min-height:34px;padding:7px 11px;border:1px solid #e9e2d229;border-radius:10px}
.ggpn-header .player-account-slot:has(>.player-account-loading){position:relative}
.ggpn-header .player-account-placeholder{visibility:hidden;pointer-events:none}
.ggpn-header .player-account-slot>.player-account-loading{position:absolute;right:0;top:50%;transform:translateY(-50%)}
.ggpn-header .player-avatar,.ggpn-header .player-account-loading{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e9e2d22e;border-radius:50%;overflow:hidden;background:var(--panel);color:var(--shell-accent);font-size:.68rem;font-weight:900}
.ggpn-header .player-avatar img{width:100%;height:100%;object-fit:cover}
.ggpn-header .player-account-loading>span{display:block;width:15px;height:15px;border:2px solid #e9e2d224;border-top-color:var(--shell-accent);border-right-color:var(--accent-alt,var(--rust));border-radius:50%;animation:ggpn-shell-spin .72s linear infinite}
@keyframes ggpn-shell-spin{to{transform:rotate(360deg)}}
.ggpn-footer{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:24px;margin-top:auto;padding:25px 34px 40px;border-top:1px solid rgba(var(--ink-rgb),.25);background:transparent;color:var(--ink);font-size:1rem}
.ggpn-footer-copy{display:block;flex:0 1 540px;max-width:540px}
.ggpn-footer-copy>p:first-child{white-space:normal}
.ggpn-footer p{margin:0}
.ggpn-footer .ggpn-footer-rights{margin-top:9px;font-size:var(--text-small);line-height:1.5}
.ggpn-footer-links{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:16px;margin:0;font-size:var(--text-label);font-weight:760}
.ggpn-footer-links a{display:inline-flex;align-items:center;min-height:34px;padding:3px 4px;border-radius:4px;text-decoration:none}
.ggpn-footer-discord{gap:7px;color:var(--ink)}
.ggpn-footer-discord img{display:block;width:22px;height:17px;object-fit:contain}
.ggpn-footer-tiktok{gap:6px;color:var(--ink)}
.ggpn-footer-tiktok img{display:block;width:18px;height:20px;object-fit:contain}
.ggpn-footer-links a:hover{color:var(--shell-accent);background:var(--highlight-hover)}
.ggpn-header a:focus-visible,.ggpn-footer a:focus-visible{outline:2px solid var(--shell-accent);outline-offset:4px;border-radius:4px}
.shell>.ggpn-header,.shell>.ggpn-footer{padding-left:0;padding-right:0}
.shell>.ggpn-footer{margin-top:62px}
@media(max-width:700px){.ggpn-header-main{min-height:72px;padding:18px 20px;gap:16px}.ggpn-header-actions{gap:12px;flex-wrap:wrap}.ggpn-primary-nav{gap:12px;font-size:var(--text-small)}.ggpn-footer{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;padding:24px 20px;align-items:start}.ggpn-footer-links{order:-1;width:100%;min-height:34px;justify-content:flex-start;flex-wrap:nowrap;gap:12px;overflow-x:auto;overscroll-behavior-x:contain;padding-bottom:1px;scrollbar-width:none;-webkit-overflow-scrolling:touch}.ggpn-footer-links::-webkit-scrollbar{display:none}.ggpn-footer-links a{flex:0 0 auto;min-height:33px}.ggpn-footer-copy{max-width:none}.ggpn-footer-copy>p:first-child{white-space:normal}.ggpn-footer .ggpn-footer-rights{margin-top:7px;font-size:var(--text-small);line-height:1.4}.ggpn-back{margin:9px 20px 11px;font-size:var(--text-small);min-height:33px}}
@media(max-width:440px){.ggpn-header-actions{max-width:48%;gap:8px}.ggpn-brand-stack{flex-shrink:1;min-width:0}.ggpn-brand{font-size:var(--text-label)}.ggpn-back{width:auto;max-width:calc(100% - 40px);font-size:var(--text-small)}.ggpn-header .player-account-slot{min-width:0}.ggpn-primary-nav{flex-wrap:wrap;justify-content:flex-end;gap:4px 10px}.ggpn-primary-nav a:nth-child(2),.ggpn-footer-links a:nth-child(2){display:inline-flex}.ggpn-header .player-profile-name{display:none}}
@media(prefers-reduced-motion:reduce){.ggpn-header .player-account-loading>span{animation-duration:1.6s}}
/* Mobile: brand/account first, then one full-width navigation row. */
@media(max-width:700px){
  .ggpn-header .ggpn-header-main{display:grid;grid-template-columns:minmax(0,1fr) fit-content(48%);gap:8px 16px}
  .ggpn-header .ggpn-brand-stack{grid-column:1;grid-row:1}
  .ggpn-header .ggpn-header-actions{display:contents}
  .ggpn-header .player-account-slot{grid-column:2;grid-row:1;min-width:0}
  .ggpn-header .ggpn-primary-nav{grid-column:1/-1;grid-row:2;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:4px;font-size:var(--text-small)}
  .ggpn-header .ggpn-primary-nav a{min-height:44px;justify-content:center;padding:5px 4px;white-space:normal;text-align:center;line-height:1.3}
  .ggpn-header .player-connect{min-width:0;max-width:100%;box-sizing:border-box;white-space:normal;overflow-wrap:anywhere;justify-content:center;text-align:center}
  .ggpn-footer-links{flex-wrap:wrap;overflow:visible;gap:4px 12px}
  .ggpn-footer-links :is(a,button){min-height:44px;max-width:100%;white-space:normal;overflow-wrap:anywhere}
}

/* Public visual authority, shared by Astro and the publication renderer.
   Flat scruffy-comic inks; wear comes from rules and offset print edges,
   not gradients, glow, grain overlays or colour behind reading text. */
:root {
  color-scheme: dark;
  --paper: #18191d;
  --panel: #222328;
  --panel-2: #2b2b30;
  --ink: #e9e2d2;
  --muted: #bbb3a2;
  --line: #514d45;
  --lime: #b7d65b;
  --rust: #cc7657;
  --accent: var(--lime);
  --accent-alt: var(--rust);
  --violet: var(--rust);
  --blue: #cbb88e;
  --aaa: #d2bd83;
  --established: #cc987c;
  --independent: #b7d65b;
  --paper-rgb: 24,25,29;
  --panel-rgb: 34,35,40;
  --ink-rgb: 233,226,210;
  --muted-rgb: 187,179,162;
  --lime-rgb: 183,214,91;
  --rust-rgb: 204,118,87;
  --highlight-bg: rgba(var(--lime-rgb),.16);
  --highlight-hover: rgba(var(--lime-rgb),.09);
  --blue-rgb: 203,184,142;
  --aaa-rgb: 210,189,131;
  --retro-paper: #e9e2d2;
  --retro-ink: #18191d;
  --font-body: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --font-display: "Avenir Next", Avenir, var(--font-body);
  --font-mono: ui-monospace, SFMono-Regular, Menlo, monospace;
  --text-small: .875rem;
  --text-label: .9375rem;
  --text-body: 1rem;
  --text-reading: 1.0625rem;
  --text-reading-lg: 1.125rem;
  --leading-copy: 1.65;
  --measure-copy: 70ch;
  font-family: var(--font-body);
  color: var(--ink);
  background: var(--paper);
}
html { min-height: 100%; background: var(--paper); }
body { min-height: 100vh; min-height: 100dvh; background: var(--paper); color: var(--ink); font-size: var(--text-body); line-height: 1.5; }
main { position: relative; }
h1,h2,h3,h4,h5,h6 { font-family: var(--font-display); color: var(--ink); text-wrap: balance; text-shadow: none; }
small { font-size: var(--text-small); }
code,kbd,samp { font-family: var(--font-mono); font-size: max(var(--text-small),.9375em); }
pre { font-family: var(--font-mono); font-size: var(--text-label); overflow-x: auto; }
button,input,select,textarea { font-family: var(--font-body); }
button { font-size: var(--text-body); line-height: 1.4; }
:where(p,li) { text-wrap: pretty; }
:where(a,button,input,select,textarea,summary):focus-visible { outline: 3px solid var(--lime); outline-offset: 4px; }
.eyebrow,.picker-step,.picker-route-eyebrow { color: var(--lime); font-family: ui-monospace, monospace; font-weight: 750; letter-spacing: .09em; }

/* Content lives on the page. Only choices, fields and dialogs need surfaces. */
:is(.personality-route,.personality-class-card,.player-guide-card,.detailed-taste-intent>section,.detailed-taste-constraints,.detailed-taste-results-summary,.picker-results,.profile-panel,.profile-section,.profile-intent,.profile-release-alerts,.catalogue-title-search,.personality-assessment,.personality-comparison-result,.gamer-chemistry,.taste-stage,.taste-results,.submission-form,.settings-panel,.settings-intent,.source-facts div,.legal-facts div,.fact,.about-game,.game-details,.game-routes,.availability-history,.related-games,.collection-card,.collection-guidance,.editorial-card,.editorial-note,.editorial-game-facts,.hybrid-card) {
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
}
:is(.personality-route,.personality-class-card,.player-guide-card,.collection-card,.editorial-card,.hybrid-card):hover { background: transparent; box-shadow: none; transform: none; }
:is(.access-card,.live-session-card,.creator-video-card) { border: 0; border-radius: 6px; background: var(--panel); box-shadow: none; }
:is(.access-card,.live-session-card,.creator-video-card):hover { box-shadow: none; transform: none; }
.filter-popover { border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: none; }
.game-suggestion-modal,.notification-dialog,.submission-feedback { max-height: calc(100dvh - 32px); overflow-y: auto; }
:is(#opportunity-grid,.game-card-grid) .access-card { contain: layout style; }
:is(#opportunity-grid,.game-card-grid) .access-card,:is(#opportunity-grid,.game-card-grid) .access-card:hover { border: 0; box-shadow: none; transform: none; }
:is(#opportunity-grid,.game-card-grid) .card-meta { background: transparent; }
.game-tags,.platform-badges { filter: none; }
input:not([type=checkbox]):not([type=radio]),select,textarea {
  border-color: var(--line); border-radius: 5px; background: var(--paper); color: var(--ink); font-size: var(--text-body); line-height: 1.5;
}
input:not([type=checkbox]):not([type=radio])::placeholder,textarea::placeholder { color: var(--muted); opacity: 1; }
:where(button,.button,.filter-chip,.filter-trigger,.filter-done,.personality-option,.detailed-taste-trait,.detailed-taste-context-toggle) { border-radius: 5px; }
:is(.summary,.game-summary,.personality-strapline,.player-guide-lead) { color: var(--muted); }

/* Three clear routes, without badges, framed arrows or tall display cards. */
.home-finder-router .picker-route-options { gap: 24px; margin-top: 32px; }
.home-finder-router .picker-route-option[data-mode] { display: flex; flex-direction: column; align-items: stretch; gap: 14px; min-height: 0; padding: 24px; border: 0; border-radius: 6px; background: var(--panel); box-shadow: none; text-align: left; }
.home-finder-router .picker-route-option[data-mode]:hover { background: var(--panel-2); transform: none; }
.home-finder-router .picker-route-eyebrow { margin: 0; color: var(--muted); font: 600 var(--text-label)/1.45 var(--font-body); letter-spacing: 0; text-transform: none; }
.home-finder-router [data-mode="easy"] .picker-route-eyebrow { color: var(--lime); }
.home-finder-router .picker-route-option[data-mode] strong { align-self: stretch; max-width: none; margin: 0; font-size: clamp(1.35rem,2vw,1.65rem); line-height: 1.2; }
.home-finder-router .picker-route-cta { display: flex; align-items: end; gap: 16px; margin: auto 0 0; padding: 0; }
.home-finder-router .picker-route-cta small { font-size: var(--text-body); line-height: 1.5; }
.home-finder-router .picker-route-launch { flex: 0 0 auto; width: auto; height: auto; border: 0; background: transparent; color: var(--lime); font-size: 1.5rem; transform: none; }
.home-finder-router .picker-route-option:is(:hover,:focus-visible) .picker-route-launch { background: transparent; transform: none; }
.picker-route-option::before,.personality-route::before { display: none; }
.home-finder-router .picker-route-intro h1 { font-size: clamp(2.35rem,4.8vw,4rem); letter-spacing: -.04em; }
.home-weekly-editorial-link { max-width: 100%; min-height: 44px; padding: 10px 12px; border: 0; border-radius: 5px; color: var(--ink); background: var(--panel); text-decoration: none; }
.home-weekly-editorial-link:is(:hover,:focus-visible) { color: var(--lime); background: var(--highlight-bg); }
.home-weekly-editorial-slot { min-height: 60px; padding-top: 16px; }
.home-finder-router { padding-top: 48px; padding-bottom: 24px; }
.home-finder-router-divider { border: 0; }
.home-personality-gateway { padding-top: 16px; padding-bottom: 32px; border: 0; }
.home-live-sessions { min-height: 0; padding-top: 32px; padding-bottom: 40px; border: 0; }
.home-live-sessions-heading { text-align: left; }
.home-live-sessions-heading h2 { font-size: clamp(1.6rem,3vw,2.2rem); }
.home-personality-gateway .home-personality-intro { display: block; text-align: left; }
.home-personality-gateway h2 { margin: 0 0 12px; font-size: clamp(1.6rem,3vw,2.2rem); }
.home-personality-gateway .personality-route-grid { display: block; max-width: none; margin: 0; }
.home-personality-gateway .personality-route { display: block; min-height: 0; padding: 0; }
.home-personality-gateway .personality-route-note { max-width: 60ch; margin: 0 0 12px; color: var(--muted); font-size: 1rem; line-height: 1.6; }
.home-personality-gateway .personality-route b { display: inline-flex; align-items: center; min-height: 44px; margin: 0; padding: 0; border: 0; background: transparent; color: var(--lime); }
.personality-class-art { background: var(--paper); }
.personality-class-art::after { display: none; }
.personality-class-label { color: var(--lime); }
.personality-class-copy { padding: 18px 0; }
.personality-result-classes.is-staggered .personality-subclass { margin-top: 0; }
.personality-trait { border: 0; background: transparent; padding: 4px 0; }
.personality-traits { gap: 8px 20px; }

/* Questions size to their content, not a fixed screen-height frame. */
.personality-flow:has(.personality-quiz-stage:not([hidden])) { display: block; min-height: 0; padding-top: 28px; padding-bottom: 56px; }
#personality-quiz-stage { min-width: 0; min-height: 0; padding-top: 24px; padding-bottom: 40px; grid-template-columns: minmax(0,1fr); }
#personality-assessment { display: grid; min-width: 0; height: auto; min-height: 0; padding: 0; grid-template-columns: minmax(0,1fr); grid-template-rows: auto auto auto; gap: 22px; }
#personality-assessment h2 { max-width: 28ch; min-width: 0; min-height: 0; margin: 0; overflow-wrap: anywhere; font-size: clamp(1.8rem,3.5vw,2.8rem); }
#personality-options { height: auto; gap: 12px; grid-auto-rows: 1fr; }
#personality-options .personality-option { min-height: 76px; border: 0; border-radius: 6px; background: var(--panel); box-shadow: none; transform: none; }
#personality-options .personality-option:hover { background: var(--panel-2); }
#personality-options .personality-option span { border: 0; background: transparent; width: auto; height: auto; color: var(--muted); }
.picker-page .picker-stage { min-height: 0; }
.picker-page:not(.detailed-taste-flow) { display: block; min-height: 0; padding-top: 40px; }
.picker-page .picker-options { margin-top: 28px; gap: 12px; }
.picker-page .picker-option { min-height: 100px; border: 0; border-radius: 6px; background: var(--panel); box-shadow: none; transform: none; }
.picker-page .picker-option:hover { background: var(--panel-2); }
.picker-small-results { border: 0; background: transparent; padding: 0; }
.profile-panel,.profile-section,.profile-intent,.profile-release-alerts { padding-left: 0; padding-right: 0; }
.settings-panel,.settings-intent,.submission-form { padding-left: 0; padding-right: 0; }
.legal-intro,.legal-section,.legal-contents,.settings-section,.discord-bot-reference { border: 0; }
.profile-section { padding-top: 0; margin-top: 36px; }
.profile-summary { border: 0; }
.player-guide-intro,.player-guide-body section { border: 0; }
.player-guide-card { padding: 0; }
.player-guide-card:hover { transform: none; }

/* Real progress stays visible without mascots, shimmer or glow. */
.taste-progress i {
  width: 30px; height: 8px; border-radius: 2px; clip-path: none;
  mask: none; -webkit-mask: none; filter: none; transform: none;
}
.taste-progress i::before,.taste-progress i::after { display: none; }
.picker-loading-bar,.game-suggestion-progress-orbit { box-shadow: none; }
#home-hero.browse-stage~.filter-dock .filter-trigger {
  background: var(--lime); border-color: var(--lime); color: var(--paper); box-shadow: none;
}
#home-hero.browse-stage~.filter-dock .filter-trigger:hover { background: #c6df7f; border-color: #c6df7f; box-shadow: none; }
.catalogue-title-search { padding: 0; }
.filter-popover-header,.filter-popover-footer,.filter-group-genres { border: 0; }
.surprise-reveal-icon { display: none; }

/* Editorial is part of the same publication: plain masthead, warm rules,
   quiet reading surfaces. Official game artwork keeps its original colours. */
.editorial-index,.editorial-piece { background: transparent; }
.editorial-hero,.collection-hero { border: 0; }
.editorial-kicker,.editorial-meta,.editorial-dates { color: var(--muted); }
.editorial-hero h1,.collection-hero h1 { letter-spacing: -.04em; }
.editorial-copy :is(p,li),.editorial-card p { color: var(--muted); }
.editorial-copy :is(p,ul,ol,blockquote),.editorial-note { max-width: var(--measure-copy); }
.editorial-copy a,.editorial-note strong { color: var(--lime); }
.editorial-card>div,.collection-card-copy { padding: 18px 0; }
.editorial-game-facts { padding: 0; }
.editorial-note { padding: 0; }
.editorial-game-overview li { border: 0; padding: 8px 0; }
.hero { background: var(--panel); border: 0; border-radius: 6px; box-shadow: none; }
.fact { min-height: 0; padding: 12px 0; }
.about-game,.game-details,.game-routes,.availability-history,.related-games,.collection-guidance { padding: 0; }
.game-guide,.game-routes,.availability-history,.related-games { margin-top: 36px; }
.tag { border: 0; border-radius: 0; padding: 0; background: transparent; }
.hero-tags { gap: 8px 16px; }
.hybrid-recommendations,.hybrid-recovery { border: 0; }
.hybrid-card { padding: 0; }
.discord-share-panel { border: 0; border-radius: 0; padding: 0; background: transparent; box-shadow: none; }
.discord-share-heading h2 { font-size: 1rem; }
.discord-share-heading .discord-copy-button { min-height: 44px; }
.discord-share-details { margin-top: 12px; }
.discord-share-details summary { width: fit-content; min-height: 44px; padding: 10px 0; color: var(--muted); cursor: pointer; }
.discord-share-preview { border: 0; border-radius: 0; padding: 12px 0; background: transparent; }
.availability-history summary:after { border: 0; }
.primary { background: var(--lime); color: var(--paper); }
.secondary { border-color: var(--line); background: transparent; }
.discord-copy-button { color: var(--paper); }
.ggpn-header,.ggpn-footer { --shell-accent: var(--lime); }
.ggpn-header .player-avatar,.ggpn-header .player-account-loading { background: var(--panel-2); }

@media(max-width:760px) {
  :where(a,button,input,select,textarea):focus-visible { outline-offset: 3px; }
  .home-finder-router .picker-route-options { gap: 12px; margin-top: 24px; }
  .home-finder-router .picker-route-option[data-mode] { gap: 8px; padding: 20px; }
  #personality-quiz-stage { padding-top: 12px; }
  #personality-options { grid-template-columns: 1fr; }
  #personality-options .personality-option { min-height: 64px; padding: 14px 16px; }
  #personality-options .personality-option strong { font-size: 1rem; }
  .picker-page .picker-options { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .picker-page .picker-option { min-height: 88px; padding: 16px 12px; }
  .picker-page .picker-options-two { grid-template-columns: 1fr; }
  .about-game,.game-details,.game-routes,.availability-history,.related-games,.editorial-game-facts { padding: 0; }
  .editorial-card>div,.collection-card-copy { padding: 16px 0; }
  .discord-share-heading { align-items: start; }
  .game-route-table-wrap { overflow: visible; }
  .game-route-table { display: block; min-width: 0; }
  .game-route-table thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .game-route-table tbody { display: grid; gap: 28px; }
  .game-route-table tr { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px 20px; }
  .game-route-table tbody th { grid-column: 1/-1; padding: 0; border: 0; }
  .game-route-table tbody td { padding: 0; border: 0; overflow-wrap: anywhere; }
  .game-route-table td[data-label]::before { display: block; margin-bottom: 4px; content: attr(data-label); color: var(--muted); font-size: var(--text-small); }
  .game-route-table .game-route-visit { grid-column: 1/-1; min-width: 0; text-align: left; }
  .game-route-visit .button { min-height: 44px; }
  .game-route-table .game-route-price { white-space: normal; }
}
@media(prefers-reduced-motion:reduce) {
  :is(.access-card,.home-choice-card,.personality-route,.personality-class-card,.player-guide-card,.collection-card,.editorial-card) { transition: none; }
  :is(.access-card,.home-choice-card,.personality-route,.personality-class-card,.player-guide-card,.collection-card,.editorial-card):hover { transform: none; }
}
@media(max-height:500px) {
  .filter-popover { position: fixed; inset: 16px; width: auto; max-height: calc(100dvh - 32px); margin: 0; overflow-y: auto; transform: none; animation: none; }
}
