/* Optional palettes. Parchment retains the existing stylesheet unchanged. */
:root{--theme-radius:3px;--theme-shadow:0 12px 32px #30271e14;--theme-font:var(--font-classic);--theme-on-accent:#fff;--theme-panel:var(--surface)}
html[data-site-theme="classical"]{color-scheme:dark;--ink:#eee5d2;--paper:#191d24;--paper-deep:#282c32;--surface:#222730;--line:#776747;--muted:#b9b09f;--blue:#dfbb75;--blue-deep:#dfbb75;--signal:#39362d;--theme-on-accent:#211b12;--theme-radius:2px;--theme-shadow:5px 5px 0 #b8965320;--theme-panel:#262b32;--theme-font:Georgia,"Noto Serif SC",STSong,SimSun,serif}
html[data-site-theme="classic"]{color-scheme:light;--ink:#173c76;--paper:#f5f8ff;--paper-deep:#eaf0fb;--surface:#fff;--line:#cbd8ed;--muted:#536b8c;--blue:#245bbb;--blue-deep:#194995;--signal:#e7efff;--theme-on-accent:#fff;--theme-radius:10px;--theme-shadow:0 5px 22px #21487808;--theme-panel:#edf3ff;--theme-font:Inter,ui-sans-serif,system-ui,"PingFang SC","Microsoft YaHei",sans-serif}
html[data-site-theme="future"]{color-scheme:dark;--ink:#e0f5ff;--paper:#080f21;--paper-deep:#121f36;--surface:#0e1b30;--line:#2e516a;--muted:#a0b6cb;--blue:#67e4ef;--blue-deep:#67e4ef;--signal:#17394d;--theme-on-accent:#07202b;--theme-radius:12px;--theme-shadow:0 0 24px #27bbde0c;--theme-panel:#10263c;--theme-font:Inter,ui-sans-serif,system-ui,"PingFang SC","Microsoft YaHei",sans-serif}
html[data-site-theme="forest"]{color-scheme:light;--ink:#283e32;--paper:#eff3eb;--paper-deep:#dfe8d8;--surface:#f9fbf6;--line:#bacbb6;--muted:#576c58;--blue:#36654d;--blue-deep:#2e5942;--signal:#dcebd9;--theme-on-accent:#fff;--theme-radius:18px;--theme-shadow:0 5px 20px #3d603409;--theme-panel:#e0eadb;--theme-font:"Noto Serif SC",STSong,SimSun,Georgia,serif}
html[data-site-theme]:not([data-site-theme="parchment"]) body{background:var(--paper);color:var(--ink);font-family:var(--theme-font)}
html[data-site-theme]:not([data-site-theme="parchment"]) body::before{display:none!important}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(h1,h2,h3,.game-title,.brand,.logo,.feedback-aside strong){font-family:var(--theme-font)!important}
html[data-site-theme]:not([data-site-theme="parchment"]) ::selection{background:var(--blue);color:var(--theme-on-accent)}
html[data-site-theme]:not([data-site-theme="parchment"]) :focus-visible{outline-color:var(--blue)!important}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.topbar,.site-header){background:var(--surface);border-color:var(--line);box-shadow:0 1px 0 var(--line);backdrop-filter:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.brand-mark,.logo-mark){background:var(--blue);color:var(--theme-on-accent);border-color:var(--blue);border-radius:var(--theme-radius);box-shadow:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.main-nav a,.site-nav a,.nav a){border-radius:var(--theme-radius);box-shadow:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.main-nav .is-current,.site-nav a.is-current,.nav .active){background:var(--signal);color:var(--blue);box-shadow:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.main-nav a:hover,.site-nav a:hover,.nav a:hover){background:var(--signal);color:var(--blue)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.action,.btn){background:var(--surface);border-color:var(--line);border-radius:var(--theme-radius);color:var(--ink);box-shadow:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.action.primary,.btn.primary,.category-list button[aria-pressed="true"]){background:var(--blue-deep);border-color:var(--blue-deep);color:var(--theme-on-accent);box-shadow:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.action:hover,.action:focus-visible,.btn:hover,.btn:focus-visible){background:var(--signal);color:var(--blue);border-color:var(--blue);box-shadow:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.editorial-prompt,.article-lead){background:var(--theme-panel);border-color:var(--line);border-radius:var(--theme-radius);box-shadow:var(--theme-shadow);color:var(--ink)}
html[data-site-theme]:not([data-site-theme="parchment"]) .editorial-prompt::before{display:none}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.editorial-prompt p,.game-serial,.footer,.site-footer){color:var(--muted)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.editorial-prompt a,.section,.footer,.site-footer,.feedback-aside,.ranking-table td,.ranking-table th,.admin-table td,.admin-table th){border-color:var(--line)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.editorial-prompt a,.game-rating,.game-card:hover .game-rating){color:var(--blue)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.eyebrow,.section-kicker)::before{background:var(--blue)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.game-card,.auth-box,.ranking-table-wrap,.feedback-form,.admin-table,.search-empty,.layer,.privacy){background:var(--surface);border-color:var(--line);border-radius:var(--theme-radius);box-shadow:var(--theme-shadow);color:var(--ink)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.game-card:hover,.game-card:focus-visible,.article-lead:hover){background:var(--theme-panel);border-color:var(--blue);color:var(--ink);box-shadow:var(--theme-shadow)}
html[data-site-theme]:not([data-site-theme="parchment"]) .game-card:focus-visible .game-summary{color:var(--muted)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.feedback-aside,.ranking-table th,.editor-side){background:var(--paper-deep);color:var(--ink)}
html[data-site-theme]:not([data-site-theme="parchment"]) .feedback-shell{background:var(--surface);border-color:var(--line);border-radius:var(--theme-radius);box-shadow:var(--theme-shadow)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.filter-input,.category-list button,.search-empty button,.search-box input,.title-input,.auth-box input,.user-create input,.user-create select,#content,.comment-form textarea,.ranking-filters select,.feedback-form input,.feedback-form textarea){background:var(--surface);border-color:var(--line);border-radius:var(--theme-radius);color:var(--ink)}
html[data-site-theme]:not([data-site-theme="parchment"]) .category-list button[aria-pressed="true"]{background:var(--blue-deep);color:var(--theme-on-accent);border-color:var(--blue-deep)}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(input,textarea)::placeholder{color:var(--muted);opacity:.85}
html[data-site-theme]:not([data-site-theme="parchment"]) :is(.ranking-table tbody tr:hover td,.admin-table tr:hover td){background:var(--signal)}
html[data-site-theme]:not([data-site-theme="parchment"]) .checkin-action{background:var(--paper-deep);color:var(--ink);border-color:var(--line);box-shadow:var(--theme-shadow)}
html[data-site-theme]:not([data-site-theme="parchment"]) .checkin-action>span{color:var(--blue)}
html[data-site-theme]:not([data-site-theme="parchment"]) .checkin-action .btn{color:var(--ink);border-color:var(--blue)}
html[data-site-theme]:not([data-site-theme="parchment"]) .btn.danger{color:var(--danger,#b2261b);border-color:currentColor}
html[data-site-theme="classical"] body{background-image:radial-gradient(ellipse at 80% 0%,#a88b4912,transparent 50%),repeating-linear-gradient(90deg,transparent 0 79px,#c5aa7010 79px 80px)!important}
html[data-site-theme="classical"] .editorial-prompt{outline:1px solid #b99c5955;outline-offset:-8px;padding:28px}
html[data-site-theme="classical"] .hero h1{color:#ead6aa}
html[data-site-theme="classical"] .game-card{border-top:2px solid #b99c59!important}
html[data-site-theme="classical"] :is(.eyebrow,.section-kicker){letter-spacing:.19em}
html[data-site-theme="classic"] body{background:#fff!important}
html[data-site-theme="classic"] .editorial-prompt{border-left:4px solid var(--blue)!important}
html[data-site-theme="classic"] .hero h1{color:#194995}
html[data-site-theme="classic"] .game-card{box-shadow:0 3px 14px #21487806!important}
html[data-site-theme="future"] body{background-image:radial-gradient(ellipse at 80% 5%,#18687c24,transparent 40%),linear-gradient(#40769e0d 1px,transparent 1px),linear-gradient(90deg,#40769e0d 1px,transparent 1px)!important;background-size:auto,44px 44px,44px 44px!important}
html[data-site-theme="future"] .hero h1{color:#e0f9ff;text-shadow:0 0 32px #37d9ec33}
html[data-site-theme="future"] .editorial-prompt{border-top:2px solid #67e4ef!important;background:linear-gradient(135deg,#103148,#122039)!important;box-shadow:0 0 38px #27bbde15!important}
html[data-site-theme="future"] .game-card:hover{box-shadow:0 0 22px #46daef20!important}
html[data-site-theme="future"] :is(.eyebrow,.section-kicker,.game-serial){font-family:ui-monospace,Consolas,monospace;letter-spacing:.16em}
html[data-site-theme="forest"] body{background-image:radial-gradient(ellipse at 95% 0%,#a1be8d26,transparent 45%)!important}
html[data-site-theme="forest"] .editorial-prompt{border-radius:32px 8px 32px 8px!important}
html[data-site-theme="forest"] .game-card{border-radius:18px 5px 18px 5px!important}
html[data-site-theme="forest"] .category-list button{border-radius:30px!important}
/* A small, discoverable wardrobe in the header. */
.topbar-inner.has-theme-switch{position:relative;padding-right:214px}
.site-header.has-theme-switch{position:relative;padding-right:max(234px,calc((100vw - 1180px)/2 + 214px))}
.theme-trigger{position:absolute;top:12px;right:0;display:flex;align-items:center;justify-content:center;gap:5px;min-width:56px;min-height:44px;padding:8px 6px;background:var(--surface,#f8edcf);color:var(--blue);border:1px solid var(--line);border-radius:8px;cursor:pointer;font:12px/1.2 system-ui,sans-serif}
.has-theme-switch>.theme-trigger{right:84px}
.site-header>.theme-trigger{right:max(104px,calc((100vw - 1180px)/2 + 84px))}
.site-account-button{position:absolute;top:12px;right:0;min-height:44px;min-width:72px;display:flex;align-items:center;justify-content:center;padding:8px 10px;border-radius:8px;background:var(--blue);color:var(--paper);font:700 13px/1.2 system-ui,sans-serif;text-decoration:none;box-sizing:border-box}
.site-header>.site-account-button{right:max(20px,calc((100vw - 1180px)/2))}
.site-account-button:hover{filter:brightness(1.15)}
.site-notification-button{position:absolute;top:12px;right:152px;min-height:44px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);font:700 12px system-ui;cursor:pointer}
.site-header>.site-notification-button{right:max(172px,calc((100vw - 1180px)/2 + 152px))}
.site-notification-button.has-unread{background:var(--blue);color:var(--paper);border-color:var(--blue)}
.site-notification-dialog{position:fixed;inset:0;margin:auto;width:min(520px,calc(100% - 24px));max-height:calc(100dvh - 28px);overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface,#fff);color:var(--ink);padding:20px;box-shadow:0 24px 90px #0005;font-family:system-ui,"Microsoft YaHei",sans-serif}
.site-notification-dialog::backdrop{background:#07101e88}
.site-notification-head{display:flex;align-items:center;justify-content:space-between}.site-notification-head h2{margin:0;font-size:22px}.site-notification-head button{border:0;background:transparent;color:var(--ink);font-size:28px;cursor:pointer}
.site-notification-list{display:grid;gap:12px;margin:20px 0}.site-notification-list article{padding:14px;border:1px solid var(--line);border-radius:10px;background:var(--paper)}.site-notification-list article.unread{border-color:var(--blue)}.site-notification-list strong{display:block}.site-notification-list time{display:block;font-size:11px;color:var(--muted);margin-top:4px}.site-notification-list p{white-space:pre-line;line-height:1.7;margin:10px 0}.site-notification-list button{border:0;background:transparent;color:var(--blue);cursor:pointer;text-decoration:underline}
.main-nav a[href*="checkin"],.site-nav a[href*="checkin"]{font-weight:800;text-decoration:underline;text-underline-offset:5px}
.theme-trigger:hover{background:var(--signal);color:var(--ink)}
.theme-trigger svg{flex-shrink:0}
.theme-dialog{position:fixed;inset:0;margin:auto;width:min(590px,calc(100% - 28px));max-height:calc(100dvh - 32px);padding:26px;border:1px solid var(--line);border-radius:18px;background:var(--surface,#f8edcf);color:var(--ink);box-shadow:0 24px 100px #0005;overflow:auto;overscroll-behavior:contain;font-family:system-ui,"Microsoft YaHei",sans-serif;text-align:left;color-scheme:normal}
.theme-dialog::backdrop{background:#07101e66;backdrop-filter:blur(3px)}
.theme-heading{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.theme-eyebrow{font:10px/1.5 ui-monospace,monospace;letter-spacing:.13em;color:var(--muted)}
.theme-heading h2{margin:7px 0 0;font-size:23px;line-height:1.4;color:var(--ink)}
.theme-close{flex-shrink:0;display:grid;place-items:center;width:36px;height:36px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--ink);font:26px/1 system-ui;cursor:pointer}
.theme-dialog>p{margin:10px 0 20px;color:var(--muted);font-size:13px;line-height:1.7}
.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.theme-option{display:block;min-width:0;padding:9px;text-align:left;color:var(--ink);background:transparent;border:1px solid var(--line);border-radius:11px;cursor:pointer;font:inherit}
.theme-option:hover{border-color:var(--blue)}
.theme-option[aria-pressed="true"]{border-color:var(--blue);box-shadow:0 0 0 1px var(--blue);background:var(--paper)}
.theme-option-name{display:flex;align-items:center;justify-content:space-between;gap:6px;margin:9px 2px 3px;font-size:14px;font-weight:650;line-height:1.5}
.theme-check{visibility:hidden;color:var(--blue)}
[aria-pressed="true"]>.theme-option-name>.theme-check{visibility:visible}
.theme-option-description{display:block;margin:0 2px 2px;color:var(--muted);font-size:11px;line-height:1.5}
.theme-preview{height:86px;display:block;overflow:hidden;position:relative;padding:10px 13px;border-radius:6px;background:var(--preview-bg);color:var(--preview-ink);border:1px solid var(--preview-line)}
.preview-parchment{--preview-bg:#efe2c2;--preview-ink:#623322;--preview-line:#b49a6e;background-image:repeating-linear-gradient(0deg,#7b542209 0 1px,transparent 1px 4px)}
.preview-classical{--preview-bg:#191d24;--preview-ink:#dfbb75;--preview-line:#706044;background-image:repeating-linear-gradient(90deg,transparent 0 24px,#c5aa701a 24px 25px)}
.preview-classic{--preview-bg:#fff;--preview-ink:#245bbb;--preview-line:#cbd8ed}
.preview-future{--preview-bg:#080f21;--preview-ink:#67e4ef;--preview-line:#2e516a;background-image:linear-gradient(#40769e20 1px,transparent 1px),linear-gradient(90deg,#40769e20 1px,transparent 1px);background-size:12px 12px}
.preview-forest{--preview-bg:#eff3eb;--preview-ink:#36654d;--preview-line:#bacbb6}
.preview-nav{display:flex;gap:4px;justify-content:flex-end;border-bottom:1px solid var(--preview-line);padding-bottom:5px}
.preview-nav i{width:12px;height:3px;background:var(--preview-ink);opacity:.5}
.preview-title{display:flex;align-items:center;gap:8px;font:700 23px/1.5 Georgia,serif}
.preview-title>span{font:9px/1.5 serif;letter-spacing:1px}
.preview-cards{display:flex;gap:5px}
.preview-cards i{flex:1;height:14px;border:1px solid var(--preview-line);border-radius:2px;background:var(--preview-ink);opacity:.2}
.theme-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px;border-top:1px solid var(--line);margin-top:20px;padding-top:15px}
.theme-status{font-size:11px;color:var(--muted);line-height:1.5}
.theme-reset{flex-shrink:0;border:0;background:transparent;color:var(--blue);font-family:inherit;font-size:12px;line-height:1.5;min-height:36px;padding:6px;cursor:pointer;text-decoration:underline;text-underline-offset:4px}
@media(max-width:1050px){.topbar-inner.has-theme-switch{padding-right:0;flex-wrap:wrap}.has-theme-switch>.brand,.has-theme-switch>.logo{padding-right:214px}.site-header.has-theme-switch{padding-right:20px;flex-wrap:wrap}.has-theme-switch>.main-nav,.has-theme-switch>.site-nav{flex-basis:100%}.has-theme-switch>.theme-trigger,.has-theme-switch>.site-account-button,.has-theme-switch>.site-notification-button{top:9px}.main-nav,.site-nav{overflow-x:auto}}
@media(max-width:700px){.theme-dialog{padding:19px;max-height:calc(100dvh - 24px)}.theme-heading h2{font-size:21px}.theme-options{gap:10px}.theme-preview{height:78px;padding:8px}.theme-trigger{min-height:40px}.theme-option{padding:7px}.theme-option-description{font-size:10px}.theme-bottom{margin-top:15px;padding-top:10px}}
