:root{
  --c-base:#063f2e;      /* 深い森の緑 */
  --c-deep:#03281d;
  --c-accent:#cfff3d;    /* 蛍の黄緑 */
  --c-white:#ffffff;
  --c-ink:#062a1f;
  --c-shade:rgba(2,26,18,.45);
  --prism:linear-gradient(90deg,#fff 0,#f4ffcf 20%,#e6fff0 40%,#d8f6ff 60%,#fbffe6 80%,#e9fff9 100%);
  --f-jp:"Shippori Mincho",serif;
  --f-en:"Marcellus",serif;
  --f-sans:"Jost",sans-serif;
  --s:calc(max(100vw,1200px) / 1920);
}
@media (max-width:1024px){:root{--s:calc(100vw / 768)}}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth{scroll-behavior:auto!important}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
body{margin:0;background:var(--c-base);color:var(--c-white);font-family:var(--f-jp);font-weight:500;letter-spacing:.04em;line-height:1;overflow-x:hidden;-webkit-font-smoothing:antialiased}
html,body{overflow-x:clip}
main{display:block;overflow:hidden}
img{display:block;width:100%;height:auto}
a{color:inherit}
p,ul,ol,dl,dd,h1,h2,h3{margin:0;padding:0}
ul,ol{list-style:none}
.pc{display:inline}.sp{display:none}
@media (max-width:1024px){.pc{display:none}.sp{display:inline}}

/* ローディング */
.l-loading{position:fixed;inset:0;z-index:1000;background:var(--c-base);pointer-events:none;
  -webkit-mask:linear-gradient(-90deg,#fff 0,#fff 10%,transparent 100%);mask:linear-gradient(-90deg,#fff 0,#fff 10%,transparent 100%);
  transition:opacity .5s ease,transform .5s ease}
[data-loaded="1"] .l-loading{opacity:0;transform:translateX(100%)}

/* ---------------- KV ---------------- */
.kv{position:relative;width:100%;overflow:hidden}
.kv__blur-cover{position:absolute;width:120%;aspect-ratio:1/1;top:50%;left:50%;z-index:5;display:flex;transform:translate(-50%,-50%) rotate(45deg);pointer-events:none}
.kv__blur-block{width:100%;height:200%;transform:translateY(-100%);
  background:linear-gradient(0deg,transparent 0,transparent 30%,rgba(230,255,240,.14) 40%,rgba(234,255,160,.12) 50%,rgba(200,244,255,.1) 60%,transparent 70%);
  -webkit-mask:linear-gradient(180deg,transparent 0,rgba(255,255,255,.5) 10%,rgba(255,255,255,.8) 20%,#fff 50%,transparent 100%);mask:linear-gradient(180deg,transparent 0,rgba(255,255,255,.5) 10%,rgba(255,255,255,.8) 20%,#fff 50%,transparent 100%);will-change:transform}
.kv__inner{position:relative;overflow:hidden;width:100%;height:calc(1180 * var(--s))}
.kv__layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.kv__layer img{width:100%;height:100%;object-fit:cover;object-position:37% 60%}
.kv__layer img{opacity:0;transform:scale(1.05);transition:opacity .6s ease-out,transform .7s ease-out}
[data-loaded="1"] .kv__layer img{opacity:1;transform:scale(1)}
[data-loaded="1"] .kv__layer.--main img{transition-delay:.06s}
[data-loaded="1"] .kv__layer.--front img{transition-delay:.12s}
[data-loaded="1"] .kv__layer.--moth img{transition-delay:.2s}
.kv__logo{position:absolute;z-index:6;top:calc(30 * var(--s))}
.kv__logo.--main{width:calc(820 * var(--s));left:calc(50% - 410 * var(--s));top:calc(40 * var(--s))}
.kv__logo img{filter:drop-shadow(0 0 calc(16 * var(--s)) rgba(2,26,18,.75)) drop-shadow(0 0 calc(4 * var(--s)) rgba(2,26,18,.5))}
.kv__title{position:absolute;z-index:6;left:calc(181 * var(--s));top:calc(531 * var(--s));writing-mode:vertical-rl;font-size:calc(46 * var(--s));font-weight:500;letter-spacing:.24em;text-shadow:0 0 .4em rgba(0,0,0,.4)}
.kv__title small{font-size:.62em;letter-spacing:.3em;margin-top:.6em;display:inline-block}
.kv__schedule{position:absolute;z-index:6;width:calc(472 * var(--s));right:calc(120 * var(--s));top:calc(411 * var(--s));filter:drop-shadow(0 0 calc(10 * var(--s)) rgba(2,26,18,.85)) drop-shadow(0 0 calc(3 * var(--s)) rgba(2,26,18,.6))}
.kv__date{font-family:var(--f-en);font-size:calc(60 * var(--s));line-height:1.1;letter-spacing:.04em;background:var(--prism);-webkit-background-clip:text;background-clip:text;color:transparent}
.kv__date span{font-size:.5em;letter-spacing:.1em;margin-left:.3em}
.kv__venue{margin-top:calc(14 * var(--s));font-size:calc(26 * var(--s));letter-spacing:.12em}
.kv__caption{margin-top:calc(18 * var(--s));font-family:var(--f-sans);font-weight:300;font-size:calc(16 * var(--s));line-height:1.3;letter-spacing:.1em;color:var(--c-accent)}
@media (max-width:1024px){
  .kv__blur-cover{width:180%;height:100%}
  .kv__inner{height:calc(1335 * var(--s))}
  .kv__logo.--main{width:calc(640 * var(--s));left:calc(50% - 320 * var(--s));top:calc(140 * var(--s))}
  .kv__title{top:calc(604 * var(--s));left:calc(42 * var(--s));font-size:calc(40 * var(--s))}
  .kv__schedule{width:calc(542 * var(--s));right:calc(30 * var(--s));top:calc(980 * var(--s))}
  .kv__date{font-size:calc(66 * var(--s))}
  .kv__venue{font-size:calc(28 * var(--s))}
  .kv__caption{font-size:calc(18 * var(--s))}
}

/* ---------------- セパレーター ---------------- */
.sep{position:relative;background:var(--c-accent);padding:calc(50 * var(--s)) 0;perspective:1200px}
.sep__in{width:min(50%,calc(960 * var(--s)));margin:0 auto;opacity:0;will-change:filter,transform}
.sep__in img{width:calc(600 * var(--s));margin:0 auto}
@media (max-width:1024px){.sep{padding:calc(137 * var(--s)) 0 calc(178 * var(--s))}.sep__in{width:calc(688 * var(--s))}.sep__in img{width:calc(560 * var(--s))}}

/* ---------------- イントロ ---------------- */
.intro{position:relative;overflow:hidden}
.intro__inner{position:relative;min-height:calc(1070 * var(--s));padding-top:calc(328 * var(--s));padding-bottom:calc(200 * var(--s))}
.intro__visual{position:absolute;width:calc(940 * var(--s));top:0;left:calc(50% - 60 * var(--s));opacity:.6;
  -webkit-mask:linear-gradient(180deg,#fff 67.8%,transparent 100%);mask:linear-gradient(180deg,#fff 67.8%,transparent 100%)}
.intro__detail{position:relative;z-index:2;width:calc(1320 * var(--s));margin:0 auto}
.intro__head{width:calc(860 * var(--s));font-size:calc(54 * var(--s));line-height:1.45;letter-spacing:.04em;text-shadow:0 0 .26em rgba(255,255,255,.35);
  background-image:linear-gradient(101deg,#fff 0,#f4ffcf 7%,#e6fff0 16%,#d8f6ff 30%,#f4ffcf 37%,#edfff4 54%,#d9f6ff 60%,#fff 66%,var(--c-base) 88%,var(--c-base) 100%);
  background-size:300% 100%;background-position:200% 0;background-repeat:no-repeat;-webkit-background-clip:text;background-clip:text;color:transparent;opacity:0}
.intro__head p+p{margin-top:calc(16 * var(--s))}
.intro__head-first{font-size:calc(36 * var(--s))}
.intro__body{margin-top:calc(56 * var(--s));font-size:calc(20 * var(--s));line-height:2;opacity:0}
.intro__body p+p{margin-top:1em}
.intro__deco1{position:absolute;z-index:3;width:calc(520 * var(--s));left:calc(-120 * var(--s));top:calc(-40 * var(--s));perspective:1200px}
.intro__deco1 .d1{width:100%}
.intro__deco1 .d2{position:absolute;width:calc(150 * var(--s));left:calc(330 * var(--s));top:calc(60 * var(--s))}
.intro__deco1 .d3{position:absolute;width:calc(260 * var(--s));left:calc(410 * var(--s));top:calc(380 * var(--s));opacity:.7}
.intro__deco2{position:absolute;z-index:3;width:calc(260 * var(--s));right:calc(120 * var(--s));top:calc(560 * var(--s));perspective:1200px}
@media (max-width:1024px){
  .intro__inner{min-height:calc(800 * var(--s));padding-top:calc(647 * var(--s));padding-bottom:calc(160 * var(--s))}
  .intro__visual{width:calc(640 * var(--s));left:auto;right:calc(-40 * var(--s))}
  .intro__detail{width:calc(648 * var(--s))}
  .intro__head{width:100%;font-size:calc(42 * var(--s))}
  .intro__head-first{font-size:calc(30 * var(--s))}
  .intro__head p+p{margin-top:calc(30 * var(--s))}
  .intro__body{font-size:calc(26 * var(--s));margin-top:calc(48 * var(--s))}
  .intro__deco1{width:calc(330 * var(--s));left:calc(-110 * var(--s));top:calc(-30 * var(--s))}
  .intro__deco1 .d2{width:calc(100 * var(--s));left:calc(210 * var(--s));top:calc(40 * var(--s))}
  .intro__deco1 .d3{width:calc(170 * var(--s));left:calc(250 * var(--s));top:calc(240 * var(--s))}
  .intro__deco2{width:calc(180 * var(--s));right:calc(10 * var(--s));top:calc(420 * var(--s))}
}

/* 見出し */
.c-head{display:flex;align-items:center;justify-content:center;column-gap:calc(24 * var(--s));width:fit-content;margin:0 auto;font-family:var(--f-en);font-weight:400;font-size:calc(70 * var(--s));letter-spacing:.04em;line-height:1}
.c-head::before,.c-head::after{content:"";width:calc(52 * var(--s));height:calc(16 * var(--s));
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 52 16'%3E%3Cpath d='M0 8 L30 8' stroke='%23cfff3d' stroke-width='1'/%3E%3Cpath d='M30 8 C36 1 44 0 52 2 C46 8 38 10 30 8Z' fill='%23cfff3d'/%3E%3Cpath d='M30 8 C38 10 44 14 50 15 C42 16 35 13 30 8Z' fill='%23ffffff' opacity='.7'/%3E%3C/svg%3E") no-repeat center/contain}
.c-head::after{transform:scaleX(-1)}
.c-head.--ja{font-family:var(--f-jp);font-weight:500;font-size:calc(42 * var(--s));line-height:1.4}
@media (max-width:1024px){.c-head{font-size:calc(70 * var(--s));column-gap:calc(24 * var(--s))}.c-head.--ja{font-size:calc(52 * var(--s))}}

/* ---------------- プロフィール ---------------- */
.profile{position:relative;padding:calc(60 * var(--s)) 0 calc(260 * var(--s))}
.profile__line{position:absolute;width:200%;height:1px;left:0;bottom:calc(80 * var(--s));transform:rotate(-35deg);transform-origin:left bottom;background:linear-gradient(57deg,transparent 0,rgba(255,255,255,.4) 100%)}
.card{position:relative;z-index:2;width:calc(832 * var(--s));margin:0 auto;opacity:0}
.card__bg{position:absolute;inset:0;z-index:-1;background:#fff;clip-path:polygon(0 calc(34 * var(--s)),calc(34 * var(--s)) 0,100% 0,100% calc(100% - 34 * var(--s)),calc(100% - 34 * var(--s)) 100%,0 100%);filter:drop-shadow(calc(30 * var(--s)) calc(30 * var(--s)) calc(4 * var(--s)) rgba(1,22,15,.5))}
.card__shadow{position:absolute;inset:0;z-index:-2;transform:translate(calc(30 * var(--s)),calc(30 * var(--s)));background:rgba(1,22,15,.45);clip-path:polygon(0 calc(34 * var(--s)),calc(34 * var(--s)) 0,100% 0,100% calc(100% - 34 * var(--s)),calc(100% - 34 * var(--s)) 100%,0 100%)}
.card__inner{padding:calc(77 * var(--s)) calc(80 * var(--s)) calc(110 * var(--s));color:var(--c-base)}
.card__head{display:flex;align-items:center;column-gap:calc(20 * var(--s));margin-top:calc(46 * var(--s));font-family:var(--f-en);font-size:calc(22 * var(--s));color:#7aa31a}
.card__head::after{content:"";flex:1;height:1px;background:var(--c-accent);filter:brightness(.8)}
.card__name{display:flex;align-items:baseline;column-gap:calc(18 * var(--s));margin-top:calc(26 * var(--s))}
.card__name-jp{font-size:calc(56 * var(--s));letter-spacing:.08em}
.card__name-en{font-family:var(--f-sans);font-weight:300;font-size:calc(22 * var(--s));letter-spacing:.1em;color:#6f9c8c}
.card__links{display:flex;column-gap:calc(18 * var(--s));margin-top:calc(26 * var(--s))}
.card__links a{display:grid;place-items:center;width:calc(40 * var(--s));height:calc(40 * var(--s));border-radius:50%;transition:background .3s}
.card__links a:hover{background:rgba(6,63,46,.08)}
.card__links svg{width:calc(20 * var(--s));height:calc(20 * var(--s));fill:var(--c-base)}
.card__body{margin-top:calc(26 * var(--s));font-size:calc(17 * var(--s));line-height:1.9;font-weight:500}
.card__body p+p{margin-top:.8em}
.profile__deco1{position:absolute;width:calc(470 * var(--s));left:calc(40 * var(--s));top:calc(120 * var(--s));z-index:1;perspective:1200px}
.profile__deco1 .d2{position:absolute;width:calc(130 * var(--s));left:calc(330 * var(--s));top:0}
.profile__deco1 .d3{position:absolute;width:calc(200 * var(--s));left:calc(-20 * var(--s));top:calc(420 * var(--s))}
.profile__deco2{position:absolute;width:calc(240 * var(--s));right:calc(160 * var(--s));top:calc(460 * var(--s));z-index:3;perspective:1200px}
.profile__deco2 .d2{position:absolute;width:calc(200 * var(--s));left:calc(-60 * var(--s));top:calc(-40 * var(--s))}
@media (max-width:1024px){
  .profile{padding:calc(40 * var(--s)) 0 calc(220 * var(--s))}
  .profile__line{bottom:auto;top:calc(654 * var(--s))}
  .card{width:calc(688 * var(--s))}
  .card__inner{padding:calc(77 * var(--s)) calc(48 * var(--s)) calc(99 * var(--s))}
  .card__head{font-size:calc(26 * var(--s))}
  .card__name-jp{font-size:calc(54 * var(--s))}
  .card__name-en{font-size:calc(24 * var(--s))}
  .card__links a{width:calc(56 * var(--s));height:calc(56 * var(--s))}
  .card__links svg{width:calc(28 * var(--s));height:calc(28 * var(--s))}
  .card__body{font-size:calc(24 * var(--s))}
  .profile__deco1{width:calc(300 * var(--s));left:calc(-90 * var(--s));top:calc(-60 * var(--s))}
  .profile__deco1 .d2{width:calc(90 * var(--s));left:calc(220 * var(--s))}
  .profile__deco1 .d3{display:none}
  .profile__deco2{width:calc(160 * var(--s));right:calc(-20 * var(--s));top:auto;bottom:calc(60 * var(--s))}
}

/* ---------------- 共通パネル（About・Event） ---------------- */
.panel{position:relative;width:calc(1600 * var(--s));max-width:calc(100% - 32px);margin:0 auto;background:var(--c-shade);padding:calc(110 * var(--s)) calc(200 * var(--s)) calc(80 * var(--s))}
.dl{display:block}
.dl__item{display:flex;padding:calc(36 * var(--s)) calc(20 * var(--s));border-bottom:1px solid rgba(255,255,255,.18)}
.dl__dt{flex:0 0 calc(160 * var(--s));font-size:calc(18 * var(--s));font-weight:600;line-height:1.8}
.dl__dd{flex:1;font-size:calc(18 * var(--s));line-height:1.8}
.dl__dd p+p,.dl__dd p+ul,.dl__dd ul+p{margin-top:1em}
.--bold{font-weight:600;color:var(--c-accent)}
.--accent{color:var(--c-accent)}
.caution{margin-top:1em;font-size:.8em;line-height:1.7}
.caution li{padding-left:1.2em;text-indent:-1.2em}
.caution li::before{content:"※"}
.disc li{padding-left:1em;text-indent:-1em}
.disc li::before{content:"・"}
.disc li+li{margin-top:.5em}
.steps li{display:flex;column-gap:.3em}
.steps li+li{margin-top:.6em}
.c-btn{display:inline-flex;align-items:center;justify-content:center;column-gap:calc(26 * var(--s));min-width:calc(200 * var(--s));margin-top:calc(26 * var(--s));padding:calc(10 * var(--s)) calc(20 * var(--s));background:#fff;color:var(--c-base);text-decoration:none;font-family:var(--f-en);font-size:calc(16 * var(--s));letter-spacing:.08em;transition:opacity .3s}
.c-btn:hover{opacity:.8}
.c-btn::after{content:"";width:calc(22 * var(--s));height:calc(22 * var(--s));border:1px solid currentColor;border-radius:50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 7 L7 3 M4 3 H7 V6' stroke='%23063f2e' fill='none'/%3E%3C/svg%3E") no-repeat center/55%}
.map{margin-top:calc(26 * var(--s));border:1px solid rgba(255,255,255,.2);overflow:hidden}
@media (max-width:1024px){
  .panel{width:calc(720 * var(--s));max-width:none;padding:calc(110 * var(--s)) calc(36 * var(--s)) calc(70 * var(--s))}
  .dl__item{flex-direction:column;row-gap:calc(14 * var(--s));padding:calc(30 * var(--s)) 0}
  .dl__dt{flex:none;font-size:calc(24 * var(--s))}
  .dl__dd{font-size:calc(24 * var(--s))}
  .c-btn{min-width:calc(280 * var(--s));font-size:calc(22 * var(--s));padding:calc(14 * var(--s)) calc(24 * var(--s))}
  .c-btn::after{width:calc(30 * var(--s));height:calc(30 * var(--s))}
}

/* ---------------- About ---------------- */
.about{position:relative;padding:calc(170 * var(--s)) 0 calc(260 * var(--s))}
.about__line{position:absolute;width:200%;height:1px;right:0;bottom:calc(164 * var(--s));background:#fff;opacity:.2;transform:rotate(14deg);transform-origin:100% 100%}
.about .c-head{position:absolute;left:0;right:0;top:calc(-36 * var(--s))}
.about__summary{margin-top:calc(60 * var(--s));text-align:center}
.about__summary-info{font-size:calc(24 * var(--s));letter-spacing:.08em}
.c-btn-frame{position:relative;display:block;width:calc(568 * var(--s));margin:calc(34 * var(--s)) auto 0;padding:calc(34 * var(--s)) 0;text-decoration:none;text-align:center;z-index:1;font-family:var(--f-en);font-size:calc(30 * var(--s));letter-spacing:.14em}
.c-btn-frame::before,.c-btn-frame::after{content:"";position:absolute;inset:0;margin:auto;width:calc(100% - 28 * var(--s));height:100%;z-index:-1}
.c-btn-frame::after{background:#000;opacity:.25}
.c-btn-frame::before{background:linear-gradient(#fff,#fff) no-repeat right top/0 100%;opacity:.12;transition:background-size .3s ease}
.c-btn-frame:hover::before{background-size:100% 100%;background-position:left top}
.c-btn-frame i{position:absolute;left:0;width:100%;height:calc(17 * var(--s));background:var(--prism);
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 568 17' preserveAspectRatio='none'%3E%3Cpath d='M0 16 L14 16 L14 1 L554 1 L554 16 L568 16' stroke='%23000' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat center/100% 100%;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 568 17' preserveAspectRatio='none'%3E%3Cpath d='M0 16 L14 16 L14 1 L554 1 L554 16 L568 16' stroke='%23000' stroke-width='2' fill='none'/%3E%3C/svg%3E") no-repeat center/100% 100%}
.c-btn-frame i.t{top:0}.c-btn-frame i.b{bottom:0;transform:scaleY(-1)}
.c-btn-frame span{background:var(--prism);-webkit-background-clip:text;background-clip:text;color:transparent}
.about__deco1{position:absolute;width:calc(440 * var(--s));right:calc(-60 * var(--s));top:calc(-80 * var(--s));z-index:3;perspective:1200px}
.about__deco1 .d2{position:absolute;width:calc(150 * var(--s));left:calc(30 * var(--s));top:calc(30 * var(--s))}
.about__deco2{position:absolute;width:calc(420 * var(--s));left:calc(-40 * var(--s));bottom:calc(60 * var(--s));z-index:3;perspective:1200px}
.about__deco2 .d1{transform:scaleX(-1)}
.about__deco2 .d2{position:absolute;width:calc(260 * var(--s));left:calc(160 * var(--s));top:calc(-120 * var(--s))}
.about__deco3{position:absolute;width:calc(300 * var(--s));right:calc(220 * var(--s));bottom:calc(100 * var(--s));z-index:3;mix-blend-mode:screen}
@media (max-width:1024px){
  .about{padding:calc(150 * var(--s)) 0 calc(220 * var(--s))}
  .about__line{display:none}
  .about__summary-info{font-size:calc(28 * var(--s));line-height:1.6}
  .c-btn-frame{width:calc(568 * var(--s));font-size:calc(34 * var(--s));padding:calc(44 * var(--s)) 0}
  .about__deco1{width:calc(240 * var(--s));right:calc(-70 * var(--s));top:calc(-150 * var(--s))}
  .about__deco1 .d2{width:calc(90 * var(--s))}
  .about__deco2{width:calc(240 * var(--s));left:calc(-80 * var(--s));bottom:calc(40 * var(--s))}
  .about__deco2 .d2{width:calc(150 * var(--s));left:calc(100 * var(--s));top:calc(-80 * var(--s))}
  .about__deco3{width:calc(220 * var(--s));right:0}
}

/* ---------------- Goods ---------------- */
.goods{position:relative;padding:calc(40 * var(--s)) 0 calc(220 * var(--s))}
.goods__bg-line{position:absolute;width:calc(300 * var(--s));height:calc(130 * var(--s));right:0;top:calc(270 * var(--s));border-top:1px solid rgba(255,255,255,.3);border-bottom:1px solid rgba(255,255,255,.3)}
.goods__bg-moth{position:absolute;width:calc(180 * var(--s));right:calc(140 * var(--s));top:calc(120 * var(--s));opacity:.85}
.goods__link{margin-top:calc(60 * var(--s))}
.c-btn-grd{position:relative;display:block;width:calc(568 * var(--s));margin:0 auto;padding:calc(44 * var(--s)) calc(50 * var(--s)) calc(44 * var(--s)) 0;text-align:center;text-decoration:none;color:var(--c-base);z-index:1;font-family:var(--f-en);font-size:calc(26 * var(--s));letter-spacing:.08em}
.c-btn-grd span{font-family:var(--f-jp);font-weight:600;margin-right:.9em}
.c-btn-grd::after{content:"";position:absolute;inset:0;margin:auto;z-index:-1;width:calc(100% - 28 * var(--s));height:calc(100% - 16 * var(--s));background:var(--prism);background-size:200% 100%;background-position:0 0;box-shadow:10px calc(20 * var(--s)) calc(4 * var(--s)) rgba(1,22,15,.5);transition:background-position .4s ease}
.c-btn-grd:hover::after{background-position:100% 0}
.c-btn-grd::before{content:"";position:absolute;width:calc(46 * var(--s));height:calc(46 * var(--s));top:0;bottom:0;right:calc(50 * var(--s));margin:auto;border:1.5px solid var(--c-base);border-radius:50%;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 7 L7 3 M4 3 H7 V6' stroke='%23063f2e' fill='none' stroke-width='.8'/%3E%3C/svg%3E") no-repeat center/55%}
.acc{width:calc(1600 * var(--s));max-width:calc(100% - 32px);margin:calc(80 * var(--s)) auto 0;display:flex;flex-direction:column;row-gap:calc(8 * var(--s))}
.acc__dt{position:relative;display:flex;align-items:center;padding:calc(28 * var(--s)) calc(90 * var(--s)) calc(28 * var(--s)) calc(25 * var(--s));background:#fff;color:var(--c-ink);font-size:calc(24 * var(--s));line-height:1.4;cursor:pointer;transition:opacity .3s}
.acc__dt:hover{opacity:.85}
.acc__num{width:calc(80 * var(--s));font-family:var(--f-en);color:var(--c-base);font-size:calc(28 * var(--s))}
.acc__icon{position:absolute;width:calc(48 * var(--s));height:calc(48 * var(--s));right:calc(21 * var(--s));top:0;bottom:0;margin:auto;border-radius:50%;background:rgba(6,63,46,.1)}
.acc__icon::before,.acc__icon::after{content:"";position:absolute;inset:0;margin:auto;width:calc(16 * var(--s));height:2px;background:var(--c-base);transition:transform .3s ease}
.acc__icon::after{transform:rotate(90deg)}
.is-open .acc__icon::after{transform:rotate(180deg)}
.acc__dd{height:0;overflow:hidden}
.acc__dd-inner{padding:calc(40 * var(--s)) calc(80 * var(--s)) calc(60 * var(--s));background:rgba(255,255,255,.92);color:var(--c-ink)}
.acc__body{display:flex;flex-direction:column;align-items:center;row-gap:calc(24 * var(--s))}
.acc__body img{max-width:calc(900 * var(--s))}
.acc__body.--sm{margin-top:calc(30 * var(--s));font-size:calc(18 * var(--s));line-height:1.8;text-align:center;align-items:center}
.acc__body.--sm.--left{text-align:left;align-items:flex-start}
.acc .c-btn{background:var(--c-base);color:#fff}
.acc .c-btn::after{filter:invert(1) brightness(2)}
@media (max-width:1024px){
  .goods__bg-line{display:none}
  .goods__bg-moth{width:calc(120 * var(--s));right:calc(20 * var(--s));top:calc(30 * var(--s))}
  .c-btn-grd{width:calc(568 * var(--s));font-size:calc(28 * var(--s));padding:calc(54 * var(--s)) calc(60 * var(--s)) calc(52 * var(--s)) 0}
  .acc{width:calc(688 * var(--s));max-width:none;row-gap:calc(10 * var(--s))}
  .acc__dt{font-size:calc(28 * var(--s));padding:calc(22 * var(--s)) calc(80 * var(--s)) calc(22 * var(--s)) calc(24 * var(--s))}
  .acc__num{width:calc(64 * var(--s));font-size:calc(30 * var(--s))}
  .acc__icon{width:calc(48 * var(--s));height:calc(48 * var(--s))}
  .acc__dd-inner{padding:calc(30 * var(--s)) calc(24 * var(--s)) calc(40 * var(--s))}
  .acc__body img{max-width:100%}
  .acc__body.--sm{font-size:calc(24 * var(--s))}
}

/* ---------------- Event ---------------- */
.event{position:relative;padding:calc(40 * var(--s)) 0 calc(200 * var(--s))}
.event__wrap{position:relative}
.event__wrap+.event__wrap{margin-top:calc(200 * var(--s))}
.event__info{text-align:center;padding:calc(90 * var(--s)) 0 calc(50 * var(--s))}
.event__title{font-size:calc(44 * var(--s));font-weight:500;line-height:1.5;letter-spacing:.06em}
.event__info p{margin-top:calc(24 * var(--s));font-size:calc(20 * var(--s));line-height:1.9}
.event .panel{padding-top:calc(60 * var(--s))}
.event__idlist{margin-top:1em;padding:calc(30 * var(--s));background:rgba(0,0,0,.18)}
.event__deco1{position:absolute;width:calc(440 * var(--s));left:calc(-60 * var(--s));top:calc(-120 * var(--s));z-index:3;perspective:1200px}
.event__deco1 .d2{position:absolute;width:calc(150 * var(--s));left:calc(300 * var(--s));top:calc(10 * var(--s))}
.event__deco1 .d3{position:absolute;width:calc(260 * var(--s));left:calc(-20 * var(--s));top:calc(330 * var(--s))}
.event__deco2{position:absolute;width:calc(400 * var(--s));right:calc(-40 * var(--s));top:calc(560 * var(--s));z-index:3;perspective:1200px}
.event__deco2 .d2{position:absolute;width:calc(150 * var(--s));left:calc(40 * var(--s));top:calc(60 * var(--s))}
@media (max-width:1024px){
  .event__title{font-size:calc(46 * var(--s))}
  .event__info p{font-size:calc(26 * var(--s))}
  .event__deco1{width:calc(250 * var(--s));left:calc(-90 * var(--s));top:calc(-60 * var(--s))}
  .event__deco1 .d2{width:calc(90 * var(--s));left:calc(170 * var(--s))}
  .event__deco1 .d3{display:none}
  .event__deco2{width:calc(220 * var(--s));right:calc(-80 * var(--s));top:calc(300 * var(--s))}
  .event__deco2 .d2{width:calc(90 * var(--s))}
}

/* ---------------- Exhibition Guide ---------------- */
.guide{padding:calc(40 * var(--s)) 0 calc(200 * var(--s))}
.guide__list{width:calc(1600 * var(--s));max-width:calc(100% - 32px);margin:calc(80 * var(--s)) auto 0;display:flex;flex-direction:column;row-gap:calc(40 * var(--s))}
.guide__list a{display:block;border:1px solid rgba(255,255,255,.3);transition:opacity .3s}
.guide__list a:hover{opacity:.8}
@media (max-width:1024px){.guide__list{width:calc(688 * var(--s));max-width:none}}

/* ---------------- Attention ---------------- */
.attention{position:relative;padding:calc(40 * var(--s)) 0 calc(260 * var(--s))}
.attention__box{position:relative;width:calc(1600 * var(--s));max-width:calc(100% - 32px);margin:calc(70 * var(--s)) auto 0}
.attention__body{position:relative;max-width:calc(920 * var(--s));margin:0 auto;height:calc(260 * var(--s));overflow-y:scroll;padding-right:calc(64 * var(--s));font-size:calc(14 * var(--s));line-height:1.8;letter-spacing:.06em;scrollbar-color:#fff transparent;scrollbar-width:thin}
.attention__body p+ul,.attention__body ul+p{margin-top:1.4em}
.attention .c-head.--ja{margin-top:calc(110 * var(--s))}
.attention__deco1{position:absolute;width:calc(380 * var(--s));right:calc(-40 * var(--s));top:calc(160 * var(--s));perspective:1200px}
.attention__deco1 .d2{position:absolute;width:calc(140 * var(--s));left:calc(40 * var(--s));top:calc(30 * var(--s))}
.attention__flare{position:absolute;width:calc(320 * var(--s));left:calc(120 * var(--s));top:calc(500 * var(--s));mix-blend-mode:screen}
@media (max-width:1024px){
  .attention__box{width:calc(688 * var(--s));max-width:none}
  .attention__body{max-width:none;height:calc(560 * var(--s));font-size:calc(24 * var(--s));padding-right:calc(30 * var(--s))}
  .attention__deco1{width:calc(220 * var(--s));right:calc(-90 * var(--s));top:calc(60 * var(--s))}
  .attention__flare{width:calc(240 * var(--s));left:0}
}

/* ---------------- Footer ---------------- */
.footer{position:relative;overflow:hidden;background:var(--c-accent);color:var(--c-ink)}
.footer__bg{position:absolute;inset:0;pointer-events:none}
.footer__tate{position:absolute;width:calc(200 * var(--s));bottom:calc(-20 * var(--s))}
.footer__tate.--l{left:calc(40 * var(--s))}
.footer__tate.--r{right:calc(40 * var(--s))}
.footer__deco1{position:absolute;width:calc(420 * var(--s));left:calc(200 * var(--s));top:calc(260 * var(--s));opacity:0}
.footer__deco2{position:absolute;width:calc(200 * var(--s));right:calc(330 * var(--s));top:calc(60 * var(--s));opacity:0}
.footer__deco3{position:absolute;width:calc(160 * var(--s));left:calc(330 * var(--s));bottom:calc(120 * var(--s))}
.footer__deco3 img{opacity:0}
.footer__content{position:relative;z-index:2;padding:calc(130 * var(--s)) 0 calc(60 * var(--s));text-align:center}
.footer .c-btn-frame{margin-top:0;color:#fff}
.footer .c-btn-frame::after{background:#000;opacity:1}
.footer .c-btn-frame::before{opacity:.2;z-index:1}
.footer .c-btn-frame i{background:#fff}
.footer .c-btn-frame span{background:none;color:#fff}
.footer__credit{margin-top:calc(80 * var(--s));display:flex;flex-direction:column;row-gap:calc(28 * var(--s))}
.footer__credit dt{font-size:calc(14 * var(--s));letter-spacing:.1em}
.footer__credit dd{margin-top:calc(10 * var(--s));font-size:calc(20 * var(--s));letter-spacing:.08em}
.footer__contact{display:inline-flex;align-items:center;column-gap:calc(12 * var(--s));margin-top:calc(70 * var(--s));font-size:calc(14 * var(--s));text-decoration:none}
.footer__contact::after{content:"";width:calc(20 * var(--s));height:calc(20 * var(--s));border:1px solid currentColor;border-radius:50%;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 7 L7 3 M4 3 H7 V6' stroke='%23062a1f' fill='none'/%3E%3C/svg%3E") no-repeat center/55%}
.footer__copy{margin-top:calc(30 * var(--s));font-family:var(--f-sans);font-size:calc(14 * var(--s));letter-spacing:.1em}
@media (max-width:1024px){
  .footer__tate{width:calc(110 * var(--s));bottom:auto;top:calc(40 * var(--s))}
  .footer__tate.--l{left:calc(14 * var(--s))}.footer__tate.--r{right:calc(14 * var(--s))}
  .footer__deco1{width:calc(260 * var(--s));left:calc(-90 * var(--s));top:calc(-70 * var(--s))}
  .footer__deco2{width:calc(130 * var(--s));right:calc(150 * var(--s));top:calc(10 * var(--s))}
  .footer__deco3{width:calc(110 * var(--s));left:auto;right:calc(80 * var(--s));bottom:calc(60 * var(--s))}
  .footer__content{padding:calc(160 * var(--s)) calc(40 * var(--s)) calc(80 * var(--s))}
  .footer__credit dt{font-size:calc(22 * var(--s))}
  .footer__credit dd{font-size:calc(26 * var(--s));line-height:1.6}
  .footer__contact{font-size:calc(22 * var(--s));margin-top:calc(60 * var(--s))}
  .footer__contact::after{width:calc(30 * var(--s));height:calc(30 * var(--s))}
  .footer__copy{font-size:calc(20 * var(--s))}
}
@media (prefers-reduced-motion:reduce){.kv__layer img,.l-loading{transition:none}}

/* ================= 共通：メニュー・ロゴ・遷移 ================= */
.site-logo{position:fixed;z-index:900;top:calc(22 * var(--s));left:calc(30 * var(--s));width:calc(210 * var(--s));transition:opacity .4s}
.site-logo img{filter:drop-shadow(0 0 calc(10 * var(--s)) rgba(2,26,18,.6))}
.menu-btn{position:fixed;z-index:1001;top:calc(24 * var(--s));right:calc(30 * var(--s));width:calc(76 * var(--s));height:calc(76 * var(--s));border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(3,40,29,.55);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;padding:0}
.menu-btn span{position:absolute;left:28%;width:44%;height:1px;background:#fff;transition:transform .4s ease,top .4s ease}
.menu-btn span:nth-child(1){top:42%}.menu-btn span:nth-child(2){top:58%}
.is-menu .menu-btn span:nth-child(1){top:50%;transform:rotate(30deg)}
.is-menu .menu-btn span:nth-child(2){top:50%;transform:rotate(-30deg)}
.menu{position:fixed;inset:0;z-index:1000;background:var(--c-deep);visibility:hidden;opacity:0;overflow:hidden}
.menu .fireflies{position:absolute;inset:0}
.menu__inner{position:relative;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;row-gap:calc(30 * var(--s))}
.menu__list{display:flex;flex-direction:column;row-gap:calc(26 * var(--s));text-align:center}
.menu__list a{display:block;text-decoration:none}
.menu__en{display:block;font-family:var(--f-en);font-size:calc(64 * var(--s));letter-spacing:.06em;line-height:1.1;transition:color .3s}
.menu__ja{display:block;margin-top:calc(8 * var(--s));font-size:calc(15 * var(--s));letter-spacing:.2em;color:var(--c-accent)}
.menu__list a:hover .menu__en,.menu__list a[aria-current] .menu__en{background:var(--prism);-webkit-background-clip:text;background-clip:text;color:transparent}
.menu__deco1{position:absolute;width:calc(380 * var(--s));left:calc(-40 * var(--s));bottom:calc(-30 * var(--s))}
.menu__deco2{position:absolute;width:calc(180 * var(--s));right:calc(180 * var(--s));top:calc(160 * var(--s))}
.menu .c-btn-frame{margin-top:calc(20 * var(--s));width:calc(420 * var(--s));font-size:calc(24 * var(--s));padding:calc(24 * var(--s)) 0}
@media (max-width:1024px){
  .site-logo{width:calc(230 * var(--s));top:calc(30 * var(--s));left:calc(30 * var(--s))}
  .menu-btn{width:calc(92 * var(--s));height:calc(92 * var(--s));top:calc(24 * var(--s));right:calc(24 * var(--s))}
  .menu__en{font-size:calc(72 * var(--s))}
  .menu__ja{font-size:calc(22 * var(--s))}
  .menu__deco1{width:calc(300 * var(--s))}
  .menu__deco2{width:calc(140 * var(--s));right:calc(40 * var(--s));top:calc(150 * var(--s))}
  .menu .c-btn-frame{width:calc(480 * var(--s));font-size:calc(30 * var(--s));padding:calc(30 * var(--s)) 0}
}
.l-loading.is-leave{display:block!important;opacity:1;transform:none;transition:opacity .3s ease,transform .38s cubic-bezier(.7,0,.3,1);-webkit-mask:linear-gradient(90deg,#fff 0,#fff 10%,transparent 100%);mask:linear-gradient(90deg,#fff 0,#fff 10%,transparent 100%)}
.l-loading.is-leave-start{transform:translateX(-100%);opacity:0;transition:none}

/* ================= 蛍（canvas） ================= */
.fireflies{display:block;width:100%;height:100%;pointer-events:none}

/* ================= Exhibition Guide のバナー ================= */
.guide__list .guide-banner{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;row-gap:calc(14 * var(--s));height:calc(300 * var(--s));overflow:hidden;background:radial-gradient(120% 140% at 50% 120%,#0a5a40 0,var(--c-deep) 60%);border:1px solid rgba(255,255,255,.25);text-decoration:none;transition:border-color .4s}
.guide-banner:hover{border-color:var(--c-accent)}
.guide-banner .fireflies{position:absolute;inset:0}
.guide-banner__en{position:relative;font-family:var(--f-en);font-size:calc(66 * var(--s));letter-spacing:.2em;padding-left:.2em;text-shadow:0 0 .5em rgba(207,255,61,.35)}
.guide-banner__ja{position:relative;font-size:calc(18 * var(--s));letter-spacing:.24em;color:var(--c-accent)}
.guide-banner__arrow{position:absolute;right:calc(50 * var(--s));top:0;bottom:0;margin:auto;width:calc(56 * var(--s));height:calc(56 * var(--s));border:1px solid rgba(255,255,255,.6);border-radius:50%;transition:background .4s,transform .4s;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Cpath d='M3 5 H7 M5.5 3.5 L7 5 L5.5 6.5' stroke='%23ffffff' fill='none' stroke-width='.6'/%3E%3C/svg%3E") no-repeat center/60%}
.guide-banner:hover .guide-banner__arrow{transform:translateX(calc(8 * var(--s)));background-color:rgba(207,255,61,.18)}
@media (max-width:1024px){
  .guide-banner{height:calc(260 * var(--s))}
  .guide-banner__en{font-size:calc(56 * var(--s))}
  .guide-banner__ja{font-size:calc(22 * var(--s))}
  .guide-banner__arrow{right:calc(24 * var(--s));width:calc(52 * var(--s));height:calc(52 * var(--s))}
}

/* ================= 下層：見出し画像 ================= */
.phero{position:relative;height:calc(640 * var(--s));overflow:hidden}
.phero__layer{position:absolute;inset:-6% 0 0;pointer-events:none}
.phero__layer img{width:100%;height:100%;object-fit:cover;object-position:50% 70%}
.phero__layer.--bg img{object-position:50% 40%}
.phero__shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(3,40,29,.25) 0,rgba(3,40,29,.15) 50%,var(--c-base) 100%)}
.phero .fireflies{position:absolute;inset:0;z-index:3}
.phero__title{position:absolute;z-index:4;left:0;right:0;bottom:calc(150 * var(--s));text-align:center}
.phero__en{display:block;font-family:var(--f-en);font-size:calc(110 * var(--s));letter-spacing:.06em;line-height:1;background:var(--prism);-webkit-background-clip:text;background-clip:text;color:transparent;filter:drop-shadow(0 0 calc(14 * var(--s)) rgba(2,26,18,.8))}
.phero__ja{display:block;margin-top:calc(18 * var(--s));font-size:calc(22 * var(--s));letter-spacing:.3em;text-shadow:0 0 .6em rgba(2,26,18,.9)}
.crumb{position:relative;z-index:4;display:flex;justify-content:center;column-gap:1em;margin-top:calc(-60 * var(--s));font-family:var(--f-sans);font-size:calc(14 * var(--s));letter-spacing:.1em;color:rgba(255,255,255,.7)}
.crumb a{text-decoration:none}.crumb a:hover{color:var(--c-accent)}
.crumb span+span::before,.crumb a+span::before{content:"/";margin-right:1em;opacity:.5}
@media (max-width:1024px){
  .phero{height:calc(760 * var(--s))}
  .phero__title{bottom:calc(150 * var(--s))}
  .phero__en{font-size:calc(110 * var(--s))}
  .phero__ja{font-size:calc(26 * var(--s))}
  .crumb{font-size:calc(20 * var(--s))}
}
.sub-section{position:relative;padding:calc(160 * var(--s)) 0 calc(80 * var(--s))}
.sub-lead{margin:calc(50 * var(--s)) auto 0;max-width:calc(900 * var(--s));text-align:center;font-size:calc(18 * var(--s));line-height:2}
@media (max-width:1024px){.sub-section{padding:calc(140 * var(--s)) 0 calc(60 * var(--s))}.sub-lead{max-width:none;padding:0 calc(40 * var(--s));font-size:calc(24 * var(--s));text-align:left}}

/* ================= Works ================= */
.works__filter{display:flex;justify-content:center;flex-wrap:wrap;gap:calc(14 * var(--s));margin-top:calc(60 * var(--s))}
.works__filter button{padding:calc(12 * var(--s)) calc(28 * var(--s));border:1px solid rgba(255,255,255,.4);border-radius:999px;background:transparent;color:#fff;font-family:var(--f-jp);font-size:calc(16 * var(--s));letter-spacing:.08em;cursor:pointer;transition:background .3s,color .3s,border-color .3s}
.works__filter button.is-active,.works__filter button:hover{background:var(--c-accent);border-color:var(--c-accent);color:var(--c-ink)}
.works__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(48 * var(--s)) calc(36 * var(--s));width:calc(1500 * var(--s));max-width:calc(100% - 32px);margin:calc(70 * var(--s)) auto 0}
.work{cursor:pointer;text-align:left;background:none;border:0;padding:0;color:#fff;font:inherit}
.work__img{position:relative;overflow:hidden;aspect-ratio:4/5;background:var(--c-deep)}
.work__img img{height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .3s}
.work__img::after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18);transition:box-shadow .4s}
.work:hover .work__img img{transform:scale(1.06);filter:brightness(1.08)}
.work:hover .work__img::after{box-shadow:inset 0 0 0 1px var(--c-accent)}
.work__no{display:block;margin-top:calc(18 * var(--s));font-family:var(--f-en);font-size:calc(15 * var(--s));color:var(--c-accent);letter-spacing:.1em}
.work__title{display:block;margin-top:calc(8 * var(--s));font-size:calc(20 * var(--s));letter-spacing:.08em}
.work__meta{display:block;margin-top:calc(8 * var(--s));font-size:calc(13 * var(--s));color:rgba(255,255,255,.65);letter-spacing:.06em}
@media (max-width:1024px){
  .works__filter button{font-size:calc(22 * var(--s));padding:calc(12 * var(--s)) calc(24 * var(--s))}
  .works__grid{grid-template-columns:repeat(2,1fr);width:calc(688 * var(--s));max-width:none;gap:calc(44 * var(--s)) calc(24 * var(--s))}
  .work__no{font-size:calc(20 * var(--s))}
  .work__title{font-size:calc(26 * var(--s))}
  .work__meta{font-size:calc(19 * var(--s))}
}
.lb{position:fixed;inset:0;z-index:1100;display:grid;place-items:center;background:rgba(2,22,15,.94);visibility:hidden;opacity:0}
.lb .fireflies{position:absolute;inset:0}
.lb__box{position:relative;display:flex;align-items:center;column-gap:calc(60 * var(--s));max-width:calc(100% - 200 * var(--s))}
.lb__img{max-height:82vh;width:auto;max-width:min(60vw,calc(900 * var(--s)));box-shadow:0 calc(30 * var(--s)) calc(60 * var(--s)) rgba(0,0,0,.5)}
.lb__info{width:calc(320 * var(--s))}
.lb__no{font-family:var(--f-en);color:var(--c-accent);font-size:calc(16 * var(--s));letter-spacing:.1em}
.lb__title{margin-top:calc(14 * var(--s));font-size:calc(32 * var(--s));line-height:1.5;letter-spacing:.08em}
.lb__meta{margin-top:calc(20 * var(--s));font-size:calc(15 * var(--s));line-height:1.9;color:rgba(255,255,255,.75)}
.lb__count{margin-top:calc(30 * var(--s));font-family:var(--f-sans);font-size:calc(14 * var(--s));letter-spacing:.2em;color:rgba(255,255,255,.5)}
.lb__close,.lb__prev,.lb__next{position:absolute;z-index:2;width:calc(64 * var(--s));height:calc(64 * var(--s));border:1px solid rgba(255,255,255,.5);border-radius:50%;background:rgba(3,40,29,.6);cursor:pointer;padding:0;transition:background .3s,border-color .3s}
.lb__close:hover,.lb__prev:hover,.lb__next:hover{background:rgba(207,255,61,.2);border-color:var(--c-accent)}
.lb__close{top:calc(30 * var(--s));right:calc(30 * var(--s))}
.lb__close::before,.lb__close::after{content:"";position:absolute;left:28%;top:50%;width:44%;height:1px;background:#fff;transform:rotate(45deg)}
.lb__close::after{transform:rotate(-45deg)}
.lb__prev,.lb__next{top:0;bottom:0;margin:auto}
.lb__prev{left:calc(40 * var(--s))}.lb__next{right:calc(40 * var(--s))}
.lb__prev::before,.lb__next::before{content:"";position:absolute;inset:0;margin:auto;width:24%;height:24%;border-top:1px solid #fff;border-right:1px solid #fff}
.lb__prev::before{transform:translateX(15%) rotate(-135deg)}.lb__next::before{transform:translateX(-15%) rotate(45deg)}
@media (max-width:1024px){
  .lb__box{flex-direction:column;row-gap:calc(30 * var(--s));max-width:calc(100% - 64px)}
  .lb__img{max-width:100%;max-height:58vh}
  .lb__info{width:100%;text-align:center}
  .lb__no{font-size:calc(20 * var(--s))}.lb__title{font-size:calc(36 * var(--s))}.lb__meta{font-size:calc(22 * var(--s))}.lb__count{font-size:calc(20 * var(--s))}
  .lb__close,.lb__prev,.lb__next{width:calc(80 * var(--s));height:calc(80 * var(--s))}
  .lb__prev,.lb__next{top:auto;bottom:calc(40 * var(--s))}
  .lb__prev{left:calc(40 * var(--s))}.lb__next{right:calc(40 * var(--s))}
}

/* ================= Access ================= */
.floor{position:relative;width:calc(1300 * var(--s));max-width:calc(100% - 32px);margin:calc(70 * var(--s)) auto 0;padding:calc(50 * var(--s));background:radial-gradient(90% 100% at 50% 100%,#0a5a40 0,var(--c-deep) 70%);border:1px solid rgba(255,255,255,.2);overflow:hidden}
.floor .fireflies{position:absolute;inset:0}
.floor svg{position:relative;display:block;width:100%;height:auto}
.floor__room{fill:rgba(255,255,255,.04);stroke:rgba(255,255,255,.55);stroke-width:1.5;transition:fill .4s}
.floor__room.--main{fill:rgba(207,255,61,.08);stroke:var(--c-accent)}
.floor__label{fill:#fff;font-family:"Shippori Mincho",serif;font-size:22px;letter-spacing:.1em}
.floor__label.--en{font-family:"Marcellus",serif;font-size:14px;fill:var(--c-accent);letter-spacing:.2em}
.floor__route{fill:none;stroke:var(--c-accent);stroke-width:2;stroke-dasharray:6 10;animation:route 1.6s linear infinite}
@keyframes route{to{stroke-dashoffset:-32}}
.floor__legend{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(24 * var(--s)) calc(40 * var(--s));width:calc(1300 * var(--s));max-width:calc(100% - 32px);margin:calc(40 * var(--s)) auto 0}
.floor__legend dt{font-family:var(--f-en);color:var(--c-accent);font-size:calc(15 * var(--s));letter-spacing:.1em}
.floor__legend dd{margin-top:calc(8 * var(--s));font-size:calc(16 * var(--s));line-height:1.8}
.hours{width:100%;border-collapse:collapse;font-size:calc(18 * var(--s))}
.hours th,.hours td{padding:calc(20 * var(--s)) calc(16 * var(--s));border-bottom:1px solid rgba(255,255,255,.18);text-align:left;line-height:1.7;font-weight:500}
.hours th{width:40%;font-weight:600}
.hours .--accent{font-size:.85em}
@media (max-width:1024px){
  .floor{width:calc(688 * var(--s));max-width:none;padding:calc(20 * var(--s))}
  .floor__legend{grid-template-columns:1fr;width:calc(688 * var(--s));max-width:none}
  .floor__legend dt{font-size:calc(20 * var(--s))}.floor__legend dd{font-size:calc(24 * var(--s))}
  .hours{font-size:calc(24 * var(--s))}
  .hours th,.hours td{display:block;width:100%;padding:calc(10 * var(--s)) 0}
  .hours th{padding-top:calc(24 * var(--s));border-bottom:0}
}

/* ================= News ================= */
.news{width:calc(1200 * var(--s));max-width:calc(100% - 32px);margin:calc(70 * var(--s)) auto 0}
.news .acc{width:100%;max-width:none;margin:0}
.news .acc__dt{flex-wrap:wrap;row-gap:calc(8 * var(--s))}
.news__date{width:calc(150 * var(--s));font-family:var(--f-en);color:var(--c-base);font-size:calc(18 * var(--s));letter-spacing:.06em}
.news__tag{min-width:calc(100 * var(--s));margin-right:calc(24 * var(--s));padding:calc(4 * var(--s)) calc(12 * var(--s));background:var(--c-base);color:var(--c-accent);font-size:calc(13 * var(--s));text-align:center;letter-spacing:.1em}
.news__title{font-size:calc(20 * var(--s))}
.news .acc__dd-inner{font-size:calc(17 * var(--s));line-height:1.9}
.news .acc__dd-inner a{color:var(--c-base);font-weight:600}
@media (max-width:1024px){
  .news{width:calc(688 * var(--s));max-width:none}
  .news__date{width:auto;margin-right:calc(16 * var(--s));font-size:calc(22 * var(--s))}
  .news__tag{font-size:calc(18 * var(--s));min-width:0}
  .news__title{width:100%;font-size:calc(26 * var(--s));line-height:1.5}
  .news .acc__dd-inner{font-size:calc(24 * var(--s))}
}

/* フッターのナビ */
.footer__nav{display:flex;justify-content:center;flex-wrap:wrap;gap:calc(14 * var(--s)) calc(40 * var(--s));margin-top:calc(60 * var(--s))}
.footer__nav a{font-family:var(--f-en);font-size:calc(18 * var(--s));letter-spacing:.12em;text-decoration:none;border-bottom:1px solid transparent;transition:border-color .3s}
.footer__nav a:hover{border-color:currentColor}
@media (max-width:1024px){.footer__nav a{font-size:calc(26 * var(--s))}}
[data-fade]{opacity:0}
@media (prefers-reduced-motion:reduce){[data-fade]{opacity:1}}

.acc__photos{display:grid;grid-template-columns:repeat(4,1fr);gap:calc(16 * var(--s));width:100%}
.acc__photos:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,1fr);max-width:calc(820 * var(--s))}
.acc__photos:has(> :only-child){grid-template-columns:1fr;max-width:calc(480 * var(--s))}
.acc__photos{margin:0 auto}
.acc__photos img{aspect-ratio:1/1;object-fit:cover}
@media (max-width:1024px){.acc__photos,.acc__photos:has(> :nth-child(2):last-child){grid-template-columns:repeat(2,1fr);gap:calc(12 * var(--s));max-width:none}.acc__photos:has(> :only-child){grid-template-columns:1fr;max-width:calc(440 * var(--s))}}
