:root{--ground:#EAEEE9;--panel:#FBFCFA;--ink:#14211B;--muted:#5E6E63;--pine:#1E6A4A;--pine-deep:#0F3A2B;--moss:#6FB58C;--amber:#EBA92F;--lingon:#C24B3F;--stone:#C9D2CA;--line:#D7DED8;--gold-ink:#7A5A12;--ok:#2E9E6B;--no:#C24B3F;--r:18px;--r-sm:12px;--font:ui-rounded,"SF Pro Rounded","Nunito","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;--sh:0 1px 2px rgba(15,58,43,.06),0 8px 24px rgba(15,58,43,.10)}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;background:radial-gradient(1200px 600px at 50% -10%,rgba(22,73,53,.15) 0,transparent 60%),repeating-linear-gradient(135deg,#0d3325 0 22px,#0f3a2b 22px 44px);min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:20px 14px}button{font-family:inherit}.frame{width:100%;max-width:430px;height:min(880px,calc(100dvh - 40px));background:var(--ground);border-radius:34px;position:relative;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.45),inset 0 0 0 1px rgba(255,255,255,.04);display:flex;flex-direction:column}@media (max-width:480px){body{padding:0}.frame{max-width:none;height:100dvh;border-radius:0}}.screen{position:absolute;inset:0;display:flex;flex-direction:column;animation:fadein .34s ease}@keyframes fadein{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.screen{animation:none}*{scroll-behavior:auto!important}}.hud{gap:8px;padding:14px 16px;background:var(--panel);border-bottom:1px solid var(--line);z-index:5}.chip,.hud{display:flex;align-items:center}.chip{gap:7px;padding:7px 11px;border-radius:999px;background:var(--ground);font-weight:800;font-size:14px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip small{font-weight:700;color:var(--muted);font-size:11px;letter-spacing:.04em;text-transform:uppercase}.chip.flame{color:var(--lingon)}.chip.gem{color:var(--pine)}.lvl{margin-left:auto;display:flex;align-items:center;gap:9px}.ring{width:44px;height:44px;position:relative}.ring svg{transform:rotate(-90deg)}.ring b{position:absolute;inset:0;display:grid;place-items:center;font-size:13px;font-weight:900}.maphead{padding:16px 18px 6px;background:var(--panel);border-bottom:1px solid var(--line)}.maphead h1{margin:0;font-size:19px;letter-spacing:-.01em}.maphead p{margin:3px 0 0;color:var(--muted);font-size:13px;font-weight:600}.trail{flex:1 1;overflow-y:auto;position:relative;padding:8px 0 130px}.trailInner{position:relative;margin:0 auto}.band-label{position:absolute;left:14px;font-size:11px;font-weight:900;letter-spacing:.14em;text-transform:uppercase;color:#123B2C;opacity:.55;pointer-events:none}.node{position:absolute;width:64px;height:64px;transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer;padding:0}.node .disc{width:56px;height:56px;margin:0 auto;border-radius:50%;display:grid;place-items:center;font-weight:900;font-size:16px;color:#fff;background:var(--stone);box-shadow:var(--sh);position:relative;transition:transform .15s}.node .cap{display:block;margin-top:4px;font-size:10.5px;font-weight:800;text-align:center;color:var(--muted);width:96px;margin-left:-16px;line-height:1.15}.node.done .disc{background:linear-gradient(160deg,#2E9E6B,#1E6A4A)}.node.here .disc{background:linear-gradient(160deg,#EBA92F,#d68f18);transform:scale(1.06)}.node.here .disc:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:3px solid var(--amber);opacity:.45;animation:pulse 2s ease-out infinite}.node.locked{cursor:not-allowed}.node.locked .disc{background:#CDD5CE;color:#8AA}.node.locked .cap{opacity:.6}.node:not(.locked):active .disc{transform:scale(.94)}@keyframes pulse{0%{transform:scale(1);opacity:.5}to{transform:scale(1.5);opacity:0}}@media (prefers-reduced-motion:reduce){.node.here .disc:after{animation:none}}.avatar{width:34px;height:34px;transform:translate(-50%,-50%);z-index:4;transition:top .8s cubic-bezier(.5,-.2,.3,1.3),left .8s ease;pointer-events:none;filter:drop-shadow(0 4px 6px rgba(0,0,0,.35))}.avatar,.summit{position:absolute}.summit{left:50%;transform:translateX(-50%);text-align:center;top:8px}.summit .flag{font-size:30px}.summit b{display:block;font-size:12px;font-weight:900;letter-spacing:.12em;color:#123B2C;text-transform:uppercase}.dock{position:absolute;left:0;right:0;bottom:0;padding:14px 16px 18px;background:linear-gradient(0deg,var(--ground) 68%,transparent);z-index:6}.goalbar{display:flex;align-items:center;gap:10px;margin-bottom:10px;font-size:12px;font-weight:800;color:var(--muted)}.goaltrack{flex:1 1;height:9px;border-radius:999px;background:#DfE5E0;overflow:hidden}.goalfill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--moss),var(--amber));transition:width .6s ease}.btn{display:block;width:100%;border:0;cursor:pointer;font-weight:900;font-size:16.5px;color:#fff;padding:16px;border-radius:var(--r);background:linear-gradient(160deg,#25764f,#1a5b3d);box-shadow:0 6px 0 #123c29,var(--sh);transition:transform .08s,box-shadow .08s;letter-spacing:.01em}.btn:active{transform:translateY(4px);box-shadow:0 2px 0 #123c29}.btn.amber{background:linear-gradient(160deg,#efb043,#d68f18);box-shadow:0 6px 0 #9c6a12,var(--sh);color:#3a2a06}.center{flex:1 1;display:flex;flex-direction:column;justify-content:center;padding:30px 26px;gap:16px;text-align:center}.kicker{font-size:11.5px;font-weight:900;letter-spacing:.2em;text-transform:uppercase;color:var(--pine)}.display{font-size:34px;line-height:1.02;letter-spacing:-.02em;margin:0;text-wrap:balance;font-weight:900}.lede{color:var(--muted);font-weight:600;font-size:15px;line-height:1.5;max-width:34ch;margin:0 auto}.peak{font-size:64px;line-height:1;margin:2px}.mini{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-top:4px}.tag{font-size:11.5px;font-weight:800;color:var(--pine-deep);background:#DCE8E0;padding:6px 11px;border-radius:999px}.qwrap{flex:1 1;display:flex;flex-direction:column;padding:18px;min-height:0}.qtop{display:flex;align-items:center;gap:12px;margin-bottom:6px}.pbar{flex:1 1;height:10px;border-radius:999px;background:#DfE5E0;overflow:hidden}.pfill{height:100%;background:linear-gradient(90deg,var(--pine),var(--moss));transition:width .4s}.combo{font-weight:900;font-size:14px;color:var(--amber);min-width:74px;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;opacity:0;transition:opacity .2s}.combo.on{opacity:1}.prompt{flex:1 1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;text-align:center;min-height:0}.ask{font-size:12px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.word{font-size:44px;font-weight:900;letter-spacing:-.02em;text-wrap:balance}.word .pos{display:block;font-size:12px;font-weight:800;color:var(--pine);letter-spacing:.1em;text-transform:uppercase;margin-top:6px}.rank{font-size:12px;color:var(--muted);font-weight:700}.speakbtn{border:0;background:#DCE8E0;color:var(--pine);width:42px;height:42px;border-radius:50%;font-size:18px;cursor:pointer;vertical-align:middle;margin-left:12px;box-shadow:var(--sh);transition:transform .1s}.speakbtn:active{transform:scale(.88)}.flipcard{border:0;background:transparent;cursor:pointer;perspective:900px;width:min(310px,82%);height:240px;padding:0}.flipinner{position:relative;display:block;width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,.1,.2,1.1)}.flipcard.flipped .flipinner{transform:rotateY(180deg)}@media (prefers-reduced-motion:reduce){.flipinner{transition:none}}.face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:20px;background:var(--panel);box-shadow:var(--sh);padding:14px}.face .word{font-size:34px}.face.back{transform:rotateY(180deg);background:linear-gradient(160deg,#F2F7F1,#E4F0E7)}.exline{display:flex;flex-direction:column;gap:3px;margin-top:6px;padding:0 10px}.exline i{font-size:15px;font-weight:800;font-style:italic;color:var(--pine-deep);line-height:1.3}.exline small{font-size:12px;font-weight:700;color:var(--muted)}.newwords{width:100%;max-height:168px;overflow-y:auto;background:var(--panel);border-radius:var(--r-sm);box-shadow:var(--sh);padding:12px 14px;margin-top:10px;text-align:left}.newwords ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.newwords li{display:flex;gap:9px;align-items:flex-start;font-size:13px;line-height:1.35}.newwords .nw-play{border:0;background:#DCE8E0;color:var(--pine);min-width:28px;height:28px;border-radius:50%;font-size:12px;cursor:pointer}.newwords .nw-play:disabled{opacity:.35;cursor:default}.newwords .nw-body{display:flex;flex-direction:column;gap:1px;font-weight:700}.newwords .nw-body i{font-weight:700;font-style:italic;color:var(--pine-deep);font-size:12.5px}.newwords .nw-body i small{color:var(--muted);font-style:normal}.rategrid{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px;margin-top:8px}.rate{border:0;border-radius:var(--r-sm);padding:13px 4px;font-family:inherit;font-weight:900;font-size:14px;color:#fff;cursor:pointer;transition:transform .08s;display:flex;flex-direction:column;align-items:center;gap:2px}.rate small{font-weight:700;font-size:10px;opacity:.85}.rate:active{transform:scale(.95)}.rate.again{background:var(--lingon)}.rate.hard{background:#C98A2B}.rate.good{background:var(--ok)}.rate.easy{background:var(--pine)}.listenbig{border:0;cursor:pointer;width:110px;height:110px;border-radius:50%;font-size:44px;background:linear-gradient(160deg,#25764f,#1a5b3d);color:#fff;box-shadow:0 6px 0 #123c29,var(--sh);transition:transform .1s}.listenbig:active{transform:scale(.93)}.zone{left:0;right:0}.deco,.zone{position:absolute;pointer-events:none}.deco{transform:translate(-50%,-50%);font-size:20px;opacity:.55;filter:saturate(.9)}.wcount{display:block;font-size:9.5px;font-weight:900;color:var(--pine);margin-top:1px}.focusline{text-align:center;margin:4px 0 0;font-size:11.5px}.bob{display:inline-block;animation:bob 2.6s ease-in-out infinite}@keyframes bob{0%,to{transform:translateY(0)}50%{transform:translateY(-7px)}}@media (prefers-reduced-motion:reduce){.bob{animation:none}}.btn.ghost{background:var(--panel);color:var(--pine);box-shadow:0 6px 0 #d3dbd4,var(--sh)}.dockrow{display:flex;gap:8px;margin-top:8px}.dockrow .btn{flex:1 1;font-size:14.5px;padding:13px}.lst-title{font-size:24px;font-weight:900;letter-spacing:-.01em;text-wrap:balance;text-align:center}.lst-dots{display:flex;gap:5px;justify-content:center;flex-wrap:wrap;max-width:260px}.lst-dot{width:9px;height:9px;border-radius:50%;background:#D7DED8;transition:background .2s,transform .2s}.lst-dot.on{background:var(--amber);transform:scale(1.35)}.lst-dot.past{background:var(--moss)}.lst-q{font-size:19px;font-weight:900;line-height:1.35;text-align:center;text-wrap:balance;padding:0 6px}.listenbig:disabled{opacity:.45;cursor:default}.lp-head{text-align:center;padding:6px 4px 2px}.lp-head h1{margin:0 0 6px}.lp-grid{display:flex;flex-direction:column;gap:12px;margin-top:14px}.lp-card{display:block;width:100%;text-align:left;border:2px solid var(--line);background:var(--panel);border-radius:var(--r-sm);padding:14px 16px;cursor:pointer;box-shadow:var(--sh);transition:transform .08s ease,border-color .12s ease}.lp-card:hover{transform:translateY(-2px);border-color:var(--pine)}.lp-card:focus-visible{outline:3px solid var(--pine);outline-offset:2px}.lp-card.key{border-color:var(--amber);background:linear-gradient(160deg,#FBF3DD,#F6E7C4)}.lp-card.key:hover{border-color:var(--gold-ink)}.lp-band{font-size:22px;font-weight:900;color:var(--pine-deep);display:flex;align-items:center;gap:10px}.lp-star{font-size:11px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:var(--gold-ink);background:#fff6;padding:3px 8px;border-radius:999px}.lp-theme{font-size:13.5px;font-weight:700;color:var(--muted);margin-top:2px}.lp-meta{display:flex;align-items:center;gap:8px;margin-top:9px;font-size:12px;font-weight:800}.lp-count{background:var(--pine);color:#fff;padding:3px 10px;border-radius:999px}.lp-total{color:var(--muted)}.lp-here{margin-left:auto;color:var(--lingon);font-weight:800}.spk-situation{font-size:19px;font-weight:900;line-height:1.4;text-align:center;text-wrap:balance;padding:0 8px}.spk-situation.small{font-size:14.5px;font-weight:800;color:var(--muted)}.spk-hint{border:0;background:#DCE8E0;color:var(--pine-deep);font-family:inherit;font-weight:800;font-size:12px;padding:7px 12px;border-radius:999px;cursor:pointer}.spk-timer{font-size:52px;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--lingon);animation:pulse-t 1s ease-in-out infinite}@keyframes pulse-t{0%,to{transform:scale(1)}50%{transform:scale(1.08)}}@media (prefers-reduced-motion:reduce){.spk-timer{animation:none}}.spk-live{min-height:56px;font-size:16px;font-weight:700;line-height:1.45;text-align:center;padding:0 10px}.spk-live i{color:var(--muted);font-weight:600}.spk-edit{width:100%;font-family:inherit;font-size:16px;font-weight:700;line-height:1.45;padding:12px;border-radius:var(--r-sm);border:2px solid var(--line);outline:none;resize:vertical;background:var(--panel);margin-top:10px}.spk-edit:focus{border-color:var(--pine)}.spk-fb{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:10px;margin-top:8px;min-height:0}.spk-score{font-size:17px;font-weight:900}.spk-summary{font-size:14px;color:var(--ink);line-height:1.4}.spk-list,.spk-summary{margin:0;font-weight:700}.spk-list{list-style:none;padding:0;display:flex;flex-direction:column;gap:4px;font-size:13px}.spk-list.good li{color:#1a6b47}.spk-corrs{display:flex;flex-direction:column;gap:6px}.spk-corr{background:var(--panel);border-radius:var(--r-sm);padding:9px 12px;font-size:13.5px;font-weight:700;box-shadow:var(--sh)}.spk-corr s{color:var(--no)}.spk-corr b{color:#1a6b47}.spk-corr small{display:block;color:var(--muted);font-weight:600;font-size:12px;margin-top:2px}.spk-model{background:linear-gradient(160deg,#F2F7F1,#E4F0E7);border-radius:var(--r-sm);padding:11px 13px;box-shadow:var(--sh)}.spk-model p{margin:4px 0 0;font-size:14.5px;font-weight:800;font-style:italic;color:var(--pine-deep);line-height:1.4}.wr-task{background:var(--panel);border-radius:var(--r-sm);padding:13px 15px;box-shadow:var(--sh);margin-top:6px}.wr-kicker{font-size:12px;font-weight:900;letter-spacing:.03em;text-transform:uppercase;color:var(--pine);display:flex;align-items:center;gap:8px;margin-bottom:6px}.wr-auth{font-size:10px;color:var(--gold-ink);background:#F6E7C4;padding:2px 7px;border-radius:999px;letter-spacing:.02em}.wr-situation{margin:0;font-size:15px;font-weight:800;line-height:1.42;color:var(--ink)}.wr-points{margin:9px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:3px}.wr-points li{font-size:13.5px;font-weight:700;color:var(--muted);line-height:1.35}.wr-edit{width:100%;font-family:inherit;font-size:15.5px;font-weight:600;line-height:1.5;padding:12px;border-radius:var(--r-sm);border:2px solid var(--line);outline:none;resize:vertical;background:var(--panel);margin-top:10px;flex:1 1;min-height:150px}.wr-edit:focus{border-color:var(--pine)}.wr-bar{display:flex;align-items:center;gap:12px;margin-top:10px}.wr-wc{font-size:13px;font-weight:800;color:var(--muted);flex:1 1}.wr-wc.ok{color:var(--ok)}.wr-wc small{font-weight:600;opacity:.8}.wr-rubric{display:flex;gap:8px}.wr-crit{flex:1 1;background:var(--panel);border-radius:var(--r-sm);padding:8px 4px;text-align:center;box-shadow:var(--sh)}.wr-crit b{display:block;font-size:20px;font-weight:900;color:var(--pine)}.wr-crit small{font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:var(--muted)}.wr-cover{display:flex;flex-direction:column;gap:5px}.wr-pc{font-size:13px;font-weight:700;line-height:1.35;padding:2px 0}.wr-pc.yes{color:#1a6b47}.wr-pc.no{color:var(--no)}.transcript{flex:1 1;overflow-y:auto;display:flex;flex-direction:column;gap:7px;margin-top:10px;min-height:0}.tl-line{display:flex;gap:8px;align-items:flex-start;text-align:left;background:var(--panel);border:0;border-radius:var(--r-sm);padding:10px 12px;cursor:pointer;font-family:inherit;box-shadow:var(--sh)}.tl-line b{color:var(--pine);font-size:12.5px;min-width:74px;padding-top:1px}.tl-line span{display:flex;flex-direction:column;gap:2px;font-size:14px;font-weight:700;color:var(--ink);line-height:1.35}.tl-line small{color:var(--muted);font-weight:600;font-size:12px}.tl-line:active{transform:scale(.99)}.lvlup{width:120px;height:120px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle at 35% 30%,#f7cf7a,#EBA92F 55%,#c8880f);color:#3a2a06;box-shadow:0 0 0 8px rgba(235,169,47,.25),0 10px 30px rgba(122,90,18,.4);animation:lvlpop .7s cubic-bezier(.3,1.6,.4,1)}.lvlup-num{font-size:44px;font-weight:900;line-height:1}.lvlup-cap{font-size:11px;font-weight:900;letter-spacing:.22em}@keyframes lvlpop{0%{transform:scale(.2) rotate(-14deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@media (prefers-reduced-motion:reduce){.lvlup{animation:none}}.authchip{border:0;cursor:pointer;border-radius:999px;padding:8px 12px;font-family:inherit;font-weight:800;font-size:12px;background:#DCE8E0;color:var(--pine-deep)}.authchip.on{background:#E4F4EC;color:#1a6b47}.authpop{position:absolute;right:0;top:40px;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh);padding:12px;width:210px;display:flex;flex-direction:column;gap:8px}.authinput{font-family:inherit;font-size:13px;font-weight:700;padding:9px 10px;border-radius:10px;border:2px solid var(--line);outline:none}.authinput:focus{border-color:var(--pine)}.authsend{border:0;cursor:pointer;font-family:inherit;font-weight:900;font-size:13px;color:#fff;padding:9px;border-radius:10px;background:var(--pine)}.authcard{display:flex;flex-direction:column;gap:12px;width:100%;max-width:340px;margin:6px auto 0}.authfield{font-family:inherit;font-size:16px;font-weight:700;padding:14px 16px;border-radius:var(--r-sm);border:2px solid var(--line);outline:none;background:var(--panel);text-align:center}.authfield:focus{border-color:var(--pine)}.autherr{margin:0;color:var(--no)}.autherr,.linklike{font-size:13px;font-weight:800}.linklike{background:none;font-family:inherit;color:var(--pine);text-decoration:underline;padding:2px}.gearbtn,.linklike{border:0;cursor:pointer}.gearbtn{border-radius:999px;width:34px;height:34px;font-size:16px;background:#DCE8E0;color:var(--pine-deep)}.gearbtn:hover{background:#cfe0d6}.menupop{position:absolute;right:0;top:40px;z-index:30;background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--sh);padding:10px;width:230px;display:flex;flex-direction:column;gap:8px}.menuitem{border:0;cursor:pointer;font-family:inherit;font-weight:800;font-size:13px;padding:10px 12px;border-radius:10px;background:#EEF2EE;color:var(--ink);text-align:left}.menuitem.danger{color:var(--no);background:#FBEBE9}.menudanger{border:0;cursor:pointer;font-family:inherit;font-weight:900;font-size:13px;padding:10px 12px;border-radius:10px;background:var(--no);color:#fff}.opts{display:grid;grid-gap:10px;gap:10px;margin-top:8px}.opt{text-align:left;font-weight:800;font-size:16px;color:var(--ink);background:var(--panel);border:2px solid var(--line);border-radius:var(--r-sm);padding:15px 16px;cursor:pointer;transition:transform .08s,border-color .15s,background .15s}.opt:active{transform:scale(.98)}.opt:disabled{cursor:default}.opt.right{border-color:var(--ok);background:#E4F4EC;color:#1a6b47}.opt.wrong{border-color:var(--no);background:#F7E7E5;color:#a33528}.feedback{min-height:26px;text-align:center;font-weight:900;font-size:16px;margin-top:10px}.feedback.ok{color:var(--ok)}.feedback.no{color:var(--no)}.cele{flex:1 1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:28px;text-align:center}.cele .big{font-size:60px}.stats{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px;width:100%;margin:14px 0 6px}.stat{background:var(--panel);border-radius:var(--r-sm);padding:14px;box-shadow:var(--sh)}.stat b{display:block;font-size:26px;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat small{color:var(--muted);font-weight:800;font-size:11px;letter-spacing:.08em;text-transform:uppercase}.stat.xp b{color:var(--amber)}.stat.streak b{color:var(--lingon)}.sub{font-size:13px;color:var(--muted);font-weight:600}.fx{position:absolute;inset:0;pointer-events:none;z-index:20}