@charset "UTF-8";

:root{
  --bg:        #ffe5e8;
  --pink:      #FF9CD7;
  --paper:     #FFFFFF;
  --pink-pale: #FFF3F4;
  --pink-mist: #FFF9FA;
  --pink-ink:  #BF1860;
  --pink-lg:   #EE3A94;
  --ink:       #2B2126;
  --ink-sub:   #75636D;
  --line:      #EFC7CE;

  --ff-ja: "Zen Kaku Gothic New", "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
  --ff-en: "Bricolage Grotesque", "Zen Kaku Gothic New", system-ui, sans-serif;

  --sp-xl: clamp(104px, 13vw, 200px);
  --sp-l:  clamp(64px, 8vw, 118px);
  --sp-m:  clamp(36px, 4.5vw, 64px);
  --sp-s:  clamp(18px, 2.4vw, 30px);

  --rail: clamp(30px, 4.4vw, 68px);
  --wrap: 1080px;
  --r-l: 22px;
  --r-m: 14px;
  --r-s: 8px;

  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:var(--ff-ja);
  font-weight:500;
  font-size:16px;
  line-height:1.95;
  font-feature-settings:"palt" 1;
  letter-spacing:.045em;
  overflow-x:clip;
}
img{ max-width:100%; height:auto; display:block; }
ul,ol{ list-style:none; margin:0; padding:0; }
dl,dd,dt,figure,p,h1,h2,h3{ margin:0; }
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; padding:0; cursor:pointer; }
:focus-visible{ outline:3px solid var(--pink-ink); outline-offset:3px; border-radius:4px; }

h1,h2,h3{ word-break:auto-phrase; line-break:strict; line-height:1.35; }
p{ text-wrap:pretty; }
.nw{ white-space:nowrap; }
.wcard__txt, .modal__meta-name, .about__sub{ word-break:auto-phrase; line-break:strict; }

.visually-hidden{
  position:absolute; width:1px; height:1px; margin:-1px; padding:0;
  overflow:hidden; clip-path:inset(50%); white-space:nowrap; border:0;
}
.skip{
  position:absolute; left:8px; top:-64px; z-index:100;
  background:var(--pink-ink); color:#fff; padding:10px 18px; border-radius:0 0 var(--r-s) var(--r-s);
  transition:top .2s var(--ease);
}
.skip:focus{ top:0; }

.rail{
  position:fixed; top:0; height:100%;
  display:flex; align-items:center; justify-content:center;
  font-family:var(--ff-en);
  font-size:13px; font-weight:600; line-height:1;
  letter-spacing:.22em;
  color:var(--pink-ink);
  z-index:20;
  pointer-events:none;
}
.rail--l{ left:1.85vw; }
.rail--r{ right:1.85vw; }
.rail__v{ writing-mode:vertical-rl; text-orientation:mixed; }
.rail--l a{ pointer-events:auto; transition:opacity .3s ease; }
.rail--scroll{
  top:auto; bottom:1.6vw; right:1.85vw; height:auto;
  font-size:11px; letter-spacing:.34em; color:var(--ink-sub);
  transition:opacity .4s ease, transform .4s ease;
}
.rail--scroll.is-hidden{ opacity:0; transform:translateY(14px); }
.rail--scroll .rail__v{ display:flex; align-items:center; gap:10px; }
.rail--scroll .rail__v::after{
  content:""; width:1px; height:52px;
  background:linear-gradient(to bottom, var(--pink), transparent);
}

@media (hover:hover) and (pointer:fine){
  .rail--l a:hover{ text-decoration:overline; text-underline-offset:4px; }
}


.sec, .intro{
  max-width:var(--wrap);
  margin-inline:auto;
  padding-inline:max(var(--rail), 22px);
}

.ttl{
  display:grid;
  grid-template-columns:1fr auto 1fr;
  align-items:center;
  gap:clamp(14px,3vw,38px);
  margin-bottom:var(--sp-m);
}
.ttl::before,.ttl::after{ content:""; height:1px; background:var(--ink); opacity:.55; min-width:0; }
.ttl__ja{
  font-weight:900; letter-spacing:.09em;
  font-size:clamp(26px,4.4vw,42px);
  line-height:1.3;
}
.ttl__en{
  font-family:var(--ff-en);
  font-weight:800; letter-spacing:.015em;
  font-size:clamp(30px,5.6vw,56px);
  line-height:1.16;
}
.sec__note{
  margin-top:calc(var(--sp-m) * -0.55);
  margin-bottom:var(--sp-m);
  text-align:center;
  font-size:13px; letter-spacing:.08em; color:var(--pink-ink);
}

.hero{ padding:0; }
.hero__stage{
  position:relative;
  overflow:clip;
  width:100%;
  border-radius:0;
}

.hero__kv{ position:relative; width:100%; aspect-ratio:1700 / 1209; }
.hero__kv-layer{ position:absolute; inset:0; display:block; }
.hero__kv-layer img{ width:100%; height:100%; object-fit:contain; display:block; }

.kvc{ position:absolute; display:block; }
.kvc img{ width:100%; height:auto; display:block; }

.kvc--sidi{ left:0.00%; top:7.30%; width:27.73%; }
.kvc--heikin{ left:72.00%; top:8.45%; width:28.00%; }
.kvc--dry{ left:18.17%; top:17.77%; width:22.19%; }
.kvc--kagechiyo{ left:29.35%; top:27.11%; width:24.58%; }
.kvc--masa{ left:62.17%; top:16.95%; width:22.11%; }
.kvc--hikaru{ left:49.82%; top:27.42%; width:16.16%; }
@media (max-width:860px){
  .kvc--sidi{ left:5.20%; top:4.75%; width:45.57%; }
  .kvc--heikin{ left:48.13%; top:5.57%; width:44.20%; }
  .kvc--dry{ left:0.53%; top:18.55%; width:31.23%; }
  .kvc--kagechiyo{ left:21.02%; top:26.49%; width:34.55%; }
  .kvc--masa{ left:69.92%; top:17.99%; width:30.08%; }
  .kvc--hikaru{ left:43.63%; top:26.40%; width:36.02%; }
}
@media (max-width:860px){
  .hero__kv{ aspect-ratio:1150 / 1617; }

}


.hero__logo{
  margin:0; line-height:0;
  position:absolute; z-index:5;
  left:44.46%; top:8.91%; width:11.46%;
}
.hero__logo picture, .hero__logo img{ display:block; width:100%; height:auto; }
.hero__meta{
  display:flex; flex-wrap:wrap; justify-content:center; align-items:baseline;
  gap:.1em .5em;
  font-family:var(--ff-en); font-weight:700;
  font-size:clamp(15px,2.1vw,23px); letter-spacing:.05em;
  margin-top:clamp(8px,1.4vh,16px);
}
.hero__sep{ font-size:max(10px,.62em); letter-spacing:.16em; color:var(--pink-ink); }
.hero__slash{ color:var(--pink-ink); }
.hero__place{
  margin-top:.3em; font-size:clamp(11.5px,1.3vw,13.5px);
  letter-spacing:.11em; color:var(--ink); font-weight:500;
}

.intro{ padding-top:clamp(26px,3.4vw,54px); padding-bottom:var(--sp-xl); text-align:center; }
.intro__lead{
  font-size:clamp(14px,1.9vw,19px);
  line-height:2.25; letter-spacing:.07em;
}

.agfblock{ text-align:center; margin-block:clamp(26px,4vw,48px); }
.agfmark{ margin:0 0 clamp(12px,1.8vw,20px); line-height:0; }
.agfmark img{ width:clamp(190px,26vw,330px); height:auto; display:inline-block; }

.intro__cta{ margin-top:var(--sp-m); display:grid; justify-items:center; gap:12px; }

.intro__cta .btn, .about__cta .btn, .store__cta .btn{
  width:min(100%, 340px);
  justify-content:center;
}
.btn{
  display:inline-flex; align-items:center; gap:16px;
  min-height:62px; padding:0 clamp(28px,4vw,44px);
  border:1.5px solid var(--pink-ink); border-radius:999px;
  background:var(--paper); color:var(--ink);
  font-weight:700; font-size:clamp(14px,1.7vw,16px); letter-spacing:.09em;
  transition:background-color .3s ease, color .3s ease, border-color .3s ease;
}
.btn__arrow{ display:inline-flex; color:var(--pink-ink); transition:transform .4s var(--ease), color .3s ease; }
.intro__note{ font-size:12px; letter-spacing:.08em; color:var(--ink-sub); }

@media (hover:hover) and (pointer:fine){
  .btn:hover{ background:var(--pink-ink); color:#fff; border-color:var(--pink-ink); }
  .btn:hover .btn__arrow{ transform:translateX(5px); color:#fff; }
  .btn--jump:hover .btn__arrow{ transform:translateY(5px); }
  .btn:hover .btn__arrow--ext{ transform:translate(3px,-3px); }
}

.sec--boys{ padding-bottom:var(--sp-xl); }
.boys{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:clamp(16px,2.6vw,34px) clamp(14px,2.2vw,28px);
}
.boys__item{ min-width:0; }

.bcard{ display:block; width:100%; text-align:center; }
.bcard__frame{
  position:relative; display:block; overflow:hidden;
  aspect-ratio:3/4;
  border-radius:var(--r-m);
  background:linear-gradient(170deg, var(--pink-mist) 0%, var(--pink-pale) 100%);
}
.bcard__frame img{
  position:absolute; left:50%; bottom:5.5%; transform:translateX(-50%);
  height:88%; width:auto; max-width:none;
  transition:transform .5s var(--ease);
}
.bcard__frame::after{
  content:""; position:absolute; inset:0; border-radius:var(--r-m);
  border:2px solid var(--pink-ink); background:rgba(191,24,96,.08);
  opacity:0; transition:opacity .3s ease;
}
.bcard__name{ display:block; padding-top:14px; }
.bcard__ja{
  display:block; font-weight:700; font-size:clamp(14px,1.8vw,17px); letter-spacing:.1em;
  text-wrap:balance;
}
.bcard__en{
  display:block; font-family:var(--ff-en); font-size:11px; font-weight:600;
  letter-spacing:.26em; color:var(--ink-sub); margin-top:3px;
}

@media (hover:hover) and (pointer:fine){
  .bcard:hover .bcard__frame img{ transform:translateX(-50%) scale(1.05); }
  .bcard:hover .bcard__frame::after{ opacity:1; }
  .bcard:hover .bcard__ja{ text-decoration:underline; text-underline-offset:4px; }
}

.sec--about{ padding-bottom:var(--sp-xl); }
.about{ text-align:center; }
.about__row{ padding:clamp(24px,3.4vw,40px) 0; border-top:1px solid var(--line); }
.about__row:first-child{ border-top:0; padding-top:0; }
.about dt{
  font-family:var(--ff-ja); font-weight:700;
  font-size:13px; letter-spacing:.24em; color:var(--pink-ink);
  margin-bottom:.7em;
}
.about__big{
  display:block; font-weight:700;
  font-size:clamp(17px,2.6vw,25px); line-height:1.75; letter-spacing:.06em;
}
.about__sub{
  display:block; margin-top:.6em;
  font-size:clamp(12px,1.5vw,14px); line-height:1.9; letter-spacing:.05em; color:var(--ink-sub);
}
.about__cta{
  margin-top:var(--sp-m);
  display:grid; justify-items:center; gap:12px;
}
.about__note{
  font-size:12px; letter-spacing:.08em; color:var(--ink-sub); text-align:center;
}

.sec--booth{ padding-bottom:var(--sp-xl); }
.booth__theme{
  border-radius:var(--r-l); overflow:hidden;
  box-shadow:0 26px 60px -38px rgba(191,24,96,.5);
}
.booth__spec{
  display:grid; gap:10px;
  max-width:640px; margin:var(--sp-m) auto 0;
}
.booth__spec li{
  display:grid; grid-template-columns:minmax(96px,132px) 1fr; align-items:center;
  gap:clamp(10px,2vw,20px);
  background:var(--paper); border:1px solid var(--line); border-radius:999px;
  padding:14px clamp(18px,3vw,28px);
}
.booth__k{
  font-size:12px; font-weight:700; letter-spacing:.16em; color:var(--pink-ink);
  min-width:0;
}
.booth__k::before{ content:"【"; }
.booth__k::after{ content:"】"; }
.booth__v{
  font-family:var(--ff-en); font-weight:700;
  font-size:clamp(15px,2.1vw,20px); letter-spacing:.08em; min-width:0;
}

.sec--comic{ padding-bottom:var(--sp-xl); }
.manga{ margin-top:0; }
.manga__ttl{ text-align:center; margin-bottom:var(--sp-m); }
.manga__ttl-en{
  display:block; font-family:var(--ff-en); font-size:11px; font-weight:700;
  letter-spacing:.36em; color:var(--pink-ink);
}
.manga__ttl-ja{
  display:block; margin-top:6px; font-weight:700;
  font-size:clamp(17px,2.4vw,23px); letter-spacing:.1em;
}

.slider{ position:relative; max-width:600px; margin-inline:auto; }
.slider__viewport{ overflow:hidden; border-radius:var(--r-m); background:var(--paper); }
.slider__track{
  display:flex;
  transition:transform .55s var(--ease);
  will-change:transform;
}
.slider__slide{ flex:0 0 100%; min-width:0; }
.slider__slide img{ width:100%; height:auto; }

.slider__nav{
  position:absolute; top:50%; transform:translateY(-50%);
  width:52px; height:52px; display:grid; place-items:center;
  color:var(--ink);
  border-radius:999px;
  transition:color .3s ease, background-color .3s ease, transform .3s ease;
}
.slider__nav--prev{ left:clamp(-72px, -6vw, -8px); }
.slider__nav--next{ right:clamp(-72px, -6vw, -8px); }
.slider__nav[disabled]{ opacity:.24; cursor:default; }

.slider__dots{ display:flex; justify-content:center; gap:10px; margin-top:22px; }
.slider__dots button{
  width:34px; height:4px; border-radius:999px; background:var(--line);
  transition:background-color .3s ease;
}
.slider__dots button[aria-selected="true"]{ background:var(--pink-ink); }

@media (hover:hover) and (pointer:fine){
  .slider__nav:not([disabled]):hover{ color:var(--pink-ink); background:var(--pink-pale); }
  .slider__dots button:hover{ background:var(--pink); }
}

.sec--goods{ padding-bottom:var(--sp-xl); }
.goods__fig, .store__fig{
  border-radius:var(--r-l); overflow:hidden;
  box-shadow:0 26px 60px -38px rgba(191,24,96,.5);
}
.goods__fig{ overflow:visible; box-shadow:none; }
.goods__fig + .goods__fig{ margin-top:var(--sp-m); }
.goods__zoom{
  display:block; border-radius:var(--r-l); overflow:hidden;
  box-shadow:0 26px 60px -38px rgba(191,24,96,.5);
  transition:box-shadow .35s ease, transform .35s var(--ease);
}
.goods__cap{
  margin-top:.9em; text-align:center;
  font-size:clamp(11.5px,1.4vw,12.5px); letter-spacing:.06em; color:var(--ink-sub);
}
@media (hover:hover) and (pointer:fine){
  .goods__zoom:hover{ transform:scale(1.01); box-shadow:0 30px 70px -36px rgba(191,24,96,.6); }
}

.notes{
  max-width:860px; margin:var(--sp-m) auto 0;
  padding:clamp(20px,3vw,30px) clamp(18px,3vw,32px);
  background:var(--pink-mist); border:1px solid var(--line); border-radius:var(--r-m);
}
.notes__ttl{
  font-size:clamp(14px,1.8vw,16px); font-weight:700; color:var(--ink);
  letter-spacing:.06em; margin-bottom:.9em;
}
.notes__list{ list-style:none; display:grid; gap:.7em; }
.notes__list li{
  font-size:clamp(12.5px,1.5vw,13.5px); line-height:1.85; color:var(--ink-sub);
  padding-left:1.15em; text-indent:-1.15em;
}

.pay__lead{
  margin-top:var(--sp-m); text-align:center; font-weight:700;
  font-size:clamp(15px,2vw,18px); line-height:1.7; color:var(--ink); letter-spacing:.04em;
}
.pay__fig{
  max-width:860px; margin:var(--sp-s) auto 0;
  background:var(--paper); padding:clamp(10px,2vw,22px);
  border-radius:var(--r-l); overflow:hidden;
  box-shadow:0 26px 60px -38px rgba(191,24,96,.5);
}
.pay__fig img{ width:100%; height:auto; }

.store__lead{
  margin-top:var(--sp-l);
  text-align:center; font-weight:700;
  font-size:clamp(17px,2.6vw,24px); line-height:1.7; color:var(--pink-ink);
}
.store__date{
  text-align:center; margin-top:.5em;
  font-size:clamp(14px,1.9vw,17px); line-height:1.8; color:var(--ink);
}
.store__fig{ margin-top:var(--sp-m); }
.store__cta{ display:flex; justify-content:center; margin-top:var(--sp-m); }

.sec--sns{ padding-bottom:var(--sp-xl); }
.sns{ display:grid; justify-items:center; gap:16px; }
.sns__name{
  font-family:var(--ff-en); font-weight:700;
  font-size:clamp(19px,2.8vw,26px); letter-spacing:.14em;
}
.sns__x{
  display:grid; place-items:center;
  width:74px; height:74px; border-radius:var(--r-m);
  background:var(--ink); color:#fff;
  transition:background-color .3s ease, transform .4s var(--ease);
}
.sns__handle{
  font-family:var(--ff-en); font-weight:600;
  font-size:clamp(13px,1.6vw,16px); letter-spacing:.12em;
  color:var(--pink-ink); margin-top:.35em;
}
.sns__cap{ font-family:var(--ff-en); font-size:12px; letter-spacing:.2em; color:var(--ink-sub); margin-top:.2em; }
@media (hover:hover) and (pointer:fine){
  .sns__x:hover{ background:var(--pink-ink); transform:translateY(-4px); }
}

.sec--works{ padding-bottom:var(--sp-l); }
.works{
  display:grid; grid-template-columns:repeat(2, minmax(0,1fr));
  gap:clamp(20px,3vw,36px);
}
.works__item{ min-width:0; }
.wcard{
  display:flex; flex-direction:column; height:100%;
  background:var(--paper); border-radius:var(--r-l); overflow:hidden;
  border:1px solid var(--line);
  transition:transform .4s var(--ease), box-shadow .4s var(--ease), border-color .3s ease;
}
.wcard__thumb{ display:block; position:relative; overflow:hidden; aspect-ratio:16/9; }
.wcard__thumb img{
  width:100%; height:100%; object-fit:cover;
  transition:transform .55s var(--ease);
}
.wcard__thumb::after{
  content:""; position:absolute; inset:0;
  background:rgba(191,24,96,.14); opacity:0; transition:opacity .3s ease;
}
.wcard__body{
  display:flex; flex-direction:column; gap:12px;
  padding:clamp(20px,2.6vw,30px) clamp(18px,2.4vw,30px) clamp(22px,2.8vw,32px);
  flex:1 1 auto; min-width:0;
}
.wcard__ttl{
  font-weight:700; font-size:clamp(16px,2vw,20px); letter-spacing:.09em;
  text-align:center;
}
.wcard__txt{
  font-size:13px; line-height:2.05; letter-spacing:.04em; color:var(--ink-sub);
  flex:1 1 auto;
}
.wcard__more{
  display:inline-flex; align-items:center; gap:8px; align-self:flex-start;
  font-family:var(--ff-ja); font-size:12px; font-weight:700;
  letter-spacing:.12em; color:var(--pink-ink);
}
.wcard__arrow{ display:inline-flex; transition:transform .4s var(--ease); }

@media (hover:hover) and (pointer:fine){
  .wcard:hover{ transform:translateY(-6px); box-shadow:0 30px 54px -38px rgba(191,24,96,.55); border-color:var(--pink); }
  .wcard:hover .wcard__thumb img{ transform:scale(1.06); }
  .wcard:hover .wcard__thumb::after{ opacity:1; }
  .wcard:hover .wcard__arrow{ transform:translateX(5px); }
}

.site-foot{
  padding:var(--sp-l) max(var(--rail),22px) clamp(38px,6vw,64px);
  display:grid; justify-items:center; gap:22px;
  border-top:1px solid var(--line);
  margin-top:var(--sp-l);
}
.site-foot__logo img{ width:clamp(128px,16vw,178px); opacity:.9; }
.site-foot__c{
  font-family:var(--ff-en); font-size:12px; font-weight:600;
  letter-spacing:.2em; color:var(--ink-sub);
}
.site-foot__link a{
  font-size:13px; letter-spacing:.06em; color:var(--ink-sub);
  text-decoration:underline; text-underline-offset:4px;
  transition:color .3s ease;
}
@media (hover:hover){ .site-foot__link a:hover{ color:var(--pink-ink); } }

.modal{
  width:min(940px, 92vw);
  padding:0; border:0; background:transparent;
  max-width:100vw; max-height:100vh;
  color:var(--ink);
}
.modal::backdrop{ background:rgba(43,33,38,.5); }
.modal__panel{
  position:relative;
  display:flex; flex-direction:column;
  max-height:88vh;
  overflow:hidden;
  background:var(--paper);
  border-radius:var(--r-l);
  box-shadow:0 40px 90px -40px rgba(43,33,38,.55);
}
.modal__close{
  position:absolute; top:12px; right:12px; z-index:3;
  width:42px; height:42px; display:grid; place-items:center;
  border-radius:999px; background:var(--pink-pale); color:var(--pink-ink);
  transition:background-color .3s ease;
}
.modal__scroll{
  flex:1 1 auto; min-height:0;
  overflow-y:auto; overscroll-behavior:contain;
  display:grid; grid-template-columns:minmax(0,0.85fr) minmax(0,1fr);
  gap:clamp(16px,3vw,34px);
  padding:clamp(26px,3.4vw,42px);
}
.modal__fig{
  display:grid; place-items:end center;
  background:linear-gradient(170deg, var(--pink-mist), var(--pink-pale));
  border-radius:var(--r-m);
  padding:16px 10px clamp(14px,2.4vw,28px);
  min-width:0;
}
.modal__fig img{ max-height:min(58vh, 480px); width:auto; max-width:100%; }
.modal__info{ min-width:0; align-self:center; }
.modal__name{
  font-size:clamp(24px,3.4vw,36px); font-weight:900; letter-spacing:.08em;
  line-height:1.4;
}
.modal__en{
  font-family:var(--ff-en); font-size:12px; font-weight:600;
  letter-spacing:.28em; color:var(--ink-sub); margin-top:2px;
}
.modal__meta{
  margin-top:clamp(18px,2.4vw,26px); padding-top:clamp(16px,2.2vw,22px);
  border-top:1px solid var(--line);
  display:grid; gap:6px; list-style:none;
}
.modal__meta-name{
  font-size:clamp(15px,1.8vw,17px); font-weight:700; line-height:1.55;
  letter-spacing:.06em; color:var(--ink); min-width:0;
}
.modal__meta-ip{
  font-size:12px; font-weight:700; line-height:1.6;
  letter-spacing:.14em; color:var(--pink-ink); min-width:0;
}

@media (hover:hover) and (pointer:fine){
  .modal__close:hover{ background:var(--pink); }
}

html.reveal-on [data-reveal]{
  opacity:0;
  transform:translateY(22px);
  transition:opacity .8s var(--ease), transform .8s var(--ease);
}
html.reveal-on [data-reveal].is-in{ opacity:1; transform:none; }

@media (min-width:861px) and (max-width:1180px){
  .hero__logo img{ width:clamp(120px, 14.5vw, 190px); }
  .hero__meta{ font-size:clamp(13px,1.7vw,19px); }
}

@media (max-width:1024px){
  .slider__nav--prev{ left:-4px; }
  .slider__nav--next{ right:-4px; }
  .slider__nav{ background:rgba(255,255,255,.86); }
}

@media (max-width:900px){
  .rail--l,.rail--r{ display:none; }
  .rail--scroll{ right:12px; bottom:12px; }
  :root{ --rail:22px; }
}

@media (max-width:860px){
  .hero__logo{
    position:absolute; z-index:5;
    left:0; right:0; margin-inline:auto; top:5.6%; width:21%;
  }
  .hero__logo img{ width:100%; }
}

@media (max-width:768px){
  body{ font-size:15px; }
  .works{ grid-template-columns:minmax(0,1fr); }
  .boys{ grid-template-columns:repeat(2, minmax(0,1fr)); }
  .hero__stage{ min-height:auto; }
  .modal__scroll{ grid-template-columns:minmax(0,1fr); }
  .modal__fig img{ max-height:min(42vh, 340px); }
  .modal__info{ text-align:center; }
  .modal__meta{ justify-items:center; }
}

@media (max-width:560px){
  .booth__spec li{ grid-template-columns:minmax(0,1fr); gap:4px; text-align:center; border-radius:var(--r-m); }
  .slider__nav{ width:44px; height:44px; }
  .rail--scroll{ display:none; }
}


@keyframes heroBgIn{
  0%{ opacity:0; transform:translateY(12px) scale(1.02); }
  100%{ opacity:1; transform:none; }
}
@keyframes heroCastIn{
  0%{   opacity:0; transform:translate(var(--dx,0), 72px); filter:brightness(180%) blur(14px);
        animation-timing-function:cubic-bezier(.075,.82,.165,1); }
  76%{  opacity:1; transform:translate(0,0);     filter:brightness(135%) blur(2.5px);
        animation-timing-function:linear; }
  100%{ opacity:1; transform:none;             filter:none; }
}
@keyframes heroLogoIn{
  0%{ opacity:0; transform:translateY(-16px); }
  100%{ opacity:1; transform:none; }
}
:root.hero-armed .hero__logo,
:root.hero-armed .hero__kv-shadow,
:root.hero-armed .kvc,
:root.hero-armed .hero__logo{ opacity:0; }

:root.hero-go 
.hero__kv-bg{ animation:heroBgIn 800ms cubic-bezier(.075,.82,.165,1) both; }

.kvc--hikaru{ --dx:  3%; }
.kvc--kagechiyo{ --dx: -3%; }
.kvc--dry{ --dx: -7%; }
.kvc--masa{ --dx:  7%; }
.kvc--sidi{ --dx:-11%; }
.kvc--heikin{ --dx: 11%; }
@media (max-width:860px){
  .kvc--hikaru{ --dx:1.5%; } .kvc--kagechiyo{ --dx:-1.5%; }
  .kvc--dry{ --dx:-4%; }     .kvc--masa{ --dx:4%; }
  .kvc--sidi{ --dx:-3%; }    .kvc--heikin{ --dx:3%; }
}

.kvc.is-landed, .hero__kv-shadow.is-landed, .hero__logo.is-landed{
  animation:none !important;
  opacity:1 !important;
  transform:none !important;
  filter:none !important;
  will-change:auto;
}


@media (max-width:860px){
  @keyframes heroCastIn{
    0%{   opacity:0; transform:translate(var(--dx,0), 46px); filter:brightness(150%);
          animation-timing-function:cubic-bezier(.075,.82,.165,1); }
    76%{  opacity:1; transform:translate(0,0);               filter:brightness(118%);
          animation-timing-function:linear; }
    100%{ opacity:1; transform:none;                         filter:none; }
  }
}

:root.hero-go .hero__kv-shadow,
:root.hero-go .kvc{ animation:heroCastIn 1300ms both 460ms; }

:root.hero-go .kvc--hikaru{ animation-delay:460ms; }
:root.hero-go .kvc--kagechiyo{ animation-delay:460ms; }
:root.hero-go .kvc--dry{ animation-delay:580ms; }
:root.hero-go .kvc--masa{ animation-delay:580ms; }
:root.hero-go .kvc--heikin{ animation-delay:700ms; }
:root.hero-go .kvc--sidi{ animation-delay:700ms; }
@media (max-width:860px){
  :root.hero-go .kvc--hikaru{ animation-delay:460ms; }
  :root.hero-go .kvc--kagechiyo{ animation-delay:460ms; }
  :root.hero-go .kvc--heikin{ animation-delay:580ms; }
  :root.hero-go .kvc--sidi{ animation-delay:580ms; }
  :root.hero-go .kvc--dry{ animation-delay:700ms; }
  :root.hero-go .kvc--masa{ animation-delay:700ms; }
}
:root.hero-go .hero__logo{
  animation:heroLogoIn 700ms cubic-bezier(.075,.82,.165,1) both 1560ms;
}

@media (max-width:860px){
  }

@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{
    animation-duration:.001ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.001ms !important;
  }
  html.reveal-on [data-reveal]{ opacity:1; transform:none; }
}

@media print{
  *{ -webkit-print-color-adjust:exact !important; print-color-adjust:exact !important; }
  @page{ size:A4; margin:12mm; }
  html.reveal-on [data-reveal]{ opacity:1 !important; transform:none !important; }
  .rail, .skip, .modal, .slider__nav, .slider__dots{ display:none !important; }
  body{ background:#fff !important; overflow:visible !important; }
  .hero__stage{ min-height:auto !important; overflow:visible !important; page-break-inside:avoid; }
  .boys{ grid-template-columns:repeat(3, minmax(0,1fr)) !important; }
  .works{ grid-template-columns:repeat(2, minmax(0,1fr)) !important; }
  .slider__viewport{ overflow:visible !important; }
  .slider__track{ display:block !important; transform:none !important; }
  .slider__slide{ page-break-inside:avoid; margin-bottom:8mm; }
  .sec, .intro, .site-foot{ page-break-inside:auto; }
  .wcard, .bcard, .booth__theme, .about__row{ break-inside:avoid; page-break-inside:avoid; }
  .modal__fig img{ max-height:220px !important; }
}
