:root{--ek-ink: #1d2b45;--ek-ink-soft: #55627a;--ek-paper: #ffffff;--ek-accent: #ffc531;--ek-accent-deep: #e59a00;--ek-go: #22b58a;--ek-go-deep: #138a67;--ek-line: rgba(29, 43, 69, .12);--ek-shadow: 0 10px 30px -12px rgba(29, 43, 69, .35);--ek-r-lg: 28px;--ek-r-md: 20px;--ek-display: "Baloo 2", "Nunito", ui-rounded, "Arial Rounded MT Bold", system-ui, sans-serif;--ek-body: "Nunito", ui-rounded, system-ui, -apple-system, "Segoe UI", sans-serif;color-scheme:light}*{box-sizing:border-box}html,body{height:100%}body{margin:0;font-family:var(--ek-body);color:var(--ek-ink);background:var(--ek-bg, #eaf6ff);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;overscroll-behavior:none;touch-action:manipulation}button{font:inherit;color:inherit}[hidden]{display:none!important}.ek-screen{min-height:100%;position:relative}.ek-btn{--c: var(--ek-accent);--cd: var(--ek-accent-deep);--t: #3b2600;display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:64px;padding:0 30px;border:0;border-radius:999px;cursor:pointer;font-family:var(--ek-display);font-weight:800;font-size:1.45rem;letter-spacing:.01em;color:var(--t);background:var(--c);box-shadow:0 6px 0 var(--cd),0 14px 24px -10px #00000059;transform:translateY(0);transition:transform .08s ease,box-shadow .08s ease,filter .15s}.ek-btn svg{width:26px;height:26px}.ek-btn:hover{filter:brightness(1.04)}.ek-btn:active{transform:translateY(5px);box-shadow:0 1px 0 var(--cd),0 6px 12px -8px #00000059}.ek-btn.is-go{--c: var(--ek-go);--cd: var(--ek-go-deep);--t: #fff}.ek-btn.is-ghost{--c: rgba(255,255,255,.92);--cd: rgba(29,43,69,.18);--t: var(--ek-ink)}.ek-btn.is-sm{min-height:50px;font-size:1.1rem;padding:0 22px}.ek-btn:focus-visible,.ek-icon-btn:focus-visible{outline:4px solid #4c8dff;outline-offset:4px}.ek-icon-btn{width:56px;height:56px;flex:none;border-radius:50%;border:0;cursor:pointer;display:grid;place-items:center;background:#ffffffe6;color:var(--ek-ink);box-shadow:0 4px #1d2b4529,0 10px 18px -10px #1d2b4566;transition:transform .08s ease,box-shadow .08s ease;text-decoration:none}.ek-icon-btn svg{width:28px;height:28px}.ek-icon-btn:active{transform:translateY(3px);box-shadow:0 1px #1d2b4529}.ek-icon-btn .ek-ico-mute{display:none}.ek-icon-btn.is-muted .ek-ico-mute{display:block}.ek-icon-btn.is-muted .ek-ico-on{display:none}.ek-ghost-btn{display:inline-flex;align-items:center;gap:8px;height:52px;padding:0 18px 0 12px;border-radius:999px;border:0;cursor:pointer;flex:none;background:#ffffffeb;color:var(--ek-ink);font-family:var(--ek-display);font-weight:800;font-size:1.15rem;letter-spacing:-.01em;box-shadow:0 4px #1d2b4529,0 10px 18px -10px #1d2b4566;text-decoration:none;transition:transform .08s ease,box-shadow .08s ease,background .15s;-webkit-user-select:none;user-select:none}.ek-ghost-btn:hover{background:#fff}.ek-ghost-btn:active{transform:translateY(3px);box-shadow:0 1px #1d2b4529}.ek-ghost-btn [data-ico]{display:grid;place-items:center;width:26px;height:26px;flex:none}.ek-ghost-btn svg{width:24px;height:24px;display:block;stroke:currentColor;fill:none}@media (max-width: 520px){.ek-ghost-btn{height:46px;padding:0 14px 0 10px;font-size:1rem}.ek-ghost-btn svg{width:20px;height:20px}}@media (max-width: 380px){.ek-bar .ek-ghost-btn span:last-child{display:none}.ek-bar .ek-ghost-btn{padding:0;width:46px;justify-content:center}}.ek-bar{position:relative;z-index:5;display:flex;align-items:center;gap:12px;padding:calc(14px + env(safe-area-inset-top,0px)) 16px 10px}.ek-bar .ek-spacer{flex:1}.ek-progress{flex:1;max-width:420px;height:18px;border-radius:99px;background:#ffffffa6;box-shadow:inset 0 2px 4px #1d2b451f;overflow:hidden}.ek-progress>i{display:block;height:100%;width:var(--p, 0%);border-radius:99px;background:linear-gradient(90deg,var(--ek-go),#5fd8b3);transition:width .5s cubic-bezier(.3,1.4,.5,1)}.ek-stars{display:flex;justify-content:center;gap:6px}.ek-star{width:64px;height:64px;fill:#1d2b451f}.ek-star:nth-child(2){width:84px;height:84px;margin-top:-14px}.ek-star.is-on{fill:#ffc531;filter:drop-shadow(0 3px 0 #e59a00)}.ek-star.is-pop{animation:ek-pop .5s cubic-bezier(.2,1.8,.4,1)}@keyframes ek-pop{0%{transform:scale(.2) rotate(-30deg)}to{transform:scale(1) rotate(0)}}.ek-fx{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:9500}.ek-scrim{position:fixed;inset:0;z-index:9000;background:#141c2d73;display:grid;place-items:center;padding:16px;animation:ek-fade .2s ease}.ek-sheet{width:min(640px,100%);max-height:calc(100% - 32px);overflow:auto;background:var(--ek-paper);border-radius:var(--ek-r-lg);padding:24px;box-shadow:var(--ek-shadow);animation:ek-rise .3s cubic-bezier(.2,1.2,.4,1);-webkit-user-select:text;user-select:text}.ek-sheet h2{font-family:var(--ek-display);font-size:1.6rem;margin:0 0 4px;line-height:1.15}.ek-sheet p{margin:0 0 16px;color:var(--ek-ink-soft)}@keyframes ek-fade{0%{opacity:0}}@keyframes ek-rise{0%{transform:translateY(30px) scale(.97);opacity:0}}.ek-hold{position:relative}.ek-hold-fill{position:absolute;inset:-5px;border-radius:50%;pointer-events:none;background:conic-gradient(var(--ek-go) calc(var(--p, 0) * 360deg),transparent 0);-webkit-mask:radial-gradient(circle,transparent 58%,#000 60%);mask:radial-gradient(circle,transparent 58%,#000 60%)}.ek-hint{font-size:.8rem;font-weight:700;color:var(--ek-ink-soft)}.ek-toast{position:fixed;left:50%;bottom:calc(24px + env(safe-area-inset-bottom,0px));transform:translate(-50%);z-index:9200;background:var(--ek-ink);color:#fff;padding:12px 20px;border-radius:99px;font-weight:700;box-shadow:var(--ek-shadow);animation:ek-rise .25s ease}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}}.ek-gu-h{margin:4px 0 8px;font-family:var(--ek-display);font-size:1.05rem}.ek-gu-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(54px,1fr));gap:8px;margin-bottom:14px}.ek-gu-grid div{border-radius:12px;padding:6px 0;text-align:center;background:#f1f4f9}.ek-gu-grid b{display:block;font-family:var(--ek-display);font-size:1.35rem;line-height:1.15}.ek-gu-grid small{font-size:.68rem;font-weight:800;color:var(--ek-ink-soft);font-variant-numeric:tabular-nums}.ek-gu-grid .is-good,.ek-gu-legend i.is-good{background:#d9f5ea}.ek-gu-grid .is-learning,.ek-gu-legend i.is-learning{background:#fff1c9}.ek-gu-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;font-weight:700;color:var(--ek-ink-soft);margin-bottom:16px}.ek-gu-legend i{display:inline-block;width:12px;height:12px;border-radius:4px;margin-right:6px;vertical-align:-1px;background:#f1f4f9}.ek-gu-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--ek-line);font-weight:700}.ek-switch{width:58px;height:34px;border-radius:99px;border:0;background:#cfd6e2;position:relative;cursor:pointer;flex:none}.ek-switch:after{content:"";position:absolute;top:4px;left:4px;width:26px;height:26px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 2px 4px #0003}.ek-switch[aria-checked=true]{background:var(--ek-go)}.ek-switch[aria-checked=true]:after{transform:translate(24px)}.ek-switch:focus-visible{outline:3px solid #4c8dff;outline-offset:3px}.ek-gu-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin-top:16px}.ek-btn.ek-danger{--c: #ffe3df;--cd: #f3b6ad;--t: #b8321f}.ek-home{position:absolute;top:calc(14px + env(safe-area-inset-top,0px));left:16px;z-index:5;text-decoration:none}.ek-sticker{position:fixed;left:50%;top:calc(16% + env(safe-area-inset-top,0px));z-index:9300;pointer-events:none;display:flex;align-items:center;gap:10px;padding:12px 26px;border-radius:999px;background:#fff;font-family:var(--ek-display);font-weight:800;font-size:clamp(1.5rem,5vw,2.4rem);line-height:1.1;color:#ff6b5b;white-space:nowrap;box-shadow:0 6px #00000014,0 18px 34px -14px #00000073;transform:translate(-50%) rotate(-3deg);animation:ek-sticker-in .5s cubic-bezier(.2,1.8,.4,1)}.ek-sticker .ek-star,.ek-sticker .ek-star:nth-child(2){width:34px;height:34px;margin:0;flex:none}.ek-sticker.is-out{opacity:0;transform:translate(-50%) translateY(-16px) rotate(-3deg) scale(.9);transition:opacity .3s,transform .3s}@keyframes ek-sticker-in{0%{transform:translate(-50%) rotate(-12deg) scale(.3);opacity:0}}@media (max-width: 420px){.ek-sticker{white-space:normal;text-align:center;max-width:calc(100% - 32px)}}
