@import url('https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Libre+Franklin:wght@400;500;600&family=Newsreader:ital,opsz,wght@0,6..72,400;1,6..72,400;1,6..72,500&display=swap');

:root { --ink:#1c1b18; --muted:#706e67; --paper:#f4f1e9; --card:#fbfaf6; --line:#d3cec1; --accent:#d84b2f; --blue:#244f73; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"Libre Franklin",sans-serif; }
button,input,select { font:inherit; }
button,a { -webkit-tap-highlight-color:transparent; }
.masthead { height:84px; padding:0 clamp(24px,5vw,76px); display:flex; align-items:center; border-bottom:1px solid var(--ink); }
.wordmark { color:var(--ink); text-decoration:none; font:600 25px/1 "DM Mono"; letter-spacing:-2px; }
.wordmark span { color:var(--accent); }
.issue { margin-left:34px; padding-left:34px; border-left:1px solid var(--line); color:var(--muted); font:11px/1.4 "DM Mono"; text-transform:uppercase; letter-spacing:.08em; }
.mast-actions { margin-left:auto; display:flex; align-items:center; gap:22px; }.mast-actions a { text-decoration:none; }
.text-button { padding:3px 0; border:0; border-bottom:1px solid currentColor; color:var(--ink); background:none; cursor:pointer; font-size:12px; }
.hero { min-height:505px; padding:82px clamp(24px,9vw,140px) 56px; position:relative; overflow:hidden; border-bottom:1px solid var(--ink); }
.hero:after { content:"24"; position:absolute; right:6vw; top:12px; color:transparent; -webkit-text-stroke:1px #ded9cd; font:italic 430px/.95 "Newsreader"; z-index:-1; }
.eyebrow,.paper-field { color:var(--accent); font:500 11px/1.4 "DM Mono"; letter-spacing:.11em; text-transform:uppercase; }
h1 { max-width:900px; margin:17px 0 20px; font:400 clamp(60px,9vw,126px)/.82 "Newsreader"; letter-spacing:-.055em; }
h1 em { color:var(--accent); font-weight:400; }
.dek { max-width:665px; margin:35px 0 55px; color:#4d4b46; font:20px/1.55 "Newsreader"; }
.hero-meta { display:flex; gap:35px; color:var(--muted); font:11px "DM Mono"; text-transform:uppercase; }
.hero-meta strong { color:var(--ink); font-size:18px; }
.browser { padding:48px clamp(24px,5vw,76px) 100px; }
.browser-layout { display:grid; grid-template-columns:245px minmax(0,1fr); gap:42px; align-items:start; }
.browser-content { min-width:0; }
.archive-index { position:sticky; top:24px; max-height:calc(100vh - 48px); overflow:auto; padding:0 18px 25px 0; scrollbar-width:thin; scrollbar-color:var(--line) transparent; }
.index-heading { display:flex; justify-content:space-between; align-items:center; padding:0 0 15px; border-bottom:1px solid var(--ink); font:500 10px "DM Mono"; text-transform:uppercase; letter-spacing:.08em; }
.index-heading strong { display:grid; place-items:center; min-width:28px; height:22px; padding:0 5px; color:var(--paper); background:var(--ink); font-weight:400; }
.tree-root { margin:0; padding:0; list-style:none; }
.tree-collection { border-bottom:1px solid var(--line); }
.tree-collection summary { display:flex; align-items:center; gap:7px; padding:13px 0 10px; cursor:pointer; list-style:none; color:var(--ink); font:500 11px/1.35 "Libre Franklin"; }
.tree-collection summary::-webkit-details-marker { display:none; }
.tree-collection summary:before { content:'+'; width:13px; color:var(--accent); font:13px "DM Mono"; }
.tree-collection[open] summary:before { content:'−'; }
.tree-label { flex:1; }
.tree-count { color:var(--muted); font:9px "DM Mono"; }
.tree-fields { margin:0 0 10px 20px; padding:0; list-style:none; }
.tree-button { width:100%; display:flex; justify-content:space-between; gap:8px; padding:5px 4px 5px 8px; border:0; border-left:1px solid var(--line); color:var(--muted); background:none; cursor:pointer; text-align:left; font:10px/1.35 "DM Mono"; }
.tree-button:hover { color:var(--accent); border-color:var(--accent); }
.tree-button.active { color:var(--ink); border-left:3px solid var(--accent); background:#ebe7dc; }
.tree-all { margin-top:12px; padding:9px 8px; border:1px solid var(--line); }
.index-toggle { display:none; }
.controls { display:flex; align-items:end; gap:26px; justify-content:space-between; padding-bottom:28px; border-bottom:1px solid var(--ink); }
.search-wrap { flex:1; max-width:500px; position:relative; }
.search-wrap span { display:block; margin-bottom:8px; color:var(--muted); font:10px "DM Mono"; text-transform:uppercase; letter-spacing:.08em; }
.search-wrap input { width:100%; padding:10px 35px 10px 0; border:0; border-bottom:1px solid var(--line); outline:0; background:transparent; font:19px "Newsreader"; }
.search-wrap input:focus { border-color:var(--accent); }
kbd { position:absolute; right:4px; bottom:11px; color:var(--muted); font:11px "DM Mono"; }
.filter-row { display:flex; align-items:center; gap:12px; }
.pills { display:flex; flex-wrap:wrap; gap:6px; }
.pill,select { border:1px solid var(--line); border-radius:100px; color:var(--muted); background:transparent; cursor:pointer; font:10px "DM Mono"; text-transform:uppercase; letter-spacing:.04em; }
.pill { padding:8px 12px; }
.pill.active { color:var(--paper); background:var(--ink); border-color:var(--ink); }
select { padding:8px 30px 8px 12px; }
.results-line { min-height:65px; position:relative; display:flex; justify-content:space-between; align-items:center; gap:20px; color:var(--muted); font:11px "DM Mono"; text-transform:uppercase; }
.review-summary:before { content:' · '; }.result-actions { display:flex; gap:16px; align-items:center; }.result-actions kbd { position:static; margin-left:4px; color:inherit; }.review-progress { position:absolute; left:0; bottom:0; width:0; height:2px; background:#579673; transition:width .3s; }
.paper-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); border-top:1px solid var(--line); border-left:1px solid var(--line); }
.paper-card { min-height:380px; padding:29px; display:flex; flex-direction:column; background:var(--card); border-right:1px solid var(--line); border-bottom:1px solid var(--line); transition:background .2s,transform .2s; cursor:pointer; }
.paper-card:hover { position:relative; background:#fff; transform:translateY(-3px); box-shadow:0 12px 30px #29251e10; }
.card-top { display:flex; justify-content:space-between; align-items:start; }
.index { color:#aaa69d; font:10px "DM Mono"; }
.paper-card h2 { margin:29px 0 15px; font:400 30px/1.08 "Newsreader"; letter-spacing:-.025em; }
.collection-label { margin-top:10px; color:var(--muted); font:9px/1.3 "DM Mono"; text-transform:uppercase; letter-spacing:.05em; }
.confidence { font-weight:500; }.confidence.confirmed { color:#2f7052; }.confidence.review { color:#9a641d; }.confidence.questionable { color:var(--accent); }
.abstract { margin:0; color:#66635d; font:13px/1.6 "Libre Franklin"; display:-webkit-box; -webkit-line-clamp:5; -webkit-box-orient:vertical; overflow:hidden; }
.tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:auto; padding-top:25px; }
.tag { padding:5px 7px; color:#706e67; background:#efede6; font:9px "DM Mono"; text-transform:uppercase; }
.format { margin-left:auto; color:var(--accent); background:#f5e5df; }
.empty { padding:90px 20px; text-align:center; }
.empty span { color:var(--accent); font:70px "Newsreader"; }.empty h2 { font:35px "Newsreader"; }.empty p { color:var(--muted); }
footer { display:flex; justify-content:space-between; padding:26px clamp(24px,5vw,76px); color:var(--muted); background:var(--ink); font:10px "DM Mono"; text-transform:uppercase; }
dialog { width:100%; height:100%; max-width:none; max-height:none; margin:0; padding:0; border:0; background:var(--paper); }
dialog::backdrop { background:#1119; }
.reader-shell { min-height:100%; }
.reader-header { position:sticky; top:0; z-index:4; display:flex; justify-content:space-between; align-items:center; gap:30px; padding:18px clamp(20px,4vw,60px); border-bottom:1px solid var(--line); background:#f4f1e9f2; backdrop-filter:blur(14px); }
.reader-header h2 { max-width:850px; margin:4px 0 0; font:24px/1.1 "Newsreader"; }
.reader-actions { display:flex; align-items:center; gap:12px; flex-shrink:0; }
.button { padding:10px 14px; color:var(--paper); background:var(--ink); text-decoration:none; font:10px "DM Mono"; text-transform:uppercase; }
.icon-button { width:40px; height:40px; border:1px solid var(--line); border-radius:50%; background:transparent; cursor:pointer; font-size:25px; line-height:1; }
.reader-body { min-height:calc(100vh - 80px); }
.reader-body.reviewing { padding-bottom:92px; }
.review-dock { position:fixed; z-index:8; left:50%; bottom:18px; display:none; align-items:center; gap:8px; width:min(820px,calc(100% - 30px)); padding:10px; transform:translateX(-50%); color:white; background:#1c1b18f4; box-shadow:0 15px 50px #0005; backdrop-filter:blur(12px); }
.review-dock.active { display:flex; }.dock-progress { min-width:130px; padding:0 8px; display:grid; }.dock-progress span { font:12px "DM Mono"; }.dock-progress small { color:#aaa; font-size:9px; }
.decision { min-height:54px; flex:1; display:flex; align-items:center; gap:10px; padding:8px 12px; border:0; cursor:pointer; text-align:left; }.decision kbd { position:static; display:grid; place-items:center; width:29px; height:29px; flex-shrink:0; color:inherit; border:1px solid currentColor; }.decision span { display:grid; }.decision b { font-size:12px; }.decision small { font-size:9px; opacity:.75; }.decision.known { color:#173d2b; background:#9fe0b9; }.decision.questionable { color:#562014; background:#f0a18e; }
.dock-small { align-self:stretch; padding:0 10px; border:1px solid #ffffff35; color:#ddd; background:none; cursor:pointer; font:9px "DM Mono"; text-transform:uppercase; }.dock-small kbd { position:static; color:white; }
.reader-body iframe { display:block; width:100%; height:calc(100vh - 80px); border:0; }
.article { max-width:790px; margin:auto; padding:75px 30px 130px; font:18px/1.75 "Newsreader"; }
.article h1 { margin:0 0 40px; font-size:54px; line-height:1; letter-spacing:-.035em; }
.article h2 { margin:60px 0 18px; font:400 31px/1.15 "Newsreader"; }.article h3 { margin:35px 0 12px; font:600 18px "Libre Franklin"; }
.article p { margin:0 0 21px; }.article strong { font-family:"Libre Franklin"; font-size:.9em; }.article code { padding:2px 5px; background:#e9e5da; font:13px "DM Mono"; }.article pre { overflow:auto; padding:20px; background:#24231f; color:#eee; }.article blockquote { margin:30px 0; padding-left:25px; border-left:3px solid var(--accent); color:#56534c; font-style:italic; }
.about-card { max-width:650px; margin:10vh auto; padding:55px; position:relative; background:var(--card); border:1px solid var(--line); }.about-card .icon-button { position:absolute; top:20px; right:20px; }.about-card h2 { font:45px "Newsreader"; margin:14px 0 25px; }.about-card p { color:#55524c; line-height:1.7; }.about-card .small { color:var(--muted); font-size:12px; }
@media(max-width:1050px){.browser-layout{grid-template-columns:205px minmax(0,1fr);gap:25px}.controls{align-items:stretch;flex-direction:column}.search-wrap{max-width:none}.filter-row{flex-wrap:wrap}.paper-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:780px){.browser-layout{display:block}.index-toggle{width:100%;display:flex;justify-content:space-between;margin-bottom:20px;padding:12px 14px;border:1px solid var(--ink);background:transparent;font:10px "DM Mono";text-transform:uppercase}.index-toggle:after{content:'+';color:var(--accent)}.index-toggle[aria-expanded="true"]:after{content:'−'}.archive-index{display:none;position:static;max-height:65vh;margin:-20px 0 25px;padding:20px;background:var(--card);border:1px solid var(--ink)}.archive-index.open{display:block}}
@media(max-width:680px){.masthead{height:70px}.issue{display:none}.hero{min-height:430px;padding-top:60px}.hero:after{font-size:280px}.dek{font-size:17px;margin:25px 0 40px}.hero-meta{gap:15px;flex-wrap:wrap}.pills{width:100%;overflow:auto;flex-wrap:nowrap;padding-bottom:5px}.results-line{align-items:flex-start;flex-direction:column;padding:16px 0}.result-actions{width:100%;justify-content:space-between}.review-summary{display:block;margin-top:5px}.review-summary:before{content:''}.paper-grid{grid-template-columns:1fr}.paper-card{min-height:330px}.reader-header{align-items:start}.reader-header h2{font-size:18px}.button{display:none}.article h1{font-size:39px}.about-card{margin:0;min-height:100%;padding:60px 25px}footer{gap:20px;flex-direction:column}.review-dock{bottom:5px;display:none;grid-template-columns:1fr 1fr;flex-wrap:wrap}.review-dock.active{display:flex}.dock-progress{width:100%;}.decision{min-width:40%}.dock-small{height:32px;flex:1}.reader-body.reviewing{padding-bottom:180px}}
