:root{--bg:#0b0d10;--panel:#11151a;--panel2:#171c22;--text:#f3f5f7;--muted:#98a2ad;--line:#28303a;--accent:#d8ff55;--max:1500px}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:15px/1.5 Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}button,input,select{font:inherit}.hero{border-bottom:1px solid var(--line);background:radial-gradient(circle at 78% 0,#283522 0,transparent 34%),linear-gradient(180deg,#11151a,#0b0d10);padding:24px max(24px,calc((100vw - var(--max))/2)) 48px}.topbar{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:12px;letter-spacing:.16em}.brand{font-weight:800;color:var(--accent)}.language{display:flex;gap:10px;align-items:center}.language select{background:#0b0d10;color:var(--text);border:1px solid var(--line);border-radius:8px;padding:8px 12px}.hero-copy{max-width:980px;padding-top:70px}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--accent);font-weight:700;font-size:12px}.hero h1{font-size:clamp(42px,6vw,84px);line-height:.96;letter-spacing:-.055em;margin:12px 0 22px}.hero #site-subtitle{color:var(--muted);font-size:18px;max-width:760px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:38px}.stats div{border-top:1px solid var(--line);padding-top:14px}.stats strong,.stats span{display:block}.stats strong{font-size:23px}.stats span{color:var(--muted);font-size:12px;margin-top:3px}main{max-width:var(--max);margin:auto;padding:28px 24px 72px}.controls{position:sticky;top:var(--site-nav-height,64px);z-index:5;background:rgba(11,13,16,.96);backdrop-filter:blur(18px);padding:14px 0 18px;border-bottom:1px solid var(--line);margin-bottom:30px}.tabs{display:flex;gap:8px;overflow-x:auto;padding-bottom:6px;scrollbar-width:thin}.tags{display:flex;gap:7px;flex-wrap:wrap;overflow:visible}.tab,.chip,.details-btn,#clear-filters,#tag-toggle{border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:999px;padding:9px 13px;cursor:pointer;white-space:nowrap}.chip{display:inline-flex;align-items:center;gap:7px}.chip small{font-size:10px;color:#7f8994;background:#0b0d10;border-radius:999px;padding:1px 6px}.tab.active,.chip.active{background:var(--accent);color:#10130a;border-color:var(--accent);font-weight:700}.chip.active small{background:#10130a;color:var(--accent)}.search-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:10px;align-items:center;margin:14px 0 10px}#search-input{width:100%;background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:12px;padding:12px 14px;outline:none}#search-input:focus{border-color:#64752d}#result-count{color:var(--muted);min-width:62px;text-align:right}.tag-head{font-size:12px;color:var(--muted);margin:10px 0 8px;display:flex;align-items:center;justify-content:space-between;gap:12px}.tag-head #tag-toggle{padding:5px 10px;font-size:11px;border-radius:8px}.gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.set-card{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}.mosaic-wrap{position:relative}.mosaic{display:grid;grid-template-columns:repeat(2,1fr);aspect-ratio:2/1;gap:1px;background:var(--line)}.image-button{border:0;padding:0;background:#000;cursor:zoom-in;overflow:hidden}.image-button img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .25s ease}.image-button:hover img{transform:scale(1.025)}.compare-nav{position:absolute;top:50%;transform:translateY(-50%);z-index:2;width:42px;height:54px;border:1px solid #ffffff35;background:#080a0dcc;color:#fff;border-radius:12px;font-size:34px;line-height:1;cursor:pointer;opacity:.82;backdrop-filter:blur(8px)}.compare-nav:hover{opacity:1;background:#11161de8}.compare-prev{left:10px}.compare-next{right:10px}.compare-hint{position:absolute;left:50%;bottom:9px;transform:translateX(-50%);padding:4px 9px;border-radius:999px;background:#080a0dcc;border:1px solid #ffffff24;color:#dce1e5;font-size:10px;letter-spacing:.04em;pointer-events:none}.card-copy{padding:18px}.meta-line,.spec-row{display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.06em}.card-copy h2{font-size:22px;line-height:1.12;letter-spacing:-.025em;margin:10px 0 5px}.canonical{color:var(--muted);min-height:22px;margin:0 0 14px}.card-tags{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0}.card-tags span{font-size:11px;color:#c7ced5;background:var(--panel2);border:1px solid var(--line);padding:5px 8px;border-radius:6px}.details-btn{color:var(--text);border-radius:9px;margin-top:2px}dialog{width:min(760px,calc(100vw - 32px));background:var(--panel);color:var(--text);border:1px solid var(--line);border-radius:18px;padding:0;box-shadow:0 30px 90px #000b}dialog::backdrop{background:#000b}.dialog-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--line)}.dialog-head h2{margin:0}.dialog-head button{border:0;background:transparent;color:var(--text);font-size:30px;cursor:pointer}.details-grid{display:grid;grid-template-columns:180px 1fr;margin:0;padding:20px 22px;gap:0}.details-grid dt,.details-grid dd{margin:0;padding:10px 0;border-bottom:1px solid var(--line)}.details-grid dt{color:var(--muted)}.hashes{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;word-break:break-all}.lightbox{position:fixed;inset:0;z-index:20;background:#000e;display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:40px}.lightbox[hidden]{display:none}.lightbox-stage{min-width:0;display:grid;place-items:center}.lightbox img{max-width:min(88vw,1500px);max-height:82vh;object-fit:contain}.lightbox-close{position:absolute;right:24px;top:12px;border:0;background:transparent;color:var(--text);font-size:34px;cursor:pointer}.lightbox-nav{width:58px;height:72px;border:1px solid #ffffff35;background:#11161ddd;color:#fff;border-radius:14px;font-size:44px;cursor:pointer}.lightbox-nav:hover{background:#202833}.lightbox-info{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:14px;align-items:center;color:#dce1e5;background:#000b;padding:8px 12px;border-radius:8px;max-width:calc(100vw - 40px)}#lightbox-caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#lightbox-position{font-weight:800;color:var(--accent);white-space:nowrap}.modal-open{overflow:hidden}.empty{padding:80px;text-align:center;color:var(--muted)}footer{border-top:1px solid var(--line);max-width:var(--max);margin:auto;padding:30px 24px 60px;color:var(--muted)}@media(max-width:900px){.gallery{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.hero-copy{padding-top:48px}.details-grid{grid-template-columns:1fr}.details-grid dt{padding-bottom:0;border-bottom:0}.details-grid dd{padding-top:3px}.search-row{grid-template-columns:1fr auto}.search-row #result-count{grid-column:1/-1;text-align:left}.lightbox{padding:20px;gap:8px}.lightbox-nav{width:46px;height:60px}}@media(max-width:560px){.hero{padding-left:18px;padding-right:18px}.topbar{align-items:flex-start;gap:18px}.language span{display:none}.hero h1{font-size:44px}.stats{grid-template-columns:1fr 1fr}main{padding-left:14px;padding-right:14px}.mosaic{aspect-ratio:1/1}.compare-hint{display:none}.compare-nav{width:38px;height:48px}.lightbox{grid-template-columns:40px minmax(0,1fr) 40px;padding:10px;gap:4px}.lightbox-nav{width:40px;height:54px;font-size:36px}.lightbox-info{bottom:10px}.lightbox img{max-width:100%;max-height:78vh}}
:root{--category-accent:#57c7ff;--category-accent-strong:#8bdcff;--category-bg:#101923;--category-bg-active:#15334a;--category-line:#28465e}
.controls{padding:9px 0 11px;margin-bottom:clamp(16px,2vw,24px)}
.tabs{gap:6px;overflow-x:auto;padding:2px 1px 6px;scrollbar-width:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
.tabs::-webkit-scrollbar{display:none}
.tab{flex:0 0 auto;scroll-snap-align:start;background:linear-gradient(180deg,#142131,#101923);border-color:var(--category-line);color:#b9cee0;padding:7px 11px;box-shadow:inset 0 1px 0 #ffffff08;transition:transform .16s ease,border-color .16s ease,background .16s ease,color .16s ease,box-shadow .16s ease}
.tab:hover{transform:translateY(-1px);color:#e8f7ff;border-color:#4f87ad;box-shadow:var(--tab-shadow-hover)}
.tab:active{transform:translateY(1px) scale(.99);box-shadow:inset 0 2px 8px #0006}
.tab.active{background:linear-gradient(180deg,#1a4968,#15334a);color:#eaf9ff;border-color:var(--category-accent);box-shadow:0 0 0 1px #57c7ff22,0 5px 18px #0a6e9f24;font-weight:750}
.search-row{gap:8px;margin:8px 0 6px}
#search-input{padding:9px 12px;border-radius:10px}
.tag-head{margin:6px 0 6px}
.tags{gap:5px}
.chip{padding:6px 10px}
.tag-head #tag-toggle{padding:4px 8px}
.timing-source{display:grid;gap:8px;font-size:12px;overflow-wrap:anywhere;color:#b8c4cf}.evidence-item{display:grid;gap:3px;padding:8px 10px;border:1px solid #29465d;border-radius:9px;background:#0d151d}.evidence-link{width:max-content;max-width:100%;color:var(--category-accent-strong);font-weight:700;text-decoration:none}.evidence-link:hover{text-decoration:underline}.evidence-link:focus-visible{outline:2px solid var(--category-accent);outline-offset:3px}.evidence-path{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#8293a2;overflow-wrap:anywhere}
@media(min-width:1201px){.controls{padding-top:8px}.tabs{padding-bottom:5px}.tab{font-size:13px}.gallery{gap:20px}}
@media(max-width:900px){.controls{padding:8px 0 10px}.tabs{margin-left:-2px;margin-right:-2px}.tab{padding:7px 10px}.search-row{margin-top:6px}.gallery{gap:18px}}
@media(max-width:600px){main{padding-top:18px}.controls{padding:7px 0 9px;margin-bottom:14px;min-width:0}.tabs{gap:5px;width:100%;max-width:100%;min-width:0;margin-left:0;margin-right:0;padding-left:0;padding-right:0;scroll-padding-inline:0;scroll-snap-type:x proximity;touch-action:pan-x;-webkit-overflow-scrolling:touch}.tab{padding:7px 10px;font-size:12px}.search-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;margin:6px 0 4px}.search-row #result-count{grid-column:1/-1;margin-top:-1px;font-size:12px}.tag-head{margin:5px 0}.tags{gap:4px}.chip{padding:5px 8px;font-size:12px}.card-copy{padding:15px}.gallery{gap:16px}}

.mobile-category{display:none}
#category-select{width:100%;max-width:100%;min-width:0;background:linear-gradient(180deg,#142131,#101923);color:#e8f7ff;border:1px solid var(--category-line);border-radius:10px;padding:9px 12px;outline:none}
#category-select:focus{border-color:var(--category-accent);box-shadow:0 0 0 2px #57c7ff22}
.controls.group-compact .tabs{position:absolute;visibility:hidden;pointer-events:none;width:100%}.controls.group-compact .mobile-category{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:10px;margin-bottom:7px;color:var(--muted);font-size:12px}.controls.group-compact .mobile-category span{white-space:nowrap}
/* Theme system: resolved light/dark palette; Auto is resolved in app.js. */
:root{--color-scheme:dark;--controls-bg:rgba(11,13,16,.96);--hero-bg:radial-gradient(circle at 78% 0,#283522 0,transparent 34%),linear-gradient(180deg,#11151a,#0b0d10);--select-bg:#0b0d10;--select-text:#f3f5f7;--select-border:#34404c;--chip-count-bg:#0b0d10;--chip-count-text:#9aa8b7;--tag-text:#c7ced5;--evidence-bg:#0d151d;--evidence-path:#8293a2;--tab-bg-top:#142131;--tab-bg-bottom:#101923;--tab-text:#b9cee0;--tab-hover:#e8f7ff;--tab-active-top:#1a4968;--tab-active-bottom:#15334a;--tab-active-text:#eaf9ff;--accent-ink:#10130a;--tab-shadow-hover:0 3px 10px rgba(2,12,20,.22),inset 0 0 0 1px #57c7ff18}
:root[data-theme="dark"]{--color-scheme:dark;--bg:#0b0d10;--panel:#11151a;--panel2:#171c22;--text:#f3f5f7;--muted:#98a2ad;--line:#28303a;--accent:#d8ff55;--category-accent:#57c7ff;--category-accent-strong:#8bdcff;--category-line:#28465e;--controls-bg:rgba(11,13,16,.96);--hero-bg:radial-gradient(circle at 78% 0,#283522 0,transparent 34%),linear-gradient(180deg,#11151a,#0b0d10);--select-bg:#0b0d10;--select-text:#f3f5f7;--select-border:#34404c;--chip-count-bg:#0b0d10;--chip-count-text:#9aa8b7;--tag-text:#c7ced5;--evidence-bg:#0d151d;--evidence-path:#8293a2;--tab-bg-top:#142131;--tab-bg-bottom:#101923;--tab-text:#b9cee0;--tab-hover:#e8f7ff;--tab-active-top:#1a4968;--tab-active-bottom:#15334a;--tab-active-text:#eaf9ff;--accent-ink:#10130a;--tab-shadow-hover:0 3px 10px rgba(2,12,20,.22),inset 0 0 0 1px #57c7ff18}
:root[data-theme="light"]{--color-scheme:light;--bg:#f4f7fa;--panel:#ffffff;--panel2:#eef3f7;--text:#17212b;--muted:#607080;--line:#ccd7e1;--accent:#5d7200;--category-accent:#006fa8;--category-accent-strong:#005d8d;--category-line:#9cb8ca;--controls-bg:rgba(244,247,250,.96);--hero-bg:radial-gradient(circle at 78% 0,#dce9c8 0,transparent 35%),linear-gradient(180deg,#ffffff,#eef4f7);--select-bg:#ffffff;--select-text:#17212b;--select-border:#aebdca;--chip-count-bg:#e6edf3;--chip-count-text:#506273;--tag-text:#435465;--evidence-bg:#f6f9fb;--evidence-path:#586b7c;--tab-bg-top:#ffffff;--tab-bg-bottom:#edf3f7;--tab-text:#526779;--tab-hover:#17212b;--tab-active-top:#d9effa;--tab-active-bottom:#c8e7f6;--tab-active-text:#0e3f59;--accent-ink:#10130a;--tab-shadow-hover:0 3px 10px rgba(31,57,76,.12),inset 0 0 0 1px rgba(0,111,168,.12)}
html,body{color-scheme:var(--color-scheme)}
.hero{background:var(--hero-bg)}.controls{background:var(--controls-bg)}
.topbar{gap:18px;flex-wrap:wrap}.topbar-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.language,.theme-control{display:flex;gap:8px;align-items:center}.language select,.theme-control select,#category-select{background:var(--select-bg);color:var(--select-text);border-color:var(--select-border);color-scheme:var(--color-scheme)}
.language select option,.theme-control select option,#category-select option{background:var(--select-bg);color:var(--select-text)}
.theme-control select{border:1px solid var(--select-border);border-radius:8px;padding:8px 12px;outline:none}.theme-control select:focus-visible,.language select:focus-visible,#category-select:focus-visible{border-color:var(--category-accent);outline:2px solid var(--category-accent);outline-offset:2px}
#category-select{background:var(--select-bg);color:var(--select-text)}
.tab{background:linear-gradient(180deg,var(--tab-bg-top),var(--tab-bg-bottom));color:var(--tab-text)}.tab:hover{color:var(--tab-hover)}.tab.active{background:linear-gradient(180deg,var(--tab-active-top),var(--tab-active-bottom));color:var(--tab-active-text)}
.chip small{background:var(--chip-count-bg);color:var(--chip-count-text)}.chip.active{color:var(--accent-ink)}.chip.active small{background:var(--accent-ink);color:var(--accent)}
.card-tags span{color:var(--tag-text);background:var(--panel2)}.evidence-item{background:var(--evidence-bg);border-color:var(--line)}.evidence-path{color:var(--evidence-path)}
@media(max-width:560px){.topbar{align-items:flex-start}.topbar-actions{width:100%;justify-content:flex-start}.theme-control span,.language span{display:none}}

.compare-nav,.lightbox-nav{display:grid;place-items:center;padding:0;line-height:0}.lightbox-nav{position:relative;z-index:2}.nav-icon{display:block;width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.lightbox-nav .nav-icon{width:30px;height:30px}.lightbox-stage{position:relative;z-index:1;min-width:0;overflow:hidden}.lightbox-loader{position:absolute;left:50%;top:50%;width:42px;height:42px;margin:-21px 0 0 -21px;border:3px solid #ffffff2b;border-top-color:#fff;border-radius:50%;opacity:0;pointer-events:none;animation:lightbox-spin .8s linear infinite;transition:opacity .16s ease}.lightbox img{opacity:1;transform:scale(1);transition:opacity .2s ease,transform .24s ease}.lightbox.is-loading .lightbox-loader{opacity:1}.lightbox.is-loading img{opacity:.08;transform:scale(.992)}.lightbox img.is-ready{opacity:1;transform:scale(1)}@keyframes lightbox-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.lightbox-loader{animation:none}.lightbox img,.tab{transition:none}}

.site-nav{position:sticky;top:0;z-index:12;background:var(--controls-bg);border-bottom:1px solid var(--line);backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px)}.site-nav .topbar{max-width:var(--max);margin:auto;padding:11px 24px}.controls{transition:top .15s ease}.scroll-controls{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:10;display:grid;gap:8px}.scroll-control{width:44px;height:44px;display:grid;place-items:center;padding:0;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--panel) 90%,transparent);color:var(--text);box-shadow:0 6px 22px rgba(0,0,0,.18);backdrop-filter:blur(10px);cursor:pointer;transition:opacity .16s ease,transform .16s ease,border-color .16s ease}.scroll-control:hover{transform:translateY(-1px);border-color:var(--category-accent)}.scroll-control:active{transform:translateY(1px)}.scroll-control[hidden]{display:none}.scroll-control .nav-icon{width:22px;height:22px}@media(max-width:560px){.site-nav .topbar{padding:9px 14px}.scroll-controls{right:10px;bottom:12px}.scroll-control{width:40px;height:40px;border-radius:11px}}@media(prefers-reduced-motion:reduce){.controls,.scroll-control{transition:none}}
/* Production showcase hero and project resources. */
.project-description{max-width:900px;margin:14px 0 0;color:var(--text);font-size:16px;line-height:1.7;opacity:.9}.resource-block{margin-top:22px}.resource-label{display:block;margin-bottom:9px;color:var(--muted);font-size:11px;font-weight:750;letter-spacing:.12em;text-transform:uppercase}.project-resources{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.resource-link{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:8px 12px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel) 86%,transparent);color:var(--text);font-size:12px;font-weight:700;text-decoration:none;transition:transform .16s ease,border-color .16s ease,background .16s ease}.resource-link:hover{transform:translateY(-1px);border-color:var(--category-accent);background:var(--panel2)}.resource-link:focus-visible{outline:2px solid var(--category-accent);outline-offset:2px}.hero .stats{margin-top:30px}@media(prefers-reduced-motion:reduce){.resource-link{transition:none}}

.evidence-policy-btn{border:1px solid var(--category-line);background:var(--evidence-bg);color:var(--category-accent-strong);border-radius:9px;padding:8px 11px;cursor:pointer;font-weight:700}.evidence-policy-btn:hover{border-color:var(--category-accent);transform:translateY(-1px)}.evidence-policy-btn:focus-visible{outline:2px solid var(--category-accent);outline-offset:2px}.evidence-policy-dialog{width:min(900px,calc(100vw - 28px));max-height:min(88vh,900px);overflow:auto}.dialog-kicker{margin:0 0 4px;color:var(--category-accent-strong);font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.evidence-policy-body{padding:22px}.evidence-summary{margin:0 0 20px;color:var(--text);font-size:16px;line-height:1.65;max-width:78ch}.evidence-explainer{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.evidence-explainer section{border:1px solid var(--line);background:var(--evidence-bg);border-radius:12px;padding:14px}.evidence-explainer h3{margin:0 0 6px;font-size:14px}.evidence-explainer p{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.evidence-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:18px 0}.evidence-stat{border-top:1px solid var(--line);padding:12px 4px 0}.evidence-stat strong,.evidence-stat span{display:block}.evidence-stat strong{font-size:25px}.evidence-stat span{margin-top:3px;color:var(--muted);font-size:11px}.evidence-technical-links{display:flex;flex-wrap:wrap;gap:9px;padding-top:16px;border-top:1px solid var(--line)}.evidence-technical-links a{color:var(--category-accent-strong);text-decoration:none;border:1px solid var(--line);border-radius:9px;padding:8px 11px;font-size:12px}.evidence-technical-links a:hover{border-color:var(--category-accent);text-decoration:underline}@media(max-width:640px){.evidence-policy-body{padding:16px}.evidence-explainer{grid-template-columns:1fr}.evidence-policy-dialog{width:calc(100vw - 18px)}}@media(prefers-reduced-motion:reduce){.evidence-policy-btn{transition:none}}
