@font-face{font-family:Fraunces;src:url('./fonts/fraunces.woff2') format('woff2');font-weight:100 900;font-display:swap}
@font-face{font-family:Fraunces;src:url('./fonts/fraunces-italic.woff2') format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:Manrope;src:url('./fonts/manrope.woff2') format('woff2');font-weight:200 800;font-display:swap}
:root{--ink:#f9f3df;--accent:#f6cd80;--fade:0;--paper:#fbf8ed;--edge:clamp(22px,4.4vw,74px);--ui:Manrope,Arial,sans-serif;--serif:Fraunces,Georgia,serif;color:var(--ink);background:#8cb4ae;font-family:var(--ui)}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;overscroll-behavior:none}html{scrollbar-width:none}body::-webkit-scrollbar{display:none}
button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:2px solid var(--accent);outline-offset:6px}button[aria-disabled=true]{cursor:default}
#experience,#stage,#shade,#whiteout,#loader,#fallback{position:fixed;inset:0}#experience{overflow:hidden;isolation:isolate;min-height:100svh}#scroll-space{height:660vh;pointer-events:none}
#stage{z-index:-4;background:radial-gradient(ellipse at 80% 18%,#f9edd2 0,transparent 48%),linear-gradient(#6e9eb2,#d9e1b6 85%,#b7c198)}#stage canvas{display:block;width:100%;height:100%;opacity:0}html.rendering #scene{opacity:1}
#shade{z-index:-3;opacity:0;pointer-events:none;background:linear-gradient(90deg,rgba(18,45,33,.69),rgba(18,45,33,.34) 34%,transparent 65%),linear-gradient(0deg,rgba(15,34,25,.63),transparent 25%,transparent 83%,rgba(16,39,30,.28))}
#whiteout{z-index:-2;background:var(--paper);pointer-events:none;opacity:0}
.ui{visibility:hidden}html.ready .ui{visibility:visible}.ui-off .ui,.ui-off #loader{display:none!important}
.chrome{position:absolute;left:var(--edge);right:var(--edge);opacity:0;pointer-events:none}
.chrome button{pointer-events:auto}#masthead{top:clamp(22px,4.1vh,44px);display:flex;align-items:center;justify-content:space-between;gap:6px;border-bottom:1px solid #fff5d95e;padding-bottom:clamp(12px,2.3vh,23px)}
.brand{border:0;background:none;display:flex;gap:clamp(4px,.9vw,9px);align-items:center;padding:0;min-width:0}
.brand svg{width:clamp(23px,4.6vw,32px);height:clamp(23px,4.6vw,32px);flex:none}
.brand-logo{position:relative;width:clamp(74.2px,23.8vw,162.4px);aspect-ratio:15 / 4;overflow:hidden}
/* Frame the artwork inside the transparent margins of the original PNG. */
.brand-logo img{position:absolute;top:50%;left:50%;width:140%;height:auto;transform:translate(-50%,-50%)}
svg{fill:none;stroke:currentColor;stroke-width:1.45;stroke-linejoin:round;stroke-linecap:round}
.edition{display:flex;flex:none;align-items:center;gap:clamp(3px,.8vw,9px);text-align:right;font-weight:800;font-size:clamp(9px,1.35vw,11px);letter-spacing:.13em;line-height:1.25;color:#000}
.edition-details{display:grid;gap:2px}
.edition-details strong,.edition-details small{letter-spacing:.025em}
.edition-details strong{font-size:clamp(10px,1.4vw,13px)}
.edition-details small{font-size:inherit}
.edition-star{font-size:clamp(16px,2vw,24px);color:var(--accent);font-weight:400}
#hero{position:absolute;left:var(--edge);top:47%;width:min(57vw,720px);transform:translateY(-42%);opacity:0;pointer-events:none;text-shadow:0 2px 32px #153d2d4a}
.eyebrow{display:flex;align-items:center;gap:11px;font-size:10px;letter-spacing:.25em;font-weight:800;color:var(--accent);line-height:1.5}
.eyebrow i{display:inline-block;width:24px;height:1px;background:currentColor}
h1,h2,p{margin:0}#hero h1{font:490 clamp(76px,10.8vw,174px)/.79 var(--serif);letter-spacing:-.076em;margin:22px 0 23px}
#hero em,#ending em,#fallback em{font-weight:420;letter-spacing:-.082em}h1 span,h2 span{color:var(--accent)}
.tagline{font:400 clamp(15px,1.7vw,26px)/1.4 var(--serif);letter-spacing:-.015em}
.launch{display:flex;align-items:center;gap:11px;background:none;border:0;text-align:left;font-size:10px;font-weight:800;letter-spacing:.17em;padding:0;margin-top:28px;pointer-events:auto;line-height:1.3}
.launch small{font-size:8px;display:block;color:#faf2d5c9;font-weight:700;letter-spacing:.12em;margin-top:4px}
.round-arrow{border-radius:50%;width:36px;height:36px;border:1px solid #fff5d986;display:grid;place-items:center;font-size:17px;font-weight:400;transition:background .2s,color .2s,transform .2s}
.launch:hover .round-arrow{background:var(--ink);color:#29473b;transform:translateY(3px)}
#chapter{position:absolute;left:var(--edge);top:46%;max-width:62vw;opacity:0;pointer-events:none;text-shadow:0 2px 28px #133429aa;transform-origin:left center}
#chapter h2{font:440 italic clamp(55px,8.4vw,139px)/.88 var(--serif);letter-spacing:-.075em;margin:.13em 0 .15em}
#chapter[data-world="2"] h2{font-size:clamp(36px,6.8vw,113px)}
#chapter p{font:400 clamp(14px,1.55vw,22px)/1.25 var(--serif)}
#journey{bottom:max(clamp(21px,4vh,45px),env(safe-area-inset-bottom))}
.journey-caption{display:flex;justify-content:space-between;font-size:9px;letter-spacing:.19em;font-weight:800;margin-bottom:13px;color:#faf4dcdb}
.rail{position:relative;height:1px;background:#faf0d568}
#rail-fill{position:absolute;inset:0;background:var(--accent);transform:scaleX(0);transform-origin:left}
#rail-plane{position:absolute;width:21px;height:21px;left:0;top:50%;transform:translate(-50%,-50%) rotate(25deg);color:var(--accent);fill:#37574c;overflow:visible}
.stops{display:grid;grid-template-columns:repeat(3,1fr);padding-top:9px}
.stops button{background:none;border:0;padding:4px 0;font-weight:800;letter-spacing:.09em;font-size:10px;text-transform:uppercase;justify-self:start;color:#f9f3dfc7;text-align:left}
.stops button:nth-child(2){justify-self:center}.stops button:nth-child(3){justify-self:end;text-align:right}
.stops small{font-size:8px;letter-spacing:.1em;margin-right:6px;opacity:.75}
.stops button:hover,.stops button[aria-current]{color:var(--accent)}
#ending{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;text-align:center;color:#284b40;opacity:0;pointer-events:none;--accent:#a26d31;transform:translateY(12px)}
#ending svg,#loader svg{height:44px;width:44px;margin-bottom:20px}
#ending h2{font:470 clamp(66px,11vw,165px)/.81 var(--serif);letter-spacing:-.075em;margin:17px 0 max(20px,.18em)}
#ending p{font:400 clamp(16px,2vw,26px)/1.4 var(--serif)}
.ending-actions{display:grid;gap:8px;margin-top:24px}
#replay,#contact,#retry{padding:12px 17px;border-radius:40px;border:1px solid #2e5946;background:none;font-size:12px;font-weight:800;color:#27473d;transition:color .2s,background .2s}
#replay,#contact{display:grid;place-items:center;min-height:44px;text-decoration:none}
#retry{margin-top:24px}
#replay:hover,#contact:hover,#retry:hover{color:var(--paper);background:#27473d}
#contact:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
#ending.active{pointer-events:auto}
#loader{z-index:3;display:grid;place-content:center;justify-items:center;color:#fff9e8;text-shadow:0 2px 16px #355f63;pointer-events:none;transition:opacity .5s;background:radial-gradient(ellipse at 40% 62%,#5c81945e,transparent 45%)}
#loader svg{animation:drift 2.6s ease-in-out infinite}#loader-label{font-size:9px;font-weight:800;letter-spacing:.27em}
#loader-track{width:138px;height:1px;background:#fff9e866;margin-top:13px}#loader-track i{height:1px;display:block;width:100%;background:#fff9e8;transform:scaleX(.12);transform-origin:left;transition:transform .35s}
#loader.done{opacity:0}
#fallback{z-index:4;background:linear-gradient(155deg,#e8efd2,#f9f0d9 68%,#d6e4cb);color:#27473d;display:grid;place-content:center;justify-items:center;text-align:center;padding:25px}
#fallback[hidden]{display:none}#fallback h1{font:480 clamp(46px,10vw,100px)/1 var(--serif);letter-spacing:-.075em}#fallback p{max-width:380px;margin:12px 0 0}
@keyframes drift{50%{transform:translateY(-8px) rotate(6deg)}}
@media(max-width:680px){#hero{width:85vw;top:38%;transform:translateY(-40%)}#hero h1{font-size:clamp(65px,15.5vw,110px);margin:17px 0 16px}.tagline{font-size:16px}.launch{margin-top:19px}.round-arrow{width:31px;height:31px}#chapter{top:32%;max-width:90vw}#shade{background:linear-gradient(180deg,#173a2d66,transparent 55%,#162b24a6),linear-gradient(90deg,#173a2d55,transparent 78%)}.stops button{font-size:9px}.stops small{margin-right:3px}}
@media(max-width:680px) and (max-height:420px) and (orientation:landscape){#hero{top:43%}#hero h1{font-size:clamp(42px,15vh,66px);margin:7px 0}.launch{margin-top:7px}}
@media(max-height:540px) and (min-width:681px){#hero h1{font-size:clamp(63px,17vh,100px);margin:12px 0}.launch{margin-top:13px}#hero{top:43%}#chapter{top:40%}#ending h2{font-size:17vh}}
@media(max-height:440px){
  #masthead{top:max(12px,env(safe-area-inset-top));padding-bottom:9px}
  .brand-logo{max-width:114.8px}
  #ending{padding-block:env(safe-area-inset-top) env(safe-area-inset-bottom)}
  #ending svg{width:28px;height:28px;margin-bottom:6px}
  #ending h2{margin:8px 0 10px}
  .ending-actions{margin-top:12px;gap:6px}
}
@media(max-height:360px){#ending h2{font-size:15vh}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;transition-duration:.001ms!important}}
.ui-off #whiteout{background:#fff}
