:root{color:#302d24;font-synthesis:none;--gold:#ae9257;--olive:#566044;--muted:#6f7066;--line:#e7e8e1;--dock-gap:24px;background:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}body{margin:0}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--olive);outline-offset:5px}.app-shell{max-width:800px;padding:env(safe-area-inset-top) 24px calc(104px + var(--dock-gap) + env(safe-area-inset-bottom,0px));margin-inline:auto}.app-header{color:var(--muted);border-bottom:1px solid var(--line);justify-content:space-between;gap:16px;padding-block:24px;font-size:12px;display:flex}#main:focus{outline:none}h1{letter-spacing:-1.3px;margin:0 0 16px;font-size:clamp(30px,6vw,40px);font-weight:650;line-height:1.15}h2{margin:0 0 8px;font-size:19px;font-weight:600;line-height:1.3}p{margin:0;line-height:1.65}.page{padding-block:36px}.intro{color:var(--muted);max-width:44ch;margin-bottom:32px}.home-page{text-align:center;flex-direction:column;align-items:center;padding-top:28px;display:flex}.festival-logo{width:min(100%,340px);height:auto;display:block}.date-ticket{border:1px solid #d9ccb0;border-radius:20px;width:min(100%,360px);margin-top:18px;padding:18px 28px}.date-ticket p{color:var(--muted);font-size:13px}.date-ticket time{margin-top:6px;font-size:17px;font-weight:600;display:block}.home-venue{color:var(--muted);margin-top:18px;font-size:13px}.dock{bottom:calc(var(--dock-gap) + env(safe-area-inset-bottom,0px));width:min(calc(100% - 2 * var(--dock-gap)), 440px);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);z-index:10;background:#fafaf7f2;border:1px solid #dedfd6;border-radius:27px;padding:7px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 8px 30px #302d2414}.dock a{min-height:60px;color:var(--muted);border-radius:20px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:5px;font-size:11px;font-weight:500;text-decoration:none;display:flex}.dock a.active{color:#465037;background:#e9edde}.information-list p{color:var(--muted);font-size:15px}.lineup-page{--hour-column:74px}.lineup-heading{align-items:center;gap:18px;margin-bottom:24px;display:flex}.lineup-heading h1{margin:0}.lineup-monogram{flex-shrink:0;width:64px;height:72px;display:block}.lineup-day{border-block:1px solid var(--line);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px 16px;padding-block:18px;display:flex}.lineup-day time{color:var(--olive);font-weight:600}.lineup-day time:first-letter{text-transform:uppercase}.lineup-day>span{color:var(--muted);font-size:12px}.festival-schedule{margin:24px 0 0;padding:0;list-style:none}.schedule-row{padding-bottom:14px;position:relative}.schedule-row:before{content:"";left:var(--hour-column);background:var(--line);pointer-events:none;width:1px;position:absolute;top:0;bottom:0}.schedule-summary{grid-template-columns:var(--hour-column) minmax(0, 1fr);cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:12px;align-items:start;list-style:none;display:grid}.schedule-summary::-webkit-details-marker{display:none}.schedule-summary::marker{content:""}.schedule-summary:focus-visible{outline:3px solid var(--olive);outline-offset:4px}.schedule-time{font-variant-numeric:tabular-nums;color:var(--olive);white-space:nowrap;padding-top:25px;padding-right:8px;font-size:13px;font-weight:600}.schedule-end{color:var(--muted);margin-top:3px;font-size:12px;font-weight:400;display:block}.schedule-card{border-left:3px solid var(--gold);background:#f7f4ec;border-radius:0 12px 12px 0;justify-content:space-between;align-items:center;gap:12px;min-height:70px;margin-left:12px;padding:20px 16px;display:flex;position:relative}.schedule-card:before{content:"";background:var(--gold);border:2px solid #fff;border-radius:50%;width:7px;height:7px;position:absolute;top:29px;left:-20px}.schedule-title{overflow-wrap:anywhere;font-size:16px;font-weight:600;line-height:1.4}.schedule-chevron{color:var(--olive);flex-shrink:0;transition:transform .18s}.schedule-step[open] .schedule-chevron{transform:rotate(180deg)}.schedule-step[open] .schedule-card{border-bottom-right-radius:0}.schedule-details{margin-left:calc(var(--hour-column) + 12px);border-left:3px solid var(--gold);background:#f7f4ec;border-radius:0 0 12px;padding:0 16px 20px}.schedule-details>p{color:var(--muted);font-size:14px}.schedule-details .schedule-location{color:var(--olive);align-items:flex-start;gap:7px;padding-top:14px;display:flex}.schedule-location svg{flex-shrink:0;margin-top:3px}@media (hover:hover){.schedule-summary:hover .schedule-title{color:var(--olive)}}@media (width<=360px){.lineup-page{--hour-column:64px}.schedule-card{gap:8px;padding-inline:12px}.schedule-details{padding-inline:12px}}.quiet-note{color:var(--muted);margin-top:24px;font-size:14px}.information-category{border-top:1px solid var(--line)}.information-category:last-child{border-bottom:1px solid var(--line)}.information-summary{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;list-style:none}.information-summary::-webkit-details-marker{display:none}.information-summary::marker{content:""}.information-summary:focus-visible{outline:3px solid var(--olive);outline-offset:4px}.information-summary h2{justify-content:space-between;align-items:center;gap:16px;min-height:76px;margin:0;font-size:18px;display:flex}.information-category-label{align-items:center;gap:14px;display:flex}.information-summary svg{color:var(--olive);flex-shrink:0}.information-summary .information-category-icon{color:var(--gold)}.information-chevron{transition:transform .18s}.information-category[open] .information-chevron{transform:rotate(180deg)}.information-content{padding:0 0 24px}.information-item+.information-item{margin-top:20px}.information-item h3{margin:0 0 8px;font-size:15px;font-weight:600}.information-item p{white-space:pre-line}.venue-location address{color:var(--muted);font-size:15px;font-style:normal;line-height:1.7}.venue-map-links{flex-wrap:wrap;gap:8px;margin:18px 0;display:flex}.venue-map-links a{border:1px solid var(--line);min-height:46px;color:var(--olive);border-radius:12px;flex:auto;justify-content:center;align-items:center;gap:7px;padding:10px 12px;font-size:13px;font-weight:600;text-decoration:none;display:inline-flex}.venue-map-links a:focus-visible{outline:3px solid var(--olive);outline-offset:3px}@media (hover:hover){.venue-map-links a:hover{background:#f7f6f2}}.venue-map{background:#f7f6f2;border:0;border-radius:16px;width:100%;height:280px;display:block}.information-hours{margin:0;padding:0;list-style:none}.information-hours li{grid-template-columns:minmax(96px,auto) 1fr;gap:16px;padding-block:10px;font-size:14px;line-height:1.6;display:grid}.information-hours li>span:first-child{color:var(--olive);font-variant-numeric:tabular-nums;font-weight:600}.information-hours+.information-item{margin-top:20px}.practical-hours{background:#f7f4ec;border-radius:16px;margin:0;padding:4px 18px}.practical-hours>div{grid-template-columns:82px minmax(0,1fr);align-items:baseline;gap:14px;padding-block:15px;display:grid}.practical-hours>div+div{border-top:1px solid #ded4bd}.practical-hours dt{color:var(--olive);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:16px;font-weight:650}.practical-hours dd{margin:0;font-size:15px;font-weight:500;line-height:1.5}.information-list .practical-hours-note{margin-top:14px;font-size:13px;line-height:1.6}.accommodation-section{border:1px solid var(--line);border-radius:14px;padding-inline:14px}.accommodation-section+.accommodation-section{margin-top:12px}.accommodation-summary{cursor:pointer;-webkit-tap-highlight-color:transparent;border-radius:8px;list-style:none}.accommodation-summary::-webkit-details-marker{display:none}.accommodation-summary::marker{content:""}.accommodation-summary:focus-visible{outline:3px solid var(--olive);outline-offset:4px}.accommodation-summary h3{align-items:center;gap:10px;min-height:64px;margin:0;font-size:16px;font-weight:600;display:flex}.accommodation-summary svg{color:var(--olive);flex-shrink:0}.accommodation-summary h3>span{flex:1}.accommodation-chevron{transition:transform .18s}.accommodation-section[open]>.accommodation-summary .accommodation-chevron{transform:rotate(180deg)}.accommodation-content{padding-bottom:16px}.lodging-list{margin:16px 0 0;padding:0;list-style:none}.lodging-list li+li{border-top:1px solid var(--line)}.lodging-list a{border-radius:6px;justify-content:space-between;align-items:center;gap:12px;min-height:76px;padding-block:14px;text-decoration:none;display:flex}.lodging-list a>span:first-child{min-width:0}.lodging-list strong{font-size:15px;font-weight:600;line-height:1.5;display:block}.lodging-list a>span>span{color:var(--muted);margin-top:4px;font-size:13px;line-height:1.5;display:block}.lodging-list svg{color:var(--olive);flex-shrink:0}@media (hover:hover){.lodging-list a:hover strong{color:var(--olive);text-underline-offset:3px;text-decoration:underline}}.map-scroll{background:#ead8b6;border:1px solid #d9c6a1;border-radius:20px;max-height:70svh;overflow:auto}.map-canvas{min-width:100%;position:relative}.festival-artwork{width:100%;height:auto;display:block}.map-zone{cursor:pointer;outline:none}.map-zone-hit{fill:#0000;stroke:#0000;stroke-width:4px}.map-zone:focus-visible .map-zone-hit,.map-zone.is-selected .map-zone-hit{fill:#fff1c424;stroke:#684e2b;stroke-dasharray:8 5}.map-zone.is-selected .illustrated-sign{filter:drop-shadow(0 0 5px #fff0ba)}@media (hover:hover){.map-zone:hover .map-zone-hit{fill:#fff1c42b;stroke:#79582e}}.map-toolbar{justify-content:flex-end;align-items:center;gap:6px;margin-bottom:12px;display:flex}.map-toolbar button{border:1px solid var(--line);width:44px;height:44px;color:var(--olive);background:#f7f7f2;border-radius:14px;place-items:center;display:grid}.map-toolbar button:disabled{opacity:.35;cursor:default}.map-toolbar output{text-align:center;font-variant-numeric:tabular-nums;min-width:58px;color:var(--muted);font-size:13px}.place-list{padding-left:0}.place-list button[aria-pressed=true]{background:var(--olive);color:#fff}.map-marker{background:var(--olive);color:#fff;border:2px solid #fff;border-radius:50%;width:44px;height:44px;position:absolute;transform:translate(-50%,-50%)}.place-list{flex-wrap:wrap;gap:10px;padding:0;list-style:none;display:flex}.place-list button,.place-detail button,.action{color:#465037;background:#e9edde;border:0;border-radius:14px;padding:12px 18px;text-decoration:none;display:inline-block}.place-detail{background:#f4f5ef;border-radius:20px;margin-top:24px;padding:24px}.place-detail button{margin-top:16px}.error-page{max-width:600px;margin:48px auto;padding-inline:24px}.error-page .action{margin-top:24px}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:20;background:#fff;padding:12px;position:fixed;top:-100px;left:16px}.skip-link:focus{top:12px}.account-page{max-width:520px;margin-inline:auto}.account-back{min-height:44px;color:var(--olive);align-items:center;gap:8px;margin-bottom:16px;font-size:14px;text-decoration:none;display:inline-flex}.account-menu{gap:16px;display:grid}.account-menu-button{background:#faf9f5;border:1px solid #d9ccb0;border-radius:18px;align-items:center;gap:16px;min-height:104px;padding:22px 18px;text-decoration:none;display:flex}.account-menu-button>span{flex:1;min-width:0}.account-menu-button strong{margin-bottom:7px;font-size:18px;display:block}.account-menu-button span span{color:var(--muted);font-size:14px;line-height:1.5;display:block}.account-menu-button>svg{color:var(--olive);flex-shrink:0}.account-menu-button .account-menu-icon{color:var(--gold)}.account-link{box-sizing:border-box;text-align:center;text-decoration:none}@media (hover:hover){.account-menu-button:hover{border-color:var(--olive);background:#f0f3e9}}.account-heading{color:var(--olive);justify-content:space-between;align-items:center;margin-bottom:20px;display:flex}.account-heading h1{color:#302d24;margin:0}.account-login{border-top:1px solid #d9ccb0;padding-top:28px}.account-key{color:var(--gold);margin-bottom:16px}.account-login label{margin-top:24px;font-weight:600;display:block}.account-hint{color:var(--muted);margin:8px 0 16px;font-size:14px}.account-code{letter-spacing:.5em;text-align:center;color:#302d24;background:#fff;border:1px solid #b9bbaa;border-radius:14px;width:100%;max-width:240px;min-height:64px;margin:16px 0 24px;padding:10px 10px 10px 24px;font:28px -apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;display:block}.account-page input:focus-visible{outline:3px solid var(--olive);outline-offset:4px}.account-primary{color:#fff;background:var(--olive);border:0;border-radius:16px;width:100%;min-height:52px;padding:14px 18px;font-weight:600;display:block}.account-primary:disabled{opacity:.55;cursor:default}.account-welcome{overflow-wrap:anywhere;margin-bottom:12px;font-size:21px}.account-question{border:0;border-top:1px solid var(--line);min-width:0;margin:0;padding:24px 0}.account-question legend{padding:0 10px 0 0;font-size:18px;font-weight:600}.account-question legend svg{vertical-align:middle;color:var(--olive);margin-right:4px}.account-choices{gap:10px;display:grid}.answer-option{border:1px solid var(--line);cursor:pointer;border-radius:14px;align-items:center;gap:12px;min-height:56px;padding:16px;line-height:1.45;display:flex}.answer-option.selected{border-color:var(--olive);background:#f0f3e9}.answer-option input{width:20px;height:20px;accent-color:var(--olive);flex-shrink:0;margin:0}.account-absence{margin-bottom:24px}.account-error{color:#9b332b;margin-bottom:12px;padding:12px 0;font-size:14px}.account-status{min-height:48px;color:var(--olive);align-items:flex-start;gap:8px;margin-top:14px;font-size:14px;line-height:1.5;display:flex}.account-status svg{flex-shrink:0}.account-logout{min-height:48px;color:var(--olive);text-underline-offset:4px;background:0 0;border:0;margin-top:24px;padding:12px 0;text-decoration:underline}@media (width>=700px){.page{padding-top:56px}.app-shell{padding-inline:48px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important}.schedule-chevron,.information-chevron,.accommodation-chevron{transition:none}}
