@font-face{font-family:EclipseSerif;src:url(assets/serif-regular.ttf);font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:EclipseSerif;src:url(assets/serif-italic.ttf);font-style:italic;font-weight:400;font-display:swap}@font-face{font-family:EclipseSans;src:url(assets/sans-regular.ttf);font-weight:400;font-display:swap}
:root{--ink:#151522;--cream:#fff6dd;--gold:#f4d477;--foreground:21,21,34;--night:0;--journey:0;--background-scale:1;--background-x:0px;--background-y:0px;color-scheme:light;font:400 16px EclipseSans,Arial,sans-serif;color:rgb(var(--foreground));background:#161023}
*{box-sizing:border-box}html{scrollbar-width:none}html::-webkit-scrollbar{display:none}body{margin:0}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a,input{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:6px}img{display:block}button[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.world-stage{position:fixed;inset:0;height:100svh;overflow:hidden;isolation:isolate;background:#f8df9e;pointer-events:none}.horizon{position:absolute;inset:-3%;transform:translate(var(--background-x),var(--background-y)) scale(var(--background-scale));will-change:transform}.horizon img{width:100%;height:100%;object-fit:cover;object-position:50% 55%}.horizon-night{opacity:var(--night)}.world-canvas{position:absolute;inset:0;opacity:0;transition:opacity 1.6s}.world-canvas canvas{display:block;width:100%;height:100%}.webgl-ready .world-canvas{opacity:1}.fallback-scenery{position:absolute;inset:0;transition:opacity 1.4s}.webgl-ready .fallback-scenery{opacity:0}.fallback-sun{position:absolute;top:12%;left:14%;width:25%;max-width:340px;opacity:calc(1 - var(--night));transform:scale(calc(1 + var(--journey) * 1.4))}.fallback-moon{position:absolute;right:11%;top:15%;width:20%;max-width:250px;opacity:var(--night)}.fallback-branch{position:absolute;left:-11%;bottom:-8%;width:50%;opacity:calc(1 - var(--night));transform:scale(calc(1 + var(--journey) * 2))}.fallback-spires{position:absolute;right:-8%;bottom:-9%;width:42%;opacity:var(--night);transform:scale(calc(1 + var(--journey) * .4))}.atmosphere{position:absolute;inset:0;background:linear-gradient(180deg,transparent 35%,rgba(119,76,167,calc(var(--night) * .12)) 80%,rgba(9,8,25,calc(var(--night) * .2)));pointer-events:none}.vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 42%,rgba(12,9,24,calc(.03 + var(--night) * .3)) 100%)}.cinema-line{position:absolute;left:3.5%;right:3.5%;height:1px;background:rgba(var(--foreground),.15)}.cinema-top{top:109px}.cinema-bottom{bottom:109px}
.header{position:fixed;top:0;left:0;width:100%;height:109px;z-index:15;display:flex;align-items:center;justify-content:space-between;padding:0 5.2%;gap:25px;transition:color .5s}.wordmark{font:italic 2.4rem EclipseSerif,Georgia,serif;display:flex;align-items:center;gap:12px;line-height:1}.wordmark>span{font:2rem Georgia,serif}.chapter-nav{display:flex;align-items:center;gap:35px;font-size:.875rem}.chapter-nav a{padding:10px 0;opacity:.6;position:relative;transition:opacity .4s}.chapter-nav a:hover,.chapter-nav a.active{opacity:1}.chapter-nav a:after{content:'';position:absolute;bottom:1px;left:0;right:0;height:1px;background:currentColor;transform:scaleX(0);transition:transform .4s}.chapter-nav a.active:after{transform:scaleX(1)}.header-controls{display:flex;gap:10px}.icon-button{height:44px;width:44px;background:rgba(255,248,220,.04);border:1px solid rgba(var(--foreground),.35);border-radius:50%;display:grid;place-items:center;font-size:1rem;transition:background .3s}.icon-button:hover{background:rgba(var(--foreground),.09)}#fullscreenToggle{font-size:1.4rem}
.story-layer{position:fixed;inset:0;height:100svh;z-index:6;pointer-events:none;perspective:1100px}.story-panel{position:absolute;left:7%;right:7%;top:50%;transform:translateY(-50%);opacity:0;visibility:hidden;pointer-events:none;text-align:center;will-change:transform,opacity}.story-panel.is-visible{opacity:1;visibility:visible}.story-panel a,.story-panel button{pointer-events:auto}.eyebrow{font-size:.75rem;letter-spacing:.2em;margin:0 0 30px;line-height:1.8}.story-panel h1,.story-panel h2{font:400 clamp(6rem,11vw,11.2rem)/.8 EclipseSerif,Georgia,serif;letter-spacing:-.055em;margin:0}.story-panel em{font-weight:400;letter-spacing:-.035em}.story-description{font-size:1rem;line-height:1.7;margin:32px 0 24px}.journey-button{display:inline-flex;gap:25px;align-items:center;justify-content:center;border:1px solid rgba(var(--foreground),.7);padding:16px 24px;border-radius:40px;font-size:.875rem;background:rgba(255,248,220,.06);transition:background .3s,transform .3s}.journey-button:hover{background:rgba(var(--foreground),.1);transform:translateY(-3px)}.journey-button span{font-size:1.1rem}.side-panel{left:10%;right:30%;text-align:left}.side-panel h2{font-size:clamp(4.5rem,7.5vw,8.5rem);line-height:.9}.crossing-panel h2,.ending-panel h2{font-size:clamp(5rem,9vw,9.5rem);line-height:.86}.midnight-panel{left:9%;right:27%}.midnight-panel h2{font-size:clamp(4.2rem,6.7vw,7.3rem)}
.journey-track{height:760svh;position:relative;pointer-events:none}.journey-anchor{position:absolute;width:1px;height:1px}#home{top:0}#daylight{top:126svh}#threshold{top:330svh}#midnight{top:548svh}
.journey-hud{position:fixed;z-index:15;bottom:0;left:0;width:100%;height:109px;padding:0 5.2%;display:flex;align-items:center;justify-content:space-between;gap:25px;transition:color .5s}.journey-caption{display:flex;align-items:center;gap:15px;min-width:245px}.caption-index{font:italic 2.25rem EclipseSerif,Georgia,serif;line-height:1}.journey-caption>div{display:flex;flex-direction:column;gap:6px;font-size:.75rem;letter-spacing:.13em}.chapter-subtitle{font-size:.8125rem;letter-spacing:0;opacity:.75}.scroll-invitation{display:flex;align-items:center;gap:16px;font-size:.75rem;letter-spacing:.13em;white-space:nowrap}.scroll-line{display:block;width:1px;height:34px;background:rgba(var(--foreground),.25);position:relative;overflow:hidden}.scroll-line:after{content:'';position:absolute;top:-18px;width:1px;height:18px;background:currentColor;animation:scroll-pulse 2s ease-in-out infinite}.journey-progress{width:205px}.journey-progress label{display:flex;justify-content:space-between;font-size:.75rem;letter-spacing:.1em;margin-bottom:12px}.journey-progress input{appearance:none;-webkit-appearance:none;background:rgba(var(--foreground),.24);height:2px;width:100%;margin:0;cursor:pointer;display:block;border:0}.journey-progress input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:9px;height:9px;border-radius:50%;background:rgb(var(--foreground));border:0}.journey-progress input::-moz-range-thumb{width:9px;height:9px;border:0;background:rgb(var(--foreground));border-radius:50%}.progress-chapters{display:flex;justify-content:space-between;font-size:.75rem;letter-spacing:.1em;opacity:.6;margin-top:10px}.chapter-count{position:fixed;z-index:10;right:4%;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;align-items:center;gap:14px;font-size:.75rem;letter-spacing:.1em}.chapter-count i{width:1px;height:50px;background:rgba(var(--foreground),.35)}.chapter-count>span:last-child{opacity:.4}.noscript-message{position:fixed;bottom:130px;left:5%;right:5%;text-align:center;font-size:.875rem}
@keyframes scroll-pulse{to{transform:translateY(50px)}}.motion-paused .scroll-line:after{animation:none}.motion-paused .world-canvas{transition:none}
@media(max-width:1050px){.chapter-nav{gap:23px}.journey-caption{min-width:195px}.journey-progress{width:170px}.chapter-subtitle{max-width:180px}.story-panel h1{font-size:clamp(6rem,14vw,9rem)}}
@media(max-width:700px){.header{height:89px;padding:0 6%}.wordmark{font-size:2rem}.wordmark>span{font-size:1.65rem}.chapter-nav{position:fixed;top:101px;left:6%;right:6%;justify-content:center;gap:28px;font-size:.875rem}.header-controls{gap:8px}.icon-button{height:37px;width:37px;font-size:.9375rem}#fullscreenToggle{font-size:1.25rem}.cinema-line{left:6%;right:6%}.cinema-top{top:88px}.cinema-bottom{bottom:100px}.story-panel{left:6%;right:6%;top:49%}.story-panel h1{font-size:clamp(5.5rem,23vw,9rem);line-height:.82}.eyebrow{font-size:.75rem;letter-spacing:.09em;margin-bottom:24px}.story-description{margin:25px 0 23px;font-size:1rem}.journey-button{padding:15px 22px}.side-panel,.midnight-panel{left:8%;right:8%;text-align:center}.side-panel h2,.midnight-panel h2{font-size:clamp(3.7rem,13.5vw,6rem);line-height:.92}.crossing-panel h2,.ending-panel h2{font-size:clamp(4.2rem,15.5vw,6.4rem);line-height:.9}.journey-hud{height:100px;padding:0 6%;gap:20px}.journey-caption{min-width:0;gap:10px}.caption-index{font-size:1.8rem}.journey-caption>div{font-size:.75rem;letter-spacing:.06em}.chapter-subtitle{display:none}.journey-progress{width:130px}.journey-progress label{font-size:.75rem;letter-spacing:.02em}.progress-chapters{font-size:.75rem;margin-top:9px;letter-spacing:.02em}.scroll-invitation{position:fixed;bottom:124px;left:50%;transform:translateX(-50%);font-size:.75rem;gap:11px;letter-spacing:.08em}.scroll-line{height:25px}.chapter-count{display:none}.fallback-sun{width:47%;left:-2%;top:17%}.fallback-moon{width:35%;right:2%;top:16%}.fallback-branch{width:100%;left:-38%;bottom:-5%}.fallback-spires{width:78%;right:-26%}.horizon img{object-position:50% 55%}.journey-track{height:850svh}}
@media(max-height:620px) and (min-width:701px){.header{height:80px}.journey-hud{height:80px}.cinema-top{top:80px}.cinema-bottom{bottom:80px}.story-panel h1{font-size:6rem}.eyebrow{margin-bottom:18px}.story-description{margin:22px 0 16px}.journey-button{padding:12px 20px}.story-panel h2{font-size:4.6rem}}
@media(prefers-reduced-motion:reduce){.scroll-line:after{animation:none}.world-canvas{transition:none}}

/* The changing landscape rises through the valley before it reaches the sky. */
.horizon-twilight{opacity:1;--reveal-front:var(--dusk-front,150%)}
.horizon-night{opacity:1;--reveal-front:var(--night-front,150%)}
.horizon-twilight,.horizon-night{-webkit-mask-image:linear-gradient(to bottom,transparent calc(var(--reveal-front) - 28%),#000 calc(var(--reveal-front) + 28%));mask-image:linear-gradient(to bottom,transparent calc(var(--reveal-front) - 28%),#000 calc(var(--reveal-front) + 28%));}
.atmosphere:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 62%,rgba(255,202,160,.12),rgba(156,131,200,.07) 47%,transparent 75%);opacity:var(--twilight,0)}
.opening-panel,.side-panel[data-panel="day"]{color:var(--ink)}
.crossing-panel,.midnight-panel,.ending-panel{color:var(--cream);text-shadow:0 2px 35px rgba(16,9,36,.2)}

/* Creator credits appear only after the story has ended. */
.credits-panel{color:var(--ink);text-shadow:0 2px 30px rgba(255,255,245,.4)}
.credits-panel h2{font-size:clamp(3.5rem,5.6vw,5.4rem);line-height:.96;letter-spacing:-.035em}
.credits-panel .eyebrow{margin-bottom:27px}
.credits-project{display:inline-block;font-size:.875rem;margin-top:27px;padding:12px 0;border-bottom:1px solid rgba(21,21,34,.4);transition:border-color .3s}
.credits-project:hover{border-color:var(--ink)}
.credits-restart{display:block;margin:28px auto 0;padding:10px 5px;border:0;background:none;font-size:.75rem;letter-spacing:.04em;opacity:.65;transition:opacity .3s}
.credits-restart:hover{opacity:1}
@media(max-width:700px){.credits-panel h2{font-size:clamp(2.4rem,9.5vw,4rem)}.credits-panel .eyebrow{margin-bottom:22px}.credits-project{margin-top:22px}.credits-restart{margin-top:22px}}
@media(max-height:620px) and (min-width:701px){.credits-panel h2{font-size:3.3rem}.credits-panel .eyebrow{margin-bottom:16px}.credits-project{margin-top:17px}.credits-restart{margin-top:15px}}

/* The moon arrival blends through red dust while the camera banks into orbit. */
.horizon-lunar{opacity:var(--lunar,0);transform:translate(var(--lunar-x,0px),var(--lunar-y,0px)) scale(var(--lunar-scale,1.035))}
.horizon-lunar img{object-position:50% 58%}
.arrival-glow{position:absolute;inset:0;opacity:var(--arrival,0);background:radial-gradient(ellipse at 60% 48%,rgba(161,32,38,.26),rgba(42,4,13,.15) 56%,transparent 82%)}
.orbit-panel{left:8%;right:34%;text-align:left;color:var(--cream);text-shadow:0 2px 28px #160716}
.orbit-panel h2{font-size:clamp(4rem,6.7vw,7rem);line-height:.92}
.lunar-panel{color:var(--cream);text-shadow:0 2px 35px #210608}
.lunar-panel h2{font-size:clamp(5rem,8.5vw,9rem);line-height:.88}
.chapter-nav{gap:25px}
.journey-track{height:1250svh}
#daylight{top:133.4svh}#threshold{top:333.5svh}#midnight{top:553.6svh}#orbit{top:770.5svh}#crimson{top:994.75svh}
.fallback-moon{opacity:calc(var(--night) * (1 - var(--lunar,0)));transform:translate(calc(var(--approach,0) * -20vw),calc(var(--approach,0) * 15vh)) scale(calc(1 + var(--approach,0) * 2.2));max-width:440px}
.fallback-spires{opacity:calc(var(--night) * (1 - var(--lunar,0)))}
@media(max-width:1050px){.chapter-nav{gap:15px}}
@media(max-width:700px){.chapter-nav{gap:15px;white-space:nowrap}.journey-track{height:1400svh}.orbit-panel{left:8%;right:8%;text-align:center}.orbit-panel h2{font-size:clamp(3.4rem,12.5vw,5.4rem)}.lunar-panel h2{font-size:clamp(3.9rem,14.5vw,6.2rem)}#daylight{top:150.8svh}#threshold{top:377svh}#midnight{top:625.8svh}#orbit{top:871svh}#crimson{top:1124.5svh}}
@media(max-height:620px) and (min-width:701px){.orbit-panel h2,.lunar-panel h2{font-size:4.5rem}}

.horizon-sanctuary{opacity:var(--peace,0);transform:translate(var(--peace-x,0px),var(--peace-y,0px)) scale(var(--peace-scale,1.035))}
.horizon-sanctuary img{object-position:50% 55%}
.heavenly-rays{position:absolute;inset:-4%;opacity:var(--heavenly-rays,0);transform:translateY(var(--rays-y,0px)) scale(var(--rays-scale,1.05));mix-blend-mode:screen;will-change:transform,opacity}.heavenly-rays img{width:100%;height:100%;object-fit:cover;object-position:50% 0;filter:brightness(1.25)}
.ascension-light{position:absolute;inset:-5%;background:radial-gradient(ellipse at 50% 28%,rgba(255,255,255,.78),rgba(255,255,251,.4) 34%,transparent 74%),linear-gradient(to bottom,rgba(255,255,253,.55),transparent 80%);opacity:var(--grace-light,0);mix-blend-mode:screen}
.grace-flash{position:absolute;inset:0;background:#fff;opacity:var(--grace-flash,0);pointer-events:none}
.vignette{opacity:calc(1 - var(--peace,0) * .82)}
.atmosphere{opacity:calc(1 - var(--peace,0))}
.grace-panel{left:7%;right:7%;top:72%;text-align:center;color:var(--cream);text-shadow:0 2px 32px rgba(22,7,20,.75)}
.header{color:rgb(var(--header-foreground,var(--foreground)))}
.header .icon-button{border-color:rgba(var(--header-foreground,var(--foreground)),.35)}
.grace-panel h2{font-size:clamp(3.2rem,4.1vw,4.3rem);line-height:.93}.grace-panel .eyebrow{margin-bottom:18px}.grace-panel .story-description{margin-top:20px}
.sanctuary-panel{color:var(--ink);text-shadow:0 2px 30px rgba(255,255,245,.35)}
.sanctuary-panel h2{font-size:clamp(4.7rem,8.2vw,8.8rem);line-height:.9}
.ending-panel{color:rgb(var(--foreground));text-shadow:0 2px 30px rgba(255,255,245,.25)}
.chapter-nav{gap:20px;min-width:0}
.journey-track{height:1580svh}
#daylight{top:133.9104svh}#threshold{top:334.776svh}#midnight{top:555.72816svh}#orbit{top:773.448svh}#crimson{top:998.556svh}#grace{top:1243.2svh}#sanctuary{top:1404.52svh}
@media(max-width:1100px){.chapter-nav{gap:13px}.header{gap:18px}}
@media(max-width:700px){.chapter-nav{position:static;flex:1;gap:17px;justify-content:flex-start;overflow-x:auto;scrollbar-width:none;padding:0 0 4px;overscroll-behavior-x:contain}.chapter-nav::-webkit-scrollbar{display:none}.chapter-nav a{flex-shrink:0}.journey-track{height:1770svh}.grace-panel{left:7%;right:7%;top:66%;text-align:center}.grace-panel h2{font-size:clamp(2.6rem,10vw,4rem)}.grace-panel .eyebrow{margin-bottom:17px}.grace-panel .story-description{margin-top:20px}.sanctuary-panel h2{font-size:clamp(3.65rem,13.5vw,6rem)}#daylight{top:151.1016svh}#threshold{top:377.754svh}#midnight{top:627.07164svh}#orbit{top:872.742svh}#crimson{top:1126.749svh}#grace{top:1402.8svh}#sanctuary{top:1584.83svh}}
@media(max-height:620px) and (min-width:701px){.grace-panel h2{font-size:3.5rem}.sanctuary-panel h2{font-size:4.5rem}}
.fallback-angel{position:absolute;left:50%;top:9%;width:min(40%,33svh);max-width:520px;opacity:var(--angel,0);transform:translate(-50%,calc(-70px + var(--angel-descent,0) * 110px))}
@media(max-width:700px){.fallback-angel{top:15%;width:39%}}
