/* V3: the first release is the visual master. Deliberately retain the compact original homepage. */
:root{--paper:#eee2c8;--ink:#132a36;--red:#b10924}
html{scroll-padding-top:64px}button,input,select,a{touch-action:manipulation}body{background:#102733}
.site-header{position:relative;z-index:5}
.desktop-nav a[aria-current="page"]{color:var(--red);text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:8px}
.desktop-nav a[aria-current="page"]::after{display:none}
.site-header .brand{font-size:15px}
.site-header .desktop-nav{gap:clamp(11px,1.6vw,26px)}
.site-header .desktop-nav a{font-size:12px}
.panel-more{position:absolute;top:8px;right:15px;font-family:var(--japanese);letter-spacing:0;font-size:10px;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:32px;padding:2px 7px;z-index:2;white-space:nowrap;color:inherit;text-decoration:underline;text-underline-offset:3px;text-decoration-color:currentColor;text-decoration-thickness:1px;opacity:.87}
.panel-more:hover{opacity:1;filter:none;color:var(--red)}.navy .panel-more:hover,.crimson .panel-more:hover{color:#ffe3a0}
.intro-row .cast h2{padding-right:120px}.intro-row .cast .heading-rule{margin-left:15px}
.story .panel-more{right:10px}.story .story-copy{padding-top:3px}.story .postcard{z-index:0}
.music .panel-more,.movie .panel-more,.schedule .panel-more{right:9px}
.news .panel-more{right:10px}
.site-footer nav a[aria-current="page"]{text-decoration:underline;text-underline-offset:3px}
.menu-dialog nav a[aria-current="page"]{background:#fff2d91c;color:#efd7a8}
.ticket .bordered{font-size:13px}
.cast-person:hover img{outline:2px solid var(--red);outline-offset:2px}
.cast-person:hover .actor-name{color:var(--red)}
.site-footer .site-note{color:#d2c6ab}

/* Detail pages echo the original navy/cream/red modular playbill. */
.sub-banner{position:relative;min-height:165px;padding:24px max(28px,calc((100% - 1110px)/2)) 18px;color:#f8eacf;background:linear-gradient(90deg,#102c39 0%,#122e39 48%,#102c39b0 100%),url('assets/hero-desktop.webp') center center/cover;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;overflow:hidden}
.sub-banner::before{content:'';position:absolute;left:0;top:0;bottom:0;width:54px;background:url('assets/flag.webp') left center/70px 270px no-repeat;opacity:.8;pointer-events:none}
.banner-series{font:11px var(--serif);letter-spacing:.2em;color:#d8bd89;position:relative}
.sub-banner>div{display:flex;align-items:baseline;gap:21px;flex-wrap:wrap;position:relative}
.sub-banner h1{font:700 clamp(34px,4vw,58px)/1.2 var(--serif);letter-spacing:.08em;margin:8px 0 5px;white-space:normal}
.sub-banner>div small{font-size:17px;letter-spacing:.08em}
.back-home{position:absolute;right:max(28px,calc((100% - 1110px)/2));top:25px;min-height:44px;display:flex;align-items:center;font-size:12px;color:#f7dfb4;border-bottom:1px solid #f7dfb485}
.back-home:hover{color:#fff}
.subpage-wrap{max-width:1200px;padding:22px 30px 45px;margin:auto}
.detail-grid{display:grid;gap:19px;grid-template-columns:1fr 1fr;align-items:stretch}
.detail-grid.thirds{grid-template-columns:minmax(0,1.7fr) minmax(0,1fr)}
.detail-card{position:relative;min-width:0;padding:26px 27px 26px;border:1px solid #b9a48194;box-shadow:0 3px 9px #3c220d12;overflow:visible}
.detail-card h2{font:700 30px/1.25 var(--serif);letter-spacing:.06em;display:flex;align-items:baseline;gap:15px;margin:0 0 19px}
.detail-card h2 small{font:600 13px var(--japanese);letter-spacing:.06em}
.detail-card>h3{font-size:21px;line-height:1.65;margin:0 0 17px}
.detail-card p{font-size:14px;line-height:1.9;margin:0 0 15px}
.detail-card .fineprint{font-size:11px;line-height:1.6;margin-top:15px}
.detail-lead{font-size:14px!important;line-height:1.85!important;max-width:770px}
.detail-card .panel-more{font-size:12px}
.detail-card .story-copy{font-size:15px;line-height:2;max-width:710px}
.detail-card .story-copy p{font-size:15px;line-height:2}
.detail-card .hero-quote{color:var(--red);font-size:23px;font-weight:bold;line-height:1.7}
.details-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;border-top:1px solid #b39a7966;margin-top:26px;padding-top:18px}
.details-footer p{font-size:12px;margin:0}
.sub-cta{display:inline-flex;align-items:center;justify-content:center;gap:12px;min-height:44px;padding:9px 17px;border:1px solid var(--ink);background:#f2e4c7;color:var(--ink);font-size:13px;font-weight:bold;text-align:center;line-height:1.6;white-space:normal}
.sub-cta:hover{background:var(--ink);color:#fff1d9;filter:none}
.white-cta{background:#f4e9d3;border-color:#f4e9d3;color:#9f0620}
.light-cta{background:none;border-color:#f7e7c8;color:#f7e7c8}
.light-cta:hover{background:#f7e7c8;color:var(--ink)}
.flyer-aside{text-align:center}
.flyer-trigger{width:100%;max-width:280px;margin:auto;border:0;background:none;padding:0;display:block}
.flyer-trigger img{width:100%;box-shadow:4px 5px 10px #24130633}
.flyer-trigger>span{display:block;min-height:44px;padding:12px 5px;font-size:12px}
.cast-directory{padding:28px 32px}
.cast-directory>h2{margin-bottom:7px}
.full-cast-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:18px;margin:15px 0 28px}
.actor-full{display:flex;flex-direction:column;align-items:center;min-width:0;border:1px solid #ae997d80;background:#f9efdc90;padding:13px 9px 12px;text-align:center;position:relative;min-height:258px}
.actor-full img{width:125px;max-width:100%;height:auto;aspect-ratio:125/149;object-fit:cover;flex-shrink:0;margin:0 auto 8px}
.actor-full small{display:block;font-size:11px;line-height:1.45;min-height:20px;max-width:100%}
.actor-full strong{display:block;font-size:16px;line-height:1.5;min-height:27px}
.actor-full .actor-side{display:block;position:absolute;right:9px;top:9px;background:var(--ink);color:#f7eacf;padding:3px 8px;font-size:10px;line-height:1.3;z-index:1}
.actor-open{font-size:10px;text-decoration:underline;margin-top:auto;min-height:32px;display:flex;align-items:center;justify-content:center}
.actor-full:hover{border-color:var(--red);filter:none;color:var(--red)}
.filter-bar{display:flex;gap:8px;flex-wrap:wrap;margin-top:13px}.filter-bar button{font-size:13px;min-height:44px;min-width:85px;background:transparent;border:1px solid #b7a180;padding:9px 17px}.filter-bar button[aria-pressed="true"]{background:var(--ink);color:#fff1d9;border-color:var(--ink)}
.filter-result{font-size:12px!important;min-height:20px;margin:8px 0!important}.actor-full[hidden]{display:none}
.schedule-details{grid-template-columns:1fr 1fr}
.schedule-large .schedule-date{font-size:18px;line-height:1.6;margin:0 0 17px}.schedule-large .schedule-date strong{font-size:23px}
.schedule-large table{table-layout:fixed;width:100%;border-collapse:collapse;background:#f8edd8;color:var(--ink)}
.schedule-large table thead th{font-size:13px}.schedule-large table tbody th{font-size:15px}.schedule-large table td,.schedule-large table th{height:48px;border:1px solid #b39c80;text-align:center}.schedule-large table td button{min-width:44px;min-height:44px;width:100%;background:none;border:0;color:var(--ink);font:bold 21px var(--serif)}.schedule-large table td button:hover{background:#e8cea2}
.performance-list .detail-lead{font-size:13px!important}.performance-rows{display:grid;gap:7px}
.performance-row{width:100%;min-height:52px;display:grid;grid-template-columns:1fr 72px 31px auto;align-items:center;gap:9px;border:1px solid #b4a18670;background:#faf0dc9e;padding:6px 11px;text-align:left}
.performance-row:hover{background:#ebdab7;filter:none}.performance-day{font-size:13px}.performance-row strong{font:700 17px var(--serif)}.cast-team{background:var(--ink);color:#fff0d5;text-align:center;font:700 13px var(--serif);padding:2px 0}.performance-row small{font-size:10px;white-space:nowrap}
.ticket-detail .ticket-info{font-size:22px;margin:20px 0}.ticket-detail .ticket-info strong{font:700 53px var(--serif);letter-spacing:-.025em}.ended-notice{border:1px solid #ffedd0;font-weight:bold;font-size:13px;padding:10px 14px;margin:19px 0 22px;background:#6b08191a}.ticket-detail>p{max-width:420px}.ticket-links .qr-view{display:flex;align-items:center;gap:14px;border:1px solid #bda17c;background:#fff9edc4;padding:13px;width:100%;text-align:left;margin:20px 0}.qr-view img{width:95px;flex-shrink:0}.qr-view span{font-size:13px}
.media-detail .movie-button{max-width:none}.media-detail .movie-button img{height:auto;aspect-ratio:1053/360;object-fit:cover;object-position:65% center}.media-detail .play-circle{top:calc(50% - 22px)}.media-detail .detail-lead,.music-detail .detail-lead{color:#fff1d9}
.music-detail .music-body{grid-template-columns:30% 70%;margin:18px auto;max-width:500px}.music-detail .record{max-width:150px}.music-detail .music-description p{font-size:24px}.music-detail audio{min-height:44px}.media-detail h2,.music-detail h2{color:#fff3dd}
.venue-detail h3{font-size:23px}.venue-detail p{font-size:15px;line-height:2}.venue-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:25px}.map-detail .full-map-trigger{border:0;background:none;padding:0;width:100%}.full-map-trigger img{width:100%;max-height:360px;object-fit:contain;background:#fff8e9}.full-map-trigger>span{display:flex;justify-content:center;align-items:center;font-size:12px;min-height:44px}
.news-detail h3{font:700 23px var(--serif);margin:28px 0 15px}.news-detail h3 small{font:13px var(--japanese)}.flyer-buttons{display:flex;gap:17px}.flyer-buttons button{width:min(50%,200px);border:0;background:none;padding:0}.flyer-buttons img{width:100%;aspect-ratio:595/842;object-fit:contain}.flyer-buttons button span{display:block;min-height:44px;font-size:12px;padding-top:10px}
.staff-full{margin:0}.staff-full>div{display:grid;grid-template-columns:95px 1fr;gap:20px;border-bottom:1px solid #bca58188;padding:12px 0}.staff-full dt,.staff-full dd{font-size:13px;line-height:1.6}.staff-full dd{margin:0;font-weight:bold}
@media(max-width:1250px) and (min-width:1101px){.site-header .desktop-nav{gap:11px}.site-header .desktop-nav a{font-size:11px}.site-header .brand{font-size:13px}.detail-card{padding:24px 19px}.full-cast-grid{gap:12px}.actor-full{padding-inline:6px}}
@media(max-width:1100px){.site-header .desktop-nav{display:none}.detail-grid{grid-template-columns:1fr 1fr}.sub-banner{padding:22px 30px}.back-home{right:26px}.subpage-wrap{padding-inline:22px}.detail-card{padding:24px 20px}.full-cast-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.schedule-details{grid-template-columns:1fr}.performance-rows{grid-template-columns:1fr 1fr}.detail-card .story-copy{font-size:14px}.detail-card .story-copy p{font-size:14px}}
@media(max-width:740px){.detail-grid,.detail-grid.thirds{grid-template-columns:1fr}.full-cast-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.story-detail .hero-quote{font-size:22px}.performance-rows{grid-template-columns:1fr 1fr}.sub-banner{min-height:155px}.sub-banner h1{font-size:42px}}
@media(max-width:600px){html{scroll-padding-top:20px}.site-header .brand{font-size:15px}.panel-more{top:11px;right:11px;font-size:11px;min-height:35px;padding:4px 6px}.intro-row .cast h2{padding-right:105px}.intro-row .cast .heading-rule{margin-left:6px}.story .panel-more{right:13px}.story .story-copy{padding-top:7px}.story .story-copy p{font-size:13px;line-height:1.58}.cast .cast-person .actor-name{font-size:11px;line-height:1.45;white-space:normal;min-height:18px}.cast .cast-person small{font-size:8px}.music .panel-more,.movie .panel-more,.schedule .panel-more,.ticket .panel-more,.access .panel-more,.news .panel-more{right:10px}.media-row .panel{padding-top:18px!important}.site-footer nav{display:none}.hero-info .hero-movie{display:flex}.sub-banner{min-height:155px;padding:20px 19px;gap:8px}.sub-banner::before{width:17px;background-size:42px auto;opacity:.35}.banner-series{font-size:9px;letter-spacing:.12em;max-width:60%}.sub-banner h1{font-size:36px;margin:5px 0}.sub-banner>div small{font-size:13px}.back-home{right:15px;top:13px;font-size:10px;min-height:38px}.subpage-wrap{padding:15px 11px 28px}.detail-grid{display:block}.detail-card{padding:20px 17px;margin-bottom:14px;box-shadow:0 2px 4px #3d1e0e12}.detail-card h2{font-size:25px;margin-bottom:16px;gap:12px}.detail-card h2 small{font-size:12px}.detail-card>h3,.story-detail .hero-quote{font-size:20px;line-height:1.75}.detail-card p{font-size:13px;line-height:1.9}.detail-card .story-copy,.detail-card .story-copy p{font-size:14px;line-height:1.98}.details-footer{display:block}.details-footer p{font-size:11px;margin-bottom:18px}.sub-cta{min-height:45px;font-size:12px}.flyer-trigger{max-width:230px}.cast-directory{padding:20px 15px}.full-cast-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.actor-full{min-height:255px;padding:11px 6px}.actor-full img{width:125px;max-width:100%}.actor-full small{font-size:10px;min-height:30px}.actor-full strong{font-size:14px}.actor-open{font-size:9px;min-height:30px}.filter-bar{gap:8px}.filter-bar button{flex:1;min-width:0;font-size:12px;padding:8px}.performance-rows{display:grid;grid-template-columns:1fr}.performance-row{min-height:53px;grid-template-columns:1fr 60px 24px auto;padding:6px 8px;gap:6px}.performance-day{font-size:12px}.performance-row strong{font-size:16px}.performance-row small{font-size:9px}.schedule-large table thead th{font-size:10px}.schedule-large table tbody th{font-size:13px}.schedule-large table td,.schedule-large table th{height:45px}.schedule-large table td button{min-height:44px;font-size:20px}.schedule-large .schedule-date{font-size:13px}.schedule-large .schedule-date strong{font-size:17px}.ticket-detail .ticket-info{font-size:18px}.ticket-detail .ticket-info strong{font-size:43px}.ticket-detail .ended-notice{font-size:12px}.media-detail .movie-button img{min-height:160px;object-fit:cover}.media-detail .play-circle{top:50%}.music-detail .music-body{grid-template-columns:38% 62%}.music-detail .music-description p{font-size:20px}.music-detail .record{max-width:120px}.venue-detail p{font-size:13px}.venue-detail h3{font-size:19px}.venue-actions{flex-direction:column;gap:10px}.venue-actions .sub-cta{width:100%}.staff-full>div{grid-template-columns:86px 1fr;gap:10px;padding:11px 0}.staff-full dt,.staff-full dd{font-size:12px}.flyer-buttons{justify-content:center}.news-detail .sub-cta{width:100%}}
@media(max-width:360px){.panel-more{font-size:9px}.intro-row .cast h2{padding-right:90px}.full-cast-grid{gap:8px}.actor-full{padding:8px 5px}.actor-full strong{font-size:13px}.sub-banner h1{font-size:32px}.sub-banner>div small{font-size:12px}.music-detail .music-description p{font-size:17px}}
@media(orientation:landscape) and (max-height:500px){.sub-banner{min-height:116px;padding-block:12px}.sub-banner h1{font-size:31px}.sub-banner .back-home{top:10px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
/* Correct paper master: quiet fiber texture, no striping behind text. */
.paper{background-image:linear-gradient(100deg,#fff9,#fff0 65%),url('assets/paper.webp');background-size:auto,320px 320px}
.detail-card.paper{background-size:auto,320px 320px}
@media(max-width:600px){.sub-banner{background-position:center,64% center}}
/* On wide screens the smaller media cards fill the same visual rhythm as the schedule. */
@media(min-width:1101px){.media-row .movie,.media-row .music{display:flex;flex-direction:column}.media-row .movie .movie-button,.media-row .music .music-body{margin-block:auto}.media-row .movie .fineprint,.media-row .music .fineprint{margin-top:auto;margin-bottom:0}}
