.dict-controls{gap:.875rem;margin-bottom:1.5rem;display:grid}.dict-head{align-items:center;gap:.5rem;display:flex}.dict-head .dict-search{flex:auto;min-width:0;max-width:28rem}.dict-search{position:relative}.dict-search .ic{color:var(--color-ink-faint);pointer-events:none;position:absolute;top:50%;left:.875rem;transform:translateY(-50%)}.dict-search .input{padding-left:2.5rem}.dict-empty{text-align:center;color:var(--color-ink-soft)}.dict-empty p{margin:0}.dict-list{gap:1rem;margin:0;padding:0;list-style:none;display:grid}.dict-skeleton{grid-template-columns:repeat(auto-fill,minmax(min(100%,19rem),1fr));gap:1.25rem;margin:0;padding:0;list-style:none;display:grid}.dict-entry{flex-direction:column;gap:.625rem;display:flex}.dict-entry__title{flex-wrap:wrap;align-items:center;gap:.25rem .625rem;display:flex}.dict-entry__term{color:var(--color-ink);letter-spacing:-.015em;overflow-wrap:anywhere;font-size:1.75rem;font-weight:800;line-height:1.2;text-decoration:none}[data-no-speech] .dict-entry__speak{visibility:hidden}.dict-entry__term:hover{color:var(--color-brand-strong)}.dict-entry__cefr{gap:.3rem;margin:0;display:flex}.dict-entry__lvl{background:var(--color-paper-soft);color:var(--color-ink-soft);text-align:center;border-radius:.5rem;flex:1;padding:.2rem 0;font-size:.7rem;font-style:normal;font-weight:800}.dict-entry__lvl--on{background:var(--tone-wash,var(--color-brand-wash));color:var(--tone-ink,var(--color-ink))}.dict-entry__foot{justify-content:space-between;gap:.5rem;margin:0;display:flex}.dict-entry__tr,.dict-entry__def,.dict-entry__eg,.dict-entry__posts{margin:0}.dict-entry__tr{font-weight:700}.entry-part{border-radius:var(--radius-card-sm);background:var(--color-paper);flex-wrap:wrap;align-items:center;gap:.5rem 1rem;padding:.75rem .875rem;display:flex}.entry-part__body{flex:18rem;gap:.25rem;min-width:0;display:grid}.entry-part__tags,.entry-part__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.entry-part__actions form{display:inline}.entry-part__actions .wd-actions__note{flex-basis:100%}.dict-entry__def{color:var(--color-ink-soft);font-size:.85rem}.dict-entry__eg{color:var(--color-ink-soft);font-size:.85rem;font-style:italic}.word-hint-w{all:unset;cursor:pointer;text-underline-offset:.2em;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.word-hint-w--phrase{-webkit-text-decoration:underline solid var(--color-warning);-webkit-text-decoration:underline solid var(--color-warning);text-decoration:underline solid var(--color-warning);text-decoration-thickness:2px}.word-hint-w:hover{color:var(--color-brand-strong)}.word-hint-w:focus-visible{outline:2px solid var(--color-brand-strong);outline-offset:1px;border-radius:2px}.word-hint-pop{z-index:50;border:1px solid var(--color-border);background:var(--color-card);width:min(20rem,100vw - 1rem);color:var(--color-ink);box-shadow:var(--shadow-pop);border-radius:.75rem;padding:.75rem .875rem;font-size:.875rem;font-style:normal;position:absolute}.word-hint-pop p{margin:0 0 .375rem}.dict-entry__actions{border-top:1px solid var(--color-border);flex-wrap:wrap;align-items:center;gap:.25rem;margin:auto 0 0;padding-top:.75rem;display:flex}.dict-entry__actions .tag{margin-right:auto}.dict-entry__actions form{display:inline}.dict-entry__actions .wd-actions__note{flex-basis:100%}.dict-notice{margin:0 0 1rem}.dict-back{margin:0 0 .5rem;font-size:.875rem}.review-list__title{margin:1.5rem 0 .75rem;font-size:1.125rem;font-weight:800}.review-list{flex-direction:column;gap:.5rem;margin:0;padding:0;list-style:none;display:flex}.review-list__item{justify-content:space-between;align-items:center;gap:1rem;padding:.75rem 1rem;display:flex}.review-list__main{min-width:0}.review-list__text{font-weight:700}.review-list__def{color:var(--color-ink-soft);margin:.125rem 0 0;font-size:.875rem}.review-list__more{margin:.75rem 0 0;font-size:.875rem}.dict-import{width:min(42rem,100% - 2rem);padding:1.25rem 1.4rem}.dict-import__head{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.dict-import__head h2{margin:0;font-size:1.2rem;font-weight:700}.dict-import[data-step=result] .dict-import__input,.dict-import[data-step=input] .dict-import__result{display:none}.dict-import__input,.dict-import__check{flex-direction:column;gap:.75rem;display:flex}.dict-import__words{resize:vertical;width:100%}.dict-import__note{margin:0 0 .75rem;font-weight:600}.dict-import__note:empty{display:none}.dict-import__foot{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-top:.25rem;display:flex}.dict-import__stats{flex-wrap:wrap;gap:.5rem;display:flex}.dict-import__stat{background:var(--color-paper-soft);border-radius:.8rem;margin:0;padding:.5rem .9rem;font-weight:700}.dict-import__stat strong{font-size:1.4rem;line-height:1.1;display:block}.dict-import__stat--ok{background:var(--color-success-wash);color:var(--color-success-ink)}.dict-import__stat--warn{background:var(--color-warning-wash);color:var(--color-warning-ink)}.dict-import__cols{grid-template-columns:1fr 1fr;gap:1rem;display:grid}@media (max-width:40rem){.dict-import__cols{grid-template-columns:1fr}}.dict-import__col{border:1px solid var(--color-border);background:var(--color-paper);border-radius:.9rem;min-width:0;margin:0;padding:.8rem}.dict-import__list{flex-direction:column;gap:.3rem;max-height:13rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex;overflow:auto}.dict-import__list li{border:1px solid var(--color-border);background:var(--color-card);border-radius:.6rem;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem .6rem;display:flex}.dict-import__list label{align-items:center;gap:.5rem;display:flex}.dict-import__list .dict-import__miss{background:var(--color-warning-wash);color:var(--color-warning-ink);border-color:#0000;font-weight:700}.dict-import__done{text-align:center;padding:1rem 0 0}.dict-import__done-title{margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.dict-import__done .dict-import__foot{justify-content:center;margin-top:1rem}.dict-load{text-align:center;margin-top:1.5rem}.dict-load:empty{display:none}.dict-lede{max-width:40rem;color:var(--color-ink-soft);margin:0 0 1.25rem}.dict-titlebar{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;display:flex}.dict-titlebar__actions{flex-wrap:wrap;gap:.5rem;display:flex}.dict-section{border-bottom:1px solid var(--color-border);flex-wrap:wrap;gap:.375rem;margin:0 0 1.5rem;display:flex}.dict-section__tab{color:var(--color-ink-soft);border-bottom:3px solid #0000;margin-bottom:-1px;padding:.625rem .875rem;font-weight:700;text-decoration:none}.dict-section__tab[aria-current=page]{border-bottom-color:var(--color-brand);color:var(--color-brand-strong)}.dict-results-wrap{position:relative}.dict-skeleton{display:none;position:absolute;inset:0}.dict-skeleton__card{gap:.75rem;display:grid}#dict-results{scroll-margin-top:5rem}#dict-filters.htmx-request~.dict-results-wrap .dict-skeleton{opacity:0;animation:0s .2s forwards dict-fade-in;display:grid}#dict-filters.htmx-request~.dict-results-wrap #dict-results{opacity:0;transition:opacity .15s .2s}@keyframes dict-fade-in{to{opacity:1}}.ov{gap:1rem;display:grid}.ov h2,.ov-search h2{margin:0 0 .75rem;font-size:1.25rem;font-weight:800}.ov-muted{color:var(--color-ink-soft);margin:0}.ov-link{color:var(--color-brand-strong);font-weight:700}.ov-today{flex-wrap:wrap;align-items:center;gap:1.5rem 2.5rem;display:flex}.ov-today>*{flex:15rem}.ov-today h2{margin-bottom:.5rem}.ov-today__due,.ov-today__clear{color:var(--color-brand-strong);margin:0;font-weight:800}.ov-today__due{color:var(--color-ink-soft);font-weight:600}.ov-today__num{color:var(--color-brand-strong);font-size:3rem;font-weight:800;line-height:1}.ov-today__clear{color:var(--color-success-ink);font-size:1.75rem;line-height:1.1}.ov-today__label{margin-bottom:.25rem;font-size:.875rem}.ov-today__names{margin:0 0 .875rem}.ov-today__actions{flex-wrap:wrap;align-items:center;gap:.875rem;display:flex}.ov-tiles{gap:.5rem;margin:0 0 .875rem;padding:0;list-style:none;display:flex}.ov-tile{border-radius:var(--radius-card-sm);flex:1;padding:.625rem .75rem;font-size:.8125rem}.ov-tile b{font-size:1.5rem;line-height:1.1;display:block}.ov-tile--new{background:var(--color-blue-wash);color:var(--color-blue-ink)}.ov-tile--learning{background:var(--color-warning-wash);color:var(--color-warning-ink)}.ov-tile--review{background:var(--color-success-wash);color:var(--color-success-ink)}.ov-goal{justify-content:space-between;gap:.5rem;margin:0;font-size:.875rem;display:flex}.ov-bar{background:var(--color-paper-soft);border-radius:.375rem;height:.625rem;margin:.375rem 0 .25rem;overflow:hidden}.ov-bar i{background:var(--color-success);height:100%;display:block}.ov-mine__head,.ov-group__head{justify-content:space-between;align-items:baseline;gap:.75rem;display:flex}.ov-group__head{margin:1.5rem 0 .625rem}.ov-group__head h2{margin:0}.ov-group__head h2 .ov-muted{font-size:.9375rem;font-weight:600}.ov-tags{flex-wrap:wrap;gap:.5rem;margin:0 0 .75rem;display:flex}.ov-tags .tag{background:var(--color-paper-soft);color:var(--color-ink-soft)}.ov-tags .tag.tone-green{background:var(--tone-wash);color:var(--tone-ink)}.ov-mine__list{margin:0}.ov-empty__title{margin:0 0 .25rem;font-size:1.25rem;font-weight:800}.ov-empty__hint{margin-top:1rem;font-size:.875rem}.ov-chips{flex-wrap:wrap;gap:.5rem;margin:.5rem 0 0;padding:0;list-style:none;display:flex}.ov-chip{border:2px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-card);padding:.5rem .875rem;font-weight:700;text-decoration:none;display:inline-block}.ov-empty__actions{flex-wrap:wrap;gap:.625rem;margin-top:1.125rem;display:flex}.ov-browse h2{margin-top:.75rem}.ov-browse__grid{grid-template-columns:repeat(auto-fit,minmax(min(17.5rem,100%),1fr));gap:1rem;display:grid}.ov-browse__card{text-decoration:none;display:block}.ov-browse__card h3{margin:0 0 .25rem;font-size:1.25rem;font-weight:800}.ov-browse__card p{color:var(--color-ink-soft);margin:0 0 .75rem}.ov-promo{background:var(--color-brand-strong);color:var(--color-on-brand);border-radius:1.5rem;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:2rem;padding:clamp(1.25rem,4vw,2.25rem);display:flex}.ov-promo__main{flex:22rem;min-width:0}.ov-promo__eyebrow{letter-spacing:.08em;text-transform:uppercase;margin:0 0 .5rem;font-size:.8125rem;font-weight:700}.ov-promo h2{margin:0 0 .75rem;font-size:clamp(1.5rem,4vw,1.875rem);font-weight:800;line-height:1.15}.ov-promo__perks{gap:.625rem;margin:0 0 1.375rem;padding:0;font-size:1.0625rem;list-style:none;display:grid}.ov-promo__perks li{align-items:center;gap:.625rem;display:flex}.ov-promo__perks .ic{flex:none}.ov-promo__cta{background:var(--color-card);min-height:3.375rem;color:var(--color-brand-strong);border-radius:.875rem;justify-content:center;align-items:center;padding:0 1.75rem;font-size:1.0625rem;font-weight:800;text-decoration:none;display:inline-flex}.ov-promo__sign{margin:.75rem 0 0;font-size:.875rem}.ov-promo__sign a{color:inherit;font-weight:700;text-decoration:underline}.ov-promo__sample{background:var(--color-card);color:var(--color-ink);box-shadow:var(--shadow-pop);border-radius:1.25rem;flex:0 18.75rem;padding:1.375rem;transform:rotate(2deg)}.ov-promo__sample-label{color:var(--color-ink-soft);letter-spacing:.06em;text-transform:uppercase;margin:0 0 .375rem;font-size:.75rem;font-weight:700}.ov-promo__sample-word{margin:0;font-size:2.125rem;font-weight:800}.ov-promo__sample-grades{gap:.375rem;margin-top:.875rem;display:flex}.ov-promo__sample-grades span{background:var(--color-paper-soft);text-align:center;border-radius:.625rem;flex:1;padding:.5rem 0;font-size:.875rem;font-weight:700}.ov-common__list,.ov-verbs{margin:0;padding:0;list-style:none}.ov-verbs{padding:0 1.25rem}.ov-common__row,.ov-verbs__row{border-top:1px solid var(--color-border);justify-content:space-between;align-items:center;gap:.75rem;padding:.625rem 0;display:flex}.ov-common__row:first-child,.ov-verbs__row:first-child{border-top:0}.ov-common__word,.ov-verbs__base{font-size:1.125rem;font-weight:700}.ov-search__count{margin:.875rem 0 0;font-size:.875rem}.ov-nomatch{text-align:center;padding:1.75rem 1.25rem}.ov-nomatch p{margin:.5rem 0 1rem}.wd-hero{border:1px solid var(--color-border);border-radius:var(--radius-card);background:var(--color-card);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.5rem 2rem;margin-bottom:1.5rem;padding:1.75rem;display:flex}.wd-hero__main{flex:22rem;min-width:0}.wd-hero__side{flex:20rem;min-width:0}.wd-hero h1{letter-spacing:-.02em;overflow-wrap:anywhere;margin:0;font-size:clamp(2.5rem,8vw,4rem);font-weight:800;line-height:1}.wd-hero h1.wd-hero__phrase{font-size:clamp(2rem,6vw,3.25rem);line-height:1.1}.wd-hero__tags{flex-wrap:wrap;gap:.5rem;margin:.875rem 0 .625rem;display:flex}.wd-hero__row{flex-wrap:wrap;align-items:baseline;gap:.25rem .625rem;margin:0;padding:.25rem 0;display:flex}.wd-hero__row b{min-width:6rem}.wd-hero__row span,.wd-hero__phrase-tr{color:var(--color-blue-ink);font-weight:700}.wd-hero__phrase-tr{margin:0;font-size:1.25rem}.wd-hero__label{letter-spacing:.06em;text-transform:uppercase;color:var(--color-ink-soft);margin:0 0 .5rem;font-size:.8125rem;font-weight:800}.wd-hero__count{margin:0;font-size:1.125rem}.wd-hero__count b{font-size:1.875rem}.wd-hero__summary,.wd-hero__nudge{color:var(--color-ink-soft);margin:0 0 1rem;font-size:.875rem}.wd-hero__actions{flex-wrap:wrap;gap:.5rem;display:flex}.wd-hero__side>.wd-actions__note{margin:.75rem 0 0}.wd-seg-bar{gap:.25rem;margin:.625rem 0 .375rem;display:flex}.wd-seg{background:var(--color-border);border-radius:.3125rem;flex:1;height:.625rem}.wd-seg--learned{background:var(--color-success)}.wd-seg--learning{background:var(--color-blue)}.wd-cards{gap:1rem;margin-bottom:2rem;display:grid}.pos-card{gap:.625rem;padding:1.375rem;display:grid}.pos-card[data-state=learned]{background:var(--color-success-wash)}.pos-card[data-state=learning]{background:var(--color-blue-wash)}.pos-card__head{flex-wrap:wrap;align-items:center;gap:.625rem;display:flex}.pos-card__head h2{margin:0;font-size:1.5rem;font-weight:800}.pos-card__phonetic{color:var(--color-ink-soft)}.pos-card__state{margin-left:auto}.pos-card__tr,.pos-card__def,.pos-card__eg{margin:0}.pos-card__tr{color:var(--color-blue-ink);font-size:1.625rem;font-weight:800;line-height:1.2}.pos-card__def{font-size:1.0625rem}.pos-card__eg{border-radius:var(--radius-card-sm);background:var(--color-paper);padding:.75rem .875rem;font-style:italic}.pos-card__foot{border-top:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;padding-top:.75rem;display:flex}.pos-card__hint{color:var(--color-ink-soft);font-size:.875rem}.pos-card__actions{flex-wrap:wrap;align-items:center;gap:.5rem;display:flex}.pos-card__actions form{display:inline}.pos-card__foot .wd-actions__note{flex-basis:100%;margin:0}.wd-detail{grid-template-columns:minmax(0,1fr);column-gap:1.5rem;display:grid}#wd-body{display:contents}.wd-detail .wd-hero{grid-column:1/-1}.wd-side__sticky{gap:1rem;margin-bottom:2rem;display:grid}@media (min-width:64rem){.wd-detail{grid-template-columns:minmax(0,1fr) 20rem}#wd-body>.wd-cards,.wd-detail>.wd-cards,.wd-detail>.wd-irregular{grid-column:1}.wd-side{grid-area:2/2/span 2;align-self:start}.wd-side__sticky{position:sticky;top:1rem}}.wd-find{border-radius:var(--radius-card);background:var(--color-brand);color:var(--color-on-brand);justify-content:space-between;align-items:center;gap:.75rem;padding:1rem 1.125rem;font-size:1.0625rem;font-weight:800;text-decoration:none;display:flex}.wd-find:hover{background:var(--color-brand-hover);color:var(--color-on-brand)}.wd-find small{font-size:.8125rem;font-weight:600;display:block}.wd-side__box{padding:1.125rem}.wd-side__head{justify-content:space-between;align-items:center;margin-bottom:.75rem;display:flex}.wd-side__head h2{color:var(--color-ink-soft);letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.8125rem;font-weight:800}.wd-side__count{border-radius:var(--radius-pill);background:var(--color-paper-soft);color:var(--color-ink-soft);padding:.125rem .5rem;font-size:.75rem;font-weight:700}.wd-side__empty{color:var(--color-ink-soft);margin:0;font-size:.9rem}.wd-snip{border-radius:var(--radius-card-sm);background:var(--color-paper);margin-bottom:.5rem;padding:.75rem .875rem}.wd-snip:last-child{margin-bottom:0}.wd-snip p{margin:0 0 .375rem;font-size:.9375rem}.wd-snip mark{background:var(--color-warning-wash);color:var(--color-warning-ink);border-radius:.25rem;padding:0 .125rem;font-weight:700}.wd-snip__src{color:var(--color-ink-soft);justify-content:space-between;gap:.5rem;font-size:.8125rem;display:flex}.wd-snip__src a{color:var(--color-brand-strong);font-weight:700}.wd-chip{border:2px solid var(--color-border);border-radius:var(--radius-control);margin-bottom:.5rem;padding:.625rem .875rem;text-decoration:none;display:block}.wd-chip:last-child{margin-bottom:0}.wd-chip:hover{border-color:var(--color-brand)}.wd-chip span{color:var(--color-ink-soft);font-size:.875rem;display:block}@media (prefers-reduced-motion:no-preference){.dict-list>li:nth-child(-n+8){animation:rise .35s var(--ease-out) both}.dict-list>li:nth-child(2){animation-delay:40ms}.dict-list>li:nth-child(3){animation-delay:80ms}.dict-list>li:nth-child(4){animation-delay:.12s}.dict-list>li:nth-child(n+5){animation-delay:.16s}@keyframes dm-grow{0%{transform:scaleX(0)}}.dm-rise{animation:.45s ease-out backwards rise}.dm-rise--1{animation-delay:70ms}.dm-rise--2{animation-delay:.14s}.dm-rise--3{animation-delay:.21s}.dm-rise--4{animation-delay:.28s}.dm-grow{transform-origin:0;animation:.8s cubic-bezier(.2,.8,.2,1) .3s backwards dm-grow}.dm-lift{transition:border-color var(--dur-fast) ease, box-shadow .2s ease, transform .2s ease}.dm-lift:hover{border-color:var(--color-border-strong);transform:translateY(-2px);box-shadow:0 8px 22px -14px #2b211873}.pos-card__level{transition:transform .2s var(--ease-spring)}.pos-card:hover .pos-card__level{transform:scale(1.08)rotate(-3deg)}.wd-find{transition:background-color var(--dur-fast) ease, transform .2s ease}.wd-find:hover{transform:translateY(-2px)}.wd-find svg{transition:transform .2s var(--ease-spring)}.wd-find:hover svg{transform:translate(4px)}.wd-chip{transition:border-color var(--dur-fast) ease, transform .2s ease}.wd-chip:hover{transform:translate(3px)}.dict-entry__lvl{transition:transform .2s var(--ease-spring)}.dict-entry:hover .dict-entry__lvl--on{transform:translateY(-2px)}}