.nh-skip{position:fixed;z-index:99999;left:12px;top:-100px;background:#fff7df;color:#321412;padding:12px}.nh-skip:focus{top:12px}
:focus-visible{outline:3px solid #ffdc4e;outline-offset:5px}
.admin-bar .site-header{top:32px}
.nh-no-js .lantern-intro,.nh-no-js .route-lantern-transition,.nh-no-js .lantern-story{display:none}
.nh-no-js .program-card{height:auto;min-height:0;aspect-ratio:auto}.nh-no-js .program-card-button{height:auto;cursor:default}.nh-no-js .program-card-inner{display:block;transform:none;height:auto}.nh-no-js .program-card-face{position:relative;display:block;inset:auto;transform:none;backface-visibility:visible;min-height:420px}.nh-no-js .program-card-front{height:440px}.nh-no-js .program-card-back{height:auto;min-height:360px}.nh-no-js .program-turn-back,.nh-no-js .program-flip-hint{display:none}
.nh-no-js .festival-eye,.nh-no-js [data-resident]{pointer-events:none}
.news-detail-body{overflow-wrap:anywhere}.news-detail-body a{text-decoration:underline}.news-detail-body img{height:auto}
.nh-history-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:32px}.nh-history-grid h3{font-size:28px;margin:20px 0}
@media(max-width:782px){.admin-bar .site-header{top:46px}}
@media(max-width:600px){.admin-bar .site-header{top:0}.admin-bar .hero{padding-top:150px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
/* Give the closing scene room above and below, and separate the venue title from its details. */
.closing { padding-block:clamp(88px,10vw,144px); }
.access-copy h3 { margin-bottom:clamp(28px,3vw,48px); }
@media(max-width:600px) { .closing { padding-block:72px; } }

.access-copy .access-caption { position:relative; top:-10px; }

.sp-break { display:none; }
@media(max-width:600px) {
  .sp-break { display:initial; }
  .sp-keep { display:inline-block; white-space:nowrap; }
  .festival-eye button > span { white-space:nowrap; width:max-content; max-width:none; position:relative; left:50%; transform:translateX(-50%); }
  .town-awakening { grid-template-columns:minmax(0,1fr); gap:28px; width:100%; }
  .town-awakening > img { width:150px; max-width:45vw; justify-self:center; margin:0 auto; }
  .town-awakening-title, .town-awakening-body { grid-column:1; width:100%; min-width:0; }
  .town-awakening-title { text-align:left; }
  .town-awakening-body p { overflow-wrap:break-word; }
  .closing .closing-ja { text-wrap:initial; }
}

/* Make the mobile ABOUT title prominent while retaining its two-line layout. */
@media(max-width:600px) {
  .about-copy .section-heading h2 { font-size:clamp(29px,9vw,48px); line-height:1.5; letter-spacing:.04em; }
  .about-copy .about-title-line { padding-left:.04em; }
}

@keyframes nh-about-eye-float {
  0%, 100% { transform:translateY(-22px); }
  50% { transform:translateY(22px); }
}
@media(min-width:801px) and (prefers-reduced-motion:no-preference) {
  .town-awakening > img { animation:nh-about-eye-float 5s ease-in-out infinite; }
}

@media(max-width:600px) {
  .about-copy .lead .sp-story-pause { display:inline-block; padding-top:1em; }
}

/* Shared mobile content gutter, matching the supplied 12% inset reference. */
@media(max-width:600px) {
  body { --nh-sp-gutter:12vw; }
  .section, .hero, .closing, footer { padding-inline:var(--nh-sp-gutter); }
  .about-copy, .town-awakening, .access-copy, .program-grid, .news-list { width:100%; min-width:0; }
  .hero .event-meta { width:100%; }
  .hero .event-meta div { padding-inline:12px; gap:10px; }
  .hero .event-meta small { min-width:44px; font-size:11px; }
  .hero .event-meta strong { font-size:clamp(18px,5vw,26px); letter-spacing:.02em; }
  .closing .closing-ja { margin-inline:0; }
  .about-copy .section-heading h2 { font-size:clamp(26px,8.7vw,46px); }
  .footer-brand, .footer-bottom { min-width:0; max-width:100%; overflow-wrap:break-word; }
}

/* Keep all event details inside the inset area of the mobile information frame. */
@media(max-width:600px) {
  .hero .event-meta > div {
    display:grid;
    grid-template-columns:40px minmax(0,1fr);
    align-items:center;
    gap:10px;
    padding:22px 12%;
  }
  .hero .event-meta small { min-width:0; font-size:10px; letter-spacing:.12em; }
  .hero .event-meta strong {
    min-width:0;
    font-size:clamp(15px,4.4vw,22px);
    letter-spacing:0;
    line-height:1.5;
    white-space:nowrap;
    overflow-wrap:normal;
  }
  .hero .event-meta em { font-size:11px; letter-spacing:.05em; }
}

/* Center each label-and-value group within the full mobile information frame. */
@media(max-width:600px) {
  .hero .event-meta > div {
    grid-template-columns:40px max-content;
    justify-content:center;
    padding-inline:12px;
  }
}

/* Share column widths across all three rows so centered details also align. */
@media(max-width:600px) {
  .hero .event-meta {
    display:grid;
    grid-template-columns:minmax(0,1fr) max-content max-content minmax(0,1fr);
    column-gap:10px;
  }
  .hero .event-meta > div {
    grid-column:1 / -1;
    grid-template-columns:subgrid;
    padding-inline:0;
  }
  .hero .event-meta small { grid-column:2; }
  .hero .event-meta strong { grid-column:3; }
}

@media(max-width:600px) {
  .hero .event-meta small { font-size:clamp(11px,3vw,16px); }
  .hero .event-meta strong { font-size:clamp(18px,5.3vw,27px); }
  .hero .event-meta em { font-size:clamp(12px,3.4vw,18px); }
}

/* Mobile line-break review: preserve readable phrases inside the shared gutters. */
@media(max-width:600px) {
  .about-copy .lead { font-size:clamp(17px,5.1vw,26px); letter-spacing:0; }
  .about-copy p, .town-awakening p, .section-intro p, .note, .news-item h3 { text-wrap:pretty; line-break:strict; }
  .program-front-copy b { font-size:clamp(22px,6vw,30px); overflow-wrap:normal; word-break:normal; text-wrap:balance; }
  .program-flip-hint { top:42px; bottom:auto; }
  .program-card-back > b { overflow-wrap:normal; word-break:normal; text-wrap:balance; }
  .access-copy dl div { grid-template-columns:64px minmax(0,1fr); gap:8px; }
  .access-copy dd { text-wrap:pretty; line-break:strict; }
}

@media(max-width:600px) {
  .news-detail-title h1, .news-detail-title > strong, .news-detail-body p, .program-back-text { text-wrap:pretty; line-break:strict; word-break:auto-phrase; }
}

.access-copy dt { font-weight:400; }

@media(max-width:600px) {
  .town-awakening-title {
    font-size:clamp(22px,6vw,30px);
    line-height:1.65;
    text-wrap:pretty;
  }
}

@media(max-width:600px) {
  .town-awakening-title, .town-awakening-body { text-align:center; }
  .town-awakening-title { font-size:clamp(18px,5.5vw,28px); }
  .town-awakening-title .sp-awakening-line { display:block; white-space:nowrap; }
}

/* Explicit face visibility also prevents mirrored composited children on mobile Safari. */
body:not(.nh-no-js) .program-card-face {
  -webkit-backface-visibility:hidden;
  backface-visibility:hidden;
}
body:not(.nh-no-js) .program-card-front { transform:translateZ(1px); }
body:not(.nh-no-js) .program-card-back { transform:rotateY(180deg) translateZ(1px); }
body:not(.nh-no-js) .program-card:not(.is-flipped) .program-card-back,
body:not(.nh-no-js) .program-card.is-flipped .program-card-front { visibility:hidden; }

/* September 26 review: identity, reading size, and illustrated program details. */
.event-wordmark-title { display:flex; flex-direction:column; align-items:center; width:100%; }
.mini-logo .event-wordmark-image { max-height:70px; }
.event-subtitle { text-transform:none; }
.news-item h3 { font-size:17px; line-height:1.8; }
.news-item time, .news-item .tag { font-size:13px; }
.about-copy > p:not(.lead) { font-size:18px; line-height:2; }
.section-intro { font-size:18px; }
.town-awakening { position:relative; padding-block:56px; isolation:isolate; }
.town-awakening::before { content:""; position:absolute; z-index:-1; inset:0 calc((100% - 100vw)/2); background:rgba(255,248,238,.72); border-block:1px solid rgba(255,248,238,.6); pointer-events:none; }
.town-awakening-body p { font-size:21px; }
.program-front-copy small { font-size:16px; line-height:1.6; }
.program-card { aspect-ratio:auto; }
.program-card-inner { display:block; height:auto; }
.program-card-face { position:relative; grid-area:1 / 1; inset:auto; min-width:0; }
.program-card-front { min-height:0; aspect-ratio:4/5; }
.program-card-back { padding:28px 24px 55px; }
.program-card-back > b { margin-top:20px; line-height:1.25; }
.program-back-text { font-size:14px; margin-top:20px; }
.program-facts { grid-template-columns:40px minmax(0,1fr); }
.program-facts strong { font-size:12px; line-height:1.8; }
.program-back-gallery { display:grid; gap:12px; margin-top:24px; }
.program-back-gallery img { display:block; width:100%; height:auto; max-height:240px; object-fit:contain; background:#eed094; }
.footer-brand > span { display:block; max-width:850px; font-size:clamp(30px,4vw,56px); line-height:1.25; }
@media(max-width:600px) {
  .news-item h3 { font-size:15px; }
  .news-item time, .news-item .tag { font-size:11px; }
  .about-copy > p:not(.lead) { font-size:16px; }
  .section-intro { font-size:15px; }
  .town-awakening-body p { font-size:18px; }
  .program-card-front { min-height:0; aspect-ratio:4/5.15; }
  .program-front-copy small { font-size:14px; }
  .program-card-back { padding:24px 18px 55px; }
  .program-facts { grid-template-columns:1fr; gap:5px; }
  .program-facts strong { margin-bottom:8px; }
}

/* A light chapter separates the eye story from the dark concept section. */
.town-awakening-title, .town-awakening-body, .town-awakening-body p { color:#4b1e1a; text-shadow:none; }

/* Only the visible face sets the card height; detailed backs keep their full content. */
.program-grid { align-items:start; }
.program-card-button { display:block; height:auto; }
body:not(.nh-no-js) .program-card:not(.is-flipped) .program-card-back,
body:not(.nh-no-js) .program-card.is-flipped .program-card-front { position:absolute; inset:0; }
body:not(.nh-no-js) .program-card:not(.is-flipped) .program-card-front,
body:not(.nh-no-js) .program-card.is-flipped .program-card-back { position:relative; inset:auto; }
.program-flip-hint { top:42px; bottom:auto; }

/* WordPress archive: original bookshelf and native opening-book presentation. */
[data-history-shelf][hidden] { display:none!important; }
.history-section .book-page { pointer-events:auto; height:auto; max-height:70vh; overflow:auto; }
.history-section .history-book-content { grid-column:2; grid-row:3; min-width:0; margin-top:14px; font-size:14px; line-height:1.9; text-align:left; }
.history-section .history-book-content p { width:100%; margin:0 0 1em; font:inherit; }
.history-section .history-book-content img { max-width:100%; height:auto; }
.history-section .book-page h3 { overflow-wrap:anywhere; font-family:"Zen Maru Gothic",sans-serif; font-weight:700; }
.history-section .magic-library:has(.magic-book[open]) { mask-image:none; -webkit-mask-image:none; }
.history-section .book-close { position:sticky; top:0; float:right; margin:-22px -16px -16px auto; grid-column:2; grid-row:1; }
.history-section .book-row:has(.magic-book[open])::before { pointer-events:none; }
.history-section summary:focus-visible { outline:3px solid #ffdf6b; outline-offset:5px; }
.nh-no-js .shelf-pagination, .nh-no-js .archive-gate, .nh-no-js .future-book, .nh-no-js .book-close { display:none; }
@media(max-width:800px) {
 .history-section .book-page { max-height:none; }
 .history-section .book-page h3 { font-family:"Zen Maru Gothic",sans-serif; font-size:24px; }
 .history-section .history-book-content { font-size:15px; }
 .history-section .magic-book summary h3 { font-family:"Zen Maru Gothic",sans-serif; font-size:18px; overflow-wrap:anywhere; }
}
@media(prefers-reduced-motion:reduce) {
 .history-section .book-page { animation:none; opacity:1; transform:translateX(-50%); }
 .history-section .future-book i { animation:none; }
}
@media(max-width:800px) and (prefers-reduced-motion:reduce) {
 .history-section .book-page { transform:none; }
}
