:root{--night:#12202A;--night-2:#1B2E3B;--paper:#E9E4D8;--muted:#9AA9B3;--post:#B3262E;--good:#7DBF95;--mid:#E2B552;--low:#E07468;--serif:"Libre Caslon Text",Georgia,"Times New Roman",serif;--sans:"Atkinson Hyperlegible",-apple-system,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}body,html{margin:0;height:100%}body{background:var(--night);color:var(--paper);font-family:var(--sans);font-size:17px;line-height:1.5;-webkit-font-smoothing:antialiased;padding:env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left);-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--mid);outline-offset:3px}.wrap{max-width:34rem;margin:0 auto;padding:1.5rem 1.25rem 3rem}.hello{font-family:var(--serif);font-size:2.1rem;line-height:1.15;margin:1.5rem 0 .5rem;font-weight:400}.sub{color:var(--muted);margin:0 0 1.75rem}.start{width:100%;border:0;border-radius:999px;background:var(--post);color:#fff;padding:1.1rem 1.5rem;font-size:1.15rem;font-weight:700;text-align:left;display:flex;justify-content:space-between;align-items:center}.start small{font-weight:400;opacity:.85;font-size:.9rem}.stats{display:flex;gap:1.75rem;margin:2rem 0 .5rem}.stat b{display:block;font-family:var(--serif);font-size:1.8rem;font-weight:400}.stat span{color:var(--muted);font-size:.85rem}h2{font-family:var(--serif);font-weight:400;font-size:1.3rem;margin:2.25rem 0 .75rem}.path{list-style:none;padding:0;margin:0;counter-reset:u}.path li{border-top:1px solid var(--night-2)}.path button{width:100%;background:none;border:0;text-align:left;padding:.9rem 0;display:grid;grid-template-columns:2rem 1fr auto;grid-gap:.5rem;gap:.5rem;align-items:baseline}.path .n{color:var(--muted);font-family:var(--serif)}.path .t{font-weight:700}.path .f{grid-column:2;color:var(--muted);font-size:.9rem}.path .done{color:var(--good);font-size:.85rem}.path button[aria-pressed=true] .t{color:var(--mid)}.weak{display:flex;flex-wrap:wrap;gap:.5rem}.weak span{font-family:var(--serif);background:var(--night-2);padding:.3rem .7rem;border-radius:6px}.weak em{font-style:normal;color:var(--low);font-family:var(--sans);font-size:.8rem;margin-left:.35rem}.note{color:var(--muted);font-size:.9rem}.session{min-height:100dvh;display:flex;flex-direction:column;padding:1.25rem;max-width:40rem;margin:0 auto}.status{display:flex;align-items:center;gap:.6rem;color:var(--muted);font-size:.95rem}.dot{width:.7rem;height:.7rem;border-radius:50%;background:var(--muted)}.dot.listening{background:var(--good);animation:pulse 1.4s ease-in-out infinite}.dot.speaking{background:var(--post)}.dot.assessing,.dot.thinking{background:var(--mid)}@keyframes pulse{50%{transform:scale(1.5);opacity:.55}}@media (prefers-reduced-motion:reduce){.dot.listening{animation:none}}.progress{margin-left:auto;font-size:.85rem}.stage{flex:1 1;display:flex;flex-direction:column;justify-content:center;padding:2rem 0}.target{font-family:var(--serif);font-size:clamp(1.9rem,8vw,2.8rem);line-height:1.25;margin:0}.target .w{text-decoration:underline;text-decoration-thickness:3px;text-underline-offset:.3em;-webkit-text-decoration-color:transparent;text-decoration-color:transparent}.target .w.good{-webkit-text-decoration-color:var(--good);text-decoration-color:var(--good)}.target .w.mid{-webkit-text-decoration-color:var(--mid);text-decoration-color:var(--mid)}.target .w.low{-webkit-text-decoration-color:var(--low);text-decoration-color:var(--low)}.focus{color:var(--muted);margin:.9rem 0 0;font-size:.95rem}.said{margin:2rem 0 0;color:var(--paper);opacity:.8;font-size:1rem;max-width:32rem}.score{font-family:var(--serif);font-size:1.1rem}.err,.score{margin-top:1rem}.err{color:var(--low)}.controls{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:.5rem;gap:.5rem}.controls button{background:var(--night-2);border:0;border-radius:14px;padding:.9rem .25rem;font-size:.85rem}.controls button.main{background:var(--paper);color:var(--night);font-weight:700}.back{background:none;border:0;color:var(--muted);padding:0;font-size:.95rem}.pocket{position:fixed;inset:0;background:#000;z-index:50;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding-bottom:3rem;color:#333;font-size:.8rem;touch-action:none;-moz-user-select:none;user-select:none;-webkit-user-select:none}.pocket .dot{margin-bottom:1rem;opacity:.5}.login{max-width:22rem;margin:18vh auto 0;padding:0 1.25rem}.login input{width:100%;padding:.9rem 1rem;border-radius:12px;border:1px solid var(--night-2);background:var(--night-2);color:var(--paper);font:inherit;margin:1rem 0}