:root {
  --ink:#171a1e;
  --muted:#6f767d;
  --paper:#f4f6f7;
  --surface:#fff;
  --line:#d6dade;
  --blue:#2457ff;
  --orange:#ff6b35;
  --utility:ui-monospace,"SFMono-Regular",Consolas,monospace;
  --body:"Segoe UI Variable","Microsoft YaHei UI","PingFang SC",Arial,sans-serif;
  font-family:var(--body);
  color:var(--ink);
  background:var(--paper);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper)}
a{color:inherit}
button,input,select{font:inherit}
.skip-link{position:fixed;z-index:100;top:8px;left:8px;padding:10px 14px;color:#fff;background:#000;transform:translateY(-160%)}
.skip-link:focus{transform:none}

.site-header{position:sticky;z-index:30;top:0;height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3vw,48px);border-bottom:1px solid rgba(23,26,30,.12);background:rgba(244,246,247,.9);backdrop-filter:blur(18px)}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:760;letter-spacing:-.025em}
.brand-mark{display:flex;align-items:flex-end;width:20px;height:22px;gap:2px;transform:skew(-12deg)}
.brand-mark i{display:block;width:5px;background:var(--ink)}.brand-mark i:nth-child(1){height:8px}.brand-mark i:nth-child(2){height:17px;background:var(--blue)}.brand-mark i:nth-child(3){height:22px;background:var(--orange)}
.site-header nav{display:flex;align-items:center;gap:24px;font:10px/1 var(--utility);text-transform:uppercase}
.site-header nav a,.site-header nav button{padding:0 0 3px;border:0;border-bottom:1px solid transparent;background:none;text-decoration:none;cursor:pointer}
.site-header nav a:hover,.site-header nav button:hover{border-color:currentColor}

main{width:min(2200px,100%);margin:0 auto}

.library{padding:0 clamp(18px,3vw,48px) 100px;scroll-margin-top:64px}
.library-toolbar{position:sticky;z-index:20;top:64px;padding:18px 0;background:var(--paper)}
.search-box{min-height:58px;display:flex;align-items:center;border:1px solid var(--line);background:var(--surface)}
.search-box>span{flex:0 0 auto;padding:0 18px;color:var(--muted);font:9px/1 var(--utility);white-space:nowrap;text-transform:uppercase}
.search-box input{width:100%;height:56px;border:0;outline:0;background:transparent;font-size:18px}
.search-box:focus-within{border-color:var(--blue);box-shadow:inset 0 0 0 1px var(--blue)}
kbd{margin-right:14px;padding:4px 7px;border:1px solid var(--line);border-bottom-width:2px;border-radius:4px;color:var(--muted);font:10px/1 var(--utility)}
.mobile-category{display:none}

.library-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(30px,3vw,56px);align-items:start}
.category-sticky{position:sticky;top:158px;padding-top:14px}
.category-sticky>p{margin:0 0 14px;color:var(--muted);font:9px/1 var(--utility);text-transform:uppercase}
#category-list{border-top:1px solid var(--line)}
.category-button{width:100%;min-height:40px;display:flex;align-items:center;justify-content:space-between;padding:0;border:0;border-bottom:1px solid var(--line);color:#555d64;background:transparent;text-align:left;cursor:pointer;font-size:12px}
.category-button b{color:#989ea4;font:9px/1 var(--utility)}
.category-button:hover{color:var(--ink)}
.category-button.is-active{color:var(--ink);font-weight:720}.category-button.is-active::before{content:"";width:7px;height:7px;margin-right:9px;border-radius:50%;background:var(--blue)}.category-button.is-active span{margin-right:auto}.category-button.is-active b{color:var(--blue)}

.result-head{min-height:104px;display:flex;align-items:end;justify-content:space-between;gap:24px;padding:14px 0 18px;border-bottom:1px solid var(--line)}
.result-head h2{margin:0;padding-top:.1em;font-size:clamp(32px,3vw,52px);line-height:1.08;letter-spacing:-.05em}
.result-head>div:last-child{display:flex;align-items:center;gap:14px;color:var(--muted);font:10px/1 var(--utility)}
#clear-filters{padding:0 0 2px;border:0;border-bottom:1px solid;background:none;color:var(--blue);cursor:pointer;font:10px/1 var(--utility)}

.specimen-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-top:0}
.specimen-card{min-width:0;display:flex;flex-direction:column;background:var(--surface);animation:card-in .42s both;animation-delay:var(--delay);scroll-margin-top:170px}
.specimen-card:target,.specimen-card:focus-visible{outline:3px solid #215b59;outline-offset:4px}
@keyframes card-in{from{opacity:0;transform:translateY(10px)}}
.card-shot{position:relative;display:block;aspect-ratio:8/5;margin:14px 14px 0;overflow:hidden;background:#eef0f2}
.card-shot img{width:100%;height:100%;display:block;object-fit:contain}
.card-shot>span{position:absolute;right:12px;bottom:12px;padding:8px 10px;color:#fff;background:rgba(17,20,24,.86);font:9px/1 var(--utility);opacity:0;transform:translateY(5px);transition:.2s ease}
.card-shot:hover>span{opacity:1;transform:none}
.card-body{flex:1;display:flex;flex-direction:column;padding:16px 18px 20px}
.card-meta{color:var(--muted);font:9px/1 var(--utility)}
.card-body h3{margin:18px 0 12px;font-size:clamp(28px,2.3vw,42px);line-height:1;letter-spacing:-.055em;overflow-wrap:anywhere}.card-body h3 a{text-decoration:none}.card-body h3 a:hover{color:var(--blue)}
.card-summary{min-height:3em;margin:0;color:#4f575e;font-size:14px;line-height:1.5}
.card-actions{display:flex;align-items:center;gap:18px;margin-top:18px}
.analysis-entry,.extract-entry{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;border-bottom:1px solid transparent;background:none;color:var(--muted);cursor:pointer;font:10px/1.4 var(--utility);text-decoration:none}
.analysis-entry{color:var(--ink);font-weight:700}.analysis-entry::after{content:"→"}
.analysis-entry:hover,.extract-entry:hover{border-color:currentColor;color:var(--ink)}

.empty-state{padding:90px 20px;border:1px solid var(--line);text-align:center;background:#fff}.empty-state h3{margin:0 0 10px;font-size:28px}.empty-state p{color:var(--muted)}.empty-state button{margin-top:12px;padding:11px 16px;border:0;color:#fff;background:var(--blue);cursor:pointer}
footer{display:flex;justify-content:space-between;gap:30px;padding:34px clamp(18px,3vw,48px);color:#fff;background:var(--ink);font-size:11px}footer p{margin:0;color:#aab0b5}

dialog{border:0;padding:0;color:var(--ink);background:var(--surface);box-shadow:0 25px 90px rgba(0,0,0,.35)}dialog::backdrop{background:rgba(17,20,24,.72);backdrop-filter:blur(7px)}
.dialog-close{position:absolute;right:14px;top:14px;width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:#fff;cursor:pointer;font-size:24px}
.about-dialog{width:min(680px,calc(100vw - 28px));max-width:none;padding:clamp(38px,6vw,78px)}.about-dialog h2{margin:0;font-size:clamp(48px,7vw,80px);line-height:.9;letter-spacing:-.06em}.about-dialog ol{list-style:none;padding:0;margin:42px 0 0;border-top:1px solid var(--line)}.about-dialog li{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.about-dialog li b{font-size:13px}.about-dialog li span{color:var(--muted);font-size:13px;line-height:1.5}

.analysis-dialog{width:min(1240px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);overflow:auto;background:#eef1f3}
.analysis-dialog .dialog-close{position:sticky;z-index:5;top:12px;float:right;margin:12px 12px -56px 0}
.analysis-layout{display:grid;grid-template-columns:minmax(360px,.84fr) minmax(0,1.16fr);align-items:start}
.analysis-visual{position:sticky;top:0;min-width:0;min-height:calc(100dvh - 32px);padding:70px 28px 34px;border-right:1px solid var(--line);background:#e7ebed}
.analysis-source-meta{display:flex;justify-content:space-between;gap:20px;margin-bottom:14px;color:#596168;font:9px/1.4 var(--utility);text-transform:uppercase}
.analysis-visual>img{width:100%;height:auto;display:block;border:1px solid #cbd0d4;background:#f5f5f7}
.analysis-source-facts{display:grid;grid-template-columns:1fr 1fr;margin:16px 0 0;border-top:1px solid #cbd0d4;border-bottom:1px solid #cbd0d4}
.analysis-source-facts div{padding:12px 0}.analysis-source-facts div+div{padding-left:16px;border-left:1px solid #cbd0d4}
.analysis-source-facts dt{color:var(--muted);font:8px/1 var(--utility);text-transform:uppercase}.analysis-source-facts dd{margin:6px 0 0;font-size:12px}
.analysis-visual>p{margin:16px 0 0;color:#5d656c;font-size:12px;line-height:1.65}
.analysis-copy{min-width:0;padding:72px clamp(28px,4vw,58px) 60px;background:#fff}
.analysis-header{padding:0 0 46px;border-bottom:1px solid var(--ink)}
.analysis-header>p:first-child{margin:0 0 26px;color:var(--blue);font:9px/1 var(--utility);letter-spacing:.1em}
.analysis-header h2{max-width:760px;margin:0;font-size:clamp(42px,4.3vw,60px);line-height:1.04;letter-spacing:-.045em;overflow-wrap:anywhere}
.analysis-header>.analysis-thesis{max-width:960px;margin:20px 0 0;color:#4e565d;font-size:22px;line-height:1.6}
.analysis-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:28px}.analysis-actions a{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:0 15px;border:1px solid var(--ink);text-decoration:none;font:10px/1 var(--utility)}.analysis-actions a:first-child{color:#fff;background:var(--ink)}.analysis-actions a:hover{color:#fff;border-color:var(--blue);background:var(--blue)}
.analysis-section{padding:44px 0;border-bottom:1px solid var(--line)}
.analysis-section-title{display:grid;grid-template-columns:76px 1fr;gap:18px;align-items:start;margin-bottom:28px}.analysis-section-title>span{padding-top:5px;color:var(--blue);font:9px/1 var(--utility);text-transform:uppercase}.analysis-section-title h3{margin:0;font-size:25px;line-height:1.2;letter-spacing:-.035em}
.analysis-facts,.analysis-boundaries,.fit-list{list-style:none;padding:0;margin:0}
.analysis-facts li{position:relative;padding:15px 0 15px 26px;border-top:1px solid #e0e3e5;color:#333a40;font-size:14px;line-height:1.65}.analysis-facts li::before{content:"";position:absolute;left:2px;top:23px;width:7px;height:7px;background:var(--blue)}
.analysis-essays{border-top:1px solid #e0e3e5}.analysis-essay{padding:28px 0;border-bottom:1px solid #e0e3e5}.analysis-essay:last-child{border-bottom:0}.analysis-essay h3{margin:0 0 20px;font-size:20px;line-height:1.3;letter-spacing:-.025em}.analysis-essay dl{margin:0}.analysis-essay dl div{display:grid;grid-template-columns:92px 1fr;gap:18px;padding:9px 0}.analysis-essay dt{padding-top:4px;color:var(--muted);font:9px/1 var(--utility);text-transform:uppercase}.analysis-essay dd{margin:0;color:#444c52;font-size:14px;line-height:1.68}
.analysis-patterns{list-style:none;padding:0;margin:0;border-top:1px solid #e0e3e5}.analysis-patterns li{display:grid;grid-template-columns:minmax(140px,.7fr) minmax(0,1.3fr);gap:24px;padding:18px 0;border-bottom:1px solid #e0e3e5}.analysis-patterns b{font-size:13px}.analysis-patterns span{color:#50585f;font-size:13px;line-height:1.55}
.mapping-list{border-top:1px solid #e0e3e5}.mapping-row{display:grid;grid-template-columns:1fr 1.15fr auto;gap:20px;align-items:start;padding:20px 0;border-bottom:1px solid #e0e3e5}.mapping-row small{color:var(--muted);font:8px/1 var(--utility);text-transform:uppercase}.mapping-row p{margin:7px 0 0;font-size:13px;line-height:1.58}.mapping-row strong{min-width:42px;padding:6px 7px;border:1px solid var(--line);color:#4f575e;font:9px/1 var(--utility);text-align:center}
.analysis-boundaries{padding:8px 20px;border-left:3px solid var(--orange);background:#f6f6f3}.analysis-boundaries li{padding:10px 0;color:#454c52;font-size:13px;line-height:1.62}.analysis-boundaries li+li{border-top:1px solid #dedfdc}
.fit-columns{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}.fit-columns>div{padding:20px;background:#fff}.fit-columns h4{margin:0 0 14px;font-size:13px}.fit-list li{position:relative;padding:8px 0 8px 15px;color:#525960;font-size:12px;line-height:1.5}.fit-list li::before{content:"–";position:absolute;left:0}
.analysis-keywords{padding-top:34px}.analysis-keywords>b{display:block;margin-bottom:14px;font:9px/1 var(--utility);text-transform:uppercase}.analysis-keywords>div{display:flex;flex-wrap:wrap;gap:7px}.analysis-keywords span{padding:7px 9px;border:1px solid var(--line);color:#535b62;font:9px/1 var(--utility)}
:focus-visible{outline:3px solid var(--orange);outline-offset:3px}

@media(min-width:1700px){.specimen-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.library-layout{grid-template-columns:270px minmax(0,1fr)}}
@media(max-width:900px){
  .library-layout{grid-template-columns:1fr}.category-panel{display:none}.mobile-category{display:flex;align-items:center;gap:12px;margin:0 0 18px;padding:0 14px;border:1px solid var(--line);background:#fff}.mobile-category span{flex:0 0 auto;color:var(--muted);font:9px/1 var(--utility);white-space:nowrap;text-transform:uppercase}.mobile-category select{width:100%;height:48px;border:0;outline:0;background:#fff}.category-sticky{position:static}.specimen-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.analysis-layout{grid-template-columns:1fr}.analysis-visual{position:static;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
}
@media(max-width:640px){
  .site-header{height:60px;padding:0 16px}.site-header nav{gap:16px}.library{padding:0 14px 70px}.library-toolbar{top:60px;padding:12px 0}.result-head{min-height:86px}.result-head h2{font-size:34px}.result-head>div:last-child{align-items:flex-end;flex-direction:column}.specimen-grid{grid-template-columns:1fr}.card-body h3{font-size:32px}.card-summary{min-height:0}.card-shot>span{display:none}footer{align-items:flex-start;flex-direction:column}.about-dialog li{grid-template-columns:1fr;gap:6px}.analysis-dialog{width:100vw;height:100dvh;max-height:none}.analysis-dialog .dialog-close{top:8px;margin:8px 8px -50px 0}.analysis-visual{padding:64px 16px 24px}.analysis-source-meta{align-items:flex-start;flex-direction:column;gap:4px}.analysis-copy{padding:42px 18px 52px}.analysis-header h2{font-size:38px;line-height:1.06;letter-spacing:-.035em}.analysis-header>p:nth-of-type(2){font-size:15px}.analysis-section{padding:36px 0}.analysis-section-title{grid-template-columns:1fr;gap:8px}.analysis-section-title>span{padding:0}.analysis-essay dl div{grid-template-columns:1fr;gap:6px;padding:11px 0}.analysis-patterns li{grid-template-columns:1fr;gap:8px}.mapping-row{grid-template-columns:1fr;gap:10px}.mapping-row strong{justify-self:start}.fit-columns{grid-template-columns:1fr}.card-actions{gap:16px}
}
.analysis-overview{grid-column:1/-1;padding:40px 64px 32px 32px;background:#fff}
.analysis-overview h2{font-size:32px;line-height:1.2}
.analysis-overview details{max-width:960px;margin-top:18px;color:#596168;font-size:14px;line-height:1.7}
.analysis-overview summary{cursor:pointer}.analysis-overview details p{margin-bottom:0}
.analysis-layout>.analysis-visual{padding-top:28px;min-height:0}
.analysis-layout>.analysis-copy{padding-top:0}
@media(max-width:640px){.analysis-overview{padding:62px 18px 26px}.analysis-overview h2{font-size:26px}.analysis-overview>.analysis-thesis{font-size:18px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
/* Mechanism-first discovery and explicit research state. */
.library-toolbar{display:flex;gap:16px;flex-wrap:wrap;align-items:end}
.library-toolbar .search-box{flex:1 1 320px}
.atlas-filter{display:flex;flex-direction:column;gap:6px;flex:0 1 210px;min-width:0;font-size:12px;color:#5c626c}
.atlas-filter select{width:100%;min-height:46px;padding:10px 30px 10px 12px;border:1px solid #d8dce2;border-radius:8px;background:#fff;color:#171a1e;font:inherit;font-size:13px}
.research-summary{font-size:12px;line-height:1.8;color:#626974;margin:12px 0 28px}
.card-meta{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap}
.research-state{font-size:10px;color:#555d6a;white-space:nowrap}
.observation-entry{font-size:11px;text-decoration:underline;text-underline-offset:3px;color:#616974}
.evidence-caution{border-top:1px solid #d9dde4;padding-top:14px;font-size:12px!important;line-height:1.65!important}
.evidence-record{font-size:12px;text-decoration:underline;text-underline-offset:3px}
.observed-links{display:flex;gap:12px;flex-wrap:wrap;margin:12px 0;font-size:12px;text-underline-offset:3px}
@media(max-width:700px){.library-toolbar .search-box{flex-basis:100%}.atlas-filter{flex:1 1 130px}.research-summary{margin-bottom:20px}.atlas-filter select{font-size:12px}}
