@font-face{font-family:'Yuji Syuku';font-style:normal;font-weight:400;font-display:swap;src:url('assets/yuji-syuku-hero.ttf') format('truetype')}
/* Original photographs stay unretouched. A duplicate uses an alpha mask only to occlude the moving letters. */
.hero.hero-layered{display:block;isolation:isolate;position:relative;min-height:680px;height:calc(100svh - 92px);max-height:1000px;padding:0;background:#142747;color:white;overflow:hidden}.hero.hero-layered:before,.hero.hero-layered:after{content:none!important;animation:none!important}.hero-scene{position:absolute;inset:0;z-index:0;overflow:hidden}.hero-shot{position:absolute;inset:0;overflow:hidden;pointer-events:none}.shot-camera{position:absolute;inset:0;transform:scale(var(--camera-scale,1.045));transform-origin:50% 30%;will-change:transform}.shot-canvas{position:absolute;top:0;left:50%;width:var(--canvas-width,100%);aspect-ratio:3/2;transform:translateX(-50%);isolation:isolate}.shot-background,.shot-person{position:absolute;inset:0;display:block;width:100%;height:100%;max-width:none;object-fit:fill;filter:none;transform:none}.shot-background{z-index:0}.shot-person{z-index:3;mask-image:var(--subject-mask);mask-mode:alpha;-webkit-mask-image:var(--subject-mask);mask-size:100% 100%;-webkit-mask-size:100% 100%;mask-position:center;-webkit-mask-position:center;mask-repeat:no-repeat;-webkit-mask-repeat:no-repeat}.shot-marquee{position:absolute;top:31%;left:0;width:100%;z-index:2;overflow:hidden;pointer-events:none;opacity:0}.shot-ready .shot-marquee{opacity:1}.shot-track{display:flex;width:max-content;will-change:transform}.shot-word{flex:none;display:block;font-family:Arial,Helvetica,sans-serif;font-size:clamp(125px,12vw,220px);line-height:1.05;letter-spacing:-.065em;font-weight:900;white-space:nowrap;color:#eaf1ff}.hero-lower-shade{position:absolute;inset:0;z-index:4;pointer-events:none;background:linear-gradient(180deg,transparent 45%,#0d1d3b30 58%,#0d1d3bd9 83%,#0d1d3b 100%)}.hero-introduction{position:absolute;z-index:5;left:var(--page);top:25px;display:flex;gap:10px}.hero-introduction span{font-size:13px;line-height:1.5;padding:7px 12px;background:#132948c9;border:1px solid #ffffff80;border-radius:3px;font-weight:700;backdrop-filter:blur(7px)}.hero-content{position:absolute;left:var(--page);right:var(--page);bottom:45px;z-index:5;display:flex;align-items:flex-end;justify-content:space-between;gap:30px}.hero-layered .hero-pre{font-size:18px;font-weight:700;letter-spacing:.04em;margin:0 0 13px;text-shadow:0 1px 10px #0e1f39}.hero-layered h1{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;font-size:clamp(42px,4.6vw,72px);font-weight:900;letter-spacing:-.055em;line-height:1.5;margin:0;white-space:normal;text-shadow:0 2px 22px #0d1d3b55}.hero-cta{flex-shrink:0;padding-bottom:7px}.hero-cta .btn{font-size:15px;gap:28px;padding:22px 25px;min-height:62px}.hero-cta p{font-size:12px;letter-spacing:.02em;text-align:center;color:#d3def4;margin:12px 0 0}.header{z-index:50;background:#fff;backdrop-filter:none}.header nav a{font-size:15px}.header .btn{border-radius:4px}.hero-layered+.schedule{border-top:5px solid #3658a0}
@media(max-width:1050px) and (min-width:761px){.hero.hero-layered{min-height:780px}.hero-content{display:block;bottom:45px}.hero-cta{display:flex;align-items:center;gap:25px;margin-top:23px;padding:0}.hero-cta .btn{font-size:14px;padding:17px 22px;min-height:54px}.hero-cta p{font-size:11px;margin:0}.hero-layered h1{font-size:48px}}
@media(max-width:760px){.hero.hero-layered{height:auto;min-height:0;max-height:none;padding:0;display:flex;flex-direction:column}.hero-scene{position:relative;inset:auto;height:auto;aspect-ratio:3/2;flex:none;width:100%;overflow:hidden}.shot-camera{transform-origin:50% 30%}.shot-marquee{top:34%}.shot-word{font-size:90px;letter-spacing:-.06em;line-height:1.1}.hero-introduction{position:relative;left:auto;right:auto;top:auto;gap:7px;margin:0;padding:18px 24px 0;background:#0d1d3b}.hero-introduction span{font-size:11px;padding:5px 8px;background:transparent}.hero-lower-shade{top:calc(66.6667vw - 48px);height:49px;bottom:auto;background:linear-gradient(transparent,#0d1d3b);z-index:4}.hero-content{position:relative;left:auto;right:auto;bottom:auto;display:block;padding:19px 24px 28px;background:#0d1d3b;z-index:5;margin-top:-1px}.hero-layered .hero-pre{font-size:14px;margin:0 0 11px}.hero-layered h1{font-size:clamp(28px,7.6vw,40px);line-height:1.6;letter-spacing:-.055em;white-space:normal}.hero-cta{margin-top:23px;padding:0}.hero-cta .btn{width:100%;font-size:14px;padding:19px 20px;min-height:56px}.hero-cta p{font-size:11px;margin-top:12px}.hero-layered+.schedule{border-top-width:3px}.header nav{display:none}}
@media(prefers-reduced-motion:reduce){.shot-camera{transform:none!important;will-change:auto}.shot-track{will-change:auto}}

/* A native canvas supplies the foreground alpha; no CSS-mask loading dependency. */
.shot-background{z-index:0}.shot-marquee{z-index:2}.shot-person{z-index:3;pointer-events:none}
.brush-word{position:relative;display:inline-block;isolation:isolate;white-space:nowrap;color:inherit}
.brush-stroke{position:absolute;z-index:-1;left:-.045em;bottom:.02em;width:calc(100% + .09em);height:.31em;color:#4c88e8;transform:rotate(-1.1deg);pointer-events:none;filter:none;overflow:visible}
@media(max-width:760px){.brush-stroke{height:.29em;bottom:.035em}}
/* Keep a full-bleed photograph behind the seated composition. The original
   photo and alpha foreground share exactly the same size and position. */
.shot-edge-fill{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;object-position:50% 0;z-index:0;pointer-events:none}
.shot-discussion .shot-canvas,.shot-cafe .shot-canvas{z-index:1}
.shot-discussion .shot-background,.shot-discussion .shot-person,
.shot-cafe .shot-background,.shot-cafe .shot-person{inset:auto;left:3%;top:-22px;width:94%;height:94%}
.shot-discussion .shot-background,.shot-cafe .shot-background{mask-image:linear-gradient(to right,transparent,#000 2%,#000 98%,transparent);-webkit-mask-image:linear-gradient(to right,transparent,#000 2%,#000 98%,transparent)}
@media(max-width:760px){
.shot-discussion .shot-background,.shot-discussion .shot-person,
.shot-cafe .shot-background,.shot-cafe .shot-person{left:2%;top:-10px;width:96%;height:96%}
}

/* Poster typography only: retain the existing photography, palette and CTA. */
.hero-layered .hero-pre{display:table;background:#20201e;color:#fff;padding:5px 12px;margin-bottom:16px;text-shadow:none;letter-spacing:.01em}
.hero-layered h1.poster-copy{display:flex;flex-direction:column;align-items:flex-start;gap:10px;font-size:clamp(36px,4.4vw,68px);line-height:1.3;letter-spacing:-.055em;text-shadow:none}
.hero-layered .poster-line{display:block;width:max-content;max-width:100%;background:#fff;color:#161616;padding:.055em .22em .13em;border:1px solid #20201e;box-shadow:3px 3px 0 #20201e;white-space:nowrap}
@media(max-width:1050px) and (min-width:761px){.hero-layered h1.poster-copy{font-size:clamp(36px,5vw,52px)}}
@media(max-width:760px){.hero-layered .hero-pre{font-size:13px;padding:5px 9px;margin-bottom:16px}.hero-layered h1.poster-copy{font-size:clamp(23px,6.7vw,40px);gap:9px;letter-spacing:-.06em}.hero-layered .poster-line{padding:.08em .2em .15em;box-shadow:2px 2px 0 #20201e}}

/* Shared white lettering is masked against live silhouettes, never photo-faded. */
.hero-continuous-letters{position:absolute;inset:0;z-index:3;width:100%;height:100%;pointer-events:none}
.shot-marquee{display:none!important}

/* Bold solid / outline typography, inspired by the supplied motion reference. */
.hero-content{justify-content:center;text-align:center}
.hero-content>div{min-width:0;max-width:100%}
.hero-layered .hero-pre{display:block;margin:0 auto 21px;padding:0;background:none;color:#fff;font-size:clamp(17px,1.55vw,23px);font-weight:800;letter-spacing:.03em;text-shadow:0 2px 12px #0b193b88}
.hero-layered h1.statement-copy{font-family:'Noto Sans JP','Hiragino Kaku Gothic ProN',sans-serif;font-size:clamp(42px,5.2vw,80px);font-weight:900;letter-spacing:-.065em;line-height:1.4;text-shadow:0 2px 15px #0b193b55;margin:0}
.hero-layered .statement-line{display:block;color:#fff;background:none;border:0;box-shadow:none;padding:0;white-space:nowrap}
.hero-layered .statement-key{color:#8eb4ff;font-style:normal;-webkit-text-stroke:1px #8eb4ff;animation:statement-outline 8s linear infinite}
.hero-introduction{gap:13px}.hero-introduction span{font-size:16px;padding:9px 15px;line-height:1.5;font-weight:800}
@keyframes statement-outline{0%,40%,76%,100%{-webkit-text-fill-color:#8eb4ff}48%,68%{-webkit-text-fill-color:transparent}}
@media(max-width:760px){
 .hero-content{padding:37px 20px 26px}.hero-layered .hero-pre{font-size:clamp(13px,3.8vw,17px);letter-spacing:0;margin-bottom:21px;text-shadow:none}
 .hero-layered h1.statement-copy{font-size:clamp(27px,8.55vw,48px);line-height:1.48;letter-spacing:-.07em;text-shadow:none}
 .hero-layered .statement-key{-webkit-text-stroke:.8px #8eb4ff}
 .hero-introduction{gap:9px;padding:0 18px 28px}.hero-introduction span{font-size:14px;padding:7px 10px;background:#ffffff0b;border:1px solid #8195ba;border-radius:5px}
}
@media(prefers-reduced-motion:reduce){.hero-layered .statement-key{animation:none}}

/* Natural Japanese brush script: only the key phrase changes typeface. */
.hero-layered .hero-handwriting{position:relative;display:inline-block;color:#fff;font-family:'Yuji Syuku','Yu Mincho',serif;font-size:1.09em;font-weight:400;font-style:normal;letter-spacing:-.065em;line-height:1.4;isolation:isolate;animation:none;-webkit-text-fill-color:#fff;-webkit-text-stroke:0}
.handwriting-underline{position:absolute;left:-.025em;bottom:.035em;width:105%;height:.19em;color:#f9d447;z-index:-1;transform:rotate(-1.2deg);overflow:visible;pointer-events:none}
.hero-layered .statement-key{animation:none;color:#fff;-webkit-text-stroke:0;-webkit-text-fill-color:#fff}
