html[data-site-theme]{--page:#f6f5fa;--panel:#fff;--panel-soft:#eeebf5;--ink:#252435;--muted:#625d75;--line:#dedbe8;--accent:#7355dc;--border:var(--line);--bg:var(--page);--purple:#7355dc;color-scheme:light;background:var(--page);color:var(--ink)}
html[data-site-theme=gray]{--page:#d9dadd;--panel:#efeff0;--panel-soft:#caccd2;--ink:#25262d;--muted:#51545f;--line:#b8bac3;--accent:#6251b8;--purple:#6251b8}
html[data-site-theme=dark]{--page:#14151d;--panel:#22232f;--panel-soft:#303140;--ink:#f1f0f8;--muted:#bbb8ce;--line:#444355;--accent:#9879ed;--purple:#c4afff;color-scheme:dark}
html[data-site-theme] body{--bg:inherit;--ink:inherit;--muted:inherit;--border:inherit;background:var(--page);color:var(--ink)}
.site-theme-picker{display:inline-flex;align-items:center;gap:7px;font:600 12px system-ui,sans-serif;white-space:nowrap;color:var(--ink);margin:0}
.site-theme-select{font:inherit;cursor:pointer;min-height:40px;max-width:120px;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);padding:7px 9px}
.site-theme-select:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
html[data-site-theme] :is(.header-wrap,.site-header,.game-card,.portal-info,.portal-strip,.family-picker,.arcade-sidebar,.arcade-stage,.game-panel,.game,.story-card,.rules-card,.game-bottom details,dialog,.analytics-choice,#account-dialog){background:var(--panel);color:var(--ink);border-color:var(--line)}
html[data-site-theme] :is(.search input,.account-button,.filter-chips button,input:not([type=range]),select,textarea){background:var(--panel);color:var(--ink);border-color:var(--line)}
html[data-site-theme] :is(.sidebar-note,.button.secondary,.secondary,.level-button,.login-code,.recovery-panel,#account-dialog .recovery-panel,#account-dialog .button.secondary,#account-dialog .dialog-x,.player-bar,.castle-card){background:var(--panel-soft);color:var(--ink);border-color:var(--line)}
html[data-site-theme] :is(.side-button,.card-body p,.card-meta,.card-meta strong,.portal-info p,.sidebar-note p,.small-note,.portal-footer,.arcade-heading p,.arcade-about p,#game-hint,#game-status,.auth-help,#account-dialog .auth-help,.account-description,.player-bar span,.castle-card p,.castle-tip,.about p,.game-status,.save-line){color:var(--muted)}
html[data-site-theme] .side-button.active,html[data-site-theme] .filter-chips button.active,html[data-site-theme] .level-button.current{background:var(--accent);color:#fff}
html[data-site-theme] :is(#account-dialog input,#account-dialog .recovery-code-output){background:var(--panel);color:var(--ink);border-color:var(--line)}
html[data-site-theme] .game-mode .arcade-stage{background:var(--panel)}
html[data-site-theme] :is(.castle-card #castle-mini,#castle-count){color:var(--purple)}
html[data-site-theme] :is(.stats,.board,.goal-row,.recipe,.turns-box){border-color:var(--line)}
html[data-site-theme] :is(.game-level button,.game-controls button,.map-nav button,.map-grid button,.recipe-item,.health){background:var(--panel-soft);color:var(--ink);border-color:var(--line)}
html[data-site-theme] :is(.story-card p,.rules-card p,.rules-card li,.portal-strip span,.game-level,.goal-row p,.recipe-item span,.score-line,.status){color:var(--muted)}
html[data-site-theme] :is(.instructions span,.desktop-note,.text-button,dialog p,.icon-button,.castle-plan li,footer,.back-link){color:var(--muted)}
html[data-site-theme] .moves strong{color:var(--accent)}
html[data-site-theme] .map-level{background:var(--panel-soft);color:var(--ink);border-color:var(--line)}
html[data-site-theme] .map-level.complete{background:#27664c;color:#fff}
html[data-site-theme=light] .board,html[data-site-theme=gray] .board{background:#ded7ed}
html[data-site-theme=light] .cell,html[data-site-theme=gray] .cell{background:#ffffff70}
html[data-site-theme=light] .stars,html[data-site-theme=gray] .stars{opacity:.12}
@media(max-width:760px){html[data-site-theme] .site-header{height:auto;min-height:68px;flex-wrap:wrap;gap:12px;padding-top:12px;padding-bottom:12px}.header-account{flex-wrap:wrap;justify-content:flex-end;gap:8px}.site-theme-picker>span{display:none}.site-theme-select{max-width:98px;font-size:12px}html[data-site-theme] header:not(.site-header){flex-wrap:wrap;gap:12px}}
