.skip-link{position:fixed;top:-100px;left:var(--space-4);z-index:100000;background:var(--c-vermilion);color:var(--c-paper);padding:var(--space-3) var(--space-4);border-radius:8px;font-weight:700;transition:top .2s ease}.skip-link:focus{top:var(--space-4)}.intro-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:9000;display:grid;place-items:center;background:var(--c-cobalt-900);opacity:1;transition:opacity .6s ease}html[data-stage=leaving] .intro-overlay{opacity:0;pointer-events:none}html[data-stage=done] .intro-overlay{display:none!important}.welcome-gate{position:absolute;top:0;right:0;bottom:0;left:0;z-index:20;overflow:hidden}html[data-stage=playing] .welcome-gate,html[data-stage=leaving] .welcome-gate,html[data-stage=done] .welcome-gate{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .3s ease,visibility .3s ease}.gate-doors{position:absolute;top:0;right:0;bottom:0;left:0;z-index:10;perspective:1600px}.gate-door{position:absolute;top:0;bottom:0;width:50%;overflow:hidden;transform-style:preserve-3d;transition:transform var(--door-open-duration) var(--ease-door),filter var(--door-open-duration) ease}.gate-door--left{left:0;transform-origin:left center}.gate-door--right{right:0;transform-origin:right center}html[data-stage=opening] .gate-door--left,html[data-stage=playing] .gate-door--left{transform:rotateY(-112deg);filter:brightness(.82)}html[data-stage=opening] .gate-door--right,html[data-stage=playing] .gate-door--right{transform:rotateY(112deg);filter:brightness(.82)}.gate-panel{position:absolute;top:0;right:0;bottom:0;left:0;width:200%;overflow:hidden;backface-visibility:hidden;background:var(--c-paper)}.gate-door--left .gate-panel{left:0}.gate-door--right .gate-panel{left:-100%}.door-back{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(145deg,var(--c-paper-deep),var(--c-paper));box-shadow:inset 0 0 50px #10184f38;transform:rotateY(180deg);backface-visibility:hidden}.layer-sky{position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(circle at 50% 16%,rgba(123,134,217,.32),transparent 55%),linear-gradient(180deg,var(--c-cobalt-900) 0%,var(--c-cobalt-700) 42%,var(--c-paper) 100%);opacity:0;animation:sky-in .9s var(--stagger-sky) ease forwards}@keyframes sky-in{to{opacity:1}}.layer-wave{position:absolute;left:0;right:0;bottom:0;height:64px;opacity:0;transform:translateY(36px);animation-name:wave-rise,wave-drift;animation-duration:.9s,32s;animation-timing-function:var(--ease-overshoot),linear;animation-delay:var(--stagger-wave),var(--stagger-wave);animation-iteration-count:1,infinite;animation-fill-mode:forwards,none}@keyframes wave-rise{to{opacity:1;transform:none}}.layer-stars{position:absolute;top:0;right:0;bottom:0;left:0;height:58%;opacity:0;animation:sky-in .9s var(--stagger-sky) ease forwards;pointer-events:none}.layer-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:var(--c-paper-high);box-shadow:0 0 8px #fff8f2bf;animation:star-twinkle 3.2s ease-in-out infinite}.layer-stars i:nth-child(1){left:14%;top:12%;animation-delay:.2s}.layer-stars i:nth-child(2){left:32%;top:24%;width:2px;height:2px;animation-delay:1.3s}.layer-stars i:nth-child(3){left:58%;top:9%;animation-delay:.8s}.layer-stars i:nth-child(4){left:74%;top:30%;width:2px;height:2px;animation-delay:2.1s}.layer-stars i:nth-child(5){left:22%;top:42%;animation-delay:1.7s}.layer-stars i:nth-child(6){left:46%;top:16%;width:2px;height:2px;animation-delay:.5s}.layer-stars i:nth-child(7){left:84%;top:14%;animation-delay:2.5s}.layer-stars i:nth-child(8){left:64%;top:46%;width:2px;height:2px;animation-delay:1.1s}@keyframes star-twinkle{0%,to{opacity:.25;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}.layer-art{position:absolute;left:50%;bottom:6%;width:clamp(190px,56vw,260px);opacity:0;filter:blur(10px) drop-shadow(0 18px 26px rgba(16,24,79,.2));transform:translate(-50%,14px) scale(1.05);animation:art-reveal 1.1s var(--stagger-art) var(--ease-standard) forwards}.layer-art img{display:block;width:100%;height:auto}@keyframes art-reveal{to{opacity:1;filter:blur(0) drop-shadow(0 18px 26px rgba(16,24,79,.2));transform:translate(-50%) scale(1)}}.door-shade{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.gate-door--left .door-shade{background:linear-gradient(to right,transparent 84%,rgba(16,24,79,.2))}.gate-door--right .door-shade{background:linear-gradient(to left,transparent 84%,rgba(16,24,79,.2))}.gate-light-sweep{position:absolute;top:0;right:0;bottom:0;left:0;z-index:40;pointer-events:none;background:radial-gradient(circle at 50% 50%,#fff8f2f2,#fff8f200 60%);opacity:0;transform:scaleX(.05)}html[data-stage=opening] .gate-light-sweep{animation:light-sweep-once .48s ease-out .1s both}@keyframes light-sweep-once{0%{opacity:0;transform:scaleX(.05)}45%{opacity:1}to{opacity:0;transform:scaleX(1.4)}}.gate-type{position:absolute;top:0;right:0;bottom:0;left:0;z-index:70;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:max(30px,env(safe-area-inset-top)) var(--space-6) max(36px,env(safe-area-inset-bottom));text-align:center;pointer-events:none;transition:opacity .22s ease,transform .22s ease}.gate-type>*{pointer-events:auto}.gate-type:before{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;z-index:-1;pointer-events:none;background:linear-gradient(to top,#10184f85,#10184f00)}html[data-stage=opening] .gate-type,html[data-stage=playing] .gate-type{opacity:0;transform:translateY(-10px)}.gate-kicker{color:var(--c-paper-high);text-shadow:0 2px 10px rgba(16,24,79,.5);font-family:var(--font-display-semi);font-size:clamp(12px,2.6vw,14px);letter-spacing:.08em;opacity:0;transform:translateY(10px);animation:meta-fade-in .7s var(--stagger-kicker) ease forwards}.gate-title{margin:var(--space-3) 0 0;color:var(--c-paper-high);text-shadow:0 3px 14px rgba(16,24,79,.55);font-family:var(--font-display);font-weight:400;font-size:clamp(30px,7.2vw,48px);line-height:1.32}.gate-event-label{margin-top:var(--space-2);color:var(--c-paper-high);text-shadow:0 2px 10px rgba(16,24,79,.5);font-family:var(--font-display-semi);font-size:clamp(15px,3.4vw,18px);font-weight:400;letter-spacing:.01em;opacity:0;transform:translateY(10px);animation:meta-fade-in .7s var(--stagger-event) ease forwards}.gate-date{margin-top:var(--space-1);color:var(--c-paper-high);text-shadow:0 2px 10px rgba(16,24,79,.5);font-family:var(--font-sans);font-size:clamp(14px,3vw,16px);font-weight:600;letter-spacing:.02em;font-variant-numeric:tabular-nums;opacity:0;transform:translateY(10px);animation:meta-fade-in .7s var(--stagger-meta) ease forwards}@keyframes meta-fade-in{to{opacity:1;transform:none}}.gate-open-button{margin-top:var(--space-6);min-width:230px;min-height:var(--touch-cta);display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid rgba(255,248,242,.55);border-radius:999px;background:linear-gradient(135deg,var(--c-vermilion),#a83a20);color:var(--c-paper-high);font-size:16px;font-weight:800;box-shadow:0 12px 34px #10184f61,0 0 #c84b2e4d;cursor:pointer;opacity:0;transform:translateY(12px);animation:cta-fade-in .7s var(--stagger-actions) ease forwards,cta-glow-pulse 2.8s var(--pulse-delay) ease-in-out infinite}@keyframes cta-fade-in{to{opacity:1;transform:none}}@keyframes cta-glow-pulse{0%,to{box-shadow:0 12px 34px #10184f61,0 0 #c84b2e00}50%{box-shadow:0 12px 34px #10184f61,0 0 0 10px #c84b2e29}}.gate-skip-button{display:block;margin:var(--space-3) auto 0;min-height:var(--touch-min);padding:0 var(--space-2);border:0;background:transparent;color:var(--c-paper-high);text-shadow:0 1px 6px rgba(16,24,79,.5);font-size:13px;text-decoration:underline;text-underline-offset:3px;cursor:pointer;opacity:0;animation:skip-fade-in .7s var(--stagger-actions) ease forwards}@keyframes skip-fade-in{to{opacity:.85}}.gate-credit{margin-top:var(--space-2);color:var(--c-paper-high);text-shadow:0 1px 6px rgba(16,24,79,.5);opacity:.7;font-size:11px;text-align:center}@media(min-width:768px){.layer-art{width:clamp(240px,30vw,320px)}.gate-title{font-size:50px}}@media(max-height:690px){.gate-kicker{display:none}}.intro-movie-stage{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;opacity:0;transform:scale(.94);pointer-events:none;transition:opacity 1.2s ease,transform 1.2s var(--ease-standard);background:#000}html[data-stage=opening] .intro-movie-stage,html[data-stage=playing] .intro-movie-stage{opacity:1;transform:scale(1);pointer-events:auto}.intro-video{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;object-position:center center;background:#000}@media(max-width:767px){.intro-video{object-fit:contain}}@media(pointer:coarse){.intro-video{object-fit:contain}}.intro-shade{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#0000000d,#0000006b);pointer-events:none}.intro-movie-stage:fullscreen,.intro-movie-stage:-webkit-full-screen{width:100%;height:100%}.intro-player-shell{position:absolute;left:var(--space-4);right:var(--space-4);bottom:max(18px,env(safe-area-inset-bottom));z-index:10;padding:var(--space-3) var(--space-4);border-radius:20px;background:linear-gradient(145deg,#ffffff1f,#ffffff0a);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.18);box-shadow:0 12px 32px #0000004d,inset 0 1px #ffffff24;opacity:0;transform:translateY(12px);pointer-events:none;transition:opacity .5s .65s ease,transform .5s .65s ease}html[data-stage=playing] .intro-player-shell{opacity:1;transform:none;pointer-events:auto}.intro-seek-row{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:var(--space-2);margin-bottom:var(--space-2)}.intro-time-code{color:var(--c-text-on-cobalt-secondary);font-size:11px;font-variant-numeric:tabular-nums;text-align:center}.intro-seek-bar{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:20px;background:transparent;cursor:pointer;touch-action:pan-x}.intro-seek-bar::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(to right,#ffffffeb,#ffffffeb calc(var(--progress, 0) * 100%),#ffffff38 calc(var(--progress, 0) * 100%),#ffffff38)}.intro-seek-bar::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-6px;width:16px;height:16px;border-radius:50%;background:var(--c-paper-high);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 6px #00000059}.intro-seek-bar::-moz-range-track{height:4px;border-radius:999px;background:#ffffff38}.intro-seek-bar::-moz-range-progress{height:4px;border-radius:999px;background:#ffffffeb}.intro-seek-bar::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--c-paper-high);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 6px #00000059}.intro-player-buttons{display:flex;align-items:center;gap:var(--space-2)}.intro-player-button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:var(--touch-min);border:1px solid rgba(255,255,255,.16);border-radius:12px;background:#ffffff12;color:var(--c-paper-high);font-size:12px;cursor:pointer;transition:background .2s ease,border-color .2s ease}.intro-player-button:hover,.intro-player-button:focus-visible{background:#ffffff24;border-color:#ffffff4d}.intro-player-button.primary{background:#ffffff29;border-color:#ffffff52;font-weight:600}.intro-volume-control{position:relative;flex:1;display:flex}.intro-volume-control .intro-player-button{flex:1;width:100%}.intro-volume-popup{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);z-index:1;width:min(140px,calc(100vw - 32px));padding:var(--space-2) var(--space-3);border-radius:14px;background:linear-gradient(145deg,#ffffff24,#ffffff0d);backdrop-filter:blur(20px) saturate(160%);-webkit-backdrop-filter:blur(20px) saturate(160%);border:1px solid rgba(255,255,255,.18);box-shadow:0 8px 24px #0000004d,inset 0 1px #ffffff24}.intro-volume-slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;display:block;width:100%;height:20px;background:transparent;cursor:pointer;touch-action:pan-x}.intro-volume-slider::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(to right,#ffffffeb,#ffffffeb calc(var(--volume, 0) * 100%),#ffffff38 calc(var(--volume, 0) * 100%),#ffffff38)}.intro-volume-slider::-webkit-slider-thumb{-webkit-appearance:none;margin-top:-6px;width:16px;height:16px;border-radius:50%;background:var(--c-paper-high);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 6px #00000059}.intro-volume-slider::-moz-range-track{height:4px;border-radius:999px;background:#ffffff38}.intro-volume-slider::-moz-range-progress{height:4px;border-radius:999px;background:#ffffffeb}.intro-volume-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--c-paper-high);border:2px solid rgba(255,255,255,.5);box-shadow:0 2px 6px #00000059}.intro-player-button.skip{flex:1.4;color:var(--c-text-on-cobalt-secondary);text-decoration:underline;text-underline-offset:3px;background:transparent;border-color:transparent}@media(max-width:599px){.intro-player-button .btn-label{display:none}.intro-player-button.skip .btn-label{display:inline}}@media(min-width:768px){.intro-player-shell{left:50%;right:auto;width:min(640px,90vw);transform:translate(-50%,12px)}html[data-stage=playing] .intro-player-shell{transform:translate(-50%)}}.bgm-toggle{position:fixed;top:max(12px,env(safe-area-inset-top));right:max(12px,env(safe-area-inset-right));z-index:9500;display:grid;place-items:center;width:var(--touch-min);height:var(--touch-min);border:1px solid rgba(255,255,255,.32);border-radius:50%;background:#10184f8c;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--c-paper-high);font-size:22px;line-height:1;cursor:pointer;transition:background .2s ease,opacity .2s ease}.bgm-toggle:hover{background:#10184fbf}.bgm-toggle[aria-pressed=false]{opacity:.75}.bgm-toggle[aria-pressed=false]:after{content:"";position:absolute;width:54%;height:2px;background:currentColor;transform:rotate(-45deg)}html[data-stage=opening] .bgm-toggle,html[data-stage=playing] .bgm-toggle{display:none}
