:root {
  --bg:#f3ecdf; --paper:#fbf7ee; --ink:#2b2520; --muted:#776b5d; --line:#e1d6c1;
  --accent:#8e3326; --accent-soft:#f1e0d0; --sage:#ebe2cf; --mint:#d8cbb1;
  --forest:#1f3a2f; --cream:#f7f0e2; --shadow:0 18px 50px #3a2a1418;
  --serif:'Literata',Georgia,'Times New Roman',serif;
  --sans:'Onest',system-ui,-apple-system,'Segoe UI',sans-serif;
  --gutter:clamp(20px,5.2vw,80px); --reader-font:24px; color-scheme:light;
}
:root[data-theme='dark'] {
  --bg:#14120f; --paper:#1d1a16; --ink:#efe6d4; --muted:#ab9f8b; --line:#3a332a;
  --accent:#dba77a; --accent-soft:#3a2c22; --sage:#25211b; --mint:#3a3127;
  --shadow:0 18px 50px #0006; color-scheme:dark;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; scroll-padding-top:100px; scrollbar-gutter:stable; -webkit-text-size-adjust:100%; text-size-adjust:100%; }
body { font:15px/1.7 var(--sans); color:var(--ink); background:var(--bg); -webkit-font-smoothing:antialiased; }
a { color:inherit; text-decoration:none; }
button,input,select { font:inherit; color:inherit; }
button { border:0; background:none; cursor:pointer; }
button,a { touch-action:manipulation; -webkit-tap-highlight-color:transparent; }
button:disabled { opacity:.35; cursor:default; }
[hidden] { display:none!important; }
:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
::selection { background:var(--accent-soft); color:var(--ink); }
svg { display:block; }
img { display:block; max-width:100%; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); white-space:nowrap; }
.skip { position:fixed; left:20px; top:-100px; z-index:100; background:var(--ink); color:var(--bg); padding:12px 20px; border-radius:6px; }
.skip:focus { top:12px; }
.section-shell { width:100%; max-width:1480px; margin-inline:auto; padding-inline:var(--gutter); }
.eyebrow { font-size:10px; font-weight:500; letter-spacing:.14em; text-transform:uppercase; }
.accent { color:var(--accent); }
h1,h2,h3 { font-family:var(--serif); font-weight:400; }
h2 { font-size:clamp(38px,4.5vw,64px); letter-spacing:-.055em; line-height:1.23; }
h2 em { font-weight:400; }
.bar { position:sticky; top:0; z-index:20; display:flex; align-items:center; gap:34px; padding:14px max(var(--gutter),calc((100% - 1320px)/2)); border-bottom:1px solid var(--line); background:var(--bg); }
.bar-brand { display:flex; align-items:center; gap:14px; font:19px/1.3 var(--serif); margin-right:auto; }
.bar-brand small { display:block; margin-top:6px; font:8px/1.5 var(--sans); letter-spacing:.13em; text-transform:uppercase; color:var(--muted); }
.brand-mark { font:italic 43px/1 var(--serif); color:var(--accent); letter-spacing:-.13em; padding-right:5px; }
.bar-nav { display:flex; align-items:center; gap:30px; font-size:12px; }
.bar-nav a { min-height:44px; display:flex; align-items:center; gap:8px; position:relative; }
.nav-number { color:var(--muted); font-size:8px; }
.bar-nav a[aria-current]::after { content:''; position:absolute; height:2px; background:var(--accent); inset:auto 0 -3px; }
.bar-actions { display:flex; align-items:center; gap:8px; }
.icon-button { width:44px; min-width:44px; min-height:44px; display:inline-grid; place-items:center; border-radius:50%; }
.icon-button svg { width:19px; height:19px; }
.icon-button[aria-pressed='true'] { color:var(--accent); }
.theme-toggle { border:1px solid var(--line); }
.theme-sun { display:none; }
[data-theme='dark'] .theme-sun { display:block; }
[data-theme='dark'] .theme-moon { display:none; }
.menu-toggle { display:none; }
.hero-top { display:flex; justify-content:space-between; align-items:center; padding-top:30px; gap:20px; color:var(--muted); }
.hero-top .eyebrow { display:flex; align-items:center; gap:10px; font-size:9px; }
.tiny-dot { width:5px; height:5px; border-radius:50%; background:var(--accent); flex:none; }
.edition { font-size:10px; }
.hero-layout { display:grid; grid-template-columns:1fr 1fr; gap:6%; align-items:center; padding:44px 0 48px; }
.hero-copy { min-width:0; }
.hero-author { font-size:12px; letter-spacing:.025em; }
.hero-author span { display:block; color:var(--muted); font-size:10px; margin-top:4px; }
.hero h1 { font-size:clamp(72px,8.9vw,132px); line-height:1.06; letter-spacing:-.075em; margin:27px 0; }
.hero h1 em { font-weight:400; padding-left:.3em; color:var(--accent); }
.hero h1 em span { padding-left:.03em; }
.hero-lead { color:var(--muted); font-size:16px; line-height:1.85; }
.hero-actions { display:flex; flex-wrap:wrap; align-items:center; gap:12px 24px; margin-top:32px; }
.btn { min-height:54px; display:inline-flex; align-items:center; justify-content:center; gap:30px; padding:14px 25px; border-radius:4px; font-size:12px; font-weight:500; transition:background .2s,transform .2s; }
.btn-solid { background:var(--forest); color:var(--cream); }
[data-theme='dark'] .btn-solid { background:#e8d6ae; color:#1a1612; }
.btn span { font-size:22px; line-height:1; }
.btn-outline { border:1px solid var(--line); }
.text-button { display:inline-flex; gap:12px; align-items:center; min-height:44px; font-size:12px; }
.text-button svg { width:17px; height:17px; color:var(--accent); }
.text-button>span:not(.sr-only) { font-size:22px; }
.resume-link { display:flex; gap:8px; align-items:center; flex-wrap:wrap; color:var(--accent); font-size:12px; min-height:44px; margin-top:16px; }
.resume-link span:last-child { max-width:260px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.hero-art { height:535px; position:relative; isolation:isolate; min-width:0; }
.art-halo { position:absolute; width:94%; aspect-ratio:1; border-radius:50%; top:35px; right:0; background:var(--sage); z-index:-1; }
.art-halo::after { content:''; position:absolute; inset:-22px; border:1px solid var(--line); border-radius:50%; }
.edition-seal { position:absolute; top:5px; right:1%; z-index:2; width:88px; height:88px; border:1px solid var(--line); outline:1px solid var(--line); outline-offset:5px; border-radius:50%; background:var(--bg); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; color:var(--accent); transform:rotate(12deg); }
.edition-seal span { font-size:7px; letter-spacing:.13em; text-transform:uppercase; }
.edition-seal strong { font-size:25px; line-height:1; font-weight:400; }
.book-cover { position:absolute; width:76%; max-width:380px; height:96%; top:-3%; left:1%; transform:rotate(-7deg); transition:transform .4s; }
.book-image { width:100%; height:100%; object-fit:contain; filter:drop-shadow(12px 22px 15px #1c372125); }
.poetry-page { position:absolute; bottom:35px; right:0; width:224px; padding:22px 25px; background:var(--paper); border:1px solid var(--line); transform:rotate(7deg); box-shadow:var(--shadow),3px 3px 0 var(--line); transition:transform .4s; }
.page-label { display:flex; justify-content:space-between; gap:12px; font-size:8px; color:var(--muted); border-bottom:1px solid var(--line); padding-bottom:12px; }
.page-label>span { white-space:nowrap; }
.page-ornament { display:block; font-size:23px; color:var(--accent); margin-top:13px; line-height:1; }
.page-title { display:block; font:22px var(--serif); margin:13px 0 12px; }
.page-verses { display:block; font:11px/1.9 var(--serif); }
.page-bottom { display:flex; align-items:center; justify-content:space-between; gap:8px; border-top:1px solid var(--line); margin-top:18px; padding-top:11px; font-size:8px; color:var(--muted); }
.page-bottom>span { color:var(--accent); font-size:19px; }
.art-caption { position:absolute; left:2%; bottom:0; color:var(--muted); font-size:10px; line-height:1.7; }
.hero-bottom { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:23px 0; border-top:1px solid var(--line); font-size:11px; }
.hero-bottom p>span { color:var(--muted); }
.hero-stat { display:flex; align-items:center; gap:13px; }
.hero-stat strong { font:35px/1 var(--serif); color:var(--accent); }
.hero-stat>span { color:var(--muted); font-size:9px; line-height:1.7; }
.hero-bottom>a { display:flex; min-height:44px; gap:20px; align-items:center; color:var(--muted); }
.round-arrow { width:44px; height:44px; flex:none; border:1px solid var(--line); border-radius:50%; display:grid; place-items:center; font-size:20px; color:var(--accent); }
.invitation { position:relative; width:calc(100% - 2*var(--gutter)); max-width:1320px; margin-top:42px; padding:70px 42px 30px; background:var(--sage); border-radius:4px; text-align:center; }
.invitation>.eyebrow { position:absolute; top:26px; left:32px; color:var(--muted); font-size:8px; }
.quote-mark { position:absolute; left:6%; top:48px; color:var(--accent); opacity:.14; font:140px/1 var(--serif); }
.invitation blockquote { font:clamp(28px,3.6vw,49px)/1.45 var(--serif); letter-spacing:-.045em; }
.invitation blockquote em { color:var(--accent); }
.quote-source { display:flex; justify-content:space-between; align-items:center; gap:20px; margin-top:36px; font-size:10px; color:var(--muted); }
.quote-source a { display:inline-flex; gap:12px; align-items:center; min-height:44px; font-size:10px; }
.quote-star { position:absolute; right:32px; top:18px; color:var(--accent); font-size:25px; }
.contents { padding-top:100px; padding-bottom:90px; }
.section-heading { display:flex; justify-content:space-between; gap:50px; align-items:end; margin-bottom:40px; }
.section-heading .eyebrow { margin-bottom:20px; }
.collection-description { width:295px; flex-shrink:0; color:var(--muted); font-size:13px; padding-bottom:6px; }
.collection-stat { display:flex; align-items:center; gap:15px; margin-top:24px; max-width:260px; font-size:11px; line-height:1.6; }
.collection-stat strong { font:44px/1 var(--serif); color:var(--accent); }
.collection-controls { display:flex; flex-direction:column; }
.tools { order:-1; display:flex; gap:15px; padding:0 16px; align-items:center; border:1px solid var(--line); border-radius:6px; background:var(--paper); }
.search { flex:1; display:flex; align-items:center; gap:13px; min-width:0; }
.search svg { width:20px; height:20px; flex:none; color:var(--muted); }
.search input { width:100%; min-width:0; min-height:64px; border:0; background:none; border-radius:0; font-size:16px; }
.search input::placeholder { color:var(--muted); opacity:1; font-size:13px; }
.search input::-webkit-search-cancel-button { -webkit-appearance:none; }
.search kbd { flex:none; width:23px; height:24px; display:grid; place-items:center; border:1px solid var(--line); border-radius:3px; font:11px var(--sans); color:var(--muted); }
.clear-search { font-size:23px; color:var(--muted); }
.sort { min-width:118px; }
.sort select { background:var(--paper); border:0; max-width:100%; min-height:44px; padding:0 6px; font-size:12px; cursor:pointer; }
.view-switch { display:flex; gap:3px; padding-left:14px; border-left:1px solid var(--line); }
.view-switch .icon-button { border-radius:4px; }
.view-switch button[aria-pressed='true'] { color:var(--ink); background:var(--sage); }
.filters { display:flex; gap:25px; border-bottom:1px solid var(--line); margin-top:7px; }
.filter { display:flex; align-items:center; min-height:58px; gap:8px; font-size:12px; color:var(--muted); border-bottom:2px solid transparent; margin-bottom:-1px; }
.filter span { font-size:9px; background:var(--sage); min-width:22px; padding:1px 6px; border-radius:20px; }
.filter[aria-pressed='true'] { color:var(--ink); border-color:var(--ink); }
.filter[aria-pressed='true'] span { background:var(--accent-soft); color:var(--accent); }
.collection-caption { display:flex; justify-content:space-between; gap:24px; color:var(--muted); font-size:10px; padding:20px 0; }
.poems-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.poem-card { position:relative; min-width:0; display:flex; align-items:stretch; border:1px solid var(--line); border-radius:6px; background:var(--paper); transition:background .2s,box-shadow .2s,transform .2s; }
.poem-row { display:flex; flex-direction:column; flex:1; min-width:0; min-height:264px; padding:22px 25px 23px; }
.poem-number { font-size:10px; color:var(--accent); font-variant-numeric:tabular-nums; margin-bottom:25px; }
.poem-row-content { display:flex; flex-direction:column; flex:1; min-width:0; }
.poem-row-title { display:block; font:24px/1.45 var(--serif); letter-spacing:-.035em; overflow-wrap:anywhere; margin-bottom:12px; }
.poem-excerpt { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; font-size:12px; line-height:1.8; color:var(--muted); min-height:43px; white-space:pre-line; }
.poem-meta { display:flex; align-items:center; flex-wrap:wrap; gap:8px 12px; font-size:9px; color:var(--muted); margin-top:auto; padding-top:22px; }
.poem-meta .translated,.fragment-badge { color:var(--accent); }
.poem-open { color:var(--accent); margin-left:auto; font-size:20px; line-height:1; }
.bookmark { position:absolute; top:11px; right:12px; color:var(--muted); }
.bookmark[aria-pressed='true'] svg { fill:var(--accent-soft); }
.poems-grid[data-view='list'] { grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; }
.poems-grid[data-view='list'] .poem-card { border-width:1px 0 0; border-radius:0; background:none; }
.poems-grid[data-view='list'] .poem-row { display:grid; grid-template-columns:27px minmax(0,1fr); gap:14px; min-height:0; padding:26px 52px 26px 0; }
.poems-grid[data-view='list'] .poem-number { margin:0; padding-top:6px; color:var(--muted); }
.poems-grid[data-view='list'] .poem-row-content { display:block; }
.poems-grid[data-view='list'] .poem-row-title { font-size:22px; margin-bottom:9px; }
.poems-grid[data-view='list'] .poem-meta { padding-top:0; margin-top:12px; }
.poems-grid[data-view='list'] .poem-open { position:absolute; right:14px; bottom:26px; }
.poems-grid[data-view='list'] .bookmark { top:18px; right:0; }
mark { color:var(--ink); background:var(--accent-soft); border-radius:2px; }
.contents-note { display:flex; align-items:center; gap:10px; font-size:11px; color:var(--muted); padding-top:25px; margin-top:25px; border-top:1px solid var(--line); }
.contents-note svg { width:15px; height:15px; flex:none; }
.search-empty { text-align:center; padding:70px 20px; }
.search-empty>span { color:var(--accent); font-size:48px; }
.search-empty h3 { font-size:30px; margin-bottom:10px; }
.search-empty p { font-size:13px; color:var(--muted); margin-bottom:22px; }
.noscript { padding:24px; background:var(--sage); }
.noscript a { text-decoration:underline; }
.about { position:relative; isolation:isolate; overflow:clip; padding-block:88px; background:var(--forest); color:var(--cream); }
.about-layout { display:grid; grid-template-columns:.9fr 1.1fr; gap:10%; align-items:center; }
.about-identity { max-width:400px; }
.about-identity .eyebrow { font-size:9px; color:#c3cfc0; }
.author-portrait { width:100%; max-width:365px; margin:38px auto 0; padding:16px; background:#f6f2e5; color:#304637; transform:rotate(-4deg); box-shadow:0 16px 38px #142b2633; }
.portrait-window { position:relative; aspect-ratio:1.34; overflow:hidden; background:#aba893; }
.portrait-window img { position:absolute; width:250%; max-width:none; height:auto; left:-70%; top:-127%; }
.author-portrait figcaption { padding:15px 4px 3px; font-size:11px; }
.author-portrait figcaption span { display:block; margin-top:4px; font-size:8px; color:#717567; }
.author-dates { display:flex; align-items:center; justify-content:center; gap:22px; margin-top:27px; font-size:11px; letter-spacing:.2em; color:#c3cfc0; }
.about h2 { font-size:clamp(38px,4.4vw,64px); overflow-wrap:anywhere; }
.about-copy>p:not(.about-quote) { color:#d0d8c8; font-size:14px; line-height:1.95; max-width:470px; margin-top:17px; }
.about-quote { margin-top:26px; font-size:21px; line-height:1.5; }
.about-signature { display:inline-flex; align-items:center; gap:30px; font:italic 19px var(--serif); color:#dfc7a8; margin-top:30px; }
.about-signature>span { font-style:normal; }
.about-decoration { position:absolute; bottom:-54px; right:2%; z-index:-1; font:italic 230px/1 var(--serif); color:#d9e6c9; opacity:.045; pointer-events:none; }
.archive { padding-top:110px; padding-bottom:100px; }
.archive-layout { display:grid; grid-template-columns:1fr 1fr; gap:10%; align-items:center; }
.archive-figure { width:100%; max-width:445px; padding:18px 18px 0; background:var(--paper); transform:rotate(-3deg); box-shadow:var(--shadow); border:1px solid var(--line); margin-inline:auto; }
.archive-figure>a { display:block; position:relative; aspect-ratio:1.12; overflow:hidden; }
.archive-figure img { width:100%; height:100%; object-fit:cover; object-position:center 52%; }
.archive-open { position:absolute; bottom:16px; right:16px; width:44px; height:44px; display:grid; place-items:center; background:var(--paper); color:var(--accent); border-radius:50%; font-size:24px; }
.archive-figure figcaption { display:flex; justify-content:space-between; gap:20px; font-size:9px; padding:17px 0; color:var(--muted); }
.archive-copy { min-width:0; }
.archive-copy .eyebrow { margin-bottom:22px; }
.archive-copy h2 { font-size:clamp(34px,3.8vw,54px); }
.archive-copy>p:not(.eyebrow) { color:var(--muted); font-size:13px; margin:24px 0 18px; max-width:410px; }
.archive-copy>.text-button { border-bottom:1px solid var(--line); }
.archive-copy>.restoration-note { font-size:10px; line-height:1.8; margin:14px 0 0; }
.archive-files { margin-top:25px; border-block:1px solid var(--line); font-size:12px; }
.archive-files summary { display:flex; align-items:center; gap:12px; cursor:pointer; padding:17px 0; min-height:58px; list-style:none; }
.archive-files summary::-webkit-details-marker { display:none; }
.scan-count { color:var(--muted); margin-left:auto; font-size:9px; background:var(--sage); padding:2px 8px; border-radius:20px; }
.details-arrow { font-size:20px; color:var(--accent); transition:transform .2s; }
.archive-files[open] .details-arrow { transform:rotate(45deg); }
.archive-files ul { list-style:none; }
.archive-files li { border-top:1px solid var(--line); }
.archive-files a { display:flex; align-items:center; justify-content:space-between; gap:16px; min-height:49px; }
.archive-files a>span { font-size:10px; color:var(--muted); text-align:right; }
.archive-files>p { padding:12px 0; color:var(--muted); font-size:10px; }
.closing { padding-block:70px 85px; border-top:1px solid var(--line); text-align:center; }
.closing-star { display:block; color:var(--accent); font-size:40px; }
.closing>p { font:clamp(32px,4.4vw,64px)/1.3 var(--serif); letter-spacing:-.05em; margin:24px 0 30px; }
.closing em { color:var(--accent); }
.closing-dedication { display:block; margin-top:20px; font-size:10px; letter-spacing:.035em; color:var(--muted); }
.foot { display:flex; justify-content:space-between; align-items:center; gap:24px; border-top:1px solid var(--line); padding-block:22px; font-size:10px; color:var(--muted); }
.foot>span { font:22px var(--serif); color:var(--ink); letter-spacing:-.04em; }
.foot a { display:flex; align-items:center; gap:22px; min-height:44px; }
.reader { position:fixed; inset:0; display:flex; flex-direction:column; width:100%; max-width:none; height:100dvh; max-height:none; margin:0; padding:0; border:0; background:var(--bg); color:var(--ink); overflow:hidden; }
.reader:not([open]) { display:none; }
.reader::backdrop { background:var(--bg); }
.reader-bar { flex:none; display:flex; align-items:center; justify-content:space-between; gap:12px; border-bottom:1px solid var(--line); padding:12px var(--gutter); padding-top:max(12px,env(safe-area-inset-top)); }
.reader-brand { display:flex; align-items:center; gap:20px; }
.reader-brand .brand-mark { font-size:34px; }
.reader-brand-name { font:15px var(--serif); }
#readerPosition { font-size:11px; color:var(--muted); font-variant-numeric:tabular-nums; }
.reader-tools { display:flex; align-items:center; gap:4px; }
.reader-tools>button { min-height:44px; min-width:44px; padding:0 8px; font-size:16px; }
.toolbar-divider { width:1px; height:20px; margin:0 10px; background:var(--line); }
.reader-tools .reader-close { display:flex; gap:20px; align-items:center; margin-left:14px; padding-inline:18px; border:1px solid var(--line); border-radius:4px; font-size:11px; }
.reader-close>span:last-child { font-size:23px; }
.reader-scroll { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
.reader-layout { display:grid; grid-template-columns:225px minmax(0,1fr); gap:30px; width:100%; max-width:1350px; margin-inline:auto; padding-inline:var(--gutter); }
.reader-index { position:sticky; top:28px; align-self:start; margin-block:30px; max-height:calc(100dvh - 210px); overflow:auto; font-size:12px; scrollbar-width:thin; }
.reader-index summary { display:flex; align-items:center; gap:8px; min-height:48px; cursor:pointer; list-style:none; padding-right:10px; }
.reader-index summary::-webkit-details-marker { display:none; }
#readerIndexCount { color:var(--muted); font-size:9px; background:var(--sage); padding:1px 7px; border-radius:20px; }
.index-chevron { margin-left:auto; font-size:18px; color:var(--muted); transition:transform .2s; }
.reader-index[open] .index-chevron { transform:rotate(180deg); }
.reader-index-link { display:grid; grid-template-columns:22px minmax(0,1fr); align-items:baseline; gap:7px; padding:10px 8px; border-left:2px solid transparent; }
.reader-index-link>span:first-child { font-size:9px; color:var(--muted); }
.reader-index-link>span:last-child { font:13px/1.7 var(--serif); overflow-wrap:anywhere; }
.reader-index-link[aria-current='page'] { background:var(--sage); border-color:var(--accent); }
.reader-index>p { color:var(--muted); font-size:9px; padding:20px 10px; }
.reader-page { width:100%; max-width:880px; margin-inline:auto; min-width:0; padding:56px 45px 40px; border-left:1px solid var(--line); }
.reader h2 { font-size:clamp(30px,3.9vw,54px); overflow-wrap:anywhere; margin:22px 0; text-wrap:balance; }
.reader-meta { display:flex; align-items:center; flex-wrap:wrap; gap:18px; padding-bottom:23px; margin-bottom:26px; border-bottom:1px solid var(--line); font-size:11px; color:var(--muted); }
.reader-meta>span+span::before { content:'·'; padding-right:18px; }
.reader-language-controls { margin-bottom:28px; }
.reader-language-controls:has(button[hidden]) { display:none; }
.reader-language-controls button { min-height:44px; border:1px solid var(--line); border-radius:4px; padding:10px 16px; font-size:11px; color:var(--accent); }
.reader-language-controls button[aria-pressed='true'] { background:var(--accent-soft); }
.reader-audio { margin-block:0 28px; padding:18px; background:var(--sage); border:1px solid var(--line); border-radius:8px; }
.reader-audio-top { display:flex; align-items:center; flex-wrap:wrap; gap:12px; }
.reader-audio button { min-height:44px; padding:10px 18px; background:var(--forest); color:var(--cream); border-radius:5px; font-size:13px; }
.reader-audio-top>span { color:var(--muted); font-size:11px; }
.reader-audio audio { width:100%; display:block; margin-top:14px; }
.reader-audio p { color:var(--muted); font-size:12px; }
.reader-audio p:empty { display:none; }
.audio-badge { color:var(--accent); }
@media print { .reader-audio { display:none!important; } }
.reader-subtitle { font:italic 16px/1.75 var(--serif); color:var(--muted); margin-bottom:30px; }
.reader-original-title { font:italic 16px/1.6 var(--serif); color:var(--muted); margin-block:14px 20px; overflow-wrap:anywhere; }
.translation-notes { border-block:1px solid var(--line); margin-block:28px; padding-block:8px; color:var(--muted); font:13px/1.8 var(--sans); }
.translation-notes summary { min-height:44px; padding-block:10px; cursor:pointer; color:var(--accent); }
.translation-notes p { padding-block:6px 16px; }
.collection-language { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:28px; }
.collection-language>span { color:var(--muted); font-size:12px; margin-right:8px; }
.collection-language button { min-height:44px; border:1px solid var(--line); border-radius:6px; padding:8px 18px; font-size:13px; }
.collection-language button[aria-pressed='true'] { background:var(--forest); color:var(--cream); border-color:var(--forest); }
.translation-intro { max-width:660px; color:var(--muted); font-size:13px; margin-block:14px 24px; }
.reader-note { border-left:2px solid var(--accent); padding:12px 16px; margin-bottom:28px; font-size:13px; color:var(--muted); }
.poem-text { font:400 var(--reader-font)/1.9 var(--serif); white-space:pre-wrap; overflow-wrap:anywhere; tab-size:2; }
.poem-end { font-size:30px; margin-top:38px; color:var(--accent); }
.reader-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; padding-top:26px; border-top:1px solid var(--line); }
.reader-actions button,.reader-actions a { display:inline-flex; align-items:center; justify-content:center; gap:12px; min-height:44px; padding:10px 15px; border:1px solid var(--line); border-radius:4px; font-size:11px; }
.reader-hint { display:flex; justify-content:space-between; gap:24px; color:var(--muted); font-size:9px; margin-top:25px; }
.reader-progress { flex:none; height:2px; background:var(--line); }
.reader-progress>span { display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:var(--accent); }
.reader-nav { display:flex; justify-content:space-between; gap:28px; flex:none; padding:0 var(--gutter) env(safe-area-inset-bottom); }
.reader-nav button { display:flex; align-items:center; gap:18px; min-height:82px; min-width:0; max-width:48%; text-align:left; }
.reader-nav button>span:not([aria-hidden]) { display:flex; flex-direction:column; min-width:0; }
.reader-nav small { color:var(--muted); font-size:9px; }
.reader-nav button>span>span { font:14px/1.7 var(--serif); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#nextPoem { text-align:right; margin-left:auto; }
.toast { position:fixed; bottom:100px; left:50%; z-index:100; transform:translateX(-50%); width:max-content; max-width:calc(100% - 32px); padding:13px 20px; border-radius:6px; background:var(--ink); color:var(--bg); font-size:12px; text-align:center; box-shadow:var(--shadow); pointer-events:none; }
.static-collection { max-width:900px; margin:auto; padding:40px var(--gutter); }
.static-collection h1 { font-size:46px; letter-spacing:-.05em; line-height:1.2; margin-block:30px; }
.static-collection nav { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 28px; margin-block:30px; }
.static-collection nav a { display:block; padding:12px 0; border-top:1px solid var(--line); font:16px/1.6 var(--serif); }
.static-poem { border-top:1px solid var(--line); padding-block:50px; }
.static-poem h2 { margin-bottom:25px; font-size:32px; overflow-wrap:anywhere; }
.static-poem details { margin-top:30px; }
.static-poem details h3 { margin-block:24px 18px; font-size:26px; }
@supports (content-visibility:auto) {
  .static-poem { content-visibility:auto; contain-intrinsic-size:auto 900px; }
}
@media print {
  .static-poem { content-visibility:visible; contain-intrinsic-size:none; }
}
.static-poem summary { min-height:44px; cursor:pointer; }
.static-poem .reader-actions { margin-block:20px; }
@media (hover:hover) {
  .bar-nav a:hover,.text-button:hover,.quote-source a:hover,.archive-files a:hover,.reader-actions button:hover,.reader-actions a:hover { color:var(--accent); }
  .icon-button:hover,.btn-outline:hover { background:var(--sage); }
  .btn-solid:hover { background:#2c4d40; transform:translateY(-2px); }
  [data-theme='dark'] .btn-solid:hover { background:#f1e3c2; }
  .book-cover:hover { transform:rotate(-3deg) translateY(-5px); }
  .poetry-page:hover { transform:rotate(3deg) translateY(-5px); }
  .poem-card:hover { box-shadow:var(--shadow); transform:translateY(-3px); }
  .poem-row:hover .poem-row-title { color:var(--accent); }
  .poems-grid[data-view='list'] .poem-card:hover { box-shadow:none; transform:none; background:var(--paper); }
  .reader-index-link:hover { background:var(--sage); }
  .reader-tools>button:hover:not(:disabled) { color:var(--accent); }
}
@media (max-width:1100px) {
  .bar { gap:22px; }.bar-nav { gap:20px; }.hero-layout { gap:4%; }.hero h1 { font-size:9vw; }
  .hero-art { height:465px; }.book-cover { width:78%; }.poetry-page { width:200px; padding:19px 21px; }
  .art-caption { font-size:9px; }.edition-seal { width:75px; height:75px; }.hero-actions { gap:10px 18px; }
  .poems-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.about-layout { gap:7%; }.about h2 { font-size:5vw; }
  .reader-layout { grid-template-columns:200px minmax(0,1fr); gap:20px; }.reader-page { padding-inline:30px; }
}
@media (max-width:960px) {
  .hero-art { height:420px; }.hero-layout { padding-block:42px; }.hero-lead { font-size:14px; }
  .poetry-page { width:177px; padding:16px 18px; bottom:18px; }.page-title { font-size:20px; }.page-verses { font-size:10px; }
  .page-label { font-size:7px; }.page-bottom { font-size:7px; }.art-caption { display:none; }.art-halo { top:35px; }
  .hero-actions { align-items:start; flex-direction:column; }.invitation blockquote { font-size:39px; }
  .reader-brand-name { display:none; }.reader-layout { display:block; padding:0; }.reader-page { border:0; max-width:840px; padding:40px 38px; }
  .reader-index { position:static; max-height:none; margin:0 auto; padding:14px 38px 0; max-width:840px; border-bottom:1px solid var(--line); }
  .reader-index nav { max-height:240px; overflow:auto; margin-bottom:12px; }.reader-index>p { display:none; }
}
@media (max-width:720px) {
  :root { --reader-font:21px; }
  .bar { flex-wrap:wrap; gap:8px 16px; padding-block:12px; }.bar-brand { font-size:17px; gap:10px; }.bar-brand small { font-size:7px; }
  .brand-mark { font-size:36px; }.bar-actions { margin-left:auto; }.bar-nav { order:3; width:100%; justify-content:space-between; font-size:12px; }
  .js-nav .bar { flex-wrap:nowrap; }.js-nav .bar-nav { display:none; position:absolute; inset:calc(100% + 8px) var(--gutter) auto; width:auto; padding:12px 20px; border:1px solid var(--line); border-radius:6px; background:var(--paper); box-shadow:var(--shadow); }
  .js-nav .bar-nav.is-open { display:block; }.js-nav .bar-nav a { min-height:54px; font-size:15px; gap:14px; border-bottom:1px solid var(--line); }
  .js-nav .bar-nav a:last-child { border:0; }.js-nav .bar-nav a[aria-current]::after { display:none; }.js-nav .bar-nav a[aria-current] { color:var(--accent); }
  .js-nav .menu-toggle { display:flex; flex-direction:column; justify-content:center; gap:5px; border:1px solid var(--line); }
  .menu-toggle span { width:16px; height:1px; background:var(--ink); transition:transform .2s; }
  .menu-toggle[aria-expanded='true'] span:first-child { transform:translateY(3px) rotate(45deg); }.menu-toggle[aria-expanded='true'] span:last-child { transform:translateY(-3px) rotate(-45deg); }
  .hero-top { padding-top:24px; }.hero-top .eyebrow { font-size:8px; letter-spacing:.09em; }.edition { display:none; }
  .hero-layout { grid-template-columns:1fr; padding:35px 0 30px; gap:22px; }.hero-author { display:flex; flex-wrap:wrap; align-items:center; gap:6px 15px; font-size:11px; }.hero-author span { margin:0; }
  .hero h1 { font-size:clamp(64px,17vw,112px); margin:24px 0; }.hero-lead { font-size:15px; }.hero-actions { flex-direction:row; align-items:center; gap:12px 20px; margin-top:26px; }
  .hero-art { width:100%; max-width:410px; height:460px; margin:8px auto 0; }.book-cover { width:77%; height:98%; top:-3%; left:1%; }
  .art-halo { width:91%; top:42px; right:1%; }.art-halo::after { inset:-14px; }.poetry-page { width:190px; bottom:15px; right:0; padding:18px 20px; }
  .page-title { font-size:22px; }.page-verses { font-size:11px; }.page-label { font-size:8px; }.page-bottom { font-size:8px; }.edition-seal { top:2px; right:3%; width:72px; height:72px; }
  .edition-seal span { font-size:6px; }.edition-seal strong { font-size:22px; }.hero-stat { display:none; }.hero-bottom { font-size:10px; gap:14px; padding-block:20px; }
  .hero-bottom>a { font-size:0; gap:0; }.hero-bottom .round-arrow { font-size:20px; }
  .invitation { margin-top:24px; padding:62px 24px 23px; }.invitation>.eyebrow { top:24px; left:24px; }.invitation blockquote { font-size:clamp(27px,6.2vw,42px); }
  .quote-mark { top:49px; left:5%; font-size:85px; }.quote-star { right:24px; top:17px; font-size:22px; }.quote-source { flex-direction:column; gap:0; margin-top:22px; font-size:10px; }.quote-source a { font-size:9px; }
  .contents { padding-block:70px 65px; }.section-heading { flex-direction:column; align-items:start; gap:22px; margin-bottom:28px; }.section-heading .eyebrow { margin-bottom:16px; }
  .section-heading h2 { font-size:46px; }.collection-description { width:100%; max-width:350px; font-size:13px; }.collection-stat { margin-top:15px; font-size:10px; }.collection-stat strong { font-size:34px; }
  .tools { flex-wrap:wrap; position:relative; gap:0; padding:0 12px 5px; }.search { flex-basis:100%; padding-right:36px; border-bottom:1px solid var(--line); }.search input { min-height:58px; }
  .search input::placeholder { font-size:11px; }.search kbd { display:none; }.search svg { width:18px; height:18px; }.clear-search { position:absolute; right:9px; top:7px; }
  .sort { flex:1; min-width:0; }.sort select { font-size:11px; padding:0; }.view-switch { padding-left:12px; margin-top:5px; }.view-switch .icon-button { min-width:44px; }
  .filters { gap:10px; justify-content:space-between; }.filter { font-size:11px; gap:5px; min-height:56px; }.filter span { min-width:20px; font-size:8px; padding-inline:5px; }
  .collection-caption { padding-block:17px; font-size:10px; }.collection-caption>span { display:none; }.poems-grid { gap:12px; }.poem-row { min-height:240px; padding:20px; }
  .poem-row-title { font-size:22px; }.poem-number { margin-bottom:20px; }.poems-grid[data-view='list'] { grid-template-columns:1fr; }.poems-grid[data-view='list'] .poem-row { padding:23px 48px 23px 0; }
  .contents-note { align-items:start; font-size:10px; }.contents-note svg { margin-top:2px; }
  .about { padding-block:60px; }.about-layout { grid-template-columns:1fr; gap:36px; }.about-identity { width:100%; max-width:370px; margin-inline:auto; }
  .author-portrait { max-width:310px; margin-top:30px; padding:14px; }.author-dates { margin-top:24px; }.about h2 { font-size:clamp(36px,8.5vw,52px); }.about-quote { font-size:19px; }
  .about-copy { max-width:500px; margin-inline:auto; }.about-copy>p:not(.about-quote) { font-size:13px; }.about-decoration { font-size:165px; bottom:-32px; }
  .archive { padding-block:70px; }.archive-layout { grid-template-columns:1fr; gap:46px; }.archive-copy { grid-row:1; max-width:500px; }.archive-copy h2 { font-size:41px; }
  .archive-figure { width:86%; max-width:390px; }.archive-figure figcaption { font-size:8px; }.archive-files summary { font-size:11px; }.archive-files a { font-size:11px; }
  .closing { padding-block:48px 60px; }.closing>p { font-size:clamp(30px,6.5vw,45px); }.closing-star { font-size:33px; }
  .foot { flex-wrap:wrap; gap:10px 20px; padding-block:20px; }.foot>span { width:100%; font-size:23px; }.foot a { margin-left:auto; }
  .reader-bar { padding:10px 12px; padding-top:max(10px,env(safe-area-inset-top)); gap:8px; }.reader-brand { gap:8px; }.reader-brand .brand-mark { display:none; }#readerPosition { font-size:10px; }
  .reader-tools { gap:0; }.reader-tools .reader-close { padding:0; margin-left:4px; min-width:44px; justify-content:center; border:0; }.reader-close .close-label { display:none; }.toolbar-divider { margin-inline:4px; }
  .reader-index { padding:9px 22px 0; }.reader-index summary { font-size:11px; }.reader-page { padding:30px 22px 28px; }.reader h2 { font-size:34px; }.reader-page>.eyebrow { font-size:9px; }
  .reader-meta { font-size:10px; gap:12px; padding-bottom:19px; margin-bottom:23px; }.reader-meta>span+span::before { padding-right:12px; }.reader-language-controls { margin-bottom:24px; }
  .reader-actions { gap:8px; }.reader-actions button,.reader-actions a { flex-grow:1; font-size:10px; }.reader-hint { display:none; }.reader-nav { padding-inline:16px; gap:14px; }
  .reader-nav button { min-height:74px; gap:10px; }.reader-nav button>span>span { font-size:12px; }.reader-nav .round-arrow { width:36px; height:36px; font-size:18px; }.reader-nav small { font-size:8px; }
  .static-collection nav { grid-template-columns:1fr; }.static-collection h1 { font-size:38px; }
}
@media (max-width:540px) {
  .poems-grid { grid-template-columns:1fr; }.poem-row { min-height:235px; padding:22px 24px; }.poem-row-title { font-size:25px; }.poem-number { margin-bottom:20px; }.poem-meta { font-size:10px; }
}
@media (max-width:370px) {
  :root { --gutter:18px; }.bar { gap:8px; }.bar-brand { font-size:15px; gap:8px; }.bar-brand small { font-size:6px; }.bar-actions { gap:4px; }.brand-mark { font-size:32px; }
  .hero-top .eyebrow { font-size:7px; }.hero h1 { font-size:18vw; }.hero-lead { font-size:14px; }.hero-art { height:390px; }.book-cover { width:78%; }
  .poetry-page { width:167px; padding:15px 17px; }.page-title { font-size:20px; }.page-verses { font-size:10px; }.page-label { font-size:7px; }.page-bottom { font-size:7px; }
  .edition-seal { width:60px; height:60px; }.edition-seal span { font-size:5px; }.edition-seal strong { font-size:20px; }.filter { font-size:10px; }.filter span { min-width:17px; padding-inline:4px; }
  .section-heading h2 { font-size:40px; }.poem-row-title { font-size:23px; }.archive-copy h2 { font-size:35px; }.reader h2 { font-size:30px; }.toolbar-divider { display:none; }
}
@media (prefers-reduced-motion:reduce) { html:not(.allow-motion) { scroll-behavior:auto; } html:not(.allow-motion) *,html:not(.allow-motion) *::before,html:not(.allow-motion) *::after { transition:none!important; animation:none!important; } }
@media print {
  :root { --bg:#fff; --paper:#fff; --ink:#000; --muted:#444; --line:#ccc; --reader-font:13pt!important; }
  body { background:white; color:black; }
  body:has(.reader[open]) { position:static!important; overflow:visible!important; }
  body:has(.reader[open])>*:not(.reader) { display:none!important; }
  .reader[open] { position:static; display:block; height:auto; overflow:visible; background:white; color:black; }
  .reader-scroll { overflow:visible; }.reader-layout { display:block; padding:0; }.reader-page { max-width:none; padding:0; border:0; }.reader h2 { font-size:26pt; }.poem-text { font-size:13pt; }
  .reader-bar,.reader-nav,.reader-index,.reader-progress,.reader-actions,.reader-language-controls,.reader-hint,.toast,.bar,.skip,.hero-art,.filters,.tools,.bookmark,.closing { display:none!important; }
  .reader-meta { margin-bottom:20px; }.poem-end { font-size:14pt; }.static-poem { break-before:page; }.poem-card { break-inside:avoid; }
  @page { margin:18mm; }
}

/* =====================================================================
   Classic edition — paper, gold foil, a shelf of volumes and page motion.
   Motion rules live under .motion (added by experience.js unless the
   visitor prefers reduced motion), so the archive stays calm without it.
   ===================================================================== */
:root {
  --gold:#a8833f; --gold-hi:#ecd595; --gold-lo:#7a5a24; --oxblood:#5d201c;
  --foil:linear-gradient(100deg,#7a5a24 0%,#c9a25a 28%,#8a6a2f 46%,#d8b66c 64%,#7a5a24 100%);
  --ease:cubic-bezier(.2,.8,.2,1); --ease-out:cubic-bezier(.16,1,.3,1); --ease-io:cubic-bezier(.65,0,.35,1);
  --noise:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .22 0 0 0 0 .1 0 0 0 .1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --fleuron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 240 24' fill='none' stroke='%23a8833f' stroke-width='1'%3E%3Cpath d='M0 12h90M150 12h90'/%3E%3Cpath d='M120 3l9 9-9 9-9-9z'/%3E%3Cpath d='M120 8l4 4-4 4-4-4z' fill='%23a8833f'/%3E%3Cpath d='M111 12c-6-7-13-7-17 0 4 7 11 7 17 0M129 12c6-7 13-7 17 0-4 7-11 7-17 0'/%3E%3C/svg%3E");
  interpolate-size:allow-keywords;
}
:root[data-theme='dark'] { --gold:#cfa95f; --gold-hi:#f1dca0; --gold-lo:#8d6a2c; --foil:linear-gradient(100deg,#9b7838 0%,#f3e1a6 30%,#c49b4e 48%,#fff1c4 62%,#a8823e 82%,#e8cf8f 100%); }
body { background-image:var(--noise); }
::selection { background:#e9d29b; color:#2b2520; }

/* Header */
.bar { background:color-mix(in srgb,var(--bg) 84%,transparent); -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2); }
.bar::after { content:''; position:absolute; left:0; bottom:-1px; width:100%; height:2px; transform-origin:left; transform:scaleX(var(--progress,0)); background:linear-gradient(90deg,var(--gold-lo),var(--gold-hi),var(--gold)); pointer-events:none; }

/* Hero */
.hero h1 em .ch { background:var(--foil); background-size:220% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; }
.hero h1 .ch { display:inline-block; }
.poetry-page { background:var(--paper) var(--noise); }
.poetry-page::after { content:''; position:absolute; inset:7px; border:1px solid color-mix(in srgb,var(--gold) 35%,transparent); pointer-events:none; }
.btn-solid { position:relative; overflow:hidden; isolation:isolate; }
.btn-solid::after { content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,transparent 30%,#ffffff38 48%,#f3dfa833 54%,transparent 70%); transform:translateX(-120%); transition:transform .9s var(--ease); }

/* Ornamental dividers and paper cards */
.contents::before, .archive::before { content:''; display:block; width:240px; max-width:70%; height:24px; margin:0 auto 64px; background:var(--fleuron) center/contain no-repeat; }
.invitation { background-image:var(--noise); }
.poem-card { background-image:var(--noise); overflow:hidden; }
.poem-card::before { content:''; position:absolute; inset:7px; border:1px solid color-mix(in srgb,var(--gold) 45%,transparent); opacity:0; transform:scale(.985); transition:opacity .45s var(--ease),transform .45s var(--ease); pointer-events:none; }
.poems-grid[data-view='list'] .poem-card::before { display:none; }
.archive-figure { background-image:var(--noise); }

/* Reader as a bound page */
.reader { background-image:var(--noise); }
.reader-page { position:relative; background:var(--paper) var(--noise); border:1px solid var(--line); margin-block:34px 40px; box-shadow:0 40px 80px -50px #3a2a1466,0 2px 0 var(--line),0 4px 0 color-mix(in srgb,var(--line) 60%,transparent); padding:64px clamp(36px,5vw,72px) 46px; }
.reader-page::before { content:''; position:absolute; inset:12px; border:1px solid color-mix(in srgb,var(--gold) 32%,transparent); pointer-events:none; }
.reader-page::after { content:''; position:absolute; top:22px; left:50%; width:150px; height:16px; transform:translateX(-50%); background:var(--fleuron) center/contain no-repeat; opacity:.75; pointer-events:none; }
.reader .poem-text::first-letter { color:var(--accent); }

/* ---------- Shelf of volumes ---------- */
.shelf { --cover-w:252px; --cover-h:372px; --spine-h:338px; --gap:7px; --spine-scale:1; position:relative; overflow:hidden; padding-block:96px 34px; }
.shelf[hidden] { display:none; }
.shelf::before { content:''; display:block; width:240px; max-width:70%; height:24px; margin:0 auto 56px; background:var(--fleuron) center/contain no-repeat; }
.shelf-head { display:flex; flex-direction:column; align-items:center; text-align:center; gap:18px; }
.shelf-head h2 { font-size:clamp(34px,4.2vw,60px); }
.shelf-head h2 em { color:var(--accent); }
.shelf-tabs { display:inline-flex; flex-wrap:wrap; justify-content:center; margin-top:8px; border:1px solid var(--ink); }
.shelf-tabs button { min-height:38px; padding:4px 15px; font-size:11px; letter-spacing:.08em; font-variant-numeric:tabular-nums; transition:background .3s,color .3s; }
.shelf-tabs button+button { border-left:1px solid var(--ink); }
.shelf-tabs button[aria-pressed='true'] { background:var(--forest); color:var(--cream); }
.shelf-instruction { max-width:340px; font-size:11px; line-height:1.7; color:var(--muted); text-wrap:balance; }
[data-theme='dark'] .shelf-tabs button[aria-pressed='true'] { background:#e8d6ae; color:#1a1612; }
.shelf-stage { position:relative; margin-top:40px; }
.shelf-viewport { position:relative; height:calc(var(--cover-h) + 70px); overflow:hidden; cursor:grab; touch-action:pan-y; user-select:none; -webkit-user-select:none; -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); }
.shelf-viewport:focus-visible { outline:2px solid var(--gold); outline-offset:-6px; }
.shelf-viewport.is-dragging { cursor:grabbing; }
.shelf-track { position:absolute; left:0; bottom:24px; display:flex; align-items:flex-end; gap:var(--gap); transition:transform .95s var(--ease-out); will-change:transform; }
.shelf-viewport.is-dragging .shelf-track { transition:transform .08s linear; }
.shelf-book { position:relative; flex:none; width:calc(var(--w) * var(--spine-scale)); height:calc(var(--spine-h) * var(--h) / 100); transition:width .8s var(--ease-out),height .8s var(--ease-out),opacity .7s var(--ease-out) var(--d,0s),translate .9s cubic-bezier(.34,1.45,.64,1) var(--d,0s); }
.shelf-book.is-active { width:var(--cover-w); height:var(--cover-h); translate:0 -8px; z-index:2; }
.shelf-spine { position:absolute; inset:0; width:100%; display:flex; flex-direction:column; align-items:center; gap:9px; padding:10px 0; color:var(--bi); background:linear-gradient(90deg,#0000006b,#ffffff26 16%,#ffffff08 38%,#0000 64%,#00000059),var(--noise),var(--bk); border-radius:3px 3px 2px 2px; box-shadow:0 18px 16px -12px #000a,inset 0 0 0 1px #0003; overflow:hidden; transition:opacity .35s,translate .45s var(--ease-out),filter .3s; }
.sp-band { flex:none; width:100%; height:12px; border-block:1px solid currentColor; opacity:.7; }
.sp-emblem, .sc-emblem { display:grid; place-items:center; }
.sp-emblem svg, .sc-emblem svg { fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.sp-emblem svg { width:calc(24px * var(--spine-scale)); height:calc(24px * var(--spine-scale)); }
.sp-title { flex:1; min-height:0; writing-mode:vertical-rl; font:calc(13px * var(--spine-scale))/1 var(--serif); letter-spacing:.09em; text-transform:uppercase; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sp-num { font:italic calc(12px * var(--spine-scale)) var(--serif); }
.shelf-cover { position:absolute; left:0; bottom:0; width:var(--cover-w); height:var(--cover-h); opacity:0; visibility:hidden; transform:perspective(1000px) rotateY(-34deg) scale(.96); transform-origin:left center; transition:opacity .4s,transform .85s var(--ease-out),visibility 0s .4s; }
.is-active .shelf-cover { opacity:1; visibility:visible; transform:none; transition:opacity .5s .12s,transform .9s var(--ease-out) .05s,visibility 0s; }
.is-active .shelf-spine { opacity:0; pointer-events:none; }
.sc-link { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; text-align:center; padding:32px 28px 24px 34px; color:var(--bi); text-decoration:none; background:radial-gradient(110% 70% at 30% 12%,#ffffff24,#0000 60%),linear-gradient(90deg,#00000070,#ffffff1a 4%,#0000 9%,#0000 92%,#0000002e),var(--noise),var(--bk); border-radius:3px 7px 7px 3px; box-shadow:0 36px 46px -22px #000b,0 10px 14px -8px #0007,inset 0 0 0 1px #00000030; overflow:hidden; }
.sc-link::after { content:''; position:absolute; inset:0; background:linear-gradient(105deg,transparent 35%,#ffffff40 48%,#ffe9b022 53%,transparent 65%); transform:translateX(-110%); pointer-events:none; }
.sc-link:focus-visible { outline:2px solid var(--gold); outline-offset:4px; }
.sc-frame { position:absolute; inset:13px 13px 13px 20px; border:1px solid currentColor; opacity:.5; outline:1px solid currentColor; outline-offset:-5px; pointer-events:none; }
.sc-no { position:relative; font:italic 12px var(--serif); letter-spacing:.12em; opacity:.85; }
.sc-emblem svg { width:58px; height:58px; margin-block:20px 14px; }
.sc-title { position:relative; font:23px/1.22 var(--serif); letter-spacing:-.01em; text-wrap:balance; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical; overflow:hidden; }
.sc-rule { flex:none; width:44px; height:1px; margin:15px 0; background:currentColor; opacity:.6; }
.sc-lines { position:relative; font:italic 12px/1.7 var(--serif); opacity:.85; white-space:pre-line; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.sc-author { position:relative; margin-top:auto; padding-top:10px; font-size:9px; letter-spacing:.24em; text-transform:uppercase; opacity:.8; }
.sc-play { position:absolute; left:-23px; bottom:74px; z-index:3; width:46px; height:46px; display:grid; place-items:center; border-radius:50%; background:var(--paper); color:var(--accent); border:1px solid var(--line); box-shadow:0 8px 20px -6px #0005; transition:transform .3s var(--ease),background .3s; }
.sc-play svg { width:18px; height:18px; fill:currentColor; margin-left:2px; }
.sc-play::before { content:''; position:absolute; inset:-6px; border-radius:50%; border:1px solid color-mix(in srgb,var(--gold) 60%,transparent); }
.shelf-arrow { position:absolute; top:calc(50% - 26px); z-index:3; width:52px; height:52px; display:grid; place-items:center; border-radius:50%; border:1px solid var(--line); background:color-mix(in srgb,var(--paper) 88%,transparent); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); font-size:20px; color:var(--accent); box-shadow:var(--shadow); transition:transform .3s var(--ease),opacity .3s; }
.shelf-prev { left:max(14px,3vw); }
.shelf-next { right:max(14px,3vw); }
.shelf-arrow:disabled { opacity:0; pointer-events:none; }
.shelf-plank { position:absolute; left:5%; right:5%; bottom:12px; height:12px; border-top:1px solid color-mix(in srgb,var(--gold) 70%,transparent); background:radial-gradient(50% 100% at 50% 0,#3a2a1424,transparent); pointer-events:none; }
.shelf-caption { text-align:center; min-height:150px; padding-top:18px; }
.shelf-title { font:clamp(26px,3vw,40px)/1.25 var(--serif); letter-spacing:-.03em; text-wrap:balance; max-width:780px; margin-inline:auto; overflow-wrap:anywhere; }
.shelf-subtitle { margin-top:8px; font:italic 15px/1.5 var(--serif); color:var(--accent); }
.shelf-subtitle:empty { display:none; }
.shelf-meta { margin-top:8px; font-size:11px; letter-spacing:.06em; color:var(--muted); }
.shelf-scrub { position:relative; width:min(320px,62%); height:1px; margin:22px auto 0; background:var(--line); }
.shelf-scrub span { position:absolute; top:-1px; height:3px; background:var(--accent); transition:left .7s var(--ease-out),width .7s var(--ease-out); }

/* ---------- Motion (only when allowed) ---------- */
@keyframes sweep { from { transform:translateX(-110%); } to { transform:translateX(110%); } }
@keyframes pulse { from { transform:scale(.9); opacity:1; } to { transform:scale(1.35); opacity:0; } }
@keyframes rise { from { opacity:0; translate:0 26px; filter:blur(6px); } to { opacity:1; translate:0 0; filter:blur(0); } }
@keyframes chIn { from { opacity:0; transform:translateY(.5em) rotate(7deg); filter:blur(10px); } to { opacity:1; transform:none; filter:blur(0); } }
@keyframes foil { from { background-position:0% 0; } to { background-position:-220% 0; } }
@keyframes float { 50% { translate:0 -12px; } }
@keyframes spin { to { rotate:360deg; } }
@keyframes artIn { from { opacity:0; translate:0 40px; scale:.94; } to { opacity:1; translate:0 0; scale:1; } }
@keyframes cardIn { from { opacity:0; translate:0 30px; rotate:1.5deg; } to { opacity:1; translate:0 0; rotate:0deg; } }
@keyframes readerIn { from { clip-path:circle(0 at var(--ox,50%) var(--oy,40%)); } to { clip-path:circle(150vmax at var(--ox,50%) var(--oy,40%)); } }
@keyframes readerOut { to { opacity:0; scale:.985; } }
@keyframes pageRise { from { opacity:0; transform:perspective(1400px) translateY(60px) rotateX(10deg); } to { opacity:1; transform:none; } }
@keyframes turnNext { from { opacity:0; transform:perspective(1600px) translateX(70px) rotateY(-16deg); } to { opacity:1; transform:none; } }
@keyframes turnPrev { from { opacity:0; transform:perspective(1600px) translateX(-70px) rotateY(16deg); } to { opacity:1; transform:none; } }
@keyframes ink { from { -webkit-mask-position:0 100%; mask-position:0 100%; } to { -webkit-mask-position:0 0; mask-position:0 0; } }
@keyframes fadeIn { from { opacity:0; } }
@keyframes toastIn { from { opacity:0; translate:0 18px; scale:.96; } }
@keyframes capIn { from { opacity:0; translate:0 14px; filter:blur(4px); } to { opacity:1; translate:0 0; filter:blur(0); } }
@keyframes menuItem { from { opacity:0; translate:0 -8px; } }

.motion .hero-top, .motion .hero-author, .motion .hero-lead, .motion .hero-actions, .motion .resume-link, .motion .hero-bottom, .motion .hero h1 .ch, .motion .hero-art { opacity:0; }
.motion.is-ready .hero-top { animation:rise 1s var(--ease-out) .05s both; }
.motion.is-ready .hero-author { animation:rise 1s var(--ease-out) .15s both; }
.motion.is-ready .hero h1 .ch { animation:chIn 1.1s var(--ease-out) calc(.25s + var(--i) * 55ms) both; }
.motion.is-ready .hero h1 em .ch { animation:chIn 1.1s var(--ease-out) calc(.25s + var(--i) * 55ms) both,foil 7s linear calc(var(--i) * 120ms) infinite; }
.motion.is-ready .hero-lead { animation:rise 1s var(--ease-out) .85s both; }
.motion.is-ready .hero-actions { animation:rise 1s var(--ease-out) 1s both; }
.motion.is-ready .resume-link { animation:rise 1s var(--ease-out) 1.1s both; }
.motion.is-ready .hero-art { animation:artIn 1.4s var(--ease-out) .35s both; }
.motion.is-ready .hero-bottom { animation:rise 1s var(--ease-out) 1.2s both; }
.motion .book-cover { transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(-7deg); transition:transform .7s var(--ease-out); animation:float 7s ease-in-out infinite; }
.motion .poetry-page { transform:perspective(1100px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg)) rotate(7deg); transition:transform .7s var(--ease-out); animation:float 7s ease-in-out -3.5s infinite; }
.motion .is-active .sc-link::after { animation:sweep 1.4s .45s var(--ease-io) both; }
.motion .sc-play::before { animation:pulse 2.4s ease-out infinite; }

.motion [data-reveal] { transition:opacity 1s var(--ease-out) var(--rd,0s),translate 1.1s var(--ease-out) var(--rd,0s),filter 1s var(--ease-out) var(--rd,0s); }
.motion [data-reveal]:not(.is-in) { opacity:0; translate:0 34px; filter:blur(6px); }
.motion .poems-grid:not(.is-in) .poem-card { opacity:0; }
.motion .poems-grid.is-in:not(.settled) .poem-card { animation:cardIn .9s var(--ease-out) both; }
.motion .poems-grid.is-in:not(.settled) .poem-card:nth-child(2) { animation-delay:.07s; }
.motion .poems-grid.is-in:not(.settled) .poem-card:nth-child(3) { animation-delay:.14s; }
.motion .poems-grid.is-in:not(.settled) .poem-card:nth-child(4) { animation-delay:.21s; }
.motion .poems-grid.is-in:not(.settled) .poem-card:nth-child(5) { animation-delay:.28s; }
.motion .poems-grid.is-in:not(.settled) .poem-card:nth-child(6) { animation-delay:.35s; }
.motion .poems-grid.is-in:not(.settled) .poem-card:nth-child(n+7) { animation-delay:.42s; }
.motion .shelf:not(.is-in) .shelf-book { opacity:0; translate:0 -70px; }
.motion .shelf-caption.swap > * { animation:capIn .7s var(--ease-out) both; }
.motion .shelf-caption.swap > :nth-child(2) { animation-delay:.07s; }
.motion .shelf-caption.swap > :nth-child(3) { animation-delay:.14s; }

.motion .reader[open] { animation:readerIn .8s var(--ease-io) both; }
.motion .reader[open] .reader-page { animation:pageRise 1s var(--ease-out) .18s both; }
.motion .reader[open] .reader-page.turn-next { animation:turnNext .7s var(--ease-out) both; }
.motion .reader[open] .reader-page.turn-prev { animation:turnPrev .7s var(--ease-out) both; }
.motion .reader.is-closing { animation:readerOut .34s ease both; pointer-events:none; }
.motion .poem-text.ink { -webkit-mask-image:linear-gradient(#000 40%,transparent 50%); mask-image:linear-gradient(#000 40%,transparent 50%); -webkit-mask-size:100% 250%; mask-size:100% 250%; -webkit-mask-repeat:no-repeat; mask-repeat:no-repeat; animation:ink 1.8s var(--ease) .25s both; }
.motion .toast:not([hidden]) { animation:toastIn .45s var(--ease-out); }

@media (hover:hover) {
  .btn-solid:hover::after { transform:translateX(120%); }
  .poem-card:hover::before { opacity:1; transform:none; }
  .shelf-book:not(.is-active):hover .shelf-spine { translate:0 -12px; filter:brightness(1.08); }
  .sc-play:hover { transform:scale(1.08); }
  .shelf-arrow:hover:not(:disabled) { transform:scale(1.08); }
}

/* Smooth disclosure for details where supported */
@supports selector(::details-content) {
  details::details-content { block-size:0; overflow:clip; transition:block-size .5s var(--ease),content-visibility .5s allow-discrete; }
  details[open]::details-content { block-size:auto; }
}

/* ---------- Opening scene ---------- */
html.intro-pending body { overflow:hidden; }
html.intro-pending .bar, html.intro-pending main, html.intro-pending .foot, html.intro-pending .skip { opacity:0; }
.motion .bar, .motion main, .motion .foot { transition:opacity .9s ease; }
.intro { position:fixed; inset:0; z-index:1000; display:grid; place-items:center; overflow:hidden; color:#ecd9ad; background:radial-gradient(120% 90% at 50% 42%,#2b2118 0%,#130f0b 52%,#060504 100%); perspective:1700px; cursor:pointer; }
.intro::after { content:''; position:absolute; inset:0; background:var(--noise); opacity:.55; pointer-events:none; }
.intro-dust { position:absolute; inset:0; width:100%; height:100%; }
.intro-glow { position:absolute; width:min(90vw,900px); aspect-ratio:1.6; border-radius:50%; background:radial-gradient(closest-side,#f3cf8a3d,#e9b2601a 45%,transparent 75%); opacity:0; animation:glow 2s 2.1s ease both; pointer-events:none; }
@keyframes glow { to { opacity:1; } }
.intro-kicker { position:absolute; top:max(7vh,40px); left:0; right:0; padding-inline:16px; text-align:center; font-size:10px; letter-spacing:.42em; text-transform:uppercase; color:#cdb27a; animation:kicker 1.6s .2s var(--ease-out) both; }
@keyframes kicker { from { opacity:0; letter-spacing:1.1em; } to { opacity:1; letter-spacing:.42em; } }
.intro-scene { position:relative; transform-style:preserve-3d; animation:sceneIn 1.6s .15s var(--ease-out) both; }
@keyframes sceneIn { from { opacity:0; transform:translateY(80px) rotateX(32deg) scale(.78); } to { opacity:1; transform:rotateX(12deg); } }
.intro-shadow { position:absolute; left:-10%; right:-10%; bottom:-28px; height:40px; border-radius:50%; background:radial-gradient(closest-side,#000c,transparent); filter:blur(4px); animation:shadowShift 1.5s 1.75s var(--ease-io) both; }
@keyframes shadowShift { to { left:-60%; right:-60%; translate:50% 0; } }
.intro-book { --bw:clamp(150px,27vw,310px); position:relative; width:var(--bw); aspect-ratio:3/4.3; transform-style:preserve-3d; animation:bookShift 1.5s 1.75s var(--ease-io) both; }
@keyframes bookShift { to { transform:translateX(50%); } }
.ib-block { position:absolute; inset:0; border-radius:2px 6px 6px 2px; background:#f4ead4; box-shadow:0 50px 70px -25px #000e,inset -1px 0 0 #d4c5a5; }
.ib-block::after { content:''; position:absolute; top:5px; bottom:5px; right:-7px; width:8px; border-radius:0 3px 3px 0; background:repeating-linear-gradient(90deg,#ece2c9 0 1px,#c9b993 1px 2px); }
.ib-page { position:absolute; inset:0; container-type:inline-size; display:flex; flex-direction:column; padding:16% 13% 12%; color:#3a2a1c; background:linear-gradient(90deg,#00000024,transparent 14%),var(--noise); }
.ib-page-title { font:italic 9cqi/1.2 var(--serif); color:#8e3326; margin-bottom:.9em; opacity:0; animation:capIn 1s 2.6s var(--ease-out) both; }
.ib-line { font:6.4cqi/1.85 var(--serif); opacity:0; animation:capIn 1s var(--ease-out) both; }
.ib-line:nth-child(2) { animation-delay:2.8s; } .ib-line:nth-child(3) { animation-delay:3s; } .ib-line:nth-child(4) { animation-delay:3.2s; } .ib-line:nth-child(5) { animation-delay:3.4s; }
.ib-sign { margin-top:auto; font:3.6cqi var(--sans); letter-spacing:.24em; text-transform:uppercase; color:#8a7458; opacity:0; animation:capIn 1s 3.6s var(--ease-out) both; }
.ib-leaf { position:absolute; inset:1.2% 1% 1.2% 0; transform-origin:left center; transform-style:preserve-3d; }
.ib-leaf.l1 { transform:translateZ(3px); animation:leaf1 1.25s 1.95s var(--ease-io) both; }
.ib-leaf.l2 { transform:translateZ(2px); animation:leaf2 1.25s 2.1s var(--ease-io) both; }
.ib-leaf.l3 { transform:translateZ(1px); animation:leaf3 1.25s 2.25s var(--ease-io) both; }
@keyframes leaf1 { to { transform:translateZ(1px) rotateY(-177deg); } }
@keyframes leaf2 { to { transform:translateZ(2px) rotateY(-178deg); } }
@keyframes leaf3 { to { transform:translateZ(3px) rotateY(-179.5deg); } }
.leaf-front, .leaf-back { position:absolute; inset:0; -webkit-backface-visibility:hidden; backface-visibility:hidden; background:#f7eedb var(--noise); border-radius:0 5px 5px 0; box-shadow:inset 10px 0 20px -12px #0005; }
.leaf-back { transform:rotateY(180deg); border-radius:5px 0 0 5px; box-shadow:inset -10px 0 20px -12px #0005; container-type:inline-size; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:clamp(8px,2vw,20px); color:#3a2a1c; text-align:center; }
.leaf-ornament svg { width:30cqi; fill:none; stroke:#a8833f; stroke-width:2.4; stroke-linecap:round; }
.leaf-title { font:italic 10cqi var(--serif); color:#5d201c; }
.leaf-sub { font:3.4cqi var(--sans); letter-spacing:.2em; text-transform:uppercase; color:#8a7458; }
.ib-dedication { position:absolute; right:100%; top:0; width:100%; height:100%; transform:translateZ(26px); container-type:inline-size; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:20px; text-align:center; color:#3a2a1c; opacity:0; animation:capIn 1s 3.1s var(--ease-out) both; pointer-events:none; }
.ib-cover { position:absolute; inset:0; transform-origin:left center; transform-style:preserve-3d; transform:translateZ(4px); animation:coverOpen 1.5s 1.75s var(--ease-io) both; }
@keyframes coverOpen { 60% { transform:translateZ(5px) rotateY(-120deg); } to { transform:translateZ(0) rotateY(-178.5deg); } }
.ib-front, .ib-back { position:absolute; inset:0; -webkit-backface-visibility:hidden; backface-visibility:hidden; border-radius:3px 8px 8px 3px; }
.ib-back { transform:rotateY(180deg); border-radius:8px 3px 3px 8px; background:radial-gradient(circle,#c9a45c55 1.1px,transparent 1.6px) 0 0/12px 12px,radial-gradient(circle,#c9a45c33 1px,transparent 1.4px) 6px 6px/12px 12px,#1b3a2f; box-shadow:inset 0 0 0 6px #f4ead4,inset 0 0 0 7px #c9a45c66; }
.ib-front { container-type:inline-size; }
.cover-art { position:absolute; inset:0; overflow:hidden; display:flex; flex-direction:column; align-items:center; text-align:center; padding:13cqi 9cqi 10cqi 15cqi; color:#e6cf92; border-radius:inherit; background:radial-gradient(90% 70% at 35% 22%,#ffffff17,transparent 60%),repeating-linear-gradient(0deg,#ffffff06 0 1px,transparent 1px 3px),repeating-linear-gradient(90deg,#00000014 0 1px,transparent 1px 3px),linear-gradient(160deg,#25493b,#173229 58%,#0f231d); box-shadow:inset 0 0 0 1px #0007,inset 0 0 50px #000a; }
.cover-art::after { content:''; position:absolute; inset:0; background:linear-gradient(105deg,transparent 35%,#fff6 48%,#ffe9b044 53%,transparent 66%); transform:translateX(-110%); animation:sweep 1.2s .95s var(--ease-io) both; pointer-events:none; }
.cover-hinge { position:absolute; left:0; top:0; bottom:0; width:8cqi; background:linear-gradient(90deg,#000a,#ffffff1c 45%,#0006); border-right:1px solid #c9a45c55; }
.cover-frame { position:absolute; inset:5cqi 5cqi 5cqi 12cqi; border:1px solid #c9a45c99; outline:1px solid #c9a45c55; outline-offset:-2.4cqi; }
.cover-corner { position:absolute; width:9cqi; height:9cqi; fill:none; stroke:#d6b670; stroke-width:1.4; }
.cover-corner.c1 { top:5cqi; left:12cqi; } .cover-corner.c2 { top:5cqi; right:5cqi; transform:scaleX(-1); } .cover-corner.c3 { bottom:5cqi; left:12cqi; transform:scaleY(-1); } .cover-corner.c4 { bottom:5cqi; right:5cqi; transform:scale(-1); }
.cover-author, .cover-title { background:linear-gradient(100deg,#9b7838 0%,#f3e1a6 30%,#c49b4e 48%,#fff1c4 62%,#a8823e 82%,#e8cf8f 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }
.cover-author { position:relative; margin-top:3cqi; font:600 3.2cqi var(--sans); letter-spacing:.3em; text-transform:uppercase; }
.cover-medal { position:relative; width:40cqi; aspect-ratio:1; margin:9cqi 0 6cqi; display:grid; place-items:center; border-radius:50%; border:1px solid #c9a45caa; box-shadow:0 0 0 1.8cqi #173229,0 0 0 calc(1.8cqi + 1px) #c9a45c66; }
.cover-medal svg { width:72%; fill:none; stroke:#e2c784; stroke-width:2.6; stroke-linecap:round; stroke-linejoin:round; }
.cover-title { position:relative; display:flex; flex-direction:column; align-items:center; font:13cqi/1.05 var(--serif); letter-spacing:-.03em; }
.cover-title em { font-size:1.3em; }
.cover-rule { position:relative; width:24cqi; height:1px; margin:6cqi 0 3cqi; background:#c9a45c99; }
.cover-foot { position:relative; margin-top:auto; font:italic 3.6cqi var(--serif); letter-spacing:.12em; color:#cdb27a; }
.intro-line { position:absolute; bottom:max(11vh,70px); left:0; right:0; padding-inline:24px; text-align:center; font:italic clamp(17px,2vw,24px)/1.5 var(--serif); color:#e9d6aa; opacity:0; animation:capIn 1.4s 3s var(--ease-out) both; }
.intro-skip { position:absolute; right:max(24px,4vw); bottom:max(24px,4vh); min-height:44px; padding:8px 18px; border:1px solid #cdb27a66; border-radius:40px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:#e6cf92; animation:fadeIn 1s .6s both; transition:background .3s; }
.intro-skip:hover, .intro-skip:focus-visible { background:#cdb27a22; }
.intro.is-leaving { animation:introOut 1.1s var(--ease-io) forwards; pointer-events:none; }
.intro.is-leaving .intro-scene { animation:zoomThrough 1.1s var(--ease-io) forwards; }
.intro.is-leaving .intro-kicker, .intro.is-leaving .intro-line, .intro.is-leaving .intro-skip { animation:readerOut .5s ease forwards; }
.intro.is-fast, .intro.is-fast .intro-scene { animation-duration:.6s; }
@keyframes introOut { 0%,35% { opacity:1; } to { opacity:0; } }
@keyframes zoomThrough { from { transform:rotateX(12deg); } to { transform:rotateX(0) translateY(-4%) scale(3.4); opacity:0; } }

/* ---------- Mobile ---------- */
@media (max-width:720px) {
  .js-nav .bar-nav { display:block; visibility:hidden; opacity:0; transform:translateY(-8px) scale(.98); transform-origin:top right; pointer-events:none; transition:opacity .25s ease,transform .35s var(--ease-out),visibility 0s .35s; }
  .js-nav .bar-nav.is-open { visibility:visible; opacity:1; transform:none; pointer-events:auto; transition:opacity .25s ease,transform .35s var(--ease-out),visibility 0s; }
  .motion.js-nav .bar-nav.is-open a { animation:menuItem .45s var(--ease-out) both; }
  .motion.js-nav .bar-nav.is-open a:nth-child(2) { animation-delay:.05s; }
  .motion.js-nav .bar-nav.is-open a:nth-child(3) { animation-delay:.1s; }
  .shelf { --cover-w:204px; --cover-h:298px; --spine-h:266px; --gap:5px; --spine-scale:.78; padding-block:64px 18px; }
  .shelf::before { margin-bottom:40px; }
  .shelf-head h2 { font-size:clamp(30px,8.4vw,44px); }
  .shelf-tabs button { padding-inline:10px; font-size:10px; min-height:40px; }
  .shelf-stage { margin-top:26px; }
  .shelf-viewport { -webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent); }
  .sc-link { padding:24px 20px 18px 26px; }
  .sc-frame { inset:10px 10px 10px 16px; }
  .sc-emblem svg { width:44px; height:44px; margin-block:14px 10px; }
  .sc-title { font-size:19px; }
  .sc-rule { margin:11px 0; }
  .sc-lines { font-size:11px; -webkit-line-clamp:2; }
  .sc-play { width:44px; height:44px; left:-18px; bottom:56px; }
  .shelf-arrow { width:44px; height:44px; top:calc(50% - 22px); font-size:18px; }
  .shelf-prev { left:8px; } .shelf-next { right:8px; }
  .shelf-caption { min-height:140px; }
  .shelf-title { font-size:26px; }
  .contents::before, .archive::before { margin-bottom:44px; }
  .reader-page { margin:0; border:0; box-shadow:none; padding:42px 22px 28px; }
  .reader-page::before { display:none; }
  .reader-page::after { top:14px; width:120px; }
  .intro-book { --bw:clamp(140px,40vw,230px); }
  .intro-kicker { font-size:8px; letter-spacing:.3em; animation-name:fadeIn; }
  .intro-skip { left:50%; right:auto; translate:-50% 0; bottom:max(20px,3vh); }
  .intro-line { bottom:max(13vh,92px); }
}
@media (max-width:370px) {
  .shelf { --cover-w:184px; --cover-h:270px; --spine-h:240px; --spine-scale:.7; }
  .sc-title { font-size:17px; }
  .sc-lines { display:none; }
}
@media (prefers-reduced-motion:reduce) {
  html:not(.allow-motion) .shelf-track, html:not(.allow-motion) .shelf-book, html:not(.allow-motion) .shelf-cover, html:not(.allow-motion) .shelf-spine, html:not(.allow-motion) .shelf-scrub span { transition:none!important; }
}
@media print {
  .poem-text { -webkit-mask:none!important; mask:none!important; }
  .reader-page { box-shadow:none; border:0; margin:0; padding:0; }
  .reader-page::before, .reader-page::after, .shelf, .intro { display:none!important; }
  body, .reader { background-image:none; }
}


/* Library entrance: one palette, in daylight and lamplight. */
:root {
  --bg:#f6f0e6; --paper:#fffbf3; --ink:#382b22; --muted:#7e6d5b;
  --line:#dfd0b9; --accent:#805637; --accent-soft:#eedfc9; --forest:#493426;
  --sage:#eee3d0; --mint:#d9c6a4; --gold:#ad8547; --gold-hi:#e7ca8a; --gold-lo:#7c5b2f;
}
:root[data-theme='dark'] {
  --bg:#191510; --paper:#251e17; --ink:#f3e4cc; --muted:#bba88e;
  --line:#463929; --accent:#dec08c; --accent-soft:#3c2e20; --forest:#3b2d21;
  --sage:#31271c; --mint:#54412d; --gold:#ceaa65; --gold-hi:#f0dca8; --gold-lo:#98733f;
}
body { background-image:radial-gradient(ellipse at 50% 0,#e2bb6b12,transparent 60%),var(--noise); }
.about { background:radial-gradient(ellipse at 15% 10%,#644930,#392a1e 58%,#241b15); }
.site-language { display:flex; align-items:center; gap:2px; padding:2px; border:1px solid var(--line); border-radius:4px; }
.site-language button { min-height:38px; min-width:39px; padding:0 8px; border-radius:2px; font-size:9px; letter-spacing:.05em; transition:background .25s,color .25s; }
.site-language button[aria-pressed='true'] { background:var(--ink); color:var(--bg); }
.bar-actions { gap:14px; }
.library-masthead { position:relative; text-align:center; padding-top:25px; padding-bottom:16px; }
.library-masthead:focus { outline:none; }
.library-eyebrow { display:flex; justify-content:center; gap:12px; font-size:9px; letter-spacing:.2em; text-transform:uppercase; color:var(--muted); }
.library-eyebrow span { color:var(--gold); }
.library-masthead h1 { font:clamp(44px,6vw,80px)/1.25 var(--serif); letter-spacing:-.06em; margin:8px 0 6px; }
.library-masthead h1 em { display:inline-block; margin-left:.14em; font-weight:400; color:var(--accent); }
.library-byline { font-size:11px; color:var(--muted); letter-spacing:.04em; }
.library-byline>span { color:var(--gold); padding:0 12px; }
.library-actions { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; column-gap:18px; margin-top:12px; font-size:10px; color:var(--muted); }
.library-actions button,.library-actions a { min-height:44px; display:inline-flex; align-items:center; gap:8px; }
.library-actions button>span { font-size:16px; color:var(--accent); }
.library-actions button:hover { color:var(--accent); }
.library-actions .resume-link { margin:0; font-size:10px; }
.library-masthead+.shelf { padding-top:12px; }
.library-masthead+.shelf::before { margin-bottom:26px; width:150px; height:16px; }
.shelf-head { gap:10px; }
.shelf-head h2 { font-size:clamp(32px,3vw,43px); }
.shelf-head .eyebrow { font-size:9px; }
.shelf-stage { margin-top:25px; }
.motion.is-ready .library-masthead>p,.motion.is-ready .library-masthead>h1,.motion.is-ready .library-actions { animation:libraryTextIn 1.1s var(--ease-out) both; }
.motion.is-ready .library-masthead>h1 { animation-delay:.08s; }
.motion.is-ready .library-byline { animation-delay:.16s; }
.motion.is-ready .library-actions { animation-delay:.24s; }
@keyframes libraryTextIn { from { opacity:0; translate:0 15px; } to { opacity:1; translate:0 0; } }

/* Eight-second first visit. The shelf is always usable after skip or failure. */
.library-intro { color:#f1dfb8; background:radial-gradient(ellipse at 50% 44%,#674b2b 0,#302216 45%,#130f0b 90%); }
.library-intro::before { content:''; position:absolute; inset:16px; border:1px solid #d5b77824; pointer-events:none; }
.intro-topline { position:absolute; top:36px; left:5%; right:5%; display:flex; justify-content:space-between; align-items:center; z-index:5; }
.intro-topline p { font-size:9px; text-transform:uppercase; letter-spacing:.2em; }
.intro-topline .site-language { border-color:#bfa16b55; }
.intro-topline .site-language button[aria-pressed='true'] { background:#e2c991; color:#302216; }
.library-intro .intro-kicker { top:17%; font:italic clamp(17px,2vw,26px) var(--serif); color:#d9bf8d; text-transform:none; letter-spacing:0; animation:libraryCaption 3.9s both; }
@keyframes libraryCaption { 0% { opacity:0; translate:0 14px; } 20%,80% { opacity:1; translate:0 0; } 100% { opacity:0; translate:0 -16px; } }
.library-intro .intro-scene { animation:libraryBookIn 1.1s var(--ease-out) both,libraryBookOut .8s 3.55s var(--ease-io) forwards; }
.library-intro .intro-book { --bw:clamp(160px,22vw,260px); }
.library-intro .cover-art { background:radial-gradient(ellipse at 20% 12%,#b18a5130,transparent 65%),repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px),linear-gradient(145deg,#563a25,#2d2117); }
.library-intro .cover-medal { box-shadow:0 0 0 1.8cqi #3e2c1e,0 0 0 calc(1.8cqi + 1px) #c9a45c66; }
.library-intro .ib-back { background:radial-gradient(circle,#bfa16b44 1px,transparent 1.5px) 0 0/10px 10px,#433020; }
.library-intro .ib-page-title { animation-delay:2.2s; }
.library-intro .ib-line:nth-child(2) { animation-delay:2.4s; }
.library-intro .ib-line:nth-child(3) { animation-delay:2.55s; }
.library-intro .ib-sign { animation-delay:2.8s; }
.library-intro .ib-dedication { animation-delay:2.75s; }
@keyframes libraryBookIn { from { opacity:0; transform:translateY(70px) rotateX(25deg) rotate(-5deg) scale(.8); } to { opacity:1; transform:rotateX(8deg); } }
@keyframes libraryBookOut { to { opacity:0; transform:translateY(-70px) rotateX(20deg) scale(.3); } }
.intro-volumes { position:absolute; left:0; right:0; top:51%; height:260px; perspective:1400px; pointer-events:none; }
.intro-volume { --slot:0; position:absolute; left:50%; top:0; width:132px; height:194px; color:var(--bi); transform-style:preserve-3d; transform:translateX(calc(var(--slot) * 87px - 50%)) translateY(calc(var(--slot) * var(--slot) * 1px)) rotate(calc(var(--slot) * 3deg)); animation:volumePass .45s calc(3.35s + var(--i) * 45ms) var(--ease-out) both; }
.intro-volume.is-final { animation:volumesArrive .85s calc(4.6s + var(--fan-i) * 55ms) var(--ease-out) both; }
@keyframes volumePass { 0% { opacity:0; transform:translateX(80px) translateY(-10px) rotateY(-70deg) scale(.7); } 25%,55% { opacity:1; } 100% { opacity:0; transform:translateX(-300px) translateY(20px) rotateY(30deg) rotate(-12deg) scale(.8); } }
@keyframes volumesArrive { from { opacity:0; transform:translateX(-50%) translateY(75px) rotate(0) scale(.45); } to { opacity:1; } }
.iv-pages { position:absolute; inset:3px 0 1px 2px; padding:22px 12px; color:#634b32; background:repeating-linear-gradient(90deg,#efe2c6 0 2px,#cabc9d 2px 3px); border-radius:1px 4px 4px 1px; box-shadow:0 20px 30px -10px #0009; }
.iv-pages::before { content:''; position:absolute; inset:1px 3px; background:#f5ebd8 var(--noise); }
.iv-pages span { position:relative; font:italic 11px/1.8 var(--serif); }
.iv-cover { position:absolute; inset:0 4px 3px 0; display:flex; flex-direction:column; align-items:center; justify-content:space-around; text-align:center; padding:14px; border-radius:2px 5px 5px 2px; background:linear-gradient(90deg,#0006,#ffffff10 8%,#0000 70%,#0003),var(--noise),var(--bk); box-shadow:inset 0 0 0 5px var(--bk),inset 0 0 0 6px #d0b57588; transform-origin:left; animation:volumeOpen .45s calc(3.35s + var(--i) * 45ms) var(--ease-io) both; }
.is-final .iv-cover { animation-duration:.7s; animation-delay:calc(5s + var(--fan-i) * 55ms); }
.iv-cover>span { font:9px var(--serif); }
.iv-cover svg { width:34px; height:34px; fill:none; stroke:currentColor; stroke-width:1.5; }
.iv-cover strong { font:13px/1.3 var(--serif); display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.iv-cover small { font-size:6px; letter-spacing:.08em; }
@keyframes volumeOpen { 0% { transform:rotateY(0); } 50% { transform:rotateY(-125deg); } 100% { transform:rotateY(-14deg); } }
.intro-choice { position:absolute; left:20px; right:20px; top:20%; text-align:center; animation:choiceArrive .9s 5.8s var(--ease-out) both; }
.intro-choice-ornament { font:28px var(--serif); color:#bca16a; }
.intro-choice h2 { margin:10px auto 14px; max-width:850px; font-size:clamp(32px,4.6vw,62px); letter-spacing:-.04em; text-wrap:balance; line-height:1.2; }
.intro-choice p { font:italic clamp(13px,1.3vw,18px) var(--serif); color:#cdb48b; }
.intro-enter { position:absolute; left:50%; bottom:12%; translate:-50% 0; display:flex; gap:40px; align-items:center; justify-content:center; padding:12px 22px; min-height:48px; white-space:nowrap; border:1px solid #c2a16888; color:#f1dfb8; background:#ffffff06; font-size:11px; border-radius:3px; animation:choiceArrive .9s 5.8s var(--ease-out) both; }
.library-intro .intro-enter { animation-name:enterArrive; }
.intro-enter:hover { background:#c2a16822; }
@keyframes enterArrive { from { opacity:0; visibility:hidden; transform:translateY(22px); } to { opacity:1; visibility:visible; transform:translateY(0); } }
@keyframes choiceArrive { from { opacity:0; visibility:hidden; translate:0 22px; filter:blur(4px); } to { opacity:1; visibility:visible; translate:0 0; filter:blur(0); } }
.intro-footer { position:absolute; left:5%; right:5%; bottom:34px; display:flex; align-items:center; justify-content:space-between; gap:20px; }
.intro-footer>span { font:italic 13px var(--serif); color:#c1a77c; }
.library-intro .intro-skip { position:static; translate:none; border:0; padding:0 4px; min-height:44px; border-radius:0; font-size:9px; }
.intro-timer { position:absolute; left:0; right:0; bottom:-8px; height:1px; background:#bfa16b33; }
.intro-timer span { display:block; height:100%; background:#c1a16a; transform-origin:left; animation:introProgress 8.1s linear both; }
@keyframes introProgress { from { transform:scaleX(0); } to { transform:scaleX(1); } }
.library-intro.is-leaving { animation:libraryFade .7s ease forwards; }
.library-intro.is-leaving .intro-scene { opacity:0; animation:none; }
@keyframes libraryFade { to { opacity:0; visibility:hidden; scale:1.025; } }
.library-intro.is-still .intro-scene,.library-intro.is-still .intro-kicker { display:none; }
.library-intro.is-still .intro-volume:not(.is-final) { display:none; }
.library-intro.is-still .intro-volume { animation:none; }
.library-intro.is-still .iv-cover { animation:none; }
.library-intro.is-still .intro-choice { animation:none; opacity:1; }
.library-intro.is-still .intro-enter { animation:none; }
.library-intro.is-still .intro-timer { display:none; }
.library-intro :focus-visible { outline-color:#ecd595; }

@media (max-width:1100px) {
  .intro-volume { width:110px; height:166px; transform:translateX(calc(var(--slot) * 64px - 50%)) translateY(calc(var(--slot) * var(--slot) * 1px)) rotate(calc(var(--slot) * 3deg)); }
}
@media (max-width:720px) {
  .bar { gap:10px; }
  .bar-brand { font-size:16px; }
  .bar-brand small { display:none; }
  .bar-brand .brand-mark { font-size:30px; }
  .bar-actions { gap:4px; }
  .site-language button { padding:0 5px; min-height:40px; min-width:34px; }
  .library-masthead { padding-top:22px; padding-bottom:12px; }
  .library-eyebrow { font-size:7px; gap:8px; letter-spacing:.12em; }
  .library-masthead h1 { font-size:clamp(34px,8.8vw,61px); margin-top:10px; }
  .library-byline { font-size:9px; }
  .library-byline>span { padding:0 6px; }
  .library-actions { gap:0 12px; margin-top:8px; font-size:9px; }
  .library-actions .resume-link { flex-basis:100%; justify-content:center; font-size:9px; }
  .library-masthead+.shelf { padding-top:8px; }
  .library-masthead+.shelf::before { margin-bottom:16px; width:120px; }
  .shelf-head h2 { font-size:clamp(26px,6.5vw,38px); }
  .shelf-head { gap:8px; }
  .shelf-stage { margin-top:16px; }
  .shelf-instruction { max-width:280px; text-wrap:balance; }
  .intro-topline { top:24px; left:24px; right:24px; }
  .intro-topline p { max-width:150px; font-size:8px; line-height:1.6; letter-spacing:.13em; }
  .library-intro .intro-kicker { top:21%; padding:0 30px; font-size:20px; }
  .library-intro .intro-book { --bw:165px; }
  .intro-volumes { top:50%; height:180px; }
  .intro-volume { --slot:var(--mobile-slot)!important; width:86px; height:135px; transform:translateX(calc(var(--slot) * 44px - 50%)) translateY(calc(var(--slot) * var(--slot) * 2px)) rotate(calc(var(--slot) * 5deg)); }
  .intro-volume.is-final:not(.is-mobile-final) { animation:volumePass .45s calc(3.35s + var(--i) * 45ms) var(--ease-out) both; }
  .intro-volume.is-mobile-final { animation:volumesArrive .85s calc(4.8s + var(--mobile-fan-i) * 70ms) var(--ease-out) both; }
  .is-final:not(.is-mobile-final) .iv-cover { animation-duration:.45s; animation-delay:calc(3.35s + var(--i) * 45ms); }
  .is-mobile-final .iv-cover { animation-duration:.7s; animation-delay:calc(5.2s + var(--mobile-fan-i) * 70ms); }
  .library-intro.is-still .intro-volume:not(.is-mobile-final) { display:none; }
  .iv-cover { padding:10px; }
  .iv-cover svg { width:24px; height:24px; }
  .iv-cover strong { font-size:9px; }
  .iv-cover>span { font-size:7px; }
  .iv-cover small { font-size:4px; }
  .iv-pages { padding:13px 8px; }
  .iv-pages span { font-size:8px; }
  .intro-choice { top:22%; }
  .intro-choice h2 { font-size:34px; max-width:350px; }
  .intro-choice p { max-width:290px; margin:auto; font-size:13px; }
  .intro-enter { bottom:15%; min-height:48px; }
  .intro-footer { left:25px; right:25px; bottom:28px; }
  .intro-footer>span { font-size:11px; }
}
@media (max-width:540px) { .bar-brand .brand-mark { display:none; } .bar-brand { font-size:14px; gap:0; } }
@media (max-width:370px) {
  .bar { padding-inline:14px; gap:6px; }
  .bar-brand { max-width:112px; font-size:13px; }
  .site-language button { min-width:30px; padding-inline:4px; }
  .library-masthead h1 { font-size:31px; }
  .intro-volume { width:74px; height:116px; transform:translateX(calc(var(--slot) * 37px - 50%)) translateY(calc(var(--slot) * var(--slot) * 2px)) rotate(calc(var(--slot) * 5deg)); }
  .intro-choice h2 { font-size:29px; }
}
@media (max-height:620px) and (min-width:721px) {
  .library-intro .intro-book { --bw:155px; }
  .library-intro .intro-kicker { top:17%; }
  .intro-volumes { top:46%; scale:.75; }
  .intro-choice { top:13%; }
  .intro-choice h2 { font-size:34px; }
  .intro-enter { bottom:12%; min-height:44px; padding-block:8px; }
}
@media print { .library-actions,.site-language { display:none!important; } }


/* ---------- Dedication & support QR ---------- */
.support { position:relative; isolation:isolate; display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(40px,6vw,96px); align-items:center; margin-block:20px 90px; padding:clamp(56px,7vw,96px) clamp(28px,6vw,88px); color:#f1e4c6; border-radius:6px; overflow:hidden;
  background:radial-gradient(70% 90% at 82% 40%,#7a4b1f66,transparent 62%),radial-gradient(60% 80% at 8% 0%,#5d201c55,transparent 60%),var(--noise),linear-gradient(150deg,#2a1b11,#170f09 60%,#120b06);
  box-shadow:0 50px 90px -50px #2a170ecc,inset 0 0 0 1px #c9a25a33; }
.support::before { content:''; position:absolute; inset:12px; z-index:-1; border:1px solid #c9a25a40; border-radius:3px; pointer-events:none; }
.support .eyebrow { color:#d8b66c; }
.support h2 { font-size:clamp(34px,4.4vw,60px); line-height:1.12; letter-spacing:-.035em; margin:18px 0 26px; color:#f6ead0; }
.support h2 em { background:linear-gradient(100deg,#9b7838,#f3e1a6 32%,#c49b4e 50%,#fff1c4 64%,#a8823e 86%); background-size:200% 100%; -webkit-background-clip:text; background-clip:text; color:transparent; }
.support-copy p:not(.eyebrow) { max-width:520px; color:#d9c9a8; font-size:16px; }
.support-copy p+p { margin-top:14px; }
.support-lead { font:italic clamp(18px,1.6vw,21px)/1.6 var(--serif)!important; color:#efe1c0!important; }
.support-thanks { padding-top:14px; border-top:1px solid #c9a25a40; display:inline-block; font:italic 15px var(--serif)!important; color:#d8b66c!important; }
.support-card { position:relative; justify-self:center; width:min(100%,380px); display:flex; flex-direction:column; align-items:center; gap:18px; }
.support-glow { position:absolute; inset:-16% -22%; z-index:-1; border-radius:50%; background:radial-gradient(closest-side,#f3cf8a55,#d39a4a22 50%,transparent 75%); filter:blur(8px); pointer-events:none; }
.support-frame { position:relative; width:100%; padding:22px 22px 18px; border-radius:18px; text-align:center; background:linear-gradient(#fbf6ea,#fbf6ea) padding-box,linear-gradient(140deg,#f6e2a6,#a8833f 30%,#5d3a18 52%,#e8cf8f 72%,#8a6a2f) border-box; border:2px solid transparent; box-shadow:0 0 0 6px #c9a25a1f,0 0 40px #e9b26044,0 30px 60px -20px #000c; color:#3a2414; overflow:hidden; }
.support-frame::after { content:''; position:absolute; left:8%; right:8%; top:0; height:2px; border-radius:2px; background:linear-gradient(90deg,transparent,#e9b260,transparent); box-shadow:0 0 14px 3px #e9b26066; opacity:0; pointer-events:none; }
.support-kicker { font-size:10px; letter-spacing:.32em; text-transform:uppercase; color:#8e3326; margin-bottom:10px; }
.support-qr { display:block; width:100%; height:auto; aspect-ratio:1; border-radius:8px; }
.support-card figcaption { display:flex; flex-direction:column; gap:3px; margin-top:12px; font-size:12px; line-height:1.45; color:#776b5d; }
.support-recipient { font:italic 19px var(--serif); color:#2b2520; }
.support-corner { position:absolute; width:22px; height:22px; border:2px solid #c9a25a; pointer-events:none; }
.support-corner.c1 { top:8px; left:8px; border-width:2px 0 0 2px; border-top-left-radius:8px; }
.support-corner.c2 { top:8px; right:8px; border-width:2px 2px 0 0; border-top-right-radius:8px; }
.support-corner.c3 { bottom:8px; left:8px; border-width:0 0 2px 2px; border-bottom-left-radius:8px; }
.support-corner.c4 { bottom:8px; right:8px; border-width:0 2px 2px 0; border-bottom-right-radius:8px; }
.support-save { display:inline-flex; align-items:center; gap:8px; min-height:44px; padding:8px 20px; border:1px solid #c9a25a77; border-radius:40px; font-size:12px; letter-spacing:.08em; color:#f1dca0; transition:background .3s,border-color .3s,transform .3s var(--ease); }
.support-save:hover, .support-save:focus-visible { background:#c9a25a22; border-color:#e8cf8f; transform:translateY(-2px); }

@keyframes supportGlow { 0%,100% { opacity:.65; scale:.96; } 50% { opacity:1; scale:1.04; } }
@keyframes supportScan { 0% { top:4%; opacity:0; } 8% { opacity:1; } 42% { opacity:1; } 50%,100% { top:96%; opacity:0; } }
@keyframes supportCorner { from { opacity:0; scale:1.6; } }
@keyframes supportCardIn { from { opacity:0; transform:perspective(1200px) rotateX(14deg) translateY(50px) scale(.94); filter:blur(8px); } to { opacity:1; transform:none; filter:none; } }
@keyframes supportFoil { to { background-position:-200% 0; } }
.motion .support h2 em { animation:supportFoil 8s linear infinite; }
.motion .support-glow { animation:supportGlow 5s ease-in-out infinite; }
.motion .support-card[data-reveal] { translate:none; }
.motion .support-card.is-in .support-frame { animation:supportCardIn 1.3s var(--ease-out) both; }
.motion .support-card.is-in .support-corner { animation:supportCorner .9s var(--ease-out) .7s both; }
.motion .support-card.is-in .support-frame::after { animation:supportScan 4.5s 1.4s ease-in-out infinite; }
@media (max-width:720px) {
  .support { grid-template-columns:1fr; text-align:center; margin:0 0 48px; border-radius:0; padding:60px 22px 64px; }
  .support-copy p:not(.eyebrow) { margin-inline:auto; font-size:15px; }
  .support-card { width:min(100%,330px); }
  .support-frame { padding:18px 16px 14px; }
}
@media print { .support { display:none!important; } }
.support-call { font:italic clamp(19px,1.75vw,23px)/1.5 var(--serif)!important; color:#f1dca0!important; padding-left:18px; border-left:2px solid #c9a25a99; }
.support-cta { font-weight:600; color:#efe1c0!important; letter-spacing:.01em; }
@media (max-width:720px) { .support-call { padding-left:0; border-left:0; padding-top:14px; border-top:1px solid #c9a25a55; } }
