@font-face{font-family:Archivo;font-style:italic;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/69bc46473dfaa9fa-s.woff2) format("woff2");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-family:Archivo;font-style:italic;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/bf12ccbafdbe00b7-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-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Archivo;font-style:italic;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/_next/static/media/da522a9b642f99ae-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:Archivo Fallback;src:local("Arial");ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;size-adjust:98.70%}.__className_94524d{font-family:Archivo,Archivo Fallback;font-style:italic}.__variable_94524d{--font-display:"Archivo","Archivo Fallback"}:root{--bg:#ffffff;--surface:#f5f5f5;--surface2:#e9e9e9;--line:#e5e5e5;--ink:#111111;--muted:#707072;--accent:#3b7dff;--accent-ink:#ffffff;--accent-soft:#e7efff;--bad:#d6272f;--bad-soft:#fbe4e5;--display:var(--font-display),"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html{color-scheme:light}body{margin:0;background:var(--bg);color:var(--ink);font-family:Helvetica Neue,Helvetica,Arial,system-ui,sans-serif;font-size:15px;line-height:1.45;-webkit-font-smoothing:antialiased;padding-inline:20px;padding-block:0 96px}h1,h2,h3{font-weight:700;letter-spacing:-.01em;text-wrap:balance;margin:0}h2{font-size:1.15rem}a{color:inherit}.display{font-family:var(--display);font-style:italic;font-weight:900;font-stretch:75%;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.app{max-width:480px;margin:0 auto}header.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-block:18px 12px}.brand{font-weight:700;font-size:1.05rem;letter-spacing:-.01em}.chip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:6px 12px;font-size:.8rem;font-weight:500;color:var(--ink);text-decoration:none}.label,.muted{color:var(--muted)}.label{font-size:.78rem;font-weight:400}.note{font-size:.85rem;color:var(--muted)}.note.center{text-align:center;margin:12px 0 0}.note.center:empty{display:none}.error{font-size:.85rem;color:var(--bad)}.btn,button{font:inherit;cursor:pointer;border:none;border-radius:999px;padding:12px 18px;font-weight:500;color:var(--ink);background:var(--surface);font-size:.9rem;text-decoration:none;display:inline-block;text-align:center}.btn.primary,button.primary{background:var(--ink);color:var(--bg)}.btn.wide,button.wide{width:100%;padding:17px;font-size:1rem}button.quiet{background:none;color:var(--muted)}button.danger{background:none;color:var(--bad)}button:disabled{opacity:.35;cursor:default}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:3px}input,select,textarea{font:inherit;color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:12px 14px;width:100%}textarea{min-height:150px;resize:vertical;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem}label{font-size:.8rem;color:var(--muted);display:block}label>input{margin-top:6px}form.row{display:flex;gap:8px;align-items:center}form.row input{flex:1 1}.stack{display:flex;flex-direction:column;gap:28px}.hero{padding:8px 0 0}.herobox{position:relative;height:216px}.herocontent{position:absolute;inset:0;z-index:1;padding:24px 0;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.herocontent .label{line-height:16px}.big{font-size:136px;line-height:.8;letter-spacing:-.04em}.unit{line-height:20px}.pill{display:inline-block;font-size:.78rem;font-weight:500;line-height:16px;padding:5px 12px;border-radius:999px;border:1.5px solid var(--ink);color:var(--ink);background:var(--bg)}.pill.met{border-color:var(--accent);color:var(--accent)}.heat{--c:20px;--g:4px;position:absolute;inset:0;display:grid;grid-auto-flow:column;grid-template-rows:repeat(var(--rows,7),var(--c));grid-auto-columns:var(--c);grid-gap:var(--g);gap:var(--g);justify-content:end;align-content:center;-webkit-mask-image:linear-gradient(100deg,transparent,transparent 26%,rgba(0,0,0,.3) 48%,#000 74%);mask-image:linear-gradient(100deg,transparent,transparent 26%,rgba(0,0,0,.3) 48%,#000 74%)}.heat i{display:block;border-radius:4px;background:var(--surface2)}.heat i.f{background:var(--surface)}.heat i.l1{opacity:.3}.heat i.l1,.heat i.l2{background:var(--accent)}.heat i.l2{opacity:.6}.heat i.l3{background:var(--accent)}.heat i.t{box-shadow:inset 0 0 0 1.5px var(--ink)}.heat i.t.l3{box-shadow:none}.statrow{display:grid;grid-template-columns:1fr auto 1fr;grid-gap:16px;gap:16px;margin-top:32px}.statrow.road{margin-top:20px}.statrow .s:nth-child(2){text-align:center}.statrow .s:nth-child(3){text-align:right}.statrow .s b{display:block;font-size:1.75rem;line-height:1}.statrow .s span{display:block;font-size:.78rem;color:var(--muted);margin-top:8px;line-height:16px}.statrow .s span.on{color:var(--accent)}.statrow .s span.off{color:var(--bad)}.hero .wide{margin-top:32px}.block{margin-top:48px}.blockhead{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:16px}.goalbar{height:4px;background:var(--surface2);border-radius:999px;overflow:hidden}.goalbar i{display:block;height:100%;background:var(--accent);border-radius:999px}.roadbar{position:relative;padding-bottom:8px;margin-top:4px}.roadbar .tick{position:absolute;top:6px;width:1px;height:6px;background:var(--line)}.board{display:flex;flex-direction:column}.board .r{display:grid;grid-template-columns:24px 1fr auto;grid-gap:12px;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.board .r:first-child{border-top:none;padding-top:0}.board .rank{font-size:1.1rem;color:var(--muted)}.board .r1 .rank{color:var(--accent)}.board .r2 .rank{color:color-mix(in srgb,var(--accent) 60%,var(--bg))}.board .r3 .rank{color:color-mix(in srgb,var(--accent) 35%,var(--bg))}.board .name{font-weight:500}.board .name small{display:block;font-weight:400;color:var(--muted);font-size:.78rem;line-height:16px}.board .val{font-size:1.4rem}.qcard{min-height:230px;display:flex;flex-direction:column;justify-content:center;gap:10px;text-align:center;position:relative;background:var(--surface);border-radius:20px;padding:28px 20px}.qcard .prompt{font-size:2.6rem;line-height:1;text-wrap:balance}.qcard .hint{font-size:.95rem}.qcard .hint,.tag{color:var(--muted)}.tag{position:absolute;top:14px;left:18px;font-size:.72rem;font-weight:500}.tag.new{color:var(--accent)}.opts{display:grid;grid-gap:10px;gap:10px}.opts button{text-align:left;background:var(--bg);border:1px solid var(--line);padding:15px 18px;font-weight:400;border-radius:16px;font-size:1rem}.opts button.right{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}.opts button.wrong{border-color:var(--bad);background:var(--bad-soft)}.reveal{background:var(--surface);border-radius:16px;padding:16px;text-align:left}.reveal .pt{font-size:1.6rem;line-height:1}.progress{display:flex;gap:3px}.progress i{flex:1 1;height:3px;border-radius:2px;background:var(--surface2)}.progress i.done{background:var(--accent)}.progress i.miss{background:var(--bad)}.session{gap:12px;padding-top:16px}.session,.wordlist{display:flex;flex-direction:column}.wordlist .w{display:grid;grid-template-columns:1fr 1fr auto;grid-gap:10px;gap:10px;align-items:center;padding:12px 0;border-top:1px solid var(--line)}.wordlist .w:first-child{border-top:none}.wordlist .pt{font-weight:500}.box,.wordlist .en{color:var(--muted)}.box{font-size:.68rem;font-weight:500;padding:3px 9px;border-radius:999px;background:var(--surface);white-space:nowrap}.box.b1,.box.b2{background:var(--surface2);color:var(--ink)}.box.b3,.box.b4,.box.b5{background:var(--accent-soft);color:var(--accent)}.filters{display:flex;gap:4px;flex-wrap:wrap;background:var(--surface);border-radius:999px;padding:4px}.filters button{padding:7px 12px;font-size:.78rem;background:transparent;color:var(--muted);font-weight:500}.filters button.on{background:var(--accent);color:var(--accent-ink)}details summary{cursor:pointer;font-weight:500}.lesson{background:var(--surface);border-radius:16px;padding:14px 16px}.duel{display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px}.duel .card{padding:18px;background:var(--surface);border-radius:20px}.duel .name{font-size:1.5rem;line-height:1}.duel .lead{font-size:.7rem;font-weight:500;color:var(--accent);margin:4px 0 8px;min-height:1em}.stat{display:flex;justify-content:space-between;align-items:baseline;padding:7px 0;border-top:1px solid var(--line);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:.82rem;color:var(--muted)}.stat:first-of-type{border-top:none}.stat b{font-size:1.3rem;line-height:1;color:var(--ink)}svg text{fill:var(--muted);font-family:Helvetica Neue,Arial,sans-serif;font-size:10px}.legend{display:flex;gap:14px;font-size:.75rem;color:var(--muted)}.legend i{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px;vertical-align:middle}nav.tabs{position:fixed;left:0;right:0;bottom:0;background:var(--bg);border-top:1px solid var(--line);padding:6px 8px calc(6px + env(safe-area-inset-bottom))}nav.tabs .in{max-width:480px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:4px;gap:4px}.tab{background:none;border:none;border-radius:12px;padding:8px 4px;font-size:.68rem;font-weight:500;color:var(--muted);display:flex;flex-direction:column;align-items:center;gap:4px;text-decoration:none}.tab svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.tab.active{color:var(--ink)}.center-page{min-height:80vh;display:flex;flex-direction:column;justify-content:center;gap:16px;max-width:360px;margin:0 auto}.center-page h1{font-size:1.6rem}@media (prefers-reduced-motion:reduce){*{transition:none!important}}@media (max-width:380px){.duel{grid-template-columns:1fr}.big{font-size:112px}}.intro{padding-top:8px}.introhead{font-size:3.6rem;line-height:.9;letter-spacing:-.04em;margin:8px 0 16px}.introtext{font-size:1.05rem;line-height:1.5;margin:0;max-width:34ch}.steps{display:flex;flex-direction:column;gap:24px;margin-top:32px}.step{display:grid;grid-template-columns:28px 1fr;grid-gap:12px;gap:12px;align-items:start}.step .rank{font-size:1.5rem;line-height:1.2;color:var(--accent)}.step b{display:block;font-size:1.05rem}.step .note{margin:4px 0 0}.urlrow{display:flex;align-items:center;gap:8px;margin-top:10px;background:var(--surface);border-radius:12px;padding:8px 8px 8px 14px}.urlrow code{flex:1 1;font-size:.82rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}button.copy{padding:6px 12px;font-size:.78rem;background:var(--ink);color:var(--bg);border-radius:999px}.prompts{display:flex;gap:10px;margin:12px -20px 0;padding:0 20px 4px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none}.prompts::-webkit-scrollbar{display:none}.prompt{flex:0 0 min(300px,82%);scroll-snap-align:start;margin:0;background:var(--surface);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}.prompt blockquote{margin:0;font-size:.95rem;line-height:1.45;flex:1 1}.prompt .copy{align-self:flex-start}details.manual{margin-top:8px}details.manual summary{color:var(--muted);font-weight:400}details.manual[open] summary{margin-bottom:8px}.banner{position:relative;display:block;overflow:hidden;border-radius:24px;color:#fff;text-decoration:none;background:linear-gradient(160deg,#3b7dff,#3b7dff 40%,#5a45f0)}.bannerbody{position:relative;z-index:1;padding:24px 20px 20px}.banner .label{color:rgba(255,255,255,.7)}.bannerhead{font-size:3.2rem;line-height:.88;letter-spacing:-.04em;margin:10px 0 14px}.bannertext{margin:0;font-size:.95rem;line-height:1.45;color:rgba(255,255,255,.85);max-width:32ch}.bannercta{background:#fff;color:var(--ink)}.float{position:relative;height:96px;margin:4px 0 16px;pointer-events:none;-webkit-mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(90deg,transparent,#000 10%,#000 90%,transparent)}.floatrow{position:absolute;left:0;display:flex;gap:8px;width:max-content}.floatrow.a{top:8px;animation:driftL 48s linear infinite}.floatrow.b{top:52px;animation:driftR 62s linear infinite}.floatcard{flex:none;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.16);color:#fff;font-size:.85rem;font-weight:600;white-space:nowrap;letter-spacing:-.01em}.floatrow.b .floatcard{background:rgba(0,0,0,.16);color:rgba(255,255,255,.85)}@keyframes driftL{0%{transform:translateX(0)}to{transform:translateX(-50%)}}@keyframes driftR{0%{transform:translateX(-50%)}to{transform:translateX(0)}}@media (prefers-reduced-motion:reduce){.floatrow{animation:none}}.banner.strip{border-radius:18px}.banner.strip .bannerbody{padding:18px 18px 0}.striphead{display:block;font-size:1.5rem;line-height:1;letter-spacing:-.02em;margin-top:6px;max-width:18ch}.float.one{height:32px;margin:12px 0 14px}.float.one .floatrow.a{top:0;animation-duration:70s}.float.one .floatcard{padding:6px 11px;font-size:.74rem;background:rgba(255,255,255,.14);color:rgba(255,255,255,.9)}.promptlist{display:flex;flex-direction:column;gap:10px}.promptlist .prompt{flex:none}.auth{min-height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;max-width:360px;margin:0 auto;padding:48px 0}.auth:before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(110% 48% at 50% 0,var(--accent-soft) 0,rgba(231,239,255,.55) 40%,rgba(255,255,255,0) 80%),radial-gradient(110% 40% at 50% 100%,rgba(231,239,255,.85) 0,rgba(231,239,255,.4) 45%,rgba(255,255,255,0) 80%),var(--bg)}.auth .label{line-height:16px}.authhead{font-size:2.75rem;line-height:48px;letter-spacing:-.02em;margin:4px 0 8px;padding-right:.1em}.authsub{margin:0 0 32px;font-size:1rem;line-height:24px}.authsub b{color:var(--ink);font-weight:600}.authform{gap:16px}.field{display:block;line-height:16px}.field input{margin-top:8px;height:56px;padding:0 16px;line-height:24px;border-radius:12px;border:1px solid var(--line);transition:border-color .15s,box-shadow .15s}.field input:focus-visible{outline:none;border-color:var(--ink);box-shadow:0 0 0 1px var(--ink)}.field.invalid input{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.field.invalid input:focus-visible{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}.fielderr{display:block;margin-top:8px;font-size:.8125rem;line-height:16px;color:var(--bad)}.fielderr.center{text-align:center;margin:8px 0 0}.auth button.wide{height:56px;padding:0 16px;line-height:24px}.codein{font-size:2.5rem;letter-spacing:.18em;text-align:center;text-indent:.18em;padding-top:2px}.codein::placeholder{color:var(--surface2);letter-spacing:.18em}.authrow{display:flex;justify-content:center;gap:24px;margin-top:24px}.textbtn{background:none;padding:4px 0;line-height:16px;font-size:.875rem;font-weight:600;color:var(--ink);border-radius:0;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}.textbtn:disabled{opacity:1;color:var(--muted);text-decoration:none;cursor:default}.magnets{position:fixed;left:0;right:0;height:24vh;z-index:-1;pointer-events:none;overflow:hidden}.magnets.top{top:0;-webkit-mask-image:linear-gradient(180deg,#000 50%,transparent);mask-image:linear-gradient(180deg,#000 50%,transparent)}.magnets.bottom{bottom:0;-webkit-mask-image:linear-gradient(0deg,#000 50%,transparent);mask-image:linear-gradient(0deg,#000 50%,transparent)}.magnet{position:absolute;height:24px;padding:0 8px;line-height:24px;background:rgba(255,255,255,.9);color:var(--accent);font-size:.8125rem;font-weight:500;letter-spacing:-.01em;white-space:nowrap;border-radius:4px;box-shadow:0 1px 2px rgba(59,125,255,.18),0 0 0 1px rgba(59,125,255,.08)}@media (min-width:600px){.magnets{left:50%;width:560px;transform:translateX(-50%);right:auto}}