@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');
:root{font-family:'Manrope',sans-serif;color:#fff;background:#153e47;font-synthesis:none;--gold:#ecd48c;--ink:#123443}*{box-sizing:border-box}body{margin:0}button{font:inherit;color:inherit;cursor:pointer}button:focus-visible{outline:3px solid var(--gold);outline-offset:5px}button{border:0;background:none} .backdrop{position:fixed;inset:-25px;background:linear-gradient(#13475b40,#103c4455),url('assets/village.png') center/cover;filter:blur(12px);z-index:-1}.shell{height:100svh;max-width:1920px;margin:auto;padding:0 3.6%;display:grid;grid-template-rows:10% 84% 6%}header{display:flex;align-items:center;gap:24px}.brand{font-family:'Cormorant Garamond',Georgia,serif;font-variant:small-caps;font-size:clamp(28px,3.2vw,52px);white-space:nowrap;letter-spacing:2px;padding:0}.star{color:var(--gold);font-size:1.35em;vertical-align:middle;margin-right:12px}.brand-note{font-family:Georgia,serif;font-size:14px;line-height:1.5;border-left:1px solid #ffffff70;padding-left:24px;letter-spacing:1px}nav{margin-left:auto;display:flex;gap:clamp(16px,3vw,44px)}nav button{font-family:Georgia,serif;font-size:16px;padding:12px 0;position:relative}nav button:after{content:'';position:absolute;bottom:4px;left:0;width:0;height:1px;background:var(--gold);transition:width .3s}nav button:hover:after{width:100%}nav span{margin-left:12px;color:var(--gold)}main{min-height:0;display:grid;grid-template-rows:minmax(0,1fr) 24%;gap:16px}.hero{min-height:0;display:flex;border:1px solid #ffffffbd;border-radius:22px;overflow:hidden;box-shadow:0 18px 60px #092a3940,inset 0 0 0 1px #ffffff40}aside{width:8%;min-width:75px;background:linear-gradient(155deg,#123845dc,#152f35e8);backdrop-filter:blur(20px);border-right:1px solid #ffffff60;display:flex;flex-direction:column;align-items:center;padding:28px 8px;gap:16px;z-index:2}.rail-button{width:100%;padding:15px 2px;border-radius:24px;border:1px solid transparent;color:#ffffffbd;transition:background .3s,border-color .3s}.rail-button span{font-size:30px;display:block}.rail-button small{display:block;font-family:Georgia,serif;font-size:14px;margin-top:5px}.rail-button.active{background:linear-gradient(140deg,#386979a0,#173b4e);border-color:#e7d4968c;color:#ffedaa;box-shadow:0 0 25px #82cad222}.rail-star{margin-top:auto;font-size:40px;color:var(--gold)}.stage{flex:1;position:relative;overflow:hidden;background:#9fc3c5}.scene-art{position:absolute;inset:-2%;will-change:transform}.scene-art img{width:100%;height:100%;object-fit:cover;object-position:center}.wash{position:absolute;inset:0;background:linear-gradient(90deg,transparent 25%,#e8f5ed88 62%,#e2f1e48a 100%)}.hero-copy{position:absolute;top:50%;right:4%;transform:translateY(-50%);width:46%;text-align:center;color:var(--ink);text-shadow:0 1px 18px #ffffffb0}.eyebrow{font-size:12px;letter-spacing:4px;font-weight:600}.hero-copy h1{font-family:'Cormorant Garamond',Georgia,serif;font-variant:small-caps;font-weight:500;font-size:clamp(60px,7.7vw,125px);line-height:1;margin:18px 0 0;letter-spacing:-3px}.ornament{display:flex;align-items:center;justify-content:center;gap:14px;font-size:29px;color:#9c8040}.ornament span{height:1px;width:25%;background:linear-gradient(90deg,transparent,#927846)}.ornament span:last-child{transform:rotate(180deg)}.description{font-family:'Cormorant Garamond',Georgia,serif;font-size:clamp(22px,2.1vw,32px);margin:8px 0 24px;line-height:1.2}.gold-button{display:inline-flex;justify-content:center;align-items:center;gap:45px;min-width:240px;padding:15px 28px;background:linear-gradient(115deg,#f6e9b1,#e4c16a 55%,#f4dfa0);border:1px solid #fff0bd;border-radius:12px;color:#193541;font-family:Georgia,serif;font-size:22px;box-shadow:0 6px 28px #7d6a3436,inset 0 0 0 3px #ffffff20;transition:box-shadow .3s,transform .3s}.gold-button:hover{transform:translateY(-3px);box-shadow:0 9px 35px #ffe9a178}.availability{font-size:13px;font-family:Georgia,serif;letter-spacing:.3px;margin-top:12px}.scene-index{position:absolute;top:25px;left:28px;letter-spacing:2px;font-size:12px;color:#fff;text-shadow:0 2px 8px #123443}.scene-caption{position:absolute;bottom:22px;right:28px;font-family:'Cormorant Garamond',serif;font-style:italic;font-size:19px;color:#193f49}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;min-height:0}.card{position:relative;text-align:left;border:1px solid #ffffffb0;border-radius:15px;overflow:hidden;padding:0;isolation:isolate}.card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1);z-index:-2}.card:after{content:'';position:absolute;inset:0;background:linear-gradient(transparent 15%,#08232bee);z-index:-1}.card:hover img{transform:scale(1.07)}.card>div{position:absolute;left:20px;bottom:17px;right:55px}.card-kicker{font-size:10px;letter-spacing:2px;color:#efdcab}.card h2{font-family:'Cormorant Garamond',serif;font-size:clamp(23px,2.1vw,32px);font-weight:500;line-height:1.1;margin:5px 0}.card p{font-family:Georgia,serif;font-size:14px;margin:0;color:#e1e5df}.arrow{position:absolute;right:17px;bottom:21px;border:1px solid #ffffffa0;border-radius:50%;width:34px;height:34px;display:grid;place-items:center;font-size:23px;transition:background .3s}.card:hover .arrow{background:#ffffff25}.card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}footer{display:flex;align-items:center;gap:15px;font-size:12px;letter-spacing:2px}footer>span{color:var(--gold);font-size:24px}footer>span span{font-size:12px;vertical-align:middle}footer p{margin-left:auto;font-size:11px;text-transform:uppercase;color:#ffffffba}footer button{font-size:12px;letter-spacing:0;color:#eee}.motes{position:absolute;inset:0;pointer-events:none}.motes i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff4ba;box-shadow:0 0 12px #ffe6a2;opacity:0}dialog{width:min(540px,90vw);max-height:90svh;overflow:auto;border:1px solid #e4d39b80;border-radius:22px;background:linear-gradient(145deg,#173f4af7,#0f2934);color:#edf2ee;padding:48px;box-shadow:0 30px 100px #0008}dialog::backdrop{background:#051b2ac9;backdrop-filter:blur(10px)}dialog .close{position:absolute;top:13px;right:19px;font-size:30px}dialog .eyebrow{color:var(--gold);letter-spacing:2px}dialog h2{font-family:'Cormorant Garamond',serif;font-size:44px;font-weight:400;line-height:1.05;margin:20px 0}dialog p{font-size:16px;line-height:1.6;color:#cfdbdd}dl{margin:26px 0}dl div{display:flex;justify-content:space-between;gap:16px;border-bottom:1px solid #ffffff20;padding:13px 0;font-size:14px}dd{margin:0;color:var(--gold)}dialog .gold-button{font-size:17px;width:100%;gap:15px}.forest .wash{background:linear-gradient(90deg,#05281e80,transparent 85%)}.forest .hero-copy{left:5%;right:auto;color:white;text-shadow:0 2px 15px #12392d;width:45%;text-align:left}.forest .hero-copy h1,.village .hero-copy h1,.characters .hero-copy h1{font-size:clamp(50px,6vw,95px);letter-spacing:-1px}.forest .ornament{justify-content:flex-start}.forest .scene-caption{color:white}.characters .hero-copy{background:#edf5e845;border-radius:30px;padding:20px}.village .wash{background:linear-gradient(90deg,transparent,#edf5e6ba)}
@media(min-width:1800px){.shell{max-height:1200px}}@media(max-height:700px) and (min-width:761px){aside{padding:12px 6px;gap:4px}.rail-button{padding:9px 0}.hero-copy h1{font-size:66px}.description{margin:4px 0 14px}.scene-index,.scene-caption{display:none}.gold-button{padding:12px 24px}.card-kicker,.brand-note{display:none}.card>div{bottom:12px}.card h2{font-size:25px}.availability{margin:8px 0}}
@media(max-width:760px){.shell{height:auto;min-height:100svh;padding:0 5%;grid-template-rows:88px auto 65px}.brand{font-size:29px;letter-spacing:0}.brand .star{margin-right:3px}.brand-note{display:none}header{gap:10px}nav{gap:13px}nav button{font-size:14px}nav span{display:none}main{display:block}.hero{height:65svh;min-height:490px;border-radius:18px}aside{display:none}.stage .hero-copy{width:86%;right:7%;left:auto;top:auto;bottom:24px;transform:none;text-align:center}.hero-copy h1{font-size:66px}.scene-art img{object-position:28% center}.wash{background:linear-gradient(transparent 20%,#edf5e9e8 70%)}.hero-copy .eyebrow{letter-spacing:2px}.description{font-size:25px;margin-bottom:18px}.scene-index{top:20px;left:20px}.scene-caption{display:none}.cards{grid-template-columns:1fr;grid-template-rows:repeat(3,150px);margin-top:14px;gap:12px}.card h2{font-size:29px}.forest .hero-copy{width:86%}.forest .wash{background:linear-gradient(transparent,#072d22df)}.forest .ornament{justify-content:center}.characters .hero-copy{padding:15px}.village .wash{background:linear-gradient(transparent,#edf5e9ed 75%)}footer{letter-spacing:0;gap:8px}footer>span span{display:none}footer p{font-size:10px}dialog{padding:35px 25px}dialog h2{font-size:39px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}.motes{display:none}}
/* Foreground art is separate from scenery and interface. */
.portrait-layer{position:absolute;inset:0;pointer-events:none;z-index:1;will-change:transform}.portrait-layer[hidden]{display:none}.portrait-float{position:absolute;inset:0}.portrait{position:absolute;height:111%;width:auto;max-width:none;bottom:-6%;left:-31%;filter:drop-shadow(12px 12px 16px #19342435)}.hero-copy{z-index:3}.motes{z-index:2}.scene-index,.scene-caption{z-index:3}.home .wash{background:linear-gradient(90deg,#f3f8ed00 22%,#eaf4e7b0 65%,#e6f3e6cc)}.characters .wash{background:linear-gradient(90deg,#b4d5c142,#e6f4dfef 80%)}.characters .scene-art{filter:blur(3px)}.characters .hero-copy{background:transparent}.characters .portrait{height:117%;left:-29%;bottom:-10%}.character-label{font-size:11px;letter-spacing:2px;color:#44616a;margin:18px 0}.characters-card{background:linear-gradient(115deg,#1e575e,#8fb8a3)}.characters-card img.character-thumb{width:120%;height:180%;object-fit:contain;left:-15%;top:-10%;object-position:center}.characters-card:hover img.character-thumb{transform:scale(1.04)}.card-kicker{font-size:12px;letter-spacing:1.4px}.rail-button:hover{background:#ffffff12}.gold-button{position:relative;overflow:hidden}.gold-button:after{content:'';position:absolute;inset:-70% auto -70% -50%;width:25%;background:linear-gradient(90deg,transparent,#fff8,transparent);transform:rotate(20deg);transition:left .7s}.gold-button:hover:after{left:130%}.hero-copy .description{max-width:480px;margin-left:auto;margin-right:auto}.forest .description{margin-left:0}.forest .ornament{opacity:.6}.village .hero-copy{text-align:left;width:43%}.village .ornament{justify-content:flex-start}.village .description{margin-left:0}.stage.village .scene-art img{object-position:35% 60%}.stage.village .wash{background:linear-gradient(90deg,transparent 15%,#ecf5e5e8 95%)}
@media(max-width:760px){.portrait{height:90%;bottom:10%;left:-102%}.home .wash{background:linear-gradient(transparent 15%,#edf5e9ee 90%)}.hero-copy{background:linear-gradient(transparent,#edf5e9d9 45%);border-radius:20px}.home .portrait-layer{z-index:1}.home .hero-copy{bottom:10px}.hero-copy h1{font-size:60px}.hero-copy .description{font-size:22px}.characters .portrait{height:93%;bottom:9%;left:-107%}.characters .hero-copy{background:linear-gradient(transparent,#edf5e9ee 40%)}.characters .wash{background:linear-gradient(transparent,#e8f4e4cc)}.forest .hero-copy{background:none}.village .hero-copy{width:86%;text-align:center}.village .ornament{justify-content:center}.village .description{margin-left:auto}.character-label{font-size:10px}.characters-card img.character-thumb{height:220%;top:-15%;left:-22%}}
.portrait{mask-image:linear-gradient(90deg,#000 0%,#000 85%,transparent 100%)}
@media(min-width:761px){.characters-card img.character-thumb{height:270%;width:155%;left:-33%;top:-22%}}
/* Quiet navigation: one icon family, no ornamental badges. */
aside{background:#173944e8;padding:30px 0;gap:8px;backdrop-filter:blur(16px)}
.rail-button{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;min-height:86px;padding:17px 4px;border:0;border-radius:0;color:#c1cdd0;box-shadow:none;transition:color .2s,background .2s}
.rail-button svg{width:23px;height:23px;flex-shrink:0}
.rail-button small{margin:0;font-family:'Manrope',sans-serif;font-size:12px;font-weight:500;letter-spacing:.15px;line-height:1.4}
.rail-button:before{content:'';position:absolute;left:0;top:25%;bottom:25%;width:2px;border-radius:2px;background:transparent;transition:background .2s}
.rail-button.active{background:#ffffff06;border:0;box-shadow:none;color:#efdcac}
.rail-button.active:before{background:#dfc88b}
.rail-button:hover{background:#ffffff0c;color:#fff3d2}
.rail-button:focus-visible{outline:2px solid #dfc88b;outline-offset:-5px;border-radius:6px}
@media(max-height:700px) and (min-width:761px){aside{padding:20px 0}.rail-button{min-height:72px;padding:12px 4px;gap:7px}.rail-button svg{width:21px;height:21px}}
/* Header destinations and the Home section rail share one navigation model. */
@media(max-width:760px){header{flex-wrap:wrap;gap:2px;padding:12px 0;min-height:110px}header nav{width:100%;margin:0;justify-content:space-between;gap:10px}header nav button{font-size:12px;padding:10px 0;white-space:nowrap}.hero{flex-direction:column}.hero>aside{display:flex;flex-direction:row;width:100%;min-width:0;flex:0 0 57px;padding:0 6px;gap:0;border-right:0;border-bottom:1px solid #ffffff40}.hero>aside .rail-button{min-height:56px;padding:7px 3px;gap:4px}.hero>aside .rail-button svg{width:18px;height:18px}.hero>aside .rail-button small{font-size:11px}.hero>aside .rail-button:before{left:25%;right:25%;width:auto;height:2px;top:auto;bottom:0}.hero>.stage{width:100%;min-height:0}}
