@font-face{font-family:Gabarito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/7d28de41f17e98f2-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Gabarito;font-style:normal;font-weight:600;font-display:swap;src:url(/_next/static/media/48d80869c8866503-s.p.woff2) format("woff2");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-family:Gabarito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/7d28de41f17e98f2-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Gabarito;font-style:normal;font-weight:800;font-display:swap;src:url(/_next/static/media/48d80869c8866503-s.p.woff2) format("woff2");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-family:Gabarito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/7d28de41f17e98f2-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Gabarito;font-style:normal;font-weight:900;font-display:swap;src:url(/_next/static/media/48d80869c8866503-s.p.woff2) format("woff2");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-family:Gabarito Fallback;src:local("Arial");ascent-override:94.81%;descent-override:26.22%;line-gap-override:0.00%;size-adjust:99.15%}.__className_f11551{font-family:Gabarito,Gabarito Fallback;font-style:normal}.__variable_f11551{--font-display:"Gabarito","Gabarito Fallback"}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/d57a24ec54448a8e-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/bc08e10e1c60a660-s.p.woff2) format("woff2");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-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/7c309a1f4c99f6b1-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Atkinson Hyperlegible;font-style:normal;font-weight:700;font-display:swap;src:url(/_next/static/media/9816a0e0ed309b6c-s.p.woff2) format("woff2");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-family:Atkinson Hyperlegible Fallback;src:local("Arial");ascent-override:95.60%;descent-override:29.18%;line-gap-override:0.00%;size-adjust:99.37%}.__className_de3fe8{font-family:Atkinson Hyperlegible,Atkinson Hyperlegible Fallback;font-style:normal}.__variable_de3fe8{--font-body:"Atkinson Hyperlegible","Atkinson Hyperlegible Fallback"}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2a705150951ef2a4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f11589fe773c9f21-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ef87c177b26f69d3-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Martian Mono;font-style:normal;font-weight:400;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9ae8a6594e58fd44-s.p.woff2) format("woff2");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-family:Martian Mono;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/2a705150951ef2a4-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:Martian Mono;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/f11589fe773c9f21-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:Martian Mono;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/ef87c177b26f69d3-s.woff2) format("woff2");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-20c4,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Martian Mono;font-style:normal;font-weight:600;font-stretch:100%;font-display:swap;src:url(/_next/static/media/9ae8a6594e58fd44-s.p.woff2) format("woff2");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-family:Martian Mono Fallback;src:local("Arial");ascent-override:63.69%;descent-override:12.74%;line-gap-override:0.00%;size-adjust:157.02%}.__className_04b51f{font-family:Martian Mono,Martian Mono Fallback;font-style:normal}.__variable_04b51f{--font-mono:"Martian Mono","Martian Mono Fallback"}:root{--bg:#E6EEDF;--bg-dot:rgba(38,72,44,.14);--surface:#FBFCF7;--surface-2:#EFF4E8;--ink:#17231B;--muted:#56675B;--line:#CFDBC7;--accent:#2A43DF;--accent-deep:#1A2B9E;--accent-soft:#DDE3FF;--accent-ink:#FFFFFF;--sun:#F2B01E;--good:#1C7C45;--good-soft:#D6EFDF;--warn:#965F00;--warn-soft:#FAEBC8;--bad:#C3372B;--bad-soft:#FADBD6;--key:#FFFFFF;--key-side:#B9C7B1;--key-ink:#1B271F;--f0:#F6D2DD;--f1:#FCE0B6;--f2:#D2EDC4;--f3:#CDE0F8;--f4:#E2D3F8;--f5:#CBEFE8;--f6:#F8D4C8;--f7:#EAE3C6;--f8:#E1E8DC;--skin-top:#F6D3B2;--skin-bottom:#E2AC84;--skin-edge:#B67D59;--nail:#FCE8D9;--crease:rgba(140,78,48,.32);--shadow:0 1px 0 rgba(23,35,27,.04),0 16px 34px -22px rgba(23,35,27,.42);--display:var(--font-display),"Trebuchet MS",system-ui,sans-serif;--body:var(--font-body),"Segoe UI",system-ui,sans-serif;--mono:var(--font-mono),ui-monospace,"Cascadia Mono",Consolas,monospace;--fs:1}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0D1310;--bg-dot:rgba(170,215,180,.075);--surface:#151E19;--surface-2:#1B2620;--ink:#E3ECE5;--muted:#92A497;--line:#27362E;--accent:#8D9FFF;--accent-deep:#4D5FCC;--accent-soft:#222B54;--accent-ink:#0D1310;--sun:#FFD15A;--good:#53C585;--good-soft:#143425;--warn:#E6AD4D;--warn-soft:#382B12;--bad:#FF7A6E;--bad-soft:#43201C;--key:#25302A;--key-side:#070B09;--key-ink:#E1EAE3;--f0:#4C2D3B;--f1:#4B3A21;--f2:#2C4427;--f3:#22384F;--f4:#352C51;--f5:#1E423E;--f6:#4B2B22;--f7:#3B3727;--f8:#28322C;--skin-top:#D8AD89;--skin-bottom:#B48460;--skin-edge:#EBC9A8;--nail:#EED3BE;--crease:rgba(70,35,18,.45);--shadow:0 1px 0 rgba(0,0,0,.2),0 18px 36px -20px rgba(0,0,0,.7);color-scheme:dark}}:root[data-theme=dark]{--bg:#0D1310;--bg-dot:rgba(170,215,180,.075);--surface:#151E19;--surface-2:#1B2620;--ink:#E3ECE5;--muted:#92A497;--line:#27362E;--accent:#8D9FFF;--accent-deep:#4D5FCC;--accent-soft:#222B54;--accent-ink:#0D1310;--sun:#FFD15A;--good:#53C585;--good-soft:#143425;--warn:#E6AD4D;--warn-soft:#382B12;--bad:#FF7A6E;--bad-soft:#43201C;--key:#25302A;--key-side:#070B09;--key-ink:#E1EAE3;--f0:#4C2D3B;--f1:#4B3A21;--f2:#2C4427;--f3:#22384F;--f4:#352C51;--f5:#1E423E;--f6:#4B2B22;--f7:#3B3727;--f8:#28322C;--skin-top:#D8AD89;--skin-bottom:#B48460;--skin-edge:#EBC9A8;--nail:#EED3BE;--crease:rgba(70,35,18,.45);--shadow:0 1px 0 rgba(0,0,0,.2),0 18px 36px -20px rgba(0,0,0,.7);color-scheme:dark}*{box-sizing:border-box}body,html{height:100%}[hidden]{display:none!important}body{margin:0;color:var(--ink);font-family:var(--body);font-size:15px;line-height:1.55;background-color:var(--bg);background-image:radial-gradient(var(--bg-dot) 1.1px,transparent 1.4px);background-size:22px 22px;background-attachment:fixed}button,input,select,textarea{font:inherit;color:inherit}a{color:inherit}p{margin:0}h1,h2,h3{font-family:var(--display);line-height:1.1;margin:0;text-wrap:balance}h1{font-size:2.35rem;font-weight:900;letter-spacing:-.025em}h2{font-size:1.45rem;letter-spacing:-.01em}h2,h3{font-weight:800}h3{font-size:1.1rem}.eyebrow{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);font-weight:700}.eyebrow a{text-decoration:none}.eyebrow a:hover{color:var(--accent)}.muted{color:var(--muted)}.num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}:focus-visible{outline:3px solid var(--accent);outline-offset:3px;border-radius:8px}.cap,kbd{font-family:var(--mono);font-size:.8em;background:var(--key);color:var(--key-ink);border:1px solid var(--key-side);border-radius:6px;padding:1px 7px;box-shadow:0 2px 0 var(--key-side)}.cap.big{font-size:1.15rem;padding:6px 12px;min-width:2.3em;text-align:center;display:inline-block;border-radius:10px;box-shadow:0 3px 0 var(--key-side)}.app{display:grid;grid-template-columns:232px minmax(0,1fr);min-height:100%}.rail{position:-webkit-sticky;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px;padding-block:22px;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:18px;background:color-mix(in srgb,var(--surface) 82%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-right:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-key{position:relative;width:40px;height:40px;display:grid;place-items:center;border-radius:11px;background:var(--accent);color:var(--accent-ink);font-family:var(--display);font-weight:900;font-size:1.3rem;box-shadow:0 4px 0 var(--accent-deep);transform:rotate(-6deg)}.brand-key i{position:absolute;bottom:7px;width:12px;height:2.5px;border-radius:2px;background:currentColor;opacity:.75}.brand-name{font-family:var(--display);font-weight:900;font-size:1.45rem;letter-spacing:-.02em}.nav{flex-direction:column;gap:9px}.nav,.nav a{display:flex}.nav a{text-decoration:none;align-items:center;padding:10px 14px;border-radius:12px;font-weight:700;background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);transition:transform .09s ease,box-shadow .09s ease,background .15s}.nav a:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--key-side)}.nav a:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-side)}.nav a[aria-current=page]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 1px 0 var(--accent-deep);transform:translateY(2px)}.rail-foot{margin-top:auto;font-size:.8rem;color:var(--muted);display:flex;flex-direction:column;gap:4px}.sync{display:inline-flex;align-items:center;gap:7px}.sync:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--good)}main{min-width:0;padding-block:84px 56px;padding-left:max(18px,env(safe-area-inset-left,0px));padding-right:max(18px,env(safe-area-inset-right,0px))}.wrap{max-width:1060px;margin:0 auto;flex-direction:column;gap:22px}.head,.wrap{display:flex}.head{justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.head>div{display:flex;flex-direction:column;gap:7px;min-width:0}.head>.lessons{flex-direction:row;max-width:460px}.head>.row{flex-direction:row;align-items:flex-end;gap:18px}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.wrap>*{animation:rise .5s cubic-bezier(.2,.75,.25,1) both}.wrap>:nth-child(2){animation-delay:.06s}.wrap>:nth-child(3){animation-delay:.12s}.wrap>:nth-child(4){animation-delay:.18s}.wrap>:nth-child(5){animation-delay:.24s}.wrap>:nth-child(n+6){animation-delay:.3s}.corner{position:fixed;top:calc(env(safe-area-inset-top,0px) + 16px);right:max(18px,env(safe-area-inset-right,0px));z-index:40}.theme-switch{cursor:pointer;display:inline-flex;align-items:center;gap:10px;padding:5px 5px 5px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow)}.ts-label{font-family:var(--display);font-weight:800;font-size:.9rem;min-width:3.2em;text-align:left}.ts-track{position:relative;display:inline-flex;align-items:center;justify-content:space-between;width:62px;height:32px;padding:0 9px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line)}.ts-sun{color:var(--sun)}.ts-moon{color:var(--accent)}.ts-knob{position:absolute;top:3px;left:33px;width:24px;height:24px;border-radius:50%;background:var(--key);border:1px solid var(--key-side);box-shadow:0 2px 0 var(--key-side);transition:left .22s cubic-bezier(.3,.7,.3,1.3)}.theme-switch[aria-checked=true] .ts-knob{left:3px}.theme-switch:hover .ts-track{border-color:var(--muted)}.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:22px;display:flex;flex-direction:column;gap:13px;min-width:0;box-shadow:var(--shadow)}.grid{display:grid;grid-gap:18px;gap:18px}.g2{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}.row{gap:10px}.row,.spread{display:flex;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between;gap:12px}.btn{cursor:pointer;display:inline-flex;align-items:center;gap:8px;line-height:1.2;text-decoration:none;padding:9px 16px;border-radius:12px;font-weight:700;background:var(--key);color:var(--key-ink);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);transition:transform .09s ease,box-shadow .09s ease,filter .15s}.btn:hover{filter:brightness(1.04);transform:translateY(-1px);box-shadow:0 4px 0 var(--key-side)}.btn:active{transform:translateY(2px);box-shadow:0 1px 0 var(--key-side)}.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 3px 0 var(--accent-deep)}.btn.primary:hover{box-shadow:0 4px 0 var(--accent-deep)}.btn.primary:active{box-shadow:0 1px 0 var(--accent-deep)}.btn.primary kbd{background:color-mix(in srgb,var(--accent-ink) 18%,transparent);color:inherit;border-color:transparent;box-shadow:none}.btn.big{padding:13px 22px;font-size:1.05rem;border-radius:14px}.btn.quiet{background:transparent;border-color:transparent;box-shadow:none;color:var(--muted)}.btn.quiet:hover{color:var(--ink);background:var(--surface-2);transform:none}.btn.danger{color:var(--bad)}.btn[disabled]{opacity:.5;cursor:not-allowed}.stat{display:flex;flex-direction:column;gap:2px}.stat b{font-family:var(--display);font-size:2.05rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.05}.stat span{font-size:.82rem}.pill,.stat span{color:var(--muted)}.pill{display:inline-flex;align-items:center;gap:6px;padding:3px 11px;border-radius:999px;font-size:.78rem;font-weight:700;background:var(--surface-2);border:1px solid var(--line)}.pill.good{background:var(--good-soft);color:var(--good)}.pill.good,.pill.warn{border-color:transparent}.pill.warn{background:var(--warn-soft);color:var(--warn)}.pill.bad{background:var(--bad-soft);color:var(--bad)}.pill.accent,.pill.bad{border-color:transparent}.pill.accent{background:var(--accent-soft);color:var(--accent)}.bar{height:10px;background:var(--surface-2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}.bar i{display:block;height:100%;background:repeating-linear-gradient(-45deg,var(--accent) 0 8px,color-mix(in srgb,var(--accent) 82%,var(--accent-ink)) 8px 16px);border-radius:99px}.hero{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);grid-gap:18px;gap:18px}.continue{position:relative;overflow:hidden;min-height:220px;justify-content:center;border:none;color:var(--accent-ink);background:radial-gradient(circle at 88% 18%,color-mix(in srgb,var(--accent-ink) 16%,transparent),transparent 46%),radial-gradient(color-mix(in srgb,var(--accent-ink) 12%,transparent) 1.2px,transparent 1.5px) 0 0/18px 18px,var(--accent);box-shadow:0 5px 0 var(--accent-deep),var(--shadow)}.continue>:not(.hero-keys){max-width:64%;position:relative}.continue .eyebrow{color:inherit;opacity:.85}.continue h2{font-size:1.65rem;font-weight:900}.continue .btn{background:var(--key);color:var(--accent);border-color:var(--key-side)}.continue .btn.quiet{background:transparent;color:var(--accent-ink);border:1px solid color-mix(in srgb,var(--accent-ink) 55%,transparent);box-shadow:none}.continue .btn.quiet:hover{background:color-mix(in srgb,var(--accent-ink) 14%,transparent)}.hero-keys{position:absolute;right:26px;top:50%;transform:translateY(-50%);display:grid;grid-template-columns:repeat(2,68px);grid-gap:14px;gap:14px}.hk{width:68px;height:68px;display:grid;place-items:center;border-radius:16px;background:var(--key);color:var(--key-ink);font-family:var(--display);font-weight:900;font-size:2rem;border:1px solid var(--key-side);box-shadow:0 6px 0 var(--key-side),0 18px 24px -12px rgba(0,0,0,.45);transform:rotate(calc((var(--i) - 1.5) * 6deg));animation:bob 3.2s ease-in-out infinite;animation-delay:calc(var(--i) * -.6s)}@keyframes bob{0%,to{translate:0 0}50%{translate:0 -5px}}.ring{--p:0;width:96px;height:96px;background:conic-gradient(var(--good) calc(var(--p)*1%),var(--surface-2) 0);place-items:center;flex:none}.ring,.ring>div{border-radius:50%;display:grid}.ring>div{width:74px;height:74px;background:var(--surface);place-items:center;font-family:var(--display);font-weight:900;font-size:1.15rem}.keychips{gap:8px}.keychips,.lessons{display:flex;flex-wrap:wrap}.lessons{gap:7px}.lessons a{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;text-decoration:none;font-weight:800;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);transition:transform .09s}.lessons a:hover{transform:translateY(-1px)}.lessons a.done{background:var(--good-soft);color:var(--good)}.lessons a[aria-current=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 1px 0 var(--accent-deep);transform:translateY(2px)}.exlist{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:20px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.ex{all:unset;cursor:pointer;display:grid;grid-template-columns:30px minmax(0,1fr) auto;grid-gap:14px;gap:14px;align-items:center;padding:15px 18px;border-top:1px solid var(--line);transition:background .15s}.ex:first-child{border-top:none}.ex:hover{background:var(--surface-2)}.ex.next{background:var(--accent-soft)}.ex:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}.ex .mark{width:26px;height:26px;border-radius:8px;border:2px solid var(--key-side);display:grid;place-items:center;font-size:.8rem;font-weight:900;background:var(--key)}.ex.done .mark{background:var(--good);border-color:var(--good);color:var(--surface)}.ex.next .mark{border-color:var(--accent)}.ex small{color:var(--muted)}.app.practicing{grid-template-columns:minmax(0,1fr)}.app.practicing .rail{display:none}.desk{max-width:1000px;margin:0 auto;display:flex;flex-direction:column;gap:12px}.app.practicing main{padding-top:72px}.desk-top{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap}.desk-title{display:flex;flex-direction:column;gap:4px;min-width:0}.meters{display:flex;gap:24px;align-items:flex-end;flex-wrap:wrap}.meter{display:flex;flex-direction:column}.meter span{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:700}.meter b{font-family:var(--display);font-size:1.7rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1.1}.meter b small{font-size:.8rem;color:var(--muted);font-weight:600;font-family:var(--body)}.progress{height:8px;background:var(--surface);border:1px solid var(--line);border-radius:99px;overflow:hidden}.progress i{display:block;height:100%;width:0;background:var(--accent);transition:width .25s linear}.pane{background:var(--surface);border:1px solid var(--line);border-radius:20px;box-shadow:var(--shadow);padding:24px 28px;font-family:var(--mono);font-size:calc(1.3rem * var(--fs));line-height:1.85;white-space:pre-wrap;word-break:break-word;min-height:4.8em;position:relative;transition:box-shadow .15s}.pane .preview{color:var(--muted);opacity:.55;display:block;margin-top:.35em;font-size:.88em}.ch.todo{color:var(--ink)}.ch.done,.ch.ok{color:var(--muted)}.ch.ok{opacity:.75}.ch.cur{background:var(--accent-soft);color:var(--accent);border-radius:4px;box-shadow:inset 0 -3px 0 var(--accent)}.ch.bad{color:var(--bad);background:var(--bad-soft);border-radius:3px;-webkit-text-decoration:underline wavy var(--bad) 1px;text-decoration:underline wavy var(--bad) 1px;text-underline-offset:4px}.ch.miss{color:var(--bad);text-decoration:line-through;opacity:.7}.ch.nl{color:var(--muted)}.pane.err{box-shadow:0 0 0 3px var(--bad-soft),var(--shadow)}.shake{animation:shake .18s linear}@keyframes shake{25%{transform:translateX(-3px)}75%{transform:translateX(3px)}}.pane.tiles{display:flex;flex-wrap:wrap;justify-content:center;align-content:center;gap:18px 34px;padding:24px 26px;white-space:normal}.tgroup{display:inline-flex;gap:8px;align-items:center}.tile{display:inline-grid;place-items:center;min-width:calc(3.4rem * var(--fs));height:calc(3.4rem * var(--fs));padding:0 .35em;border-radius:13px;background:var(--key);color:var(--key-ink);border:1px solid var(--key-side);box-shadow:0 4px 0 var(--key-side);font-size:calc(1.55rem * var(--fs));font-weight:600;line-height:1;transition:transform .1s ease,box-shadow .1s ease,background .15s,opacity .2s}.tile.space{min-width:calc(6rem * var(--fs));font-family:var(--body);font-size:calc(.9rem * var(--fs));font-weight:700;color:var(--muted)}.tile.done{opacity:.38;transform:translateY(3px);box-shadow:0 1px 0 var(--key-side)}.tile.cur{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 4px 0 var(--accent-deep),0 0 0 5px var(--accent-soft);animation:lift .25s ease-out}.pane.err .tile.cur{background:var(--bad);border-color:var(--bad);box-shadow:0 4px 0 color-mix(in srgb,var(--bad) 60%,black),0 0 0 5px var(--bad-soft)}@keyframes lift{0%{transform:translateY(4px)}to{transform:none}}.hint{font-size:.88rem;color:var(--muted);min-height:1.4em}.banner,.hint{text-align:center}.banner{background:var(--good-soft);color:var(--good);border-radius:12px;padding:10px 14px;font-weight:700}.overlay{position:fixed;inset:0;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:grid;place-items:center;z-index:50;padding:16px}.overlay .card{max-width:440px;width:100%}.pane.intro{font-family:var(--body);font-size:1rem;line-height:1.5;white-space:normal;display:flex;gap:30px;align-items:center}.cap.huge{font-family:var(--display);font-weight:900;font-size:3rem;min-width:2em;padding:10px 24px;text-align:center;display:inline-block;flex:none;border-radius:18px;background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 7px 0 var(--accent-deep);animation:pop .35s cubic-bezier(.3,.7,.3,1.4)}@keyframes pop{0%{transform:scale(.7) rotate(-8deg);opacity:0}to{transform:none;opacity:1}}.intro-text{display:flex;flex-direction:column;gap:9px;min-width:0}.intro-text h3{font-size:1.4rem}.intro-dots{display:flex;gap:7px;flex-wrap:wrap}.intro-dots i{width:11px;height:11px;border-radius:4px;background:var(--line)}.intro-dots i.done{background:var(--good)}.intro-dots i.cur{background:var(--accent)}.kbwrap{gap:8px;align-items:center}.kb,.kbwrap{display:flex;flex-direction:column}.kb{width:100%;max-width:840px;gap:6px;padding:14px 14px 16px;background:var(--surface-2);border:1px solid var(--line);border-radius:20px;-webkit-user-select:none;-moz-user-select:none;user-select:none;box-shadow:var(--shadow)}.kr{gap:6px}.k,.kr{display:flex}.k{min-width:0;height:46px;border-radius:10px;background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);color:var(--key-ink);font-family:var(--mono);font-size:.92rem;flex-direction:column;justify-content:center;align-items:center;line-height:1.05;position:relative;transition:transform .1s,box-shadow .1s,background .15s}.k .up{font-size:.66rem;opacity:.65}.k .lo{font-size:.86rem}.k.sp{font-family:var(--body);font-size:.7rem;color:var(--muted);overflow:hidden;white-space:nowrap}.kb.fc .k.f0{background:var(--f0)}.kb.fc .k.f1{background:var(--f1)}.kb.fc .k.f2{background:var(--f2)}.kb.fc .k.f3{background:var(--f3)}.kb.fc .k.f4{background:var(--f4)}.kb.fc .k.f5{background:var(--f5)}.kb.fc .k.f6{background:var(--f6)}.kb.fc .k.f7{background:var(--f7)}.kb.fc .k.f8{background:var(--f8)}.k.bump:after{content:"";position:absolute;bottom:6px;width:12px;height:2.5px;border-radius:2px;background:currentColor;opacity:.6}.kb .k.next,.kb.fc .k.next{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 1px 0 var(--accent-deep),0 0 0 4px var(--accent-soft);transform:translateY(2px)}.kb .k.next2,.kb.fc .k.next2{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);box-shadow:0 1px 0 var(--accent);transform:translateY(2px)}.kb .k.h-ok{background:var(--good-soft)}.kb .k.h-dif{background:var(--warn-soft);color:var(--warn);font-weight:700}.kb .k.h-prob{background:var(--bad-soft);color:var(--bad);font-weight:700}.kb .k.h-none{opacity:.45}.numpad{width:auto;display:grid;grid-template-columns:repeat(4,58px);grid-auto-rows:52px;grid-gap:7px;gap:7px;padding:14px}.numpad .k{height:auto}.finger-note{font-size:.9rem;color:var(--muted);min-width:0}.finger-note b{color:var(--ink)}.kbbar{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:840px;min-height:36px}.btn.small{padding:6px 12px;font-size:.85rem;border-radius:10px}.btn.small[aria-pressed=false]{color:var(--muted)}.kbstage{position:relative;width:100%;max-width:840px}.kbstage.np{width:auto}.kbstage .kb{max-width:none}.kbstage.withhands{padding-bottom:clamp(40px,7vw,70px)}.handguide.over{position:absolute;inset:0;pointer-events:none;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,#000 72%,transparent);mask-image:linear-gradient(180deg,#000 72%,transparent)}.handguide .skin-top{stop-color:var(--skin-top)}.handguide .skin-bottom{stop-color:var(--skin-bottom)}.handguide .hand{opacity:.6;filter:drop-shadow(0 0 .8px var(--skin-edge)) drop-shadow(0 0 .8px var(--skin-edge))}.handguide .tint{fill:var(--accent);opacity:0;transition:opacity .15s}.handguide .finger.on .tint{opacity:.55}.handguide .finger.on2 .tint{opacity:.28}.handguide .crease{fill:none;stroke:var(--crease);stroke-width:1.6;stroke-linecap:round}.handguide .nail{fill:var(--nail);opacity:.92}.handguide .dot{fill:var(--accent);stroke:#fff;transform-box:fill-box;transform-origin:center;animation:pulse 1.1s ease-in-out infinite}.handguide .dot2{fill:var(--surface);stroke:var(--accent)}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.18)}}.result-top{display:grid;grid-template-columns:auto minmax(0,1fr);grid-gap:30px;gap:30px;align-items:center}.score{font-family:var(--display);font-weight:900;font-size:4.6rem;line-height:.95;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--accent);letter-spacing:-.03em}.score small{font-size:1rem;color:var(--muted);font-family:var(--body);font-weight:700;margin-left:6px;letter-spacing:0}.cert{position:relative;text-align:center;display:flex;flex-direction:column;gap:10px;padding:34px 28px;border-radius:20px;background:var(--surface);border:2px solid var(--ink);outline:1px dashed var(--line);outline-offset:-12px;box-shadow:var(--shadow)}.cert h3{font-size:1.8rem;font-weight:900}.cert .big{font-family:var(--display);font-size:2.8rem;font-weight:900;color:var(--accent)}div.field,label.field{display:flex;flex-direction:column;gap:7px;font-weight:700;font-size:.9rem}label.field small{font-weight:400;color:var(--muted)}input[type=number],input[type=text],select,textarea{background:var(--surface);border:1px solid var(--line);border-radius:11px;padding:10px 12px;width:100%;min-width:0}input[type=text]:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}textarea{min-height:120px;resize:vertical;font-family:var(--mono);font-size:.85rem}.seg{display:inline-flex;gap:7px;flex-wrap:wrap}.seg button{cursor:pointer;padding:8px 13px;border-radius:10px;font-weight:700;color:var(--muted);background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);transition:transform .09s}.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 1px 0 var(--accent-deep);transform:translateY(2px)}.choice{display:flex;flex-direction:column;gap:9px}.choice label{display:flex;gap:11px;align-items:flex-start;padding:12px 14px;border:1px solid var(--line);border-radius:14px;cursor:pointer;background:var(--surface);transition:border-color .15s,background .15s}.choice label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}.choice input{margin-top:4px;accent-color:var(--accent)}label.toggle{cursor:pointer}.toggle{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:11px 0;border-top:1px solid var(--line)}.toggle:first-child{border-top:none}.toggle>div{display:flex;flex-direction:column;min-width:0}.toggle small{color:var(--muted)}.toggle input[type=checkbox]{width:20px;height:20px;accent-color:var(--accent);flex:none}details>summary{list-style:none}details>summary::-webkit-details-marker{display:none}.passages{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));grid-gap:11px;gap:11px}.passage{all:unset;cursor:pointer;display:flex;flex-direction:column;gap:4px;padding:13px 14px;border-radius:14px;background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);transition:transform .09s}.passage:hover{transform:translateY(-1px)}.passage[aria-pressed=true]{background:var(--accent-soft);border-color:var(--accent);box-shadow:0 1px 0 var(--accent);transform:translateY(2px)}.passage:focus-visible{outline:3px solid var(--accent)}.passage small{color:var(--muted);font-size:.8rem}.tbl-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}td,th{text-align:left;padding:9px 10px;border-bottom:1px solid var(--line);white-space:nowrap}th{font-size:.7rem;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}td.r,th.r{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chart text{fill:var(--muted);font-size:11px;font-family:var(--body)}.chart .grid line{stroke:var(--line)}.arena{position:relative;height:min(58vh,470px);border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow);background:radial-gradient(var(--bg-dot) 1.1px,transparent 1.4px) 0 0/22px 22px,linear-gradient(var(--accent-soft),var(--surface))}.bubble{position:absolute;left:0;top:0;width:56px;height:56px;border-radius:50%;display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:1.3rem;color:var(--ink);background:radial-gradient(circle at 34% 28%,var(--surface),var(--good-soft));border:2px solid var(--good)}.bubble.fast{border-color:var(--bad);background:radial-gradient(circle at 34% 28%,var(--surface),var(--bad-soft))}.bubble.pop{opacity:0;transition:opacity .2s}.drop{position:absolute;left:0;top:0;font-family:var(--mono);font-size:1.05rem;padding:5px 11px;border-radius:10px;background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side);white-space:nowrap}.drop.lock{border-color:var(--accent);box-shadow:0 3px 0 var(--accent),0 0 0 3px var(--accent-soft)}.drop b{color:var(--accent)}.abc{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;font-family:var(--mono);font-size:1.35rem}.abc span{width:46px;height:50px;border-radius:11px;display:grid;place-items:center;background:var(--key);border:1px solid var(--key-side);box-shadow:0 3px 0 var(--key-side)}.abc span.done{background:var(--good-soft);color:var(--good);transform:translateY(2px);box-shadow:0 1px 0 var(--key-side)}.abc span.cur{background:var(--accent);color:var(--accent-ink);border-color:var(--accent-deep);box-shadow:0 3px 0 var(--accent-deep)}.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:11px 18px;border-radius:12px;font-weight:700;z-index:60;max-width:calc(100% - 32px);box-shadow:var(--shadow)}@media (max-width:900px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3,.hero{grid-template-columns:minmax(0,1fr)}}@media (max-width:760px){.app{grid-template-columns:minmax(0,1fr)}.rail{position:-webkit-sticky;position:sticky;top:env(safe-area-inset-top,0);height:auto;flex-direction:row;align-items:center;gap:12px;z-index:5;padding-block:10px;padding-right:96px;border-right:none;border-bottom:1px solid var(--line);overflow:hidden}body:before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0);z-index:10;background:var(--surface)}.nav{flex-direction:row;gap:7px;flex:1 1;min-width:0;overflow-x:auto;padding-block:2px 6px;scrollbar-width:none;mask-image:linear-gradient(90deg,#000 82%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 82%,transparent)}.nav::-webkit-scrollbar{display:none}.nav a{flex:none;padding:7px 11px;white-space:nowrap}.brand-name,.rail-foot{display:none}.brand-key{width:34px;height:34px;font-size:1.1rem}.corner{top:calc(env(safe-area-inset-top,0px) + 12px)}.ts-label{display:none}.theme-switch{padding:4px}main{padding-block:26px 48px}.app.practicing main{padding-top:74px}h1{font-size:1.85rem}.g2,.result-top{grid-template-columns:minmax(0,1fr)}.continue>:not(.hero-keys){max-width:none}.hero-keys{position:static;transform:none;display:flex;gap:10px;order:-1}.hk{width:48px;height:48px;font-size:1.4rem;border-radius:12px}.k{height:34px;font-size:.72rem;border-radius:6px}.k .up{display:none}.kb{padding:7px;border-radius:14px}.kb,.kr{gap:3px}.pane{padding:16px;font-size:calc(1.1rem * var(--fs))}.pane.tiles{gap:14px 18px;padding:18px 12px}.tile{min-width:calc(2.5rem * var(--fs));height:calc(2.5rem * var(--fs));font-size:calc(1.15rem * var(--fs));border-radius:10px}.tile.space{min-width:calc(4rem * var(--fs))}.pane.intro{flex-direction:column;align-items:flex-start;gap:14px}.score{font-size:3.3rem}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation:none!important;transition:none!important}}@media print{body{background:#fff}body *{visibility:hidden}.cert,.cert *{visibility:visible}.cert{position:absolute;inset:40px;border-color:#000;color:#000;background:#fff;box-shadow:none}}