:root{--ivory:#eeeadd;--ink:#111310;--green:#173f3d;--blue:#0c2428;--red:#bd382e;--line:rgba(238,234,221,.22);--serif:'Songti SC','STSong','SimSun',serif;--sans:'PingFang SC','Microsoft YaHei','Helvetica Neue',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--ivory);color:var(--ink);font-family:var(--sans);overflow-x:hidden}body.menu-open{overflow:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:100%;object-fit:cover}button{font:inherit}.grain{position:fixed;inset:0;pointer-events:none;z-index:99;opacity:.06;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='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.8'/%3E%3C/svg%3E")}.cursor{position:fixed;width:12px;height:12px;border:1px solid #fff;border-radius:50%;z-index:100;pointer-events:none;mix-blend-mode:difference;transform:translate(-50%,-50%);transition:width .2s,height .2s}.cursor.over{width:42px;height:42px}
.nav{position:fixed;z-index:50;inset:0 0 auto;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:24px 42px;color:white;transition:background .4s,color .4s,padding .4s}.nav.scrolled{padding:14px 42px;background:rgba(12,36,40,.91);backdrop-filter:blur(12px)}.brand{display:flex;align-items:center;gap:12px;width:max-content}.brand span{font-family:var(--serif);font-size:24px;letter-spacing:.16em}.brand small{font-size:8px;letter-spacing:.28em}.nav-links{display:flex;gap:34px;font-size:12px;letter-spacing:.14em}.nav-links a{position:relative}.nav-links a:after{content:'';position:absolute;left:0;right:100%;bottom:-7px;height:1px;background:currentColor;transition:right .35s}.nav-links a:hover:after{right:0}.nav-index{justify-self:end;text-align:right;font-size:8px;line-height:1.6;letter-spacing:.15em}.menu-btn{display:none;background:none;border:0;color:inherit}
.hero{height:100svh;min-height:720px;position:relative;color:white;overflow:hidden}.hero-media{position:absolute;inset:-8%;will-change:transform}.hero-media img{filter:saturate(.72) contrast(1.06)}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(6,16,18,.75),rgba(6,16,18,.12) 66%),linear-gradient(0deg,rgba(6,16,18,.62),transparent 50%)}.hero-copy{position:absolute;left:10vw;top:20%;z-index:2}.eyebrow,.section-kicker{font-size:10px;letter-spacing:.28em;font-weight:500}.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(55px,7.3vw,118px);line-height:1.04;letter-spacing:-.04em;margin:40px 0}.hero h1 span{display:block}.hero h1 span:nth-child(2){margin-left:10vw}.hero h1 span:nth-child(3){margin-left:27vw;color:#e7c9ae}.hero-lead{font-family:var(--serif);font-size:15px;line-height:2;letter-spacing:.08em;margin-left:4px}.scroll-note{position:absolute;bottom:38px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;font-size:8px;letter-spacing:.22em;writing-mode:vertical-rl}.scroll-note i{display:block;width:1px;height:44px;background:rgba(255,255,255,.55);animation:scroll 1.8s infinite}.chapter-no{position:absolute;right:42px;bottom:38px;font-family:var(--serif);font-size:10px;line-height:1.7;text-align:right}.chapter-no b{font-size:30px;font-weight:400}@keyframes scroll{0%{transform:scaleY(0);transform-origin:top}45%{transform:scaleY(1);transform-origin:top}55%{transform:scaleY(1);transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.section-pad{padding:120px 9vw}.prologue{position:relative;min-height:130vh;overflow:hidden}.steam{position:absolute;right:-7vw;top:-14vh;width:45vw;height:70vh;filter:blur(55px);opacity:.28}.steam i{position:absolute;width:50%;height:70%;border-radius:48% 52% 62% 38%;background:#fff;animation:steam 10s ease-in-out infinite}.steam i:nth-child(2){left:30%;top:12%;animation-delay:-3s}.steam i:nth-child(3){left:55%;top:-8%;animation-delay:-6s}@keyframes steam{50%{transform:translate(8%,-13%) rotate(18deg) scale(.8,1.2)}}.section-kicker{padding-bottom:24px;border-bottom:1px solid rgba(17,19,16,.25)}.prologue-grid{display:grid;grid-template-columns:1.2fr .65fr;gap:10vw;margin-top:80px;align-items:end}.display{font:400 clamp(48px,6vw,96px)/1.16 var(--serif);letter-spacing:-.045em;margin:0}.prologue-text{font-family:var(--serif);font-size:16px;line-height:2;max-width:480px}.prologue-text p+ p{margin-top:30px}.river-band{height:72vh;margin:140px -9vw 0;position:relative;overflow:hidden}.river-band img{object-position:50% 40%;transform:scale(1.08)}.river-band:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(12,36,40,.55),transparent 55%)}.river-band span{position:absolute;z-index:2;bottom:32px;left:9vw;color:#fff;font-size:9px;letter-spacing:.28em}
.dark{background:var(--blue);color:var(--ivory)}.dark .section-kicker{border-color:var(--line)}.chapter-head .display{margin-top:56px}.window-story{min-height:100vh;position:relative;margin:0 7vw;display:flex;align-items:center}.window-image{position:absolute;inset:8% 34% 8% 0;margin:0;overflow:hidden;clip-path:inset(0 0 0 0)}.window-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,var(--blue))}.window-grid{position:absolute;inset:8% 34% 8% 0;background:linear-gradient(90deg,transparent 47.5%,rgba(238,234,221,.45) 48%,rgba(238,234,221,.45) 48.5%,transparent 49%),linear-gradient(0deg,transparent 47.5%,rgba(238,234,221,.42) 48%,rgba(238,234,221,.42) 48.5%,transparent 49%);pointer-events:none}.story-copy{position:relative;margin-left:58%;max-width:490px}.story-copy span,.culture-copy span{font-size:9px;letter-spacing:.22em;color:#adbdad}.story-copy h3{font:400 clamp(40px,5vw,76px)/1.24 var(--serif);margin:42px 0}.story-copy p,.culture-copy p{font:400 15px/2 var(--serif);color:#b7c2ba}.culture-strip{display:grid;grid-template-columns:.86fr 1fr;gap:10vw;align-items:center;padding-top:80px;padding-bottom:180px}.culture-image{height:72vh;overflow:hidden}.culture-image img{transition:transform 1.3s}.culture-image:hover img{transform:scale(1.035)}.culture-copy blockquote{font:400 clamp(36px,4.5vw,68px)/1.42 var(--serif);margin:45px 0}
.new-city{height:175vh;background:#071518}.skyline-pin{height:100vh;position:sticky;top:0;overflow:hidden;color:white}.skyline-pin>img{position:absolute;inset:0;filter:saturate(.65) brightness(.72)}.skyline-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(5,16,18,.8),rgba(5,16,18,.05) 70%)}.chapter-head.light{position:relative;z-index:2;width:63%;padding-top:16vh}.chapter-head.light .section-kicker{border-color:rgba(255,255,255,.25)}.chapter-head.light p{max-width:450px;margin-top:40px;font:15px/2 var(--serif)}.tower-mark{position:absolute;right:8vw;bottom:8vh;display:flex;align-items:flex-end;gap:16px}.tower-mark b{font:400 70px/1 var(--serif)}.tower-mark span{font-size:8px;line-height:1.7;letter-spacing:.2em}
.taste{padding-top:150px;padding-bottom:170px}.taste-head{display:grid;grid-template-columns:1.35fr .55fr;gap:8vw;margin:70px 0 110px;align-items:end}.taste-head p{font:15px/2 var(--serif)}.taste-stage{display:grid;grid-template-columns:1.12fr .88fr;gap:7vw;align-items:center}.taste-photo{height:75vh;margin:0;overflow:hidden}.taste-photo img{transition:object-position 1s ease,transform 1s ease}.menu-list{border-top:1px solid #aaa89e}.taste-item{width:100%;border:0;border-bottom:1px solid #aaa89e;background:transparent;padding:25px 0;display:grid;grid-template-columns:45px 1fr auto;align-items:center;text-align:left;color:inherit;cursor:pointer;transition:padding .3s,color .3s}.taste-item:hover,.taste-item.active{padding-left:16px;color:var(--red)}.taste-item b,.taste-item em{font-size:9px;font-style:normal;letter-spacing:.15em;font-weight:400}.taste-item span{font:400 30px var(--serif)}
.route{min-height:100vh}.route-head{display:grid;grid-template-columns:1fr auto;align-items:end;margin:60px 0}.route-tabs{display:flex;gap:8px}.route-tabs button{color:var(--ivory);background:transparent;border:1px solid var(--line);border-radius:50%;width:62px;height:62px;cursor:pointer;transition:.3s}.route-tabs button.active,.route-tabs button:hover{background:var(--ivory);color:var(--blue)}.map-wrap{position:relative}.river-map{width:100%;height:auto;overflow:visible}.river-bg,.river-line{fill:none;stroke-width:2}.river-bg{stroke:rgba(238,234,221,.14);stroke-width:14}.river-line{stroke:#7f9d92;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 2s ease}.map-wrap.visible .river-line{stroke-dashoffset:0}.map-points{opacity:0;transition:opacity .5s}.map-points.active{opacity:1}.map-points circle{fill:var(--red);stroke:var(--ivory);stroke-width:2}.route-copy{display:none;border-top:1px solid var(--line);padding-top:25px;grid-template-columns:110px 1fr 1fr;gap:5vw;align-items:start}.route-copy.active{display:grid}.route-copy span{font-size:10px;letter-spacing:.2em}.route-copy b{font:400 22px/1.6 var(--serif)}.route-copy p{margin:0;font:13px/1.9 var(--serif);color:#9eaaa5}
.night{height:110vh;min-height:780px;position:relative;color:white;overflow:hidden}.night>img{position:absolute;inset:0;filter:saturate(.65) brightness(.52);object-position:50% 52%;transform:scale(1.04)}.night:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,rgba(4,10,15,.65),transparent)}.night-copy{position:absolute;z-index:2;left:9vw;top:20%;width:min(700px,80vw)}.night-copy .section-kicker{border-color:rgba(255,255,255,.25)}.night-copy h2{font:400 clamp(55px,7vw,105px)/1.18 var(--serif);letter-spacing:-.045em}.magnetic{width:210px;height:210px;border:1px solid rgba(255,255,255,.5);border-radius:50%;display:flex;align-items:center;justify-content:center;gap:28px;font-size:12px;letter-spacing:.14em;transition:background .4s,color .4s,transform .2s}.magnetic:hover{background:var(--ivory);color:var(--blue)}.magnetic i{font-style:normal;font-size:20px}.closing{position:absolute;z-index:2;bottom:35px;right:4vw;writing-mode:vertical-rl;font:13px/2 var(--serif);letter-spacing:.2em}footer{background:#071719;color:#cbd0c8;display:grid;grid-template-columns:1fr 1fr auto;gap:40px;align-items:end;padding:70px 5vw;font-size:10px;letter-spacing:.14em}footer p{line-height:2;margin:0}footer>a{border-bottom:1px solid;padding-bottom:6px}footer>small{grid-column:1/-1;opacity:.45;font-size:8px}
.reveal{opacity:0;transform:translateY(50px);transition:opacity 1s ease,transform 1s cubic-bezier(.2,.7,.2,1)}.reveal.visible{opacity:1;transform:none}
@media(max-width:800px){.cursor{display:none}.nav{padding:20px}.nav.scrolled{padding:15px 20px}.nav-index,.nav-links{display:none}.nav{grid-template-columns:1fr auto}.menu-btn{display:flex;flex-direction:column;gap:7px;padding:10px}.menu-btn i{display:block;width:24px;height:1px;background:currentColor;transition:.3s}.menu-open .nav-links{display:flex;position:fixed;inset:0;background:var(--blue);z-index:-1;flex-direction:column;justify-content:center;align-items:center;font:32px var(--serif)}.menu-open .menu-btn i:first-child{transform:translateY(4px) rotate(45deg)}.menu-open .menu-btn i:last-child{transform:translateY(-4px) rotate(-45deg)}.hero{min-height:680px}.hero-media{inset:0}.hero-media img{object-position:58% center}.hero-copy{left:22px;right:22px;top:22%}.hero h1{font-size:clamp(46px,15vw,68px);margin:30px 0}.hero h1 span:nth-child(2){margin-left:0}.hero h1 span:nth-child(3){margin-left:18vw}.hero-lead{font-size:13px}.chapter-no{right:20px}.scroll-note{left:auto;right:22px}.section-pad{padding:90px 22px}.display{font-size:clamp(44px,13vw,66px)}.prologue{min-height:auto}.prologue-grid,.taste-head,.taste-stage,.culture-strip{grid-template-columns:1fr}.prologue-grid{gap:40px;margin-top:55px}.river-band{height:54vh;margin:90px -22px 0}.river-band img{object-position:50% 40%}.chapter-head .display{margin-top:38px}.window-story{min-height:900px;margin:0 22px;align-items:flex-end;padding-bottom:90px}.window-image,.window-grid{inset:20px 0 auto;height:55vh}.window-image:after{background:linear-gradient(0deg,var(--blue),transparent 60%)}.story-copy{margin-left:0;z-index:3}.story-copy h3{font-size:48px}.culture-strip{gap:50px;padding-bottom:110px}.culture-image{height:55vh}.new-city{height:125vh}.chapter-head.light{width:auto;padding:18vh 22px}.chapter-head.light .display{font-size:48px}.tower-mark{bottom:5vh;right:22px}.tower-mark b{font-size:52px}.taste{padding-top:100px}.taste-head{gap:35px;margin:55px 0 70px}.taste-stage{gap:42px}.taste-photo{height:58vh}.route-head{grid-template-columns:1fr;gap:40px}.route-tabs button{width:55px;height:55px}.river-map{height:300px;transform:scale(1.5)}.map-wrap{overflow:hidden;padding-bottom:25px}.route-copy.active{grid-template-columns:1fr;gap:15px;position:relative;background:var(--blue)}.night{height:100svh;min-height:720px}.night>img{object-position:50% center}.night-copy{left:22px;top:18%;width:calc(100% - 44px)}.night-copy h2{font-size:52px}.magnetic{width:160px;height:160px}.closing{display:none}footer{grid-template-columns:1fr;align-items:start}footer>small{grid-column:auto}}
.gate-sequence{height:310vh;position:relative;background:#071719}.gate-stage{height:100vh;position:sticky;top:0;overflow:hidden;perspective:1600px;transform-style:preserve-3d}.gate-room{position:absolute;inset:0;overflow:hidden;transform:scale(1.12)}.gate-room img{filter:saturate(.62) brightness(.54);transform:scale(1.08)}.gate-light{position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(236,223,183,.12),rgba(5,20,21,.58) 65%)}.gate-door{position:absolute;top:0;bottom:0;width:50.2%;z-index:3;transform-style:preserve-3d;will-change:transform}.gate-left{left:0;transform-origin:left center}.gate-right{right:0;transform-origin:right center}.door-surface{position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.26),transparent 20% 80%,rgba(0,0,0,.33)),linear-gradient(#2a403c,#102c2c);border:clamp(18px,3vw,52px) solid #112d2c;box-shadow:inset 0 0 0 2px rgba(228,218,178,.13),0 0 80px rgba(0,0,0,.55);display:flex;justify-content:space-evenly;align-items:stretch;padding:8vh 3vw}.door-surface:before,.door-surface:after{content:'';position:absolute;left:3%;right:3%;height:6.5%;background:#173534;border:1px solid rgba(229,220,187,.12);box-shadow:0 8px 18px rgba(0,0,0,.25)}.door-surface:before{top:20%}.door-surface:after{bottom:20%}.door-surface i{display:block;width:4px;background:linear-gradient(90deg,#0a1d1e,#63817a 45%,#102728);box-shadow:10px 0 #173a38,20px 0 #173a38,30px 0 #173a38;opacity:.92}.door-ring{position:absolute;top:50%;width:34px;height:34px;border:4px solid #8d7652;border-radius:50%;filter:drop-shadow(0 5px 4px rgba(0,0,0,.35))}.gate-left .door-ring{right:5.5%}.gate-right .door-ring{left:5.5%}.gate-caption{position:absolute;z-index:2;left:8vw;bottom:12vh;color:#fff;max-width:650px;text-shadow:0 2px 25px #000;opacity:0;transform:translateY(50px)}.gate-caption>span{font-size:9px;letter-spacing:.28em}.gate-caption h3{font:400 clamp(46px,6vw,92px)/1.2 var(--serif);margin:22px 0}.gate-caption p{font-size:9px;letter-spacing:.22em}.gate-progress{position:absolute;z-index:5;right:3vw;top:20vh;height:58vh;display:flex;flex-direction:column;align-items:center;gap:14px;font-size:9px}.gate-progress:before{content:'';height:100%;width:1px;background:rgba(255,255,255,.2);position:absolute;top:0}.gate-progress i{display:block;position:relative;width:2px;height:0;background:#d7c298;will-change:height}.gate-progress span{margin-top:auto}.kapok-transition{height:160vh;position:relative;background:var(--ivory);overflow:hidden;color:var(--ink)}.kapok-copy{position:absolute;z-index:2;left:9vw;top:22vh}.kapok-copy span{font-size:9px;letter-spacing:.25em}.kapok-copy p{font:400 clamp(34px,4vw,62px)/1.45 var(--serif)}.kapok{position:sticky;top:0;margin-left:48vw;width:58vw;height:100vh;overflow:visible;fill:none;stroke:var(--red);stroke-width:2;transform-origin:center}.kapok-outer,.kapok-inner{transform-origin:201px 202px}.kapok-inner{opacity:.64}.kapok circle{fill:var(--ivory)}.kapok .kapok-core{fill:var(--red)}.kapok-line{position:absolute;left:0;right:0;bottom:0;height:1px;background:#bcb7aa;transform-origin:left;transform:scaleX(0)}
.taste-photo{position:relative;background:#c8b895}.taste-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(34,27,18,.18),transparent 48%);pointer-events:none}.taste-photo img{transform:scale(1.06)}.tea-steam{position:absolute;z-index:2;inset:-12% 0 0;width:100%;height:112%;pointer-events:none;overflow:visible}.steam-path{fill:none;stroke:rgba(255,255,255,.64);stroke-width:18;stroke-linecap:round;stroke-dasharray:130 50;opacity:0;mix-blend-mode:screen}.steam-word{position:absolute;z-index:3;left:30px;bottom:25px;color:#fff;display:flex;align-items:flex-end;gap:12px;text-shadow:0 3px 18px rgba(0,0,0,.5)}.steam-word span{font:400 70px/1 var(--serif)}.steam-word small{font-size:8px;letter-spacing:.22em;padding-bottom:8px}
@media(max-width:800px){.gate-sequence{height:230vh}.gate-stage{perspective:950px}.door-surface{border-width:18px;padding:10vh 7vw}.door-surface i{width:2px;box-shadow:7px 0 #173a38,14px 0 #173a38}.gate-caption{left:22px;right:22px;bottom:14vh}.gate-caption h3{font-size:46px}.gate-progress{right:14px}.kapok-transition{height:125vh}.kapok-copy{left:22px;top:14vh}.kapok-copy p{font-size:34px}.kapok{width:105vw;margin-left:24vw;opacity:.75}.steam-word span{font-size:54px}}
.motion-toggle{color:inherit;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:5px 9px;font-size:7px;letter-spacing:.14em;cursor:pointer}.nav-index{display:flex;align-items:center;gap:14px}.nav-index span{text-align:right}.motion-reduced .steam-path{display:none}.motion-reduced .cursor{display:none}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.steam-path{display:none}}

/* CINEMATIC DEPTH SYSTEM --------------------------------------------------- */
.atmosphere-canvas{position:fixed;inset:0;width:100%;height:100%;z-index:8;pointer-events:none;opacity:.42;mix-blend-mode:screen;will-change:opacity}
.cinema-frame{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden;--speed-fx:0}
.letterbox{position:absolute;left:0;width:100%;height:0;background:#050d0f;will-change:height}
.letterbox-top{top:0}.letterbox-bottom{bottom:0}
.film-veil{position:absolute;inset:-10%;background:linear-gradient(104deg,transparent 18%,rgba(226,218,190,.16) 37%,rgba(4,13,15,.93) 49%,rgba(4,13,15,.96) 54%,transparent 74%);transform:translateX(-125%) skewX(-8deg);will-change:transform;mix-blend-mode:multiply}
.velocity-streak{position:absolute;inset:-20%;opacity:calc(var(--speed-fx) * .28);background:repeating-linear-gradient(96deg,transparent 0 5vw,rgba(224,237,229,.16) 5.2vw 5.35vw,transparent 5.6vw 11vw);transform:translate3d(calc(var(--speed-fx) * -2vw),0,0) skewX(-10deg);filter:blur(calc(2px + var(--speed-fx) * 8px));mix-blend-mode:screen;will-change:opacity,transform,filter}
.lens-bloom{position:absolute;left:-15vw;top:12vh;width:65vw;height:30vh;border-radius:50%;opacity:0;background:radial-gradient(ellipse,rgba(226,220,184,.21),rgba(134,189,177,.07) 38%,transparent 70%);filter:blur(28px);mix-blend-mode:screen;will-change:transform,opacity}

.horizon-transition{height:330vh;position:relative;background:#061416;color:#f3eee2}.horizon-stage{position:sticky;top:0;height:100vh;overflow:hidden;perspective:1200px;transform-style:preserve-3d;background:#071719}.horizon-backdrop{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 48%,#517c75 0,#173b3e 18%,#071719 55%,#02080a 100%);transform:scale(1.2)}
.horizon-plane{position:absolute;inset:-9%;overflow:hidden;transform-style:preserve-3d;will-change:transform,opacity,clip-path,filter}.horizon-plane img{filter:saturate(.58) contrast(1.12) brightness(.58);will-change:transform}.horizon-far{clip-path:polygon(36% 28%,64% 28%,78% 71%,22% 71%);opacity:.6}.horizon-mid{clip-path:polygon(25% 15%,75% 15%,91% 84%,9% 84%);opacity:.68}.horizon-near{clip-path:polygon(0 0,100% 0,100% 100%,0 100%);opacity:.72}.horizon-near:after,.horizon-mid:after,.horizon-far:after{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,transparent 0 22%,rgba(3,13,15,.2) 46%,rgba(2,7,9,.88) 88%)}
.horizon-water{position:absolute;left:-15%;right:-15%;bottom:-8%;height:49%;background:repeating-linear-gradient(176deg,rgba(184,220,211,.16) 0 1px,transparent 2px 14px),linear-gradient(0deg,rgba(2,7,10,.93),rgba(9,42,48,.24));transform:perspective(700px) rotateX(67deg);transform-origin:bottom;filter:blur(.4px);opacity:.82;will-change:background-position,transform}
.horizon-vanish{position:absolute;left:50%;top:48%;width:8px;height:8px;border-radius:50%;background:#e4d8ad;box-shadow:0 0 28px 8px rgba(226,220,177,.58),0 0 110px 40px rgba(114,181,165,.14);transform:translate(-50%,-50%);will-change:transform,opacity}
.horizon-vanish:before,.horizon-vanish:after{content:'';position:absolute;top:50%;right:50%;width:80vw;height:1px;background:linear-gradient(90deg,transparent,rgba(232,224,191,.55));transform-origin:right}.horizon-vanish:after{right:auto;left:50%;transform:scaleX(-1);transform-origin:left}
.horizon-copy{position:absolute;z-index:4;left:9vw;bottom:11vh;max-width:780px;text-shadow:0 3px 32px #000;will-change:transform,opacity,filter}.horizon-copy span{font-size:9px;letter-spacing:.32em}.horizon-copy h2{font:400 clamp(48px,6vw,94px)/1.16 var(--serif);letter-spacing:-.045em;margin:24px 0 0}

/* richer physical light, shadow and material response */
.gate-room:before{content:'';position:absolute;z-index:2;left:46%;top:-15%;width:19%;height:130%;background:linear-gradient(90deg,transparent,rgba(238,224,185,.32),transparent);filter:blur(22px);transform:perspective(500px) rotate(7deg) scaleX(.22);transform-origin:top;opacity:.12;mix-blend-mode:screen;will-change:transform,opacity}
.gate-door:after{content:'';position:absolute;inset:0;box-shadow:0 0 120px 42px rgba(0,0,0,.82);opacity:.7;transition:opacity .4s}.gate-left:after{box-shadow:42px 0 90px 20px rgba(0,0,0,.78)}.gate-right:after{box-shadow:-42px 0 90px 20px rgba(0,0,0,.78)}
.door-surface{background:linear-gradient(102deg,rgba(255,255,255,.035),transparent 18% 71%,rgba(0,0,0,.3)),repeating-linear-gradient(89deg,#142f2e 0 18px,#0e2727 20px 22px,#294744 24px 25px);backface-visibility:hidden}.door-surface:after{filter:drop-shadow(0 14px 10px rgba(0,0,0,.4))}
.kapok{filter:drop-shadow(0 22px 35px rgba(98,28,21,.18))}.kapok-outer{fill:rgba(189,56,46,.045);stroke-width:2.2}.kapok-inner{fill:rgba(189,56,46,.12);stroke-width:1.4}.kapok path{vector-effect:non-scaling-stroke;will-change:transform,opacity}
.taste-photo{box-shadow:0 40px 100px rgba(39,28,15,.18)}.taste-photo:before{content:'';position:absolute;z-index:2;left:-25%;right:-25%;bottom:-10%;height:42%;background:radial-gradient(ellipse,rgba(237,221,180,.24),transparent 62%);filter:blur(24px);mix-blend-mode:screen;animation:heatPulse 4.8s ease-in-out infinite}.steam-path{stroke-width:24;stroke-dasharray:155 75;filter:drop-shadow(0 0 10px rgba(255,255,255,.28))}@keyframes heatPulse{50%{transform:translateY(-7%) scale(1.08);opacity:.62}}

.hero-media:after,.skyline-pin:after,.night:before{content:'';position:absolute;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 46%,transparent 35%,rgba(3,10,12,.52) 100%);z-index:1}.hero-media img,.skyline-pin>img,.night>img,.river-band img,.window-image img,.culture-image img,.taste-photo img{will-change:transform,filter}.display{will-change:transform,opacity,filter}.cinema-active .grain{opacity:.085}

@media(max-width:800px){
  .atmosphere-canvas{opacity:.28}.cinema-frame{z-index:48}.horizon-transition{height:220vh}.horizon-stage{perspective:750px}.horizon-copy{left:22px;right:22px;bottom:12vh}.horizon-copy h2{font-size:46px}.horizon-near{inset:-3%;clip-path:polygon(0 0,100% 0,100% 100%,0 100%)}.horizon-mid{clip-path:polygon(17% 15%,83% 15%,98% 86%,2% 86%)}.horizon-far{clip-path:polygon(29% 28%,71% 28%,86% 73%,14% 73%)}.horizon-plane img{object-position:center}.horizon-water{height:42%}.velocity-streak{display:none}.gate-room:before{width:34%;left:39%}
}
.motion-reduced .atmosphere-canvas,.motion-reduced .cinema-frame{display:none}.motion-reduced .horizon-transition{height:100vh}.motion-reduced .horizon-stage{position:relative}.motion-reduced .horizon-mid,.motion-reduced .horizon-far{display:none}
.gate-stage{--door-shadow:.7;--gate-light:.12;--gate-light-scale:.22}
.gate-room:before{transform:perspective(500px) rotate(7deg) scaleX(var(--gate-light-scale));opacity:var(--gate-light)}
.gate-door:after{opacity:var(--door-shadow)}
