:root{--primary-color:#4a90e2;--primary-soft:#6ba3e5;--secondary-color:#5ba0f2;--success-color:#66bb6a;--success-muted:#81c784;--error-color:#cc1016;--error-color-hover:#b30e14;--warning-color:#f7b500;--obstacle-color:#e28b4a;--exit-red:#cc1016;--exit-red-hover:#e61118;--undo-coral:#e25d4c;--undo-coral-hover:#d94a3a;--undo-orange:#e28b4a;--undo-orange-hover:#f09a5a;--background-color:#f7f8fa;--card-background:#fff;--border-color:#e8eaed;--game-area-bg:#f0f2f5;--level-area-bg:#fafbfcd9;--footer-bg:#f7f8fa;--ground-color:#e5e7ea;--gray-800:#333;--gray-700:#4a4a4a;--gray-600:#595959;--gray-500:grey;--gray-400:#999;--gray-300:#ccc;--gray-200:#e0e0e0;--gray-100:#f0f0f0;--gray-50:#f8f9fa;--accent-color:var(--gray-700);--text-primary:var(--gray-800);--text-secondary:var(--gray-600);--text-tertiary:var(--gray-400);--text-disabled:var(--gray-500);--interactive-bg:var(--gray-100);--interactive-bg-hover:var(--gray-200);--interactive-bg-active:var(--gray-300);--interactive-primary-bg:var(--overlay-primary-10);--interactive-primary-bg-hover:var(--overlay-primary-15);--interactive-primary-bg-active:var(--overlay-primary-20);--game-element-color:var(--gray-700);--ball-color:var(--primary-color);--icon-color:var(--gray-600);--footer-text-color:var(--gray-600);--control-icon-color:var(--gray-800);--modal-header-bg:linear-gradient(180deg,#fafbfc,#fff);--font-family-base:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-family-logo:-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-size-xs:0.75rem;--font-size-sm:0.875rem;--font-size-base:1rem;--font-size-lg:1.125rem;--font-size-xl:1.25rem;--font-size-xxl:1.5rem;--font-size-fluid-xs:clamp(0.7rem,0.65rem + 0.25vw,0.75rem);--font-size-fluid-sm:clamp(0.8125rem,0.75rem + 0.3vw,0.875rem);--font-size-fluid-base:clamp(0.9375rem,0.875rem + 0.3vw,1rem);--font-size-fluid-lg:clamp(1rem,0.925rem + 0.4vw,1.125rem);--font-size-fluid-xl:clamp(1.125rem,1rem + 0.5vw,1.25rem);--font-size-fluid-xxl:clamp(1.375rem,1.25rem + 0.5vw,1.5rem);--font-size-logo:clamp(1.375rem,1.25rem + 0.5vw,1.5rem);--font-size-logo-daily:clamp(0.6875rem,0.625rem + 0.25vw,0.75rem);--font-size-level-indicator:clamp(12px,11px + 0.5vw,14px);--font-size-bounce-display:clamp(13px,12px + 0.4vw,15px);--font-size-modal-title:clamp(1.25rem,1.125rem + 0.5vw,1.5rem);--font-size-modal-body:clamp(0.875rem,0.8rem + 0.3vw,1rem);--font-size-button:clamp(0.875rem,0.8rem + 0.3vw,1rem);--level-indicator-size-fluid:clamp(28px,22px + 0.5vw + 1.2vh,40px);--level-bridge-width-fluid:clamp(1rem,0.75rem + 0.25vw + 0.5vh,2rem);--control-button-size-fluid:clamp(48px,40px + 0.6vw + 1.5vh,64px);--launch-button-size-fluid:clamp(60px,50px + 0.6vw + 1.5vh,80px);--control-icon-size-fluid:clamp(24px,20px + 0.3vw + 0.8vh,34px);--controls-gap-fluid:clamp(20px,14px + 0.6vw + 1.2vh,36px);--header-icon-size-fluid:clamp(22px,16px + 0.3vw + 1.2vh,38px);--header-logo-size-fluid:clamp(18px,12px + 0.3vw + 1.2vh,34px);--header-date-size-fluid:clamp(10px,7px + 0.15vw + 0.5vh,16px);--header-height-fluid:clamp(48px,36px + 0.5vw + 2vh,88px);--modal-padding-fluid:clamp(1rem,0.875rem + 0.5vw,1.5rem);--modal-radius-fluid:var(--radius-lg);--a11y-min-font:0.875rem;--a11y-min-font-secondary:0.75rem;--a11y-min-touch-ios:44px;--a11y-min-touch-android:48px;--a11y-touch-expansion-small:10px;--a11y-touch-expansion-medium:8px;--shadow-sm:0 1px 2px #0000000a,0 1px 1px #00000008;--shadow-md:0 2px 4px #0000000a,0 4px 8px #0000000f;--shadow-lg:0 4px 6px #0000000a,0 8px 16px #00000014;--shadow-xl:0 8px 12px #0000000a,0 16px 32px #0000001f;--shadow-focus:0 0 0 2px var(--card-background),0 0 0 4px var(--gray-500);--shadow-focus-error:0 0 0 2px var(--card-background),0 0 0 4px var(--error-color);--ruler-height-fluid:clamp(46px,36px + 0.6vw + 1.5vh,72px);--ruler-bg:var(--level-area-bg);--ruler-thumb-width:6px;--ruler-thumb-height:36px;--ruler-thumb-color:var(--undo-orange);--ruler-bar-height:var(--ruler-thumb-width);--ruler-tick-color:var(--gray-400);--ruler-tick-major-height:12px;--ruler-tick-minor-height:6px;--game-max-width:600px;--radius-xs:4px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--ease-out:cubic-bezier(0.2,0,0,1);--ease-in-out:cubic-bezier(0.4,0,0.2,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1);--transition-micro:0.1s var(--ease-in-out);--transition-quick:0.15s var(--ease-in-out);--transition-fast:0.2s var(--ease-out);--transition-base:0.3s var(--ease-out);--z-index-canvas:1;--z-index-completed-overlay:10;--z-index-bounce-display:15;--z-index-controls:20;--z-index-loading:100;--z-index-modal:1000;--opacity-disabled:0.5;--opacity-hover:0.7;--opacity-bounce-display:0.9;--overlay-black-5:#0000000d;--overlay-black-8:#00000014;--overlay-black-10:#0000001a;--overlay-black-15:#00000026;--overlay-black-20:#0003;--overlay-black-30:#0000004d;--overlay-black-50:#00000080;--overlay-black-80:#000c;--overlay-white-10:#ffffff1a;--overlay-white-20:#fff3;--overlay-white-80:#fffc;--overlay-surface-95:#fffffff2;--overlay-surface-98:#fffffffa;--overlay-primary-4:#4a90e20a;--overlay-primary-8:#4a90e214;--overlay-primary-10:#4a90e21a;--overlay-primary-15:#4a90e226;--overlay-primary-20:#4a90e233;--overlay-primary-30:#4a90e24d;--overlay-primary-40:#4a90e266;--overlay-primary-50:#4a90e280;--overlay-primary-60:#4a90e299;--overlay-success-08:#66bb6a14;--overlay-success-10:#66bb6a1a;--overlay-success-20:#66bb6a33;--overlay-undo-20:#e28b4a33;--overlay-undo-30:#e28b4a4d;--overlay-undo-40:#e28b4a66;--overlay-error-10:#cc10161a;--overlay-error-20:#cc101633}[data-theme=dark]{--primary-color:#5a9ff0;--primary-soft:#7ab3f5;--secondary-color:#6bb0ff;--success-color:#72c877;--success-muted:#8fd494;--error-color:#e84149;--error-color-hover:#f04d55;--warning-color:#ffc62e;--obstacle-color:#f09a5a;--exit-red:#e84149;--exit-red-hover:#f25960;--undo-coral:#f06b5a;--undo-coral-hover:#f57d6d;--undo-orange:#f09a5a;--undo-orange-hover:#f5ab70;--background-color:#000;--card-background:#121212;--border-color:#2a2a2a;--game-area-bg:#0a0a0a;--level-area-bg:#181818f5;--footer-bg:#000;--ground-color:#252525;--gray-800:#e8e8e8;--gray-700:#ccc;--gray-600:#a8a8a8;--gray-500:#888;--gray-400:#666;--gray-300:#404040;--gray-200:#262626;--gray-100:#171717;--gray-50:#0f0f0f;--accent-color:var(--gray-700);--text-primary:var(--gray-800);--text-secondary:var(--gray-600);--text-tertiary:var(--gray-500);--text-disabled:var(--gray-400);--border-color:var(--gray-200);--interactive-bg:var(--gray-100);--interactive-bg-hover:var(--gray-200);--interactive-bg-active:var(--gray-300);--interactive-primary-bg:#5a9ff026;--interactive-primary-bg-hover:#5a9ff038;--interactive-primary-bg-active:#5a9ff04d;--game-element-color:var(--gray-700);--ball-color:var(--primary-color);--icon-color:var(--gray-600);--footer-text-color:var(--gray-600);--control-icon-color:var(--gray-800);--modal-header-bg:linear-gradient(180deg,#1a1a1a,#121212);--shadow-sm:0 1px 2px #0000004d,0 1px 1px #00000040;--shadow-md:0 2px 4px #0000004d,0 4px 8px #00000059;--shadow-lg:0 4px 6px #0000004d,0 8px 16px #0006;--shadow-xl:0 8px 12px #0000004d,0 16px 32px #00000073;--shadow-focus:0 0 0 2px var(--card-background),0 0 0 4px var(--gray-400);--shadow-focus-error:0 0 0 2px var(--card-background),0 0 0 4px var(--error-color);--ruler-bg:var(--level-area-bg);--ruler-thumb-color:var(--undo-orange);--ruler-tick-color:var(--gray-500);--overlay-white-10:#ffffff0d;--overlay-white-20:#ffffff1a;--overlay-white-80:#fff6;--overlay-surface-95:#121212f2;--overlay-surface-98:#121212fa;--overlay-primary-4:#5a9ff00f;--overlay-primary-8:#5a9ff01a;--overlay-primary-10:#5a9ff024;--overlay-primary-15:#5a9ff02e;--overlay-primary-20:#5a9ff03d;--overlay-primary-30:#5a9ff052;--overlay-primary-40:#5a9ff066;--overlay-primary-50:#5a9ff080;--overlay-primary-60:#5a9ff099;--overlay-success-08:#72c8771f;--overlay-success-10:#72c87724;--overlay-success-20:#72c8773d;--overlay-undo-20:#f09a5a3d;--overlay-undo-30:#f09a5a52;--overlay-undo-40:#f09a5a6b;--overlay-error-10:#e8414924;--overlay-error-20:#e841493d}.theme-transitioning,.theme-transitioning *,.theme-transitioning :after,.theme-transitioning :before{transition:background-color .3s ease,border-color .3s ease,color .3s ease,fill .3s ease,box-shadow .3s ease!important}html:not([data-theme]) *{transition:none!important}*{box-sizing:border-box}#root,body,html{height:100%;margin:0;overflow:hidden;overscroll-behavior:none;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--background-color);color:var(--accent-color);font-family:var(--font-family-base);font-size:var(--font-size-base);overscroll-behavior-x:contain;position:fixed;touch-action:manipulation;width:100%}.game-area,.game-controls,.level-indicators{user-select:none;-webkit-user-select:none}.app,.game-page-container{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100%}.game-page-container{isolation:isolate}.game-page-container,.game-wrapper{background:var(--background-color);position:relative}.game-wrapper{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;width:100%}.game-header,.level-indicators-container{position:relative;z-index:30}.game-area{z-index:1}.game-canvas-container,.game-canvas-wrapper{z-index:10}.game-canvas-container{overflow:visible!important;position:relative!important}.game-footer{width:100%;z-index:30}.modal-overlay{z-index:1000!important}.modal{z-index:1001!important}.game-interstitial-overlay{z-index:10001!important}.touch-target-expanded{position:relative}.touch-target-expanded:after{content:"";position:absolute;z-index:1}.touch-target-expanded--small:after{inset:calc(var(--a11y-touch-expansion-small)*-1)}.touch-target-expanded--medium:after{inset:calc(var(--a11y-touch-expansion-medium)*-1)}.sr-only,.visually-hidden{clip:rect(0,0,0,0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.loading{align-items:center;color:var(--accent-color);display:flex;font-size:var(--font-size-fluid-xl);height:100%;justify-content:center}.error-banner{background-color:var(--overlay-error-10);border:1px solid var(--overlay-error-20);border-radius:var(--radius-sm);color:var(--error-color);margin:.5rem;padding:1rem;text-align:center}.error-banner .retry-button{background:var(--error-color);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;margin-top:.5rem;padding:.5rem 1rem;transition:background-color var(--transition-fast)}.error-banner .retry-button:hover{background:var(--error-color-hover)}a:focus-visible{box-shadow:none;outline:2px solid var(--primary-color);outline-offset:2px}::-webkit-scrollbar{height:8px;width:8px}::-webkit-scrollbar-track{background:var(--background-color)}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-sm)}::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}input,select,textarea{font-size:16px}@media (max-width:768px){input,select,textarea{font-size:16px!important}}@supports (-webkit-appearance:none) and (not (-webkit-touch-callout:none)){.game-canvas-container{backface-visibility:hidden;-webkit-backface-visibility:hidden;perspective:1000px;transform:translateZ(0);-webkit-transform:translateZ(0)}.game-svg-layer{image-rendering:-webkit-optimize-contrast;will-change:transform}}.bounce-plot{height:-webkit-fill-available}.welcome-screen{min-height:100vh;min-height:-webkit-fill-available}@media (max-width:767px){.game-page-container{width:100%}}@media (max-width:600px){.game-page-container,.game-wrapper,body{background:var(--card-background)}::-webkit-scrollbar-track{background:var(--card-background)}}@media (max-height:500px) and (orientation:landscape){.side-rail-wrapper{display:none!important}}.bounce-plot{--ui-chrome-height:334px;--available-height:calc(100dvh - var(--ui-chrome-height));--canvas-width:min(var(--game-max-width),var(--available-height));background:var(--background-color);height:100%;overflow:hidden;width:100%}.bounce-plot,.game-outer-card{align-items:center;display:flex;flex-direction:column}.game-outer-card{background:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-xl);flex:0 1 auto;margin:8px auto 0;max-width:calc(var(--game-max-width) + 20px);min-height:0;overflow:visible;padding:8px;width:calc(var(--canvas-width) + 20px)}.game-inner-card{background:var(--game-area-bg);border:1px solid var(--border-color);border-radius:var(--radius-lg);display:flex;flex:0 0 auto;flex-direction:column;margin:0 auto;max-width:calc(var(--game-max-width) + 2px);overflow:hidden;width:calc(var(--canvas-width) + 2px)}@media (max-width:600px){.bounce-plot{--mobile-margin:16px;--ui-chrome-height:323px;--available-height:calc(100dvh - var(--ui-chrome-height));--canvas-width:min(calc(100vw - var(--mobile-margin) - 2px),var(--available-height));--canvas-height:var(--canvas-width);background:var(--card-background)}.game-outer-card{background:#0000;border:none;border-radius:0;margin:0;max-width:100%;padding:0;width:100%}.game-inner-card{margin:0 auto;max-width:calc(100% - 16px);width:calc(var(--canvas-width) + 2px)}.game-area,.game-inner-card{background:var(--card-background);flex:0 0 auto}.game-canvas-wrapper{height:auto}.game-canvas-container{aspect-ratio:unset;height:var(--canvas-height);max-height:none;max-width:none;width:var(--canvas-width)}.game-header{margin-bottom:clamp(0px,1vh,12px);min-height:clamp(44px,40px + 1vh,56px);padding:6px 10px}.game-header .header-button svg{height:clamp(22px,20px + .8vh,28px);width:clamp(22px,20px + .8vh,28px)}.header-name{font-size:clamp(18px,16px + .8vh,24px)}.header-date{font-size:clamp(10px,9px + .3vh,12px)}.level-indicators-container{padding:clamp(6px,.6vh,10px) 8px}.level-indicator{height:clamp(28px,24px + .8vh,34px);width:clamp(28px,24px + .8vh,34px)}.game-controls-container{margin-top:clamp(0px,1vh,12px);padding:clamp(10px,1vh,14px) 8px clamp(8px,.8vh,12px)}.btn-control{width:clamp(48px,44px + 1vh,56px)}.btn-control,.btn-launch{height:clamp(48px,44px + 1vh,56px)}}.game-header{background:var(--card-background);justify-content:space-between;margin-bottom:clamp(0px,2vh,32px);min-height:var(--header-height-fluid);padding:clamp(8px,1vh,16px) 12px;position:relative;width:100%;z-index:30}.game-header,.header-button{align-items:center;display:flex;flex-shrink:0}.header-button{background:none;border:none;color:var(--icon-color);cursor:pointer;justify-content:center;min-height:44px;min-width:44px;padding:6px;touch-action:manipulation;transition:opacity var(--transition-fast)}.header-button:hover{opacity:var(--opacity-hover)}.header-button svg{fill:currentColor;height:var(--header-icon-size-fluid);width:var(--header-icon-size-fluid)}.header-spacer{flex-shrink:0;min-height:44px;min-width:44px}.header-title{align-items:center;display:flex;flex-direction:column;gap:0;left:50%;max-width:calc(100% - 100px);pointer-events:none;position:absolute;top:50%;transform:translate(-50%,-50%)}.header-date{color:var(--accent-color);font-size:var(--header-date-size-fluid);font-weight:500;margin-bottom:-2px;opacity:.85;white-space:nowrap}.header-name-link{color:inherit;cursor:pointer;pointer-events:auto;text-decoration:none;transition:opacity var(--transition-fast)}.header-name-link:hover{opacity:.75}.header-name{color:var(--icon-color);font-family:var(--font-family-logo);font-size:var(--header-logo-size-fluid);font-weight:500;letter-spacing:.5px;white-space:nowrap}.level-indicators-container{background:var(--level-area-bg);border-bottom:none;flex-shrink:0;padding:clamp(8px,.8vh,14px) clamp(8px,.4rem + .3vw,10px);position:relative;z-index:30}.level-indicators,.level-indicators-container{align-items:center;display:flex;gap:0;justify-content:center}.level-bridge{background-color:var(--border-color);flex-shrink:0;height:2px;transition:background-color var(--transition-base);width:var(--level-bridge-width-fluid)}.level-bridge.filled{background-color:var(--success-color)}.level-indicator{align-items:center;background:none;border:none;border-radius:var(--radius-full);cursor:pointer;display:flex;font-size:var(--font-size-level-indicator);font-weight:600;height:var(--level-indicator-size-fluid);justify-content:center;margin:0 clamp(.375rem,.25rem + .4vw,.5rem);padding:0;position:relative;touch-action:manipulation;transition:all var(--transition-fast);width:var(--level-indicator-size-fluid)}.level-indicator:after{content:"";inset:calc(var(--a11y-touch-expansion-small)*-1);position:absolute;z-index:1}.level-indicator.pending{background:#0000;border:1.5px solid var(--border-color);color:var(--text-secondary)}.level-indicator.active{background:var(--overlay-primary-10);border:2.5px solid var(--primary-color);color:var(--primary-color);font-weight:700}.level-indicator.active.completed-viewing{background:var(--overlay-success-10);border:2.5px solid var(--success-color);color:var(--success-color);font-weight:700}.level-indicator.completed{background:var(--overlay-success-08);border:1.5px solid var(--success-color);color:#0000;position:relative}.level-indicator.completed:before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none"><path d="M20 6L9 17L4 12" stroke="%2366BB6A" stroke-width="3" stroke-linecap="round" stroke-linejoin="round"/></svg>');background-position:50%;background-repeat:no-repeat;background-size:contain;content:"";height:clamp(14px,12px + .5vw,20px);left:50%;position:absolute;top:50%;transform:translate(-50%,-50%);width:clamp(14px,12px + .5vw,20px);z-index:2}.level-indicator.locked{background:#0000;border:1.5px dashed var(--gray-300);color:var(--text-disabled);cursor:not-allowed;opacity:.6;overflow:visible;position:relative}.level-indicator.locked:before{background-image:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 20" fill="none"><rect x="1" y="8" width="14" height="11" rx="2" stroke="%23999999" stroke-width="1.5"/><path d="M4 8V5C4 2.79086 5.79086 1 8 1C10.2091 1 12 2.79086 12 5V8" stroke="%23999999" stroke-width="1.5" stroke-linecap="round"/></svg>');background-position:50%;background-repeat:no-repeat;background-size:10px 12px;content:"";inset:0;position:absolute;z-index:2}.level-indicator.next-level-glow{border-color:var(--primary-color);border-width:2px}.summary-indicator-button{align-items:center;background:var(--primary-color);border:none;border-radius:var(--radius-full);color:#fff;cursor:pointer;display:flex;height:var(--level-indicator-size-fluid);justify-content:center;margin:0 0 0 clamp(.5rem,.4rem + .4vw,.75rem);padding:0;position:relative;touch-action:manipulation;transition:all var(--transition-fast);width:var(--level-indicator-size-fluid)}.summary-indicator-button:after{content:"";inset:calc(var(--a11y-touch-expansion-small)*-1);position:absolute;z-index:1}.summary-indicator-button:hover{background:var(--secondary-color);transform:scale(1.05)}.summary-indicator-button svg{height:clamp(14px,12px + .5vw,18px);width:clamp(14px,12px + .5vw,18px)}.game-area{align-items:flex-start;background:var(--game-area-bg);display:flex;flex:0 0 auto;justify-content:center;min-height:0;overflow:hidden;position:relative;width:100%}.game-inner-card>.ruler-selector{border-top:none;flex:0 0 auto;width:100%}.game-canvas-wrapper{align-items:flex-start;display:flex;height:100%;justify-content:center;padding:0;position:relative;width:100%}.game-canvas-container{-webkit-overflow-scrolling:touch;aspect-ratio:1;margin:0 auto;overflow:visible;overscroll-behavior:contain;overscroll-behavior-x:contain;position:relative;transition:box-shadow .3s ease;width:var(--canvas-width)}.game-svg-layer{-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;display:block;height:100%;left:0;overflow:visible;position:absolute;top:0;touch-action:none;user-select:none;-webkit-user-select:none;width:100%;z-index:var(--z-index-canvas)}.distance-visualization{pointer-events:none}.distance-label-bg{box-shadow:var(--shadow-sm);transition:all var(--transition-fast)}.distance-label-text{dominant-baseline:central;pointer-events:none;-webkit-user-select:none;user-select:none}.distance-visualization line{opacity:.6;pointer-events:none}.draw-overlay{cursor:crosshair!important;height:100%;left:0;pointer-events:auto;position:absolute;top:0;width:100%;z-index:10}.bounce-display{-webkit-touch-callout:none;align-items:center;background:var(--overlay-surface-98);border:1px solid var(--border-color);border-radius:var(--radius-sm);box-shadow:var(--shadow-md);color:var(--gray-700);display:flex;font-size:var(--font-size-bounce-display);font-weight:600;justify-content:center;left:50%;min-width:clamp(80px,70px + 3vw,100px);padding:clamp(.25rem,.2rem + .3vw,.375rem) clamp(.625rem,.5rem + .5vw,1rem);pointer-events:none!important;position:absolute;text-align:center;top:10px;transform:translateX(-50%);transition:opacity var(--transition-fast);user-select:none;-webkit-user-select:none;white-space:nowrap;will-change:opacity;z-index:50}.bounce-display .bounce-count{color:var(--gray-700)!important;display:inline-block;font-size:var(--font-size-fluid-sm)!important;font-weight:700!important;margin:0 .25rem!important;transition:none}.completed-level-overlay{background:#0000;cursor:pointer;height:100%;left:0;pointer-events:auto;position:absolute;top:0;transition:background-color .2s ease;width:100%;z-index:var(--z-index-completed-overlay)}.completed-level-overlay:hover{background:#0000}.game-controls-container{align-items:center;display:flex;flex-shrink:0;justify-content:center;margin-top:clamp(0px,1.5vh,24px);padding:clamp(12px,1.2vh,20px) 8px clamp(10px,1vh,18px);width:100%}.game-controls{max-width:calc(var(--game-max-width) + 2px);padding:0;width:calc(var(--canvas-width) + 2px)}.game-controls-row{flex-direction:row;gap:8px;width:100%}.btn-control,.game-controls-row{align-items:center;display:flex;justify-content:center}.btn-control{background:var(--card-background);border:1px solid var(--gray-200);border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;height:var(--control-button-size-fluid);min-height:44px;min-width:44px;touch-action:manipulation;transition:background var(--transition-quick),border-color var(--transition-quick);width:var(--control-button-size-fluid)}.btn-control:hover{background:var(--interactive-bg);border-color:var(--gray-300)}.btn-control:active{background:var(--interactive-bg-hover)}.btn-control:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-control-icon{fill:var(--control-icon-color);height:var(--control-icon-size-fluid);width:var(--control-icon-size-fluid)}.btn-control--active{background:var(--exit-red);border-color:var(--exit-red)}.btn-control--active:hover{background:var(--exit-red-hover);border-color:var(--exit-red-hover)}.btn-control--active .btn-control-icon{fill:#fff}.btn-control:disabled{cursor:not-allowed;opacity:var(--opacity-disabled);transform:none}.btn-undo{background:var(--undo-coral);border-color:var(--undo-coral)}.btn-undo:hover:not(:disabled){background:var(--undo-coral-hover);border-color:var(--undo-coral-hover)}.btn-undo:disabled{background:var(--gray-100);border-color:var(--gray-200);cursor:not-allowed;opacity:1}.btn-undo .btn-control-icon{fill:#fff}.btn-undo:disabled .btn-control-icon{fill:var(--gray-400);opacity:.6}.btn-launch{align-items:center;background:var(--card-background);border:1px solid var(--gray-300);border-radius:var(--radius-sm);color:var(--control-icon-color);cursor:pointer;display:flex;flex:1 1;font-family:var(--font-family-base);font-size:var(--font-size-fluid-base);font-weight:600;gap:8px;height:48px;justify-content:center;min-height:44px;touch-action:manipulation;transition:background var(--transition-quick),border-color var(--transition-quick)}.btn-launch:hover:not(:disabled){background:var(--interactive-bg);border-color:var(--gray-400)}.btn-launch:active:not(:disabled){background:var(--interactive-bg-hover)}.btn-launch:focus-visible{box-shadow:var(--shadow-focus);outline:none}.btn-launch:disabled{cursor:default;opacity:.6}.btn-launch-icon{align-items:center;display:flex;height:20px;justify-content:center;width:20px}.btn-launch-icon svg{fill:currentColor;height:16px;width:16px}.btn-launch-text{line-height:1}.btn-launch--ready{background:var(--undo-orange);border-color:var(--undo-orange);color:#fff}.btn-launch--ready:hover:not(:disabled){background:var(--undo-orange-hover);border-color:var(--undo-orange-hover)}.btn-launch--ready:active:not(:disabled){background:var(--undo-orange);filter:brightness(.95)}.btn-launch--ready:not(:disabled){animation:launchReadyPulse 2.5s ease-in-out infinite}@keyframes launchReadyPulse{0%,to{box-shadow:0 0 0 0 var(--overlay-undo-40)}50%{box-shadow:0 0 0 5px #0000}}@media (prefers-reduced-motion:reduce){.btn-launch--ready:not(:disabled){animation:none}}.btn-launch--processing{opacity:.8}.loading-overlay{align-items:center;background:var(--overlay-surface-95);bottom:0;display:flex;flex-direction:column;justify-content:center;left:0;position:absolute;right:0;top:0;z-index:var(--z-index-loading)}.loading-spinner{animation:spin 1s linear infinite;border-top:2px solid var(--border-color);border:2px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:36px;width:36px}.loading-overlay p{color:var(--text-secondary);font-size:var(--font-size-fluid-sm);font-weight:500;margin-top:1rem}.modal-redirect .redirect-details{color:var(--text-secondary);font-size:var(--font-size-base);margin-bottom:20px;text-align:center}@media (hover:none) and (pointer:coarse){.btn-control:hover,.btn-launch:hover{transform:none}.btn-control:active{transform:scale(.95)}.btn-launch:active{transform:scale(.98)}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){.game-svg-layer{shape-rendering:geometricPrecision}}@supports (-webkit-touch-callout:none){.bounce-plot{height:-webkit-fill-available}}:focus-visible{box-shadow:var(--shadow-focus);outline:none}.animated-face{pointer-events:none;transition:opacity .3s ease}.animated-face circle,.animated-face line,.animated-face path{transition:all .15s ease-out}@media (prefers-reduced-motion:reduce){.animated-face{display:none}}.marker{cursor:pointer}.marker:hover .marker-pin{filter:brightness(1.1);transition:filter .15s ease-out}.modal-overlay{align-items:center;animation:overlayFadeIn .2s var(--ease-out);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#0006;height:100%;height:100vh;height:100dvh;justify-content:center;left:0;max-height:100vh;max-height:100dvh;padding:1rem;position:fixed;top:0;width:100%;z-index:var(--z-index-modal)}.modal,.modal-overlay{box-sizing:border-box;display:flex;overflow:hidden}.modal{animation:modalEnter .35s var(--ease-spring);border-radius:var(--radius-xl);box-shadow:0 0 0 1px #00000008,0 2px 4px #0000000a,0 12px 24px #0000001f;flex-direction:column;height:auto;max-height:85vh;max-height:85dvh;max-width:400px;min-height:0;padding:0;width:90%}.modal,.modal-header{background:var(--card-background);position:relative}.modal-header{align-items:center;border-bottom:1px solid var(--border-color);border-radius:var(--radius-xl) var(--radius-xl) 0 0;display:flex;flex-shrink:0;justify-content:space-between;padding:var(--modal-padding-fluid);padding-bottom:clamp(.75rem,.625rem + .4vw,1rem);z-index:1}.modal-header h2,.modal-title{color:var(--text-primary);font-size:var(--font-size-modal-title);font-weight:600;letter-spacing:-.01em;line-height:1.3;margin:0}.close-button,.modal-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-sm);color:var(--gray-500);cursor:pointer;display:flex;height:28px;justify-content:center;padding:0;position:relative;transition:color var(--transition-quick),background var(--transition-quick);width:28px}.close-button:after,.modal-close:after{content:"";inset:calc(var(--a11y-touch-expansion-small)*-1);position:absolute}.close-button:hover,.modal-close:hover{background:var(--interactive-bg);color:var(--text-primary)}.close-button:active,.modal-close:active{background:var(--interactive-bg-hover)}.close-button:focus-visible,.modal-close:focus-visible{box-shadow:var(--shadow-focus);outline:none}.modal-close svg{height:18px;width:18px}.modal-content{-webkit-overflow-scrolling:touch;color:var(--accent-color);flex:1 1;min-height:0;overflow-y:auto;padding:var(--modal-padding-fluid);padding-top:clamp(.75rem,.625rem + .5vw,1rem)}.modal-content::-webkit-scrollbar{width:6px}.modal-content::-webkit-scrollbar-track{background:var(--background-color);border-radius:var(--radius-xs)}.modal-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:var(--radius-xs)}.modal-content::-webkit-scrollbar-thumb:hover{background:var(--accent-color)}.modal-content>:last-child{margin-bottom:0}.modal-content p{line-height:1.5;margin-bottom:.75rem}.modal-content button:not(.modal-close):not(.control-button):not(.tutorial-button):not(.ruler-section),.primary-button-style{align-items:center;background:var(--interactive-primary-bg);border:1px solid var(--overlay-primary-30);border-radius:var(--radius-sm);color:var(--primary-color);cursor:pointer;display:flex;font-size:var(--font-size-button);font-weight:600;gap:.5rem;justify-content:center;line-height:1.4;padding:clamp(.625rem,.5rem + .4vw,.75rem) clamp(1rem,.875rem + .5vw,1.5rem);text-align:center;text-decoration:none;transition:background var(--transition-quick),border-color var(--transition-quick);width:100%}.modal-content button:not(.modal-close):not(.control-button):not(.tutorial-button):not(.ruler-section):hover,.primary-button-style:hover{background:var(--interactive-primary-bg-hover);border-color:var(--overlay-primary-40)}.modal-content button:not(.modal-close):not(.control-button):not(.tutorial-button):not(.ruler-section):active,.primary-button-style:active{background:var(--interactive-primary-bg-active)}.modal-content button:not(.modal-close):not(.control-button):not(.tutorial-button):not(.ruler-section):focus-visible,.primary-button-style:focus-visible{box-shadow:var(--shadow-focus);outline:none}.modal-level{text-align:center}.modal-level .modal-content{align-items:center;display:flex;flex-direction:column;gap:0}.modal-level .modal-details{color:var(--text-secondary);font-size:var(--font-size-fluid-base);font-weight:500;line-height:1.4;margin:0 0 .75rem}.modal-level .modal-details.excellent,.modal-level .modal-details.perfect{color:var(--success-color)}.modal-level .modal-details.nice{color:var(--text-tertiary)}.modal-level .modal-content>p,.modal-redirect .modal-content>p{margin-top:0}.modal-points{align-items:center;background:#0000;cursor:default;display:flex;flex-direction:column;gap:.125rem;margin:0 0 1.25rem;padding:0;pointer-events:none;-webkit-user-select:none;user-select:none;width:100%}.modal-points .points-value{color:var(--primary-color);font-size:clamp(2.5rem,2rem + 1.5vw,3rem);font-weight:700;letter-spacing:-.02em;line-height:1}.modal-points .points-label{color:var(--text-tertiary);font-size:var(--font-size-fluid-xs);font-weight:600;letter-spacing:.05em;text-transform:uppercase}.modal-points.excellent .points-label,.modal-points.excellent .points-value,.modal-points.perfect .points-label,.modal-points.perfect .points-value{color:var(--success-color)}.modal-points.nice .points-value{color:var(--gray-500)}.modal-points.nice .points-label{color:var(--gray-400)}.modal-level.rating-excellent .modal-title,.modal-level.rating-perfect .modal-title{color:var(--success-color)}.modal-level.rating-nice .modal-title{color:var(--text-secondary)}.summary-modal{max-width:420px;overflow:visible;position:relative}.summary-modal .modal-content{position:relative;z-index:1}.celebration-effects{border-radius:var(--radius-xl);bottom:0;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;z-index:0}.celebration-effects svg{height:100%;left:0;position:absolute;top:0;width:100%}@supports (transform:translate3d(0,0,0)){.celebration-effects svg{transform:translateZ(0);will-change:transform}}@media (prefers-reduced-motion:reduce){.celebration-effects{display:none}}.summary-stats{grid-gap:.625rem;display:grid;gap:.625rem;grid-template-columns:1fr 1fr;margin-bottom:1rem;position:relative;z-index:2}.stat-item{background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);padding:.875rem .75rem;position:relative;text-align:center}.stat-item.stat-total{background:linear-gradient(135deg,var(--primary-color) 0,var(--secondary-color) 100%);border:none;box-shadow:var(--shadow-md)}.stat-item.stat-total:only-child{grid-column:1/-1}.stat-label{color:var(--text-secondary);display:block;font-size:var(--font-size-fluid-xs);font-weight:500;letter-spacing:.04em;margin-bottom:.25rem;text-transform:uppercase}.stat-item.stat-total .stat-label{color:#ffffffd9}.stat-value{color:var(--text-primary);display:block;font-size:clamp(1.5rem,1.25rem + .75vw,1.75rem);font-weight:700;letter-spacing:-.02em}.stat-item.stat-total .stat-value{color:#fff;font-size:clamp(1.75rem,1.5rem + .75vw,2rem)}.summary-levels{display:flex;flex-direction:column;gap:.375rem;margin-bottom:1rem;position:relative;z-index:2}.summary-level{align-items:center;background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-sm);display:flex;font-size:var(--font-size-fluid-sm);justify-content:space-between;padding:.625rem .75rem;transition:background var(--transition-quick),border-color var(--transition-quick)}.summary-level:hover{background:var(--interactive-bg);border-color:var(--gray-300)}.summary-level.excellent,.summary-level.perfect{background:var(--overlay-success-08);border-color:var(--overlay-success-20)}.summary-level.nice{background:var(--background-color)}.level-number{color:var(--text-primary);font-weight:600;min-width:60px}.level-distance{color:var(--text-secondary);flex:1 1;font-weight:500;text-align:center}.level-result{flex:1 1;font-size:var(--font-size-fluid-lg);font-weight:700;text-align:center}.summary-level.excellent .level-result,.summary-level.perfect .level-result{color:var(--success-color)}.summary-level.nice .level-result{color:var(--gray-400)}.level-points{color:var(--primary-color);font-weight:600;min-width:50px;text-align:right}.summary-level.excellent .level-points,.summary-level.perfect .level-points{color:var(--success-color)}.share-section{display:flex;flex-direction:column;gap:.5rem;margin:1.25rem 0 .5rem;position:relative;z-index:2}.share-button-primary{align-items:center;background:var(--interactive-primary-bg);border:1px solid var(--overlay-primary-30);border-radius:var(--radius-sm);color:var(--primary-color);cursor:pointer;display:flex;font-size:var(--font-size-button);font-weight:600;gap:.5rem;justify-content:center;padding:clamp(.75rem,.625rem + .4vw,.875rem) clamp(1rem,.875rem + .5vw,1.5rem);transition:background var(--transition-quick),border-color var(--transition-quick);width:100%}.share-button-primary:hover{background:var(--interactive-primary-bg-hover);border-color:var(--overlay-primary-40)}.share-button-primary:active{background:var(--interactive-primary-bg-active)}.share-button-primary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.share-button-primary svg{flex-shrink:0}.share-status{animation:fadeIn var(--transition-base);border-radius:var(--radius-sm);font-size:var(--font-size-fluid-sm);font-weight:500;padding:.5rem;text-align:center}.share-status.share-success{background:var(--overlay-success-10);border:1px solid var(--overlay-success-20);color:var(--success-color)}.comeback-message{border-top:1px solid var(--border-color);margin-top:.5rem;padding-top:.75rem;position:relative;text-align:center;z-index:2}.comeback-message p{color:var(--text-tertiary);font-size:var(--font-size-fluid-sm);font-weight:500;margin:0}.tutorial-modal{max-width:420px}.tutorial-modal .modal-content{min-height:340px}.tutorial-content{-webkit-backface-visibility:hidden;backface-visibility:hidden;display:flex;flex-direction:column;gap:.375rem;padding:0;transform:translateZ(0)}.tutorial-visual{align-items:center;background:var(--background-color);border:1px solid var(--border-color);border-radius:var(--radius-md);display:flex;flex-direction:column;justify-content:center;margin:.125rem auto;min-height:150px;order:0;padding:.375rem;position:relative}.tutorial-svg{contain:layout style paint;display:block;height:auto;overflow:visible}.tutorial-ruler-wrapper,.tutorial-svg{margin:0 auto;max-width:320px;width:100%}.tutorial-ruler-wrapper .ruler-selector{border-radius:0 0 var(--radius-sm) var(--radius-sm);height:52px}.tutorial-ruler-wrapper .ruler-selector--disabled .ruler-slider-container{opacity:1}.tutorial-ruler-wrapper .ruler-selector--disabled .ruler-section{opacity:.6}.tutorial-ruler-wrapper .ruler-selector--disabled .ruler-section--selected{opacity:1}.tutorial-ruler-wrapper .ruler-selector--disabled .ruler-section--selected .ruler-section-tick{background:var(--undo-orange)}.tutorial-ruler-wrapper .ruler-selector--disabled .ruler-section--selected .ruler-section-label{color:var(--undo-orange)}.tutorial-ruler-wrapper .ruler-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:var(--undo-orange);height:28px;margin-top:-12px;width:6px}.tutorial-ruler-wrapper .ruler-slider:disabled::-webkit-slider-thumb{background:var(--undo-orange)}.tutorial-ruler-wrapper .ruler-slider::-moz-range-thumb{background:var(--undo-orange);border:none;height:28px;width:6px}.tutorial-ruler-wrapper .ruler-slider:disabled::-moz-range-thumb{background:var(--undo-orange)}.tutorial-progress{align-items:center;display:flex;gap:.5rem;height:16px;justify-content:center;margin-bottom:.25rem;order:1}.progress-dot{background:var(--gray-300);border-radius:var(--radius-full);height:6px;position:relative;transform-origin:center;transition:all var(--transition-quick);width:6px}.progress-dot.active{background:var(--primary-color);height:8px;width:8px}.progress-dot.completed{background:var(--success-color)}.tutorial-step-header{display:flex;flex-direction:column;justify-content:center;margin-bottom:.25rem;min-height:64px;order:2;text-align:center}.tutorial-step-title{color:var(--primary-color);font-size:var(--font-size-fluid-lg);font-weight:600;line-height:1.3;margin:0 0 .375rem}.tutorial-step-description{color:var(--text-secondary);font-size:var(--font-size-fluid-sm);line-height:1.4;margin:0 auto;max-width:280px}.tutorial-navigation{align-items:center;display:flex;gap:1rem;height:44px;justify-content:space-between;margin-top:.25rem;order:3;padding-top:.25rem}.tutorial-button{border:none;border-radius:var(--radius-sm);cursor:pointer;flex:1 1;font-size:var(--font-size-fluid-sm);font-weight:600;min-width:90px;padding:clamp(.5rem,.4rem + .3vw,.625rem) clamp(1rem,.875rem + .4vw,1.25rem);text-align:center;transition:background var(--transition-quick),border-color var(--transition-quick)}.tutorial-button.primary{background:var(--primary-color);color:#fff}.tutorial-button.primary:hover:not(:disabled){background:var(--secondary-color)}.tutorial-button.primary:active:not(:disabled){background:var(--primary-soft)}.tutorial-button.primary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.tutorial-button.secondary{background:#0000;border:1px solid var(--border-color);color:var(--text-secondary)}.tutorial-button.secondary:hover:not(:disabled){background:var(--interactive-bg);border-color:var(--gray-300);color:var(--text-primary)}.tutorial-button.secondary:active:not(:disabled){background:var(--interactive-bg-hover)}.tutorial-button.secondary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.tutorial-button:disabled{cursor:not-allowed;opacity:.4}@keyframes overlayFadeIn{0%{-webkit-backdrop-filter:blur(0);backdrop-filter:blur(0);opacity:0}to{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:1}}@keyframes modalEnter{0%{opacity:0;transform:translateY(16px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.modal{border-radius:var(--radius-lg);margin:2rem 1rem;max-height:80vh;max-height:80dvh;width:calc(100% - 2rem)}.modal-header{border-radius:var(--radius-lg) var(--radius-lg) 0 0;flex-shrink:0;min-height:0}.modal-content{flex:1 1;max-height:none;min-height:0;overflow-y:auto}.tutorial-modal{max-width:380px}.tutorial-modal .modal-content{min-height:280px}.tutorial-visual{min-height:140px}}@media (max-width:480px){.modal{border-radius:var(--radius-md);max-height:92vh}.modal-header{border-radius:var(--radius-md) var(--radius-md) 0 0}.summary-stats{grid-template-columns:1fr}.tutorial-modal{max-width:340px}.tutorial-svg{max-width:280px}.modal-points .points-value{font-size:clamp(2rem,1.75rem + 1vw,2.5rem)}}@supports (-webkit-touch-callout:none){.modal-overlay{height:100vh!important;height:100dvh!important;inset:0!important;max-height:100vh!important;max-height:100dvh!important;position:fixed!important}.modal{margin:3rem 1rem!important;max-height:75vh!important;max-height:75dvh!important}}@media (hover:none) and (pointer:coarse){.modal-overlay{padding:2rem 1rem!important}.modal{margin:0!important;max-height:76vh!important;max-height:76dvh!important;width:100%!important}.modal-content{-webkit-overflow-scrolling:touch!important;flex:1 1!important;min-height:0!important;overflow-y:auto!important;overscroll-behavior:contain!important}}@media (max-height:700px){.modal{margin:.75rem;max-height:85vh}.modal-content,.modal-header{padding:.75rem 1rem}.modal-points .points-value{font-size:clamp(1.75rem,1.5rem + .75vw,2rem)}}[data-theme=dark] .modal-overlay{background:#000000b3}[data-theme=dark] .modal{border:1px solid var(--border-color);box-shadow:0 0 0 1px #ffffff08,0 4px 8px #0000004d,0 16px 32px #0006}[data-theme=dark] .stat-item:not(.stat-total),[data-theme=dark] .summary-level,[data-theme=dark] .tutorial-visual{border-color:var(--border-color)}@media (prefers-reduced-motion:reduce){.modal-overlay{animation:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{animation:none}.progress-dot{transition:none}}.drawing-layer{pointer-events:none;position:relative;transition:opacity .3s ease;z-index:10!important}.draw-mode-active{pointer-events:auto!important}.draw-mode-active~* .bounce-display,.game-canvas-container:has(.draw-mode-active) .bounce-display{pointer-events:none!important}.drawing-layer.draw-mode-active{opacity:1}.drawing-line,.drawing-lines{pointer-events:none}.drawing-line{transition:opacity .3s ease}.draw-mode-active .drawing-line{opacity:1}.drawing-line-active{opacity:.8!important;pointer-events:none}.drawing-handles{pointer-events:auto;position:relative;transition:opacity .2s ease;z-index:15}.draw-mode-active .drawing-handles{opacity:1;pointer-events:auto}.drawing-handle{will-change:transform}.drawing-handle,.handle-touch-target{cursor:move;pointer-events:auto}.handle-visible{pointer-events:none;transition:all .1s ease}.drawing-handle:active .handle-visible,.drawing-handle:hover .handle-visible{filter:drop-shadow(0 3px 6px rgba(0,0,0,.3));transform:scale(1.1)}@keyframes handleGrab{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1.1)}}.drawing-handle.grabbing .handle-visible{animation:handleGrab .2s ease-out}.drawing-angle-dial{pointer-events:none;position:relative;z-index:5}.draw-mode-active .drawing-angle-dial line{opacity:1!important;pointer-events:none}@keyframes dialFadeIn{0%{opacity:0}to{opacity:1}}.drawing-angle-dial:not(:empty){animation:dialFadeIn .15s ease-out}.drawing-angle-dial line{shape-rendering:crispEdges;stroke-opacity:1!important}.drawing-magnifier{pointer-events:none;transition:transform .1s ease-out;z-index:100!important}.drawing-magnifier circle:first-child{filter:drop-shadow(0 4px 8px rgba(0,0,0,.2))}.magnified-line{stroke-opacity:1!important}.drawing-handle circle{opacity:1}.drawing-handle{animation:handleFadeIn .1s ease-out}@keyframes handleFadeIn{0%{opacity:0}to{opacity:1}}.level-completed .drawing-layer{opacity:.5}.level-completed .drawing-line{opacity:.3!important}.drawing-magnifier{pointer-events:none!important;position:relative!important;z-index:10000!important}.drawing-magnifier circle,.drawing-magnifier g{opacity:1!important}[dir=rtl]{text-align:right}[dir=rtl] .content-item,[dir=rtl] .footer-links,[dir=rtl] .game-controls,[dir=rtl] .game-header,[dir=rtl] .language-option,[dir=rtl] .level-indicators,[dir=rtl] .level-indicators-container,[dir=rtl] .modal-header,[dir=rtl] .section-header,[dir=rtl] .section-header-content,[dir=rtl] .settings-item,[dir=rtl] .settings-language,[dir=rtl] .share-button-primary,[dir=rtl] .summary-level,[dir=rtl] .tutorial-navigation,[dir=rtl] .welcome-logo-wrapper{flex-direction:row-reverse}[dir=rtl] .modal-header .modal-title{flex:1 1;text-align:right}.modal-close{position:relative}[dir=rtl] .modal-close{margin-left:0;margin-right:auto;order:-1}[dir=rtl] .controls-list,[dir=rtl] .help-list{padding-left:0;padding-right:1.5rem}[dir=rtl] .controls-list li:before,[dir=rtl] .help-list li:before{content:"•";left:auto;position:absolute;right:-1.25rem}[dir=rtl] input[type=checkbox]{margin-left:.75rem;margin-right:0}[dir=rtl] .settings-select{background-position:left .7rem center;direction:rtl;padding:.4rem .8rem .4rem 2rem;text-align:right}[dir=rtl] .bounce-count,[dir=rtl] .level-distance,[dir=rtl] .level-indicator,[dir=rtl] .level-number,[dir=rtl] .level-points,[dir=rtl] .stat-value{direction:ltr;unicode-bidi:isolate}[dir=rtl] .expand-indicator,[dir=rtl] .language-chevron,[dir=rtl] .share-button-primary svg{transform:scaleX(-1)}[dir=rtl] .language-dropdown{left:0;right:auto}[dir=rtl] .language-option.active:after{margin-left:.5rem;margin-right:auto;order:-1}[dir=rtl] .welcome-language-selector{left:1rem;right:auto}[dir=rtl] .control-button.undo-button{margin-left:0;margin-right:12px}[dir=rtl] .summary-indicator-button{margin:0 .75rem 0 0}[dir=rtl] .item-number{margin-left:1rem;margin-right:0}[dir=rtl] .bounce-display{left:50%;transform:translateX(-50%)}.legal-modal .page-container,.page-container.no-header{direction:ltr!important;text-align:left!important}.lang-de .bounce-display,.lang-es .bounce-display{min-width:120px}.lang-fr .bounce-display,.lang-pt .bounce-display,.lang-ru .bounce-display{min-width:110px}.lang-ar .bounce-display{min-width:130px}body{transition:font-size .3s ease}.language-switching *{transition:none!important}.bounce-overlay-container{align-items:center;display:flex;inset:0;justify-content:center;pointer-events:none;position:absolute;z-index:15;z-index:var(--z-index-bounce-display,15)}.bounce-overlay-toast{align-items:center;animation:bounceToastPulse 2s ease forwards;background:#000c;background:var(--overlay-black-80,#000c);border:1px solid #ffffff1a;border:1px solid var(--overlay-white-10,#ffffff1a);border-radius:16px;border-radius:var(--radius-lg,16px);box-shadow:0 20px 40px #0000004d;box-shadow:var(--shadow-xl,0 20px 40px #0000004d);display:flex;flex-direction:column;gap:4px;padding:24px 40px}.bounce-overlay-count{color:#fff;font-size:clamp(40px,36px + 2vw,48px);font-weight:800;line-height:1;text-shadow:0 2px 4px #0000004d;text-shadow:0 2px 4px var(--overlay-black-30,#0000004d)}.bounce-overlay-label{color:#fffc;color:var(--overlay-white-80,#fffc);font-size:16px;font-size:var(--font-size-fluid-base,16px);font-weight:600;letter-spacing:2px;text-transform:uppercase}@keyframes bounceToastPulse{0%{opacity:0;transform:scale(.85)}12%{opacity:1;transform:scale(1.02)}20%{transform:scale(1)}80%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.95)}}@media (max-height:600px){.bounce-overlay-toast{padding:20px 32px}.bounce-overlay-count{font-size:40px}.bounce-overlay-label{font-size:14px}}.streak-badge{background:linear-gradient(135deg,#ff9500,#ff6b00);border-radius:20px;box-shadow:0 4px 12px #ff6b004d;gap:6px;margin-bottom:12px;padding:8px 14px}.streak-icon{font-size:18px;line-height:1}.streak-count{color:#fff;font-size:20px;font-weight:800}.streak-label{color:#ffffffe6;font-size:13px;font-weight:600;text-transform:lowercase}.directional-icon{display:inline-block;line-height:0;vertical-align:middle}.directional-icon>*{display:block}.language-switching:after{animation:languageFade .3s ease-out forwards;background:var(--background-color);bottom:0;content:"";left:0;position:fixed;right:0;top:0;z-index:9999}@media (max-width:600px){.language-switching:after{background:var(--card-background)}}@keyframes languageFade{0%{opacity:1}to{opacity:0;pointer-events:none}}@media print{.game-controls,.game-footer,.game-header,.game-interstitial-overlay,.language-switcher,.modal-overlay,.side-rail-wrapper{display:none!important}.game-area{border:1px solid var(--border-color)}}.language-switcher{position:relative}.language-switcher-button{align-items:center;background:#0000;border:1px solid var(--border-color);border-radius:20px;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;font-weight:500;gap:.375rem;min-height:36px;padding:.5rem .875rem;position:relative;transition:all .2s ease;white-space:nowrap}.language-switcher-button:after{content:"";inset:-4px;position:absolute}.language-switcher-button:hover{background:#4a90e20a;border-color:var(--primary-color)}.language-code{font-weight:500;letter-spacing:.5px}.language-chevron{color:var(--text-secondary);height:12px;transition:transform .2s ease;width:12px}.language-switcher-button[aria-expanded=true] .language-chevron{transform:rotate(180deg)}.language-dropdown{background:var(--card-background);border:1px solid var(--border-color);border-radius:8px;box-shadow:var(--shadow-lg);display:flex;flex-direction:column;max-height:70vh;max-height:min(400px,70vh);min-width:160px;opacity:0;overflow:hidden;position:absolute;right:0;top:calc(100% + 4px);transform:translateY(-10px);transition:all .2s ease;visibility:hidden;z-index:1000}.language-dropdown.open{opacity:1;transform:translateY(0);visibility:visible}.language-dropdown-content{-webkit-overflow-scrolling:touch;flex:1 1;overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-color:var(--border-color) #0000;scrollbar-width:thin}.language-dropdown-content::-webkit-scrollbar{width:6px}.language-dropdown-content::-webkit-scrollbar-track{background:#0000}.language-dropdown-content::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}.language-dropdown-content::-webkit-scrollbar-thumb:hover{background:var(--text-secondary)}.language-option{align-items:center;background:none;border:none;color:var(--text-primary);cursor:pointer;display:flex;font-size:.875rem;min-height:44px;padding:.625rem .875rem;position:relative;text-align:left;transition:background-color .2s ease;width:100%}.language-option:hover{background-color:var(--background-color)}.language-option.active{background-color:#4a90e214;color:var(--primary-color);font-weight:600}.language-option.active:after{color:var(--primary-color);content:"✓";position:absolute;right:.875rem}@media (max-width:480px){.language-switcher-button{font-size:.8125rem;min-height:40px;padding:.5rem .75rem}.language-dropdown{max-height:50vh;max-height:min(300px,50vh);min-width:140px}.language-option{font-size:.8125rem;min-height:44px;padding:.75rem}}@media (max-width:360px){.language-switcher-button{font-size:var(--a11y-min-font);gap:.25rem;min-height:36px;padding:.375rem .625rem}.language-chevron{height:10px;width:10px}.language-dropdown{max-height:40vh;max-height:min(250px,40vh);min-width:130px}.language-option{font-size:var(--a11y-min-font)}}@media (max-height:500px) and (orientation:landscape){.language-dropdown{max-height:60vh;max-height:min(200px,60vh)}}@media (prefers-contrast:high){.language-dropdown{border-width:2px}.language-option:hover{background-color:var(--border-color)}}.language-dropdown-content{user-select:none;-webkit-user-select:none}@media (max-height:600px){.language-dropdown{bottom:calc(100% + 4px);top:auto;transform-origin:bottom}.language-dropdown.open{transform:translateY(0)}}.theme-toggle{align-items:center;background:#0000;border:1px solid var(--border-color);border-radius:50%;color:var(--text-secondary);cursor:pointer;display:flex;height:36px;justify-content:center;min-height:36px;min-width:36px;padding:0;position:relative;transition:all .2s ease;width:36px}.theme-toggle:after{content:"";inset:-4px;position:absolute}.theme-toggle:hover{background:var(--overlay-primary-4);border-color:var(--primary-color);color:var(--primary-color)}.theme-toggle:active{transform:scale(.95)}.theme-toggle:focus-visible{box-shadow:var(--shadow-focus);outline:none}.theme-toggle-icon{align-items:center;display:flex;justify-content:center;transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.theme-toggle-icon--dark,.theme-toggle-icon--light{transform:scale(1)}.theme-toggle:hover .theme-toggle-icon{transform:scale(1.1)}@media (max-width:480px){.theme-toggle{height:32px;min-height:32px;min-width:32px;width:32px}.theme-toggle-icon svg{height:16px;width:16px}}@media (prefers-reduced-motion:reduce){.theme-toggle-icon{transition:none}}.welcome-screen{align-items:center;color:var(--accent-color);display:flex;inset:0;justify-content:center;padding:1rem;position:fixed;z-index:1000}.welcome-content,.welcome-screen{background:var(--card-background);overflow:hidden}.welcome-content{animation:slideUp .5s var(--ease-out);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);max-height:calc(100vh - 2rem);max-width:min(500px,calc(100vw - 2rem));padding:2rem;position:relative;text-align:center;width:100%}.physics-preview-frame{inset:0;overflow:hidden;pointer-events:none;position:absolute;z-index:0}.physics-preview-canvas{display:block}.welcome-header-controls{align-items:center;display:flex;gap:.5rem;position:absolute;right:1rem;top:1rem;z-index:2}.logo-container,.welcome-actions,.welcome-date,.welcome-footer,.welcome-logo-wrapper,.welcome-tagline{position:relative;z-index:1}.logo-container{animation:logoDrop .6s var(--ease-spring);margin:1.5rem 0 .25rem}@keyframes logoDrop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo-svg{height:152px;width:152px}.welcome-logo-wrapper{align-items:baseline;display:flex;flex-wrap:wrap;gap:.25rem;justify-content:center;margin:.5rem 0}.welcome-title{color:var(--primary-color);font-family:var(--font-family-logo);font-size:2rem;font-weight:700;letter-spacing:.5px;margin:0}.welcome-title-daily{color:var(--obstacle-color);font-size:1rem;font-weight:600;letter-spacing:.5px}.welcome-date{color:var(--accent-color);font-size:1.125rem;font-weight:500;margin:0 0 .5rem}.welcome-tagline{color:var(--text-secondary);font-size:1rem;margin:0 0 2rem}.streak-badge{align-items:center;background:var(--background-color);border:1.5px solid var(--border-color);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);display:inline-flex;gap:.5rem;justify-content:center;margin:.75rem 0;padding:.5rem 1rem}.streak-count{color:var(--primary-color);font-size:1.25rem;font-weight:700;line-height:1}.streak-label{color:var(--text-secondary);font-size:.875rem;font-weight:500;line-height:1}.welcome-actions{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.play-button{background:var(--primary-color);border:none;border-radius:var(--radius-sm);color:#fff;cursor:pointer;font-size:1.125rem;font-weight:600;line-height:1.3;margin:0 auto;max-width:300px;min-height:48px;padding:1rem 1.5rem;transition:background var(--transition-quick);width:100%}.play-button:hover{background:var(--secondary-color)}.play-button:active{background:var(--primary-soft)}.play-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.welcome-footer{color:var(--text-tertiary);font-size:.875rem;margin:0}@media (max-width:480px){.welcome-content{padding:3rem 1.5rem 1.5rem}.welcome-header-controls{right:.75rem;top:.75rem}.logo-container{margin:1rem 0}.logo-svg{height:122px;width:122px}.welcome-title{font-size:1.75rem}.welcome-tagline{font-size:.9rem;margin-bottom:1.5rem}.welcome-footer{display:none}.play-button{max-width:100%}}@media (max-width:360px) and (max-height:600px){.welcome-tagline{display:none}}@media (max-height:500px) and (orientation:landscape){.welcome-content{padding:2.5rem 1.5rem 1rem}.logo-container,.welcome-footer{display:none}.welcome-tagline{font-size:.875rem;margin-bottom:1rem}.welcome-logo-wrapper{margin:0 0 .75rem}.welcome-date{font-size:1rem;margin-bottom:1rem}.welcome-actions{margin:0}.play-button{padding:.75rem 1.5rem}}@media (max-height:400px) and (orientation:landscape){.welcome-tagline{display:none}}[data-theme=dark] .welcome-screen{background:var(--background-color)}[data-theme=dark] .welcome-content{border:1px solid var(--border-color)}@media (prefers-reduced-motion:reduce){.logo-container,.welcome-content{animation:none}.physics-preview-frame{display:none}}.skeleton-container{background:#fafafa;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.skeleton-header{background:#f0f0f0;border-bottom:1px solid #e8e8e8;height:44px}.skeleton-levels{background:#f8f8f8;border-bottom:1px solid #e8e8e8;height:40px}.skeleton-canvas{background:#f5f5f5;border-radius:8px;flex:1 1;margin:16px}.skeleton-ball,.skeleton-button,.skeleton-control,.skeleton-controls,.skeleton-ground,.skeleton-launch,.skeleton-level,.skeleton-obstacle,.skeleton-title,.skeleton-trajectory{display:none}.skeleton-shimmer{animation:none!important;background:#f0f0f0!important}.skeleton-container:after{animation:spin .8s linear infinite;border:2px solid #e0e0e0;border-radius:50%;border-top-color:#4a90e2;content:"";height:32px;left:calc(50% - 16px);position:absolute;top:calc(50% - 16px);width:32px;will-change:transform}:root{--skeleton-base:#e0e0e0;--skeleton-highlight:#d0d0d0}[data-theme=dark] .skeleton-container{background:#000}[data-theme=dark] .skeleton-header{background:#121212;border-bottom-color:#2a2a2a}[data-theme=dark] .skeleton-levels{background:#0a0a0a;border-bottom-color:#2a2a2a}[data-theme=dark] .skeleton-canvas{background:#121212}[data-theme=dark] .skeleton-shimmer{background:#1a1a1a!important}[data-theme=dark] .skeleton-container:after{border-color:#5a9ff0 #333 #333}.game-footer{background:#0000;border-top:none;color:var(--footer-text-color);flex-shrink:0;font-size:var(--font-size-fluid-xs);line-height:1.3;min-height:clamp(32px,28px + 1vw,40px);padding:clamp(.375rem,.3rem + .3vw,.5rem) clamp(.5rem,.4rem + .4vw,.75rem);position:relative;text-align:center;z-index:10}.footer-content{margin:0 auto;max-width:800px}.footer-content,.footer-links{align-items:center;display:flex;justify-content:center}.footer-links{flex-wrap:wrap;gap:clamp(.25rem,.2rem + .2vw,.375rem);line-height:1.15}.footer-link{background:none;border:none;color:var(--footer-text-color);cursor:pointer;font-size:var(--font-size-fluid-xs);font-weight:400;margin:-.25rem 0;padding:.25rem 0;position:relative;text-decoration:none;transition:color var(--transition-fast)}.footer-link:hover{color:var(--text-primary)}.footer-link:after{background-color:var(--text-primary);bottom:-2px;content:"";height:1px;left:50%;position:absolute;transition:width var(--transition-fast),left var(--transition-fast);width:0}.footer-link:hover:after{left:0;width:100%}.footer-separator{color:var(
    --gray-400
  );font-size:.625em;line-height:1;opacity:.7;-webkit-user-select:none;user-select:none}.footer-copyright{color:var(--text-tertiary);font-size:var(--font-size-fluid-xs);font-weight:400}@media (max-width:360px){.footer-separator{display:none}}[data-theme=dark] .footer-link{color:var(--gray-500)}[data-theme=dark] .footer-link:hover{color:var(--gray-700)}[data-theme=dark] .footer-separator{color:var(--gray-400)}[data-theme=dark] .footer-copyright{color:var(--gray-500)}.orientation-lock{align-items:center;animation:fadeIn .3s ease-out;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#fffffffa;display:flex;height:100vh;height:100dvh;justify-content:center;left:0;pointer-events:all;position:fixed;top:0;touch-action:none;user-select:none;-webkit-user-select:none;width:100vw;z-index:10000}.orientation-lock-content{animation:slideUp .4s ease-out;max-width:300px;padding:2rem;text-align:center}.orientation-lock-icon{animation:pulse 2s ease-in-out infinite;color:var(--primary-color);margin-bottom:1.5rem}.orientation-lock h2{color:var(--accent-color);font-family:var(--font-family-base);font-size:1.5rem;font-weight:600;letter-spacing:-.025em;margin:0 0 .5rem}.orientation-lock p{color:var(--text-secondary);font-family:var(--font-family-base);font-size:1rem;line-height:1.5;margin:0;opacity:.8}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.9;transform:scale(1.05)}}[data-theme=dark] .orientation-lock{background:#000000fa}[data-theme=dark] .orientation-lock h2{color:var(--text-primary)}[data-theme=dark] .orientation-lock p{color:var(--text-secondary)}@media (prefers-reduced-motion:reduce){.orientation-lock,.orientation-lock-content,.orientation-lock-icon{animation:none}.orientation-lock{transition:opacity .2s ease}}@media (max-height:400px) and (orientation:landscape){.orientation-lock-content{max-width:280px;padding:1rem}.orientation-lock-icon{margin-bottom:1rem}.orientation-lock-icon svg{height:60px;width:60px}.orientation-lock h2{font-size:1.25rem;margin-bottom:.375rem}.orientation-lock p{font-size:.875rem}}.game-interstitial-overlay{align-items:center;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000c;display:flex;inset:0;justify-content:center;position:fixed;z-index:10001}.game-interstitial-container{background:var(--card-background);border-radius:12px;box-shadow:0 4px 20px #0000004d;max-height:90vh;max-width:90vw;overflow:hidden}.interstitial-header{align-items:center;background:var(--background-color);border-bottom:1px solid var(--border-color);display:flex;gap:1.5rem;justify-content:space-between;padding:.875rem 1rem}.interstitial-header .ad-label{font-size:.7rem;letter-spacing:.5px;text-transform:uppercase}.interstitial-header .ad-label,.interstitial-header .skip-btn{color:var(--text-tertiary);flex-shrink:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-weight:500;white-space:nowrap}.interstitial-header .skip-btn{background:#0000;border:1px solid var(--border-color);border-radius:4px;cursor:not-allowed;font-size:.8rem;min-width:85px;padding:.375rem .75rem;text-align:center;transition:all .2s}.interstitial-header .skip-btn.active{background:var(--interactive-bg);border-color:var(--gray-400);color:var(--text-primary);cursor:pointer}.interstitial-header .skip-btn.active:hover{background:var(--interactive-bg-hover);border-color:var(--gray-500)}.interstitial-header .skip-btn:disabled{opacity:.6}.interstitial-content{align-items:center;background:var(--card-background);display:flex;justify-content:center;min-height:280px;padding:1.5rem}.interstitial-content .interstitial-ad{display:block;margin:0 auto}.interstitial-content .ad-fallback{animation:fadeIn .5s ease;color:var(--text-tertiary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:.875rem;text-align:center}.interstitial-content .ad-fallback p{margin:0}.side-rail-wrapper{height:600px;pointer-events:auto;position:fixed;top:50%;transform:translateY(-50%);transition:opacity .3s ease;z-index:5}.side-rail-left{left:20px}.side-rail-right{right:20px}.side-rail-wrapper{width:160px}@media (min-width:1200px){.side-rail-wrapper{width:200px}.side-rail-left{left:25px}.side-rail-right{right:25px}}@media (min-width:1400px){.side-rail-wrapper{width:250px}.side-rail-left{left:30px}.side-rail-right{right:30px}}@media (min-width:1600px){.side-rail-wrapper{width:300px}.side-rail-left{left:40px}.side-rail-right{right:40px}}.side-rail-content{align-items:center;background:var(--card-background);border-radius:8px;box-shadow:var(--shadow-md);box-sizing:border-box;display:flex;height:100%;justify-content:center;padding:10px;transition:box-shadow .2s ease;width:100%}.side-rail-content:hover{box-shadow:var(--shadow-lg)}.side-rail-content .side-rail-ad{background:#0000;display:block;height:100%;width:100%}@media (max-width:969px){.side-rail-wrapper{display:none!important}}@media (max-height:600px) and (min-width:970px){.side-rail-wrapper{height:400px}}@media (min-height:900px) and (min-width:970px){.side-rail-wrapper{height:600px}}@media (max-height:500px){.side-rail-wrapper{display:none!important}}.ad-container{align-items:center;display:flex;height:100%;justify-content:center;width:100%}.interstitial-ad-container{min-height:280px;min-width:336px}.side-rail-ad-container{height:100%;width:100%}.interstitial-ad ins.adsbygoogle{min-height:250px;width:336px}.interstitial-ad ins.adsbygoogle,.side-rail-ad ins.adsbygoogle{background:#0000;display:block!important;margin:0 auto!important}.side-rail-ad ins.adsbygoogle{height:100%;max-height:600px;width:100%}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes railSlideIn{0%{opacity:0;transform:translateY(-50%) translateX(-20px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}.game-interstitial-overlay{animation:fadeIn .3s ease}.game-interstitial-container{animation:slideUp .3s ease}.side-rail-left,.side-rail-right{animation:railSlideIn .5s ease}.side-rail-right{animation-direction:reverse}@media (max-height:500px) and (orientation:landscape){.game-interstitial-overlay,.side-rail-wrapper{display:none!important}}.orientation-lock~.game-interstitial-overlay,.orientation-lock~.side-rail-wrapper{display:none!important}body.lang-en,body.lang-es{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.lang-es .bounce-display{min-width:120px}body{transition:font-family .3s ease}.language-loading{background:var(--card-background);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);left:50%;padding:clamp(1rem,.875rem + .5vw,1.25rem);position:fixed;top:50%;transform:translate(-50%,-50%);z-index:9999}.language-loading-spinner{animation:spin .8s linear infinite;border:3px solid var(--border-color);border-radius:50%;border-top-color:var(--primary-color);height:40px;margin:0 auto;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.lang-ja body,.lang-ko body,.lang-zh body{font-size:var(--font-size-fluid-sm)}.lang-ar body,.lang-hi body{font-size:var(--font-size-fluid-base);line-height:1.6}.lang-ar .game-footer,.lang-hi .game-footer{line-height:normal}.lang-es .launch-float-button,.lang-fr .launch-float-button{font-size:var(--font-size-fluid-sm)}.lang-es .stat-label,.lang-fr .stat-label{font-size:clamp(.6rem,.55rem + .2vw,.65rem)}
