body[data-page="home"]{background:#14110e}
.home-film{--home-header-height:112px;position:relative;display:flex;flex-direction:column;align-items:center;height:calc(100svh - var(--home-header-height));min-height:280px;background:#14110e;box-sizing:border-box;padding:0 0 env(safe-area-inset-bottom,0px)}
.home-film-frame{position:relative;width:100%;max-width:580px;flex:1;min-height:0;overflow:hidden;background:#14110e}
.home-film video{display:block;width:100%;height:100%;object-fit:contain}
.home-film h1{position:absolute;bottom:14px;left:16px;right:16px;margin:0;text-align:center;color:#fff3d6;font-family:serif;font-size:clamp(23px,5vw,36px);font-weight:600;line-height:1.3;text-shadow:0 2px 3px rgba(24,12,5,.95),0 4px 12px rgba(24,12,5,.85),0 0 24px rgba(24,12,5,.6);z-index:1}
.home-film-frame:after{content:"";position:absolute;inset:70% 0 0;background:linear-gradient(transparent,rgba(15,10,7,.8));pointer-events:none}
.home-film-sound{position:absolute;right:14px;top:14px;z-index:2;border:1px solid #ad906b;border-radius:50%;width:44px;height:44px;background:#20171099;font-size:20px;cursor:pointer}
.home-film-action{flex:0 0 78px;display:flex;width:100%;align-items:center;justify-content:center}
.home-film .home-film-enter{margin:0;min-height:50px;width:min(360px,calc(100% - 48px));justify-content:center;padding:12px 24px}
.home-film-reveal{visibility:hidden;opacity:0;transform:translateY(8px);transition:opacity .45s ease,transform .45s ease}
.home-film.is-ready .home-film-reveal{visibility:visible;opacity:1;transform:translateY(0)}
.home-film-gate{position:absolute;inset:0;z-index:4;display:grid;place-items:center;background:rgba(15,10,7,.48);backdrop-filter:blur(2px)}
.home-film [hidden]{display:none!important}
.home-film-play{position:relative;isolation:isolate;width:58px;height:58px;display:grid;place-items:center;border:1px solid #f5d89b;border-radius:50%;background:radial-gradient(circle at 35% 25%,#f9e6b7,#c79b56 65%,#8d632e);color:#302211;box-shadow:0 0 32px #e6bb6255,inset 0 0 16px #fff1c655;cursor:pointer;font:600 16px/1.2 serif;letter-spacing:.12em;padding:0}
.home-film-play:before,.home-film-play:after,.home-film-ring{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid #efd18e;box-shadow:0 0 12px #e7bc7055;pointer-events:none;animation:home-ring-flow 3.6s ease-out infinite;z-index:-1}
.home-film-play:after{animation-delay:-1.2s}.home-film-ring{animation-delay:-2.4s}
.home-film-play-label{padding-left:.12em}.home-film-play:hover{filter:brightness(1.08)}.home-film-play:focus-visible,.home-film-sound:focus-visible{outline:3px solid #fff0c4;outline-offset:8px}.home-film-play:disabled{cursor:wait}
@keyframes home-ring-flow{0%{transform:scale(.96);opacity:.8}100%{transform:scale(1.85);opacity:0}}
body[data-page="home"] .footer{margin-top:0;padding-top:18px;padding-bottom:18px}body[data-page="home"] .footer>span,body[data-page="home"] .footer>small{display:none}
@media(prefers-reduced-motion:reduce){.home-film-play:before,.home-film-play:after,.home-film-ring{animation:none}.home-film-play:after{transform:scale(1.2);opacity:.3}.home-film-reveal{transition:none;transform:none}}

/* Keep the final invitation anchored to the palm in the video. */
.home-film-frame{flex:none;width:auto;max-width:100%;height:100%;aspect-ratio:3/5;margin-inline:auto}
.home-film h1{bottom:4%;font-size:clamp(21px,4.7vw,36px)}
.home-film-action{position:absolute;top:76%;left:0;width:100%;height:auto;z-index:2}
.home-film .home-film-enter{width:50%;max-width:240px;min-height:44px;padding:9px 12px;font-size:clamp(13px,3vw,18px);gap:10px;border-radius:8px;background:rgba(211,174,113,.94)}
.home-film-enter svg{width:18px;height:18px}
.home-film h1{top:66%;bottom:auto;font-size:clamp(20px,4.2vw,32px)}

body[data-page="home"]{background:#faf7ef;color:#443a2c}
.home-hub{min-height:50svh;display:flex;flex-direction:column;justify-content:center;padding-block:48px}
.home-hub h1{font-size:clamp(30px,6vw,48px);line-height:1.3;margin:8px 0 24px;color:#443a2c}
.home-hub-actions{display:flex;flex-wrap:wrap;gap:16px}
.home-hub-actions .btn{min-height:48px;margin:0}
.home-hub-actions .outline{color:#594b35;border-color:#bba47d}
body[data-page="ziwei"]{background:#14110e}
body[data-page="ziwei"] .footer{margin-top:0;padding-block:18px}
body[data-page="ziwei"] .footer>span,body[data-page="ziwei"] .footer>small{display:none}
