/* Manual appearance preference; the initial value follows the device. */
:root[data-theme="light"]{--ink:#121212;--paper:#fff;--soft:#f2f2f2;--line:#e4e4e4;--muted:#737373;--theme-header:rgba(255,255,255,.94);--theme-panel:#fafafa;--theme-tile:#f6f6f6;background:var(--paper);color-scheme:light}
:root[data-theme="dark"]{--ink:#f1f1f1;--paper:#151515;--soft:#242424;--line:#3b3b3b;--muted:#b3b3b3;--theme-header:rgba(21,21,21,.96);--theme-panel:#242424;--theme-tile:#242424;background:var(--paper);color-scheme:dark}
:root[data-theme] body.portfolio,:root[data-theme] .portfolio .hero{background:var(--paper);color:var(--ink)}
:root[data-theme] .portfolio .announcement{background:var(--soft);color:var(--ink)}
:root[data-theme] .portfolio header.top,:root[data-theme] .portfolio .topbar{background:var(--theme-header)}
:root[data-theme] .portfolio .wordmark{color:var(--ink)}
:root[data-theme] .portfolio .count,:root[data-theme] .portfolio figure .frame{background:var(--theme-panel)}
:root[data-theme] .portfolio .tile .shot{background:var(--theme-tile)}
:root[data-theme] .portfolio .btn{background-color:var(--ink);color:var(--paper)}
:root[data-theme] .portfolio .btn:hover{color:#fff}
:root[data-theme] .portfolio .btn.light{background-color:var(--paper);color:var(--ink);border-color:var(--line)}
.portfolio .theme-toggle,.portfolio .theme-toggle:hover:not(:disabled){grid-column:3;grid-row:1;justify-self:end;display:inline-flex;align-items:center;gap:8px;min-height:44px;min-width:64px;padding:0;background:transparent;background-image:none;border:0;color:var(--ink);font:400 16px/22px 'Blender Book',sans-serif;letter-spacing:0;overflow:visible;cursor:pointer}
.theme-toggle svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.theme-toggle .theme-sun{display:none}
[data-theme="dark"] .theme-toggle .theme-sun{display:block}
[data-theme="dark"] .theme-toggle .theme-moon{display:none}
@media(max-width:767px){.portfolio .theme-toggle{font-size:14px;gap:6px}}
