.immersive-page { height:100vh;height:100dvh;overflow:hidden;background:#eadbd6; }
.immersive-page .noise { opacity:.1; }
.immersive-scene { position:relative;height:100vh;height:100dvh;min-height:560px;overflow:hidden;background:#e4d3ce;cursor:grab;touch-action:none;perspective:1600px; }
.immersive-scene.is-dragging { cursor:grabbing; }
.immersive-scene a,.immersive-scene button { cursor:pointer;touch-action:auto; }
.scene-stage { position:absolute;inset:-3%;transform:translate3d(var(--tx,0px),var(--ty,0px),0) rotateY(var(--yaw,0deg)) rotateX(var(--pitch,0deg)) scale(1.075);transform-origin:center;overflow:hidden;filter:saturate(.72) contrast(.93);will-change:transform; }
.scene-depth-canvas { position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none; }
.scene-bg { display:block;position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0; }
.scene-stage:not(.has-bg) .scene-bg { display:none; }
.scene-stage.has-bg .scene-wall,
.scene-stage.has-bg .arch,
.scene-stage.has-bg .window,
.scene-stage.has-bg .steps,
.scene-stage.has-bg .scene-orb,
.scene-stage.has-bg .scene-rock,
.scene-stage.has-bg .contact-slats,
.scene-stage.has-bg .contact-arch,
.scene-stage.has-bg .contact-platform,
.scene-stage.has-bg .contact-chair,
.scene-stage.has-bg .contact-cushion,
.scene-stage.has-bg .contact-table { display:none; }
.scene-stage.has-bg::after { content:"";position:absolute;inset:0;z-index:7;pointer-events:none;background:radial-gradient(circle at 50% 45%,transparent 38%,rgba(70,44,42,.11) 100%); }
.scene-wall { position:absolute;inset:0;background:radial-gradient(circle at 63% 38%,#f3ebe7 0 14%,transparent 37%),linear-gradient(100deg,#c5aba4,#eadbd5 41%,#efe5e1 72%,#cbb6b0); }
.scene-wall::after { content:"";position:absolute;inset:0;background:linear-gradient(115deg,rgba(67,45,41,.2),transparent 35% 68%,rgba(87,60,57,.14)); }
.water-canvas { position:absolute;inset:0;width:100%;height:100%;z-index:8;mix-blend-mode:screen;opacity:.78; }
.water-surface { position:absolute;inset:0;width:100%;height:100%;z-index:8;pointer-events:none; }
.has-live-water .water-canvas { display:none; }

.arch { position:absolute;z-index:2;bottom:19%;width:18%;height:48%;border:44px solid #d6c2bc;border-bottom:0;border-radius:120px 120px 0 0;background:linear-gradient(#d9e0ef,#b9b4dc 38%,#706684);box-shadow:inset 12px 0 20px rgba(66,42,49,.18),18px 0 30px rgba(47,31,33,.16); }
.arch--one { left:-3%; }
.arch--two { left:14%;width:14%;height:41%;bottom:20%; }
.window { position:absolute;z-index:2;background:linear-gradient(#b9c3ed,#f4dfdf 52%,#81718d);box-shadow:inset 10px 0 16px rgba(39,31,57,.15); }
.window--one { width:5%;height:28%;left:58%;top:26%; }
.window--two { width:8%;height:45%;left:69%;top:14%; }
.steps { position:absolute;z-index:4;left:35%;bottom:20%;width:30%;height:27%;transform:perspective(600px) rotateX(4deg); }
.steps i { position:absolute;left:0;bottom:calc(var(--i,0) * 15%);width:100%;height:17%;background:linear-gradient(#eaded9,#cbb8b2);box-shadow:0 10px 10px rgba(65,41,38,.14); }
.steps i:nth-child(1){--i:0}.steps i:nth-child(2){--i:1;width:86%;left:7%}.steps i:nth-child(3){--i:2;width:72%;left:14%}.steps i:nth-child(4){--i:3;width:58%;left:21%}.steps i:nth-child(5){--i:4;width:44%;left:28%}
.scene-orb { position:absolute;z-index:5;left:62%;bottom:29%;width:11vw;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle at 35% 28%,#fff,#ebe3c8 34%,#cbbcb9 72%);box-shadow:0 22px 30px rgba(38,27,25,.2);animation:sceneFloat 5s ease-in-out infinite; }
.scene-rock { position:absolute;z-index:5;bottom:13%;border-radius:55% 45% 48% 52%;background:radial-gradient(circle at 35% 30%,#d9cbc0,#a8988d);box-shadow:0 16px 22px rgba(41,29,26,.2); }
.scene-rock--one { right:17%;width:14vw;height:10vw; }
.scene-rock--two { right:-3%;width:13vw;height:8vw;bottom:4%; }
@keyframes sceneFloat { 50%{transform:translateY(-16px) rotate(5deg)} }

.scene-copy { position:absolute;z-index:15;color:#19191b; }
.scene-copy--home { left:50%;top:49%;transform:translate(calc(-50% + var(--copy-x,0px)),calc(-50% + var(--copy-y,0px)));width:min(980px,90vw);text-align:center; }
.scene-copy--home h1 { margin:0 0 30px;font-weight:400;line-height:1.08;letter-spacing:-.065em; }
.scene-copy--home h1 em { display:block;margin-bottom:12px;font-family:"Times New Roman",Georgia,serif;font-size:clamp(38px,4.5vw,66px);font-style:italic;font-weight:400;letter-spacing:-.055em;white-space:nowrap; }
.scene-copy--home h1 span { display:block;font-size:clamp(60px,7vw,104px);font-weight:600;letter-spacing:-.075em;white-space:nowrap; }
.scene-copy--home .scene-home__description { margin:0 auto 28px;font-size:12px;letter-spacing:.08em;line-height:1.65; }
.scene-home__actions { display:flex;justify-content:center;gap:10px; }
.scene-home__path { display:flex;align-items:center;justify-content:center;gap:10px;width:max-content;max-width:100%;margin:29px auto 0;color:rgba(25,25,27,.62);font-size:10px;letter-spacing:.04em;white-space:nowrap; }
.scene-home__path i { font-style:normal;opacity:.48; }
.text-ripple-canvas { position:absolute;z-index:1;pointer-events:none; }
.has-live-text h1,.has-live-text h1 * { color:transparent;-webkit-text-fill-color:transparent;user-select:none; }
@media (min-width:761px) { .scene-copy--home.has-live-text .scene-home__description { color:transparent;-webkit-text-fill-color:transparent;user-select:none; } }
.scene-cta { display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:999px;background:rgba(255,255,255,.94);font-size:12px;box-shadow:0 8px 25px rgba(0,0,0,.08); }
.scene-cta--primary { background:#19191b;color:#fff; }
.scene-cta--subtle { background:rgba(255,255,255,.38);box-shadow:none;border:1px solid rgba(25,25,27,.25); }
.scene-cta .arrow-icon { font-size:15px;transition:transform .3s ease; }.scene-cta--primary:hover .arrow-icon{transform:translate(3px,3px)}

.scene-bottom { position:absolute;z-index:50;left:22px;right:22px;bottom:20px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;pointer-events:none; }
.scene-bottom > * { pointer-events:auto; }
.scene-bottom .sound-toggle { position:static;opacity:1;transform:none;pointer-events:auto; }
.scene-bottom__left { display:flex;align-items:center;gap:16px; }
.scene-pill { padding:9px 17px;border:1px solid currentColor;border-radius:999px;background:rgba(255,255,255,.22);font-size:11px; }
.scene-world { grid-column:2;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.82);font-size:24px; }
.scene-bottom > span { justify-self:end;font-size:12px; }
.scene-bottom__legal { display:flex;flex-direction:column;align-items:flex-end;gap:4px;white-space:nowrap; }
.scene-bottom__legal a { font-size:10px;opacity:.68;text-decoration:underline;text-underline-offset:2px; }
.scene-drag-hint { position:absolute;z-index:18;left:50%;bottom:82px;transform:translateX(-50%);margin:0;font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.58;animation:dragHint 2s ease-in-out infinite; }
.scene-drag-hint__mobile { display:none; }
@keyframes dragHint { 50%{transform:translate(-50%,5px);opacity:.3} }

.contact-slats { position:absolute;z-index:2;left:0;top:0;width:42%;height:85%;background:repeating-linear-gradient(90deg,#b99e98 0 5px,#eadbd6 5px 25px);box-shadow:24px 0 45px rgba(72,43,42,.17); }
.contact-arch { position:absolute;right:-6%;top:36%;width:15%;height:46%;border:38px solid #cfbbb4;border-bottom:0;border-radius:110px 110px 0 0;background:linear-gradient(#c4c3df,#827789); }
.contact-platform { position:absolute;z-index:4;left:23%;bottom:11%;width:53%;height:22%;background:linear-gradient(160deg,#eaded9,#c9b5af);clip-path:polygon(8% 0,100% 12%,87% 100%,0 74%);box-shadow:0 28px 35px rgba(62,39,36,.22); }
.contact-chair { position:absolute;z-index:6;left:57%;bottom:27%;width:11%;height:19%;border-radius:48% 48% 18% 18%;background:repeating-radial-gradient(ellipse at 50% 0,#c69d9d 0 9px,#b98e8f 10px 17px);box-shadow:0 18px 20px rgba(61,38,38,.18); }
.contact-chair i,.contact-chair b { position:absolute;bottom:-34%;width:3px;height:38%;background:#8b7e7d; }.contact-chair i{left:22%}.contact-chair b{right:22%}
.contact-cushion { position:absolute;z-index:6;bottom:25%;width:10%;height:6%;border-radius:50%;background:radial-gradient(circle at 30% 30%,#d2aaa9,#a77b7d);box-shadow:0 10px 14px rgba(58,36,37,.18); }.contact-cushion--one{left:37%;transform:rotate(-8deg)}.contact-cushion--two{left:43%;width:7%;transform:rotate(9deg)}
.contact-table { position:absolute;z-index:6;left:51%;bottom:30%;width:4%;height:9%;border-top:3px solid #687885;border-left:2px solid #687885; }
.scene-copy--contact { left:27%;top:58%;display:grid;grid-template-columns:auto auto;column-gap:28px;align-items:center; }
.scene-copy--contact { transform:translate3d(var(--copy-x,0px),var(--copy-y,0px),0); }
.scene-copy--contact h1 { grid-column:1;margin:0;font-family:"Times New Roman","Songti SC",serif;font-size:clamp(72px,8vw,120px);font-weight:400;letter-spacing:-.07em;white-space:nowrap; }
.contact-period { display:inline-block;width:.5em; }
.contact-actions { grid-column:2;display:flex;gap:12px; }
.contact-actions a { display:inline-flex;align-items:center;gap:7px;padding:10px 20px;border:1px solid;border-radius:999px;background:rgba(255,255,255,.83);font-size:12px;white-space:nowrap; }
.scene-copy--contact > p { grid-column:1;justify-self:end;align-self:start;margin:10px 0 0;font-size:clamp(14px,1.1vw,18px);line-height:1.45;text-align:right; }
.contact-info { grid-column:2;display:flex;flex-direction:column;align-items:flex-start;align-self:start;gap:9px;margin-top:10px; }
.contact-mail,.contact-wechat { font-size:clamp(24px,2.8vw,38px);line-height:1.12;letter-spacing:-.04em;white-space:nowrap; }
.contact-wechat { margin:0; }
.scene-copy--contact small { grid-column:2;margin-top:18px;font-size:clamp(14px,1.1vw,18px);line-height:1.45;opacity:.65; }
.immersive-page .cursor.is-hovering { transform:translate(-50%,-50%) scale(1.14);background:rgba(25,25,27,.82); }
.immersive-page .cursor.is-on-water { border-color:rgba(255,255,255,.7);background:rgba(255,255,255,.06);backdrop-filter:blur(2px); }
.immersive-page .cursor.is-on-text { border-color:rgba(25,25,27,.42);transform:translate(-50%,-50%) scale(.78); }
@media (prefers-reduced-motion:reduce) {
  .scene-orb,.scene-drag-hint { animation:none; }
  .scene-stage { will-change:auto; }
  .scene-cta .arrow-icon { transition:none; }
}

@media (max-width:760px) {
  .immersive-scene { min-height:0; }
  .scene-stage.has-bg .scene-bg { object-position:center; }
  .arch { border-width:26px;width:35%;height:46%;bottom:16%; }.arch--one{left:-17%}.arch--two{left:12%;width:26%;height:38%}
  .window--one{left:61%;width:10%;height:25%}.window--two{left:78%;width:15%;height:39%}
  .steps{left:32%;width:49%;bottom:18%}.scene-orb{left:64%;bottom:27%;width:25vw}.scene-rock--one{right:6%;width:30vw;height:20vw}.scene-rock--two{display:none}
  .scene-copy--home { top:45%;width:94vw; }.scene-copy--home h1{margin-bottom:22px}.scene-copy--home h1 em{font-size:clamp(19px,5.4vw,29px);white-space:normal;margin-bottom:10px}.scene-copy--home h1 span{font-size:clamp(43px,12vw,60px)}.scene-copy--home .scene-home__description{max-width:330px;font-size:11px;line-height:1.8}.scene-home__actions{gap:8px}.scene-cta{gap:6px;padding:10px 14px}.scene-home__path{gap:7px;margin-top:24px;font-size:9px;letter-spacing:0}
  .scene-bottom { left:16px;right:16px;bottom:15px; }
  .scene-bottom__legal a { width:130px;white-space:normal;text-align:right;line-height:1.15; }
  .scene-bottom .scene-pill { display:none; }
  .scene-drag-hint { bottom:72px;padding:6px 12px;border-radius:999px;background:rgba(238,228,224,.72);font-size:10px;letter-spacing:.02em;opacity:.86;text-transform:none;animation:none; }
  .scene-drag-hint__desktop { display:none; }
  .scene-drag-hint__mobile { display:inline; }
  .contact-slats{width:38%;}.contact-platform{left:11%;width:78%;bottom:12%}.contact-chair{left:58%;width:25%;height:16%;bottom:27%}.contact-cushion{bottom:25%;width:20%}.contact-cushion--one{left:28%}.contact-cushion--two{left:40%;width:14%}.contact-table{left:53%;bottom:29%;}
  .scene-copy--contact { left:18px;right:18px;top:20%;display:block; }.scene-copy--contact h1{font-size:67px}.contact-actions{display:flex;margin:18px 0}.contact-actions a{padding:9px 14px}.scene-copy--contact>p{justify-self:auto;width:100%;font-size:14px;line-height:1.45;text-align:left;margin:0 0 8px}.contact-info{margin-top:16px}.contact-mail,.contact-wechat{font-size:23px}.scene-copy--contact small{display:block;margin-top:12px}
  .water-canvas { opacity:.66; }
  .scene-stage.has-bg .water-canvas { opacity:.24; }
}
