:root{--color-bg: #0a0a0f;--color-bg-elevated: #12121a;--color-surface: rgba(255, 255, 255, .03);--color-border: rgba(255, 255, 255, .08);--color-accent: #d4a853;--color-accent-light: #e8c77b;--color-accent-glow: rgba(212, 168, 83, .3);--color-text: #f5f5f5;--color-text-muted: rgba(255, 255, 255, .6);--color-text-subtle: rgba(255, 255, 255, .4);--font-sans: "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-serif: "Shippori Mincho", "Yu Mincho", serif;--space-xs: .5rem;--space-sm: 1rem;--space-md: 1.5rem;--space-lg: 2rem;--space-xl: 3rem;--transition-fast: .2s cubic-bezier(.4, 0, .2, 1);--transition-normal: .4s cubic-bezier(.4, 0, .2, 1);--transition-slow: .6s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{margin:0;overflow-x:hidden;overflow-y:scroll;font-family:var(--font-sans);height:3200vh;background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}canvas{display:block;position:fixed;top:0;left:0;width:100%;height:100vh;z-index:-1}#intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg);display:flex;justify-content:center;align-items:center;z-index:1000;opacity:1;pointer-events:auto}#intro-overlay:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse at 50% 50%,rgba(212,168,83,.08) 0%,transparent 70%),radial-gradient(ellipse at 20% 80%,rgba(212,168,83,.05) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(212,168,83,.05) 0%,transparent 50%);pointer-events:none}#intro-content{text-align:center;position:relative;z-index:1;opacity:1}.intro-sub{display:block;font-family:var(--font-serif);font-size:clamp(.875rem,2vw,1.125rem);font-weight:400;color:var(--color-accent);letter-spacing:.3em;margin-bottom:var(--space-md);opacity:0;animation:fadeIn .8s .5s ease-out forwards}.intro-title{font-family:var(--font-serif);font-size:clamp(1.5rem,5vw,2.5rem);font-weight:700;line-height:1.3;letter-spacing:.1em;color:var(--color-text);margin-bottom:var(--space-lg);opacity:0;animation:fadeIn .5s ease-out forwards;text-shadow:0 0 10px rgba(255,255,255,.3),0 0 20px rgba(255,255,255,.2),0 0 40px rgba(212,168,83,.15)}.intro-logo{display:block;max-width:280px;width:60vw;height:auto;margin:0 auto;filter:drop-shadow(0 0 8px rgba(255,255,255,.3)) drop-shadow(0 0 20px rgba(212,168,83,.2));opacity:0;animation:fadeIn .5s .3s ease-out forwards}#scroll-indicator{position:fixed;bottom:0;left:0;right:0;height:33vh;background:linear-gradient(to bottom,transparent,rgba(0,0,0,.6));display:flex;flex-direction:column;justify-content:flex-end;align-items:center;padding-bottom:2rem;color:#fff;font-family:var(--font-serif);font-size:1.5rem;letter-spacing:.3em;z-index:100;opacity:1;transition:opacity .5s ease;pointer-events:none}#scroll-indicator.hidden{opacity:0}#scroll-indicator span{text-shadow:0 0 10px rgba(255,255,255,.5)}.scroll-arrow{font-size:2.5rem;animation:bounce 1.5s infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(8px)}}#nav-indicator{position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%);display:flex;gap:1rem;z-index:200;opacity:0;transition:opacity .3s ease;pointer-events:none}#nav-indicator.visible{opacity:1;pointer-events:auto}.nav-btn{display:flex;align-items:center;gap:.3rem;padding:.6rem 1rem;background:#0009;border:1px solid rgba(255,255,255,.2);border-radius:2rem;color:#fff;font-family:var(--font-serif);font-size:.9rem;cursor:pointer;transition:all .2s ease;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nav-btn:hover{background:#000c;border-color:#fff6}.nav-btn:active{transform:scale(.95)}.nav-btn span:first-child{font-size:1.2rem}.nav-label{font-size:.75rem;letter-spacing:.1em}.toc-link{cursor:pointer;transition:all .2s ease;border-radius:4px;padding:.2rem .4rem;margin:-.2rem -.4rem}.toc-link:hover{background:#d4a85333}.toc-link:active{background:#d4a85366}.toc-link .toc-item:after{content:" →";opacity:0;transition:opacity .2s ease}.toc-link:hover .toc-item:after{opacity:.6}.page-overlay{position:fixed;display:flex;justify-content:center;align-items:center;z-index:100;opacity:0;pointer-events:none;transition:opacity var(--transition-slow);background:transparent}.page-content{text-align:center;width:clamp(280px,40vw,400px);min-height:clamp(350px,50vh,500px);padding:var(--space-xl) var(--space-lg);position:relative;z-index:1;display:flex;flex-direction:column;justify-content:space-between;align-items:center;background:transparent;color:#fff}.event-title{font-family:var(--font-serif);font-size:clamp(1.4rem,4vw,2.2rem);font-weight:700;color:#f5e6c8;margin-bottom:var(--space-lg);line-height:1.3;letter-spacing:.08em;text-shadow:0 0 10px rgba(245,230,200,.4),0 0 20px rgba(245,230,200,.2)}.event-info{margin:0}.event-info p{font-size:.9rem;color:#f5e6c8;margin-bottom:.3rem;letter-spacing:.1em;text-shadow:0 0 8px rgba(245,230,200,.3)}.event-date{font-size:.95rem!important;color:#f5e6c8!important;font-weight:400;font-family:var(--font-serif)}.event-works{font-family:var(--font-serif);font-size:1rem;color:#f5e6c8;letter-spacing:.15em;text-shadow:0 0 8px rgba(245,230,200,.3);margin:0}.event-location{font-size:.9rem!important;color:#f5e6c8!important}.cta-button.primary{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.7rem 1.5rem;background:transparent;color:#f5e6c8;text-decoration:none;font-size:.85rem;font-weight:500;letter-spacing:.08em;border:1px solid #f5e6c8;border-radius:2px;cursor:pointer;transition:all var(--transition-fast);position:relative;overflow:hidden;text-shadow:0 0 8px rgba(245,230,200,.3);margin-top:var(--space-lg)}.cta-button.primary:hover{background:#f5e6c826;transform:translateY(-2px);box-shadow:0 0 15px #f5e6c84d}.cta-button.primary svg{width:12px;height:12px;transition:transform var(--transition-fast)}.cta-button.primary:hover svg{transform:translate(3px)}.page-content.toc{justify-content:flex-start;min-height:auto;width:clamp(300px,50vw,450px);padding:var(--space-lg);align-items:flex-start}.toc-header{font-family:var(--font-serif);font-size:1.3rem;color:#f5e6c8;padding:.4rem 1.2rem;margin-bottom:var(--space-lg);letter-spacing:.25em;text-shadow:0 0 10px rgba(245,230,200,.5);background:#f5e6c826;border-radius:3px;align-self:flex-start}.toc-content{width:100%;text-align:left}.toc-section{margin-bottom:var(--space-md)}.toc-section-title{font-family:var(--font-serif);font-size:1rem;color:#f5e6c8;font-weight:600;margin-bottom:var(--space-sm);padding-left:.5rem;border-left:2px solid rgba(245,230,200,.5);text-shadow:0 0 8px rgba(245,230,200,.4)}.toc-list{list-style:none;padding:0;margin:0 0 0 1rem}.toc-list li{display:flex;align-items:baseline;font-size:.9rem;color:#f5e6c8;padding:.4rem 0;line-height:1.4}.toc-item{flex-shrink:0;font-family:var(--font-serif);text-shadow:0 0 6px rgba(245,230,200,.3)}.toc-dots{flex:1;border-bottom:1px dotted rgba(245,230,200,.4);margin:0 .5rem;min-width:20px;position:relative;top:-.3rem}.toc-page{flex-shrink:0;font-family:var(--font-serif);color:#f5e6c8cc;text-shadow:0 0 6px rgba(245,230,200,.3)}.page-content.timetable{justify-content:flex-start;min-height:auto;width:clamp(320px,55vw,500px);padding:var(--space-lg);align-items:flex-start}.timetable-header{font-family:var(--font-serif);font-size:1.3rem;color:#f5e6c8;padding:.4rem 1.2rem;margin-bottom:var(--space-lg);letter-spacing:.2em;text-shadow:0 0 10px rgba(245,230,200,.5);background:#f5e6c826;border-radius:3px;align-self:flex-start}.schedule-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-md);width:100%}.day-schedule{background:#00000026;border:1px solid rgba(245,230,200,.2);border-radius:4px;padding:var(--space-sm)}.day-schedule h3{font-family:var(--font-serif);font-size:.95rem;color:#f5e6c8;font-weight:600;margin-bottom:var(--space-xs);padding-bottom:.3rem;border-bottom:1px solid rgba(245,230,200,.3);text-shadow:0 0 6px rgba(245,230,200,.4)}.day-schedule ul{list-style:none;padding:0;margin:0}.day-schedule li{display:flex;gap:.5rem;font-size:.8rem;color:#f5e6c8;padding:.25rem 0;line-height:1.4}.day-schedule .time{color:#f5e6c8b3;font-size:.75rem;min-width:50px}.day-schedule .work{color:#f5e6c8;font-weight:500;text-shadow:0 0 5px rgba(245,230,200,.3)}.page-content.director{justify-content:center;min-height:auto;width:clamp(280px,40vw,400px);padding:var(--space-xl)}.director-header{font-family:var(--font-serif);font-size:1.5rem;color:#f5e6c8;letter-spacing:.3em;margin-bottom:var(--space-lg);text-shadow:0 0 10px rgba(245,230,200,.5)}.director-list{list-style:none;padding:0;margin:0;text-align:center}.director-list li{font-family:var(--font-serif);font-size:1.1rem;color:#f5e6c8;padding:.5rem 0;letter-spacing:.15em;text-shadow:0 0 8px rgba(245,230,200,.4)}.page-content.gallery{justify-content:flex-start;min-height:auto;width:clamp(280px,45vw,420px);padding:var(--space-lg);align-items:flex-start}.gallery-header{font-family:var(--font-serif);font-size:1.3rem;color:#f5e6c8;letter-spacing:.25em;padding:.4rem 1.2rem;margin-bottom:var(--space-md);text-shadow:0 0 10px rgba(245,230,200,.5);background:#f5e6c826;border-radius:3px}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:.8rem;width:100%;aspect-ratio:1}.gallery-frame{position:relative;background:#f8f6f1;padding:6px 6px 20px;cursor:pointer;transition:transform .3s ease,box-shadow .3s ease;box-shadow:0 2px 8px #0000004d,0 4px 20px #0003}.gallery-frame:before{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-3deg);width:45px;height:16px;background:#ffdcb4d9;box-shadow:0 1px 3px #0003;z-index:5}.gallery-frame:after{content:"";position:absolute;top:-8px;left:50%;transform:translate(-50%) rotate(-3deg);width:45px;height:16px;background:repeating-linear-gradient(90deg,transparent 0px,transparent 2px,rgba(255,255,255,.3) 2px,rgba(255,255,255,.3) 4px);z-index:6}.gallery-frame.top-right:before,.gallery-frame.top-right:after{transform:translate(-50%) rotate(4deg)}.gallery-frame.bottom-left:before,.gallery-frame.bottom-left:after{transform:translate(-50%) rotate(-6deg)}.gallery-frame.top-left{transform:rotate(-3deg)}.gallery-frame.top-right{transform:rotate(2deg)}.gallery-frame.bottom-left{transform:rotate(-1deg)}.gallery-frame:hover{transform:scale(1.08) rotate(0);box-shadow:0 8px 25px #0006,0 0 20px #f5e6c84d;z-index:10}.gallery-frame:hover:before,.gallery-frame:hover:after{transform:translate(-50%) rotate(-3deg) scale(.926)}.gallery-frame.top-right:hover:before,.gallery-frame.top-right:hover:after{transform:translate(-50%) rotate(4deg) scale(.926)}.gallery-frame.bottom-left:hover:before,.gallery-frame.bottom-left:hover:after{transform:translate(-50%) rotate(-6deg) scale(.926)}.gallery-frame .frame-inner{position:relative;width:100%;aspect-ratio:1;background:#1a1a1a;overflow:hidden}.gallery-frame.top-left{grid-column:1;grid-row:1}.gallery-frame.top-right{grid-column:2;grid-row:1}.gallery-frame.bottom-left{grid-column:1;grid-row:2}.gallery-frame .frame-inner img{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.gallery-frame:hover .frame-inner img{transform:scale(1.05)}.gallery-lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000e6;display:flex;justify-content:center;align-items:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .3s ease}.gallery-lightbox.active{opacity:1;pointer-events:auto}.gallery-lightbox img{max-width:90vw;max-height:85vh;object-fit:contain;border:4px solid #f5e6c8;border-radius:4px;box-shadow:0 0 30px #f5e6c84d}.lightbox-close{position:absolute;top:1.5rem;right:1.5rem;background:transparent;border:2px solid #f5e6c8;color:#f5e6c8;font-size:2rem;width:3rem;height:3rem;border-radius:50%;cursor:pointer;transition:all .2s ease;display:flex;justify-content:center;align-items:center;line-height:1}.lightbox-close:hover{background:#f5e6c833;transform:scale(1.1)}#ui-container{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:10}.card-info{position:absolute;width:clamp(260px,30vw,320px);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,#12121af2,#0a0a0ffa);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 4px 24px #0006,0 0 0 1px #ffffff08 inset,0 1px #ffffff0d inset;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);opacity:0;transition:opacity var(--transition-normal),transform var(--transition-normal);transform:translate(20px,-50%);pointer-events:auto}.card-info:before{content:"";position:absolute;top:0;left:var(--space-lg);right:var(--space-lg);height:1px;background:linear-gradient(90deg,transparent,var(--color-accent-glow),transparent);opacity:.5}.card-info h2{font-family:var(--font-serif);font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:600;color:var(--color-text);margin-bottom:var(--space-sm);letter-spacing:.05em}.card-info p{font-size:.9rem;color:var(--color-text-muted);line-height:1.7;margin-bottom:var(--space-md)}.card-info p:empty{display:none}.card-info .play-time{font-size:.8rem;color:var(--color-accent);margin-bottom:var(--space-xs)}.card-info .synopsis{font-size:.85rem;color:var(--color-text-muted);line-height:1.6}.card-button{display:inline-flex;align-items:center;gap:var(--space-xs);padding:.75rem 1.5rem;background:transparent;color:var(--color-accent);text-decoration:none;font-size:.875rem;font-weight:500;letter-spacing:.05em;border:1px solid var(--color-accent);border-radius:4px;transition:background var(--transition-fast),color var(--transition-fast),transform var(--transition-fast),box-shadow var(--transition-fast);position:relative;overflow:hidden}.card-button:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--color-accent);transform:scaleX(0);transform-origin:left;transition:transform var(--transition-normal);z-index:-1}.card-button:hover{color:var(--color-bg);transform:translateY(-2px);box-shadow:0 4px 16px var(--color-accent-glow)}.card-button:hover:before{transform:scaleX(1)}.card-button:focus{outline:none;box-shadow:0 0 0 3px var(--color-accent-glow)}.card-button:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.card-button svg{transition:transform var(--transition-fast)}.card-button:hover svg{transform:translate(4px)}.card-button-sub{border-color:#fff6;color:#fffc;font-size:.8rem;padding:.55rem 1.2rem;margin-top:.4rem}.card-button-sub:before{background:#ffffff26}.card-button-sub:hover{color:#fff;border-color:#ffffffb3}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes expandLine{0%{opacity:0;width:0}to{opacity:1;width:60px}}@media (max-width: 768px){.card-info{width:calc(100vw - 2rem);max-width:300px;padding:var(--space-sm) var(--space-md)}.intro-title{font-size:clamp(2rem,10vw,3rem)}.intro-sub{font-size:.875rem;letter-spacing:.2em}.page-content{width:clamp(260px,50vw,320px);min-height:clamp(300px,45vh,400px);padding:var(--space-md)}.event-title{font-size:clamp(1.1rem,3.5vw,1.5rem)}.page-content.toc{width:clamp(260px,70vw,350px);padding:var(--space-md)}.toc-header{font-size:1.1rem;padding:.3rem 1rem}.toc-section-title{font-size:.9rem}.toc-list li{font-size:.8rem;padding:.3rem 0}.toc-list{margin-left:.5rem}.page-content.timetable{width:clamp(280px,75vw,400px);padding:var(--space-md);transform:scale(.8);transform-origin:center center}.timetable-header{font-size:.7rem;padding:.3rem 1rem}.schedule-grid{grid-template-columns:1fr;gap:var(--space-sm)}.day-schedule h3{font-size:.54rem}.day-schedule li{font-size:.48rem}}@media (max-width: 480px){:root{--space-md: 1rem;--space-lg: 1.5rem}.card-info{border-radius:8px}.card-button{width:100%;justify-content:center}}.credits-overlay{position:fixed;display:flex;justify-content:center;align-items:center;z-index:100;opacity:0;pointer-events:none;transition:opacity var(--transition-slow);background:transparent}.credits-content{text-align:center;width:clamp(300px,50vw,450px);min-height:clamp(350px,50vh,500px);max-height:clamp(400px,55vh,550px);overflow-y:auto;padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;background:transparent;color:#f5e6c8;scrollbar-width:none;-ms-overflow-style:none}.credits-content::-webkit-scrollbar{display:none}.credits-header{font-family:var(--font-serif);font-size:1.3rem;color:#f5e6c8;letter-spacing:.25em;padding:.4rem 1.2rem;margin-bottom:var(--space-md);text-shadow:0 0 10px rgba(245,230,200,.5);background:#f5e6c826;border-radius:3px}.credits-sections{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-sm);width:100%;text-align:left}.credits-section{text-align:center;margin-bottom:var(--space-xs)}.credits-section h3{font-family:var(--font-serif);font-size:.75rem;color:#f5e6c8;font-weight:600;margin-bottom:.3rem;padding-bottom:.2rem;border-bottom:1px solid rgba(245,230,200,.4);text-shadow:0 0 6px rgba(245,230,200,.4)}.credits-section ul{list-style:none;padding:0;margin:0}.credits-section li{font-family:var(--font-serif);font-size:.55rem;color:#f5e6c8;padding:.1rem 0;text-shadow:0 0 4px rgba(245,230,200,.3)}@media (max-width: 768px){.credits-content{width:clamp(260px,70vw,350px);min-height:clamp(300px,45vh,400px);padding:var(--space-md)}.credits-sections{grid-template-columns:repeat(2,1fr);gap:var(--space-xs)}.credits-header{font-size:1rem;padding:.3rem 1rem}.credits-section h3{font-size:.65rem}.credits-section li{font-size:.5rem}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media (prefers-contrast: high){:root{--color-border: rgba(255, 255, 255, .3);--color-text-muted: rgba(255, 255, 255, .8)}.card-button{border-width:2px}}
