@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/font-0.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/font-7.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(assets/font-8.ttf) format('truetype');
}
@font-face {
  font-family: 'Playfair Display';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(assets/font-9.ttf) format('truetype');
}

:root{--bg:#15130f;--paper:#e4d8bd;--gold:#bd9b60;--muted:#a89f8a;--line:#b79a6238;--wine:#54251e;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--paper);font-family:var(--sans);font-size:16px}button,a,input{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}button{font:inherit;color:inherit;cursor:pointer}button{background:none;border:0}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid #e6c881;outline-offset:5px}button,a{transition:background .2s,color .2s,transform .2s}button:hover,a:hover{color:#ffe3a7}header{height:104px;margin:0 4%;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--line);position:relative;z-index:5}.brand{display:flex;align-items:center;gap:13px;font:600 16px/1.15 var(--serif);letter-spacing:1.5px}.brand small{display:block;font:8px/2.5 var(--sans);letter-spacing:1.8px;color:var(--muted)}.seal{border:1px solid var(--gold);border-radius:50%;width:45px;height:52px;display:grid;place-items:center;font:21px var(--serif);outline:1px solid #bd9b6044;outline-offset:4px}nav{display:flex;gap:28px}nav button{padding:14px 0;position:relative;color:var(--muted);font-size:13px}nav button.active{color:var(--paper)}nav button.active:after{content:'';position:absolute;bottom:3px;left:0;right:0;height:1px;background:var(--gold)}.external{display:flex;gap:23px;align-items:center;font-size:13px}.external>a:first-child{font-size:21px}.external>a:first-child span{font-size:13px}.buy{border:1px solid var(--gold);padding:13px 19px;letter-spacing:1px;font-size:12px}.buy:hover,.primary:hover{background:#ddc091;color:#17130f;transform:translateY(-2px)}main{min-height:calc(100svh - 174px)}.scene{position:relative;min-height:calc(100svh - 174px);padding:27px 4% 32px;overflow:hidden}.scene[hidden]{display:none}.grain{position:fixed;inset:0;pointer-events:none;z-index:30;opacity:.055;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='.88' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23fff' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.edition,.eyebrow,.section-top,#collection-count{font-size:11px;letter-spacing:2px;font-weight:500}.edition{color:var(--muted);display:flex;justify-content:space-between;position:relative;z-index:2}.eyebrow{color:var(--gold)}.hero-art{position:absolute;inset:0 0 0 23%;background:url('assets/hero.png') center center/cover no-repeat;opacity:.98;transition:filter 1s,transform 1s}.hero-art:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--bg),transparent 25%),linear-gradient(0deg,var(--bg),transparent 26%)}.hero-copy{position:relative;z-index:2;margin-top:58px;width:49%}h1{font:500 clamp(58px,5.7vw,90px)/1.02 var(--serif);letter-spacing:-3.4px;margin:18px 0 23px}h1 em,h2 em{font-weight:500;color:var(--gold)}.intro{font-size:15px;line-height:1.7;color:var(--muted)}.primary{display:inline-flex;align-items:center;justify-content:space-between;gap:38px;background:var(--gold);color:#19150f;font-size:11px;font-weight:700;letter-spacing:1.4px;padding:19px 24px;margin-top:15px;min-height:48px}.primary span{font-size:19px}.boarding{position:relative;display:flex;align-items:center;gap:40px;z-index:2;background:linear-gradient(110deg,#5d3027,#351c17);border:1px solid #9b6b454f;width:54%;margin-top:44px;padding:23px 27px}.boarding:after{content:'✦';position:absolute;right:-9px;top:42%;color:var(--gold);background:var(--bg)}.boarding .eyebrow{font-size:9px}.boarding strong{display:block;font:italic 24px var(--serif);margin-top:9px}.ticket-meta{border-left:1px dashed #b7976966;padding-left:24px;font-size:9px;line-height:2;letter-spacing:1px}.ticket-meta span{display:block;color:var(--muted)}.ticket-meta b{font-size:9px;white-space:nowrap}.ticket-arrow{font-size:36px;margin-left:auto}.art-note{position:absolute;right:10%;bottom:58px;z-index:3;color:var(--gold);font-size:10px;letter-spacing:1.5px}.art-note span{display:block;font-size:29px;margin-top:10px}.handnote{position:absolute;right:4%;top:20%;font:italic 17px/1.45 var(--serif);color:#c7b68f;transform:rotate(8deg)}footer{min-height:70px;margin:0 4%;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:20px;color:var(--muted);font-size:9px;letter-spacing:1px}.footer-label i{font-style:normal;color:var(--gold);margin:0 12px}.world-controls{display:flex;gap:18px}.world-controls button{font-size:9px;letter-spacing:1px;padding:14px 0}.footer-note{font-size:9px;letter-spacing:0}.section-top{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:25px}.story-grid{display:grid;grid-template-columns:47% 1fr;gap:8%;align-items:center;max-width:1400px;margin:20px auto}.story-portrait{position:relative}.story-portrait img{width:100%;height:540px;object-fit:cover;filter:sepia(.25);border:1px solid var(--line)}.portrait-label{display:block;font-size:10px;letter-spacing:1.8px;margin:17px 0;color:var(--gold)}.story-portrait button{font-size:11px;letter-spacing:1px;border-bottom:1px solid var(--gold);padding:9px 0}.chapter-number{font-size:11px;letter-spacing:2px;color:var(--gold)}h2{font:500 clamp(42px,4.2vw,68px)/1.1 var(--serif);letter-spacing:-2px;margin:20px 0 25px}.story-content>p{font-size:16px;line-height:1.85;color:var(--muted)}.story-content .story-lede{font:italic 22px/1.5 var(--serif);color:var(--paper)}blockquote{margin:25px 0;padding:4px 0 4px 23px;border-left:1px solid var(--gold);font:italic 21px/1.5 var(--serif);color:var(--gold)}.chapter-controls{display:flex;align-items:center;gap:30px;margin-top:30px}.chapter-controls>button{width:43px;height:43px;border:1px solid var(--line);font-size:20px}.chapter-controls button:disabled{opacity:.3;cursor:default}#chapter-dots{display:flex;gap:12px}#chapter-dots button{width:10px;height:10px;border:1px solid var(--gold);border-radius:50%;padding:0}#chapter-dots button.active{background:var(--gold)}.cabinet-layout{display:grid;grid-template-columns:39% 61%;align-items:center}.cabinet-copy{padding-right:12%}.cabinet-copy p{color:var(--muted);line-height:1.7;max-width:350px}.cabinet-art{position:relative}.cabinet-art img{width:100%;max-height:640px;object-fit:contain;mix-blend-mode:screen}.cabinet-stamp{position:absolute;right:10%;bottom:10%;border:1px solid var(--gold);padding:15px;transform:rotate(-9deg);font:13px/1.5 var(--serif);background:#17130fd9}.relic-list{margin-top:25px}.relic-list button{width:100%;display:flex;gap:20px;text-align:left;border-bottom:1px solid var(--line);padding:17px 0;font-family:var(--serif);font-size:19px}.relic-list button span{font:11px var(--sans);color:var(--gold);padding-top:5px}.relic-list button b{font:20px var(--sans);margin-left:auto}.relic-list button.found{color:var(--gold)}.small{font-size:12px!important}.route-layout{display:grid;grid-template-columns:42% 58%;align-items:center;min-height:610px}.route-copy{max-width:420px}.route-copy>p:not(.eyebrow){color:var(--muted);line-height:1.8}.route-note{font-style:italic;border-top:1px solid var(--line);padding-top:20px;font-family:var(--serif)}.mechanism{text-align:center}.dial-top{font-size:10px;letter-spacing:2px;color:var(--gold);margin:25px 0}.dial{width:430px;height:430px;position:relative;margin:45px auto}.dial-rings{position:absolute;inset:16px;border:2px solid var(--gold);border-radius:50%;box-shadow:0 0 0 9px #17130f,0 0 0 10px #6e5c3c,0 0 0 18px #17130f,0 0 0 19px #6e5c3c,inset 0 0 70px #b9976422;background:repeating-conic-gradient(from 0deg,#bd9b6077 0deg 1deg,transparent 1deg 10deg);mask:radial-gradient(transparent 59%,#000 60%)}.dial-spokes{position:absolute;inset:43px;border:1px solid #bd9b6066;border-radius:50%;background:repeating-conic-gradient(#bd9b6066 0deg 1deg,transparent 1deg 30deg);transition:transform 1.2s cubic-bezier(.22,1,.36,1)}.hub{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:150px;height:150px;border-radius:50%;border:1px solid var(--gold);outline:1px solid #a2895455;outline-offset:8px;background:radial-gradient(#35291b,#15130f 70%);display:flex;align-items:center;justify-content:center;flex-direction:column}.hub span{font:51px var(--serif)}.hub small{font-size:8px;letter-spacing:1.7px;margin-top:7px}.station{position:absolute;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;transform:translate(-50%,-50%);z-index:2}.station b{background:var(--bg);border:1px solid var(--gold);border-radius:50%;height:51px;width:51px;display:grid;place-items:center;font:20px var(--serif);transition:.3s}.station.active b{background:var(--gold);color:var(--bg);box-shadow:0 0 35px #bd9b6044}.station span{font-size:9px;letter-spacing:1px;white-space:nowrap;background:var(--bg);padding:3px}.s0{left:50%;top:0}.s1{left:100%;top:50%}.s2{left:50%;top:100%}.s3{left:0;top:50%}.wheel-control{display:flex;align-items:center;justify-content:center;gap:15px;font-size:9px;letter-spacing:1px;margin:50px 0 20px;color:var(--gold)}input[type=range]{accent-color:var(--gold);width:130px;cursor:pointer}.transition{position:fixed;inset:0;background:#48251f;z-index:80;transform:translateY(101%);display:grid;place-items:center;pointer-events:none}.transition span{font:italic 3vw var(--serif);color:var(--gold)}body.switching .transition{animation:curtain .62s cubic-bezier(.65,0,.35,1)}@keyframes curtain{0%{transform:translateY(101%)}48%,53%{transform:translateY(0)}100%{transform:translateY(-101%)}}.scene.active .hero-copy,.scene.active .story-content,.scene.active .cabinet-copy,.scene.active .route-copy{animation:enter .75s both}@keyframes enter{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}body.lit{--bg:#201a12;--paper:#f3e6ca;--gold:#d8b572}.lit .hero-art{filter:brightness(1.2)}dialog{background:#201a14;color:var(--paper);border:1px solid var(--gold);padding:48px;width:min(600px,92vw);max-height:90svh;box-shadow:0 30px 120px #000}dialog::backdrop{background:#080706bd;backdrop-filter:blur(8px)}dialog p{color:var(--muted);line-height:1.8}dialog h2{font-size:44px}.close{position:absolute;right:18px;top:10px;font-size:32px}.ride-status{display:flex;justify-content:space-between;color:var(--gold);font-size:10px;letter-spacing:1px;margin:20px 0}.ride-field{position:relative;height:230px;border:1px solid var(--line);overflow:hidden;background:radial-gradient(ellipse at bottom,#5d3626,#100e0c)}.ride-instruction{position:absolute;inset:0;display:grid;place-items:center;font:italic 18px var(--serif);color:var(--muted)}.spark{position:absolute;width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;background:#c6a467;color:#17130f;box-shadow:0 0 35px #e9bf6755;font-size:27px;transition:top .7s,left .7s}.spark:focus{outline:2px solid white}.ride-field.won{background:radial-gradient(ellipse,#6f4e24,#17130f)}#toast{position:fixed;bottom:85px;left:50%;transform:translate(-50%,20px);z-index:100;background:#c5a36a;color:#17130f;max-width:90%;padding:15px 23px;font-size:13px;opacity:0;pointer-events:none;transition:.25s;text-align:center}#toast.show{transform:translate(-50%,0);opacity:1}.reduced-motion *, .reduced-motion *:before,.reduced-motion *:after{animation:none!important;transition:none!important}button:disabled{opacity:.4;cursor:default}
@media(min-width:1500px){.hero-copy{margin-top:75px}.hero-art{background-position:center 44%}.boarding{margin-top:52px}.departure{min-height:810px}}
@media(max-width:1100px){header{gap:15px}nav{gap:18px}.brand{font-size:13px}.external{gap:12px}.buy{padding:12px}.hero-copy{width:58%;margin-top:45px}.boarding{width:64%;gap:22px}.ticket-meta{padding-left:15px}.dial{width:340px;height:340px}.story-grid{gap:5%}.footer-note{display:none}.hero-art{inset:0 0 0 20%}}
@media(max-width:760px){header{height:auto;min-height:120px;flex-wrap:wrap;padding:18px 0 10px;margin:0 5%;gap:14px}.brand{font-size:13px}.brand small{font-size:7px}.seal{height:39px;width:36px;font-size:18px}.external{margin-left:auto}.buy{font-size:10px;padding:10px}nav{order:3;width:100%;justify-content:space-between;gap:10px}nav button{font-size:12px;padding:8px 0}main{min-height:calc(100svh - 200px)}.scene{padding:23px 5% 30px}.edition{font-size:8px;letter-spacing:1.2px}.edition span{display:none}.hero-copy{margin-top:40px;width:100%}.hero-copy>.eyebrow{font-size:9px}h1{font-size:58px;letter-spacing:-2.5px}.hero-art{inset:90px -110px 80px 5%;opacity:.7;background-position:64% center}.hero-art:after{background:linear-gradient(90deg,#15130fe8,transparent 85%),linear-gradient(0deg,var(--bg),transparent 40%)}.intro{font-size:14px}.handnote{top:140px;right:7%;font-size:13px}.boarding{width:100%;padding:20px;margin-top:45px;gap:20px}.boarding strong{font-size:21px}.ticket-meta{display:none}.boarding .eyebrow{font-size:8px}.art-note{right:6%;bottom:167px;font-size:8px;max-width:100px;line-height:1.7}.primary{font-size:10px;gap:20px;padding:17px 18px}footer{margin:0 5%;padding:14px 0;flex-direction:column;gap:0}.world-controls{gap:20px}.footer-label{font-size:8px}.world-controls button{font-size:8px}.story-grid{grid-template-columns:1fr;margin-top:0;gap:24px}.story-portrait{display:grid;grid-template-columns:100px 1fr;gap:12px;align-items:center}.story-portrait img{width:100px;height:120px;grid-row:span 2}.portrait-label{font-size:9px;line-height:1.8;margin:0}.story-portrait button{font-size:9px;line-height:1.7;text-align:left}.section-top{font-size:9px;letter-spacing:1px}.section-top>.edition{display:none}h2{font-size:46px}.story-content>p{font-size:15px}.story-content .story-lede{font-size:20px}.chapter-controls{margin-top:24px}.cabinet-layout{grid-template-columns:1fr}.cabinet-copy{padding:0}.cabinet-copy h2{font-size:50px}.cabinet-copy h2 br{display:none}.cabinet-copy p{max-width:none}.cabinet-art{margin:25px -5% 0}.cabinet-art img{max-height:430px}.route-layout{display:flex;flex-direction:column-reverse;min-height:0}.mechanism{width:100%}.dial{width:260px;height:260px;margin:47px auto}.dial-top{font-size:8px;margin:8px 0}.hub{width:105px;height:105px}.hub span{font-size:36px}.hub small{font-size:6px}.station b{width:39px;height:39px;font-size:17px}.station span{font-size:7px}.dial-spokes{inset:33px}.wheel-control{margin:30px 0;font-size:8px;gap:9px}.wheel-control input{width:95px}.route-copy{max-width:100%;padding-top:10px}.route-copy h2{font-size:44px}.route-copy .primary{width:100%}dialog{padding:35px 25px}dialog h2{font-size:37px}dialog p{font-size:14px}.ride-field{height:210px}.transition span{font-size:17px}.eyebrow{font-size:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.origin:before,.route:before{content:'';position:absolute;inset:0;background:url('assets/relics.png') center/750px repeat;opacity:.045;pointer-events:none}.story-grid,.route-layout,.section-top{position:relative}.scene.cabinet .cabinet-art{animation:float-art 8s ease-in-out infinite}@keyframes float-art{50%{transform:translateY(-7px)}}
@media(max-width:760px){.handnote{display:none}nav button{min-height:38px}.world-controls button{min-height:40px}}
