:root{--bs-c0:#2c5ea8;--bs-c1:#a1462b;--bs-c2:#2f7a4d;--bs-c3:#7a3f99;--bs-soft:#eef3fb;--bs-sun:#f3b23c}:root[data-theme=dark]{--bs-c0:#8fb5f2;--bs-c1:#f2a487;--bs-c2:#86d1a3;--bs-c3:#d1a6ea;--bs-soft:#1e2636;--bs-sun:#f6c76b}.bs-app{gap:14px;display:grid}.bs-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;gap:12px;padding:16px;display:grid}.bs-card h2{margin:0;font-size:1.2rem}.bs-card h3{margin:4px 0 0;font-size:1rem}.bs-muted{color:var(--muted);font-size:.92rem}.bs-note,.bs-review{background:var(--dt-warn-bg,#fff3d9);color:var(--ink);border-radius:12px;margin:0;padding:10px 12px;font-size:.95rem}.bs-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bs-btn,.bs-go,.bs-opt,.bs-tile,.bs-mic,.bs-back{border:1px solid var(--brand);background:var(--brand);min-width:44px;min-height:44px;color:var(--on-brand);font:inherit;cursor:pointer;border-radius:12px;padding:8px 14px}.bs-btn.ghost,.bs-back{color:var(--brand);background:0 0}.bs-btn small,.bs-go small{opacity:.85;font-size:.8rem;font-weight:400;display:block}.bs-btn:disabled,.bs-opt:disabled,.bs-tile:disabled{opacity:.55;cursor:default}.bs-back{border:0;justify-self:start}.bs-link{color:var(--brand);font:inherit;cursor:pointer;background:0 0;border:0;justify-self:start;min-height:44px;text-decoration:underline}.bs-link.is-nudge{font-weight:700;animation:1.6s ease-in-out infinite bs-pulse}.bs-go{border-radius:18px;width:100%;padding:16px 20px;font-size:1.35rem;font-weight:700}.bs-hero{gap:12px;display:grid}.bs-counts{flex-wrap:wrap;gap:8px;margin:0;display:flex}.bs-counts span{background:var(--bs-soft);border-radius:999px;padding:6px 12px;font-weight:600}.bs-buddy{align-items:center;gap:10px;display:flex}.bs-buddy small{color:var(--muted);display:block}.bs-buddy-face{fill:var(--bs-sun)}.bs-buddy-eye{fill:#2b2b2b}.bs-buddy-mouth{fill:none;stroke:#2b2b2b;stroke-width:2.5px;stroke-linecap:round}.bs-buddy svg{flex:none;animation:3s ease-in-out infinite bs-bob}.bs-buddy.is-talk .bs-buddy-mouth{transform-origin:24px 31px;animation:.35s ease-in-out 4 bs-talk}.bs-map{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.bs-scene button{text-align:start;border:1px solid var(--line);background:var(--bg);width:100%;min-height:64px;color:var(--ink);font:inherit;cursor:pointer;border-radius:14px;grid-template-columns:36px 1fr;gap:2px 10px;padding:10px;display:grid}.bs-scene small{color:var(--muted);grid-column:2;font-size:.82rem}.bs-scene-n{background:var(--bs-soft);border-radius:50%;grid-row:span 2;place-items:center;width:36px;height:36px;font-weight:700;display:grid}.bs-scene.is-done .bs-scene-n{background:var(--dt-yes,#1f7a4a);color:#fff}.bs-scene.is-open button{border-color:var(--brand)}.bs-scene.is-locked button{opacity:.6;cursor:default}.bs-tools{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.bs-toggle{align-items:center;gap:6px;min-height:44px;display:inline-flex}.bs-toggle input{width:22px;height:22px}.bs-time{min-height:44px;font:inherit;border:1px solid var(--line);background:var(--bg);color:var(--ink);border-radius:10px;padding:4px 8px}.bs-remind{gap:4px;display:grid}.bs-line{flex-wrap:wrap;gap:6px;margin:0;display:flex}.bs-chunk{font:inherit;cursor:pointer;min-height:44px;color:var(--ink);background:0 0;border:0;border-radius:10px;justify-items:center;padding:4px 6px;display:inline-grid}.bs-chunk:hover,.bs-chunk:focus-visible{background:var(--bs-soft)}.bs-t{font-size:1.35rem;line-height:1.5}.c0 .bs-t{color:var(--bs-c0)}.c1 .bs-t{color:var(--bs-c1)}.c2 .bs-t{color:var(--bs-c2)}.c3 .bs-t{color:var(--bs-c3)}.bs-r{color:var(--muted);font-size:.85rem;transition:opacity .4s}.bs-r.is-faint{opacity:.4}.bs-g{color:var(--muted);border-top:1px dotted var(--line);font-size:.78rem}.bs-meaning{color:var(--muted)}.bs-meaning.big{color:var(--ink);margin:0;font-size:1.15rem}.bs-word{margin:0;display:grid}.bs-word .bs-t{font-size:2rem}.bs-samjho{background:var(--bs-soft);border-left:4px solid var(--brand);border-radius:10px;margin:0;padding:10px 12px}.bs-goal{margin:0;font-weight:600}.bs-badge{background:var(--dt-yes-bg,#e6f4ec);color:var(--dt-yes,#1f7a4a);border-radius:999px;padding:2px 8px;font-size:.78rem;font-weight:600;display:inline-block}.bs-badge.is-almost-hi{background:var(--dt-info-bg,#eef1fb);color:var(--bs-c0)}.bs-turns{gap:6px;margin:0;padding:0;list-style:none;display:grid}.bs-turn{background:var(--bs-soft);border-radius:14px;max-width:92%;padding:6px 10px}.bs-turn.is-y{background:var(--dt-yes-bg,#e6f4ec);justify-self:end}.bs-turn.is-now{outline:2px solid var(--brand)}.bs-wave{background:repeating-linear-gradient(90deg, var(--muted) 0 3px, transparent 3px 7px);opacity:.4;width:120px;height:18px;display:block;mask:linear-gradient(#0000 30%,#000 30% 70%,#0000 70%)}.bs-turn.is-now .bs-wave{opacity:.8;animation:.8s linear infinite bs-wave}.bs-words{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px;margin:0;padding:0;list-style:none;display:grid}.bs-words li{justify-items:start;gap:2px;display:grid}.bs-words button{font:inherit;color:var(--ink);text-align:start;cursor:pointer;background:0 0;border:0;min-height:44px;padding:0;display:grid}.bs-progress{width:100%;height:8px;accent-color:var(--brand)}.bs-options{gap:8px;display:grid}.bs-opt{background:var(--bg);color:var(--ink);border-color:var(--line);text-align:start;font-size:1.05rem}.bs-opt.is-right{background:var(--dt-yes-bg,#e6f4ec);border-color:var(--dt-yes,#1f7a4a)}.bs-opt.is-wrong{background:var(--dt-no-bg,#fbe9e6);border-color:var(--dt-no,#b23b2c)}.bs-ok{color:var(--dt-yes,#1f7a4a);margin:0;font-weight:700}.bs-mid{color:var(--dt-warn,#8a5a00);margin:0;font-weight:700}.bs-bad{color:var(--dt-no,#b23b2c);margin:0;font-weight:700}.bs-built{border:2px dashed var(--line);border-radius:12px;flex-wrap:wrap;gap:6px;min-height:56px;padding:6px;display:flex}.bs-tiles{flex-wrap:wrap;gap:8px;display:flex}.bs-tile{background:var(--bg);color:var(--ink);border-color:var(--line);justify-items:center;font-size:1.15rem;display:inline-grid}.bs-tile small{color:var(--muted);font-size:.75rem}.bs-tile.is-placed{background:var(--bs-soft)}.bs-next{justify-self:end}.bs-mic{box-shadow:0 0 0 calc(var(--lvl,0) * 14px) color-mix(in srgb, var(--brand) 25%, transparent);border-radius:999px;justify-self:start;align-items:center;gap:8px;padding:10px 20px;transition:box-shadow 80ms;display:inline-flex;position:relative}.bs-mic svg{fill:currentColor;stroke:currentColor}.bs-mic.is-on{background:var(--dt-no,#b23b2c);border-color:var(--dt-no,#b23b2c)}.bs-marks p{margin:0}.bs-mark{font-size:1.2rem}.bs-mark.is-clear{color:var(--dt-yes,#1f7a4a)}.bs-mark.is-almost{color:var(--dt-warn,#8a5a00);text-decoration:underline dotted}.bs-mark.is-retry{color:var(--dt-no,#b23b2c);text-decoration:underline wavy}.bs-notice{background:var(--bs-soft);border-radius:12px;gap:8px;padding:10px;display:grid}.bs-notice p{margin:0}.bs-voice{color:var(--muted);margin:0;font-size:.82rem}.bs-voice-phone,.bs-voice-none{color:var(--dt-warn,#8a5a00)}.bs-hint{background:var(--dt-warn-bg,#fff3d9);border-radius:10px;margin:0;padding:8px 10px}.bs-back-ch{color:var(--muted);font-style:italic}.bs-big{margin:0;font-size:2.4rem;font-weight:800}.bs-done{text-align:center;justify-items:center;position:relative;overflow:hidden}.bs-flip{gap:10px;animation:.45s ease-out bs-flip;display:grid}.bs-galti{gap:10px;margin:0;padding:0;list-style:none;display:grid}.bs-dots i{border:1px solid var(--muted);border-radius:50%;width:10px;height:10px;margin-inline-start:4px;display:inline-block}.bs-dots i.on{background:var(--dt-yes,#1f7a4a);border-color:var(--dt-yes,#1f7a4a)}.bs-confetti{pointer-events:none;position:absolute;inset:0}.bs-confetti i{top:-10px;left:calc(var(--i) * 7%);background:var(--bs-c0);width:8px;height:12px;animation:bs-fall 1.6s ease-in calc(var(--i) * 50ms) forwards;border-radius:2px;position:absolute}.bs-confetti i:nth-child(3n){background:var(--bs-sun)}.bs-confetti i:nth-child(3n+1){background:var(--bs-c2)}.bs-trace{gap:10px;display:grid}.bs-glyphs{flex-wrap:wrap;gap:6px;display:flex}.bs-glyph{border:1px solid var(--line);background:var(--bg);min-width:48px;min-height:48px;color:var(--ink);cursor:pointer;border-radius:10px;font-size:1.5rem}.bs-glyph[aria-selected=true]{border-color:var(--brand);border-width:2px}.bs-glyph.is-done{background:var(--dt-yes-bg,#e6f4ec)}.bs-pad{aspect-ratio:1;background:var(--bg);border:1px solid var(--line);touch-action:none;border-radius:16px;width:min(100%,320px)}.bs-pad-ghost{fill:var(--line);opacity:.5;font-size:70px}.bs-pad path,.bs-pad polyline{fill:none;stroke-linecap:round;stroke-linejoin:round}.bs-s-later{stroke:var(--line);stroke-width:7px}.bs-s-now{stroke:color-mix(in srgb, var(--brand) 25%, transparent);stroke-width:9px}.bs-s-done{stroke:var(--bs-c2);stroke-width:8px}.bs-s-demo{stroke:var(--brand);stroke-width:3px;stroke-dasharray:1;stroke-dashoffset:1px;animation:1.4s ease-in-out .2s forwards bs-draw}.bs-s-start{fill:var(--bs-sun)}.bs-s-ink{stroke:var(--bs-c1);stroke-width:5px}@keyframes bs-bob{50%{transform:translateY(-3px)}}@keyframes bs-talk{50%{transform:scaleY(1.6)}}@keyframes bs-pulse{50%{opacity:.55}}@keyframes bs-wave{to{background-position:14px 0}}@keyframes bs-flip{0%{opacity:0;transform:perspective(600px)rotateY(80deg)}}@keyframes bs-fall{to{opacity:0;transform:translateY(260px)rotate(320deg)}}@keyframes bs-draw{to{stroke-dashoffset:0}}@media (prefers-reduced-motion:reduce){.bs-buddy svg,.bs-buddy.is-talk .bs-buddy-mouth,.bs-link.is-nudge,.bs-turn.is-now .bs-wave,.bs-flip{animation:none}.bs-confetti{display:none}.bs-s-demo{stroke-dashoffset:0;opacity:.6;animation:none}.bs-r,.bs-mic{transition:none}}.bs-promises{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.bs-promises li{background:var(--bs-soft);border-radius:14px;padding:10px 12px}.bs-promises strong{display:block}.bs-langs{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px;margin:0;padding:0;list-style:none;display:grid}.bs-langs a{border:1px solid var(--line);background:var(--surface);min-height:64px;color:var(--ink);border-radius:14px;gap:2px;padding:10px 12px;text-decoration:none;display:grid}.bs-langs a:hover,.bs-langs a:focus-visible{border-color:var(--brand)}.bs-langs .bs-native{font-size:1.4rem}.bs-langs small{color:var(--muted)}
