/* loader */
.loader{position:fixed;inset:0;
  z-index:2000;display:grid;place-items:center;
  background-color:var(--c-base);transition:opacity .5s ease;}
.loader::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
  background:url("../img/bg/paper-tile.webp") repeat;opacity:.5;}
.loader::after{content:"";position:absolute;top:0;left:50%;transform:translateX(-50%);
  width:100vw;height:5px;z-index:10;background:var(--c-sky-band);pointer-events:none;}
.loader__spotlight{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:1;
  overflow:hidden;display:flex;justify-content:center;align-items:flex-start;}
.loader__spotlight img{width:100%;height:auto;max-width:none;flex:none;display:block;transform:translateY(-10%);}
.loader__home{position:absolute;z-index:3;top:50px;left:var(--edge);}
.loader__home img{width:min(320px,62vw);height:auto;}
.loader__logo{position:relative;z-index:2;width:clamp(220px,40vw,360px);aspect-ratio:1/1;}
.loader__layer{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;}
.loader__layer--ring{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;}

/* greeting */
.greeting{padding-block:30px;}
.greeting__inner{width:min(var(--container), calc(100% - 2 * var(--gutter)));margin-inline:auto;display:flex;gap:14px;align-items:flex-start;}
.greeting__title{flex:0 0 245px;margin:0;}
.greeting__title img{width:245px;height:auto;display:block;}
.greeting__title-band{display:none;}
.greeting__body{flex:1;min-width:0;font-size:20px;}
/* 見出し画像と本文1行目のキャップ上端を揃える */
@supports (text-box-edge:cap){
  .greeting__body{text-box-trim:trim-start;text-box-edge:cap alphabetic;}
}
@supports not (text-box-edge:cap){
  .greeting__body{margin-top:calc((1 - 1.75) / 2 * 1em);}
}
.greeting__p{font-weight:500;color:#009FE8;line-height:1.75;margin:0;}

/* section */
.section{padding-block:clamp(40px,3.23vw,62px);}
.section__head{display:flex;align-items:baseline;gap:var(--s-4);margin-bottom:var(--s-6);}
.section__en{font-size:var(--fs-en-md);color:var(--c-sky);margin:0;font-weight:500;line-height:1;letter-spacing:0;white-space:pre-line;}
@supports (text-box-edge:cap){
  .section__en{text-box-trim:trim-start;text-box-edge:cap alphabetic;}
}
@supports not (text-box-edge:cap){
  .section__en{margin-top:-.112em;}
}
.section--exhibition .section__en,
.section--f-theater .section__en,
.section--shop-cafe .section__en{font-size:var(--fs-en-lg);}
.section__ja{color:var(--c-sky-deep);font-weight:700;margin:0;}
.section__lead{display:flex;gap:20px;align-items:flex-start;}
.section__poster,.section__image{flex:0 0 auto;}
.section__copy{flex:1;min-width:0;}
.section__copy-lower{display:flex;gap:20px;align-items:flex-start;}
.section__copy-lower .section__body{flex:1;min-width:0;margin:0;}
.section__copy-lower .section__image2{flex:0 0 auto;margin-right:calc(-1 * var(--edge));}
.section__poster img{width:clamp(240px,24vw,460px);height:auto;display:block;}
.section__image img{width:clamp(280px,32vw,520px);height:auto;display:block;}
.section__image2 img{width:clamp(220px,21.875vw,420px);height:auto;display:block;}
/* min-width:0: トラック(max-content)の幅伝播で器が膨らむのを遮断 */
.section--f-theater .section__lead{min-width:0;}
.section__images{position:relative;min-width:0;}
/* touch-action:pan-y: 縦スクロールはネイティブに残し、横はJSのスワイプ判定へ */
.carousel__viewport{overflow:hidden;touch-action:pan-y;}
.carousel__track{display:flex;gap:8px;width:max-content;transition:transform .45s ease;}
.section__images .section__image{flex:0 0 auto;}
.section__images .section__image img{width:clamp(240px,26.04vw,500px);}
.carousel__nav{display:flex;gap:8px;margin-top:16px;}
.carousel__btn{width:26px;height:26px;padding:0;border:none;border-radius:50%;
  background:var(--c-sky);color:#fff;display:grid;place-items:center;cursor:pointer;transition:background .2s ease;}
.carousel__btn svg{width:8px;height:12px;display:block;}
.carousel__btn:hover{background:var(--c-sky-deep);}
.section--f-theater .section__lead{flex-direction:column;gap:60px;align-items:stretch;}
.section--shop-cafe .section__image img{width:clamp(280px,29.5vw,566px);}
.section__startnote{color:#968C73;font-size:clamp(18px,1.25vw,24px);font-weight:500;line-height:1.5;margin:0 0 20px;}
.section__title{color:var(--c-title);font-size:var(--fs-title);font-weight:700;line-height:1.5;margin:0 0 20px;}
.section__subtitle{color:var(--c-title);font-size:clamp(16px,1.25vw,24px);font-weight:700;line-height:1.5;margin:0 0 4px;}
.section__periods{list-style:none;padding:0;margin:0 0 20px;font-weight:500;color:var(--c-title);font-size:clamp(16px,1.04vw,20px);line-height:1.5;}
.section__periods li{display:flex;align-items:center;gap:.55em;margin-bottom:6px;}
.section__periods li:last-child{margin-bottom:0;}
.period__label{flex:0 0 auto;background:#009FE8;color:#fff;border-radius:0 8px 0 8px;padding:.1em .7em;font-weight:700;line-height:1.4;}
.period__date{color:var(--c-title);}
.section__body{color:var(--c-muted);font-size:var(--fs-body2);line-height:2;margin:0 0 20px;}
.section__imgnote{color:#968C73;font-size:clamp(12px,.729vw,14px);line-height:1.4;margin:6px 0 0;}
/* 半リーディング吸収: コピー先頭行の上端をポスター上端に揃える */
@supports (text-box-edge:cap){ .section__startnote,.section__title{text-box-trim:trim-start;text-box-edge:cap alphabetic;} }
@supports not (text-box-edge:cap){ .section__copy > :first-child{margin-top:calc((1 - 1.5) / 2 * 1em);} }
@supports (text-box-edge:cap){ .section__copy-lower .section__body{text-box-trim:trim-start;text-box-edge:cap alphabetic;} }
@supports not (text-box-edge:cap){ .section__copy-lower .section__body{margin-top:calc((1 - 2) / 2 * 1em);} }
.section__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px;margin-top:var(--s-6);}
.section--f-theater .section__cards{grid-template-columns:1fr;padding-right:var(--edge);}
.section--event .section__head,.section--others .section__head{margin-bottom:20px;}
.section--event .section__cards,.section--others .section__cards{margin-top:0;}
.section--event .section__head,.section--others .section__head{justify-content:center;text-align:center;}

/* footer */
/* z-index:-1 で OTHERS テキストの下に写真を回り込ませる */
.footer__image,.footer__bar{width:100vw;margin-inline:calc(50% - 50vw);}
.footer{position:relative;}
.footer__image{position:relative;z-index:-1;margin-top:clamp(-150px,-7.8vw,-32px);
  background:var(--c-base) url("../img/bg/paper-tile.webp") repeat;}
.footer__image img{width:100%;max-width:1920px;height:clamp(320px,49.7vw,954px);object-fit:cover;object-position:center bottom;display:block;margin-inline:auto;mix-blend-mode:multiply;}
.footer__image::before{content:"";position:absolute;top:-60px;left:0;right:0;height:clamp(240px,24vw,460px);z-index:1;
  background:linear-gradient(to bottom, #F1F0EA 0%, #F1F0EA 20%, rgba(241,240,234,0) 100%);pointer-events:none;
  filter:blur(40px);}
/* sitelink は footer__image(z:-1) の外に置き、z:1 でクリック可能にする */
.footer__sitelink{position:relative;z-index:1;display:block;text-align:center;
  margin-top:-60px;padding-bottom:20px;cursor:pointer;
  color:#fff;font-size:clamp(18px,1.25vw,24px);font-weight:500;white-space:nowrap;
  text-decoration:underline;text-underline-offset:.35em;}
.footer__bar{background:var(--c-sky-band);color:#fff;padding:20px var(--gutter);text-align:center;}
.footer__notes{font-size:var(--fs-body2);line-height:1.4;margin:0 0 24px;}
.footer__copy{font-size:clamp(12px,.84vw,16px);line-height:1.35;margin:0;}

/* edge系(EXHIBITION/F THEATER/SHOP&CAFE): 2カラム[見出し左|コンテナ右] */
.section--exhibition > .container,
.section--f-theater > .container,
.section--shop-cafe > .container{max-width:none;padding-left:var(--edge);padding-right:0;
  display:grid;grid-template-columns:31.57% minmax(0,1fr);column-gap:var(--s-5);align-items:start;}
.section--exhibition .section__head,.section--f-theater .section__head,.section--shop-cafe .section__head{grid-column:1;grid-row:1;margin-bottom:0;flex-direction:column;align-items:flex-start;gap:var(--s-2);}
.section--exhibition .section__lead,.section--f-theater .section__lead,.section--shop-cafe .section__lead{grid-column:2;grid-row:1;}
.section--exhibition .section__cards,.section--f-theater .section__cards,.section--shop-cafe .section__cards{grid-column:2;grid-row:2;}
.section--exhibition .section__copy:last-child,
.section--f-theater .section__copy:last-child,
.section--shop-cafe .section__copy:last-child{padding-right:var(--edge);}

@media (max-width:1819px){
  .section__copy-lower{flex-direction:column;}
  .section__copy-lower .section__image2{align-self:flex-start;margin-right:0;}
}

/* SP */
@media (max-width:1279px){
  .section{padding-block:60px;}
  .section__lead{flex-direction:column;}
  .section__cards{grid-template-columns:1fr;gap:96px;}
  .section__head{flex-direction:column;gap:var(--s-1);}
  .section--exhibition > .container,
  .section--f-theater > .container,
  .section--shop-cafe > .container{grid-template-columns:1fr;padding-right:var(--edge);}
  .section--exhibition .section__head,.section--f-theater .section__head,.section--shop-cafe .section__head,
  .section--exhibition .section__lead,.section--f-theater .section__lead,.section--shop-cafe .section__lead,
  .section--exhibition .section__cards,.section--f-theater .section__cards,.section--shop-cafe .section__cards{grid-column:1;grid-row:auto;}
  .section--exhibition .section__head,.section--f-theater .section__head,.section--shop-cafe .section__head{margin-bottom:12px;}
  .section__poster{width:100%;}
  .section__poster img{width:100%;}
  .section--exhibition .section__copy:last-child,.section--f-theater .section__copy:last-child,.section--shop-cafe .section__copy:last-child{padding-right:0;}
  .section--event .section__cards,.section--others .section__cards{margin-top:0;}
  .section--event .section__head,.section--others .section__head{align-items:center;}
  .section__images{--carousel-center:1;}
  .carousel__viewport{margin-inline:calc(-1 * var(--edge));}
  .carousel__track{gap:6px;}
  .section__images .section__image img{width:min(80vw,300px);}
  .carousel__nav{margin-top:12px;}
  .section--f-theater .section__lead{gap:24px;}
  .section--f-theater .section__cards{padding-right:0;margin-inline:-10px;}
  .card--topics{flex-direction:column;align-items:stretch;gap:16px;padding:20px;}
  .card--topics .card__media{flex:none;}
  .card--topics .card__title{text-align:center;}
  .section--shop-cafe .section__image img{width:100%;}
  .footer__image img{height:137vw;}
  .footer__sitelink{font-size:20px;margin-top:-50px;padding-bottom:10px;}
  .footer__bar{padding:18px var(--edge);}
  .footer__notes{font-size:14px;line-height:1.55;margin-bottom:18px;text-align:left;}
  .footer__copy{font-size:12px;}
  .section__copy-lower{flex-direction:column;}
  .section__copy-lower .section__image2{margin:var(--s-4) 0 0;width:100%;}
  .section__image2 img{width:100%;}
  .header__bar{position:static;padding:20px var(--edge) 0;}
  .header__bar-inner{justify-content:center;}
  .header__logo img{width:74vw;max-width:300px;}
  .loader__spotlight img{width:300vw;transform:translateY(-10%);}
  .loader__logo{width:min(305px,81vw);}
  .loader__home{top:0;left:0;right:0;transform:none;padding:20px var(--edge) 0;display:flex;justify-content:center;}
  .loader__home img{width:74vw;max-width:300px;}
  .header__hero{padding:16px var(--edge) var(--s-2);}
  .header__emblem{width:min(160px,44vw);}
  .greeting__inner{flex-direction:column;gap:12px;}
  .greeting__title{flex:none;width:100%;}
  .greeting__title .greeting__title-card{display:none;}
  .greeting__title-band{display:flex;align-items:center;justify-content:center;
    width:100%;height:70px;background:var(--c-sky-band);border-radius:30px 0 30px 0;}
  .greeting__title-band img{width:auto;height:26px;}
  .greeting__body{font-size:18px;}
}
