:root{
    --navy: #102945;
    --navy-deep: #0b1d33;
    --washi: #F6F5F3;
    --gold: #D4B384;
    --ink: #1c2b3a;
    --sp-block: clamp(72px, 14vw, 160px);
    --sp-tight: clamp(24px, 5vw, 48px);
    --fs-hero: clamp(26px, 6.4vw, 56px);
    --fs-h2: clamp(21px, 4.6vw, 34px);
    --fs-body: clamp(15px, 4vw, 18px);
    --fs-note: clamp(12px, 3.2vw, 14px);
    --measure: 36em;
  }
*{ margin: 0; padding: 0; box-sizing: border-box; }
html{ -webkit-text-size-adjust: 100%; scroll-behavior: auto; overscroll-behavior-y: contain; }
body{
    font-family: "Hiragino Mincho ProN", "Hiragino Serif", "Yu Mincho", serif;
    color: var(--ink); background: var(--navy-deep);
    font-size: var(--fs-body); line-height: 2.05;
    overflow-x: hidden;
  }
.gothic{ font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; }
.body p + p{ margin-top: 1.15em; }
.p-copy h1, .p-copy h2{ text-shadow: 0 2px 10px rgba(6,16,31,0.9), 0 0 34px rgba(6,16,31,0.65); }
.p-sub, .p-newjoshiki{ text-shadow: 0 1px 8px rgba(6,16,31,0.95), 0 0 22px rgba(6,16,31,0.7); }
.p-stage .down, .hero .down{ text-shadow: 0 1px 8px rgba(6,16,31,0.95); }
.inv-kicker, .inv-line{ text-shadow: 0 2px 12px rgba(6,16,31,0.9), 0 0 30px rgba(6,16,31,0.6); }
.cm-body{ max-width: 720px; margin: 0 auto; padding: clamp(16px,3.5vw,28px) clamp(14px,3.5vw,24px) clamp(56px,9vw,96px); color: #f6f5f3; }
@keyframes sdRise{
    0%   { transform: translateY(30%) scale(0.85); opacity: 0; }
    12%  { opacity: 0.9; }
    82%  { opacity: 0.65; }
    100% { transform: translateY(-240%) scale(1.08); opacity: 0; }
  }
.p-stage .down,
  .hero .down{
    position: absolute; left: 50%; bottom: clamp(20px, 4vw, 36px); transform: translateX(-50%);
    z-index: 2; color: rgba(246,245,243,0.75); font-size: 12px; letter-spacing: 0.3em;
    writing-mode: vertical-rl;
  }
#prologue{ position: relative; }
.p-stage{
    position: sticky; top: 0; height: 100svh; overflow: hidden;
    background: var(--navy-deep); color: var(--washi);
  }
.p-layer{ position: absolute; inset: 0; background-size: cover; background-position: center; will-change: transform, opacity; }
.p-layer video, video.p-layer{ position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.p-s1{ background-image: url(assets/img/posterA.jpg); }
@media (max-width: 768px){.p-s1{ background-image: url(assets/img/poster_fv_sp3.jpg); }}
video.p-tr, video.p-tr2{ opacity: 0; }
.p-s2{ opacity: 0; }
.p-stage::after{
    content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: linear-gradient(180deg, rgba(11,29,51,0.42) 0%, rgba(11,29,51,0.16) 45%, rgba(11,29,51,0.82) 100%);
  }
.p-tint{
    position: absolute; inset: 0; z-index: 2; pointer-events: none;
    background: radial-gradient(ellipse at 32% 22%, rgba(255, 196, 120, 0.22) 0%, rgba(80, 42, 8, 0.30) 72%);
  }
#bgmBtn{
    position: fixed; right: clamp(12px, 2vw, 20px); bottom: clamp(12px, 2vw, 20px); z-index: 60;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif;
    font-size: 12px; letter-spacing: 0.12em; color: var(--washi);
    background: rgba(16, 41, 69, 0.88); border: 1px solid var(--gold); border-radius: 999px;
    padding: 10px 16px; cursor: pointer;
  }
.p-copy{
    position: absolute; inset: 0; z-index: 3; padding: 0 var(--sp-tight);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; text-shadow: 0 1px 24px rgba(11,29,51,0.55);
  }
.p-copy h1, .p-copy h2{ font-size: var(--fs-hero); }
.p-c1 .logo{ width: min(210px, 46vw); margin: 0 auto clamp(28px, 6vw, 44px); }
.p-sub{ font-size: var(--fs-note); letter-spacing: 0.06em; color: rgba(246,245,243,0.92); margin: clamp(14px, 3vw, 22px) auto 0; max-width: none; }
.p-c2{ opacity: 0; }
body:not(.js) .float-layer{ display: none; }
@keyframes ctaPulse{ 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@media (max-width: 768px){body.cta-on #bgmBtn{ bottom: calc(clamp(12px, 2.4vw, 22px) + 62px); }}
.sp-only{ display: none; }
.p-newjoshiki{ margin-top: 1.1em; color: #d4b384; font-size: 13px; letter-spacing: 0.08em; line-height: 1.9; }
.p-whatto{ margin: clamp(16px, 3.4vw, 24px) auto 0; display: inline-block;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", sans-serif; font-weight: 600;
    font-size: clamp(13px, 3.6vw, 15.5px); letter-spacing: 0.06em; line-height: 1.9; color: #ffe9c4;
    background: rgba(11,29,51,0.62); border: 1px solid rgba(212,179,132,0.55); border-radius: 8px;
    padding: 0.7em 1.1em; text-shadow: 0 1px 8px rgba(6,16,31,0.9); }
.skip-dive{ margin-top: 1.4em; color: rgba(246,245,243,0.75); font-size: 12px; letter-spacing: 0.1em;
    border: 1px solid rgba(212,179,132,0.45); border-radius: 999px; padding: 9px 20px; text-decoration: none; }
@media (max-width: 768px){.sp-only{ display: block; }
a.skip-dive.sp-only{ display: inline-block; }}
.dive-invite{ position: fixed; inset: 0; z-index: 100; display: flex; align-items: center; justify-content: center;
    background: rgba(6,14,26,0.55); backdrop-filter: blur(3px); opacity: 0; transition: opacity 0.5s ease; }
.dive-invite[hidden]{ display: none; }
.dive-invite.on{ opacity: 1; }
.di-card{ position: relative; background: none; border: 0; padding: 0; width: min(86vw, 380px); max-width: min(86vw, 380px); margin: 0 16px; }
.di-card > img{ width: 100%; height: auto; display: block; border-radius: 18px;
    border: 1px solid rgba(212,179,132,0.65); box-shadow: 0 24px 90px rgba(0,0,0,0.6); }
.di-actions{ position: absolute; left: 0; right: 0; bottom: 5.5%; text-align: center; }
.di-go{ display: inline-block; background: linear-gradient(180deg, #E8CD9E, #D4B384); color: #16283f;
    font-family: inherit; font-weight: 700; font-size: clamp(16px,4.2vw,18px); letter-spacing: 0.12em;
    border: 0; border-radius: 999px; padding: 16px 44px; cursor: pointer; box-shadow: 0 6px 24px rgba(212,179,132,0.35); }
.di-go:active{ transform: translateY(1px); }
.di-skip{ display: block; margin: 1.1em auto 0; padding: 12px 18px; min-height: 44px; background: none; border: 0; color: rgba(246,245,243,0.55);
    font-family: inherit; font-size: 12px; letter-spacing: 0.08em; cursor: pointer; text-decoration: underline; }
@keyframes di-bob{ 0%,100% { transform: translateY(0); } 50% { transform: translateY(5px); } }
.di-hint{ color: rgba(246,245,243,0.9); font-size: 12.5px; letter-spacing: 0.06em; margin: 0 0 10px;
    text-shadow: 0 1px 8px rgba(6,14,26,0.8); }
.p-c3{ position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
    text-align: center; opacity: 0; pointer-events: none; z-index: 5; }
.p-c3 .inv-kicker{ color: #8a6f45; font-size: clamp(14px, 2vw, 18px); letter-spacing: 0.55em; text-indent: 0.55em;
    margin: 0 0 0.9em; font-weight: 600; }
.p-c3 .inv-line{ color: #6b5530; font-size: clamp(26px, 5vw, 46px); letter-spacing: 0.18em; margin: 0;
    font-weight: 600; text-shadow: 0 1px 20px rgba(255,255,255,0.6); }
.p-c3 .inv-line{ color: #C9A96A; }
.p-c3 .inv-kicker{ color: #D4B384; }
#bgmBtn{ bottom: calc(clamp(12px, 2vw, 20px) + env(safe-area-inset-bottom)); }
@media (max-width: 768px){body.cta-on #bgmBtn{ bottom: calc(clamp(12px, 2.4vw, 22px) + 70px + env(safe-area-inset-bottom)); }}
.p-c1{ opacity: 1; }
.gate-open:hover, .di-go:hover, #bgmBtn:hover, .bk-close:hover,
  .faq summary:hover, .bnr-box-close:hover, .di-skip:hover{ background: rgba(212,179,132,0.25); }
@media print{#bgmBtn, #stickyCta, .dive-invite, .dive-guide, .bnr-box,
    .lm-modal, .bk-modal, video, .fcard, .seam-down, .seam-up, .seam-dawn{ display: none !important; }
#prologue, .dwrap{ height: auto !important; }
.p-stage, .dstage{ position: static !important; height: auto !important; }
body{ background: #fff !important; color: #000 !important; }}
@media (max-width: 640px){body.has-sticky .dstage .s-copy, .dstage .s-copy{ padding-bottom: calc(env(safe-area-inset-bottom, 0px) + 84px); }}
.p-copy{ pointer-events: none; }
.p-copy .fv-mk{ pointer-events: auto; }.p-copy.p-c1{padding:24px 24px 64px}
.p-c1 .logo{width:128px;flex:none;margin-bottom:20px}
.p-c1 h1{font-size:clamp(26px,4.2vw,44px);line-height:1.48;letter-spacing:.025em}
.p-c1 .p-sub{max-width:31em;font:14px/1.8 "Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;letter-spacing:.025em;margin-top:16px;color:#f6f1e6}
.p-c1 .p-whatto{max-width:38em;font-size:14px;line-height:1.85;letter-spacing:.015em;padding:12px 16px;margin-top:18px;background:rgba(8,25,44,.78);border-color:rgba(212,179,132,.38);border-radius:5px}
.p-c1 .p-newjoshiki:empty{display:none}
.p-c1 .fv-mk{margin-top:18px;min-height:48px;padding:12px 22px;font-size:14px;line-height:1.5;border-color:#d4b384;background:rgba(16,41,69,.88)}
.p-c1 a.skip-dive{display:inline-flex;align-items:center;justify-content:center;pointer-events:auto;min-height:44px;margin-top:8px;padding:8px 12px;border:0;border-radius:4px;font-size:13px;letter-spacing:.04em;text-decoration:underline;text-underline-offset:5px;color:#ece5d8}
.p-c1 a.skip-dive:hover{color:#fff}
@media(min-width:769px){.p-c1 .p-sub{font-size:16px}
.p-c1 .p-whatto{font-size:16px}
.p-c1 .logo{width:140px}}
@media(max-height:700px){.p-copy.p-c1{padding-top:14px;padding-bottom:54px}
.p-c1 .logo{width:120px;margin-bottom:12px}
.p-c1 h1{font-size:24px;line-height:1.45}
.p-c1 .p-sub{font-size:13px;line-height:1.75;margin-top:12px}
.p-c1 .p-whatto{font-size:13px;line-height:1.8;padding:10px 14px;margin-top:12px}
.p-c1 .fv-mk{margin-top:14px}
.p-c1 a.skip-dive{margin-top:4px}}
@media(prefers-reduced-motion:reduce){.cta-button,.p-c1 a.skip-dive,.fv-mk{transition:none}}
.p-c1 .p-sub,.p-c1 .p-whatto{text-wrap:balance}
@media(max-width:360px) and (max-height:660px){.p-copy.p-c1{padding-left:18px;padding-right:18px;padding-bottom:110px}
.p-c1 .logo{width:96px;margin-bottom:10px}
.p-c1 h1{font-size:22px}
.p-c1 .p-sub{font-size:12px;line-height:1.8}
.p-c1 .p-whatto{font-size:12px;line-height:1.8;padding:8px 12px}}
/* The existing artwork and video stay intact; reduce the foreground hierarchy. */
.p-copy.p-c1{display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr auto auto auto;align-items:start;justify-items:start;text-align:left;padding:24px clamp(24px,6vw,88px) 76px;gap:0}
.p-c1 .logo{grid-row:1;width:180px;max-width:48vw;margin:0 0 0 -8px;filter:none}
.p-c1 h1{grid-row:3;max-width:13em;margin:0;font-size:clamp(28px,4vw,58px);font-weight:500;line-height:1.45;letter-spacing:.065em;text-shadow:0 2px 24px rgba(3,14,25,.45)}
.p-c1 .p-whatto{grid-row:4;max-width:none;width:auto;margin:22px 0 0;padding:0;border:0;border-radius:0;box-shadow:none;background:transparent;font-family:"Hiragino Sans","Yu Gothic",sans-serif;font-size:14px;font-weight:400;line-height:1.8;letter-spacing:.075em;color:#e2dccf;text-wrap:balance}
.p-c1 a.skip-dive{grid-row:5;justify-self:start;justify-content:flex-start;padding:8px 0;margin:24px 0 0;min-height:44px;border:0;border-radius:0;font:12px/1.6 "Hiragino Sans",sans-serif;letter-spacing:.08em;color:#c1c8cd;text-decoration-color:rgba(193,200,205,.5);text-underline-offset:6px}
.p-c1 .p-sub:empty,.p-c1 .p-newjoshiki:empty,.p-c2 .p-sub:empty{display:none}
.p-c2 h2{font-size:clamp(26px,3.3vw,44px);font-weight:500;line-height:1.7;letter-spacing:.1em}
@media(min-width:769px){.p-copy.p-c1{padding-bottom:88px}.p-c1 h1{font-size:clamp(38px,4vw,58px)}.p-c1 .p-whatto{font-size:15px}}
@media(max-width:768px){.p-copy.p-c1{padding-top:22px;padding-bottom:96px}.p-c1 .logo{width:164px}.p-c1 h1{font-size:clamp(28px,7.5vw,38px);line-height:1.5;letter-spacing:.035em}.p-c1 .p-whatto{font-size:12px;margin-top:18px;letter-spacing:.035em}.p-c1 a.skip-dive{margin-top:18px}}
@media(max-height:700px){.p-copy.p-c1{padding-top:12px;padding-bottom:64px}.p-c1 .logo{width:136px}.p-c1 h1{font-size:28px}.p-c1 .p-whatto{margin-top:12px}.p-c1 a.skip-dive{margin-top:10px}}
