html{font-family:'Noto Sans JP',sans-serif;-webkit-font-smoothing:antialiased}
.font-serif{font-family:'Noto Serif JP',serif}
.font-display{font-family:'Cormorant Garamond',serif}

/* Loader */
.loader{position:fixed;inset:0;z-index:9999;background:#0a0a0a;display:flex;flex-direction:column;align-items:center;justify-content:center;transition:opacity 1s ease,visibility 1s ease}
.loader.hide{opacity:0;visibility:hidden;pointer-events:none}
.loader-text{font-family:'Cormorant Garamond',serif;font-size:clamp(20px,5vw,42px);color:#fff;letter-spacing:.06em;font-weight:300;opacity:0;animation:loaderFade 1.5s ease .3s forwards}
.loader-sub{font-family:'Noto Sans JP',sans-serif;font-size:12px;color:rgba(255,255,255,.3);letter-spacing:.25em;margin-top:12px;opacity:0;animation:loaderFade 1.5s ease .8s forwards}
.loader-line{width:0;height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.6),transparent);margin-top:24px;animation:loaderLine 1.5s ease .5s forwards}
@keyframes loaderFade{to{opacity:1}}
@keyframes loaderLine{to{width:180px}}

/* Scroll Animations */
.reveal{opacity:0;transform:translateY(40px);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),transform .8s cubic-bezier(.25,.46,.45,.94)}
.reveal.visible{opacity:1;transform:translateY(0)}
.reveal-left{opacity:0;transform:translateX(-50px);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),transform .8s cubic-bezier(.25,.46,.45,.94)}
.reveal-left.visible{opacity:1;transform:translateX(0)}
.reveal-right{opacity:0;transform:translateX(50px);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),transform .8s cubic-bezier(.25,.46,.45,.94)}
.reveal-right.visible{opacity:1;transform:translateX(0)}
.reveal-scale{opacity:0;transform:scale(.9);transition:opacity .8s cubic-bezier(.25,.46,.45,.94),transform .8s cubic-bezier(.25,.46,.45,.94)}
.reveal-scale.visible{opacity:1;transform:scale(1)}
[data-delay="1"]{transition-delay:.1s}
[data-delay="2"]{transition-delay:.2s}
[data-delay="3"]{transition-delay:.3s}
[data-delay="4"]{transition-delay:.4s}
[data-delay="5"]{transition-delay:.5s}

/* Dividers */
.divider-light{height:1px;background:linear-gradient(90deg,transparent,rgba(0,0,0,.06),transparent)}
.divider-dark{height:1px;background:linear-gradient(90deg,transparent,rgba(255,255,255,.08),transparent)}

/* Scroll Progress */
.scroll-progress{transform-origin:left;transform:scaleX(0);position:fixed;top:0;left:0;right:0;height:1px;z-index:200;background:rgba(255,255,255,.8)}

/* Dark sections */
.dark-gradient{background:linear-gradient(180deg,#141414 0%,#0a0a0a 100%)}

/* Cards */
.card-dark{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);backdrop-filter:blur(20px);transition:all .6s cubic-bezier(.25,.46,.45,.94)}
.card-dark:hover{border-color:rgba(255,255,255,.15);box-shadow:0 20px 60px rgba(0,0,0,.4);transform:translateY(-4px)}
.card-light{background:#fff;border:1px solid rgba(0,0,0,.04);transition:all .6s cubic-bezier(.25,.46,.45,.94)}
.card-light:hover{border-color:rgba(0,0,0,.1);box-shadow:0 16px 48px rgba(0,0,0,.06);transform:translateY(-4px)}

/* Gallery */
.gallery-card{position:relative;overflow:hidden;cursor:pointer}
.gallery-card img{transition:transform 1s cubic-bezier(.25,.46,.45,.94),filter .6s ease;filter:grayscale(100%)}
.gallery-card:hover img{transform:scale(1.08);filter:grayscale(40%)}
.gallery-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(0,0,0,.8) 100%);opacity:0;transition:opacity .5s ease}
.gallery-card:hover .gallery-overlay{opacity:1}
.gallery-info{position:absolute;bottom:0;left:0;right:0;padding:1.5rem;transform:translateY(16px);opacity:0;transition:all .5s cubic-bezier(.25,.46,.45,.94)}
.gallery-card:hover .gallery-info{transform:translateY(0);opacity:1}

/* Img */
.img-zoom{overflow:hidden}
.img-zoom img{transition:transform .8s cubic-bezier(.25,.46,.45,.94),filter .6s ease;filter:grayscale(100%)}
.img-zoom:hover img{transform:scale(1.06);filter:grayscale(0%)}

/* Tabs */
.tab-btn{position:relative}
.tab-btn.active{color:#171717}
.tab-btn.active::after{content:'';position:absolute;bottom:-2px;left:50%;transform:translateX(-50%);width:24px;height:2px;background:#171717;border-radius:1px}
.tab-content{display:none;animation:tabFade .6s ease}
.tab-content.active{display:block}
@keyframes tabFade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}

/* FAQ */
.faq-answer{max-height:0;overflow:hidden;transition:max-height .5s cubic-bezier(.25,.46,.45,.94),padding .3s ease}
.faq-item.open .faq-answer{max-height:500px}
.faq-item.open .faq-icon{transform:rotate(45deg)}
.faq-icon{transition:transform .4s cubic-bezier(.25,.46,.45,.94)}

/* Marquee */
.marquee{overflow:hidden;white-space:nowrap}
.marquee-inner{display:inline-block;animation:marquee 35s linear infinite}
@keyframes marquee{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}

/* Cinema zoom */
.cinema-zoom{transition:transform 1.5s cubic-bezier(.25,.46,.45,.94)}

/* Hover lift */
.hover-lift{transition:all .5s cubic-bezier(.25,.46,.45,.94)}
.hover-lift:hover{transform:translateY(-6px)}

/* Section label */
.section-label{font-family:'Cormorant Garamond',serif;font-size:12.5px;letter-spacing:.35em;text-transform:uppercase;font-weight:400}

/* Nav active state (sub-pages) */
.nav-link.active{color:#fff}
.nav-link-mobile.active{color:#fff}

/* Page hero */
.page-hero{position:relative;overflow:hidden}
.page-hero::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 30% 40%,rgba(255,255,255,.04),transparent 60%);pointer-events:none}

/* ========== Luxury CTA button (keep gold hover per spec) ========== */
.cta-lux{position:relative;overflow:hidden;isolation:isolate;transition:transform .5s cubic-bezier(0.16,1,0.3,1),box-shadow .5s var(--lux-ease),border-color .5s var(--lux-ease),color .5s var(--lux-ease),background .5s var(--lux-ease)}
.cta-lux::before{content:'';position:absolute;inset:0;border-radius:inherit;background:linear-gradient(110deg,transparent 20%,rgba(212,175,55,.45) 50%,transparent 80%);transform:translateX(-120%);pointer-events:none;z-index:0}
.cta-lux.in-view::before{animation:ctaShine 1.6s cubic-bezier(.4,0,.3,1) .3s both}
.cta-lux:hover::before{animation:ctaShine 1s cubic-bezier(.4,0,.3,1) both}
@keyframes ctaShine{0%{transform:translateX(-120%)}100%{transform:translateX(120%)}}
.cta-lux > *{position:relative;z-index:1}
.cta-lux:hover{transform:translateY(-2px);box-shadow:0 14px 32px -8px rgba(0,0,0,.35),0 0 30px rgba(212,175,55,.45)}
.cta-lux:active{transform:translateY(0) scale(.98);transition:transform .15s ease-out}
.cta-lux.in-view{animation:ctaBreath 3.6s ease-in-out .5s infinite}
@keyframes ctaBreath{0%,100%{box-shadow:0 4px 18px -6px rgba(0,0,0,.15),0 0 0 0 rgba(212,175,55,0)}50%{box-shadow:0 6px 24px -6px rgba(0,0,0,.25),0 0 24px 2px rgba(212,175,55,.28)}}
.cta-lux:hover{animation:none}
.cta-lux-outline{border:1px solid rgba(212,175,55,.35) !important}
.cta-lux-outline:hover{border-color:#D4AF37 !important;color:#D4AF37 !important;background:rgba(212,175,55,.08) !important}

/* ========== Footer luminous ========== */
.footer-lux{padding-top:2.5rem;padding-bottom:calc(2.5rem + env(safe-area-inset-bottom,0px));overflow-x:hidden}
@media(min-width:768px){.footer-lux{padding-top:4rem;padding-bottom:calc(4rem + env(safe-area-inset-bottom,0px))}}
.footer-lux > div{max-width:100%;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}
@media(min-width:768px){.footer-lux > div{max-width:64rem;padding-left:3rem;padding-right:3rem}}
.footer-lux a,.footer-lux span,.footer-lux p{transition:color .4s var(--lux-ease)}
.footer-lux a:hover{color:#B82A3F !important}
/* Ensure no bleed beyond viewport — use clip to preserve position:sticky */
html,body{max-width:100%;overflow-x:hidden;overflow-x:clip}

/* ========== Tap Jewel Indicator (mobile-only tap hint) ========== */
.tap-jewel{position:absolute;top:.6rem;right:.6rem;z-index:4;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.08);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);border:1px solid rgba(184,42,63,.55);display:flex;align-items:center;justify-content:center;color:#B82A3F;pointer-events:none}
.tap-jewel::before,.tap-jewel::after{content:'';position:absolute;inset:-3px;border-radius:50%;border:1px solid rgba(184,42,63,.5);opacity:0;animation:jewelRipple 3s cubic-bezier(0.16,1,0.3,1) infinite}
.tap-jewel::after{animation-delay:1.5s}
.tap-jewel svg{width:10px;height:10px;stroke:currentColor;fill:none;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;position:relative;z-index:1}
@keyframes jewelRipple{0%{opacity:.7;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}
@media(hover:hover) and (pointer:fine){.tap-jewel{opacity:.55;transition:opacity .35s ease}.g-card:hover .tap-jewel{opacity:1;background:rgba(184,42,63,.15)}}

/* ========== Instructor (initial state visible; no is-in-view dependency) ========== */
.inst-featured{transition:transform 1.1s cubic-bezier(0.16,1,0.3,1),opacity 1s ease;opacity:1;transform:none}
.inst-featured img.inst-photo{filter:grayscale(100%) brightness(.95);transition:filter 1.6s cubic-bezier(0.22,1,0.36,1)}
.inst-featured.photo-color img.inst-photo{filter:grayscale(0%) brightness(1)}
.inst-featured .inst-anim{opacity:1;transform:none}

/* Touch active feedback for tap targets */
@media(hover:none) and (pointer:coarse){
  .g-card:active,.roadmap-card:active,.inst-featured:active{transform:scale(.98);transition:transform .15s ease-out}
}

/* ========== Accessibility helpers ========== */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* Minimum tap target size (WCAG 2.5.5) — enforce on interactive elements */
.tap-target{min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center}

/* ========== Compliance Banner ========== */
.compliance-banner{width:100%;background:linear-gradient(90deg,rgba(142,31,50,.08),rgba(142,31,50,.14),rgba(142,31,50,.08));border-top:1px solid rgba(142,31,50,.25);border-bottom:1px solid rgba(142,31,50,.25);padding:.75rem 1rem;text-align:center;font-family:'Noto Serif JP',serif;font-size:13.5px;color:#8E1F32;letter-spacing:.04em;line-height:1.7;text-wrap:balance}
@media(min-width:768px){.compliance-banner{font-size:14.5px;padding:.9rem 1.5rem}}
.compliance-banner-icon{display:inline-block;width:14px;height:14px;margin-right:.5rem;vertical-align:-2px;stroke:currentColor;fill:none;stroke-width:1.5}
.compliance-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.55rem 1.2rem;border:1px solid #8E1F32;border-radius:999px;background:#8E1F32;color:#fff;font-family:'Noto Sans JP',sans-serif;font-size:13px;letter-spacing:.08em;text-transform:none;font-weight:500}
.compliance-badge svg{width:12px;height:12px;stroke:currentColor;fill:none;stroke-width:1.5}

/* ========== Language Switcher (Header) ========== */
.lang-switch{position:relative;display:inline-flex;align-items:center;padding:2px;border:1px solid rgba(142,31,50,.55);border-radius:999px;background:#ffffff}
@media(min-width:768px){.lang-switch{padding:3px}}
.lang-switch-btn{position:relative;z-index:2;padding:.3rem .55rem;font-family:'Cormorant Garamond',serif;font-size:12px;letter-spacing:.18em;color:#525252;transition:color .45s cubic-bezier(0.16,1,0.3,1);cursor:pointer;background:transparent;border:0;line-height:1;text-transform:uppercase;min-width:32px;font-weight:500}
@media(min-width:768px){.lang-switch-btn{padding:.4rem .85rem;font-size:12.5px;letter-spacing:.2em;min-width:auto}}
.lang-switch-btn.active{color:#ffffff;font-weight:700}
.lang-switch-btn:hover:not(.active){color:#171717}
.lang-pill{position:absolute;top:3px;bottom:3px;background:#8E1F32;border-radius:999px;transition:left .5s cubic-bezier(0.16,1,0.3,1),width .5s cubic-bezier(0.16,1,0.3,1);z-index:1;box-shadow:0 0 14px rgba(142,31,50,.45),inset 0 0 6px rgba(255,255,255,.15)}
.lang-switch-mobile{display:flex;justify-content:center;padding-top:1rem;border-top:1px solid rgba(255,255,255,.05);margin-top:.5rem}

/* ========== Concierge Chat ========== */
.concierge-fab{position:fixed;right:1rem;bottom:5.5rem;z-index:60;display:inline-flex;align-items:center;gap:.65rem;padding:0;background:transparent;border:0;cursor:pointer;transition:transform .35s cubic-bezier(0.16,1,0.3,1);font-family:'Noto Serif JP',serif;line-height:1}
.concierge-fab-avatar{overflow:hidden}
@media(min-width:768px){.concierge-fab{bottom:1.5rem;right:1.5rem}}
.concierge-fab:hover{transform:scale(1.05)}
.concierge-fab-bubble{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:#171717;font-family:'Noto Serif JP',serif;font-size:13px;font-weight:500;letter-spacing:.05em;padding:.5rem .8rem;border-radius:14px;border:1px solid rgba(142,31,50,.5);box-shadow:0 6px 20px -6px rgba(0,0,0,.28),0 0 0 3px rgba(142,31,50,.08);white-space:nowrap;position:relative;animation:conciergeBubblePulse 3s ease-in-out infinite}
@media(max-width:430px){.concierge-fab-bubble{font-size:12px;letter-spacing:0;padding:.4rem .55rem;gap:.35rem}.concierge-fab-dots i{width:3px;height:3px}}
@media(max-width:360px){.concierge-fab-bubble{display:none}}
/* Hide concierge FAB when near footer so it doesn't cover 特商法 / プラポリ links */
body.footer-visible .concierge-fab{opacity:0;pointer-events:none;transform:translateY(10px)}
.concierge-fab{transition:opacity .35s ease,transform .35s ease}
.concierge-fab-bubble::after{content:'';position:absolute;top:50%;right:-6px;transform:translateY(-50%) rotate(45deg);width:10px;height:10px;background:#fff;border-right:1px solid rgba(142,31,50,.5);border-top:1px solid rgba(142,31,50,.5)}
.concierge-fab-dots{display:inline-flex;align-items:center;gap:2px}
.concierge-fab-dots i{width:4px;height:4px;border-radius:50%;background:#8E1F32;display:inline-block;animation:concergeDot 1.4s ease-in-out infinite}
.concierge-fab-dots i:nth-child(2){animation-delay:.18s}
.concierge-fab-dots i:nth-child(3){animation-delay:.36s}
@keyframes concergeDot{0%,80%,100%{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}
@media(max-width:479px){.concierge-fab-bubble{font-size:12.5px;padding:.4rem .65rem}}
.concierge-fab-avatar{position:relative;width:56px;height:56px;border-radius:50%;overflow:visible;border:2px solid #8E1F32;box-shadow:0 8px 24px -4px rgba(0,0,0,.35),0 0 0 4px rgba(0,0,0,.05);background:#0a0a0a;transition:box-shadow .35s ease,border-color .35s ease;flex-shrink:0}
.concierge-fab:hover .concierge-fab-avatar{border-color:#B82A3F;box-shadow:0 10px 28px -4px rgba(0,0,0,.45),0 0 0 5px rgba(142,31,50,.15),0 0 24px rgba(184,42,63,.35)}
.concierge-fab-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;border-radius:50%;display:block}
.concierge-fab-status{position:absolute;bottom:1px;right:1px;width:14px;height:14px;background:#22c55e;border:2px solid #fff;border-radius:50%;box-shadow:0 0 0 1px rgba(0,0,0,.15),0 0 8px rgba(34,197,94,.55);animation:conciergeStatusPulse 2s ease-in-out infinite}
@keyframes conciergeStatusPulse{0%,100%{box-shadow:0 0 0 1px rgba(0,0,0,.15),0 0 0 0 rgba(34,197,94,.5)}50%{box-shadow:0 0 0 1px rgba(0,0,0,.15),0 0 0 6px rgba(34,197,94,0)}}
@keyframes conciergeBubblePulse{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}

.concierge-window{position:fixed;right:1rem;bottom:5.5rem;z-index:65;width:calc(100vw - 2rem);max-width:400px;height:min(72vh,540px);background:#121212;border:1px solid rgba(142,31,50,.3);border-radius:20px;box-shadow:0 30px 60px -20px rgba(0,0,0,.85),0 0 40px rgba(142,31,50,.15);display:flex;flex-direction:column;overflow:hidden;transform:translateY(20px) scale(.95);opacity:0;pointer-events:none;transition:opacity .35s ease,transform .4s cubic-bezier(0.16,1,0.3,1)}
@media(min-width:768px){.concierge-window{right:1.5rem;bottom:1.5rem;width:400px}}
.concierge-window.open{opacity:1;transform:translateY(0) scale(1);pointer-events:auto}
.concierge-header{padding:1rem 1.25rem;border-bottom:1px solid rgba(142,31,50,.18);background:linear-gradient(180deg,rgba(142,31,50,.1),transparent);display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-shrink:0}
.concierge-header-info{display:flex;align-items:center;gap:.75rem;min-width:0}
.concierge-header-avatar{position:relative;width:40px;height:40px;border-radius:50%;overflow:visible;border:1.5px solid #8E1F32;flex-shrink:0}
.concierge-header-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;border-radius:50%;display:block}
.concierge-header-avatar .concierge-header-status{position:absolute;bottom:-1px;right:-1px;width:11px;height:11px;background:#22c55e;border:2px solid #121212;border-radius:50%}
.concierge-header-textwrap{min-width:0}
.concierge-header-text{font-family:'Noto Serif JP',serif;font-size:14.5px;letter-spacing:.04em;color:#fff;font-weight:500;line-height:1.3}
.concierge-header-sub{font-family:'Cormorant Garamond',serif;font-size:12px;color:#8E1F32;letter-spacing:.28em;margin-top:.2rem;text-transform:uppercase}
.concierge-close{width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,255,255,.15);background:transparent;color:rgba(255,255,255,.6);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .3s ease;font-size:14px;line-height:1}
.concierge-close:hover{border-color:#8E1F32;color:#8E1F32}
.concierge-body{flex:1;overflow-y:auto;padding:1.25rem;display:flex;flex-direction:column;gap:.75rem;scrollbar-width:thin;scrollbar-color:rgba(142,31,50,.3) transparent}
.concierge-body::-webkit-scrollbar{width:4px}
.concierge-body::-webkit-scrollbar-thumb{background:rgba(142,31,50,.3);border-radius:2px}
.concierge-msg{max-width:82%;padding:.85rem 1rem;border-radius:14px;font-family:'Noto Serif JP',serif;font-size:14px;line-height:1.85;letter-spacing:.02em;animation:msgIn .4s cubic-bezier(0.16,1,0.3,1) both}
.concierge-msg-bot{align-self:flex-start;background:rgba(38,38,38,.85);border:1px solid rgba(255,255,255,.06);color:rgba(255,255,255,.88);border-bottom-left-radius:4px}
.concierge-msg-row{display:flex;align-items:flex-end;gap:.5rem;max-width:88%;align-self:flex-start}
.concierge-msg-row .concierge-msg{max-width:none;align-self:auto}
.concierge-msg-avatar{width:28px;height:28px;border-radius:50%;overflow:hidden;border:1px solid rgba(142,31,50,.5);flex-shrink:0}
.concierge-msg-avatar img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}
.concierge-msg-user{align-self:flex-end;background:rgba(142,31,50,.1);border:1px solid rgba(142,31,50,.4);color:#E8C4CB;border-bottom-right-radius:4px}
@keyframes msgIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.concierge-foot{padding:.75rem .85rem;border-top:1px solid rgba(142,31,50,.15);display:flex;gap:.5rem;flex-shrink:0;background:rgba(0,0,0,.3)}
.concierge-input{flex:1;min-width:0;background:rgba(0,0,0,.4);border:1px solid rgba(142,31,50,.22);border-radius:999px;padding:.6rem 1rem;color:#fff;font-family:'Noto Serif JP',serif;font-size:14px;outline:none;transition:border-color .3s ease}
.concierge-input:focus{border-color:#8E1F32}
.concierge-input::placeholder{color:rgba(255,255,255,.35)}
.concierge-send{width:38px;height:38px;border-radius:50%;background:#8E1F32;color:#0a0a0a;border:0;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:all .3s cubic-bezier(0.16,1,0.3,1)}
.concierge-send:hover{background:#B82A3F;transform:scale(1.05)}
.concierge-send svg{width:15px;height:15px;fill:currentColor}

/* ========== Micro-interaction shared (lux) ========== */
:root{--lux-ease:cubic-bezier(0.16,1,0.3,1)}
.lux-card,.lux-mini,.lux-tag,.lux-name,.lux-eyebrow,.lux-mini-name,.lux-quote,.lux-quote-text{transition:all 0.4s var(--lux-ease)}
.lux-card:active,.lux-mini:active{transform:translateY(-2px) scale(.98);transition:transform .15s ease-out}
@media(hover:hover) and (pointer:fine){.lux-card:active,.lux-mini:active{transform:none}}

/* Instructor Lux Card */
.lux-section{background:#0a0a0a;position:relative;overflow:hidden}
.lux-section::before{content:'';position:absolute;inset:0;background:radial-gradient(120% 80% at 50% 0%,rgba(142,31,50,.06) 0%,transparent 50%);pointer-events:none}
.lux-card{position:relative;background:linear-gradient(180deg,#0d0d0d 0%,#141414 100%);border:1px solid rgba(255,255,255,.1);border-radius:24px;overflow:hidden;transition:border-color .5s ease,box-shadow .5s ease}
.lux-card:hover,.lux-card.in{border-color:rgba(255,255,255,.4);box-shadow:0 0 30px rgba(255,255,255,.05),0 20px 50px -20px rgba(0,0,0,.6)}
.lux-card:hover .lux-name{color:#8E1F32;letter-spacing:.07em}
.lux-card:hover .lux-eyebrow,.lux-card:hover .lux-name-en{letter-spacing:.5em}
.lux-photo{position:relative;overflow:hidden;background:#0a0a0a;min-height:340px}
@media(min-width:768px){.lux-photo{min-height:100%}}
.lux-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 20%;filter:brightness(.85) contrast(1.05);transform:scale(1.05);opacity:.55;transition:transform 2.4s ease-out,opacity 1.2s ease-out,filter .5s ease}
.lux-card.in .lux-photo img{transform:scale(1);opacity:1}
.lux-card:hover .lux-photo img{filter:brightness(1) contrast(1.05)}
.lux-photo-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.15) 0%,rgba(0,0,0,.55) 65%,rgba(13,13,13,.98) 100%);pointer-events:none;z-index:1}
@media(min-width:768px){.lux-photo-overlay{background:linear-gradient(120deg,rgba(0,0,0,.1) 0%,rgba(0,0,0,.35) 55%,rgba(13,13,13,.85) 90%,rgba(13,13,13,.98) 100%)}}
.lux-photo-caption{position:absolute;left:0;right:0;bottom:0;padding:1.75rem 1.5rem 1.75rem;z-index:2}
@media(min-width:768px){.lux-photo-caption{padding:2.5rem 2rem 2.5rem}}
.lux-eyebrow{display:block;font-family:'Cormorant Garamond',serif;font-size:12.5px;letter-spacing:.4em;color:#8E1F32;text-transform:uppercase;font-weight:500;margin-bottom:.9rem;opacity:0;transform:translateX(-16px);transition:opacity .8s ease .35s,transform .8s ease .35s}
.lux-name{font-family:'Noto Serif JP',serif;font-weight:500;color:#fff;letter-spacing:.05em;margin-bottom:.4rem;opacity:0;transform:translateX(-16px);transition:opacity .8s ease .5s,transform .8s ease .5s}
.lux-name-en{display:block;font-family:'Cormorant Garamond',serif;font-size:13.5px;letter-spacing:.28em;color:#8E1F32;margin-bottom:.85rem;opacity:0;transform:translateX(-16px);transition:opacity .8s ease .65s,transform .8s ease .65s}
.lux-role{font-family:'Noto Serif JP',serif;font-size:13.5px;color:rgba(255,255,255,.6);letter-spacing:.06em;opacity:0;transform:translateX(-16px);transition:opacity .8s ease .8s,transform .8s ease .8s}
.lux-card.in .lux-eyebrow,.lux-card.in .lux-name,.lux-card.in .lux-name-en,.lux-card.in .lux-role{opacity:1;transform:translateX(0)}
.lux-body{padding:1.75rem 1.5rem 2rem;text-align:left}
@media(min-width:768px){.lux-body{padding:2.5rem 2.25rem 2.75rem}}
.lux-body>*+*{margin-top:1.5rem}
.lux-label{display:block;font-family:'Cormorant Garamond',serif;font-size:12px;letter-spacing:.35em;color:#8E1F32;text-transform:uppercase;font-weight:500;margin-bottom:.85rem}
.lux-tags{display:flex;flex-wrap:wrap;gap:.45rem}
.lux-tag{position:relative;overflow:hidden;display:inline-flex;align-items:center;padding:.4rem .8rem;border:1px solid rgba(142,31,50,.35);border-radius:999px;background:rgba(142,31,50,.05);font-family:'Noto Serif JP',serif;font-size:12.5px;color:#D8B5BD;letter-spacing:.04em;line-height:1.2;white-space:nowrap}
@media(min-width:768px){.lux-tag{font-size:12.5px;padding:.45rem .9rem}}
.lux-tag::before{content:'';position:absolute;top:0;left:-120%;width:60%;height:100%;background:linear-gradient(110deg,transparent 0%,rgba(184,42,63,.4) 50%,transparent 100%);transform:skewX(-20deg);animation:tagShimmer 4.5s var(--lux-ease) infinite;pointer-events:none}
.lux-tag:nth-child(2)::before{animation-delay:.6s}
.lux-tag:nth-child(3)::before{animation-delay:1.2s}
.lux-tag:nth-child(4)::before{animation-delay:1.8s}
.lux-tag:nth-child(5)::before{animation-delay:2.4s}
.lux-tag:nth-child(6)::before{animation-delay:3s}
@keyframes tagShimmer{0%{left:-120%}18%,100%{left:220%}}
.lux-tag:hover{border-color:#B82A3F;color:#F0D4D9;background:rgba(184,42,63,.1)}
.lux-career{font-family:'Noto Serif JP',serif;font-size:14px;color:rgba(255,255,255,.78);line-height:2;letter-spacing:.03em;font-weight:400;text-wrap:balance}
@media(min-width:768px){.lux-career{font-size:15px}}
.lux-career span{display:inline-block}
.lux-quote{position:relative;background:rgba(142,31,50,.06);border-left:2px solid #8E1F32;padding:1.15rem 1.15rem 1.15rem 1.35rem;border-radius:0 12px 12px 0;transition:background .5s var(--lux-ease),border-left-width .35s var(--lux-ease),padding-left .35s var(--lux-ease),box-shadow .5s var(--lux-ease)}
@media(min-width:768px){.lux-quote{padding:1.5rem 1.5rem 1.5rem 1.6rem}}
.lux-quote:hover{background:rgba(142,31,50,.11);border-left-width:4px;padding-left:1.55rem;box-shadow:inset 0 0 20px rgba(142,31,50,.08)}
@media(min-width:768px){.lux-quote:hover{padding-left:1.85rem}}
.lux-quote .lux-label{margin-bottom:.6rem}
.lux-quote-text{font-family:'Kiwi Maru','Noto Serif JP',serif;font-size:14.5px;color:rgba(255,255,255,.9);line-height:2;letter-spacing:.04em;font-style:normal;text-wrap:balance}
@media(min-width:768px){.lux-quote-text{font-size:14px;line-height:2}}
.font-kiwi{font-family:'Kiwi Maru','Noto Serif JP',serif !important;font-style:normal !important}
/* Global italic removal (safety) */
.lux-quote-text,.lux-quote-text *,.font-kiwi,.font-kiwi *{font-style:normal !important}
.lux-quote-text span{display:inline-block}

/* Mini lux cards for co-instructor / advisor */
.lux-mini{background:linear-gradient(180deg,#0d0d0d 0%,#141414 100%);border:1px solid rgba(255,255,255,.08);border-radius:20px;padding:1.75rem 1.5rem;transition:border-color .5s ease,box-shadow .5s ease}
@media(min-width:768px){.lux-mini{padding:2.25rem 2rem}}
.lux-mini:hover,.lux-mini.in{border-color:rgba(255,255,255,.3);box-shadow:0 0 24px rgba(255,255,255,.05)}
.lux-mini:hover .lux-mini-name{color:#8E1F32;letter-spacing:.06em}
.lux-mini:hover .lux-mini-name-en{letter-spacing:.4em}
.lux-mini-head{display:flex;align-items:center;gap:1rem;margin-bottom:1.25rem}
.lux-mini-avatar{width:56px;height:56px;border-radius:50%;border:1px solid rgba(142,31,50,.35);background:rgba(142,31,50,.06);display:flex;align-items:center;justify-content:center;font-family:'Cormorant Garamond',serif;font-size:14.5px;color:#8E1F32;letter-spacing:.15em;flex-shrink:0}
.lux-mini-name{font-family:'Noto Serif JP',serif;font-weight:500;color:#fff;font-size:1.05rem;letter-spacing:.04em}
.lux-mini-name-en{font-family:'Cormorant Garamond',serif;font-size:12.5px;color:#8E1F32;letter-spacing:.28em;margin-top:.15rem;display:block}
.lux-mini-desc{font-family:'Noto Serif JP',serif;font-size:14px;color:rgba(255,255,255,.72);line-height:2;letter-spacing:.03em;text-wrap:balance}
.lux-mini-desc span{display:inline-block}

/* Voice Marquee (Graduates) */
.voice-marquee{position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.voice-track{display:flex;gap:20px;width:max-content;animation:voiceScroll 60s linear infinite}
.voice-marquee:hover .voice-track{animation-play-state:paused}
@keyframes voiceScroll{0%{transform:translateX(0)}100%{transform:translateX(-50%)}}
.voice-card{flex:0 0 auto;width:320px;background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:1.75rem;transition:box-shadow .4s ease,transform .4s ease}
.voice-card:hover{box-shadow:0 12px 32px rgba(0,0,0,.08);transform:translateY(-3px)}
@media(min-width:768px){.voice-card{width:360px}}
