:root{
  --paper:#f3f5f7;
  --paper2:#e8edf2;
  --ink:#17212a;
  --muted:#71808d;
  --blue:#9aaebb;
  --dark:#111820;
  --line:rgba(23,33,42,.18);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:"Noto Serif JP",serif;font-weight:300;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
::selection{background:#bccbd7;color:#111}

#snow{position:fixed;inset:0;width:100%;height:100%;z-index:20;pointer-events:none;opacity:.55;mix-blend-mode:screen}
.grain{position:fixed;inset:-40%;z-index:19;pointer-events:none;opacity:.10;animation:grain .28s steps(2) infinite;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.78' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.65'/%3E%3C/svg%3E")}
@keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(3%,-2%)}50%{transform:translate(-2%,4%)}75%{transform:translate(4%,3%)}100%{transform:translate(-3%,-4%)}}

.site-header{position:fixed;top:0;left:0;width:100%;z-index:30;display:flex;justify-content:space-between;align-items:center;padding:22px 28px;font-family:"DM Mono",monospace;font-size:10px;letter-spacing:.14em;mix-blend-mode:difference;color:#fff}
.site-header nav{display:flex;gap:24px;align-items:center}
.site-header a{transition:opacity .25s}.site-header a:hover{opacity:.5}
.ticket-nav{border-bottom:1px solid currentColor;padding-bottom:3px}

.hero{position:relative;height:100svh;min-height:680px;overflow:hidden;background:#dce4ea}
.hero-bg,.closing-bg{position:absolute;inset:-3%;background:url('./assets/flyer-bg.png') center 60% / cover no-repeat;filter:saturate(.72) contrast(.94);transform:scale(1.04);animation:drift 18s ease-in-out infinite alternate}
.hero-bg:after,.closing-bg:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(239,244,248,.10),rgba(216,227,235,.12) 55%,rgba(234,239,244,.45))}
.hero-wash{position:absolute;inset:0;background:radial-gradient(circle at 52% 38%,rgba(255,255,255,.03),rgba(238,243,247,.52) 82%)}
@keyframes drift{from{transform:scale(1.04) translate3d(-.4%,0,0)}to{transform:scale(1.08) translate3d(.8%,-.8%,0)}}
.hero-copy{position:relative;z-index:2;height:100%;display:grid;grid-template-columns:1fr minmax(110px,16vw) 1fr;align-items:center;padding:8vh 7vw}
.kicker{align-self:start;margin-top:9vh;font-family:"DM Mono",monospace;font-size:11px;letter-spacing:.18em;line-height:1.8;text-transform:uppercase}
.hero-logo{justify-self:center;width:min(15vw,180px);height:min(68vh,720px);object-fit:contain;mix-blend-mode:difference}
.hero-date{justify-self:end;align-self:end;margin-bottom:10vh;display:flex;gap:18px;font-family:"DM Mono",monospace;font-size:clamp(13px,1.1vw,17px);letter-spacing:.22em;writing-mode:vertical-rl}
.scroll{position:absolute;z-index:3;left:50%;bottom:24px;transform:translateX(-50%);font-family:"DM Mono",monospace;font-size:9px;letter-spacing:.18em;display:flex;gap:12px;align-items:center}.scroll span{animation:bob 1.7s ease-in-out infinite}@keyframes bob{50%{transform:translateY(5px)}}

.section{position:relative;min-height:100svh;padding:110px clamp(24px,6vw,96px);overflow:hidden}
.section-index{position:absolute;top:40px;left:clamp(24px,6vw,96px);font:300 10px/1 "DM Mono",monospace;letter-spacing:.18em;color:var(--muted)}
.section-index.light{color:rgba(255,255,255,.58)}
.intro{display:flex;align-items:center;background:linear-gradient(180deg,#f2f5f7,#eef2f5)}
.intro:before{content:"";position:absolute;width:55vw;height:55vw;right:-20vw;top:10vh;border-radius:50%;background:radial-gradient(circle,rgba(191,205,216,.24),transparent 66%);filter:blur(20px)}
.intro-copy{width:min(900px,82vw);margin-left:9vw}
.jp-large{font-size:clamp(34px,6.2vw,92px);line-height:1.42;letter-spacing:.06em;margin:0 0 60px}
.intro-body{font-size:clamp(15px,1.6vw,23px);line-height:2.1;letter-spacing:.08em}.intro-small{margin-top:44px;color:#81909b;font-size:12px;letter-spacing:.08em}

.live{background:var(--dark);color:#edf1f3}
.live-grid{min-height:calc(100svh - 220px);display:grid;grid-template-columns:1.05fr .72fr;gap:8vw;align-items:center;max-width:1220px;margin:auto}
.eyebrow{font:300 10px/1.7 "DM Mono",monospace;letter-spacing:.22em;color:#92a3af}.live h2{font-family:"DM Mono",monospace;font-size:clamp(40px,6vw,82px);font-weight:300;letter-spacing:.01em;margin:24px 0 20px}.live h2 span{font-size:.18em;vertical-align:top;letter-spacing:.24em;margin-left:8px}.times{display:flex;gap:28px;font:300 clamp(13px,1.4vw,17px)/1.5 "DM Mono",monospace;letter-spacing:.12em}.venue{font-size:clamp(23px,2.8vw,40px);letter-spacing:.11em;margin:54px 0 14px}.address,.price{font:300 11px/1.9 "DM Mono",monospace;letter-spacing:.10em;color:#aab6bd}.price{margin-top:24px}.ticket{margin-top:44px;display:flex;justify-content:space-between;align-items:center;max-width:500px;border-top:1px solid rgba(255,255,255,.5);border-bottom:1px solid rgba(255,255,255,.5);padding:20px 0;font:300 12px/1 "DM Mono",monospace;letter-spacing:.18em;transition:.3s}.ticket:hover{padding-left:14px;padding-right:14px;background:#edf1f3;color:#151c22}.flyer-card{margin:0;transform:rotate(.4deg);box-shadow:0 35px 100px rgba(0,0,0,.24)}.flyer-card img{width:100%;max-height:72vh;object-fit:contain}

.ep{display:flex;align-items:center;background:#f5f7f8}.ep-grid{width:min(1100px,100%);margin:auto;display:grid;grid-template-columns:minmax(280px,520px) 1fr;gap:clamp(50px,9vw,130px);align-items:center}.ep-art{aspect-ratio:1;background:#090b0d;box-shadow:0 30px 90px rgba(29,39,47,.15);position:relative;overflow:hidden}.ep-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 28% 22%,rgba(255,255,255,.13),transparent 20%),linear-gradient(120deg,transparent 35%,rgba(255,255,255,.05),transparent 62%);filter:blur(2px)}.coming{position:absolute;inset:24px;border:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;justify-content:space-between;padding:22px;color:#fff;font-family:"DM Mono",monospace}.coming span{font-size:9px;letter-spacing:.2em}.coming strong{font-size:clamp(34px,5vw,70px);font-weight:300;line-height:.95;letter-spacing:.04em}.ep-copy h2{font-size:clamp(30px,4vw,56px);font-weight:400;letter-spacing:.08em;margin:22px 0 28px}.ep-copy>p:not(.eyebrow){font:300 11px/2 "DM Mono",monospace;letter-spacing:.1em;color:#6f7e89}.thin-rule{width:100%;height:1px;background:var(--line);margin:34px 0}.note{font-family:"Noto Serif JP",serif!important}

.archive{background:#172029;color:#eef2f4;min-height:auto}.archive-inner{max-width:980px;margin:50px auto 0}.archive h2{font-size:clamp(32px,5vw,64px);font-weight:300;letter-spacing:.04em;margin:18px 0 14px}.archive-note{font-size:12px;color:#9caab3;letter-spacing:.1em;margin-bottom:34px}.video-wrap{position:relative;aspect-ratio:16/9;background:#0b0e10;overflow:hidden;box-shadow:0 20px 70px rgba(0,0,0,.24)}.video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.65) saturate(.7) contrast(.95);opacity:.88;transition:.4s}.video-wrap:hover iframe{filter:none;opacity:1}.text-link{display:inline-block;margin-top:24px;font:300 10px/1 "DM Mono",monospace;letter-spacing:.18em;border-bottom:1px solid rgba(255,255,255,.45);padding-bottom:5px}

.closing{height:100svh;display:grid;place-items:center;padding:0}.closing-bg{inset:-5%;filter:saturate(.45) brightness(1.22) contrast(.84);opacity:.55}.closing:after{content:"";position:absolute;inset:0;background:rgba(246,248,250,.56)}.closing-copy{position:relative;z-index:2;text-align:center}.closing-copy img{height:min(52vh,600px);margin:auto;filter:invert(1);opacity:.72;mix-blend-mode:multiply}.closing-copy p{font:300 10px/1.9 "DM Mono",monospace;letter-spacing:.18em;margin:28px 0}.closing-copy a{font:300 10px/1 "DM Mono",monospace;letter-spacing:.2em;border-bottom:1px solid;padding-bottom:5px}
footer{display:flex;justify-content:space-between;padding:28px clamp(24px,6vw,96px);background:#f5f7f8;color:#778692;font:300 9px/1 "DM Mono",monospace;letter-spacing:.14em}

.reveal{opacity:0;transform:translateY(28px);transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}

@media(max-width:780px){
  .site-header{padding:18px 16px}.site-header nav a:not(.ticket-nav){display:none}.site-header nav{gap:0}.hero{min-height:620px}.hero-copy{grid-template-columns:1fr 100px 1fr;padding:8vh 20px}.kicker{font-size:8px;margin-top:11vh}.hero-logo{width:96px;height:58vh}.hero-date{gap:10px;font-size:10px;margin-bottom:12vh}.section{padding:95px 22px}.section-index{top:30px;left:22px}.intro-copy{margin-left:0;width:100%}.jp-large{font-size:40px;margin-bottom:45px}.live-grid{grid-template-columns:1fr;gap:58px;min-height:auto;margin-top:45px}.times{gap:16px;flex-wrap:wrap}.venue{margin-top:42px}.flyer-card{width:78%;justify-self:end}.ep-grid{grid-template-columns:1fr;gap:50px}.ep-art{width:86%}.archive-inner{margin-top:38px}.closing-copy img{height:46vh}footer{padding:22px;gap:20px;flex-wrap:wrap}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.grain,.hero-bg,.closing-bg,.scroll span{animation:none}.reveal{opacity:1;transform:none;transition:none}}

/* 2026.09.27 update */
.ep-lead{font-family:"Noto Serif JP",serif!important;font-size:14px!important;line-height:2!important;color:var(--ink)!important;letter-spacing:.08em!important}
.tracklist{list-style:none;padding:0;margin:34px 0 0;border-top:1px solid var(--line)}
.tracklist li{display:flex;gap:22px;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px;letter-spacing:.06em}
.tracklist li span{font:300 9px/1.8 "DM Mono",monospace;color:var(--muted)}
.xfd-soon{margin-top:28px;padding:18px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;font-family:"DM Mono",monospace;letter-spacing:.14em}
.xfd-soon span{font-size:9px;color:var(--muted)}.xfd-soon strong{font-size:10px;font-weight:300}
.news{background:#131a21;color:#edf1f3;min-height:auto}
.news-inner{max-width:1120px;margin:70px auto 0;display:grid;grid-template-columns:.75fr 1.25fr;gap:9vw}
.news-heading h2{font-size:clamp(30px,4vw,58px);font-weight:300;line-height:1.55;letter-spacing:.06em;margin:22px 0}
.news-list{border-top:1px solid rgba(255,255,255,.25)}
.news-list article{display:grid;grid-template-columns:120px 1fr;gap:28px;padding:27px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.news-list time{font:300 9px/1.8 "DM Mono",monospace;letter-spacing:.12em;color:#8999a5}
.news-list h3{font-size:15px;font-weight:400;letter-spacing:.07em;margin:0 0 10px}.news-list p{font-size:11px;line-height:2;color:#aab6bd;letter-spacing:.05em;margin:0}
.goods{display:grid;place-items:center;background:linear-gradient(180deg,#f4f6f8,#e9eef2)}
.goods-inner{width:min(880px,100%)}.goods-inner h2{font:300 clamp(58px,10vw,130px)/1 "DM Mono",monospace;letter-spacing:.02em;margin:24px 0 54px}
.goods-coming{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:30px 0;display:grid;grid-template-columns:1fr auto;gap:20px;align-items:end}
.goods-coming span{font:300 9px/1.8 "DM Mono",monospace;letter-spacing:.16em;color:var(--muted)}.goods-coming strong{font:300 clamp(18px,3vw,34px)/1 "DM Mono",monospace;letter-spacing:.08em}.goods-coming p{grid-column:1/-1;font-size:11px;color:var(--muted);letter-spacing:.06em;margin:8px 0 0}
footer{gap:24px}
@media(max-width:780px){.news-inner{grid-template-columns:1fr;gap:34px;margin-top:45px}.news-list article{grid-template-columns:1fr;gap:8px}.goods-coming{grid-template-columns:1fr}.goods-coming p{grid-column:auto}.xfd-soon{flex-direction:column}.intro-small{line-height:2}}

/* v3: live day / cassette focus */
.dayof{background:#1b232b;color:#eef2f4;min-height:auto}
.dayof-inner{max-width:1120px;margin:70px auto 0;display:grid;grid-template-columns:.75fr 1.25fr;gap:9vw}
.dayof-heading h2{font-size:clamp(30px,4vw,58px);font-weight:300;line-height:1.55;letter-spacing:.06em;margin:22px 0}
.dayof-list{border-top:1px solid rgba(255,255,255,.25)}
.dayof-list article{display:grid;grid-template-columns:72px 1fr;gap:24px;padding:28px 0;border-bottom:1px solid rgba(255,255,255,.18)}
.dayof-list article>span{font:300 9px/1.8 "DM Mono",monospace;letter-spacing:.14em;color:#8999a5}
.dayof-list h3{font:300 20px/1.3 "DM Mono",monospace;letter-spacing:.08em;margin:0 0 10px}
.dayof-list p{font-size:11px;line-height:2;color:#aab6bd;letter-spacing:.05em;margin:0}
.faq-link{grid-column:2;display:grid;gap:10px;margin-top:18px;padding:26px 0;border-top:1px solid rgba(255,255,255,.35);border-bottom:1px solid rgba(255,255,255,.35);transition:.3s}
.faq-link span{font:300 9px/1.6 "DM Mono",monospace;letter-spacing:.18em;color:#91a1ac}
.faq-link strong{font-size:17px;font-weight:300;letter-spacing:.06em}
.faq-link small{font-size:10px;color:#91a1ac;letter-spacing:.06em}
.faq-link:hover{padding-left:14px;padding-right:14px;background:#eef2f4;color:#172029}.faq-link:hover span,.faq-link:hover small{color:#596774}
.goods{display:block;min-height:auto;padding-top:120px;padding-bottom:140px}
.goods-inner{width:min(1120px,100%);margin:auto}.goods-inner h2{font:300 clamp(56px,10vw,132px)/.9 "DM Mono",monospace;letter-spacing:.01em;margin:24px 0 56px}
.cassette-visual{height:min(58vw,620px);min-height:380px;background:#11161b;position:relative;overflow:hidden;box-shadow:0 30px 90px rgba(29,39,47,.12);margin-bottom:52px}
.cassette-visual:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 30% 25%,rgba(255,255,255,.12),transparent 22%),linear-gradient(135deg,transparent 35%,rgba(255,255,255,.04),transparent 66%)}
.cassette-visual div{position:absolute;inset:24px;border:1px solid rgba(255,255,255,.18);display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:#fff;font-family:"DM Mono",monospace}
.cassette-visual span{font-size:9px;letter-spacing:.2em}.cassette-visual strong{font-size:clamp(34px,7vw,88px);font-weight:300;letter-spacing:.04em}
.cassette-lead{font-size:clamp(18px,2.2vw,30px);line-height:1.9;letter-spacing:.08em;margin:0 0 54px}
.cassette-editions{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.cassette-editions article{position:relative;padding:34px 34px 40px 0;min-height:330px}.cassette-editions article+article{border-left:1px solid var(--line);padding-left:34px;padding-right:0}
.cassette-editions article>span{font:300 9px/1.8 "DM Mono",monospace;letter-spacing:.16em;color:var(--muted)}
.cassette-editions h3{font-size:clamp(24px,3vw,40px);font-weight:300;letter-spacing:.07em;margin:24px 0 20px}.cassette-editions p{font-size:12px;line-height:2.1;letter-spacing:.05em;color:#687783}
.limited{display:inline-block;margin:22px 0 12px;padding:8px 10px;background:#172029;color:#fff;font:300 10px/1 "DM Mono",monospace;letter-spacing:.18em}
.cassette-editions .reservation{color:#35424c}.goods-note{margin-top:28px;font:300 10px/1.9 "DM Mono",monospace;letter-spacing:.1em;color:var(--muted)}
@media(max-width:780px){.dayof-inner{grid-template-columns:1fr;gap:34px;margin-top:45px}.dayof-list article{grid-template-columns:52px 1fr}.faq-link{grid-column:1}.cassette-visual{min-height:300px}.cassette-editions{grid-template-columns:1fr}.cassette-editions article{padding:28px 0!important;min-height:auto}.cassette-editions article+article{border-left:0;border-top:1px solid var(--line)}.cassette-lead br{display:none}}

/* v4: narrative order / book feature */
.book-feature{display:grid;grid-template-columns:.8fr 1.2fr;gap:7vw;align-items:center;margin:20px 0 76px;padding:60px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.book-preview{appearance:none;border:0;background:transparent;padding:20px;cursor:pointer;position:relative;min-height:310px;font:300 9px/1.6 "DM Mono",monospace;letter-spacing:.15em;color:var(--muted)}
.book-cover{position:absolute;left:50%;top:42%;width:min(300px,78%);aspect-ratio:1.42;transform:translate(-50%,-50%) rotate(-3deg);background:rgba(244,246,247,.72);border:1px solid rgba(23,33,42,.18);box-shadow:0 24px 55px rgba(23,33,42,.16);backdrop-filter:blur(2px);transition:.55s cubic-bezier(.2,.7,.2,1)}
.book-cover:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,rgba(255,255,255,.68),rgba(255,255,255,.12) 42%,rgba(210,217,221,.28));opacity:.7}
.book-cover i{position:absolute;right:23%;top:17%;z-index:2;writing-mode:vertical-rl;font-family:"Noto Serif JP",serif;font-size:22px;font-style:normal;letter-spacing:.16em;color:#25313a}
.book-shadow{position:absolute;left:50%;top:58%;width:62%;height:12%;transform:translateX(-50%);background:rgba(23,33,42,.12);filter:blur(18px);border-radius:50%}
.book-preview em{position:absolute;bottom:0;left:0;right:0;font-style:normal}.book-preview:hover .book-cover{transform:translate(-50%,-53%) rotate(-1deg) scale(1.03)}
.mono-label{font:300 9px/1.8 "DM Mono",monospace;letter-spacing:.18em;color:var(--muted)}.book-copy h3{font-size:clamp(26px,3.6vw,50px);font-weight:300;line-height:1.55;letter-spacing:.06em;margin:20px 0}.book-copy p{font-size:12px;line-height:2.2;letter-spacing:.05em;color:#65747f}.book-copy .book-spec{margin-top:28px;font:300 9px/2 "DM Mono",monospace;letter-spacing:.12em;color:#8a969f}
.book-modal{position:fixed;inset:0;z-index:100;background:rgba(239,242,244,.94);backdrop-filter:blur(12px);display:grid;place-items:center;opacity:0;visibility:hidden;transition:.4s}.book-modal.is-open{opacity:1;visibility:visible}.book-close{position:absolute;right:28px;top:25px;border:0;background:none;cursor:pointer;font:300 10px/1 "DM Mono",monospace;letter-spacing:.16em;color:var(--ink)}
.open-book{width:min(900px,88vw);display:grid;grid-template-columns:1fr 1fr;filter:drop-shadow(0 30px 50px rgba(20,30,38,.18));transform:perspective(1200px) rotateX(5deg) scale(.94);transition:.55s}.book-modal.is-open .open-book{transform:perspective(1200px) rotateX(0) scale(1)}.book-page{min-height:min(60vw,560px);background:#f7f6f1;padding:clamp(32px,5vw,70px);font-size:clamp(12px,1.2vw,15px);line-height:2.35;letter-spacing:.08em;position:relative}.page-left{border-radius:4px 0 0 4px;box-shadow:inset -20px 0 35px -35px #000}.page-right{border-radius:0 4px 4px 0;box-shadow:inset 20px 0 35px -35px #000}.book-page>span{display:block;margin-bottom:55px}.preview-note{position:absolute;bottom:30px;left:clamp(32px,5vw,70px);font:300 8px/1 "DM Mono",monospace!important;letter-spacing:.15em!important;color:#9aa2a7!important}
.faq{min-height:auto;background:#f4f6f7}.faq-inner{max-width:900px;margin:80px auto 20px}.faq-inner h2{font-size:clamp(34px,5vw,68px);font-weight:300;line-height:1.5;letter-spacing:.06em;margin:20px 0 30px}.faq-inner>p{font-size:12px;line-height:2.1;color:#71808d}.faq .faq-link{display:grid;grid-column:auto;color:var(--ink);border-color:var(--line);margin-top:42px}.faq .faq-link:hover{background:#172029;color:#fff}
@media(max-width:780px){.book-feature{grid-template-columns:1fr;gap:28px;padding:35px 0}.book-preview{min-height:270px}.open-book{width:94vw}.book-page{min-height:62vh;padding:28px 22px;font-size:11px}.book-page>span{margin-bottom:32px}.preview-note{left:22px;bottom:20px}.faq-inner{margin-top:45px}}

/* v5: tactile A6 landscape booklet preview */
.book-preview{min-height:330px}.book-cover{width:min(330px,82%);aspect-ratio:1.414/1;background:rgba(250,250,248,.38);border:1px solid rgba(255,255,255,.65);box-shadow:0 28px 65px rgba(23,33,42,.14);backdrop-filter:blur(3px)}
.book-cover:after{content:"";position:absolute;left:8px;top:8%;bottom:8%;width:4px;border-left:1px dashed rgba(40,50,58,.18);border-right:1px dashed rgba(40,50,58,.1)}
.book-cover i{right:18%;top:13%;font-size:11px;letter-spacing:.25em;color:rgba(255,255,255,.95);text-shadow:0 1px 5px rgba(40,50,58,.22)}
.book-stage{width:min(1000px,94vw);display:grid;place-items:center;gap:20px}.preview-book{position:relative;width:min(760px,84vw);aspect-ratio:1.414/1;perspective:1800px;filter:drop-shadow(0 35px 45px rgba(30,40,46,.18))}.preview-sheet{position:absolute;inset:0;border:0;padding:0;cursor:pointer;transform-origin:left center;transition:transform 1s cubic-bezier(.22,.7,.18,1),opacity .6s;background:#f8f7f2;overflow:hidden}.translucent-cover{z-index:3;background:linear-gradient(115deg,rgba(255,255,255,.58),rgba(240,242,239,.38));backdrop-filter:blur(1.5px);border:1px solid rgba(255,255,255,.7)}
.translucent-cover:before{content:"";position:absolute;inset:0;background:url('./assets/book-artwork-preview.png') center/cover no-repeat;opacity:.07;filter:grayscale(1)}.cover-title{position:absolute;right:17%;top:12%;writing-mode:vertical-rl;font-family:"Noto Serif JP",serif;font-size:clamp(9px,1vw,12px);font-weight:400;letter-spacing:.32em;color:#fff;text-shadow:0 1px 6px rgba(30,40,46,.24)}.cover-hint{position:absolute;left:7%;bottom:7%;font:300 7px/1 "DM Mono",monospace;letter-spacing:.18em;color:rgba(50,60,66,.4)}
.text-sheet{z-index:2;background:#f7f6f1}.vertical-story{position:absolute;inset:9% 9% 10% 10%;writing-mode:vertical-rl;text-orientation:mixed;text-align:left;font-family:"Noto Serif JP",serif;color:#30363a;font-size:clamp(10px,1.3vw,14px);line-height:2.15;letter-spacing:.12em}.vertical-story span{margin-left:3em}.vertical-story p{margin:0}
.artwork-sheet{z-index:1;background:#f7f6f1}.artwork-sheet img{width:100%;height:100%;object-fit:cover;opacity:0;filter:saturate(.82) contrast(.92);transition:opacity 2.2s ease}.preview-book.show-text .translucent-cover{transform:rotateY(-165deg);opacity:.42}.preview-book.show-art .translucent-cover{transform:rotateY(-175deg);opacity:.18}.preview-book.show-art .text-sheet{transform:rotateY(-165deg);opacity:.3}.preview-book.show-art .artwork-sheet img{opacity:.9}.book-binding{position:absolute;left:-7px;top:7%;bottom:7%;width:12px;z-index:5;background:repeating-linear-gradient(to bottom,transparent 0 7px,rgba(40,48,53,.38) 7px 9px,transparent 9px 14px);opacity:.55}.book-stage>.preview-note{position:static!important;font:300 8px/1 "DM Mono",monospace!important;letter-spacing:.15em!important;color:#89939a!important;margin:0!important}
@media(max-width:780px){.book-preview{min-height:245px}.preview-book{width:92vw}.vertical-story{font-size:9px;line-height:1.9}.book-stage{width:98vw}.cover-title{font-size:8px}}

/* v6: cassette artwork preview */
.cassette-visual-photo{background:#edf1f7;display:block}
.cassette-visual-photo:before{z-index:2;pointer-events:none;background:linear-gradient(to bottom,rgba(246,248,251,.06),rgba(246,248,251,.18)),radial-gradient(ellipse at center,transparent 45%,rgba(238,242,247,.38) 92%)}
.cassette-visual-photo img{position:absolute;inset:-2%;width:104%;height:104%;object-fit:cover;filter:saturate(.83) contrast(.96) brightness(1.025);transform:scale(1.015)}
.cassette-visual-photo:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 90px 35px rgba(242,245,249,.34)}
.cassette-visual-photo figcaption{position:absolute;z-index:4;inset:24px;border:1px solid rgba(255,255,255,.36);display:flex;flex-direction:column;justify-content:space-between;padding:24px;color:#fff;font-family:"DM Mono",monospace;text-shadow:0 1px 8px rgba(47,58,68,.18)}
.cassette-visual-photo figcaption span{font-size:8px;letter-spacing:.2em;opacity:.75}
.cassette-visual-photo figcaption strong{font-size:clamp(16px,2.4vw,32px);font-weight:300;letter-spacing:.09em;opacity:.72}
@media(max-width:780px){.cassette-visual-photo img{object-position:center}.cassette-visual-photo figcaption{inset:14px;padding:16px}}

/* v7: right-bound Japanese booklet — cover > blank > story spread > Artwork > art spread */
.preview-sheet{transform-origin:right center}.book-binding{left:auto!important;right:-7px!important}
.blank-sheet{z-index:4;background:#faf9f5}.blank-sheet .page-number{position:absolute;left:5%;bottom:5%;font:300 7px/1 "DM Mono",monospace;color:#d3d0c9}
.story-sheet{z-index:3;background:#f8f7f2}.story-spread,.art-spread{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr}.story-page{position:relative;padding:7% 6%;background:#f8f7f2;box-sizing:border-box;overflow:hidden}.story-page:first-child{box-shadow:inset 14px 0 25px -28px #111}.story-page:last-child{box-shadow:inset -14px 0 25px -28px #111}.story-page p{height:100%;margin:0;writing-mode:vertical-rl;text-orientation:mixed;text-align:left;font-family:"Noto Serif JP",serif;font-size:clamp(8px,1vw,11px);font-weight:400;line-height:2.05;letter-spacing:.09em;color:#34383b;white-space:normal}
.artwork-title-sheet{z-index:2;background:#f8f7f2}.artwork-title-sheet span{position:absolute;inset:0;display:grid;place-items:center;font-family:"Cormorant Garamond","Noto Serif JP",serif;font-size:clamp(18px,3vw,34px);font-weight:400;letter-spacing:.06em;color:#33383b}
.artwork-spread-sheet{z-index:1;background:#f8f7f2}.art-page{position:relative;overflow:hidden;padding:4%;display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:3%;align-items:center}.art-page img{width:100%;height:100%;object-fit:contain;opacity:0;filter:saturate(.75) contrast(.9);transform:scale(.985);transition:opacity 1.7s ease,transform 2.4s ease}.art-left img:first-child{grid-row:1/3}.art-right img:first-child{grid-column:1/3}.preview-book.step-1 .translucent-cover{transform:rotateY(165deg);opacity:.32}.preview-book.step-2 .translucent-cover{transform:rotateY(175deg);opacity:.12}.preview-book.step-2 .blank-sheet{transform:rotateY(165deg);opacity:.32}.preview-book.step-3 .translucent-cover,.preview-book.step-3 .blank-sheet{transform:rotateY(175deg);opacity:.08}.preview-book.step-3 .story-sheet{transform:rotateY(165deg);opacity:.28}.preview-book.step-4 .translucent-cover,.preview-book.step-4 .blank-sheet,.preview-book.step-4 .story-sheet{transform:rotateY(175deg);opacity:.05}.preview-book.step-4 .artwork-title-sheet{transform:rotateY(165deg);opacity:.25}.preview-book.step-4 .artwork-spread-sheet img{opacity:.92;transform:scale(1)}
@media(max-width:780px){.story-page{padding:5% 4%}.story-page p{font-size:7px;line-height:1.75;letter-spacing:.04em}.art-page{padding:3%;gap:2%}}

/* v8 hotfix: keep the translucent cover on top at the first view. */
.translucent-cover{z-index:5}


/* v9: exact booklet pagination — cover / pp2-3 blank / pp4-5 story / p6 Artwork / p7 art / p8 art */
.cover-title{
  color:rgba(255,255,255,.98)!important;
  text-shadow:0 1px 7px rgba(48,58,66,.42),0 0 1px rgba(48,58,66,.28)!important;
  -webkit-text-stroke:.15px rgba(58,68,76,.18);
}
.blank-spread-sheet{z-index:5;background:#faf9f5}
.blank-spread{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;background:#faf9f5}
.blank-page{position:relative;background:#faf9f5}
.blank-right{box-shadow:inset 14px 0 25px -28px #111}
.blank-left{box-shadow:inset -14px 0 25px -28px #111}
.story-sheet{z-index:4}
.artwork-title-sheet{z-index:3}
.artwork-single-sheet{background:#f8f7f2}
.art-one-sheet{z-index:2}
.art-two-sheet{z-index:1}
.single-art-page{position:absolute;inset:0;padding:4.5%;display:grid;place-items:center;background:#f8f7f2}
.single-art-page img{width:100%;height:100%;object-fit:contain;opacity:0;filter:saturate(.86) contrast(.94);transform:scale(.992);transition:opacity 1.6s ease,transform 2.1s ease}

/* turn from the right binding */
.preview-book.step-1 .translucent-cover{transform:rotateY(165deg);opacity:.32}
.preview-book.step-2 .translucent-cover{transform:rotateY(175deg);opacity:.10}
.preview-book.step-2 .blank-spread-sheet{transform:rotateY(165deg);opacity:.28}
.preview-book.step-3 .translucent-cover,.preview-book.step-3 .blank-spread-sheet{transform:rotateY(175deg);opacity:.05}
.preview-book.step-3 .story-sheet{transform:rotateY(165deg);opacity:.25}
.preview-book.step-4 .translucent-cover,.preview-book.step-4 .blank-spread-sheet,.preview-book.step-4 .story-sheet{transform:rotateY(175deg);opacity:.04}
.preview-book.step-4 .artwork-title-sheet{transform:rotateY(165deg);opacity:.23}
.preview-book.step-4 .art-one-sheet img{opacity:.96;transform:scale(1)}
.preview-book.step-5 .translucent-cover,.preview-book.step-5 .blank-spread-sheet,.preview-book.step-5 .story-sheet,.preview-book.step-5 .artwork-title-sheet{transform:rotateY(175deg);opacity:.03}
.preview-book.step-5 .art-one-sheet{transform:rotateY(165deg);opacity:.22}
.preview-book.step-5 .art-two-sheet img{opacity:.96;transform:scale(1)}

/* v10: booklet preview — true two-page A6 landscape spread */
.preview-book{
  width:min(1120px,94vw);
  aspect-ratio:2.828/1;
  transition:width .7s cubic-bezier(.22,.7,.18,1),aspect-ratio .7s cubic-bezier(.22,.7,.18,1);
}
/* Closed state: show one A6-landscape cover centered. */
.translucent-cover{
  inset:0 auto 0 25%;
  width:50%;
  height:100%;
  transform-origin:right center!important;
  border-radius:2px;
}
.cover-title{
  font-size:clamp(11px,1.15vw,15px)!important;
  color:rgba(255,255,255,1)!important;
  text-shadow:
    0 1px 1px rgba(55,64,72,.62),
    0 0 7px rgba(55,64,72,.35),
    0 0 16px rgba(55,64,72,.18)!important;
  -webkit-text-stroke:.25px rgba(68,76,82,.32)!important;
}
.cover-hint{left:29%;}

/* Real open spread: each half keeps the A6 landscape ratio. */
.blank-spread,.story-spread{
  grid-template-columns:1fr 1fr;
}
.blank-page,.story-page{
  min-width:0;
}
.story-page{
  padding:5.4% 5.2%;
}
.story-page p{
  font-size:clamp(9px,.82vw,12px);
  line-height:2.05;
  letter-spacing:.08em;
  overflow:visible;
}
/* A subtle centre gutter when the book is open. */
.preview-book:after{
  content:"";
  position:absolute;
  z-index:20;
  left:50%;
  top:2.5%;
  bottom:2.5%;
  width:1px;
  background:linear-gradient(to bottom,transparent,rgba(40,48,53,.14) 8%,rgba(40,48,53,.18) 50%,rgba(40,48,53,.14) 92%,transparent);
  box-shadow:0 0 16px rgba(35,42,48,.12);
  opacity:0;
  transition:opacity .5s;
  pointer-events:none;
}
.preview-book.step-1:after,.preview-book.step-2:after,.preview-book.step-3:after,.preview-book.step-4:after,.preview-book.step-5:after{opacity:1}
.book-binding{display:none!important}

/* Make the later single-page previews read as pages within the open book. */
.artwork-title-sheet span{font-size:clamp(20px,2.4vw,34px)}
.single-art-page{padding:3.4%}

@media(max-width:780px){
  .preview-book{width:96vw;aspect-ratio:2.45/1;}
  .translucent-cover{left:25%;width:50%;}
  .story-page{padding:4% 3.4%;}
  .story-page p{font-size:clamp(6.5px,1.55vw,9px);line-height:1.72;letter-spacing:.035em;}
  .cover-title{font-size:9px!important;}
}

/* v11: manga-like right-bound booklet. Closed = one page, open = two-page spread. */
.preview-book{
  --page-w:min(560px,84vw);
  width:var(--page-w)!important;
  aspect-ratio:1.414/1!important;
  transition:width .72s cubic-bezier(.2,.75,.2,1),aspect-ratio .72s cubic-bezier(.2,.75,.2,1)!important;
  overflow:visible;
}
.preview-book.step-1,.preview-book.step-2,.preview-book.step-3,.preview-book.step-4{
  width:min(1120px,92vw)!important;
  aspect-ratio:2.828/1!important;
}
.preview-sheet{inset:0!important;width:100%!important;height:100%!important;transform-origin:50% 50%!important;border-radius:2px;}
.translucent-cover{
  inset:0!important;width:100%!important;height:100%!important;z-index:10!important;
  transform-origin:right center!important;
  background:linear-gradient(112deg,rgba(255,255,255,.68),rgba(236,240,241,.43))!important;
}
.translucent-cover:before{opacity:.11!important;}
.cover-title{
  right:18%!important;top:12%!important;font-size:clamp(11px,1.2vw,15px)!important;
  color:rgba(255,255,255,.98)!important;
  -webkit-text-stroke:.55px rgba(68,76,84,.46)!important;
  text-shadow:0 1px 2px rgba(52,60,68,.62),0 0 8px rgba(55,64,72,.42),0 0 18px rgba(55,64,72,.16)!important;
}
.cover-hint{left:7%!important;}
.blank-spread-sheet,.story-sheet,.artwork-spread-one,.artwork-spread-two{
  opacity:0;visibility:hidden;pointer-events:none;transform:none!important;background:#f8f7f2;
}
.blank-spread,.story-spread,.artwork-pair{
  position:absolute;inset:0;display:grid!important;grid-template-columns:1fr 1fr!important;background:#f8f7f2;
}
.blank-page,.story-page,.art-page,.artwork-title-page{min-width:0;position:relative;background:#f8f7f2;box-sizing:border-box;}
.blank-left,.story-left,.art-page-left{grid-column:1!important;}
.blank-right,.story-right,.artwork-title-page,.art-page-right{grid-column:2!important;}
.story-left,.story-right{grid-row:1;}
.story-page{padding:5.8% 5.5%!important;overflow:hidden!important;}
.story-page p{
  margin:0!important;height:100%!important;writing-mode:vertical-rl!important;text-orientation:mixed!important;
  font-family:"Noto Serif JP",serif!important;font-size:clamp(9px,.8vw,11.5px)!important;
  line-height:2.02!important;letter-spacing:.07em!important;color:#34383b!important;overflow:visible!important;
}
.preview-book:after{
  left:50%!important;top:1.8%!important;bottom:1.8%!important;width:2px!important;
  background:linear-gradient(to bottom,transparent,rgba(35,42,48,.09) 5%,rgba(35,42,48,.2) 50%,rgba(35,42,48,.09) 95%,transparent)!important;
  box-shadow:-8px 0 18px rgba(35,42,48,.07),8px 0 18px rgba(35,42,48,.07)!important;
}
.preview-book.step-1 .translucent-cover{
  width:50%!important;left:50%!important;transform-origin:left center!important;transform:rotateY(178deg)!important;opacity:.18!important;pointer-events:none;
}
.preview-book.step-1 .blank-spread-sheet,
.preview-book.step-2 .story-sheet,
.preview-book.step-3 .artwork-spread-one,
.preview-book.step-4 .artwork-spread-two{
  opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:6!important;
}
.preview-book.step-2 .translucent-cover,.preview-book.step-3 .translucent-cover,.preview-book.step-4 .translucent-cover{opacity:0!important;visibility:hidden!important;}
.preview-book.step-2 .blank-spread-sheet,.preview-book.step-3 .story-sheet,.preview-book.step-4 .artwork-spread-one{opacity:0!important;visibility:hidden!important;pointer-events:none!important;}
.artwork-title-page{display:grid;place-items:center;align-content:center;gap:12px;color:#34383b;}
.artwork-title-page span{font-family:"Noto Serif JP",serif;font-size:clamp(22px,2.6vw,38px);font-weight:300;letter-spacing:.08em;}
.artwork-title-page small{font:300 8px/1 "DM Mono",monospace;letter-spacing:.2em;color:#9aa2a7;}
.art-page{padding:5%;display:grid;place-items:center;overflow:hidden;}
.art-page img{width:100%;height:100%;object-fit:contain;opacity:0;transform:scale(.99);filter:saturate(.88) contrast(.95);transition:opacity 1.5s ease,transform 2s ease;}
.preview-book.step-3 .artwork-spread-one img,.preview-book.step-4 .artwork-spread-two img{opacity:.96;transform:scale(1);}
@media(max-width:780px){
  .preview-book{--page-w:88vw;}
  .preview-book.step-1,.preview-book.step-2,.preview-book.step-3,.preview-book.step-4{width:96vw!important;aspect-ratio:2.55/1!important;}
  .story-page{padding:4.2% 3.8%!important;}
  .story-page p{font-size:clamp(6.5px,1.5vw,8.5px)!important;line-height:1.75!important;letter-spacing:.035em!important;}
}

/* v12 — physical A6 landscape booklet: closed = 1 page, open = exactly 2 pages */
.preview-book{
  --closed-w:min(560px,82vw);
  --paper:#f7f5ef;
  width:var(--closed-w)!important;
  aspect-ratio:1.414/1!important;
  perspective:2200px!important;
  transform-style:preserve-3d;
  transition:width .7s cubic-bezier(.22,.72,.18,1), aspect-ratio .7s cubic-bezier(.22,.72,.18,1)!important;
  filter:drop-shadow(0 28px 42px rgba(38,47,53,.17));
}
.preview-book.step-1,.preview-book.step-2,.preview-book.step-3,.preview-book.step-4{
  width:min(1120px,94vw)!important;
  aspect-ratio:2.828/1!important;
}
/* paper fibres / Cotton Snow White feeling */
.preview-book .blank-page,.preview-book .story-page,.preview-book .art-page,.preview-book .artwork-title-page,
.preview-book .blank-spread-sheet,.preview-book .story-sheet,.preview-book .artwork-spread-one,.preview-book .artwork-spread-two{
  background-color:var(--paper)!important;
  background-image:
    radial-gradient(circle at 18% 22%,rgba(90,82,70,.035) 0 .55px,transparent .75px),
    radial-gradient(circle at 72% 68%,rgba(255,255,255,.55) 0 .65px,transparent .9px),
    linear-gradient(98deg,rgba(120,108,88,.018),transparent 18%,rgba(120,108,88,.014) 48%,transparent 76%)!important;
  background-size:9px 11px,13px 15px,100% 100%!important;
}
/* cover is one A6 page while closed */
.translucent-cover{
  inset:0!important;width:100%!important;height:100%!important;left:0!important;
  transform-origin:left center!important; /* right-bound book: cover swings left around the spine */
  z-index:20!important;
  background:linear-gradient(110deg,rgba(255,255,255,.73),rgba(236,240,241,.48))!important;
}
.cover-title{
  color:rgba(255,255,255,1)!important;
  font-size:clamp(12px,1.35vw,17px)!important;
  -webkit-text-stroke:.7px rgba(63,70,75,.46)!important;
  text-shadow:0 1px 2px rgba(54,61,67,.62),0 0 7px rgba(55,64,72,.40),0 0 18px rgba(55,64,72,.18)!important;
}
/* open spreads occupy two A6 pages */
.blank-spread-sheet,.story-sheet,.artwork-spread-one,.artwork-spread-two{
  inset:0!important;width:100%!important;height:100%!important;transform:none!important;
  opacity:0;visibility:hidden;pointer-events:none;
}
.blank-spread,.story-spread,.artwork-pair{position:absolute;inset:0;display:grid!important;grid-template-columns:1fr 1fr!important;}
/* centre spine — this is the hinge */
.preview-book:after{
  content:"";position:absolute;z-index:40;left:50%!important;top:1.5%!important;bottom:1.5%!important;width:1px!important;
  background:rgba(55,58,58,.13)!important;
  box-shadow:-10px 0 18px rgba(40,42,42,.065),10px 0 18px rgba(40,42,42,.065)!important;
  opacity:0;pointer-events:none;transition:opacity .35s;
}
.preview-book.step-1:after,.preview-book.step-2:after,.preview-book.step-3:after,.preview-book.step-4:after{opacity:1}
/* ordinary Japanese novel typography: starts at upper-right, vertical columns proceed right to left */
.story-page{padding:6.2% 6.6%!important;overflow:hidden!important;}
.story-page p{
  margin:0!important;width:100%!important;height:100%!important;
  writing-mode:vertical-rl!important;text-orientation:mixed!important;
  font-family:"Noto Serif JP","Yu Mincho","Hiragino Mincho ProN",serif!important;
  font-size:clamp(10px,.88vw,13px)!important;line-height:2.05!important;letter-spacing:.075em!important;
  color:#35332f!important;text-align:start!important;white-space:normal!important;
  text-shadow:.18px .18px 0 rgba(45,38,30,.32),-.12px 0 0 rgba(80,67,50,.12)!important;
}
/* right page is read first; left page continues */
.story-right{grid-column:2!important;box-shadow:inset 16px 0 24px -28px rgba(0,0,0,.5)}
.story-left{grid-column:1!important;box-shadow:inset -16px 0 24px -28px rgba(0,0,0,.5)}
/* visible states */
.preview-book.step-1 .blank-spread-sheet,.preview-book.step-2 .story-sheet,.preview-book.step-3 .artwork-spread-one,.preview-book.step-4 .artwork-spread-two{opacity:1!important;visibility:visible!important;pointer-events:auto!important;z-index:8!important;}
.preview-book.step-1 .translucent-cover,.preview-book.step-2 .translucent-cover,.preview-book.step-3 .translucent-cover,.preview-book.step-4 .translucent-cover{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transform:none!important;}
.preview-book.step-2 .blank-spread-sheet,.preview-book.step-3 .story-sheet,.preview-book.step-4 .artwork-spread-one{opacity:0!important;visibility:hidden!important;pointer-events:none!important;}
/* page-turn leaf: the right-hand page rotates around the centre spine */
.preview-book .page-turn-leaf{position:absolute;z-index:35;left:50%;top:0;width:50%;height:100%;transform-origin:left center;pointer-events:none;opacity:0;background:var(--paper);box-shadow:inset 14px 0 24px -26px rgba(0,0,0,.55);}
.preview-book.is-turning .page-turn-leaf{animation:v12PageTurn .62s cubic-bezier(.35,.02,.22,1) both;}
@keyframes v12PageTurn{0%{opacity:1;transform:rotateY(0deg)}48%{opacity:1}100%{opacity:.15;transform:rotateY(-178deg)}}
@media(max-width:780px){
  .preview-book{--closed-w:88vw;}
  .preview-book.step-1,.preview-book.step-2,.preview-book.step-3,.preview-book.step-4{width:96vw!important;aspect-ratio:2.828/1!important;}
  .story-page{padding:4.8% 4.6%!important;}
  .story-page p{font-size:clamp(7px,1.55vw,9.2px)!important;line-height:1.82!important;letter-spacing:.035em!important;}
}


/* v13 — Japanese right-bound reading direction.
   Turn the LEFT page toward the RIGHT, hinged on the centre spine. */
.preview-book .page-turn-leaf{
  left:0!important;
  width:50%!important;
  transform-origin:right center!important;
  box-shadow:inset -14px 0 24px -26px rgba(0,0,0,.55)!important;
}
.preview-book.is-turning .page-turn-leaf{
  animation:v13PageTurn .62s cubic-bezier(.35,.02,.22,1) both!important;
}
@keyframes v13PageTurn{
  0%{opacity:1;transform:rotateY(0deg)}
  48%{opacity:1}
  100%{opacity:.15;transform:rotateY(178deg)}
}
/* The translucent front cover is also right-bound: the hinge is its RIGHT edge. */
.translucent-cover{transform-origin:right center!important;}

/* Artwork: title gets its own page, then one artwork per page on the next spread. */
.art-title-blank{grid-column:1!important;}
.artwork-title-page{grid-column:2!important;}
.artwork-spread-two .art-page-left{grid-column:1!important;}
.artwork-spread-two .art-page-right{grid-column:2!important;}
.artwork-spread-two .art-page img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  padding:3%!important;
  box-sizing:border-box!important;
}


/* ===== v15 / timed production launch gate ===== */
.launch-gate { display: none; }
html.prelaunch,
html.prelaunch body {
  margin: 0;
  min-height: 100%;
  background: #f3f3ef;
}
html.prelaunch body > :not(.launch-gate) { display: none !important; }
html.prelaunch .launch-gate {
  display: grid;
  place-items: center;
  position: relative;
  min-height: 100vh;
  min-height: 100svh;
  overflow: hidden;
  color: #171717;
  background:
    radial-gradient(circle at 23% 18%, rgba(255,255,255,.92), transparent 34%),
    radial-gradient(circle at 76% 72%, rgba(205,210,211,.32), transparent 43%),
    linear-gradient(145deg, #f7f7f3 0%, #eceeeb 54%, #f5f5f1 100%);
}
html.prelaunch .launch-gate::before,
html.prelaunch .launch-gate::after {
  content: "";
  position: absolute;
  inset: -18%;
  pointer-events: none;
}
html.prelaunch .launch-gate::before {
  opacity: .3;
  background-image:
    repeating-radial-gradient(circle at 40% 30%, rgba(35,35,35,.13) 0 .45px, transparent .55px 4px);
  background-size: 7px 7px;
  transform: rotate(3deg);
}
html.prelaunch .launch-gate::after {
  background: linear-gradient(110deg, transparent 25%, rgba(255,255,255,.45) 48%, transparent 70%);
  animation: gate-drift 13s ease-in-out infinite alternate;
}
.launch-gate__inner {
  position: relative;
  z-index: 2;
  width: min(78vw, 680px);
  padding: 72px 28px;
  text-align: center;
}
.launch-gate__band, .launch-gate__small, .launch-gate__date, .launch-gate__soon {
  font-family: "DM Mono", monospace;
  letter-spacing: .18em;
}
.launch-gate__band { margin: 0 0 9px; font-size: 11px; }
.launch-gate__small { margin: 0 0 48px; font-size: 9px; opacity: .5; }
.launch-gate h1 {
  margin: 0;
  font-family: "Noto Serif JP", serif;
  font-weight: 300;
  font-size: clamp(34px, 7vw, 72px);
  letter-spacing: .22em;
  text-indent: .22em;
}
.launch-gate__line { width: 1px; height: 72px; margin: 42px auto 34px; background: rgba(20,20,20,.28); }
.launch-gate__date { margin: 0; font-size: 11px; }
.launch-gate__soon { margin: 14px 0 0; font-size: 9px; opacity: .5; }
@keyframes gate-drift { from { transform: translate3d(-3%, -1%, 0); } to { transform: translate3d(4%, 2%, 0); } }
@media (prefers-reduced-motion: reduce) { html.prelaunch .launch-gate::after { animation: none; } }

/* ===== v16 / mobile readability pass ===== */
@media (max-width: 780px) {
  /* Cassette: preserve the original artwork ratio instead of cropping it into a tall box. */
  .cassette-visual,
  .cassette-visual-photo {
    height: auto !important;
    min-height: 0 !important;
    aspect-ratio: 1368 / 856 !important;
    margin-left: -2vw;
    margin-right: -2vw;
    width: calc(100% + 4vw);
  }
  .cassette-visual-photo img {
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
    transform: none !important;
  }
  .cassette-visual-photo:after {
    box-shadow: inset 0 0 44px 12px rgba(242,245,249,.24) !important;
  }
  .cassette-visual-photo figcaption {
    inset: 10px !important;
    padding: 12px !important;
  }
  .cassette-visual-photo figcaption span { font-size: 7px !important; }
  .cassette-visual-photo figcaption strong { font-size: clamp(13px,4.2vw,18px) !important; }

  /* The small booklet teaser in GOODS gets a little more breathing room. */
  .book-feature { gap: 12px !important; }
  .book-preview { min-height: 285px !important; padding-inline: 0 !important; }
  .book-cover { width: min(350px, 92%) !important; }
  .book-copy h3 { font-size: clamp(25px, 8vw, 36px) !important; }

  /* Book modal: do not squeeze a two-page A6 spread into one phone width.
     Keep each page readable and let the user swipe sideways across the spread. */
  .book-modal {
    display: block !important;
    overflow-y: auto !important;
    padding: 72px 0 34px !important;
    box-sizing: border-box !important;
  }
  .book-close {
    position: absolute !important;
    top: 24px !important;
    right: 18px !important;
  }
  .book-stage {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    padding: 18px 18px 24px !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }
  .preview-book {
    --closed-w: min(88vw, 440px) !important;
    width: var(--closed-w) !important;
    margin: 0 auto !important;
    flex: 0 0 auto;
  }
  .preview-book.step-1,
  .preview-book.step-2,
  .preview-book.step-3,
  .preview-book.step-4 {
    width: 720px !important;
    max-width: none !important;
    aspect-ratio: 2.828 / 1 !important;
    margin: 0 !important;
  }
  .story-page { padding: 5.8% 5.8% !important; }
  .story-page p {
    font-size: 10.5px !important;
    line-height: 1.95 !important;
    letter-spacing: .055em !important;
  }
  .art-page { padding: 4.5% !important; }
  .art-page img {
    width: 100% !important;
    height: 100% !important;
    object-fit: contain !important;
  }
  .artwork-title-page span { font-size: 30px !important; }
  .book-stage > .preview-note {
    display: block !important;
    width: max-content !important;
    max-width: 720px !important;
    margin: 18px 0 0 !important;
    padding-left: 2px !important;
  }
  .book-stage > .preview-note::after {
    content: "  /  OPEN PAGES: SWIPE HORIZONTALLY";
  }
}

@media (max-width: 430px) {
  .preview-book.step-1,
  .preview-book.step-2,
  .preview-book.step-3,
  .preview-book.step-4 { width: 680px !important; }
  .story-page p { font-size: 10px !important; }
}
