@font-face{font-family:Google Sans Code;src:url(/fonts/GoogleSansCode-latin.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap;unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Google Sans Code;src:url(/fonts/GoogleSansCode-latin-ext.woff2)format("woff2");font-weight:300 800;font-style:normal;font-display:swap;unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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}:root{--bg:#fbfaf8;--surface:#fff;--surface-sunk:#f2f0ec;--line:#e0ddd6;--line-strong:#c9c5bb;--ink:#23211d;--ink-dim:#6e6a61;--ink-faint:#9b968b;--accent:#2f6f5e;--accent-ink:#fff;--accent-soft:#e4efeb;--right:#2f7a52;--right-soft:#e2f1e8;--wrong:#a2413a;--wrong-soft:#f8e5e2;--warn:#8a5a2b;--warn-soft:#f6ecdf;--radius:10px;--tap:48px;--gutter:16px;--font:"Google Sans Code", ui-monospace, SFMono-Regular, Menlo, monospace;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#16150f;--surface:#1e1d18;--surface-sunk:#12110d;--line:#322f28;--line-strong:#464236;--ink:#eceadf;--ink-dim:#a49f91;--ink-faint:#767163;--accent:#7fc4ac;--accent-ink:#10231d;--accent-soft:#23342e;--right:#7fd1a1;--right-soft:#1d3326;--wrong:#ec948a;--wrong-soft:#3b201d;--warn:#d0a06a;--warn-soft:#33281b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#16150f;--surface:#1e1d18;--surface-sunk:#12110d;--line:#322f28;--line-strong:#464236;--ink:#eceadf;--ink-dim:#a49f91;--ink-faint:#767163;--accent:#7fc4ac;--accent-ink:#10231d;--accent-soft:#23342e;--right:#7fd1a1;--right-soft:#1d3326;--wrong:#ec948a;--wrong-soft:#3b201d;--warn:#d0a06a;--warn-soft:#33281b;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{overscroll-behavior-x:none;margin:0;padding:0}body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;font-size:15px;line-height:1.5;overflow-x:hidden}h1,h2,h3{margin:0;font-weight:600}button,input,select,textarea{font:inherit;color:inherit}[hidden]{display:none!important}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.note-id{color:var(--muted,gray);font-variant-numeric:tabular-nums;font-size:.8rem}.spacer{flex:1}.empty,.note{color:var(--ink-dim);font-size:.9rem}.empty{text-align:center;padding:24px 8px}.error{color:var(--wrong);margin:8px 0;font-size:.88rem}.inline-glyph svg{vertical-align:-.2em;width:1.1em;height:1.1em}.app{max-width:640px;min-height:100dvh;padding:calc(env(safe-area-inset-top) + 12px) var(--gutter) calc(var(--tap) + 28px + env(safe-area-inset-bottom));margin:0 auto}.banner{border-radius:var(--radius);background:var(--warn-soft);color:var(--warn);margin:0 0 12px;padding:10px 12px;font-size:.85rem}.sections{z-index:20;padding:6px var(--gutter) calc(6px + env(safe-area-inset-bottom));background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);justify-content:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.sections button{width:72px;height:var(--tap);border-radius:var(--radius);color:var(--ink-faint);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;display:inline-flex}.sections button svg{width:24px;height:24px}.sections button[aria-current=page]{color:var(--accent);background:var(--accent-soft)}.icon-btn{width:var(--tap);height:var(--tap);border:1px solid var(--line);background:var(--surface);color:var(--ink);cursor:pointer;border-radius:999px;flex:none;justify-content:center;align-items:center;padding:0;transition:background .15s,border-color .15s,color .15s;display:inline-flex;position:relative}.icon-btn:hover:not(:disabled){border-color:var(--line-strong)}.icon-btn.quiet{color:var(--ink-dim);background:0 0;border-color:#0000}.icon-btn.quiet:hover:not(:disabled){color:var(--ink);border-color:var(--line)}.icon-btn.primary{border-color:var(--accent);background:var(--accent);color:var(--accent-ink)}.icon-btn[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.icon-btn.primary[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}.icon-btn:disabled{opacity:.4;cursor:default}.icon-btn.small{width:36px;height:36px}.icon-btn.small svg{width:16px;height:16px}.icon-btn.inline-speak{vertical-align:middle;width:22px;height:22px}.icon-btn.inline-speak svg{width:14px;height:14px}.icon-btn.big{width:64px;height:64px}.icon-btn.big svg{width:26px;height:26px}.icon-btn.hold{color:var(--ink-dim);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.icon-btn.hold:hover{color:var(--wrong)}.hold-ring{pointer-events:none;background:conic-gradient(var(--wrong) var(--fill,0deg), transparent 0);border-radius:999px;position:absolute;inset:3px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px));mask:radial-gradient(farthest-side,#0000 calc(100% - 3px),#000 calc(100% - 2px))}@property --fill{syntax:"<angle>";inherits:false;initial-value:0deg}.icon-btn.hold.holding{color:var(--wrong)}.icon-btn.hold.holding .hold-ring{animation:fill var(--hold) linear forwards}@keyframes fill{to{--fill:360deg}}.manage{flex-direction:column;gap:8px;display:flex}.manage-head,.toolbar,.group-head,.editor-actions,.inline-form,.destination{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.manage-head{z-index:5;background:var(--bg);padding:4px 0;position:sticky;top:0}.panel-body{flex-direction:column;gap:12px;display:flex}.rows,.items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.row-main{width:100%;min-height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);text-align:left;cursor:pointer;align-items:center;gap:10px;padding:10px 14px;display:flex}.row-main svg{color:var(--ink-faint);flex:none}.row-text{overflow-wrap:anywhere;flex:1;min-width:0}.row-count{color:var(--ink-dim);font-size:.8rem}.row-warn{background:var(--warn-soft);width:20px;height:20px;color:var(--warn);border-radius:999px;justify-content:center;align-items:center;font-size:.75rem;font-weight:700;display:inline-flex}.group-name{overflow-wrap:anywhere;flex:1;min-width:0;font-size:1.05rem}.inline-form input,.pending-name,.destination select,.move select{min-width:0;height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex:1;padding:0 12px}.item{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);align-items:flex-start;gap:8px;padding:8px 8px 8px 14px;display:flex}.item.editing{padding:10px;display:block}.item-main{flex:1;min-width:0;padding-top:11px}.item-prompt{overflow-wrap:anywhere;margin:0}.item-actions{flex:none;display:flex}.warnings{color:var(--warn);margin:6px 0 0;padding:0 0 0 18px;font-size:.82rem}.editor{flex-direction:column;gap:8px;display:flex}.editor.adding{border:1px solid var(--accent);border-radius:var(--radius);background:var(--surface);padding:10px}.concise{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-sunk);width:100%;min-height:8em;font-family:var(--font);tab-size:4;resize:vertical;white-space:pre;padding:10px 12px;font-size:.92rem;line-height:1.5;overflow-x:auto}.parse-summary p{color:var(--ink-dim);margin:0;font-size:.85rem}.warned-item{margin-top:6px}.move{min-width:0;color:var(--ink-dim);flex:1;align-items:center;gap:6px;display:flex}@media (width>=720px){:root{--gutter:24px}.stage{padding:24px 28px 18px}.prompt{font-size:1.5rem}.crumbs{margin-left:-28px;margin-right:-28px;padding:0 28px 4px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}.stay-ring,.icon-btn.hold.holding .hold-ring{animation-duration:var(--hold)!important}}.pull-refresh{top:env(safe-area-inset-top);background:var(--surface);border:1px solid var(--line);width:36px;height:36px;color:var(--accent);pointer-events:none;z-index:50;opacity:0;border-radius:50%;justify-content:center;align-items:center;margin:10px 0 0 -18px;display:flex;position:fixed;left:50%;transform:translateY(-64px);box-shadow:0 2px 10px #00000026}.pull-refresh svg{width:18px;height:18px;display:block}.pull-refresh-icon.spinning{animation:.6s linear infinite pull-spin}@keyframes pull-spin{to{transform:rotate(360deg)}}.word{cursor:pointer}.word:hover{color:var(--accent)}.dict-popup,.dict-settings{z-index:30;background:var(--bg);color:var(--ink);padding:calc(env(safe-area-inset-top) + 12px) var(--gutter) calc(env(safe-area-inset-bottom) + 12px);flex-direction:column;display:flex;position:fixed;inset:0;overflow-y:auto}.dict-head{z-index:5;background:var(--bg);align-items:center;gap:6px;padding:4px 0;display:flex;position:sticky;top:0}.dict-word{overflow-wrap:anywhere;flex:1;min-width:0}.dict-body{gap:var(--gutter);flex-direction:column;padding-top:12px;display:flex}.dict-status{color:var(--ink-dim);text-align:center;padding:24px 8px}.dict-image{object-fit:contain;border-radius:var(--radius);background:var(--surface-sunk);width:100%;max-height:200px}.dict-phonetic{color:var(--ink-dim);align-items:center;gap:8px;display:flex}.dict-group{border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:8px;padding:12px;display:flex}.pos-badge{background:var(--accent);color:var(--accent-ink);border-radius:999px;align-self:flex-start;padding:2px 10px;font-size:.75rem;font-weight:600}.dict-def p{margin:0 0 4px}.dict-example{color:var(--ink-dim);font-style:italic}.dict-head .inline-form{flex-wrap:nowrap;flex:1}.dict-foot{justify-content:space-between;align-items:center;display:flex}.dict-foot .report-failed{color:var(--wrong)}.dict-foot-actions{align-items:center;display:flex}.dict-source{color:var(--ink-faint);margin:0;font-size:.75rem}.dict-close-bottom{border-radius:var(--radius);width:100%;height:48px;margin-top:8px}.markmap-box{border:1px solid var(--line);border-radius:var(--radius);height:200px;position:relative;overflow:hidden}.markmap-box,.markmap-full{color:#333;--markmap-text-color:#333;--markmap-circle-open-bg:#fff;background:#fff}.markmap-box .icon-btn.quiet,.markmap-full .icon-btn.quiet{color:#555}.markmap-svg{width:100%;height:100%}.markmap-expand{position:absolute;top:8px;right:8px}.markmap-full{z-index:40;position:fixed;inset:0}.markmap-full .markmap-svg{width:100%;height:100%}.markmap-close{top:calc(env(safe-area-inset-top) + 8px);z-index:1;position:absolute;right:8px}.dict-field{flex-direction:column;gap:4px;display:flex}.dict-field span{color:var(--ink-dim);font-size:.85rem}.dict-field input,.dict-field select{height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:0 12px}.voice-row{align-items:center;gap:6px;display:flex}.voice-row select{flex:1;min-width:0}:root{--w0:#2563eb;--w1:#7c3aed;--w2:#0891b2;--w3:#059669;--w4:#b45309;--w5:#dc2626;--w6:#9333ea;--w7:#0d9488;--w8:#c2410c;--w9:#4f46e5}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--w0:#7aa7f7;--w1:#b39cf5;--w2:#5cc8e0;--w3:#5fd0a4;--w4:#e8b060;--w5:#f28b82;--w6:#cf9cf5;--w7:#5fd0c2;--w8:#f0a070;--w9:#9aa3f7}}:root[data-theme=dark]{--w0:#7aa7f7;--w1:#b39cf5;--w2:#5cc8e0;--w3:#5fd0a4;--w4:#e8b060;--w5:#f28b82;--w6:#cf9cf5;--w7:#5fd0c2;--w8:#f0a070;--w9:#9aa3f7}.w0{color:var(--w0)}.w1{color:var(--w1)}.w2{color:var(--w2)}.w3{color:var(--w3)}.w4{color:var(--w4)}.w5{color:var(--w5)}.w6{color:var(--w6)}.w7{color:var(--w7)}.w8{color:var(--w8)}.w9{color:var(--w9)}.wf{color:var(--ink-dim)}.wb{font-weight:700}.notes,.reading{flex-direction:column;gap:8px;display:flex}:root[data-notes-dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-notes-page]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-notes-page] body{--accent:#2f6f5e;--accent-ink:#fff;--accent-soft:#e4efeb;--right:#2f7a52;--right-soft:#e2f1e8;--wrong:#a2413a;--wrong-soft:#f8e5e2;--warn:#8a5a2b;--warn-soft:#f6ecdf;--w0:#2563eb;--w1:#7c3aed;--w2:#0891b2;--w3:#059669;--w4:#b45309;--w5:#dc2626;--w6:#9333ea;--w7:#0d9488;--w8:#c2410c;--w9:#4f46e5}:root[data-notes-page=white] body{--bg:#fff;--surface:#f7f7f7;--surface-sunk:#efefef;--line:#e2e2e2;--line-strong:#c8c8c8;--ink:#1a1a1a;--ink-dim:#666;--ink-faint:#999}:root[data-notes-page=sepia] body{--bg:#f6ecd6;--surface:#fbf4e4;--surface-sunk:#efe3c8;--line:#e2d4b5;--line-strong:#cdbb96;--ink:#3b2f20;--ink-dim:#6f604a;--ink-faint:#9a8a70}:root[data-notes-page=green] body{--bg:#cfe6d3;--surface:#dff0e2;--surface-sunk:#c2dcc7;--line:#b3cfb9;--line-strong:#97b99e;--ink:#1f2e22;--ink-dim:#4f6453;--ink-faint:#7b8f7f}.page-swatch{border:1px solid var(--line-strong);cursor:pointer;border-radius:50%;width:36px;height:36px;padding:0}.page-swatch[aria-pressed=true]{outline:3px solid var(--accent);outline-offset:2px}.note-page[data-margin=medium]{padding-inline:1.25rem}.note-page[data-margin=wide]{padding-inline:2.5rem}.note-page[data-align=justify]{text-align:justify;-webkit-hyphens:auto;hyphens:auto}.note-day{flex-direction:column;gap:4px;display:flex}.note-day-head{color:var(--ink-dim);margin:8px 0 0;font-size:.8rem;font-weight:600}.note-day .rows{gap:4px}.note-search{width:100%;height:var(--tap);border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);padding:0 12px}.note-row{border-radius:var(--radius);position:relative;overflow:hidden}.note-row .row-main{z-index:1;touch-action:pan-y;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;min-height:40px;padding:8px 12px;transition:transform .25s;position:relative}.note-row-delete{border-radius:var(--radius);background:var(--wrong-soft);justify-content:space-evenly;align-items:center;width:128px;display:flex;position:absolute;top:0;bottom:0;left:0}.note-row-delete .icon-btn.hold{color:var(--wrong)}.note-row-move{border-radius:var(--radius);background:var(--accent-soft);justify-content:center;align-items:center;width:64px;display:flex;position:absolute;top:0;bottom:0;right:0}.note-row[data-group] .row-main{background:color-mix(in srgb, var(--group) 22%, var(--surface));border-color:color-mix(in srgb, var(--group) 45%, var(--surface))}.note-row.selected .row-main{outline:2px solid var(--accent);outline-offset:-2px}.note-check{border:2px solid var(--line-strong);border-radius:50%;flex:none;justify-content:center;align-items:center;width:22px;height:22px;display:inline-flex}.note-row.selected .note-check{border-color:var(--accent);background:var(--accent)}.note-row .row-main .note-check svg{width:14px;height:14px;color:var(--accent-ink)}.note-select-count{color:var(--ink-dim);font-weight:600}.icon-btn.danger{color:var(--wrong)}.note-group-dots{flex-wrap:wrap;gap:2px;display:flex}.note-group-form{flex-direction:column;gap:8px;display:flex}.note-group-form input,.note-group-rename input{scroll-margin-top:calc(var(--tap) + 24px)}.note-title,.note-snippet{display:block}.note-title-row{align-items:center;gap:4px;min-width:0;display:flex}.note-title-row .note-title{flex:1;min-width:0}.note-mindmap-badge{color:var(--ink-dim);flex:none;display:inline-flex}.note-mindmap-badge svg{width:14px;height:14px}.note-row:not(.expanded) .note-title{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.note-snippet{color:var(--ink-dim);font-size:.85rem}.note-page{overflow-wrap:anywhere;line-height:1.6}.note-mindmap .markmap-box{height:calc(100dvh - 220px)}.note-html iframe{border-radius:var(--radius);pointer-events:none;background:#fff;border:0;width:100%;min-height:200px;display:block}.note-editor{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);width:100%;min-height:60dvh;font:inherit;resize:vertical;padding:10px 12px;line-height:1.6}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4{margin:1em 0 .4em;line-height:1.3}.md-preview h1{font-size:1.5em}.md-preview h2{font-size:1.3em}.md-preview h3{font-size:1.15em}.md-preview h4{font-size:1em}.md-preview p{white-space:pre-line;margin:0 0 .8em}.md-preview blockquote{border-left:3px solid var(--line-strong);color:var(--ink-dim);white-space:pre-line;margin:0 0 .8em;padding:2px 0 2px 12px}.md-preview ul,.md-preview ol{margin:0 0 .8em;padding-left:1.4em}.md-preview pre{border-radius:var(--radius);background:var(--surface-sunk);font-family:var(--font);margin:0 0 .8em;padding:10px 12px;font-size:.85em;overflow-x:auto}.md-table{margin:0 0 .8em;overflow-x:auto}.md-table table{border-collapse:collapse;font-size:.9em}.md-table th,.md-table td{border:1px solid var(--line);padding:4px 8px}.md-preview hr{border:none;border-top:1px solid var(--line);margin:1em 0}.md-preview.wrap .icon-btn.inline-speak{margin-left:2px}.note-lines{flex-direction:column;gap:4px;display:flex}.note-line{border-radius:var(--radius);align-items:flex-start;gap:6px;padding:4px 8px;display:flex}.note-line.current{background:var(--accent-soft)}.note-line.past{opacity:.45}.note-line-text{flex:1;min-width:0}.note-line .icon-btn.inline-speak{margin-top:.2em}.word-current{background:var(--accent-soft);text-decoration:underline;-webkit-text-decoration-color:var(--accent);text-decoration-color:var(--accent);text-underline-offset:3px;border-radius:3px;text-decoration-thickness:2px}.word-past{color:var(--ink-faint)}.note-size{text-align:center;min-width:2.5em;color:var(--ink-dim)}.dict-speech{border-bottom:1px solid var(--line);flex-direction:column;gap:10px;padding:10px 0 12px;display:flex}.dict-field-row{flex-direction:row;justify-content:space-between;align-items:center}.dict-field-row input{height:auto}.muted{color:var(--ink-dim)}.small{font-size:.85rem}.notice{border-radius:var(--radius);background:var(--accent-soft);color:var(--ink);margin:0;padding:10px 12px;font-size:.9rem}.chip{border:1px solid var(--line);background:var(--surface);color:var(--ink-dim);border-radius:999px;margin:0 6px 6px 0;padding:2px 10px;font-size:.85rem;display:inline-block}.spinner{border:2px solid;border-right-color:#0000;border-radius:50%;width:18px;height:18px;animation:.8s linear infinite spin;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}.signin{text-align:center;min-height:100dvh;padding-bottom:calc(env(safe-area-inset-bottom) + 24px);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.signin h1{margin:0;font-size:1.8rem}.signin-logo{border-radius:22px}.signin-lede{max-width:30ch;color:var(--ink-dim);margin:0;line-height:1.5}.signin-google{background:var(--surface);border:1px solid var(--line-strong);width:72px;height:72px;text-decoration:none}.signin-google svg{width:30px;height:30px}.signin-note{max-width:36ch;color:var(--ink-faint);margin:0;font-size:.8rem;line-height:1.5}.menu{flex-direction:column;gap:20px;display:flex}.menu-who{align-items:center;gap:12px;display:flex}.menu-who img{border-radius:50%}.menu-who>span{overflow-wrap:anywhere;flex-direction:column;min-width:0;display:flex}.menu-actions{flex-wrap:wrap;gap:12px;display:flex}.note-preview-text{white-space:pre-line;-webkit-line-clamp:unset;max-height:40vh;display:block;overflow-y:auto}.create{flex-direction:column;gap:10px;display:flex}.create-text{min-height:40dvh}.create-count{text-align:right;margin:-4px 0 0}.create-preview{border:1px solid var(--line);border-radius:var(--radius);background:var(--surface);flex-direction:column;gap:6px;padding:12px;display:flex}.create-preview p{margin:0}.create-kind{align-items:center;gap:8px;font-weight:600;display:flex}.create-pictures{line-height:2}.countdown{font-variant-numeric:tabular-nums;font-weight:700}.player{flex-direction:column;gap:12px;display:flex}.player-title{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:600;overflow:hidden}.stage{width:100%;max-height:calc(100dvh - 220px - env(safe-area-inset-top) - env(safe-area-inset-bottom));aspect-ratio:4/5;border:1px solid var(--line);background:var(--surface);-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:18px;flex-direction:column;justify-content:center;align-items:center;gap:16px;margin:0 auto;padding:20px 18px;display:flex;position:relative;overflow:hidden}.stage-slot{flex:0 0 42%;justify-content:center;align-items:center;width:100%;display:flex}.stage-img{object-fit:contain;border-radius:14px;max-width:80%;max-height:100%;animation:.3s ease-out fade-in}.stage-noimg{color:var(--ink-faint);font-size:.9rem;animation:.3s ease-out fade-in}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.stage-text{text-align:center;overflow-wrap:anywhere;max-width:100%;margin:0;font-size:1.5rem;line-height:1.45}.stage[data-size=sm] .stage-text{font-size:1.1rem}.stage[data-size=md] .stage-text{font-size:1.3rem}.stage[data-size=xl] .stage-text{font-size:1.9rem}.stage-text.heading{letter-spacing:-.01em;font-weight:750}.sw{cursor:pointer;-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.18em;transition:background-color .12s}.sw-on{background-color:color-mix(in srgb, var(--accent) 28%, transparent);box-shadow:0 0 0 .08em color-mix(in srgb, var(--accent) 28%, transparent)}.stage .word-current{outline:2px solid var(--accent);outline-offset:1px}.stage.editing .sw-cand{text-underline-offset:.2em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted;text-decoration-thickness:.08em}.stage.editing .sw-pic{outline:.08em solid var(--accent);outline-offset:.06em}.stage.editing{border-color:var(--accent);border-style:dashed}.player-controls{justify-content:center;align-items:center;gap:24px;display:flex}.player-hint{text-align:center;margin:0}.gate{position:relative}.gate.waiting:after{content:"";background:conic-gradient(var(--accent) calc(var(--p,0) * 360deg), var(--line) 0);border-radius:50%;position:absolute;inset:-5px;-webkit-mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 calc(100% - 3px));mask:radial-gradient(farthest-side,#0000 calc(100% - 4px),#000 calc(100% - 3px))}.scrub{touch-action:none;cursor:pointer;align-items:center;gap:10px;padding:8px 0;display:flex}.scrub-track{background:var(--line);border-radius:3px;flex:1;height:6px;position:relative}.scrub-para{background:var(--line-strong);width:2px;height:12px;position:absolute;top:-3px}.scrub-fill{background:var(--accent);border-radius:3px;position:absolute;top:0;bottom:0;left:0}.scrub-head{background:var(--accent);border-radius:50%;width:14px;height:14px;position:absolute;top:-4px;box-shadow:0 1px 3px #0000004d}.scrub-label{text-align:right;min-width:5ch;color:var(--ink-dim);font-variant-numeric:tabular-nums;flex:none;font-size:.8rem}.sheet-back{z-index:35;background:#00000059;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{width:100%;max-width:640px;max-height:90dvh;padding:12px var(--gutter) calc(env(safe-area-inset-bottom) + 16px);background:var(--bg);color:var(--ink);border-radius:18px 18px 0 0;flex-direction:column;gap:12px;display:flex;overflow-y:auto}.sheet-word{margin:0;font-size:1.2rem}.sheet-picture{background:var(--surface-sunk);border-radius:14px;justify-content:center;align-items:center;height:180px;display:flex}.sheet-picture img{object-fit:contain;border-radius:12px;max-width:100%;max-height:100%}.sheet-actions{flex-wrap:wrap;gap:12px;display:flex}.sheet-actions .icon-btn{width:auto;min-width:var(--tap);gap:2px;padding:0 12px}.settings{flex-direction:column;gap:16px;display:flex}.settings input[type=range]{width:100%}.thumbs{grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:12px 0 0;padding:0;list-style:none;display:grid}.thumb{flex-direction:column;align-items:center;gap:2px;font-size:.8rem;display:flex;position:relative}.thumb-img{aspect-ratio:1;background:var(--surface-sunk);border-radius:10px;justify-content:center;align-items:center;width:100%;display:flex;overflow:hidden}.thumb-img img{object-fit:contain;width:100%;height:100%}.thumb-word{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.thumb-del{width:32px;min-width:0;height:32px;position:absolute;top:-6px;right:-6px}:root[data-notes-dark] body{--bg:#121d2e;--surface:#1c2a41;--surface-sunk:#0b1320;--line:#2b3b55;--line-strong:#3c5278;--ink:#eaf1fa;--ink-dim:#a3b4cc;--ink-faint:#76889f;--accent:#7fc4ac;--accent-ink:#0d2119;--accent-soft:#23413a}
