#oshiEntrance{--light-color:#7bdafa;position:fixed;inset:0;margin:auto;width:100vw;max-width:none;height:100dvh;max-height:none;border:0;padding:0;background:#a6dff2;color:#13213b;overflow:auto;font-family:inherit}
#oshiEntrance::backdrop{background:#a6dff2}
.entrance-stage{position:relative;min-height:100%;display:grid;place-items:center;padding:78px 24px 35px;isolation:isolate;overflow:hidden}
.entrance-door{position:absolute;top:0;bottom:0;width:50%;z-index:-1;background:#a6dff2;background-image:radial-gradient(#ffffff90 2px,transparent 2px);background-size:28px 28px;border:1px solid #13213b40;transition:transform 1s cubic-bezier(.22,.8,.25,1)}
.door-left{left:0;border-radius:0 45px 45px 0}.door-right{right:0;border-radius:45px 0 0 45px}
.entrance-skip{position:absolute;right:24px;top:20px;z-index:5;background:#fffdf1;border:2px solid #13213b;border-radius:99px;min-height:44px;padding:8px 18px;font:700 14px inherit;color:inherit;cursor:pointer}
.entrance-panel{position:relative;width:min(640px,100%);text-align:center;background:#fffdf1;border:2px solid #13213b;border-radius:36px 8px 36px 8px;padding:38px 35px;transition:opacity .35s,transform .65s}
.entrance-panel[hidden]{display:none}.entrance-ticket{display:inline-block;background:#f8f36a;border:2px solid #13213b;padding:5px 18px;transform:rotate(-4deg);font-weight:900;font-size:14px;margin:0 0 20px}
.entrance-panel h2{font-size:clamp(28px,4vw,48px);line-height:1.4;margin:0 0 22px;letter-spacing:-.04em}.entrance-panel h2:focus{outline:none}.entrance-panel p{font-size:17px;line-height:1.9}.entrance-panel .entrance-invite{font-size:22px;font-weight:900;margin:22px 0}.entrance-panel button:not(.entrance-back){display:inline-flex;justify-content:center;align-items:center;background:#f8f36a;border:2px solid #13213b;border-radius:99px;min-height:54px;padding:12px 28px;font-family:inherit;font-size:17px;font-weight:900;cursor:pointer;color:inherit}.entrance-panel button:hover{transform:translateY(-2px)}.entrance-panel button:focus-visible,.entrance-skip:focus-visible,.entrance-replay:focus-visible{outline:3px solid #176681;outline-offset:4px}
.entrance-back{display:block;margin:16px auto 0;border:0;background:none;text-decoration:underline;font:inherit;font-size:14px;min-height:44px;cursor:pointer;color:inherit}.light-choice{border:0;padding:0;margin:20px 0}.light-choice legend{font-size:16px;margin:0 auto 14px}.light-options{display:flex;flex-wrap:wrap;justify-content:center;gap:14px}.light-options label{position:relative;display:grid;place-items:center;cursor:pointer}.light-options input{position:absolute;opacity:0;width:48px;height:48px}.light-options span{display:block;width:48px;height:48px;border:2px solid #13213b;border-radius:50%;background:var(--swatch)}.light-options input:checked+span{outline:3px solid #13213b;outline-offset:4px}.light-options input:focus-visible+span{outline:3px dashed #13213b;outline-offset:5px}
.entrance-penlight{height:155px;width:38px;margin:15px auto 20px;transform:rotate(12deg);position:relative;border:2px solid #13213b;border-radius:14px 14px 7px 7px;background:linear-gradient(90deg,#fff9,var(--light-color),#fff9);box-shadow:0 0 35px var(--light-color)}.entrance-penlight:after{content:'';position:absolute;bottom:-22px;left:-2px;width:38px;height:48px;background:#fff;border:2px solid #13213b;border-radius:4px 4px 10px 10px}.light-status{font-weight:800;color:#176681;margin:28px 0 0!important}.entrance-reveal{background:transparent;border:0}.entrance-reveal h2{font-size:clamp(28px,5vw,54px)}.entrance-reveal strong{display:block;font-size:clamp(76px,15vw,150px);line-height:1.5;color:#13213b;text-shadow:5px 5px 0 #fff,-5px -5px 0 #fff;transform:rotate(-5deg)}.entrance-reveal .pop-dots{font-size:40px;letter-spacing:18px;color:#176681}.opening .door-left{transform:translateX(-105%)}.opening .door-right{transform:translateX(105%)}.opening .entrance-panel{opacity:0;transform:scale(1.12)}#oshiEntrance.opening{background:transparent;pointer-events:none}#oshiEntrance.opening::backdrop{background:transparent}.entrance-replay{display:block;margin:18px auto;background:#fffdf1;border:1px solid #13213b;border-radius:99px;color:#13213b;font:inherit;font-size:14px;padding:10px 20px;min-height:44px;cursor:pointer}
@media(max-width:600px){.entrance-stage{padding:78px 16px 24px}.entrance-panel{padding:28px 18px}.entrance-panel p{font-size:16px}.entrance-panel .entrance-invite{font-size:19px}.entrance-ticket{font-size:12px}.entrance-skip{right:16px;font-size:12px}.entrance-penlight{height:100px}.light-options{gap:12px}.light-options span,.light-options input{width:44px;height:44px}}
@media(prefers-reduced-motion:reduce){.entrance-door,.entrance-panel{transition:none}.entrance-panel button:hover{transform:none}}
.motion-off .entrance-door,.motion-off .entrance-panel{transition:none}

/* Keep the entrance readable within short desktop and mobile viewports. */
#oshiEntrance .entrance-panel h2{width:100%;max-width:none}
#oshiEntrance .entrance-reveal strong{white-space:nowrap;font-size:clamp(64px,17vw,130px);letter-spacing:-.07em}
.entrance-reveal .pop-dots{color:var(--light-color);text-shadow:1px 1px #13213b;animation:entrance-pop .65s ease-out both}
@keyframes entrance-pop{from{opacity:0;transform:scale(.45) rotate(-12deg)}to{opacity:1;transform:scale(1) rotate(0)}}
@media(min-width:601px) and (max-height:800px){.entrance-stage{padding:68px 24px 20px}.entrance-panel{padding:22px 30px}.entrance-ticket{margin-bottom:12px}.entrance-panel h2{font-size:34px;margin-bottom:12px}.entrance-panel .entrance-invite{margin:14px 0;font-size:20px}.entrance-penlight{height:85px;margin:8px auto 20px}.light-choice{margin:12px 0}.entrance-back{margin-top:4px}}
@media(max-width:600px){#oshiEntrance .entrance-reveal strong{font-size:clamp(60px,18vw,100px)}.entrance-panel h2{font-size:28px}.entrance-reveal .pop-dots{letter-spacing:8px}.entrance-panel p br{display:none}.entrance-panel .entrance-invite br{display:block}}
@media(prefers-reduced-motion:reduce){.entrance-reveal .pop-dots{animation:none}}

.entrance-reveal p{max-width:27em;margin:18px auto;text-wrap:balance}
@media(max-width:600px){.entrance-reveal p{max-width:17em}}

/* A cute concert: quiet house lights, then a bright opening. */
#oshiEntrance{background:#141a38;color:#fffdf1}
#oshiEntrance::backdrop{background:#141a38}
.entrance-door{background-color:#141a38;background-image:radial-gradient(circle at 18% 22%,#b5eeff 1px,transparent 3px),radial-gradient(circle at 75% 60%,#f8f36a90 1px,transparent 3px),linear-gradient(100deg,#10142b,#222952 55%,#10142b);background-size:137px 173px,193px 127px,100% 100%;border-color:#ffffff25;border-radius:0}
.entrance-door:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 10%,#ffffff05 12%,transparent 14%,transparent 80%,#ffffff06 82%,transparent 84%)}
.entrance-panel{background:#202745e8;border-color:#ffffff50;box-shadow:0 0 80px #80d9ff12}
.entrance-ticket,.entrance-skip,.entrance-panel button:not(.entrance-back){color:#13213b}
.entrance-ticket{border-color:#fff4;box-shadow:0 0 25px #f8f36a18}
.light-status{color:#fffdf1}.light-options input:checked+span{outline-color:white}.light-options input:focus-visible+span{outline-color:white}
.entrance-penlight{box-shadow:0 0 35px var(--light-color),0 0 90px var(--light-color)}
.entrance-reveal{background:transparent;border:0;box-shadow:none}
.entrance-reveal strong{color:#f8f36a;text-shadow:4px 4px 0 #fff,-4px -4px 0 #fff,0 0 50px #f8f36a55}
.live-cheer{position:relative;overflow:hidden;text-align:center;margin:70px 3% 0;padding:55px 20px;background:#18213c;color:white;border:2px solid #13213b;border-radius:36px 8px;background-image:radial-gradient(ellipse at 20% 0,#a6dff238,transparent 50%),radial-gradient(ellipse at 80% 0,#ff8ebd30,transparent 50%)}
.live-label{display:inline-block;border:1px solid #fff7;border-radius:30px;padding:6px 16px;font-weight:800;font-size:12px;letter-spacing:.15em}.live-label:before{content:'●';color:#f8f36a;margin-right:10px}.live-cheer h2{font-size:clamp(28px,4vw,48px);margin:22px 0}.cheer-button{min-height:54px;padding:15px 24px;border:2px solid white;border-radius:99px;background:#f8f36a;color:#13213b;font:800 17px inherit;cursor:pointer}.cheer-button:hover{transform:rotate(-2deg)}.cheer-message{font-size:16px;min-height:2em;margin-top:20px}
.live-confetti{position:fixed;inset:0;z-index:9999;pointer-events:none;overflow:hidden}.live-confetti i{position:absolute;left:var(--x);top:-30px;width:10px;height:18px;background:var(--c);border-radius:3px;animation:confetti-fall 1.8s ease-in var(--d) both}
@keyframes confetti-fall{from{transform:translateY(-20px) rotate(0);opacity:1}to{transform:translateY(105vh) rotate(450deg);opacity:0}}
.section.live-lit{box-shadow:0 -12px 45px -24px var(--stage-light,#7bdafa);transition:box-shadow .7s}.cover{background-image:radial-gradient(ellipse at 10% 0,#fff9,transparent 45%),radial-gradient(ellipse at 90% 0,#f8f36a45,transparent 45%)}
@media(prefers-reduced-motion:reduce){.live-confetti{display:none}.section.live-lit{transition:none}.cheer-button:hover{transform:none}}
.motion-off .live-confetti{display:none}

/* Velvet curtains and a sequenced theatrical reveal. */
.entrance-door{z-index:-1;background:repeating-linear-gradient(90deg,#430713 0%,#87142b 7%,#bb2941 13%,#600b1c 20%);background-size:100% 100%;border:0;border-bottom:8px solid #bda15d;border-radius:0 0 35px 35px;box-shadow:inset -12px 0 35px #22030b}
.entrance-door:after{background:linear-gradient(180deg,#210610aa,transparent 25%,#18000a66)}
.entrance-panel{background:#161d35ed;border-color:#fff5}
.entrance-panel[data-step="1"]{animation:spot-arrival 1.2s ease-out both;box-shadow:0 -30px 100px #fff5}
@keyframes spot-arrival{from{opacity:0;transform:translateY(12px);filter:brightness(.3)}to{opacity:1;transform:none;filter:brightness(1)}}
.entrance-stage:before{content:'';position:absolute;top:-20%;left:15%;width:70%;height:120%;background:conic-gradient(from 155deg at 50% 0,#fff0,#fff2 25deg,#fff0 50deg);pointer-events:none;z-index:-1}
.curtain-open .door-left{transform:translateX(-100%)}.curtain-open .door-right{transform:translateX(100%)}
.stage-announcement{background:transparent;border:0;box-shadow:none}
.stage-flash{position:absolute;inset:0;z-index:8;background:radial-gradient(ellipse,#fff 10%,#fffbd6 50%,#fff0);opacity:0;pointer-events:none;transition:opacity .2s}
.flash-on .stage-flash{opacity:.95}
.entrance-reveal strong,.entrance-reveal .pop-dots,.entrance-reveal p{visibility:hidden;opacity:0}
.reveal-you .entrance-reveal strong,.reveal-you .entrance-reveal .pop-dots,.reveal-you .entrance-reveal p{visibility:visible;opacity:1}
.reveal-you .entrance-reveal strong{animation:star-pop .55s cubic-bezier(.2,.9,.4,1.2) both}
@keyframes star-pop{from{transform:scale(.55) rotate(-8deg);opacity:0}to{transform:scale(1) rotate(-5deg);opacity:1}}
.silver-tapes{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:6}.silver-tapes i{position:absolute;left:var(--x);top:-120px;width:9px;height:105px;border-radius:50%;background:linear-gradient(90deg,#777,#fff 35%,#a9b6c6 60%,#fff 80%,#757b89);animation:silver-fall 2.7s ease-in var(--d) both}
@keyframes silver-fall{from{transform:translateY(-10vh) rotate(var(--r))}to{transform:translateY(115vh) rotate(310deg)}}
.entrance-penlight{width:48px;height:auto;aspect-ratio:.29;border:0;border-radius:0;background:none;box-shadow:none;overflow:hidden;transform:rotate(9deg);margin:4px auto}
.entrance-penlight:after{display:none}.entrance-penlight img{display:block;max-width:none;width:345%;height:auto}
@media(min-width:601px) and (max-height:800px){.entrance-penlight{width:30px;height:auto}.light-status{margin-top:8px!important}}
@media(max-width:600px){.entrance-penlight{width:34px;height:auto}.light-status{margin-top:12px!important}}
@media(prefers-reduced-motion:reduce){.entrance-panel[data-step="1"],.reveal-you .entrance-reveal strong{animation:none}.stage-flash,.silver-tapes{display:none}}
.motion-off .stage-flash,.motion-off .silver-tapes{display:none}

/* Material polish: readable stage type, soft velvet, curled foil. */
.entrance-door{background-image:linear-gradient(180deg,#21000b85,transparent 30%,#27000b55),repeating-linear-gradient(90deg,#3c0715 0%,#650d22 3%,#8e1834 7%,#a32644 10%,#731028 15%,#48091b 19%,#8d1938 25%,#681027 29%,#360715 33%);box-shadow:inset -18px 0 35px #18000c99;border-bottom:4px solid #c4a977}
.entrance-door:after{background:radial-gradient(ellipse at 45% 30%,#f58b931c,transparent 65%),linear-gradient(90deg,#0002,transparent 25%,#0001 70%,#0003)}
#oshiEntrance .entrance-panel:not(.entrance-reveal):not(.stage-announcement){background:#151c32;border:1px solid #ffffff55;box-shadow:0 16px 60px #0003}
#oshiEntrance .entrance-panel h2{color:#fffdf3;text-shadow:0 2px 8px #0005;letter-spacing:.005em}
#oshiEntrance .entrance-panel p{color:#fffdf3}
#oshiEntrance .entrance-reveal strong{color:#fffdf3;text-shadow:0 4px 0 #15223e,0 8px 22px #0006;letter-spacing:-.04em;paint-order:stroke fill;-webkit-text-stroke:1px #fffdf3}
#oshiEntrance .entrance-reveal{z-index:7}
#oshiEntrance .entrance-reveal .pop-dots{display:none}
#oshiEntrance .entrance-ticket{text-shadow:none;letter-spacing:.035em;padding:8px 18px;box-shadow:none}
#oshiEntrance .stage-announcement h2{text-shadow:0 3px 14px #18000bcc}
.silver-tapes{z-index:4}.silver-tapes i{width:44px;height:var(--size);border-radius:0;background:none;top:-160px;animation:silver-fall var(--time) cubic-bezier(.3,.15,.7,.8) var(--d) both;filter:drop-shadow(1px 2px 2px #0004)}.silver-tapes svg{width:100%;height:100%;overflow:visible}
@keyframes silver-fall{0%{transform:translate3d(0,-60px,0) rotate(var(--r));opacity:0}12%{opacity:1}60%{transform:translate3d(12px,58vh,0) rotate(25deg)}100%{transform:translate3d(-12px,120vh,0) rotate(-18deg);opacity:.6}}
#oshiEntrance .entrance-penlight{width:47px;margin:8px auto;filter:drop-shadow(0 0 12px var(--light-color))}
@media(min-width:601px) and (max-height:800px){#oshiEntrance .entrance-penlight{width:37px}.entrance-panel[data-step="2"] h2{font-size:30px;margin-bottom:6px}.light-choice{margin:8px 0}.entrance-back{margin-top:0}}
@media(max-width:600px){#oshiEntrance .entrance-penlight{width:42px}#oshiEntrance .entrance-panel{padding:24px 18px}#oshiEntrance .entrance-panel h2{font-size:27px}.light-choice{margin:12px 0}.entrance-back{margin-top:6px}.silver-tapes i{width:28px}}

#oshiEntrance .entrance-reveal,#oshiEntrance .stage-announcement{background:transparent;box-shadow:none;border:0}
