.ios-scroll-container{-webkit-overflow-scrolling:touch;overflow-y:auto;overscroll-behavior-y:contain;scroll-behavior:smooth;will-change:scroll-position;transform:translateZ(0);-webkit-transform:translateZ(0);scrollbar-width:none;-ms-overflow-style:none}.ios-scroll-container::-webkit-scrollbar{display:none}.ios-touchable{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-moz-user-select:none;user-select:none;-webkit-user-select:none;cursor:pointer}.ios-accelerated{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:transform,opacity;backface-visibility:hidden;-webkit-backface-visibility:hidden;perspective:1000px;-webkit-perspective:1000px}.ios-transition{transition-timing-function:cubic-bezier(.25,.46,.45,.94);-webkit-transition-timing-function:cubic-bezier(.25,.46,.45,.94)}.ios-touchable:active{transform:scale(.98);-webkit-transform:scale(.98)}.ios-pull-indicator{position:absolute;top:-60px;left:50%;transform:translateX(-50%);transition:all .3s ease-out;opacity:0}.ios-pull-indicator.pulling{opacity:1}.virtual-list-viewport{contain:strict;overflow-anchor:none}.virtual-list-item{contain:layout style paint;content-visibility:auto}.ios-safe-area{padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left)}.ios-modal-backdrop{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background-color:rgba(0,0,0,.4)}@keyframes ios-skeleton-pulse{0%{opacity:1}50%{opacity:.4}to{opacity:1}}.ios-skeleton{animation:ios-skeleton-pulse 1.5s ease-in-out infinite;background:linear-gradient(90deg,hsla(0,0%,78%,.2),hsla(0,0%,78%,.3) 50%,hsla(0,0%,78%,.2))}@keyframes ios-bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.ios-loading-dot{animation:ios-bounce 1.4s ease-in-out infinite both}.ios-focusable:focus-visible{outline:2px solid #007aff;outline-offset:2px;border-radius:8px}@supports (font:-apple-system-body){.ios-dynamic-text{font:-apple-system-body}}@media (prefers-reduced-motion:reduce){.ios-accelerated,.ios-loading-dot,.ios-skeleton,.ios-touchable:active,.ios-transition{animation:none!important;transition:none!important}}.reduce-motion .ios-accelerated,.reduce-motion .ios-loading-dot,.reduce-motion .ios-skeleton,.reduce-motion .ios-touchable:active,.reduce-motion .ios-transition{animation:none!important;transition:none!important}@media (prefers-color-scheme:dark){.ios-modal-backdrop{background-color:rgba(0,0,0,.6)}.ios-skeleton{background:linear-gradient(90deg,hsla(0,0%,39%,.2),hsla(0,0%,39%,.3) 50%,hsla(0,0%,39%,.2))}}@media (prefers-contrast:high){.ios-focusable:focus-visible{outline-width:3px}}@media (orientation:landscape) and (max-height:450px){.ios-safe-area{padding-top:0;padding-bottom:0}}.virtual-scroll-spacer{pointer-events:none;visibility:hidden}.ios-touch-target{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center}.ios-haptic-zone{position:relative}.ios-haptic-zone:before{content:"";position:absolute;inset:-8px;z-index:-1}@media (max-width:768px) and (max-height:850px){.mobile-phone-layout{overscroll-behavior:none;-webkit-overflow-scrolling:auto}.mobile-playing-screen{touch-action:pan-y;position:relative;isolation:isolate;height:100vh!important;height:100dvh!important;max-height:100vh!important;max-height:100dvh!important}.mobile-phone-layout{padding:0!important}.mobile-phone-layout,.mobile-playing-screen{margin:0!important;border-radius:0!important}.mobile-phone-layout .rounded-3xl{border-radius:0!important}.mobile-phone-layout .shadow-2xl{box-shadow:none!important}.keyboard-container{position:sticky;bottom:0;left:0;right:0;background:inherit;z-index:10;contain:layout style;width:100%}body.mobile-phone-active{position:fixed;overflow:hidden;width:100%;height:100vh;height:100dvh}}@media (max-width:768px) and (max-height:700px){.small-phone-layout .keyboard-container{padding-bottom:max(.25rem,env(safe-area-inset-bottom))}.small-phone-layout *{transition-duration:.15s!important}.small-phone-layout{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeSpeed}}@media (orientation:landscape) and (max-height:450px){.mobile-phone-layout{font-size:14px}.mobile-phone-layout .keyboard-container{padding-top:.25rem;padding-bottom:max(.25rem,env(safe-area-inset-bottom))}.mobile-phone-layout .pt-safe-ios{padding-top:env(safe-area-inset-top,.5rem)!important}}@media (max-width:768px){.keyboard-container,.mobile-playing-screen,.puzzle-scroll-area{transform:translateZ(0);-webkit-transform:translateZ(0);will-change:auto}.mobile-phone-layout>*{contain:layout style paint}.keyboard-container button{contain:layout style}}