/* The same self-hosted Newsreader / IBM Plex Mono pair as lupine.science. */
@font-face{font-family:Newsreader;src:url('/fonts/newsreader-var.woff2') format('woff2');font-style:normal;font-weight:300 600;font-display:swap}
@font-face{font-family:Newsreader;src:url('/fonts/newsreader-italic-var.woff2') format('woff2');font-style:italic;font-weight:300 600;font-display:swap}
@font-face{font-family:'IBM Plex Mono';src:url('/fonts/plex-mono-400.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--font-serif:Newsreader,Georgia,serif;--font-mono:'IBM Plex Mono',monospace;--font-sans:'IBM Plex Mono',monospace;--desk:#07111c;--paper:#eef0e8;--line:#7893b433;--mist:#96a8c0;--blue:#a8b9ff}
body{font-family:var(--font-serif)}button,input,select,.micro{font-family:var(--font-mono)}
[hidden]{display:none!important}.skip-link{position:fixed;top:-80px;left:16px;z-index:300;background:var(--paper);color:var(--desk);padding:12px}.skip-link:focus{top:12px}
.brand-title{font-family:var(--font-serif);font-size:22px;font-weight:400;letter-spacing:-.035em}.brand-sub{font-family:var(--font-mono);font-size:8px;letter-spacing:.13em}.brand-icon{border-radius:0}
.site-nav{display:flex;gap:24px;margin-left:auto;font:10px var(--font-mono);text-transform:uppercase}.site-nav a{text-decoration:none;color:inherit}.site-nav a:hover{color:var(--blue)}
html[data-view="home"]{background:var(--desk);color:var(--paper);color-scheme:dark}html[data-view="home"] body{background:var(--desk);color:var(--paper)}
html[data-view="home"] .topbar{max-width:none;height:76px;padding:16px 32px;background:var(--desk);border-bottom:1px solid var(--line);color:var(--paper)}
html[data-view="home"] #view{padding:0;max-width:none;margin:0}html[data-view="home"] .progress{display:none}html[data-view="home"] .topbar-actions{margin-left:26px}
/* The field is the surface; controls recede until touched. */
.research-workspace{position:relative;min-height:620px;height:calc(100svh - 76px);max-height:1400px;isolation:isolate;overflow:hidden;color:var(--paper);background:radial-gradient(ellipse at 67% 38%,#233f5d60,transparent 65%),var(--desk)}
.research-workspace:before{content:'';position:absolute;inset:0;background:radial-gradient(#96a9bc28 .65px,transparent .65px) 0 0/24px 24px;pointer-events:none}
[data-piece]{position:relative;outline:0;translate:0 0}
[data-piece]:focus-visible{outline:1px solid #bcc9ff;outline-offset:4px}
.piece-selected:not(.document-tile){outline:1px solid #849bdd35;outline-offset:6px}
.piece-handle{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:36px;padding:8px 12px;font:9px/1.5 var(--font-mono);letter-spacing:.09em;color:var(--mist);cursor:grab;touch-action:none;user-select:none}
.piece-handle>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.piece-handle b{font-weight:400;color:#e1e7f7;margin-right:5px}.piece-handle>div{display:flex;gap:6px}
.piece-handle button,.tile-meta button{border:0;background:transparent;color:#a8b9d0;cursor:pointer;font:20px/1 var(--font-mono);width:28px;height:28px;opacity:0;transition:opacity .15s}
[data-piece]:hover>.piece-handle button,[data-piece]:focus-within>.piece-handle button,.piece-selected>.piece-handle button,.document-tile:hover .tile-meta button,.document-tile:focus-within .tile-meta button{opacity:1}
.piece-handle button:hover,.tile-meta button:hover{color:#fff;background:#738eb833}
.workspace-intro{position:absolute;left:5%;top:20%;width:31%;z-index:4;cursor:grab;touch-action:none}
.workspace-intro .piece-handle{padding-left:0;font-size:8px;letter-spacing:.2em}
.workspace-intro h1{font:400 clamp(62px,7.5vw,138px)/.86 var(--font-serif);letter-spacing:-.06em;margin:32px 0;color:#f1efe5;text-shadow:0 2px 40px #07111c99}
.workspace-intro h1 em{color:#a6b8dc;font-weight:400}
.knowledge-field{position:absolute;left:35%;right:0;top:0;bottom:0;z-index:2;overflow:hidden}
.field-handle{position:absolute;left:20px;right:24px;top:16px;z-index:3;opacity:.55}.knowledge-field:hover>.field-handle,.knowledge-field:focus-within>.field-handle{opacity:1}
.field-viewport{position:absolute;inset:65px 0 74px;overflow:hidden;cursor:grab;touch-action:none;outline:0}
.field-viewport:focus-visible{box-shadow:inset 0 0 0 1px #a8b9ff44}
.connection-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.document-plane{position:absolute;inset:0;transform-origin:0 0;pointer-events:none;will-change:transform}
.document-tile{position:absolute;width:225px;height:132px;padding:14px 15px 10px;background:#142334dd;border:1px solid #627d9b55;pointer-events:auto;cursor:grab;touch-action:none;user-select:none;box-shadow:0 8px 24px #0001;transition:transform .3s cubic-bezier(.16,1,.3,1),border-color .2s,background .2s,opacity .2s;box-sizing:border-box}
.document-tile:nth-child(5n){background:#1d3039de}.document-tile:nth-child(7n){border-color:#a2b4bd77}
.document-tile.is-related{border-color:#99afea99;background:#21364adb}
.document-tile:hover,.document-tile:focus-visible,.document-tile.piece-selected{background:#dce3db;color:#17283c;border-color:#dce3db;outline:0;transform:translateY(-7px) rotate(-1deg);z-index:2;box-shadow:0 20px 50px #0005}
.document-tile h2{font:400 21px/1.12 var(--font-serif);letter-spacing:-.02em;margin:10px 0;max-height:48px;overflow:hidden;color:#e4e9ef}
.document-tile:is(:hover,:focus-visible,.piece-selected) h2{color:#17283c}
.document-tile:is(:hover,:focus-visible,.piece-selected) :is(.tile-meta,.tile-bottom,.tile-meta button,.tile-bottom button){color:#52647c}
.document-tile.is-lifted{opacity:.2;transform:scale(.96);border-style:dashed}
.tile-meta{display:flex;justify-content:space-between;align-items:center;font:7px var(--font-mono);letter-spacing:.06em;text-transform:uppercase;color:#8fa6c1;height:10px}
.tile-meta span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.tile-meta button{font-size:16px;margin-right:-5px}
.tile-bottom{position:absolute;bottom:10px;left:15px;right:12px;display:flex;justify-content:space-between;align-items:center;font:7px var(--font-mono);color:#8ca0b9}
.tile-bottom button{border:0;background:transparent;color:#c3d2f3;cursor:pointer;font:18px var(--font-serif);padding:2px 6px;opacity:0}.document-tile:is(:hover,:focus-within) .tile-bottom button{opacity:1}
.knowledge-field[data-mode="connections"] .document-plane{visibility:hidden}
.field-foot{position:absolute;bottom:22px;right:24px;left:22px;display:flex;align-items:center;justify-content:flex-end;gap:16px;font:8px var(--font-mono);color:#8b9eb4;pointer-events:none}
.field-foot>div{display:flex;gap:3px;pointer-events:auto}.field-foot button{border:0;background:none;color:#9aafc9;font:17px var(--font-mono);cursor:pointer;width:28px;height:30px}
.connection-key{display:flex;align-items:center;gap:6px;margin-right:auto}.connection-key i{width:14px;border-top:1px solid #a8b9ff}.connection-key .suggested{border-top-style:dashed}
.reading-surface{position:absolute;inset:0;pointer-events:none;z-index:10}
.paper-window{position:absolute;left:0;top:0;width:min(600px,calc(100% - 24px));height:600px;max-height:calc(100% - 94px);min-width:270px;min-height:200px;resize:both;overflow:hidden;pointer-events:auto;background:#eef0e8;color:#142238;border:1px solid #b5c2bf;box-shadow:0 35px 110px #0009;transform-origin:0 0}
.paper-window>.piece-handle{color:#384b60;background:#eef0e8;border-bottom:1px solid #bac5bd88;min-height:39px;position:absolute;top:0;left:0;right:0;letter-spacing:0}
.paper-window .piece-handle button{color:#384b60}.paper-window .piece-handle button:hover{color:#152336}
.paper-source{position:absolute;top:48px;right:20px;z-index:2;display:flex;align-items:center;gap:15px;font:8px var(--font-mono);color:#516276}
.paper-source a{color:#384e7e;text-decoration:none;font-size:18px}
.paper-body{position:absolute;top:78px;bottom:0;left:0;right:0;overflow:auto;padding:14px 30px 80px;overscroll-behavior:contain;font:18px/1.65 var(--font-serif);color:#1d2d3f;user-select:text}
.paper-body h1,.paper-body h2,.paper-body h3{font-family:var(--font-serif);color:#152336;line-height:1.12;letter-spacing:-.025em}.paper-body h1{font-size:35px}.paper-body h2{font-size:29px}.paper-body h3{font-size:23px}
.paper-body p,.paper-body li{color:inherit}.paper-body a{color:#405c98}.paper-body pre,.paper-body code{font-family:var(--font-mono);font-size:.72em;background:#dfe5e0;color:#213c50}.paper-body pre{overflow:auto;padding:14px}.paper-body img{max-width:100%}.paper-body table{display:block;overflow:auto}
.paper-body .katex{font-size:1.08em}.paper-body .katex-display{overflow-x:auto;overflow-y:hidden;padding:8px 0}.paper-body blockquote{border-color:#6e839b;color:#466078}
.paper-expanded{left:2%!important;top:24px!important;translate:0 0!important;width:96%!important;height:calc(100% - 105px)!important;max-height:none}.paper-expanded .paper-body{padding-left:max(30px,calc((100% - 760px)/2));padding-right:max(30px,calc((100% - 760px)/2))}
.paper-ghost{position:fixed;z-index:1000;pointer-events:none;width:260px;min-height:150px;padding:20px;background:#e9eee4;color:#17283c;box-shadow:0 26px 70px #0007;border:1px solid #aebeb5;transition:rotate .1s}.paper-ghost span{font:8px var(--font-mono);text-transform:uppercase;color:#52647c}.paper-ghost h2{font:400 28px/1.1 var(--font-serif);margin:15px 0 8px}
.is-dragging,.is-dragging *{cursor:grabbing!important}
.workspace-tools{position:absolute;left:5%;bottom:22px;z-index:100;display:flex;align-items:center;gap:3px;padding:6px;background:#12202dcc;backdrop-filter:blur(20px);border:1px solid #7f98b028;border-radius:30px;box-shadow:0 8px 45px #0002}
.workspace-tools button{display:grid;place-items:center;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:transparent;color:#9eb1c8;cursor:pointer;transition:color .2s,background .2s,transform .2s}
.workspace-tools button:hover,.workspace-tools button:focus-visible{background:#637ea438;color:#f0f3ff;transform:translateY(-2px)}.workspace-tools button[aria-pressed="true"]{background:#b8c8dc;color:#112238}.workspace-tools button:disabled{opacity:.4;cursor:wait}.workspace-tools :is(.workspace-undo,.workspace-remove):disabled{display:none}.workspace-tools .workspace-remove{color:#d5aaa0}
.workspace-search{position:relative;display:flex;align-items:center;min-height:36px;color:#9eb1c8;cursor:text}.workspace-search svg{position:absolute;left:9px;pointer-events:none}.workspace-search input{box-sizing:border-box;width:36px;min-width:0;border:0;background:none;color:#dde6f4;padding:9px 0 9px 34px;font:10px var(--font-mono);transition:width .25s}.workspace-search input::placeholder{color:transparent}.workspace-search:focus-within input,.workspace-search:has(input:not(:placeholder-shown)) input{width:160px;padding-right:9px}.workspace-search:focus-within input::placeholder{color:#9eb1c8}.workspace-search input:focus{outline:0}
.workspace-search:hover{color:#f0f3ff}.workspace-feedback{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.workspace-feedback.is-visible,.workspace-feedback.capture-stamp{left:5%;bottom:83px;width:auto;max-width:90%;height:auto;clip-path:none;white-space:normal;margin:0;padding:10px 14px;font:10px/1.4 var(--font-mono);background:var(--desk);color:#c5d4e4;z-index:101}.workspace-feedback.capture-stamp{bottom:4px;background:none;font-size:8px}
.workspace-media{position:absolute;right:4%;top:90px;width:min(480px,90%);z-index:55;background:#102334;border:1px solid #7e95b4}.workspace-media video{width:100%;display:block}.workspace-media p{font:10px var(--font-mono);padding:12px;color:#97acc4}
.workspace-journal{margin:0 5% 60px;padding:30px 0;color:#b7c6d5;background:var(--desk);border-top:1px solid var(--line)}.workspace-journal .piece-handle{margin-bottom:25px}.workspace-journal .research-activity{border:0;background:none;margin:0;padding:20px 12px;border-radius:0}.workspace-journal h2{font:40px var(--font-serif);color:#e5e9e5}.workspace-journal h3{font:25px var(--font-serif);color:#e5e9e5}.workspace-journal p{font:17px/1.6 var(--font-serif)}.workspace-journal .research-activity-kicker,.workspace-journal .research-activity-times,.workspace-journal button,.workspace-journal summary{font:10px/1.6 var(--font-mono)}
.workspace-footer{margin:0 5%;padding:0 0 34px;border-top:1px solid var(--line);color:#8ba0b8;display:grid;grid-template-columns:1fr auto;gap:28px;background:var(--desk)}.workspace-footer>.piece-handle{grid-column:1/-1}.footer-brand{display:flex;gap:13px;align-items:center;text-decoration:none;color:#dce1e2;font:32px var(--font-serif);letter-spacing:-.03em}.footer-brand img{border-radius:0}.workspace-footer>div:not(.piece-handle){display:flex;gap:28px;align-items:center;font:10px var(--font-mono)}.workspace-footer a{color:inherit}.workspace-footer p{font:13px var(--font-serif)}

@media(min-width:1600px){.workspace-intro{width:28%}.knowledge-field{left:31%}}
@media(max-width:1100px){.workspace-intro{left:4%;width:34%;top:24%}.workspace-intro h1{font-size:78px}.knowledge-field{left:38%}.workspace-tools{left:4%}.workspace-tools .workspace-film{display:none}}
@media(max-width:700px){
 html[data-view="home"] .topbar{height:65px;padding:12px 18px}.brand-title{font-size:22px}.site-nav{display:none}html[data-view="home"] .topbar-actions{margin-left:auto}
 .research-workspace{min-height:740px;height:calc(100svh - 65px);max-height:none}
 .workspace-intro{left:7%;top:15px;width:85%}.workspace-intro .piece-handle{font-size:7px;min-height:24px}.workspace-intro h1{font-size:clamp(64px,13vw,92px);margin:18px 0;line-height:.88}.workspace-intro h1 br{display:none}.workspace-intro h1 em{display:block}
 .knowledge-field{left:0;right:0;top:235px;bottom:0}.field-handle{top:0;left:25px;right:20px}.field-viewport{inset:44px 0 103px}.field-foot{bottom:70px;left:25px;right:20px}
 .workspace-tools{left:50%;bottom:16px;transform:translateX(-50%);max-width:calc(100% - 24px)}.workspace-tools button{width:33px;height:36px}.workspace-search:focus-within input,.workspace-search:has(input:not(:placeholder-shown)) input{width:112px}
 .workspace-feedback.is-visible{bottom:76px}
 .paper-window{height:600px;max-height:calc(100% - 100px);width:calc(100% - 24px);min-width:240px}.paper-body{padding:10px 22px 60px;font-size:17px}.paper-body h1{font-size:30px}.paper-source{right:16px;font-size:7px}.paper-expanded .paper-body{padding-left:22px;padding-right:22px}
 .workspace-journal{margin:0 5% 30px}.workspace-journal .research-activity{padding:10px 0}.workspace-footer{grid-template-columns:1fr}.workspace-footer>div:not(.piece-handle){gap:20px;flex-wrap:wrap}.workspace-footer .footer-brand{font-size:30px}
}
@media(hover:none){.piece-handle button,.tile-meta button,.tile-bottom button{opacity:.7}.document-tile:hover{transform:none}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.document-tile,.piece-handle button,.workspace-tools button,.workspace-search input,.paper-ghost{transition:none}.document-tile:hover{transform:none}}

.research-workspace:has(.workspace-intro[hidden]) .knowledge-field{left:0;top:0}

/* Permanent reviewed-research routes remain outside the removable workspace. */
html[data-view="research"] #view{max-width:960px;margin:0 auto;padding:32px 24px 72px}
html[data-view="research"] #view>h1{font:clamp(2rem,5vw,3.6rem) var(--font-serif)}
html[data-view="research"] #view>button{margin:8px 12px 20px 0;padding:10px 14px}
html[data-view="research"] .research-activity-card{margin:20px 0;padding:24px;border:1px solid var(--line)}

/* Permanent public research routes use the Library desk palette. */
.public-research-view{color:#b7c6d5}
.public-research-view>h1{font:400 clamp(2rem,5vw,3.5rem)/1.12 var(--font-serif);color:#e5e9e5;letter-spacing:-.025em;margin:0 0 20px}
.public-research-view h3{font:400 clamp(1.4rem,3vw,1.8rem)/1.25 var(--font-serif);color:#e5e9e5}
.public-research-view a,.public-research-view a:visited{color:#bdd3ee;text-decoration:underline;text-underline-offset:3px}
.public-research-view a:hover{color:#fff}
.public-research-view a:focus-visible,.public-research-view button:focus-visible,.public-research-view summary:focus-visible{outline:2px solid #bcc9ff;outline-offset:4px}
.public-research-controls{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0}
.public-research-view .research-activity-refresh{background:#203247;border:1px solid #627d9b;color:#e5e9e5;font:12px/1.5 var(--font-mono);padding:10px 14px;border-radius:9px;cursor:pointer}
.public-research-view .research-activity-refresh:hover:not(:disabled){background:#2c435d;border-color:#a6b8dc}
.public-research-view .research-activity-refresh:disabled{opacity:.6;cursor:wait}

.reader-source-snapshot{font:11px/1.6 var(--font-mono);color:#a8b9d0;max-width:80ch;margin:16px 0 0}
.reader-source-snapshot a,.reader-source-snapshot a:visited{color:#bdd3ee;text-underline-offset:3px}
.reader-source-snapshot a:focus-visible{outline:2px solid #bcc9ff;outline-offset:4px}
