:root {
    color-scheme: dark;
    --gold: #f3ce77;
    --muted: #c9c0b1;
    --line: rgba(226, 177, 79, .28);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 24px; }
body {
    margin: 0;
    color: #fff6e5;
    background: #090706;
    font-family: "Hiragino Kaku Gothic ProN", "Hiragino Sans", "Yu Gothic", Meiryo, sans-serif;
    line-height: 1.65;
}
body::before {
    content: "";
    position: fixed;
    inset: 0;
    pointer-events: none;
    background:
        radial-gradient(ellipse at 50% 15%, rgba(160, 19, 7, .27), transparent 68%),
        repeating-conic-gradient(from 12deg at 50% 30%, transparent 0deg 12deg, rgba(180, 99, 19, .05) 13deg 14deg, transparent 15deg 28deg);
}
a { color: inherit; }
a:focus-visible { outline: 3px solid var(--gold); outline-offset: 5px; }
.wrapper { position: relative; width: min(760px, 100%); margin: 0 auto; background: #100c09; box-shadow: 0 0 70px #000; }
.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.hero { line-height: 0; }
.hero img { display: block; width: 100%; height: auto; }
.content { background: radial-gradient(ellipse at 50% 0, rgba(111, 29, 7, .35), transparent 55%), #100c09; }
.event-section { padding: 38px 20px 46px; text-align: center; border-bottom: 1px solid var(--line); }
.event-kicker { margin: 0 0 12px; color: var(--gold); font-weight: 800; font-size: 1.05rem; letter-spacing: .14em; }
.event-kicker span { margin: 0 .6em; }
.event-label { display: inline-block; margin: 0; padding: 5px 20px; background: #8b1911; border-block: 1px solid #cf6040; font-weight: 800; letter-spacing: .15em; }
.event-date { margin: 6px 0 20px; color: #ffe6a5; font-family: Georgia, "Times New Roman", serif; font-size: clamp(3.4rem, 13vw, 5.6rem); font-weight: 900; line-height: 1.08; text-shadow: 0 3px 0 #4d270b; }
.event-year { display: block; margin: 14px 0 5px; font-family: sans-serif; font-size: .9rem; letter-spacing: .25em; font-weight: 600; }
.event-day { font-family: "Yu Gothic", Meiryo, sans-serif; font-size: .28em; white-space: nowrap; }
.store-jump { display: inline-flex; align-items: center; justify-content: space-between; gap: 42px; padding: 11px 24px; min-height: 46px; border: 1px solid var(--gold); text-decoration: none; font-size: .9rem; font-weight: 700; }
.store-jump:hover { background: #f3ce7718; }
.media-section, .store-section { padding: 46px clamp(18px, 5vw, 40px) 14px; }
.section-kicker { margin: 0 0 5px; text-align: center; color: #d9a955; font-size: .68rem; letter-spacing: .23em; font-weight: 700; }
.section-title { margin: 0 0 26px; text-align: center; font-family: "Yu Mincho", "Hiragino Mincho ProN", serif; font-size: clamp(1.8rem, 6.5vw, 2.6rem); font-weight: 900; color: #ffdf92; letter-spacing: .12em; text-shadow: 0 2px 0 #5a2806; }
.section-title::after { content: ""; display: block; width: 54px; height: 3px; margin: 13px auto 0; background: linear-gradient(90deg, #8c3212, #ffdc7d, #8c3212); }
.video-embed { position: relative; height: 0; padding-bottom: 56.25%; background: #000; border: 1px solid var(--line); }
.video-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.media-link { margin: 10px 0 26px; text-align: right; color: var(--muted); font-size: .8rem; }
.twitter-embed { width: min(100%, 560px); margin: 24px auto 0; }
.twitter-tweet { margin: 0; overflow-wrap: anywhere; }
.store-heading { text-align: center; }
.store-total { margin: -10px 0 22px; color: var(--muted); font-weight: 700; }
.store-list-wrap { padding: 6px 22px; border: 1px solid #876128; background: linear-gradient(125deg, #22160c, #120e0a 65%); box-shadow: inset 0 0 28px #0006; }
.store-list { padding: 0; margin: 0; list-style: none; }
.store-list li { border-bottom: 1px solid var(--line); }
.store-list li:last-child { border-bottom: 0; }
.store-name { display: flex; align-items: baseline; gap: 18px; min-height: 52px; padding: 14px 0; text-decoration: none; font-size: 1.05rem; font-weight: 700; line-height: 1.5; overflow-wrap: anywhere; }
.store-pref { flex: 0 0 4.5em; color: var(--gold); font-size: .82em; white-space: nowrap; }
.store-name-text { flex: 1 1 auto; min-width: 0; }
a.store-name:hover { color: var(--gold); }
.store-empty { padding: 24px 0; margin: 0; text-align: center; font-size: .9rem; color: var(--muted); }
.character-art { width: min(100%, 540px); margin: 32px auto 0; }
.character-art img { display: block; width: 100%; height: auto; }
.notice { margin: 0; padding: 12px 12px 0; text-align: center; font-size: .75rem; color: var(--muted); }
.sns-section { padding: 28px 18px 38px; }
.sns-row { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 8px 12px; margin-bottom: 18px; }
.sns-row:last-child { margin-bottom: 0; }
.sns-site-link, .sns-icon-link { display: block; line-height: 0; transition: filter .18s; }
.sns-site-link { width: min(230px, 58vw); }
.sns-icon-link { width: 52px; }
.sns-site-img, .sns-icon-img { display: block; width: 100%; height: auto; }
.sns-site-link:hover, .sns-icon-link:hover { filter: brightness(1.15); }
.site-footer { padding: 26px 15px; text-align: center; background: #080706; border-top: 1px solid var(--line); }
.site-footer a { display: inline-block; }
.footer-logo { display: block; width: auto; height: 28px; max-width: 100%; }
@media (max-width: 520px) {
    .wrapper { box-shadow: none; }
    .event-section { padding: 28px 18px 32px; }
    .media-section, .store-section { padding-top: 34px; }
    .store-list-wrap { padding-inline: 15px; }
    .store-name { gap: 10px; font-size: .95rem; }
    .store-pref { flex-basis: 4.2em; }
    .sns-row { gap: 8px 10px; }
    .sns-site-link { width: min(190px, 55vw); }
    .sns-icon-link { width: 44px; }
    .footer-logo { height: 22px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    * { transition: none !important; }
}
