:root{--paper: #f3f1ea;--paper-deep: #e8e6df;--paper-card: #fafaf4;--ink: #1c1f24;--ink-soft: #5a6470;--ink-mute: #8a8a85;--pencil: #b8a896;--pencil-faint: #ddcfba;--rule-line: #cfdfee;--rule-line-strong: #a9c4dd;--grid-line: #bcd6eb;--grid-line-strong: #8fb7d4;--coral: #e07856;--coral-deep: #c8593a;--coral-soft: #f4d4c7;--highlighter: #fbe87e;--highlighter-soft: #fff1a8;--sage: #87b59a;--sage-soft: #d2e7d8;--sky: #7fb1d6;--sky-soft: #cee5f1;--plum: #8a6fae;--laser: var(--coral);--laser-glow: rgba(224, 120, 86, .32);--error: var(--coral-deep);--win: #4a8a55;--font-serif: "Fraunces", "Iowan Old Style", Georgia, serif;--font-sans: "Nunito", system-ui, -apple-system, sans-serif;--font-script: "Caveat", "Bradley Hand", cursive;--fs-display: clamp(36px, 6vw, 56px);--fs-h1: clamp(28px, 4.5vw, 40px);--fs-h2: clamp(22px, 3.2vw, 28px);--fs-body: 17px;--fs-small: 15px;--lh-tight: 1.15;--lh-snug: 1.3;--lh-body: 1.5;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--sp-7: 48px;--sp-8: 64px;--r-sm: 6px;--r-md: 10px;--r-lg: 16px;--shadow-1: 0 1px 0 rgba(80, 60, 30, .06), 0 2px 4px rgba(80, 60, 30, .05);--shadow-2: 0 2px 0 rgba(80, 60, 30, .08), 0 4px 10px rgba(80, 60, 30, .08);--shadow-press: 1px 2px 0 rgba(80, 60, 30, .18)}.paper-bg,body.paper-bg,.ruled-bg,.grid-paper-bg{background-color:var(--paper-tint, var(--paper));background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.12  0 0 0 0 0.16  0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");background-repeat:repeat}.ruled-bg{background-image:repeating-linear-gradient(to bottom,transparent 0,transparent 31px,var(--rule-line) 31px,var(--rule-line) 32px),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.12  0 0 0 0 0.16  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.grid-paper-bg{--gp-step: 24px;background-image:repeating-linear-gradient(to right,var(--grid-line) 0 1px,transparent 1px var(--gp-step)),repeating-linear-gradient(to bottom,var(--grid-line) 0 1px,transparent 1px var(--gp-step)),url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.12  0 0 0 0 0.16  0 0 0 0.05 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}.tint-sage{--paper-tint: #e8f1e8;--grid-line: #b8d4bd}.tint-blue{--paper-tint: #eaf2f9;--grid-line: #b6cee0}.tint-coral{--paper-tint: #fae4dc;--grid-line: #e5b8a4}.torn-top,.torn-bottom{position:relative}.torn-top:before,.torn-bottom:after{content:"";position:absolute;left:0;right:0;height:14px;pointer-events:none;background-repeat:repeat-x;background-size:220px 14px}.torn-top:before{top:-12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 14' preserveAspectRatio='none'><path d='M0 14 L0 9 L8 7 L14 10 L22 6 L30 9 L38 5 L46 8 L55 4 L63 9 L72 6 L82 9 L92 5 L102 10 L113 6 L123 9 L134 5 L145 10 L156 6 L167 9 L178 5 L189 9 L200 6 L211 9 L220 7 L220 14 Z' fill='%23faf4e4' stroke='%23ddcfba' stroke-width='0.7' stroke-linejoin='round'/></svg>")}.torn-bottom:after{bottom:-12px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 14' preserveAspectRatio='none'><path d='M0 0 L0 5 L8 7 L14 4 L22 8 L30 5 L38 9 L46 6 L55 10 L63 5 L72 8 L82 5 L92 9 L102 4 L113 8 L123 5 L134 9 L145 4 L156 8 L167 5 L178 9 L189 5 L200 8 L211 5 L220 7 L220 0 Z' fill='%23faf4e4' stroke='%23ddcfba' stroke-width='0.7' stroke-linejoin='round'/></svg>")}.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-sans);font-weight:700;font-size:17px;letter-spacing:.3px;line-height:1;color:var(--ink);padding:14px 22px;min-height:50px;border:none;background:transparent;cursor:pointer;isolation:isolate;transition:transform 80ms ease-out,filter 80ms ease-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}.btn--primary{color:#fff}.btn:active{transform:translate(1px,2px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn:disabled:active{transform:none}.card{position:relative;padding:var(--sp-5);background:transparent;isolation:isolate}.card--tilt-l{transform:rotate(-.8deg)}.card--tilt-r{transform:rotate(.6deg)}.sticky{position:relative;padding:var(--sp-4) var(--sp-5);background:transparent;isolation:isolate;transform:rotate(-1.2deg);font-family:var(--font-sans);color:var(--ink)}.sticky--tilt-r{transform:rotate(1.4deg)}.sticky--tilt-l{transform:rotate(-1.4deg)}.field{position:relative;display:flex;align-items:center;gap:var(--sp-3);padding:8px var(--sp-4);background:transparent;isolation:isolate;min-height:56px}.field__prefix{font-family:var(--font-serif);font-weight:500;font-size:26px;color:var(--ink);-webkit-user-select:none;user-select:none;line-height:1}.field__input{flex:1;font-family:var(--font-serif);font-weight:400;font-size:24px;border:none;outline:none;background:transparent;color:var(--ink);padding:6px 0;min-width:0;line-height:1.2}.field__input::placeholder{color:var(--pencil)}.chip{position:relative;display:inline-flex;align-items:center;justify-content:center;gap:6px;font-family:var(--font-sans);font-weight:600;font-size:14px;color:var(--ink);padding:7px 14px;min-height:34px;background:transparent;border:none;cursor:pointer;isolation:isolate;transition:transform 80ms ease-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}.chip:active{transform:translate(1px,1px)}.hl{background-image:linear-gradient(102deg,var(--highlighter) 0%,var(--highlighter) 100%);background-repeat:no-repeat;background-size:100% .58em;background-position:0 78%;padding:0 .12em;box-decoration-break:clone;-webkit-box-decoration-break:clone}.hl--skewed{background-image:linear-gradient(100deg,transparent 0%,var(--highlighter) 6%,var(--highlighter) 94%,transparent 100%);background-size:100% .62em}.hl--coral{background-image:linear-gradient(102deg,var(--coral-soft) 0%,var(--coral-soft) 100%)}.hl--sage{background-image:linear-gradient(102deg,var(--sage-soft) 0%,var(--sage-soft) 100%)}.hl--sky{background-image:linear-gradient(102deg,var(--sky-soft) 0%,var(--sky-soft) 100%)}.u-hand{background-repeat:no-repeat;background-position:0 100%;background-size:100% 8px;padding-bottom:6px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 8' preserveAspectRatio='none'><path d='M1 4 Q 15 1 30 4 T 60 5 T 90 3 T 119 4' fill='none' stroke='%23e07856' stroke-width='2.2' stroke-linecap='round'/></svg>")}.u-hand--sage{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 8' preserveAspectRatio='none'><path d='M1 4 Q 15 1 30 4 T 60 5 T 90 3 T 119 4' fill='none' stroke='%2387b59a' stroke-width='2.2' stroke-linecap='round'/></svg>")}.u-hand--sky{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 8' preserveAspectRatio='none'><path d='M1 4 Q 15 1 30 4 T 60 5 T 90 3 T 119 4' fill='none' stroke='%237fb1d6' stroke-width='2.2' stroke-linecap='round'/></svg>")}.u-hand--ink{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 8' preserveAspectRatio='none'><path d='M1 4 Q 15 1 30 4 T 60 5 T 90 3 T 119 4' fill='none' stroke='%231f1d1b' stroke-width='2' stroke-linecap='round'/></svg>")}.u-hand--double{background-size:100% 10px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 10' preserveAspectRatio='none'><path d='M1 4 Q 15 1 30 4 T 60 5 T 90 3 T 119 4' fill='none' stroke='%23e07856' stroke-width='2.2' stroke-linecap='round'/><path d='M2 8 Q 16 6 32 7 T 64 8 T 96 7 T 119 8' fill='none' stroke='%23e07856' stroke-width='1.4' stroke-linecap='round' opacity='0.6'/></svg>")}.tape{position:absolute;width:76px;height:20px;background:#fce8829e;border-left:1px solid rgba(120,100,30,.12);border-right:1px solid rgba(120,100,30,.12);box-shadow:0 1px 2px #503c1e2e,inset 0 0 0 .5px #78641e14;pointer-events:none;z-index:4}.tape:before,.tape:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(180deg,#ffffff73,#fff0,#ffffff4d);pointer-events:none}.tape--tl{top:-10px;left:-12px;transform:rotate(-8deg)}.tape--tr{top:-10px;right:-12px;transform:rotate(7deg)}.tape--bl{bottom:-10px;left:-12px;transform:rotate(8deg)}.tape--br{bottom:-10px;right:-12px;transform:rotate(-7deg)}.tape--coral{background:#e0785680}.tape--sage{background:#87b59a80}.tape--blue{background:#7fb1d680}.torn-divider{height:18px;background-repeat:repeat-x;background-size:220px 18px;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 220 18' preserveAspectRatio='none'><path d='M0 9 L8 7 L14 10 L22 6 L30 9 L38 5 L46 8 L55 4 L63 9 L72 6 L82 9 L92 5 L102 10 L113 6 L123 9 L134 5 L145 10 L156 6 L167 9 L178 5 L189 9 L200 6 L211 9 L220 7' fill='none' stroke='%23b8a896' stroke-width='1.1' stroke-linejoin='round'/></svg>");opacity:.85}.arrow-doodle{display:inline-block;width:2.4em;height:1em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:contain;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 20'><path d='M2 11 Q 14 8 26 11 T 50 10' fill='none' stroke='%23e07856' stroke-width='2.4' stroke-linecap='round'/><path d='M44 4 L 54 10 L 44 17' fill='none' stroke='%23e07856' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/></svg>")}.arrow-doodle--ink{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 20'><path d='M2 11 Q 14 8 26 11 T 50 10' fill='none' stroke='%231f1d1b' stroke-width='2.2' stroke-linecap='round'/><path d='M44 4 L 54 10 L 44 17' fill='none' stroke='%231f1d1b' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'/></svg>")}.arrow-doodle--sage{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 60 20'><path d='M2 11 Q 14 8 26 11 T 50 10' fill='none' stroke='%2387b59a' stroke-width='2.4' stroke-linecap='round'/><path d='M44 4 L 54 10 L 44 17' fill='none' stroke='%2387b59a' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'/></svg>")}.heading{font-family:var(--font-serif);font-weight:500;line-height:var(--lh-tight);color:var(--ink);margin:0}.heading--display{font-size:var(--fs-display);letter-spacing:-.5px}.heading--h1{font-size:var(--fs-h1)}.heading--h2{font-size:var(--fs-h2)}.script-mark{font-family:var(--font-script);font-weight:700;letter-spacing:.3px}.handwritten{font-family:var(--font-script);font-weight:500}.text-soft{color:var(--ink-soft)}.text-mute{color:var(--ink-mute)}.game-screen{width:100%;max-width:720px;padding:var(--sp-5) var(--sp-4) var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-5)}.game-brand{font-family:var(--font-script);font-weight:700;font-size:30px;letter-spacing:.3px;color:var(--ink);line-height:1;margin:0}.game-header{text-align:center;margin-top:var(--sp-2);display:flex;flex-direction:column;gap:var(--sp-2);align-items:center}.game-level{font-family:var(--font-serif);font-weight:500;font-size:clamp(28px,5vw,38px);line-height:1.1;margin:0;color:var(--ink)}.game-level .hl{padding:0 .18em}.game-desc{font-family:var(--font-sans);font-weight:400;font-size:16px;color:var(--ink-soft);margin:0;max-width:38ch}.stat-row{display:flex;justify-content:center;flex-wrap:wrap;gap:var(--sp-2)}.stat-chip{font-size:13px;font-weight:700;letter-spacing:.2px;text-transform:uppercase;color:var(--ink-soft);padding:6px 12px}.stat-chip strong{color:var(--ink);font-weight:800}.graph-card{position:relative;width:100%;aspect-ratio:1 / 1;isolation:isolate;padding:8px;background:transparent}.graph-svg{width:100%;height:100%;display:block}.field--equation{min-height:60px;padding:6px 18px}.action-row{display:flex;gap:var(--sp-3)}.action-row .btn--primary{flex:2;font-size:19px;letter-spacing:.5px}.action-row .btn--secondary{flex:1;font-size:16px}.quick-row{display:flex;gap:var(--sp-2);flex-wrap:wrap}.quick-row .chip{flex:1 1 auto;min-width:0;min-height:42px;padding:4px 14px}.chip__tex{font-size:16px;line-height:1.1}.eq-preview{text-align:center;margin-top:calc(var(--sp-3) * -1);min-height:30px;color:var(--ink-soft);font-size:18px;line-height:1;transition:opacity .12s ease-out}.eq-preview--hidden{visibility:hidden;opacity:0}.eq-preview .katex{color:var(--ink-soft)}.status{min-height:32px;text-align:center;font-size:var(--fs-body);color:var(--ink-soft)}.status-error{color:var(--error)}.status-win{color:var(--win);font-family:var(--font-script);font-weight:700;font-size:28px}@media (max-width: 480px){.game-screen{padding:var(--sp-4) var(--sp-3) var(--sp-6);gap:var(--sp-4)}.game-brand{font-size:26px}.field__input{font-size:22px}.action-row .btn--primary{font-size:17px}.quick-row .chip{font-size:14px}}.icon{display:inline-flex;width:22px;height:22px;flex:none}.icon svg{width:100%;height:100%;display:block}.icon--sm{width:18px;height:18px}.icon--star{width:42px;height:42px}.icon--ministar{width:13px;height:13px}.top-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3)}.top-bar .game-brand{font-size:22px;flex:1;text-align:center}.top-bar__spacer{width:60px}.chip--nav{font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap}.chip--icon{padding:7px 10px}.map-screen,.range-screen,.help-screen{width:100%;max-width:720px;padding:var(--sp-5) var(--sp-4) var(--sp-7);display:flex;flex-direction:column;gap:var(--sp-4)}.range-screen{max-width:1280px;gap:var(--sp-3)}.map-title{font-family:var(--font-serif);font-weight:500;font-size:clamp(26px,4.5vw,34px);text-align:center;margin:var(--sp-2) 0 0;color:var(--ink)}.map-sub{text-align:center;color:var(--ink-soft);font-size:15px;margin:calc(var(--sp-2) * -1) auto 0;max-width:46ch}.ink-meter{display:flex;align-items:center;gap:var(--sp-3);margin-top:calc(var(--sp-3) * -1)}.ink-meter__icon{width:20px;height:20px;color:var(--ink-soft)}.ink-meter__track{flex:1;height:14px;border:1.6px solid var(--ink);border-radius:8px;background:var(--paper-card);overflow:hidden;filter:url(#hd-subtle)}.ink-meter__fill{height:100%;width:0%;background:var(--sky);border-radius:6px;transition:width .14s ease-out,background-color .14s ease-out}.ink-meter--over .ink-meter__fill{background:repeating-linear-gradient(-45deg,var(--coral) 0 8px,var(--coral-deep) 8px 16px)}.ink-meter__text{font-size:13px;font-weight:700;color:var(--ink-soft);min-width:74px;text-align:right;white-space:nowrap}.ink-meter--over .ink-meter__text{color:var(--coral-deep)}.field--shake{animation:field-shake .3s ease-in-out}@keyframes field-shake{0%,to{transform:translate(0)}25%{transform:translate(-5px)}50%{transform:translate(4px)}75%{transform:translate(-2px)}}.tut-note{position:relative;background:#fdf2ac;border:1.5px solid rgba(120,100,30,.28);padding:var(--sp-4) var(--sp-5);transform:rotate(-.8deg);filter:url(#hd-subtle);box-shadow:var(--shadow-2)}.tut-note__text{margin:0;font-size:15.5px;line-height:1.45;color:var(--ink)}.tut-note__next{margin-top:var(--sp-3);min-height:40px;padding:8px 16px;font-size:14px}.clear-overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;align-items:center;justify-content:center;background:#f3f1ea9e;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);opacity:0;transition:opacity .25s ease-out;padding:var(--sp-3)}.clear-overlay--show{opacity:1}.clear-card{width:min(100%,360px);max-height:100%;overflow-y:auto;padding:var(--sp-5);text-align:center;isolation:isolate;background:transparent;transform:scale(.92) rotate(-.6deg);transition:transform .25s cubic-bezier(.34,1.4,.64,1)}.clear-overlay--show .clear-card{transform:scale(1) rotate(-.6deg)}.clear-card__mascot{width:84px;height:84px;object-fit:contain;animation:mascot-bounce .9s ease-in-out infinite alternate}@keyframes mascot-bounce{0%{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-7px) rotate(3deg)}}.clear-card__title{font-family:var(--font-script);font-weight:700;font-size:34px;color:var(--win);line-height:1.1}.clear-card__stars{display:flex;justify-content:center;gap:6px;margin:var(--sp-2) 0}.clear-card__rows{margin:var(--sp-3) 0 0;font-size:15px;color:var(--ink)}.clear-row{display:flex;justify-content:space-between;padding:3px 2px}.clear-row__value{font-weight:800;font-variant-numeric:tabular-nums}.clear-row--muted{color:var(--ink-soft);font-size:13.5px}.clear-row--muted .clear-row__value{font-weight:600}.clear-row--total{border-top:2px dashed var(--pencil);margin-top:6px;padding-top:8px;font-size:17px}.clear-row--xp{color:var(--coral-deep)}.clear-card__rankup{margin-top:var(--sp-3);font-family:var(--font-script);font-weight:700;font-size:21px;color:var(--ink);background:linear-gradient(102deg,var(--highlighter) 0%,var(--highlighter) 100%) no-repeat 0 70% / 100% .6em;display:inline-block;padding:0 6px}.clear-card__actions{display:flex;flex-direction:column;gap:var(--sp-2);margin-top:var(--sp-4)}.clear-card__actions .btn{width:100%}.home-screen{position:relative;width:100%;max-width:520px;min-height:100vh;padding:var(--sp-6) var(--sp-4) var(--sp-7);display:flex;flex-direction:column;align-items:center;gap:var(--sp-5)}.home-sound{position:absolute;top:var(--sp-4);right:var(--sp-4)}.home-hero{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);text-align:center;margin-top:var(--sp-4)}.home-mascot{width:128px;height:128px;object-fit:contain;animation:mascot-float 4.5s ease-in-out infinite}@keyframes mascot-float{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-9px) rotate(2.5deg)}}.home-title{font-family:var(--font-serif);font-weight:600;font-size:clamp(34px,8vw,48px);line-height:1.1;margin:0;color:var(--ink)}.home-tagline{margin:0;font-size:22px;color:var(--ink-soft)}.home-rank{width:min(100%,320px);text-align:center;padding:var(--sp-4) var(--sp-5)}.home-rank__name{font-family:var(--font-serif);font-weight:600;font-size:22px;color:var(--ink)}.home-rank__meta{font-size:13px;color:var(--ink-soft);margin:2px 0 8px}.home-rank__track{height:10px;border-radius:5px;background:var(--paper-deep);border:1px solid var(--pencil-faint);overflow:hidden}.home-rank__fill{height:100%;background:var(--sage);border-radius:4px;transition:width .4s ease-out}.home-menu{width:min(100%,360px);display:flex;flex-direction:column;gap:var(--sp-3)}.home-menu__play{width:100%;font-size:20px;min-height:58px}.home-menu__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2)}.home-foot{font-size:12px;margin-top:auto}.map-list{display:flex;flex-direction:column;gap:var(--sp-4)}.map-chapter{padding:var(--sp-4) var(--sp-5)}.map-chapter--locked{opacity:.62}.map-chapter--soon{opacity:.45}.map-chapter__head{display:flex;align-items:center;gap:var(--sp-3)}.map-chapter__icon{width:42px;height:42px;color:var(--ink)}.map-chapter__titles{flex:1;min-width:0}.map-chapter__title{font-family:var(--font-serif);font-weight:600;font-size:19px;color:var(--ink)}.map-chapter__done{color:var(--win);font-weight:800}.map-chapter__tag{font-size:13.5px;color:var(--ink-soft)}.map-chapter__lock{width:24px;height:24px;color:var(--ink-soft)}.map-chapter__note{margin-top:var(--sp-2);font-size:14px;color:var(--ink-soft)}.map-chapter__note.handwritten{font-size:19px}.map-levels{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-3)}.map-level{display:flex;flex-direction:column;align-items:center;gap:3px}.map-level__dot{width:46px;height:46px;padding:0;font-family:var(--font-serif);font-weight:700;font-size:18px;color:var(--ink);justify-content:center}.map-level__dot--done{color:var(--win)}.map-level__stars{display:flex;gap:1px}.range-layout{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);gap:var(--sp-5);align-items:start}.range-layout__left{display:flex;flex-direction:column;gap:var(--sp-3);min-width:0}.range-layout__left .graph-card{width:min(100%,calc(100vh - 250px));margin-inline:auto}.range-under{display:flex;justify-content:center}.range-status{min-height:24px}.range-panel{display:flex;flex-direction:column;gap:var(--sp-2);min-width:0}.range-title{font-family:var(--font-serif);font-weight:500;font-size:24px;margin:0 0 var(--sp-1);color:var(--ink)}.range-custom{min-height:52px;padding:4px 16px}.range-custom .field__prefix{font-size:22px}.range-custom__input{font-size:20px}.range-custom__input::placeholder{font-size:15px;font-family:var(--font-sans)}.range-custom__error{min-height:18px;font-size:13px;font-weight:600;color:var(--coral-deep);padding-left:4px}.range-picker{display:flex;flex-direction:column;gap:var(--sp-1);margin-top:var(--sp-2)}.range-picker__label{font-size:11.5px;font-weight:800;text-transform:uppercase;letter-spacing:.8px;color:var(--ink-soft);margin-top:var(--sp-2)}.range-picker__row{display:flex;flex-wrap:wrap;gap:7px}.range-picker__chip{font-size:12.5px;padding:5px 11px;min-height:30px}@media (max-width: 960px){.range-layout{grid-template-columns:1fr}.range-layout__left .graph-card{width:100%}}.range-picker__chip--active{color:var(--coral-deep);font-weight:800}.range-picker__chip--active:after{content:"";position:absolute;left:12%;right:12%;bottom:6px;height:5px;background:var(--highlighter);border-radius:2px}.range-form{padding:var(--sp-3) var(--sp-4);display:flex;flex-direction:column;gap:var(--sp-2)}.range-form__general{text-align:center;font-size:14px;color:var(--ink-soft);min-height:20px;overflow-x:auto}.range-form__general .katex{color:var(--ink-soft)}.range-form__value{text-align:center;font-size:19px;min-height:36px;display:flex;align-items:center;justify-content:center;overflow-x:auto}.range-form__sliders{display:flex;flex-direction:column;gap:var(--sp-2)}.range-form__note{text-align:center;font-size:18.5px;color:var(--ink-soft);line-height:1.3}.slider-row{display:grid;grid-template-columns:36px 1fr 56px;align-items:center;gap:var(--sp-3)}.slider-row__label{text-align:center;font-size:19px}.slider-row__value{text-align:right;font-family:var(--font-serif);font-weight:700;font-size:16px;font-variant-numeric:tabular-nums;color:var(--ink)}input[type=range].slider{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;height:28px;background:transparent;cursor:pointer}input[type=range].slider::-webkit-slider-runnable-track{height:6px;border-radius:3px;background:var(--paper-deep);border:1px solid var(--pencil)}input[type=range].slider::-moz-range-track{height:6px;border-radius:3px;background:var(--paper-deep);border:1px solid var(--pencil)}input[type=range].slider::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:22px;height:22px;margin-top:-9px;border-radius:50% 46% 52% 48%;border:2.2px solid var(--ink);background:var(--paper-card);box-shadow:var(--shadow-1)}input[type=range].slider::-moz-range-thumb{width:18px;height:18px;border-radius:50% 46% 52% 48%;border:2.2px solid var(--ink);background:var(--paper-card);box-shadow:var(--shadow-1)}.slider--shape::-webkit-slider-thumb{background:#c8593a}.slider--shape::-moz-range-thumb{background:#c8593a}.slider--shape2::-webkit-slider-thumb{background:#5f9678}.slider--shape2::-moz-range-thumb{background:#5f9678}.slider--shift_h::-webkit-slider-thumb{background:#8a6fae}.slider--shift_h::-moz-range-thumb{background:#8a6fae}.slider--shift_v::-webkit-slider-thumb{background:#3f7ca8}.slider--shift_v::-moz-range-thumb{background:#3f7ca8}.help-card{padding:var(--sp-4) var(--sp-5)}.help-card__title{font-family:var(--font-serif);font-weight:600;font-size:20px;margin:0 0 var(--sp-2);color:var(--ink)}.help-card__sub{font-size:14px;color:var(--ink-soft);margin:0 0 var(--sp-2)}.help-list{margin:0;padding-left:20px}.help-list li{margin:8px 0;font-size:15px;line-height:1.45}.help-syntax{display:flex;flex-direction:column}.help-syntax__row{display:grid;grid-template-columns:minmax(90px,110px) 1fr 1fr;align-items:center;gap:var(--sp-2);padding:7px 0;border-bottom:1px dashed var(--pencil-faint)}.help-syntax__row:last-child{border-bottom:none}.help-syntax__typed{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:13.5px;background:var(--paper-deep);border-radius:6px;padding:3px 8px;justify-self:start}.help-syntax__tex{font-size:15px}.help-syntax__note{font-size:13px;color:var(--ink-soft)}.help-families{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-2) var(--sp-3)}.help-family{display:flex;align-items:center;gap:var(--sp-2)}.help-family__icon{width:26px;height:26px;color:var(--ink)}.help-family__name{font-size:14.5px}.help-family__soon{font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.6px;color:var(--pencil);border:1px dashed var(--pencil);border-radius:8px;padding:1px 6px}@media (max-width: 480px){.help-syntax__row{grid-template-columns:minmax(80px,100px) 1fr}.help-syntax__note{display:none}.help-families,.home-menu__grid{grid-template-columns:1fr}}.home-doodle{position:absolute;opacity:.55;pointer-events:none;z-index:-1;display:none}.home-doodle--tl{top:60px;left:-40px;width:130px;transform:rotate(-14deg)}.home-doodle--br{bottom:60px;right:-60px;width:190px}@media (min-width: 900px){.home-doodle{display:block}}.range-pieces{font-size:16px;color:var(--ink-soft);margin-left:var(--sp-3);align-self:center}.mode-badge{display:inline-block;margin-bottom:var(--sp-2);padding:2px 12px;border-radius:999px;font-family:var(--font-sans);font-weight:800;font-size:12px;letter-spacing:1px;text-transform:uppercase}.mode-badge--lesson{background:var(--sage-soft);color:var(--win)}.mode-badge--game{background:var(--coral-soft);color:var(--coral-deep)}.game-screen--lesson .game-level .hl{background:var(--sage-soft)}.lesson-sliders{display:flex;flex-direction:column;gap:var(--sp-3);padding:var(--sp-2) var(--sp-2) var(--sp-3)}.lesson-sliders .slider-row__label{min-width:28px;font-size:22px}.field--blank{justify-content:center;gap:var(--sp-2)}.field--blank .field__input--blank{flex:0 0 auto;width:84px;text-align:center;border:2px dashed var(--pencil);border-radius:8px;background:var(--paper-card);padding:4px 6px}.field__suffix{font-family:var(--font-serif);font-weight:500;font-size:26px;color:var(--ink);-webkit-user-select:none;user-select:none;line-height:1}.map-level__dot--lesson{background:var(--sage-soft)}.map-level__dot--checkpoint{background:var(--highlighter-soft)}.map-level__dot--challenge{background:var(--coral-soft)}.map-level__dot--locked{opacity:.4;cursor:not-allowed}.map-level__tick{min-height:14px;font-size:18px;line-height:14px;color:var(--win)}.map-legend{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2) var(--sp-4);margin-bottom:var(--sp-4);font-family:var(--font-sans);font-size:13px;color:var(--ink-soft)}.map-legend__item{display:inline-flex;align-items:center;gap:6px}.map-legend__swatch{width:14px;height:14px;border:1.5px solid var(--ink-soft);border-radius:4px;background:var(--paper-card)}@media (min-width: 1000px){.game-screen--lesson{max-width:1080px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(320px,.9fr);grid-auto-rows:min-content;column-gap:var(--sp-5);align-items:start}.game-screen--lesson>*{grid-column:2}.game-screen--lesson>.top-bar,.game-screen--lesson>.game-header,.game-screen--lesson>.stat-row{grid-column:1 / -1}.game-screen--lesson>.graph-card{grid-column:1;grid-row:4 / span 8}}*{box-sizing:border-box}html,body{margin:0;padding:0;min-height:100%;overflow-x:clip}body{color:var(--ink);font-family:var(--font-sans);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-tap-highlight-color:transparent;touch-action:manipulation;background-color:var(--paper);background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' seed='4'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.12  0 0 0 0 0.16  0 0 0 0.06 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>")}#app{min-height:100vh;display:flex;justify-content:center}.grid-line{stroke:var(--grid-line);stroke-width:1;stroke-linecap:round;opacity:.85}.axis-line{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round;opacity:.92}.target{transition:opacity .25s ease-out,transform .25s ease-out;transform-box:fill-box;transform-origin:center}.target-hit{opacity:0;animation:target-pop .32s ease-out forwards}@keyframes target-pop{0%{opacity:1}40%{opacity:1}to{opacity:0}}.shot-path{stroke:var(--laser);stroke-width:.14;stroke-linecap:round;stroke-linejoin:round;fill:none}.shot-path--under{stroke:var(--laser);stroke-width:.26;stroke-linecap:round;stroke-linejoin:round;opacity:.25;fill:none}.axis-arrow{stroke:var(--ink);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;opacity:.92}.tick-line{stroke:var(--ink);stroke-width:1.4;stroke-linecap:round;opacity:.5}text.tick-label{font-family:var(--font-sans);font-weight:700;font-size:.62px;fill:var(--ink-soft);opacity:.85;text-anchor:middle}text.tick-label--y{text-anchor:end}text.axis-label{font-family:var(--font-serif);font-style:italic;font-size:.9px;fill:var(--ink);text-anchor:middle}.preview-path{stroke:var(--pencil);stroke-width:.1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:.38 .3;opacity:.9}.shot--old .shot-path--main{stroke:var(--pencil);opacity:.38}.shot--old .shot-path--under{display:none}.burst-ray{stroke-width:.09;stroke-linecap:round}.burst-inner{transform-box:fill-box;transform-origin:center;animation:burst-pop .55s ease-out forwards}@keyframes burst-pop{0%{transform:scale(.35);opacity:1}60%{opacity:.9}to{transform:scale(1.35);opacity:0}}.exit-chevron{stroke-width:.12;stroke-linecap:round;stroke-linejoin:round}.preview-exit .exit-chevron{stroke:var(--pencil);opacity:.85}.shot-exit .exit-chevron{stroke:var(--laser);opacity:0;animation:chevron-in .3s ease-out forwards}@keyframes chevron-in{to{opacity:.85}}.shot--old .shot-exit .exit-chevron{stroke:var(--pencil);opacity:.35;animation:none}
