:root {
  --ink: #090909;
  --ink-soft: #11110f;
  --paper: #e9e4da;
  --muted: #99978f;
  --line: rgba(233, 228, 218, 0.14);
  --gold: #c6a66a;
  --gold-light: #e2c990;
  --blue: #244c6a;
  --serif: "Prata", Georgia, serif;
  --sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--ink); color-scheme: dark; }
body { margin: 0; color: var(--paper); background: var(--ink); font-family: var(--sans); font-weight: 300; overflow-x: hidden; }
body.is-locked { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button, input, textarea { font: inherit; }
button { color: inherit; }
img { display: block; width: 100%; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
:focus-visible { outline: 2px solid var(--gold-light); outline-offset: 4px; }

.noise { position: fixed; inset: 0; z-index: 20; pointer-events: none; opacity: .045; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E"); }
.cursor-glow { position: fixed; z-index: 0; width: 36rem; height: 36rem; border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%); background: radial-gradient(circle, rgba(198,166,106,.08), transparent 68%); transition: opacity .3s; }
.scroll-progress { position: fixed; top: 0; left: 0; z-index: 100; width: 100%; height: 2px; }
.scroll-progress span { display: block; width: 0; height: 100%; background: var(--gold); }

.site-header { position: fixed; top: 0; left: 0; z-index: 50; width: 100%; padding: 1.4rem clamp(1.2rem, 4vw, 4rem); display: flex; justify-content: space-between; align-items: center; transition: background .35s, padding .35s, border .35s; }
.site-header.is-scrolled { padding-top: .9rem; padding-bottom: .9rem; background: rgba(9,9,9,.96); border-bottom: 1px solid var(--line); }
.brand { display: flex; align-items: center; gap: .9rem; }
.brand-mark { display: block; width: 2.35rem; height: 2.75rem; flex: 0 0 auto; object-fit: contain; filter: drop-shadow(0 .35rem .85rem rgba(198,166,106,.12)); }
.brand-name { color: rgba(233,228,218,.75); font-size: .68rem; text-transform: uppercase; letter-spacing: .19em; }
.site-header nav { display: flex; gap: clamp(1.5rem, 3vw, 3.5rem); }
.site-header nav a { position: relative; padding: .5rem 0; color: rgba(233,228,218,.72); font-size: .72rem; text-transform: uppercase; letter-spacing: .16em; transition: color .25s; }
.site-header nav a::after { content: ""; position: absolute; left: 0; bottom: .2rem; width: 0; height: 1px; background: var(--gold); transition: width .25s; }
.site-header nav a:hover, .site-header nav a.is-active { color: var(--paper); }
.site-header nav a:hover::after, .site-header nav a.is-active::after { width: 100%; }
.menu-button { display: none; width: 2.7rem; height: 2.7rem; padding: .7rem; border: 0; background: transparent; }
.menu-button span:not(.sr-only) { display: block; width: 100%; height: 1px; margin: .35rem 0; background: var(--paper); transition: transform .25s; }

.hero { position: relative; min-height: 100svh; padding: 9rem clamp(1.2rem, 8vw, 9rem) 6rem; display: flex; align-items: center; overflow: hidden; }
.hero::after { content: ""; position: absolute; inset: auto 0 0; height: 34%; background: linear-gradient(transparent, var(--ink)); pointer-events: none; }
.hero-art { position: absolute; inset: 0 0 0 42%; overflow: hidden; background: radial-gradient(circle at 58% 44%, #2a241a 0, #12110f 32%, #090909 69%); }
.hero-visual { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; filter: saturate(.72) brightness(.68); }
.hero-art::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, rgba(9,9,9,.74), transparent 42%), linear-gradient(0deg, rgba(9,9,9,.7), transparent 42%); }
.hero-art .moon, .hero-art .floating-page { display: none; }
.moon { position: absolute; top: 17%; right: 14%; width: clamp(13rem, 27vw, 27rem); aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle at 37% 32%, #f1dbab, #c2a56d 36%, #66583e 69%, #1c1a16 70%); box-shadow: 0 0 80px rgba(198,166,106,.17); opacity: .78; }
.moon::before, .moon::after { content: ""; position: absolute; border-radius: 50%; background: rgba(85,70,45,.22); }
.moon::before { width: 18%; height: 12%; left: 17%; top: 37%; transform: rotate(18deg); }
.moon::after { width: 9%; height: 7%; right: 24%; top: 18%; }
.window-lines { position: absolute; inset: 0; opacity: .19; background: linear-gradient(90deg, transparent 49.8%, #d4bd8e 50%, transparent 50.2%), linear-gradient(0deg, transparent 64.8%, #d4bd8e 65%, transparent 65.2%); background-size: 33.33% 100%, 100% 100%; }
.light-beam { position: absolute; top: 0; right: 13%; width: 26%; height: 115%; background: linear-gradient(100deg, transparent, rgba(218,188,130,.1), transparent); transform: skewX(-11deg); filter: blur(12px); }
.floating-page { position: absolute; width: 8rem; height: 11rem; border: 1px solid rgba(226,201,144,.18); background: linear-gradient(135deg, rgba(233,228,218,.12), rgba(233,228,218,.015)); backdrop-filter: blur(3px); box-shadow: 0 30px 70px rgba(0,0,0,.45); }
.floating-page::after { content: ""; position: absolute; inset: 18% 16%; background: repeating-linear-gradient(180deg, rgba(198,166,106,.32) 0 1px, transparent 1px 16px); }
.page-one { top: 22%; left: 13%; transform: rotate(-14deg); animation: floatOne 8s ease-in-out infinite; }
.page-two { right: 18%; bottom: 5%; transform: rotate(11deg) scale(.75); animation: floatTwo 10s ease-in-out infinite; }
@keyframes floatOne { 50% { transform: translateY(-18px) rotate(-11deg); } }
@keyframes floatTwo { 50% { transform: translate(8px,-15px) rotate(7deg) scale(.75); } }

.hero-copy { position: relative; z-index: 2; max-width: 55rem; }
.eyebrow { margin: 0 0 1.4rem; color: var(--gold); font-size: .67rem; font-weight: 500; letter-spacing: .24em; text-transform: uppercase; }
h1, h2, h3, p { margin-top: 0; }
h1 { margin-bottom: 2rem; font-family: var(--serif); font-size: clamp(4.2rem, 9.3vw, 9.5rem); font-weight: 400; line-height: .88; letter-spacing: -.055em; }
h1 em, h2 em { color: var(--gold-light); font-weight: 400; }
.hero-lead { max-width: 31rem; margin: 0 0 2.5rem .5rem; color: rgba(233,228,218,.67); font-size: clamp(.97rem, 1.2vw, 1.13rem); line-height: 1.75; }
.hero-actions { display: flex; align-items: center; gap: 2rem; margin-left: .5rem; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 2rem; min-width: 14rem; padding: 1rem 1.15rem; border: 1px solid var(--gold); background: transparent; color: var(--paper); cursor: pointer; font-size: .7rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; transition: background .25s, color .25s, transform .25s; }
.button:hover { color: #17130c; background: var(--gold-light); transform: translateY(-2px); }
.button span { font-size: 1rem; }
.text-link { display: inline-flex; gap: .7rem; align-items: center; padding: .6rem 0; border-bottom: 1px solid rgba(233,228,218,.3); font-size: .7rem; letter-spacing: .12em; text-transform: uppercase; }
.text-link span { color: var(--gold); transition: transform .25s; }
.text-link:hover span { transform: translateX(4px); }
.hero-index { position: absolute; z-index: 3; right: 4rem; bottom: 4.2rem; display: flex; align-items: center; gap: 1rem; color: rgba(233,228,218,.4); font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; }
.hero-index i { width: 4rem; height: 1px; background: rgba(233,228,218,.2); }
.scroll-cue { position: absolute; z-index: 3; left: 2.2rem; bottom: 3rem; display: flex; align-items: center; gap: 1rem; transform: rotate(-90deg); transform-origin: left center; color: rgba(233,228,218,.4); font-size: .58rem; letter-spacing: .2em; text-transform: uppercase; }
.scroll-cue i { width: 3rem; height: 1px; background: var(--gold); animation: cue 2s ease-in-out infinite; transform-origin: left; }
@keyframes cue { 50% { transform: scaleX(.55); opacity: .4; } }

.section { position: relative; z-index: 1; padding: clamp(6rem, 11vw, 10rem) clamp(1.2rem, 8vw, 9rem); }
.section-number { padding-bottom: 1.2rem; border-bottom: 1px solid var(--line); color: rgba(233,228,218,.37); font-size: .62rem; letter-spacing: .18em; }
.about { background: var(--ink); }
.about-grid { display: grid; grid-template-columns: 1.1fr .9fr; gap: clamp(3rem, 9vw, 11rem); padding: clamp(4rem, 8vw, 8rem) 0 5rem; }
.about-title h2, .gallery h2, .updates h2 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5.8vw, 6.2rem); font-weight: 400; line-height: 1.03; letter-spacing: -.04em; }
.about-copy { padding-top: 2rem; color: rgba(233,228,218,.66); font-size: .94rem; line-height: 1.85; }
.about-copy > p { margin-bottom: 1.6rem; }
.dropcap::first-letter { float: left; margin: .09em .13em 0 0; color: var(--gold-light); font-family: var(--serif); font-size: 4.8rem; line-height: .72; }
blockquote { position: relative; margin: 3.6rem 0 0; padding: 2.2rem 0 0 3.5rem; border-top: 1px solid var(--line); }
blockquote span { position: absolute; left: 0; top: 1.8rem; color: var(--gold); font-family: var(--serif); font-size: 3.7rem; line-height: 1; }
blockquote p { color: var(--paper); font-family: var(--serif); font-size: 1.35rem; line-height: 1.55; }
.story-facts { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.story-facts div { padding: 1.8rem 2rem; border-right: 1px solid var(--line); }
.story-facts div:first-child { padding-left: 0; }
.story-facts div:last-child { border: 0; }
.story-facts span, .story-facts strong { display: block; }
.story-facts span { margin-bottom: .65rem; color: rgba(233,228,218,.35); font-size: .58rem; text-transform: uppercase; letter-spacing: .18em; }
.story-facts strong { font-family: var(--serif); font-size: 1.05rem; font-weight: 400; }

.read-preview { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(3rem, 9vw, 10rem); align-items: center; min-height: 48rem; background: linear-gradient(135deg, #11100e, #08090a); overflow: hidden; }
.read-preview-art { position: relative; min-height: 36rem; overflow: hidden; box-shadow: 0 2rem 7rem rgba(0,0,0,.45); }
.read-preview-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 42%, rgba(5,5,5,.72)); }
.read-preview-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: saturate(.7) brightness(.72); transition: transform 1.1s ease; }
.read-preview-art:hover img { transform: scale(1.035); }
.read-preview-art > span { position: absolute; z-index: 2; right: 1.5rem; bottom: 1.5rem; display: grid; place-items: center; width: 5rem; height: 5rem; border: 1px solid rgba(226,201,144,.55); border-radius: 50%; color: var(--gold-light); font-family: var(--serif); font-size: .9rem; }
.read-preview-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(3rem, 5.8vw, 6.2rem); font-weight: 400; line-height: 1.03; letter-spacing: -.04em; }
.read-preview-copy > p:not(.eyebrow) { max-width: 31rem; margin: 2rem 0; color: rgba(233,228,218,.57); font-size: .94rem; line-height: 1.8; }
.reader-features { display: flex; flex-wrap: wrap; gap: .6rem; margin: 0 0 2.2rem; }
.reader-features span { padding: .55rem .75rem; border: 1px solid var(--line); color: rgba(233,228,218,.62); font-size: .65rem; letter-spacing: .08em; }
.read-static-link { display: inline-flex; align-items: center; gap: .6rem; margin: 1.3rem 0 0 1.1rem; padding-bottom: .35rem; border-bottom: 1px solid rgba(233,228,218,.28); color: rgba(233,228,218,.68); font-size: .66rem; letter-spacing: .1em; text-transform: uppercase; }
.read-static-link:hover { color: var(--gold-light); border-color: var(--gold); }

.reader { --reader-bg: #0c0c0b; --reader-text: #dcd7cc; --reader-muted: #827f78; position: fixed; z-index: 200; inset: 0; max-width: 100vw; display: grid; grid-template-rows: auto 1fr; overflow: hidden; overscroll-behavior-x: none; background: var(--reader-bg); color: var(--reader-text); transform: translateY(102%); visibility: hidden; transition: transform .55s cubic-bezier(.22,.75,.18,1), visibility .55s; }
.reader.is-open { transform: none; visibility: visible; }
.reader.is-paper { --reader-bg: #e8e1d3; --reader-text: #282621; --reader-muted: #777168; }
.reader-bar { position: relative; z-index: 3; min-height: 4.6rem; padding: 0 clamp(1rem, 3vw, 3rem); display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 13%, transparent); background: color-mix(in srgb, var(--reader-bg) 90%, transparent); backdrop-filter: blur(16px); transition: transform .3s cubic-bezier(.22,.75,.18,1), opacity .22s ease; will-change: transform; }
.reader-bar button { border: 0; background: transparent; color: var(--reader-text); cursor: pointer; }
.reader-close { justify-self: start; display: flex; gap: .65rem; align-items: center; color: var(--reader-muted) !important; font-size: .66rem; letter-spacing: .11em; text-transform: uppercase; }
.reader-bar-title { display: grid; justify-items: center; gap: .2rem; }
.reader-bar-title strong { font-family: var(--serif); font-size: .82rem; font-weight: 400; }
.reader-bar-meta { display: flex; align-items: center; justify-content: center; gap: .55rem; }
.reader-bar-meta span { color: var(--reader-muted); font-size: .54rem; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.reader-time-left { display: inline-flex; align-items: center; gap: .55rem; color: color-mix(in srgb, var(--gold) 82%, var(--reader-muted)) !important; font-variant-numeric: tabular-nums; }
.reader-time-left::before { content: ""; width: .22rem; height: .22rem; flex: none; border-radius: 50%; background: currentColor; opacity: .72; }
.reader-time-left[hidden] { display: none; }
.reader-controls { justify-self: end; display: flex; align-items: center; gap: .25rem; }
.reader-controls button { min-width: 2.4rem; height: 2.4rem; color: var(--reader-muted); font-size: .68rem; transition: color .2s, background .2s; }
.reader-controls button:hover { color: var(--reader-text); background: color-mix(in srgb, var(--reader-text) 7%, transparent); }
.reader-progress { position: absolute; inset: auto 0 0; height: 2px; }
.reader-progress span { display: block; width: 0; height: 100%; background: var(--gold); transition: width .1s linear; }
.reader-scroll { width: 100%; max-width: 100vw; min-height: 0; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; overscroll-behavior-x: none; touch-action: pan-y pinch-zoom; -webkit-overflow-scrolling: touch; scroll-behavior: smooth; outline: 0; }
.reader-scroll:focus-visible { outline: 2px solid var(--gold); outline-offset: -2px; }
.reader-book { width: min(100%, 52rem); max-width: 100%; min-width: 0; margin: 0 auto; padding: 0 clamp(1.35rem, 5vw, 5rem); }
.reader-cover { position: relative; min-height: calc(100svh - 4.6rem); padding: 15vh 0 5rem; display: flex; flex-direction: column; justify-content: center; isolation: isolate; overflow: hidden; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 14%, transparent); }
.reader-cover-art, .static-reader-cover-art { --cover-fade: var(--reader-bg); position: absolute; z-index: 0; inset: 5% -5rem 7% 30%; overflow: hidden; background: #17130d; box-shadow: 0 2.5rem 7rem rgba(0,0,0,.38); pointer-events: none; }
.static-reader-cover-art { --cover-fade: #0c0c0b; right: -2rem; }
.reader-cover-art::after, .static-reader-cover-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, var(--cover-fade) 0%, color-mix(in srgb, var(--cover-fade) 94%, transparent) 24%, color-mix(in srgb, var(--cover-fade) 28%, transparent) 68%, transparent 100%), linear-gradient(0deg, var(--cover-fade) 0%, transparent 36%, color-mix(in srgb, var(--cover-fade) 82%, transparent) 100%); }
.reader-cover-art img, .static-reader-cover-art img { width: 100%; height: 100%; object-fit: cover; object-position: center 42%; filter: saturate(.72) brightness(.62) contrast(1.05); transform: scale(1.025); }
.reader-cover > :not(.reader-cover-art):not(.reader-cover-mark), .static-reader-cover > :not(.static-reader-cover-art) { position: relative; z-index: 1; }
.reader-cover p { position: relative; margin-bottom: 2rem; color: var(--reader-muted); font-size: .65rem; text-transform: uppercase; letter-spacing: .24em; }
.reader-cover h1 { position: relative; margin-bottom: 2rem; font-size: clamp(4rem, 10vw, 7.5rem); text-shadow: 0 .18rem 1.5rem var(--reader-bg); }
.reader-cover > span { color: var(--reader-muted); font-size: .62rem; letter-spacing: .15em; text-transform: uppercase; }
.reader-community { position: relative; width: min(100%, 28rem); margin-top: 2.2rem; padding-top: 1.35rem; border-top: 1px solid color-mix(in srgb, var(--reader-text) 15%, transparent); }
.reader-community-count { display: flex; align-items: baseline; gap: .9rem; }
.reader-community-count strong { flex: none; color: var(--gold); font-family: var(--serif); font-size: clamp(2rem, 4.5vw, 3rem); font-weight: 400; line-height: 1; font-variant-numeric: tabular-nums; }
.reader-community-count > span { max-width: 13rem; color: var(--reader-muted); font-family: var(--sans); font-size: .56rem; line-height: 1.55; letter-spacing: .1em; text-transform: uppercase; }
.reader-community-live { display: flex; align-items: center; gap: .55rem; margin-top: .8rem; color: color-mix(in srgb, var(--reader-muted) 78%, transparent); font-family: var(--sans); font-size: .5rem; letter-spacing: .08em; text-transform: uppercase; }
.reader-community-live i { width: .38rem; height: .38rem; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 0 rgba(198,166,106,.45); animation: reactionPulse 2s infinite; }
.reader-community-live.is-offline i { background: var(--reader-muted); animation: none; }
.reader-cover-mark { position: absolute; z-index: 2; right: 0; bottom: 4rem; width: 4.1rem; height: 4.8rem; object-fit: contain; filter: drop-shadow(0 .7rem 1.8rem rgba(0,0,0,.38)); }
.reader-content { padding: 2rem 0 8rem; font-family: Georgia, "Times New Roman", serif; font-size: 19px; line-height: 1.82; }
.reader-resume-anchor { position: relative; display: inline; white-space: nowrap; background: linear-gradient(var(--gold), var(--gold)) no-repeat 0 100% / 0 2px; animation: resumeUnderline 4.6s ease both; }
.reader-resume-anchor::after { content: attr(data-label); position: absolute; z-index: 3; left: 0; bottom: calc(100% + .72rem); width: max-content; max-width: min(15rem, 72vw); padding: .55rem .7rem; border: 1px solid color-mix(in srgb, var(--gold) 48%, transparent); background: color-mix(in srgb, var(--reader-bg) 94%, transparent); box-shadow: 0 .8rem 2.4rem rgba(0,0,0,.24); color: var(--gold); font-family: var(--sans); font-size: .5rem; font-style: normal; font-weight: 500; line-height: 1.4; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; pointer-events: none; animation: resumeLabel 4.6s ease both; }
@keyframes resumeUnderline { 0%, 8% { background-size: 0 2px; } 22%, 82% { background-size: 100% 2px; } 100% { background-size: 100% 0; } }
@keyframes resumeLabel { 0%, 8% { opacity: 0; transform: translateY(.35rem); } 20%, 78% { opacity: 1; transform: none; } 100% { opacity: 0; transform: translateY(-.2rem); } }
.reader-chapter { padding-top: 7rem; scroll-margin-top: 4.6rem; }
.reader-chapter-head { margin-bottom: 4.5rem; padding-bottom: 2rem; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 14%, transparent); }
.reader-chapter-kicker { display: block; margin-bottom: 1rem; color: var(--gold); font-family: var(--sans); font-size: .56rem; letter-spacing: .22em; text-transform: uppercase; }
.reader-chapter h2 { margin: 0; color: var(--reader-text); font-family: var(--serif); font-size: clamp(2.2rem, 5vw, 4.1rem); font-weight: 400; line-height: 1.08; letter-spacing: -.03em; }
.reader-chapter > p { margin: 0 0 1.28em; color: var(--reader-text); }
.reader-chapter > p:first-of-type::first-letter { float: left; margin: .12em .12em 0 0; color: var(--gold); font-family: var(--serif); font-size: 4.4em; line-height: .7; }
.reader-chapter .dialogue { padding-left: 1.1rem; border-left: 1px solid color-mix(in srgb, var(--gold) 42%, transparent); }
.reader-chapter .story-note { margin: 1.5rem 0; padding: 1rem 1.2rem; border-left: 2px solid var(--gold); background: color-mix(in srgb, var(--reader-text) 4%, transparent); font-style: italic; }
.reader-chapter .short-line { margin: 2rem 0; color: var(--gold-light); font-family: var(--serif); font-size: 1.15em; text-align: center; }
.reader-chapter .scene-break { margin: 5rem 0; color: var(--gold); text-align: center; letter-spacing: 1rem; }
.reader-illustration { width: calc(100% + 8rem); margin: 4.5rem -4rem; }
.reader-illustration img { width: 100%; height: min(75vh, 62rem); object-fit: cover; object-position: center; box-shadow: 0 2rem 5rem rgba(0,0,0,.28); }
.reader-illustration figcaption { margin-top: .85rem; color: var(--reader-muted); font-family: var(--sans); font-size: .58rem; line-height: 1.5; letter-spacing: .08em; text-align: center; }
.reader-end { padding: 0; border-top: 1px solid color-mix(in srgb, var(--reader-text) 14%, transparent); }
.wishes-experience { width: calc(100% + 8rem); margin-left: -4rem; padding: clamp(5rem, 10vw, 9rem) 4rem; background: color-mix(in srgb, var(--reader-text) 3%, var(--reader-bg)); }
.wishes-intro { max-width: 39rem; margin-bottom: 4.5rem; }
.wishes-intro h2 { margin: 0 0 1.8rem; color: var(--reader-text); font-family: var(--serif); font-size: clamp(3rem, 7vw, 6rem); font-weight: 400; line-height: 1.02; letter-spacing: -.04em; }
.wishes-intro h2 em { color: var(--gold); font-weight: 400; }
.wishes-intro > p:last-child { max-width: 33rem; color: var(--reader-muted); font-family: var(--sans); font-size: .88rem; line-height: 1.75; }
.wishes-form { border-top: 1px solid color-mix(in srgb, var(--reader-text) 16%, transparent); }
.wish-field { display: grid; grid-template-columns: 3rem minmax(10rem, .65fr) 1fr; gap: 2rem; align-items: start; padding: 2.2rem 0; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 13%, transparent); }
.wish-number { padding-top: .35rem; color: var(--gold); font-family: var(--sans); font-size: .58rem; letter-spacing: .16em; }
.wish-prompt { display: grid; gap: .45rem; }
.wish-prompt strong { color: var(--reader-text); font-family: var(--serif); font-size: 1.2rem; font-weight: 400; }
.wish-prompt small { max-width: 15rem; color: var(--reader-muted); font-family: var(--sans); font-size: .6rem; line-height: 1.6; }
.wish-field textarea { width: 100%; min-height: 6.5rem; padding: .8rem 0; resize: vertical; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 25%, transparent); outline: 0; background: transparent; color: var(--reader-text); font-family: var(--serif); font-size: 1.05rem; line-height: 1.65; transition: border-color .2s; }
.wish-field textarea::placeholder { color: color-mix(in srgb, var(--reader-muted) 55%, transparent); }
.wish-field textarea:focus { border-color: var(--gold); }
.wishes-actions { display: flex; flex-wrap: wrap; gap: .8rem; align-items: center; padding-top: 2rem; }
.reader .wishes-actions .button { width: auto; color: var(--reader-text); }
.reader .wishes-actions .button:disabled { cursor: not-allowed; opacity: .32; }
.wishes-clear { margin-left: auto; padding: .8rem 0; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 22%, transparent); background: transparent; color: var(--reader-muted); cursor: pointer; font-family: var(--sans); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.wishes-status { margin: 1.2rem 0 0; color: var(--reader-muted); font-family: var(--sans); font-size: .58rem; letter-spacing: .06em; }
.wishes-status.is-saved { color: var(--gold); }
.reader-afterglow { position: relative; width: calc(100% + 8rem); min-height: 100vh; margin-left: -4rem; padding: clamp(6rem, 12vw, 10rem) 4rem 3rem; overflow: hidden; background: radial-gradient(circle at 85% 12%, rgba(198,166,106,.14), transparent 30rem), linear-gradient(145deg, color-mix(in srgb, var(--reader-text) 2%, var(--reader-bg)), var(--reader-bg)); }
.reader-afterglow::before { content: "“"; position: absolute; top: -7rem; right: -1rem; color: color-mix(in srgb, var(--gold) 9%, transparent); font-family: var(--serif); font-size: clamp(22rem, 42vw, 39rem); line-height: 1; pointer-events: none; }
.afterglow-heading { position: relative; max-width: 46rem; }
.afterglow-symbol { display: block; margin-bottom: 2.5rem; color: var(--gold); font-size: 1.8rem; }
.afterglow-heading h2 { margin: .9rem 0 1.8rem; color: var(--reader-text); font-family: var(--serif); font-size: clamp(3.3rem, 8vw, 7rem); font-weight: 400; line-height: .98; letter-spacing: -.045em; }
.afterglow-heading h2 em { color: var(--gold); font-weight: 400; }
.afterglow-heading > p:last-child { max-width: 34rem; color: var(--reader-muted); font-family: var(--sans); font-size: .82rem; line-height: 1.75; }
.certificate-unlock { position: relative; margin-top: 3.5rem; padding: clamp(1.5rem, 4vw, 2.4rem); display: grid; grid-template-columns: 1fr auto; gap: 2rem 4rem; align-items: end; border-top: 1px solid color-mix(in srgb, var(--gold) 58%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 14%, transparent); background: linear-gradient(90deg, color-mix(in srgb, var(--gold) 7%, transparent), transparent 72%); }
.certificate-unlock[hidden] { display: none; }
.certificate-unlock .eyebrow { margin-bottom: .8rem; }
.certificate-unlock h3 { margin: 0; color: var(--reader-text); font-family: var(--serif); font-size: clamp(1.5rem, 3vw, 2.35rem); font-weight: 400; line-height: 1.2; }
.certificate-unlock p:last-child { max-width: 34rem; margin: 1rem 0 0; color: var(--reader-muted); font-size: .74rem; line-height: 1.7; }
.reader .certificate-open { min-width: 16.5rem; color: var(--reader-text); }
.afterglow-reactions { position: relative; display: grid; grid-template-columns: repeat(3, 1fr); margin-top: 4rem; border-top: 1px solid color-mix(in srgb, var(--reader-text) 15%, transparent); border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 15%, transparent); }
.afterglow-reaction { min-height: 11rem; padding: 1.5rem; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto 1fr; gap: 1.5rem; border: 0; border-right: 1px solid color-mix(in srgb, var(--reader-text) 15%, transparent); background: transparent; color: var(--reader-text); cursor: pointer; text-align: left; transition: background .25s, color .25s; }
.afterglow-reaction:last-child { border-right: 0; }
.afterglow-reaction:not(:disabled):hover { background: color-mix(in srgb, var(--gold) 8%, transparent); }
.afterglow-reaction.is-selected { background: var(--gold); color: #17130c; }
.afterglow-reaction:disabled { cursor: default; }
.afterglow-reaction > span { font-family: var(--sans); font-size: .56rem; letter-spacing: .18em; opacity: .55; }
.afterglow-reaction strong { align-self: end; max-width: 10rem; font-family: var(--serif); font-size: clamp(1.15rem, 2vw, 1.55rem); font-weight: 400; line-height: 1.25; }
.afterglow-reaction i { grid-column: 2; grid-row: 1 / 3; align-self: end; color: var(--gold); font-family: var(--serif); font-size: 1.2rem; font-style: normal; }
.afterglow-reaction.is-selected i { color: #17130c; }
.afterglow-status { min-height: 1rem; margin: 1rem 0 0; color: var(--reader-muted); font-family: var(--sans); font-size: .56rem; letter-spacing: .05em; }
.afterglow-status.is-selected { color: var(--gold); }
.reaction-results { position: relative; margin-top: 2.6rem; padding: clamp(1.5rem, 4vw, 2.5rem); border: 1px solid color-mix(in srgb, var(--reader-text) 15%, transparent); background: color-mix(in srgb, var(--reader-text) 2.5%, transparent); }
.reaction-results-head { display: flex; align-items: end; justify-content: space-between; gap: 2rem; padding-bottom: 1.8rem; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 13%, transparent); }
.reaction-results-head .eyebrow { margin-bottom: .7rem; }
.reaction-results-head h3 { margin: 0; color: var(--reader-text); font-family: var(--serif); font-size: clamp(1.35rem, 2.6vw, 2rem); font-weight: 400; }
.reaction-total { flex: none; color: var(--gold); font-family: var(--serif); font-size: 1.1rem; font-weight: 400; }
.reaction-result-list { display: grid; gap: 1.45rem; padding-top: 2rem; }
.reaction-result-label { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; margin-bottom: .65rem; color: var(--reader-muted); font-family: var(--sans); font-size: .61rem; letter-spacing: .09em; text-transform: uppercase; }
.reaction-result-label strong { display: flex; align-items: baseline; gap: .8rem; color: var(--reader-text); font-weight: 400; }
.reaction-result-label b { font-family: var(--serif); font-size: 1rem; font-weight: 400; }
.reaction-result-label small { min-width: 2.5rem; color: var(--gold); font-size: .58rem; text-align: right; }
.reaction-result-track { height: 5px; overflow: hidden; background: color-mix(in srgb, var(--reader-text) 10%, transparent); }
.reaction-result-track i { display: block; width: 0; height: 100%; background: linear-gradient(90deg, var(--gold), var(--gold-light)); transition: width .75s cubic-bezier(.22,.75,.18,1); }
.reaction-result[data-reaction-result="warm"] .reaction-result-track i { opacity: .78; }
.reaction-result[data-reaction-result="reread"] .reaction-result-track i { opacity: .56; }
.reaction-live-status { display: flex; align-items: center; gap: .6rem; margin: 1.5rem 0 0; color: var(--reader-muted); font-family: var(--sans); font-size: .54rem; letter-spacing: .08em; text-transform: uppercase; }
.reaction-live-status i { width: .42rem; height: .42rem; border-radius: 50%; background: var(--gold); box-shadow: 0 0 0 0 rgba(198,166,106,.45); animation: reactionPulse 2s infinite; }
.reaction-live-status.is-offline i { background: var(--reader-muted); animation: none; }
@keyframes reactionPulse { 60% { box-shadow: 0 0 0 .45rem rgba(198,166,106,0); } 100% { box-shadow: 0 0 0 0 rgba(198,166,106,0); } }
.afterglow-invitation { position: relative; margin-top: clamp(6rem, 12vw, 10rem); padding: clamp(2rem, 5vw, 4rem); border: 1px solid color-mix(in srgb, var(--reader-text) 16%, transparent); background: color-mix(in srgb, var(--reader-text) 3%, transparent); }
.afterglow-invitation { display: grid; grid-template-columns: 1fr minmax(17rem, .75fr); gap: 2rem 4rem; align-items: end; }
.afterglow-invitation h3 { margin: .9rem 0 0; color: var(--reader-text); font-family: var(--serif); font-size: clamp(1.65rem, 3.2vw, 2.8rem); font-weight: 400; line-height: 1.18; }
.afterglow-actions { display: grid; gap: .8rem; }
.reader .afterglow-actions .button { width: 100%; justify-content: space-between; color: var(--reader-text); }
.reader .afterglow-actions .button-primary { border-color: var(--gold); background: var(--gold); color: #16130e; }
.reader .afterglow-actions .button-primary:hover,
.reader .afterglow-actions .button-primary:focus-visible { border-color: var(--gold-light); background: var(--gold-light); color: #16130e; }
.reader .afterglow-telegram { border-color: color-mix(in srgb, var(--reader-text) 20%, transparent); }
.afterglow-share-status { grid-column: 2; min-height: 1rem; margin: 0; color: var(--gold); font-family: var(--sans); font-size: .56rem; letter-spacing: .05em; }
.reader.is-certificate-open .reader-scroll { overflow: hidden; }
.reader-certificate { position: absolute; z-index: 12; inset: 0; padding: clamp(1rem, 4vw, 3rem); display: grid; place-items: center; overflow: hidden; }
.reader-certificate[hidden] { display: none; }
.certificate-backdrop { position: absolute; inset: 0; border: 0; background: rgba(4,4,3,.82); backdrop-filter: blur(16px); cursor: default; }
.certificate-sheet { position: relative; isolation: isolate; width: min(100%, 52rem); max-height: calc(100svh - clamp(2rem, 8vw, 6rem)); padding: clamp(3rem, 7vw, 5.5rem); overflow: auto; border: 1px solid rgba(226,201,144,.58); background: linear-gradient(145deg, #0e0d0b 0%, #090908 48%, #060606 100%); box-shadow: 0 2.5rem 8rem rgba(0,0,0,.72), inset 0 0 5rem rgba(198,166,106,.035); color: #e9e4da; animation: modalIn .36s cubic-bezier(.22,.75,.18,1) both; }
.certificate-sheet::before { content: ""; position: absolute; z-index: -1; inset: .72rem; border: 1px solid rgba(226,201,144,.2); pointer-events: none; }
.certificate-sheet::after { content: ""; position: absolute; z-index: -2; inset: 0; background: radial-gradient(circle at 82% 8%, rgba(198,166,106,.13), transparent 28rem), radial-gradient(circle at 12% 92%, rgba(198,166,106,.055), transparent 24rem), linear-gradient(115deg, transparent 0 46%, rgba(255,255,255,.018) 48%, transparent 51%); pointer-events: none; }
.certificate-close { position: absolute; z-index: 2; top: 1rem; right: 1rem; width: 2.8rem; height: 2.8rem; border: 0; background: transparent; color: rgba(233,228,218,.68); cursor: pointer; font-size: 1.8rem; line-height: 1; }
.certificate-meta { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .7rem 1.5rem; color: rgba(233,228,218,.42); font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; }
.certificate-ornament { width: min(100%, 13rem); margin: clamp(2.5rem, 7vw, 4.5rem) auto 1.8rem; display: grid; grid-template-columns: 1fr auto 1fr; gap: .9rem; align-items: center; color: var(--gold); }
.certificate-ornament i { height: 1px; background: linear-gradient(90deg, transparent, rgba(226,201,144,.7)); }
.certificate-ornament i:last-child { background: linear-gradient(90deg, rgba(226,201,144,.7), transparent); }
.certificate-ornament span { font-size: .72rem; }
.certificate-heading { text-align: center; }
.certificate-heading h2 { margin: 0; color: #e9e4da; font-family: var(--serif); font-size: clamp(4rem, 9vw, 7.4rem); font-weight: 400; line-height: .88; letter-spacing: -.045em; }
.certificate-heading h2 em { color: var(--gold-light); font-weight: 400; }
.certificate-statement { max-width: 35rem; margin: 2.5rem auto 0; color: rgba(233,228,218,.77); font-family: var(--serif); font-size: clamp(1.05rem, 2.2vw, 1.4rem); line-height: 1.65; text-align: center; }
.certificate-reading-time { width: min(100%, 30rem); margin: clamp(2.2rem, 5vw, 3.4rem) auto 0; display: grid; grid-template-columns: 1fr auto 1fr; gap: 1.4rem; align-items: center; }
.certificate-reading-time i { height: 1px; background: linear-gradient(90deg, transparent, rgba(233,228,218,.2)); }
.certificate-reading-time i:last-child { background: linear-gradient(90deg, rgba(233,228,218,.2), transparent); }
.certificate-reading-time strong { color: var(--gold-light); font-family: var(--serif); font-size: clamp(1.15rem, 2.5vw, 1.5rem); font-weight: 400; white-space: nowrap; }
blockquote.certificate-wish { width: min(100%, 42rem); margin: clamp(2.8rem, 7vw, 4.8rem) auto 0; padding: clamp(2rem, 5vw, 3.2rem) clamp(1.2rem, 4vw, 3rem); border-top: 1px solid rgba(198,166,106,.42); border-bottom: 1px solid rgba(198,166,106,.22); text-align: center; }
blockquote.certificate-wish::before { content: "✦"; position: static; display: block; margin: 0 auto 1.2rem; color: var(--gold); font-size: .8rem; }
blockquote.certificate-wish p { margin: 0; color: #f0ebe1; font-family: var(--serif); font-size: clamp(1.3rem, 3vw, 1.75rem); line-height: 1.58; }
.certificate-signature { width: min(100%, 42rem); margin: clamp(2.8rem, 7vw, 4.8rem) auto 0; display: flex; align-items: end; justify-content: center; gap: 2rem; text-align: center; }
.certificate-signature > div { display: grid; gap: .35rem; }
.certificate-signature strong { font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.certificate-signature > div span { color: rgba(233,228,218,.42); font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; }
.certificate-edition { margin: 3.5rem 0 0; color: rgba(233,228,218,.34); font-size: .52rem; letter-spacing: .16em; text-align: center; text-transform: uppercase; }
.certificate-actions { width: min(100%, 36rem); margin: 2rem auto 0; display: grid; grid-template-columns: 1fr 1fr; gap: .8rem; }
.reader .certificate-actions .button { min-width: 0; width: 100%; color: #e9e4da; }
.reader .certificate-actions .button-primary { border-color: var(--gold); background: var(--gold); color: #17130c; }
.certificate-status { min-height: 1rem; margin: .8rem 0 0; color: var(--gold-light); font-size: .56rem; line-height: 1.5; letter-spacing: .06em; text-align: center; }
.reader-return { display: flex; align-items: center; gap: .7rem; margin: 5rem auto 0; padding: .8rem 0; border: 0; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 22%, transparent); background: transparent; color: var(--reader-muted); cursor: pointer; font-family: var(--sans); font-size: .6rem; letter-spacing: .12em; text-transform: uppercase; }
.reader-toc { position: fixed; z-index: 5; top: 0; right: 0; bottom: 0; width: min(88vw, 25rem); padding: 2rem; display: flex; flex-direction: column; background: #11110f; color: #e9e4da; box-shadow: -2rem 0 6rem rgba(0,0,0,.5); transform: translateX(105%); transition: transform .35s ease; }
.reader-toc.is-open { transform: none; }
.reader-toc-head { display: flex; justify-content: space-between; align-items: start; padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.reader-toc-head button { width: 2.5rem; height: 2.5rem; border: 0; background: transparent; color: var(--paper); cursor: pointer; font-size: 1.4rem; }
.reader-toc ol { margin: 2rem 0; padding: 0; list-style: none; overflow-y: auto; }
.reader-toc li { border-bottom: 1px solid var(--line); }
.reader-toc a { display: grid; grid-template-columns: 2.2rem 1fr; gap: 1rem; padding: 1.2rem 0; color: rgba(233,228,218,.48); font-family: var(--serif); font-size: 1rem; transition: color .2s; }
.reader-toc a span { font-family: var(--sans); font-size: .55rem; color: rgba(233,228,218,.25); }
.reader-toc a:hover, .reader-toc a.is-active { color: var(--gold-light); }
.reader-toc-progress { margin-top: auto; padding-top: 1.3rem; display: flex; justify-content: space-between; border-top: 1px solid var(--line); color: rgba(233,228,218,.45); font-size: .62rem; text-transform: uppercase; letter-spacing: .12em; }
.reader-toc-progress strong { color: var(--gold); font-weight: 400; }

.gallery { padding-top: clamp(5rem, 8vw, 7.5rem); padding-bottom: clamp(5rem, 8vw, 7.5rem); overflow: hidden; background: #0d0d0c; }
.gallery h2 { font-size: clamp(2.8rem, 4.8vw, 5rem); }
.gallery-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.gallery-heading > p { max-width: 26rem; margin-bottom: .35rem; color: rgba(233,228,218,.54); font-size: .87rem; line-height: 1.75; }
.filters { display: flex; gap: .5rem; margin-bottom: 1.5rem; overflow-x: auto; }
.filter { padding: .7rem 1rem; border: 1px solid var(--line); background: transparent; color: rgba(233,228,218,.65); cursor: pointer; font-size: .68rem; letter-spacing: .12em; text-transform: uppercase; transition: .25s; white-space: nowrap; }
.filter span { margin-left: .5rem; color: rgba(233,228,218,.52); }
.filter:hover, .filter.is-active { border-color: rgba(198,166,106,.7); background: rgba(198,166,106,.08); color: var(--gold-light); }
.gallery-carousel { position: relative; }
.gallery-viewport, .quotes-viewport { width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-inline: contain; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: none; }
.gallery-viewport::-webkit-scrollbar, .quotes-viewport::-webkit-scrollbar { display: none; }
.gallery-grid, .quotes-grid { display: flex; width: max-content; gap: 1rem; }
.gallery-card { position: relative; flex: 0 0 clamp(17.5rem, 23vw, 22rem); height: clamp(21rem, 29vw, 25rem); overflow: hidden; scroll-snap-align: start; cursor: zoom-in; background: #161511; transition: opacity .35s, transform .45s; }
.gallery-card--wide { flex-basis: clamp(23rem, 34vw, 32rem); }
.gallery-card--tall { flex-basis: clamp(16.5rem, 21vw, 20rem); }
.gallery-card img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.77) brightness(.8); transition: transform .8s cubic-bezier(.2,.75,.2,1), filter .5s; }
.gallery-card::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 38%, rgba(4,4,3,.88)); }
.gallery-card:hover img, .gallery-card:focus img { transform: scale(1.04); filter: saturate(.95) brightness(.94); }
.gallery-card.is-hidden { display: none; }
.card-overlay { position: absolute; z-index: 2; inset: auto 1.4rem 1.3rem; display: grid; grid-template-columns: auto 1fr auto; align-items: end; gap: 1.2rem; }
.card-overlay > span { color: rgba(233,228,218,.35); font-size: .58rem; letter-spacing: .15em; }
.card-overlay p { margin-bottom: .3rem; color: var(--gold); font-size: .56rem; text-transform: uppercase; letter-spacing: .17em; }
.card-overlay h3 { margin: 0; font-family: var(--serif); font-size: 1.35rem; font-weight: 400; }
.card-overlay button { display: grid; place-items: center; width: 2.4rem; height: 2.4rem; border: 1px solid rgba(233,228,218,.35); border-radius: 50%; background: transparent; cursor: pointer; }
.gallery-carousel-footer { display: flex; align-items: center; justify-content: space-between; gap: 2rem; margin-top: 1.2rem; }
.gallery-position { min-width: 0; flex: 1; display: grid; grid-template-columns: 2rem minmax(4rem, 16rem) 2rem; align-items: center; gap: .8rem; color: rgba(233,228,218,.42); font-size: .58rem; letter-spacing: .14em; }
.gallery-position i { position: relative; height: 1px; overflow: hidden; background: rgba(233,228,218,.14); }
.gallery-position b { position: absolute; inset: 0 auto 0 0; width: calc(100% / 19); background: var(--gold); transition: width .3s ease; }
.gallery-navigation { display: flex; gap: .55rem; }
.gallery-navigation button { display: grid; place-items: center; width: 3rem; height: 3rem; border: 1px solid rgba(233,228,218,.22); background: transparent; color: var(--paper); cursor: pointer; font-size: 1rem; transition: border-color .2s, background .2s, color .2s, opacity .2s; }
.gallery-navigation button:hover:not(:disabled) { border-color: rgba(198,166,106,.75); background: rgba(198,166,106,.09); color: var(--gold-light); }
.gallery-navigation button:disabled { opacity: .28; cursor: default; }

.quotes { padding-top: clamp(5rem, 8vw, 7.5rem); padding-bottom: clamp(5rem, 8vw, 7.5rem); overflow: hidden; background: #090a0a; border-top: 1px solid var(--line); }
.quotes-heading { display: flex; justify-content: space-between; align-items: end; gap: 3rem; margin-bottom: 2.5rem; }
.quotes-heading h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.8rem, 4.8vw, 5rem); font-weight: 400; line-height: 1.03; letter-spacing: -.04em; }
.quotes-heading h2 em { color: var(--gold-light); font-weight: 400; }
.quotes-heading > p { max-width: 27rem; margin-bottom: .35rem; color: rgba(233,228,218,.54); font-size: .87rem; line-height: 1.75; }
.quotes-carousel { position: relative; }
.quote-card { position: relative; flex: 0 0 clamp(22rem, 33vw, 31rem); height: clamp(22rem, 29vw, 25rem); padding: clamp(1.6rem, 2.6vw, 2.5rem); display: flex; flex-direction: column; overflow: hidden; scroll-snap-align: start; border: 1px solid var(--line); background: linear-gradient(145deg, #11110f, #090909); }
.quote-card::before { content: "“"; position: absolute; right: 1.5rem; top: -.8rem; color: rgba(198,166,106,.1); font-family: var(--serif); font-size: 12rem; line-height: 1; }
.quote-card--1 { background: linear-gradient(145deg, #0d151d, #090b0d); }
.quote-card--2 { background: linear-gradient(145deg, #181109, #0b0a09); }
.quote-card:nth-child(5), .quote-card:nth-child(10) { flex-basis: clamp(28rem, 43vw, 40rem); }
.quote-card-top { position: relative; display: flex; justify-content: space-between; color: rgba(233,228,218,.3); font-size: .56rem; letter-spacing: .15em; text-transform: uppercase; }
.quote-card blockquote { position: relative; margin: auto 0; padding: 2.2rem 0; border: 0; }
.quote-card blockquote p { max-width: 42rem; margin: 0; color: var(--paper); font-family: var(--serif); font-size: clamp(1.35rem, 1.8vw, 1.75rem); line-height: 1.48; }
.quote-card-bottom { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-top: 1.2rem; border-top: 1px solid var(--line); }
.quote-card-bottom span { color: var(--gold); font-size: .56rem; letter-spacing: .14em; text-transform: uppercase; }
.quote-share { padding: .7rem .9rem; display: inline-flex; align-items: center; gap: .65rem; border: 1px solid rgba(198,166,106,.45); background: transparent; color: var(--paper); cursor: pointer; font-size: .58rem; letter-spacing: .1em; text-transform: uppercase; transition: background .2s, color .2s; }
.quote-share:hover { background: var(--gold-light); color: #17130c; }
.quotes-note { margin: 1.5rem 0 0; color: rgba(233,228,218,.28); font-size: .58rem; text-align: right; }
.reader-selection-share { position: absolute; z-index: 7; left: 50%; bottom: max(1.25rem, env(safe-area-inset-bottom)); display: inline-flex; align-items: center; gap: .8rem; min-height: 3.5rem; padding: .9rem 1.25rem; border: 1px solid color-mix(in srgb, var(--gold) 82%, #fff); background: var(--gold); box-shadow: 0 1rem 3.5rem rgba(0,0,0,.48); color: #17130c; cursor: pointer; font-family: var(--sans); transform: translateX(-50%); animation: selectionShareIn .24s ease both; }
.reader-selection-share strong { font-size: .6rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; }
.reader-selection-share > span { font-size: .9rem; }
.reader-selection-share:hover { background: var(--gold-light); }
.reader-selection-share:focus-visible { outline: 2px solid var(--reader-text); outline-offset: 3px; }
.reader-selection-share[hidden] { display: none; }
@keyframes selectionShareIn { from { opacity: 0; transform: translate(-50%, .7rem); } to { opacity: 1; transform: translate(-50%, 0); } }

.author-section { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(3rem, 9vw, 10rem); align-items: center; background: linear-gradient(135deg, #11100e, #080909); border-top: 1px solid var(--line); }
.author-portrait { position: relative; min-height: 47rem; overflow: hidden; background: #171512; }
.author-portrait::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 58%, rgba(7,7,7,.75)); pointer-events: none; }
.author-portrait img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 30%; filter: saturate(.82) contrast(1.03); transition: transform 1s ease; }
.author-portrait:hover img { transform: scale(1.025); }
.author-portrait > span { position: absolute; z-index: 2; left: 1.5rem; bottom: 1.4rem; color: rgba(233,228,218,.55); font-size: .56rem; letter-spacing: .15em; text-transform: uppercase; }
.author-copy h2 { margin: 0; font-family: var(--serif); font-size: clamp(3.7rem, 7vw, 7.5rem); font-weight: 400; line-height: .92; letter-spacing: -.05em; }
.author-copy h2 em { color: var(--gold-light); font-weight: 400; }
.author-role { margin: 1.8rem 0; color: var(--gold); font-size: .62rem; letter-spacing: .19em; text-transform: uppercase; }
.author-bio { max-width: 34rem; margin-bottom: 2.5rem; color: rgba(233,228,218,.58); font-size: .94rem; line-height: 1.85; }
.author-links { border-top: 1px solid var(--line); }
.author-links a { display: grid; grid-template-columns: 5rem 1fr auto; align-items: center; gap: 1rem; padding: 1.15rem 0; border-bottom: 1px solid var(--line); transition: padding .2s, color .2s; }
.author-links a:hover { padding-left: .5rem; color: var(--gold-light); }
.author-links span { color: rgba(233,228,218,.58); font-size: .62rem; letter-spacing: .12em; text-transform: uppercase; }
.author-links strong { font-family: var(--serif); font-size: 1rem; font-weight: 400; }
.author-links i { color: var(--gold); font-style: normal; }
.author-statement { margin: 3rem 0 0; padding: 1.8rem 0 0 3rem; border-top: 1px solid var(--line); }
.author-statement span { top: 1.35rem; font-size: 3.2rem; }
.author-statement p { margin: 0; max-width: 30rem; font-size: 1.15rem; }

.updates { display: grid; grid-template-columns: .8fr 1.2fr; gap: clamp(3rem, 9vw, 10rem); background: linear-gradient(120deg, #090909, #11100d); }
.updates-intro { position: sticky; top: 10rem; align-self: start; }
.updates-intro > p:last-child { max-width: 27rem; margin-top: 2rem; color: rgba(233,228,218,.52); font-size: .9rem; line-height: 1.75; }
.update-list { border-top: 1px solid var(--line); }
.update-list article { display: grid; grid-template-columns: 2.5rem 1fr auto; align-items: center; gap: 1.5rem; min-height: 8rem; padding: 1.2rem 0; border-bottom: 1px solid var(--line); }
.update-index { color: rgba(233,228,218,.28); font-size: .6rem; }
.update-list p { margin-bottom: .45rem; color: var(--gold); font-size: .55rem; letter-spacing: .17em; text-transform: uppercase; }
.update-list h3 { margin: 0; font-family: var(--serif); font-size: clamp(1.1rem, 1.7vw, 1.5rem); font-weight: 400; }
.update-link { display: inline-flex; align-items: center; justify-content: space-between; gap: .7rem; min-width: 7.8rem; padding: .65rem .75rem; border: 1px solid rgba(198,166,106,.4); background: transparent; color: rgba(233,228,218,.76); cursor: pointer; font-size: .62rem; letter-spacing: .1em; text-transform: uppercase; transition: border-color .2s, background .2s, color .2s; }
.update-link:hover { border-color: var(--gold); background: rgba(198,166,106,.08); color: var(--gold-light); }
.site-footer { position: relative; z-index: 1; display: flex; align-items: center; justify-content: space-between; padding: 2rem clamp(1.2rem, 4vw, 4rem); border-top: 1px solid var(--line); background: #070707; }
.site-footer p { margin: 0; color: rgba(233,228,218,.58); font-size: .62rem; letter-spacing: .08em; }
.footer-links { display: flex; align-items: center; gap: 1.5rem; }
.footer-links > a:first-child { color: rgba(233,228,218,.58); font-size: .62rem; letter-spacing: .08em; }
.footer-links > a:first-child:hover { color: var(--gold-light); }

.lightbox { width: min(92vw, 78rem); max-width: none; height: min(86vh, 50rem); padding: 0; border: 1px solid rgba(233,228,218,.2); background: #0b0b0a; color: var(--paper); }
.lightbox[open] { display: grid; grid-template-columns: 1.65fr .8fr; animation: modalIn .32s ease both; }
.lightbox::backdrop { background: rgba(0,0,0,.84); backdrop-filter: blur(8px); }
@keyframes modalIn { from { opacity: 0; transform: translateY(16px) scale(.985); } }
.lightbox-close { position: absolute; z-index: 3; right: 1rem; top: 1rem; width: 2.7rem; height: 2.7rem; border: 1px solid rgba(233,228,218,.25); border-radius: 50%; background: rgba(9,9,9,.45); cursor: pointer; font-size: 1.25rem; }
.lightbox-image { min-height: 0; background: #111; }
.lightbox-image img { width: 100%; height: 100%; object-fit: cover; }
.lightbox-copy { display: flex; flex-direction: column; justify-content: flex-end; padding: 3rem; }
.lightbox-copy h2 { margin-bottom: 1.5rem; font-family: var(--serif); font-size: clamp(2rem, 4vw, 4rem); font-weight: 400; line-height: 1; }
.lightbox-caption { color: rgba(233,228,218,.55); font-size: .85rem; line-height: 1.7; }
.lightbox-nav { display: flex; justify-content: space-between; margin-top: 3rem; padding-top: 1rem; border-top: 1px solid var(--line); }
.lightbox-nav button { border: 0; background: transparent; color: rgba(233,228,218,.55); cursor: pointer; font-size: .65rem; text-transform: uppercase; letter-spacing: .12em; }

.toast { position: fixed; z-index: 120; left: 50%; bottom: 2rem; padding: 1rem 1.3rem; border: 1px solid rgba(198,166,106,.55); background: #15130e; color: var(--paper); font-size: .72rem; transform: translate(-50%, 150%); opacity: 0; transition: .4s; }
.toast.is-visible { transform: translate(-50%, 0); opacity: 1; }
.reveal { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s ease; }
.reveal.is-visible { opacity: 1; transform: none; }

/* Standalone reading, privacy and error pages */
.utility-page { min-height: 100vh; background: #0c0c0b; color: #dcd7cc; }
.utility-header { position: sticky; z-index: 10; top: 0; display: flex; align-items: center; justify-content: space-between; min-height: 4.5rem; padding: .8rem clamp(1.2rem, 4vw, 3rem); border-bottom: 1px solid rgba(220,215,204,.13); background: rgba(12,12,11,.93); backdrop-filter: blur(16px); }
.utility-header .brand-name { display: inline; }
.utility-back { color: rgba(220,215,204,.72); font-size: .68rem; letter-spacing: .1em; text-transform: uppercase; }
.utility-back:hover { color: var(--gold-light); }
.static-reader-shell, .legal-shell, .error-shell { width: min(100% - 2.5rem, 52rem); margin: 0 auto; }
.static-reader-cover { position: relative; min-height: calc(100svh - 4.5rem); padding: 16vh 0 5rem; display: flex; flex-direction: column; justify-content: center; isolation: isolate; overflow: hidden; border-bottom: 1px solid rgba(220,215,204,.14); }
.static-reader-cover .eyebrow { margin-bottom: 2rem; }
.static-reader-cover h1 { max-width: 48rem; margin: 0 0 2rem; font-size: clamp(4rem, 12vw, 8rem); text-shadow: 0 .18rem 1.5rem #0c0c0b; }
.static-reader-cover > p:last-of-type { max-width: 30rem; color: rgba(220,215,204,.65); line-height: 1.75; }
.static-reader-meta { display: flex; flex-wrap: wrap; gap: .7rem 1.2rem; margin-top: 2rem; color: rgba(220,215,204,.65); font-size: .65rem; letter-spacing: .1em; text-transform: uppercase; }
.static-toc { margin: 4rem 0 0; padding: 2.5rem 0; border-bottom: 1px solid rgba(220,215,204,.14); }
.static-toc ol { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0 2rem; margin: 0; padding: 0; list-style: none; }
.static-toc li { border-top: 1px solid rgba(220,215,204,.12); }
.static-toc a { display: grid; grid-template-columns: 2.4rem 1fr; gap: .8rem; padding: 1.1rem 0; color: rgba(220,215,204,.74); font-family: var(--serif); }
.static-toc a:hover { color: var(--gold-light); }
.static-toc a span { color: var(--gold); font-family: var(--sans); font-size: .6rem; letter-spacing: .1em; }
.static-reader-content { padding: 2rem 0 8rem; font-family: Georgia, "Times New Roman", serif; font-size: 19px; line-height: 1.82; }
.static-chapter { padding-top: 7rem; scroll-margin-top: 4.5rem; }
.static-chapter-head { margin-bottom: 4.5rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(220,215,204,.14); }
.static-chapter-head span { display: block; margin-bottom: 1rem; color: var(--gold); font-family: var(--sans); font-size: .62rem; letter-spacing: .18em; text-transform: uppercase; }
.static-chapter h2 { margin: 0; font-family: var(--serif); font-size: clamp(2.3rem, 6vw, 4.2rem); font-weight: 400; line-height: 1.08; }
.static-chapter > p { margin: 0 0 1.28em; }
.static-chapter > p:first-of-type::first-letter { float: left; margin: .12em .12em 0 0; color: var(--gold); font-family: var(--serif); font-size: 4.4em; line-height: .7; }
.static-chapter .dialogue { padding-left: 1.1rem; border-left: 1px solid rgba(198,166,106,.42); }
.static-chapter .story-note { margin: 1.5rem 0; padding: 1rem 1.2rem; border-left: 2px solid var(--gold); background: rgba(220,215,204,.04); font-style: italic; }
.static-chapter .short-line { margin: 2rem 0; color: var(--gold-light); font-family: var(--serif); font-size: 1.15em; text-align: center; }
.static-chapter .scene-break { margin: 5rem 0; color: var(--gold); text-align: center; letter-spacing: 1rem; }
.static-chapter .reader-illustration { width: calc(100% + 8rem); margin: 4.5rem -4rem; }
.static-chapter .reader-illustration img { width: 100%; height: min(75vh, 62rem); object-fit: cover; box-shadow: 0 2rem 5rem rgba(0,0,0,.28); }
.static-chapter .reader-illustration figcaption { margin-top: .85rem; color: rgba(220,215,204,.62); font-family: var(--sans); font-size: .65rem; line-height: 1.5; letter-spacing: .06em; text-align: center; }
.static-reader-finale { margin-bottom: 7rem; padding: clamp(2rem, 6vw, 4rem); border: 1px solid rgba(220,215,204,.16); background: radial-gradient(circle at 85% 12%, rgba(198,166,106,.13), transparent 24rem); }
.static-reader-finale h2 { margin: 0 0 1.2rem; font-family: var(--serif); font-size: clamp(2rem, 5vw, 3.5rem); font-weight: 400; }
.static-reader-finale p { max-width: 34rem; color: rgba(220,215,204,.68); line-height: 1.75; }
.legal-shell { padding: clamp(5rem, 10vw, 8rem) 0; }
.legal-shell h1, .error-shell h1 { margin: 0 0 2rem; font-family: var(--serif); font-size: clamp(3rem, 8vw, 6rem); font-weight: 400; line-height: 1; }
.legal-shell h2 { margin: 3rem 0 1rem; font-family: var(--serif); font-size: 1.6rem; font-weight: 400; }
.legal-shell p, .legal-shell li, .error-shell p { color: rgba(220,215,204,.72); line-height: 1.8; }
.legal-shell a { color: var(--gold-light); text-decoration: underline; text-underline-offset: .2em; }
.error-shell { min-height: calc(100svh - 4.5rem); padding: 5rem 0; display: flex; flex-direction: column; justify-content: center; }
.error-code { margin-bottom: 1.2rem; color: var(--gold); font-size: .7rem; letter-spacing: .2em; text-transform: uppercase; }

@media (max-width: 850px) {
  .site-header { padding: 1rem 1.2rem; }
  .menu-button { display: block; position: relative; z-index: 2; }
  .site-header > .brand { position: relative; z-index: 2; }
  .site-header nav { position: fixed; inset: 0; width: 100%; height: 100vh; height: 100dvh; padding: 8rem 2rem 3rem; display: flex; flex-direction: column; justify-content: center; gap: 1.7rem; background: #090909; opacity: 0; visibility: hidden; pointer-events: none; transform: translate3d(0,-1rem,0); transition: opacity .25s ease, transform .3s ease, visibility 0s linear .3s; }
  .site-header nav.is-open { opacity: 1; visibility: visible; pointer-events: auto; transform: none; transition: opacity .25s ease, transform .3s ease, visibility 0s; }
  .site-header nav a { font-family: var(--serif); font-size: 1.8rem; letter-spacing: 0; text-transform: none; }
  .menu-button[aria-expanded="true"] span:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:nth-child(2) { transform: translateY(-3px) rotate(-45deg); }
  .brand-name { display: none; }
  .hero { min-height: 50rem; padding: 8rem 1.2rem 5rem; align-items: end; }
  .hero-art { inset: 0; opacity: .72; }
  .hero-art::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(9,9,9,.86), rgba(9,9,9,.1)), linear-gradient(0deg, rgba(9,9,9,.94), transparent 60%); }
  .moon { top: 15%; right: -8%; width: 21rem; }
  .page-one { left: 14%; top: 18%; }
  h1 { font-size: clamp(3.7rem, 18vw, 6.8rem); }
  .hero-index, .scroll-cue { display: none; }
  .about-grid, .updates, .read-preview, .author-section { grid-template-columns: 1fr; }
  .about-grid { gap: 1rem; padding-top: 4rem; }
  .about-copy { padding-top: 1rem; }
  .story-facts { grid-template-columns: 1fr; }
  .story-facts div, .story-facts div:first-child { padding: 1.2rem 0; border-right: 0; border-bottom: 1px solid var(--line); }
  .story-facts div:last-child { border-bottom: 0; }
  .read-preview { gap: 3rem; }
  .read-preview-art { min-height: 29rem; }
  .gallery-heading { display: block; }
  .gallery-heading > p { margin-top: 1.5rem; }
  .quotes-heading { display: block; }
  .quotes-heading > p { margin-top: 1.5rem; }
  .quote-card, .quote-card:nth-child(5), .quote-card:nth-child(10) { flex-basis: clamp(20rem, 60vw, 27rem); height: 24rem; }
  .author-section { gap: 3.5rem; }
  .author-portrait { min-height: 38rem; }
  .gallery-card, .gallery-card:nth-child(n), .gallery-card--wide, .gallery-card--tall { flex-basis: clamp(18rem, 54vw, 24rem); height: 23rem; }
  .updates-intro { position: static; }
  .lightbox[open] { grid-template-columns: 1fr; grid-template-rows: 58% 42%; height: 90vh; }
  .lightbox-copy { padding: 1.5rem; }
  .lightbox-copy h2 { margin-bottom: .7rem; }
  .lightbox-nav { margin-top: 1rem; }
  .reader { grid-template-rows: 1fr; }
  .reader-bar { position: absolute; inset: 0 0 auto; width: 100%; grid-template-columns: auto 1fr auto; padding: 0 .7rem; transform: translate3d(0,0,0); }
  .reader.is-bar-hidden .reader-bar { opacity: .98; pointer-events: none; transform: translate3d(0,calc(-100% - 2px),0); }
  .reader-scroll { grid-row: 1; height: 100%; padding-top: 4.6rem; scroll-padding-top: 4.6rem; }
  .reader-close span, .reader-bar-title strong { display: none; }
  .reader-bar-title { justify-items: start; padding-left: .7rem; }
  .reader-bar-meta { display: grid; justify-items: start; gap: .22rem; }
  .reader-time-left { gap: .4rem; font-size: .48rem !important; letter-spacing: .07em !important; }
  .reader-selection-share { bottom: max(.85rem, env(safe-area-inset-bottom)); min-height: 3.25rem; max-width: calc(100vw - 2rem); padding: .8rem 1rem; }
  .reader-selection-share strong { font-size: .54rem; letter-spacing: .07em; }
  .reader-book { padding: 0 clamp(1.25rem, 6vw, 2.2rem); }
  .reader-content { font-size: 18px; line-height: 1.76; }
  .reader-cover { padding-top: 7rem; }
  .reader-cover-art, .static-reader-cover-art { inset: 4% -2.2rem 9% 18%; }
  .reader-cover-art::after, .static-reader-cover-art::after { background: linear-gradient(90deg, var(--cover-fade) 0%, color-mix(in srgb, var(--cover-fade) 96%, transparent) 32%, color-mix(in srgb, var(--cover-fade) 32%, transparent) 78%, transparent 100%), linear-gradient(0deg, var(--cover-fade) 0%, transparent 34%, color-mix(in srgb, var(--cover-fade) 88%, transparent) 100%); }
  .reader-community { width: min(100%, 21rem); }
  .reader-community-count { align-items: center; }
  .reader-community-count > span { max-width: 11rem; }
  .reader-illustration { width: calc(100% + 2.5rem); margin: 3.5rem -1.25rem; }
  .reader-illustration img { height: min(64vh, 34rem); }
  .wishes-experience { width: calc(100% + 2.5rem); margin-left: -1.25rem; padding: 5rem 1.25rem; }
  .wish-field { grid-template-columns: 2rem 1fr; gap: .8rem; }
  .wish-field textarea { grid-column: 2; min-height: 7.5rem; }
  .wishes-actions { align-items: stretch; flex-direction: column; }
  .reader .wishes-actions .button { width: 100%; }
  .wishes-clear { margin: .6rem auto 0; }
  .reader-afterglow { width: calc(100% + 2.5rem); margin-left: -1.25rem; padding: 5.5rem 1.25rem 2.5rem; }
  .reader-afterglow::before { top: -3rem; right: -3rem; }
  .certificate-unlock { grid-template-columns: 1fr; padding: 1.5rem; }
  .reader .certificate-open { width: 100%; }
  .afterglow-reactions { grid-template-columns: 1fr; }
  .afterglow-reaction { min-height: 7rem; border-right: 0; border-bottom: 1px solid color-mix(in srgb, var(--reader-text) 15%, transparent); }
  .afterglow-reaction:last-child { border-bottom: 0; }
  .reaction-results { padding: 1.35rem; }
  .reaction-results-head { align-items: start; flex-direction: column; gap: .9rem; }
  .reaction-result-label > span { max-width: 11rem; line-height: 1.5; }
  .afterglow-invitation { grid-template-columns: 1fr; padding: 1.5rem; }
  .afterglow-share-status { grid-column: 1; }
  .reader-certificate { padding: .65rem; }
  .certificate-sheet { max-height: calc(100svh - 1.3rem); padding: 3.2rem 1.5rem 1.8rem; }
  .certificate-sheet::before { inset: .5rem; }
  .certificate-meta { margin-top: 0; justify-content: flex-start; flex-direction: column; }
  .certificate-heading h2 { font-size: clamp(3.3rem, 17vw, 5rem); }
  .certificate-reading-time { gap: .8rem; }
  blockquote.certificate-wish { padding: 2rem .35rem; }
  blockquote.certificate-wish p { font-size: clamp(1.15rem, 5.6vw, 1.45rem); }
  .certificate-actions { grid-template-columns: 1fr; }
  .static-reader-content { font-size: 18px; line-height: 1.76; }
  .static-toc ol { grid-template-columns: 1fr; }
  .static-chapter { padding-top: 5rem; }
  .static-chapter-head { margin-bottom: 3rem; }
  .static-chapter .reader-illustration { width: calc(100% + 2.5rem); margin: 3.5rem -1.25rem; }
  .static-chapter .reader-illustration img { height: min(64vh, 34rem); }
}

@media (max-width: 520px) {
  .section { padding-left: 1.2rem; padding-right: 1.2rem; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 1rem; }
  .button { width: 100%; }
  .read-static-link { margin-left: 0; }
  .read-preview-art { min-height: 23rem; }
  .reader-controls { gap: 0; }
  .reader-controls button { min-width: 2.15rem; }
  .reader-chapter { padding-top: 5rem; }
  .reader-chapter-head { margin-bottom: 3rem; }
  .reader-chapter > p { margin-bottom: 1.15em; }
  .gallery { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .gallery-heading { margin-bottom: 2rem; }
  .gallery-heading > p { font-size: .82rem; }
  .filters { margin-right: -1.2rem; padding-right: 1.2rem; }
  .gallery-card, .gallery-card:nth-child(n), .gallery-card--wide, .gallery-card--tall { flex-basis: min(82vw, 20rem); height: 21rem; }
  .gallery-carousel-footer { margin-top: 1rem; }
  .gallery-position { grid-template-columns: 1.8rem minmax(3rem, 1fr) 1.8rem; }
  .gallery-navigation button { width: 2.75rem; height: 2.75rem; }
  .quotes { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .quotes-heading { margin-bottom: 2rem; }
  .quotes-heading > p { font-size: .82rem; }
  .quote-card, .quote-card:nth-child(5), .quote-card:nth-child(10) { flex-basis: min(84vw, 21rem); height: 25rem; padding: 1.5rem; }
  .quote-card blockquote { padding: 1.5rem 0; }
  .quote-card blockquote p { font-size: 1.32rem; }
  .quote-card-bottom { gap: .6rem; }
  .update-list article { grid-template-columns: 1.8rem 1fr; }
  .update-link { grid-column: 2; justify-self: start; margin-top: .35rem; }
  .site-footer { align-items: flex-start; gap: 1rem; }
  .site-footer p { max-width: 10rem; line-height: 1.6; }
  .footer-links { align-items: flex-end; flex-direction: column-reverse; gap: .8rem; }
  .site-footer .text-link { border: 0; font-size: 0; }
  .site-footer .text-link span { font-size: 1rem; }
}

@media (hover: none), (pointer: coarse) {
  .cursor-glow { display: none; }
}

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