:root{--ground: #EFE9DD;--paper: #FBF8F1;--ink: #1B1B1B;--ink-2: #5E5A50;--ink-3: #8C8779;--rule: #D8D0BE;--rule-2: #E6DFD0;--blue: #2B4C7E;--blue-ink: #FFFFFF;--blue-tint: #E3E9F3;--dim: #B9B2A2;--ok: #2F7A4C;--warn: #9A6A12;--bad: #A3362B;--scrim: rgba(27, 27, 27, .35);--dock-fade: rgba(27, 27, 27, .07);--chrome: #E6DFD0;--chrome-edge: rgba(27, 27, 27, .1);--shadow: 0 1px 0 rgba(27,27,27,.06), 0 8px 24px rgba(27,27,27,.12);--sat: env(safe-area-inset-top, 0px);--sab: env(safe-area-inset-bottom, 0px);color-scheme:light}:root[data-theme=dark],:root[data-theme=system].dark-system{--ground: #18181B;--paper: #222226;--ink: #ECE6D8;--ink-2: #B3AD9E;--ink-3: #7F7A6E;--rule: #34343A;--rule-2: #2C2C31;--blue: #8FB0E0;--blue-ink: #10151F;--blue-tint: #232A38;--dim: #4C4C52;--ok: #6FBF8A;--warn: #D9A94A;--bad: #E07A6E;--scrim: rgba(0, 0, 0, .55);--dock-fade: rgba(0, 0, 0, .4);--chrome: #121216;--chrome-edge: rgba(0, 0, 0, .6);--shadow: 0 1px 0 rgba(0,0,0,.4), 0 8px 24px rgba(0,0,0,.5);color-scheme:dark}*{box-sizing:border-box}html{height:100%}body{margin:0;min-height:100%;background:var(--ground);color:var(--ink);font:15px/1.45 -apple-system,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}button,input{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}a{color:var(--blue)}:focus-visible{outline:2px solid var(--blue);outline-offset:2px}[hidden]{display:none!important}.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}#app{max-width:480px;margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.appbar{position:sticky;top:0;z-index:3;padding-top:var(--sat);height:calc(48px + var(--sat));display:flex;align-items:center;gap:6px;padding-left:8px;padding-right:8px;background:var(--chrome)}.appbar h1{font:500 18px/1 Georgia,Times New Roman,serif;letter-spacing:-.01em;margin:0;flex:1;padding-left:6px;text-transform:lowercase}.iconbtn{width:40px;height:40px;border:0;background:transparent;border-radius:10px;display:grid;place-items:center;color:var(--ink)}.iconbtn:hover{background:var(--rule-2)}.iconbtn svg{width:22px;height:22px}.iconbtn.tint{color:var(--blue)}.scrim{position:fixed;inset:0;background:var(--scrim);z-index:4;opacity:0;pointer-events:none;transition:opacity .2s}.scrim.open{opacity:1;pointer-events:auto}body.locked{overflow:hidden}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:5;max-height:88dvh;width:100%;max-width:480px;margin:0 auto;background:var(--paper);border-radius:18px 18px 0 0;box-shadow:var(--shadow);transform:translateY(101%);transition:transform .24s cubic-bezier(.2,.8,.3,1);display:flex;flex-direction:column}.sheet.open{transform:none}@media(prefers-reduced-motion:reduce){.sheet,.scrim{transition:none}}.sheet-top{flex:none;position:relative;min-height:46px;display:grid;place-items:center;touch-action:none}.grab{border:0;background:transparent;padding:10px 24px;display:grid;place-items:center;cursor:grab}.grab i{width:40px;height:4px;border-radius:2px;background:var(--dim);display:block}.sheet-x{position:absolute;right:6px;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;background:transparent;border-radius:50%;display:grid;place-items:center;color:var(--ink-3)}.sheet-x svg{width:18px;height:18px}.sheet-x:hover{background:var(--rule-2);color:var(--ink)}.sheet-body{overflow-y:auto;overscroll-behavior:contain;padding:0 18px calc(20px + var(--sab))}.sheet-head{margin:4px 0 2px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.sheet-about{border-top:1px solid var(--rule-2);margin-top:8px;padding-top:16px}.sheet-about .name{font:500 20px/1.2 Georgia,Times New Roman,serif;letter-spacing:-.01em}.sheet-about p{margin:8px 0 0;font-size:14.5px;color:var(--ink-2);line-height:1.45}.sheet-about code{font:500 13px ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.1em;color:var(--blue)}.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.chips a{text-decoration:none;display:inline-flex;align-items:center;gap:7px;border:1px solid var(--rule);border-radius:999px;padding:9px 14px;font-size:13.5px;color:var(--ink-2);min-height:42px}.chips a svg{width:15px;height:15px;color:var(--ink-3)}.build{margin-top:16px;font-size:12px;color:var(--ink-3)}.build a{color:var(--ink-3);text-decoration:none}.linkish{border:0;background:transparent;color:var(--blue);font-size:12px;padding:4px 0}.view{flex:1;padding:0 18px calc(40px + var(--sab))}.view h2.page{font:500 24px/1.2 Georgia,serif;margin:22px 0 6px;letter-spacing:-.01em}.view p.lead{color:var(--ink-2);margin:0 0 18px;max-width:60ch}.searchbar{position:sticky;top:calc(48px + var(--sat));z-index:2;background:var(--chrome);margin:0 -18px;padding:12px 18px;box-shadow:0 1px 0 var(--rule),0 8px 16px -10px var(--chrome-edge)}body.search-bottom .querybar{position:fixed;left:0;right:0;bottom:0;z-index:3;width:100%;max-width:480px;margin:0 auto;background:var(--chrome);padding:10px 18px calc(10px + var(--sab));box-shadow:0 -1px 0 var(--rule),0 -10px 24px var(--dock-fade)}body.search-bottom .searchbar{padding:0;margin:0;background:transparent;box-shadow:none}body.search-bottom .view{padding-bottom:calc(96px + var(--sab))}.search{display:flex;gap:8px}.field{flex:1;display:flex;align-items:center;gap:8px;min-width:0;background:var(--paper);border:1.5px solid var(--rule);border-radius:12px;padding:0 12px;height:50px}.field:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-tint)}.field input{flex:1;min-width:0;border:0;outline:0;background:transparent;font-size:18px;height:100%}.field input::-webkit-search-cancel-button{display:none}.field input::placeholder{color:var(--ink-3)}.clear{border:0;background:transparent;color:var(--ink-3);width:28px;height:28px;border-radius:50%;display:grid;place-items:center}.go{flex:none;width:50px;height:50px;border-radius:12px;border:0;background:var(--blue);color:var(--blue-ink);display:grid;place-items:center}.go svg{width:22px;height:22px}.constraints{display:flex;align-items:center;gap:10px;margin-top:8px;min-height:38px}.chip{border:1px solid var(--rule);background:transparent;color:var(--ink-2);border-radius:999px;padding:6px 12px;font-size:13px;line-height:1;display:inline-flex;align-items:center;gap:6px;min-height:34px}.chip[aria-pressed=true]{background:var(--blue-tint);border-color:var(--blue);color:var(--blue)}.pattern{display:flex;align-items:center;gap:8px;flex:0 1 220px;min-width:150px;height:38px;border:1.5px solid var(--rule);border-radius:10px;background:var(--paper);padding:0 8px 0 10px;color:var(--ink-3)}.pattern:focus-within{border-color:var(--blue);color:var(--blue)}.pattern input{flex:1;min-width:0;height:100%;border:0;outline:0;background:transparent;color:var(--ink);font:500 15px/1 ui-monospace,SF Mono,Menlo,Consolas,monospace;letter-spacing:.18em;text-transform:uppercase}.pattern input::placeholder{font:14px -apple-system,SF Pro Text,Segoe UI,Roboto,system-ui,sans-serif;letter-spacing:0;text-transform:none;color:var(--ink-3)}.constraints .hint{font-size:12px;color:var(--ink-3);flex:1;min-width:0}.constraints .hint b{color:var(--ink-2);font-weight:600;font-variant-numeric:tabular-nums}.constraints .hint.err{color:var(--bad)}.form-error{color:var(--bad);font-size:13px;margin-top:6px}.section{margin-top:22px}.section>h2{margin:0 0 8px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:8px}.section>h2 .count{font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums}.disclosure{flex:1;display:flex;align-items:center;gap:6px;border:0;background:transparent;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;padding:6px 0;margin:-6px 0;text-align:left}.disclosure .chev{width:15px;height:15px;color:var(--ink-3);transition:transform .18s}.disclosure[aria-expanded=true] .chev{transform:rotate(180deg)}@media(prefers-reduced-motion:reduce){.disclosure .chev{transition:none}}.peek{display:block;width:100%;text-align:left;border:0;background:transparent;padding:2px 0 4px;font-size:15px;color:var(--ink-2);line-height:1.4;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.peek .pos{font-style:italic;color:var(--ink-3);margin:0 5px 0 8px}.meaning .peekwrap,.meaning .bodywrap{display:grid;transition:grid-template-rows .28s ease,opacity .2s ease}.meaning .peekwrap>.inner,.meaning .bodywrap>.inner{overflow:hidden;min-height:0}.meaning .bodywrap>.inner{display:block}.meaning .panel{background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:14px 16px}.meaning .panel>.block+.block{border-top:1px solid var(--rule-2);margin-top:14px;padding-top:14px}.meaning .peekwrap{grid-template-rows:1fr;opacity:1}.meaning .bodywrap,.meaning.open .peekwrap{grid-template-rows:0fr;opacity:0}.meaning.open .bodywrap{grid-template-rows:1fr;opacity:1}@media(prefers-reduced-motion:reduce){.meaning .peekwrap,.meaning .bodywrap{transition:none}}::view-transition-group(*){animation-duration:.26s}::view-transition-old(root),::view-transition-new(root){animation-duration:.2s}.more{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--blue);font-size:14px;padding:12px 0 4px;border-top:1px solid var(--rule-2)}.pill{margin-left:auto;font-size:10px;letter-spacing:.06em;padding:3px 7px;border-radius:999px;background:var(--rule-2);color:var(--ink-2);text-transform:uppercase}.muted{color:var(--ink-3);font-size:14px;padding:6px 0}.notice{color:var(--ink-3);font-size:13px;padding:6px 0 0}.notice.bad{color:var(--bad)}#sec-meaning{margin-top:16px}#sec-answers{border-top:1px solid var(--rule);padding-top:18px;margin-top:20px}.subhead{margin:20px 0 6px;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);display:flex;align-items:center;gap:8px}.subhead .count{font-weight:500;letter-spacing:0;font-variant-numeric:tabular-nums}.handoff{padding:10px 0 6px}.handoff p{margin:0 0 10px;color:var(--ink-3);font-size:14px;line-height:1.4}.handoff p b{color:var(--ink-2);font-weight:600}.spoiler{padding:10px 0 6px}.handoff-btn,.reveal-btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:12px;padding:12px 16px;font-size:15px;text-decoration:none;min-height:46px}.handoff-btn:hover,.reveal-btn:hover{background:var(--rule-2)}.reveal-btn{font:inherit;font-size:15px;cursor:pointer}.peek.bad{color:var(--bad)}.handoff-btn svg{width:15px;height:15px;color:var(--ink-3);flex:none}.empty-state{padding:42px 0 24px;text-align:center}.empty-state .motif{display:flex;justify-content:center;gap:4px;margin-bottom:22px;opacity:.55}.empty-state .motif .tile{width:32px;height:34px;font-size:16px}.empty-state h2{font:500 21px/1.25 Georgia,Times New Roman,serif;letter-spacing:-.01em;margin:0 0 8px;color:var(--ink);text-transform:none}.empty-state p{margin:0 auto;max-width:30ch;color:var(--ink-3);font-size:14.5px;line-height:1.45}.examples{display:flex;flex-direction:column;align-items:center;gap:8px;margin-top:24px}.examples .eyebrow{margin-bottom:0}.examples button{border:1px solid var(--rule);background:transparent;color:var(--ink-2);border-radius:999px;padding:0 16px;min-height:40px;font-size:14px}.examples button:active{background:var(--rule-2)}.lenrow{display:flex;align-items:center;gap:10px;padding-bottom:12px}.lenlabel{flex:none;font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.lens{display:flex;overflow-x:auto;scrollbar-width:none;padding:1px 0;min-width:0}.lens::-webkit-scrollbar{display:none}.lensbar{display:inline-flex;flex:none;border:1px solid var(--rule);border-radius:999px;overflow:hidden;background:var(--paper)}.lensbar button{flex:none;border:0;border-left:1px solid var(--rule);background:transparent;color:var(--ink-2);min-width:44px;height:40px;padding:0 14px;font-size:15px;font-variant-numeric:tabular-nums}.lensbar button:first-child{border-left:0}.lensbar button[aria-pressed=true]{background:var(--blue);color:var(--blue-ink)}.answers{display:flex;flex-direction:column}.row{display:grid;grid-template-columns:1fr;grid-template-areas:"tiles" "gloss";gap:6px;padding:14px 0;border-top:1px solid var(--rule-2);text-align:left;background:transparent;border-left:0;border-right:0;border-bottom:0;width:100%;color:inherit;user-select:none}.row:first-child{border-top:0}.row:active{background:var(--rule-2)}.row.dim{opacity:.38}.tiles{grid-area:tiles;display:flex;flex-wrap:wrap;gap:3px;align-items:center}.tile{width:28px;height:30px;display:grid;place-items:center;background:var(--paper);border:1px solid var(--rule);border-bottom-width:2px;border-radius:4px;font:600 15px/1 ui-monospace,SF Mono,Menlo,Consolas,monospace;color:var(--ink)}.tile.hit{border-color:var(--blue);color:var(--blue);background:var(--blue-tint)}.tiles.long .tile{width:23px;height:27px;font-size:13px;border-radius:3px}.tiles.long{gap:2px}.gap{width:8px}.tiles.long .gap{width:5px}.len{margin-left:6px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.gloss{grid-area:gloss;font-size:15px;line-height:1.4;color:var(--ink-2)}.gloss .pos{font-style:italic;color:var(--ink-3);margin-right:4px}.card{background:var(--paper);border:1px solid var(--rule);border-radius:14px;padding:14px 16px}.head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.head .term{font:500 22px/1.1 Georgia,Times New Roman,serif;letter-spacing:-.01em}.head .ipa{color:var(--ink-3);font-size:14px}.head .play{margin-left:auto;width:32px;height:32px;border-radius:50%;border:1px solid var(--rule);background:transparent;display:grid;place-items:center;color:var(--blue)}.head .play svg{width:12px;height:12px}.senses{list-style:none;margin:10px 0 0;padding:0;display:flex;flex-direction:column;gap:8px}.senses li{display:grid;grid-template-columns:auto 1fr;gap:8px;font-size:14.5px;line-height:1.4}.senses .pos{font-style:italic;color:var(--ink-3);font-size:13px;padding-top:2px;min-width:22px}.senses .ex{display:block;color:var(--ink-3);font-size:13px;margin-top:2px}.senses li.more{display:none}.block.expanded .senses li.more{display:grid}.toggle{margin-top:10px;border:0;background:transparent;color:var(--blue);font-size:13px;padding:4px 0}.block.expanded .when-closed,.block:not(.expanded) .when-open{display:none}.src{margin-top:10px;font-size:11px;color:var(--ink-3);letter-spacing:.03em}.about{display:grid;grid-template-columns:64px 1fr;gap:12px;text-decoration:none;color:inherit}.meaning .panel .about:not(.nothumb){grid-template-columns:56px 1fr}.meaning .panel .thumb{width:56px;height:56px}.about.nothumb{grid-template-columns:1fr}.thumb{width:64px;height:64px;border-radius:8px;background:var(--blue-tint);overflow:hidden}.thumb img{width:100%;height:100%;object-fit:cover;display:block}.about .title{font:500 17px/1.2 Georgia,Times New Roman,serif;margin-bottom:4px;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}.about .title .ext{color:var(--ink-3);font-size:12px;font-family:-apple-system,system-ui,sans-serif}.about .extract{font-size:14px;color:var(--ink-2);line-height:1.4;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}.links{display:flex;gap:8px;flex-wrap:wrap}.links a{text-decoration:none;font-size:13px;padding:8px 12px;border-radius:999px;border:1px solid var(--rule);color:var(--ink-2);display:inline-flex;align-items:center;gap:5px;min-height:36px}.links a svg{width:11px;height:11px}.recent{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding:12px 0 4px;margin-bottom:4px}.recent::-webkit-scrollbar{display:none}.recent button{flex:none;border:1px solid var(--rule);background:transparent;color:var(--ink-2);border-radius:999px;padding:0 14px;font-size:13.5px;display:inline-flex;gap:6px;align-items:center;min-height:38px;white-space:nowrap}.recent button code{font:500 12px/1 ui-monospace,SF Mono,Menlo,monospace;letter-spacing:.12em;color:var(--blue)}.sk{height:30px;border-radius:6px;background:linear-gradient(90deg,var(--rule-2),var(--paper),var(--rule-2));background-size:200% 100%;animation:sh 1.1s linear infinite;margin:10px 0}.sk.short{width:55%;height:14px;margin-top:4px}.sk.card{height:110px;border-radius:14px}@keyframes sh{to{background-position:-200% 0}}@media(prefers-reduced-motion:reduce){.sk{animation:none}}.toast{position:fixed;left:50%;bottom:calc(28px + var(--sab));transform:translate(-50%) translateY(20px);background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:999px;font-size:13px;opacity:0;transition:opacity .18s,transform .18s;pointer-events:none;z-index:6;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis}.toast.show{opacity:1;transform:translate(-50%) translateY(0)}.toast.action{pointer-events:auto}.toast button{background:transparent;border:0;color:inherit;font-weight:600;margin-left:10px;text-decoration:underline}@media(prefers-reduced-motion:reduce){.toast{transition:none}}.empty{padding:18px 0;color:var(--ink-3);font-size:14px}.empty b{color:var(--ink-2);font-weight:600}.diag{display:flex;flex-direction:column;gap:10px}.diag .check{background:var(--paper);border:1px solid var(--rule);border-radius:12px;padding:12px 14px;display:grid;grid-template-columns:12px 1fr auto;gap:4px 10px;align-items:center}.diag .light{width:12px;height:12px;border-radius:50%;background:var(--dim)}.diag .light.ok{background:var(--ok)}.diag .light.warn{background:var(--warn)}.diag .light.bad{background:var(--bad)}.diag .light.run{background:var(--blue);animation:pulse 1s infinite alternate}@keyframes pulse{to{opacity:.3}}.diag .name{font-weight:600}.diag .ms{font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}.diag .detail{grid-column:2 / 4;font-size:13px;color:var(--ink-2);word-break:break-word}.diag .detail code{font:12px ui-monospace,Menlo,monospace;color:var(--ink-3)}.env{font-size:13px;color:var(--ink-2);display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:6px 0 14px}.env dt{color:var(--ink-3)}.env dd{margin:0;font-variant-numeric:tabular-nums}.btnrow{display:flex;gap:8px;flex-wrap:wrap;margin:12px 0}.btn{flex:none;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:10px;padding:10px 14px;font-size:14px;min-height:40px}.btn.primary{background:var(--blue);color:var(--blue-ink);border-color:var(--blue)}.btn.danger{color:var(--bad)}.setting{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px 14px;padding:14px 0;border-top:1px solid var(--rule-2)}.setting .text{flex:1 1 11rem;min-width:0}.setting:first-of-type{border-top:0}.setting .label{font-weight:500}.setting .sub{font-size:13px;color:var(--ink-3)}.seg{display:inline-flex;flex:none;border:1px solid var(--rule);border-radius:999px;overflow:hidden}.seg button{border:0;background:transparent;padding:7px 12px;font-size:13px;color:var(--ink-2)}.seg button[aria-pressed=true]{background:var(--blue);color:var(--blue-ink)}.switch{width:46px;height:28px;border-radius:999px;border:0;background:var(--dim);position:relative;flex:none}.switch:after{content:"";position:absolute;top:3px;left:3px;width:22px;height:22px;border-radius:50%;background:var(--paper);transition:transform .15s}.switch[aria-checked=true]{background:var(--blue)}.switch[aria-checked=true]:after{transform:translate(18px)}.about-page p{max-width:60ch}.about-page dl{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:14px}.about-page dt{color:var(--ink-3)}.about-page dd{margin:0}
