/* V8: an editorial reading layer over the existing academy, not a new UI kit. */
@layer atelier {
  body { font-family: var(--body); font-size: var(--type-body); line-height: var(--leading-body); }
  h1,h2,h3,h4 { font-synthesis: none; overflow-wrap: anywhere; line-break: strict; }
  h1,h2 { font-family: var(--serif); font-weight: var(--weight-book); letter-spacing: var(--tracking-title); }
  h1 { font-size: var(--type-page); line-height: var(--leading-title); }
  h2 { font-size: var(--type-section); }
  h3 { font-size: var(--type-card); }
  p { letter-spacing: 0; }
  .eyebrow,.tiny { font: var(--weight-book) var(--type-micro)/1.8 var(--mono); letter-spacing: var(--tracking-label); }
  .fine-print,.form-helper { font-size: var(--type-note); line-height: 1.85; }
  .page-intro h1,.v2-heading h1,.eco-page h1,.explore-room-header h1,.archives-page h1 { font-size: var(--type-page); line-height: 1.6; letter-spacing: var(--tracking-title); }
  .page-intro p,.v2-heading p,.explore-room-header>p { font: var(--type-copy)/var(--leading-body) var(--body); }
  .button,.text-link,.quiet-control { font-family: var(--body); font-size: var(--type-ui); letter-spacing: .025em; }
  .button { min-height: 46px; white-space: normal; text-align: center; padding: 11px 22px; gap: 22px; }
  .button.gold { background: #c5b38e; color: #141712; box-shadow: inset 0 1px #e8d8b72b; }
  .button.gold:hover { background: #d3c3a1; box-shadow: inset 0 1px #f7e7c12b,0 5px 16px #0002; }
  .button.outline { border-color: #aa96734d; }
  .text-link,.quiet-control { min-height: 38px; align-items: center; }
  :where(button,a,input,select,textarea) { transition-duration: var(--motion-press); transition-timing-function: var(--ease-academy); }
  :where(button,a):focus-visible { outline: 2px solid var(--metal-light); outline-offset: 4px; }
  input,select,textarea { border-radius: var(--radius-control); font: var(--type-body)/1.7 var(--body); }
  input::placeholder,textarea::placeholder { font-size: var(--type-ui); color: #959d8f; opacity: 1; }
  label { font-size: var(--type-ui); }
  label>span,small { font-size: var(--type-note); }
  .form-error { color: var(--ink-danger); font-size: var(--type-ui); line-height: 1.8; }
  .modal { box-shadow: var(--shadow-modal); }
  .modal p { font: var(--type-copy)/var(--leading-body) var(--body); }
  .modal h2 { font-size: var(--type-section); }
  .modal .fine-print,.modal input,.modal-buttons .button { font-size: var(--type-ui); }
  .empty-state p,.loading-state,.route-loading { font-size: var(--type-ui); }
  .footer-bottom,.footer-top>a:last-child { font-size: var(--type-label); }

  /* The wordmark has a fixed line box; optional font loading cannot shift it. */
  .brand { gap: 13px; flex-shrink: 0; }
  .brand-wordmark { display: block; min-width: 0; }
  .brand .academy-mark { width: 46px; height: 46px; }
  .brand strong { font: 400 var(--type-brand)/1.5 var(--serif); letter-spacing: .045em; color: #e0d8c9; }
  .brand strong i { font: 400 .7em/1 var(--font-latin); margin-inline: .45em; }
  .brand small { font: 500 11px/1.5 var(--font-latin); letter-spacing: .11em; margin-top: 3px; color: #bfae8d; }
  .brand--admission strong,.brand--footer strong { font-size: 19px; }
  .brand--admission small,.brand--footer small { font-size: 10px; }
  .nav-wrap { gap: 24px; }
  .nav-wrap nav { gap: clamp(14px,1.7vw,26px); }
  .nav-wrap nav>a { font-size: var(--type-note); }
  .account-label>small { font: 11px/1.7 var(--mono); letter-spacing: .02em; }
  .account-label>span { font-size: var(--type-note); }
  .nav-sound { font-size: var(--type-micro); }
  .motion-toggle { display: inline-grid; }
  .v2-subnav,.central-subnav,.central-subnav .text-link { font-size: var(--type-note); line-height: 1.9; }
  .npc-note { border: 0; border-left: 1px solid #ae9b6b49; background: #b6a17e04; padding: 16px 20px; }
  .npc-note>p,.npc-note--dossier p,.dossier-cover>.npc-note p { font-size: var(--type-ui); line-height: 2; }
  .npc-note-heading b { font-size: var(--type-ui); }
  .npc-note-heading small,.npc-provenance,.npc-note-heading>i { font-size: var(--type-micro); }
  .base-record-values dt,.record-section-heading small { font-size: var(--type-label); }
  .base-record-values dd,.profile-basic-record .base-record-values dd { font-size: var(--type-copy); }
  .record-privacy p,.field-hint { font-size: var(--type-note); }

  /* Entry is a paper object; its body stays serif and uses ink, not muted UI grey. */
  .access-gate h1 { font-size: var(--type-lead); letter-spacing: .07em; }
  .delivery-heading h1 { font-size: var(--type-page); letter-spacing: .06em; }
  .letter-body>p,.invitation-letter p { font: 400 var(--type-copy)/2.2 var(--serif); letter-spacing: .015em; }
  .letter-body>p { color: #474439; margin-bottom: 1.35em; }
  .letter-body .letter-last-line { color: #39362d; }
  .invitation-sheet h1 { font-size: var(--type-page); letter-spacing: .055em; }
  .letter-date,.letter-signature { font-size: var(--type-note); }
  .letter-turn { font-size: var(--type-note); min-height: 44px; }
  .dossier-cover h1 { font-size: var(--type-page); letter-spacing: .075em; }
  .dossier-cover>p { font: var(--type-ui)/2 var(--body); letter-spacing: .015em; color: #aca697; }
  .dossier-cover .file-kicker { font-size: var(--type-micro); letter-spacing: .08em; }
  .dossier-field label,.dossier-field input,.dossier-field textarea,.dossier-field select { font-size: var(--type-copy); }
  .dossier-field small,.dossier-storage-note,.dossier-consent { font-size: var(--type-note); line-height: 1.9; }
  .dossier-paper-head h2 { font-size: var(--type-section); }
  .dossier-paper-head p,.dossier-bottom-links { font-size: var(--type-note); }
  .ritual-button { font-size: var(--type-ui); letter-spacing: .06em; }
  .confirmation h1 { font: 400 clamp(1.5rem,2.4vw,2.125rem)/1.9 var(--serif); letter-spacing: .05em; max-width: 48rem; }

  /* Reconnect: the number remains the dominant imprint. Stage choreography is untouched. */
  .returning-heading h1 { font-size: var(--type-section); letter-spacing: .08em; }
  .returning-header,.returning-footer { font-size: var(--type-micro); letter-spacing: .07em; }
  .returning-header>span:last-child,.returning-heading h1>span { font-size: var(--type-label); letter-spacing: .035em; }
  .returning-heading p,.returning-index { font-size: var(--type-micro); letter-spacing: .12em; }
  .returning-stages li { font-size: var(--type-label); color: #89917e; }
  .returning-stages li>span { font-size: var(--type-micro); color: #87907c; }
  .returning-number>p { font-size: var(--type-note); letter-spacing: .035em; }
  .returning-number>p>span,.returning-name>span { font-size: var(--type-micro); }
  .returning-number-value { font-size: var(--type-number); letter-spacing: .025em; }
  .returning-name strong { font-size: clamp(1.625rem,2.5vw,2.25rem); letter-spacing: .04em; }
  .returning-affiliation span,.returning-seal-label { font-size: var(--type-micro); }
  .returning-affiliation strong,.returning-impression>p { font-size: var(--type-note); }
  .returning-connection strong { font-size: var(--type-lead); }
  .returning-connection p,.returning-footer button { font-size: var(--type-note); }

  /* Awakened records: the existing five materials remain, with a readable reverse. */
  .result-copy h1,.lineage-result h1,.lineage-result h2 { font-size: var(--type-page); letter-spacing: .035em; }
  .result-description,.result-copy>p { font: var(--type-copy)/2 var(--body); }
  .dimension-label,.dimension-heading,.dimension>span { font-size: var(--type-note); }
  .v2-card-shell { --card-min-height: 590px; min-height: var(--card-min-height); aspect-ratio: auto; }
  .v2-card-rotor { display: grid; height: auto; min-height: var(--card-min-height); }
  .v2-card-face { position: relative; inset: auto; grid-area: 1/1; min-height: var(--card-min-height); }
  .v2-card-face>header { font: 500 11px/1.6 var(--font-latin); letter-spacing: .08em; }
  .v2-card-face h2 { font: 400 26px/1.6 var(--serif); letter-spacing: .025em; }
  .v2-card-inscription { font-size: 11px; letter-spacing: .045em; }
  .v2-card-grade>strong { font: 500 48px/1.2 var(--font-latin); }
  .v2-card-grade>span,.v2-card-grade>small { font-size: 11px; }
  .v2-card-fields>div>span,.v2-card-fields strong small { font-size: 11px; }
  .v2-card-fields strong { font: 14px/1.65 var(--mono); letter-spacing: .01em; }
  .v2-card-fields>div:last-child>strong { font-size: 12px; }
  .v2-card-face>footer { font-size: 10px; line-height: 1.7; letter-spacing: .01em; }
  .v2-card-back dt,.v2-card-back dd { font-size: 12px; }
  .v2-card-back>p,.v2-card-badges>span,.field-card-stamp { font-size: 11px; line-height: 1.8; }
  .v2-card-view .v2-card-shell { min-height: var(--card-min-height); }

  /* Forum: open editorial rows, a quiet margin and a comfortable reading measure. */
  .forum-banner { padding-block: 46px 34px; align-items: flex-end; }
  .forum-banner h1 { font-size: var(--type-page); letter-spacing: .04em; line-height: 1.5; }
  .forum-banner p { font: var(--type-copy)/1.9 var(--body); max-width: 42rem; }
  .forum-watermark { opacity: .035; }
  .forum-sidebar nav a { font-size: var(--type-ui); }
  .forum-sidebar nav a>small,.forum-stats,.feed-toolbar { font-size: var(--type-label); }
  .forum-search input { font-size: var(--type-copy); }
  .forum-feed .post-row { padding-block: 27px; }
  .forum-feed .post-copy h3,.post-copy h3 { font: 400 var(--type-card)/1.75 var(--serif); letter-spacing: .012em; margin-bottom: 10px; }
  .post-copy p { font: var(--type-ui)/1.9 var(--body); color: var(--ink-secondary); }
  .post-meta { font-size: var(--type-label); line-height: 1.8; gap: 9px 15px; flex-wrap: wrap; }
  .guide-pin { background: none; }
  .guide-pin strong { font: 400 var(--type-copy)/1.8 var(--serif); }
  .guide-pin small,.guide-pins-heading small { font-size: var(--type-label); }
  .post-detail-grid article { min-width: 0; }
  .post-detail-grid article>h1 { font-size: var(--type-page); line-height: 1.65; text-wrap: pretty; }
  .post-body { max-width: var(--measure-reading); font: var(--type-body)/var(--leading-reading) var(--body); color: #d1d3c7; letter-spacing: .01em; }
  .author-line>div,.comment-meta { font-size: var(--type-ui); }
  .author-line>div { min-width: 0; overflow-wrap: anywhere; }
  .author-line>.button { min-width: 110px; font-size: var(--type-ui); white-space: nowrap; flex-shrink: 0; }
  .author-line time,.comment-meta time { font: var(--type-label)/1.8 var(--mono); letter-spacing: 0; }
  .comment p { font: var(--type-copy)/2 var(--body); color: #c4c9ba; }
  .guide-document-body p,.archive-content p { font: var(--type-body)/var(--leading-reading) var(--body); letter-spacing: .005em; max-width: var(--measure-reading); }
  .guide-document-body section { margin-bottom: var(--space-5); }

  /* Academy records use registers and margins, rather than nested boxes. */
  .terminal-heading h1 { font-size: var(--type-page); line-height: 1.6; }
  .terminal-heading p,.terminal-dispatch p,.terminal-attendance p,.terminal-case p { font: var(--type-copy)/2 var(--body); }
  .terminal-register span,.terminal-register a,.terminal-letter-entry>small,.terminal-cabinet-entry>small { font-size: var(--type-note); }
  .terminal-growth p { font-size: var(--type-note); }
  .terminal-growth p span,.terminal-dispatch small { font-size: var(--type-label); }
  .terminal-case { border-inline: 0; padding-inline: 0; background: linear-gradient(90deg,#a9956610,transparent 75%); }
  .terminal-post>span { font: 400 var(--type-card)/1.8 var(--serif); }
  .terminal-post small,.eco-small-note,.eco-data-note { font-size: var(--type-note); }
  .academy-briefing>p,.academy-briefing li small { font-size: var(--type-ui); }
  .academy-briefing>footer { font-size: var(--type-label); }
  .commission-copy h2,.region h2 { font-size: var(--type-section); }
  .commission-copy p,.region p,.organization-brief p,.eco-organization-dossier p,.dungeon-clue-text,.entry-sections>p { font: var(--type-copy)/2 var(--body); }
  .commission-meta,.commission-copy .fine-print,.room-footnote { font-size: var(--type-label); }
  .cabinet-object-index,.cabinet-top,.drawer-number,.entry-code { font-family: var(--mono); letter-spacing: .035em; }
  .explore-nav a,.explore-journal>p,.explore-journal li small,.journal-permit,.exploration-footer,.archive-floor-note>span { font-size: var(--type-label); }
  .archive-floor-note p,.notice-paper p { font: var(--type-copy)/2 var(--body); }
  .cabinet-drawer>small,.entry-recipient,.narrative-label { font-size: var(--type-label); }
  .profile-heading h1 { font-size: var(--type-page); }
  .profile-heading p,.profile-heading .profile-bio,.profile-grid>aside p { font-size: var(--type-copy); line-height: 2; }

  /* EVA: typography belongs to a conversation, the silver rule is its only frame. */
  .eva-page { --eva-white: #dbe2e5; --eva-rule: #8babb32a; }
  .eva-layout { grid-template-columns: 260px minmax(0,1fr); gap: 56px; padding-top: 46px; }
  .eva-presence h1 { font: 400 var(--type-section)/1.7 var(--serif); letter-spacing: .06em; }
  .eva-name { font-family: var(--font-latin); font-weight: 500; letter-spacing: .08em; }
  .eva-presence>p,.eva-presence dl { font: var(--type-ui)/1.9 var(--body); }
  .eva-presence .eva-boundary,.eva-network-state,.eva-dialogue-head { font-size: var(--type-label); }
  .eva-welcome h2 { font-size: var(--type-section); }
  .eva-welcome p { font: var(--type-copy)/2 var(--body); }
  .eva-connection-notice { border: 0; border-left: 2px solid #839aa151; background: #8299a008; padding: 16px 20px; }
  .eva-connection-notice p,.eva-connection-notice small { font-size: var(--type-ui); }
  .eva-message { padding-block: 25px; border-bottom: 1px solid #8ca1a619; }
  .eva-message.is-human { margin-left: 30px; padding: 16px 0 16px 20px; background: none; border-left: 1px solid #95a6ac45; }
  .eva-message .eva-answer,.eva-message.is-human .eva-answer { font: var(--type-body)/2 var(--body); color: #cbd5d6; letter-spacing: 0; max-width: 43rem; }
  .eva-message-author { font: var(--type-label)/1.8 var(--body); letter-spacing: .025em; }
  .eva-message>small,.eva-tool-trace { font-size: var(--type-label); color: #9bafb8; }
  .eva-prompt-chips button { font-size: var(--type-ui); border: 0; border-bottom: 1px solid #8aabb343; padding-inline: 2px; margin-right: 17px; }
  .eva-composer textarea { font: var(--type-body)/1.9 var(--body); padding: 16px 18px; background: #a3b7be05; }
  .eva-composer-label select,.eva-composer-label label { font-size: var(--type-ui); }
  .eva-dialogue-foot,.eva-privacy,.eva-generating,.eva-composer>div>span { font-size: var(--type-note); }

  /* ROOT retains its authority boundary and favours legible operations. */
  .root-heading h1,.root-password-gate>h1 { font-size: var(--type-page); line-height: 1.6; letter-spacing: .055em; }
  .root-heading p,.root-password-gate>p { font: var(--type-copy)/2 var(--body); color: #b8b4a6; }
  .root-nav { gap: 12px 27px; font-size: var(--type-ui); }
  .root-nav a { min-height: 38px; display: inline-flex; align-items: center; }
  .root-stat-grid span,.root-module-directory small,.root-system-register dt { font-size: var(--type-note); }
  .root-stat-grid strong { font: 400 var(--type-data)/1.7 var(--mono); }
  .root-page table { font: var(--type-ui)/1.8 var(--body); }
  .root-page :is(td,th) { padding: 14px 16px; vertical-align: top; }
  .root-page :is(label,input,select,textarea) { font-size: var(--type-ui); }
  .root-page .fine-print,.root-recovery-help { font-size: var(--type-note); line-height: 1.9; }
  .root-json { font: var(--type-note)/1.9 var(--mono); }

  @media (min-width: 961px) and (max-width: 1180px) {
    .nav-wrap nav { display: none; }
    .menu-button { display: grid; }
    .menu-open .nav-wrap nav { display: flex; position: absolute; top: 88px; left: 0; right: 0; height: auto; flex-direction: column; padding: 16px var(--gutter); gap: 0; background: #121710; box-shadow: 0 18px 25px #0005; }
    .menu-open .nav-wrap nav>a { padding: 12px 0; border-bottom: 1px solid var(--line); }
    .menu-open .nav-wrap nav>a.active::after { display: none; }
  }

  @media (max-width: 1320px) and (min-width: 961px) {
    .nav-wrap nav { gap: 13px; }
    .nav-wrap nav>a { font-size: 12px; }
    .nav-actions { gap: 9px; }
    .brand strong { font-size: 19px; }
    .brand small { font-size: 10px; }
    .account-link .account-label>span { display: none; }
  }
  @media (max-width: 800px) {
    :root { --type-page: clamp(1.75rem,6.5vw,2.125rem); --type-section: 1.5rem; --tracking-title: .025em; }
    .brand .academy-mark { width: 36px; height: 36px; }
    .brand strong { font-size: 17px; letter-spacing: .025em; }
    .brand small { font-size: 10px; letter-spacing: .055em; margin-top: 2px; }
    .brand { gap: 9px; }
    .nav-wrap { gap: 12px; }
    .nav-actions { gap: 6px; }
    .nav-actions .account-label { display: none; }
    .brand--footer strong { font-size: 16px; }
    .brand--admission strong { font-size: 17px; }
    .admission-header>.admission-index { font-size: 10px; letter-spacing: .04em; }
    .dossier-cover { padding: 30px 26px; }
    .dossier-cover h1 { max-width: calc(100% - 58px); }
    .dossier-field :is(input,select,textarea),.field-filterbar :is(input,select),.field-task-panel :is(input,select,textarea),.root-page :is(input,select,textarea),.eva-composer-label select { font-size: var(--type-body); }
    .letter-body>p { font-size: var(--type-copy); }
    .returning-heading h1>span { display: block; margin: 6px 0 0; }
    .returning-document { grid-template-columns: minmax(0,1fr) 88px; gap: 25px 18px; }
    .returning-stages { grid-column: 1/-1; grid-row: 2; flex-direction: row; justify-content: space-between; gap: 10px; }
    .returning-impression { padding-left: 0; }
    .returning-connection { padding-left: 0; }
    .returning-seal { width: 82px; height: 82px; }
    .returning-record { padding-left: 15px; }
    .returning-affiliation { gap: 13px; }
    .returning-connection { min-height: 80px; }
    .returning-footer>span { font-size: 10px; max-width: 150px; }
    .returning-footer>div>span { font-size: 11px; letter-spacing: 0; text-wrap: pretty; }
    .forum-banner>.button { margin-top: 20px; font-size: var(--type-ui); }
    .forum-sidebar nav a { padding: 10px 13px; font-size: var(--type-note); }
    .forum-banner p { max-width: none; }
    .forum-feed .post-row { padding-block: 24px; }
    .post-body { line-height: 2; }
    .eva-layout { grid-template-columns: 1fr; gap: 28px; padding-top: 28px; }
    .eva-presence { padding: 0 0 24px; }
    .eva-presence dl { gap: 15px; }
    .eva-presence dl>div { font-size: var(--type-label); }
    .eva-message.is-human { margin-left: 10px; }
    .eva-presence .eva-network-state { font-size: 10px; }
    .v2-card-shell,.v2-card-view .v2-card-shell { --card-min-height: 610px; min-height: var(--card-min-height); }
    .v2-card-crest { width: 38%; }
    .v2-card-view .v2-card-face { padding: 25px 22px 20px; }
    .root-nav { gap: 9px 21px; }
    .terminal-heading { gap: 20px; }
    .terminal-official-mark { width: 80px; height: 80px; }
    .terminal-case { padding: 28px 0; }
  }
  @media (max-width: 560px) {
    .nav-wrap { padding-inline: 18px; gap: 8px; }
    #site-header { height: 80px; }
    .menu-open .nav-wrap nav { top: 80px; }
    .nav-actions { gap: 7px; }
    .nav-actions .motion-toggle { display: inline-grid; width: 26px; font-size: 17px; }
    .nav-actions .nav-sound { display: none; }
    .menu-open .nav-actions .nav-sound { display: inline-flex; position: absolute; right: 30px; top: 93px; width: auto; z-index: 1; font-size: 12px; padding: 6px 9px; }
    .nav-actions .account-link { gap: 0; position: relative; }
    .nav-actions .account-label { display: flex; position: absolute; top: 30px; left: 50%; transform: translateX(-50%); max-width: none; }
    .nav-actions .account-label>span { display: none; }
    .nav-actions .account-label>small { font-size: 9px; white-space: nowrap; }
    .nav-enroll { display: none; }
    .account-link .avatar { width: 28px; height: 28px; }
    .menu-button { width: 29px; }
    .footer-top { flex-wrap: wrap; }
    .returning-header { font-size: 10px; letter-spacing: .015em; }
    .returning-header>span:last-child { font-size: 11px; }
    .returning-affiliation strong { font-size: 12px; }
    .returning-seal-label { font-size: 10px; }
    .returning-number-value { font-size: clamp(30px,9.2vw,43px); }
    .returning-number-value.returning-number-long { font-size: 25px; }
    .returning-name strong { font-size: 26px; }
    .returning-footer { align-items: flex-end; }
    .profile-heading>div:nth-child(2) { min-width: 0; }
    .profile-heading>.button { margin-left: 0; }
    .eco-section-heading { flex-wrap: wrap; }
    .v2-card-back dt,.v2-card-back dd { font-size: 11px; }
    .eva-presence { padding-top: 10px; }
    .eva-presence .eva-sigil { position: absolute; right: 0; top: 44px; width: 62px; height: 62px; margin: 0; }
    .eva-presence .eva-name { margin: 16px 0 0; font-size: 18px; }
    .eva-presence h1 { font-size: 23px; margin: 8px 0 16px; max-width: calc(100% - 67px); line-height: 1.65; }
    .eva-presence dl { margin-top: 18px; }
    .eva-dialogue-head { padding-block: 5px 17px; }
    .eva-dialogue-head label { font-size: 12px; }
    .eva-message .eva-answer { font-size: 16px; }
  }
  @media (max-width: 350px) {
    .nav-wrap { padding-inline: 14px; gap: 5px; }
    .brand strong { font-size: 15px; }
    .brand small { font-size: 9px; letter-spacing: .03em; }
    .brand .academy-mark { width: 32px; height: 32px; }
    .brand { gap: 7px; }
    .nav-actions { gap: 4px; }
    .author-line { flex-wrap: wrap; }
    .author-line>.button { margin-left: 48px; }
  }
  @media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .page-enter,.folio-enter,.eva-live-dot { animation: none; }
    :where(button,a,input,select,textarea) { transition-duration: 0ms; }
  }
}
