/* ===== Variables ===== */
:root {
    --bg:#fff;--bg-secondary:#f7f7f8;--bg-card:#fff;
    --text:#1a1a1a;--text-secondary:#5a5a6a;--text-muted:#9a9aaa;
    --accent:#8b1a1a;--accent-hover:#6d1414;
    --border:#e5e5ea;--border-hover:#d0d0d8;
    --radius:10px;--radius-sm:6px;
    --font-sans:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
    --font-serif:'Source Serif 4',Georgia,serif;
    --shadow-sm:0 1px 3px rgba(0,0,0,.06);--shadow-md:0 4px 16px rgba(0,0,0,.08);
    --transition:.2s ease;--viewer-bg:#ddd;
    --highlight:rgba(255,210,0,.45);
}

/* Accessibility and study workspace additions */
.skip-link{position:fixed;left:1rem;top:-4rem;z-index:200;padding:.7rem 1rem;border-radius:8px;background:#111;color:#fff;font-weight:700}.skip-link:focus{top:1rem}
.explore-body{min-height:100vh;background:#11100f;color:#f6f0e7}.explore-hero,.explore-main{max-width:1180px;margin:auto;padding:1.5rem 1.4rem}.explore-hero{min-height:31vh;padding-top:3rem;background:radial-gradient(circle at 70% 20%,#6d1414 0,transparent 34%)}.explore-hero .viewer-back{color:#f6f0e7}.explore-hero h1{max-width:800px;font:600 clamp(2.3rem,6vw,5rem)/.95 var(--font-serif);margin:.7rem 0}.explore-hero>p:last-child{max-width:620px;color:#d5cbc0;font-size:1.05rem}.explore-main{display:grid;gap:4rem;padding-bottom:5rem}.explore-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin-bottom:1.2rem}.explore-heading h2{margin:.2rem 0;font:600 2rem var(--font-serif)}.explore-heading>p{color:#b5aaa0;font-size:.8rem}.gallery-3d{height:440px;overflow:hidden;position:relative;border:1px solid #4b4036;border-radius:18px;background:radial-gradient(ellipse at center,#382f28,#161311 65%);perspective:1100px;--rx:-4deg;--ry:9deg}.gallery-stage{position:absolute;inset:0;transform-style:preserve-3d;transform:rotateX(var(--rx)) rotateY(var(--ry));transition:transform .3s ease}.gallery-card{position:absolute;left:calc(50% - 84px);top:calc(50% - 125px);width:168px;height:250px;padding:.4rem;background:#f9f4ed;box-shadow:0 18px 35px #000a;text-decoration:none;color:#17110e;transform:rotateY(var(--angle)) translateZ(270px);transition:transform .3s ease,filter .3s ease}.gallery-card:hover{transform:rotateY(var(--angle)) translateZ(330px) scale(1.08);z-index:3}.gallery-card img{display:block;width:100%;height:205px;object-fit:cover}.gallery-card span{display:block;padding:.45rem .2rem;font-size:.68rem;font-weight:700;line-height:1.2}.gallery-hint{position:absolute;bottom:1rem;left:1rem;color:#c9b9a5;font-size:.75rem}.knowledge-graph{overflow:auto;border:1px solid #4b4036;border-radius:18px;background:#15120f}.knowledge-graph svg{min-width:720px;width:100%;display:block}.graph-lines line{stroke:#745b46;stroke-width:1;opacity:.7}.graph-node circle{fill:#2b241f;stroke:#d6a66f;stroke-width:1.5}.graph-node.tag circle{fill:#661a16;stroke:#e1c1a1}.graph-node text{fill:#eee4d9;text-anchor:middle;font:600 11px Inter,sans-serif;pointer-events:none}.graph-node:hover circle{fill:#e9b77c}.playground{padding:1.2rem;border:1px solid #4b4036;border-radius:18px;background:#1a1613}.playground-controls{display:grid;grid-template-columns:2fr 2fr repeat(3,1fr) auto;gap:.7rem;align-items:end}.playground-controls label{display:grid;gap:.3rem;font-size:.72rem;color:#c9b9a5}.playground-controls input{min-width:0;padding:.55rem;border-radius:7px;border:1px solid #66584c;background:#0f0d0b;color:#fff;font:600 .9rem var(--font-sans)}.alignment-output{margin-top:1rem;padding:1rem;border-radius:10px;background:#100e0c}.alignment-score{color:#c9b9a5}.alignment-score b{color:#f5d2a8;font-size:1.35rem}.alignment-output pre{overflow:auto;padding:.8rem;background:#1d1916;color:#f5d2a8}.matrix-wrap{overflow:auto}.matrix-wrap table{border-collapse:collapse;margin-top:.8rem}.matrix-wrap th,.matrix-wrap td{min-width:28px;padding:.35rem;text-align:center;border:1px solid #443a32;font:600 .75rem monospace}.matrix-wrap th{color:#f5d2a8}@media(max-width:760px){.explore-heading,.playground-controls{display:grid;grid-template-columns:1fr}.gallery-card{transform:rotateY(var(--angle)) translateZ(210px)}.gallery-card:hover{transform:rotateY(var(--angle)) translateZ(250px) scale(1.04)}}
.document-guide-modal{position:fixed;inset:0;z-index:100;background:#0009;backdrop-filter:blur(6px);padding:1rem;display:grid;place-items:center}.document-guide-modal[hidden]{display:none}.document-guide-card{position:relative;width:min(600px,100%);padding:1.4rem;border-radius:14px;background:var(--bg);box-shadow:var(--shadow-md)}.document-guide-card>button{position:absolute;right:1rem;top:1rem}.document-guide-card h2{margin:.2rem 0;font-family:var(--font-serif)}.document-guide-card>p{color:var(--text-secondary);font-size:.85rem}.document-guide-card form{display:flex;gap:.5rem;margin:1rem 0}.document-guide-card input{flex:1;min-width:0;border:1px solid var(--border);border-radius:8px;padding:.65rem;background:var(--bg);color:var(--text)}.document-guide-prompts{display:flex;gap:.4rem;flex-wrap:wrap}.document-guide-prompts button{border:1px solid var(--border);border-radius:999px;background:var(--bg-secondary);padding:.35rem .55rem;font-size:.72rem}.document-guide-card article{margin-top:1rem;padding:1rem;border-left:3px solid var(--accent);background:var(--bg-secondary);font-size:.88rem;line-height:1.55}.presenter-cue{position:absolute;top:2rem;left:2rem;z-index:2;max-width:300px;padding:.8rem 1rem;border:1px solid #ffffff44;border-radius:10px;background:#000a;color:#fff;backdrop-filter:blur(8px)}.presenter-cue span{display:block;margin-bottom:.25rem;color:#ffffffaa;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}.presenter-cue strong{font-size:.8rem;line-height:1.4}@media(max-width:700px){.presenter-cue{display:none}.document-guide-card form{flex-direction:column}}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.a11y-high-contrast{--text:#000;--text-secondary:#111;--text-muted:#222;--bg:#fff;--bg-secondary:#fff;--border:#111;--accent:#700}.a11y-high-contrast a{text-decoration:underline}.a11y-dyslexia body,.a11y-dyslexia button,.a11y-dyslexia input,.a11y-dyslexia textarea{font-family:Verdana,Arial,sans-serif!important;letter-spacing:.025em;word-spacing:.08em;line-height:1.65}.a11y-reduced-motion *,.a11y-reduced-motion *:before,.a11y-reduced-motion *:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
.accessibility-controls{display:none}.accessibility-controls.open,.viewer-accessibility{display:block}.a11y-panel{margin:.7rem 0;padding:.8rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);font-size:.78rem}.a11y-panel strong{display:block;margin-bottom:.45rem}.a11y-panel label,.a11y-row{display:flex;align-items:center;gap:.45rem;margin:.35rem 0}.a11y-row button{border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:5px;padding:.15rem .4rem}.a11y-row output{min-width:3rem;text-align:center}
.viewer-accessibility{position:absolute;right:1rem;top:3.2rem;z-index:75;max-width:240px}.viewer-accessibility .a11y-panel{box-shadow:var(--shadow-md)}.quiz-timer{margin-top:.6rem;padding:.45rem .65rem;border-radius:7px;background:#fff2f2;color:#8b1a1a;font-size:.78rem;font-weight:800;text-align:center}.quiz-confidence{display:flex;gap:.4rem;align-items:center;margin:.8rem 0;border:0;padding:0}.quiz-confidence legend{font-size:.72rem;color:var(--text-muted)}.quiz-confidence button{border:1px solid var(--border);background:var(--bg);border-radius:999px;padding:.25rem .55rem;font-size:.72rem}.quiz-confidence button.active{background:var(--accent);border-color:var(--accent);color:#fff}
@media(max-width:700px){.viewer-accessibility{right:.5rem;top:3rem}.viewer-accessibility .a11y-panel{max-width:220px}.quiz-confidence{flex-wrap:wrap}}

/* Interactive archive refinements */
.gallery-3d{touch-action:none;cursor:grab}.gallery-3d.is-dragging{cursor:grabbing}.gallery-3d.is-dragging .gallery-card{pointer-events:none}.knowledge-graph{position:relative;height:500px;overflow:hidden;background:radial-gradient(ellipse at 50% 46%,#33231d 0%,#161210 54%,#0c0a09 100%);isolation:isolate}.knowledge-graph::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:linear-gradient(rgba(244,218,178,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(244,218,178,.045) 1px,transparent 1px);background-size:26px 26px;mask-image:radial-gradient(circle at center,#000,transparent 78%)}.knowledge-canvas{display:block;position:absolute;inset:0;width:100%;height:100%;outline:none;cursor:grab;touch-action:none}.knowledge-canvas:focus-visible{box-shadow:inset 0 0 0 2px #f2c58a}.graph-overlay{position:absolute;right:1rem;bottom:1rem;z-index:2;display:flex;align-items:center;gap:.5rem}.graph-status{padding:.32rem .55rem;border:1px solid #ffffff20;border-radius:999px;background:#0c0a09bb;color:#e8dccd;font-size:.65rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(8px)}.graph-reset{border:1px solid #ffffff30;border-radius:999px;background:#1c1714dd;color:#f6eee2;padding:.32rem .6rem;font:700 .65rem var(--font-sans);cursor:pointer;backdrop-filter:blur(8px)}.graph-reset:hover{background:#3d271f}.graph-tooltip{position:absolute;z-index:3;max-width:180px;margin:0;padding:.38rem .55rem;border:1px solid #f5d8b744;border-radius:6px;background:#0d0a09e8;color:#fff4e5;font-size:.69rem;line-height:1.35;pointer-events:none;opacity:0;transform:translateY(3px);transition:opacity .12s ease,transform .12s ease}.graph-tooltip.visible{opacity:1;transform:translateY(0)}
@media(max-width:760px){.knowledge-graph{height:390px}.graph-overlay{right:.7rem;bottom:.7rem}.graph-status{display:none}}

/* Main-page interactive collection */
.main-experiences{margin:0 0 1.75rem;padding:1.1rem;border:1px solid color-mix(in srgb,var(--accent) 20%,var(--border));border-radius:10px;background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 5%,var(--bg-card)),var(--bg-card));box-shadow:var(--shadow-sm)}.main-experience-grid{display:grid;gap:1.1rem}.experience-panel{min-width:0}.experience-panel+.experience-panel{padding-top:1.1rem;border-top:1px solid var(--border)}.experience-heading{display:flex;justify-content:space-between;align-items:end;gap:1rem;margin:0 0 .7rem}.experience-heading .section-kicker{margin:0 0 .22rem}.experience-heading h3{font-family:var(--font-serif);font-size:1.35rem;line-height:1.2;color:var(--text)}.experience-heading>p{max-width:19rem;color:var(--text-muted);font-size:.72rem;line-height:1.4;text-align:right}.main-experiences .gallery-3d{height:360px;border-color:color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:8px;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 14%,#fff),#f8f6f4 70%);perspective:1050px}.main-experiences .gallery-card{width:150px;height:218px;padding:.3rem;border-color:#d7c4bf;border-radius:3px;box-shadow:0 14px 30px rgba(86,20,18,.18)}.main-experiences .gallery-card img{height:100%;object-fit:cover}.main-experiences .gallery-card span{display:none}.main-experiences .gallery-hint{bottom:.75rem;left:.75rem;padding:.28rem .5rem;border-radius:999px;background:rgba(255,255,255,.8);color:var(--accent);font-size:.65rem;font-weight:750}.main-experiences .knowledge-graph{height:430px;border-color:color-mix(in srgb,var(--accent) 24%,var(--border));border-radius:8px;background:radial-gradient(ellipse at 50% 45%,#fff 0%,#fbf8f7 54%,#f3eeec 100%)}.main-experiences .knowledge-graph::before{background-image:linear-gradient(rgba(139,26,26,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(139,26,26,.06) 1px,transparent 1px)}.main-experiences .knowledge-canvas:focus-visible{box-shadow:inset 0 0 0 2px var(--accent)}.main-experiences .graph-status{border-color:color-mix(in srgb,var(--accent) 18%,var(--border));background:#fffdfc;color:var(--accent)}.main-experiences .graph-reset{border-color:color-mix(in srgb,var(--accent) 28%,var(--border));background:#fff;color:var(--accent)}.main-experiences .graph-reset:hover{background:var(--accent);color:#fff}.main-experiences .graph-tooltip{border-color:color-mix(in srgb,var(--accent) 28%,var(--border));background:#fff;color:var(--text);box-shadow:var(--shadow-sm)}
@media(max-width:700px){.main-experiences{margin-left:-.15rem;margin-right:-.15rem;padding:.8rem}.experience-heading{display:block}.experience-heading>p{max-width:none;margin-top:.35rem;text-align:left}.main-experiences .gallery-3d{height:310px}.main-experiences .gallery-card{width:118px;height:174px}.main-experiences .gallery-card{transform:rotateY(var(--angle)) translateZ(190px)}.main-experiences .gallery-card:hover{transform:rotateY(var(--angle)) translateZ(235px) scale(1.04)}.main-experiences .knowledge-graph{height:340px}}

/* ===== Reset ===== */
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;overflow-x:clip}
body{font-family:var(--font-sans);background:var(--bg-secondary);color:var(--text);min-height:100vh;line-height:1.6;-webkit-font-smoothing:antialiased;display:flex;flex-direction:column;overflow-x:clip}
a{color:inherit;text-decoration:none}

/* ===== Nav ===== */
.nav-bar{max-width:900px;margin:0 auto;padding:1.25rem 2rem;display:flex;align-items:center;justify-content:space-between}
.nav-link{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;font-weight:500;color:var(--text-secondary);transition:color var(--transition)}
.nav-link:hover{color:var(--text)}
.nav-link svg{transition:transform var(--transition)}
.nav-link:hover svg{transform:translateX(-3px)}

/* ===== Hero ===== */
.hero{text-align:center;padding:1.5rem 2rem 1.5rem;max-width:600px;margin:0 auto}
.hero-title{font-family:var(--font-serif);font-size:2.8rem;font-weight:600;letter-spacing:0;color:var(--text)}
.hero-subtitle{font-size:.95rem;color:var(--text-secondary);margin-top:.3rem}
.hero-link{color:var(--accent);text-decoration:underline;text-underline-offset:2px}

/* ===== Search ===== */
.search-bar-wrap{max-width:900px;margin:0 auto;padding:0 2rem 1.5rem;width:100%}
.search-bar{display:flex;align-items:center;gap:8px;background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);padding:.55rem .85rem;transition:all var(--transition)}
.search-bar:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
.search-icon{color:var(--text-muted);flex-shrink:0}
.search-input{flex:1;border:none;background:none;font-family:var(--font-sans);font-size:.88rem;color:var(--text);outline:none}
.search-input::placeholder{color:var(--text-muted)}
.search-clear{cursor:pointer;color:var(--text-muted);font-family:var(--font-sans);font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;background:transparent;border:0;border-radius:5px;padding:.18rem .35rem}
.search-clear:hover{color:var(--text)}
.filter-shell{margin-top:.65rem}
.filter-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem}
.filter-toggle{display:inline-flex}
.filter-toggle,.filter-reset{font-family:var(--font-sans);font-size:.72rem;font-weight:800;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);border-radius:7px;padding:.42rem .7rem;cursor:pointer;transition:all var(--transition);align-items:center;gap:.42rem}
.filter-reset{display:inline-flex}
.filter-toggle:hover,.filter-reset:hover{color:var(--text);border-color:var(--border-hover);box-shadow:var(--shadow-sm)}
.filter-toggle span{font-size:.65rem;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border);border-radius:999px;min-width:1.35rem;padding:0 .35rem;text-align:center}
.filter-shell.filters-open .filter-toggle{background:var(--accent);border-color:var(--accent);color:#fff}
.filter-shell.filters-open .filter-toggle span{background:#fff;border-color:#fff;color:var(--accent)}
.filter-panel{display:none;margin-top:.55rem;padding:.7rem;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow-sm)}
.filter-shell.filters-open .filter-panel{display:block}
.collection-filters{display:flex;flex-wrap:wrap;gap:.45rem}
.collection-filter-btn{font-family:var(--font-sans);font-size:.72rem;font-weight:800;color:var(--text-secondary);background:var(--bg-card);border:1px solid var(--border);padding:.34rem .7rem;border-radius:7px;cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center;gap:.38rem}
.collection-filter-btn:hover{color:var(--text);border-color:var(--border-hover);box-shadow:var(--shadow-sm)}
.collection-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.collection-filter-btn span{font-size:.65rem;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border);border-radius:999px;min-width:1.35rem;padding:0 .35rem;text-align:center}
.collection-filter-btn.active span{color:var(--accent);background:#fff;border-color:#fff}
.tag-filters{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.65rem;padding-top:.65rem;border-top:1px solid var(--border)}
.tag-filter-btn{font-family:var(--font-sans);font-size:.7rem;font-weight:650;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid transparent;padding:.28rem .62rem;border-radius:100px;cursor:pointer;transition:all var(--transition);display:inline-flex;align-items:center}
.tag-filter-btn:hover{border-color:var(--border-hover);background:var(--bg-card);color:var(--text)}
.tag-filter-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}
.card-tag::before{content:"";width:.42rem;height:.42rem;border-radius:999px;background:var(--tag-color,var(--accent));box-shadow:0 0 0 2px color-mix(in srgb,var(--tag-color,var(--accent)) 18%,transparent)}
.filter-summary{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap;margin-top:.65rem;font-size:.74rem;color:var(--text-muted)}
.filter-summary strong{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.filter-chip{display:inline-flex;align-items:center;gap:.35rem;background:var(--bg-card);border:1px solid var(--border);border-radius:999px;color:var(--text-secondary);font-size:.72rem;font-weight:700;padding:.24rem .6rem}
.filter-chip span{color:var(--accent)}
.search-status{min-height:1.1rem;margin-top:.55rem;font-size:.76rem;color:var(--text-muted)}
.search-status.loading{color:var(--accent)}
.search-status.warning{color:#b45309}

/* ===== Skeleton ===== */
.skeleton-card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;display:flex;animation:fadeIn .35s ease both}
.skeleton-card.portrait{flex-direction:row}
.skeleton-card.portrait .skel-thumb{width:120px;flex-shrink:0;background:var(--bg-secondary);border-right:1px solid var(--border)}
.skeleton-card.landscape{flex-direction:column}
.skeleton-card.landscape .skel-thumb{width:100%;height:160px;background:var(--bg-secondary);border-bottom:1px solid var(--border)}
.skel-body{flex:1;padding:1.2rem 1.5rem;display:flex;flex-direction:column;gap:0.6rem}
.skel-line{height:12px;border-radius:6px;background:linear-gradient(90deg,var(--border) 25%,var(--bg-secondary) 50%,var(--border) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite}
.skel-sm{width:60px;height:18px;border-radius:100px}.skel-md{width:50%}.skel-lg{width:80%;height:16px}.skel-full{width:100%}
.skel-btn{width:70px;height:28px;border-radius:var(--radius-sm)}
.skel-tags{display:flex;gap:.3rem}.skel-actions{display:flex;gap:.5rem;margin-top:0.4rem;padding-top:.75rem;border-top:1px solid var(--border)}
@keyframes shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* ===== Papers Section ===== */
[hidden]{display:none!important}
.search-bar-wrap,.nav-bar{max-width:1540px}
.papers-section{max-width:1540px;margin:0 auto;padding:0 2rem 4rem;flex:1;width:100%}
.section-kicker,.papers-heading{font-size:.76rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-weight:700;margin-bottom:.85rem}
.section-heading-row{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.85rem}
.section-heading-row h2{font-family:var(--font-serif);font-size:1.35rem;line-height:1.2;color:var(--text);letter-spacing:0}
.section-heading-row p{font-size:.84rem;color:var(--text-secondary);line-height:1.55}
.continue-section{margin-bottom:1.8rem;padding:1rem;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--bg-card)),var(--bg-card));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));border-radius:10px;box-shadow:var(--shadow-sm)}
.continue-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:1rem;margin-bottom:.8rem}.continue-heading .section-kicker{margin:0 0 .18rem}.continue-heading h2{font-family:var(--font-serif);font-size:1.25rem;color:var(--text)}.continue-heading>span{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
.continue-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.continue-card{display:flex;align-items:flex-end;justify-content:space-between;gap:.8rem;padding:.8rem;background:color-mix(in srgb,var(--bg-card) 92%,transparent);border:1px solid var(--border);border-radius:8px}.continue-card-copy{min-width:0;flex:1}.continue-card-copy>span{font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--accent)}.continue-card h3{font-family:var(--font-serif);font-size:1rem;line-height:1.25;color:var(--text);margin:.1rem 0 .55rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.continue-card .btn{flex-shrink:0;white-space:nowrap}
.continue-progress+.continue-progress{margin-top:.4rem}.continue-progress>div:first-child{display:grid;grid-template-columns:auto 1fr auto;gap:.4rem;align-items:center;font-size:.66rem;color:var(--text-muted)}.continue-progress strong{color:var(--text-secondary)}.continue-progress b{color:var(--accent)}.continue-track{height:4px;margin-top:.22rem;background:var(--bg-secondary);border-radius:999px;overflow:hidden}.continue-track span{display:block;height:100%;background:var(--accent);border-radius:999px}
.featured-section{margin-bottom:1.6rem}
.project-bundles-section{margin-bottom:1.65rem}
.project-bundle-grid{display:grid;grid-template-columns:1fr;gap:.85rem}
.project-bundle-card{display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.35fr) auto;gap:1rem;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:1rem;box-shadow:var(--shadow-sm)}
.project-bundle-copy span,.project-bundle-actions span{font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--accent)}
.project-bundle-copy h3{font-family:var(--font-serif);font-size:1.3rem;line-height:1.18;color:var(--text);letter-spacing:0}
.project-bundle-copy p{font-size:.82rem;color:var(--text-secondary);line-height:1.55;margin-top:.25rem}
.project-bundle-actions{display:flex;flex-direction:column;gap:.45rem;align-items:flex-end}
.library-controls{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 0 1.45rem;padding:.5rem .55rem;background:color-mix(in srgb,var(--bg-secondary) 78%,transparent);border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:10px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:0 12px 30px rgba(0,0,0,.04)}
.library-tabs{display:inline-flex;align-items:center;gap:.25rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.25rem;box-shadow:var(--shadow-sm)}
.library-tools{display:flex;align-items:center;gap:.65rem;min-width:0}
.view-toggle{display:inline-flex;align-items:center;gap:.2rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.2rem;box-shadow:var(--shadow-sm)}
.view-toggle-btn{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:0;border-radius:6px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:background var(--transition),color var(--transition)}
.view-toggle-btn:hover{background:var(--bg-secondary);color:var(--text)}
.view-toggle-btn.active{background:var(--accent);color:#fff}
.library-tab{font-family:var(--font-sans);font-size:.78rem;font-weight:700;color:var(--text-secondary);background:transparent;border:0;border-radius:6px;padding:.45rem .72rem;cursor:pointer;display:inline-flex;align-items:center;gap:.45rem;transition:background var(--transition),color var(--transition)}
.library-tab span{font-size:.66rem;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border);border-radius:999px;min-width:1.6rem;padding:.02rem .38rem;text-align:center}
.library-tab:hover{color:var(--text);background:var(--bg-secondary)}
.library-tab.active{background:var(--accent);color:#fff}
.library-tab.active span{color:var(--accent);background:#fff;border-color:#fff}
.sort-control{display:inline-flex;align-items:center;gap:.45rem;color:var(--text-muted);font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;white-space:nowrap}
.sort-control select{appearance:none;-webkit-appearance:none;font-family:var(--font-sans);font-size:.78rem;font-weight:700;color:var(--text);background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.48rem 2rem .48rem .75rem;cursor:pointer;box-shadow:var(--shadow-sm);background-image:linear-gradient(45deg,transparent 50%,var(--text-muted) 50%),linear-gradient(135deg,var(--text-muted) 50%,transparent 50%);background-position:calc(100% - 14px) 54%,calc(100% - 9px) 54%;background-size:5px 5px,5px 5px;background-repeat:no-repeat;transition:border-color var(--transition),box-shadow var(--transition)}
.sort-control select:hover,.sort-control select:focus{border-color:var(--border-hover);box-shadow:var(--shadow-md);outline:none}
.presentations-heading{margin-top:2.4rem;padding-top:1.7rem;border-top:1px solid var(--border)}
.papers-grid{display:grid;grid-template-columns:1fr;gap:1.25rem}
#papers-grid{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
#presentations-grid{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}

/* ===== Card ===== */
.paper-card{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;overflow:hidden;box-shadow:var(--shadow-sm);transition:box-shadow var(--transition),border-color var(--transition),transform var(--transition);display:flex;flex-direction:column;animation:fadeIn .35s ease both}
.paper-card:hover{box-shadow:var(--shadow-md);border-color:var(--border-hover);transform:translateY(-2px)}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.featured-card{display:grid;grid-template-columns:minmax(330px,42%) 1fr;min-height:330px}

.card-thumb-wrap{position:relative;background:linear-gradient(165deg,color-mix(in srgb,var(--accent) 8%,transparent),transparent 38%),linear-gradient(135deg,var(--bg-secondary),var(--bg-card));display:flex;align-items:center;justify-content:center;overflow:hidden;border-bottom:1px solid var(--border);min-height:230px;padding:1.2rem}
.kind-paper .card-thumb-wrap, .kind-reviewer .card-thumb-wrap{min-height:270px}
.kind-presentation .card-thumb-wrap{min-height:215px}
.featured-card .card-thumb-wrap{min-height:100%;border-bottom:0;border-right:1px solid var(--border)}
.thumb-frame{display:flex;align-items:center;justify-content:center;width:100%;height:100%;filter:drop-shadow(0 14px 18px rgba(0,0,0,.12));perspective:900px}
.kind-paper .thumb-frame, .kind-reviewer .thumb-frame{max-width:220px}
.kind-presentation .thumb-frame{max-width:520px}
.featured-card.kind-paper .thumb-frame, .featured-card.kind-reviewer .thumb-frame{max-width:260px}
.featured-card.kind-presentation .thumb-frame{max-width:610px}
.thumb-surface{position:relative;width:100%;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:5px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(255,255,255,.7);transform-origin:center left;transition:transform .28s ease,box-shadow .28s ease}
.thumb-surface::before{content:"";position:absolute;inset:0;z-index:4;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:translateX(-120%);animation:thumbLoad 1.25s ease infinite;pointer-events:none;opacity:.9}
.paper-card.thumb-loaded .thumb-surface::before{opacity:0;animation:none}
@keyframes thumbLoad{to{transform:translateX(120%)}}
.paper-card:hover .thumb-surface{transform:rotateX(1.5deg) rotateY(-3deg) translateY(-2px)}
.kind-paper .thumb-surface, .kind-reviewer .thumb-surface{aspect-ratio:8.5/11}
.kind-presentation .thumb-surface{aspect-ratio:16/9}
.thumb-img{position:absolute;inset:0;width:100%!important;height:100%!important;object-fit:contain;background:#fff;opacity:0;transform:scale(1);transition:opacity .28s ease,transform .28s ease}
.thumb-primary.loaded{opacity:1}
.thumb-secondary{opacity:0}
.has-thumb.thumb-loaded .thumb-fallback{opacity:0}
.has-thumb:not(.thumb-loaded) .thumb-fallback{opacity:1}
.has-alt-thumb:hover .thumb-primary{opacity:0}
.has-alt-thumb:hover .thumb-secondary.loaded{opacity:1;transform:translateX(2%) rotateY(-2deg) scale(1.025)}
.paper-card:not(.has-alt-thumb):hover .thumb-primary.loaded{transform:scale(1.025)}
.thumb-fallback{position:absolute;inset:0;display:flex;flex-direction:column;padding:9%;background:#fff;color:#1a1a1a;transition:opacity .25s ease}
.kind-presentation .thumb-fallback{padding:7%}
.cover-rule{width:38%;height:4px;background:var(--accent);border-radius:99px;margin-bottom:10%}
.cover-type{font-size:.62rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);margin-bottom:7%}
.cover-title{font-family:var(--font-serif);font-size:clamp(1rem,2vw,1.42rem);font-weight:700;line-height:1.18;color:#1a1a1a;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.kind-presentation .cover-title{-webkit-line-clamp:2;font-size:clamp(.9rem,1.55vw,1.25rem)}
.cover-subject{font-size:.68rem;font-weight:600;color:#5a5a6a;margin-top:auto;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.cover-lines{display:flex;flex-direction:column;gap:7px;margin-top:10%}
.cover-lines span{height:5px;border-radius:999px;background:#e1ddd5}
.cover-lines span:nth-child(2){width:82%}.cover-lines span:nth-child(3){width:64%}
.thumb-badges{position:absolute;left:.85rem;right:.85rem;bottom:.85rem;display:flex;justify-content:space-between;gap:.5rem;pointer-events:none}
.thumb-badge{font-size:.64rem;font-weight:800;line-height:1;color:#1a1a1a;background:rgba(255,255,255,.92);border:1px solid rgba(0,0,0,.08);box-shadow:var(--shadow-sm);border-radius:999px;padding:.42rem .55rem;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.thumb-badge-type{color:var(--accent)}
.thumb-actions{position:absolute;left:.85rem;right:.85rem;top:.85rem;display:flex;justify-content:flex-end;gap:.35rem;opacity:0;transform:translateY(-4px);transition:opacity var(--transition),transform var(--transition);z-index:6}
.paper-card:hover .thumb-actions,.paper-card:focus-within .thumb-actions{opacity:1;transform:translateY(0)}
.thumb-actions a{font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--text);background:rgba(255,255,255,.94);border:1px solid rgba(0,0,0,.08);border-radius:999px;padding:.34rem .55rem;box-shadow:var(--shadow-sm);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.thumb-actions a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 28%,var(--border))}

.card-body{flex:1;padding:1.2rem 1.25rem;display:flex;flex-direction:column;min-width:0}
.featured-card .card-body{padding:1.65rem 1.8rem}
.card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:0}
.card-tags{display:flex;flex-wrap:wrap;gap:.35rem}
.card-updated{display:inline-flex;align-items:center;gap:4px;font-size:.65rem;font-weight:600;color:var(--text-muted);background:var(--bg-secondary);border:1px solid var(--border);padding:.2rem .55rem;border-radius:100px;white-space:nowrap;flex-shrink:0}
.card-tag,.featured-pill{font-family:var(--font-sans);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--tag-color,var(--accent));background:color-mix(in srgb,var(--tag-color,var(--accent)) 10%,transparent);border:0;padding:.2rem .55rem;border-radius:100px;display:inline-flex;align-items:center;gap:.35rem}
.card-tag{cursor:pointer}
.card-tag:hover{background:color-mix(in srgb,var(--tag-color,var(--accent)) 12%,transparent)}
.featured-pill{background:var(--accent);color:#fff}
.project-chip{font-family:var(--font-sans);font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 22%,var(--border));padding:.18rem .55rem;border-radius:100px;display:inline-flex;align-items:center;gap:.35rem}
.project-chip span{width:.42rem;height:.42rem;border-radius:999px;background:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 18%,transparent)}
.project-chip:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.card-title{font-family:var(--font-serif);font-size:1.17rem;font-weight:700;line-height:1.28;color:var(--text);margin-bottom:.25rem;letter-spacing:0}
.featured-card .card-title{font-size:1.72rem}
.card-subtitle{font-size:.8rem;font-style:italic;color:var(--text-muted);margin-bottom:.65rem;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.featured-card .card-subtitle{-webkit-line-clamp:3;font-size:.88rem}
.card-meta{display:flex;flex-wrap:wrap;gap:.45rem 1rem;font-size:.73rem;color:var(--text-secondary);margin-bottom:.65rem}
.card-meta span{display:flex;align-items:center;gap:4px;min-width:0}
.card-meta svg{width:13px;height:13px;stroke:var(--text-muted);flex-shrink:0}
.card-update-bar{display:flex;align-items:center;gap:.38rem;min-width:0;margin:-.1rem 0 .8rem;padding:.42rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);color:var(--text-muted);font-size:.66rem;line-height:1.2}.card-update-bar svg{width:12px;height:12px;flex:0 0 auto}.card-update-bar span{font-weight:750;text-transform:uppercase;letter-spacing:.045em}.card-update-bar time{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-weight:650}
.card-abstract{font-size:.84rem;color:var(--text-secondary);line-height:1.6;flex:1;margin-bottom:1rem;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.featured-card .card-abstract{-webkit-line-clamp:5;font-size:.92rem}
.card-search-hit{font-size:.78rem;line-height:1.55;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.55rem .65rem;margin-bottom:.8rem}
.card-search-hit span{font-weight:800;color:var(--accent);text-transform:uppercase;font-size:.64rem;letter-spacing:.06em;margin-right:.3rem}
.card-actions{display:flex;gap:.5rem;flex-wrap:wrap;padding-top:.85rem;border-top:1px solid var(--border)}
.card-cite-btn{white-space:nowrap}

.connection-string{position:relative;display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:.6rem;align-items:stretch}
.connection-string::before{content:"";position:absolute;left:8%;right:8%;top:18px;height:2px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 45%,var(--border)),transparent)}
.string-node{position:relative;z-index:1;display:flex;flex-direction:column;gap:.18rem;min-width:0;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.55rem .6rem .6rem;color:var(--text);box-shadow:var(--shadow-sm)}
.string-node:hover,.string-node.active{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 5%,var(--bg-card))}
.string-dot{width:13px;height:13px;border-radius:999px;background:var(--accent);border:3px solid var(--bg-card);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 40%,var(--border));margin-bottom:.15rem}
.string-node small{font-size:.58rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
.string-node strong{font-family:var(--font-serif);font-size:.86rem;line-height:1.18;color:var(--text);letter-spacing:0;overflow-wrap:anywhere}
.mini-string .string-node{padding:.48rem .5rem}.mini-string .string-node strong{font-size:.8rem}

.compact-view .featured-section{display:none!important}
.compact-view #papers-grid,.compact-view #presentations-grid{grid-template-columns:1fr}
.compact-view .paper-card{display:grid;grid-template-columns:96px 1fr;min-height:118px}
.compact-view .card-thumb-wrap{min-height:100%;padding:.55rem;border-bottom:0;border-right:1px solid var(--border)}
.compact-view .kind-paper .card-thumb-wrap,.compact-view .kind-presentation .card-thumb-wrap,.compact-view .kind-reviewer .card-thumb-wrap{min-height:100%}
.compact-view .thumb-frame{max-width:70px!important}
.compact-view .card-body{padding:.85rem 1rem}
.compact-view .card-header{margin-bottom:.4rem}
.compact-view .card-title{font-size:1rem;margin-bottom:.15rem}
.compact-view .card-subtitle,.compact-view .card-abstract,.compact-view .thumb-badges{display:none}
.compact-view .card-meta{margin-bottom:.4rem}
.compact-view .card-actions{padding-top:.55rem}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:5px;font-family:var(--font-sans);font-size:.78rem;font-weight:600;padding:.45rem .9rem;border-radius:var(--radius-sm);cursor:pointer;border:none;transition:all var(--transition);text-decoration:none}
.btn-accent{background:var(--accent);color:#fff}.btn-accent:hover{background:var(--accent-hover)}
.btn-ghost{background:transparent;color:var(--text-secondary);border:1px solid var(--border)}
.btn-ghost:hover{color:var(--text);border-color:var(--border-hover);background:var(--bg-secondary)}
.btn.copied{background:var(--accent);border-color:var(--accent);color:#fff}
[data-tooltip]{position:relative}
[data-tooltip]::after{content:attr(data-tooltip);position:absolute;left:50%;top:calc(100% + 8px);transform:translateX(-50%) translateY(-3px);z-index:120;max-width:220px;white-space:nowrap;background:var(--text);color:var(--bg);border:1px solid color-mix(in srgb,var(--bg) 20%,transparent);border-radius:6px;padding:.32rem .48rem;font-size:.68rem;font-weight:700;line-height:1.2;opacity:0;pointer-events:none;transition:opacity .16s ease,transform .16s ease;box-shadow:var(--shadow-md)}
[data-tooltip]:hover::after,[data-tooltip]:focus-visible::after{opacity:1;transform:translateX(-50%) translateY(0)}

/* Command palette */
.command-palette{display:none;position:fixed;inset:0;z-index:90;align-items:flex-start;justify-content:center;padding:10vh 1rem 1rem}
.command-palette.active{display:flex}
.palette-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.44);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.palette-panel{position:relative;width:min(620px,100%);background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:0 24px 70px rgba(0,0,0,.28);overflow:hidden}
.palette-input-wrap{display:flex;align-items:center;gap:.7rem;padding:.75rem;border-bottom:1px solid var(--border);background:var(--bg-card)}
.palette-input-wrap span{font-size:.66rem;font-weight:800;color:var(--text-muted);border:1px solid var(--border);border-radius:5px;padding:.18rem .36rem;background:var(--bg-secondary)}
.palette-input-wrap input{flex:1;min-width:0;border:0;background:transparent;color:var(--text);font-family:var(--font-sans);font-size:.95rem;outline:none}
.palette-results{max-height:420px;overflow:auto;padding:.45rem}
.palette-hints{display:flex;gap:.7rem;flex-wrap:wrap;padding:.45rem .75rem;border-bottom:1px solid var(--border);font-size:.68rem;color:var(--text-muted);background:var(--bg)}
.palette-hints span{display:inline-flex;align-items:center;gap:.25rem}
.palette-hints kbd,.palette-result kbd{font-family:var(--font-sans);font-size:.62rem;font-weight:800;color:var(--text-secondary);background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px;padding:.08rem .32rem}
.palette-result{width:100%;display:grid;grid-template-columns:auto 1fr auto;grid-template-areas:"kind title hint" "kind meta hint";column-gap:.75rem;align-items:center;text-align:left;border:1px solid transparent;background:transparent;color:var(--text);border-radius:7px;padding:.7rem .75rem;cursor:pointer;transition:background var(--transition),border-color var(--transition),transform var(--transition)}
.palette-result:hover,.palette-result.active{background:var(--bg-secondary);border-color:var(--border);transform:translateY(-1px)}
.palette-result span{grid-area:kind;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border-radius:999px;padding:.22rem .52rem}
.palette-result strong{grid-area:title;font-family:var(--font-serif);font-size:1rem;line-height:1.25;color:var(--text)}
.palette-result small{grid-area:meta;color:var(--text-muted);font-size:.74rem}
.palette-result kbd{grid-area:hint;align-self:center}
.palette-empty{padding:1.4rem;text-align:center;color:var(--text-muted);font-size:.86rem}

/* ===== Detail Page ===== */
.detail-header .nav-bar{padding-bottom:.75rem}
.detail-shell{max-width:1080px;width:100%;margin:0 auto;padding:1rem 2rem 4rem;flex:1}
.detail-loading{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-muted);font-size:.85rem}
.detail-layout{display:grid;grid-template-columns:minmax(280px,38%) 1fr;gap:1.35rem;align-items:start}
.detail-preview{position:sticky;top:1rem;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);padding:1rem}
.detail-thumb{position:relative;display:flex;align-items:center;justify-content:center;min-height:420px;background:linear-gradient(135deg,var(--bg-secondary),var(--bg-card));border-radius:7px;overflow:hidden;padding:1.2rem}
.detail-thumb.portrait .detail-thumb-img,.detail-thumb.portrait .detail-fallback{width:auto;max-width:78%;height:auto;max-height:92%;aspect-ratio:8.5/11}
.detail-thumb.landscape{min-height:290px}
.detail-thumb.landscape .detail-thumb-img,.detail-thumb.landscape .detail-fallback{width:100%;height:auto;aspect-ratio:16/9}
.detail-thumb-img{display:block;position:relative;z-index:1;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:4px;box-shadow:0 14px 22px rgba(0,0,0,.14);object-fit:contain}
.detail-fallback{position:relative;z-index:0;background:#fff;border:1px solid rgba(0,0,0,.12);border-radius:4px;box-shadow:0 14px 22px rgba(0,0,0,.14)}
.detail-thumb.has-thumb .detail-fallback{display:none}
.detail-thumb-img+.thumb-badges{z-index:2}
.preview-updates{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--border)}.preview-updates .section-kicker{margin-bottom:.55rem}.preview-updates .changelog-list{gap:.45rem}.preview-updates .changelog-item{grid-template-columns:72px 1fr;gap:.5rem;padding:.6rem}.preview-updates .changelog-item strong{font-size:.78rem}.preview-updates .changelog-item p{font-size:.7rem!important}.preview-updates .changelog-item time{font-size:.6rem}
.detail-content{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);padding:1.45rem}
.detail-tags{display:flex;flex-wrap:wrap;gap:.35rem;margin-bottom:.9rem}
.detail-kind{font-size:.75rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent);margin-bottom:.35rem}
.detail-title{font-family:var(--font-serif);font-size:2.05rem;line-height:1.15;font-weight:700;letter-spacing:0;color:var(--text);margin-bottom:.45rem}
.detail-subtitle{font-size:.95rem;color:var(--text-muted);font-style:italic;margin-bottom:1rem}
.detail-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.6rem;margin:1rem 0}
.detail-meta-item{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.65rem .75rem;min-width:0}
.detail-meta-item span{display:block;font-size:.64rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin-bottom:.12rem}
.detail-meta-item strong{display:block;font-size:.82rem;line-height:1.35;color:var(--text);font-weight:650;overflow-wrap:anywhere}
.detail-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0 1.2rem;padding-bottom:1.1rem;border-bottom:1px solid var(--border)}
.detail-block{margin-top:1.15rem}
.detail-block h2,.citation-header h2{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:var(--text-muted);margin-bottom:.55rem}
.detail-block p{font-size:.92rem;color:var(--text-secondary);line-height:1.75}
.project-link-block{border-top:1px solid var(--border);padding-top:1rem}
.changelog-block{border-top:1px solid var(--border);padding-top:1rem}
.changelog-list{display:grid;gap:.55rem}
.changelog-item{display:grid;grid-template-columns:96px 1fr;gap:.75rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.7rem}
.changelog-item time{font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}
.changelog-item strong{display:block;font-size:.86rem;color:var(--text);line-height:1.25}
.changelog-item p{font-size:.78rem!important;line-height:1.5!important;color:var(--text-secondary)!important;margin-top:.12rem}
.change-log-block{scroll-margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}
.change-log-block>details>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.85rem 1rem;cursor:pointer;list-style:none;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px}
.change-log-block>details>summary::-webkit-details-marker,.change-entry>summary::-webkit-details-marker{display:none}
.change-log-block>details>summary strong{display:block;color:var(--text);font-size:.86rem}
.change-log-block>details>summary small{display:block;color:var(--text-muted);font-size:.72rem;margin-top:.1rem}
.change-log-count{flex:none;border-radius:999px;background:color-mix(in srgb,var(--accent) 9%,var(--bg));color:var(--accent);font-size:.69rem;font-weight:800;padding:.22rem .55rem}
.change-timeline{display:grid;gap:.7rem;margin:1rem 0 0 .45rem;padding-left:1.15rem;border-left:2px solid color-mix(in srgb,var(--accent) 25%,var(--border))}
.change-entry{position:relative;min-width:0;border:1px solid var(--border);border-radius:9px;background:var(--bg-card);box-shadow:var(--shadow-sm)}
.change-entry::before{content:"";position:absolute;width:.65rem;height:.65rem;border-radius:50%;background:var(--accent);left:-1.52rem;top:1.15rem;box-shadow:0 0 0 4px var(--bg-card)}
.change-entry>summary{display:grid;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:.55rem;padding:.8rem;cursor:pointer;list-style:none}
.change-entry time{font-size:.68rem;font-weight:800;color:var(--accent)}
.change-entry strong{font-size:.8rem;line-height:1.35;color:var(--text)}
.change-entry-count{font-size:.65rem;color:var(--text-muted);white-space:nowrap}
.change-entry ul{margin:0 .8rem .85rem 1.75rem;display:grid;gap:.42rem}
.change-entry li{color:var(--text-secondary);font-size:.76rem;line-height:1.5;overflow-wrap:anywhere}
.change-entry code{font-size:.9em;padding:.08rem .25rem;border-radius:4px;background:var(--bg-secondary);color:var(--text)}
@media(max-width:700px){.change-entry>summary{grid-template-columns:1fr auto}.change-entry time{grid-column:1/-1}.change-entry-count{grid-column:2;grid-row:2}.change-log-block>details>summary{align-items:start}}
.citation-header{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:.6rem}
.citation-header h2{margin-bottom:0}
.citation-actions{display:flex;gap:.4rem;flex-wrap:wrap;justify-content:flex-end}
.citation-tabs{display:inline-flex;gap:.2rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.2rem;margin-bottom:.65rem}
.citation-tab{font-family:var(--font-sans);border:0;background:transparent;color:var(--text-secondary);font-size:.72rem;font-weight:800;border-radius:6px;padding:.34rem .65rem;cursor:pointer}
.citation-tab.active{background:var(--accent);color:#fff}
.citation-text{background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.85rem;overflow-wrap:anywhere;white-space:pre-wrap}
.related-section{margin-top:1.45rem}
.related-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:.85rem}
.related-card{display:grid;grid-template-columns:64px 1fr;gap:.75rem;align-items:center;background:var(--bg-card);border:1px solid var(--border);border-radius:8px;padding:.75rem;box-shadow:var(--shadow-sm);transition:all var(--transition)}
.related-card:hover{border-color:var(--border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}
.related-thumb{position:relative;width:64px;aspect-ratio:8.5/11;border-radius:5px;overflow:hidden;background:var(--bg-secondary);border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.related-thumb.landscape{aspect-ratio:16/9}
.related-thumb img{width:100%;height:100%;object-fit:cover;display:block;background:#fff}
.related-copy{min-width:0;display:flex;flex-direction:column;gap:.16rem}
.related-card span{font-size:.65rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
.related-card strong{font-family:var(--font-serif);font-size:1.05rem;line-height:1.25;color:var(--text)}
.related-card small{font-size:.76rem;color:var(--text-muted)}

/* Project bundle page */
.project-shell{max-width:1080px;width:100%;margin:0 auto;padding:1rem 2rem 4rem;flex:1}
.project-layout{display:grid;gap:1rem}
.project-hero-panel,.project-string-panel,.project-documents,.project-changelog{background:var(--bg-card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-sm);padding:1.25rem}
.project-hero-panel h1{font-family:var(--font-serif);font-size:2.3rem;line-height:1.1;color:var(--text);letter-spacing:0}
.project-hero-panel>p:not(.section-kicker){max-width:48rem;color:var(--text-secondary);font-size:.96rem;line-height:1.7;margin-top:.55rem}
.project-meta-row{display:flex;flex-wrap:wrap;gap:.45rem;margin-top:1rem}
.project-meta-row span{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,transparent);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:999px;padding:.25rem .6rem}
.project-document-grid{display:grid;grid-template-columns:1fr;gap:.85rem}
.project-document-card{display:grid;grid-template-columns:120px 1fr;gap:1rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;padding:.85rem}
.project-document-thumb{display:block;width:120px;aspect-ratio:8.5/11;border-radius:6px;overflow:hidden;background:#fff;border:1px solid var(--border);box-shadow:var(--shadow-sm)}
.project-document-thumb.landscape{aspect-ratio:16/9}
.project-document-thumb img{width:100%;height:100%;object-fit:cover;display:block}
.project-document-card span{font-size:.66rem;font-weight:850;text-transform:uppercase;letter-spacing:.06em;color:var(--accent)}
.project-document-card h2{font-family:var(--font-serif);font-size:1.2rem;line-height:1.2;color:var(--text);letter-spacing:0;margin:.1rem 0 .25rem}
.project-document-card p{font-size:.84rem;color:var(--text-secondary);line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.project-document-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.7rem}

/* Empty */
.empty-state{text-align:center;padding:4rem 2rem;color:var(--text-muted)}
.empty-icon{margin-bottom:.75rem;stroke:var(--text-muted)}
.not-found-shell{max-width:720px;margin:0 auto;padding:5rem 2rem;min-height:62vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:1rem}
.not-found-kicker{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.not-found-title{font-family:var(--font-serif);font-size:2.35rem;line-height:1.1;letter-spacing:0;color:var(--text)}
.not-found-text{max-width:34rem;color:var(--text-secondary);font-size:.95rem}
.not-found-actions{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center;margin-top:.4rem}

/* Footer */
.site-footer{text-align:center;padding:2rem;font-size:.78rem;color:var(--text-muted);border-top:1px solid var(--border);background:var(--bg)}
.site-footer a{color:var(--text-secondary);text-decoration:underline;text-underline-offset:2px}

/* ===== VIEWER ===== */
.viewer-body{display:flex;flex-direction:column;height:100vh;height:100dvh;overflow:hidden;background:var(--bg-secondary)}
.progress-bar{position:fixed;top:0;left:0;height:3px;width:0;background:var(--accent);z-index:50;transition:width .15s linear}

/* Toolbar */
.viewer-toolbar{display:flex;align-items:center;gap:.5rem;padding:.45rem .75rem;background:var(--bg);border-bottom:1px solid var(--border);flex-shrink:0;z-index:20;overflow-x:auto;scrollbar-width:none}
.viewer-toolbar::-webkit-scrollbar{display:none}
.viewer-back{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;font-weight:500;color:var(--text-secondary);white-space:nowrap;flex-shrink:0}
.viewer-back:hover{color:var(--text)}
.viewer-title{flex:1;font-size:.8rem;font-weight:600;color:var(--text);text-align:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.toolbar-controls{display:flex;align-items:center;gap:.25rem;flex-shrink:0}
.viewer-toolbar-group{display:inline-flex;align-items:center;gap:.22rem;padding:.1rem .18rem;border:1px solid color-mix(in srgb,var(--border) 70%,transparent);border-radius:8px;background:color-mix(in srgb,var(--bg-secondary) 42%,transparent)}
.tb-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:transparent;border:1px solid transparent;color:var(--text-secondary);padding:.28rem;border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition);font-family:var(--font-sans);font-size:.78rem;font-weight:600;text-decoration:none}
.tb-btn:hover{background:var(--bg-secondary);color:var(--text);border-color:var(--border)}
.tb-btn.active{background:var(--bg-secondary);color:var(--accent);border-color:var(--border)}
.tb-btn[aria-pressed="true"]{background:color-mix(in srgb,var(--accent) 13%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}
.tb-btn-accent{background:var(--accent);color:#fff !important;border-color:var(--accent);padding:.28rem .55rem}
.tb-btn-accent:hover{background:var(--accent-hover);border-color:var(--accent-hover)}
.viewer-tools-menu{position:fixed;right:4.35rem;top:3.25rem;z-index:76;min-width:230px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);padding:.35rem;display:flex;flex-direction:column;gap:.15rem}
.viewer-tools-menu[hidden]{display:none}
.tool-menu-item{width:100%;display:flex;align-items:center;gap:.55rem;border:0;background:transparent;color:var(--text-secondary);border-radius:6px;padding:.55rem .65rem;text-align:left;font-family:var(--font-sans);font-size:.82rem;font-weight:650;cursor:pointer;text-decoration:none}
.tool-menu-item svg{width:16px;height:16px;flex-shrink:0}
.tool-menu-item:hover,.tool-menu-item.active,.tool-menu-item[aria-pressed="true"]{background:var(--bg-secondary);color:var(--text)}
.quiz-launch-btn{color:var(--accent);font-weight:750}
.quiz-launch-btn:hover{color:var(--accent)}

/* Zoom */
.zoom-controls{display:inline-flex;align-items:center;border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}
.zoom-controls .tb-btn{border:none;border-radius:0;padding:.28rem .32rem}
.zoom-level{font-size:.7rem;font-weight:600;color:var(--text);padding:0 .25rem;min-width:2.8em;text-align:center;user-select:none}

/* Page jump */
.page-jump{display:inline-flex;align-items:center;gap:.32rem;min-width:5.8rem;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.23rem .48rem}
.page-jump-input{width:2.8ch;border:none;background:none;font-family:var(--font-sans);font-size:.75rem;font-weight:700;color:var(--text);text-align:right;outline:none;-moz-appearance:textfield}
.page-jump-input::-webkit-inner-spin-button{-webkit-appearance:none}
.page-jump-total{font-size:.72rem;font-weight:600;color:var(--text-muted);white-space:nowrap}

/* PDF search */
.pdf-search{display:inline-flex;align-items:center;gap:4px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:.12rem .35rem;max-width:0;overflow:hidden;transition:max-width .25s ease,padding .25s ease}
.pdf-search.open{max-width:180px;padding:.12rem .35rem}
.pdf-search-input{width:100%;min-width:0;border:none;background:none;font-family:var(--font-sans);font-size:.7rem;color:var(--text);outline:none}
.pdf-search-input::placeholder{color:var(--text-muted)}
.pdf-search-count{font-size:.65rem;color:var(--text-muted);white-space:nowrap}

/* Layout */
.viewer-main{display:flex;flex:1;min-height:0;position:relative}

/* Sidebar */
.viewer-sidebar{width:0;overflow:hidden;background:var(--bg);border-right:1px solid var(--border);flex-shrink:0;transition:width .25s ease;display:flex;flex-direction:column}
.viewer-sidebar.open{width:190px}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:.6rem .75rem;border-bottom:1px solid var(--border);flex-shrink:0}
.sidebar-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted)}
.sidebar-close{background:none;border:none;cursor:pointer;color:var(--text-muted);padding:2px;display:flex;align-items:center}
.sidebar-close:hover{color:var(--text)}
.sidebar-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.2rem;padding:.45rem;border-bottom:1px solid var(--border)}
.sidebar-tab{border:0;border-radius:6px;background:transparent;color:var(--text-secondary);font-family:var(--font-sans);font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;padding:.35rem;cursor:pointer}
.sidebar-tab:hover{background:var(--bg-secondary);color:var(--text)}
.sidebar-tab.active{background:var(--accent);color:#fff}
.sidebar-pages,.sidebar-outline,.sidebar-versions{flex:1;overflow-y:auto;padding:.5rem;display:flex;flex-direction:column;gap:.4rem}
.sidebar-item{display:flex;flex-direction:column;align-items:center;gap:3px;background:none;border:2px solid transparent;border-radius:var(--radius-sm);padding:4px;cursor:pointer;transition:all var(--transition)}
.sidebar-item:hover{border-color:var(--border-hover);background:var(--bg-secondary)}
.sidebar-item.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent)}
.sidebar-item.active .sidebar-num{color:var(--accent)}
.sidebar-item canvas{border-radius:2px;box-shadow:var(--shadow-sm);display:block}
.sidebar-num{font-size:.65rem;font-weight:600;color:var(--text-muted)}
.outline-list{display:flex;flex-direction:column;gap:.18rem}
.outline-item{width:100%;border:1px solid transparent;background:transparent;color:var(--text-secondary);border-radius:6px;padding:.45rem .55rem;text-align:left;font-family:var(--font-sans);font-size:.76rem;line-height:1.3;cursor:pointer}
.outline-item:hover{background:var(--bg-secondary);color:var(--text);border-color:var(--border)}
.outline-item:disabled{cursor:default;opacity:.55}
.sidebar-empty{font-size:.78rem;color:var(--text-muted);line-height:1.45;padding:.55rem}
.version-item{display:flex;flex-direction:column;gap:.28rem;border:1px solid var(--border);border-radius:7px;background:var(--bg-card);color:var(--text);padding:.65rem;text-decoration:none}
.version-item:not(.version-item-current):hover{border-color:var(--border-hover);background:var(--bg-secondary)}
.version-item-current{border-color:color-mix(in srgb,var(--accent) 42%,var(--border));background:color-mix(in srgb,var(--accent) 7%,var(--bg-card))}
.version-status{font-size:.6rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:var(--accent)}
.version-date{font-size:.78rem;font-weight:750;line-height:1.25}
.version-meta,.version-action{font-size:.65rem;color:var(--text-muted);line-height:1.35}
.version-action{font-weight:700;color:var(--text-secondary)}

/* Content */
.viewer-scroll{overflow-y:auto;overflow-x:auto;-webkit-overflow-scrolling:touch}
.viewer-container{flex:1;position:relative;background:var(--viewer-bg);min-width:0;touch-action:pan-x pan-y}
.viewer-loading{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;color:var(--text-muted);font-size:.85rem;z-index:5;padding:1rem}
.viewer-loading-card{width:min(420px,92vw);background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);padding:1.35rem;text-align:left;display:flex;flex-direction:column;align-items:flex-start;gap:.55rem}
.viewer-loading-card .spinner{align-self:flex-start;margin-bottom:.2rem}
.loading-kicker{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.viewer-loading-card h2{font-family:var(--font-serif);font-size:1.35rem;line-height:1.2;color:var(--text);font-weight:700;letter-spacing:0}
.loading-meta,.loading-status{font-size:.8rem;color:var(--text-secondary)}
.loading-track{height:7px;width:100%;background:var(--bg-secondary);border:1px solid var(--border);border-radius:999px;overflow:hidden;margin-top:.25rem}
.loading-track span{display:block;width:0;height:100%;background:var(--accent);border-radius:999px;transition:width .22s ease}
.spinner{width:28px;height:28px;border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.viewer-fallback{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;color:var(--text-secondary);font-size:.9rem}
.pres-start-card{position:absolute;left:50%;top:1rem;transform:translateX(-50%);z-index:6;width:min(460px,calc(100% - 2rem));background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);padding:1rem;display:flex;flex-direction:column;gap:.65rem;align-items:flex-start}
.pres-start-card p{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.pres-start-card h2{font-family:var(--font-serif);font-size:1.28rem;line-height:1.2;color:var(--text);letter-spacing:0}
.pres-start-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.mobile-viewer-bar{display:none}

/* PDF pages */
.pdf-pages{display:flex;flex-direction:column;align-items:center;gap:12px;padding:16px 16px 48px}
.pdf-page-shell{display:block}
.pdf-page-shell.has-side-note:not(.notes-hidden){display:grid;grid-template-columns:minmax(0,1fr) clamp(440px,34vw,560px);gap:24px;align-items:start}
.pdf-page-wrapper{position:relative;background:#fff;box-shadow:0 2px 12px rgba(0,0,0,.1),0 0 0 1px rgba(0,0,0,.05);border-radius:2px;line-height:0}
.pdf-page-canvas{display:block}
.pdf-page-placeholder{position:absolute;inset:0;background:linear-gradient(110deg,#f8f8f8 0%,#eeeeef 45%,#fafafa 70%);background-size:220% 100%;animation:shimmer 1.3s ease infinite}
.pdf-page-placeholder::after{content:"";position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;border:3px solid rgba(0,0,0,.08);border-top-color:color-mix(in srgb,var(--accent) 55%,transparent);border-radius:50%;animation:spin .75s linear infinite}
.textLayer{position:absolute;text-align:initial;inset:0;overflow:clip;opacity:1;line-height:1;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;forced-color-adjust:none;transform-origin:0 0;caret-color:CanvasText;z-index:2;pointer-events:auto;-webkit-user-select:text;user-select:text}
.textLayer :is(span,br){position:absolute;color:transparent;white-space:pre;cursor:text;transform-origin:0 0;-webkit-user-select:text;user-select:text}
.textLayer ::selection{background:rgba(44,103,242,.3)}
.textLayer .search-highlight{margin:-1px;padding:1px;background:rgba(255,210,0,.42);border-radius:3px}
.textLayer .search-highlight-active{background:rgba(255,135,0,.62)}
.textLayer .endOfContent{display:block;position:absolute;inset:100% 0 0;z-index:0;cursor:default;user-select:none}
.link-layer{position:absolute;left:0;top:0;right:0;bottom:0;z-index:3;pointer-events:none}
.pdf-link{position:absolute;border:0;background:transparent;color:transparent;padding:0;cursor:pointer;pointer-events:auto}
.pdf-link:hover{outline:2px solid color-mix(in srgb,var(--accent) 28%,transparent);outline-offset:1px}

.pdf-page-label{position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);font-size:.62rem;font-weight:600;color:var(--text-muted);background:var(--bg);border:1px solid var(--border);padding:1px 8px;border-radius:100px;white-space:nowrap}
.page-side-note{position:sticky;top:16px;width:100%;max-height:var(--page-height);box-sizing:border-box;overflow-y:auto;overflow-x:hidden;padding:.95rem;background:color-mix(in srgb,var(--accent) 8%,var(--bg));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--border));border-left:4px solid var(--accent);border-radius:8px;line-height:1.5;color:var(--text-secondary);font:inherit;font-size:.9rem;text-align:left;box-shadow:var(--shadow-sm);z-index:4}
.page-side-note[hidden]{display:none}
.page-side-note-label{display:block;margin:0 .15rem .55rem;color:var(--accent);font-size:.64rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}
.side-note-parts{display:grid;gap:.58rem}
.side-note-part{padding:.8rem .85rem;background:color-mix(in srgb,var(--bg) 92%,white);border:1px solid color-mix(in srgb,var(--accent) 18%,var(--border));border-radius:6px}
.side-note-part h3{margin:0 0 .35rem;color:var(--accent);font-size:.8rem;line-height:1.3;font-weight:800}
.side-note-part p{margin:0;font-size:.88rem;line-height:1.58}
.side-note-part p+p{margin-top:.65rem}
.side-note-part .side-note-casual{color:var(--text);font-size:.84rem;font-style:italic}

/* Scroll to top */
.scroll-top{position:fixed;bottom:24px;right:24px;width:40px;height:40px;border-radius:50%;background:var(--bg);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-md);z-index:15;opacity:0;transform:translateY(12px);pointer-events:none;transition:all .25s ease}
.scroll-top.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.scroll-top:hover{color:var(--text);border-color:var(--border-hover)}

/* Toast */
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--text);color:var(--bg);font-size:.82rem;font-weight:500;padding:.55rem 1.2rem;border-radius:100px;z-index:60;opacity:0;pointer-events:none;transition:all .3s ease;white-space:nowrap}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.share-menu{position:fixed;right:1rem;top:3.25rem;z-index:75;min-width:210px;background:var(--bg);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-md);padding:.35rem;display:flex;flex-direction:column;gap:.15rem}
.share-menu[hidden]{display:none}
.share-menu button,.share-menu a{width:100%;border:0;background:transparent;color:var(--text-secondary);border-radius:6px;padding:.55rem .65rem;text-align:left;font-family:var(--font-sans);font-size:.82rem;font-weight:650;cursor:pointer}
.share-menu button:hover,.share-menu a:hover{background:var(--bg-secondary);color:var(--text)}

/* Presentation */
.pres-overlay{display:none;position:fixed;inset:0;z-index:100;background:#000;flex-direction:column;align-items:center;justify-content:center}
.pres-overlay.active{display:flex}
.pres-progress{position:absolute;left:0;right:0;top:0;height:4px;background:rgba(255,255,255,.12);z-index:2}
.pres-progress span{display:block;height:100%;width:0;background:#fff;transition:width .2s ease}
.pres-canvas{display:block;cursor:pointer;transition:opacity .2s ease}
.pres-controls{position:absolute;left:50%;bottom:1.1rem;transform:translateX(-50%);display:flex;align-items:center;gap:.45rem;background:rgba(0,0,0,.42);border:1px solid rgba(255,255,255,.14);border-radius:999px;padding:.35rem .55rem;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.pres-btn{background:none;border:none;color:rgba(255,255,255,.8);cursor:pointer;padding:4px;display:flex;align-items:center;border-radius:50%;transition:all var(--transition)}
.pres-btn:hover{color:#fff;background:rgba(255,255,255,.15)}
.pres-counter{font-size:.75rem;font-weight:600;color:rgba(255,255,255,.9);padding:0 .4rem;user-select:none}
.pres-timer{font-size:.72rem;font-weight:800;color:rgba(255,255,255,.82);font-variant-numeric:tabular-nums;border-left:1px solid rgba(255,255,255,.18);padding-left:.65rem}

.annotations-modal{display:none;position:fixed;inset:0;z-index:82;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);align-items:center;justify-content:center}
.annotations-modal.active{display:flex}
.annotations-content{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem;max-width:560px;width:92%;box-shadow:var(--shadow-md)}
.annotation-editor{display:flex;flex-direction:column;gap:.5rem}
.annotation-editor label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.annotation-editor textarea{width:100%;resize:vertical;min-height:92px;background:var(--bg-secondary);border:1px solid var(--border);border-radius:8px;color:var(--text);font-family:var(--font-sans);font-size:.86rem;line-height:1.55;padding:.7rem;outline:none}
.annotation-editor textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.annotation-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.annotation-list{display:flex;flex-direction:column;gap:.45rem;max-height:260px;overflow:auto;margin-top:1rem}
.annotation-item{border:1px solid var(--border);background:var(--bg-card);border-radius:8px;text-align:left;padding:.7rem;cursor:pointer;color:var(--text);transition:all var(--transition)}
.annotation-item:hover{border-color:var(--border-hover);background:var(--bg-secondary)}
.annotation-item span{display:block;font-size:.66rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.18rem}
.annotation-item strong{display:block;font-size:.86rem;font-weight:500;color:var(--text-secondary);line-height:1.45}
.annotation-empty{font-size:.84rem;color:var(--text-muted);padding:.8rem;border:1px dashed var(--border);border-radius:8px;text-align:center}

.quiz-modal{display:none;position:fixed;inset:0;z-index:90;background:rgba(0,0,0,.56);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);align-items:center;justify-content:center;padding:.5rem}
.quiz-modal.active{display:flex}
.quiz-card{display:flex;flex-direction:column;width:min(1280px,100%);height:min(940px,calc(100dvh - 1rem));overflow:hidden;background:var(--bg);border:1px solid var(--border);border-radius:14px;box-shadow:0 24px 70px rgba(0,0,0,.28);padding:1.35rem}
.quiz-card [hidden]{display:none!important}
.quiz-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}
.quiz-kicker,.quiz-question-label,.quiz-explanation p{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--accent)}
.quiz-header h2{font-family:var(--font-serif);font-size:1.55rem;line-height:1.2;color:var(--text)}
.quiz-header-actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap;justify-content:flex-end}
.quiz-reset{padding:.38rem .65rem}
.quiz-close{width:32px;height:32px;justify-content:center;border:1px solid var(--border);border-radius:7px}
.quiz-settings{display:grid;grid-template-columns:repeat(3,minmax(130px,1fr)) auto;gap:.55rem;margin-top:1rem;padding:.65rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px}
.quiz-settings label{display:flex;flex-direction:column;gap:.2rem;font-size:.62rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}
.quiz-settings select{min-width:0;border:1px solid var(--border);border-radius:7px;background:var(--bg);color:var(--text);padding:.42rem .5rem;font:600 .75rem var(--font-sans)}
.quiz-settings .btn{align-self:end;white-space:nowrap}
.quiz-progress-row{display:flex;justify-content:space-between;gap:1rem;margin-top:.75rem;font-size:.7rem;font-weight:750;color:var(--text-muted)}
.quiz-progress-track{height:6px;margin-top:.35rem;background:var(--bg-secondary);border:1px solid var(--border);border-radius:999px;overflow:hidden}
.quiz-progress-track span{display:block;width:0;height:100%;background:var(--accent);border-radius:999px;transition:width .25s ease}
.quiz-stats{display:flex;gap:.85rem;padding:.45rem 0;font-size:.67rem;font-weight:750;color:var(--text-secondary)}
.quiz-workspace{display:grid;grid-template-columns:190px minmax(0,1fr);min-height:0;flex:1;border-top:1px solid var(--border)}
.quiz-question-panel{min-height:0;overflow:auto;border-right:1px solid var(--border);padding:.75rem .75rem .75rem 0}
.quiz-status-legend{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:.5rem;font-size:.58rem;font-weight:750;color:var(--text-muted)}.quiz-status-legend span::before{content:"";display:inline-block;width:6px;height:6px;margin-right:3px;border-radius:50%;background:var(--border-hover)}.quiz-status-legend .correct::before{background:#16803c}.quiz-status-legend .incorrect::before{background:#b42318}
.quiz-question-list{display:grid;grid-template-columns:repeat(4,1fr);gap:.3rem}
.quiz-question-item{height:34px;border:1px solid var(--border);border-radius:7px;background:var(--bg-card);color:var(--text-secondary);font:750 .7rem var(--font-sans);cursor:pointer}
.quiz-question-item:hover,.quiz-question-item.active{border-color:var(--accent);color:var(--accent)}
.quiz-question-item.correct{background:color-mix(in srgb,#16803c 12%,var(--bg));border-color:color-mix(in srgb,#16803c 38%,var(--border));color:#16803c}
.quiz-question-item.incorrect{background:color-mix(in srgb,#b42318 10%,var(--bg));border-color:color-mix(in srgb,#b42318 35%,var(--border));color:#b42318}
.quiz-question-item.skipped{background:color-mix(in srgb,#b45309 10%,var(--bg));border-color:color-mix(in srgb,#b45309 35%,var(--border));color:#b45309}
.quiz-question-item.answered{background:color-mix(in srgb,var(--accent) 9%,var(--bg));border-color:color-mix(in srgb,var(--accent) 30%,var(--border));color:var(--accent)}
.quiz-list-toggle{display:none}
.quiz-body{min-height:0;overflow:auto;padding:1.1rem 0 1.1rem 1.25rem}
.quiz-question-meta{display:flex;justify-content:space-between;gap:1rem;align-items:center}
.quiz-status-badge{font-size:.63rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);padding:.25rem .42rem;border:1px solid var(--border);border-radius:999px}
.quiz-status-badge.correct{color:#16803c;border-color:#16803c}.quiz-status-badge.incorrect{color:#b42318;border-color:#b42318}.quiz-status-badge.skipped{color:#b45309;border-color:#b45309}
.quiz-question{font-family:var(--font-serif);font-size:1.45rem;line-height:1.35;letter-spacing:0;color:var(--text);margin-top:.3rem}
.quiz-answer-form{display:flex;flex-direction:column;gap:.5rem;margin-top:1.25rem}
.quiz-answer-form label{font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}
.quiz-answer-form input{width:100%;background:var(--bg-secondary);border:1px solid var(--border);border-radius:9px;color:var(--text);font-family:var(--font-sans);font-size:1rem;line-height:1.4;padding:.8rem .9rem;outline:none;transition:border-color var(--transition),box-shadow var(--transition)}
.quiz-answer-form input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.quiz-answer-form input:disabled{opacity:.7;cursor:not-allowed}
.quiz-choice-list{counter-reset:quiz-choice;display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:1.15rem}
.quiz-choice{counter-increment:quiz-choice;display:grid;grid-template-columns:28px 1fr;align-items:center;gap:.55rem;border:1px solid var(--border);border-radius:9px;background:var(--bg-card);color:var(--text);padding:.75rem;text-align:left;font:650 .82rem var(--font-sans);cursor:pointer}
.quiz-choice::before{content:counter(quiz-choice,upper-alpha);display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border);font-size:.68rem;font-weight:850;color:var(--text-muted)}
.quiz-choice:hover,.quiz-choice.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--bg))}
.quiz-choice.selected::before{background:var(--accent);border-color:var(--accent);color:#fff}
.quiz-choice.correct{border-color:#16803c;background:color-mix(in srgb,#16803c 10%,var(--bg));color:#126b34}.quiz-choice.correct::before{background:#16803c;border-color:#16803c;color:#fff}
.quiz-choice.incorrect{border-color:#b42318;background:color-mix(in srgb,#b42318 9%,var(--bg));color:#991b1b}.quiz-choice.incorrect::before{background:#b42318;border-color:#b42318;color:#fff}
.quiz-choice:disabled{cursor:default}
.quiz-reveal{margin-top:1.2rem}
.quiz-feedback{min-height:1.3rem;margin-top:.75rem;font-size:.82rem;font-weight:650;color:var(--text-muted)}
.quiz-feedback.correct{color:#16803c}
.quiz-feedback.incorrect{color:#b42318}.quiz-feedback.close,.quiz-feedback.incomplete{color:#b45309}
.quiz-missing{margin-top:.4rem;padding:.55rem .65rem;border-radius:8px;background:color-mix(in srgb,#b45309 8%,var(--bg));color:#92400e;font-size:.76rem;line-height:1.4}
.quiz-choice-insight{margin-top:.55rem;padding:.7rem .8rem;border:1px solid color-mix(in srgb,#2563eb 28%,var(--border));border-radius:8px;background:color-mix(in srgb,#2563eb 7%,var(--bg));color:var(--text-secondary);font-size:.78rem;line-height:1.5}
.quiz-hints{margin-top:.6rem}.quiz-hints p{margin-top:.4rem;padding:.55rem .65rem;background:var(--bg-secondary);border-radius:8px;font-size:.78rem;line-height:1.45;color:var(--text-secondary)}
.quiz-explanation{display:flex;flex-direction:column;gap:.3rem;margin-top:1rem;padding:1rem;background:color-mix(in srgb,#16803c 8%,var(--bg));border:1px solid color-mix(in srgb,#16803c 26%,var(--border));border-radius:10px}
.quiz-explanation strong{font-size:.95rem;color:var(--text)}
.quiz-explanation span{font-size:.86rem;line-height:1.55;color:var(--text-secondary)}
.quiz-support-grid{display:grid;grid-template-columns:1fr 1fr;gap:.55rem;margin-top:.6rem}.quiz-support-grid div{display:flex;flex-direction:column;gap:.18rem;padding:.55rem;background:var(--bg);border-radius:7px}.quiz-support-grid b{font-size:.65rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted)}
.quiz-explanation blockquote{margin:.55rem 0 0;padding:.6rem .7rem;border-left:3px solid var(--accent);background:var(--bg);font-size:.76rem;line-height:1.45;color:var(--text-secondary)}
.quiz-explanation .btn{align-self:flex-start;margin-top:.4rem}
.quiz-rating-actions{flex:0 0 auto;display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto;gap:.5rem;margin:0 -1.35rem -1.35rem;padding:.85rem 1.35rem 1.35rem;background:var(--bg);border-top:1px solid var(--border);box-shadow:0 -8px 20px rgba(0,0,0,.04)}
.quiz-rating-btn{display:grid;grid-template-columns:36px 1fr;column-gap:.65rem;align-items:center;border:1px solid var(--border);border-radius:10px;background:var(--bg-card);color:var(--text);padding:.75rem;text-align:left;font-family:var(--font-sans);cursor:pointer;transition:all var(--transition)}
.quiz-rating-btn>span{grid-row:1/3;display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;font-size:1.25rem;font-weight:800}
.quiz-rating-btn strong{font-size:.84rem}.quiz-rating-btn small{font-size:.7rem;color:var(--text-muted)}
.quiz-rating-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.quiz-check,.quiz-good{border-color:color-mix(in srgb,#16803c 35%,var(--border))}
.quiz-check:hover,.quiz-good:hover{border-color:#16803c}.quiz-check>span,.quiz-good>span{background:color-mix(in srgb,#16803c 12%,transparent);color:#16803c}
.quiz-nav-btn{border:1px solid var(--border);border-radius:9px;background:var(--bg-card);color:var(--text-secondary);padding:.55rem .7rem;font:750 .72rem var(--font-sans);cursor:pointer}.quiz-nav-btn:hover{border-color:var(--border-hover);color:var(--text)}
.quiz-complete{text-align:center;padding:2.6rem 1rem 1.4rem}
.quiz-complete>span{display:flex;align-items:center;justify-content:center;width:58px;height:58px;margin:0 auto .9rem;background:color-mix(in srgb,#16803c 12%,transparent);color:#16803c;border-radius:50%;font-size:1.8rem;font-weight:800}
.quiz-complete h3{font-family:var(--font-serif);font-size:1.55rem;color:var(--text)}
.quiz-complete p{font-size:.86rem;color:var(--text-secondary);margin:.3rem 0 1rem}
.quiz-result-stats{display:flex;flex-direction:column;gap:.25rem;margin:.9rem auto 1rem}.quiz-result-stats strong{font-family:var(--font-serif);font-size:2rem;color:var(--accent)}.quiz-result-stats span{font-size:.8rem;color:var(--text-secondary)}
.quiz-remediation{width:min(620px,100%);margin:0 auto 1rem;padding:.85rem;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);text-align:left}
.quiz-remediation>strong{display:block;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;color:var(--accent);margin-bottom:.45rem}
.quiz-remediation>span{display:block;font-size:.82rem;color:var(--text-secondary)}
.quiz-topic-list{display:grid;gap:.4rem}
.quiz-topic-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.55rem;padding:.48rem .55rem;border:1px solid var(--border);border-radius:7px;background:var(--bg)}
.quiz-topic-row span{min-width:0;color:var(--text);font-size:.82rem;font-weight:700;overflow-wrap:anywhere}
.quiz-topic-row b{font-size:.78rem;color:var(--accent)}
.quiz-topic-row small{font-size:.68rem;color:var(--text-muted);white-space:nowrap}
.quiz-complete-actions{display:flex;justify-content:center;gap:.55rem;flex-wrap:wrap}

@media(min-width:900px){
    .quiz-body:has(.quiz-explanation:not([hidden])){display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);grid-template-rows:repeat(7,auto) 1fr;column-gap:1.2rem;align-content:start}
    .quiz-body:has(.quiz-explanation:not([hidden]))>.quiz-explanation{grid-column:2;grid-row:1/-1;margin-top:0;align-self:start}
    .quiz-body:has(.quiz-explanation:not([hidden]))>:not(.quiz-explanation){grid-column:1}
}
@media(min-width:900px) and (max-height:760px){
    .quiz-settings{margin-top:.55rem;padding:.45rem}.quiz-progress-row{margin-top:.45rem}.quiz-stats{display:none}
    .quiz-explanation{padding:.75rem;gap:.2rem}.quiz-explanation span{line-height:1.4}
    .quiz-explanation blockquote,.quiz-explanation .btn{display:none}
    .quiz-support-grid{margin-top:.35rem}.quiz-support-grid div{padding:.4rem}
    .quiz-rating-actions{padding:.55rem 1.35rem .7rem}.quiz-rating-btn{padding:.5rem}.quiz-rating-btn small{display:none}
}

.focus-mode .viewer-toolbar,.focus-mode .viewer-sidebar,.focus-mode .mobile-viewer-bar{display:none!important}
.focus-mode .pdf-pages{padding-top:22px}

/* Shortcuts modal */
.shortcuts-modal{display:none;position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.5);backdrop-filter:blur(4px);align-items:center;justify-content:center}
.shortcuts-modal.active{display:flex}
.shortcuts-content{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius);padding:1.5rem;max-width:520px;width:90%;box-shadow:var(--shadow-md)}
.shortcuts-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
.shortcuts-header h2{font-size:1rem;font-weight:600;color:var(--text)}
.shortcuts-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.2rem}
.sc-group h3{font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--text-muted);margin-bottom:.5rem}
.sc-row{display:flex;align-items:center;gap:.4rem;font-size:.8rem;color:var(--text-secondary);margin-bottom:.35rem}
.sc-row kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 5px;font-family:var(--font-sans);font-size:.68rem;font-weight:600;color:var(--text);background:var(--bg-secondary);border:1px solid var(--border);border-radius:4px}

/* ===== Responsive ===== */
@media(max-width:820px){
    .project-bundle-card{grid-template-columns:1fr;align-items:stretch}
    .project-bundle-actions{align-items:flex-start;flex-direction:row;flex-wrap:wrap}
    .library-controls{flex-direction:column;align-items:stretch;gap:.65rem;margin-bottom:1.2rem;top:0}
    .library-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}
    .library-tab{justify-content:center;min-width:0}
    .library-tools{width:100%;justify-content:space-between}
    .sort-control{min-width:0}
    .sort-control select{min-width:0;max-width:210px}
    .view-toggle{flex-shrink:0}
}
@media(max-width:640px){
    .nav-bar,.papers-section,.search-bar-wrap,.detail-shell,.project-shell{padding-left:1rem;padding-right:1rem}
    .nav-bar{gap:.75rem}
    .hero{padding:1rem 1rem 1rem}.hero-title{font-size:2rem}
    .tag-filters{max-height:190px;overflow:auto;padding-right:.15rem;scrollbar-width:thin;scrollbar-color:var(--border-hover) transparent}
    .tag-filters::-webkit-scrollbar{width:6px}
    .tag-filters::-webkit-scrollbar-track{background:transparent}
    .tag-filters::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:999px}
    .filter-summary{margin-top:.55rem}
    .section-heading-row{align-items:flex-start;flex-direction:column;gap:.45rem}
    .project-bundle-card{padding:.85rem}
    .connection-string{grid-template-columns:1fr;gap:.45rem}
    .connection-string::before{left:18px;right:auto;top:1rem;bottom:1rem;width:2px;height:auto;background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent) 45%,var(--border)),transparent)}
    .string-node{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"dot role" "dot title";column-gap:.55rem;align-items:center}
    .string-dot{grid-area:dot;margin:0}.string-node small{grid-area:role}.string-node strong{grid-area:title}
    .library-tab{justify-content:center;padding:.42rem .35rem;font-size:.7rem;gap:.25rem}
    .library-tabs{grid-template-columns:repeat(3,minmax(0,1fr))}
    .library-tab span{min-width:1.35rem;padding:0 .25rem}
    .sort-control{width:100%;justify-content:space-between}
    .sort-control select{flex:1;max-width:210px}
    #papers-grid,#presentations-grid{grid-template-columns:1fr}
    .featured-card{display:flex;flex-direction:column;min-height:0}
    .featured-card .card-thumb-wrap{border-right:0;border-bottom:1px solid var(--border);min-height:250px}
    .kind-paper .card-thumb-wrap,.kind-presentation .card-thumb-wrap,.kind-reviewer .card-thumb-wrap{min-height:218px;padding:1rem}
    .kind-paper .thumb-frame,.featured-card.kind-paper .thumb-frame,.kind-reviewer .thumb-frame,.featured-card.kind-reviewer .thumb-frame{max-width:170px}
    .kind-presentation .thumb-frame{max-width:100%}
    .thumb-badges{left:.7rem;right:.7rem;bottom:.7rem}
    .thumb-actions{opacity:1;transform:none;left:.7rem;right:.7rem;top:.7rem}
    .card-body,.featured-card .card-body{padding:1rem}
    .featured-card .card-title{font-size:1.28rem}
    .continue-grid{grid-template-columns:1fr}.continue-card{align-items:stretch;flex-direction:column}.continue-card .btn{justify-content:center}.continue-heading{align-items:flex-start}
    .featured-card .card-abstract,.card-abstract{-webkit-line-clamp:3}
    .card-header{flex-direction:column;gap:.5rem}
    .card-actions .btn{flex:1 1 calc(50% - .5rem);justify-content:center;min-width:0;padding-left:.55rem;padding-right:.55rem}
    .compact-view .paper-card{grid-template-columns:78px 1fr}
    .compact-view .card-body{padding:.75rem}
    .compact-view .card-actions .btn{font-size:.7rem;padding:.4rem .55rem}
    .compact-view .card-meta{font-size:.68rem}
    .detail-shell{padding-top:.5rem}
    .detail-layout{grid-template-columns:1fr;gap:1rem}
    .detail-preview{position:static;padding:.75rem}
    .detail-thumb{min-height:260px;padding:1rem}
    .detail-thumb.landscape{min-height:210px}
    .detail-content{padding:1rem}
    .detail-title{font-size:1.45rem}
    .detail-meta-grid{grid-template-columns:1fr}
    .detail-actions .btn{flex:1;justify-content:center}
    .changelog-item{grid-template-columns:1fr;gap:.28rem}
    .project-hero-panel,.project-string-panel,.project-documents,.project-changelog{padding:1rem}
    .project-hero-panel h1{font-size:1.8rem}
    .project-document-card{grid-template-columns:78px 1fr;gap:.75rem;padding:.75rem}
    .project-document-thumb{width:78px}
    .project-document-card h2{font-size:1rem}
    .project-document-card p{display:none}
    .project-document-actions .btn{flex:1;justify-content:center;padding-left:.45rem;padding-right:.45rem}
    .citation-header{align-items:flex-start;flex-direction:column;gap:.6rem}
    .citation-actions{width:100%;display:grid;grid-template-columns:1fr 1fr 1fr}
    .citation-actions .btn{justify-content:center;padding-left:.45rem;padding-right:.45rem}
    .citation-tabs{display:grid;grid-template-columns:repeat(2,1fr);width:100%}
    .related-grid{grid-template-columns:1fr}
    .related-card{grid-template-columns:52px 1fr}
    .related-thumb{width:52px}
    .hide-mobile{display:none}
    .viewer-body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
    .viewer-toolbar{gap:.3rem;padding:.35rem .5rem}
    .viewer-title{font-size:.72rem;text-align:left}
    .viewer-toolbar .toolbar-controls{display:none}
    .zoom-controls,.page-jump{display:none}
    .pdf-pages{padding:8px 4px 76px;gap:8px}
    .viewer-sidebar{position:absolute;left:0;top:0;bottom:0;z-index:15;box-shadow:4px 0 16px rgba(0,0,0,.15)}
    .viewer-sidebar.open{width:min(78vw,260px)}
    .sidebar-tab{min-width:0;font-size:.62rem;letter-spacing:.03em;padding:.35rem .18rem}
    .pres-start-card{top:.75rem;width:calc(100% - 1rem);padding:.9rem}
    .pres-start-card h2{font-size:1.08rem}
    .mobile-viewer-bar{position:fixed;left:.6rem;right:.6rem;bottom:calc(.6rem + env(safe-area-inset-bottom));z-index:30;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:.2rem;background:rgba(255,255,255,.86);border:1px solid var(--border);border-radius:8px;padding:.3rem;box-shadow:var(--shadow-md);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
    .mobile-viewer-bar{grid-template-columns:repeat(6,minmax(0,1fr))}
    .has-reviewer-quiz .mobile-viewer-bar{grid-template-columns:repeat(7,1fr)}
    .mobile-viewer-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.08rem;min-width:0;border:0;background:transparent;color:var(--text-secondary);border-radius:6px;padding:.36rem .1rem;font-family:var(--font-sans);font-size:.62rem;font-weight:750;cursor:pointer}
    .mobile-viewer-btn:hover,.mobile-viewer-btn:focus{background:var(--bg-secondary);color:var(--text);outline:none}
    .mobile-viewer-btn svg{width:17px;height:17px}
    .pdf-page-shell{display:block;width:auto}
    .pdf-page-shell.has-side-note{margin-bottom:126px}
    .pdf-page-shell.has-side-note.notes-hidden{margin-bottom:12px}
    .page-side-note{position:relative;top:auto;left:auto;right:auto;width:100%;max-height:none;margin-top:16px;font-size:.82rem;padding:.75rem .85rem}
    .scroll-top{bottom:82px;right:16px;width:36px;height:36px}
    .share-menu,.viewer-tools-menu{left:.8rem;right:.8rem;top:auto;bottom:4.95rem}
    .quiz-modal{padding:0;align-items:stretch}
    .quiz-card{width:100%;height:100dvh;max-height:100dvh;min-height:0;border-radius:0;padding:.85rem .9rem}
    .quiz-header{flex-shrink:0;gap:.65rem}
    .quiz-header h2{font-size:1.18rem}
    .quiz-header-actions{gap:.3rem}
    .quiz-header-actions .btn{padding:.34rem .45rem;font-size:.7rem}
    .quiz-settings{grid-template-columns:1fr 1fr;gap:.45rem;margin-top:.7rem;padding:.55rem;flex-shrink:0}.quiz-settings .btn{grid-column:1/-1}
    .quiz-settings label{font-size:.58rem}
    .quiz-settings select{width:100%;padding:.38rem .42rem;font-size:.7rem}
    .quiz-progress-row{flex-shrink:0;margin-top:.55rem}
    .quiz-progress-track{flex-shrink:0}
    .quiz-stats{flex-shrink:0;justify-content:space-between;gap:.45rem;padding:.35rem 0;font-size:.62rem}
    .quiz-list-toggle{display:inline-flex}
    .quiz-workspace{display:flex;flex:1 1 auto;min-height:0;overflow:hidden;position:relative}
    .quiz-question-panel{display:none;position:absolute;inset:0;z-index:3;padding:.75rem;background:var(--bg);border:0;overflow:auto}.quiz-question-panel.open{display:block}
    .quiz-question-list{grid-template-columns:repeat(6,1fr)}
    .quiz-body{flex:1 1 auto;min-height:0;height:auto;padding:.8rem 0 1rem;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
    .quiz-question-meta{align-items:flex-start;gap:.5rem}
    .quiz-question-label{font-size:.58rem;line-height:1.35}
    .quiz-status-badge{flex-shrink:0}
    .quiz-question{font-size:1.05rem;line-height:1.32}
    .quiz-choice-list,.quiz-support-grid{grid-template-columns:1fr}
    .quiz-choice-list{gap:.45rem;margin-top:.85rem}
    .quiz-choice{grid-template-columns:26px 1fr;gap:.45rem;padding:.62rem;font-size:.76rem}
    .quiz-choice::before{width:26px;height:26px}
    .quiz-feedback{font-size:.76rem}
    .quiz-choice-insight{font-size:.74rem;padding:.6rem .65rem}
    .quiz-explanation{padding:.7rem}
    .quiz-explanation blockquote{max-height:96px;overflow:auto}
    .quiz-topic-row{grid-template-columns:1fr auto;gap:.35rem}.quiz-topic-row small{grid-column:1/-1}
    .quiz-rating-actions{grid-template-columns:repeat(3,minmax(0,1fr));gap:.4rem;margin:0 -.9rem -.85rem;padding:.7rem .9rem calc(.85rem + env(safe-area-inset-bottom))}
    .quiz-rating-actions:has(#quiz-good:not([hidden])){grid-template-columns:minmax(0,.78fr) minmax(0,.78fr) minmax(112px,1.35fr) minmax(0,.78fr)}
    .quiz-rating-btn{min-width:0;grid-template-columns:28px minmax(0,1fr);column-gap:.4rem;padding:.5rem .45rem}
    .quiz-rating-btn>span{width:28px;height:28px;font-size:1rem}
    .quiz-rating-btn strong{font-size:.72rem;line-height:1.15}
    .quiz-rating-btn small{display:none}
    .quiz-nav-btn{min-width:0;padding:.58rem .2rem;font-size:.68rem;white-space:nowrap}
    .shortcuts-grid{grid-template-columns:1fr}
    [data-tooltip]::after{display:none}
}
@media(min-width:641px){.hide-desktop{display:none}}

@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.001ms!important}
    @view-transition{navigation:none}
}

/* Print */
@media print{
    .viewer-toolbar,.viewer-sidebar,.scroll-top,.toast,.pres-overlay,.shortcuts-modal,.annotations-modal,.quiz-modal,.progress-bar{display:none!important}
    .viewer-body{height:auto;overflow:visible}
    .viewer-main{display:block}
    .viewer-container{overflow:visible}
    .pdf-pages{padding:0;gap:0}
    .pdf-page-wrapper{box-shadow:none;page-break-after:always}
    .pdf-page-label{display:none}
    body:not(.viewer-body){background:#fff;color:#111;display:block}
    body:not(.viewer-body) .site-header,body:not(.viewer-body) .detail-preview,body:not(.viewer-body) .detail-actions,body:not(.viewer-body) .related-section,body:not(.viewer-body) .site-footer,body:not(.viewer-body) .toast{display:none!important}
    .detail-shell{max-width:none;padding:0}
    .detail-layout{display:block}
    .detail-content{border:0;box-shadow:none;padding:0}
    .detail-title{font-size:24pt;color:#111}
    .detail-block p,.citation-text,.detail-meta-item strong{color:#111}
    .detail-meta-grid{grid-template-columns:repeat(2,1fr)}
    .citation-actions,.citation-tabs{display:none!important}
}

.quiz-question mark {
    background-color: transparent;
    color: var(--accent);
    font-weight: 700;
}
.quiz-question code {
    background-color: var(--bg-hover);
    padding: 0.1em 0.3em;
    border-radius: 4px;
}

/* Wide, crisp gallery on the main library */
.main-experiences .gallery-3d{height:460px;perspective:1500px}.main-experiences .gallery-card{width:206px;height:304px;padding:.35rem;box-shadow:0 18px 34px rgba(86,20,18,.18);backface-visibility:hidden;-webkit-backface-visibility:hidden}.main-experiences .gallery-card img{height:100%;backface-visibility:hidden;-webkit-backface-visibility:hidden}.main-experiences .gallery-card span{display:none}
@media(max-width:700px){.main-experiences .gallery-3d{height:310px}.main-experiences .gallery-card{width:118px;height:174px}}
