/*
Theme Name: HANABI Premium
Theme URI: https://hanabi-hitachi.jp/
Author: HANABI
Description: HANABI現行サイト専用。スマホ縦画面、店舗情報、CAST、NEWS、求人、ギャラリーを統合したクリーンテーマ。
Version: 4.0.35
Requires at least: 6.0
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: hanabi-premium
*/
:root{--gold:#ad7a2d;--pale:#ead6a8;--ink:#2e2922;--paper:#fffdfa;--soft:#f7f0e4;--line:rgba(173,122,45,.27);--hanabi-heading-color:#a16f28;--hanabi-subheading-color:#9b7a4b}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--paper);color:var(--ink);font-family:"Yu Mincho","Hiragino Mincho ProN",serif;line-height:1.9;overflow-x:hidden}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}.site-header{position:fixed;z-index:100;top:0;left:0;right:0;height:92px;padding:18px 22px;display:flex;align-items:center;justify-content:space-between;background:linear-gradient(180deg,rgba(255,253,250,.96),rgba(255,253,250,.58),transparent);transition:.35s}.site-header.is-scrolled{height:72px;background:rgba(255,253,250,.94);box-shadow:0 8px 30px rgba(93,61,18,.08);backdrop-filter:blur(12px)}.brand{font-family:Georgia,serif;letter-spacing:.18em;color:#936425;font-size:24px;line-height:1.15}.brand small{display:block;font-size:9px;letter-spacing:.32em;margin-top:8px}.menu-toggle{width:50px;height:50px;border:1px solid var(--line);border-radius:50%;background:rgba(255,255,255,.92);color:var(--gold);font-size:20px;box-shadow:0 8px 28px rgba(91,60,19,.08)}.nav{display:none}
.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;background:#eadcc7}.hero-slides,.hero-slide{position:absolute;inset:0;margin:0}.hero-slide{opacity:0;transition:opacity 1.8s ease}.hero-slide.is-active{opacity:1}.hero-slide img{height:100%;object-fit:cover;object-position:center 23%;transform:scale(1.03);animation:cinema 9s ease-in-out infinite alternate}.hero-wash{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,250,243,.03) 43%,rgba(255,251,246,.82) 84%,var(--paper))}.hero-sparkles{position:absolute;z-index:3;inset:0;background-image:radial-gradient(circle at 20% 22%,rgba(255,255,255,.85) 0 1px,transparent 2px),radial-gradient(circle at 78% 30%,rgba(255,238,186,.8) 0 1px,transparent 2px),radial-gradient(circle at 54% 15%,rgba(255,255,255,.75) 0 1px,transparent 2px);background-size:90px 120px,130px 150px,170px 190px;opacity:.55;animation:drift 15s linear infinite}.hero-content{position:absolute;z-index:4;left:24px;right:24px;bottom:calc(118px + env(safe-area-inset-bottom));text-align:center;text-shadow:0 2px 18px rgba(255,255,255,.9)}.hero-kicker{font-family:Georgia,serif;font-size:12px;letter-spacing:.42em;color:#7f571f}.hero h1{font-family:Georgia,serif;font-weight:400;font-size:clamp(58px,17vw,90px);line-height:1;margin:.18em 0;color:#936425;letter-spacing:.11em}.hero h1 span{display:block;font-size:.32em;letter-spacing:.52em;margin:.9em 0 0 .5em}.hero-copy{font-size:14px;letter-spacing:.18em}.hero-dots{position:absolute;z-index:5;bottom:calc(92px + env(safe-area-inset-bottom));left:50%;transform:translateX(-50%);display:flex;gap:10px}.hero-dots i{width:6px;height:6px;border-radius:50%;border:1px solid #a97a36}.hero-dots i.active{background:#a97a36}.scroll-cue{display:none}.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;min-width:170px;min-height:54px;padding:12px 26px;border:1px solid var(--gold);background:rgba(255,253,249,.82);color:#79521e;font-family:Georgia,serif;letter-spacing:.18em}.btn-shine:before{content:"";position:absolute;top:-50%;left:-70%;width:40%;height:200%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.95),transparent);transform:rotate(20deg);animation:shine 4s infinite}.section{padding:84px 22px;position:relative}.section-heading span{font-size:11px;letter-spacing:.28em;color:var(--hanabi-subheading-color)}.section-heading h2{margin:.1em 0 .65em;font:400 42px/1 Georgia,serif;letter-spacing:.12em;color:var(--hanabi-heading-color)}.about{padding-top:68px}.about-copy .lead{font-size:18px;line-height:2}.text-link{display:inline-flex;gap:14px;align-items:center;margin:14px 0 34px;color:#8f6225;letter-spacing:.2em}.about-visual{margin:0 -22px;position:relative;overflow:hidden}.about-visual:before{content:"";position:absolute;z-index:2;inset:14px;border:1px solid rgba(255,255,255,.8)}.about-visual img{height:64svh;min-height:460px;object-fit:cover}.about-visual figcaption{position:absolute;z-index:3;right:18px;bottom:16px;color:white;font-size:10px;letter-spacing:.3em}.info{padding-top:30px}.info-grid{display:grid;gap:14px}.info-card{position:relative;padding:24px 22px;border:1px solid var(--line);background:linear-gradient(145deg,#fff,#fbf4e6);box-shadow:0 14px 42px rgba(114,76,24,.07)}.info-card>span{position:absolute;right:18px;top:13px;font:italic 24px Georgia,serif;color:rgba(173,122,45,.18)}.info-card b{display:block;font:18px Georgia,serif;letter-spacing:.12em;color:#9c6b29}.info-card p{margin:4px 0 0}.cast{padding-left:0;padding-right:0}.cast .section-heading{padding:0 22px}.cast-scroll{display:flex;gap:14px;overflow-x:auto;padding:10px 22px 30px;scroll-snap-type:x mandatory;scrollbar-width:none}.cast-scroll::-webkit-scrollbar{display:none}.cast-card{flex:0 0 82vw;max-width:390px;scroll-snap-align:center;background:#fff;border:1px solid var(--line);box-shadow:0 20px 55px rgba(104,67,17,.12)}.cast-photo{height:62svh;min-height:470px;overflow:hidden}.cast-photo img{height:100%;object-fit:cover;object-position:center top;transition:transform .8s}.cast-card:active .cast-photo img{transform:scale(1.04)}.cast-meta{padding:18px 20px 22px}.cast-meta small{font:10px Georgia,serif;letter-spacing:.22em;color:#9b7340}.cast-meta h3{font-size:24px;font-weight:400;margin:.15em 0}.cast-meta span{font-size:10px;letter-spacing:.2em;color:#936526}.cast-meta .cast-profile-link{font-size:10px;letter-spacing:.2em;color:#936526;text-decoration:none}.event{position:relative;min-height:76svh;display:flex;align-items:flex-end;padding:42px 24px;overflow:hidden;color:#fff}.event>img{position:absolute;inset:0;height:100%;object-fit:cover;filter:saturate(.92) contrast(1.04);transform:scale(1.18)}.event-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(70,20,25,.12),rgba(63,25,14,.8))}.event-content{position:relative;z-index:2;max-width:360px}.event-content>span{font-size:11px;letter-spacing:.34em}.event-content h2{font:400 47px/1.08 Georgia,serif;letter-spacing:.06em;margin:.22em 0 .55em}.btn-light{background:rgba(255,255,255,.92)}.news-list{border-top:1px solid var(--line)}.news-item{display:grid;grid-template-columns:92px 1fr 20px;gap:10px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line)}.news-item time{font:12px Georgia,serif;color:#9b6c2b}.news-item b{color:#a16f28}.reserve-bar{position:fixed;z-index:90;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 1.08fr;gap:8px}.reserve-bar a{padding:14px 6px;text-align:center;background:rgba(255,255,255,.95);border:1px solid var(--gold);box-shadow:0 8px 30px rgba(74,52,23,.14);font-size:13px}.reserve-bar a:last-child{background:linear-gradient(135deg,#d2ad63,#fff0bf);color:#68420d}.site-footer{padding:80px 22px 120px;text-align:center;background:#f6efe3;border-top:1px solid var(--line)}.reveal{opacity:0;transform:translateY(24px);transition:opacity .85s,transform .85s}.reveal.visible{opacity:1;transform:none}@keyframes cinema{to{transform:scale(1.12) translate3d(-1.5%,1%,0)}}@keyframes drift{to{background-position:0 240px,0 300px,0 380px}}@keyframes shine{0%,55%{left:-70%}85%,100%{left:140%}}

@media(max-width:899px) and (max-height:760px){.hero-content{bottom:calc(104px + env(safe-area-inset-bottom))}.hero h1{font-size:52px}.hero h1 span{margin-top:.55em}.hero-copy{margin:.55em 0}.hero-content .btn{min-height:48px}.hero-dots{bottom:calc(82px + env(safe-area-inset-bottom))}}
@media(min-width:900px){.site-header{height:96px;padding:18px 5vw}.nav{display:flex;gap:24px;font-size:12px;letter-spacing:.12em}.menu-toggle{display:none}.hero-content{left:8vw;right:auto;bottom:13vh;text-align:left}.hero h1{font-size:96px}.hero-slide img{object-position:center 20%}.section{max-width:1200px;margin:auto;padding:110px 40px}.about{display:grid;grid-template-columns:.8fr 1.1fr;column-gap:80px;align-items:center}.about .section-heading,.about-copy{grid-column:1}.about-visual{grid-column:2;grid-row:1/3;margin:0}.about-visual img{height:700px}.info-grid{grid-template-columns:repeat(3,1fr)}.info-map iframe{height:420px}.cast-scroll{display:grid;grid-template-columns:repeat(4,1fr);overflow:visible;padding:20px 40px}.cast-card{max-width:none}.cast-photo{height:470px;min-height:0}.event{min-height:720px;padding:70px 8vw}.event-content h2{font-size:68px}.reserve-bar{left:auto;right:24px;width:430px}.site-footer{padding-bottom:70px}}

/* Emergency public release refinements */
.menu-toggle{display:grid;place-content:center;gap:5px;padding:0;cursor:pointer}.menu-toggle span{display:block;width:20px;height:1px;background:currentColor;transition:.3s}.menu-open .menu-toggle span:nth-child(1){transform:translateY(6px) rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:899px){.nav{display:flex;position:fixed;z-index:99;inset:0;background:rgba(255,253,250,.98);backdrop-filter:blur(16px);align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:.35s}.menu-open .nav{opacity:1;visibility:visible}.nav ul{list-style:none;padding:0;margin:0;text-align:center}.nav li{margin:18px 0}.nav a{font:20px Georgia,serif;letter-spacing:.16em}.menu-toggle{position:relative;z-index:101}.menu-open{overflow:hidden}}
.instagram{overflow:hidden}.instagram-panel{display:block;border:1px solid var(--line);background:linear-gradient(145deg,#fff,#fbf2e2);box-shadow:0 20px 60px rgba(104,67,17,.1)}.instagram-panel>div:first-child{padding:28px 24px}.instagram-panel small{font:10px Georgia,serif;letter-spacing:.25em;color:#9b7340}.instagram-panel h3{font-size:20px;font-weight:400;line-height:1.8;margin:.35em 0 .8em}.instagram-panel span{color:#936526;font-size:11px;letter-spacing:.16em}.instagram-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2px}.instagram-grid img{aspect-ratio:1/1;object-fit:cover;object-position:center top}.info-grid:has(.info-card:nth-child(2):last-child){grid-template-columns:1fr 1fr}.reserve-bar{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}
@media(min-width:900px){.instagram-panel{display:grid;grid-template-columns:.75fr 1.25fr;align-items:center}.instagram-panel>div:first-child{padding:50px}.instagram-grid{grid-template-columns:repeat(4,1fr)}.instagram-panel h3{font-size:28px}}

/* v2.3 urgent visual correction */
.hero-mobile{display:none;position:relative;background:#fff}.hero-mobile>img{display:block;width:100%;height:auto}.hero-hotspot{position:absolute;z-index:8;display:block}.hero-hotspot-more{left:30.5%;right:27%;top:75.5%;height:7.3%}.hero-hotspot-phone{left:4%;width:44%;top:91.2%;height:7.2%}.hero-hotspot-reserve{right:3.5%;width:45%;top:91.2%;height:7.2%}
.instagram{background:#fffdfa}.instagram-panel{overflow:hidden}.instagram-link{display:inline-block;color:#936526;font-size:12px;letter-spacing:.16em}.instagram-grid{grid-template-columns:repeat(3,1fr)}.instagram-grid a{display:block}.instagram-grid img{width:100%;aspect-ratio:1/1;object-fit:cover;object-position:center top}
@media(max-width:899px){
  .hero-desktop{display:none!important}.hero-mobile{display:block}
  .site-header{height:92px;background:transparent;box-shadow:none;padding:20px 20px;pointer-events:none}.site-header .brand{visibility:hidden}.site-header .menu-toggle{pointer-events:auto;margin-left:auto;background:rgba(255,255,255,.96);width:58px;height:58px;box-shadow:0 8px 26px rgba(97,65,25,.12)}.site-header.is-scrolled{height:72px;background:rgba(255,253,250,.94)}.site-header.is-scrolled .brand{visibility:visible;font-size:21px}
  .reserve-bar{display:none!important}
  .instagram{padding-top:72px}.instagram-grid{grid-template-columns:repeat(3,1fr);gap:2px}.instagram-panel>div:first-child{padding:26px 22px}
}
@media(min-width:900px){.hero-mobile{display:none!important}}

/* v2.4 true mobile slider: separate image, text and buttons */
@media(max-width:899px){
  .hero-mobile{display:block;position:relative;height:100svh;min-height:720px;overflow:hidden;background:#efe4d2}
  .hero-mobile-slides,.hero-mobile-slide{position:absolute;inset:0;margin:0}
  .hero-mobile-slide{opacity:0;transition:opacity 1.35s ease}
  .hero-mobile-slide.is-active{opacity:1}
  .hero-mobile-slide img{width:100%;height:100%;object-fit:cover;object-position:center 20%;transform:scale(1.01)}
  .hero-mobile-wash{position:absolute;inset:0;z-index:2;
background:
radial-gradient(ellipse at 50% -8%, rgba(255,255,255,.96) 0%, rgba(255,255,255,.72) 18%, rgba(255,255,255,.18) 42%, rgba(255,255,255,0) 62%),
radial-gradient(ellipse at 18% 8%, rgba(255,255,255,.55) 0%, rgba(255,255,255,0) 45%),
radial-gradient(ellipse at 82% 10%, rgba(255,255,255,.45) 0%, rgba(255,255,255,0) 42%),
linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,251,246,.78) 84%,rgba(255,253,250,.98) 100%);
filter:blur(2px)}
  .hero-mobile-content{position:absolute;z-index:4;left:22px;right:22px;bottom:132px;text-align:center;text-shadow:0 2px 18px rgba(255,255,255,.96)}
  .hero-mobile-kicker{font-family:Georgia,serif;font-size:11px;letter-spacing:.38em;color:#8a5e22}
  .hero-mobile h1,.hero-mobile-title{font-family:Georgia,serif;font-weight:400;font-size:clamp(54px,16vw,78px);line-height:1;margin:.16em 0;color:#936425;letter-spacing:.08em}
  .hero-mobile h1 span,.hero-mobile-title span{display:block;font-size:.31em;letter-spacing:.48em;margin:.8em 0 0 .48em}
  .hero-mobile-content p{font-size:13px;letter-spacing:.17em;margin:.7em 0 1.25em}
  .hero-mobile-more{display:inline-flex;align-items:center;justify-content:center;min-width:182px;height:58px;border:1px solid #ad7a2d;background:rgba(255,253,249,.78);font:16px Georgia,serif;letter-spacing:.18em;color:#7a531e}
  .hero-mobile-dots{position:absolute;z-index:5;left:50%;bottom:104px;transform:translateX(-50%);display:flex;gap:12px}
  .hero-mobile-dots i{width:8px;height:8px;border:1px solid #aa7a35;border-radius:50%}
  .hero-mobile-dots i.active{background:#aa7a35}
  .hero-mobile-actions{position:absolute;z-index:6;left:18px;right:18px;bottom:18px;display:grid;grid-template-columns:1fr 1.12fr;gap:10px}
  .hero-mobile-actions a{display:flex;align-items:center;justify-content:center;min-height:64px;padding:10px 8px;border:1px solid #b88a43;background:rgba(255,255,255,.94);font-size:14px;letter-spacing:.08em;box-shadow:0 10px 30px rgba(100,69,28,.12)}
  .hero-mobile-actions a:last-child{background:linear-gradient(135deg,#dfc27e,#fff3c9);color:#6e4a18}
}

/* v2.5 mobile first-view and clean cast correction */
@media(max-width:899px){
  .hero-mobile{height:calc(100svh - 56px);min-height:620px;max-height:860px}
  .hero-mobile-content{bottom:224px}
  .hero-mobile-dots{bottom:190px}
  .hero-mobile-actions{bottom:86px}
  .hero-mobile-actions a{min-height:58px}
  .cast-photo{height:auto;min-height:0;aspect-ratio:3/4;background:#f4eadb}
  .cast-photo img{height:100%;object-fit:cover;object-position:center top}
  .site-header + .site-header{display:none!important}
}
@media(max-width:899px) and (max-height:700px){
  .hero-mobile{min-height:580px}
  .hero-mobile-content{bottom:202px}
  .hero-mobile-dots{bottom:170px}
  .hero-mobile-actions{bottom:72px}
  .hero-mobile h1,.hero-mobile-title{font-size:50px}
  .hero-mobile-content p{margin:.45em 0 .8em}
  .hero-mobile-more{height:50px;min-width:168px}
}


/* v2.6 final mobile viewport alignment and image presentation */
@media(max-width:899px){
  .hero-mobile{
    height:100svh!important;
    min-height:600px!important;
    max-height:none!important;
    padding-bottom:0!important;
  }
  .hero-mobile-slide img{
    object-fit:cover!important;
    object-position:center 18%!important;
  }
  .hero-mobile-content{
    bottom:calc(150px + env(safe-area-inset-bottom))!important;
  }
  .hero-mobile-dots{
    bottom:calc(122px + env(safe-area-inset-bottom))!important;
  }
  .hero-mobile-actions{
    left:0!important;
    right:0!important;
    bottom:0!important;
    gap:0!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
    grid-template-columns:1fr 1.15fr!important;
    background:#fffdfa;
  }
  .hero-mobile-actions a{
    min-height:74px!important;
    border-radius:0!important;
    box-shadow:none!important;
    border-bottom:0!important;
    font-size:15px!important;
  }
  .hero-mobile-actions a:first-child{border-left:0!important}
  .hero-mobile-actions a:last-child{border-right:0!important}
  .cast-scroll{padding-left:24px!important;padding-right:24px!important;gap:18px!important}
  .cast-card{flex:0 0 78vw!important;max-width:340px!important}
  .cast-photo{aspect-ratio:3/4!important;height:auto!important;overflow:hidden!important}
  .cast-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center top!important}
  .event img{filter:none!important;object-position:center!important}
  .site-header + .site-header,.menu-toggle + .menu-toggle{display:none!important}
}
@media(max-width:899px) and (max-height:700px){
  .hero-mobile-content{bottom:calc(140px + env(safe-area-inset-bottom))!important}
  .hero-mobile-dots{bottom:calc(112px + env(safe-area-inset-bottom))!important}
  .hero-mobile-actions a{min-height:64px!important}
}


/* v2.7 rebuilt clean assets: no baked text, arrows, or menu UI */
@media(max-width:899px){
  .site-header{z-index:120!important}
  .site-header .menu-toggle{display:grid!important;position:relative!important;top:auto!important;right:auto!important}
  .site-header .menu-toggle:not(:first-of-type){display:none!important}
  .hero-mobile{height:100dvh!important;min-height:620px!important;overflow:hidden!important}
  .hero-mobile-slide img{height:100%!important;object-fit:cover!important;object-position:center 25%!important;transform:none!important}
  .hero-mobile-wash{background:linear-gradient(180deg,rgba(255,255,255,.01) 0%,rgba(255,255,255,.01) 48%,rgba(255,252,247,.78) 78%,#fffdfa 100%)!important}
  .hero-mobile-content{bottom:calc(150px + env(safe-area-inset-bottom))!important}
  .hero-mobile-dots{bottom:calc(118px + env(safe-area-inset-bottom))!important}
  .hero-mobile-actions{bottom:0!important;left:0!important;right:0!important;padding:0 0 env(safe-area-inset-bottom)!important}
  .hero-mobile-actions a{height:76px!important;min-height:76px!important}
  .cast-photo{aspect-ratio:3/4!important;background:#f4eadb!important}
  .cast-photo img{object-fit:cover!important;object-position:center 18%!important;filter:none!important}
  .event{min-height:620px!important}
  .event img{object-fit:cover!important;object-position:center!important;filter:none!important}
  .event-overlay{background:linear-gradient(90deg,rgba(5,19,45,.65),rgba(6,18,43,.28),rgba(5,18,42,.62))!important}
}

/* v2.8 clean production rebuild */
@media(max-width:899px){
  .site-header{height:92px!important;padding:18px 24px!important;background:linear-gradient(180deg,rgba(255,253,250,.98),rgba(255,253,250,.88),rgba(255,253,250,0))!important}
  .site-header .brand{visibility:hidden!important}
  .site-header.is-scrolled{height:72px!important;background:rgba(255,253,250,.96)!important}
  .site-header.is-scrolled .brand{visibility:visible!important}
  .site-header .menu-toggle{width:58px!important;height:58px!important;margin-left:auto!important}
  .hero-mobile{height:100svh!important;min-height:640px!important;background:#f4eadc!important}
  .hero-mobile-slide{background:#f4eadc!important}
  .hero-mobile-slide img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;opacity:1!important}
  .hero-mobile-wash{background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,0) 50%,rgba(255,252,247,.62) 73%,#fffdfa 100%)!important}
  .hero-mobile-content{bottom:calc(150px + env(safe-area-inset-bottom))!important}
  .hero-mobile-dots{bottom:calc(116px + env(safe-area-inset-bottom))!important}
  .hero-mobile-actions{position:absolute!important;left:0!important;right:0!important;bottom:0!important;z-index:20!important;display:grid!important;grid-template-columns:1fr 1.15fr!important;padding:0 0 env(safe-area-inset-bottom)!important;background:#fffdfa!important}
  .hero-mobile-actions a{height:76px!important;min-height:76px!important;border-radius:0!important;margin:0!important;box-shadow:none!important}
  .cast-scroll{display:flex!important;gap:18px!important;overflow-x:auto!important;padding:0 24px 28px!important;scroll-snap-type:x mandatory!important}
  .cast-card{flex:0 0 78vw!important;max-width:340px!important;scroll-snap-align:center!important;background:#fff!important}
  .cast-photo{width:100%!important;height:auto!important;aspect-ratio:3/4!important;background:#f4eadc!important;overflow:hidden!important}
  .cast-photo img{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 20%!important;display:block!important}
}
.event-clean{position:relative;min-height:460px;overflow:hidden;background:#071a3a}
.event-fireworks{position:absolute;inset:0;background:
 radial-gradient(circle at 12% 24%,#ffd27a 0 2px,transparent 3px),
 repeating-conic-gradient(from 0deg at 12% 24%,transparent 0 10deg,rgba(255,157,61,.8) 11deg 12deg,transparent 13deg 22deg),
 radial-gradient(circle at 83% 20%,#fff 0 2px,transparent 3px),
 repeating-conic-gradient(from 8deg at 83% 20%,transparent 0 9deg,rgba(93,174,255,.9) 10deg 11deg,transparent 12deg 20deg),
 radial-gradient(circle at 65% 68%,#ffd589 0 2px,transparent 3px),
 repeating-conic-gradient(from 5deg at 65% 68%,transparent 0 11deg,rgba(255,103,67,.75) 12deg 13deg,transparent 14deg 23deg),
 linear-gradient(180deg,#061832 0%,#0b2c58 55%,#2d0c20 100%);filter:saturate(1.15)}
.event-clean .event-overlay{background:linear-gradient(90deg,rgba(4,13,31,.82),rgba(5,22,48,.35),rgba(4,13,31,.72))!important}
.event-clean .event-content{z-index:3}


/* v2.9 urgent final asset correction */
@media (max-width:899px){
  .hero-desktop{display:none!important}
  .hero-mobile{display:block!important;position:relative!important;height:100svh!important;min-height:620px!important;overflow:hidden!important;background:#f8efe3!important}
  .hero-mobile-slides,.hero-mobile-slide{position:absolute!important;inset:0!important;margin:0!important}
  .hero-mobile-slide{opacity:0!important;transition:opacity 1.2s ease!important;z-index:0!important}
  .hero-mobile-slide.is-active{opacity:1!important;z-index:1!important}
  .hero-mobile-slide img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 42%!important;background:#f8efe3!important}
  .hero-mobile-wash{z-index:2!important;pointer-events:none!important}
  .hero-mobile-content{z-index:3!important}
  .hero-mobile-dots{z-index:4!important}
  .hero-mobile-actions{z-index:5!important}
  .site-header{z-index:100!important}
  .site-header .menu-toggle{display:grid!important}
  .cast-photo{background:#f8efe3!important;aspect-ratio:3/4!important}
  .cast-photo img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center 25%!important;background:#f8efe3!important}
}


/* v3.0: iPhone Safari carousel image rendering and Customizer image fixes */
@media (max-width: 899px) {
  .cast.reveal,
  .instagram.reveal,
  .cast.reveal.visible,
  .instagram.reveal.visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .cast-scroll,
  .cast-card,
  .cast-photo,
  .instagram-panel,
  .instagram-grid,
  .instagram-grid a {
    transform: none !important;
    -webkit-transform: none !important;
    backface-visibility: visible !important;
    -webkit-backface-visibility: visible !important;
  }
  .cast-photo img,
  .instagram-grid img {
    display: block !important;
    opacity: 1 !important;
    visibility: visible !important;
    transform: translateZ(0) !important;
    -webkit-transform: translateZ(0) !important;
  }
}


/* v3.1.1 Smash Balloon integration */
.instagram-feed-plugin{width:100%;padding:2px;background:#fff}
.instagram-feed-plugin .sbi{width:100%!important}
.instagram-feed-notice{margin:0;padding:24px;text-align:center}
@media(min-width:900px){.instagram-panel{grid-template-columns:.75fr 1.25fr}.instagram-feed-plugin{min-width:0}}

/* v3.2 navigation and anchor positioning fix */
#about,#info,#cast,#event,#instagram,#news{scroll-margin-top:120px}
.back-home-link{display:inline-flex;margin-top:42px;padding:12px 20px;border:1px solid var(--line);color:#8f6225;letter-spacing:.12em;background:rgba(255,255,255,.7)}
.single-entry h1{font-weight:400;font-size:clamp(32px,8vw,54px);line-height:1.35;margin:0 0 28px}
.single-content{min-height:120px}
@media(max-width:899px){
  #about,#info,#cast,#event,#instagram,#news{scroll-margin-top:110px}
  .info{padding-top:58px}
}


/* v3.4 fixed actions: hidden on first view, fade in after scrolling */
:root{
  --hanabi-store-button:#fffdfa;
  --hanabi-contact-button:#dfc27e;
}
.hanabi-fixed-actions{display:none}
.contact-panel{padding:26px 22px;border:1px solid var(--line);background:linear-gradient(145deg,#fff,#fbf4e6)}
.contact-panel>p{margin-top:0}
.contact-links{display:flex;flex-wrap:wrap;gap:12px}
.contact-empty{font-size:13px;color:#735b3c}
@media(max-width:899px){
  .hanabi-fixed-actions{
    position:fixed;
    z-index:140;
    left:0;
    right:0;
    bottom:0;
    display:grid;
    grid-template-columns:1fr 1.15fr;
    padding-bottom:env(safe-area-inset-bottom);
    background:#fffdfa;
    box-shadow:0 -8px 26px rgba(74,48,18,.10);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(100%);
    transition:opacity .45s ease,transform .45s ease,visibility .45s;
  }
  .hanabi-fixed-actions.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:translateY(0);
  }
  .hanabi-fixed-actions a{
    display:flex;
    align-items:center;
    justify-content:center;
    min-height:72px;
    padding:10px 8px;
    border-top:1px solid rgba(173,122,45,.34);
    font-size:14px;
    letter-spacing:.08em;
    line-height:1.35;
    text-align:center;
  }
  .hanabi-fixed-actions .store-button{background:var(--hanabi-store-button);border-right:1px solid rgba(173,122,45,.34)}
  .hanabi-fixed-actions .contact-button{background:var(--hanabi-contact-button);color:#5f4017}
  .hero-mobile-actions{display:none!important}
  #about,#info,#contact,#cast,#event,#instagram,#news{scroll-margin-top:92px}
  .about{padding-top:28px}
  .info,.contact-section{padding-top:58px}
  .contact-links{display:grid}
}
@media(min-width:900px){
  #contact{scroll-margin-top:100px}
}

/* v3.5 HANABI native media gallery */
.hanabi-gallery-intro{display:flex;align-items:end;justify-content:space-between;gap:24px;margin:0 0 28px}.hanabi-gallery-intro small{letter-spacing:.18em;color:#a67b3e}.hanabi-gallery-intro h3{font-weight:400;line-height:1.6;margin:.6em 0 0}.hanabi-native-gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.hanabi-gallery-item{position:relative;appearance:none;border:0;padding:0;margin:0;background:#eee;overflow:hidden;aspect-ratio:1/1;cursor:pointer}.hanabi-gallery-item img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .55s ease,filter .55s ease}.hanabi-gallery-item:hover img{transform:scale(1.035);filter:brightness(.9)}.hanabi-play-mark{position:absolute;left:50%;top:50%;display:grid;place-items:center;width:54px;height:54px;border:1px solid rgba(255,255,255,.9);border-radius:50%;transform:translate(-50%,-50%);background:rgba(0,0,0,.34);color:#fff;font-size:18px;padding-left:3px;backdrop-filter:blur(5px)}.hanabi-gallery-note{margin:18px 0 0;font-size:12px;letter-spacing:.06em;color:#806c52}.hanabi-lightbox{position:fixed;z-index:10000;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(4,4,6,.94);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s}.hanabi-lightbox.is-open{opacity:1;visibility:visible;pointer-events:auto}.hanabi-lightbox-stage{width:min(92vw,980px);height:min(84svh,900px);display:flex;flex-direction:column;align-items:center;justify-content:center}.hanabi-lightbox-image,.hanabi-lightbox-video{display:block;max-width:100%;max-height:calc(84svh - 70px);object-fit:contain;background:#000}
.hanabi-lightbox-image[hidden],.hanabi-lightbox-video[hidden]{display:none!important}.hanabi-lightbox-caption{min-height:24px;margin:16px 50px 0;color:#fff;text-align:center;font-size:13px;line-height:1.55}.hanabi-lightbox-close,.hanabi-lightbox-prev,.hanabi-lightbox-next{position:absolute;z-index:2;border:0;background:rgba(255,255,255,.08);color:#fff;cursor:pointer;backdrop-filter:blur(6px)}.hanabi-lightbox-close{right:18px;top:calc(14px + env(safe-area-inset-top));width:50px;height:50px;border-radius:50%;font-size:34px;font-weight:200;line-height:1}.hanabi-lightbox-prev,.hanabi-lightbox-next{top:50%;width:50px;height:74px;transform:translateY(-50%);font-size:48px;font-family:serif;font-weight:200}.hanabi-lightbox-prev{left:12px}.hanabi-lightbox-next{right:12px}.hanabi-lightbox-open{overflow:hidden}
@media(max-width:899px){.hanabi-gallery-intro{display:block}.hanabi-gallery-intro .instagram-link{display:inline-block;margin-top:15px}.hanabi-native-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}.hanabi-play-mark{width:42px;height:42px;font-size:14px}.hanabi-lightbox-stage{width:100vw;height:100svh;padding:70px 8px calc(88px + env(safe-area-inset-bottom))}.hanabi-lightbox-image,.hanabi-lightbox-video{max-width:100%;max-height:calc(100svh - 190px)}.hanabi-lightbox-caption{margin:14px 44px 0}.hanabi-lightbox-prev,.hanabi-lightbox-next{top:auto;bottom:calc(18px + env(safe-area-inset-bottom));width:64px;height:54px;transform:none;border-radius:28px}.hanabi-lightbox-prev{left:calc(50% - 76px)}.hanabi-lightbox-next{right:calc(50% - 76px)}}

/* Customizer-selected MP4 thumbnail support */
.hanabi-gallery-item > video{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  background:#111;
  pointer-events:none;
}

/* v3.7: show a silent moving preview instead of a black MP4 tile */
.hanabi-gallery-item.is-video > video{
  opacity:1;
}
.hanabi-gallery-item.is-video:focus-visible{outline:2px solid #ad7a2d;outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  .hanabi-gallery-item.is-video > video{animation:none}
}

/* Event Customizer image support */
.event-clean>.event-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transform:none;z-index:0;filter:none}
.event-clean .event-fireworks{z-index:1;opacity:.24;pointer-events:none}
.event-clean .event-overlay{z-index:2}
.event-clean .event-content{z-index:3}

/* v4.2: clean, fast event poster */
.event-poster{
  display:block;
  position:relative;
  width:100%;
  margin:0;
  padding:0;
  background:#f8f4ed;
  overflow:hidden;
}
.event-poster-image{
  display:block;
  width:100%;
  height:auto;
  max-width:none;
  margin:0;
  object-fit:contain;
}
@media(min-width:900px){
  .event-poster{max-width:1200px;margin:0 auto}
}

/* v4.4: stable full-screen mobile menu, independent of scroll position */
@media (max-width:899px){
  #site-nav.nav{
    display:flex!important;
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100dvh!important;
    min-height:100svh!important;
    z-index:1000!important;
    align-items:center!important;
    justify-content:center!important;
    background:#fffdfa!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:none!important;
    transition:opacity .25s ease,visibility .25s ease!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch;
  }
  body.menu-open #site-nav.nav{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
  }
  body.menu-open .site-header{
    background:transparent!important;
    box-shadow:none!important;
  }
  body.menu-open .site-header .brand{visibility:hidden!important}
  .site-header{z-index:1001!important}
  .site-header .menu-toggle{z-index:1002!important;pointer-events:auto!important}
  #site-nav .menu{width:100%;padding:100px 24px 80px!important;margin:0!important}
  #site-nav .menu li{margin:20px 0!important}
  #site-nav .menu a{display:inline-block!important;padding:5px 12px!important}
}

#site-nav .menu a{color:var(--hanabi-heading-color)}


/* v4.8 performance: skip off-screen layout/paint work while preserving the design. */
@supports (content-visibility:auto){
  main>.section,main>.event-poster{content-visibility:auto;contain-intrinsic-size:auto 900px}
}
.hero-slide img,.hero-mobile-slide img{will-change:opacity,transform}
@media (prefers-reduced-motion:reduce){
  *,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}


/* v5.0: open reels in an immersive, nearly full-screen viewer from the first tap. */
.hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{width:100vw;height:100svh;max-width:none;padding:0}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-video{width:100vw;height:100svh;max-width:none;max-height:none;object-fit:contain;background:#000}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-caption{position:absolute;left:50%;bottom:calc(82px + env(safe-area-inset-bottom));z-index:3;transform:translateX(-50%);margin:0;padding:5px 12px;border-radius:20px;background:rgba(0,0,0,.35);white-space:nowrap}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-close{z-index:5}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-prev,.hanabi-lightbox.is-video-mode .hanabi-lightbox-next{z-index:5}
@media(max-width:899px){
  .hanabi-lightbox.is-video-mode{background:#000}
  .hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{padding:0}
  .hanabi-lightbox.is-video-mode .hanabi-lightbox-video{width:100vw;height:100svh;max-width:none;max-height:none}
  .hanabi-lightbox.is-video-mode .hanabi-lightbox-close{right:12px;top:calc(10px + env(safe-area-inset-top))}
  .hanabi-lightbox.is-video-mode .hanabi-lightbox-prev,.hanabi-lightbox.is-video-mode .hanabi-lightbox-next{bottom:calc(14px + env(safe-area-inset-bottom));background:rgba(20,20,20,.66)}
}

/* v5.4 cast manager */
.cast-description{margin:.35em 0 .65em;color:#776a58;font-size:13px;line-height:1.7}

/* v5.6 HANABI AutoPilot */
.hanabi-live-notice{position:relative;z-index:80;margin-top:92px;padding:10px 18px;background:linear-gradient(135deg,#2d2112,#916425);color:#fff;box-shadow:0 8px 24px rgba(55,35,8,.18)}
.hanabi-live-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:center;gap:16px;min-height:48px}
.hanabi-live-badge{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;font-weight:700;letter-spacing:.08em}.hanabi-live-badge b{display:grid;place-items:center;width:28px;height:28px;border:1px solid rgba(255,255,255,.45);border-radius:50%}.hanabi-live-notice p{margin:0;line-height:1.5}.hanabi-live-notice a{padding:7px 13px;border:1px solid rgba(255,255,255,.6);border-radius:999px;white-space:nowrap;font-size:12px}.hanabi-live-vacant{background:linear-gradient(135deg,#184b35,#398a60)}.hanabi-live-full{background:linear-gradient(135deg,#4b1720,#9d3546)}.hanabi-live-event{background:linear-gradient(135deg,#31205a,#9a5b30)}.hanabi-live-recruit{background:linear-gradient(135deg,#5a2047,#ad5c8f)}
.hanabi-live-notice+.hero,.hanabi-live-notice+.hero-mobile{margin-top:0}
@media(max-width:899px){.hanabi-live-notice{margin-top:0;padding:10px 12px}.hanabi-live-inner{display:grid;grid-template-columns:auto 1fr;gap:6px 10px;justify-content:stretch;min-height:58px}.hanabi-live-badge{font-size:12px}.hanabi-live-notice p{font-size:12px}.hanabi-live-notice a{grid-column:1/-1;text-align:center;padding:5px 10px}.hanabi-live-notice+.hero-mobile{height:calc(100svh - 78px)!important;min-height:580px!important}}


/* HANABI Announcement Manager v5.8 */
.hanabi-announcement-bar{position:relative;z-index:89;margin-top:92px;padding:10px 16px;background:var(--hanabi-announcement-bg,#8f6122);color:var(--hanabi-announcement-text,#fff);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.hanabi-announcement-bar.is-sticky{position:sticky;top:72px;z-index:89;margin-top:92px}
.hanabi-announcement-inner{max-width:1180px;margin:auto;display:flex;align-items:center;justify-content:center;gap:12px;min-height:44px}
.hanabi-announcement-icon{font-size:20px;line-height:1}.hanabi-announcement-bar p{margin:0;line-height:1.45;font-weight:700;letter-spacing:.04em;text-align:center}.hanabi-announcement-bar a{flex:0 0 auto;border:1px solid currentColor;border-radius:999px;padding:6px 14px;font-size:12px;font-weight:700}
.hanabi-announcement-preview{display:flex;align-items:center;gap:10px;margin-top:22px;padding:14px 16px;border-radius:10px;background:var(--hanabi-announcement-bg,#8f6122);color:var(--hanabi-announcement-text,#fff)}
@media(max-width:899px){.hanabi-announcement-bar{margin-top:0;padding:9px 12px}.hanabi-announcement-bar.is-sticky{top:72px;margin-top:0}.hanabi-announcement-inner{display:grid;grid-template-columns:auto 1fr auto;gap:8px;min-height:42px}.hanabi-announcement-bar p{font-size:12px;text-align:left}.hanabi-announcement-bar a{padding:5px 10px;font-size:11px}}
@media(max-width:480px){.hanabi-announcement-inner{grid-template-columns:auto 1fr}.hanabi-announcement-bar a{grid-column:1/-1;text-align:center}}

/* v6.0 AutoPilot integration */
body.hanabi-autopilot-active .event-content{animation:hanabiEventIn .6s ease both}@keyframes hanabiEventIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}


/* v6.2 Gallery & Reel Pro */
.hanabi-gallery-item{position:relative}.hanabi-gallery-badge{position:absolute;z-index:3;left:8px;top:8px;max-width:calc(100% - 16px);padding:4px 8px;border-radius:999px;background:rgba(34,25,15,.78);color:#fff;font:700 9px/1.2 sans-serif;letter-spacing:.08em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;backdrop-filter:blur(5px)}
.hanabi-media-card-tags{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.hanabi-media-card-tags span{display:inline-block;padding:3px 8px;border-radius:999px;background:#f1e6d1;color:#76511d;font-size:11px}.hanabi-media-featured-check{display:flex!important;align-items:center;gap:8px;padding:12px;border-radius:10px;background:#fff8e8}.hanabi-media-featured-check input{width:auto!important}

/* ==========================================================
   v6.4.3 Luminous Space Rebuild
   Rebuilt from v6.3.3. The hero/header visual treatment is
   intentionally untouched. This layer redesigns only the
   content area below the first view.
   ========================================================== */
:root{
  --lux-ivory:#fffdfa;
  --lux-pearl:#fbf6ed;
  --lux-champagne:#ead8b2;
  --lux-gold:#a9762e;
  --lux-deep:#5d431f;
  --lux-hairline:rgba(169,118,46,.24);
  --lux-shadow:0 28px 70px rgba(96,66,26,.10);
}
main{position:relative;isolation:isolate;background:var(--lux-ivory)}
main:before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:
  radial-gradient(ellipse 70% 18% at 92% 8%,rgba(232,204,153,.22),transparent 72%),
  radial-gradient(ellipse 60% 16% at 4% 30%,rgba(255,255,255,.96),transparent 72%),
  radial-gradient(ellipse 58% 18% at 95% 58%,rgba(232,204,153,.16),transparent 74%),
  linear-gradient(180deg,#fffdfa 0%,#fbf6ee 34%,#fffdfa 62%,#faf3e7 100%)}
main>.section{overflow:hidden}
main>.section:not(.info):not(.cast):after{content:"";position:absolute;left:50%;bottom:0;width:min(78%,560px);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,var(--lux-hairline),transparent)}
.section-heading{position:relative;z-index:2;margin-bottom:38px;padding-left:21px}
.section-heading:before{content:"";position:absolute;left:0;top:3px;width:1px;height:56px;background:linear-gradient(180deg,transparent,var(--lux-gold),transparent)}
.section-heading:after{content:"";position:absolute;left:0;top:30px;width:72px;height:1px;background:linear-gradient(90deg,var(--lux-gold),transparent)}
.section-heading span{display:block;margin-bottom:7px;font-size:10px;letter-spacing:.36em}
.section-heading h2{position:relative;display:inline-block;margin:0;font-size:clamp(39px,11vw,62px);letter-spacing:.16em;text-shadow:0 10px 30px rgba(169,118,46,.08)}
.section-heading h2:after{content:"";position:absolute;right:-31px;top:52%;width:20px;height:20px;border:1px solid rgba(169,118,46,.25);border-radius:50%;transform:translateY(-50%)}

/* Gallery: a gallery room, not a loose grid floating in white space. */
.instagram{padding-top:104px;padding-bottom:112px}
.instagram:before{content:"GALLERY";position:absolute;right:-.08em;top:58px;font:400 18vw/1 Georgia,serif;letter-spacing:.03em;color:rgba(169,118,46,.045);white-space:nowrap;pointer-events:none}
.hanabi-gallery-intro{position:relative;margin:-2px 0 34px;padding:28px 24px 26px;border:1px solid var(--lux-hairline);background:linear-gradient(145deg,rgba(255,255,255,.90),rgba(250,242,227,.72));box-shadow:var(--lux-shadow)}
.hanabi-gallery-intro:before{content:"";position:absolute;left:14px;top:14px;width:38px;height:38px;border-left:1px solid rgba(169,118,46,.48);border-top:1px solid rgba(169,118,46,.48)}
.hanabi-gallery-intro:after{content:"";position:absolute;right:14px;bottom:14px;width:38px;height:38px;border-right:1px solid rgba(169,118,46,.48);border-bottom:1px solid rgba(169,118,46,.48)}
.hanabi-gallery-intro h3{position:relative;z-index:1;margin-top:.45em;font-size:18px;line-height:1.85}
.instagram-link{position:relative;z-index:1;color:var(--lux-deep);border-bottom:1px solid rgba(169,118,46,.45);padding-bottom:3px}
.hanabi-native-gallery{position:relative;padding:7px;background:rgba(255,255,255,.76);border:1px solid rgba(169,118,46,.20);box-shadow:0 22px 60px rgba(82,56,20,.09)}
.hanabi-native-gallery:before{content:"";position:absolute;z-index:4;inset:7px;pointer-events:none;border:1px solid rgba(255,255,255,.62)}
.hanabi-gallery-item:nth-child(1),.hanabi-gallery-item:nth-child(6){transform:translateY(-6px)}
.hanabi-gallery-note{padding-left:18px;border-left:1px solid rgba(169,118,46,.45);line-height:1.8}

/* About: editorial composition with a floating paper panel. */
.about{padding-top:112px;padding-bottom:128px}
.about:before{content:"02";position:absolute;right:17px;top:70px;font:italic 108px/1 Georgia,serif;color:rgba(169,118,46,.065)}
.about-copy{position:relative;z-index:4;margin:0 0 -58px 18px;padding:30px 28px 28px;background:rgba(255,253,249,.92);border:1px solid rgba(169,118,46,.25);box-shadow:0 28px 72px rgba(80,53,17,.14);backdrop-filter:blur(9px)}
.about-copy:after{content:"HANABI";display:block;margin-top:24px;font:10px Georgia,serif;letter-spacing:.5em;color:rgba(169,118,46,.65)}
.about-copy .lead{margin-top:0;font-size:20px;line-height:2.05;color:#4f3a20}
.about-copy .text-link{margin-bottom:0}
.about-visual{z-index:1;margin:0 -22px 0 0;border-radius:0 0 0 92px;box-shadow:0 34px 80px rgba(91,61,19,.16)}
.about-visual:before{inset:18px 18px 18px 36px;border-color:rgba(255,255,255,.72);border-radius:0 0 0 70px}
.about-visual:after{content:"";position:absolute;z-index:2;left:0;right:0;top:0;height:32%;background:linear-gradient(180deg,rgba(255,253,249,.38),transparent);pointer-events:none}

/* Information: a refined vertical timeline. */
.info{padding-top:112px;padding-bottom:112px}
.info-grid{position:relative;gap:0;padding-left:25px}
.info-grid:before{content:"";position:absolute;left:7px;top:26px;bottom:26px;width:1px;background:linear-gradient(180deg,transparent,var(--lux-gold) 12%,var(--lux-gold) 88%,transparent)}
.info-card{margin:0 0 18px;padding:27px 25px 25px 28px;border:0;border-bottom:1px solid var(--lux-hairline);background:rgba(255,255,255,.62);box-shadow:none;backdrop-filter:blur(5px)}
.info-card:before{content:"";position:absolute;left:-22px;top:33px;width:9px;height:9px;border:1px solid var(--lux-gold);border-radius:50%;background:var(--lux-ivory);box-shadow:0 0 0 6px rgba(169,118,46,.07)}
.info-card>span{right:16px;top:10px;font-size:38px;color:rgba(169,118,46,.10)}
.info-card b{font-size:20px;letter-spacing:.18em}
.info-map{margin:8px 0 28px;border:1px solid var(--lux-hairline);box-shadow:0 14px 42px rgba(114,76,24,.07);overflow:hidden;background:#fff}
.info-map iframe{display:block;width:100%;height:320px}
.info-map-button{display:flex;align-items:center;justify-content:center;width:100%;min-height:64px;margin:0 0 18px;padding:14px 22px;border:1px solid #9a6928;background:linear-gradient(135deg,#b8873c,#8c5f20);color:#fff;letter-spacing:.08em;text-align:center;box-shadow:0 14px 34px rgba(114,76,24,.16)}
.info-map-button b{margin-left:10px;font-weight:400}

/* Contact: luminous concierge panel. */
.contact-section{padding-top:112px;padding-bottom:122px}
.contact-section:before{content:"";position:absolute;left:-100px;top:120px;width:310px;height:310px;border-radius:50%;background:radial-gradient(circle,rgba(234,216,178,.34),transparent 68%);filter:blur(8px)}
.contact-panel{position:relative;padding:42px 26px 36px;border:1px solid rgba(169,118,46,.34);background:linear-gradient(135deg,rgba(255,255,255,.96),rgba(248,237,216,.84));box-shadow:0 30px 80px rgba(92,62,20,.12);overflow:hidden}
.contact-panel:before{content:"CONCIERGE";position:absolute;right:-12px;top:10px;font:400 44px/1 Georgia,serif;letter-spacing:.08em;color:rgba(169,118,46,.055)}
.contact-panel:after{content:"";position:absolute;right:-58px;bottom:-92px;width:210px;height:210px;border:1px solid rgba(169,118,46,.15);border-radius:50%;box-shadow:0 0 0 26px rgba(169,118,46,.035),0 0 0 52px rgba(169,118,46,.025)}
.contact-panel>p,.contact-links{position:relative;z-index:1}
.contact-links .btn{flex:1 1 190px;min-height:60px;background:rgba(255,255,255,.72);box-shadow:0 12px 32px rgba(86,57,17,.07)}

/* Cast: a pale champagne runway with cards that feel intentional. */
.cast{padding-top:110px;padding-bottom:120px;background:linear-gradient(155deg,rgba(248,240,224,.78),rgba(255,255,255,.62) 48%,rgba(236,219,185,.45))}
.cast:before{content:"CAST";position:absolute;left:-.04em;bottom:18px;font:400 29vw/.8 Georgia,serif;letter-spacing:-.02em;color:rgba(169,118,46,.045);pointer-events:none}
.cast .section-heading{position:relative;z-index:2;padding-left:43px}
.cast-scroll{position:relative;z-index:2;gap:20px;padding-top:4px;padding-bottom:42px}
.cast-card{border:0;background:rgba(255,255,255,.92);box-shadow:0 30px 72px rgba(79,53,18,.15)}
.cast-card:nth-child(even){transform:translateY(28px)}
.cast-photo{position:relative}
.cast-photo:after{content:"";position:absolute;inset:14px;border:1px solid rgba(255,255,255,.68);pointer-events:none}
.cast-meta{position:relative;padding:23px 22px 27px;border-top:1px solid rgba(169,118,46,.17)}
.cast-meta:after{content:"";position:absolute;right:22px;top:25px;width:34px;height:1px;background:var(--lux-gold)}

/* Event: present the poster as a framed feature, not an interruption. */
.event-poster{width:calc(100% - 32px);margin:86px 16px 96px!important;padding:8px;background:rgba(255,255,255,.88);border:1px solid rgba(169,118,46,.30);box-shadow:0 32px 82px rgba(83,56,19,.15)}
.event-poster:before{content:"EVENT";position:absolute;z-index:2;left:18px;top:-42px;font:400 13px Georgia,serif;letter-spacing:.48em;color:var(--lux-gold)}
.event-poster:after{content:"";position:absolute;z-index:2;left:18px;right:18px;top:-18px;height:1px;background:linear-gradient(90deg,var(--lux-gold),transparent 70%)}
.event-poster-image{position:relative;z-index:1}

/* News: individual editorial rows with depth and breathing rhythm. */
.news{padding-top:112px;padding-bottom:145px}
.news:before{content:"NEWS";position:absolute;right:-.04em;top:90px;font:400 26vw/1 Georgia,serif;color:rgba(169,118,46,.045)}
.news-list{position:relative;z-index:1;border-top:0}
.news-item{position:relative;margin-bottom:12px;padding:24px 19px 24px 22px;border:1px solid rgba(169,118,46,.19);background:rgba(255,255,255,.70);box-shadow:0 12px 34px rgba(86,57,18,.055)}
.news-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:linear-gradient(180deg,transparent,var(--lux-gold),transparent)}
.news-item time{font-size:11px;letter-spacing:.08em}
.news-item b{font-size:18px}

@media(min-width:900px){
  main>.section{padding-left:max(7vw,70px);padding-right:max(7vw,70px)}
  .hanabi-native-gallery{grid-template-columns:repeat(4,minmax(0,1fr));padding:12px;gap:12px}
  .about{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(480px,1.2fr);align-items:center;gap:0}
  .about .section-heading{grid-column:1/-1}
  .about-copy{grid-column:1;grid-row:2;margin:0 -72px 0 0;padding:46px 48px}
  .about-visual{grid-column:2;grid-row:2;margin:0;border-radius:0 0 0 130px}
  .info-grid{grid-template-columns:repeat(3,1fr);padding:0;gap:18px}
  .info-grid:before{display:none}
  .info-card{border:1px solid var(--lux-hairline);padding:34px 28px}
  .info-card:before{display:none}
  .event-poster{max-width:1180px!important;margin:112px auto 120px!important}
  .news-list{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
  .news-item{grid-template-columns:1fr 24px;align-content:start;min-height:160px}
  .news-item time{grid-column:1/-1}
}

@media(max-width:899px){
  .section{padding-left:22px;padding-right:22px}
  .section-heading{margin-bottom:34px}
  .instagram{padding-top:92px;padding-bottom:104px}
  .hanabi-gallery-intro{padding:27px 22px 25px}
  .hanabi-native-gallery{margin-left:-8px;margin-right:-8px}
  .about{padding-top:102px;padding-bottom:116px}
  .about-copy{margin-left:10px;margin-right:-4px;padding:28px 24px 25px}
  .about-visual{margin-right:-22px}
  .about-visual img{height:68svh;min-height:500px}
  .info{padding-top:96px;padding-bottom:98px}
  .contact-section{padding-top:98px;padding-bottom:108px}
  .contact-panel{padding:37px 22px 32px}
  .contact-links{gap:10px}
  .contact-links .btn{width:100%}
  .cast{padding-top:98px;padding-bottom:118px}
  .cast-card{flex-basis:79vw!important}
  .event-poster{margin-top:82px!important;margin-bottom:92px!important}
  .news{padding-top:100px;padding-bottom:132px}
}

@media(max-width:420px){
  .section-heading h2{font-size:38px}
  .about-copy{margin-bottom:-48px}
  .about-copy .lead{font-size:18px}
  .cast-card:nth-child(even){transform:translateY(20px)}
  .news-item{grid-template-columns:78px 1fr 18px}
}

/* v6.4.4 precise refinement: preserve hero mist, delay glass header, dynamic ghost titles. */
.brand-main{display:inline-block}.brand-jp{display:inline-block;margin-left:.65em;font-size:.58em;letter-spacing:.16em;vertical-align:.12em}
.section-heading{isolation:isolate}
.section-heading::before{content:attr(data-title);position:absolute;z-index:-1;left:0;top:-.2em;font:400 clamp(72px,18vw,150px)/.85 Georgia,serif;letter-spacing:.02em;color:rgba(169,118,46,.045);white-space:nowrap;pointer-events:none}
.instagram:before,.about:before,.cast:before,.news:before{content:none!important}

.event-section{padding-top:108px;padding-bottom:112px;background:linear-gradient(155deg,rgba(248,240,224,.54),rgba(255,255,255,.72))}
.event-section .section-heading{margin-bottom:34px}
.event-poster{position:relative;width:100%;margin:0!important;padding:8px;background:rgba(255,255,255,.88);border:1px solid rgba(169,118,46,.30);box-shadow:0 30px 72px rgba(83,56,19,.13)}
.event-poster:before,.event-poster:after{content:none!important}

/* Venue photo remains fully visible. The description is a separate card below it. */
.about{display:flex!important;flex-direction:column!important;gap:24px!important}
.about .section-heading{order:1;width:100%}
.about-visual{order:2!important;margin:0!important;width:100%!important;border-radius:26px!important;overflow:hidden!important;box-shadow:0 24px 58px rgba(91,61,19,.13)!important}
.about-visual:before{inset:14px!important;border-radius:18px!important}
.about-visual:after{height:20%!important}
.about-copy{order:3!important;margin:0!important;width:100%!important;padding:28px 24px 26px!important;border-radius:22px;background:rgba(255,253,249,.82)!important;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 18px 46px rgba(80,53,17,.09)!important}

@media(max-width:899px){
  .site-header{transition:height .35s ease,background .35s ease,box-shadow .35s ease,left .35s ease,right .35s ease,top .35s ease,border-radius .35s ease!important}
  .site-header.is-scrolled{top:10px!important;left:12px!important;right:12px!important;height:72px!important;border-radius:28px!important;background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(255,248,235,.56))!important;border:1px solid rgba(255,255,255,.78)!important;box-shadow:0 12px 34px rgba(83,56,19,.12),inset 0 1px 0 rgba(255,255,255,.92)!important;backdrop-filter:blur(18px) saturate(135%)!important;-webkit-backdrop-filter:blur(18px) saturate(135%)!important}
  .site-header.is-scrolled .brand{visibility:visible!important;font-size:19px!important}
  .site-header.is-scrolled .brand small{font-size:7px!important;margin-top:5px!important}
  .site-header.is-scrolled .brand-jp{font-size:.56em!important}
  .event-section{padding-top:96px;padding-bottom:102px}
  .event-poster{width:100%!important;margin:0!important}
  .about{padding-top:102px;padding-bottom:112px}
  .about-visual img{height:auto!important;min-height:0!important;aspect-ratio:4/5;object-fit:cover}
}

@media(min-width:900px){
  .about{display:grid!important;grid-template-columns:1.08fr .92fr!important;gap:42px!important;align-items:center!important}
  .about .section-heading{grid-column:1/-1!important;order:initial}
  .about-visual{grid-column:1!important;grid-row:2!important}
  .about-copy{grid-column:2!important;grid-row:2!important}
  .event-poster{max-width:1180px!important;margin:0 auto!important}
}


/* v6.5.6: reliable mobile taps for fixed recruitment action */
@media(max-width:899px){
  .hanabi-fixed-actions{z-index:9998!important;isolation:isolate!important;}
  .hanabi-fixed-actions a{
    position:relative!important;
    z-index:2!important;
    min-height:76px!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-tap-highlight-color:rgba(184,134,53,.18)!important;
    user-select:none!important;
    -webkit-user-select:none!important;
  }
  .hanabi-fixed-actions .store-button{
    cursor:pointer!important;
  }
  body.menu-open .hanabi-fixed-actions{
    pointer-events:none!important;
  }
}

/* v6.5.8: keep the gallery viewer above every fixed site element on mobile. */
body.hanabi-lightbox-open .site-header,
body.hanabi-lightbox-open .hanabi-fixed-actions,
body.hanabi-lightbox-open .hanabi-announcement-bar,
body.hanabi-lightbox-open .hanabi-live-notice{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
}
body.hanabi-lightbox-open .hanabi-lightbox{
  z-index:2147483647!important;
}
body.hanabi-lightbox-open .hanabi-lightbox-close{
  z-index:2147483647!important;
  display:grid!important;
  place-items:center!important;
  top:calc(12px + env(safe-area-inset-top))!important;
  right:14px!important;
  width:52px!important;
  height:52px!important;
  background:rgba(0,0,0,.72)!important;
  border:1px solid rgba(255,255,255,.72)!important;
  color:#fff!important;
}


/* v6.5.9 TOP LOGO: polished metallic gold */
:root{
  --hanabi-metal-gold:linear-gradient(105deg,
    #5f3909 0%,
    #a66d16 10%,
    #f6dfa0 22%,
    #fff7cf 31%,
    #c9912f 42%,
    #75460c 52%,
    #d9aa4e 64%,
    #fff3bd 76%,
    #a16b17 89%,
    #5b3508 100%);
}
body.home .brand-main,
body.home .brand-jp,
body.home .hero h1,
body.home .hero h1 span,
body.home .hero-mobile h1,
.hero-mobile-title,
body.home .hero-mobile h1 span,.hero-mobile-title span{
  color:#b27a20;
  background-image:var(--hanabi-metal-gold);
  background-size:240% 100%;
  background-position:0 50%;
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  filter:drop-shadow(0 1px 0 rgba(255,255,255,.95)) drop-shadow(0 2px 2px rgba(76,43,3,.30));
  text-shadow:none!important;
  animation:hanabiMetalSweep 7s ease-in-out infinite;
}
body.home .brand-main,
body.home .brand-jp{
  -webkit-text-stroke:.25px rgba(90,51,5,.42);
}
body.home .hero h1,
body.home .hero-mobile h1,.hero-mobile-title{
  -webkit-text-stroke:.45px rgba(91,52,5,.44);
}
body.home .hero h1 span,
body.home .hero-mobile h1 span,.hero-mobile-title span{
  -webkit-text-stroke:.3px rgba(91,52,5,.38);
}
body.home .brand small{
  color:#8d6226;
  text-shadow:0 1px 0 rgba(255,255,255,.92);
}
@keyframes hanabiMetalSweep{
  0%,18%{background-position:0 50%}
  48%,62%{background-position:100% 50%}
  100%{background-position:0 50%}
}
@media(prefers-reduced-motion:reduce){
  body.home .brand-main,
  body.home .brand-jp,
  body.home .hero h1,
  body.home .hero h1 span,
  body.home .hero-mobile h1,
  .hero-mobile-title,
  body.home .hero-mobile h1 span,.hero-mobile-title span{animation:none;background-position:48% 50%}
}


/* v7.0.16: consolidated mobile bottom-action state machine.
   Replaces overlapping v6.6.3/v6.6.4 declarations while preserving the final Safari-safe behaviour. */
@media(max-width:899px){
  .hanabi-fixed-actions,
  .hanabi-fixed-actions.is-preparing{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translate3d(0,34px,0)!important;
    transition:opacity .62s ease,transform .62s cubic-bezier(.22,.75,.24,1),visibility 0s linear .62s!important;
    will-change:opacity,transform;
  }
  .hanabi-fixed-actions.is-visible{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:translate3d(0,0,0)!important;
    transition-delay:0s!important;
    animation:hanabiActionsEnter .68s cubic-bezier(.18,.78,.22,1) both!important;
  }
  .hanabi-fixed-actions.is-leaving{
    opacity:0!important;
    visibility:visible!important;
    pointer-events:none!important;
    transform:translate3d(0,34px,0)!important;
    animation:none!important;
    transition:opacity .5s ease,transform .5s cubic-bezier(.4,0,.6,1),visibility 0s linear .5s!important;
  }
  .hanabi-fixed-actions .store-button,
  .hanabi-fixed-actions .contact-button{
    position:relative!important;
    z-index:5!important;
    cursor:pointer!important;
    pointer-events:auto!important;
    touch-action:manipulation!important;
    -webkit-user-drag:none!important;
  }
  .hanabi-fixed-actions .store-button::before,
  .hanabi-fixed-actions .store-button::after,
  .hanabi-fixed-actions .contact-button::before,
  .hanabi-fixed-actions .contact-button::after{pointer-events:none!important}
}
@keyframes hanabiActionsEnter{
  0%{opacity:0;transform:translate3d(0,34px,0)}
  45%{opacity:.42}
  100%{opacity:1;transform:translate3d(0,0,0)}
}
/* Keep this requested navigation animation active even with Reduce Motion enabled. */
@media(prefers-reduced-motion:reduce) and (max-width:899px){
  .hanabi-fixed-actions{transition-duration:.62s,.62s,0s!important}
}

/* v6.6.7 image delivery and below-fold rendering optimisation */
.cast-photo img.hanabi-cast-image{background:#f8efe3}
@media (max-width:899px){
  .event-section,.news{content-visibility:auto;contain-intrinsic-size:auto 900px}
}

.news-empty{padding:24px 0;border-bottom:1px solid var(--line);color:#8a7b68;}

/* V7.0.14 pending visual refinements marker */

/* Selected Instagram post viewer */
.hanabi-lightbox-instagram{width:min(540px,94vw);height:min(82vh,760px);border:0;border-radius:14px;background:#fff;display:block}
.hanabi-lightbox-instagram[hidden]{display:none!important}
.hanabi-lightbox.is-instagram-mode .hanabi-lightbox-stage{width:min(560px,96vw);height:min(86vh,800px);display:flex;align-items:center;justify-content:center}
@media(max-width:600px){.hanabi-lightbox-instagram{width:94vw;height:78vh;border-radius:10px}}

/* Selected Instagram item fallback. Never reuse an unrelated local gallery image. */
.hanabi-instagram-placeholder{display:flex;width:100%;height:100%;min-height:150px;align-items:center;justify-content:center;flex-direction:column;gap:.25rem;background:linear-gradient(145deg,#fffaf1,#efe1c6);color:#9b6f2f;letter-spacing:.12em;text-align:center}
.hanabi-instagram-placeholder strong{font-family:serif;font-size:clamp(.75rem,2.4vw,1.05rem);font-weight:500}
.hanabi-instagram-placeholder small{font-size:.62rem;letter-spacing:.08em}


/* STEP4: unified in-page viewer for images, WordPress MP4 and selected Instagram posts */
html.hanabi-lightbox-open,body.hanabi-lightbox-open{overflow:hidden!important;overscroll-behavior:none}
.hanabi-lightbox-loading{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);padding:.7rem 1rem;border-radius:999px;background:rgba(20,16,12,.82);color:#fff;font-size:.78rem;letter-spacing:.08em;pointer-events:none}
.hanabi-lightbox-loading[hidden]{display:none!important}
.hanabi-lightbox-image,.hanabi-lightbox-video{object-fit:contain}
.hanabi-lightbox-video{background:#000}
.hanabi-lightbox-stage{position:relative}
.hanabi-lightbox-instagram{max-width:100%;max-height:100%;box-shadow:0 18px 60px rgba(0,0,0,.28)}
@media(max-width:600px){.hanabi-lightbox-close{top:max(12px,env(safe-area-inset-top));right:12px}.hanabi-lightbox-stage{overscroll-behavior:contain}}

/* STEP7: resilient Instagram fallback inside the unified lightbox */
.hanabi-lightbox-external{display:inline-flex;align-items:center;justify-content:center;min-height:44px;margin:14px auto 0;padding:10px 18px;border:1px solid rgba(255,255,255,.5);border-radius:999px;color:#fff;background:rgba(0,0,0,.5);font-weight:700;text-decoration:none;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.hanabi-lightbox-external[hidden]{display:none!important}
.hanabi-lightbox-external:focus-visible{outline:3px solid #fff;outline-offset:3px}
.hanabi-lightbox-prev[hidden],.hanabi-lightbox-next[hidden]{display:none!important}

/* STEP8: gallery viewer counter and stable metadata area */
.hanabi-lightbox-meta{display:flex;flex-direction:column;align-items:center;gap:6px;max-width:min(88vw,760px);margin:12px auto 0;text-align:center}
.hanabi-lightbox-counter{display:inline-flex;align-items:center;justify-content:center;min-width:54px;padding:4px 10px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:rgba(0,0,0,.38);color:#fff;font-size:12px;line-height:1.2;letter-spacing:.08em}
.hanabi-lightbox-meta .hanabi-lightbox-caption{margin:0}
@media (prefers-reduced-motion: reduce){.hanabi-lightbox *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* STEP9: stable gallery fallbacks and keyboard-visible controls */
.hanabi-gallery-item.has-no-poster{background:linear-gradient(145deg,#fbf7ef,#ead8b5);display:grid;place-items:center;overflow:hidden}
.hanabi-gallery-poster-fallback{display:flex;min-height:100%;width:100%;align-items:center;justify-content:center;flex-direction:column;gap:.25rem;color:#7c5722;letter-spacing:.08em;text-align:center}
.hanabi-gallery-poster-fallback strong{font-family:serif;font-size:clamp(.9rem,3vw,1.25rem);font-weight:600}
.hanabi-gallery-poster-fallback small{font-size:.62rem;letter-spacing:.22em}
.hanabi-gallery-item:focus-visible,.hanabi-lightbox button:focus-visible,.hanabi-lightbox a:focus-visible{outline:3px solid #d4a850;outline-offset:3px}
.hanabi-lightbox-image.is-load-error{display:none!important}


/* Step 10: MP4 first-frame thumbnails */
.hanabi-gallery-video-thumb{width:100%;height:100%;display:block;object-fit:cover;background:#eadfc9;pointer-events:none;opacity:0;transition:opacity .2s ease}
.hanabi-gallery-video-thumb.is-ready{opacity:1}
.hanabi-gallery-item.has-no-poster .hanabi-gallery-video-thumb{opacity:0}

/* STEP14: render the selected WordPress MP4 itself as the gallery thumbnail. */
.hanabi-gallery-item.is-video .hanabi-gallery-video-thumb{opacity:1;background:#111}
.hanabi-gallery-item.has-no-poster .hanabi-gallery-video-thumb{opacity:1}

/* STEP15: Keep the sixth gallery tile (video slot) perfectly aligned with the grid. */
.hanabi-native-gallery .hanabi-gallery-item:nth-child(6){
  transform:none !important;
}
.hanabi-native-gallery .hanabi-gallery-item.is-video > video,
.hanabi-native-gallery .hanabi-gallery-video-thumb{
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
}

/* STEP16: Force every gallery tile and media surface to exactly the same size. */
.hanabi-native-gallery{
  align-items:stretch;
}
.hanabi-native-gallery .hanabi-gallery-item{
  width:100%;
  min-width:0;
  aspect-ratio:1 / 1;
  transform:none !important;
}
.hanabi-native-gallery .hanabi-gallery-item > img,
.hanabi-native-gallery .hanabi-gallery-item > video{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  max-width:none;
  max-height:none;
  object-fit:cover;
  object-position:center center;
}

/* STEP17: conservative mobile rendering optimisation.
   Below-the-fold sections are skipped until near the viewport, while keeping
   their estimated space to prevent layout jumps. */
@supports (content-visibility:auto){
  body.home main > section:not(.hero):not(.gallery-section),
  body.home .gallery-section{
    content-visibility:auto;
    contain-intrinsic-size:auto 900px;
  }
  body.home .gallery-section{contain-intrinsic-size:auto 760px}
}

/* Keep media composited inside its own tile during scroll. */
.hanabi-gallery-item{contain:layout paint style}
.hanabi-gallery-item>img,
.hanabi-gallery-item>video{backface-visibility:hidden}

/* STEP18: clearly visible gallery zoom and blackout animation. */
.hanabi-lightbox{
  --hanabi-lightbox-origin-x:0px;
  --hanabi-lightbox-origin-y:0px;
  --hanabi-lightbox-origin-scale:.24;
  background:rgba(4,4,6,0);
  transition:background-color .38s cubic-bezier(.22,.72,.18,1),opacity .38s ease,visibility .38s ease;
}
.hanabi-lightbox.is-open{background:rgba(4,4,6,.96)}
.hanabi-lightbox .hanabi-lightbox-stage{
  opacity:0;
  transform:translate3d(var(--hanabi-lightbox-origin-x),var(--hanabi-lightbox-origin-y),0) scale(var(--hanabi-lightbox-origin-scale));
  transform-origin:center center;
  transition:transform .42s cubic-bezier(.2,.78,.18,1),opacity .3s ease;
  will-change:transform,opacity;
}
.hanabi-lightbox.is-expanded .hanabi-lightbox-stage{
  opacity:1;
  transform:translate3d(0,0,0) scale(1);
}
.hanabi-lightbox .hanabi-lightbox-close,
.hanabi-lightbox .hanabi-lightbox-prev,
.hanabi-lightbox .hanabi-lightbox-next{
  opacity:0;
  transition:opacity .22s ease .18s,transform .3s ease .12s;
}
.hanabi-lightbox .hanabi-lightbox-close{transform:scale(.72) rotate(-12deg)}
.hanabi-lightbox.is-expanded .hanabi-lightbox-close,
.hanabi-lightbox.is-expanded .hanabi-lightbox-prev,
.hanabi-lightbox.is-expanded .hanabi-lightbox-next{opacity:1}
.hanabi-lightbox.is-expanded .hanabi-lightbox-close{transform:scale(1) rotate(0)}
.hanabi-lightbox.is-closing{background:rgba(4,4,6,0)}
.hanabi-lightbox.is-closing .hanabi-lightbox-close,
.hanabi-lightbox.is-closing .hanabi-lightbox-prev,
.hanabi-lightbox.is-closing .hanabi-lightbox-next{opacity:0;transition-delay:0s}
@media (prefers-reduced-motion:reduce){
  .hanabi-lightbox,.hanabi-lightbox .hanabi-lightbox-stage,.hanabi-lightbox .hanabi-lightbox-close,.hanabi-lightbox .hanabi-lightbox-prev,.hanabi-lightbox .hanabi-lightbox-next{transition:none!important}
  .hanabi-lightbox .hanabi-lightbox-stage{transform:none!important;opacity:1!important}
}


/* STEP20: true thumbnail-to-screen FLIP animation. */
.hanabi-flight-clone{
  position:fixed;
  z-index:2147483647;
  margin:0;
  padding:0;
  display:block;
  object-fit:cover;
  pointer-events:none;
  overflow:hidden;
  background:#111;
  box-shadow:0 24px 80px rgba(0,0,0,.5);
  transform:translateZ(0);
  will-change:left,top,width,height,border-radius;
}
.hanabi-lightbox.is-flight-active .hanabi-lightbox-stage{opacity:0!important}
.hanabi-lightbox.is-expanded:not(.is-flight-active) .hanabi-lightbox-stage{opacity:1!important}
.hanabi-lightbox{transition:background-color .62s ease!important}
.hanabi-lightbox.is-open{background-color:rgba(0,0,0,.94)!important}
.hanabi-lightbox.is-closing{background-color:rgba(0,0,0,0)!important}

/* STEP21: visible thumbnail-first opening. The tile moves before the backdrop appears. */
.hanabi-flight-clone{
  position:fixed;
  z-index:2147483647;
  display:block;
  overflow:hidden;
  pointer-events:none;
  transform-origin:0 0;
  background:#111;
  box-shadow:0 10px 34px rgba(0,0,0,.22);
  contain:layout paint style;
  will-change:transform,border-radius;
}
.hanabi-flight-clone > .hanabi-gallery-item{
  display:block!important;
  width:100%!important;
  height:100%!important;
  aspect-ratio:auto!important;
  border:0!important;
  overflow:hidden!important;
}
.hanabi-flight-clone img,
.hanabi-flight-clone video{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  transform:none!important;
  filter:none!important;
}
.hanabi-lightbox.is-open{
  background-color:rgba(0,0,0,0)!important;
}
.hanabi-lightbox.is-open.is-backdrop-visible{
  background-color:rgba(0,0,0,.94)!important;
}
.hanabi-lightbox.is-preparing .hanabi-lightbox-stage,
.hanabi-lightbox.is-flight-active .hanabi-lightbox-stage{
  opacity:0!important;
  visibility:hidden!important;
}
.hanabi-lightbox.is-expanded:not(.is-flight-active) .hanabi-lightbox-stage{
  opacity:1!important;
  visibility:visible!important;
  transition:opacity .16s linear!important;
}

/* HANABI Gallery Animation V2
 * Faster iPhone-safe thumbnail flight with a soft hand-off to the real viewer.
 */
.hanabi-gallery-item{
  -webkit-tap-highlight-color:transparent;
  transition:transform .14s ease,filter .2s ease;
}
.hanabi-gallery-item:active{transform:scale(.975)}
.hanabi-gallery-item.is-gallery-opening{visibility:hidden}
.hanabi-lightbox{
  background-color:rgba(0,0,0,0)!important;
  transition:background-color .34s cubic-bezier(.2,.72,.22,1),visibility 0s linear .35s!important;
}
.hanabi-lightbox.is-open{transition-delay:0s!important}
.hanabi-lightbox.is-open.is-backdrop-visible{background-color:rgba(0,0,0,.94)!important}
.hanabi-lightbox.is-closing{background-color:rgba(0,0,0,0)!important}
.hanabi-lightbox.is-preparing .hanabi-lightbox-stage,
.hanabi-lightbox.is-flight-active .hanabi-lightbox-stage{
  opacity:0!important;
  visibility:hidden!important;
  transform:none!important;
}
.hanabi-lightbox.is-expanded:not(.is-flight-active) .hanabi-lightbox-stage{
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
  transition:opacity .12s linear!important;
}
.hanabi-flight-clone.hanabi-flight-v2{
  position:fixed;
  z-index:2147483647;
  display:block;
  overflow:hidden;
  pointer-events:none;
  transform-origin:0 0;
  background:#111;
  box-shadow:0 18px 64px rgba(0,0,0,.42);
  contain:layout paint style;
  will-change:transform,border-radius,opacity;
  backface-visibility:hidden;
  -webkit-backface-visibility:hidden;
}
.hanabi-flight-v2>img,
.hanabi-flight-v2>video,
.hanabi-flight-v2>canvas{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:cover!important;
  transform:none!important;
  filter:none!important;
}
.hanabi-flight-v2>.hanabi-flight-fallback{
  width:100%!important;
  height:100%!important;
  margin:0!important;
  pointer-events:none!important;
}
.hanabi-flight-v2.is-handing-off{opacity:0;transition:opacity .1s linear}
@media (prefers-reduced-motion:reduce){
  .hanabi-gallery-item{transition:none!important}
  .hanabi-gallery-item.is-gallery-opening{visibility:visible}
  .hanabi-flight-v2{display:none!important}
}


/* v3.0.24: reel animation hand-off correction.
 * Reels morph into a 9:16 destination, use the same contained framing as the
 * viewer, and avoid the square-to-vertical snap at the end of the flight. */
.hanabi-flight-v2.is-video,
.hanabi-flight-v2.is-instagram{
  background:#000!important;
  border-radius:0;
}
.hanabi-flight-v2.is-video>img,
.hanabi-flight-v2.is-video>video,
.hanabi-flight-v2.is-video>canvas,
.hanabi-flight-v2.is-instagram>img,
.hanabi-flight-v2.is-instagram>video,
.hanabi-flight-v2.is-instagram>canvas{
  object-fit:contain!important;
  object-position:center center!important;
  background:#000!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-video{
  object-fit:contain!important;
  object-position:center center!important;
}
.hanabi-flight-v2.is-handing-off{
  opacity:0;
  transition:opacity .08s linear!important;
}

/* v3.0.25: preserve the centre-flight animation without stretching reel media.
 * The flight frame changes dimensions in JavaScript; the poster/video itself
 * always keeps its native aspect ratio. */
.hanabi-flight-v2.is-video > img,
.hanabi-flight-v2.is-video > video,
.hanabi-flight-v2.is-video > canvas,
.hanabi-flight-v2.is-instagram > img,
.hanabi-flight-v2.is-instagram > video,
.hanabi-flight-v2.is-instagram > canvas{
  object-fit:contain!important;
  object-position:center center!important;
  width:100%!important;
  height:100%!important;
  transform:none!important;
}

/* v3.0.26: continuous reel flight.
 * The clone and real viewer overlap during hand-off, eliminating the 80% pause
 * and final size jump seen on iPhone Safari. */
.hanabi-lightbox.is-expanded:not(.is-flight-active) .hanabi-lightbox-stage{
  transition:opacity .13s linear!important;
}
.hanabi-flight-v2.is-handing-off{
  opacity:0!important;
  transition:opacity .13s linear!important;
}

/* v3.0.27: synchronized reel travel and enlargement.
 * Reels are animated with a compositor transform and an opening vertical clip,
 * preventing iPhone Safari from completing translation before scaling. */
.hanabi-flight-v2.is-video,
.hanabi-flight-v2.is-instagram{
  will-change:transform,clip-path,opacity!important;
  transform-origin:50% 50%!important;
}


/* v3.0.28: reel flight targets the visible 9:16 content rectangle rather than
 * the viewport-sized video element. This removes the centre pause and final jump. */
.hanabi-flight-v2.is-video,
.hanabi-flight-v2.is-instagram{
  transition:none!important;
}

/* v3.0.29: exact full-screen reel destination and zero-pause hand-off. */


/* v3.0.30: single-geometry reel hand-off.
 * The real video element uses the exact same visible 9:16 rectangle as the
 * flight poster. Only opacity changes during hand-off; size never changes. */
.hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{
  width:min(100vw,calc(100svh * 9 / 16))!important;
  height:min(100svh,calc(100vw * 16 / 9))!important;
  max-width:none!important;
  max-height:none!important;
  padding:0!important;
  transform:none!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-video{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  object-position:center center!important;
  transform:none!important;
}
.hanabi-lightbox.is-preparing .hanabi-lightbox-stage,
.hanabi-lightbox.is-flight-active .hanabi-lightbox-stage,
.hanabi-lightbox.is-expanded .hanabi-lightbox-stage{
  transform:none!important;
}
.hanabi-flight-v2.is-video,
.hanabi-flight-v2.is-instagram{
  transition:opacity .12s linear!important;
}

/* HANABI Gallery Animation V3: animate the real reel, never a clone. */
.hanabi-lightbox.is-direct-flight .hanabi-lightbox-stage{
  opacity:1!important;
  transform:none!important;
}
.hanabi-lightbox.is-direct-flight .hanabi-lightbox-video{
  opacity:1!important;
  visibility:visible!important;
}
.hanabi-lightbox.is-direct-flight .hanabi-lightbox-close,
.hanabi-lightbox.is-direct-flight .hanabi-lightbox-prev,
.hanabi-lightbox.is-direct-flight .hanabi-lightbox-next,
.hanabi-lightbox.is-direct-flight .hanabi-lightbox-meta{
  opacity:0!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{
  overflow:hidden;
}

/* HANABI Gallery V4: true edge-to-edge reel viewer.
 * Override the older 9:16 constrained frame. The real video itself now fills
 * the entire visual viewport, so the opening animation and final viewer share
 * exactly the same full-screen destination. */
.hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  width:100dvw!important;
  height:100vh!important;
  height:100dvh!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  padding:0!important;
  border-radius:0!important;
  overflow:hidden!important;
  transform:none!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-video{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  margin:0!important;
  border-radius:0!important;
  object-fit:cover!important;
  object-position:center center!important;
  background:#000!important;
  transform:none!important;
}
@supports (height:100svh){
  .hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{
    height:100svh!important;
  }
}

/* HANABI Gallery V5: use the live iPhone visual viewport.
 * 100svh keeps the smallest Safari viewport and can leave an apparent strip.
 * These variables are refreshed from window.visualViewport while the reel is open. */
.hanabi-lightbox.is-video-mode{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:var(--hanabi-reel-vh,100dvh)!important;
  min-height:0!important;
  padding:0!important;
  margin:0!important;
  background:#000!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-stage{
  position:fixed!important;
  left:0!important;
  top:0!important;
  right:auto!important;
  bottom:auto!important;
  width:var(--hanabi-reel-vw,100vw)!important;
  height:var(--hanabi-reel-vh,100dvh)!important;
  min-height:0!important;
  max-height:none!important;
  padding:0!important;
  margin:0!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-video{
  inset:0!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
}
.hanabi-lightbox.is-video-mode .hanabi-lightbox-close{
  top:calc(10px + env(safe-area-inset-top))!important;
  right:12px!important;
}


/* v3.0.27 maximum first-view performance */
@media(max-width:899px){.hero-desktop .hero-slide:first-child img{loading:lazy}.section{content-visibility:auto;contain-intrinsic-size:800px}}
@media(min-width:900px){.hero-mobile{content-visibility:hidden}.section{content-visibility:auto;contain-intrinsic-size:700px}}
.hero-slide img,.hero-mobile-slide img{will-change:auto!important}

/* v3.1.0-stage1: crawlable principal-page footer navigation */
.footer-nav{display:flex;flex-wrap:wrap;justify-content:center;gap:10px 18px;margin:18px auto 20px}.footer-nav a{color:inherit;text-decoration:none;font-size:12px;letter-spacing:.14em}.footer-nav a:focus-visible,.footer-nav a:hover{text-decoration:underline;text-underline-offset:4px}

/* v4 stage 1: premium recruitment gateway on the home page */
.home-recruit{padding-top:clamp(64px,9vw,120px);padding-bottom:clamp(64px,9vw,120px);background:linear-gradient(145deg,#fff 0%,#fbf8f2 48%,#f2eadb 100%);color:#241d17;overflow:hidden}
.home-recruit-shell{position:relative;width:min(1120px,calc(100% - 40px));margin:auto;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,.75fr);gap:clamp(26px,5vw,70px);align-items:stretch}
.home-recruit-shell:before{content:"HANABI";position:absolute;right:-3vw;top:-90px;font-family:serif;font-size:clamp(90px,18vw,240px);line-height:1;color:rgba(166,126,58,.055);letter-spacing:.06em;pointer-events:none}
.home-recruit-copy,.home-recruit-aside{position:relative;z-index:1}
.home-recruit-label{display:inline-flex;align-items:center;gap:12px;font-size:11px;font-weight:700;letter-spacing:.28em;color:#98702f}
.home-recruit-label:before{content:"";width:44px;height:1px;background:currentColor}
.home-recruit h2{margin:20px 0 18px;font-family:serif;font-size:clamp(34px,5vw,66px);line-height:1.18;font-weight:500;letter-spacing:.04em}
.home-recruit-lead{max-width:690px;margin:0;color:#5f554c;font-size:clamp(14px,1.5vw,17px);line-height:2}
.home-recruit-pay{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;margin:30px 0 24px;padding:19px 22px;border-left:3px solid #b58a41;background:rgba(255,255,255,.75);box-shadow:0 16px 46px rgba(85,61,28,.08)}
.home-recruit-pay small{font-size:12px;letter-spacing:.16em}.home-recruit-pay strong{font-family:serif;font-size:clamp(27px,4vw,45px);font-weight:600;color:#8b6428}.home-recruit-pay span{padding:6px 10px;border:1px solid rgba(139,100,40,.35);border-radius:999px;font-size:11px;letter-spacing:.1em}
.home-recruit-points{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:0 0 30px;padding:0;list-style:none}
.home-recruit-points li{position:relative;padding:12px 10px 12px 30px;border:1px solid rgba(115,83,37,.14);background:rgba(255,255,255,.58);font-size:12px;line-height:1.45}
.home-recruit-points li:before{content:"✓";position:absolute;left:11px;color:#a57b38;font-weight:700}
.home-recruit-actions{display:flex;flex-wrap:wrap;gap:12px}.home-recruit-actions a{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:0 25px;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.08em;transition:transform .25s ease,box-shadow .25s ease,background .25s ease}
.home-recruit-primary{background:#9b7334;color:#fff;box-shadow:0 14px 32px rgba(105,74,29,.2)}.home-recruit-primary span{margin-left:18px}.home-recruit-secondary{border:1px solid #9b7334;color:#72501f;background:rgba(255,255,255,.65)}
.home-recruit-actions a:hover{transform:translateY(-2px)}.home-recruit-actions a:focus-visible{outline:3px solid rgba(155,115,52,.35);outline-offset:3px}
.home-recruit-aside{display:flex;flex-direction:column;justify-content:flex-end;min-height:420px;padding:34px;background:linear-gradient(165deg,rgba(43,35,27,.96),rgba(24,20,17,.98));color:#fff;box-shadow:0 28px 65px rgba(49,38,24,.2)}
.home-recruit-aside:before{content:"";position:absolute;inset:12px;border:1px solid rgba(215,184,124,.34);pointer-events:none}.home-recruit-aside-no{position:absolute;top:30px;right:30px;font-family:serif;font-size:64px;color:rgba(255,255,255,.09)}
.home-recruit-aside h3{margin:0 0 18px;font-family:serif;font-size:clamp(24px,3vw,34px);font-weight:500;line-height:1.4}.home-recruit-aside p{margin:0 0 25px;color:rgba(255,255,255,.72);font-size:13px;line-height:1.9}.home-recruit-aside a{align-self:flex-start;color:#dfc28d;text-underline-offset:5px;font-size:12px;letter-spacing:.08em}
@media(max-width:760px){.home-recruit-shell{width:min(100% - 28px,620px);grid-template-columns:1fr;gap:20px}.home-recruit h2{font-size:36px}.home-recruit-lead{line-height:1.85}.home-recruit-points{grid-template-columns:repeat(2,minmax(0,1fr))}.home-recruit-actions{display:grid;grid-template-columns:1fr 1fr}.home-recruit-actions a{padding:0 12px}.home-recruit-aside{min-height:310px;padding:30px 28px}.home-recruit-shell:before{top:-35px;right:-20px}}
@media(max-width:390px){.home-recruit-points{grid-template-columns:1fr}.home-recruit-actions{grid-template-columns:1fr}}

/* v4 stage 2: recruitment trust, beginner guidance, trial flow and CTA */
.recruit-content-shell{width:min(1120px,calc(100% - 40px));margin:0 auto}
.recruit-section-heading{max-width:760px;margin-bottom:42px}
.recruit-section-heading>span,.recruit-eyebrow{display:block;margin-bottom:12px;color:#9b7334;font-size:11px;font-weight:700;letter-spacing:.26em}
.recruit-section-heading h2,.recruit-worries-intro h2,.recruit-cta-inner h2{margin:0 0 16px;font-family:serif;font-weight:500;line-height:1.3;letter-spacing:.035em}
.recruit-section-heading h2,.recruit-worries-intro h2{font-size:clamp(31px,4.5vw,54px);color:#2b231d}
.recruit-section-heading p,.recruit-worries-intro p{margin:0;color:#685d54;font-size:14px;line-height:1.95}
.recruit-section-heading-center{margin-left:auto;margin-right:auto;text-align:center}
.recruit-reasons{padding:clamp(70px,9vw,118px) 0;background:#fffaf3;color:#2b231d}
.recruit-reason-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.recruit-reason-grid article{position:relative;min-height:240px;padding:32px 24px 28px;border:1px solid rgba(142,103,48,.16);background:#fff;box-shadow:0 16px 42px rgba(74,51,25,.055);overflow:hidden}
.recruit-reason-grid article:last-child{grid-column:span 2}
.recruit-reason-grid article:after{content:"";position:absolute;right:-24px;bottom:-24px;width:90px;height:90px;border:1px solid rgba(155,115,52,.12);border-radius:50%}
.recruit-reason-grid b{display:block;margin-bottom:26px;color:#c09a57;font-family:serif;font-size:28px;font-weight:500}
.recruit-reason-grid h3{margin:0 0 13px;font-family:serif;font-size:20px;font-weight:600;letter-spacing:.035em}
.recruit-reason-grid p{margin:0;color:#6f645c;font-size:12.5px;line-height:1.85}
.recruit-worries{padding:clamp(70px,9vw,118px) 0;background:linear-gradient(145deg,#28221d,#17130f);color:#fff}
.recruit-worries-layout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.2fr);gap:clamp(35px,6vw,86px);align-items:start}
.recruit-worries-intro{position:sticky;top:110px}
.recruit-worries-intro h2{color:#fff}.recruit-worries-intro p{color:rgba(255,255,255,.7)}
.recruit-worries-intro a{display:inline-flex;margin-top:28px;color:#e3c690;font-size:12px;font-weight:700;letter-spacing:.08em;text-underline-offset:5px}
.recruit-worry-list{border-top:1px solid rgba(255,255,255,.16)}
.recruit-worry-list details{border-bottom:1px solid rgba(255,255,255,.16)}
.recruit-worry-list summary{position:relative;padding:24px 52px 24px 0;cursor:pointer;list-style:none;font-family:serif;font-size:clamp(17px,2vw,21px);line-height:1.6}
.recruit-worry-list summary::-webkit-details-marker{display:none}.recruit-worry-list summary:after{content:"＋";position:absolute;right:8px;top:23px;color:#d9bb82;font-family:sans-serif;font-size:21px}.recruit-worry-list details[open] summary:after{content:"－"}
.recruit-worry-list p{margin:0;padding:0 42px 24px 0;color:rgba(255,255,255,.7);font-size:13px;line-height:1.9}
.recruit-flow{padding:clamp(70px,9vw,118px) 0;background:#f7f2e9;color:#2b231d}
.recruit-flow-list{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;counter-reset:flow}
.recruit-flow-list li{position:relative;min-height:220px;padding:28px 20px;border-top:1px solid rgba(137,98,43,.25);border-bottom:1px solid rgba(137,98,43,.25);border-left:1px solid rgba(137,98,43,.18);background:rgba(255,255,255,.62);text-align:center}
.recruit-flow-list li:last-child{border-right:1px solid rgba(137,98,43,.18)}
.recruit-flow-list li:not(:last-child):after{content:"→";position:absolute;right:-12px;top:50%;z-index:2;display:grid;width:24px;height:24px;place-items:center;border-radius:50%;background:#a77c39;color:#fff;font-size:12px;transform:translateY(-50%)}
.recruit-flow-list b{display:block;margin-bottom:18px;color:#b58a41;font-family:serif;font-size:31px;font-weight:500}
.recruit-flow-list span{display:block;margin-bottom:12px;font-family:serif;font-size:20px;font-weight:600}.recruit-flow-list p{margin:0;color:#71665e;font-size:12px;line-height:1.8}
.recruit-cta-band{padding:clamp(58px,7vw,84px) 0;background:#9a7134;color:#fff}
.recruit-cta-inner{width:min(1120px,calc(100% - 40px));margin:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:35px;align-items:center}
.recruit-cta-inner>div:first-child>span{display:block;margin-bottom:10px;color:#f0dfbf;font-size:10px;font-weight:700;letter-spacing:.25em}.recruit-cta-inner h2{font-size:clamp(27px,4vw,44px)}.recruit-cta-inner p{margin:0;color:rgba(255,255,255,.78);font-size:13px;line-height:1.8}
.recruit-cta-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px}.recruit-cta-actions a{display:inline-flex;align-items:center;justify-content:center;min-width:138px;min-height:52px;padding:0 18px;border:1px solid rgba(255,255,255,.45);color:#fff;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.07em;transition:background .2s ease,color .2s ease,transform .2s ease}.recruit-cta-actions a:hover{transform:translateY(-2px);background:#fff;color:#795521}.recruit-cta-actions .is-web{background:#fff;color:#795521}.recruit-cta-actions .is-web:hover{background:#2c241d;color:#fff}
@media(max-width:900px){.recruit-reason-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.recruit-reason-grid article:last-child{grid-column:auto}.recruit-worries-layout{grid-template-columns:1fr}.recruit-worries-intro{position:static}.recruit-flow-list{grid-template-columns:1fr}.recruit-flow-list li{min-height:0;padding:24px 24px 24px 82px;text-align:left;border-right:1px solid rgba(137,98,43,.18);border-bottom:0}.recruit-flow-list li:last-child{border-bottom:1px solid rgba(137,98,43,.25)}.recruit-flow-list li:not(:last-child):after{content:"↓";right:auto;left:31px;top:auto;bottom:-12px;transform:none}.recruit-flow-list b{position:absolute;left:24px;top:22px;margin:0;font-size:26px}.recruit-flow-list span{margin-bottom:7px}.recruit-cta-inner{grid-template-columns:1fr}.recruit-cta-actions{justify-content:flex-start}}
@media(max-width:560px){.recruit-content-shell,.recruit-cta-inner{width:min(100% - 28px,620px)}.recruit-reason-grid{grid-template-columns:1fr}.recruit-reason-grid article{min-height:0}.recruit-section-heading{margin-bottom:30px}.recruit-worry-list summary{padding-right:42px}.recruit-cta-actions{display:grid;grid-template-columns:1fr;width:100%}.recruit-cta-actions a{width:100%}}

/* v4 stage 3: recruitment trust, local search context and FAQ */
.recruit-message{padding:clamp(68px,9vw,118px) 0;background:#f7f2e8;color:#2d241c}
.recruit-message-grid{display:grid;grid-template-columns:minmax(150px,.45fr) minmax(0,1.55fr);gap:clamp(28px,7vw,96px);align-items:start}
.recruit-message-mark{font-family:serif;font-size:clamp(44px,8vw,112px);line-height:.85;letter-spacing:.05em;color:rgba(149,108,47,.12);writing-mode:vertical-rl}
.recruit-message-copy{max-width:760px}.recruit-message-copy h2{margin:14px 0 24px;font-family:serif;font-size:clamp(28px,4vw,50px);line-height:1.48;font-weight:500;letter-spacing:.03em}.recruit-message-copy p{margin:0 0 16px;color:#6c6057;font-size:14px;line-height:2}.recruit-message-copy strong{display:block;margin-top:28px;color:#8c672e;font-size:13px;letter-spacing:.16em}
.recruit-home-faq{padding:clamp(68px,9vw,112px) 0;background:#fff}.recruit-home-faq-list{max-width:900px;margin:0 auto;border-top:1px solid rgba(126,91,42,.2)}.recruit-home-faq-list details{border-bottom:1px solid rgba(126,91,42,.2)}.recruit-home-faq-list summary{position:relative;padding:24px 54px 24px 4px;cursor:pointer;font-family:serif;font-size:16px;letter-spacing:.03em;list-style:none}.recruit-home-faq-list summary::-webkit-details-marker{display:none}.recruit-home-faq-list summary:after{content:"＋";position:absolute;right:8px;top:50%;transform:translateY(-50%);color:#a77d3a;font-size:20px;font-family:sans-serif}.recruit-home-faq-list details[open] summary:after{content:"−"}.recruit-home-faq-list p{margin:0;padding:0 44px 24px 4px;color:#70655d;font-size:13px;line-height:1.95}.recruit-home-faq-footer{text-align:center;margin-top:32px}.recruit-home-faq-footer a{display:inline-flex;align-items:center;gap:20px;color:#7d5925;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.08em;border-bottom:1px solid rgba(125,89,37,.4);padding-bottom:5px}
.recruit-local-links{padding:clamp(52px,7vw,78px) 0;background:#2b241e;color:#fff}.recruit-local-inner{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr);gap:clamp(30px,7vw,92px);align-items:center}.recruit-local-links h2{margin:12px 0 16px;font-family:serif;font-size:clamp(25px,3.7vw,43px);font-weight:500;line-height:1.45}.recruit-local-links p{max-width:680px;margin:0;color:rgba(255,255,255,.72);font-size:13px;line-height:1.9}.recruit-local-nav{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.18);border-left:1px solid rgba(255,255,255,.18)}.recruit-local-nav a{display:flex;align-items:center;justify-content:center;min-height:64px;padding:12px;border-right:1px solid rgba(255,255,255,.18);border-bottom:1px solid rgba(255,255,255,.18);color:#fff;text-decoration:none;font-size:12px;letter-spacing:.08em;transition:background .25s ease}.recruit-local-nav a:hover{background:rgba(255,255,255,.08)}
@media(max-width:800px){.recruit-message-grid,.recruit-local-inner{grid-template-columns:1fr}.recruit-message-mark{writing-mode:horizontal-tb;font-size:56px}.recruit-local-nav{max-width:600px}}
@media(max-width:520px){.recruit-home-faq-list summary{font-size:14px;padding-top:20px;padding-bottom:20px}.recruit-local-nav{grid-template-columns:1fr}.recruit-message-copy h2{font-size:28px}}


/* v4 stage 4: gallery performance and mobile interaction refinement */
@supports (content-visibility:auto){\n  .home main > section:not(:first-child){content-visibility:auto;contain-intrinsic-size:auto 760px}\n  .home #instagram{contain-intrinsic-size:auto 980px}\n}
.hanabi-gallery-item{touch-action:manipulation;-webkit-tap-highlight-color:transparent;contain:layout paint style}
.hanabi-gallery-item img,.hanabi-gallery-video-thumb{content-visibility:auto}
.hanabi-lightbox{overscroll-behavior:contain}
.hanabi-lightbox-stage{touch-action:pan-y pinch-zoom}
.hanabi-lightbox-close,.hanabi-lightbox-prev,.hanabi-lightbox-next{min-width:44px;min-height:44px}
@media(max-width:640px){\n  .hanabi-native-gallery{scroll-margin-top:82px}\n  .hanabi-gallery-note{padding-inline:18px}\n  .hanabi-lightbox-meta{padding-bottom:max(14px,env(safe-area-inset-bottom))}\n}
@media(prefers-reduced-data:reduce){\n  .hanabi-gallery-item{transition:none!important}\n}\n

/* v4 stage 6: final accessibility and quality polish */
.hanabi-skip-link{position:fixed;left:16px;top:12px;z-index:2147483647;padding:12px 18px;background:#201a15;color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.05em;transform:translateY(-180%);transition:transform .18s ease;box-shadow:0 8px 24px rgba(0,0,0,.2)}
.hanabi-skip-link:focus{transform:translateY(0);outline:3px solid #d4aa62;outline-offset:2px}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid rgba(176,128,55,.68);outline-offset:3px}
#main-content:focus{outline:none}
@media(prefers-reduced-motion:reduce){.hanabi-skip-link{transition:none}}

/* v4 stage 11: Recruit Journal */
.hanabi-recruit-journal,.hanabi-recruit-article{background:#fffdf9;color:#302a27;min-height:70vh}.hanabi-journal-hero{padding:clamp(72px,10vw,130px) 20px 64px;text-align:center;background:radial-gradient(circle at 50% 0,#fff 0,#fffaf1 48%,#f4eadb 100%);border-bottom:1px solid rgba(151,117,70,.18)}.hanabi-journal-kicker{margin:0 0 12px;color:#9b7545;font-size:12px;font-weight:700;letter-spacing:.22em}.hanabi-journal-hero h1,.hanabi-article-header h1{font-family:serif;font-weight:500;line-height:1.38;letter-spacing:.04em}.hanabi-journal-hero h1{font-size:clamp(28px,5vw,48px);margin:0 0 18px}.hanabi-journal-hero>p{max-width:720px;margin:0 auto;line-height:1.9}.hanabi-journal-search{max-width:650px;margin:32px auto 0;display:flex;padding:6px;background:#fff;border:1px solid rgba(151,117,70,.35);border-radius:999px;box-shadow:0 15px 40px rgba(91,69,43,.09)}.hanabi-journal-search input{flex:1;min-width:0;border:0;background:transparent;padding:13px 18px;font-size:16px;outline:0}.hanabi-journal-search button{border:0;border-radius:999px;padding:12px 24px;background:#a27c49;color:#fff;font-weight:700;cursor:pointer}.hanabi-journal-wrap,.hanabi-article-wrap{width:min(1120px,calc(100% - 36px));margin:0 auto;padding:56px 0 88px}.hanabi-journal-result{margin:0 0 24px;font-weight:700}.hanabi-journal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:26px}.hanabi-journal-card{overflow:hidden;background:#fff;border:1px solid rgba(151,117,70,.18);border-radius:18px;box-shadow:0 16px 45px rgba(75,57,36,.07)}.hanabi-journal-card-image{display:block;aspect-ratio:16/10;overflow:hidden;background:#ede2d2}.hanabi-journal-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s ease}.hanabi-journal-card:hover .hanabi-journal-card-image img{transform:scale(1.035)}.hanabi-journal-placeholder{display:grid;width:100%;height:100%;place-items:center;color:#9b7545;font-family:serif;letter-spacing:.18em}.hanabi-journal-card-body{padding:22px}.hanabi-journal-meta{display:flex;flex-wrap:wrap;gap:8px 15px;color:#7c6d61;font-size:12px}.hanabi-journal-meta a{color:inherit}.hanabi-journal-card h2,.hanabi-journal-card h3{font-family:serif;font-size:21px;line-height:1.55;margin:10px 0}.hanabi-journal-card h2 a,.hanabi-journal-card h3 a{color:#302a27;text-decoration:none}.hanabi-journal-card p{line-height:1.8}.hanabi-journal-more{display:inline-flex;margin-top:8px;color:#8f6838;font-weight:700;text-decoration:none}.hanabi-journal-pagination{margin-top:44px;text-align:center}.hanabi-journal-pagination .nav-links{display:flex;justify-content:center;gap:8px}.hanabi-journal-pagination a,.hanabi-journal-pagination span{display:grid;min-width:42px;height:42px;padding:0 10px;place-items:center;border:1px solid rgba(151,117,70,.3);border-radius:50%;text-decoration:none}.hanabi-journal-pagination .current{background:#a27c49;color:#fff}.hanabi-journal-empty{text-align:center;padding:60px 20px}.hanabi-article-wrap{max-width:920px}.hanabi-article-breadcrumb{display:flex;gap:8px;overflow:hidden;white-space:nowrap;font-size:12px;color:#766b63;margin-bottom:38px}.hanabi-article-breadcrumb a{color:inherit}.hanabi-article-breadcrumb span:last-child{overflow:hidden;text-overflow:ellipsis}.hanabi-article-header{text-align:center;max-width:820px;margin:0 auto 36px}.hanabi-article-header h1{font-size:clamp(28px,5vw,46px);margin:0 0 18px}.hanabi-article-header .hanabi-journal-meta{justify-content:center}.hanabi-article-lead{font-size:18px;line-height:1.9;margin:24px auto 0}.hanabi-article-visual{margin:0 0 42px;border-radius:22px;overflow:hidden}.hanabi-article-visual img{display:block;width:100%;height:auto}.hanabi-article-content{max-width:760px;margin:0 auto;font-size:17px;line-height:2}.hanabi-article-content h2{font-family:serif;font-size:29px;margin:2.2em 0 .8em;padding-bottom:.4em;border-bottom:1px solid rgba(151,117,70,.28)}.hanabi-article-content h3{font-size:22px;margin:1.8em 0 .7em}.hanabi-article-content a{color:#875f2f}.hanabi-author-box{max-width:760px;margin:56px auto 0;display:flex;gap:20px;align-items:center;padding:25px;border:1px solid rgba(151,117,70,.25);background:#fffaf2;border-radius:18px}.hanabi-author-mark{display:grid;place-items:center;flex:0 0 76px;height:76px;border-radius:50%;background:#a27c49;color:#fff;font-family:serif;font-size:18px}.hanabi-author-label{margin:0;color:#927245;font-size:12px;font-weight:700;letter-spacing:.08em}.hanabi-author-box h2{margin:4px 0;font-size:20px}.hanabi-author-box p:last-child{margin:0;line-height:1.7}.hanabi-article-cta{max-width:760px;margin:36px auto 0;padding:38px 24px;text-align:center;border-radius:22px;background:linear-gradient(135deg,#34271e,#745536);color:#fff}.hanabi-article-cta p{margin:0 0 8px}.hanabi-article-cta h2{margin:0 0 24px;font-family:serif}.hanabi-article-cta div{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.hanabi-article-cta a{display:inline-flex;padding:13px 23px;border-radius:999px;background:#fff;color:#453221;font-weight:700;text-decoration:none}.hanabi-related-articles{margin-top:72px}.hanabi-related-articles>h2{text-align:center;font-family:serif;margin-bottom:28px}.hanabi-related-articles .hanabi-journal-card h3{font-size:18px}
@media(max-width:800px){.hanabi-journal-grid{grid-template-columns:1fr 1fr}.hanabi-journal-search{border-radius:16px}.hanabi-journal-search button{padding-inline:16px}.hanabi-author-box{align-items:flex-start}}
@media(max-width:560px){.hanabi-journal-grid{grid-template-columns:1fr}.hanabi-journal-wrap,.hanabi-article-wrap{width:min(100% - 24px,1120px);padding-top:40px}.hanabi-journal-search{display:grid}.hanabi-journal-search button{border-radius:11px}.hanabi-author-box{display:block;text-align:center}.hanabi-author-mark{margin:0 auto 14px}.hanabi-article-content{font-size:16px}.hanabi-article-content h2{font-size:25px}}


/* v4 stage12: premium live recruit panel */
.hanabi-live-recruit{position:relative;overflow:hidden;padding:clamp(54px,8vw,110px) 20px;background:linear-gradient(145deg,#fff 0%,#fffaf0 52%,#f3e3bd 100%);isolation:isolate}
.hanabi-live-recruit__glow{position:absolute;inset:-30%;background:radial-gradient(circle at 22% 30%,rgba(255,255,255,.95),transparent 30%),radial-gradient(circle at 78% 35%,rgba(204,160,70,.18),transparent 25%);filter:blur(8px);z-index:-1}
.hanabi-live-recruit__inner{width:min(1120px,100%);margin:auto}
.hanabi-live-recruit__heading{text-align:center;max-width:760px;margin:0 auto 34px}
.hanabi-live-recruit__heading>span,.hanabi-today-cast__title span{display:block;letter-spacing:.24em;font-size:12px;color:#a77825;font-weight:700}
.hanabi-live-recruit__heading h2{font-family:serif;font-size:clamp(28px,5vw,52px);line-height:1.35;margin:10px 0 14px;color:#302312}
.hanabi-live-recruit__heading p{line-height:1.9;color:#665943}
.hanabi-live-recruit__status{display:grid;grid-template-columns:minmax(260px,.8fr) 1.7fr;gap:18px;align-items:stretch}
.hanabi-live-status-card,.hanabi-live-numbers{border:1px solid rgba(171,125,43,.24);background:rgba(255,255,255,.82);box-shadow:0 20px 50px rgba(80,53,15,.08);backdrop-filter:blur(12px);border-radius:22px}
.hanabi-live-status-card{padding:28px;text-align:center}.hanabi-live-status-card small{display:block;color:#8a7048;letter-spacing:.12em}.hanabi-live-status-card strong{display:block;font-size:34px;color:#a46f16;margin:7px 0}.hanabi-live-status-card span{display:inline-block;padding:5px 12px;border-radius:999px;background:#2f2214;color:#fff;font-size:13px}.hanabi-live-status-card p{font-size:13px;line-height:1.7;margin:14px 0 0;color:#6f624e}
.hanabi-live-numbers{display:grid;grid-template-columns:repeat(4,1fr);overflow:hidden}.hanabi-live-numbers div{padding:25px 12px;text-align:center;border-right:1px solid rgba(171,125,43,.17)}.hanabi-live-numbers div:last-child{border-right:0}.hanabi-live-numbers strong{display:block;color:#6f4b0d;font-size:clamp(24px,3vw,39px);font-family:serif}.hanabi-live-numbers em{font-style:normal;font-size:.42em;margin-left:2px}.hanabi-live-numbers span{display:block;margin-top:7px;font-size:12px;color:#776a57}
.hanabi-today-cast{margin-top:28px}.hanabi-today-cast__title{text-align:center;margin-bottom:16px}.hanabi-today-cast__title h3{margin:6px 0;font-family:serif;font-size:26px}.hanabi-today-cast__grid{display:grid;grid-template-columns:repeat(6,1fr);gap:12px}.hanabi-today-cast__item{position:relative;overflow:hidden;border-radius:16px;aspect-ratio:3/4;background:#eadfc9;box-shadow:0 12px 26px rgba(60,40,10,.12)}.hanabi-today-cast__item img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.hanabi-today-cast__item:hover img{transform:scale(1.04)}.hanabi-today-cast__item span{position:absolute;inset:auto 0 0;padding:18px 8px 10px;text-align:center;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.72));font-weight:700}
.hanabi-live-recruit__actions{display:flex;justify-content:center;gap:10px;margin-top:26px;flex-wrap:wrap}.hanabi-live-recruit__actions a{min-width:190px;padding:15px 20px;border-radius:999px;text-align:center;font-weight:700;box-shadow:0 10px 24px rgba(60,40,10,.12)}.hanabi-live-recruit__actions .is-line{background:#18a94b;color:#fff}.hanabi-live-recruit__actions .is-web{background:linear-gradient(135deg,#ad7a25,#e5c279);color:#201507}.hanabi-live-recruit__actions .is-phone{background:#302312;color:#fff}
@media(max-width:780px){.hanabi-live-recruit{padding:48px 14px}.hanabi-live-recruit__status{grid-template-columns:1fr}.hanabi-live-numbers{grid-template-columns:repeat(2,1fr)}.hanabi-live-numbers div:nth-child(2){border-right:0}.hanabi-live-numbers div:nth-child(-n+2){border-bottom:1px solid rgba(171,125,43,.17)}.hanabi-today-cast__grid{grid-template-columns:repeat(3,1fr)}.hanabi-live-recruit__actions{display:grid;grid-template-columns:1fr;width:100%}.hanabi-live-recruit__actions a{min-width:0}.hanabi-live-recruit__heading h2{font-size:31px}}

/* Stage 13: Store-first homepage and refined recruit banners */
.hanabi-recruit-banners{padding-top:clamp(64px,9vw,118px);padding-bottom:clamp(64px,9vw,118px);background:linear-gradient(180deg,#fffdfa 0%,#f8f2e8 100%)}
.hanabi-recruit-banner-grid{width:min(1120px,calc(100% - 32px));margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:22px}
.hanabi-recruit-banner{position:relative;isolation:isolate;min-height:310px;overflow:hidden;display:flex;align-items:flex-end;padding:34px;text-decoration:none;background-image:var(--banner-image);background-size:cover;background-position:center;border:1px solid rgba(183,143,73,.48);box-shadow:0 20px 50px rgba(65,43,18,.13);transition:transform .35s ease,box-shadow .35s ease}
.hanabi-recruit-banner:before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.58);z-index:1;pointer-events:none}
.hanabi-recruit-banner__veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(28,18,9,.05) 10%,rgba(25,14,6,.82) 100%);z-index:-1}
.hanabi-recruit-banner--trial .hanabi-recruit-banner__veil{background:linear-gradient(180deg,rgba(79,26,58,.08),rgba(67,17,48,.88))}
.hanabi-recruit-banner__content{position:relative;z-index:2;color:#fff;display:flex;flex-direction:column;align-items:flex-start;text-shadow:0 2px 14px rgba(0,0,0,.35)}
.hanabi-recruit-banner__content small{font-size:11px;letter-spacing:.24em;font-style:normal;color:#f0d7a0;margin-bottom:10px}
.hanabi-recruit-banner__content strong{font-family:serif;font-size:clamp(25px,3.2vw,40px);line-height:1.35;font-weight:500}
.hanabi-recruit-banner__content em{font-style:normal;font-size:14px;line-height:1.8;margin-top:8px;color:rgba(255,255,255,.88)}
.hanabi-recruit-banner__content b{display:inline-flex;align-items:center;gap:20px;margin-top:22px;padding:11px 17px;border:1px solid rgba(255,255,255,.7);font-size:12px;letter-spacing:.08em;font-weight:600;background:rgba(255,255,255,.08);backdrop-filter:blur(4px)}
.hanabi-recruit-banner__content b i{font-style:normal;font-size:18px;transition:transform .3s ease}
.hanabi-recruit-banner:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(65,43,18,.19)}
.hanabi-recruit-banner:hover b i{transform:translateX(5px)}
.hanabi-recruit-quicklinks{width:min(1120px,calc(100% - 32px));margin:18px auto 0;display:grid;grid-template-columns:repeat(3,1fr);border:1px solid rgba(183,143,73,.38);background:rgba(255,255,255,.76)}
.hanabi-recruit-quicklinks a{min-height:54px;display:grid;place-items:center;text-decoration:none;color:#46341e;font-size:13px;letter-spacing:.08em;border-right:1px solid rgba(183,143,73,.25)}
.hanabi-recruit-quicklinks a:last-child{border-right:0}.hanabi-recruit-quicklinks a.is-line{color:#187c3d}
@media(max-width:720px){.hanabi-recruit-banner-grid{grid-template-columns:1fr;gap:16px}.hanabi-recruit-banner{min-height:230px;padding:27px 25px}.hanabi-recruit-banner__content strong{font-size:27px}.hanabi-recruit-quicklinks{grid-template-columns:1fr}.hanabi-recruit-quicklinks a{border-right:0;border-bottom:1px solid rgba(183,143,73,.25)}.hanabi-recruit-quicklinks a:last-child{border-bottom:0}}


/* Stage 15: store-first premium brand gateway */
.hanabi-brand-intro{position:relative;overflow:hidden;padding:clamp(72px,10vw,138px) 20px;background:#fbf8f2;color:#2d241b;text-align:center;isolation:isolate}
.hanabi-brand-intro:before,.hanabi-brand-intro:after{content:"";position:absolute;border-radius:50%;z-index:-1;pointer-events:none}
.hanabi-brand-intro:before{width:520px;height:520px;left:-260px;top:-220px;background:radial-gradient(circle,rgba(213,178,104,.18),transparent 68%)}
.hanabi-brand-intro:after{width:620px;height:620px;right:-330px;bottom:-350px;background:radial-gradient(circle,rgba(179,132,60,.15),transparent 68%)}
.hanabi-brand-intro__inner{width:min(1120px,100%);margin:0 auto}
.hanabi-brand-intro__eyebrow{margin:0 0 16px;color:#a7772b;font-size:11px;font-weight:700;letter-spacing:.34em}
.hanabi-brand-intro h2{max-width:850px;margin:0 auto;font-family:serif;font-size:clamp(31px,5.2vw,60px);font-weight:500;line-height:1.48;letter-spacing:.05em}
.hanabi-brand-intro__lead{max-width:730px;margin:25px auto 48px;color:#6d6255;font-size:clamp(15px,1.8vw,18px);line-height:2}
.hanabi-brand-intro__nav{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(159,119,54,.25);border-bottom:1px solid rgba(159,119,54,.25)}
.hanabi-brand-intro__nav a{position:relative;min-height:154px;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:22px 12px;color:#34291f;text-decoration:none;border-right:1px solid rgba(159,119,54,.22);transition:background .3s ease,transform .3s ease}
.hanabi-brand-intro__nav a:last-child{border-right:0}
.hanabi-brand-intro__nav a:hover{background:rgba(255,255,255,.72);transform:translateY(-3px)}
.hanabi-brand-intro__nav span{position:absolute;top:15px;left:17px;color:#b58b49;font-family:serif;font-size:12px}
.hanabi-brand-intro__nav strong{font-family:serif;font-size:18px;font-weight:500;letter-spacing:.08em;text-wrap:balance}
@media(max-width:760px){.hanabi-brand-intro__nav a:nth-child(4) strong{font-size:15px;letter-spacing:.04em}}
.hanabi-brand-intro__nav small{margin-top:9px;color:#9c835f;font-size:9px;letter-spacing:.19em}
.hanabi-brand-intro__actions{display:flex;justify-content:center;gap:13px;flex-wrap:wrap;margin-top:36px}
.hanabi-brand-intro__actions a{min-width:210px;display:inline-flex;align-items:center;justify-content:space-between;gap:24px;padding:15px 20px;border:1px solid #9f7736;color:#5b421d;text-decoration:none;font-size:13px;letter-spacing:.08em;transition:transform .3s ease,box-shadow .3s ease}
.hanabi-brand-intro__actions a.is-primary{background:linear-gradient(135deg,#a87828,#dabb72);color:#fff;border-color:transparent;box-shadow:0 13px 30px rgba(104,70,17,.18)}
.hanabi-brand-intro__actions a:hover{transform:translateY(-3px);box-shadow:0 15px 32px rgba(76,52,18,.14)}
@media(max-width:760px){.hanabi-brand-intro{padding:60px 14px}.hanabi-brand-intro h2{font-size:32px;line-height:1.55}.hanabi-brand-intro__lead{margin-bottom:32px;line-height:1.9}.hanabi-brand-intro__nav{grid-template-columns:1fr 1fr}.hanabi-brand-intro__nav a{min-height:125px}.hanabi-brand-intro__nav a:nth-child(2){border-right:0}.hanabi-brand-intro__nav a:nth-child(-n+2){border-bottom:1px solid rgba(159,119,54,.22)}.hanabi-brand-intro__actions{display:grid}.hanabi-brand-intro__actions a{min-width:0;width:100%}}

/* HANABI v4 Stage 16: first-visit guidance */
.hanabi-first-visit{position:relative;padding:clamp(72px,9vw,132px) 24px;background:linear-gradient(180deg,#fff 0%,#faf7f1 100%);overflow:hidden}
.hanabi-first-visit:before{content:"FIRST VISIT";position:absolute;right:-.02em;top:.02em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(72px,13vw,190px);letter-spacing:.04em;color:rgba(160,126,63,.055);line-height:1;white-space:nowrap;pointer-events:none}
.hanabi-first-visit__inner{position:relative;z-index:1;width:min(1180px,100%);margin:0 auto}
.hanabi-first-visit__heading{max-width:760px;margin:0 auto clamp(38px,5vw,64px);text-align:center}
.hanabi-first-visit__eyebrow{margin:0 0 12px;color:#9a7737;font-size:12px;font-weight:700;letter-spacing:.28em}
.hanabi-first-visit__heading h2{margin:0 0 18px;color:#28231d;font-family:Georgia,"Times New Roman",serif;font-size:clamp(28px,4vw,46px);font-weight:500;line-height:1.35;letter-spacing:.06em}
.hanabi-first-visit__heading>p:last-child{margin:0;color:#6d655b;font-size:15px;line-height:2}
.hanabi-first-visit__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hanabi-first-visit__cards article{position:relative;display:flex;min-height:280px;flex-direction:column;padding:34px 30px 30px;border:1px solid rgba(163,130,67,.28);background:rgba(255,255,255,.88);box-shadow:0 18px 50px rgba(61,47,24,.06);transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.hanabi-first-visit__cards article:hover{transform:translateY(-4px);border-color:rgba(163,130,67,.55);box-shadow:0 24px 58px rgba(61,47,24,.1)}
.hanabi-first-visit__cards article>span{display:block;margin-bottom:28px;color:#b79351;font-family:Georgia,"Times New Roman",serif;font-size:13px;letter-spacing:.18em}
.hanabi-first-visit__cards h3{margin:0 0 14px;color:#2f2922;font-size:20px;font-weight:500;letter-spacing:.08em}
.hanabi-first-visit__cards p{margin:0 0 24px;color:#756d63;font-size:14px;line-height:1.9}
.hanabi-first-visit__cards a{margin-top:auto;color:#85662e;font-size:13px;font-weight:700;letter-spacing:.08em;text-decoration:none}
.hanabi-first-visit__cards a b{margin-left:8px;font-weight:400;transition:margin-left .2s ease}
.hanabi-first-visit__cards a:hover b{margin-left:13px}
.hanabi-first-visit__note{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;margin-top:22px;padding:22px 28px;border-left:3px solid #b89552;background:#2d2924;color:#fff}
.hanabi-first-visit__note strong{font-size:14px;letter-spacing:.1em;white-space:nowrap}
.hanabi-first-visit__note p{margin:0;color:rgba(255,255,255,.78);font-size:13px;line-height:1.8}
@media(max-width:780px){
 .hanabi-first-visit{padding:64px 18px}
 .hanabi-first-visit__heading{margin-bottom:32px;text-align:left}
 .hanabi-first-visit__heading h2{font-size:28px;letter-spacing:.04em}
 .hanabi-first-visit__cards{grid-template-columns:1fr;gap:12px}
 .hanabi-first-visit__cards article{min-height:0;padding:26px 24px}
 .hanabi-first-visit__cards article>span{margin-bottom:18px}
 .hanabi-first-visit__note{grid-template-columns:1fr;gap:8px;margin-top:14px;padding:20px 22px}
}


/* HANABI v4 Stage 17: tonight reservation gateway */
.hanabi-tonight{position:relative;padding:clamp(64px,8vw,110px) 24px;background:#27231f;color:#fff;overflow:hidden}
.hanabi-tonight:before{content:"HANABI";position:absolute;right:-.03em;bottom:-.25em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(120px,22vw,320px);line-height:1;color:rgba(255,255,255,.025);letter-spacing:.04em;pointer-events:none}
.hanabi-tonight__inner{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);grid-template-areas:"copy details" "actions details";gap:34px 64px;align-items:end;width:min(1180px,100%);margin:0 auto}
.hanabi-tonight__copy{grid-area:copy;max-width:700px}
.hanabi-tonight__eyebrow{margin:0 0 14px;color:#d6b56f;font-size:12px;font-weight:700;letter-spacing:.28em}
.hanabi-tonight__copy h2{margin:0 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,4vw,50px);font-weight:500;line-height:1.35;letter-spacing:.06em}
.hanabi-tonight__copy>p:last-child{margin:0;color:rgba(255,255,255,.72);font-size:15px;line-height:2}
.hanabi-tonight__details{grid-area:details;display:grid;align-self:stretch;border:1px solid rgba(214,181,111,.34);background:rgba(255,255,255,.035)}
.hanabi-tonight__details div{display:flex;flex-direction:column;justify-content:center;min-height:130px;padding:28px 30px}
.hanabi-tonight__details div+div{border-top:1px solid rgba(214,181,111,.2)}
.hanabi-tonight__details span{margin-bottom:10px;color:#d6b56f;font-size:11px;font-weight:700;letter-spacing:.22em}
.hanabi-tonight__details strong{font-size:16px;font-weight:500;line-height:1.8;letter-spacing:.04em}
.hanabi-tonight__actions{grid-area:actions;display:flex;gap:12px;align-items:stretch}
.hanabi-tonight__actions a{display:flex;min-height:72px;align-items:center;justify-content:center;text-decoration:none;transition:transform .2s ease,background .2s ease,border-color .2s ease}
.hanabi-tonight__tel{min-width:260px;flex-direction:column;padding:12px 26px;background:linear-gradient(135deg,#c9a35c,#e0c17d);color:#211d18}
.hanabi-tonight__tel small{margin-bottom:3px;font-size:11px;font-weight:700;letter-spacing:.12em}
.hanabi-tonight__tel strong{font-family:Georgia,"Times New Roman",serif;font-size:22px;letter-spacing:.06em}
.hanabi-tonight__info{padding:18px 24px;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:13px;font-weight:700;letter-spacing:.08em}
.hanabi-tonight__info b{margin-left:9px;font-weight:400}
.hanabi-tonight__actions a:hover{transform:translateY(-2px)}
.hanabi-tonight__info:hover{border-color:#d6b56f;background:rgba(214,181,111,.08)}
@media(max-width:760px){
 .hanabi-tonight{padding:64px 18px}
 .hanabi-tonight__inner{grid-template-columns:1fr;grid-template-areas:"copy" "details" "actions";gap:26px}
 .hanabi-tonight__copy h2{font-size:29px;letter-spacing:.04em}
 .hanabi-tonight__details div{min-height:0;padding:22px 24px}
 .hanabi-tonight__actions{flex-direction:column}
 .hanabi-tonight__actions a{width:100%;min-height:68px}
 .hanabi-tonight__tel{min-width:0}
}

/* HANABI v4 Stage 18: mobile quick reservation bar */
.hanabi-mobile-quickbar{display:none}
@media (max-width:782px){
  body{padding-bottom:72px}
  .hanabi-mobile-quickbar{position:fixed;z-index:9998;left:10px;right:10px;bottom:10px;display:grid;grid-template-columns:1.25fr 1fr 1fr;min-height:58px;overflow:hidden;border:1px solid rgba(190,155,88,.52);border-radius:14px;background:rgba(27,24,21,.96);box-shadow:0 14px 38px rgba(0,0,0,.28);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
  .hanabi-mobile-quickbar a{display:flex;align-items:center;justify-content:center;gap:7px;min-width:0;padding:10px 7px;border-left:1px solid rgba(255,255,255,.12);color:#f7f1e7;text-align:center;text-decoration:none;-webkit-tap-highlight-color:transparent}
  .hanabi-mobile-quickbar a:first-child{border-left:0}
  .hanabi-mobile-quickbar a span{display:grid;width:22px;height:22px;place-items:center;color:#d6b16c;font-family:Georgia,"Times New Roman",serif;font-size:15px;line-height:1}
  .hanabi-mobile-quickbar a strong{overflow:hidden;font-size:12px;font-weight:700;letter-spacing:.04em;white-space:nowrap;text-overflow:ellipsis}
  .hanabi-mobile-quickbar__call{background:linear-gradient(135deg,#b18a45,#d1ad69);color:#211b13!important}
  .hanabi-mobile-quickbar__call span{color:#211b13!important}
  .admin-bar .hanabi-mobile-quickbar{bottom:10px}
}
@media (max-width:360px){
  .hanabi-mobile-quickbar{left:6px;right:6px;bottom:6px;grid-template-columns:1.2fr 1fr 1fr}
  .hanabi-mobile-quickbar a{gap:4px;padding-inline:4px}
  .hanabi-mobile-quickbar a strong{font-size:11px}
}
@media (prefers-reduced-motion:reduce){
  .hanabi-mobile-quickbar a{scroll-behavior:auto}
}


/* v4 Stage 19: access and arrival support */
.hanabi-access-support{padding:92px 24px;background:linear-gradient(145deg,#fffdf9 0%,#f8efe1 100%);border-top:1px solid rgba(169,119,46,.18);border-bottom:1px solid rgba(169,119,46,.18)}
.hanabi-access-support__inner{width:min(1120px,100%);margin:0 auto}
.hanabi-access-support__heading{max-width:760px;margin:0 auto 42px;text-align:center}
.hanabi-access-support__eyebrow{margin:0 0 14px;font:12px/1.4 Georgia,serif;letter-spacing:.34em;color:#9b6b2b}
.hanabi-access-support__heading h2{margin:0 0 18px;font-size:clamp(30px,4vw,48px);font-weight:400;line-height:1.45;letter-spacing:.06em;color:#765022}
.hanabi-access-support__heading>p:last-child{margin:0;font-size:16px;line-height:2;color:#665540}
.hanabi-access-support__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hanabi-access-support__grid article{min-width:0;padding:30px 26px;background:rgba(255,255,255,.88);border:1px solid rgba(173,122,45,.28);box-shadow:0 14px 34px rgba(91,59,18,.06)}
.hanabi-access-support__grid span{display:block;margin-bottom:13px;font:11px/1.4 Georgia,serif;letter-spacing:.25em;color:#a27335}
.hanabi-access-support__grid strong{display:block;font-size:18px;font-weight:500;line-height:1.7;color:#5f4526;overflow-wrap:anywhere}
.hanabi-access-support__grid small{display:block;margin-top:8px;font-size:13px;line-height:1.7;color:#88745c}
.hanabi-access-support__actions{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:28px}
.hanabi-access-support__actions a{display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:12px 24px;border:1px solid #b88a43;background:#fff;color:#704b1c;text-decoration:none;letter-spacing:.06em}
.hanabi-access-support__actions a.is-map{background:linear-gradient(135deg,#b8873c,#8c5f20);color:#fff;border-color:#9a6928}
.hanabi-access-support__actions a.is-phone{background:#fff8e9}
@media(max-width:899px){
 .hanabi-access-support{padding:64px 18px}
 .hanabi-access-support__heading{margin-bottom:30px;text-align:left}
 .hanabi-access-support__heading h2{font-size:29px;letter-spacing:.03em}
 .hanabi-access-support__heading>p:last-child{font-size:15px;line-height:1.9}
 .hanabi-access-support__grid{grid-template-columns:1fr}
 .hanabi-access-support__grid article{padding:23px 21px}
 .hanabi-access-support__actions{display:grid;grid-template-columns:1fr;margin-top:20px}
 .hanabi-access-support__actions a{width:100%;min-height:58px}
}


/* HANABI v4 Stage 20: guest FAQ */
.hanabi-guest-faq{position:relative;padding:clamp(70px,8vw,110px) 24px;background:#fff;color:#2e2923;overflow:hidden}
.hanabi-guest-faq:before{content:"FAQ";position:absolute;top:-.18em;left:-.03em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(130px,24vw,340px);line-height:1;color:rgba(155,111,49,.035);pointer-events:none}
.hanabi-guest-faq__inner{position:relative;z-index:1;width:min(1040px,100%);margin:0 auto}
.hanabi-guest-faq__heading{max-width:720px;margin:0 auto 40px;text-align:center}
.hanabi-guest-faq__eyebrow{margin:0 0 13px;color:#9a6d2e;font-size:11px;font-weight:700;letter-spacing:.28em}
.hanabi-guest-faq__heading h2{margin:0 0 16px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(29px,4vw,46px);font-weight:500;line-height:1.4;letter-spacing:.06em;color:#3c3329}
.hanabi-guest-faq__heading>p:last-child{margin:0;color:#756b60;font-size:15px;line-height:1.9}
.hanabi-guest-faq__list{border-top:1px solid rgba(154,109,46,.24)}
.hanabi-guest-faq__list details{border-bottom:1px solid rgba(154,109,46,.24);background:rgba(255,253,249,.76)}
.hanabi-guest-faq__list summary{position:relative;display:flex;align-items:center;gap:18px;padding:24px 56px 24px 20px;cursor:pointer;list-style:none;color:#3f352b;font-size:16px;font-weight:600;line-height:1.7;letter-spacing:.03em}
.hanabi-guest-faq__list summary::-webkit-details-marker{display:none}
.hanabi-guest-faq__list summary span{display:grid;flex:0 0 34px;width:34px;height:34px;place-items:center;border:1px solid rgba(154,109,46,.48);border-radius:50%;color:#9a6d2e;font-family:Georgia,"Times New Roman",serif;font-size:15px;font-weight:400}
.hanabi-guest-faq__list summary:after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);color:#9a6d2e;font-family:Georgia,"Times New Roman",serif;font-size:28px;font-weight:400;transition:transform .2s ease}
.hanabi-guest-faq__list details[open] summary:after{transform:translateY(-50%) rotate(45deg)}
.hanabi-guest-faq__list details>div{padding:0 58px 24px 72px}
.hanabi-guest-faq__list details p{margin:0;color:#756b60;font-size:14px;line-height:2}
.hanabi-guest-faq__actions{display:flex;justify-content:center;gap:12px;margin-top:30px}
.hanabi-guest-faq__actions a{display:inline-flex;min-height:56px;align-items:center;justify-content:center;padding:12px 24px;border:1px solid #a97a38;color:#76501f;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.07em}
.hanabi-guest-faq__actions a.is-primary{background:linear-gradient(135deg,#b8863d,#90601f);color:#fff}
.hanabi-guest-faq__actions b{margin-left:9px;font-weight:400}
@media(max-width:760px){
 .hanabi-guest-faq{padding:64px 18px}
 .hanabi-guest-faq__heading{margin-bottom:28px;text-align:left}
 .hanabi-guest-faq__heading h2{font-size:29px;letter-spacing:.035em}
 .hanabi-guest-faq__list summary{gap:12px;padding:20px 46px 20px 10px;font-size:15px}
 .hanabi-guest-faq__list summary span{flex-basis:30px;width:30px;height:30px}
 .hanabi-guest-faq__list summary:after{right:12px}
 .hanabi-guest-faq__list details>div{padding:0 16px 20px 52px}
 .hanabi-guest-faq__actions{display:grid;grid-template-columns:1fr;margin-top:22px}
 .hanabi-guest-faq__actions a{width:100%;min-height:58px}
}


/* Stage 21: HANABI hospitality promise */
.hanabi-hospitality-promise{position:relative;padding:clamp(76px,9vw,124px) 24px;background:linear-gradient(180deg,#f8f4ed 0%,#fff 100%);color:#302920;overflow:hidden}
.hanabi-hospitality-promise:after{content:"HANABI";position:absolute;right:-.04em;bottom:-.26em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(120px,22vw,330px);line-height:1;color:rgba(145,99,38,.035);pointer-events:none}
.hanabi-hospitality-promise__inner{position:relative;z-index:1;width:min(1120px,100%);margin:0 auto}
.hanabi-hospitality-promise__heading{max-width:780px;margin:0 auto 48px;text-align:center}
.hanabi-hospitality-promise__eyebrow{margin:0 0 14px;color:#986a2d;font-size:11px;font-weight:700;letter-spacing:.3em}
.hanabi-hospitality-promise__heading h2{margin:0 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.45;letter-spacing:.05em;color:#3b3126}
.hanabi-hospitality-promise__heading>p:last-child{margin:0;color:#74695e;font-size:15px;line-height:2}
.hanabi-hospitality-promise__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hanabi-hospitality-promise__grid article{position:relative;min-height:245px;padding:34px 30px;border:1px solid rgba(159,114,52,.24);background:rgba(255,255,255,.82);box-shadow:0 18px 50px rgba(70,48,20,.055)}
.hanabi-hospitality-promise__grid span{display:block;margin-bottom:30px;color:#a97835;font-family:Georgia,"Times New Roman",serif;font-size:14px;letter-spacing:.12em}
.hanabi-hospitality-promise__grid h3{margin:0 0 14px;color:#40352a;font-size:18px;font-weight:600;letter-spacing:.055em}
.hanabi-hospitality-promise__grid p{margin:0;color:#776d62;font-size:14px;line-height:2}
.hanabi-hospitality-promise__action{display:flex;justify-content:center;margin-top:34px}
.hanabi-hospitality-promise__action a{display:inline-flex;min-width:260px;min-height:58px;align-items:center;justify-content:center;padding:12px 26px;background:linear-gradient(135deg,#b78643,#8e5d1e);color:#fff;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.08em;box-shadow:0 14px 30px rgba(111,73,24,.15)}
.hanabi-hospitality-promise__action b{margin-left:10px;font-weight:400}
@media (max-width: 760px){
 .hanabi-hospitality-promise{padding:66px 18px}
 .hanabi-hospitality-promise__heading{margin-bottom:30px;text-align:left}
 .hanabi-hospitality-promise__heading h2{font-size:29px;letter-spacing:.035em}
 .hanabi-hospitality-promise__grid{grid-template-columns:1fr;gap:12px}
 .hanabi-hospitality-promise__grid article{min-height:0;padding:27px 24px}
 .hanabi-hospitality-promise__grid span{margin-bottom:18px}
 .hanabi-hospitality-promise__action{margin-top:22px}
 .hanabi-hospitality-promise__action a{width:100%;min-width:0;min-height:60px}
}


/* Stage 22: occasion guide */
.hanabi-occasion-guide{padding:clamp(76px,9vw,122px) 24px;background:#fff;color:#332b22}
.hanabi-occasion-guide__inner{width:min(1120px,100%);margin:0 auto}
.hanabi-occasion-guide__heading{max-width:790px;margin:0 auto 46px;text-align:center}
.hanabi-occasion-guide__eyebrow{margin:0 0 14px;color:#a27435;font-size:11px;font-weight:700;letter-spacing:.3em}
.hanabi-occasion-guide__heading h2{margin:0 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.45;letter-spacing:.05em;color:#3d3328}
.hanabi-occasion-guide__heading>p:last-child{margin:0;color:#756a5f;font-size:15px;line-height:2}
.hanabi-occasion-guide__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.hanabi-occasion-guide__grid article{position:relative;min-height:250px;padding:36px 30px;border:1px solid rgba(158,112,49,.22);background:linear-gradient(180deg,#fff 0%,#fbf8f3 100%);box-shadow:0 18px 48px rgba(71,48,20,.05)}
.hanabi-occasion-guide__grid span{display:block;margin-bottom:28px;color:#ae7f3f;font-family:Georgia,"Times New Roman",serif;font-size:14px;letter-spacing:.14em}
.hanabi-occasion-guide__grid h3{margin:0 0 14px;color:#41362b;font-size:18px;font-weight:600;letter-spacing:.05em}
.hanabi-occasion-guide__grid p{margin:0;color:#786e63;font-size:14px;line-height:2}
.hanabi-occasion-guide__actions{display:flex;justify-content:center;gap:12px;margin-top:34px;flex-wrap:wrap}
.hanabi-occasion-guide__actions a{display:inline-flex;min-width:230px;min-height:56px;align-items:center;justify-content:center;padding:12px 24px;border:1px solid rgba(151,103,39,.38);color:#76501f;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.07em}
.hanabi-occasion-guide__actions a.is-primary{border-color:transparent;background:linear-gradient(135deg,#b88949,#8f5d1f);color:#fff;box-shadow:0 14px 30px rgba(111,73,24,.14)}
.hanabi-occasion-guide__actions b{margin-left:9px;font-weight:400}
@media(max-width:767px){
 .hanabi-occasion-guide{padding:66px 18px}
 .hanabi-occasion-guide__heading{margin-bottom:30px;text-align:left}
 .hanabi-occasion-guide__heading h2{font-size:29px;letter-spacing:.035em}
 .hanabi-occasion-guide__grid{grid-template-columns:1fr;gap:12px}
 .hanabi-occasion-guide__grid article{min-height:0;padding:27px 24px}
 .hanabi-occasion-guide__grid span{margin-bottom:18px}
 .hanabi-occasion-guide__actions{margin-top:22px;gap:10px}
 .hanabi-occasion-guide__actions a{width:100%;min-width:0;min-height:60px}
}
\n\n/* Stage 23: visit steps */\n.hanabi-visit-steps{position:relative;padding:clamp(76px,9vw,122px) 24px;background:linear-gradient(180deg,#f8f4ed 0%,#fff 100%);color:#332b22;overflow:hidden}\n.hanabi-visit-steps:before{content:"03";position:absolute;right:-.03em;top:-.2em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(150px,26vw,390px);line-height:1;color:rgba(155,111,49,.045);pointer-events:none}\n.hanabi-visit-steps__inner{position:relative;z-index:1;width:min(1060px,100%);margin:0 auto}\n.hanabi-visit-steps__heading{max-width:760px;margin:0 auto 44px;text-align:center}\n.hanabi-visit-steps__eyebrow{margin:0 0 14px;color:#a27435;font-size:11px;font-weight:700;letter-spacing:.3em}\n.hanabi-visit-steps__heading h2{margin:0 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.45;letter-spacing:.05em;color:#3d3328}\n.hanabi-visit-steps__heading>p:last-child{margin:0;color:#756a5f;font-size:15px;line-height:2}\n.hanabi-visit-steps__list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0;padding:0;list-style:none;border:1px solid rgba(158,112,49,.22);background:rgba(255,255,255,.9);box-shadow:0 20px 52px rgba(71,48,20,.06)}\n.hanabi-visit-steps__list li{position:relative;display:flex;gap:18px;min-height:220px;padding:34px 28px}\n.hanabi-visit-steps__list li+li{border-left:1px solid rgba(158,112,49,.2)}\n.hanabi-visit-steps__list li:not(:last-child):after{content:"→";position:absolute;right:-15px;top:50%;z-index:2;display:grid;width:30px;height:30px;place-items:center;transform:translateY(-50%);border:1px solid rgba(158,112,49,.28);border-radius:50%;background:#fff;color:#9d6d2c;font-size:14px}\n.hanabi-visit-steps__list span{flex:0 0 36px;color:#ad7e3f;font-family:Georgia,"Times New Roman",serif;font-size:14px;letter-spacing:.08em}\n.hanabi-visit-steps__list h3{margin:0 0 13px;color:#41362b;font-size:18px;font-weight:600;letter-spacing:.05em}\n.hanabi-visit-steps__list p{margin:0;color:#786e63;font-size:14px;line-height:2}\n.hanabi-visit-steps__actions{display:flex;justify-content:center;gap:12px;margin-top:32px;flex-wrap:wrap}\n.hanabi-visit-steps__actions a{display:inline-flex;min-width:210px;min-height:56px;align-items:center;justify-content:center;padding:12px 22px;border:1px solid rgba(151,103,39,.38);color:#76501f;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.06em}\n.hanabi-visit-steps__actions a.is-primary{border-color:transparent;background:linear-gradient(135deg,#b88949,#8f5d1f);color:#fff;box-shadow:0 14px 30px rgba(111,73,24,.14)}\n.hanabi-visit-steps__actions b{margin-left:9px;font-weight:400}\n@media(max-width:767px){\n .hanabi-visit-steps{padding:66px 18px}\n .hanabi-visit-steps__heading{margin-bottom:30px;text-align:left}\n .hanabi-visit-steps__heading h2{font-size:29px;letter-spacing:.035em}\n .hanabi-visit-steps__list{grid-template-columns:1fr}\n .hanabi-visit-steps__list li{min-height:0;padding:26px 22px}\n .hanabi-visit-steps__list li+li{border-top:1px solid rgba(158,112,49,.2);border-left:0}\n .hanabi-visit-steps__list li:not(:last-child):after{content:"↓";right:auto;top:auto;bottom:-15px;left:50%;transform:translateX(-50%)}\n .hanabi-visit-steps__actions{display:grid;grid-template-columns:1fr;margin-top:22px;gap:10px}\n .hanabi-visit-steps__actions a{width:100%;min-width:0;min-height:60px}\n}\n

/* Stage 24: pre-visit reassurance guide */
.hanabi-visit-etiquette{position:relative;padding:clamp(76px,9vw,120px) 24px;background:#17130f;color:#f8f3eb;overflow:hidden}
.hanabi-visit-etiquette:after{content:"HANABI";position:absolute;right:-.03em;bottom:-.24em;font-family:Georgia,"Times New Roman",serif;font-size:clamp(110px,19vw,280px);line-height:1;color:rgba(255,255,255,.025);letter-spacing:.04em;pointer-events:none}
.hanabi-visit-etiquette__inner{position:relative;z-index:1;width:min(1060px,100%);margin:0 auto}
.hanabi-visit-etiquette__heading{max-width:760px;margin:0 auto 42px;text-align:center}
.hanabi-visit-etiquette__eyebrow{margin:0 0 14px;color:#d4ad70;font-size:11px;font-weight:700;letter-spacing:.3em}
.hanabi-visit-etiquette__heading h2{margin:0 0 18px;font-family:Georgia,"Times New Roman",serif;font-size:clamp(30px,4.2vw,48px);font-weight:500;line-height:1.45;letter-spacing:.05em;color:#fffaf3}
.hanabi-visit-etiquette__heading>p:last-child{margin:0;color:#cfc5b7;font-size:15px;line-height:2}
.hanabi-visit-etiquette__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.hanabi-visit-etiquette__grid article{min-height:230px;padding:32px 28px;border:1px solid rgba(214,174,111,.25);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.015));box-shadow:0 18px 40px rgba(0,0,0,.12)}
.hanabi-visit-etiquette__grid span{display:block;margin-bottom:24px;color:#d9b77d;font-family:Georgia,"Times New Roman",serif;font-size:13px;letter-spacing:.12em}
.hanabi-visit-etiquette__grid h3{margin:0 0 14px;color:#fff9f0;font-size:18px;font-weight:600;letter-spacing:.06em}
.hanabi-visit-etiquette__grid p{margin:0;color:#c9beb0;font-size:14px;line-height:2}
.hanabi-visit-etiquette__actions{display:flex;justify-content:center;gap:12px;margin-top:30px;flex-wrap:wrap}
.hanabi-visit-etiquette__actions a{display:inline-flex;min-width:220px;min-height:56px;align-items:center;justify-content:center;padding:12px 22px;border:1px solid rgba(214,174,111,.45);color:#edd8b7;text-decoration:none;font-size:13px;font-weight:700;letter-spacing:.06em}
.hanabi-visit-etiquette__actions a.is-primary{border-color:transparent;background:linear-gradient(135deg,#c59a59,#8c5a20);color:#fff;box-shadow:0 14px 30px rgba(0,0,0,.18)}
.hanabi-visit-etiquette__actions b{margin-left:9px;font-weight:400}
@media(max-width:767px){
 .hanabi-visit-etiquette{padding:66px 18px}
 .hanabi-visit-etiquette__heading{margin-bottom:30px;text-align:left}
 .hanabi-visit-etiquette__heading h2{font-size:29px;letter-spacing:.035em}
 .hanabi-visit-etiquette__grid{grid-template-columns:1fr;gap:12px}
 .hanabi-visit-etiquette__grid article{min-height:0;padding:27px 24px}
 .hanabi-visit-etiquette__grid span{margin-bottom:18px}
 .hanabi-visit-etiquette__actions{display:grid;grid-template-columns:1fr;margin-top:22px;gap:10px}
 .hanabi-visit-etiquette__actions a{width:100%;min-width:0;min-height:60px}
}

/* Stage 25: in-page quick navigation */
.hanabi-section-nav{position:relative;z-index:20;border-top:1px solid rgba(167,119,52,.18);border-bottom:1px solid rgba(167,119,52,.2);background:rgba(255,255,255,.96);box-shadow:0 10px 30px rgba(52,35,17,.05)}
.hanabi-section-nav__inner{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));width:min(1180px,100%);margin:0 auto}
.hanabi-section-nav a{display:flex;min-height:82px;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;border-right:1px solid rgba(167,119,52,.16);color:#41362b;text-align:center;text-decoration:none;transition:background .25s ease,color .25s ease}
.hanabi-section-nav a:first-child{border-left:1px solid rgba(167,119,52,.16)}
.hanabi-section-nav a:hover,.hanabi-section-nav a:focus-visible{background:#f8f3ea;color:#8c5d22}
.hanabi-section-nav span{display:block;margin-bottom:5px;color:#a47536;font-family:Georgia,"Times New Roman",serif;font-size:10px;letter-spacing:.16em}
.hanabi-section-nav strong{font-size:12px;font-weight:600;letter-spacing:.06em}
@media(max-width:767px){
 .hanabi-section-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
 .hanabi-section-nav::-webkit-scrollbar{display:none}
 .hanabi-section-nav__inner{display:flex;width:max-content;min-width:100%}
 .hanabi-section-nav a{flex:0 0 112px;min-height:68px;padding:9px 6px}
 .hanabi-section-nav span{font-size:9px}
 .hanabi-section-nav strong{font-size:11px;white-space:nowrap}
}

/* v3.1.51: keep the hero quick navigation in normal document flow.
   It remains directly below the hero, but no longer follows the user while scrolling. */
.hanabi-section-nav{position:relative;top:auto;backdrop-filter:saturate(145%) blur(12px);-webkit-backdrop-filter:saturate(145%) blur(12px)}
.admin-bar .hanabi-section-nav{top:auto}
.hanabi-section-nav a.is-active,.hanabi-section-nav a[aria-current="location"]{background:linear-gradient(180deg,#fbf6ee 0%,#f4eadb 100%);color:#7d511c;box-shadow:inset 0 -3px 0 #b27c35}
.hanabi-section-nav a.is-active span,.hanabi-section-nav a[aria-current="location"] span{color:#8c5d22}
html{scroll-behavior:auto}
#about,#cast,#event,#info{scroll-margin-top:125px}
@media(max-width:782px){.admin-bar .hanabi-section-nav{top:auto}}
@media(max-width:767px){
 .hanabi-section-nav{top:auto}
 .admin-bar .hanabi-section-nav{top:auto}
 .hanabi-section-nav a.is-active,.hanabi-section-nav a[aria-current="location"]{box-shadow:inset 0 -2px 0 #b27c35}
 #about,#cast,#event,#info{scroll-margin-top:95px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}



/* Stage 27: reading progress and page-top control */
.hanabi-page-progress{
 position:fixed;inset:0 0 auto 0;z-index:9998;height:3px;
 background:transparent;pointer-events:none
}
.hanabi-page-progress__bar{
 display:block;width:0;height:100%;
 background:linear-gradient(90deg,#8f5d1f,#d5b06e,#8f5d1f);
 box-shadow:0 0 12px rgba(188,143,72,.35);
 transition:width .08s linear
}
.hanabi-page-top{
 position:fixed;right:18px;bottom:88px;z-index:9997;
 display:grid;width:48px;height:48px;place-items:center;
 border:1px solid rgba(190,148,84,.55);border-radius:50%;
 background:rgba(24,19,15,.9);color:#f4dfbd;
 box-shadow:0 12px 32px rgba(0,0,0,.18);
 opacity:0;visibility:hidden;transform:translateY(12px);
 cursor:pointer;transition:opacity .25s ease,visibility .25s ease,transform .25s ease,background .25s ease
}
.hanabi-page-top.is-visible{opacity:1;visibility:visible;transform:translateY(0)}
.hanabi-page-top:hover,.hanabi-page-top:focus-visible{background:#8f5d1f;color:#fff}
.hanabi-page-top svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
@media(min-width:768px){
 .hanabi-page-top{right:28px;bottom:28px;width:52px;height:52px}
}
@media(prefers-reduced-motion:reduce){
 .hanabi-page-progress__bar,.hanabi-page-top{transition:none}
}


/* Stage 28: mobile quick-nav edge guidance and active-item centering */
@media(max-width:767px){
  .hanabi-section-nav{
    position:sticky;
    isolation:isolate;
  }
  .hanabi-section-nav:before,
  .hanabi-section-nav:after{
    content:"";
    position:sticky;
    z-index:3;
    top:0;
    display:block;
    width:24px;
    height:68px;
    margin-bottom:-68px;
    pointer-events:none;
  }
  .hanabi-section-nav:before{
    left:0;
    float:left;
    background:linear-gradient(90deg,rgba(255,255,255,.98),rgba(255,255,255,0));
  }
  .hanabi-section-nav:after{
    right:0;
    float:right;
    background:linear-gradient(270deg,rgba(255,255,255,.98),rgba(255,255,255,0));
  }
  .hanabi-section-nav.is-at-start:before,
  .hanabi-section-nav.is-at-end:after{opacity:0}
  .hanabi-section-nav:before,
  .hanabi-section-nav:after{transition:opacity .2s ease}
  .hanabi-section-nav a{scroll-margin-inline:32px}
}
@media(prefers-reduced-motion:reduce){
  .hanabi-section-nav:before,
  .hanabi-section-nav:after{transition:none}
}


/* Stage 29: menu keyboard focus visibility */
.nav a:focus-visible,
.menu-toggle:focus-visible{
  outline:2px solid #b88a45;
  outline-offset:4px;
}
body.menu-open .nav{
  overscroll-behavior:contain;
}


/* Stage 30: live business-status badge */
.hanabi-business-status{
  display:inline-flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 10px;
  margin:10px 0 18px;
  padding:8px 13px;
  border:1px solid rgba(147,100,37,.22);
  border-radius:999px;
  background:rgba(255,255,255,.7);
  color:#5e4a31;
  font-size:12px;
  line-height:1.4;
  letter-spacing:.08em;
}
.hanabi-business-status__dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#a79d90;
  box-shadow:0 0 0 4px rgba(167,157,144,.12);
}
.hanabi-business-status strong{font-weight:600}
.hanabi-business-status small{
  color:#83725e;
  font-size:10px;
  letter-spacing:.04em;
}
.hanabi-business-status.is-open{
  border-color:rgba(80,132,89,.3);
  background:rgba(245,252,246,.88);
}
.hanabi-business-status.is-open .hanabi-business-status__dot{
  background:#4f8a59;
  box-shadow:0 0 0 4px rgba(79,138,89,.14);
}
.hanabi-business-status.is-closed .hanabi-business-status__dot{
  background:#a77945;
  box-shadow:0 0 0 4px rgba(167,121,69,.14);
}
@media(max-width:520px){
  .hanabi-business-status{
    display:grid;
    grid-template-columns:auto 1fr;
    width:max-content;
    max-width:100%;
    border-radius:16px;
  }
  .hanabi-business-status small{
    grid-column:2;
  }
}


/* Stage31 */
.hanabi-scroll-indicator{
position:fixed;left:50%;bottom:18px;transform:translateX(-50%);
padding:8px 14px;border-radius:999px;
background:rgba(255,255,255,.88);
border:1px solid rgba(184,138,69,.35);
font-size:12px;letter-spacing:.08em;
opacity:0;transition:opacity .25s;
z-index:9996}
.hanabi-scroll-indicator.is-visible{opacity:1}


/* Stage32 */
.hanabi-reading-highlight{
transition:background-color .25s ease,color .25s ease,box-shadow .25s ease;
}
.hanabi-reading-highlight.is-active{
background:rgba(255,248,236,.95);
box-shadow:0 10px 30px rgba(184,138,69,.12);
}


/* Stage 33: skip link and keyboard focus support */
.hanabi-skip-link{
  position:fixed;
  top:10px;
  left:10px;
  z-index:10000;
  padding:10px 14px;
  border:1px solid rgba(184,138,69,.6);
  border-radius:8px;
  background:#fff;
  color:#4f3b24;
  font-size:14px;
  font-weight:600;
  text-decoration:none;
  box-shadow:0 8px 24px rgba(0,0,0,.14);
  transform:translateY(-160%);
  transition:transform .2s ease;
}
.hanabi-skip-link:focus{
  transform:translateY(0);
  outline:2px solid #b88a45;
  outline-offset:3px;
}
#hanabi-main-content:focus{
  outline:none;
}
@media(prefers-reduced-motion:reduce){
  .hanabi-skip-link{transition:none}
}


/* Stage 34: touch and click feedback */
a,
button,
input[type="button"],
input[type="submit"],
.hanabi-button,
.hanabi-cta,
.hanabi-section-nav a{
  -webkit-tap-highlight-color:rgba(184,138,69,.18);
}

a.is-pressed,
button.is-pressed,
input[type="button"].is-pressed,
input[type="submit"].is-pressed,
.hanabi-button.is-pressed,
.hanabi-cta.is-pressed{
  transform:scale(.975);
  filter:brightness(.97);
}

a,
button,
input[type="button"],
input[type="submit"],
.hanabi-button,
.hanabi-cta{
  transition:
    transform .14s ease,
    filter .14s ease,
    background-color .2s ease,
    border-color .2s ease,
    color .2s ease,
    box-shadow .2s ease;
}

@media(hover:hover){
  a:hover,
  button:hover,
  input[type="button"]:hover,
  input[type="submit"]:hover{
    text-decoration-thickness:from-font;
  }
}

@media(prefers-reduced-motion:reduce){
  a,
  button,
  input[type="button"],
  input[type="submit"],
  .hanabi-button,
  .hanabi-cta{
    transition:none;
  }
  a.is-pressed,
  button.is-pressed,
  input[type="button"].is-pressed,
  input[type="submit"].is-pressed,
  .hanabi-button.is-pressed,
  .hanabi-cta.is-pressed{
    transform:none;
  }
}


/* Stage 35: image loading polish */
img.hanabi-image-loading{
  opacity:0;
  transition:opacity .35s ease;
}
img.hanabi-image-loading.is-loaded{
  opacity:1;
}
img[width][height]{
  height:auto;
}
@media(prefers-reduced-motion:reduce){
  img.hanabi-image-loading{
    transition:none;
  }
}


/* Stage 38: stable embedded media rendering */
iframe.hanabi-embedded-media,
video.hanabi-embedded-media{
  max-width:100%;
}
video.hanabi-embedded-media{
  height:auto;
}


/* Stage 39: below-the-fold rendering optimization */
.hanabi-deferred-section{
  content-visibility:auto;
  contain-intrinsic-size:auto 720px;
}
@supports not (content-visibility:auto){
  .hanabi-deferred-section{
    content-visibility:visible;
  }
}


/* Stage 40: form usability and validation visibility */
input:focus-visible,
select:focus-visible,
textarea:focus-visible{
  outline:2px solid #b88a45;
  outline-offset:2px;
}

input[aria-invalid="true"],
select[aria-invalid="true"],
textarea[aria-invalid="true"]{
  border-color:#b3261e !important;
  box-shadow:0 0 0 2px rgba(179,38,30,.12);
}

.hanabi-form-error-focus{
  animation:hanabi-form-error-pulse .45s ease;
}

@keyframes hanabi-form-error-pulse{
  0%{transform:translateX(0)}
  30%{transform:translateX(-3px)}
  60%{transform:translateX(3px)}
  100%{transform:translateX(0)}
}

@media(prefers-reduced-motion:reduce){
  .hanabi-form-error-focus{
    animation:none;
  }
}


/* Stage 41: form submission feedback and duplicate-send prevention */
form.hanabi-form-submitting{
  position:relative;
}

form.hanabi-form-submitting::after{
  content:"送信中…";
  position:absolute;
  inset:auto 0 -2.5rem 0;
  text-align:center;
  font-size:.875rem;
  color:#6b5332;
  letter-spacing:.04em;
}

form.hanabi-form-submitting button[type="submit"],
form.hanabi-form-submitting input[type="submit"]{
  cursor:wait;
  opacity:.72;
  pointer-events:none;
}

.hanabi-submit-spinner{
  display:inline-block;
  width:1em;
  height:1em;
  margin-right:.45em;
  vertical-align:-.14em;
  border:2px solid currentColor;
  border-right-color:transparent;
  border-radius:50%;
  animation:hanabi-submit-spin .7s linear infinite;
}

@keyframes hanabi-submit-spin{
  to{transform:rotate(360deg)}
}

@media(prefers-reduced-motion:reduce){
  .hanabi-submit-spinner{
    animation:none;
    border-right-color:currentColor;
  }
}


/* Stage42: dynamic viewport */
:root{
  --hanabi-vh:100vh;
}
@supports(height:100dvh){
  :root{--hanabi-vh:100dvh;}
}
.hanabi-full-height{
  min-height:var(--hanabi-vh);
  padding-bottom:env(safe-area-inset-bottom);
}


/* Stage43: reduced data optimization */
@media (prefers-reduced-data: reduce){
  img,video{filter:none}
  .hanabi-parallax,
  [data-parallax]{background-attachment:scroll!important;}
}


/* Stage44: print optimization */
@media print{
  header,
  footer,
  nav,
  .hanabi-section-nav,
  .hanabi-back-to-top,
  .hanabi-skip-link,
  video,
  iframe{
    display:none !important;
  }

  body{
    background:#fff !important;
    color:#000 !important;
  }

  a[href]::after{
    content:" (" attr(href) ")";
    font-size:90%;
    word-break:break-all;
  }
}


/* Stage45: offline status */
.hanabi-offline-banner{
 position:fixed;
 left:0;right:0;top:0;
 z-index:99999;
 padding:10px 16px;
 text-align:center;
 background:#8b1e1e;
 color:#fff;
 font-size:14px;
 transform:translateY(-100%);
 transition:transform .25s ease;
}
.hanabi-offline-banner.is-visible{
 transform:translateY(0);
}
@media(prefers-reduced-motion:reduce){
 .hanabi-offline-banner{transition:none;}
}


/* Stage46: pause nonessential motion while the page is hidden */
html.hanabi-page-hidden *,
html.hanabi-page-hidden *::before,
html.hanabi-page-hidden *::after{
  animation-play-state:paused !important;
}


/* Stage47: network-aware media quality hints */
html.hanabi-slow-network video{
  background:#000;
}

html.hanabi-slow-network .hanabi-heavy-effect,
html.hanabi-slow-network [data-heavy-effect]{
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}


/* Stage48: resilient external link handling */
a.hanabi-external-link::after{
  content:"↗";
  display:inline-block;
  margin-left:.25em;
  font-size:.8em;
  line-height:1;
  vertical-align:.08em;
}

a.hanabi-external-link:focus-visible{
  outline:2px solid #b88a45;
  outline-offset:3px;
}


/* Stage49: no-JavaScript fallback and progressive enhancement */
html:not(.hanabi-js) .hanabi-js-only{
  display:none !important;
}

html:not(.hanabi-js) .hanabi-hidden-until-ready,
html:not(.hanabi-js) [data-reveal],
html:not(.hanabi-js) .hanabi-deferred-section{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  content-visibility:visible !important;
}

html.hanabi-js .hanabi-noscript-only{
  display:none !important;
}


/* Stage50: final stability and BFCache recovery */
html.hanabi-restoring *{
  transition-duration:0s !important;
  animation-duration:0s !important;
}

html.hanabi-ready body{
  visibility:visible;
}


/* Final correction: remove the two unintended bars.
   The original .hanabi-fixed-actions design and animation above remain unchanged. */
.hanabi-mobile-quickbar,
.hanabi-hero-end-actions{
  display:none !important;
}


/* v3.1.9: requested mobile luxury action bar and TONIGHT text visibility */
@media(max-width:899px){
  .hanabi-fixed-actions{
    background:linear-gradient(180deg,rgba(255,253,248,.97),rgba(246,233,202,.98))!important;
    border-top:1px solid rgba(183,133,49,.55)!important;
    box-shadow:0 -10px 32px rgba(75,45,7,.18),0 -1px 0 rgba(255,255,255,.92) inset!important;
  }
  .hanabi-fixed-actions a{
    overflow:hidden;
    min-height:78px!important;
    border-top:0!important;
    color:#4a3214!important;
    font-family:"Yu Mincho","Hiragino Mincho ProN",serif!important;
    font-size:14px!important;
    font-weight:600!important;
    letter-spacing:.10em!important;
    text-shadow:0 1px 0 rgba(255,255,255,.82);
  }
  .hanabi-fixed-actions a::before{
    content:"";
    position:absolute;
    inset:6px;
    border:1px solid rgba(255,255,255,.66);
    box-shadow:inset 0 0 0 1px rgba(153,101,26,.16);
  }
  .hanabi-fixed-actions a::after{
    content:"";
    position:absolute;
    top:-70%;
    left:-42%;
    width:28%;
    height:240%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.62),transparent);
    transform:rotate(18deg);
    animation:hanabiFixedButtonShine 6.5s ease-in-out infinite;
  }
  .hanabi-fixed-actions .store-button{
    background:linear-gradient(135deg,#fffdf8 0%,#f6ead2 48%,#fffaf0 100%)!important;
    border-right:1px solid rgba(153,101,26,.42)!important;
  }
  .hanabi-fixed-actions .contact-button{
    background:linear-gradient(115deg,#b17a23 0%,#e7c873 24%,#fff0af 48%,#cf9d3b 72%,#f1d888 100%)!important;
    background-size:180% 100%!important;
    color:#38230a!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.72),inset 0 -1px 0 rgba(105,64,10,.22)!important;
  }
}
@keyframes hanabiFixedButtonShine{
  0%,58%{left:-42%;opacity:0}
  64%{opacity:1}
  82%,100%{left:128%;opacity:0}
}
@media(prefers-reduced-motion:reduce){
  .hanabi-fixed-actions a::after{animation:none!important}
}

/* TONIGHT section: keep all copy readable on the pale mobile presentation. */
.hanabi-tonight{
  color:#352a1f!important;
}
.hanabi-tonight__eyebrow,
.hanabi-tonight__details span{
  color:#9d6b26!important;
}
.hanabi-tonight__copy h2,
.hanabi-tonight__details strong{
  color:#352a1f!important;
  text-shadow:none!important;
}
.hanabi-tonight__copy>p:last-child{
  color:#66594a!important;
  text-shadow:none!important;
}
.hanabi-tonight__details{
  border-color:rgba(157,107,38,.34)!important;
  background:rgba(255,255,255,.30)!important;
}
.hanabi-tonight__details div+div{
  border-top-color:rgba(157,107,38,.24)!important;
}
.hanabi-tonight__info{
  border-color:rgba(157,107,38,.48)!important;
  color:#5b3d17!important;
  background:rgba(255,255,255,.32)!important;
  text-shadow:none!important;
}
.hanabi-tonight__tel small{
  color:#3b2914!important;
}
.hanabi-tonight__tel strong{
  color:#271a0d!important;
  font-family:"Yu Mincho","Hiragino Mincho ProN",Georgia,serif!important;
  font-size:24px!important;
  font-weight:700!important;
  font-variant-numeric:lining-nums tabular-nums;
  letter-spacing:.08em!important;
}


/* v3.1.10: ornate recruit button with cast portrait */
@media(max-width:899px){
  .hanabi-fixed-actions .store-button{
    justify-content:flex-start!important;
    padding:0 14px 0 44%!important;
    text-align:left!important;
    background:
      linear-gradient(90deg,rgba(255,255,255,.06) 0%,rgba(255,250,239,.78) 43%,rgba(248,229,187,.98) 100%),
      radial-gradient(circle at 78% 24%,rgba(255,255,255,.95) 0 2px,transparent 3px),
      radial-gradient(circle at 65% 70%,rgba(191,139,49,.34) 0 1px,transparent 2px),
      url('assets/images/cast-1.webp') left 37%/46% auto no-repeat!important;
    color:#4a2d0c!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(128,79,15,.20)!important;
  }
  .hanabi-fixed-actions .store-button::before{
    inset:5px!important;
    border:1px solid rgba(174,117,29,.48)!important;
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.72),inset 0 0 18px rgba(255,244,215,.62)!important;
  }
  .hanabi-fixed-actions .store-button::after{
    content:"✦"!important;
    top:10px!important;
    right:10px!important;
    left:auto!important;
    width:auto!important;
    height:auto!important;
    background:none!important;
    transform:none!important;
    color:#b37d26!important;
    font-size:12px!important;
    line-height:1!important;
    opacity:.9!important;
    animation:hanabiRecruitSparkle 2.8s ease-in-out infinite!important;
  }
  .hanabi-fixed-actions .hanabi-recruit-label{
    position:relative;
    z-index:3;
    display:flex;
    flex-direction:column;
    gap:2px;
    line-height:1.15;
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.9));
  }
  .hanabi-fixed-actions .hanabi-recruit-label small{
    color:#9a6a20;
    font-family:Georgia,"Times New Roman",serif;
    font-size:8px;
    font-weight:700;
    letter-spacing:.24em;
  }
  .hanabi-fixed-actions .hanabi-recruit-label strong{
    position:relative;
    font-size:15px;
    font-weight:700;
    letter-spacing:.13em;
  }
  .hanabi-fixed-actions .hanabi-recruit-label strong::after{
    content:"";
    position:absolute;
    left:0;
    right:14%;
    bottom:-6px;
    height:1px;
    background:linear-gradient(90deg,#9f681a,rgba(214,178,96,.25));
  }
}
@keyframes hanabiRecruitSparkle{
  0%,100%{transform:scale(.8) rotate(0deg);opacity:.35}
  50%{transform:scale(1.22) rotate(25deg);opacity:1}
}
@media(prefers-reduced-motion:reduce){
  .hanabi-fixed-actions .store-button::after{animation:none!important}
}


/* v3.1.11: premium twin action bar refinement */
@media(max-width:899px){
  .hanabi-fixed-actions{
    grid-template-columns:.96fr 1.14fr!important;
    background:rgba(255,252,244,.94)!important;
    border-top:1px solid rgba(176,122,35,.58)!important;
    box-shadow:0 -14px 38px rgba(77,46,8,.22),0 -1px 0 rgba(255,255,255,.96) inset!important;
    backdrop-filter:blur(16px) saturate(1.15);
    -webkit-backdrop-filter:blur(16px) saturate(1.15);
  }
  .hanabi-fixed-actions a{
    position:relative;
    isolation:isolate;
    min-height:82px!important;
    transition:transform .22s ease,filter .22s ease,box-shadow .22s ease!important;
  }
  .hanabi-fixed-actions a:active{
    transform:translateY(2px) scale(.985)!important;
    filter:brightness(.97);
  }

  /* Recruit: portrait, damask-like ornament, crystal sparkle and moving light. */
  .hanabi-fixed-actions .store-button{
    overflow:hidden!important;
    justify-content:flex-end!important;
    padding:0 12px 0 39%!important;
    background:
      linear-gradient(90deg,rgba(255,255,255,.02) 0%,rgba(255,250,238,.28) 35%,rgba(255,248,230,.92) 58%,rgba(232,197,119,.98) 100%),
      radial-gradient(ellipse at 72% 38%,rgba(255,255,255,.88),transparent 38%),
      url('assets/images/cast-1.webp') left 32%/53% auto no-repeat!important;
    border-right:1px solid rgba(131,82,13,.38)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.96),inset 0 -7px 18px rgba(112,67,7,.10)!important;
    animation:hanabiRecruitPortraitFloat 8s ease-in-out infinite alternate;
  }
  .hanabi-fixed-actions .store-button::before{
    content:""!important;
    position:absolute!important;
    inset:5px!important;
    z-index:1!important;
    border:1px solid rgba(151,94,14,.52)!important;
    background:
      radial-gradient(circle at 81% 25%,rgba(255,255,255,.95) 0 1px,transparent 2px),
      radial-gradient(circle at 69% 72%,rgba(255,255,255,.78) 0 1px,transparent 2px),
      repeating-radial-gradient(ellipse at 112% 50%,transparent 0 10px,rgba(132,79,9,.07) 11px 12px,transparent 13px 23px);
    box-shadow:inset 0 0 0 1px rgba(255,255,255,.7),inset 0 0 22px rgba(255,246,218,.68)!important;
    pointer-events:none!important;
  }
  .hanabi-fixed-actions .store-button::after{
    content:""!important;
    position:absolute!important;
    z-index:2!important;
    top:-65%!important;
    left:-52%!important;
    width:24%!important;
    height:230%!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.78),transparent)!important;
    transform:rotate(17deg)!important;
    animation:hanabiRecruitSweep 5.8s ease-in-out infinite!important;
  }
  .hanabi-fixed-actions .hanabi-recruit-label{
    position:relative;
    z-index:4;
    width:100%;
    align-items:center;
    text-align:center;
    padding-left:2px;
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.9));
  }
  .hanabi-fixed-actions .hanabi-recruit-label::before,
  .hanabi-fixed-actions .hanabi-recruit-label::after{
    content:"✦";
    position:absolute;
    color:#a66e17;
    font-size:8px;
    top:50%;
    transform:translateY(-50%);
    animation:hanabiTinySpark 2.6s ease-in-out infinite;
  }
  .hanabi-fixed-actions .hanabi-recruit-label::before{left:0}
  .hanabi-fixed-actions .hanabi-recruit-label::after{right:0;animation-delay:1.3s}
  .hanabi-fixed-actions .hanabi-recruit-label small{
    color:#865713!important;
    font-size:8px!important;
    letter-spacing:.27em!important;
  }
  .hanabi-fixed-actions .hanabi-recruit-label strong{
    color:#3d2608!important;
    font-size:15px!important;
    letter-spacing:.14em!important;
    text-shadow:0 1px 0 #fff,0 0 12px rgba(255,255,255,.82)!important;
  }

  /* Reservation: hotel-lounge gold glass, icon, restrained sheen and depth. */
  .hanabi-fixed-actions .contact-button{
    overflow:hidden!important;
    padding:0 10px!important;
    background:
      radial-gradient(ellipse at 50% -20%,rgba(255,255,255,.72),transparent 48%),
      linear-gradient(115deg,#9b6819 0%,#d8b15e 20%,#f5dda0 43%,#bf8830 68%,#edcf7e 100%)!important;
    background-size:100% 100%,190% 100%!important;
    color:#321f08!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.82),inset 0 -8px 16px rgba(91,49,2,.16),-5px 0 16px rgba(89,51,4,.07)!important;
    animation:hanabiReservationGold 9s ease-in-out infinite alternate;
  }
  .hanabi-fixed-actions .contact-button::before{
    content:""!important;
    position:absolute!important;
    inset:5px!important;
    z-index:1!important;
    border:1px solid rgba(255,250,222,.72)!important;
    background:linear-gradient(135deg,rgba(255,255,255,.12),transparent 45%,rgba(91,49,2,.06))!important;
    box-shadow:inset 0 0 0 1px rgba(106,60,7,.16),inset 0 0 24px rgba(255,239,185,.24)!important;
  }
  .hanabi-fixed-actions .contact-button::after{
    content:""!important;
    position:absolute!important;
    z-index:2!important;
    top:-72%!important;
    left:-38%!important;
    width:22%!important;
    height:245%!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.68),transparent)!important;
    transform:rotate(18deg)!important;
    animation:hanabiContactSweep 7s ease-in-out infinite!important;
  }
  .hanabi-contact-label{
    position:relative;
    z-index:4;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    line-height:1.15;
    text-shadow:0 1px 0 rgba(255,255,255,.55);
  }
  .hanabi-contact-label small{
    font-family:Georgia,"Times New Roman",serif;
    font-size:7px;
    font-weight:700;
    letter-spacing:.24em;
    color:#72501d;
  }
  .hanabi-contact-label strong{
    font-size:13px;
    font-weight:700;
    letter-spacing:.06em;
    white-space:nowrap;
  }
  .hanabi-contact-label i{
    display:inline-grid;
    place-items:center;
    width:19px;
    height:19px;
    margin-right:3px;
    border:1px solid rgba(79,44,4,.42);
    border-radius:50%;
    font-family:Arial,sans-serif;
    font-size:10px;
    font-style:normal;
    vertical-align:1px;
    background:rgba(255,255,255,.22);
  }
}
@keyframes hanabiRecruitPortraitFloat{
  from{background-position:0 0,0 0,left 31%}
  to{background-position:0 0,0 0,left 36%}
}
@keyframes hanabiRecruitSweep{
  0%,56%{left:-52%;opacity:0}
  62%{opacity:1}
  82%,100%{left:126%;opacity:0}
}
@keyframes hanabiContactSweep{
  0%,62%{left:-38%;opacity:0}
  68%{opacity:.9}
  88%,100%{left:125%;opacity:0}
}
@keyframes hanabiReservationGold{
  from{background-position:0 0,0 0}
  to{background-position:0 0,100% 0}
}
@keyframes hanabiTinySpark{
  0%,100%{opacity:.28;transform:translateY(-50%) scale(.72) rotate(0)}
  50%{opacity:1;transform:translateY(-50%) scale(1.18) rotate(25deg)}
}
@media(prefers-reduced-motion:reduce){
  .hanabi-fixed-actions .store-button,
  .hanabi-fixed-actions .contact-button,
  .hanabi-fixed-actions .store-button::after,
  .hanabi-fixed-actions .contact-button::after,
  .hanabi-fixed-actions .hanabi-recruit-label::before,
  .hanabi-fixed-actions .hanabi-recruit-label::after{animation:none!important}
}


/* ChatGPT readability fixes */
.first-visit h2,
.first-visit .section-title,
.first-visit .lead,
.first-visit p,
.first-visit .step-title{
 text-align:left!important;
 margin-left:auto!important;
 margin-right:auto!important;
 padding-left:12px!important;
 color:#2b241d!important;
}
.first-visit p{color:#5b5148!important;}
.card, .info-card, .guide-card{
 color:#2b241d!important;
}
.card p,.info-card p,.guide-card p{
 color:#5b5148!important;
}
.card h2,.card h3,.info-card h2,.info-card h3,.guide-card h2,.guide-card h3,
a,.button-link{
 color:#2b241d!important;
}
@media(max-width:768px){
 .card,.info-card,.guide-card{
   padding-left:24px!important;
   padding-right:24px!important;
 }
}

/* v3.1.13: mobile readability and card containment hard fix */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;}
@media(max-width:899px){
  /* Keep content fully visible instead of pale during scroll reveal. */
  .hanabi-occasion-guide.reveal,
  .hanabi-visit-steps.reveal,
  .hanabi-visit-etiquette.reveal,
  .hanabi-hospitality-promise.reveal,
  .hanabi-first-visit.reveal,
  .hanabi-tonight.reveal{
    opacity:1!important;
    transform:none!important;
    transition:none!important;
  }

  /* Shared section headings: readable, aligned and never clipped. */
  .hanabi-occasion-guide__heading,
  .hanabi-visit-steps__heading,
  .hanabi-visit-etiquette__heading,
  .hanabi-hospitality-promise__heading,
  .hanabi-first-visit__heading{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding:0 4px!important;
    text-align:left!important;
    box-sizing:border-box!important;
  }
  .hanabi-occasion-guide__heading h2,
  .hanabi-visit-steps__heading h2,
  .hanabi-visit-etiquette__heading h2,
  .hanabi-hospitality-promise__heading h2,
  .hanabi-first-visit__heading h2{
    color:#2f261e!important;
    font-size:28px!important;
    line-height:1.55!important;
  }
  .hanabi-occasion-guide__heading>p:last-child,
  .hanabi-visit-steps__heading>p:last-child,
  .hanabi-hospitality-promise__heading>p:last-child,
  .hanabi-first-visit__heading>p:last-child{
    color:#51483f!important;
    font-size:15px!important;
    line-height:2!important;
    opacity:1!important;
  }

  /* Every card grows with its text and keeps all copy inside the frame. */
  .hanabi-occasion-guide__grid,
  .hanabi-visit-etiquette__grid,
  .hanabi-hospitality-promise__grid,
  .hanabi-first-visit__cards{
    align-items:stretch!important;
    grid-auto-rows:auto!important;
  }
  .hanabi-occasion-guide__grid article,
  .hanabi-visit-etiquette__grid article,
  .hanabi-hospitality-promise__grid article,
  .hanabi-first-visit__cards article{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding:26px 24px 30px!important;
    box-sizing:border-box!important;
  }
  .hanabi-visit-steps__list li{
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    overflow:visible!important;
    padding:26px 24px 30px!important;
    box-sizing:border-box!important;
  }
  .hanabi-visit-steps__list li>div{min-width:0!important;width:100%!important;}

  /* Stronger text contrast and stable wrapping. */
  .hanabi-occasion-guide__grid h3,
  .hanabi-visit-steps__list h3,
  .hanabi-hospitality-promise__grid h3,
  .hanabi-first-visit__cards h3,
  .hanabi-visit-etiquette__grid h3{
    margin:0 0 15px!important;
    color:#2d251e!important;
    font-size:21px!important;
    line-height:1.55!important;
    overflow-wrap:anywhere!important;
  }
  .hanabi-occasion-guide__grid p,
  .hanabi-visit-steps__list p,
  .hanabi-hospitality-promise__grid p,
  .hanabi-first-visit__cards p,
  .hanabi-visit-etiquette__grid p{
    margin:0!important;
    color:#554c43!important;
    font-size:15px!important;
    line-height:2!important;
    opacity:1!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
  .hanabi-occasion-guide__grid span,
  .hanabi-visit-steps__list span,
  .hanabi-hospitality-promise__grid span,
  .hanabi-first-visit__cards article>span,
  .hanabi-visit-etiquette__grid span{
    color:#9b6b28!important;
    opacity:1!important;
  }

  /* The dark etiquette block is converted to the same readable light cards. */
  .hanabi-visit-etiquette{
    background:linear-gradient(180deg,#fbf7ef 0%,#fff 100%)!important;
    color:#2f261e!important;
  }
  .hanabi-visit-etiquette__heading h2{color:#2f261e!important;}
  .hanabi-visit-etiquette__heading>p:last-child{color:#51483f!important;opacity:1!important;}
  .hanabi-visit-etiquette__grid article{
    border:1px solid rgba(158,112,49,.26)!important;
    background:#fff!important;
    box-shadow:0 12px 32px rgba(71,48,20,.06)!important;
  }

  /* Prevent the fixed action bar from covering the final lines. */
  body{padding-bottom:calc(110px + env(safe-area-inset-bottom))!important;}
}

/* v3.1.14: keep page-top clear of the fixed CTA and restore flowing light */
@media(max-width:899px){
  .hanabi-page-top{
    right:18px!important;
    bottom:calc(112px + env(safe-area-inset-bottom))!important;
    z-index:10020!important;
  }

  /* Restore the elegant moving sheen on both fixed action buttons. */
  .hanabi-fixed-actions .store-button{
    animation:hanabiRecruitPortraitFloat 8s ease-in-out infinite alternate!important;
  }
  .hanabi-fixed-actions .contact-button{
    animation:hanabiReservationGold 9s ease-in-out infinite alternate!important;
  }
  .hanabi-fixed-actions .store-button::after{
    animation:hanabiRecruitSweep 5.8s ease-in-out infinite!important;
  }
  .hanabi-fixed-actions .contact-button::after{
    animation:hanabiContactSweep 7s ease-in-out infinite!important;
  }
}

/* This requested decorative sheen remains active even when Reduce Motion is enabled. */
@media(max-width:899px) and (prefers-reduced-motion:reduce){
  .hanabi-fixed-actions .store-button{
    animation:hanabiRecruitPortraitFloat 8s ease-in-out infinite alternate!important;
  }
  .hanabi-fixed-actions .contact-button{
    animation:hanabiReservationGold 9s ease-in-out infinite alternate!important;
  }
  .hanabi-fixed-actions .store-button::after{
    animation:hanabiRecruitSweep 5.8s ease-in-out infinite!important;
  }
  .hanabi-fixed-actions .contact-button::after{
    animation:hanabiContactSweep 7s ease-in-out infinite!important;
  }
}


/* v3.1.15: unmistakable continuous light sweep on the fixed mobile buttons */
@media (max-width:899px){
  .hanabi-fixed-actions .store-button,
  .hanabi-fixed-actions .contact-button{
    position:relative!important;
    overflow:hidden!important;
  }
  .hanabi-fixed-actions .store-button::after,
  .hanabi-fixed-actions .contact-button::after{
    content:""!important;
    display:block!important;
    position:absolute!important;
    z-index:3!important;
    top:-85%!important;
    left:0!important;
    width:38%!important;
    height:280%!important;
    opacity:0!important;
    pointer-events:none!important;
    background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.88) 48%,rgba(255,255,255,0))!important;
    filter:blur(.2px)!important;
    will-change:transform,opacity!important;
    animation:hanabiCtaVisibleSweep 3.4s cubic-bezier(.42,0,.32,1) infinite!important;
  }
  .hanabi-fixed-actions .contact-button::after{
    animation-delay:1.15s!important;
  }
}
@keyframes hanabiCtaVisibleSweep{
  0%,16%{transform:translate3d(-180%,0,0) rotate(18deg);opacity:0}
  22%{opacity:.95}
  52%{transform:translate3d(520%,0,0) rotate(18deg);opacity:.9}
  60%,100%{transform:translate3d(620%,0,0) rotate(18deg);opacity:0}
}
/* Keep this requested decorative effect active regardless of iPhone Reduce Motion. */
@media (max-width:899px) and (prefers-reduced-motion:reduce){
  .hanabi-fixed-actions .store-button::after,
  .hanabi-fixed-actions .contact-button::after{
    animation:hanabiCtaVisibleSweep 3.4s cubic-bezier(.42,0,.32,1) infinite!important;
  }
  .hanabi-fixed-actions .contact-button::after{animation-delay:1.15s!important}
}


/* v3.1.16: real DOM sheen layer, independent from decorative pseudo-elements */
@media (max-width:899px){
  .hanabi-fixed-actions a{
    position:relative!important;
    overflow:hidden!important;
  }
  .hanabi-fixed-actions .hanabi-cta-sheen{
    display:block!important;
    position:absolute!important;
    z-index:8!important;
    top:-65%!important;
    left:-55%!important;
    width:34%!important;
    height:230%!important;
    pointer-events:none!important;
    opacity:0!important;
    transform:rotate(18deg)!important;
    background:linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.25) 25%,rgba(255,255,255,.98) 50%,rgba(255,255,255,.25) 75%,rgba(255,255,255,0) 100%)!important;
    box-shadow:0 0 18px rgba(255,255,255,.72)!important;
    animation:hanabiRealCtaSweep 2.8s ease-in-out infinite!important;
    will-change:left,opacity!important;
  }
  .hanabi-fixed-actions .contact-button .hanabi-cta-sheen{
    animation-delay:1.15s!important;
  }
  .hanabi-fixed-actions .hanabi-recruit-label,
  .hanabi-fixed-actions .hanabi-contact-label{
    position:relative!important;
    z-index:10!important;
  }
}
@keyframes hanabiRealCtaSweep{
  0%,14%{left:-55%;opacity:0}
  22%{opacity:1}
  55%{left:124%;opacity:.95}
  66%,100%{left:138%;opacity:0}
}
@media (max-width:899px) and (prefers-reduced-motion:reduce){
  .hanabi-fixed-actions .hanabi-cta-sheen{
    animation:hanabiRealCtaSweep 2.8s ease-in-out infinite!important;
  }
  .hanabi-fixed-actions .contact-button .hanabi-cta-sheen{animation-delay:1.15s!important}
}


/* v3.1.17: guaranteed visible flowing light, with JS animation fallback */
@media (max-width:899px){
  .hanabi-fixed-actions a{isolation:isolate!important;contain:paint!important;}
  .hanabi-fixed-actions .hanabi-cta-sheen{
    display:block!important;visibility:visible!important;position:absolute!important;
    z-index:999!important;top:-70%!important;left:0!important;width:62px!important;height:250%!important;
    opacity:0!important;pointer-events:none!important;border-radius:50%!important;
    transform:translate3d(-120px,0,0) rotate(18deg)!important;
    background:linear-gradient(90deg,rgba(255,255,255,0),rgba(255,255,255,.45) 25%,#fff 50%,rgba(255,255,255,.45) 75%,rgba(255,255,255,0))!important;
    box-shadow:0 0 22px 7px rgba(255,255,255,.8)!important;
    mix-blend-mode:screen!important;filter:none!important;
    animation:hanabiGuaranteedSweep 2.4s linear infinite!important;
  }
  .hanabi-fixed-actions .contact-button .hanabi-cta-sheen{animation-delay:1.2s!important;}
  .hanabi-fixed-actions .hanabi-recruit-label,.hanabi-fixed-actions .hanabi-contact-label{z-index:1000!important;}
}
@keyframes hanabiGuaranteedSweep{
  0%,12%{transform:translate3d(-130px,0,0) rotate(18deg);opacity:0}
  18%{opacity:1}
  58%{transform:translate3d(calc(100vw + 90px),0,0) rotate(18deg);opacity:1}
  66%,100%{transform:translate3d(calc(100vw + 120px),0,0) rotate(18deg);opacity:0}
}

/* v3.1.19: rebuild fixed twin buttons from the original premium portrait design */
@media (max-width:899px){
  .hanabi-fixed-actions{
    grid-template-columns:.92fr 1.08fr!important;
    min-height:86px!important;
    background:rgba(255,252,244,.98)!important;
    border-top:1px solid #b8842e!important;
    box-shadow:0 -12px 34px rgba(72,42,4,.24),0 -1px 0 #fff inset!important;
    overflow:visible!important;
  }
  .hanabi-fixed-actions a{
    position:relative!important;
    isolation:isolate!important;
    overflow:hidden!important;
    min-height:86px!important;
    color:#392208!important;
  }
  .hanabi-fixed-actions .store-button{
    justify-content:flex-end!important;
    padding:0 10px 0 38%!important;
    background-image:
      linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,250,236,.18) 32%,rgba(255,247,225,.92) 60%,rgba(226,188,105,.98) 100%),
      radial-gradient(ellipse at 76% 34%,rgba(255,255,255,.95),transparent 42%),
      url('assets/images/cast-1.webp')!important;
    background-repeat:no-repeat!important;
    background-size:100% 100%,100% 100%,58% auto!important;
    background-position:0 0,0 0,left 30%!important;
    border-right:1px solid rgba(126,76,8,.5)!important;
    box-shadow:inset 0 1px 0 #fff,inset 0 -8px 18px rgba(104,61,4,.12)!important;
    animation:hanabiPortraitBreath 6s ease-in-out infinite alternate!important;
  }
  .hanabi-fixed-actions .store-button::before,
  .hanabi-fixed-actions .contact-button::before{
    content:""!important;position:absolute!important;inset:5px!important;z-index:2!important;
    border:1px solid rgba(255,255,255,.78)!important;
    box-shadow:inset 0 0 0 1px rgba(139,84,8,.24),inset 0 0 22px rgba(255,244,204,.38)!important;
    pointer-events:none!important;
  }
  .hanabi-fixed-actions .store-button::before{
    background:repeating-radial-gradient(ellipse at 112% 50%,transparent 0 10px,rgba(126,75,8,.085) 11px 12px,transparent 13px 23px)!important;
  }
  .hanabi-fixed-actions .contact-button{
    padding:0 8px!important;
    background:linear-gradient(115deg,#9a6514 0%,#d3a84d 19%,#ffe9a4 43%,#c48d29 69%,#f1d481 100%)!important;
    background-size:230% 100%!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 -9px 18px rgba(75,38,0,.2)!important;
    animation:hanabiGoldRiver 3.8s linear infinite!important;
  }
  .hanabi-fixed-actions .hanabi-cta-sheen{
    display:block!important;visibility:visible!important;position:absolute!important;
    z-index:5!important;top:-75%!important;left:-35%!important;width:24%!important;height:260%!important;
    opacity:0!important;pointer-events:none!important;border-radius:50%!important;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.42),#fff,rgba(255,255,255,.42),transparent)!important;
    box-shadow:0 0 20px 5px rgba(255,255,255,.7)!important;
    transform:rotate(18deg)!important;
    animation:hanabiLuxurySweep 2.7s ease-in-out infinite!important;
  }
  .hanabi-fixed-actions .contact-button .hanabi-cta-sheen{animation-delay:1.3s!important}
  .hanabi-fixed-actions .hanabi-recruit-label,
  .hanabi-fixed-actions .hanabi-contact-label{position:relative!important;z-index:8!important;text-align:center!important;}
  .hanabi-fixed-actions .hanabi-recruit-label{width:100%!important;align-items:center!important;}
  .hanabi-fixed-actions .hanabi-recruit-label small,
  .hanabi-fixed-actions .hanabi-contact-label small{color:#7e5010!important;font-family:Georgia,"Times New Roman",serif!important;font-size:8px!important;font-weight:700!important;letter-spacing:.25em!important;}
  .hanabi-fixed-actions .hanabi-recruit-label strong,
  .hanabi-fixed-actions .hanabi-contact-label strong{color:#321d05!important;font-size:15px!important;font-weight:700!important;letter-spacing:.10em!important;text-shadow:0 1px 0 #fff!important;white-space:nowrap!important;}
  .hanabi-page-top{right:18px!important;bottom:calc(112px + env(safe-area-inset-bottom))!important;z-index:10020!important;}
}
@keyframes hanabiLuxurySweep{
  0%,12%{left:-38%;opacity:0}
  20%{opacity:1}
  58%{left:112%;opacity:1}
  68%,100%{left:128%;opacity:0}
}
@keyframes hanabiGoldRiver{
  0%{background-position:0% 50%}
  100%{background-position:230% 50%}
}
@keyframes hanabiPortraitBreath{
  0%{background-position:0 0,0 0,left 31%;filter:brightness(1)}
  100%{background-position:0 0,0 0,left 27%;filter:brightness(1.045)}
}
@media (max-width:380px){
  .hanabi-fixed-actions .hanabi-recruit-label strong,
  .hanabi-fixed-actions .hanabi-contact-label strong{font-size:13px!important;letter-spacing:.06em!important;}
}
@media (prefers-reduced-motion:reduce) and (max-width:899px){
  .hanabi-fixed-actions .store-button{animation:hanabiPortraitBreath 6s ease-in-out infinite alternate!important;}
  .hanabi-fixed-actions .contact-button{animation:hanabiGoldRiver 3.8s linear infinite!important;}
  .hanabi-fixed-actions .hanabi-cta-sheen{animation:hanabiLuxurySweep 2.7s ease-in-out infinite!important;}
  .hanabi-fixed-actions .contact-button .hanabi-cta-sheen{animation-delay:1.3s!important;}
}

/* v3.1.20: unmistakable fixed CTA motion, executed by inline RAF to bypass cached JS/keyframe conflicts */
@media (max-width:899px){
  .hanabi-fixed-actions .store-button{
    background-image:
      linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,250,236,.16) 30%,rgba(255,247,225,.94) 61%,rgba(226,188,105,.98) 100%),
      radial-gradient(ellipse at 78% 34%,rgba(255,255,255,.98),transparent 43%),
      url('assets/images/cast-1.webp')!important;
    background-repeat:no-repeat!important;
    background-size:100% 100%,100% 100%,58% auto!important;
    background-position:0 0,0 0,left 30%!important;
  }
  .hanabi-fixed-actions .contact-button{
    background-image:linear-gradient(115deg,#8d590d 0%,#d7a744 18%,#fff0ad 38%,#b97714 58%,#f7dc84 78%,#9b6211 100%)!important;
    background-size:200% 100%!important;
  }
  .hanabi-fixed-actions .hanabi-cta-sheen{animation:none!important;transition:none!important;}
}

/* v3.1.21: ensure every ABOUT/HANABI gateway remains tappable above decoration layers */
[data-section-nav] a,
.first-visit-grid a[href="#about"],
.first-visit-actions a[href="#about"],
a[data-section-link="about"],
a[data-hanabi-target="about"] {
  position: relative;
  z-index: 12;
  pointer-events: auto !important;
  touch-action: manipulation;
}
[data-section-nav]::before,
[data-section-nav]::after,
.first-visit-grid a::before,
.first-visit-grid a::after {
  pointer-events: none !important;
}

/* v3.1.24 navigation click hard fix */
.hanabi-section-nav a[data-hanabi-nav],.hanabi-brand-intro__nav a[data-hanabi-nav]{pointer-events:auto!important;position:relative!important;z-index:20!important;}
.hanabi-section-nav a[data-hanabi-nav] *, .hanabi-brand-intro__nav a[data-hanabi-nav] *{pointer-events:none!important;}

/* v3.1.29: same-page navigation switches instantly without visible auto-scrolling. */
html{scroll-behavior:auto!important}

/* v3.1.30: always show the Google map in the store information section. */


/* v3.1.32: glamorous champagne-gold coordination.
   Navigation and the existing fixed CTA fade/sweep animations are intentionally preserved. */
:root{
  --gold:#c58a22;
  --pale:#f2d78d;
  --ink:#2b241d;
  --paper:#fffaf0;
  --soft:#fbf0dc;
  --line:rgba(193,132,29,.34);
  --hanabi-heading-color:#a96810;
  --hanabi-subheading-color:#a87936;
  --hanabi-luxe-gold:#d7a33d;
  --hanabi-luxe-deep:#8f5709;
  --hanabi-luxe-glow:rgba(255,222,137,.48);
}
body{
  background:
    radial-gradient(circle at 12% 7%,rgba(255,255,255,.98) 0 8%,transparent 26%),
    radial-gradient(circle at 88% 18%,rgba(255,224,156,.23),transparent 28%),
    linear-gradient(135deg,#fffdf8 0%,#fff8eb 48%,#f9edda 100%);
}
body::before{
  content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.52;
  background-image:
    radial-gradient(circle at 14% 18%,rgba(255,255,255,.95) 0 1px,transparent 2px),
    radial-gradient(circle at 74% 26%,rgba(237,188,80,.48) 0 1px,transparent 2px),
    radial-gradient(circle at 42% 72%,rgba(255,255,255,.88) 0 1px,transparent 2px);
  background-size:98px 126px,153px 177px,211px 229px;
}
.site-header{
  border-bottom:1px solid rgba(197,138,34,.16);
  background:linear-gradient(180deg,rgba(255,253,247,.98),rgba(255,249,238,.82),rgba(255,248,234,.18));
}
.site-header.is-scrolled{
  background:rgba(255,251,243,.95);
  box-shadow:0 12px 36px rgba(118,69,4,.14),inset 0 -1px 0 rgba(255,255,255,.92);
}
.brand,.section-heading h2,.hanabi-brand-intro__eyebrow,.hanabi-first-visit__eyebrow,.hanabi-tonight__eyebrow{
  background:linear-gradient(105deg,#87520d 0%,#d5a245 40%,#fff0b5 53%,#a8670d 72%,#e7bf68 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent!important;
  text-shadow:0 2px 16px rgba(230,178,75,.18);
}
.menu-toggle{
  border-color:rgba(196,135,31,.42);
  background:radial-gradient(circle at 34% 24%,#fff,#fff9eb 46%,#f1dfba 100%);
  box-shadow:0 12px 30px rgba(123,75,9,.16),inset 0 1px 0 #fff;
}
.section,.hanabi-brand-intro,.hanabi-first-visit,.hanabi-tonight,.contact-section{
  background-image:
    radial-gradient(circle at 8% 0%,rgba(255,255,255,.92),transparent 30%),
    radial-gradient(circle at 92% 100%,rgba(238,190,91,.15),transparent 28%);
}
.section-heading{position:relative}
.section-heading::after{
  content:"";display:block;width:88px;height:1px;margin-top:18px;
  background:linear-gradient(90deg,transparent,#c58a22,#f4d98f,#c58a22,transparent);
  box-shadow:0 0 12px rgba(217,163,61,.5);
}
.info-card,.hanabi-first-visit__cards article,.hanabi-first-visit__note,.hanabi-tonight__details>div,.contact-section form,.info-map{
  border:1px solid rgba(197,138,34,.32)!important;
  background:
    linear-gradient(145deg,rgba(255,255,255,.96),rgba(255,248,234,.94))!important;
  box-shadow:0 18px 48px rgba(112,65,4,.10),inset 0 1px 0 rgba(255,255,255,.96)!important;
}
.info-card,.hanabi-first-visit__cards article,.hanabi-first-visit__note,.hanabi-tonight__details>div{
  position:relative;overflow:hidden;
}
.info-card::after,.hanabi-first-visit__cards article::after,.hanabi-tonight__details>div::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(120deg,transparent 0 42%,rgba(255,255,255,.72) 49%,transparent 57%);
  transform:translateX(-120%);
  animation:hanabiCardGleam 8.5s ease-in-out infinite;
}
.btn,.hanabi-brand-intro__actions .is-primary,.hanabi-tonight__tel,.info-map-button,input[type="submit"],button[type="submit"]{
  border-color:#b77713!important;
  color:#3c2306!important;
  background:linear-gradient(115deg,#9d6310 0%,#d9aa4a 21%,#fff0aa 45%,#c18420 68%,#edcf79 100%)!important;
  background-size:180% 100%!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 12px 28px rgba(125,74,5,.20),0 0 20px rgba(239,196,105,.18)!important;
}
.btn:hover,.hanabi-brand-intro__actions .is-primary:hover,.hanabi-tonight__tel:hover,.info-map-button:hover{
  background-position:100% 50%!important;transform:translateY(-1px);
}
.text-link,.hanabi-first-visit__cards a,.hanabi-tonight__info{
  color:#8b550a!important;text-shadow:0 1px 9px rgba(232,183,82,.18);
}
.cast-card{
  border-color:rgba(198,138,31,.36);
  box-shadow:0 24px 60px rgba(102,56,0,.16),0 0 0 1px rgba(255,255,255,.68) inset;
  background:linear-gradient(160deg,#fff,#fff6e5);
}
.cast-photo{position:relative}
.cast-photo::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.82),inset 0 -36px 60px rgba(102,55,0,.10);
}
.info-map{overflow:hidden;padding:7px;border-radius:2px}
.info-map iframe{filter:saturate(.82) sepia(.10) brightness(1.04);border-radius:1px}
.contact-section input,.contact-section select,.contact-section textarea,
.home-recruit input,.home-recruit select,.home-recruit textarea{
  border:1px solid rgba(190,128,25,.30)!important;
  background:rgba(255,255,255,.90)!important;
  box-shadow:inset 0 2px 8px rgba(107,62,5,.035)!important;
}
.contact-section input:focus,.contact-section select:focus,.contact-section textarea:focus,
.home-recruit input:focus,.home-recruit select:focus,.home-recruit textarea:focus{
  outline:none!important;border-color:#d3a13f!important;
  box-shadow:0 0 0 3px rgba(221,172,69,.15),0 0 22px rgba(221,172,69,.12)!important;
}
.site-footer{
  background:
    radial-gradient(circle at 10% 90%,rgba(255,255,255,.92),transparent 24%),
    radial-gradient(circle at 85% 20%,rgba(236,190,95,.20),transparent 28%),
    linear-gradient(145deg,#fffaf1,#f4e6cf);
  border-top-color:rgba(192,129,25,.30);
  box-shadow:inset 0 14px 35px rgba(255,255,255,.70);
}
@keyframes hanabiCardGleam{
  0%,62%{transform:translateX(-125%);opacity:0}
  69%{opacity:.75}
  82%{transform:translateX(125%);opacity:.5}
  100%{transform:translateX(125%);opacity:0}
}
@media(max-width:899px){
  .section,.hanabi-brand-intro,.hanabi-first-visit,.hanabi-tonight,.contact-section{background-size:auto,auto}
  .info-card,.hanabi-first-visit__cards article,.hanabi-first-visit__note,.hanabi-tonight__details>div{box-shadow:0 14px 34px rgba(110,63,3,.095),inset 0 1px 0 #fff!important}
  .hanabi-fixed-actions{filter:drop-shadow(0 9px 18px rgba(92,51,0,.22));}
  .hanabi-fixed-actions .store-button,.hanabi-fixed-actions .contact-button{
    border-color:rgba(122,69,0,.62)!important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -8px 18px rgba(83,44,0,.18),0 0 22px rgba(255,214,117,.22)!important;
  }
}

/* ==========================================================
   v3.1.33 First View Luxe Polish
   Visual-only enhancement for the first view.
   Existing logo animation, hero crossfade, white mist/fade,
   fixed CTA fade-in and moving shine are intentionally preserved.
   ========================================================== */
@media(max-width:899px){
  .hero-mobile{isolation:isolate}
  .hero-mobile:before{
    content:"";position:absolute;z-index:2;inset:0;pointer-events:none;
    background:
      radial-gradient(circle at 16% 20%,rgba(255,255,255,.90) 0 1px,transparent 2.5px),
      radial-gradient(circle at 82% 26%,rgba(255,232,170,.76) 0 1.2px,transparent 3px),
      radial-gradient(circle at 68% 52%,rgba(255,255,255,.72) 0 .9px,transparent 2.3px),
      radial-gradient(circle at 30% 60%,rgba(255,223,150,.50) 0 1px,transparent 2.8px);
    background-size:118px 142px,162px 184px,206px 236px,258px 286px;
    mix-blend-mode:screen;opacity:.46;
    animation:hanabiHeroGlimmer 10s ease-in-out infinite alternate;
  }
  .hero-mobile:after{
    content:"";position:absolute;z-index:2;left:8%;right:8%;top:6%;height:32%;pointer-events:none;
    background:radial-gradient(ellipse at 50% 0,rgba(255,248,224,.28),transparent 70%);
    filter:blur(12px);opacity:.72;
  }
  .hero-mobile-content{filter:drop-shadow(0 10px 28px rgba(96,60,12,.10))}
  .hero-mobile-kicker{
    color:#855715!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 0 18px rgba(255,238,193,.42);
  }
  .hero-mobile-title{
    color:#9d6a20!important;
    text-shadow:
      0 1px 0 #fff7df,
      0 2px 0 rgba(116,70,9,.30),
      0 8px 24px rgba(126,78,12,.18),
      0 0 22px rgba(255,235,178,.38)!important;
    -webkit-text-stroke:.22px rgba(106,62,5,.36);
  }
  .hero-mobile-title span{
    color:#9b6820!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 5px 18px rgba(112,67,9,.18)!important;
  }
  .hero-mobile-content p{
    color:#79501a;
    text-shadow:0 1px 0 rgba(255,255,255,.92),0 5px 18px rgba(128,78,14,.12);
  }
  .hero-mobile-dots i{
    border-color:#b27c2d!important;
    box-shadow:0 0 0 3px rgba(255,245,216,.20),0 0 12px rgba(218,170,75,.18);
  }
  .hero-mobile-dots i.active{
    background:linear-gradient(145deg,#e5bd65,#9b681f)!important;
    box-shadow:0 0 0 3px rgba(255,248,224,.30),0 0 16px rgba(218,168,68,.38);
  }
  .menu-toggle{
    border-color:rgba(180,128,48,.26)!important;
    background:linear-gradient(145deg,rgba(255,255,255,.97),rgba(251,242,224,.94))!important;
    box-shadow:0 14px 38px rgba(116,76,18,.13),inset 0 1px 0 rgba(255,255,255,.96)!important;
  }
  .menu-toggle span{background:linear-gradient(90deg,#8e5e1f,#c99743)!important}
}

@keyframes hanabiHeroGlimmer{
  0%{opacity:.34;background-position:0 0,0 0,0 0,0 0}
  55%{opacity:.52}
  100%{opacity:.40;background-position:12px 20px,-10px 26px,14px 34px,-12px 38px}
}


/* ==========================================================
   v3.1.34 Hero logo restoration + iPhone image long-press guard
   Restores the original animated metallic logo exactly as the
   pre-v3.1.33 first view, while keeping the white fade and all
   carousel/fixed-button animations unchanged.
   ========================================================== */
@media(max-width:899px){
  body.home .hero-mobile-kicker{
    color:#8a5e22!important;
    text-shadow:0 1px 0 rgba(255,255,255,.92)!important;
  }
  body.home .hero-mobile-title,
  body.home .hero-mobile-title span{
    color:#b27a20!important;
    background-image:var(--hanabi-metal-gold)!important;
    background-size:240% 100%!important;
    background-position:0 50%;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    -webkit-text-fill-color:transparent!important;
    filter:drop-shadow(0 1px 0 rgba(255,255,255,.95)) drop-shadow(0 2px 2px rgba(76,43,3,.30))!important;
    text-shadow:none!important;
    animation:hanabiMetalSweep 7s ease-in-out infinite!important;
  }
  body.home .hero-mobile-title{
    -webkit-text-stroke:.45px rgba(91,52,5,.44)!important;
  }
  body.home .hero-mobile-title span{
    -webkit-text-stroke:.3px rgba(91,52,5,.38)!important;
  }
  body.home .hero-mobile-content p{
    color:inherit!important;
    text-shadow:0 2px 18px rgba(255,255,255,.96)!important;
  }
}

/* Prevent the iOS image save/copy menu without disabling normal links. */
img,
picture,
.hero-slide-image,
.hanabi-cast-image{
  -webkit-touch-callout:none!important;
  -webkit-user-select:none!important;
  user-select:none!important;
  -webkit-user-drag:none!important;
}


/* ==========================================================
   v3.1.35 Tiffany Night refinement
   - Removes the black TONIGHT background completely.
   - Keeps a continuous ivory base.
   - Adds only a soft Tiffany-blue light that fades in/out.
   - Keeps both fixed CTA bases gold; reservation receives a
     restrained Tiffany accent, icon and outer glow.
   ========================================================== */
.hanabi-tonight{
  position:relative!important;
  isolation:isolate;
  overflow:hidden;
  background:#fffaf0!important;
  background-image:
    radial-gradient(circle at 8% 5%,rgba(255,255,255,.96),transparent 34%),
    radial-gradient(circle at 92% 92%,rgba(222,185,106,.12),transparent 32%)!important;
  color:#352a1f!important;
}
.hanabi-tonight::before{
  content:""!important;
  position:absolute!important;
  inset:-12%!important;
  z-index:0!important;
  pointer-events:none!important;
  background:
    radial-gradient(ellipse at 82% 48%,rgba(129,224,216,.56) 0%,rgba(155,232,225,.31) 27%,rgba(188,241,235,.12) 48%,transparent 72%),
    linear-gradient(118deg,transparent 17%,rgba(156,230,223,.09) 48%,rgba(92,207,198,.20) 73%,transparent 100%)!important;
  filter:blur(12px);
  opacity:.16;
  animation:hanabiTiffanyBreath 6.8s ease-in-out infinite!important;
}
.hanabi-tonight::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 78% 30%,rgba(255,255,255,.72) 0 1px,transparent 2.5px),
    radial-gradient(circle at 88% 62%,rgba(143,226,218,.56) 0 1px,transparent 3px),
    radial-gradient(circle at 64% 76%,rgba(255,255,255,.52) 0 .9px,transparent 2.4px);
  background-size:142px 168px,196px 224px,238px 266px;
  opacity:.16;
  animation:hanabiTiffanySparkle 6.8s ease-in-out infinite!important;
}
.hanabi-tonight__inner{position:relative!important;z-index:1!important}
.hanabi-tonight__copy h2{color:#352a1f!important;text-shadow:0 1px 0 rgba(255,255,255,.95),0 0 18px rgba(120,218,210,.10)!important}
.hanabi-tonight__copy>p:last-child{color:#66594a!important}
.hanabi-tonight__details{background:rgba(255,255,255,.55)!important;backdrop-filter:blur(6px)}

@keyframes hanabiTiffanyBreath{
  0%,100%{opacity:.10;transform:translate3d(5%,1%,0) scale(1)}
  45%,58%{opacity:.68;transform:translate3d(-2%,-1%,0) scale(1.06)}
}
@keyframes hanabiTiffanySparkle{
  0%,100%{opacity:.08;transform:translate3d(0,5px,0)}
  48%,60%{opacity:.46;transform:translate3d(-8px,-4px,0)}
}

@media(max-width:899px){
  .hanabi-fixed-actions .contact-button{
    /* Gold base deliberately retained. */
    border-color:rgba(87,190,183,.72)!important;
    box-shadow:
      inset 0 1px 0 rgba(255,255,255,.95),
      inset 0 -8px 18px rgba(83,44,0,.16),
      0 0 0 1px rgba(143,226,218,.25),
      0 0 24px rgba(91,205,197,.34)!important;
  }
  .hanabi-fixed-actions .contact-button .hanabi-contact-label strong i{
    color:#42bfb7!important;
    text-shadow:0 0 10px rgba(89,209,201,.58)!important;
  }
  .hanabi-fixed-actions .contact-button .hanabi-contact-label small{
    color:#237f7a!important;
  }
}
@media(prefers-reduced-motion:reduce){
  .hanabi-tonight::before,.hanabi-tonight::after{animation:none!important;opacity:.26!important}
}

/* ==========================================================
   v3.1.36 First-visit note visibility fix
   The glamorous card background override changed the former dark
   note card to ivory while its text stayed white. Force readable
   dark copy without changing the layout or animations.
   ========================================================== */
.hanabi-first-visit__note{
  color:#30271f!important;
}
.hanabi-first-visit__note strong{
  color:#8b5d1d!important;
  opacity:1!important;
}
.hanabi-first-visit__note p{
  color:#5f554b!important;
  opacity:1!important;
}

/* ==========================================================
   v3.1.37 Hero horizontal seam removal
   Removes the unintended horizontal white seam on the mobile
   first view without changing the logo animation, image fade,
   slider transitions, or bottom white mist.
   ========================================================== */
@media(max-width:899px){
  body.home .hero-mobile,
  body.home .hero-mobile-slides,
  body.home .hero-mobile-slide,
  body.home .hero-mobile-wash,
  body.home .hero-mobile-slide img{
    border:0!important;
    outline:0!important;
    box-shadow:none!important;
  }
  body.home .hero-mobile::after{
    content:none!important;
    display:none!important;
    background:none!important;
    filter:none!important;
  }
}


/* ==========================================================
   v3.1.38 Mobile first-view header line removal
   The visible horizontal line was the fixed header's bottom border,
   not a seam in the hero image. Remove it only before the header
   changes to its scrolled glass state.
   ========================================================== */
@media(max-width:899px){
  body.home .site-header:not(.is-scrolled){
    border-bottom:0!important;
    box-shadow:none!important;
    outline:0!important;
  }
}

/* v3.1.40: skip off-screen painting without changing layout or animations. */
@supports (content-visibility:auto){
  .instagram-section,.event-section,.news-section,.contact-section,.hanabi-map-section{content-visibility:auto;contain-intrinsic-size:auto 900px}
}


/* ==========================================================
   v3.1.42 Clean Hero
   Remove the artificial white particle/dust overlay from all
   hero slides. The original images, logo animation, slider
   crossfade and lower white mist remain unchanged.
   ========================================================== */
.hero-sparkles{display:none!important;background:none!important;animation:none!important}
@media(max-width:899px){
  body.home .hero-mobile::before,
  .hero-mobile::before{content:none!important;display:none!important;background:none!important;opacity:0!important;animation:none!important}
}


/* v3.1.43: open gallery reels directly at full-screen size on the first tap. */
.hanabi-lightbox.is-video-mode.is-open{
  width:var(--hanabi-reel-vw,100vw)!important;
  height:var(--hanabi-reel-vh,100svh)!important;
}
.hanabi-lightbox.is-video-mode.is-open .hanabi-lightbox-stage{
  width:var(--hanabi-reel-vw,100vw)!important;
  height:var(--hanabi-reel-vh,100svh)!important;
  padding:0!important;
  opacity:1!important;
  visibility:visible!important;
  transform:none!important;
}
.hanabi-lightbox.is-video-mode.is-open .hanabi-lightbox-video{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  max-height:none!important;
  object-fit:contain!important;
  background:#000!important;
}


/* v3.1.52: replace the gallery description with the official Instagram link. */
.hanabi-gallery-instagram-link{
  display:flex!important;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  width:min(100%,520px);
  margin-top:16px;
  padding:15px 18px 14px;
  border:1px solid rgba(169,118,46,.52);
  border-bottom:1px solid rgba(169,118,46,.52)!important;
  background:rgba(255,253,249,.58);
  color:var(--lux-deep);
  font-size:16px;
  line-height:1.5;
  letter-spacing:.08em;
  transition:background .25s ease,box-shadow .25s ease,transform .25s ease;
}
.hanabi-gallery-instagram-link span{
  flex:0 0 auto;
  color:var(--lux-gold);
  font-size:20px;
}
.hanabi-gallery-instagram-link:hover,
.hanabi-gallery-instagram-link:focus-visible{
  background:rgba(255,255,255,.92);
  box-shadow:0 12px 32px rgba(82,56,20,.10);
  transform:translateY(-1px);
}
@media(max-width:899px){
  .hanabi-gallery-intro .hanabi-gallery-instagram-link{
    display:flex!important;
    margin-top:14px;
    padding:14px 15px 13px;
    font-size:15px;
    letter-spacing:.05em;
  }
}


/* v3.1.53: always-visible official Instagram button with an inline icon. */
.hanabi-gallery-instagram-link{
  justify-content:flex-start!important;
}
.hanabi-gallery-instagram-link .hanabi-instagram-icon{
  display:inline-flex;
  flex:0 0 34px;
  width:34px;
  height:34px;
  align-items:center;
  justify-content:center;
  border-radius:9px;
  background:linear-gradient(145deg,#6b45c6 0%,#b72fa7 38%,#ef496f 65%,#f6a12b 100%);
  box-shadow:0 5px 14px rgba(131,54,126,.18);
}
.hanabi-gallery-instagram-link .hanabi-instagram-icon svg{
  width:22px;
  height:22px;
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
}
.hanabi-gallery-instagram-link .hanabi-instagram-icon .hanabi-instagram-dot{
  fill:#fff;
  stroke:none;
}
.hanabi-gallery-instagram-link .hanabi-instagram-label{
  min-width:0;
  flex:1 1 auto;
}
.hanabi-gallery-instagram-link .hanabi-instagram-arrow{
  margin-left:auto;
  flex:0 0 auto;
  color:var(--lux-gold);
  font-size:20px;
}


/* v3.1.59: compact safe page-top control.
   It stays non-interactive while the page is actively scrolling, then becomes
   tappable after the scroll has settled. */
.hanabi-page-top{
  display:grid!important;
  right:18px!important;
  bottom:calc(112px + env(safe-area-inset-bottom))!important;
  z-index:10020!important;
  background:rgba(255,255,255,.92)!important;
  color:#8f5d1f!important;
  border:1px solid rgba(178,124,53,.68)!important;
  box-shadow:0 10px 28px rgba(33,23,12,.18),inset 0 0 0 1px rgba(255,255,255,.72)!important;
  -webkit-backdrop-filter:blur(10px);
  backdrop-filter:blur(10px);
}
.hanabi-page-top.is-visible{visibility:visible!important}
.hanabi-page-top.is-scrolling{pointer-events:none!important;opacity:.42!important}
.hanabi-page-top:active{transform:translateY(0) scale(.94)!important}
@media(min-width:768px){
  .hanabi-page-top{right:28px!important;bottom:28px!important}
}


/* v3.1.59: compact ↑ / TOP presentation only.
   The proven v3.1.57 scroll-jump fix and v3.1.58 button behavior are unchanged. */
.hanabi-page-top{
  width:46px!important;
  height:46px!important;
  min-width:46px!important;
  min-height:46px!important;
  padding:5px 0 4px!important;
  border-radius:50%!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
  line-height:1!important;
}
.hanabi-page-top__arrow{
  display:block;
  font-family:Arial,sans-serif;
  font-size:18px;
  font-weight:300;
  line-height:.9;
  transform:translateY(1px);
}
.hanabi-page-top__label{
  display:block;
  margin-top:3px;
  font-family:Georgia,serif;
  font-size:8px;
  font-weight:600;
  line-height:1;
  letter-spacing:.16em;
  padding-left:.16em;
}
@media(min-width:768px){
  .hanabi-page-top{width:48px!important;height:48px!important;min-width:48px!important;min-height:48px!important}
}


/* v3.1.60: definitive compact page-top rendering.
   Remove every possible visible accessibility/helper string from the circle. */
.hanabi-page-top{
  width:44px!important;
  height:44px!important;
  min-width:44px!important;
  min-height:44px!important;
  padding:4px 0 3px!important;
  overflow:hidden!important;
  white-space:nowrap!important;
  font-size:0!important;
  text-indent:0!important;
}
.hanabi-page-top > .screen-reader-text,
.hanabi-page-top::before,
.hanabi-page-top::after{
  content:none!important;
  display:none!important;
}
.hanabi-page-top__arrow{
  display:block!important;
  flex:0 0 auto!important;
  font-size:17px!important;
  line-height:.78!important;
  transform:none!important;
}
.hanabi-page-top__label{
  display:block!important;
  flex:0 0 auto!important;
  margin:4px 0 0!important;
  padding-left:.14em!important;
  font-size:7px!important;
  line-height:1!important;
  letter-spacing:.14em!important;
}
@media(min-width:768px){
  .hanabi-page-top{width:46px!important;height:46px!important;min-width:46px!important;min-height:46px!important}
}


/* v3.1.61: the page-top control belongs to the page, never to the gallery viewer.
   Hide it completely while the Instagram lightbox is open so a tap cannot
   start a background scroll that fires after the viewer closes. */
html.hanabi-lightbox-open .hanabi-page-top,
body.hanabi-lightbox-open .hanabi-page-top{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translateY(10px)!important;
}

/* v3.2.33: keep image lightbox controls tappable after native video closes */
.hanabi-lightbox.is-open .hanabi-lightbox-close,.hanabi-lightbox.is-open .hanabi-lightbox-prev,.hanabi-lightbox.is-open .hanabi-lightbox-next{pointer-events:auto!important;touch-action:manipulation!important}


/* v3.2.34: gallery response/performance fix.
 * Hide the fixed CTA before the gallery transition starts, preventing its
 * animated sheen from travelling underneath the overlay. Pause its animation
 * work while the viewer is open and use a shorter mobile transition. */
html.hanabi-lightbox-open .hanabi-fixed-actions,
body.hanabi-lightbox-open .hanabi-fixed-actions{
  opacity:0!important;
  visibility:hidden!important;
  pointer-events:none!important;
  transform:translate3d(-50%,24px,0)!important;
  transition:none!important;
}
html.hanabi-lightbox-open .hanabi-fixed-actions *,
html.hanabi-lightbox-open .hanabi-fixed-actions *::before,
html.hanabi-lightbox-open .hanabi-fixed-actions *::after,
body.hanabi-lightbox-open .hanabi-fixed-actions *,
body.hanabi-lightbox-open .hanabi-fixed-actions *::before,
body.hanabi-lightbox-open .hanabi-fixed-actions *::after{
  animation-play-state:paused!important;
}
@media(max-width:899px){
  .hanabi-lightbox,
  .hanabi-lightbox::before,
  .hanabi-lightbox-stage,
  .hanabi-lightbox-image,
  .hanabi-lightbox-video,
  .hanabi-lightbox-close,
  .hanabi-lightbox-prev,
  .hanabi-lightbox-next,
  .hanabi-lightbox-meta{
    transition-duration:.16s!important;
  }
  .hanabi-flight-clone{will-change:transform,width,height,left,top,opacity}
}


/* v3.2.47: restore the original portrait crop in the mobile fixed RECRUIT button.
   This override changes only the recruitment button portrait source and crop. */
@media (max-width:899px){
  .hanabi-fixed-actions .store-button{
    background-image:
      linear-gradient(90deg,rgba(255,255,255,0) 0%,rgba(255,250,236,.16) 30%,rgba(255,247,225,.94) 61%,rgba(226,188,105,.98) 100%),
      radial-gradient(ellipse at 78% 34%,rgba(255,255,255,.98),transparent 43%),
      url('assets/images/cast-1.webp')!important;
    background-repeat:no-repeat!important;
    background-size:100% 100%,100% 100%,58% auto!important;
    background-position:0 0,0 0,left 30%!important;
  }
}

/* v3.2.49: lock the four-item homepage quick menu to the page flow on iOS.
   The previous mobile overflow scroller could be dragged vertically, horizontally,
   or diagonally with multi-touch in Safari. */
@media (max-width:767px){
  body.home .hanabi-section-nav{
    position:relative!important;
    top:auto!important;
    left:auto!important;
    right:auto!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
    overflow-x:hidden!important;
    overflow-y:hidden!important;
    touch-action:pan-y!important;
    overscroll-behavior:none!important;
    -webkit-overflow-scrolling:auto!important;
    transform:none!important;
    translate:none!important;
  }
  body.home .hanabi-section-nav__inner{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    transform:none!important;
    translate:none!important;
  }
  body.home .hanabi-section-nav a{
    width:auto!important;
    min-width:0!important;
    max-width:none!important;
    flex:none!important;
    padding:9px 3px!important;
    touch-action:manipulation!important;
  }
  body.home .hanabi-section-nav strong{
    white-space:nowrap!important;
    font-size:10px!important;
    letter-spacing:.02em!important;
  }
  body.home .hanabi-section-nav:before,
  body.home .hanabi-section-nav:after{
    content:none!important;
    display:none!important;
  }
}

/* HANABI Letter archive / single */
.hanabi-letter-archive,.hanabi-letter-single{background:#fffaf9;padding:150px max(18px,4vw) 90px;min-height:70vh}.hanabi-letter-archive-hero,.hanabi-letter-single>article{max-width:1050px;margin:auto}.hanabi-letter-archive-hero{text-align:center;margin-bottom:50px}.hanabi-letter-archive-hero p,.hanabi-letter-single header p{color:#ed7893;font-family:cursive;font-size:42px;margin:0}.hanabi-letter-archive-hero h1{font-size:34px;color:#5a392e}.hanabi-letter-archive-hero span{color:#8a6960}.hanabi-letter-archive-grid{max-width:1050px;margin:auto;display:grid;gap:26px}.hanabi-letter-archive-card{display:grid;grid-template-columns:280px 1fr;background:#fff;border:1px solid #f2c8d1;border-radius:22px;overflow:hidden;box-shadow:0 12px 30px rgba(100,56,40,.07)}.hanabi-letter-archive-image{min-height:250px}.hanabi-letter-archive-image img{width:100%;height:100%;object-fit:cover}.hanabi-letter-archive-card>div{padding:28px}.hanabi-letter-archive-card time,.hanabi-letter-single time{color:#b47580}.hanabi-letter-archive-card h2{margin:10px 0}.hanabi-letter-archive-card h2 a{color:#50332b;text-decoration:none}.hanabi-letter-read,.hanabi-letter-single footer a{display:inline-block;padding:11px 20px;border-radius:999px;background:#ed7893;color:#fff;text-decoration:none}.hanabi-letter-single>article{background:#fff;border:1px solid #f2c8d1;border-radius:26px;padding:clamp(22px,5vw,60px);box-shadow:0 12px 34px rgba(100,56,40,.08)}.hanabi-letter-single header{text-align:center;margin-bottom:34px}.hanabi-letter-single header h1{color:#50332b;font-size:clamp(28px,4vw,46px)}.hanabi-letter-single-main img{display:block;width:100%;max-height:760px;object-fit:cover;border-radius:18px}.hanabi-letter-single-gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:28px 0}.hanabi-letter-single-gallery img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:12px}.hanabi-letter-single-content{font-size:17px;line-height:2;color:#3f2d26}.hanabi-letter-single footer{margin-top:40px;text-align:center}@media(max-width:700px){.hanabi-letter-archive,.hanabi-letter-single{padding-top:115px}.hanabi-letter-archive-card{grid-template-columns:1fr}.hanabi-letter-archive-image{min-height:320px}.hanabi-letter-single-gallery{grid-template-columns:repeat(2,1fr)}}
/* v4.0.18: HANABI PROJECT MASTER official Letter layout. See assets/css/home.min.css. */

/* v4.0.20: HANABI Letter single-page return control and one-line title */
.hanabi-letter-single-back-wrap{max-width:1050px;margin:0 auto 16px}
.hanabi-letter-home-back{display:inline-flex!important;align-items:center;justify-content:center;min-height:44px;padding:10px 18px;border:1px solid #ed7893;border-radius:999px;background:#fff;color:#d96580!important;text-decoration:none!important;font-weight:700;box-shadow:0 8px 22px rgba(100,56,40,.08)}
.hanabi-letter-home-back:hover,.hanabi-letter-home-back:focus-visible{background:#fff1f4}
.hanabi-letter-single header h1{display:block;max-width:100%;margin-left:auto;margin-right:auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.25;font-size:clamp(22px,5vw,42px)!important}
.hanabi-letter-single footer{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}
.hanabi-letter-single footer .hanabi-letter-home-back{background:#fff!important;color:#d96580!important}
@media(max-width:700px){.hanabi-letter-single-back-wrap{margin-bottom:12px}.hanabi-letter-home-back{min-height:42px;padding:9px 15px;font-size:14px}.hanabi-letter-single header h1{font-size:clamp(20px,6.2vw,30px)!important}.hanabi-letter-single footer{align-items:stretch;flex-direction:column}.hanabi-letter-single footer a{width:100%;text-align:center}}

/* v4.0.21: HANABI Letter archive navigation and mobile title fix */
.hanabi-letter-archive-back-wrap{max-width:1050px;margin:0 auto 24px;text-align:left}
.hanabi-letter-archive-back-wrap.is-footer{margin-top:42px;margin-bottom:0;text-align:center}
.hanabi-letter-home-back{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:10px 19px;border:1px solid rgba(231,123,145,.55);border-radius:999px;background:rgba(255,255,255,.92);color:#b85f77;text-decoration:none;font-weight:700;letter-spacing:.04em;box-shadow:0 8px 20px rgba(100,56,40,.08)}
.hanabi-letter-home-back:hover,.hanabi-letter-home-back:focus-visible{background:#fff4f7;color:#9f425d}
.hanabi-letter-archive-hero h1{white-space:nowrap;word-break:keep-all;overflow-wrap:normal}
@media(max-width:700px){
  .hanabi-letter-archive-back-wrap{margin-bottom:18px}
  .hanabi-letter-archive-hero h1{font-size:clamp(26px,8.5vw,38px)!important;letter-spacing:.02em;white-space:nowrap!important}
}

.hanabi-letter-single-back-wrap,.hanabi-letter-archive-back-wrap{position:sticky;top:92px;z-index:50}
.hanabi-letter-archive-hero h1,.hanabi-letter-single header h1{word-break:keep-all;overflow-wrap:anywhere}
@media(max-width:700px){.hanabi-letter-single-back-wrap,.hanabi-letter-archive-back-wrap{top:82px}}

/* v4.0.33: compact HANABI Letter archive cards on mobile */
@media(max-width:700px){
  .hanabi-letter-archive{
    padding-top:118px;
    padding-left:14px;
    padding-right:14px;
  }
  .hanabi-letter-archive-back-wrap{
    position:relative!important;
    top:auto!important;
    z-index:2;
    margin:0 0 22px!important;
  }
  .hanabi-letter-archive-hero{
    margin-bottom:30px;
  }
  .hanabi-letter-archive-hero p{
    font-size:clamp(34px,11vw,48px);
    line-height:1.1;
  }
  .hanabi-letter-archive-hero h1{
    margin:24px 0 18px;
    font-size:clamp(30px,9vw,42px)!important;
  }
  .hanabi-letter-archive-hero span{
    display:block;
    font-size:14px;
    line-height:1.8;
  }
  .hanabi-letter-archive-grid{
    gap:22px;
  }
  .hanabi-letter-archive-card{
    display:block;
    border-radius:20px;
  }
  .hanabi-letter-archive-image{
    display:block;
    min-height:0!important;
    height:430px;
    overflow:hidden;
    background:#f8eeea;
  }
  .hanabi-letter-archive-image img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 18%;
  }
  .hanabi-letter-archive-card>div{
    padding:20px 18px 22px;
  }
  .hanabi-letter-archive-card h2{
    margin:9px 0 12px;
    font-size:22px;
    line-height:1.45;
  }
  .hanabi-letter-archive-card p{
    margin:0 0 16px;
    font-size:14px;
    line-height:1.8;
  }
  .hanabi-letter-read{
    padding:10px 18px;
  }
}
@media(max-width:390px){
  .hanabi-letter-archive-image{height:390px}
}
