:root{font-family:Manrope,Arial,sans-serif;color:#e9e8df;background:#101923;font-synthesis:none;scroll-behavior:smooth}
*{box-sizing:border-box}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid #e7c797;outline-offset:5px}img{display:block;max-width:100%}em{font-style:normal;color:#d8c3ae}.site-header{position:absolute;z-index:10;top:0;left:0;right:0;display:flex;align-items:center;justify-content:space-between;gap:24px;padding:27px max(4.5vw,24px);color:#f8f2e7}.brand{display:inline-flex;align-items:center;gap:12px;font:16px/1.2 Prata,Georgia,serif;white-space:nowrap}.brand:first-letter{color:#edd6a5}.site-header nav{display:flex;align-items:center;gap:35px;font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.site-header nav a{opacity:.88;transition:opacity .2s}.site-header nav a:hover{opacity:1}.header-journey{padding-bottom:8px;border-bottom:1px solid #f6e3c5}.header-journey span{margin-left:10px}.eyebrow{display:inline-flex;align-items:center;gap:9px;font-size:11px;font-weight:700;letter-spacing:.24em;text-transform:uppercase;color:#e9d5b8}.small-star{font-size:16px;line-height:0}.hero{position:relative;display:flex;align-items:center;min-height:min(800px,100svh);min-height:max(650px,100svh);overflow:hidden;background:#0a1522}.hero-art,.hero-shade{position:absolute;inset:0}.hero-art img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-forest{object-position:49% 50%;filter:brightness(.8) saturate(.86)}.hero-garden{object-position:50% 50%;clip-path:inset(0 0 0 48%);filter:brightness(.7) saturate(.84)}.hero-shade{background:linear-gradient(90deg,#091521ee 0%,#091521b8 36%,#0915214b 70%,#09152124),linear-gradient(0deg,#0d1721 0%,transparent 26%,#10192366 100%)}.hero-content{position:relative;z-index:1;width:min(660px,84vw);margin:70px 0 60px max(8vw,28px)}.hero h1{margin:30px 0 23px;font:clamp(58px,7.5vw,112px)/1.12 Prata,Georgia,serif;font-weight:400;letter-spacing:-.06em;text-wrap:balance}.hero-content p{max-width:520px;font-size:clamp(14px,1.4vw,18px);line-height:1.85;color:#e6e6df}.hero-actions{display:flex;flex-wrap:wrap;gap:13px;margin-top:36px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:52px;padding:15px 21px;border:1px solid #ddc6a6;font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;transition:background .25s,transform .25s,color .25s}.button:hover{transform:translateY(-3px)}.button-primary{background:#f1e8d7;color:#1c2c34;border-color:#f1e8d7}.button-primary:hover{background:#fffaf0}.button-ghost{background:#14223470;color:#f4ede2;border-color:#d7c5ac88}.button-ghost:hover{background:#ead7bc25}.hero-caption{position:absolute;bottom:27px;left:max(8vw,28px);right:max(4.5vw,24px);display:flex;justify-content:space-between;gap:20px;font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#f0e9dcab}.section-wrap{width:min(1210px,calc(100% - 64px));margin:0 auto}.intro{display:grid;grid-template-columns:1fr 2fr;gap:70px;padding-top:120px;padding-bottom:120px}.intro-label{display:flex;align-items:flex-start;gap:18px;padding-top:18px;font-size:11px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#d8c3ae}.fine-line{display:block;flex:1;max-width:120px;height:1px;margin-top:7px;background:#b79d7770}.intro h2,.section-heading h2,.journey h2,.story-journey h2{margin:0;font:clamp(38px,4.2vw,64px)/1.25 Prata,Georgia,serif;font-weight:400;letter-spacing:-.045em}.intro p{max-width:670px;margin:24px 0 0;font-size:15px;line-height:1.95;color:#b8c1c3}.parts-section{padding:100px 0 120px;background:#eae7dd;color:#26343a}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:46px}.section-heading .eyebrow{color:#806547}.section-heading h2{margin-top:16px}.parts-count{padding-bottom:9px;color:#6d797a;font-size:12px}.parts-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.part-card{position:relative;display:flex;flex-direction:column;min-height:310px;overflow:hidden;padding:30px;background:#17242c;color:#f1eee7;isolation:isolate;transition:transform .25s,box-shadow .25s}.part-card:hover{transform:translateY(-5px);box-shadow:0 15px 28px #1d2d342c}.part-card-art,.part-card-art:after{position:absolute;inset:0;z-index:-1}.part-card-art img{width:100%;height:100%;object-fit:cover;opacity:.52;filter:brightness(.69) saturate(.84);transition:transform .6s}.part-card:hover .part-card-art img{transform:scale(1.05)}.part-card-art:after{content:"";background:linear-gradient(180deg,#0c1b2a72,#0a141edc)}.part-card--fairy .part-card-art:after{background:linear-gradient(180deg,#35202c52,#332031d8)}.part-card-number{font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#ead5ad}.part-card--fairy .part-card-number{color:#edb9cc}.part-card-title{max-width:275px;margin:auto 0 24px;font:clamp(24px,2.5vw,35px)/1.23 Prata,Georgia,serif;letter-spacing:-.03em}.part-card-bottom{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:#d8d2c9}.part-card-arrow{position:absolute;right:30px;bottom:28px;font-size:23px}.part-card--letter{grid-column:span 3;min-height:220px}.part-card--letter .part-card-title{max-width:none;margin:auto 0 18px}.part-card--letter .part-card-art img{object-position:center 54%}.journey{display:grid;grid-template-columns:1fr 1fr;min-height:540px;margin-top:115px;margin-bottom:115px;background:#192a35}.journey-art{position:relative;overflow:hidden}.journey-art img{position:absolute;width:100%;height:100%;object-fit:cover;filter:brightness(.72)}.journey-content{display:flex;align-items:flex-start;flex-direction:column;justify-content:center;padding:70px}.journey h2{margin:18px 0}.journey p{max-width:470px;margin:0 0 26px;color:#bdc6c6;font-size:14px;line-height:1.9}.site-footer{display:flex;justify-content:space-between;gap:20px;padding:34px max(4.5vw,24px);border-top:1px solid #ffffff1d;color:#aeb7b7;font-size:11px}.site-footer a{text-decoration:underline;text-underline-offset:5px}
.reader-header{position:relative;max-width:1600px;margin:auto}.reader-scene{position:absolute;top:0;left:0;right:0;height:660px;overflow:hidden;z-index:-1}.reader-scene:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#10192388 0%,#10192359 35%,#101923 100%)}.reader-scene img{width:100%;height:100%;object-fit:cover;filter:brightness(.78) saturate(.9)}.reading-sheet{width:min(810px,calc(100% - 36px));margin:115px auto 88px;padding:58px clamp(24px,7vw,94px) 75px;background:#f1eee4;color:#253538;box-shadow:0 26px 70px #030c1480}.back-link{font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#647578}.back-link span{padding-right:10px}.reading-meta{display:flex;align-items:center;gap:14px;margin:76px 0 18px;color:#8a765d;font-size:10px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}.author-fairy .reading-meta{color:#ad6d83}.meta-dot{font-size:12px}.reading-sheet h1{margin:0;font:clamp(43px,5.5vw,74px)/1.16 Prata,Georgia,serif;font-weight:400;letter-spacing:-.055em;text-wrap:balance}.reading-rule{display:flex;align-items:center;gap:18px;margin:34px 0 42px;color:#bb9b70}.reading-rule:before,.reading-rule:after{content:"";height:1px;background:#d5cbbc}.reading-rule:before{width:35px}.reading-rule:after{flex:1}.story-body{font:clamp(18px,1.6vw,21px)/1.85 Georgia,'Times New Roman',serif;overflow-wrap:break-word}.story-body p{margin:0 0 1.25em;white-space:pre-line}.story-body p:first-child:first-letter{font-size:1.2em}.letter-quote{margin:34px -16px;padding:28px 26px;border-left:2px solid #b89c75;background:#e8e4da}.letter-quote p{font-style:italic}.letter-quote p:last-child{margin-bottom:0}.reading-end{margin:62px 0 0;text-align:center;color:#aa8c62;font-size:19px}.story-navigation{border-top:1px solid #ffffff24;border-bottom:1px solid #ffffff24}.story-navigation-inner{display:grid;grid-template-columns:1fr 1fr;gap:20px;width:min(990px,calc(100% - 48px));margin:auto;padding:35px 0}.navigation-link{display:flex;flex-direction:column;gap:7px;padding:13px;color:#efebe2}.navigation-link:hover .navigation-title{color:#f2d2ad}.navigation-link--next{text-align:right}.navigation-direction{font-size:10px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#9bacb0}.navigation-title{font:17px/1.5 Prata,Georgia,serif;transition:color .2s}.story-journey{padding:95px 24px;text-align:center}.story-journey h2{margin:17px 0;font-size:clamp(34px,4vw,54px)}.story-journey p{margin:0 0 24px;color:#b5c0c2}.story-journey .button{display:inline-flex}.author-fairy .reading-sheet{background:#f4ebe9}
@media(max-width:800px){.site-header{padding:20px 22px}.site-header nav{gap:17px}.site-header nav a:first-child{display:none}.hero{min-height:780px}.hero-forest{object-position:58%}.hero-garden{clip-path:inset(0 0 0 46%);object-position:55%}.hero-content{margin-left:32px}.intro{grid-template-columns:1fr;gap:20px;padding:80px 0}.parts-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.part-card--letter{grid-column:span 2}.journey-content{padding:40px}.reading-sheet{margin-top:70px}}
@media(max-width:560px){.site-header{padding:20px 18px}.brand{font-size:12px;white-space:normal}.site-header nav{font-size:9px}.site-header nav .header-journey{white-space:nowrap}.hero{min-height:760px;align-items:end}.hero-art img{height:76%;top:0}.hero-forest{object-position:56%}.hero-garden{clip-path:inset(0 0 0 48%)}.hero-shade{background:linear-gradient(0deg,#0b1722 8%,#0b1722b0 55%,#0b172222 100%)}.hero-content{width:auto;margin:0 22px 100px}.hero h1{font-size:clamp(50px,12vw,70px)}.hero-content p{font-size:14px}.hero-actions{flex-direction:column;align-items:stretch}.button{min-height:49px}.hero-caption{left:22px;right:22px;font-size:8px}.hero-caption span:first-child{display:none}.section-wrap{width:calc(100% - 38px)}.intro{padding:69px 0}.intro h2{font-size:38px}.parts-section{padding:75px 0}.section-heading{display:block;margin-bottom:31px}.section-heading h2{font-size:40px}.parts-count{display:block;margin-top:12px}.parts-grid{grid-template-columns:1fr}.part-card{min-height:250px}.part-card--letter{grid-column:auto}.journey{display:flex;flex-direction:column;margin-top:76px;margin-bottom:76px}.journey-art{height:235px}.journey-art img{position:relative}.journey-content{padding:36px 27px}.journey h2{font-size:39px}.site-footer{flex-wrap:wrap;font-size:10px}.reader-header{padding:20px 17px}.reader-header .header-journey{display:none}.reader-scene{height:420px}.reading-sheet{width:calc(100% - 20px);margin:58px auto 48px;padding:29px 24px 45px}.reading-meta{margin:52px 0 17px}.reading-sheet h1{font-size:41px}.story-body{font-size:18px;line-height:1.8}.letter-quote{margin:25px -9px;padding:19px 17px}.story-navigation-inner{width:calc(100% - 24px);gap:8px;padding:20px 0}.navigation-title{font-size:13px}.story-journey{padding:70px 20px}}
@media(prefers-reduced-motion:reduce){:root{scroll-behavior:auto}.button,.part-card,.part-card-art img{transition:none}.button:hover,.part-card:hover,.part-card:hover .part-card-art img{transform:none}}

/* Single illustrated cover: keep the title in HTML, not baked into the image. */
.hero { display: block; min-height: max(650px, 100svh); }
.hero-art .hero-background { object-position: center; filter: none; }
.hero-shade { background: linear-gradient(180deg, rgba(5, 13, 25, .34) 0%, rgba(5, 13, 25, .08) 42%, rgba(5, 13, 25, .2) 66%, rgba(5, 13, 25, .82) 100%); }
.hero-content { display: flex; flex-direction: column; align-items: center; width: 100%; min-height: max(650px, 100svh); margin: 0; padding: 94px 24px 76px; text-align: center; }
.hero h1 { margin: 17px 0 0; font-size: clamp(48px, 6.1vw, 91px); line-height: 1.14; text-shadow: 0 3px 28px rgba(7, 13, 24, .5); }
.hero h1 em { color: #f3d6a7; }
.hero-content p { max-width: 610px; margin: auto auto 0; font-size: clamp(14px, 1.15vw, 16px); line-height: 1.65; text-shadow: 0 2px 12px #06111ddd; }
.hero-actions { justify-content: center; margin-top: 18px; }
.hero-caption { display: none; }
@media (max-width: 800px) {
  .hero { min-height: 650px; }
  .hero-art .hero-background { top: 0; height: auto; object-fit: contain; object-position: center; }
  .hero-shade { background: linear-gradient(180deg, rgba(5, 13, 25, .28), rgba(5, 13, 25, .1) 35%, #081526 68%); }
  .hero-content { min-height: 650px; padding: 95px 22px 55px; }
  .hero h1 { font-size: clamp(50px, 8vw, 68px); }
}
@media (max-width: 560px) {
  .hero { min-height: 650px; }
  .hero-art .hero-background { height: auto; object-position: center; }
  .hero-shade { background: linear-gradient(180deg, #08152600 0%, #08152638 21%, #081526 39%, #081526 100%); }
  .hero-content { min-height: 650px; padding: 250px 20px 50px; }
  .hero h1 { font-size: clamp(43px, 10vw, 58px); }
  .hero-content p { margin: 30px auto 0; font-size: 14px; }
  .hero-actions { width: 100%; align-items: stretch; }
}

/* Illustrated story list: preserve each painting, and let the atmosphere follow the text. */
.part-card-art img { opacity: 1; filter: saturate(.94) brightness(.76); }
.part-card-art:after { z-index: 1; pointer-events: none; }
.part-card-number,.part-card-title,.part-card-bottom { position: relative; z-index: 2; text-shadow: 0 2px 12px #050e1c, 0 1px 4px #050e1c; }
.part-card-arrow { z-index: 2; text-shadow: 0 2px 12px #050e1c; }
.part-card-art:after { background: linear-gradient(180deg, #0a172b6b 0%, #0b19254d 36%, #07111de8 100%); }
.part-card--fairy .part-card-art:after { background: linear-gradient(180deg, #321d3180 0%, #291b3052 37%, #201729e5 100%); }
.part-card--twilight .part-card-art:after { background: linear-gradient(180deg, #17182e80 0%, #23223b63 38%, #10162ae8 100%); }
.part-card--unease .part-card-art img { filter: saturate(.77) brightness(.72); }
.part-card--unease .part-card-art:after { background: linear-gradient(180deg, #111a3b9c, #171d3b80 42%, #0d132bed); }
.part-card--night .part-card-art img,
.part-card--moonlight .part-card-art img { filter: saturate(.86) brightness(.82); }
.part-card--night .part-card-art:after { background: linear-gradient(180deg, #091c3769, #07142f57 40%, #071425e8); }
.part-card--moonlight .part-card-art:after { background: linear-gradient(145deg, #c4c8e01c 0%, #0b1b3550 40%, #071328e9 100%); }
.part-card--moonlight .part-card-art img { object-position: center 45%; }
.part-card--letter .part-card-art:before { content: ""; position: absolute; z-index: 1; inset: 0; pointer-events: none; background: radial-gradient(ellipse at 70% 9%, #f7d0a536, transparent 62%); }
.reader-scene img { filter: brightness(.88) saturate(.94); }
.scene-twilight .reader-scene:after { background: linear-gradient(180deg, #14192b78, #111a2b75 36%, #101923 100%); }
.scene-unease .reader-scene img { filter: brightness(.7) saturate(.8); }
.scene-night .reader-scene img,
.scene-moonlight .reader-scene img { filter: brightness(.77) saturate(.9); }
.scene-moonlight .reader-scene:after { background: linear-gradient(180deg, #24365355, #17294366 39%, #101923 100%); }
.part-card--party .part-card-art img { transform: scale(1.13); object-position: center 55%; }
.part-card--party:hover .part-card-art img { transform: scale(1.18); }
.scene-party .reader-scene img { transform: scale(1.14); object-position: center 58%; }

/* Dark, gallery-like table of contents. */
.parts-section {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse 72% 520px at 15% 1%, #25404a54, transparent 72%),
    radial-gradient(ellipse 65% 550px at 100% 80%, #3d30444a, transparent 74%),
    #0d1723;
  color: #f4eee4;
}
.parts-section:before { content: ""; position: absolute; top: 0; left: 50%; width: min(1210px,calc(100% - 64px)); height: 1px; transform: translateX(-50%); background: linear-gradient(90deg,transparent,#ceb5929c,transparent); }
.parts-section .section-wrap { position: relative; }
.parts-section .section-heading { align-items: end; margin-bottom: 38px; padding-bottom: 25px; border-bottom: 1px solid #e3d1b02a; }
.parts-section .section-heading .eyebrow { color: #d4b990; }
.parts-section .section-heading h2 { color: #f4eee4; text-shadow: 0 2px 25px #06111a7d; }
.parts-section .parts-count { color: #bdc6c4; letter-spacing: .035em; }
.parts-grid { gap: 20px; }
.part-card {
  min-height: 330px;
  padding: 28px;
  border: 1px solid #ebd8b943;
  border-radius: 7px;
  background: #1a2935;
  box-shadow: 0 11px 30px #030a1466, inset 0 0 0 1px #09101a30;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.part-card:hover,.part-card:focus-visible { transform: translateY(-6px); border-color: #edd6ac9c; box-shadow: 0 19px 45px #030a14a8,0 0 0 1px #d5bb8c32; }
.part-card--fairy:hover,.part-card--fairy:focus-visible { border-color: #ecbdceba; box-shadow: 0 19px 45px #030a14a8,0 0 0 1px #e0a7c433; }
.part-card:before { content: ""; position: absolute; z-index: 2; top: 0; left: 27px; width: 42px; height: 2px; background: #e1c798; box-shadow: 0 0 15px #f3d1a67d; }
.part-card--fairy:before { background: #e8b3c7; box-shadow: 0 0 15px #f1bbd5a0; }
.part-card-title { max-width: 320px; margin-bottom: 20px; color: #fff9ee; font-size: clamp(25px,2.4vw,33px); line-height: 1.3; }
.part-card-number { color: #f0d7a8; }
.part-card-bottom { color: #f2e4d5; }
.part-card--fairy .part-card-bottom { color: #f1cddd; }
.part-card-arrow { right: 27px; bottom: 25px; width: 35px; height: 35px; border: 1px solid #f1dfc77d; border-radius: 50%; font-size: 19px; line-height: 30px; text-align: center; transition: background .25s,border-color .25s,transform .25s; }
.part-card:hover .part-card-arrow { transform: translate(2px,-2px); background: #ead4b43b; border-color: #f1dfc7; }
.part-card--letter { min-height: 245px; }
.part-card--letter .part-card-title { max-width: none; }
@media (max-width: 800px) {
  .parts-grid { gap: 16px; }
  .part-card { min-height: 300px; }
  .part-card--letter { min-height: 225px; }
}
@media (max-width: 560px) {
  .parts-section { padding: 76px 0 85px; }
  .parts-section:before { width: calc(100% - 38px); }
  .parts-section .section-heading { margin-bottom: 25px; padding-bottom: 21px; }
  .parts-grid { gap: 15px; }
  .part-card { min-height: 270px; padding: 24px; }
  .part-card--letter { min-height: 245px; }
  .part-card-title { font-size: clamp(25px,7.5vw,32px); }
}
@media (prefers-reduced-motion: reduce) {
  .part-card,.part-card-arrow { transition: none; }
  .part-card:hover,.part-card:focus-visible,.part-card:hover .part-card-arrow { transform: none; }
}

/* Keep the lettering in the supplied journey artwork fully visible. */
.journey { grid-template-columns: 1.35fr 1fr; min-height: 480px; }
.journey-art { background: #172532; }
.journey-art:before { content: ""; position: absolute; inset: -22px; background: var(--journey-art) center / cover; filter: blur(19px) brightness(.43); }
.journey-art img { position: absolute; z-index: 1; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: none; }
@media (max-width: 800px) {
  .journey { display: flex; flex-direction: column; }
  .journey-art { width: 100%; height: auto; aspect-ratio: 1672 / 941; }
  .journey-content { padding: 43px; }
}
@media (max-width: 560px) {
  .journey-art { height: auto; }
  .journey-content { padding: 36px 27px; }
}

/* The letter belongs at the oak; part nine is inside the bunker. */
.part-card--letter { min-height: 330px; }
.part-card--letter .part-card-art img { object-position: 20% 31%; filter: brightness(.96) saturate(.9); }
.part-card--night .part-card-art img { filter: brightness(1.32) saturate(.92); }
.part-card--night .part-card-art:after { background: linear-gradient(180deg, #0b183f53, #0c193b51 43%, #091324df); }
.scene-night .reader-scene img { filter: brightness(1.23) saturate(.92); }
.scene-moonlight .reader-scene img { object-position: 20% 36%; }
/* Story-specific framing: the opening reaches the forest, while part two looks into the garden. */
.part-card--part-01 .part-card-art img { object-position: 51% 52%; filter: brightness(1.12) saturate(.9); }
.part-card--part-02 .part-card-art img { object-position: 76% 50%; }
.part-card--part-04 .part-card-art img { object-position: 62% 50%; }
.part-card--part-05 .part-card-art img { object-position: 35% 52%; }
.part-card--part-07 .part-card-art img { object-position: 57% 51%; }
.part-card--part-08 .part-card-art img { object-position: 65% 50%; }
.part-card--part-09 .part-card-art img { object-position: 54% 50%; }
@media (max-width: 800px) {
  .part-card--letter { min-height: 310px; }
}
@media (max-width: 560px) {
  .part-card--letter { min-height: 270px; }
  .part-card--letter .part-card-art img { object-position: 12% 34%; }
}
