﻿@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@400;500;700;900&family=Noto+Serif+SC:wght@600;800&family=Roboto+Condensed:wght@400;600&display=swap');
:root{--paper:#f1efe8;--ink:#182829;--muted:#697875;--red:#c85645;--sage:#708e80;--line:#cfd7d1;--dark:#152728;--white:#faf9f4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--ink);font-family:'Noto Sans SC',sans-serif}button,input,select{font:inherit}a{text-decoration:none;color:inherit}
.topbar{position:fixed;z-index:20;top:0;left:0;right:0;height:70px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;color:#fff;background:linear-gradient(#102627,transparent);border-bottom:1px solid #ffffff33}.brand span,.brand b{display:block}.brand span{font:600 9px 'Roboto Condensed';letter-spacing:.15em;color:#c6d9d0}.brand b{font:800 14px 'Noto Serif SC'}.topbar nav{display:flex;gap:24px;align-items:center}.topbar nav a,.topbar nav button{border:0;background:none;color:#fff9;font-size:11px;cursor:pointer}.progress{position:absolute;left:0;right:0;bottom:0;height:2px}.progress i{display:block;width:0;height:100%;background:var(--red)}
.map-stage{pointer-events:none;position:fixed;z-index:0;inset:0;background:#58776d}.map-stage #map{position:absolute;inset:0;pointer-events:none}.map-shade{position:absolute;inset:0;pointer-events:none;background:linear-gradient(90deg,#0c1d1e66,transparent 50%),linear-gradient(0deg,#0c1d1e66,transparent 40%)}.map-status,.map-scale{position:absolute;color:#fff;text-shadow:0 1px 5px #122425}.map-status{left:36px;bottom:28px}.map-status span,.map-status b,.map-scale span,.map-scale b{display:block}.map-status span{font:700 12px 'Noto Serif SC'}.map-status b,.map-scale span,.map-scale b{font:9px 'Roboto Condensed';opacity:.85}.map-scale{right:27px;bottom:28px;text-align:right}.map-controls{pointer-events:auto;position:absolute;right:25px;top:90px;display:grid}.map-controls button{width:42px;height:35px;border:1px solid var(--line);background:#faf9f4e8;cursor:pointer}
main{position:relative;z-index:2}.chapter{position:relative;min-height:120vh;padding:110px 7vw 90px}.opening{height:125vh;min-height:760px;display:flex;align-items:center;justify-content:center;color:#fff;text-align:center}.opening-copy{width:min(780px,80vw);text-shadow:0 3px 25px #0006}.opening-copy>span,.section-intro>span{font:600 10px 'Roboto Condensed';letter-spacing:.18em;color:#e3c979}.opening h1{font:900 clamp(54px,7vw,100px)/1.12 'Noto Serif SC';margin:25px 0}.opening p{max-width:600px;margin:auto;color:#fffc;font:14px/2 'Noto Serif SC'}.scroll-cue{display:grid;justify-items:center;gap:10px;margin-top:55px;font-size:10px}.scroll-cue i{height:42px;width:1px;background:#fff}.opening-stat{position:absolute;right:8vw;bottom:16vh;border-left:1px solid #fff;padding:15px 0 15px 18px;color:#fff}.opening-stat span,.opening-stat small{display:block;font-size:10px}.opening-stat strong{display:inline-block;margin:5px 0;font:400 72px 'Roboto Condensed'}
.archive,.data-chapter,.method-chapter{background:#f1efe8f5}.archive{min-height:145vh;padding-top:15vh}.section-intro{width:430px;margin:0 5vw 42px auto;padding:28px;background:#faf9f4f5;box-shadow:0 15px 50px #0f232329}.section-intro.centered{width:600px;margin:0 auto 38px;text-align:center}.section-intro>span{color:var(--red)}.section-intro h2{margin:18px 0;font:900 42px/1.25 'Noto Serif SC'}.section-intro p{margin:0;color:var(--muted);font:11px/1.9 'Noto Serif SC'}
.archive-workspace{width:min(1100px,86vw);min-height:620px;margin:auto;display:grid;grid-template-columns:220px minmax(0,1fr);background:#faf9f4f7;box-shadow:0 18px 60px #0f232333}.category-panel{display:flex;flex-direction:column;padding:20px 12px;border-right:1px solid var(--line)}.panel-title{display:flex;gap:12px;padding:0 7px 15px;border-bottom:1px solid var(--line)}.panel-title span{font:9px 'Roboto Condensed';color:var(--red)}.panel-title b{font:700 13px 'Noto Serif SC'}.categories{display:grid;gap:4px;margin-top:12px}.categories button{display:grid;grid-template-columns:25px 1fr 20px;gap:5px;padding:11px 8px;border:0;background:none;color:var(--muted);text-align:left;font-size:10px;cursor:pointer}.categories button:hover,.categories button.active{background:var(--dark);color:#fff}.categories i{font:9px 'Roboto Condensed';color:var(--red);font-style:normal}.categories em{font-style:normal;font-size:8px}.ethics{margin-top:auto;padding:12px 7px;border-top:1px solid var(--line)}.ethics b{font-size:9px;color:var(--red)}.ethics p{font-size:8px;line-height:1.7;color:var(--muted)}
.case-panel{min-width:0;display:flex;flex-direction:column}.case-head{padding:23px 20px 12px}.case-head>div{display:flex;gap:11px;align-items:baseline}.case-head span{font:9px 'Roboto Condensed';color:var(--red)}.case-head h3{margin:0;font:800 22px 'Noto Serif SC'}.case-head p{margin:9px 0;color:var(--muted);font-size:9px}.filters{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:5px;padding:0 18px 13px}.filters select,.filters input{min-width:0;padding:9px 7px;border:1px solid var(--line);background:#fff;font-size:9px}.case-list{max-height:520px;overflow-y:auto;padding:0 12px 16px}.case-card{display:grid;grid-template-columns:43px minmax(0,1fr) 20px;gap:8px;padding:14px 7px;border-top:1px solid var(--line);cursor:pointer}.case-card:hover,.case-card.active{background:#e6ebe6}.case-card .year{font:600 13px 'Roboto Condensed';color:var(--red)}.case-card h3{margin:0 0 6px;font:700 12px 'Noto Serif SC'}.case-card p{margin:0;color:var(--muted);font-size:8px;line-height:1.55}.case-card .place{display:block;margin-top:7px;color:var(--sage);font-size:8px}.case-card>i{color:var(--red);font-style:normal}
.data-chapter,.method-chapter{min-height:145vh;padding-top:15vh}.chart-grid{width:min(1100px,86vw);margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:13px}.chart-card{min-height:330px;padding:18px;border:1px solid var(--line);background:#fff}.chart-card.wide{grid-column:1/-1;min-height:380px}.chart-card header{display:flex;justify-content:space-between;gap:15px}.chart-card header span{font:600 9px 'Roboto Condensed';color:var(--red)}.chart-card h3{margin:6px 0;font:700 16px 'Noto Serif SC'}.info{height:28px;border:1px solid var(--line);background:none;font-size:9px;cursor:pointer}.fixed-chart{height:250px}.fixed-chart svg,.donut-chart svg,.bar-chart svg{display:block;width:100%;height:100%}.chart-card footer{padding-top:9px;border-top:1px solid var(--line);color:var(--muted);font-size:9px}.donut-chart{height:220px}.chart-legend{display:flex;flex-wrap:wrap;gap:8px;font-size:8px}.bar-chart{height:260px}
.method-grid{width:min(1100px,86vw);margin:0 auto 35px;display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.method-grid article{padding:20px;border:1px solid var(--line);background:#fff}.method-grid b{color:var(--red);font:700 13px 'Noto Serif SC'}.method-grid p{color:var(--muted);font-size:9px;line-height:1.75}.source-library{width:min(1100px,86vw);margin:auto}.source-library h3{font:700 20px 'Noto Serif SC'}.source-row{display:grid;grid-template-columns:1fr 2fr 70px;gap:10px;padding:12px 5px;border-top:1px solid var(--line);font-size:9px}.source-row span{color:var(--muted)}.source-row a{color:var(--red);text-align:right}.closing{margin-top:80px;padding:55px;text-align:center;background:var(--dark);color:#fff}.closing h2{margin:20px;font:800 36px 'Noto Serif SC'}
.case-drawer{position:fixed;z-index:40;top:0;right:0;bottom:0;width:460px;overflow:auto;padding:78px 34px 34px;border:1px solid #fff;border-right:0;border-radius:22px 0 0 22px;background:#faf9f4e8;backdrop-filter:blur(28px);transform:translateX(110%);opacity:0;transition:.7s}.case-drawer.open{transform:translateX(0);opacity:1}.case-drawer>button,#noteDialog>button,#sources>button{position:absolute;top:16px;right:18px;border:0;background:none;font-size:22px;cursor:pointer}.case-detail h2{font:800 30px/1.25 'Noto Serif SC'}.case-detail .eyebrow{color:var(--red);font:600 9px 'Roboto Condensed'}.case-detail .summary,.case-detail p{color:var(--muted);font:11px/1.8 'Noto Serif SC'}.detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:20px 0;overflow:hidden;border-radius:12px;background:var(--line)}.detail-grid div{padding:12px;background:#fff9}.detail-grid span,.detail-grid b{display:block;font-size:9px}.detail-grid span{color:var(--muted)}.case-detail h3{margin-top:24px;color:var(--red);font-size:11px}.case-sources a{display:block;padding:11px 0;border-top:1px solid var(--line);font-size:9px}.case-marker{width:18px;height:18px;border:3px solid #fff;border-radius:50%;background:var(--red);box-shadow:0 0 0 5px #c8564538,0 4px 14px #0005}.map-focus .map-stage{z-index:5}.map-focus .archive,.map-focus .data-chapter,.map-focus .method-chapter{background:#f1efe833}.map-focus .archive-workspace,.map-focus .section-intro{background:#faf9f4b8}
@media(max-width:900px){.topbar{height:60px;padding:0 15px}.topbar nav a{display:none}.chapter{padding-left:5vw;padding-right:5vw}.opening h1{font-size:47px}.opening-stat{right:5vw}.section-intro,.section-intro.centered{width:90vw;margin:0 auto 30px}.archive-workspace{width:90vw;grid-template-columns:1fr}.category-panel{border-right:0;border-bottom:1px solid var(--line)}.categories{grid-template-columns:repeat(2,1fr)}.chart-grid,.method-grid{grid-template-columns:1fr}.chart-card.wide{grid-column:auto}.case-drawer{top:auto;left:4vw;right:4vw;bottom:0;width:auto;max-height:82vh;border-radius:20px 20px 0 0;transform:translateY(110%)}.case-drawer.open{transform:translateY(0)}}
/* Entrance hierarchy and case-return motion. */
.opening-scope{position:absolute;left:7vw;bottom:12vh;display:grid;gap:5px;text-align:left;color:#fff;max-width:260px}.opening-scope span{font:600 9px 'Roboto Condensed';letter-spacing:.16em;color:#e3c979}.opening-scope b,.opening-scope i{font-size:9px;font-style:normal;line-height:1.6}.archive-meta{display:flex;justify-content:space-between;gap:10px;margin-top:10px;color:var(--muted);font-size:8px}.archive-meta span:first-child{color:var(--red);font-weight:700}.is-loading .opening-copy,.is-loading .opening-stat,.is-loading .opening-scope{opacity:0;transform:translateY(22px)}.opening-copy,.opening-stat,.opening-scope{transition:opacity .75s ease,transform .85s cubic-bezier(.22,.8,.2,1)}.opening-stat{transition-delay:.12s}.opening-scope{transition-delay:.22s}.chapter:not(.opening) .section-intro,.archive-workspace,.chart-grid,.method-grid,.source-library{animation:sectionIn .65s cubic-bezier(.22,.8,.2,1) both;animation-timeline:view();animation-range:entry 5% cover 28%}@keyframes sectionIn{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.returning-to-archive .archive-workspace{opacity:.58;transform:translateY(8px);transition:opacity .25s,transform .25s}.archive-returned .archive-workspace{animation:archiveReturn .72s cubic-bezier(.22,.8,.2,1)}@keyframes archiveReturn{0%{opacity:.32;transform:translateY(18px) scale(.992)}100%{opacity:1;transform:none}}.case-card{transition:background .2s,transform .2s}.case-card:hover{transform:translateX(4px)}@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:900px){.opening-scope{left:5vw;bottom:8vh}.archive-meta{font-size:7px}}
/* Normal information-site surface and theme system. */
:root{color-scheme:light;--site-bg:#f5f6f4;--surface:#ffffff;--surface-muted:#edf0ee;--text:#182829;--text-muted:#5f6d6b;--border:#d8dfdb;--nav:#ffffffed;--accent:#a94335;--shadow:0 10px 30px rgba(22,39,40,.09)}
:root[data-theme='dark']{color-scheme:dark;--site-bg:#141b1b;--surface:#1d2727;--surface-muted:#253131;--text:#edf2ef;--text-muted:#bdc8c3;--border:#3b4947;--nav:#182121ed;--accent:#e17b68;--shadow:0 10px 30px rgba(0,0,0,.28);--paper:#1d2727;--white:#1d2727;--ink:#edf2ef;--muted:#bdc8c3;--line:#3b4947;--dark:#121919}
body{background:var(--site-bg);color:var(--text);font-size:16px}.topbar{height:72px;background:var(--nav);color:var(--text);border-bottom:1px solid var(--border);backdrop-filter:blur(14px)}.brand span{color:var(--accent)}.topbar nav a,.topbar nav button{color:var(--text-muted);font-size:13px}.topbar nav a:hover,.topbar nav button:hover{color:var(--text)}.theme-toggle{width:32px;height:32px;border:1px solid var(--border)!important;border-radius:50%;font-size:17px!important;color:var(--text)!important}
.map-stage{opacity:.62;filter:saturate(.72);background:#6d887f}.opening{min-height:700px;height:92vh;background:linear-gradient(90deg,rgba(17,32,32,.82),rgba(17,32,32,.42))}.opening h1{font-size:clamp(52px,6vw,82px)}.opening p{font-size:16px;line-height:2}.opening-scope,.opening-stat{font-size:12px}.opening-scope b,.opening-scope i,.opening-stat span,.opening-stat small{font-size:11px}.archive,.data-chapter,.method-chapter{background:var(--site-bg)}.chapter{padding-top:118px}.section-intro{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--border)}.section-intro h2{font-size:44px;color:var(--text)}.section-intro p{font-size:14px;color:var(--text-muted)}.archive-workspace{background:var(--surface);box-shadow:var(--shadow);border:1px solid var(--border)}.category-panel{border-color:var(--border)}.panel-title b,.case-head h3{font-size:16px;color:var(--text)}.categories button{font-size:12px}.ethics p,.case-head p{font-size:11px;color:var(--text-muted)}.filters select,.filters input{padding:11px 9px;font-size:12px;background:var(--surface);color:var(--text);border-color:var(--border)}.case-list{max-height:560px}.case-card{padding:16px 9px;border-color:var(--border)}.case-card h3{font-size:14px;color:var(--text)}.case-card p,.case-card .place{font-size:10px}.case-card:hover,.case-card.active{background:var(--surface-muted)}.chart-card,.method-grid article{background:var(--surface);border-color:var(--border);box-shadow:0 2px 8px rgba(0,0,0,.025)}.chart-card h3{font-size:18px;color:var(--text)}.chart-card footer,.method-grid p{font-size:11px;color:var(--text-muted)}.source-library{background:var(--surface);border:1px solid var(--border);padding:22px 26px;box-shadow:var(--shadow)}.source-library h3{font-size:22px;color:var(--text)}.source-row{font-size:11px;border-color:var(--border)}.closing{background:var(--surface-muted);color:var(--text);border-top:1px solid var(--border)}.case-drawer{background:var(--surface);color:var(--text);border-color:var(--... (line truncated to 2000 chars)
.map-focus .map-stage{opacity:1;filter:saturate(.92);z-index:5}.map-focus .archive{background:color-mix(in srgb,var(--site-bg) 45%,transparent)}.map-focus .archive-workspace,.map-focus .section-intro{background:color-mix(in srgb,var(--surface) 82%,transparent)}
.section-intro,.archive-workspace,.chart-card,.method-grid article,.source-library{opacity:0;transform:translateY(18px);transition:opacity .55s ease,transform .6s cubic-bezier(.22,.8,.2,1)}.section-ready{opacity:1!important;transform:none!important}.case-card{transition:background .2s,transform .2s,box-shadow .2s}.case-card:hover{box-shadow:0 6px 14px rgba(30,47,47,.08)}
@media(max-width:900px){body{font-size:15px}.topbar nav{gap:12px}.opening{min-height:680px}.opening p{font-size:14px}.section-intro h2{font-size:34px}.source-library{padding:18px}.theme-toggle{display:grid!important;place-items:center}}
:root{--chart-text:#263534;--chart-grid:#cfd7d3;--chart-center:#ffffff}:root[data-theme='dark']{--chart-text:#edf2ef;--chart-grid:#53615e;--chart-center:#1d2727}#lineChart svg text,#pieChart svg text,#barChart svg text{fill:var(--chart-text)!important;font-family:'Noto Sans SC',sans-serif;font-weight:600}#lineChart svg line{stroke:var(--chart-grid)!important}#lineChart svg circle{fill:var(--chart-center)!important}#pieChart svg circle{fill:var(--chart-center)!important}.chart-legend{color:var(--text);font-size:10px}.bar-chart{min-height:296px;height:auto!important}.chart-card:has(.bar-chart){min-height:390px}
/* Keep the existing motion; soften only functional surfaces. */
.section-intro{border-radius:10px}.archive-workspace{border-radius:10px;overflow:hidden}.categories button{border-radius:6px}.filters select,.filters input{border-radius:6px}.case-card{border-radius:6px;margin:2px 0}.chart-card{border-radius:10px}.info{border-radius:6px}.method-grid article{border-radius:8px}.source-library{border-radius:10px}.source-row:last-child{border-bottom:0}.theme-toggle{border-radius:50%}.case-drawer{border-radius:14px 0 0 14px}.detail-grid{border-radius:8px}.case-sources a{border-radius:5px}.case-sources a:hover{background:var(--surface-muted);padding-left:8px}.chart-grid{align-items:start}@media(max-width:900px){.case-drawer{border-radius:14px 14px 0 0}}
