/* Full-screen logo opening; colours match the site's forest, sage and cream. */
#brand-intro{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;margin:0;border:0;border-radius:0;background:transparent;color:#f5f7ec;overflow:hidden;box-shadow:none;isolation:isolate}
#brand-intro:not([open]){display:none}#brand-intro::backdrop{background:transparent;backdrop-filter:none}
body.intro-playing{overflow:hidden}
.intro-curtain{position:absolute;top:0;bottom:0;width:50.1%;background:#19382b;z-index:-2;will-change:transform}
.intro-curtain-left{left:0;background:linear-gradient(90deg,#19382b,#234a36)}.intro-curtain-right{right:0;background:linear-gradient(90deg,#234a36,#19382b)}
.intro-atmosphere{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 50% 40%,rgba(96,131,106,.22),transparent 63%);pointer-events:none}
.intro-beam{position:absolute;top:-30%;height:140%;width:60%;background:linear-gradient(180deg,rgba(229,237,218,.12),transparent 85%);clip-path:polygon(47% 0,53% 0,100% 100%,0 100%);filter:blur(6px);transform-origin:50% 0}
.intro-beam-left{left:-8%;transform:rotate(-35deg)}.intro-beam-right{right:-8%;transform:rotate(35deg)}
.intro-floor{position:absolute;inset:55% -30% -40%;background-image:linear-gradient(rgba(170,189,166,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(170,189,166,.14) 1px,transparent 1px);background-size:60px 60px;transform:perspective(400px) rotateX(60deg);mask-image:radial-gradient(ellipse,black,transparent 67%)}
.intro-bloom{position:absolute;left:50%;top:41%;width:80vmax;height:80vmax;border-radius:50%;background:radial-gradient(circle,#f5f7ec 0,#d9eea2 2%,rgba(229,237,218,.75) 5%,rgba(170,189,166,.28) 17%,transparent 50%);transform:translate(-50%,-50%) scale(.02);opacity:0;mix-blend-mode:screen}
.intro-ring{position:absolute;left:50%;top:41%;width:65vmin;height:65vmin;border:1px solid rgba(229,237,218,.55);border-radius:50%;transform:translate(-50%,-50%) scale(.05);opacity:0;box-shadow:0 0 16px rgba(170,189,166,.1),inset 0 0 16px rgba(170,189,166,.1)}
.intro-ring-two{border-style:dashed}.intro-ring-three{width:90vmin;height:90vmin;border-color:rgba(229,237,218,.22)}
.intro-particles{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.intro-brand{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:6%;transform:translateY(-2%);pointer-events:none}
.intro-emblem{position:relative;color:#e5edda;filter:drop-shadow(0 0 20px rgba(229,237,218,.2))}
.intro-emblem::before{content:'';position:absolute;inset:1%;border:1px solid rgba(170,189,166,.28);border-radius:50%;transform:scale(1.3)}
.intro-emblem .buddha-mark{width:clamp(105px,16vw,210px);height:clamp(105px,16vw,210px)}
.intro-emblem svg :is(path,circle){stroke-dasharray:220;stroke-dashoffset:220}
.intro-name{font-family:var(--sans);font-size:clamp(46px,7.9vw,128px);font-weight:700;line-height:1.06;letter-spacing:-.065em;margin:32px 0 23px;color:#f5f7ec;text-shadow:0 2px 24px rgba(229,237,218,.1)}
.intro-name>span{display:inline-block}.intro-name i{font-style:normal;font-weight:400;color:#aabda6}
.intro-rule{width:80px;height:1px;background:#aabda6}
#brand-intro .intro-brand p{font-size:11px;letter-spacing:.36em;text-transform:uppercase;line-height:1.8;color:#e5edda;margin:23px 0 0}
.intro-skip{position:absolute;z-index:5;right:4%;top:30px;min-height:44px;padding:10px 17px;border:1px solid rgba(170,189,166,.65);border-radius:5px;color:#f5f7ec;background:#19382b;font-size:12px;display:flex;align-items:center;gap:24px}
.intro-skip:hover{background:#365544}.intro-skip:focus-visible{outline:2px solid #f5f7ec;outline-offset:5px}
.intro-skip>span{font-size:20px}
.intro-progress{position:absolute;bottom:32px;left:50%;width:120px;height:2px;transform:translateX(-50%);background:rgba(170,189,166,.25);overflow:hidden}
.intro-progress>span{display:block;width:100%;height:100%;background:#e5edda;transform:scaleX(0);transform-origin:left}
#brand-intro.is-playing .intro-curtain-left{animation:curtain-left 4.8s cubic-bezier(.76,0,.24,1) both}
#brand-intro.is-playing .intro-curtain-right{animation:curtain-right 4.8s cubic-bezier(.76,0,.24,1) both}
#brand-intro.is-playing .intro-atmosphere,#brand-intro.is-playing .intro-particles{animation:atmosphere-out 4.8s ease both}
#brand-intro.is-playing .intro-beam-left{animation:beam-left 4.8s ease-in-out both}#brand-intro.is-playing .intro-beam-right{animation:beam-right 4.8s ease-in-out both}
#brand-intro.is-playing .intro-bloom{animation:logo-bloom 4.8s ease-out both}
#brand-intro.is-playing .intro-ring{animation:shock-ring 4.8s cubic-bezier(.16,1,.3,1) both}
#brand-intro.is-playing .intro-ring-two{animation-delay:.1s}#brand-intro.is-playing .intro-ring-three{animation-delay:.2s}
#brand-intro.is-playing .intro-emblem svg :is(path,circle){animation:mark-draw 1.7s ease-out both}
#brand-intro.is-playing .intro-brand{animation:brand-reveal 4.8s ease both}
#brand-intro.is-playing .intro-name{animation:name-reveal 4.8s cubic-bezier(.16,1,.3,1) both}
#brand-intro.is-playing .intro-rule,#brand-intro.is-playing .intro-brand p{animation:tagline-reveal 4.8s ease both}
#brand-intro.is-playing .intro-progress>span{animation:intro-progress 4.8s linear both}
.intro-replay{display:inline-flex;align-items:center;gap:9px;padding:13px 0;font-size:12px;color:#365544;min-height:44px;margin-left:24px;border-bottom:1px solid #aabda6}.intro-replay[hidden]{display:none}.intro-replay>span{font-size:22px;line-height:1}.intro-replay:hover{color:#19382b}
@keyframes curtain-left{0%,79%{transform:translateX(0)}100%{transform:translateX(-101%)}}
@keyframes curtain-right{0%,79%{transform:translateX(0)}100%{transform:translateX(101%)}}
@keyframes atmosphere-out{0%,76%{opacity:1}94%,100%{opacity:0}}
@keyframes beam-left{0%{transform:rotate(-35deg);opacity:0}20%{opacity:1}48%,77%{transform:rotate(22deg);opacity:.65}100%{transform:rotate(30deg);opacity:0}}
@keyframes beam-right{0%{transform:rotate(35deg);opacity:0}20%{opacity:1}48%,77%{transform:rotate(-22deg);opacity:.65}100%{transform:rotate(-30deg);opacity:0}}
@keyframes logo-bloom{0%,20%{opacity:0;transform:translate(-50%,-50%) scale(.02)}26%{opacity:.72;transform:translate(-50%,-50%) scale(.7)}47%{opacity:.15;transform:translate(-50%,-50%) scale(1.6)}70%,100%{opacity:0;transform:translate(-50%,-50%) scale(1.9)}}
@keyframes shock-ring{0%,22%{opacity:0;transform:translate(-50%,-50%) scale(.06)}24%{opacity:.8}57%{opacity:.22;transform:translate(-50%,-50%) scale(1.7)}80%,100%{opacity:0;transform:translate(-50%,-50%) scale(2.1)}}
@keyframes mark-draw{0%{stroke-dashoffset:220}100%{stroke-dashoffset:0}}
@keyframes brand-reveal{0%{opacity:.2;transform:translateY(-2%) scale(.8);filter:blur(0)}27%{opacity:1;transform:translateY(-2%) scale(1.02);filter:blur(0)}43%,78%{opacity:1;transform:translateY(-2%) scale(1);filter:blur(0)}92%,100%{opacity:0;transform:translateY(-2%) scale(1.1);filter:blur(8px)}}
@keyframes name-reveal{0%,18%{opacity:0;transform:translateY(28px);filter:blur(10px)}37%,100%{opacity:1;transform:translateY(0);filter:blur(0)}}
@keyframes tagline-reveal{0%,30%{opacity:0;transform:translateY(12px)}47%,100%{opacity:1;transform:translateY(0)}}
@keyframes intro-progress{to{transform:scaleX(1)}}
@media(max-width:600px){.intro-name{font-size:clamp(43px,12vw,70px);line-height:1.04;margin-top:30px;letter-spacing:-.065em}.intro-name>span{display:block}.intro-emblem .buddha-mark{width:140px;height:140px}#brand-intro .intro-brand p{font-size:9px;letter-spacing:.26em}.intro-skip{top:22px;right:6%;font-size:11px}.intro-brand{padding:8%}.intro-progress{bottom:28px}.intro-replay{margin-left:15px;font-size:11px;gap:6px}.home-page .film-hero-actions{flex-wrap:wrap;gap:12px}.home-page .film-hero-actions .intro-replay{margin-left:0}}
@media(prefers-reduced-motion:reduce){#brand-intro,#brand-intro[open],.intro-replay{display:none!important}body.intro-playing{overflow:auto}#brand-intro *{animation:none!important}}
