*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000;color:#eee;font-family:system-ui,-apple-system,"Segoe UI","Microsoft JhengHei",sans-serif}
body{position:fixed;inset:0;overscroll-behavior:none}#app,.player-shell{position:fixed;inset:0;width:100%;height:100%;padding:0;margin:0;overflow:hidden;background:#000}
.stage{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);overflow:hidden;background:#000;touch-action:manipulation;user-select:none;perspective:900px;box-shadow:none;border:0;outline:none}.transition-ghost{z-index:5000;pointer-events:none!important;transform-origin:50% 50%;will-change:transform,opacity,clip-path;backface-visibility:hidden;transform-style:preserve-3d}.transition-ghost *{pointer-events:none!important}.transition-piece{pointer-events:none!important;transform-origin:50% 50%;will-change:transform,opacity,clip-path,filter;backface-visibility:hidden;transform-style:preserve-3d}.transition-piece *{pointer-events:none!important}.stage.transition-active{pointer-events:none!important;will-change:transform,opacity,clip-path}.morph-temp{position:absolute;pointer-events:none!important;z-index:9000;overflow:hidden;will-change:left,top,width,height,opacity,transform}.morph-temp img{display:block;width:100%;height:100%;object-fit:fill}
.bg{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none}.overlay{position:absolute;padding:0;margin:0;border:0;background:transparent;overflow:visible;pointer-events:none;transform-style:preserve-3d;will-change:transform,opacity,clip-path;-webkit-backface-visibility:hidden;backface-visibility:hidden;isolation:isolate}
.overlay img{display:block;width:100%;height:100%;object-fit:fill}.overlay.animated-gif img{background:transparent}.media-player{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000;display:none;pointer-events:none}.hotspot,.nav-hotspot{position:absolute;padding:0;margin:0;border:0;background:transparent;cursor:pointer;touch-action:manipulation}.hotspot,.nav-hotspot{min-width:0;min-height:0}.audio-loading .hotspot{pointer-events:none}
.start-gate{position:absolute;inset:0;z-index:9500;border:0;margin:0;padding:0;background:transparent;cursor:pointer;touch-action:manipulation;color:transparent}.start-gate::after{content:"點一下開始";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:12px 22px;border:1px solid rgba(255,255,255,.55);border-radius:12px;background:rgba(0,0,0,.62);color:#fff;font-size:clamp(16px,2.2vw,28px);font-weight:600;white-space:nowrap;box-shadow:0 4px 18px rgba(0,0,0,.28)}
.hotspot.target-hidden{pointer-events:none!important}.hotspot:focus-visible,.nav-hotspot:focus-visible{outline:3px solid #00a9ff;outline-offset:-3px}.hotspot.debug-zone,.nav-hotspot.debug-zone{outline:2px solid rgba(255,0,0,.85);outline-offset:-2px;background:rgba(255,0,0,.06)}.nav-hotspot.debug-zone{outline-color:rgba(0,170,255,.9);background:rgba(0,170,255,.08)}.hud{position:absolute;right:max(8px,env(safe-area-inset-right));top:max(8px,env(safe-area-inset-top));z-index:10000;display:flex;align-items:center;gap:5px;padding:5px;border-radius:10px;background:rgba(0,0,0,.34);backdrop-filter:blur(5px);opacity:.24;transition:opacity .18s ease}.hud:hover,.hud:focus-within,.hud.show{opacity:.92}.hud button,.hud .hud-link{width:42px;height:42px;padding:0;border:1px solid rgba(255,255,255,.35);border-radius:8px;background:rgba(18,18,18,.72);color:#fff;font-size:20px;line-height:1;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;text-decoration:none}.hud .hud-link[hidden]{display:none!important}.hud button:active,.hud .hud-link:active{transform:scale(.96)}.hud .mode-button{font-size:12px;font-weight:700;letter-spacing:0;white-space:nowrap}.hud #page{min-width:72px;text-align:center;font-size:13px;color:#fff;white-space:nowrap}.orientation-hint{position:absolute;left:50%;top:max(60px,calc(env(safe-area-inset-top) + 52px));transform:translateX(-50%);z-index:10020;max-width:min(86vw,420px);padding:9px 14px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(0,0,0,.68);color:#fff;font-size:13px;font-weight:650;text-align:center;pointer-events:none;opacity:0;transition:opacity .22s ease;backdrop-filter:blur(6px)}.orientation-hint.show{opacity:.96}.status{position:absolute;left:50%;bottom:max(8px,env(safe-area-inset-bottom));transform:translateX(-50%);z-index:9999;max-width:80%;padding:4px 9px;border-radius:8px;background:rgba(0,0,0,.45);text-align:center;color:#ffcf66;pointer-events:none;opacity:.82}.status:empty{display:none}.done{visibility:hidden!important}.initial-hidden{visibility:hidden}
.fx{animation-duration:var(--dur,500ms);animation-fill-mode:forwards;animation-timing-function:ease}.fx-show{visibility:visible}.fx-hide{visibility:hidden}
.fx-fade{animation-name:fadeOut}.fx-fadeIn{visibility:visible;animation-name:fadeIn}.fx-boxIn,.fx-zoomIn{visibility:visible;animation-name:zoomIn}.fx-boxOut,.fx-zoomOut{animation-name:zoomOut}
.fx-circleIn{visibility:visible;animation-name:circleIn}.fx-circleOut{animation-name:circleOut}.fx-diamondIn{visibility:visible;animation-name:diamondIn}.fx-diamondOut{animation-name:diamondOut}
.fx-flyLeftIn{visibility:visible;animation-name:flyLeftIn}.fx-flyLeftOut{animation-name:flyLeftOut}.fx-flyRightIn{visibility:visible;animation-name:flyRightIn}.fx-flyRightOut{animation-name:flyRightOut}
.fx-flyUpIn{visibility:visible;animation-name:flyUpIn}.fx-flyUpOut{animation-name:flyUpOut}.fx-flyDownIn{visibility:visible;animation-name:flyDownIn}.fx-flyDownOut{animation-name:flyDownOut}
.fx-flyUpLeftIn,.fx-flyUpRightIn,.fx-flyDownRightIn,.fx-flyDownLeftIn{visibility:visible}.fx-flyUpLeftIn{animation-name:flyUpLeftIn}.fx-flyUpRightIn{animation-name:flyUpRightIn}.fx-flyDownRightIn{animation-name:flyDownRightIn}.fx-flyDownLeftIn{animation-name:flyDownLeftIn}
.fx-flyUpLeftOut{animation-name:flyUpLeftOut}.fx-flyUpRightOut{animation-name:flyUpRightOut}.fx-flyDownRightOut{animation-name:flyDownRightOut}.fx-flyDownLeftOut{animation-name:flyDownLeftOut}
.fx-wipeDownIn{visibility:visible;animation-name:wipeDownIn}.fx-wipeDownOut{animation-name:wipeDownOut}.fx-wipeUpIn{visibility:visible;animation-name:wipeUpIn}.fx-wipeUpOut{animation-name:wipeUpOut}.fx-wipeLeftIn{visibility:visible;animation-name:wipeLeftIn}.fx-wipeLeftOut{animation-name:wipeLeftOut}.fx-wipeRightIn{visibility:visible;animation-name:wipeRightIn}.fx-wipeRightOut{animation-name:wipeRightOut}
.fx-blindsHorizontalIn{visibility:visible;animation-name:blindsHIn}.fx-blindsHorizontalOut{animation-name:blindsHOut}.fx-blindsVerticalIn{visibility:visible;animation-name:blindsVIn}.fx-blindsVerticalOut{animation-name:blindsVOut}
.fx-checkerboardIn{visibility:visible;animation-name:checkerIn}.fx-checkerboardOut{animation-name:checkerOut}.fx-crawlIn{visibility:visible;animation-name:crawlIn}.fx-crawlOut{animation-name:crawlOut}.fx-dissolveIn{visibility:visible;animation-name:dissolveIn}.fx-dissolveOut{animation-name:dissolveOut}
.fx-randomIn{visibility:visible;animation-name:dissolveIn}.fx-randomOut{animation-name:dissolveOut}.fx-colorRevealIn{visibility:visible;animation-name:fadeIn}.fx-colorRevealOut{animation-name:fadeOut}
.fx-peekLeftIn,.fx-peekRightIn,.fx-peekUpIn,.fx-peekDownIn{visibility:visible}.fx-peekLeftIn{animation-name:peekLeftIn}.fx-peekLeftOut{animation-name:peekLeftOut}.fx-peekRightIn{animation-name:peekRightIn}.fx-peekRightOut{animation-name:peekRightOut}.fx-peekUpIn{animation-name:peekUpIn}.fx-peekUpOut{animation-name:peekUpOut}.fx-peekDownIn{animation-name:peekDownIn}.fx-peekDownOut{animation-name:peekDownOut}
.fx-plusIn{visibility:visible;animation-name:plusIn}.fx-plusOut{animation-name:plusOut}.fx-randomBarsIn{visibility:visible;animation-name:randomBarsIn}.fx-randomBarsOut{animation-name:randomBarsOut}.fx-spiralIn{visibility:visible;animation-name:spiralIn}.fx-spiralOut{animation-name:spiralOut}
.fx-splitHorizontalIn{visibility:visible;animation-name:splitHIn}.fx-splitHorizontalOut{animation-name:splitHOut}.fx-splitVerticalIn{visibility:visible;animation-name:splitVIn}.fx-splitVerticalOut{animation-name:splitVOut}
.fx-stretchHorizontalIn,.fx-stretchLeftIn,.fx-stretchRightIn{visibility:visible;animation-name:stretchHIn}.fx-stretchHorizontalOut,.fx-stretchLeftOut,.fx-stretchRightOut{animation-name:stretchHOut}.fx-stretchVerticalIn,.fx-stretchUpIn,.fx-stretchDownIn{visibility:visible;animation-name:stretchVIn}.fx-stretchVerticalOut,.fx-stretchUpOut,.fx-stretchDownOut{animation-name:stretchVOut}
.fx-stripsIn{visibility:visible;animation-name:stripsIn}.fx-stripsOut{animation-name:stripsOut}.fx-swivelIn{visibility:visible;animation-name:swivelIn}.fx-swivelOut{animation-name:swivelOut}.fx-wedgeIn{visibility:visible;animation-name:wedgeIn}.fx-wedgeOut{animation-name:wedgeOut}.fx-wheelIn{visibility:visible;animation-name:wheelIn}.fx-wheelOut{animation-name:wheelOut}
.fx-boomerangIn{visibility:visible;animation-name:boomerangIn}.fx-boomerangOut{animation-name:boomerangOut}.fx-bounceIn{visibility:visible;animation-name:bounceIn}.fx-bounceOut{animation-name:bounceOut}.fx-creditsIn{visibility:visible;animation-name:creditsIn}.fx-creditsOut{animation-name:creditsOut}.fx-easeIn{visibility:visible;animation-name:easeIn}.fx-easeOut{animation-name:easeOut}.fx-floatIn{visibility:visible;animation-name:floatIn}.fx-floatOut{animation-name:floatOut}
.fx-growTurnIn{visibility:visible;animation-name:growTurnIn}.fx-growTurnOut{animation-name:growTurnOut}.fx-lightSpeedIn{visibility:visible;animation-name:lightSpeedIn}.fx-lightSpeedOut{animation-name:lightSpeedOut}.fx-pinwheelIn{visibility:visible;animation-name:pinwheelIn}.fx-pinwheelOut{animation-name:pinwheelOut}.fx-riseUpIn{visibility:visible;animation-name:riseUpIn}.fx-riseUpOut{animation-name:riseUpOut}.fx-swishIn{visibility:visible;animation-name:swishIn}.fx-swishOut{animation-name:swishOut}
.fx-thinLineIn{visibility:visible;animation-name:thinLineIn}.fx-thinLineOut{animation-name:thinLineOut}.fx-unfoldIn{visibility:visible;animation-name:unfoldIn}.fx-unfoldOut{animation-name:unfoldOut}.fx-whipIn{visibility:visible;animation-name:whipIn}.fx-whipOut{animation-name:whipOut}.fx-ascendIn{visibility:visible;animation-name:ascendIn}.fx-ascendOut{animation-name:ascendOut}.fx-descendIn{visibility:visible;animation-name:descendIn}.fx-descendOut{animation-name:descendOut}
.fx-centerRevolveIn{visibility:visible;animation-name:centerRevolveIn}.fx-centerRevolveOut{animation-name:centerRevolveOut}.fx-fadedSwivelIn{visibility:visible;animation-name:fadedSwivelIn}.fx-fadedSwivelOut{animation-name:fadedSwivelOut}.fx-slingIn{visibility:visible;animation-name:slingIn}.fx-slingOut{animation-name:slingOut}.fx-spinnerIn{visibility:visible;animation-name:spinnerIn}.fx-spinnerOut{animation-name:spinnerOut}.fx-stretchyIn{visibility:visible;animation-name:stretchyIn}.fx-stretchyOut{animation-name:stretchyOut}
.fx-zipIn{visibility:visible;animation-name:zipIn}.fx-zipOut{animation-name:zipOut}.fx-arcUpIn{visibility:visible;animation-name:arcUpIn}.fx-arcUpOut{animation-name:arcUpOut}.fx-fadedZoomIn{visibility:visible;animation-name:fadedZoomIn}.fx-fadedZoomOut{animation-name:fadedZoomOut}.fx-glideIn{visibility:visible;animation-name:glideIn}.fx-glideOut{animation-name:glideOut}.fx-expandIn{visibility:visible;animation-name:expandIn}.fx-expandOut{animation-name:expandOut}.fx-flipIn{visibility:visible;animation-name:flipIn}.fx-flipOut{animation-name:flipOut}.fx-foldIn{visibility:visible;animation-name:foldIn}.fx-foldOut{animation-name:foldOut}
.fx-flashOnce,.fx-flash{animation-name:flash}.fx-pulse{animation-name:pulse}.fx-growShrink{animation-name:growShrink}.fx-spin{animation-name:spin}.fx-transparency{animation-name:transparency}.fx-blast{animation-name:blast}.fx-huePulse,.fx-colorPulse{animation-name:huePulse}.fx-underlinePulse{animation-name:underlinePulse}.fx-colorWave{animation-name:colorWave}.fx-complementary{animation-name:complementary}.fx-contrastPulse{animation-name:contrastPulse}.fx-darken{animation-name:darken}.fx-desaturate{animation-name:desaturate}.fx-flashBulb{animation-name:flashBulb}.fx-flicker{animation-name:flicker}.fx-growColor{animation-name:growColor}.fx-lighten{animation-name:lighten}.fx-teeter{animation-name:teeter}.fx-verticalGrow{animation-name:verticalGrow}.fx-wave{animation-name:wave}.fx-shimmer{animation-name:shimmer}
@keyframes fadeOut{to{opacity:0}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}@keyframes zoomIn{from{opacity:0;transform:scale(.08)}to{opacity:1;transform:scale(1)}}@keyframes zoomOut{to{opacity:0;transform:scale(.08)}}
@keyframes flyLeftIn{from{opacity:0;transform:translateX(-120%)}}@keyframes flyLeftOut{to{opacity:0;transform:translateX(-120%)}}@keyframes flyRightIn{from{opacity:0;transform:translateX(120%)}}@keyframes flyRightOut{to{opacity:0;transform:translateX(120%)}}@keyframes flyUpIn{from{opacity:0;transform:translateY(-120%)}}@keyframes flyUpOut{to{opacity:0;transform:translateY(-120%)}}@keyframes flyDownIn{from{opacity:0;transform:translateY(120%)}}@keyframes flyDownOut{to{opacity:0;transform:translateY(120%)}}
@keyframes flyUpLeftIn{from{opacity:0;transform:translate(-120%,-120%)}}@keyframes flyUpLeftOut{to{opacity:0;transform:translate(-120%,-120%)}}@keyframes flyUpRightIn{from{opacity:0;transform:translate(120%,-120%)}}@keyframes flyUpRightOut{to{opacity:0;transform:translate(120%,-120%)}}@keyframes flyDownRightIn{from{opacity:0;transform:translate(120%,120%)}}@keyframes flyDownRightOut{to{opacity:0;transform:translate(120%,120%)}}@keyframes flyDownLeftIn{from{opacity:0;transform:translate(-120%,120%)}}@keyframes flyDownLeftOut{to{opacity:0;transform:translate(-120%,120%)}}
@keyframes wipeDownIn{from{clip-path:inset(0 0 100% 0)}}@keyframes wipeDownOut{to{clip-path:inset(100% 0 0 0)}}@keyframes wipeUpIn{from{clip-path:inset(100% 0 0 0)}}@keyframes wipeUpOut{to{clip-path:inset(0 0 100% 0)}}@keyframes wipeLeftIn{from{clip-path:inset(0 0 0 100%)}}@keyframes wipeLeftOut{to{clip-path:inset(0 100% 0 0)}}@keyframes wipeRightIn{from{clip-path:inset(0 100% 0 0)}}@keyframes wipeRightOut{to{clip-path:inset(0 0 0 100%)}}
@keyframes blindsHIn{from{opacity:0;transform:scaleY(.05)}}@keyframes blindsHOut{to{opacity:0;transform:scaleY(.05)}}@keyframes blindsVIn{from{opacity:0;transform:scaleX(.05)}}@keyframes blindsVOut{to{opacity:0;transform:scaleX(.05)}}@keyframes checkerIn{from{opacity:0;transform:scale(.65) rotate(3deg)}}@keyframes checkerOut{to{opacity:0;transform:scale(.65) rotate(-3deg)}}
@keyframes circleIn{from{clip-path:circle(0 at 50% 50%);opacity:0}to{clip-path:circle(75% at 50% 50%);opacity:1}}@keyframes circleOut{to{clip-path:circle(0 at 50% 50%);opacity:0}}@keyframes diamondIn{from{clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%);opacity:0}to{clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);opacity:1}}@keyframes diamondOut{to{clip-path:polygon(50% 50%,50% 50%,50% 50%,50% 50%);opacity:0}}
@keyframes crawlIn{from{opacity:0;transform:translateY(130%)}}@keyframes crawlOut{to{opacity:0;transform:translateY(-130%)}}@keyframes dissolveIn{from{opacity:0}to{opacity:1}}@keyframes dissolveOut{from{opacity:1}to{opacity:0}}@keyframes flash{0%,100%{opacity:1}50%{opacity:.08}}
@keyframes peekLeftIn{from{opacity:0;transform:translateX(-40%);clip-path:inset(0 100% 0 0)}}@keyframes peekLeftOut{to{opacity:0;transform:translateX(-40%);clip-path:inset(0 100% 0 0)}}@keyframes peekRightIn{from{opacity:0;transform:translateX(40%);clip-path:inset(0 0 0 100%)}}@keyframes peekRightOut{to{opacity:0;transform:translateX(40%);clip-path:inset(0 0 0 100%)}}@keyframes peekUpIn{from{opacity:0;transform:translateY(-40%);clip-path:inset(0 0 100% 0)}}@keyframes peekUpOut{to{opacity:0;transform:translateY(-40%);clip-path:inset(0 0 100% 0)}}@keyframes peekDownIn{from{opacity:0;transform:translateY(40%);clip-path:inset(100% 0 0 0)}}@keyframes peekDownOut{to{opacity:0;transform:translateY(40%);clip-path:inset(100% 0 0 0)}}
@keyframes plusIn{from{opacity:0;transform:scale(.2)}}@keyframes plusOut{to{opacity:0;transform:scale(.2)}}@keyframes randomBarsIn{from{opacity:0;clip-path:inset(45% 0)}}@keyframes randomBarsOut{to{opacity:0;clip-path:inset(45% 0)}}@keyframes spiralIn{from{opacity:0;transform:rotate(-720deg) scale(.05)}}@keyframes spiralOut{to{opacity:0;transform:rotate(720deg) scale(.05)}}
@keyframes splitHIn{from{opacity:0;transform:scaleY(.02)}}@keyframes splitHOut{to{opacity:0;transform:scaleY(.02)}}@keyframes splitVIn{from{opacity:0;transform:scaleX(.02)}}@keyframes splitVOut{to{opacity:0;transform:scaleX(.02)}}@keyframes stretchHIn{from{opacity:0;transform:scaleX(.02)}}@keyframes stretchHOut{to{opacity:0;transform:scaleX(.02)}}@keyframes stretchVIn{from{opacity:0;transform:scaleY(.02)}}@keyframes stretchVOut{to{opacity:0;transform:scaleY(.02)}}
@keyframes stripsIn{from{opacity:0;transform:translate(40%,40%) scale(.8)}}@keyframes stripsOut{to{opacity:0;transform:translate(-40%,-40%) scale(.8)}}@keyframes swivelIn{from{opacity:0;transform:rotateY(90deg)}}@keyframes swivelOut{to{opacity:0;transform:rotateY(90deg)}}@keyframes wedgeIn{from{opacity:0;transform:scale(.05) rotate(-30deg)}}@keyframes wedgeOut{to{opacity:0;transform:scale(.05) rotate(30deg)}}@keyframes wheelIn{from{opacity:0;transform:rotate(-270deg) scale(.05)}}@keyframes wheelOut{to{opacity:0;transform:rotate(270deg) scale(.05)}}
@keyframes boomerangIn{0%{opacity:0;transform:translate(-120%,-30%) rotate(-35deg)}70%{transform:translate(10%,0) rotate(8deg)}100%{opacity:1;transform:none}}@keyframes boomerangOut{30%{transform:translate(10%,0) rotate(8deg)}100%{opacity:0;transform:translate(-120%,-30%) rotate(-35deg)}}
@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}55%{opacity:1;transform:scale(1.12)}75%{transform:scale(.94)}100%{transform:scale(1)}}@keyframes bounceOut{20%{transform:scale(1.08)}100%{opacity:0;transform:translateY(100%) scale(.4)}}@keyframes creditsIn{from{opacity:0;transform:translateY(130%)}}@keyframes creditsOut{to{opacity:0;transform:translateY(-130%)}}@keyframes easeIn{from{opacity:0;transform:translateY(20%)}}@keyframes easeOut{to{opacity:0;transform:translateY(-20%)}}@keyframes floatIn{from{opacity:0;transform:translateY(35%)}}@keyframes floatOut{to{opacity:0;transform:translateY(-35%)}}
@keyframes growTurnIn{from{opacity:0;transform:scale(.1) rotate(-180deg)}}@keyframes growTurnOut{to{opacity:0;transform:scale(.1) rotate(180deg)}}@keyframes lightSpeedIn{from{opacity:0;transform:translateX(120%) skewX(-25deg)}}@keyframes lightSpeedOut{to{opacity:0;transform:translateX(120%) skewX(25deg)}}@keyframes pinwheelIn{from{opacity:0;transform:scale(.05) rotate(-540deg)}}@keyframes pinwheelOut{to{opacity:0;transform:scale(.05) rotate(540deg)}}@keyframes riseUpIn{from{opacity:0;transform:translateY(90%) scale(.75)}}@keyframes riseUpOut{to{opacity:0;transform:translateY(-90%) scale(.75)}}
@keyframes swishIn{from{opacity:0;transform:translateX(-90%) skewX(18deg)}}@keyframes swishOut{to{opacity:0;transform:translateX(90%) skewX(-18deg)}}@keyframes thinLineIn{from{opacity:0;transform:scaleY(.01)}}@keyframes thinLineOut{to{opacity:0;transform:scaleY(.01)}}@keyframes unfoldIn{from{opacity:0;transform:rotateX(-90deg) scaleY(.1)}}@keyframes unfoldOut{to{opacity:0;transform:rotateX(90deg) scaleY(.1)}}@keyframes whipIn{from{opacity:0;transform:scale(.3) rotate(-20deg)}}@keyframes whipOut{to{opacity:0;transform:scale(.3) rotate(20deg)}}
@keyframes ascendIn{from{opacity:0;transform:translateY(30%)}}@keyframes ascendOut{to{opacity:0;transform:translateY(-30%)}}@keyframes descendIn{from{opacity:0;transform:translateY(-30%)}}@keyframes descendOut{to{opacity:0;transform:translateY(30%)}}@keyframes centerRevolveIn{from{opacity:0;transform:rotate(-360deg) scale(.2)}}@keyframes centerRevolveOut{to{opacity:0;transform:rotate(360deg) scale(.2)}}@keyframes fadedSwivelIn{from{opacity:0;transform:rotateY(-90deg)}}@keyframes fadedSwivelOut{to{opacity:0;transform:rotateY(90deg)}}
@keyframes slingIn{from{opacity:0;transform:translate(-90%,-90%) rotate(-40deg) scale(.6)}}@keyframes slingOut{to{opacity:0;transform:translate(90%,90%) rotate(40deg) scale(.6)}}@keyframes spinnerIn{from{opacity:0;transform:rotate(-720deg) scale(.3)}}@keyframes spinnerOut{to{opacity:0;transform:rotate(720deg) scale(.3)}}@keyframes stretchyIn{from{opacity:0;transform:scaleX(.1) scaleY(1.5)}}@keyframes stretchyOut{to{opacity:0;transform:scaleX(.1) scaleY(1.5)}}@keyframes zipIn{from{opacity:0;transform:translateX(-100%) scale(.2)}}@keyframes zipOut{to{opacity:0;transform:translateX(100%) scale(.2)}}
@keyframes arcUpIn{from{opacity:0;transform:translate(-40%,60%) rotate(-20deg)}}@keyframes arcUpOut{to{opacity:0;transform:translate(40%,-60%) rotate(20deg)}}@keyframes fadedZoomIn{from{opacity:0;transform:scale(.3)}}@keyframes fadedZoomOut{to{opacity:0;transform:scale(1.7)}}@keyframes glideIn{from{opacity:0;transform:translateX(-45%) skewX(-8deg)}}@keyframes glideOut{to{opacity:0;transform:translateX(45%) skewX(8deg)}}@keyframes expandIn{from{opacity:0;transform:scaleX(.05)}}@keyframes expandOut{to{opacity:0;transform:scaleX(.05)}}@keyframes flipIn{from{opacity:0;transform:rotateY(-180deg)}}@keyframes flipOut{to{opacity:0;transform:rotateY(180deg)}}@keyframes foldIn{from{opacity:0;transform:rotateX(-90deg) scale(.5)}}@keyframes foldOut{to{opacity:0;transform:rotateX(90deg) scale(.5)}}
@keyframes pulse{50%{transform:scale(1.08)}}@keyframes growShrink{50%{transform:scale(1.25)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes transparency{50%{opacity:.2}}@keyframes blast{40%{transform:scale(1.35);filter:brightness(1.7)}70%{transform:scale(.92)}}@keyframes huePulse{50%{filter:hue-rotate(160deg) saturate(1.6)}}@keyframes underlinePulse{50%{filter:drop-shadow(0 6px 0 rgba(0,0,0,.65))}}@keyframes colorWave{25%{filter:hue-rotate(90deg)}50%{filter:hue-rotate(180deg)}75%{filter:hue-rotate(270deg)}}@keyframes complementary{50%{filter:hue-rotate(180deg)}}@keyframes contrastPulse{50%{filter:contrast(2.2)}}@keyframes darken{50%{filter:brightness(.45)}}@keyframes desaturate{to{filter:grayscale(1)}}@keyframes flashBulb{45%{filter:brightness(3);opacity:1}55%{filter:brightness(1)}}@keyframes flicker{0%,18%,22%,25%,53%,57%,100%{opacity:1}20%,24%,55%{opacity:.15}}@keyframes growColor{50%{transform:scale(1.25);filter:hue-rotate(120deg)}}@keyframes lighten{50%{filter:brightness(1.8)}}@keyframes teeter{20%{transform:rotate(7deg)}40%{transform:rotate(-6deg)}60%{transform:rotate(4deg)}80%{transform:rotate(-3deg)}}@keyframes verticalGrow{50%{transform:scaleY(1.35)}}@keyframes wave{20%{transform:translateY(-8%) rotate(-3deg)}40%{transform:translateY(6%) rotate(3deg)}60%{transform:translateY(-4%) rotate(-2deg)}80%{transform:translateY(2%) rotate(1deg)}}@keyframes shimmer{20%{filter:brightness(1.8)}40%{filter:brightness(.9)}60%{filter:brightness(1.6)}80%{filter:brightness(1)}}
@media(max-width:600px){.hud{right:max(4px,env(safe-area-inset-right));top:max(4px,env(safe-area-inset-top));gap:3px;padding:3px}.hud button{width:38px;height:38px;font-size:18px}.hud .mode-button{font-size:11px}.hud #page{min-width:58px;font-size:12px}.orientation-hint{top:max(50px,calc(env(safe-area-inset-top) + 46px));font-size:12px;padding:8px 12px}}@media(hover:none){.hud{opacity:.76}}@media(prefers-reduced-motion:reduce){.fx{animation-duration:1ms!important}.hud,.orientation-hint{transition:none}}
