@font-face{font-display:swap;font-family:Hanken Grotesk Variable;font-style:normal;font-weight:100 900;src:url(/static/media/hanken-grotesk-cyrillic-ext-wght-normal.eb09f11cc54fc7acedd4.woff2) format("woff2-variations");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:Hanken Grotesk Variable;font-style:normal;font-weight:100 900;src:url(/static/media/hanken-grotesk-vietnamese-wght-normal.4089b41ca3faca48a408.woff2) format("woff2-variations");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:Hanken Grotesk Variable;font-style:normal;font-weight:100 900;src:url(/static/media/hanken-grotesk-latin-ext-wght-normal.d7cf532eeb1eedcfcd05.woff2) format("woff2-variations");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:Hanken Grotesk Variable;font-style:normal;font-weight:100 900;src:url(/static/media/hanken-grotesk-latin-wght-normal.442fd9727f3ba8156605.woff2) format("woff2-variations");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-cyrillic-ext-400-normal.c5a38b926939e1f1ca99.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-ext-400-normal.cd5f0922a60470e1bde4.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-cyrillic-400-normal.c6f862a99064981cc8ee.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-400-normal.c45eb9547383e10d0f20.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-vietnamese-400-normal.fa0747293826f3ba17f2.woff2) format("woff2"),url(/static/media/ibm-plex-mono-vietnamese-400-normal.d4e725bc424dbf53dc36.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-latin-ext-400-normal.081b2e53053c361ddb54.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-ext-400-normal.52bdf7642f685aaccf13.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:400;src:url(/static/media/ibm-plex-mono-latin-400-normal.2b13cc93b07c41b27134.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-400-normal.12ede62e388083e7c01c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-cyrillic-ext-500-normal.0cef616364a9e45506c9.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-ext-500-normal.32dc85f4f2d15c29e3c5.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-cyrillic-500-normal.93f9e00744ba26615214.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-500-normal.15083deeb53439b48cb0.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-vietnamese-500-normal.acbf296481a133b31c7a.woff2) format("woff2"),url(/static/media/ibm-plex-mono-vietnamese-500-normal.6412cb41302803180f86.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-latin-ext-500-normal.c28c19b51fcc5afd6835.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-ext-500-normal.0324453e532da2451cdd.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:500;src:url(/static/media/ibm-plex-mono-latin-500-normal.a1fc5384545ba0657d83.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-500-normal.89a2903adc59285a5efa.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-mono-cyrillic-ext-600-normal.93171184aa48de0d6370.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-ext-600-normal.6d7baa811c66e84e6e39.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-mono-cyrillic-600-normal.5c59bb543d190bd0236f.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-600-normal.5074d429766dcfa26f0e.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-mono-vietnamese-600-normal.31cd33e7372a79eabc2d.woff2) format("woff2"),url(/static/media/ibm-plex-mono-vietnamese-600-normal.573a63fc2860d5f183ff.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-mono-latin-ext-600-normal.5d11148cf713d2ddf354.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-ext-600-normal.a4add407ff850c6738f9.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:600;src:url(/static/media/ibm-plex-mono-latin-600-normal.45199eea8828315083bf.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-600-normal.cc9c246ae6d72996f1d1.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-mono-cyrillic-ext-700-normal.cf4ddf000567ec89c3aa.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-ext-700-normal.06ec7f48a8cfdbfc640e.woff) format("woff");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-mono-cyrillic-700-normal.7bc6bef50cd63fe2a0ce.woff2) format("woff2"),url(/static/media/ibm-plex-mono-cyrillic-700-normal.be8a543ed56c805c2956.woff) format("woff");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-mono-vietnamese-700-normal.4613915b55440effb245.woff2) format("woff2"),url(/static/media/ibm-plex-mono-vietnamese-700-normal.bd4f40b4b019ebb52f48.woff) format("woff");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-mono-latin-ext-700-normal.2e52de47fd479dfa9a86.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-ext-700-normal.03c02f2caa2219cc1886.woff) format("woff");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-display:swap;font-family:IBM Plex Mono;font-style:normal;font-weight:700;src:url(/static/media/ibm-plex-mono-latin-700-normal.d4372303be516eb1c973.woff2) format("woff2"),url(/static/media/ibm-plex-mono-latin-700-normal.b08bdd191ad8a2b1065c.woff) format("woff");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}:root{--primary-color:#2458ff;--primary-soft:#4a75ff;--secondary-color:#1f4de0;--success-color:#2e9e5b;--success-muted:#58b57f;--error-color:#d7263d;--error-color-hover:#c11f34;--warning-color:#e8a11c;--obstacle-color:#e2701f;--obstacle-stroke:#c85f14;--plot-pen:#d7263d;--exit-red:#d7263d;--exit-red-hover:#e83a50;--undo-color:#d7263d;--undo-color-hover:#c11f34;--streak-accent:var(--plot-pen);--streak-accent-hover:#e83a50;--streak-accent-active:#c11f34;--background-color:#f2f0e9;--card-background:#fbfaf5;--border-color:#d9e2e9;--game-area-bg:#faf9f3;--level-area-bg:#f7f6f0e6;--footer-bg:#f2f0e9;--ground-color:#e7e2d2;--gray-800:#24313e;--gray-700:#374756;--gray-600:#51606e;--gray-500:#74828f;--gray-400:#94a1ad;--gray-300:#c2cdd6;--gray-200:#dbe3e9;--gray-100:#ecefee;--gray-50:#f4f5f2;--accent-color:#1c2b3a;--text-primary:#1c2b3a;--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:#1c2b3a;--modal-header-bg:linear-gradient(180deg,#f7f6f0,#fbfaf5);--font-family-base:"Hanken Grotesk Variable","Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-family-logo:"Hanken Grotesk Variable","Hanken Grotesk",-apple-system,BlinkMacSystemFont,"Segoe UI","Roboto",sans-serif;--font-family-mono:"IBM Plex Mono",Consolas,"Cascadia Mono",ui-monospace,"SF Mono",monospace;--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:1px 1px 0 #1c2b3a1a;--shadow-md:2px 2px 0 #1c2b3a1f;--shadow-lg:3px 3px 0 #1c2b3a24,0 8px 20px #1c2b3a14;--shadow-xl:4px 4px 0 #1c2b3a24,0 16px 36px #1c2b3a1f;--shadow-focus:0 0 0 2px var(--card-background),0 0 0 4px var(--primary-color);--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(--primary-color);--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:3px;--radius-sm:6px;--radius-md:9px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:20px;--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:#101c280d;--overlay-black-8:#101c2814;--overlay-black-10:#101c281a;--overlay-black-15:#101c2826;--overlay-black-20:#101c2833;--overlay-black-30:#101c284d;--overlay-black-50:#101c2880;--overlay-black-80:#101c28cc;--overlay-white-10:#ffffff1a;--overlay-white-20:#fff3;--overlay-white-80:#fffc;--overlay-surface-95:#fbfaf5f2;--overlay-surface-98:#fbfaf5fa;--overlay-primary-4:#2458ff0a;--overlay-primary-8:#2458ff14;--overlay-primary-10:#2458ff1a;--overlay-primary-15:#2458ff26;--overlay-primary-20:#2458ff33;--overlay-primary-30:#2458ff4d;--overlay-primary-40:#2458ff66;--overlay-primary-50:#2458ff80;--overlay-primary-60:#2458ff99;--overlay-success-08:#2e9e5b14;--overlay-success-10:#2e9e5b1a;--overlay-success-20:#2e9e5b33;--overlay-error-10:#d7263d1a;--overlay-error-20:#d7263d33;--overlay-error-30:#d7263d4d;--overlay-error-40:#d7263d66}[data-theme=dark]{--primary-color:#6f9bff;--primary-soft:#8cafff;--secondary-color:#5487ff;--success-color:#46c07a;--success-muted:#6fd098;--error-color:#ff5c6e;--error-color-hover:#ff7583;--warning-color:#ffc24b;--obstacle-color:#f08a3e;--obstacle-stroke:#d9762a;--plot-pen:#ff5c6e;--exit-red:#ff5c6e;--exit-red-hover:#ff7583;--undo-color:#ff5c6e;--undo-color-hover:#e84a5c;--streak-accent-hover:#ff7583;--streak-accent-active:#e84a5c;--background-color:#0b1626;--card-background:#122238;--game-area-bg:#0e1c30;--level-area-bg:#14263ef0;--footer-bg:#0b1626;--ground-color:#1d3252;--gray-800:#e9eef5;--gray-700:#ccd7e4;--gray-600:#9fb2c6;--gray-500:#7288a0;--gray-400:#55708c;--gray-300:#335172;--gray-200:#24405f;--gray-100:#182f4b;--gray-50:#10203a;--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:#6f9bff24;--interactive-primary-bg-hover:#6f9bff33;--interactive-primary-bg-active:#6f9bff47;--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,#16304f,#122238);--shadow-sm:1px 1px 0 #03081080;--shadow-md:2px 2px 0 #0308108c;--shadow-lg:3px 3px 0 #0308108c,0 10px 24px #02060e80;--shadow-xl:4px 4px 0 #0308108c,0 18px 40px #02060e99;--shadow-focus:0 0 0 2px var(--card-background),0 0 0 4px var(--primary-color);--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(--primary-color);--ruler-tick-color:var(--gray-500);--overlay-white-10:#e9eef50d;--overlay-white-20:#e9eef51a;--overlay-white-80:#e9eef566;--overlay-surface-95:#122238f2;--overlay-surface-98:#122238fa;--overlay-primary-4:#6f9bff0f;--overlay-primary-8:#6f9bff1a;--overlay-primary-10:#6f9bff24;--overlay-primary-15:#6f9bff2e;--overlay-primary-20:#6f9bff3d;--overlay-primary-30:#6f9bff52;--overlay-primary-40:#6f9bff66;--overlay-primary-50:#6f9bff80;--overlay-primary-60:#6f9bff99;--overlay-success-08:#46c07a1f;--overlay-success-10:#46c07a24;--overlay-success-20:#46c07a3d;--overlay-error-10:#ff5c6e24;--overlay-error-20:#ff5c6e3d;--overlay-error-30:#ff5c6e52;--overlay-error-40:#ff5c6e66}.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{margin-top:auto;width:100%;z-index:30}.modal-overlay{z-index:1000!important}.modal{z-index:1001!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)}}.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;flex:1 1;justify-content:space-evenly;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-outer-card>.game-header{margin-bottom:0;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)}.game-header .header-button .header-icon-calendar{height:calc(clamp(22px, 20px + .8vh, 28px)*.9);width:calc(clamp(22px, 20px + .8vh, 28px)*.9)}.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-outer-card>.game-controls-container{margin-top:0;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-button .header-icon-calendar{fill:none;stroke:currentColor;height:calc(var(--header-icon-size-fluid)*.9);width:calc(var(--header-icon-size-fluid)*.9)}.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(--text-secondary);font-family:var(--font-family-mono);font-size:var(--header-date-size-fluid);font-weight:500;letter-spacing:.08em;margin-bottom:-2px;opacity:.9;text-transform:uppercase;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(--text-primary);font-family:var(--font-family-logo);font-size:var(--header-logo-size-fluid);font-weight:800;letter-spacing:-.015em;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-family:var(--font-family-mono);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:.75;overflow:visible;position:relative}.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:var(--z-index-completed-overlay)}.bounce-display{-webkit-touch-callout:none;align-items:center;background:var(--overlay-surface-98);border:1px solid var(--border-color);border-radius:var(--radius-full);box-shadow:var(--shadow-md);color:var(--gray-700);display:flex;font-family:var(--font-family-mono);font-size:var(--font-size-bounce-display);font-weight:600;justify-content:center;left:50%;letter-spacing:.04em;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;text-transform:uppercase;top:clamp(8px,.6rem + .3vw,14px);transform:translateX(-50%);transition:opacity var(--transition-fast);user-select:none;-webkit-user-select:none;white-space:nowrap;will-change:opacity;z-index:var(--z-index-bounce-display)}.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:1.5px solid var(--gray-300);border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--overlay-black-8);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),box-shadow var(--transition-quick),transform var(--transition-quick);width:var(--control-button-size-fluid)}.btn-control:hover{background:var(--interactive-bg);border-color:var(--gray-400)}.btn-control:active{background:var(--interactive-bg-hover);box-shadow:1px 1px 0 var(--overlay-black-8);transform:translate(1px,1px)}.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-color);border-color:var(--undo-color)}.btn-undo:hover:not(:disabled){background:var(--undo-color-hover);border-color:var(--undo-color-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:1.5px solid var(--gray-300);border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--overlay-black-8);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:700;gap:8px;height:var(--control-button-size-fluid);justify-content:center;letter-spacing:.01em;min-height:44px;touch-action:manipulation;transition:background var(--transition-quick),border-color var(--transition-quick),box-shadow var(--transition-quick),transform 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);box-shadow:1px 1px 0 var(--overlay-black-8);transform:translate(1px,1px)}.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(--primary-color);border-color:var(--primary-color);color:#fff}.btn-launch--ready:hover:not(:disabled){background:var(--primary-soft);border-color:var(--primary-soft)}.btn-launch--ready:active:not(:disabled){background:var(--primary-color);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-primary-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-loading-fallback{inset:0;pointer-events:none;position:fixed;z-index:1000}.triopole-ad,.triopole-interstitial-card{--tpl-emerald:#059669;--tpl-emerald-hover:#047857;--tpl-emerald-edge:#03684a;--tpl-emerald-fill:#d1fae5;--tpl-spring:cubic-bezier(0.22,1.12,0.36,1);align-items:center;background:var(--card-background);border:1px solid var(--border-color);border-radius:var(--radius-md);border-top:3px solid var(--tpl-emerald);box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:6px;overflow:hidden;padding:15px 18px 18px;position:relative;text-align:center;text-decoration:none;transition:box-shadow var(--transition-quick),transform var(--transition-quick),border-color var(--transition-quick)}.triopole-ad--card:hover{border-bottom-color:var(--gray-400);border-left-color:var(--gray-400);border-right-color:var(--gray-400);box-shadow:var(--shadow-lg);transform:translate(-1px,-1px)}.triopole-ad--card:active{box-shadow:var(--shadow-sm);transform:translate(1px,1px)}.triopole-ad:focus-visible{box-shadow:0 0 0 2px var(--card-background),0 0 0 4px var(--tpl-emerald);outline:none}[data-theme=dark] .triopole-ad,[data-theme=dark] .triopole-interstitial-card{--tpl-emerald:#10b981;--tpl-emerald-hover:#34d399;--tpl-emerald-edge:#0c8a63;--tpl-emerald-fill:#10b98124}.triopole-ad-brand{align-items:center;display:inline-flex;gap:6px;margin-top:2px}.triopole-mark{fill:var(--tpl-emerald);display:block}.triopole-wordmark{color:var(--tpl-emerald);font-size:1.25rem;font-weight:800;letter-spacing:-.03em;line-height:1;text-transform:lowercase}.triopole-ad-headline{color:var(--text-primary);font-size:.9375rem;font-weight:800;letter-spacing:-.01em;margin-top:2px}.triopole-ad-body{color:var(--text-secondary);font-size:.8125rem;line-height:1.45;max-width:30ch}.triopole-ad-cta{align-items:center;background:var(--tpl-emerald);border:1.5px solid var(--tpl-emerald-edge);border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--overlay-black-15);color:#fff;display:inline-flex;font-size:.8125rem;font-weight:700;gap:6px;letter-spacing:.01em;margin-top:10px;padding:8px 18px;transition:background var(--transition-quick),box-shadow var(--transition-quick),transform var(--transition-quick)}.triopole-ad:hover .triopole-ad-cta{background:var(--tpl-emerald-hover)}.triopole-ad:active .triopole-ad-cta,.triopole-interstitial-cta:active{box-shadow:1px 1px 0 var(--overlay-black-10);transform:translate(1px,1px)}.triopole-triangle{height:auto;margin:6px 0 2px;width:132px}.triopole-triangle-body{fill:none;stroke:var(--tpl-emerald);stroke-opacity:.42;stroke-width:1.5}[data-theme=dark] .triopole-triangle-body{stroke-opacity:.5}.triopole-vertex-dot{fill:var(--tpl-emerald);opacity:.25}.triopole-node-halo{fill:#0596690f}.triopole-node-ring{fill:#0596691a;stroke:var(--tpl-emerald);stroke-width:1.5}[data-theme=dark] .triopole-node-halo{fill:#10b9811a}[data-theme=dark] .triopole-node-ring{fill:#10b98124}.triopole-node{animation:tpl-node-journey 10.5s var(--tpl-spring) infinite}@keyframes tpl-node-journey{0%{transform:translate(0)}7%{transform:translateY(-24px)}24%{transform:translateY(-24px)}31%{transform:translate(0)}38%{transform:translate(20.78px,12px)}55%{transform:translate(20.78px,12px)}62%{transform:translate(0)}69%{transform:translate(-20.78px,12px)}86%{transform:translate(-20.78px,12px)}93%{transform:translate(0)}to{transform:translate(0)}}.triopole-glow{opacity:0}.triopole-glow--top{animation:tpl-glow-top 10.5s ease-in-out infinite}.triopole-glow--right{animation:tpl-glow-right 10.5s ease-in-out infinite}.triopole-glow--left{animation:tpl-glow-left 10.5s ease-in-out infinite}@keyframes tpl-glow-top{0%,4%{opacity:0}10%,22%{opacity:1}30%,to{opacity:0}}@keyframes tpl-glow-right{0%,35%{opacity:0}41%,53%{opacity:1}61%,to{opacity:0}}@keyframes tpl-glow-left{0%,66%{opacity:0}72%,84%{opacity:1}92%,to{opacity:0}}@media (prefers-reduced-motion:reduce){.triopole-glow--left,.triopole-glow--right,.triopole-glow--top,.triopole-node{animation:none}.triopole-glow--top{opacity:.6}}.triopole-ad--card{margin:0 auto;max-width:340px;width:100%}.triopole-ad--rail,.triopole-ad--rail-left{--tpl-rail-height:432px;height:var(--tpl-rail-height);padding:25px 21px;position:fixed;top:50%;width:216px;z-index:5}.triopole-ad--rail-left .triopole-ad-body,.triopole-ad--rail-left .triopole-ad-headline{text-wrap:balance}.triopole-ad--rail .triopole-ad-cta,.triopole-ad--rail-left .triopole-ad-cta{align-self:stretch;justify-content:center;margin-top:6px}.triopole-ad--rail-left .triopole-triangle{margin:auto;width:156px}.triopole-ad--rail-left .triopole-ad-body{margin-bottom:auto}.triopole-ad--rail{animation:tpl-rail-in .5s var(--tpl-spring);border-right:3px solid var(--tpl-emerald);border-top:1px solid var(--border-color);right:24px;transform:translateY(-50%)}.triopole-ad--rail:hover{border-bottom-color:var(--gray-400);border-left-color:var(--gray-400);border-top-color:var(--gray-400);box-shadow:var(--shadow-lg)}.triopole-shot{--shot-emerald:#059669;--shot-emerald-light:#0596691a;--shot-surface-card:#fff;--shot-surface-secondary:#f0efee;--shot-border-default:#e7e5e4;--shot-border-subtle:#f0efee;--shot-text-primary:#1c1917;--shot-text-secondary:#57534e;--shot-text-tertiary:#78716c;--shot-leader-wash:#edf7f4;-webkit-font-smoothing:antialiased;align-self:stretch;background:var(--shot-surface-card);border:1px solid var(--shot-border-default);border-radius:12px;box-shadow:0 1px 2px #1c19170f,0 5px 16px #1c19171a;direction:ltr;display:flex;flex-direction:column;font-family:Plus Jakarta Sans Variable,Plus Jakarta Sans,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;gap:6px;line-height:1.3;margin:auto 0;padding:10px;text-align:left}.triopole-shot-icon{flex-shrink:0;height:8px;width:8px}.triopole-shot-head{align-items:center;display:flex;gap:5px;min-width:0}.triopole-shot-avatar{align-items:center;background:var(--shot-emerald-light);border-radius:50%;color:var(--shot-emerald);display:inline-flex;flex-shrink:0;font-size:9px;font-weight:700;height:16px;justify-content:center;width:16px}.triopole-shot-user{color:var(--shot-text-primary);font-size:9.5px;font-weight:600}.triopole-shot-meta{color:var(--shot-text-tertiary);flex:1 1;font-size:8.5px;min-width:0;white-space:nowrap}.triopole-shot-menu{color:var(--shot-text-tertiary);flex-shrink:0;height:11px;width:11px}.triopole-shot-title{color:var(--shot-text-primary);font-size:11px;font-weight:700;letter-spacing:-.01em;line-height:1.25}.triopole-shot-zone{align-items:center;background:var(--shot-surface-secondary);border-radius:8px;display:flex;flex-direction:column;gap:5px;padding:18px 7px 7px;position:relative}.triopole-shot-picks{font-feature-settings:"tnum";align-items:center;color:var(--shot-text-tertiary);display:inline-flex;font-size:8px;font-variant-numeric:tabular-nums;font-weight:600;gap:3px;position:absolute;right:7px;top:5px}.triopole-shot-picks .triopole-shot-icon{height:9px;width:9px}.triopole-shot-resp{align-self:stretch;background:var(--shot-surface-card);border:1px solid var(--shot-border-subtle);border-radius:6px;display:flex;flex-direction:column;gap:2px;min-width:0;padding:4px 6px}.triopole-shot-resp--lead{background:var(--shot-leader-wash);border-color:var(--shot-emerald)}.triopole-shot-resp-title{color:var(--shot-text-secondary);font-size:9px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.triopole-shot-resp--lead .triopole-shot-resp-title{font-weight:600}.triopole-shot-badge{font-feature-settings:"tnum";align-items:center;align-self:flex-end;background:var(--shot-surface-secondary);border-radius:5px;color:var(--shot-text-tertiary);display:inline-flex;font-size:8px;font-variant-numeric:tabular-nums;font-weight:600;gap:3px;padding:1.5px 5px}.triopole-shot-badge--picked{background:var(--shot-emerald-light);color:var(--shot-emerald);font-weight:700}.triopole-shot-tri{flex-shrink:0;height:auto;margin:1px 0;width:68px}.triopole-shot-tri-body{fill:var(--shot-surface-card);stroke:#0596694d;stroke-width:1.5}.triopole-shot-base{align-self:stretch;display:flex;gap:8px}.triopole-shot-base .triopole-shot-resp{flex:1 1}.triopole-shot-actions{align-items:center;display:flex;gap:4px}.triopole-shot-chip{font-feature-settings:"tnum";align-items:center;background:var(--shot-surface-secondary);border-radius:999px;color:var(--shot-text-tertiary);display:inline-flex;font-size:8px;font-variant-numeric:tabular-nums;font-weight:600;gap:3px;padding:2.5px 7px}.triopole-shot-chip .triopole-shot-icon{height:8.5px;width:8.5px}.triopole-ad--rail-left{animation:tpl-rail-in-left .5s var(--tpl-spring);border-left:3px solid var(--tpl-emerald);border-top:1px solid var(--border-color);left:24px;transform:translateY(-50%)}.triopole-ad--rail-left:hover{border-bottom-color:var(--gray-400);border-right-color:var(--gray-400);border-top-color:var(--gray-400);box-shadow:var(--shadow-lg)}@keyframes tpl-rail-in{0%{opacity:0;transform:translateY(-50%) translateX(16px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}@keyframes tpl-rail-in-left{0%{opacity:0;transform:translateY(-50%) translateX(-16px)}to{opacity:1;transform:translateY(-50%) translateX(0)}}@media (min-width:1400px){.triopole-ad--rail{right:36px;width:236px}.triopole-ad--rail-left{left:36px;width:236px}}@media (max-height:560px),(max-width:1099px){.triopole-ad--rail{display:none}}@media (max-height:560px),(max-width:1279px){.triopole-ad--rail-left{display:none}}@media (prefers-reduced-motion:reduce){.triopole-ad--rail,.triopole-ad--rail-left{animation:none}}.triopole-interstitial{align-items:center;display:flex;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1200}.triopole-interstitial-backdrop{animation:tpl-fade-in .25s ease-out;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:var(--overlay-black-50);inset:0;position:absolute}.triopole-interstitial-card{align-items:center;animation:tpl-card-in .35s var(--tpl-spring);border-radius:var(--radius-lg);border-top-width:4px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:6px;max-height:calc(100dvh - 48px);outline:none;overflow:hidden auto;padding:28px 26px 22px;position:relative;text-align:center;width:min(420px,calc(100vw - 40px))}.triopole-interstitial-card .triopole-triangle{margin:10px 0 4px;width:190px}.triopole-interstitial-brand .triopole-wordmark{font-size:1.6rem}.triopole-interstitial-headline{font-size:1.1875rem;margin-top:4px}.triopole-interstitial-body{font-size:.9rem;max-width:34ch}.triopole-interstitial-cta{font-size:.9rem;margin-top:14px;padding:11px 26px;text-decoration:none}.triopole-interstitial-cta:hover{background:var(--tpl-emerald-hover)}.triopole-interstitial-continue{background:none;border:none;color:var(--text-tertiary);cursor:pointer;font-size:.8125rem;font-weight:600;margin-top:8px;padding:8px 14px;text-decoration:underline;text-underline-offset:3px}.triopole-interstitial-continue:hover{color:var(--text-primary)}.triopole-interstitial-close{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--text-tertiary);cursor:pointer;display:flex;height:34px;justify-content:center;position:absolute;right:10px;top:10px;width:34px}.triopole-interstitial-close:hover{background:var(--interactive-bg);color:var(--text-primary)}@keyframes tpl-fade-in{0%{opacity:0}to{opacity:1}}@keyframes tpl-card-in{0%{opacity:0;transform:translateY(14px) scale(.96)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.triopole-interstitial-backdrop,.triopole-interstitial-card{animation:none}}.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(.bottom-sheet-close):not(.control-button):not(.tutorial-button):not(.ruler-section):not(.streak-again-button):not(.streak-upsell-button):not(.share-button-primary):not(.summary-stats-link),.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(.bottom-sheet-close):not(.control-button):not(.tutorial-button):not(.ruler-section):not(.streak-again-button):not(.streak-upsell-button):not(.share-button-primary):not(.summary-stats-link):hover,.primary-button-style:hover{background:var(--interactive-primary-bg-hover);border-color:var(--overlay-primary-40)}.modal-content button:not(.modal-close):not(.bottom-sheet-close):not(.control-button):not(.tutorial-button):not(.ruler-section):not(.streak-again-button):not(.streak-upsell-button):not(.share-button-primary):not(.summary-stats-link):active,.primary-button-style:active{background:var(--interactive-primary-bg-active)}.modal-content button:not(.modal-close):not(.bottom-sheet-close):not(.control-button):not(.tutorial-button):not(.ruler-section):not(.share-button-primary):not(.summary-stats-link):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{background:var(--interactive-primary-bg);border:1px solid var(--overlay-primary-30);color:var(--primary-color);font-weight:600;padding:clamp(.75rem,.625rem + .4vw,.875rem) clamp(1rem,.875rem + .5vw,1.5rem);transition:background var(--transition-quick),border-color var(--transition-quick)}.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 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}.streak-upsell{align-items:center;display:flex;flex-direction:column;gap:6px;margin-top:.75rem;position:relative;z-index:2}.streak-upsell-button{align-items:center;background:#0000;border:2px solid var(--overlay-error-40);border-radius:var(--radius-sm);color:var(--streak-accent);cursor:pointer;display:inline-flex;font-size:var(--font-size-button);font-weight:700;gap:8px;justify-content:center;padding:12px 20px;transition:background var(--transition-quick),border-color var(--transition-quick);width:100%}.streak-upsell-button:hover{background:var(--overlay-error-20);border-color:var(--streak-accent)}.streak-upsell-icon{height:16px;width:16px}.streak-upsell-copy{color:var(--text-tertiary);font-size:var(--font-size-fluid-xs);margin:0}.streak-over-modal .triopole-ad--card,.summary-modal .triopole-ad--card{margin-top:.9rem}.tutorial-modal{max-width:420px}.tutorial-modal .modal-content{min-height:340px}.tutorial-content{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(--primary-color)}.tutorial-ruler-wrapper .ruler-selector--disabled .ruler-section--selected .ruler-section-label{color:var(--primary-color)}.tutorial-ruler-wrapper .ruler-slider::-webkit-slider-thumb{appearance:none;background:var(--primary-color);height:28px;margin-top:-12px;width:6px}.tutorial-ruler-wrapper .ruler-slider:disabled::-webkit-slider-thumb{background:var(--primary-color)}.tutorial-ruler-wrapper .ruler-slider::-moz-range-thumb{background:var(--primary-color);border:none;height:28px;width:6px}.tutorial-ruler-wrapper .ruler-slider:disabled::-moz-range-thumb{background:var(--primary-color)}.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}}.modal{border:1.5px solid var(--border-color)}.summary-modal .level-distance,.summary-modal .level-points,.summary-modal .stat-value{font-feature-settings:"tnum";font-family:var(--font-family-mono);font-variant-numeric:tabular-nums}.share-button-primary{align-items:center;background:var(--primary-color);border:1.5px solid var(--primary-color);border-radius:var(--radius-sm);box-shadow:2px 2px 0 var(--overlay-primary-30);color:#fff;cursor:pointer;display:flex;font-size:var(--font-size-button);font-weight:700;gap:.5rem;justify-content:center;letter-spacing:.01em;line-height:1.4;padding:clamp(.625rem,.5rem + .4vw,.75rem) clamp(1rem,.875rem + .5vw,1.5rem);transition:background var(--transition-quick),border-color var(--transition-quick),box-shadow var(--transition-quick),transform var(--transition-quick);width:100%}.share-button-primary:hover{background:var(--primary-soft);border-color:var(--primary-soft)}.share-button-primary:active{box-shadow:1px 1px 0 var(--overlay-primary-30);transform:translate(1px,1px)}.share-button-primary:focus-visible{box-shadow:var(--shadow-focus);outline:none}.summary-stats-link{align-items:center;background:#0000;border:none;border-radius:var(--radius-xs);color:var(--text-secondary);cursor:pointer;display:inline-flex;font-family:var(--font-family-mono);font-size:.75rem;font-weight:600;gap:.375rem;justify-content:center;letter-spacing:.08em;margin:.625rem auto 0;padding:.375rem .75rem;text-transform:uppercase;transition:color var(--transition-quick)}.summary-stats-link:hover{color:var(--text-primary)}.summary-stats-link:focus-visible{box-shadow:var(--shadow-focus);outline:none}.summary-callout{align-items:center;border-radius:var(--radius-sm);display:flex;font-size:var(--font-size-fluid-sm);font-weight:600;gap:.5rem;justify-content:center;margin:.25rem 0 .75rem;padding:.5rem .875rem;text-align:center}.summary-callout--best{background:var(--overlay-success-10);border:1.5px solid var(--overlay-success-20);color:var(--success-color)}.summary-callout--milestone{background:var(--overlay-primary-10);border:1.5px solid var(--overlay-primary-20);color:var(--primary-color)}.summary-callout--avg{background:#0000;border:none;color:var(--text-tertiary);font-family:var(--font-family-mono);font-size:.75rem;font-weight:500;letter-spacing:.06em;padding:.125rem .875rem;text-transform:uppercase}.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}.lang-ar,.lang-ar *,[dir=rtl],[dir=rtl] *{letter-spacing:normal!important}[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:#fbfaf5fa;background:var(--overlay-surface-98,#fbfaf5fa);border:1.5px solid #1c2b3a;border:1.5px solid var(--text-primary,#1c2b3a);border-radius:9px;border-radius:var(--radius-md,9px);box-shadow:3px 3px 0 #101c2826;box-shadow:3px 3px 0 var(--overlay-black-15,#101c2826);display:flex;flex-direction:column;gap:4px;padding:18px 34px}.bounce-overlay-count{color:#1c2b3a;color:var(--text-primary,#1c2b3a);font-family:var(--font-family-mono);font-size:clamp(38px,34px + 2vw,46px);font-weight:700;line-height:1}.bounce-overlay-label{color:#51606e;color:var(--text-secondary,#51606e);font-family:var(--font-family-mono);font-size:14px;font-size:var(--font-size-fluid-sm,14px);font-weight:600;letter-spacing:.18em;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)}}.draw-prompt-container{align-items:flex-start;display:flex;inset:0;justify-content:center;padding-top:68%;pointer-events:none;position:absolute;z-index:15;z-index:var(--z-index-bounce-display,15)}.draw-prompt-icon{animation:drawPromptFloat 3s ease-in-out forwards;color:#ffffff80;color:var(--gray-500,#ffffff80);filter:drop-shadow(0 1px 3px rgba(0,0,0,.3));height:clamp(28px,24px + 1.2vw,36px);width:clamp(28px,24px + 1.2vw,36px)}.draw-prompt-icon svg{height:100%;width:100%}@keyframes drawPromptFloat{0%{opacity:0;transform:translateX(-35px)}10%{opacity:.65;transform:translateX(-35px)}50%{transform:translateX(35px)}90%{opacity:.65;transform:translateX(-35px)}to{opacity:0;transform:translateX(-35px)}}@media (prefers-reduced-motion:reduce){.draw-prompt-icon{animation:drawPromptFadeSimple 3s ease forwards}@keyframes drawPromptFadeSimple{0%{opacity:0}12%{opacity:.7}65%{opacity:.7}to{opacity:0}}}@media (max-height:600px){.bounce-overlay-toast{padding:20px 32px}.bounce-overlay-count{font-size:40px}.bounce-overlay-label{font-size:14px}}.streak-badge{gap:6px;margin-bottom:12px;padding:8px 14px}.streak-icon{font-size:18px;line-height:1}.streak-count{font-size:20px}.streak-label{font-size:13px;font-weight:600}.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,.language-switcher,.modal-overlay,.triopole-ad--rail,.triopole-ad--rail-left{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;background:var(--background-color);color:var(--accent-color);display:flex;inset:0;justify-content:center;overflow:hidden;padding:1rem;position:fixed;z-index:1000}.welcome-content{animation:slideUp .5s var(--ease-out);background:var(--card-background);border:1.5px solid var(--border-color);border-radius:var(--radius-2xl);box-shadow:var(--shadow-xl);max-height:calc(100vh - 2rem);max-width:min(500px,calc(100vw - 2rem));overflow:hidden;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-eyebrow,.welcome-footer,.welcome-logo-wrapper,.welcome-meta,.welcome-solved,.welcome-tagline{position:relative;z-index:1}.logo-container{animation:logoDrop .6s var(--ease-spring);margin:1.25rem 0 0}@keyframes logoDrop{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.logo-svg{height:120px;width:138px}.welcome-eyebrow{color:var(--primary-color);font-family:var(--font-family-mono);font-size:.6875rem;font-weight:600;letter-spacing:.18em;margin:.25rem 0 0;text-transform:uppercase}.welcome-logo-wrapper{align-items:baseline;display:flex;justify-content:center;margin:.25rem 0 .375rem}.welcome-title{color:var(--text-primary);font-family:var(--font-family-logo);font-size:2.125rem;font-weight:800;letter-spacing:-.02em;margin:0}.welcome-meta{align-items:baseline;color:var(--text-secondary);display:flex;font-family:var(--font-family-mono);font-size:.75rem;gap:.5rem;justify-content:center;letter-spacing:.06em;margin:0 0 .75rem;text-transform:uppercase}.welcome-meta-number{color:var(--text-primary);font-weight:700}.welcome-meta-numero{font-size:1.2em}.welcome-meta-separator{opacity:.5}.welcome-tagline{color:var(--text-secondary);font-size:1rem;margin:0 0 1.75rem}.streak-badge{align-items:center;background:var(--background-color);border:1.5px solid var(--border-color);border-radius:var(--radius-full);box-shadow:var(--shadow-sm);display:inline-flex;gap:.5rem;justify-content:center;margin:.25rem 0 .75rem;padding:.5rem 1rem}.streak-count{color:var(--primary-color);font-family:var(--font-family-mono);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}.streak-badge--risk{background:var(--overlay-error-10);border-color:var(--overlay-error-20)}.streak-badge--risk .streak-count{color:var(--error-color)}.streak-badge--risk .streak-label{color:var(--error-color);font-weight:600}.welcome-solved{align-items:center;color:var(--text-primary);display:flex;flex-direction:column;font-family:var(--font-family-mono);font-size:.875rem;font-weight:600;gap:.25rem;margin:0 0 1.5rem}.welcome-solved-check{align-items:center;background:var(--overlay-success-10);border:1.5px solid var(--success-color);border-radius:var(--radius-full);color:var(--success-color);display:inline-flex;font-size:.8125rem;height:22px;justify-content:center;margin-bottom:.125rem;width:22px}.welcome-solved-next{color:var(--text-tertiary);font-size:.75rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase}.welcome-actions{display:flex;flex-direction:column;gap:.875rem;margin-bottom:1.5rem}.play-button,.streak-mode-button{align-items:center;border-radius:var(--radius-sm);cursor:pointer;display:inline-flex;font-family:var(--font-family-base);font-size:1.0625rem;font-weight:700;gap:8px;justify-content:center;letter-spacing:.01em;line-height:1.3;margin:0 auto;max-width:300px;min-height:48px;padding:.85rem 1.5rem;transition:background var(--transition-quick),border-color var(--transition-quick),color var(--transition-quick),box-shadow var(--transition-quick),transform var(--transition-quick);width:100%}.play-button-icon,.streak-mode-button-icon{flex-shrink:0;height:16px;width:16px}.play-button:focus-visible,.streak-mode-button:focus-visible{box-shadow:var(--shadow-focus);outline:none}.play-button{background:var(--text-primary);border:1.5px solid var(--text-primary);box-shadow:3px 3px 0 var(--overlay-black-15);color:var(--card-background)}.play-button:hover{background:var(--gray-700);border-color:var(--gray-700)}.play-button:active{box-shadow:1px 1px 0 var(--overlay-black-15);transform:translate(2px,2px)}.play-button--solved{background:#0000;border:1.5px solid var(--gray-300);box-shadow:none;color:var(--text-secondary)}.play-button--solved:hover{background:var(--interactive-bg);border-color:var(--gray-400);color:var(--text-primary)}.play-button--solved:active{background:var(--interactive-bg-hover);transform:none}.streak-mode-button{background:#0000;border:1.5px solid var(--overlay-error-40);box-shadow:none;color:var(--streak-accent)}.streak-mode-button:hover{background:var(--overlay-error-10);border-color:var(--streak-accent)}.streak-mode-button:active{background:var(--overlay-error-20)}.streak-mode-button--primary{background:var(--streak-accent);border-color:var(--streak-accent);box-shadow:3px 3px 0 var(--overlay-error-30);color:#fff}.streak-mode-button--primary:hover{background:var(--streak-accent-hover);border-color:var(--streak-accent-hover)}.streak-mode-button--primary:active{background:var(--streak-accent-active);box-shadow:1px 1px 0 var(--overlay-error-30);transform:translate(2px,2px)}.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:.75rem 0 0}.logo-svg{height:98px;width:112px}.welcome-title{font-size:1.875rem}.welcome-tagline{font-size:.9rem;margin-bottom:1.5rem}.welcome-footer{display:none}.play-button,.streak-mode-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-eyebrow,.welcome-footer{display:none}.welcome-tagline{font-size:.875rem;margin-bottom:1rem}.welcome-logo-wrapper{margin:0 0 .25rem}.welcome-meta{margin-bottom:.75rem}.welcome-solved{margin-bottom:1rem}.welcome-actions{margin:0}.play-button,.streak-mode-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)}[data-theme=dark] .play-button:not(.play-button--solved){color:var(--background-color)}@media (prefers-reduced-motion:reduce){.logo-container,.welcome-content{animation:none}.physics-preview-frame{display:none}}.skeleton-container{background:#fbfaf5;display:flex;flex-direction:column;height:100%;position:relative;width:100%}.skeleton-header{background:#f7f6f0;border-bottom:1px solid #d9e2e9;height:44px}.skeleton-levels{background:#faf9f3;border-bottom:1px solid #d9e2e9;height:40px}.skeleton-canvas{background:#faf9f3;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:#f7f6f0!important}.skeleton-container:after{animation:spin .8s linear infinite;border:2px solid #dbe3e9;border-radius:50%;border-top-color:#2458ff;content:"";height:32px;left:calc(50% - 16px);position:absolute;top:calc(50% - 16px);width:32px;will-change:transform}:root{--skeleton-base:#ece9df;--skeleton-highlight:#e2ded2}[data-theme=dark] .skeleton-container{background:#0b1626}[data-theme=dark] .skeleton-header{background:#122238;border-bottom-color:#24405f}[data-theme=dark] .skeleton-levels{background:#0e1c30;border-bottom-color:#24405f}[data-theme=dark] .skeleton-canvas{background:#0e1c30}[data-theme=dark] .skeleton-shimmer{background:#122238!important}[data-theme=dark] .skeleton-container:after{border-color:#6f9bff #24405f #24405f}.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)}.site-footer--landing{background:#0000;bottom:0;left:0;padding-bottom:max(.5rem,env(safe-area-inset-bottom));position:fixed;right:0;z-index:1001}@media (max-height:640px),(max-width:768px){.site-footer--landing{display:none}}.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 fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@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}}body.lang-en,body.lang-es{font-family:var(--font-family-base)}.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)}
