/*
  DOKURO / STYLESHEET
 */
:root {
    --bg: #080808;
    --black: #090909;
    --ink: #11100f;
    --text: #CBCBCB;
    --muted: #6d665d;
    --accent: #a89858;
    --accent-bright: #b5a66a;
    --blood: #6e1f18;
    --ember: #a74727;
    --paper: url(../img/extra_clean_paper.png);
    --paper-solid: #e8e8e5;
    --paperText: #181818;
    --line-dark: rgba(17,16,15,.22);
    --line-light: rgba(255,255,255,.18);
    --serif: 'Bodoni Moda', serif;
    --jpSerif: 'Shippori Mincho', serif;
    --sans: 'BIZ UDPGothic', system-ui, sans-serif;
    --ease: cubic-bezier(.22, .61, .36, 1);

    
}


.specialProject,
.footer {
    background-color:#060606;
    background-size:
        150px 150px,
        230px 230px,
        310px 310px,
        100% 100%,
        100% 100%,
        100% 100%;
    background-position:
        0 0,
        70px 95px,
        130px 45px,
        center,
        center,
        center;
}

@media(max-width:860px) {

    .specialProject,
    .footer {
        background-attachment:scroll;
    }
}

/* =========================
   横ブレ防止
========================= */
* {
    box-sizing: border-box
}
html {
    scroll-behavior: smooth;
    overflow-x: hidden;
}
body {
    margin: 0;
    background: var(--bg);
    color: #CBCBCB;
    font-family: var(--jpSerif);
    line-height: 1.75;
    letter-spacing: .04em;
    overflow-x: hidden;
}
img {
    max-width: 100%;
    display: block
}
a {
    color: inherit;
    text-decoration: none
}
button {
    font: inherit;
    color: inherit;
    background: none;
    border: 0;
    padding: 0;
    cursor: pointer
}
body:not(.is-ready) {
    overflow: hidden
}
/*=========================================================
OPENING
=========================================================*/
.opening {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: flex;
    align-items: center;
    justify-content: center;
    background: #030303;
    opacity: 1;
    visibility: visible;
    transition: opacity .28s ease, visibility .28s ease;
}
.opening.is-hide {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}
.openingLoader {
    display: flex;
    align-items: center;
    justify-content: center;
}
.openingLoader__ring {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    border: 1.5px solid rgba(255, 255, 255, .08);
    border-top-color: #a89858;
    animation: ringSpin .95s linear infinite;
}
@keyframes ringSpin {
    to {
        transform: rotate(360deg);
    }
}

/* =========================================================
   FIRE
========================================================= */
.heroFire{
    position:absolute;
    inset:0;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    opacity:1;
    transition:opacity .7s ease;
}

.heroFire img{
    display:block;
    width:min(760px,60vw);
    height:auto;
    transform-origin:center;
    animation:heroFireMove 2.6s cubic-bezier(.22,.61,.36,1) forwards;
}

@keyframes heroFireMove{
    0%{
        opacity:0;
        transform:rotate(-8deg) scale(.75);
    }

    16%{
        opacity:1;
        transform:rotate(-4deg) scale(1.14);
    }

    28%{
        transform:rotate(-2deg) scale(1.05);
    }

    65%{
        transform:rotate(4deg) scale(1.10);
    }

    100%{
        opacity:1;
        transform:rotate(7deg) scale(1.14);
    }
}

body.hero-fire-out .heroFire{
    opacity:0;
}


.hero {
    --hero-h:max(100svh,760px);
    position:relative;
    background:#fff;
    overflow:hidden;
}

.heroCanvas,
.heroVisual{
    height:var(--hero-h);
    min-height:var(--hero-h);
}


.heroCanvas {
    position: relative;
}

.heroCanvas::after{
    content:"";
    position:absolute;
    z-index:2;
    pointer-events:none;

   
   left:0;
    right:0;
    bottom:-0.5vw;
    width:100%;
    aspect-ratio:5 / 1;

    background:url("../svg/last-stand.svg") center bottom / contain no-repeat;

    opacity:0;
    transition:opacity 2.2s ease;
    transition-delay:.45s;
}

body.hero-deco .heroCanvas::before,
body.hero-deco .heroCanvas::after {
    opacity:1;
}

/* KV / 完成ビジュアル */
.heroVisual{
    position:relative;
    z-index:2;
    display:flex;
    justify-content:center;
    align-items:center;
    opacity:0;
    transform:rotate(1.4deg) scale(1.025);
    transform-origin:center;
    transition:
        opacity 1s ease,
        transform 1.25s cubic-bezier(.22,.61,.36,1);
}

body.hero-visual .heroVisual{
    opacity:1;
    transform:rotate(0deg) scale(1);
}

.heroVisual img {
    display:block;
    width:auto;
    height:100%;
    max-width:100%;
    object-fit:contain;
}

/* PC LOGO */

.heroLogo {
    position: absolute;
    z-index: 3;
    right: 10vw;
    top: 40%;
 width:clamp(220px,16vw,400px);

    opacity:0;
    transform:translate(-140px,-40%);
    filter:blur(14px);
}

body.hero-logo .heroLogo {
    animation: heroLogoIn 1.3s cubic-bezier(.22, .61, .36, 1) forwards;
}

@keyframes heroLogoIn {
    /* 左側でぼやけた状態 */
    0% {
        opacity: 0;
        transform: translate(-140px, -40%);
        filter: blur(14px);
    }

    /* 左側のまま登場 */
    25% {
        opacity: 1;
        transform: translate(-140px, -40%);
        filter: blur(10px);
    }

    /* 左側のままピントが合う */
    55% {
        opacity: 1;
        transform: translate(-140px, -40%);
        filter: blur(0);
    }

    /* ピントが合ってから右へ移動 */
    100% {
        opacity: 1;
        transform: translate(0, -40%);
        filter: blur(0);
    }
}

.heroLogo img {
    display: block;
    width: 100%;
    height: auto;
}
.heroLogoSp{display:none;}


@media(min-width:861px) and (max-width:1200px){

    .heroLogo{
        right:1vw;
        width:clamp(190px,18vw,240px);
        transform:translateY(-40%);
    }

    body.hero-logo .heroLogo{
        animation:heroLogoInNarrow 1.1s ease forwards;
    }

    @keyframes heroLogoInNarrow{
        0%{
            opacity:0;
            transform:translateY(-40%);
            filter:blur(14px);
        }
        55%{
            opacity:1;
            transform:translateY(-40%);
            filter:blur(5px);
        }
        100%{
            opacity:1;
            transform:translateY(-40%);
            filter:blur(0);
        }
    }
}

/* =========================================================
   KV → CONTENT TRANSITION
========================================================= */
.renewalBand{
    position:relative;
    z-index:6;
    width:100%;
    overflow:hidden;
    background:url("../img/ticket-black-texture.webp") center top / 115% auto repeat-y,
        #050505;
    border-top:1px solid rgba(255,255,255,.08);
    border-bottom:1px solid rgba(168,152,88,.18);
    padding: 22px 0;
}

.renewalBand__image{
    display:block;
    width:100%;max-width: 88vw;
    height:auto;
    margin:0 auto;
}


/* =========================================================
   SP
========================================================= */
@media(max-width:860px){

.heroFire img{width:min(94vw,620px);}

   .hero,
    .heroCanvas,
    .heroVisual{
        min-height:0;
        height:auto;
    }

    .heroVisual{display:block;}
    .heroVisual img{width:100%;height:auto;}

    .heroLogo{display:none;}

    .heroLogoSp{
        display:block;
        position:absolute;
        z-index:3;
        inset:0;
        width:100%;
        opacity:0;
        pointer-events:none;
        transition:opacity .8s ease;
    }

    .heroLogoSp img{
        display:block;
        width:100%;
        height:auto;
    }

    body.hero-logo .heroLogoSp{opacity:1;}

    .heroCanvas::before,
    .heroCanvas::after{display:none;}

    .renewalBand__image{max-width:94%;}
}




/* =========================================================
   13 SLIT REVEAL
========================================================= */

.heroReveal {
    position: absolute;
    inset: 0;
    z-index: 10;

    display: grid;
    grid-template-columns: repeat(13, minmax(0, 1fr));

    background: #030303;

    pointer-events: none;
}

.heroReveal__panel {
    display: block;

    width: 100%;
    height: 100%;

    background: #030303;

    transform: scaleX(1.04);
    transform-origin: center center;

    transition:
        transform .72s cubic-bezier(.76, 0, .24, 1);

    will-change: transform;
}


/* 開始後、親背景も透明へ */
body.hero-reveal .heroReveal {
    background: transparent;
}

body.hero-reveal .heroReveal__panel {
    transform: scaleX(0);
}


/* 中央7番から左右へ */
.heroReveal__panel:nth-child(7) {
    transition-delay: 0s;
}

.heroReveal__panel:nth-child(6),
.heroReveal__panel:nth-child(8) {
    transition-delay: .04s;
}

.heroReveal__panel:nth-child(5),
.heroReveal__panel:nth-child(9) {
    transition-delay: .08s;
}

.heroReveal__panel:nth-child(4),
.heroReveal__panel:nth-child(10) {
    transition-delay: .12s;
}

.heroReveal__panel:nth-child(3),
.heroReveal__panel:nth-child(11) {
    transition-delay: .16s;
}

.heroReveal__panel:nth-child(2),
.heroReveal__panel:nth-child(12) {
    transition-delay: .20s;
}

.heroReveal__panel:nth-child(1),
.heroReveal__panel:nth-child(13) {
    transition-delay: .24s;
}


/* 一度見た後など、JSでskipされた場合 */
body.hero-skip .heroReveal__panel,
body.hero-skip .heroPc__visual img,
body.hero-skip .heroSp img,
body.hero-skip .heroPc__logo,
body.hero-skip .heroPc__meta {
    transition: none !important;
}



/* ------SP */

@media (max-width: 860px) {

    /* SPは少しテンポよく開く */
    .heroReveal__panel {
        transition-duration: .58s;
    }

    .heroReveal__panel:nth-child(7) {
        transition-delay: 0s;
    }

    .heroReveal__panel:nth-child(6),
    .heroReveal__panel:nth-child(8) {
        transition-delay: .03s;
    }

    .heroReveal__panel:nth-child(5),
    .heroReveal__panel:nth-child(9) {
        transition-delay: .06s;
    }

    .heroReveal__panel:nth-child(4),
    .heroReveal__panel:nth-child(10) {
        transition-delay: .09s;
    }

    .heroReveal__panel:nth-child(3),
    .heroReveal__panel:nth-child(11) {
        transition-delay: .12s;
    }

    .heroReveal__panel:nth-child(2),
    .heroReveal__panel:nth-child(12) {
        transition-delay: .15s;
    }

    .heroReveal__panel:nth-child(1),
    .heroReveal__panel:nth-child(13) {
        transition-delay: .18s;
    }
}

/* =========================================================
   section
========================================================= */
.section {
    position: relative;
    padding: 80px 0;
    background: linear-gradient(180deg, #080808, #101010);
    overflow: hidden
}
.section--light {
    background: var(--paper);
    color: var(--paperText);
    position: relative;
}
.section__inner {
    width: min(1200px, 92vw);
    margin: auto;
}
.section__head {
    margin-bottom: 80px;
    display: grid;
    gap: 8px;
    margin: 0 auto 20px;
    max-width: 1100px
}
.section__head--center {
    text-align: center;
    justify-items: center
}
.section__head h2 {
    margin: 0;
    font-family: var(--serif);
    font-weight: 600;
    font-size: clamp(64px, 7vw, 120px);
    line-height: .9;
}
.section__head h2 span {
    color: var(--accent);
}
.section__head p {
    margin-top: 16px;
    font-family: var(--serif);
    letter-spacing: .35em;
    color: #766536;
}
.section__head::after {
    width: 180px;
    margin-top: 20px;
    content: "";
    height: 2px;
    background: linear-gradient(90deg, transparent, rgba(0, 0, 0, .35), transparent);
    mix-blend-mode: overlay;
    filter: blur(.4px);
}
@media (max-width:860px) {
    .section {
        padding: 70px 0;
    }
    .section__head {
        width: calc(100% - 36px);
        margin: 0 auto 42px;
    }
    .section__head h2 {
        font-size: 50px;
        line-height: .9;
        word-break: keep-all;
    }
    .section__head::after {
        width: 110px;
        margin-top: 18px;
    }
}

/* ==========================================
   TOPICS
========================================== */
.section--news {
    position:relative; color:var(--ink);align-items:start;
    padding:36px 0;
    background:
        radial-gradient(ellipse at 8% 14%,rgba(110,31,24,.10),transparent 24%),
        radial-gradient(ellipse at 90% 78%,rgba(17,16,15,.08),transparent 28%),
        linear-gradient(104deg,transparent 0 13%,rgba(17,16,15,.025) 13.2%,transparent 13.5%),
        url("../img/news-texture.webp") center/cover no-repeat;
    background-color:var(--paper-solid);
}
/*.section--news::before {
    content:""; position:absolute; left:0; right:0; top:0; height:3px;
    background:linear-gradient(90deg,transparent 0 3%,var(--blood) 3% 10%,var(--accent) 10% 15%,transparent 34%);
}*/
.section--news::after {
    content:"NEWS / VIDEO"; position:absolute; left:1.2vw; top:52%;
    transform:translateY(-50%); writing-mode:vertical-rl;
    color:rgba(17,16,15,.38); font-family:var(--serif);
 font-weight:600; letter-spacing:.30em;
}
.section--news > .section__head {
width:min(1340px,90vw); max-width:none; margin:0 auto 26px; justify-items:start;
}
.section--news > .section__head h2{
    color:var(--ink);
    font-family:var(--jpSerif);
    font-weight:800;
    font-size:clamp(42px,4.2vw,72px);
    line-height:.88;
    letter-spacing:-.045em;
}
.section--news > .section__head::after{
    width:76px;
    height:3px;
    margin-top:14px;
    background:linear-gradient(
        90deg,
        var(--blood) 0%,
        var(--blood) 28%,
        var(--accent) 62%,
        rgba(168,152,88,.35) 82%,
        transparent 100%
    );
    opacity:1;
}
.topics { max-width:min(1000px,80vw); margin:0 auto; padding:0; }
.topics__list { margin:0; padding:0; list-style:none; }

.topicItem {
    display:grid; grid-template-columns:98px 1fr; align-items:center;
    gap:24px; margin:auto; padding:17px 0;
    background:linear-gradient(var(--line-dark),var(--line-dark)) bottom left / 100% 1px no-repeat;
}
.topicItem time { display:flex; flex-direction:column; min-width:72px; font-family:var(--serif); line-height:1; }
.topicItem time .year { font-size:11px; font-weight:700; letter-spacing:.15em; }
.topicItem time .date { margin-top:5px; color:var(--blood); font-size:32px; font-weight:600; line-height:.9; }
.topicItem a { position:relative; padding-left:30px; font-family:var(--jpSerif);}
.topicItem a::before {
    content:""; position:absolute; left:0; top:50%; width:16px; height:2px;
    background:linear-gradient(90deg,var(--blood),var(--accent)); transition:width .4s;
}
.topicItem:hover a { color:var(--blood); }
.topicItem:hover a::before { width:26px; }
.topics__more { max-width:88vw; margin:28px auto 0; text-align:right; }
.topicsvideo__more { max-width:1080px; }
.topics__more a { display:inline-flex; flex-direction:column; gap:6px; font-family:var(--serif); font-size:.9rem; font-weight:600;     text-shadow:
        0 0 3px #fff,
        0 0 6px rgba(255,255,255,.9),
        0 0 10px rgba(255,255,255,.6);}
.topics__more a::after { content:""; width:38px; height:1px; background:var(--accent); transition:width .4s; }
.topics__more a:hover { color:var(--blood); }
.topics__more a:hover::after { width:88px; }

@media(max-width:1240px) {
    .topics { max-width:88%; }
}
@media(max-width:860px) {
    .section--news { padding:46px 0 60px; }
    .section--news::after { display:none; }
    .section--news > .section__head { width:calc(100% - 36px); margin:0 auto 22px; }
    .section--news > .section__head h2 { font-size:40px;}
    .section--news > .section__head::after { margin-top:10px; }
    .topics { width:calc(100% - 36px); max-width:none; margin:0 auto; }
    .topicItem { grid-template-columns:1fr; gap:7px; padding:14px 0; }
    .topicItem time { min-width:0; }
    .topicItem time .year { font-size:10px; }
    .topicItem time .date { font-size:30px; }
    .topicItem a { padding-left:14px; font-size:.94rem; line-height:1.75; }
    .topicItem a::before { top:1em; width:10px; }
    .topics__more { margin-top:22px; text-align:right; }
    
}

/* ==========================================
   TOPICS MOVIE
========================================== */
.topicsMovie {
    position: relative;
    width: 88vw;
    margin: 0 auto;
    padding: 60px 0;
}

/* PC：3枠 */
.topicsMovie__grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: clamp(20px, 2.5vw, 36px);
    align-items: start;
}

.topicsMovie__inner{
    width:100%;
    margin:0;
}


.topicsMovie__thumb{
    position:relative;
    display:block;
    width:100%;
    aspect-ratio:16 / 9;
    overflow:hidden;
    background:#000;

    box-shadow:
        -10px 12px 0 rgba(110,31,24,.18),
        0 20px 42px rgba(17,16,15,.12);
}


.topicsMovie__thumb img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;

    transition:
        transform 1.1s var(--ease),
        filter 1.1s var(--ease);
}


.topicsMovie__overlay{
    position:absolute;
    inset:0;

    background:linear-gradient(
        180deg,
        rgba(0,0,0,.04),
        rgba(0,0,0,.24) 48%,
        rgba(0,0,0,.68)
    );
}


.topicsMovie__play{
    position:absolute;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
}


.topicsMovie__playCircle{
    position:relative;
    display:block;

    width:70px;
    height:70px;

    border:2px solid #fff;
    border-radius:50%;

    transition:.4s var(--ease);
}


.topicsMovie__playTriangle{
    position:absolute;

    left:29px;
    top:21px;

    width:0;
    height:0;

    border-top:13px solid transparent;
    border-bottom:13px solid transparent;
    border-left:20px solid #fff;
}


/* サムネイル上の動画タイトル */
.topicsMovie__title {
    position: absolute;
    z-index: 3;
    left: 18px;
    right: 18px;
    bottom: 14px;

    color: #fff;
    font-family: var(--jpSerif);
    font-size: clamp(13px, 1.15vw, 18px);
    font-weight: 700;
    line-height: 1.5;
    letter-spacing: .03em;

    text-shadow:
        0 1px 4px rgba(0,0,0,.9),
        0 2px 12px rgba(0,0,0,.7);

    pointer-events: none;
}



@media(hover:hover){

    .topicsMovie__thumb:hover img{
        transform:scale(1.025);
        filter:brightness(.72);
    }

    .topicsMovie__thumb:hover .topicsMovie__playCircle{
        border-color:var(--ember);
        transform:scale(1.07);
    }

    .topicsMovie__thumb:hover .topicsMovie__playTriangle{
        border-left-color:var(--ember);
    }

}


/* ==========================================
   SP：段積み
========================================== */
@media(max-width:860px){

.topicsMovie {
    width: 70%;
    padding: 46px 0 54px;
}
    .topicsMovie__grid{
        grid-template-columns:1fr;
        gap:26px;
    }

    .topicsMovie__inner{
        width:100%;
    }

    .topicsMovie__thumb{
        box-shadow:-7px 8px 0 rgba(110,31,24,.18);
    }

    .topicsMovie__playCircle{
        width:60px;
        height:60px;
    }

    .topicsMovie__playTriangle{
        left:24px;
        top:18px;

        border-top-width:11px;
        border-bottom-width:11px;
        border-left-width:17px;
    }
    
    
        .topicsMovie__title {
        left: 12px;
        right: 12px;
        bottom: 10px;
        font-size: clamp(12px, 3.5vw, 15px);
    }

}

/* ==========================================
   VIDEO MODAL
========================================== */
.videoModal {
    position:fixed; inset:0; z-index:20000;
    opacity:0; visibility:hidden; transition:.35s;
}
.videoModal.is-open {
    opacity:1; visibility:visible;
}

.videoModal__bg {
    position:absolute; inset:0;
    background:rgba(0,0,0,.88);
    backdrop-filter:blur(12px);
}
.videoModal__dialog {
    position:absolute; left:50%; top:50%;
    width:min(960px,92vw);
    transform:translate(-50%,-50%);
}
.videoModal__frame {
    position:relative; padding-top:56.25%;
}
.videoModal iframe {
    position:absolute; inset:0;
    width:100%; height:100%; border:0;
}

.videoModal__close {
    position:absolute; top:-56px; right:0;
    width:52px; height:52px;
    background:none; border:0; cursor:pointer;
}
.videoModal__close span {
    position:absolute; left:50%; top:50%;
    width:34px; height:1px;
    background:var(--accent);
    transition:width .35s, background .35s;
}
.videoModal__close span:first-child {
    transform:translate(-50%,-50%) rotate(45deg);
}
.videoModal__close span:last-child {
    transform:translate(-50%,-50%) rotate(-45deg);
}
.videoModal__close:hover span {
    width:46px; background:#fff;
}

body.modal-open { overflow:hidden; }

@media(max-width:860px) {
    .videoModal__close { top:-44px; }
    .videoModal__closeLine { width:18px; }
    .videoModal__close:hover .videoModal__closeLine { width:34px; }
}

/*=========================================
INTRO / STORY COMMON
=========================================*/

.section--intro,
.section--story {
    position:relative;
    overflow:hidden;
    color:var(--ink);
    background-color:#e7e4dc;
}

.section--intro .section__inner,
.section--story .section__inner {
    position:relative;
    z-index:1;
    width:min(1440px,90vw);
    display:grid;
    grid-template-columns:repeat(12,minmax(0,1fr));
    column-gap:clamp(16px,1.8vw,30px);
    row-gap:clamp(24px,2.4vw,38px);
    align-items:start;
}

/* 背景英字 */
.section--intro::before,
.section--story::before {
    position:absolute;
    z-index:0;
    font-family:var(--serif);
    font-weight:600;
    line-height:.72;
    letter-spacing:-.07em;
    white-space:nowrap;
    color:rgba(17,16,15,.035);
    pointer-events:none;
}

.section--intro .section__head,
.section--story .section__head {
    position:relative;
    z-index:2;
    width:auto;
    max-width:none;
    margin:0;
}

.section--intro .section__head h2,
.section--story .section__head h2 {
    color:var(--ink);
    font-family:var(--jpSerif);
    font-weight:800;
    letter-spacing:-.035em;
     font-size:clamp(52px,5vw,82px);
    line-height:.9;
}

.section--intro .section__head::after,
.section--story .section__head::after {
    content:"";
    width:58px;
    height:3px;
    margin-top:15px;
    background:linear-gradient(
        90deg,
        var(--blood,#6c2b20),
        var(--accent),
        transparent
    );
}

.introLead__copy,
.storyLead__copy {
    font-family:var(--jpSerif);
    font-weight:700;
}

.introBody p,
.story__body p {
    color:rgba(17,16,15,.9);
    font-family:var(--jpSerif);
    font-weight: 600;
    font-size:clamp(15px,.95vw,17px);
    line-height:1.75;
    letter-spacing:.035em;
}


/*=========================================
INTRODUCTION
=========================================*/
.section--intro {
    padding:clamp(82px,6vw,104px) 0 clamp(64px,4.5vw,78px);
    background:
        linear-gradient(rgba(235,232,224,.48),rgba(235,232,224,.48)),
        url("../img/intro-texture.webp") center / cover no-repeat;
    background-color:#e7e4dc;
}

.section--intro::before {
    content:"LEGACY";
    right:-.10em;
    top:.06em;
    font-size:clamp(106px,12.5vw,224px);
}

.section--intro .section__head {
    grid-column:1 / span 5;
    grid-row:1 / span 2;
    justify-self:start;
    text-align:left;
    justify-items:start;
}



.introLead {
    grid-column:6 / -1;
    grid-row:1;
    width:100%;
    max-width:650px;
    margin-left:auto;
}

.introLead__copy {
    margin:0 0 34px;
    text-align:left;
    font-size:clamp(1.73rem,1.96vw,2.37rem);
    line-height:1.62;
    letter-spacing:.025em;
}

.introLead__copy:last-child {
    margin-bottom:0;
    color:#5d1e18;
}

.introBody {
    grid-column:6 / -1;
    grid-row:2;
    width:100%;
    max-width:640px;
    margin-left:auto;
    padding-left:clamp(22px,2vw,34px);
    background:linear-gradient(
        var(--blood,#6c2b20),
        var(--accent) 42%,
        transparent 94%
    ) left top / 3px 100% no-repeat;
}

.introBody p:last-child {
    margin-bottom:0;
}

.introLinks {
    grid-column:6 / -1;
    grid-row:3;
    display:flex;
    gap:36px;
    width:100%;
    max-width:640px;
    margin:10px 0 0 auto;
    padding-top:18px;
    border-top:1px solid var(--ink);
}

.introLink {
    flex:1;
    min-width:0;
    padding:0 10px;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:14px;
    color:#6f5b27;
    font-family:var(--serif);
    font-size:1.15rem;
    line-height:1.35;
    letter-spacing:.02em;
    text-align:center;
}

.introLink span {font-weight: 600;
    color:#2d2a26;
    font-size:1rem;
    line-height:1.7;
    letter-spacing:.04em;
}

.introLink::after {
    content:"";
    width:54px;
    height:1px;
    margin-top:4px;
    background:var(--accent);
    transition:width .35s var(--ease);
}

.introLink:hover,
.introLink:hover span {
    color:var(--accent);
}

.introLink:hover::after {
    width:90px;
}


/*=========================================
STORY
=========================================*/
.section--story {
    margin-top:-1px;
    padding:clamp(56px,4vw,72px) 0 clamp(82px,6vw,108px);
    background:
        linear-gradient(rgba(235,232,224,.48),rgba(235,232,224,.48)),
        url("../img/story-texture.webp") center / cover no-repeat;
    background-color:#e7e4dc;
}

.section--story::before {
    content:"RECKONING";
    left:-.08em;
    top:.10em;
    font-size:clamp(116px,13.5vw,238px);
}

.section--story .section__head {
    grid-column:7 / -1;
    grid-row:1;
    margin-left:auto;
    justify-self:end;
    text-align:right;
    justify-items:end;
}


.story {
    grid-column:1 / span 7;
    grid-row:1 / span 2;
    width:100%;
    max-width:760px;
}

.storyLead {
    width:100%;
    max-width:620px;
    margin-top:4px;
}

.storyLead__copy {
    margin:0;
    color:#6c2b20;
    font-size:clamp(1.62rem,1.9vw,2.28rem);
    line-height:1.58;
    letter-spacing:.022em;
}

.story__body {
    width:min(680px,92%);
    margin:clamp(30px,2.8vw,42px) 0 0 clamp(28px,3vw,48px);
    padding-left:clamp(22px,2vw,34px);
    background:linear-gradient(
        var(--blood,#6c2b20),
        var(--accent) 42%,
        transparent 94%
    ) left top / 3px 100% no-repeat;
}

.story__body p:last-child {
    margin-bottom:0;
}


/*=========================================
INTRO / STORY SP
=========================================*/
@media(max-width:860px) {

    .section--intro {
        padding:66px 0 54px;
        
    }

    .section--story {
        padding:30px 0 90px;
        background-size:auto, auto 115%;
        background-position:center, 69% 20%;
        background-repeat:no-repeat;
    }

    .section--intro .section__inner,
    .section--story .section__inner {
        width:calc(100% - 36px);
        display:block;
    }

    .section--intro .section__head,
    .section--story .section__head {
        width:max-content;
        max-width:100%;
        margin-bottom:28px;
    }

    .section--intro .section__head::after,
    .section--story .section__head::after {
        width:42px;
        height:2px;
        margin-top:13px;
    }

    .introLead,
    .introBody,
    .introLinks,
    .story,
    .storyLead,
    .story__body {
        width:100%;
        max-width:none;
        margin-left:0;
        margin-right:0;
    }

    .introLead__copy,
    .storyLead__copy {
        font-size:clamp(1.28rem,5.5vw,1.62rem);
        line-height:1.58;
    }

    .introBody,
    .story__body {
        margin-top:26px;
        padding-left:18px;
        background-size:2px 100%;
    }

    .introBody p,
    .story__body p {
        font-size:15px;
        line-height:1.9;
        letter-spacing:.025em;
    }

    /* INTRO */
    .section--intro .section__head {
        margin-left:0;
        margin-right:auto;
        text-align:left;
        justify-items:start;
    }

.section--intro .section__head h2,
.section--story .section__head h2 {
    font-size:40px;
    line-height:.91;
}

    .section--intro::before {color:rgba(17,16,15,.055);
        top:.24em;
        font-size:25vw;
    }

    .introLead__copy {
        margin-bottom:24px;
    }

    .introBody p {
        margin:0 0 1em;
    }

    .introLinks {
        flex-direction:column;
        align-items:center;
        gap:24px;
        margin-top:34px;
    }

    .introLink {
        width:100%;
        max-width:320px;
    }

    /* STORY */
    .section--story .section__head {
        margin-left:auto;
        margin-right:0;
        text-align:right;
        justify-items:end;
    }

    .section--story::before {color:rgba(17,16,15,.055);
        top:.28em;
        font-size:19vw;
    }

    .storyLead__copy {
        margin-bottom:0;
    }


}


/* ==========================================
   TOPICSとTICKETエリアのバナー ADVANCE NOTICE
========================================== */
.advanceNotice { position:relative; }

.advanceNotice__link {
    position:relative; display:flex; flex-direction:column; align-items:flex-start;
    gap:8px; padding:24px 28px 22px; overflow:hidden;
    border:1px solid var(--blood);
    background:linear-gradient(135deg,rgba(168,152,88,.54),transparent 42%),rgba(255,255,255,.55);
    transition:transform .35s var(--ease), border-color .35s var(--ease), background .35s var(--ease);
}
.advanceNotice__link::before {
    content:""; position:absolute; top:0; left:0;
    width:92px; height:3px; background:var(--blood); transition:width .4s var(--ease);
}

.advanceNotice__title,
.advanceNotice__date { font-family:var(--jpSerif); letter-spacing:.04em; }

.advanceNotice__title { font-size:1.85rem; font-weight:700; line-height:1.5; }
.advanceNotice__date { color:var(--accent); font-size:1.5rem; font-weight:600; line-height:1.4; }

.advanceNotice__more {
    display:inline-flex; align-items:center; gap:12px;
    margin:6px 0 0 auto; color:var(--accent);
    font-family:var(--serif); font-size:.72rem; letter-spacing:.18em;
}
.advanceNotice__more::after {
    content:""; width:34px; height:1px;
    background:currentColor; transition:width .35s var(--ease);
}

.advanceNotice__link:hover {
    transform:translateY(-3px); border-color:rgba(168,152,88,.9);
    background:linear-gradient(135deg,rgba(168,152,88,.20),transparent 48%),rgba(255,255,255,.04);
}
.advanceNotice__link:hover::before { width:160px; }
.advanceNotice__link:hover .advanceNotice__more::after { width:72px; }



/* TOPICS */
.advanceNotice--topics {width:min(900px,100%);margin:48px auto 0;}

.advanceNotice--topics .advanceNotice__link {
    position:relative;
    padding:26px 30px;
    border:1px solid rgba(168,152,88,.42);
    border-left:4px solid var(--blood);

    background:
        linear-gradient(135deg,rgba(168,152,88,.10),transparent 38%),
        linear-gradient(90deg,rgba(255,255,255,.025),transparent 60%),
        rgba(18,17,15,.96);

    box-shadow:
        0 12px 28px rgba(0,0,0,.16),
        inset 0 0 28px rgba(255,255,255,.015);
}

/* 上の短いライン */
.advanceNotice--topics .advanceNotice__link::before {
    width:110px;
    height:2px;
    background:var(--accent);
}



.advanceNotice--topics .advanceNotice__title {color:#f2efe7;font-size:1.5rem;line-height: 1.4;}
.advanceNotice--topics .advanceNotice__date {color:var(--accent);}
.advanceNotice--topics .advanceNotice__more {color:rgba(242,239,231,.62);}

/* hover */
.advanceNotice--topics .advanceNotice__link:hover {
    transform:translateY(-3px);
    border-color:rgba(168,152,88,.72);
    border-left-color:var(--blood);

    background:
        linear-gradient(135deg,rgba(168,152,88,.16),transparent 42%),
        linear-gradient(90deg,rgba(255,255,255,.04),transparent 60%),
        rgba(22,20,18,.98);

    box-shadow:
        0 16px 34px rgba(0,0,0,.22),
        inset 0 0 32px rgba(255,255,255,.02);
}

.advanceNotice--topics .advanceNotice__link:hover::before {width:170px;}
.advanceNotice--topics .advanceNotice__link:hover::after {transform:translate(5px,-50%);}
.advanceNotice--topics .advanceNotice__link:hover .advanceNotice__more::after {width:72px;}

/* TICKET */
.advanceNotice--ticket { margin:4px 0 22px;}
.advanceNotice--ticket .advanceNotice__link {gap:4px; padding:8px 8px 8px;
    border:1px solid rgba(168,152,88,.20);
    border-left:3px solid var(--accent);
    border-top-color:rgba(168,152,88,.38);
    background:linear-gradient(90deg,rgba(168,152,88,.12),transparent 55%),rgba(255,255,255,.018);
    box-shadow:none;
}
.advanceNotice--ticket .advanceNotice__link::before { display:none;}
.advanceNotice--ticket .advanceNotice__title { font-size:1rem;font-family:var(--sans); }
.advanceNotice--ticket .advanceNotice__date{ font-size:0.88rem;font-family:var(--sans); }

/* SP */
@media(max-width:860px) {
    .advanceNotice--topics {
    margin-top:60px;
    width:calc(100% - 40px);
    max-width:none;
}
.advanceNotice--topics .advanceNotice__title {font-size:1.2rem;}
    .advanceNotice__link { gap:6px; padding:18px 16px 16px; }

    .advanceNotice__title,
    .advanceNotice__date { width:100%; font-size:1rem; }

    .advanceNotice__title { line-height:1.6; }
    .advanceNotice__date { line-height:1.5; }

    .advanceNotice__more { margin-top:4px; font-size:.68rem; }
    .advanceNotice--ticket { margin-bottom:18px; }
    .advanceNotice--ticket .advanceNotice__title { font-size:1rem; }
}

/* =========================================================
   PRESS CONFERENCE
========================================================= */
.pressConf{
    position:relative;
    overflow:hidden;
    padding:clamp(32px,3vw,46px) 0;
    color:var(--ink);
    background:
        radial-gradient(ellipse at 8% 12%,rgba(110,31,24,.10),transparent 24%),
        url("../img/news-texture.webp") center top/cover no-repeat;
    background-color:var(--paper-solid);
}
.pressConf::before{
    content:"LIVE";
    position:absolute;
    right:-.08em;
    top:-.08em;
    color:rgba(17,16,15,.045);
    font:600 clamp(120px,18vw,300px)/1 var(--serif);
    letter-spacing:-.06em;
    white-space:nowrap;
    pointer-events:none;
}

.pressConf::after{
    content:"TICKET PRESALE";
    position:absolute;
    left:3.3vw;
    bottom:30px;
    color:rgba(110,31,24,.62);
    font:600 .7rem var(--serif);
    letter-spacing:.28em;
    writing-mode:vertical-rl;
}


/* ---------- LAYOUT ---------- */
.pressConf__inner{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(300px,.7fr) minmax(0,1.5fr);
    align-items:center;
    gap:clamp(28px,3vw,44px);
    width:min(1340px,90vw);
    margin:auto;
}

.pressConf__head{
    text-align:left;
}


/* ---------- YOUTUBE LIVE ---------- */
.pressConf__eyebrow{
    display:flex;
    align-items:center;
    gap:10px;
    margin:0 0 12px;
    font:600 .74rem/1 var(--serif);
    letter-spacing:.26em;
}

.pressConf__eyebrow img{
    width:22px;
    height:22px;
    object-fit:contain;
   filter:
        brightness(0)
        saturate(100%)
        invert(16%)
        sepia(92%)
        saturate(5200%)
        hue-rotate(356deg)
        brightness(95%)
        contrast(120%);
}


/* ---------- TITLE ---------- */
.pressConf__title{
    margin:0;
    font:700 clamp(2rem,3vw,3.45rem)/1.02 var(--jpSerif);
    letter-spacing:.01em;
}

.pressConf__title::after{
    content:"";
    display:block;
    width:52px;
    height:1px;
    margin-top:14px;
    background:var(--accent);
}


/* ---------- DATE ---------- */
.pressConf__date{
    display:flex;
    align-items:baseline;
    gap:8px;
    margin:12px 0 0;
    color:var(--accent);
    font-family:var(--jpSerif);
    font-weight:700;
    line-height:1;
}

.pressConf__date strong{
    font:600 clamp(2.5rem,3.8vw,4rem)/.95 var(--serif);
}

.pressConf__date span{
    color:var(--ink);
    font-size:clamp(1rem,1.35vw,1.3rem);
}


/* ---------- CAST ---------- */
.pressConf__cast{
    margin-top:12px;
    padding-top:11px;
    border-top:1px solid var(--line-dark);
}

.pressConf__castLabel{
    margin:0 0 6px;
    color:var(--accent);
    font:700 .78rem var(--jpSerif);
    letter-spacing:.16em;
}

.pressConf__castNames{
    margin:0;
    color:rgba(17,16,15,.78);
    font:600 clamp(.72rem,.78vw,.84rem)/1.55 var(--jpSerif);
    letter-spacing:.01em;
}

.pressConf__castNames small{
    font-size:.68em;
}


/* ---------- CHANNEL ---------- */
.pressConf__channel{
    margin-top:16px;
}

.pressConf__channelLink{
    display:inline-flex;
    align-items:center;
    gap:9px;
    padding:7px 0 5px;
    color:var(--ink);
    border-bottom:1px solid var(--ink);
    font:600 .82rem var(--jpSerif);
    letter-spacing:.06em;
    transition:.35s var(--ease);
}

.pressConf__channelLink img{
    width:20px;
    height:20px;
    filter:brightness(.2);
}


/* ---------- MOVIE ---------- */
.pressConf__movie{
    position:relative;
    display:block;
    justify-self:end;
    width:min(760px,100%);
    aspect-ratio:16 / 9;
    overflow:hidden;
    background:#030303;
    box-shadow:
      10px 12px 0 rgba(110,31,24,.12),
        0 18px 42px rgba(17,16,15,.10);
}

.pressConf__movie::before{
    content:"WATCH";
    position:absolute;
    right:0;
    bottom:0;
    z-index:4;
    padding:10px 16px 9px;
    color:#fff;
    background:var(--accent);
    font:600 .68rem var(--serif);
    letter-spacing:.24em;
}

.pressConf__thumb{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:1.2s var(--ease);
}

.pressConf__movieOverlay{
    position:absolute;
    inset:0;
    background:linear-gradient(
        180deg,
        rgba(0,0,0,.04),
        rgba(0,0,0,.15) 48%,
        rgba(0,0,0,.58)
    );
}

.pressConf__movieLabel{
    position:absolute;
    z-index:2;
    left:24px;
    top:20px;
    color:rgba(255,255,255,.72);
    font:.68rem var(--serif);
    letter-spacing:.28em;
}


/* ---------- PLAY ---------- */
.pressConf__play{
    position:absolute;
    z-index:3;
    left:50%;
    top:50%;
    transform:translate(-50%,-50%);
}

.pressConf__playCircle{
    position:relative;
    display:block;
    width:88px;
    height:88px;
    border:2px solid #fff;
    border-radius:50%;
    background:rgba(0,0,0,.18);
    backdrop-filter:blur(4px);
    transition:.4s var(--ease);
}

.pressConf__playTriangle{
    position:absolute;
    left:36px;
    top:27px;
    border-top:16px solid transparent;
    border-bottom:16px solid transparent;
    border-left:24px solid #fff;
}


/* ---------- HOVER ---------- */
@media(hover:hover){
    .pressConf__movie:hover .pressConf__thumb{
        transform:scale(1.035);
        filter:brightness(.72);
    }

    .pressConf__movie:hover .pressConf__playCircle{
        transform:scale(1.08);
        background:var(--accent);
    }

    .pressConf__channelLink:hover{
        color:var(--accent);
        border-color:var(--accent);
    }
}

/* SP */
@media (max-width:860px) {
    .pressConf { padding:44px 0 50px; }
    .pressConf::before { right:-.04em; top:.12em; font-size:52vw; }
    .pressConf::after { display:none; }

    .pressConf__inner {
        width:calc(100% - 36px);
        display:flex;
        flex-direction:column;
        gap:24px;
    }

    .pressConf__head { width:100%; margin-bottom:10px; }

    .pressConf__eyebrow {
        gap:9px;
        margin-bottom:16px;
        font-size:.68rem;
        letter-spacing:.24em;
    }
    .pressConf__eyebrow img { width:22px; height:22px; }

    .pressConf__title {
        font-size:clamp(2.25rem,11vw,3.4rem);
        line-height:1.28;
    }

    .pressConf__date {
        flex-direction:column;
        align-items:flex-start;
        gap:2px;
        margin-top:20px;
    }
    .pressConf__date strong {
        font-size:clamp(3.4rem,17vw,4.6rem);
        line-height:1;
    }
    .pressConf__date span { font-size:1rem; }

    .pressConf__cast {
        margin-top:20px;
        padding-top:16px;
    }
    .pressConf__castLabel { font-size:.78rem; }
    .pressConf__castNames { font-size:.78rem; line-height:1.95;letter-spacing: 0; }
 .pressConf__castNames small{ font-size:.48rem;}
    
    
    .pressConf__movie { box-shadow:12px 14px 0 rgba(17,16,15,.11); }
    .pressConf__movieLabel { left:16px; top:14px; font-size:.58rem; }

    .pressConf__playCircle { width:68px; height:68px; }
    .pressConf__playTriangle {
        left:28px;
        top:21px;
        border-top-width:13px;
        border-bottom-width:13px;
        border-left-width:19px;
    }

    .pressConf__channel { margin-top:24px; }
    .pressConf__channelLink {
        gap:9px;
        padding:13px 12px;
        font-size:.78rem;
    }
}



/*=========================================
SCHEDULE HERO
=========================================*/
.scheduleHero{font-family: var(--sans);
    position:relative;
    overflow:hidden;
    color:#fff;
    padding:50px 0 36px;

    background:
        linear-gradient(
            180deg,
            rgba(5,5,5,.04) 0%,
            rgba(5,5,5,.14) 45%,
            rgba(5,5,5,.24) 100%
        ),
        url("../img/ticket-black-texture.webp") center top / 115% auto repeat-y,
        #050505;
}
.scheduleHero::before {
    content:"SCHEDULE"; position:absolute; right:-.08em; top:-.11em;
    color:rgba(255,255,255,.035); font-family:var(--jpSerif); font-weight:800;
    font-size:clamp(120px,18vw,320px); line-height:.9; letter-spacing:-.07em;
  pointer-events:none; white-space:nowrap;
}


.scheduleHero__inner{
    position:relative;
    z-index:1;
    display:block;
    width:min(1240px,90vw);
    margin:0 auto 42px;
}
.scheduleHero__content { position:relative; width:100%; max-width:1020px; margin:0; text-align:left; }
.scheduleHero__eyebrow {
    margin:0 0 16px; color:var(--accent-bright);
    font-family:var(--serif); font-size:.78rem; font-weight:600; letter-spacing:.34em;
}
.scheduleHero__title{
    margin:0;
    font-family:var(--jpSerif);
    font-size:clamp(52px,5vw,82px);
    font-weight:800;
    line-height:.82;
    letter-spacing:-.055em;
}
.scheduleHero__title span { color:var(--ember); }
.scheduleHero__cities{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:0 30px;
    width:100%;
    max-width:820px;
    margin:24px 0 0;
    padding:0;
    list-style:none;
}
.scheduleHero__cities a { display:inline-block; }
.scheduleHero__cities li {
    position:relative; padding:10px 0; color:rgba(255,255,255,.82); border:0;
    font-family:var(--serif); letter-spacing:.22em; transition:color .3s;
}
.scheduleHero__cities li::before { content:"／"; margin-right:12px; color:var(--ember); letter-spacing:0; }
.scheduleHero__cities li::after {
    content:""; position:absolute; left:0; bottom:5px; width:0; height:1px;
    background:linear-gradient(90deg,var(--ember),var(--accent)); transition:width .35s var(--ease);
}
.scheduleHero__cities li:hover { color:var(--accent); background:none; padding-left:0; }
.scheduleHero__cities li:hover::after { width:100%; }

/*=========================================
SCHEDULE BLOCK
=========================================*/
/*=========================================
ACCESSIBILITY SUPPORT
=========================================*/
.scheduleSupport{
    width:min(1180px,calc(100% - 48px));
    margin:-8px auto 72px;
}

.scheduleSupport__link{
    font-family:var(--jpSerif);
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
    min-height:92px;
    padding:22px 86px 22px 30px;

    border:1px solid rgba(255,255,255,.18);
    background:rgba(255,255,255,.055);

    color:#fff;
    text-decoration:none;
    transition:.35s var(--ease);
}

.scheduleSupport__link::before{
    content:"ACCESSIBILITY";
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;

    min-width:150px;
    padding:8px 14px;

    border:1px solid rgba(181,166,106,.55);
    color:var(--accent-bright);

    font-family:var(--enSans);
    font-size:.7rem;
    letter-spacing:.18em;
}

.scheduleSupport__link::after{
    content:"";
    position:absolute;
    right:30px;
    top:50%;
    width:42px;
    height:1px;
    background:rgba(255,255,255,.65);
    transform:translateY(-50%);
    transition:.35s var(--ease);
}

.scheduleSupport__link:hover{
    background:rgba(255,255,255,.09);
    border-color:rgba(181,166,106,.48);
}

.scheduleSupport__link:hover::after{
    width:62px;
    background:var(--accent-bright);
}

.scheduleSupport__label{
    display:none;
}

.scheduleSupport__title{
    flex:1;
    display:flex;
    align-items:center;
    gap:18px;
    font-size:clamp(1.1rem,2vw,1.2rem);
    letter-spacing:.04em;
}

.scheduleSupport__heading{
    flex:0 0 auto;
    padding-right:18px;
    border-right:1px solid rgba(255,255,255,.25);
    color:var(--accent-bright);
}

.scheduleSupport__text{
    flex:1;
}

.scheduleBlock{
    position:relative;
    width:min(1080px,82vw);
    margin:0 auto 76px;
}

.scheduleBlock__head{
    display:grid;
    grid-template-columns:150px 1fr;
    align-items:end;
    gap:24px;
    margin-bottom:28px;
    padding:22px 0 14px;
    border-bottom:0;
    background:linear-gradient(90deg,var(--blood),var(--accent) 20%,rgba(255,255,255,.18) 58%,transparent) bottom left / 100% 2px no-repeat;
}

.scheduleBlock__head::after{display:none;}

.scheduleBlock__en{
    margin:0 0 7px;
    color:var(--accent-bright);
    font:600 .85rem/1 var(--serif);
    letter-spacing:.35em;
}

.scheduleBlock__title{
    margin:0;
    font:700 clamp(2.5rem,4vw,4.2rem)/1 var(--jpSerif);
    letter-spacing:.04em;
}

.scheduleCalendar{
    margin:0 auto 20px;
    padding:20px;
    overflow-x:auto;
    background:#333;
    box-shadow:12px 12px 0 rgba(168,152,88,.13);
}

.scheduleCalendar img{display:block;width:100%;height:auto;}

.scheduleRow{
    display:grid;
    grid-template-columns:150px minmax(0,1fr);
    align-items:start;
    gap:24px;
    padding:12px 0;
    color:var(--text);
    border-top:1px solid rgba(255,255,255,.16);
}

.scheduleRow:first-child{padding-top:0;border-top:0;}

.scheduleLabel{
    color:var(--accent-bright);
    font-family:var(--jpSerif);
    font-weight:700;
    letter-spacing:.08em;
}

.scheduleValue{display:flex;flex-direction:column;gap:.15rem;}
.scheduleValue p,.saleItem p{margin:0;}
.scheduleValue img{display:block;width:80%;}

.officialLink{
    display:inline-flex;
    align-items:center;
    gap:8px;
    margin:0 0 10px auto;
    color:var(--accent-bright);
    font:400 .8rem var(--serif);
    letter-spacing:.18em;
}

.officialLink::after{
    content:"";
    width:28px;
    height:1px;
    background:currentColor;
    transition:width .35s;
}

.officialLink:hover::after{width:44px;}

.ticketInfo{padding-top:5px;}
.ticketInfo p{margin:0 0 7px;}
.saleItem span{color:var(--accent-bright);}

.saleInfo{gap:6px;}

.saleItem{
    display:grid;
    grid-template-columns:6em 1fr;
    align-items:baseline;
    gap:16px;
}

.saleItem span{font-weight:700;}
.priceList{gap:5px;}

.priceList > div{
    display:grid;
    grid-template-columns:7em auto;
    gap:16px;
    max-width:220px;
}

.priceList span{color:#ddd;}

.priceList strong{
    font-weight:700;
    text-align:right;
    font-variant-numeric:tabular-nums;
}

.ticketLinks{
    display:grid;
    gap:5px;
    margin-top:7px;
}

.ticketLinks a{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:space-between;
    min-height:48px;
    padding:9px 20px;
    background:linear-gradient(90deg,rgba(110,31,24,.11),transparent 34%),rgba(255,255,255,.028);
    border-left:2px solid rgba(110,31,24,.54);
    border-top:1px solid rgba(181,166,106,.34);
    border-bottom:1px solid rgba(255,255,255,.05);
    transition:.35s;
}

.ticketLinks a::after{
    content:"";
    width:42px;
    height:1px;
    background:var(--accent-bright);
    transition:.35s var(--ease);
}

.ticketLinks a:hover{
    transform:translateX(6px);
    background:rgba(168,152,88,.10);
}

.ticketLinks a:hover::after{
    width:72px;
    transform:translateX(6px);
}

.ticketLinks small{
    display:block;
    margin:-1px 0 5px;
    padding-left:16px;
    color:#b2b1b1;
    font-size:.78rem;
    line-height:1.45;
}

.ticketNote{
    margin-top:10px;
    color:#999;
    font-size:.84rem;
    line-height:1.6;
}


/*=========================================
SCHEDULE PC / 2 COLUMN
=========================================*/
@media(min-width:1024px){

    .scheduleBlock{
        width:min(1240px,90vw);
        margin-bottom:56px;
    }

    .scheduleBlock__head{
        grid-template-columns:140px minmax(0,1fr);
        gap:24px;
        margin-bottom:24px;
        padding:18px 0 12px;
    }

    .scheduleBlock__title{
        font-size:clamp(2.3rem,3vw,3.7rem);
    }

    .scheduleBlock__grid{
        display:grid;
        grid-template-columns:minmax(0,.88fr) minmax(0,1fr);
        column-gap:clamp(44px,4vw,70px);
        align-items:start;
    }

    .scheduleBlock__left,
    .scheduleBlock__right{min-width:0;}

    .scheduleBlock__left{
        position:relative;
        padding-right:8px;
    }

    .scheduleBlock__right{
        position:relative;
        padding-left:34px;
        border-left:1px solid rgba(255,255,255,.13);
    }

    .scheduleBlock__right::before{
        content:"TICKET INFORMATION";
        display:block;
        margin:0 0 12px;
        color:rgba(255,255,255,.34);
        font:600 .67rem/1 var(--serif);
        letter-spacing:.30em;
    }

    .scheduleBlock__left > .scheduleValue{
        gap:6px;
        margin-bottom:16px;
    }

    /* 公演期間・劇場名 */
    .scheduleBlock__left > .scheduleValue img{
        width:min(88%,400px);
    }

    .scheduleBlock__left .officialLink{
        margin:2px 0 0 auto;
        font-size:.72rem;
    }

    .scheduleBlock__left .scheduleCalendar{
        width:100%;
        margin:0;
        padding:18px;
        box-shadow:10px 10px 0 rgba(168,152,88,.11);
    }

    .scheduleBlock__right .scheduleRow{
        grid-template-columns:105px minmax(0,1fr);
        gap:20px;
        padding:11px 0 12px;
    }

    .scheduleBlock__right .scheduleLabel{
        font-size:.88rem;
        line-height:1.45;
        letter-spacing:.05em;
    }

    .scheduleBlock__right .scheduleLabel small{
        display:block;
        margin-top:3px;
        font-size:.64rem;
        line-height:1.45;
    }

    .scheduleBlock__right .scheduleValue{
        font-size:.9rem;
        line-height:1.6;
    }

    .scheduleBlock__right .ticketLinks a{
        min-height:44px;
        padding:8px 42px 8px 15px;
    }

    .scheduleBlock__right .advanceNotice--ticket{
        margin:2px 0 12px;
    }
}
/*=========================================
SCHEDULE TABLET
=========================================*/
@media(max-width:1023px) {
    .scheduleBlock__grid { display:block; }

    .scheduleBlock__right {
        margin-top:0; padding-left:0; border-left:0;
    }
    .scheduleBlock__right::before { display:none; }
}


/*=========================================
SCHEDULE SP
=========================================*/
@media(max-width:860px) {
    
        .scheduleHero{
        background-size:auto, 180% auto, auto;
        background-position:center, center top, center;
    }
    .scheduleHero { padding:50px 0 48px; }
    .scheduleHero::before { top:.02em; right:-.18em; font-size:34vw; }
    .scheduleHero__inner { width:calc(100% - 36px); margin-bottom:52px; }
    .scheduleHero__content { width:100%; }
    .scheduleHero__eyebrow { margin-bottom:12px; font-size:.65rem; letter-spacing:.24em; }
    .scheduleHero__title {  font-size:40px; line-height:.82; }


    .scheduleHero__cities {
        width:100%;
        margin-top:26px;
        display:grid;
        grid-template-columns:1fr 1fr;
        gap:0 18px;
    }

    .scheduleHero__cities li {
        display:flex;
        align-items:center;
        font-size:1.2rem;
        letter-spacing:.12em;
        padding:8px 0;
        border-bottom:1px solid rgba(181,166,106,.28);
    }

    .scheduleHero__cities li::before {
        content:"↓";
        flex:0 0 auto;
        margin-right:10px;
        color:var(--ember);
        font-size:.8rem;
        line-height:1;
        letter-spacing:0;
    }

    .scheduleHero__cities a {
        display:block;
        width:auto;
    }

    .scheduleHero__cities li::after {
        display:none;
    }

.scheduleSupport{
    width:calc(100% - 36px);
    margin:-6px auto 52px;
}

.scheduleSupport__link{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:0;
    padding:20px 18px;
    text-align:center;
}

.scheduleSupport__link::before{
    display:block;
    min-width:0;
    padding:0;
    border:0;
    color:var(--accent-bright);
    font-size:.68rem;
    letter-spacing:.18em;
}

.scheduleSupport__link::after{
    display:none;
}

.scheduleSupport__title{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    margin:0;
    font-size:1.05rem;
    line-height:1.6;
    text-align:center;
}

.scheduleSupport__heading{
    padding-right:0;
    padding-bottom:4px;
    border-right:0;
    border-bottom:1px solid rgba(255,255,255,.25);
}

.scheduleSupport__text{
    flex:none;
}

    .scheduleBlock { width:calc(100% - 36px); margin-bottom:76px; }
    .scheduleBlock__head { grid-template-columns:1fr; gap:7px; margin-bottom:24px; padding:22px 0 14px; }
    .scheduleBlock__en { font-size:.8rem; }
    .scheduleBlock__title { font-size:2.55rem; }
    .scheduleCalendar { max-width:100%; margin:0 auto 24px; padding:10px; overflow-x:auto; }
    .scheduleRow { grid-template-columns:1fr; gap:8px; padding:14px 0; }
    .scheduleValue img { width:90%; }
    .ticketLinks { gap:6px; margin-top:8px; }
    .ticketLinks a { width:100%; min-height:54px; padding-inline:18px; }
}
/* HERO SPARKS */
.heroSparks{position:absolute;inset:0;z-index:10;overflow:hidden;pointer-events:none;}
.heroSparks i{
    --x:50%;--y:20%;--dx:0px;--dy:-10px;--delay:0s;--speed:1.6s;
    position:absolute;left:var(--x);top:var(--y);width:2px;height:10px;border-radius:50%;
    background:linear-gradient(#fff4cf 0 16%,#ff8a38 38%,#d63a1d 78%,transparent);
    box-shadow:0 0 4px rgba(255,90,42,.95),0 0 10px rgba(210,35,10,.65);
    opacity:0;transform-origin:center;animation:sparkCrackle var(--speed) steps(1,end) var(--delay) infinite;
}
.heroSparks i:nth-child(3n){--speed:1.13s;height:14px;}
.heroSparks i:nth-child(4n){--speed:1.77s;height:7px;width:3px;}
.heroSparks i:nth-child(5n){--speed:2.21s;}

.heroSparks i:nth-child(1){--x:27%;--y:24%;--dx:-10px;--dy:-8px;--delay:-.3s;}
.heroSparks i:nth-child(2){--x:30%;--y:34%;--dx:-12px;--dy:-3px;--delay:-1.1s;}
.heroSparks i:nth-child(3){--x:33%;--y:15%;--dx:-7px;--dy:-12px;--delay:-.65s;}
.heroSparks i:nth-child(4){--x:40%;--y:7%;--dx:-4px;--dy:-13px;--delay:-1.3s;}
.heroSparks i:nth-child(5){--x:48%;--y:5%;--dx:2px;--dy:-15px;--delay:-.2s;}
.heroSparks i:nth-child(6){--x:56%;--y:6%;--dx:3px;--dy:-13px;--delay:-.9s;}
.heroSparks i:nth-child(7){--x:63%;--y:10%;--dx:6px;--dy:-11px;--delay:-.46s;}
.heroSparks i:nth-child(8){--x:69%;--y:17%;--dx:8px;--dy:-9px;--delay:-1.5s;}
.heroSparks i:nth-child(9){--x:73%;--y:25%;--dx:12px;--dy:-5px;--delay:-.7s;}
.heroSparks i:nth-child(10){--x:75%;--y:35%;--dx:12px;--dy:1px;--delay:-1.15s;}
.heroSparks i:nth-child(11){--x:35%;--y:10%;--dx:-6px;--dy:-10px;--delay:-.12s;}
.heroSparks i:nth-child(12){--x:67%;--y:13%;--dx:7px;--dy:-9px;--delay:-.82s;}
.heroSparks i:nth-child(13){--x:24%;--y:30%;--dx:-18px;--dy:-14px;--delay:-.45s;}
.heroSparks i:nth-child(14){--x:29%;--y:18%;--dx:-12px;--dy:-18px;--delay:-1.25s;}
.heroSparks i:nth-child(15){--x:36%;--y:22%;--dx:-8px;--dy:-20px;--delay:-.8s;}
.heroSparks i:nth-child(16){--x:42%;--y:12%;--dx:-4px;--dy:-22px;--delay:-1.55s;}
.heroSparks i:nth-child(17){--x:47%;--y:16%;--dx:2px;--dy:-24px;--delay:-.35s;}
.heroSparks i:nth-child(18){--x:52%;--y:10%;--dx:4px;--dy:-22px;--delay:-1.05s;}
.heroSparks i:nth-child(19){--x:58%;--y:18%;--dx:8px;--dy:-20px;--delay:-.6s;}
.heroSparks i:nth-child(20){--x:64%;--y:20%;--dx:12px;--dy:-18px;--delay:-1.4s;}
.heroSparks i:nth-child(21){--x:70%;--y:24%;--dx:16px;--dy:-15px;--delay:-.2s;}
.heroSparks i:nth-child(22){--x:76%;--y:31%;--dx:20px;--dy:-10px;--delay:-.95s;}
.heroSparks i:nth-child(23){--x:32%;--y:8%;--dx:-10px;--dy:-24px;--delay:-1.7s;}
.heroSparks i:nth-child(24){--x:68%;--y:8%;--dx:10px;--dy:-24px;--delay:-.7s;}
.heroSparks i:nth-child(25){--x:21%;--y:38%;--dx:-24px;--dy:-12px;--delay:-.15s;}
.heroSparks i:nth-child(26){--x:26%;--y:14%;--dx:-18px;--dy:-26px;--delay:-1.35s;}
.heroSparks i:nth-child(27){--x:31%;--y:27%;--dx:-14px;--dy:-18px;--delay:-.55s;}
.heroSparks i:nth-child(28){--x:38%;--y:5%;--dx:-8px;--dy:-28px;--delay:-1.6s;}
.heroSparks i:nth-child(29){--x:44%;--y:20%;--dx:-4px;--dy:-22px;--delay:-.25s;}
.heroSparks i:nth-child(30){--x:50%;--y:7%;--dx:2px;--dy:-30px;--delay:-1.1s;}
.heroSparks i:nth-child(31){--x:55%;--y:24%;--dx:6px;--dy:-20px;--delay:-.7s;}
.heroSparks i:nth-child(32){--x:61%;--y:6%;--dx:10px;--dy:-27px;--delay:-1.45s;}
.heroSparks i:nth-child(33){--x:66%;--y:27%;--dx:14px;--dy:-18px;--delay:-.4s;}
.heroSparks i:nth-child(34){--x:72%;--y:13%;--dx:18px;--dy:-25px;--delay:-1.2s;}
.heroSparks i:nth-child(35){--x:78%;--y:36%;--dx:24px;--dy:-10px;--delay:-.65s;}
.heroSparks i:nth-child(36){--x:81%;--y:22%;--dx:20px;--dy:-18px;--delay:-1.75s;}
@keyframes sparkCrackle{
    0%,66%,100%{opacity:0;transform:translate(0,0) rotate(20deg) scale(.35);}
    70%{opacity:1;transform:translate(0,0) rotate(20deg) scale(1);}
    74%{opacity:.9;transform:translate(var(--dx),var(--dy)) rotate(20deg) scale(.8);}
    78%,91%{opacity:0;}
    88%{opacity:.7;}
}


/* U-NEXT特番：TOPICS常設案内（2026.10.08） */
.unextNotice--top{display:flex;align-items:center;gap:16px;width:min(1000px,80vw);margin:30px auto 22px;padding:16px 20px;border-top:1px solid var(--accent);border-bottom:1px solid var(--line-dark);background:rgba(168,152,88,.07)}
.unextNotice--top .unextNotice__tag{flex:none;color:var(--blood);font-size:12px;font-weight:700;letter-spacing:.05em}
.unextNotice--top .unextNotice__content{flex:1;min-width:0}
.unextNotice--top .unextNotice__title{margin:0;font-family:var(--jpSerif);font-size:15px;font-weight:700;line-height:1.6}
.unextNotice--top .unextNotice__title span{font-weight:400}
.unextNotice--top .unextNotice__date{margin:4px 0 0;font-size:11px;opacity:.7}
.unextNotice--top .unextNotice__link{flex:none;color:var(--blood);font-size:12px;text-decoration:underline;text-underline-offset:4px;white-space:nowrap}
.unextNotice--top .unextNotice__link:hover{opacity:.7}
@media(max-width:860px){.unextNotice--top{width:calc(100% - 36px);flex-wrap:wrap;gap:8px 12px;padding:13px 14px}.unextNotice--top .unextNotice__tag{width:100%}.unextNotice--top .unextNotice__content{flex-basis:100%}.unextNotice--top .unextNotice__title{font-size:14px}.unextNotice--top .unextNotice__link{margin-left:auto}}


/* U-NEXT特番告知：PCは画像バナー1枠と同じ幅 */
@media (min-width: 861px) {
    .unextNotice--top {
        width: calc(
            (min(1320px, 88vw) - clamp(14px, 2vw, 28px) - clamp(14px, 2vw, 28px)) / 3
        );
        flex-direction: column;
        align-items: stretch;
        gap: 6px;
    }

    .unextNotice--top .unextNotice__link {
        align-self: flex-end;
    }
}



/* ==========================================
   TOPICS BANNERS / 最大3枠
========================================== */
.topicsBanners {
    width: min(1320px, 88vw);
    margin: 20px auto 0;
}

.topicsBanners__list {
    --banner-gap: clamp(14px, 2vw, 28px);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: flex-start;
    gap: var(--banner-gap);
}

.topicsBanners__item {
    flex: 0 0 calc((100% - var(--banner-gap) - var(--banner-gap)) / 3);
    min-width: 0;
}

.topicsBanners__item img {
    display: block;
    width: 100%;
    height: auto;
}

/* SP：縦積み */
@media (max-width: 860px) {
    .topicsBanners {
        width: min(450px, calc(100% - 36px));
        margin-top: 18px;
    }

    .topicsBanners__list {
        gap: 16px;
    }

    .topicsBanners__item {
        flex-basis: 100%;
    }
}
