/* LitCritica 1.1 — a literary atelier with a consistent work surface.
   These rules style existing controls; data and model workflows are unchanged. */
:root {
  --paper: #f8f5ed;
  --ink: #2d463b;
  --text: #354039;
  --muted: #687167;
  --line: #d4d8cb;
  --pale: #eef0e7;
  --gold: #9c805c;
  --accent: #7d658d;
  --surface: #faf8f2;
  --surface-soft: #f1f1e8;
  --glass-bg: rgba(248,245,237,.94);
  --glass-line: rgba(78,94,73,.2);
  --glass-shadow: 0 14px 44px rgba(35,46,34,.07);
  --radius: 10px;
  --ui-ease: cubic-bezier(.22,.68,.24,1);
}
html[data-scene-theme=night] {
  --paper: #1c2b2c;
  --ink: #e8ebdf;
  --text: #e0e6da;
  --muted: #b2c0b5;
  --line: #53635a;
  --pale: #2d3d39;
  --gold: #cfb591;
  --accent: #c3afd2;
  --surface: #21322f;
  --surface-soft: #293b35;
  --glass-bg: rgba(30,46,42,.97);
  --glass-line: rgba(188,209,183,.25);
  --glass-shadow: 0 16px 48px rgba(4,12,12,.2);
  color-scheme: dark;
}
body {font-size:15px;line-height:1.7}
h1,h2,h3 {text-wrap:balance}
p {text-wrap:pretty}
button,input,textarea,select {font-family:var(--sans)}
button:focus-visible,a:focus-visible,summary:focus-visible {
  outline:2px solid var(--accent);outline-offset:4px;
}
input:focus-visible,textarea:focus-visible,select:focus-visible {
  outline:2px solid var(--accent);outline-offset:2px;
}
.skip-link {position:fixed;left:24px;top:12px;z-index:10000;padding:10px 18px;background:var(--surface);border:1px solid var(--ink);transform:translateY(-160%)}
.skip-link:focus {transform:none}
.site-scene::after {content:'';position:absolute;inset:0;background:rgba(248,245,237,.16);pointer-events:none}
html[data-scene-theme=night] .site-scene::after {background:rgba(13,26,23,.2)}
html:is([data-page=studio],[data-page=score],[data-page=report],[data-page=reading],[data-page=settings],[data-page=data],[data-page=conversation],[data-page=self]) .site-scene::after {background:rgba(248,245,237,.45)}
html[data-scene-theme=night]:is([data-page=studio],[data-page=score],[data-page=report],[data-page=reading],[data-page=settings],[data-page=data],[data-page=conversation],[data-page=self]) .site-scene::after {background:rgba(13,26,23,.47)}

/* A compact primary navigation and a complete, named room directory. */
.header {position:relative;z-index:50;max-width:1440px;min-height:78px;height:auto;margin:16px auto 0;padding:12px 24px;gap:24px;flex-wrap:nowrap;border:1px solid var(--glass-line);border-radius:14px;background:var(--glass-bg);box-shadow:var(--glass-shadow);backdrop-filter:blur(14px)}
.header .brand {font-size:23px;gap:10px}
.header .brand-avatar {width:44px;height:44px}
.header .brand i {font-size:16px;margin-left:6px}
.header nav {order:initial;flex:1;flex-basis:auto;height:auto;min-height:44px;display:flex;flex-wrap:nowrap;justify-content:center;align-items:center;gap:4px;font-size:13px;color:var(--muted)}
.header nav>a,.nav-more>summary {min-height:44px;height:auto;padding:10px 13px;white-space:nowrap;border-radius:7px;color:var(--muted);font-size:13px;line-height:24px}
.header nav a.active {color:var(--ink);background:var(--surface-soft);font-weight:600}
.header nav a::after {display:none}
.header nav a:hover {transform:none;color:var(--ink);background:var(--surface-soft)}
.nav-more {position:relative;align-self:center}
.nav-more>summary {display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none;user-select:none}
.nav-more>summary::-webkit-details-marker {display:none}
.nav-more>summary span {font-size:15px;transition:rotate 180ms var(--ui-ease)}
.nav-more[open]>summary span {rotate:180deg}
.nav-more[open]>summary,.nav-more.has-current>summary {color:var(--ink);background:var(--surface-soft)}
.nav-more.has-current>summary {box-shadow:inset 0 -2px var(--accent)}
.room-directory {position:absolute;top:calc(100% + 14px);right:-80px;width:390px;padding:20px;display:grid;grid-template-columns:1fr 1fr;gap:20px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--glass-shadow)}
.room-directory section:last-child {grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 20px;border-top:1px solid var(--line);padding-top:14px}
.room-directory h2 {font:500 12px var(--sans);color:var(--muted);margin:0 0 9px;letter-spacing:.08em}
.room-directory section:last-child h2 {grid-column:1/-1}
.header nav .room-directory a {display:flex;height:auto;min-height:44px;padding:9px 10px;margin:0 -5px;white-space:normal;line-height:1.6;border-radius:6px;color:var(--ink);font-size:13px}
.header .scene-controls {order:initial;flex:none;margin:0;gap:6px}
.header .scene-toggle,.header .scene-settings-toggle {height:40px;background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;color:var(--ink)}
.header .scene-toggle {padding:0 11px}
.header .header-cta {order:initial;display:inline-flex;align-items:center;min-height:42px;margin:0;white-space:nowrap;padding:9px 14px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:7px;font-size:12px}
.header-cta span {margin-left:14px}

/* Type and work-surface rules shared across every room. */
main {max-width:1280px;padding:0 40px}
.eyebrow {font-size:11px;letter-spacing:.16em;color:var(--muted);font-weight:500}
.eyebrow::before {width:22px;background:var(--gold)}
#app>.page-top {margin:36px 0 28px;padding:30px 34px;border-radius:var(--radius);background:var(--glass-bg);box-shadow:none;backdrop-filter:none;border:1px solid var(--line);border-left:3px solid var(--gold)}
.page-top h1 {font:500 clamp(28px,3.2vw,42px)/1.45 var(--serif);margin:12px 0;color:var(--ink);letter-spacing:.01em}
#app .page-top p {font-size:14px;line-height:1.9;color:var(--muted);margin:0;max-width:56em}
#app :is(.panel,.feature,.author,.book-card,.reading-shelf-item,.editor-card,.side-note,.history-card,.data-card,.method-card) {background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;color:var(--text)}
#app .panel {padding:30px}
#app :is(.panel,.author,.book-card,.reading-shelf-item) :is(p,li) {line-height:1.9}
#app :is(.panel,.feature,.author,.book-card,.side-note) p {color:var(--text)}
#app :is(.panel,.feature,.author,.book-card) small {color:var(--muted)}
#app :is(.subheading,.panel>h2) {font:500 23px/1.5 var(--serif);color:var(--ink)}
.prose,.quote-context {font-size:var(--reading-size,16px);line-height:2;max-width:var(--reading-width,70ch)}
.primary {min-height:46px;padding:12px 22px;gap:22px;border-radius:7px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);font-size:14px;box-shadow:none}
.primary:hover {background:var(--ink);filter:brightness(1.12);transform:none}
.primary:active {transform:translateY(1px)}
.actions {gap:12px;flex-wrap:wrap}
.text-button {min-height:44px;padding:11px 0;font-size:13px}
#app :is(button:not(.primary):not(.close):not(.companion-person):not(.orbit-document),.data-import) {border:1px solid var(--line);border-radius:7px;color:var(--ink);background:var(--surface);padding:9px 14px;min-height:42px;font-size:13px;line-height:1.6}
#app :is(button:not(.primary):not(.close):not(.companion-person):not(.orbit-document),.data-import):hover {border-color:var(--gold);background:var(--surface-soft);transform:none}
#app button:disabled {opacity:.55}
#app :is(.filters,.editor-tabs,.report-tabs,.history-view-switch) {gap:6px}
#app :is(.filters,.editor-tabs,.report-tabs,.history-view-switch) button:is(.active,[aria-selected=true],[aria-pressed=true]) {color:var(--ink);background:var(--pale);border-color:var(--ink);font-weight:600}
#app :is(.filters,.editor-tabs,.report-tabs,.history-view-switch) button::after {display:none}
#app :is(.filters,.editor-tabs,.report-tabs) {flex-wrap:wrap}
#app .tag {display:inline-block;background:var(--pale);border:1px solid var(--line);border-radius:4px;color:var(--ink);font-size:12px;padding:3px 9px;line-height:1.7}
#app label {color:var(--ink);font-size:13px;line-height:1.8}
#app :is(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=file]),select,textarea) {border:1px solid var(--line);border-radius:7px;background:var(--paper);color:var(--text);padding:11px 13px;font-size:14px;line-height:1.7}
#app input::placeholder,#app textarea::placeholder {color:var(--muted);opacity:1}
#app :is(input[type=range],input[type=checkbox],input[type=radio]) {accent-color:var(--ink)}
#app textarea {line-height:2;font-family:var(--serif)}
#app :is(.scoring-settings,.version-comparison,.access-panel,.dropzone,.report-banner,.draft-preview,.mode-card,.sample) {background:var(--surface-soft);color:var(--text);border-color:var(--line);border-radius:7px}
#app :is(.evidence,.reading-chapter blockquote) {background:var(--surface-soft);color:var(--text);border-left:2px solid var(--gold);border-radius:0 6px 6px 0}
#app .error {color:#934739}
html[data-scene-theme=night] #app .error {color:#f3b9a4}
.field-row {gap:16px}
.studio-grid {gap:22px}
.side-note {padding:24px}
.studio-grid>.panel {border-top:3px solid var(--gold)}
.settings-panel {max-width:920px;margin-inline:auto}
#app .settings-panel label {max-width:100%;display:grid;grid-template-columns:180px minmax(0,1fr);align-items:center;gap:14px;margin:22px 0}
.settings-panel label output {grid-column:2;font-size:12px;color:var(--muted)}
#app .settings-panel h2 {padding-bottom:14px;border-bottom:1px solid var(--line)}
.settings-panel>p {max-width:58em}
#app :is(.data-status,#model-status,#chat-status) {font-size:13px}
dialog {max-width:min(920px,calc(100vw - 32px));border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);padding:34px;box-shadow:var(--glass-shadow)}
dialog::backdrop {background:rgba(21,29,24,.6);backdrop-filter:blur(5px)}
dialog .close {min-width:40px;min-height:40px;border-radius:50%}

/* The homepage reads as one illustrated spread, followed by the desk. */
/* The first screen is meant to be the one big thing on the page, but it was built as just another
   bordered, filled, rounded box — the same --surface fill and hairline as the feature grid, the
   quotes strip and the workflow row. A measurement of #home counted 30 container-sized hairline
   boxes, most sharing that single fill, which is why the page reads as templates stacked rather
   than a composition: nothing is allowed to be the largest thing.
   Removing the card leaves the art to carry the weight (614x512, unclipped) while .hero-copy keeps
   its own --surface ground, so the body copy still sits on a legible fill over the illustration.
   Only the container changed; the grid, the copy and the art are untouched. */
.hero.appreciation-hero {position:relative;grid-template-columns:1fr 1.05fr;align-items:stretch;gap:0;margin:40px 0 28px;padding:0;background:none;border:0;border-radius:0;overflow:visible;box-shadow:none}
.appreciation-hero .hero-copy {padding:clamp(28px,3.6vw,54px);display:flex;flex-direction:column;justify-content:center;border:0;border-radius:0;background:var(--surface);box-shadow:none;backdrop-filter:none}
.appreciation-hero h1.new-motto {font-size:clamp(30px,3.2vw,46px)!important;line-height:1.5!important;letter-spacing:.01em;margin:24px 0 22px}
#app .appreciation-hero .hero-copy>p {font-size:14px;line-height:2;color:var(--muted);margin-bottom:25px;max-width:32em}
.appreciation-hero .hero-foot {font-size:11px;color:var(--muted);margin-top:26px;line-height:1.9;display:block;letter-spacing:0}
.appreciation-hero .hero-art {height:auto;min-height:440px;border:0;border-left:1px solid var(--line);border-radius:0;box-shadow:none;transform:none!important;filter:none}
.appreciation-hero .hero-art img {object-fit:cover;object-position:68% center;transition:transform 900ms var(--ui-ease)}
.art-number {background:rgba(248,245,237,.94);color:#2d463b;font-size:10px;letter-spacing:.12em;padding:8px 12px;right:16px;top:16px}
.art-label {font-size:13px;left:22px;bottom:20px;max-width:80%;line-height:1.5}
.home-workflow {margin:0 0 38px}
.home-workflow-heading {justify-content:flex-start;align-items:center;gap:24px;padding:4px 2px 12px;margin-bottom:0}
.home-workflow-heading .eyebrow {font-size:10px}
.home-workflow-heading h2 {font:500 21px/1.6 var(--serif);margin:0;color:var(--ink)}
.home-workflow-grid {position:relative;display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:0;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden;isolation:isolate}
.home-workflow-card {min-height:132px;padding:22px 26px;border:0;border-right:1px solid var(--line);border-radius:0;background:transparent;box-shadow:none;backdrop-filter:none;gap:6px;transition:background 180ms}
.home-workflow-card:last-child {border-right:0}
.home-workflow-card:nth-child(2) {background:var(--surface-soft);border-top:2px solid var(--gold);padding-top:20px}
.home-workflow-card:hover {transform:none;background:var(--surface-soft)}
.home-workflow-card span {font-size:11px;letter-spacing:.06em;color:var(--muted)}
.home-workflow-card strong {font:500 22px/1.6 var(--serif);color:var(--ink)}
.home-workflow-card small {font-size:12px;color:var(--muted);line-height:1.8}
.home-workflow-card b {right:22px;top:53px;font-size:20px;color:var(--gold)}
#app .literary-quotes {margin:28px 0 42px;padding:25px 30px;background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:7px;box-shadow:none;backdrop-filter:none}
.literary-quotes blockquote {font:19px/2 var(--serif);min-height:90px}
.literary-quotes cite {color:var(--muted);font-size:12px}
#app .companion-stage {margin:44px 0 48px;border-radius:12px;border:1px solid var(--line);background:var(--surface-soft);box-shadow:none;backdrop-filter:none}
.companion-stage::before {inset:12px;border-color:var(--line)}
.companion-stage-copy {padding:32px 0}
.companion-stage h2 {font-size:clamp(25px,2.7vw,34px)}
.companion-stage p {color:var(--muted);font-size:14px}
.companion-links {gap:20px;font-size:13px;flex-wrap:wrap}
.section-heading h2 {font-size:25px}
.section-heading h2 small {display:block;margin:8px 0 0;font-size:10px}
.section-heading>a {font-size:12px}
.feature-grid {grid-template-columns:1fr;gap:0;border-block:1px solid var(--line);background:var(--surface);border-radius:9px;overflow:hidden}
#app .feature {display:grid;grid-template-columns:50px 240px minmax(0,1fr) 160px;gap:18px;align-items:center;padding:25px 30px;border:0;border-bottom:1px solid var(--line);border-radius:0;background:transparent}
#app .feature:last-child {border-bottom:0}
.feature-num {position:static;font:italic 20px Georgia;color:var(--gold)}
.feature .icon {display:none}
.feature h3 {font:500 21px/1.6 var(--serif);margin:0}
#app .feature p {font-size:13px;color:var(--muted);line-height:1.9}
.feature-bottom {margin:0;font-size:10px;letter-spacing:.07em;color:var(--muted);gap:14px}
.feature-bottom>span {font-size:20px;color:var(--gold)}
#app .feature:hover {background:var(--surface-soft)}
#app .workspace-preview {margin:36px 0 48px;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:none;backdrop-filter:none}
#app .workspace-preview .editor-card {background:transparent;border:0;padding:30px}
.editor-card h3 {font-size:22px}
.editor-card p {font-size:13px}
.editor-note {padding:25px 30px;background:var(--surface-soft);border-left:1px solid var(--line)}
.editor-note blockquote {font-size:17px;line-height:2}

/* Collections, conversations and reports share the same paper/ink system. */
.reading-shelf-list {gap:18px}
.reading-shelf-item {padding:25px;min-width:0}
.reading-shelf-item>div {min-width:0}
.reading-shelf-item h2 {font-size:24px;line-height:1.55;overflow-wrap:anywhere}
.reading-shelf-item span {font-size:11px;color:var(--muted)}
.reading-shelf-item p {font-size:14px}
.reading-shelf-buttons {gap:8px;flex-shrink:0}
.reading-document:not(.reading-night) {background:#faf8f0;color:#354039;border-color:#d4d8cb;box-shadow:0 14px 45px rgba(29,40,29,.08);border-radius:8px}
.reading-document .reading-heading {padding-bottom:30px}
.reading-chapter {padding:36px 0}
.reading-chapter p,.reading-afterglow p {font-size:var(--reading-size,16px);line-height:2.1}
.reading-document:not(.reading-night) .reading-chapter blockquote {background:#efeee4;color:#354039;border-left-color:#9c805c}
.reading-preferences {gap:10px}
.reading-preferences label {font-size:13px}
.reading-shelf-tools {gap:12px}
.archive-controls {gap:16px;align-items:flex-start}
.archive-controls .filters {flex:1}
.author h3,.book-card h3 {font-size:21px;line-height:1.6}
.author small {font-size:12px}
.author p,.book-card p {font-size:14px}
.library-toolbar {gap:12px;flex-wrap:wrap}
.book-card {padding:24px}
.report-banner {padding:16px 22px;font-size:13px;line-height:1.9}
.report-tabs {padding:12px 0;border:0;gap:8px}
.score {font-variant-numeric:tabular-nums;letter-spacing:-.035em}
.dimension {padding-block:24px}
.dimension h3 {font-size:22px}
.dimension p {font-size:15px}
.data-counts {gap:12px}
.data-counts>div {background:var(--surface-soft);border-color:var(--line);padding:20px;border-radius:7px}
.data-counts strong {font-variant-numeric:tabular-nums}
.character-list {gap:12px}
.character-list article {background:var(--surface-soft);border:1px solid var(--line);border-radius:8px;padding:22px}
.character-list blockquote {padding-left:14px;border-left:2px solid var(--gold)}
.chat-message {max-width:88%;padding:20px 24px;background:var(--surface-soft);border-radius:3px 12px 12px 3px}
.chat-message.user {background:var(--surface);border-color:var(--line);border-radius:12px 3px 3px 12px}
.chat-message.assistant {border-left-color:var(--gold)}
.chat-message small {color:var(--muted);font-family:var(--sans);letter-spacing:.05em}
.chat-prompts {gap:8px}
#character-messages {scrollbar-color:var(--line) transparent}
.self-hero {border:1px solid var(--line);border-radius:12px}
.self-hero>div {background:linear-gradient(90deg,#f8f5edf5,#f8f5edc0,transparent)}
.self-status {background:var(--surface);border-color:var(--line);color:var(--ink)}
.companion-epilogue {background:transparent;border-color:var(--line)}
.footer-base {padding:24px 0;font-size:13px;color:var(--muted);border-top:1px solid var(--line)}
.footer-base small {font-size:11px}

/* Override previous night refinements at the same specificity. */
html[data-scene-theme=night] #app :is(.panel,.feature,.author,.book-card,.editor-card,.side-note,.history-card,.data-card,.method-card,.draft-preview,.report-section,.result,.dimension,.sample) {background:var(--surface);color:var(--text);border-color:var(--line)}
html[data-scene-theme=night] #app :is(.panel,.feature,.editor-card,.page-top) :is(p,small,li) {color:var(--text)}
html[data-scene-theme=night] #app :is(.panel,.feature,.editor-card,.page-top) small {color:var(--muted)}
html[data-scene-theme=night] #app button:not(.primary) {background:var(--surface);color:var(--ink);border-color:var(--line)}
html[data-scene-theme=night] #app :is(.filters,.editor-tabs,.report-tabs,.history-view-switch) button:is(.active,[aria-selected=true],[aria-pressed=true]) {background:var(--pale);border-color:var(--ink)}
html[data-scene-theme=night] #app>.panel :is(input:not([type=checkbox]):not([type=range]),select,textarea) {background:var(--paper);color:var(--text);border-color:var(--line)}
html[data-scene-theme=night] #app :is(.scoring-settings,.version-comparison,.self-status) {background:var(--surface-soft);color:var(--text)}
html[data-scene-theme=night] #app .self-hero>div {background:linear-gradient(90deg,#1c2b2cf5,#1c2b2cce,transparent)}
html[data-scene-theme=night] .header nav a {color:var(--muted)}
html[data-scene-theme=night] .header nav a.active {color:var(--ink)}
html[data-scene-theme=night] .primary {background:var(--ink);color:var(--paper);border-color:var(--ink)}
html[data-scene-theme=night] #app .hero-copy>p,html[data-scene-theme=night] #app .companion-stage p {color:var(--muted)}
html[data-scene-theme=night] .reading-document:not(.reading-night) .tag {background:#eef0e7;color:#2d463b;border-color:#d4d8cb}
html[data-scene-theme=night] dialog {background:var(--surface);color:var(--text)}

@media(min-width:1460px) {.header {width:calc(100% - 64px)}}
@media(hover:hover) and (prefers-reduced-motion:no-preference) {
  html:not([data-motion=quiet]) .appreciation-hero .hero-art:hover img {transform:scale(1.025)}
}
@media(max-width:1250px) {
  .header {margin:12px 20px 0;padding:12px 18px;gap:12px}
  .header .brand i {display:none}
  .header nav>a,.nav-more>summary {padding:10px}
  .header .header-cta {display:none}
}
@media(max-width:980px) {
  .header {min-height:70px;flex-wrap:nowrap;margin:12px 16px 0;gap:12px}
  .header .brand i {display:inline}
  .header .scene-controls {margin-left:auto}
  .header .nav-toggle {display:inline-grid;order:3;margin:0;place-items:center;width:42px;height:42px;border:1px solid var(--line);border-radius:8px;background:var(--surface-soft);color:var(--ink)}
  .header nav,.header.nav-open nav {position:absolute;top:calc(100% + 8px);left:0;right:0;height:auto;min-height:0;max-height:calc(100dvh - 115px);overflow:auto;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--glass-shadow);backdrop-filter:none;display:none}
  .header.nav-open nav {display:grid;grid-template-columns:1fr 1fr;gap:5px}
  .header nav>a {display:flex;align-items:center;min-height:46px;padding:10px 14px}
  .nav-more {grid-column:1/-1;align-self:stretch;border-top:1px solid var(--line);margin-top:8px;padding-top:8px}
  .nav-more>summary {padding:10px 14px;justify-content:space-between}
  .room-directory {position:static;width:100%;box-shadow:none;border:0;padding:18px 12px 8px;gap:18px}
  main {padding:0 28px}
  #app .feature {grid-template-columns:36px 195px minmax(0,1fr);gap:15px;padding:24px}
  .feature-bottom {grid-column:2/-1}
  .appreciation-hero .hero-art {min-height:410px}
  .appreciation-hero h1.new-motto {font-size:36px!important}
}
@media(max-width:700px) {
  .header {margin:8px 10px 0;padding:9px 12px;min-height:64px;border-radius:12px;gap:8px}
  .header .brand {font-size:20px}
  .header .brand-avatar {width:36px;height:36px}
  .header .brand i {display:none}
  .header .scene-toggle {width:38px;padding:0}
  .header .scene-settings-toggle {width:38px}
  .header .nav-toggle {width:38px;height:40px;font-size:17px}
  main {padding:0 16px}
  .hero.appreciation-hero {grid-template-columns:1fr;margin:24px 0 22px;border-radius:12px}
  .appreciation-hero .hero-copy {padding:28px 25px 26px}
  .appreciation-hero h1.new-motto {font-size:clamp(28px,7.5vw,36px)!important;line-height:1.5!important;margin:18px 0}
  .appreciation-hero .hero-copy>p {font-size:14px;margin-bottom:22px}
  .appreciation-hero .hero-art {height:260px;min-height:0;border-left:0;border-top:1px solid var(--line)}
  .appreciation-hero .hero-art img {object-fit:cover;object-position:68% 43%}
  .art-label {font-size:11px;left:16px;bottom:14px}
  .art-number {font-size:9px;top:12px;right:12px}
  .home-workflow-heading {display:block;padding-bottom:14px}
  .home-workflow-heading h2 {margin-top:8px;font-size:23px}
  .home-workflow-grid {grid-template-columns:1fr}
  .home-workflow-card {min-height:114px;padding:18px 22px;border-right:0;border-bottom:1px solid var(--line)}
  .home-workflow-card:last-child {border-bottom:0}
  .home-workflow-card strong {font-size:22px}
  .home-workflow-card b {top:46px}
  #app .page-top {margin:24px 0 20px;padding:24px;border-radius:9px}
  .page-top h1 {font-size:29px}
  #app .panel {padding:23px}
  #app .settings-panel label {grid-template-columns:1fr;gap:8px;margin:20px 0}
  .settings-panel label output {grid-column:1}
  .studio-grid,.result-top,.version-grid,.reading-shelf-list {grid-template-columns:1fr;gap:16px}
  .field-row {grid-template-columns:1fr;gap:16px}
  #app .literary-quotes {padding:23px;margin:24px 0 32px}
  .literary-quotes blockquote {min-height:120px;font-size:17px}
  #app .companion-stage {margin:32px 0;padding:26px 14px 0}
  .companion-stage-copy {padding:0 4px}
  .companion-stage p {font-size:13px}
  .companion-side {height:165px}
  .section-heading {align-items:center;gap:14px}
  .section-heading h2 {font-size:24px}
  #app .feature {grid-template-columns:26px minmax(0,1fr);gap:10px 14px;padding:24px 20px}
  .feature h3 {font-size:22px}
  #app .feature p,.feature-bottom {grid-column:2}
  .feature-bottom {margin-top:4px}
  #app .workspace-preview {grid-template-columns:1fr;margin:28px 0}
  #app .workspace-preview .editor-card {padding:25px;gap:15px}
  .editor-note {border-left:0;border-top:1px solid var(--line);padding:24px}
  .reading-shelf-item {padding:22px;flex-direction:column;gap:14px}
  .reading-shelf-buttons {flex-direction:row;flex-wrap:wrap;justify-content:flex-start;align-items:center}
  .reading-shelf-item h2 {font-size:23px}
  .reading-document {padding:28px 23px;margin:24px auto 40px}
  .reading-chapter {grid-template-columns:25px minmax(0,1fr);gap:12px;padding:28px 0}
  .reading-chapter h2 {font-size:23px}
  .reading-actions {gap:8px}
  .chat-message {max-width:96%;padding:17px 19px}
  .data-counts {grid-template-columns:1fr 1fr 1fr;gap:8px}
  .data-counts>div {padding:14px 10px}
  .data-counts strong {font-size:28px}
  .data-counts span {font-size:11px}
  dialog {padding:26px 22px}
  .footer-base {display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:22px 0}
  .epilogue-dialogue {font-size:11px;gap:4px}
}
@media(prefers-reduced-motion:reduce) {
  .appreciation-hero .hero-art img,.nav-more>summary span {transition:none;transform:none}
}
@media print {
  .skip-link,.nav-more {display:none}
  #app :is(.panel,.reading-document) {border-radius:0;background:white;box-shadow:none}
  .site-scene::after {display:none}
}
.grade-legend{margin:18px 0 10px;padding:13px 14px;border:1px solid var(--line);background:#f6f4ed8c;font-size:11px}.grade-legend summary{cursor:pointer;color:var(--ink);font:500 13px var(--serif)}.grade-legend p{font-size:10px;line-height:1.7;color:var(--muted)}.grade-legend ol{display:grid;grid-template-columns:1fr 1fr;gap:7px 18px;margin:12px 0 0;padding-left:20px}.grade-legend li{padding:3px 0;color:var(--muted)}.grade-legend li span{display:inline-block;min-width:53px;color:var(--ink);font-variant-numeric:tabular-nums}.grade-legend li strong{font-weight:500;color:var(--text)}
.author-card-heading{display:flex;align-items:center;gap:16px;min-height:82px;margin-bottom:16px}.author-card-heading h3{margin-top:0}.author-card-portrait{flex:none;width:68px;height:82px;object-fit:cover;object-position:center 25%;border:1px solid var(--line);filter:sepia(.12)}.author-card-awards{font-size:11px;color:var(--ink);border-top:1px solid var(--line);padding-top:10px}.author-file-heading{display:grid;grid-template-columns:minmax(100px,160px) minmax(0,1fr);gap:24px;align-items:center}.author-file-heading:not(:has(figure)){grid-template-columns:1fr}.author-file-heading h2{font:500 clamp(25px,4vw,34px)/1.4 var(--serif);margin:8px 0}.author-file-en{font:italic 15px/1.6 Georgia,serif;color:var(--muted)}.author-file-portrait{margin:0}.author-file-portrait img{display:block;max-width:100%;width:160px;height:200px;object-fit:contain;background:var(--pale);border:1px solid var(--line)}.author-file-portrait figcaption{margin-top:8px;font-size:10px;line-height:1.5;overflow-wrap:anywhere}.author-awards{display:flex;flex-wrap:wrap;gap:6px}.author-sources{margin:20px 0;padding-top:14px;border-top:1px solid var(--line)}.author-sources summary{cursor:pointer;font:500 13px var(--serif)}.author-sources ol{padding-left:20px}.author-sources li{padding:5px 0;overflow-wrap:anywhere;font-size:12px}.archive-controls .filters{display:flex;flex-wrap:wrap;gap:8px}.archive-controls .filters button{min-height:40px}.archive-controls .filters button[aria-pressed=true]{box-shadow:inset 0 -2px 0 currentColor}.projection-photo-credit{font-size:10px;line-height:1.5;color:#6c5439}.projection-figure.is-photograph img{object-fit:cover;object-position:center 25%;mask-image:none}
@media(max-width:480px){.author-file-heading{grid-template-columns:96px minmax(0,1fr);gap:15px}.author-file-portrait img{height:136px}.author-file-heading h2{font-size:24px}.grade-legend ol{grid-template-columns:1fr}.author-card-heading{gap:12px}}
