/* Purple award identity: strong typography, luminous controls, quiet paper texture. */
:root{--paper:#f7f5f1;--purple:#642394}
.about,.tickets{background-color:var(--paper);background-image:url('assets/paper-grain.svg'),radial-gradient(ellipse at 15% 5%,#fff 0%,transparent 65%);color:#211b29}
.about .section-label h2,.ticket-intro h2{color:#51216f}
.section-label h2,.section-top h2,.ticket-intro h2{font-weight:700}
.vote-section{background:radial-gradient(ellipse at 100% 0%,#9253b9 0%,transparent 60%),linear-gradient(125deg,#401361,#682593 65%,#522078);padding-block:88px;color:#fff}
.vote-kicker{display:inline-block;border-bottom:2px solid #cfb4e1;padding-bottom:9px;margin-bottom:28px;font-size:15px;font-weight:700;letter-spacing:.1em}
.vote-intro{margin:0 0 12px;font-size:clamp(16px,1.7vw,21px);font-weight:500;line-height:1.8}
.vote-section h2{font-size:clamp(32px,4.7vw,62px);font-weight:700;line-height:1.35;letter-spacing:-.035em;text-wrap:initial}
.vote-section h2 span{display:inline-block}
.vote-rounds{gap:32px;margin-top:44px;padding-top:28px;border-top:1px solid #ffffff55}
.vote-round{border:0;padding:0;min-width:0}
.vote-round .round-period{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:15px;font-weight:700;margin-bottom:16px;line-height:1.7}
.round-period span{font-weight:500;font-variant-numeric:tabular-nums}
.vote-action{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:155px;width:100%;padding:26px 30px;background:linear-gradient(105deg,#fffdfa 0%,#f4edf8 52%,#c8a7df 100%);border:1px solid #ffffffb0;border-radius:3px;color:#39134f;transition:transform .2s,box-shadow .2s}
.vote-action strong{display:block;font-size:clamp(29px,3vw,40px);line-height:1.4;font-weight:700;letter-spacing:-.025em}
.action-caption{display:block;font-size:17px;font-weight:500;margin-top:6px}
.action-arrow{font-size:32px;line-height:1;font-weight:400}
.vote-action:hover,.ticket-action:hover{transform:translateY(-3px);box-shadow:0 8px 24px #19072733}
.vote-action:focus-visible,.ticket-action:focus-visible{outline:3px solid #fff;outline-offset:5px}
.vote-round .round-summary{margin-top:20px;font-size:15px;line-height:1.8;color:#f7edff}
.round-summary strong{font-weight:700}
.vote-note{font-size:13px;color:#ecddf5;margin-top:32px}
.tickets{grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:5%;padding-block:88px}
.ticket-intro .ticket-launch{margin-top:25px;padding-top:20px;border-top:1px solid #c5b6cd;font-size:14px;line-height:1.85;color:#562274;grid-column:1/-1}
.ticket-launch strong{font-size:17px;font-weight:700}
.ticket-card{display:flex;flex-direction:column;align-items:stretch;gap:0;background:#24182e;border:1px solid #5a3f6b;border-top:3px solid #8f59b1;min-height:360px;padding:28px 24px;color:#fff}
.ticket-card h3{font-size:20px;font-weight:700;margin:0 0 25px}
.ticket-card .price{font:700 clamp(32px,3vw,42px)/1.25 var(--sans);font-variant-numeric:tabular-nums;letter-spacing:-.025em;text-align:left;margin:0}
.ticket-card .price>span{font:500 14px var(--sans);margin-left:5px}
.ticket-card .price>small{display:block;font:500 13px/1.6 var(--sans);color:#eee3f4;margin:0 0 5px}
.stream-prices{display:grid;gap:19px;margin-bottom:28px}
.ticket-benefit{font-size:13px;line-height:1.9;margin:22px 0 28px;color:#eee3f4}
.ticket-benefit br{display:none}
.ticket-action{display:flex;align-items:center;justify-content:space-between;gap:16px;width:100%;min-height:54px;padding:13px 20px;margin-top:auto;background:linear-gradient(105deg,#fffdfa,#e9d9f2);color:#39134f;font-size:16px;font-weight:700;border:1px solid #fff8;transition:transform .2s,box-shadow .2s}
.ticket-action span{font-size:24px;line-height:1}
.ticket-card button:disabled{min-height:54px;margin: auto 0 0;padding:13px 10px;border:1px solid #877293;background:#372641;color:#e8ddec;font-size:14px;line-height:1.7}
.header-ticket{background:#702ba1}.header-ticket:hover{background:#8b3fc1}
.site-header nav a:after{background:#c08be5}
.photo-slot,.photo-slot:after{border:0}
@media(max-width:1050px){.tickets{grid-template-columns:1fr}.ticket-intro .ticket-launch{margin-top:20px}.ticket-card{min-height:355px}}
@media(max-width:700px){.vote-section,.tickets{padding-block:60px}.vote-kicker{margin-bottom:24px}.vote-section h2{font-size:clamp(29px,7.4vw,42px);line-height:1.45}.vote-intro{font-size:16px;max-width:25em;margin-bottom:12px}.vote-rounds{margin-top:30px;padding-top:26px;gap:32px}.vote-round .round-period{font-size:14px;gap:2px 12px}.vote-action{min-height:132px;padding:23px 25px}.vote-action strong{font-size:32px}.action-caption{font-size:16px}.vote-round .round-summary{margin-top:15px;font-size:14px}.vote-note{margin-top:28px;font-size:12px}.ticket-card{display:flex;align-items:stretch;min-height:0;padding:28px 24px;gap:0}.ticket-card h3{font-size:20px;margin-bottom:22px}.ticket-card .price{font-size:38px;text-align:left;margin:0}.ticket-card .price>small{display:block;font-size:13px;margin:0 0 5px}.stream-prices{grid-template-columns:1fr 1fr;gap:18px}.ticket-card button:disabled{margin-top:auto}.ticket-benefit{margin:18px 0 25px}.ticket-action{min-height:56px}.mobile-ticket>span:last-child{background:#702ba1}.ticket-intro .ticket-launch{margin-top:24px}.ticket-options{gap:20px}}
@media(max-width:370px){.ticket-card{padding:24px 18px}.ticket-card .price{font-size:33px}.stream-prices{gap:12px}.vote-action{padding:22px}.vote-action strong{font-size:30px}}
@media(prefers-reduced-motion:reduce){.vote-action:hover,.ticket-action:hover{transform:none}}

/* Complete, consistent glyph coverage across Japanese text and numerals. */
:root{--sans:'Movie1 UI','Hiragino Kaku Gothic ProN','Yu Gothic',sans-serif}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.ticket-card .price{white-space:nowrap}
.stream-prices{display:flex;flex-direction:column;align-items:flex-start;gap:18px;width:100%;margin-bottom:28px}
.ticket-card .ticket-action{font-family:var(--sans);font-size:16px;font-weight:700;line-height:1.7;min-height:56px;padding:13px 20px;border:1px solid #fff8;border-radius:0;background:linear-gradient(105deg,#fffdfa,#e9d9f2);color:#39134f;margin-top:auto;letter-spacing:0}
.ticket-card button.ticket-action:disabled{display:flex;align-items:center;justify-content:center;opacity:1;cursor:default;box-shadow:none;transform:none}
.vote-section h2{word-break:normal;overflow-wrap:normal}
.round-period time{white-space:nowrap}
@media(max-width:700px){.stream-prices{gap:18px}.ticket-card .price{font-size:38px}.ticket-card .ticket-action{margin-top:auto}.vote-section h2 span{white-space:nowrap}}

/* Portrait crops exclude screenshot edges; supplied Soshi portrait fills the same frame. */
.cast .photo-slot:after{content:none}
.cast .cast-soshi img{object-position:50% 32%}

/* Isolated logo artwork: normal alpha compositing preserves the silver lettering. */
.hero-content{top:32%}
.logo-art{aspect-ratio:auto;overflow:visible;mix-blend-mode:normal;mask-image:none;-webkit-mask-image:none;filter:drop-shadow(0 2px 3px #08051055)}
.logo-art img{position:static;display:block;width:100%;max-width:100%;height:auto;left:auto;top:auto}
@media(min-width:1650px){.hero-content{top:31%}}
@media(max-width:1050px){.hero-content{top:31%}}
@media(max-width:700px){.hero-content{top:29%}.logo-art{width:78%;max-width:335px;margin-top:12px}}
