


@font-face{font-family:"Sofia Sans Fallback";font-style:normal;font-weight:300;src:local("Arial");size-adjust:91.43693%;ascent-override:98.42850%;descent-override:32.80950%;line-gap-override:0.00000%;}


@font-face{font-family:"Sofia Sans Fallback";font-style:normal;font-weight:400;src:local("Arial");size-adjust:92.24746%;ascent-override:97.56366%;descent-override:32.52122%;line-gap-override:0.00000%;}



@font-face{font-family:"Sofia Sans Fallback";font-style:normal;font-weight:500;src:local("Arial");size-adjust:92.90201%;ascent-override:96.87626%;descent-override:32.29209%;line-gap-override:0.00000%;}



@font-face{font-family:"Sofia Sans Fallback";font-style:normal;font-weight:600;src:local("Arial Bold");size-adjust:89.35970%;ascent-override:100.71654%;descent-override:33.57218%;line-gap-override:0.00000%;}



@font-face{font-family:"Sofia Sans Fallback";font-style:normal;font-weight:700;src:local("Arial Bold");size-adjust:90.48377%;ascent-override:99.46535%;descent-override:33.15512%;line-gap-override:0.00000%;}



@font-face{font-family:"Sofia Sans SC Fallback";font-style:normal;font-weight:800;src:local("Arial Bold");size-adjust:87.83246%;ascent-override:102.46782%;descent-override:34.15594%;line-gap-override:0.00000%;}


@font-face{font-family:"Sofia Sans SC Fallback";font-style:normal;font-weight:900;src:local("Arial Bold");size-adjust:89.21552%;ascent-override:100.87931%;descent-override:33.62644%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Fallback";font-style:normal;font-weight:300;src:local("Arial");size-adjust:91.43693%;ascent-override:98.42850%;descent-override:32.80950%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Fallback";font-style:normal;font-weight:400;src:local("Arial");size-adjust:92.24746%;ascent-override:97.56366%;descent-override:32.52122%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Fallback";font-style:normal;font-weight:500;src:local("Arial");size-adjust:92.90201%;ascent-override:96.87626%;descent-override:32.29209%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Fallback";font-style:normal;font-weight:600;src:local("Arial Bold");size-adjust:89.35970%;ascent-override:100.71654%;descent-override:33.57218%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Fallback";font-style:normal;font-weight:700;src:local("Arial Bold");size-adjust:90.48377%;ascent-override:99.46535%;descent-override:33.15512%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Semi Condensed Fallback";font-style:normal;font-weight:800;src:local("Arial Bold");size-adjust:87.83246%;ascent-override:102.46782%;descent-override:34.15594%;line-gap-override:0.00000%;}




@font-face{font-family:"Sofia Sans UI Semi Condensed Fallback";font-style:normal;font-weight:900;src:local("Arial Bold");size-adjust:89.21552%;ascent-override:100.87931%;descent-override:33.62644%;line-gap-override:0.00000%;}
:lang(uk){font-language-override:"RUS"}:lang(bg){font-language-override:normal}

/* Martenitsa: app DESIGN_SYSTEM sections 4–6; shared MOTION section 1. */
:root{color-scheme:light;--bg:#F7F6F4;--surface:#fff;--surfaceElevated:#fff;--surfaceSunken:#EFEEEB;--action:#1B1C1F;--onAction:#fff;--actionPressed:#34363B;--brand:#C8302C;--brandSoft:#FBE9E7;--cordWhite:#fff;--cordEdge:#DAD8D3;--correct:#1E8A57;--correctSoft:#E4F4EB;--wrong:#D2352F;--wrongSoft:#FCE8E6;--textPrimary:#1B1C1F;--textSecondary:#5C5E66;--textTertiary:var(--textSecondary);--border:#E3E2DE;--info:#2F5DA8;--familiar:#4F6B7A;--accent:var(--action);--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s7:32px;--s8:48px;--s9:64px;--r-chip:10px;--r-tile:12px;--r-button:14px;--r-option:16px;--r-card:20px;--r-sheet:28px;--font-body:"Sofia Sans","Sofia Sans Fallback",sans-serif;--font-display:"Sofia Sans SC","Sofia Sans SC Fallback",sans-serif;--font-system:system-ui,"Segoe UI","Arial Hebrew","Geeza Pro",sans-serif;--body:1.0625rem;--secondary:.9375rem;--caption:.8125rem;--eyebrow:.75rem;--bg-text:1.25rem;--h1:1.875rem;--h2:1.5rem;--h3:1.25rem;--numeric:2.125rem;--hero-word:2.5rem;--letter:6rem;--brand-size:1.25rem;--nav-size:.9375rem;--tab-size:.75rem;--tab-label-max:13px;--compact-title:1.0625rem;--ease-out:cubic-bezier(.22,1,.36,1);--ease-in-out:cubic-bezier(.65,0,.35,1);--spring:linear(0,.25 7%,.66 17%,.92 27%,1.03 37%,1.04 45%,1.01 60%,1);--t-press:90ms;--t-hover:160ms;--t-ui:200ms;--t-enter:260ms;--t-route:220ms;--lift-1:0 1px 2px rgb(0 0 0/.06),0 4px 12px rgb(0 0 0/.06);--lift-2:0 2px 4px rgb(0 0 0/.08),0 12px 28px rgb(0 0 0/.12);--ring:0 0 0 2px var(--bg),0 0 0 4px var(--action)}
:root[data-theme=dark]{color-scheme:dark;--bg:#0F1012;--surface:#18191C;--surfaceElevated:#212226;--surfaceSunken:#0A0B0C;--action:#F2F1EE;--onAction:#131416;--actionPressed:#D9D7D2;--brand:#F0574E;--brandSoft:#3A1B1A;--cordWhite:#E9E7E2;--correct:#3DBB82;--correctSoft:#10301F;--wrong:#FF6B61;--wrongSoft:#3A1614;--textPrimary:#F2F1EE;--textSecondary:#A7A8AE;--textTertiary:var(--textSecondary);--border:#2C2D32;--info:#7FA6E8;--lift-1:0 1px 2px rgb(0 0 0/.18),0 4px 12px rgb(0 0 0/.18);--lift-2:0 2px 4px rgb(0 0 0/.24),0 12px 28px rgb(0 0 0/.36)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){:root{--body:1.125rem;--secondary:1rem;--caption:.875rem;--h1:2.5rem;--hero-word:3.5rem}}
:root{--print-root-size:100%;--card-title:1.0625rem;--stat-small:1.75rem;--phrase-display:4.5rem}@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){:root{--print-root-size:100%;--card-title:1.125rem;--phrase-display:6rem}}

:root{--stat-fluid:clamp(1.5rem,7.5vw,2.125rem)}

:root{--font-ui:"Sofia Sans UI","Sofia Sans Fallback",sans-serif;--font-ui-display:"Sofia Sans UI Semi Condensed","Sofia Sans UI Semi Condensed Fallback",sans-serif}
:root{--speaker-size:.8125rem;--forms-glyph:1.5rem;--forms-capital:1.75rem;--forms-display:2.75rem}
:root{--show-to-phrase:clamp(40px,9vw,96px)}

:root{--lesson-numeral:1.75rem}

/* RD-1 editorial roles; overrides are scoped to the first-visit home. */
:root{--s10:96px;--home-h1:var(--h1);--home-h2:1.75rem;--home-stat:2rem}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){:root{--home-h1:var(--h1);--home-h2:2rem;--home-stat:2.5rem}}

/* Returning Today lesson title, RD-2. */
:root{--today-lesson-title:1.75rem}

/* RD-5 course hierarchy. */
:root{--course-title:1.875rem;--course-code:2rem}@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){:root{--course-title:2rem;--course-code:2.5rem}}

/* Minimum editable text size: prevents iOS focus zoom. */
:root{--input-min:16px}

/* Preserve inherited text zoom while enforcing the mobile input minimum. */
:root{--input-zoom-safe:max(var(--input-min),1em)}

:root{--profile-title:1.75rem}

:root{--plan-required:clamp(1.75rem,8vw,2.5rem)}

/* Audio control roles, W-R5: use one component at either size. */
:root{--audio-control:max(44px,2.75rem);--audio-control-hero:max(56px,3.5rem)}

/* AppGallery wordmark, matching the catalogue store geometry. */
:root{--ag-name:1rem}

/* SVG user-space label; the outer goal ring scales with the UI text. */
:root{--goal-svg-label:28px}
:root{--achievement-svg-label:12px}

/* Store badges v2; official artwork metrics (owner-requested caption exception). */
:root{--ag-caption-v2:500 9.5px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ag-title-v2:500 17px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ag-caption-phone-v2:500 8.5px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ag-title-phone-v2:500 15.5px/1 -apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif}

*{box-sizing:border-box}html{background:var(--bg);color:var(--textPrimary);scroll-padding-block-start:100px;scrollbar-gutter:stable}body{margin:0;font-family:var(--font-body);font-size:var(--body);line-height:1.5;font-feature-settings:"locl" 1}html[lang=ar] body,html[lang=he] body{font-family:var(--font-system)}[lang=bg]{font-family:var(--font-body);unicode-bidi:isolate;line-height:1.6}h1,h2,h3,p,figure{margin:0}h1,h2,h3{text-wrap:balance;line-height:1.15;hyphens:manual}h1,h2{font-family:var(--font-display);font-weight:900;letter-spacing:-.005em}html[lang=ar] :is(h1,h2),html[lang=he] :is(h1,h2){font-family:var(--font-system);line-height:1.45}h1{font-size:var(--h1)}h2{font-size:var(--h2)}h3{font-size:var(--h3);font-weight:700}p{text-wrap:pretty}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,var(--textPrimary) 35%,transparent)}a:hover{text-decoration-color:var(--textPrimary)}button,input{font:inherit;color:inherit}button{cursor:pointer}button:disabled{opacity:.4;cursor:default}button,button:disabled{background:transparent}button,a,input{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--action);outline-offset:3px}button,a{touch-action:manipulation}button,fieldset{border:0}img,svg{display:block}img{max-inline-size:100%;block-size:auto}ul,ol{padding-inline-start:var(--s6)}li+li{margin-block-start:var(--s2)}[hidden]{display:none!important}.sr-only{position:absolute!important;inline-size:1px;block-size:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip-link{position:fixed;inset-block-start:-100px;inset-inline-start:var(--s4);z-index:100;padding:var(--s4);background:var(--surface)}.skip-link:focus{inset-block-start:var(--s4)}main{max-inline-size:1280px;margin-inline:auto;padding:var(--s6) var(--s5);outline:none}main>section+section,main>article+section{margin-block-start:var(--s6)}.page-heading{display:grid;gap:var(--s3);margin-block-end:var(--s6)}.lead{color:var(--textSecondary);max-inline-size:65ch}.eyebrow{font-size:var(--eyebrow);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}.meta{font-size:var(--caption);color:var(--textSecondary)}.muted{color:var(--textSecondary)}.number{font-variant-numeric:tabular-nums}.bg-text{font-size:var(--bg-text);font-weight:500}.sv{position:relative;display:inline}.sv:after{content:"";position:absolute;inline-size:max(2px,.055em);block-size:.3em;inset-block-end:calc(var(--xh,.49em) + .05em);margin-block-end:.3em;inset-block-start:auto;left:50%;background:var(--brand);transform:translateX(-50%) skewX(-18deg);border-radius:1px}html[data-stress=never] .sv:after{display:none}.prose{display:grid;gap:var(--s4);overflow-wrap:break-word;hyphens:auto}.prose p{max-inline-size:70ch}.prose :is(ul,ol){margin:0}.breadcrumbs{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);font-size:var(--caption);color:var(--textSecondary);margin-block-end:var(--s4)}.breadcrumbs a{min-block-size:44px;display:inline-flex;align-items:center;gap:var(--s2)}.grid{display:grid;gap:var(--s4);align-items:stretch}.actions{display:flex;flex-wrap:wrap;gap:var(--s3);align-items:stretch}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-block-end:var(--s3)}.empty-placeholder{background:var(--surfaceSunken);aspect-ratio:16/10}.reading-layout{display:grid;gap:var(--s6)}.reading-layout>div{min-inline-size:0}.stack{display:grid;gap:var(--s4)}.inset{padding:var(--s4)}.tag{border:1px solid var(--border);border-radius:var(--r-chip);padding:var(--s1) var(--s2);font-size:var(--caption)}.i{inline-size:24px;block-size:24px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.chevron{inline-size:18px;block-size:18px}.rtl-mirror:dir(rtl){transform:scaleX(-1)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){main{padding-block:var(--s7)}main>section+section,main>article+section{margin-block-start:var(--s7)}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.reading-layout{grid-template-columns:minmax(0,720px) minmax(240px,1fr)}.reading-aside{position:sticky;inset-block-start:100px;align-self:start}.inset{padding:var(--s5)}}
@media(min-width:1100px){.grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-delay:0ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}html .reveal,html .media img{transform:none!important;opacity:1!important}}

h1 [lang=bg],h2 [lang=bg],h3 [lang=bg]{font-family:inherit;line-height:inherit}

html:is([lang=ru],[lang=uk]) body{font-family:var(--font-ui)}
html:is([lang=ru],[lang=uk]) :is(h1,h2){font-family:var(--font-ui-display)}
html:is([lang=ru],[lang=uk]) [lang=bg]{font-family:var(--font-body)}
html:is([lang=ru],[lang=uk]) :is(h1,h2)[lang=bg],html:is([lang=ru],[lang=uk]) :is(h1,h2) [lang=bg]{font-family:var(--font-display)}

/* Sofia Sans hhea descent is 300 / 1000 em: compensate the inline box
   below the baseline so the tick sits above the glyph ink, at every size. */
html[data-letterforms=ru] [lang=bg]{font-family:var(--font-ui)}
html[data-letterforms=ru] :is(h1,h2,h3)[lang=bg],html[data-letterforms=ru] :is(h1,h2,h3) [lang=bg]{font-family:var(--font-ui-display)}
html [data-glyph-form=bg]{font-family:var(--font-body)!important;font-feature-settings:"locl" 1}
html [data-glyph-form=ru]{font-family:var(--font-ui)!important;font-feature-settings:"locl" 1}
/* The setting also governs late-loaded player and word UI stylesheets. */
html[data-letterforms=ru] body [lang=bg]{font-family:var(--font-ui)!important}
html[data-letterforms=ru] body :is(h1,h2,h3,.p-hero-word,.alphabet-board)[lang=bg],html[data-letterforms=ru] body :is(h1,h2,h3,.p-hero-word,.alphabet-board) [lang=bg]{font-family:var(--font-ui-display)!important}
html[data-letterforms] body [lang=bg][data-glyph-form=bg]{font-family:var(--font-body)!important}
html[data-letterforms] body [lang=bg][data-glyph-form=ru]{font-family:var(--font-ui)!important}
/* UI fonts retain locl tables: Russian-style Bulgarian must explicitly opt out. */
html[data-letterforms=ru] body [lang=bg]{font-feature-settings:"locl" 0!important}
html [data-glyph-form=ru]{font-feature-settings:"locl" 0!important}
html[data-letterforms] body [lang=bg][data-glyph-form=bg]{font-feature-settings:"locl" 1!important}

/* Living Word adds nested language runs; paired samples keep their own form. */
html[data-letterforms] body [data-glyph-form] [lang=bg]{font-family:inherit!important;font-feature-settings:inherit!important}

/* Preserve text zoom and the browser pinch gesture on phones. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){html body :is(input:not(.p-input),textarea){font-size:var(--input-zoom-safe)!important}}

/* Short pages fill the viewport; their footer stays in normal document flow. */
body{min-block-size:100dvh;display:flex;flex-direction:column}
body>main{flex:1 0 auto;inline-size:100%}
body>:is(.topbar,.collection){flex-shrink:0}
a{hyphens:manual}
#library{scroll-margin-block-start:calc(var(--topbar-height,76px) + var(--s4))}
@media(min-width:1100px){body>main{padding-inline:max(var(--s7),env(safe-area-inset-left)) max(var(--s7),env(safe-area-inset-right))}}

html[lang=de] .feature-copy strong{hyphens:auto;overflow-wrap:break-word}
/* W-R13b: headings wrap complete words in every locale, including prose. */
:root body :is(h1,h2,h3,h4){hyphens:none;overflow-wrap:normal;word-break:normal}

/* R14-6: punctuation belongs to the quoted run; multiword content can wrap. */
q{white-space:nowrap}q::before,q::after{content:none}q>span{white-space:normal}

.button{min-block-size:52px;padding:var(--s3) var(--s5);display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);font-weight:600;line-height:1.4;border-radius:var(--r-button);text-align:center;text-decoration:none;position:relative;isolation:isolate;overflow:visible;min-inline-size:44px;transition:transform var(--t-hover) var(--ease-out),background var(--t-hover),box-shadow var(--t-hover),border-color var(--t-hover);white-space:normal}.primary{background:var(--action);color:var(--onAction);box-shadow:var(--lift-1);border:1.5px solid transparent}.primary:after,.brand:after{content:"";position:absolute;pointer-events:none;inset-block:-100%;inset-inline-start:-60%;inset-inline-end:auto;inline-size:40%;background:linear-gradient(110deg,transparent,rgb(255 255 255/.18),transparent);transform:translateX(var(--sheen-from,-100%)) skewX(var(--sheen-angle,-16deg))}[data-theme=dark] .primary:after{background:linear-gradient(110deg,transparent,rgb(27 28 31/.1),transparent)}.secondary{border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);background:transparent}.tertiary{min-block-size:44px;display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--secondary);font-weight:600;padding:var(--s1);text-decoration:underline}.compact{min-block-size:44px;padding:var(--s2) var(--s3);font-size:var(--nav-size)}.icon-button{inline-size:44px;block-size:44px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;border:1.5px solid transparent;flex-shrink:0;text-decoration:none;transition:background var(--t-hover),transform var(--t-hover),border-color var(--t-hover)}.icon-button .i{transition:transform var(--t-ui) var(--spring)}.audio-button{border-color:color-mix(in srgb,var(--textPrimary) 70%,transparent)}.audio-controls{display:flex;align-items:center;gap:var(--s1);flex-shrink:0}.slow{font-size:var(--caption);font-variant-numeric:tabular-nums}.card{border:1px solid var(--border);background:var(--surface);border-radius:var(--r-card);position:relative;min-inline-size:0;display:flex;flex-direction:column;transition:transform var(--t-hover) var(--ease-out),box-shadow var(--t-hover),border-color var(--t-hover)}.card-body{display:flex;flex-direction:column;gap:var(--s3);padding:var(--s4);flex:1}.card-body h3,.card-body .hook{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card .stretched:after{content:"";position:absolute;inset:0;border-radius:var(--r-card)}.card .stretched{text-decoration:none}.card .meta-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s2);margin-block-start:auto}.card .credit-info{z-index:2;position:absolute;inset-inline-end:var(--s2);inset-block-end:var(--s2);background:var(--surface);box-shadow:var(--lift-1)}.card figure{position:relative}.card figure .media{border-start-start-radius:var(--r-card);border-start-end-radius:var(--r-card)}.media{display:block;overflow:hidden;position:relative;aspect-ratio:16/10;background-color:var(--dominant,var(--surfaceSunken));background-size:cover}.media img{inline-size:100%;block-size:100%;object-fit:cover;opacity:1;transition:transform 400ms var(--ease-out),opacity 240ms;transform:scale(1)}.js .media:not(.decoded) img{opacity:0;transform:scale(1.02)}.credit-line{font-size:var(--caption);color:var(--textSecondary);padding-block:var(--s2);overflow-wrap:anywhere}.panel{padding:var(--s4);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card)}.row{display:flex;align-items:center;gap:var(--s3);min-block-size:64px;padding-block:var(--s4);border-block-end:1px solid var(--border)}.row:last-child{border-block-end:0}.rc{flex:1;min-inline-size:0;display:grid;gap:var(--s1)}.row-link{display:flex;align-items:center;gap:var(--s3);flex:1;text-decoration:none;border-radius:var(--r-tile);padding:var(--s2);transition:background var(--t-hover)}.level-badge{display:inline-grid;place-items:center;min-inline-size:40px;min-block-size:28px;padding:0 var(--s2);font-family:var(--font-display);font-weight:800;font-size:var(--secondary);border:1px solid var(--textPrimary);border-radius:var(--r-chip);font-variant-numeric:tabular-nums}.word-picture{inline-size:56px;block-size:56px;border-radius:var(--r-tile);background:var(--surfaceSunken);padding:var(--s2);flex-shrink:0}.word-picture img{object-fit:contain;inline-size:100%;block-size:100%}.tr{font-weight:300;color:var(--textSecondary)}.translit{font-size:var(--secondary);color:var(--textSecondary)}.dr{display:flex;gap:var(--s3);padding-block:var(--s4);border-block-end:1px solid var(--border)}.dc{flex:1;min-inline-size:0}.dr:last-child{border-block-end:0}.segmented{display:flex;position:relative;isolation:isolate;gap:var(--s1);padding:var(--s1);background:var(--surfaceSunken);border-radius:var(--r-button);overflow-x:auto;scrollbar-width:thin}.segmented a,.segmented button{z-index:1;flex:1;min-block-size:44px;min-inline-size:44px;border-radius:var(--r-chip);text-decoration:none;display:flex;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s2) var(--s3);font-weight:600;transition:color var(--t-ui),background var(--t-hover)}.segmented [aria-current=page],.segmented [aria-pressed=true]{background:var(--action);color:var(--onAction)}.segmented.indicator-ready [aria-current=page],.segmented.indicator-ready [aria-pressed=true]{background:transparent}.selection-indicator{position:absolute;inset:0 auto auto 0;background:var(--action);border-radius:var(--r-chip);z-index:0;pointer-events:none;transition:transform 220ms var(--spring),width 220ms var(--spring),height 220ms var(--spring)}.switch{inline-size:52px;block-size:32px;border-radius:32px;background:var(--surfaceSunken);border:1px solid var(--border);position:relative;flex-shrink:0}.switch:before{content:"";position:absolute;inset-block-start:3px;inset-inline-start:3px;inline-size:24px;block-size:24px;border-radius:50%;background:var(--textSecondary);transition:transform 220ms var(--spring),width 90ms}.switch[aria-checked=true]{background:var(--action)}.switch[aria-checked=true]:before{background:var(--onAction);transform:translateX(20px)}.switch:dir(rtl)[aria-checked=true]:before{transform:translateX(-20px)}.switch:active:before{inline-size:28px}.search-field{position:relative;display:flex;align-items:center;gap:var(--s2);padding-inline:var(--s3);border:1.5px solid var(--border);border-radius:var(--r-tile);background:var(--surfaceSunken);transition:box-shadow var(--t-hover),border-color var(--t-hover)}.search-field input{background:transparent;border:0;outline:0;inline-size:100%;min-inline-size:0;min-block-size:44px;font-size:var(--secondary)}.search-field:focus-within{border-color:var(--action);box-shadow:0 0 0 3px color-mix(in srgb,var(--action) 12%,transparent)}.search-field .i{inline-size:20px;block-size:20px}
/* Shared Menu: desktop popover and phone draggable bottom sheet. */
.menu-trigger[aria-expanded=true]{background:color-mix(in srgb,var(--action) 14%,transparent)}.menu-trigger[aria-expanded=true] .chevron{transform:rotate(180deg)}.menu-panel{position:fixed;z-index:80;inline-size:max-content;min-inline-size:220px;max-inline-size:calc(100vw - 32px);max-block-size:min(60vh,420px);overflow:auto;padding:var(--s2);border:1px solid var(--border);border-radius:var(--r-button);background:var(--surfaceElevated);box-shadow:var(--lift-2);transform-origin:top right;animation:menu-in 160ms var(--ease-out)}.menu-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding-inline-start:var(--s3);position:sticky;inset-block-start:0;background:var(--surfaceElevated);z-index:3}.menu-heading h2{font-size:var(--h3)}.menu-rows{position:relative;isolation:isolate}.menu-row{display:flex;align-items:center;gap:var(--s3);min-block-size:44px;inline-size:100%;text-align:start;padding:var(--s2) var(--s3);border-radius:var(--r-chip);text-decoration:none;font-size:var(--secondary);position:relative;z-index:1}.menu-row>span:nth-child(2){flex:1}.menu-row small{display:block;font-size:var(--caption);color:var(--textSecondary)}.menu-row .check{margin-inline-start:auto;visibility:hidden;inline-size:20px;block-size:20px}.menu-row[aria-checked=true] .check{visibility:visible}.menu-code{inline-size:32px;font-size:var(--caption);font-weight:700;text-transform:uppercase;color:var(--textSecondary)}.menu-highlight{position:absolute;inset:0 auto auto 0;background:color-mix(in srgb,var(--action) 6%,transparent);border-radius:var(--r-chip);pointer-events:none;transition:transform 120ms var(--ease-out);z-index:0}.menu-row:active{background:color-mix(in srgb,var(--action) 12%,transparent)}.menu-backdrop{position:fixed;inset:0;z-index:79;background:transparent}.grab-handle{display:none}.menu-panel.closing{opacity:0;transition:opacity 120ms}.menu-row:focus-visible{outline-offset:-2px}.reading-resume{position:fixed;inset-block-end:calc(var(--tab-bar-height,64px) + 8px + env(safe-area-inset-bottom));inset-inline:var(--s4);margin-inline:auto;max-inline-size:560px;z-index:30;display:flex;align-items:center;gap:var(--s3);padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surfaceElevated);box-shadow:var(--lift-2);font-size:var(--caption)}.reading-resume span{flex:1}
@keyframes sheen{to{transform:translateX(var(--sheen-to,650%)) skewX(var(--sheen-angle,-16deg))}}@keyframes menu-in{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@keyframes sheet-in{from{transform:translateY(100%)}to{transform:none}}@keyframes scrim-in{from{opacity:0}to{opacity:1}}@keyframes bounce{0%{transform:scale(.88)}55%{transform:scale(1.06)}100%{transform:scale(1)}}@keyframes waves{50%{transform:scale(1.10);opacity:.6}}
@media(hover:hover) and (pointer:fine){.primary:hover{background:color-mix(in srgb,var(--action) 94%,var(--onAction));transform:translateY(-1px);box-shadow:var(--lift-2)}.primary:hover:after,.brand:hover:after{animation:sheen 600ms var(--ease-out)}.secondary:hover{border-color:var(--action);background:color-mix(in srgb,var(--action) 8%,transparent);transform:translateY(-1px)}.tertiary:hover .chevron{translate:3px 0}.tertiary:dir(rtl):hover .chevron{translate:-3px 0}.icon-button:hover{background:color-mix(in srgb,var(--action) 6%,transparent)}.icon-button:hover .i-search{transform:scale(1.08)}.icon-button:hover .i-close{transform:rotate(90deg)}.icon-button:hover .i-settings{transform:rotate(45deg)}.icon-button:hover .i-speaker{animation:waves 400ms var(--ease-out)}.icon-button:hover .i-play,.icon-button:hover .i-mic{transform:scale(1.06)}.card:is(a,:has(a)):hover{transform:translateY(-3px);box-shadow:var(--lift-2);border-color:color-mix(in srgb,var(--action) 35%,transparent)}.card:hover .media img{transform:scale(1.03)}.card:hover .meta-row .chevron{translate:3px 0}.card:dir(rtl):hover .meta-row .chevron{translate:-3px 0}.row-link:hover,.segmented a:hover,.segmented button:hover{background:color-mix(in srgb,var(--action) 6%,transparent)}.segmented [aria-current=page]:hover{background:transparent}.switch:hover{box-shadow:0 0 0 3px color-mix(in srgb,var(--action) 10%,transparent)}}
.button:active{transform:scale(.97)}.primary:active{background:var(--actionPressed);box-shadow:var(--lift-1)}.secondary:active{background:color-mix(in srgb,var(--action) 14%,transparent)}.icon-button:active{transform:scale(.92);background:color-mix(in srgb,var(--action) 12%,transparent)}.card:is(a,:has(a)):active{transform:scale(.985)}.row-link:active{background:color-mix(in srgb,var(--action) 12%,transparent)}.button:disabled:after{display:none}.button:disabled{transform:none}/* Scroll blocks are visible at rest, including capture, print and no-JS. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.card-body,.panel{padding:var(--s5)}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.menu-backdrop{background:rgb(0 0 0/.4);animation:scrim-in var(--t-enter) linear}.menu-panel{inset:auto var(--s2) var(--s2)!important;inline-size:auto;max-inline-size:none;max-block-size:calc(100dvh - 32px);border-radius:var(--r-sheet);padding:var(--s2) var(--s2) max(var(--s3),env(safe-area-inset-bottom));animation:sheet-in 260ms var(--ease-out);overscroll-behavior:contain}.menu-rows{max-block-size:55dvh;overflow:auto}.menu-row{min-block-size:52px}.grab-handle{display:block;inline-size:40px;block-size:4px;background:var(--border);border-radius:4px;margin:var(--s1) auto var(--s2);touch-action:none}.wr{flex-wrap:wrap}.wr .rc{min-inline-size:150px}}
@media(prefers-reduced-motion:reduce){.button:hover,.card:hover,.icon-button:hover,.button:active,.card:active,.icon-button:active,.card:hover .media img{transform:none!important}.tertiary:hover .chevron,.card:hover .chevron{translate:none!important}.primary:after,.brand:after{display:none}}
.card:has(.stretched:focus-visible){outline:2px solid var(--action);outline-offset:3px}.card .stretched:focus-visible{outline:0}.tertiary:active{opacity:.7}.breadcrumbs a:active,.footer-languages a:active,.colophon a:active{opacity:.7}



.dr:has([data-a], [data-tts]):not(.audio-ready):after,.wr:has([data-a], [data-tts]):not(.audio-ready):after{content:"";display:block;inline-size:44px;block-size:44px;flex-shrink:0}.wr:has([data-a], [data-tts]):not(.audio-ready):after{inline-size:92px}

/* D1b: stable controls and natural wrapping, independent of content language. */
.panel :is(h1,h2,h3){overflow-wrap:break-word;hyphens:manual}.menu-panel{overflow-wrap:break-word;hyphens:auto}.panel :is(figcaption,.credit-line),.credit-row{overflow-wrap:anywhere}
.credit-row h3{white-space:normal;overflow:visible;text-overflow:clip}
.menu-row{direction:ltr;block-size:48px;min-block-size:48px;flex-shrink:0}
.menu-row>span{line-height:1.25}.menu-row>span:nth-child(2){text-align:start}.menu-row .check{flex:none}.menu-code{flex:none}
.segmented :is(a,button){white-space:nowrap;block-size:44px;line-height:1.25;flex-shrink:0}
.button{block-size:auto;min-block-size:52px;padding-block:var(--s2)}.button.compact{block-size:44px;min-block-size:44px}
.tertiary{min-block-size:52px}.word-note,.alphabet-note,.ff-note{font-size:var(--secondary);line-height:1.45;color:color-mix(in srgb,var(--textPrimary) 80%,transparent)}
.wr{flex-wrap:wrap;align-items:start}.wr>.word-note{flex-basis:100%}.wr>.rc{flex-basis:120px}.wr>.audio-controls{align-self:start}
.alphabet-note,.ff-note{background:var(--surfaceSunken);border-radius:var(--r-tile);padding:var(--s3)}
.ff-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}.ff-heading h2{margin:0}.ff-note{display:flex;align-items:start;gap:var(--s2)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.menu-row{block-size:52px;min-block-size:52px}.wr,.word-tiles .wr{display:grid;grid-template-columns:48px minmax(0,1fr);gap:var(--s2) var(--s3);align-items:start}.wr>.word-picture{grid-column:1;grid-row:1}.wr>.rc{grid-column:2;grid-row:1}.wr>.audio-controls,.word-tiles .wr>.audio-controls{grid-column:2;grid-row:2;margin:0;justify-self:start}.wr>.word-note{grid-column:1/-1;grid-row:3;margin:0}.phrase-row .wr{grid-template-columns:minmax(0,1fr) auto}.phrase-row .wr>.rc{grid-column:1}.phrase-row .wr>.audio-controls{grid-column:2;grid-row:1}.phrase-row .wr>.word-note{grid-column:1/-1}}

/* Uppercase vowels use cap height when positioning the source stress tick. */
.sv.up{--xh:.69em}

/* First entry remains readable and scrollable behind the language card. */
.entry-backdrop{pointer-events:none;background:transparent!important}.language-entry{inline-size:400px;inset:auto 16px 16px auto;max-block-size:calc(100dvh - 32px);overflow:auto}.language-entry .menu-heading{align-items:start}.language-entry .menu-heading h2{padding-block:var(--s2);font-size:var(--h3)}.entry-options .button{inline-size:100%;white-space:normal;text-align:center;block-size:auto;min-block-size:52px}.language-entry .entry-options{gap:var(--s2)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.language-entry{inline-size:auto;min-inline-size:0;max-inline-size:calc(100vw - 16px);inset-block-end:calc(var(--tab-bar-height,64px) + 8px)!important;max-block-size:calc(100dvh - var(--tab-bar-height,64px) - 32px)}}

/* Readable vocabulary fallback when scripts are unavailable. */
lb-w{display:block;padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-tile)}lb-w>img{inline-size:48px;block-size:48px;object-fit:contain}lb-w>a{display:block}lb-w>em{font-style:normal;color:var(--textSecondary)}

/* W3 P1-6: all sixteen languages fit the desktop/tablet popover. The
   language menu is identified by its real hreflang links; other menus keep
   their compact dimensions and the phone keeps its bounded bottom sheet. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 .menu-panel:has(.menu-rows [hreflang]){inline-size:440px;max-block-size:calc(100dvh - 32px);overflow:visible}
 .menu-panel:has(.menu-rows [hreflang]) .menu-rows{display:grid;grid-auto-flow:column;grid-template-rows:repeat(8,auto);grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s1);max-block-size:none;overflow:visible}
}

/* SCAN-1: whole-card links escape title clamps; controls keep their own layer. */
.card:has(.stretched) .card-body :is(h2,h3){overflow:visible;display:block}
.card .stretched::after{content:"";position:absolute;inset:0;min-inline-size:44px;min-block-size:44px;border-radius:var(--r-card)}
.wr .wt>a{display:inline;white-space:normal;line-height:44px;border-radius:var(--r-chip);padding:var(--s3) var(--s1);box-decoration-break:clone;-webkit-box-decoration-break:clone}
figure>.credit-info::before{content:"";position:absolute;inset:-10px;min-inline-size:44px;min-block-size:44px;border-radius:50%}
.breadcrumbs a{min-inline-size:44px;padding-inline:var(--s1);justify-content:center;border-radius:var(--r-chip)}
@media(hover:hover) and (pointer:fine){
 .tertiary:hover,.lesson-toc a:hover,.breadcrumbs a:hover,.wr .wt>a:hover{background:color-mix(in srgb,var(--action) 8%,transparent);color:var(--textPrimary);text-decoration-color:var(--textPrimary);text-decoration-thickness:2px}
 .segmented :is(a,button)[aria-pressed=true]:hover{background:color-mix(in srgb,var(--onAction) 10%,transparent);color:var(--onAction)}
 .search-field input:hover{background:color-mix(in srgb,var(--action) 6%,transparent);border-radius:var(--r-chip)}
 .table-scroll:hover{border-color:var(--action);box-shadow:inset 0 0 0 1px var(--action)}
 a.feature-row.panel:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));border-color:var(--action)}
}
.wr .wt>a:active,.lesson-toc a:active,a.feature-row.panel:active{background:var(--surfaceSunken);color:var(--textPrimary)}

/* Real descendants mirror the pseudo hit extenders for geometry/a11y tools. */
.stretched>[data-hit]{position:absolute;inset:0;border-radius:var(--r-card)}
.credit-info>[data-hit]{position:absolute;inset:-10px;inline-size:44px;block-size:44px;border-radius:50%}

/* Selected level links still answer a pointer over their graphite indicator. */
@media(hover:hover) and (pointer:fine){
 .segmented.indicator-ready [aria-current=page]:hover{background:color-mix(in srgb,var(--onAction) 10%,transparent);color:var(--onAction)}
 .lesson-sections h2>a:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary);text-decoration:underline}
}
.lesson-sections h2>a{display:inline-flex;align-items:center;min-block-size:44px;min-inline-size:44px;max-inline-size:100%;border-radius:var(--r-chip)}

/* Reading resume sits above the measured bottom bars, with two explicit actions. */
.reading-resume{display:grid;grid-template-columns:minmax(0,1fr) max-content;z-index:46}
.reading-resume>.button{font-size:inherit;line-height:1.4;white-space:normal;min-inline-size:0;padding-inline:var(--s2)}
.reading-resume .reading-continue{text-align:start}

/* Keep the sheen outside the negative scroll origin in each writing direction. */
:is(.primary,.brand):dir(rtl){--sheen-from:100%;--sheen-to:-650%;--sheen-angle:16deg}

/* DQA-R2-W: the sheen is clipped in its own layer, never through the label. */
.primary::after{inset:0;inline-size:100%;transform:none;background-size:250% 100%;background-position:100% 0;clip-path:inset(0 round var(--r-button))}
@keyframes action-sheen{to{background-position:-100% 0}}
@media(hover:hover) and (pointer:fine){.primary:hover::after{animation:action-sheen 600ms var(--ease-out)}.slow:hover{background:color-mix(in srgb,var(--action) 10%,var(--surface));border-color:var(--action)}}

.menu-rows [hreflang]>span:nth-child(2){text-align:start;min-inline-size:0}

.menu-panel a,.w-dialog a{hyphens:manual}

/* R3-P3-6: sheets meet the phone's bottom edge; only the top corners round. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.menu-panel{inset:auto 0 var(--vv-bottom,0px)!important;border-radius:var(--r-sheet) var(--r-sheet) 0 0;padding-block-end:calc(var(--s4) + env(safe-area-inset-bottom))}.menu-panel .menu-rows{padding-block-end:var(--s1)}}

/* Language rows follow their explicit page direction; the legacy generic
   menu row rule must not override an RTL language sheet. */
.menu-rows [hreflang][dir=rtl]{direction:rtl}

/* W-R5 audio component: paired circles in rows (44) and heroes (56). */
.audio-control.audio-button{inline-size:var(--audio-control);block-size:var(--audio-control);min-inline-size:var(--audio-control);min-block-size:var(--audio-control);padding:0;border-radius:50%;border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);background:transparent;color:var(--textPrimary);font-size:var(--caption);line-height:1;display:inline-flex;align-items:center;justify-content:center;flex:none;vertical-align:middle;position:relative}
.audio-control.audio-control-hero{--audio-control:var(--audio-control-hero)}
.audio-control>svg{inline-size:24px;block-size:24px;flex:none}
.audio-control .audio-icon-stop{display:none}
.audio-control[aria-pressed=true] .audio-icon-idle{display:none}
.audio-control[aria-pressed=true] .audio-icon-stop{display:block}
.audio-control.audio-button[aria-pressed=true]{background:var(--action);color:var(--onAction);border-color:var(--action)}
.audio-control[aria-busy=true]>svg{opacity:.6}
.audio-control:disabled{opacity:.4;cursor:default}
@media(hover:hover) and (pointer:fine){.audio-control:not(:disabled):hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary);border-color:var(--action)}.audio-control:not(:disabled):hover .audio-icon-idle{animation:waves 400ms var(--ease-out);transform-origin:center}}
.audio-control:not(:disabled):active{transform:scale(.92)}
@media(prefers-reduced-motion:reduce){.audio-control:active{transform:none!important}.audio-control .audio-icon-idle{animation:none!important}}
.audio-control.p-audio.is-playing>svg:not(.p-voice-ring){animation:none}

/* NEXT-R5: a common progress readout, with long labels wrapping naturally. */
.learning-numbers{display:flex;flex-wrap:wrap;gap:var(--space-2,8px) var(--space-4,16px);align-items:start}
.learning-numbers>p{margin:0;flex:1 1 120px;min-inline-size:0}
.audio-control.audio-button:disabled{opacity:1;background:var(--surfaceSunken);color:var(--textSecondary);border-color:var(--border);cursor:default}

/* W-R5b: one explicit size per action role, including wrapped labels. */
.button{block-size:52px;min-block-size:52px;padding-block:0;line-height:1.25}
.button.compact{block-size:44px;min-block-size:44px}
.tertiary{block-size:52px;min-block-size:52px;line-height:1.25}
.menu-row{block-size:44px;min-block-size:44px;padding-block:0}
@media(max-width:759px){.menu-row{block-size:52px;min-block-size:52px}}
main button.button.show-all{block-size:52px;min-block-size:52px;padding-block:0}
/* Credits use a real 44px control, rather than a small visual and an oversized pseudo hitbox. */
figure>.icon-button.credit-info{inline-size:44px;block-size:44px;min-inline-size:44px;min-block-size:44px}
figure>.credit-info::before,figure>.credit-info>[data-hit]{inset:0;inline-size:44px;block-size:44px}
@media(min-width:760px){.large-text .button{block-size:auto;min-block-size:52px}}
/* At 200% text, the 52/44px roles are minimums and labels retain their full text. */
.large-text :is(.button,.tertiary){block-size:auto;min-block-size:52px;padding-block:var(--s2)}
.large-text .button.compact{min-block-size:44px}
.large-text .segmented :is(a,button){block-size:auto;min-block-size:44px;white-space:normal;padding-block:var(--s2)}
.large-text main button.button.show-all{block-size:auto;min-block-size:52px;padding-block:var(--s2)}

/* W-R6: a visible rate label needs a pill when text grows. */
.audio-control.audio-button.slow{inline-size:auto;min-inline-size:var(--audio-control);padding-inline:var(--s3);border-radius:var(--r-button);white-space:nowrap;overflow-wrap:normal}

/* W-R6b: a sheet is bounded by the visible viewport even if underlying
 * enlarged page content has a wider mobile layout viewport. */
.menu-heading h2{min-inline-size:0;overflow-wrap:anywhere}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){
 .menu-panel:not(.phrase-modal):not(.confirmation-panel):not(.language-entry){inset:auto!important;left:var(--menu-x,0px)!important;top:calc(var(--menu-y,0px) + var(--menu-vh,100dvh))!important;translate:0 -100%;inline-size:var(--menu-vw,100dvw);min-inline-size:0;max-inline-size:var(--menu-vw,100dvw);max-block-size:calc(var(--menu-vh,100dvh) - 16px);display:flex;flex-direction:column;overflow:auto}
 .menu-panel:not(.phrase-modal) .menu-heading,.menu-panel .grab-handle{flex:none}
 .menu-panel:not(.phrase-modal) .menu-rows{min-block-size:0;min-inline-size:0;overflow:auto;overscroll-behavior:contain}
 .menu-code,.menu-row .check{flex-shrink:0}
}

.menu-code{inline-size:2.5em;white-space:nowrap}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 .menu-panel:has(.menu-rows [hreflang]){inline-size:min(max(440px,28rem),calc(100dvw - 32px));display:flex;flex-direction:column;overflow:auto;max-block-size:calc(100dvh - 32px)}
 .menu-panel:has(.menu-rows [hreflang]) .menu-heading{flex:none}
 .menu-panel:has(.menu-rows [hreflang]) .menu-rows{min-block-size:0;overflow:auto}
}
.large-text .menu-panel .menu-row{block-size:auto}

/* W-R11b R10-11: display options share the heading's 20px sheet gutter.
   Keep every label/button in the body scrollport when text is enlarged. */
.menu-panel:has(.p-display-options){display:flex;flex-direction:column}
.menu-panel:has(.p-display-options) .menu-content{display:block;padding:var(--s3);min-block-size:0;overflow:auto;overscroll-behavior:contain}
.menu-panel:has(.p-display-options) .menu-heading{flex:none;min-inline-size:0}
.menu-panel .p-display-options>.p-switch-row{block-size:auto;min-block-size:52px;white-space:normal;gap:var(--s3);text-align:start}
.menu-panel .p-display-options .p-switch{flex:none}
.menu-panel .p-display-options .p-gender-segments{display:grid;grid-template-columns:minmax(0,1fr)}
.menu-panel .p-display-options .p-gender-segments>button{inline-size:100%;block-size:auto;min-block-size:52px;white-space:normal}
.menu-panel:has(.p-display-options) .menu-heading h2{hyphens:manual}

/* W-R12 R11-11: only edges with hidden content fade; both axes may scroll. */
:root body [data-scroll-cues]{mask-image:linear-gradient(to right,transparent,#000 var(--cue-left,0px),#000 calc(100% - var(--cue-right,0px)),transparent),linear-gradient(to bottom,transparent,#000 var(--cue-top,0px),#000 calc(100% - var(--cue-bottom,0px)),transparent);mask-composite:intersect}

/* Per-content Auto follows the linked lesson even while the learner is at A1. */
html[data-stress=auto] [data-stress-level]:is([data-stress-level=B1],[data-stress-level=B2],[data-stress-level=C1],[data-stress-level=C2]) .sv::after{display:none}

/* Native UI stress wrappers retain headings/captions' existing type roles. */
.ui-bg-run{font:inherit}
html:not([lang=bg]) .ui-bg-run{font-family:var(--font-body)}

/* Shared audio glyphs follow text size within their existing transport circle. */
.audio-control>svg{inline-size:min(1.846em,calc(var(--audio-control) - 8px));block-size:min(1.846em,calc(var(--audio-control) - 8px))}

.topbar{position:sticky;inset-block-start:0;z-index:40;display:flex;align-items:center;gap:var(--s2);padding:var(--s1) var(--s5);min-block-size:52px;background:color-mix(in srgb,var(--surfaceElevated) 92%,transparent);backdrop-filter:blur(20px) saturate(1.4);border-block-end:1px solid transparent}.topbar.scrolled{border-color:var(--border)}.brand{display:flex;align-items:center;gap:var(--s2);font-family:var(--font-display);font-size:var(--brand-size);font-weight:800;text-decoration:none;position:relative;overflow:hidden;border-radius:var(--r-chip);flex-shrink:0}.brand img{inline-size:32px;block-size:32px;border-radius:8px}.brand-dark{display:none}[data-theme=dark] .brand-light{display:none}[data-theme=dark] .brand-dark{display:block}.topbar .brand-name{max-inline-size:135px;line-height:1.1}.top-actions{display:flex;align-items:center;gap:var(--s1);margin-inline-start:auto}.desktop-only,.top-search{display:none}.nav-tabs{display:flex;position:fixed;inset:auto 0 0;z-index:45;background:color-mix(in srgb,var(--surfaceElevated) 92%,transparent);backdrop-filter:blur(20px) saturate(1.4);border-block-start:1px solid var(--border);padding-block-end:env(safe-area-inset-bottom);min-block-size:64px;isolation:isolate}.nav-tabs>a{min-inline-size:0;flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s1);padding:var(--s2) var(--s1);font-size:var(--tab-size);font-weight:600;text-decoration:none;color:var(--textSecondary);line-height:1.2;text-align:center;border-radius:var(--r-chip);transition:color var(--t-hover),background var(--t-hover)}.nav-tabs .i{inline-size:26px;block-size:26px}.nav-tabs [aria-current=page]{color:var(--textPrimary)}.tab-indicator{position:absolute;inset:0 auto auto 0;inline-size:24px;block-size:3px;background:var(--action);border-radius:3px;transition:transform 220ms var(--spring),width 220ms var(--spring);z-index:-1;pointer-events:none}.tab-tapped .i{animation:bounce 280ms var(--spring)}.top-language .endonym,.top-language .chevron{display:none}.top-language{padding:0;inline-size:44px;border-color:transparent}.collection{background:var(--surface);border-block-start:1px solid var(--border);margin-block-start:var(--s6);padding:var(--s6) var(--s5) calc(var(--s6) + 64px + env(safe-area-inset-bottom))}.footer-inner{max-inline-size:1240px;margin-inline:auto;display:grid;gap:var(--s6)}.app-plate{display:flex;flex-direction:column;gap:var(--s4);padding-block:var(--s4);border-block-end:1px solid var(--border);min-inline-size:0}.app-identity{display:flex;gap:var(--s3);align-items:center;min-inline-size:0}.app-identity img{inline-size:52px;block-size:52px;border-radius:var(--r-tile)}.app-identity h3{font-size:var(--body)}.app-identity h3 a{text-decoration:none}.app-identity p{font-size:var(--secondary);color:var(--textSecondary)}.store-links{display:flex;align-items:center;gap:var(--s2);overflow-x:auto;overflow-y:visible;min-block-size:52px;padding:var(--s2) var(--s1);max-inline-size:100%}.promo-control{display:inline-flex;flex-shrink:0;position:relative;text-decoration:none;transition:transform var(--t-hover),box-shadow var(--t-hover);border-radius:var(--r-chip)}.promo-control>img{block-size:36px;inline-size:auto;max-inline-size:none}.promo-control.unavailable{opacity:.45;filter:grayscale(.45)}.soon-pill{position:absolute;inset-block-start:-6px;inset-inline-end:0;padding:0 var(--s1);font-size:var(--eyebrow);line-height:1.4;background:var(--brand);color:#fff;border-radius:var(--r-chip);white-space:nowrap}.web-badge{display:flex;align-items:center;gap:var(--s2);border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);border-radius:var(--r-chip);block-size:36px;padding-inline:var(--s2);font-size:var(--secondary);white-space:nowrap}.web-badge small{display:none}.web-badge .i{inline-size:22px;block-size:22px}.colophon{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3);font-size:var(--caption)}.colophon nav,.footer-languages{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4)}.colophon a,.footer-languages a{display:inline-flex;align-items:center;min-block-size:44px}.footer-languages{font-size:var(--caption)}.compact-page-title{display:none}.play-banner{margin:0;position:fixed;z-index:30;inset-inline:var(--s4);inset-block-end:80px;background:var(--surfaceElevated);border:1px solid var(--border);box-shadow:var(--lift-2);border-radius:var(--r-card);padding:var(--s2);display:flex;gap:var(--s2);align-items:center}.play-banner a{font-size:var(--secondary)}
@media(hover:hover) and (pointer:fine){.nav-tabs>a:hover{background:color-mix(in srgb,var(--action) 6%,transparent)}.promo-control[href]:hover{transform:translateY(-1px);box-shadow:var(--lift-1)}.promo-control:hover .web-badge{background:color-mix(in srgb,var(--action) 8%,transparent);border-color:var(--action)}}.promo-control[href]:active{transform:scale(.97)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.topbar{inset-block-start:var(--s3);margin:var(--s3) var(--s3) 0;padding:var(--s2) var(--s3);min-block-size:64px;border:1px solid var(--border);border-radius:var(--r-card);gap:var(--s2);background:color-mix(in srgb,var(--surfaceElevated) 88%,transparent);box-shadow:var(--lift-1)}.nav-tabs{position:relative;inset:auto;border:0;border-radius:var(--r-button);min-block-size:44px;padding:var(--s1);background:var(--surfaceSunken);backdrop-filter:none;flex:1;max-inline-size:560px;margin-inline:auto;gap:var(--s1)}.nav-tabs>a{min-block-size:44px;flex-direction:row;font-size:var(--nav-size);padding:var(--s2);border-radius:var(--r-chip);z-index:1}.nav-tabs .i{inline-size:20px;block-size:20px}.nav-tabs [aria-current=page]{color:var(--onAction);background:var(--action)}.nav-tabs.indicator-ready [aria-current=page]{background:transparent}.nav-tabs .tab-indicator{block-size:44px;inline-size:0;border-radius:var(--r-chip);z-index:0}.desktop-only{display:inline-flex}.topbar .brand-name{display:none}.collection{margin-block-start:var(--s7);padding-block:var(--s7)}.app-plate{flex-direction:row;align-items:center;justify-content:space-between;gap:var(--s6)}.app-identity{flex:1}.app-identity img{inline-size:64px;block-size:64px}.store-links{max-inline-size:65%}.promo-control>img,.web-badge{block-size:40px}.web-badge small{display:block;font-size:var(--eyebrow);line-height:1}.web-badge b{font-weight:600}.web-badge span{line-height:1.25}.play-banner{inset-block-end:var(--s4);max-inline-size:560px;margin-inline:auto}}
@media(min-width:1100px){.topbar .brand-name{display:block}.topbar{gap:var(--s3)}.top-language{inline-size:auto;padding-inline:var(--s2);border-color:color-mix(in srgb,var(--textPrimary) 70%,transparent)}.top-language .endonym,.top-language .chevron{display:block}.nav-tabs{max-inline-size:520px}.topbar .get-app{display:inline-flex}}
@media(min-width:1440px){.top-search{display:flex;inline-size:220px}.search-link{display:none}.topbar{max-inline-size:1600px;margin-inline:auto}.brand .brand-name{max-inline-size:none}}
@media(max-width:1099px){.topbar .get-app{display:none}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){body{padding-block-end:0}.topbar.scrolled .brand-name{font-size:var(--compact-title)}.topbar .top-actions{gap:0}.topbar .brand-name{max-inline-size:none}.topbar .brand{font-size:var(--compact-title)}.topbar{padding-inline:var(--s3)}.footer-languages{gap:var(--s1) var(--s4)}}
@media(max-width:359px){.topbar .brand-name{max-inline-size:100px}}
@media(prefers-reduced-motion:reduce){.promo-control:hover,.promo-control:active{transform:none}}

@media(max-width:759px),(max-height:500px) and (pointer:coarse){.topbar{backdrop-filter:none}.nav-tabs{inset-block-start:auto;inset-block-end:0;inset-inline:0}}
.topbar{view-transition-name:shell-topbar}.nav-tabs{view-transition-name:shell-tabs}main{view-transition-name:page-content}
::view-transition-old(root),::view-transition-new(root),::view-transition-new(shell-topbar),::view-transition-new(shell-tabs){animation:none}
::view-transition-old(shell-topbar),::view-transition-old(shell-tabs){animation:none;opacity:0}
::view-transition-group(course-photo){animation-duration:var(--t-route)}
::view-transition-old(page-content){animation:page-out 120ms var(--ease-in-out) both}::view-transition-new(page-content){animation:page-in var(--t-route) var(--ease-out) 60ms both}
@keyframes page-out{to{opacity:0;transform:translateY(-6px)}}@keyframes page-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){::view-transition-old(page-content),::view-transition-new(page-content){animation:none}}
/* Grid tracks must shrink to the phone width; badges scroll within their row. */
.footer-inner{grid-template-columns:minmax(0,1fr)}.footer-inner>*{min-inline-size:0}.store-links{min-inline-size:0}.menu-panel .store-links{max-inline-size:none}

/* main already supplies the section-to-footer gap at each breakpoint. */
.collection{margin-block-start:0}
/* D1: safe return from an external app; compact phone footer. */
.phone-settings{display:none}.footer-language-trigger{display:none}.nav-tabs{bottom:var(--vv-bottom,0px)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.nav-tabs{bottom:auto}.top-search{min-block-size:44px}.topbar .icon-button,.topbar .compact{min-block-size:44px}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.theme-trigger{display:none}.phone-settings,.footer-language-trigger{display:inline-flex}.footer-languages{display:none}.footer-inner{gap:var(--s3)}.collection{padding-block-start:var(--s6);margin-block-start:var(--s6)}.app-plate{gap:var(--s2);padding-block:var(--s3)}.app-identity p{font-size:var(--caption);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.app-identity .app-icon{inline-size:48px;block-size:48px}.app-identity h3{font-size:var(--secondary)}.store-links{padding-block:var(--s1);min-block-size:44px}.colophon{gap:var(--s2)}.colophon nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s4);inline-size:100%}.nav-tabs[aria-current] .i{background:var(--action)}.nav-tabs [aria-current=page] .i{filter:drop-shadow(.4px 0 currentColor)}}

.topbar{-webkit-backdrop-filter:blur(20px) saturate(1.4)}
body[data-page=search] .top-search,body[data-page=dictionary] .top-search{visibility:hidden;pointer-events:none}
@supports not ((backdrop-filter:blur(20px)) or (-webkit-backdrop-filter:blur(20px))){.topbar{background:var(--surfaceElevated)}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.topbar,.nav-tabs{background:var(--surfaceElevated);backdrop-filter:none;-webkit-backdrop-filter:none}.topbar.scrolled{border-block-end-color:var(--border)}}

/* Theme changes snapshot one complete, internally consistent palette. */
html.theme-switching *,html.theme-switching *::before,html.theme-switching *::after{transition:none!important}
html.theme-transition :is(main,.topbar,.nav-tabs){view-transition-name:none!important}
html.theme-transition::view-transition-old(root){animation:none;mix-blend-mode:normal}
html.theme-transition::view-transition-new(root){animation:theme-reveal 320ms var(--ease-in-out) both;mix-blend-mode:normal}
@keyframes theme-reveal{from{clip-path:circle(0 at var(--theme-x) var(--theme-y))}to{clip-path:circle(150vmax at var(--theme-x) var(--theme-y))}}
@media(prefers-reduced-motion:reduce){html.theme-transition::view-transition-new(root){animation:theme-fade 150ms var(--ease-out) both}@keyframes theme-fade{from{opacity:0}to{opacity:1}}}

/* W5 level-rail continuity; only the selection snapshot moves. */
::view-transition-group(level-pill){animation-duration:220ms;animation-timing-function:var(--spring)}
@media(prefers-reduced-motion:reduce){::view-transition-group(level-pill){animation:none}::view-transition-old(page-content),::view-transition-new(page-content){animation:theme-fade 150ms var(--ease-out) both}}

/* R2a-W3 P1-3 / P2-2: identical plates, padding and honest Soon contrast.
   The row reserves space above the plates so its overflow scroller cannot
   cut the label or let it cover the official store artwork. */
.store-links{padding-block:var(--s6) var(--s2)}
.promo-control{inline-size:136px;block-size:40px;min-block-size:40px;flex:0 0 136px;border-radius:8px;display:grid;place-items:center}
.store-badge{background:#000}
.store-badge::before{content:"";position:absolute;inset:0;background:var(--badge-image) center/contain no-repeat;pointer-events:none}
.promo-control.unavailable{opacity:1;filter:none}
.soon-pill{inset-block-start:auto;inset-block-end:calc(100% + var(--s1));background:var(--brandSoft);color:var(--brand);line-height:1.5}
.promo-control.web-badge{display:flex;justify-content:center;gap:var(--s1);padding-inline:var(--s2);font-size:var(--caption);white-space:normal}
.web-badge .i{flex:none;inline-size:20px;block-size:20px}
.web-badge span{min-inline-size:0;line-height:1.1}
.web-badge b{font-weight:600;overflow-wrap:break-word}
.web-badge small{font-size:var(--eyebrow)}
@media(hover:hover) and (pointer:fine){.promo-control.web-badge:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));border-color:var(--action)}}

/* Preserve equal 40px badge plates with a real 44px pointer target. */
.promo-control>[data-hit]{position:absolute;inset:-2px 0;block-size:44px;border-radius:8px;pointer-events:auto}
/* Shared entry controls remain full targets at tablet widths and in the footer. */
.brand{min-inline-size:44px;justify-content:center}
.footer-languages a,.colophon nav a{min-inline-size:44px;padding-inline:var(--s1);justify-content:center;text-align:center}
@media(hover:hover) and (pointer:fine){
 .brand:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface))}
 .nav-tabs.indicator-ready [aria-current=page]:hover{background:color-mix(in srgb,var(--onAction) 12%,transparent);color:var(--onAction)}
 .search-field:hover{border-color:var(--action);box-shadow:0 0 0 1px var(--action)}
 .app-identity h3 a:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary);text-decoration:underline;text-decoration-color:var(--textPrimary);border-radius:var(--r-chip)}
}
.brand:active,.app-identity h3 a:active{background:var(--surfaceSunken);color:var(--textPrimary);transform:scale(.98)}
.footer-languages a:active,.colophon a:active{opacity:1;background:var(--surfaceSunken);color:var(--textPrimary)}
@media(prefers-reduced-motion:reduce){.brand:active,.app-identity h3 a:active{transform:none}}
/* The late generic footer rule in pages.css must not shrink a hit target. */
.collection .footer-languages a,.collection .colophon nav a{min-inline-size:44px}
.collection .footer-languages a:active,.collection .colophon a:active{opacity:1;background:var(--surfaceSunken);color:var(--textPrimary)}

/* SCAN-1: a single plate, with an independent 44px pointer target. */
.promo-control[href]::after{content:"";position:absolute;inset:-2px 0;min-block-size:44px;border-radius:inherit}
.promo-control.web-badge{background:var(--action);color:var(--onAction);border-color:var(--action)}
.web-badge small{display:block;font-size:var(--eyebrow);line-height:1.1}
.web-badge b{display:block;font-weight:700}
.promo-control.web-badge:active{transform:scale(.98)}
@media(hover:hover) and (pointer:fine){.promo-control.web-badge:hover{background:color-mix(in srgb,var(--action) 92%,var(--onAction));color:var(--onAction);border-color:var(--action);transform:translateY(-1px);box-shadow:var(--lift-1)}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.promo-control{inline-size:var(--badge-width,136px);flex:0 0 var(--badge-width,136px)}.promo-control.web-badge{inline-size:max-content;flex:0 0 auto;padding-inline:var(--s2)}}
@media(prefers-reduced-motion:reduce){.promo-control.web-badge:is(:hover,:active){transform:none}}
/* Desktop's fixed plate gives the full width to the bold label. Long captions
   keep their complete words beside the browser glyph; phone badges stay natural. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 .promo-control.web-badge{display:grid;padding-inline:var(--s1);grid-template-columns:16px minmax(0,1fr);grid-template-rows:16px auto;gap:0 var(--s1);align-content:center}
 .web-badge>span{display:contents}
 .web-badge>.i{grid-column:1;grid-row:1;inline-size:16px;block-size:16px}
 .web-badge small{grid-column:2;grid-row:1;white-space:nowrap;letter-spacing:-.01em;align-self:center}
 .web-badge b{grid-column:1/-1;grid-row:2;text-align:center;white-space:nowrap}
}
/* At doubled text size the desktop navigation gets its own complete row. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 .large-text .topbar{flex-wrap:wrap}
 .large-text .top-search,.large-text .get-app{display:none}
 .large-text .search-link{display:inline-flex}
 .large-text .nav-tabs{order:3;flex:1 0 100%;max-inline-size:none}
 .large-text .nav-tabs>a{flex-direction:column}
 .large-text .level-filter,.large-text .letter-index{inset-block-start:calc(var(--topbar-height,92px) + 24px)}
}

/* HOT-1: localized lockup fits its reserved 44px shell slot from first paint.
   Keep the full product name visible; wrapping is preferable to clipping it. */
.topbar .brand-mark{flex:none}
.topbar .brand{min-block-size:44px;justify-content:flex-start}
.topbar .brand .brand-name{font-family:inherit;line-height:1.2;white-space:normal;overflow-wrap:normal;hyphens:manual}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){
 .topbar .brand{flex:1 1 0;min-inline-size:0}
 .topbar .brand .brand-name{display:block;max-inline-size:none}
 .topbar .top-actions{flex:none}
}
html:is([lang=ar],[lang=he]) .topbar .brand{font-family:var(--font-system)}

/* HOT-1: cross-fade viewport snapshots, never the geometry of a long main.
   The named shell stays still; there is one route animation per path. */
html.route-transition main{view-transition-name:none}
html.route-transition::view-transition-group(root),
html.route-transition::view-transition-group(shell-topbar),
html.route-transition::view-transition-group(shell-tabs){animation:none}
html.route-transition::view-transition-old(root){animation:route-out 180ms var(--ease-out) both;mix-blend-mode:normal}
html.route-transition::view-transition-new(root){animation:route-in 180ms var(--ease-out) both;mix-blend-mode:normal}
@keyframes route-out{to{opacity:0}}
@keyframes route-in{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:reduce){html.route-transition::view-transition-old(root),html.route-transition::view-transition-new(root){animation-duration:150ms}}

/* Keep async route mounts behind the fallback fade until their layout is ready. */
html.route-preparing main,html.route-preparing footer.collection{visibility:hidden;pointer-events:none}

/* Localized desktop tabs need their natural label widths inside the pill. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.topbar .nav-tabs>a{flex:1 1 auto}}

/* HOT-3: a due count is an icon bubble, never another tab row. */
.nav-tabs>a{position:relative}
.nav-tabs .due-badge{position:absolute;inset-block-start:var(--s1);inset-inline-start:calc(50% + 6px);min-inline-size:20px;block-size:20px;line-height:20px;padding-inline:var(--s1);font-size:var(--eyebrow);white-space:nowrap;pointer-events:none;background:var(--brand);color:var(--onAction)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.nav-tabs{block-size:calc(64px + env(safe-area-inset-bottom));min-block-size:calc(64px + env(safe-area-inset-bottom));padding-block:0 env(safe-area-inset-bottom)}.nav-tabs>a{padding-block:var(--s1)}}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.nav-tabs .due-badge{position:static;margin-inline-start:var(--s1);flex:none;align-self:center}}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 .topbar .nav-tabs:has(.due-badge:not([hidden])){min-inline-size:max-content;max-inline-size:none}
 .topbar .nav-tabs:has(.due-badge:not([hidden]))>a{flex:1 0 auto;min-inline-size:max-content}
}
@media(min-width:1100px) and (max-width:1279px){.topbar:has(.due-badge:not([hidden])) .brand-name{display:none}}

/* HOT-3: fixed chrome and flowing content share the physical notch insets. */
.topbar{padding-block-start:calc(var(--s1) + env(safe-area-inset-top));padding-left:max(var(--s3),env(safe-area-inset-left));padding-right:max(var(--s3),env(safe-area-inset-right))}
main,.collection{padding-left:max(var(--s5),env(safe-area-inset-left));padding-right:max(var(--s5),env(safe-area-inset-right))}
.nav-tabs{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}
@media(max-height:500px) and (pointer:coarse){.topbar{min-block-size:44px}.topbar .brand-name{display:block}.top-search,.desktop-only{display:none}.phone-settings{display:inline-flex}.theme-trigger{display:none}.collection{padding-block-end:calc(var(--s6) + 64px + env(safe-area-inset-bottom))}}

/* MOTION-H: contact feedback also survives a fast touch release on Safari. */
.nav-tabs>a:is(:active,.is-pressed){background:color-mix(in srgb,var(--action) 14%,transparent);transform:scale(.96);transition-duration:var(--t-press)}
:where(.button,.icon-button):not(:disabled,[aria-disabled=true]):is(:active,.is-pressed){transform:scale(.97);transition-duration:var(--t-press)}
.icon-button.is-pressed{background:color-mix(in srgb,var(--action) 12%,var(--surface))}
.button.secondary.is-pressed{background:color-mix(in srgb,var(--action) 14%,var(--surface))}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 /* Difference paints every glyph against the pill at its current position,
    keeping both labels readable throughout the travel in both palettes. */
 .topbar .nav-tabs.indicator-ready>a:hover{color:#fff}
 /* The outline blends too: white resolves to a contrasting theme ring. */
 .topbar .nav-tabs>a:focus-visible{outline-color:#fff}
 .topbar .nav-tabs>a{color:#fff;mix-blend-mode:difference;transition:transform var(--t-press) var(--ease-out),background var(--t-hover) var(--ease-out)}
 .topbar .nav-tabs>a:has(.due-badge:not([hidden])){z-index:auto;mix-blend-mode:normal}
 .topbar .nav-tabs>a:has(.due-badge:not([hidden]))>:not(.due-badge){position:relative;z-index:1;mix-blend-mode:difference}
 .topbar .nav-tabs .due-badge{z-index:1}
 .topbar .nav-tabs>a:has(.due-badge:not([hidden])):focus-visible{outline-color:var(--action)}
}
@media(prefers-reduced-motion:reduce){.nav-tabs>a:is(:active,.is-pressed),:where(.button,.icon-button):not(:disabled,[aria-disabled=true]):is(:active,.is-pressed){transform:none}}

/* MOTION-H: one opaque viewport per route; no geometry morph of a tall main,
   no blank fallback frames while the client readiness promises settle. */
.route-cover{position:fixed;inset:0;z-index:40;overflow:clip;pointer-events:none;background:var(--bg)}
.route-cover *{animation:none!important;transition:none!important}
html.route-transition{overflow-anchor:none}
html.route-transition::view-transition-old(root){animation:none;opacity:0}
html.route-transition::view-transition-new(root){animation:route-solid 160ms var(--ease-out) both;mix-blend-mode:normal}
@keyframes route-solid{from{opacity:.98}to{opacity:1}}
html.route-transition::view-transition-group(page-content),html.route-transition::view-transition-group(page-footer){animation:none}
html.route-preparing main,html.route-preparing footer.collection{visibility:hidden}
html.route-preparing .route-cover :is(main,footer.collection){visibility:visible}

/* BUG-12/13: sheet chrome answers immediately; its moving rows cannot select. */
.menu-content{display:contents}
.menu-panel.opening .menu-rows{pointer-events:none}
.menu-pending{inline-size:min(424px,calc(100vw - 64px));block-size:352px;border-radius:var(--r-tile);background:var(--surfaceSunken)}
.menu-trigger[aria-busy=true]{background:var(--surfaceSunken);color:var(--textPrimary)}

@media(max-width:759px),(max-height:500px) and (pointer:coarse){.menu-pending{block-size:55dvh}}

/* DQA-R2-W P1-3: equal plates on every surface, including phone scrollers. */
.store-links{flex-wrap:nowrap;overscroll-behavior-inline:contain}
.store-links>.promo-control{inline-size:136px;min-inline-size:136px;max-inline-size:136px;block-size:40px;min-block-size:40px;flex:0 0 136px}
.menu-panel .store-links{inline-size:288px;padding-block:var(--s3);scrollbar-width:thin}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.web-badge small{display:none}.store-links>.web-badge b{white-space:normal}.colophon nav{display:flex;flex-wrap:wrap;gap:0 var(--s4)}}

/* The page language control is available in both footer compositions. */
.collection .footer-language-trigger{display:inline-flex;justify-self:start;inline-size:max-content;max-inline-size:100%}
.locale-confirmation{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:var(--s2);inline-size:100%;min-block-size:48px;padding:var(--s2) var(--s3);background:var(--surfaceElevated);color:var(--textPrimary);border:1px solid var(--border);border-radius:var(--r-tile);font-size:var(--secondary)}
.locale-confirmation>span{flex:1 1 10rem;min-inline-size:0;overflow-wrap:anywhere}.locale-confirmation>.button,.locale-confirmation>.icon-button{flex:none}

/* SEO-1: crawlable detail footer, with a usable language list without JS. */
.footer-reference{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:var(--caption)}
.footer-reference a{display:inline-flex;align-items:center;min-block-size:44px;min-inline-size:44px}
html:not(.js) .footer-languages{display:flex}

.nav-tabs .tab-filled{display:none}
@media(max-width:759px){.nav-tabs [aria-current=page]>.i:not(.tab-filled){display:none}.nav-tabs [aria-current=page]>.tab-filled{display:inline-block}}

.theme-trigger>.i{display:none}.theme-trigger>.i-auto{display:inline-block}
[data-appearance=light] .theme-trigger>.i-auto,[data-appearance=dark] .theme-trigger>.i-auto{display:none}
[data-appearance=light] .theme-trigger>.i-sun,[data-appearance=dark] .theme-trigger>.i-moon{display:inline-block}

/* W-R6: phone navigation always stays in one row, including 200% text. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){
 .nav-tabs{display:flex;flex-wrap:nowrap;inline-size:100%;max-inline-size:100%;block-size:calc(64px + env(safe-area-inset-bottom));gap:0}
 .nav-tabs>a{flex:1 1 0;min-inline-size:0;flex-direction:column;min-block-size:64px}
 .nav-tabs>a>span:not(.due-badge){font-size:min(var(--tab-size),var(--tab-label-max));white-space:nowrap;word-break:normal;overflow-wrap:normal;hyphens:manual;line-height:1.2}
 .large-text .home-library .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .large-text .home-library .feature-copy strong{hyphens:auto;overflow-wrap:break-word}
}

/* W-R5: the web link stays fully visible beside equal store plates on phones. */
@media(max-width:500px){
 .collection .store-links{display:grid;grid-template-columns:repeat(2,136px);gap:8px;overflow:visible;justify-content:start;max-inline-size:100%}
 .collection .store-links>.promo-control{inline-size:136px;min-inline-size:136px;max-inline-size:136px;block-size:40px;min-block-size:40px}
 .large-text .collection .store-links{grid-template-columns:minmax(0,272px)}
 .large-text .collection .store-links>.promo-control{inline-size:272px;min-inline-size:0;max-inline-size:100%;block-size:80px;min-block-size:80px}
}
@media(hover:hover) and (pointer:fine){
 .nav-tabs>a:not([aria-current=page]):hover{background:color-mix(in srgb,var(--action) 8%,transparent);color:var(--textPrimary);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.2em}
}

/* W-R5b: an unavailable store is an honest disabled label, without active badge art. */
.store-badge.unavailable{background:var(--surfaceSunken);color:var(--textSecondary);border:1px solid var(--border);cursor:default}
.store-badge.unavailable::before{display:none}
.unavailable-store-label{padding-inline:var(--s2);text-align:center;font-size:var(--caption);font-weight:600;line-height:1.25}

.collection .tertiary{block-size:52px;min-block-size:52px}

/* W-DQA4 P2-44: a complete app invitation, with room to scroll past it. */
.play-banner{justify-content:space-between;inline-size:calc(100% - 32px);max-inline-size:560px;inset-inline:0;margin-inline:auto;gap:var(--s3);padding:var(--s3);inset-block-end:calc(var(--tab-bar-height,calc(64px + env(safe-area-inset-bottom))) + var(--s3))}
.play-banner>.app-icon{inline-size:40px;block-size:40px;flex:none;border-radius:var(--r-chip)}
.play-banner-copy{display:grid;gap:var(--s1);flex:1;min-inline-size:0;font-size:var(--secondary);line-height:1.2;overflow-wrap:anywhere}
.play-banner-copy>span{font-size:var(--caption);color:var(--textSecondary)}
.play-banner>.play-banner-store{inline-size:136px;block-size:40px;flex:none}
.play-banner>.icon-button{flex:none}
body:has(.play-banner) main{padding-block-end:calc(var(--s6) + var(--play-banner-height,0px) + var(--s3))}
body.p-focus>.play-banner{display:none}
body.p-focus:has(.play-banner) main{padding-block-end:0}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.play-banner{inset-block-end:var(--s4)}body:has(.play-banner) main{padding-block-end:calc(var(--s7) + var(--play-banner-height,0px) + var(--s4))}}
@media(max-width:559px){.play-banner{display:grid;grid-template-columns:40px minmax(0,1fr) 44px;gap:var(--s2) var(--s3)}.play-banner>.app-icon{grid-column:1;grid-row:1}.play-banner-copy{grid-column:2;grid-row:1}.play-banner>.icon-button{grid-column:3;grid-row:1}.play-banner>.play-banner-store{grid-column:2;grid-row:2}}

/* W-DQA4 P2-43: two explicit lines fit the shared 136 x 40 plate. */
.unavailable-store-label{display:grid;align-content:center;gap:0;inline-size:100%;block-size:100%;padding:2px var(--s1);font-size:var(--eyebrow);line-height:1.2;text-wrap:balance}
.unavailable-store-label>span{display:block;white-space:nowrap}
.unavailable-store-label>span:first-child::first-letter{text-transform:uppercase}

/* W-DQA4 P3-25: every footer language has a visible pointer response. */
@media(hover:hover) and (pointer:fine){.footer-languages a:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:.18em;border-radius:var(--r-chip)}}

/* Extend the 40px plate's hit area upward without creating internal overflow. */
.collection .promo-control>[data-hit],.collection .promo-control[href]::after{inset-block-start:calc(100% - 44px);inset-block-end:auto;block-size:44px}

/* Store names keep the same compact Latin metrics inside RTL interfaces. */
.unavailable-store-label>span[dir=ltr]{font-family:var(--font-body)}

/* The last footer control needs the same clearance as the last main card. */
body:has(.play-banner) .collection{padding-block-end:calc(var(--s6) + var(--tab-bar-height,calc(64px + env(safe-area-inset-bottom))) + var(--play-banner-height,0px) + var(--s3))}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){body:has(.play-banner) .collection{padding-block-end:calc(var(--s7) + var(--play-banner-height,0px) + var(--s4))}}

/* W-R6b: enlarged confirmation copy wraps, and modal menus own hit testing. */

/* W-R7-9: Android promotion lives below the content, never over an action. */
.play-banner{position:static;inset:auto;inline-size:100%;max-inline-size:none;margin:var(--s6) 0;box-shadow:none}
body:has(.play-banner) main{padding-block-end:var(--s6)}
body:has(.play-banner) .collection{padding-block-end:calc(var(--s6) + var(--tab-bar-height,calc(64px + env(safe-area-inset-bottom))))}
@media(min-width:760px){body:has(.play-banner) main{padding-block-end:var(--s7)}body:has(.play-banner) .collection{padding-block-end:var(--s7)}}

/* W-R7-17: tablet navigation gets the full header width. */
@media(min-width:760px) and (max-width:1279px){.topbar .brand-name{display:none}}
@media(min-width:1280px) and (max-width:1359px){.topbar .brand-name{max-inline-size:none;white-space:nowrap}.topbar .nav-tabs{max-inline-size:none}}

/* R8-7: every store plate stays visible; columns keep their store identity. */
.collection .store-links{display:grid;grid-template-columns:repeat(2,136px);overflow:visible;justify-content:start;gap:var(--s2);max-inline-size:100%}
.collection .store-links>[data-store=appStore]{grid-column:1}
.collection .store-links>[data-store=googlePlay]{grid-column:2}
.collection .store-links>.store-unavailable{white-space:normal;flex-wrap:wrap;inline-size:136px;min-block-size:40px;align-content:center}
@media(min-width:1100px){.collection .store-links{grid-template-columns:repeat(4,136px)}.collection .store-links>[data-store=appGallery]{grid-column:3}.collection .store-links>.web-badge{grid-column:4}}
.large-text .collection .store-links{display:grid;grid-template-columns:minmax(0,272px)}
.large-text .collection .store-links>*{grid-column:1}
.large-text .collection .store-links>.store-unavailable{inline-size:min(272px,100%)}

/* W-R8c R8-17: the floating bar's top gap is an opaque page surface. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 .topbar::before{content:"";position:absolute;inset-block-end:100%;inset-inline:calc(-1 * var(--s3));block-size:var(--s3);background:var(--bg);pointer-events:none}
}

/* W-R8c R7-14: the unavailable store slot has the same plate geometry. */
.collection .store-links>.store-unavailable{block-size:40px;min-block-size:40px;font-size:var(--caption);line-height:1.2}
.large-text .collection .store-links>.store-unavailable{block-size:80px;min-block-size:80px}

/* The existing local AppGallery mark is one shared decorative resource. */
.badge--ag>.ag-mark{background:var(--appgallery-mark) center/contain no-repeat}

/* W-CULTURE-b: breadcrumbs remain in flow below the bar and behind its gap mask. */
body>main:has(>.breadcrumbs){padding-block-start:var(--s6)}
main>.breadcrumbs{position:relative;z-index:0}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){
 /* Include the bar's border so the mask reaches the viewport's first pixel. */
 .topbar::before{block-size:calc(var(--s3) + 1px)}
}

/* W-R9-7: language undo owns normal-flow space before the first content paint. */
.language-undo-slot{display:none}
html[data-language-arrival] .language-undo-slot,html[data-locale-confirmation] .language-undo-slot{display:flex;justify-content:flex-end;min-block-size:64px;max-inline-size:1240px;margin-inline:auto;padding:var(--s2) var(--s5)}
.language-undo{display:flex;align-items:center;gap:var(--s1);max-inline-size:100%;background:var(--surfaceElevated);border:1px solid var(--border);border-radius:var(--r-tile)}
.language-undo>.button{min-inline-size:0;text-align:center}
.language-undo>.icon-button{flex:none}

/* W-R9c: store positions stay identical even when AppGallery is absent. */
.collection .store-links>[data-store]{grid-row:1}.collection .store-links>[data-store=appGallery]{grid-column:1;grid-row:2}.collection .store-links>.web-badge{grid-column:2;grid-row:2}
.store-badge.store-unavailable{position:relative;display:block;background:transparent;border:0;border-radius:6px;opacity:.7}.store-badge.store-unavailable .store-soon{position:absolute;inset-block-end:calc(100% + var(--s1));inset-inline-end:0;padding:var(--s1) var(--s2);border-radius:var(--r-chip);background:var(--surfaceElevated);color:var(--textPrimary);border:1px solid var(--border);font-size:var(--eyebrow);line-height:1}
@media(min-width:1100px){.collection .store-links>[data-store=appGallery]{grid-column:3;grid-row:1}.collection .store-links>.web-badge{grid-column:4;grid-row:1}}
.large-text .collection .store-links>[data-store],.large-text .collection .store-links>.web-badge{grid-column:1;grid-row:auto}

html[data-locale-confirmation] .language-undo-slot{min-block-size:80px}

/* W-R10b R10-19/26: aligned footer gutters and a plain notice link. */
.collection{padding-inline:var(--main-gutter,var(--s5))}
@media(min-width:1100px){.collection{padding-inline:var(--s7)}}
.footer-inner{max-inline-size:calc(1280px - 2 * var(--s7))}
.store-links{align-items:start}
.store-links>.store-badge.store-unavailable{--store-art-height:40px;block-size:auto;min-block-size:0;padding-block-start:calc(var(--store-art-height) + var(--s1));padding-block-end:0;text-align:center}
.store-badge.store-unavailable::before{inset:0 0 auto;block-size:var(--store-art-height)}
.store-badge.store-unavailable .store-soon{position:static;display:inline-block;padding:0;border:0;background:transparent;font-size:var(--caption);line-height:1.25}
.large-text .store-links>.store-badge.store-unavailable{--store-art-height:80px;block-size:auto;min-block-size:0}
.language-undo-link{display:inline-flex;align-items:center;min-block-size:44px;padding-inline:var(--s2);color:var(--textPrimary);border-radius:var(--r-chip);text-decoration:underline;text-underline-offset:.18em}
.language-undo-link:hover{background:var(--surfaceSunken)}
.language-undo-link:active{opacity:.7}
.language-undo-link:focus-visible{outline:2px solid var(--action);outline-offset:2px}

/* W-BADGE2 · adapted from history-of-bulgaria 621e1789d996, Store badges v2.
   Official art owns its one frame; the 44px host only supplies the hit target. */
:root{--store-plate-height:40px;--store-art-scale:1;--store-mark-size:22px;--store-caption:var(--ag-caption-v2);--store-title:var(--ag-title-v2)}
body .store-badge,body .store-links>.store-badge,body .collection .store-links>.store-badge,body .play-banner>.play-banner-store{display:inline-flex;align-items:center;justify-content:flex-start;inline-size:calc(var(--badge-width,136px) * var(--store-art-scale));min-inline-size:0;max-inline-size:none;block-size:44px;min-block-size:44px;flex:none;padding:0;border:0;border-radius:6px;background:transparent;box-shadow:none;clip-path:none}
body .store-badge.badge--ag[href]{background:transparent;box-shadow:none}
body .store-badge::before,body .store-badge.store-unavailable::before{inset:2px 0 auto;block-size:var(--store-plate-height);border-radius:0;background:var(--badge-image) left center/contain no-repeat;clip-path:none}
body .store-badge>[data-hit],body .collection .store-badge[href]::after{inset:0;block-size:44px;border-radius:6px}
body .store-links>.badge--ag,body .collection .store-links>.badge--ag{inline-size:max-content}
body .badge--ag::before{display:none}
body .badge--ag .ag-badge{display:inline-flex;align-items:center;gap:7px;block-size:var(--store-plate-height);padding:0 12px 0 9px;border-radius:6px;background:#000;color:#fff;box-shadow:inset 0 0 0 1px #A6A6A6}
body .ag-badge>.ag-mark{display:block;flex:none;inline-size:var(--store-mark-size);block-size:var(--store-mark-size);background:var(--appgallery-mark) center/contain no-repeat}
body .ag-badge>.ag-copy{display:flex;flex-direction:column;justify-content:center;gap:1px;line-height:1;white-space:nowrap;min-inline-size:max-content}
body .ag-badge small{font:var(--store-caption);letter-spacing:.01em;color:#fff}
body .ag-badge b{font:var(--store-title);letter-spacing:-.02em;color:#fff}
body .store-links,body .collection .store-links{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:flex-start;gap:12px;max-inline-size:100%;padding-block:var(--s3);overflow:visible}
body .store-links>.promo-control{flex:none}
body .menu-panel .store-links{display:flex;flex-direction:column;align-items:flex-start;gap:12px;inline-size:auto;padding:12px 4px}
body .store-links>.store-badge.store-unavailable{display:inline-flex;position:relative;padding:0;margin-block-end:calc(var(--caption) * 1.25 + var(--s1));opacity:.7}
body .store-badge.store-unavailable .store-soon{position:absolute;inset-block-start:calc(100% + var(--s1));inset-inline:0;white-space:nowrap;font-size:var(--caption);line-height:1.25}
body .store-links>.web-badge,body .collection .store-links>.web-badge{inline-size:136px;min-inline-size:136px;max-inline-size:136px;block-size:var(--store-plate-height);min-block-size:var(--store-plate-height);margin-block-start:2px}
@media(hover:hover) and (pointer:fine){body .store-badge[href]:hover{background:transparent;box-shadow:none}body .badge--ag[href]:hover .ag-badge{background:#161616}}
@media(max-width:759px){:root{--store-plate-height:36px;--store-art-scale:.9;--store-mark-size:20px;--store-caption:var(--ag-caption-phone-v2);--store-title:var(--ag-title-phone-v2)}body .badge--ag .ag-badge{gap:6px;padding:0 10px 0 8px}body .store-badge::before,body .store-badge.store-unavailable::before{inset-block-start:4px}body .store-links>.web-badge{margin-block-start:4px}}
/* Enlarged text keeps full words, without shrinking or clipping the badge. */
.large-text .store-links{flex-direction:column;align-items:flex-start}

html.large-text body .store-links>.store-badge,html.large-text body .collection .store-links>.store-badge{inline-size:calc(var(--badge-width,136px) * var(--store-art-scale));min-inline-size:0;max-inline-size:none;block-size:44px;min-block-size:44px;padding:0}
html.large-text body .store-links>.badge--ag,html.large-text body .collection .store-links>.badge--ag{inline-size:max-content}

/* Stacked store lists share their physical left edge in RTL too. */
html[dir=rtl] body .menu-panel .store-links{align-items:flex-end}

/* Natural badge widths need their own row before the desktop breakpoint. */
@media(min-width:760px) and (max-width:1099px){.collection .app-plate{flex-direction:column;align-items:stretch;gap:var(--s3)}}

@media(prefers-reduced-motion:reduce){body .store-badge[href]:is(:hover,:active){transform:none}body .store-badge[href]:active{opacity:.8}}

/* W-R15-8: enlarged text keeps the complete action row and a compact mark. */
.compact-brand .topbar .brand-name{display:none}
.topbar .top-actions .i{inline-size:min(1.4em,36px);block-size:min(1.4em,36px)}
.nav-tabs .i{inline-size:1.4em;block-size:1.4em}
@media(max-width:759px){.nav-tabs .i{inline-size:2em;block-size:2em}}

/* The header language trigger keeps the same hit height as its icon neighbours. */
html.compact-brand body .topbar .top-actions>.top-language{min-block-size:44px;block-size:44px;padding-block:0;white-space:nowrap}

.today-hero{display:grid;gap:var(--s6);align-items:stretch}.hero-copy{display:flex;flex-direction:column;gap:var(--s4);justify-content:center}.hero-copy .actions>*{flex:1}.hero-copy h1{max-inline-size:18ch}.preview{display:grid;align-content:center}.preview h2{margin-block-end:var(--s3)}.stats{display:flex;flex-wrap:wrap;gap:var(--s4);margin-block-start:var(--s2)}.stat{flex:1;min-inline-size:80px}.stat strong{display:block;font-family:var(--font-display);font-size:var(--numeric);font-weight:900;line-height:1.1}.stat span{font-size:var(--caption);color:var(--textSecondary)}.level-ladder{grid-template-columns:repeat(2,minmax(0,1fr))}.level-tile{padding:var(--s4);display:grid;gap:var(--s3);text-decoration:none}.level-tile .level-badge{justify-self:start}.level-tile h3{font-size:var(--body)}.feature-icon{inline-size:44px;block-size:44px;border-radius:var(--r-tile);background:var(--surfaceSunken);display:grid;place-items:center}.course-layout{display:grid;gap:var(--s6)}.level-rail{display:grid;gap:var(--s2);align-self:start}.level-rail a{text-decoration:none;display:flex;gap:var(--s3);align-items:center;padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-button);background:var(--surface);transition:background var(--t-hover),border-color var(--t-hover)}.level-rail a[aria-current=page]{border-color:var(--action)}.level-rail .level-detail{font-size:var(--caption);color:var(--textSecondary)}.level-rail .level-title{font-size:var(--secondary);font-weight:600}.unit-cover .media{aspect-ratio:16/9;max-block-size:360px;border-radius:var(--r-card)}.unit-cover{margin-block-end:var(--s6)}.lesson-list{list-style:none;padding:0;margin:0}.lesson-list li+li{margin:0}.lesson-number{font-family:var(--font-display);font-size:var(--h3);font-weight:800;color:var(--textSecondary);min-inline-size:32px;font-variant-numeric:tabular-nums}.lesson-list .row-link{padding-inline:var(--s3)}.lesson-list h3{font-size:var(--body);line-height:1.4}.lesson-list p{font-size:var(--secondary);color:var(--textSecondary)}.lesson-aside{display:grid;gap:var(--s4)}.lesson-aside>.button{inline-size:100%}.lesson-sections>section+section{margin-block-start:var(--s6)}.lesson-sections h2{margin-block-end:var(--s4)}.lesson-head{margin-block-end:var(--s6)}.lesson-head .lead{margin-block-start:var(--s3)}.wr .wt{font-size:var(--bg-text)}.wr p{overflow-wrap:break-word;word-break:normal;hyphens:auto}.lesson-pager{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.lesson-pager a{display:grid;gap:var(--s2);text-decoration:none;padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}.lesson-pager a:last-child{text-align:end}.lesson-pager .meta{display:flex;gap:var(--s2);align-items:center}.lesson-pager a:last-child .meta{justify-content:end}.lesson-pager h3{font-size:var(--secondary)}.table-scroll{overflow-x:auto;max-inline-size:100%;border:1px solid var(--border);border-radius:var(--r-tile)}table{border-collapse:collapse;inline-size:100%;font-size:var(--secondary)}th,td{padding:var(--s3);text-align:start;border-block-end:1px solid var(--border)}th:first-child,td:first-child{position:sticky;inset-inline-start:0;background:var(--surface)}.answer-disclosure{margin-block-start:var(--s3)}.hub-row{display:flex;align-items:center;gap:var(--s4)}.first-visit{display:block}.returning-visit{display:none}html[data-returning] .first-visit{display:none}html[data-returning] .returning-visit{display:block}.returning-grid{display:grid;gap:var(--s4)}.cord{inline-size:120px;block-size:120px;margin-inline:auto}.word-note{margin-block-start:var(--s2)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.today-hero{grid-template-columns:7fr 5fr}.stats{gap:var(--s4)}.level-ladder{grid-template-columns:repeat(3,minmax(0,1fr))}.course-layout{grid-template-columns:220px minmax(0,1fr)}.level-rail{position:sticky;inset-block-start:100px}.course-units{grid-template-columns:repeat(2,minmax(0,1fr))}.returning-grid{grid-template-columns:1fr 1fr}.lesson-sections>section+section{margin-block-start:var(--s7)}}
@media(min-width:1280px){.level-ladder{grid-template-columns:repeat(6,minmax(0,1fr))}.course-units{grid-template-columns:repeat(3,minmax(0,1fr))}.course-layout{grid-template-columns:240px minmax(0,1fr)}}
@media(hover:hover) and (pointer:fine){.level-rail a:hover,.lesson-pager a:hover{background:color-mix(in srgb,var(--action) 6%,var(--surface));border-color:var(--action)}}

.level-detail{display:block}.bg-text{white-space:pre-line}.phone-start{margin-block-end:var(--s6)}@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.phone-start{display:none}}

.unit-word-index{list-style:none;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:var(--s4);margin:0}.unit-word-index li{display:grid;gap:var(--s1);margin:0;padding:var(--s2);border-block-end:1px solid var(--border);font-size:var(--secondary)}.unit-word-index a{font-size:var(--bg-text);min-block-size:44px;display:inline-flex;align-items:center}
.first-visit>section+section{margin-block-start:var(--s6)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.first-visit>section+section{margin-block-start:var(--s7)}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.level-rail{display:none}}
.unit-cover .media{inline-size:100%}

.stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s6)}.stat{min-inline-size:0}.stat span{display:block;min-block-size:3em;line-height:1.5}.stat strong{white-space:nowrap}.level-tile{display:flex}.level-can{font-size:var(--secondary);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-block-size:3em}.level-tile .meta-row{inline-size:100%;margin-block-start:auto}.level-progress{block-size:4px;background:var(--surfaceSunken);border-radius:4px}.level-progress>span{display:block;block-size:100%;background:var(--action)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}.hero-copy .lead{display:block;max-inline-size:60ch;text-wrap:pretty}}

.unit-eyebrow{display:flex;align-items:center;gap:var(--s2)}

.level-tile .level-badge{align-self:flex-start}.client-lesson{margin-block-start:var(--s6)}.js [data-mount=lesson]{min-block-size:100dvh}.js [data-mount=lesson]:not([data-ready]){visibility:hidden}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.hero-copy .button{padding:var(--s1) var(--s3);line-height:1.2}}
/* Library and utility composition: the same padded Martenitsa containers. */
main>section+section,main>div+section{margin-block-start:var(--s6)}.library-grid .feature{align-items:start}.library-grid h2{font-size:var(--h3)}.feature>div{min-inline-size:0}.alphabet-letter{font-size:var(--letter);line-height:1.15}.alphabet-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}.phrase-row{padding:var(--s4);border-block-end:1px solid var(--border)}.phrase-row .wr{padding:0;border:0}.word-link-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--s3);margin-block:var(--s4)}.word-link-grid>a{display:grid;gap:var(--s2);padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-tile);text-decoration:none;background:var(--surface)}.word-link-grid>a:hover{border-color:var(--action);background:var(--surfaceSunken)}.word-link-grid>a:active{transform:scale(.985)}.dictionary-search{margin-block-end:var(--s6)}.settings-grid{display:grid;gap:var(--s4)}.setting-row{display:flex;align-items:center;justify-content:space-between;gap:var(--s4)}.setting-row[hidden]{display:none}.switch{inline-size:52px;block-size:32px;flex-shrink:0;border:1px solid var(--border);border-radius:32px;padding:2px;background:var(--surfaceSunken);cursor:pointer;transition:background var(--t-ui)}.switch span{display:block;inline-size:26px;block-size:26px;border-radius:50%;background:var(--textSecondary);transition:transform 220ms var(--spring)}.switch[aria-checked=true]{background:var(--action)}.switch[aria-checked=true] span{background:var(--onAction);transform:translateX(18px)}[dir=rtl] .switch[aria-checked=true] span{transform:translateX(-18px)}.switch:hover{box-shadow:var(--lift-1);border-color:var(--action)}.switch:active span{inline-size:28px}.wrap{flex-wrap:wrap}.settings-grid .segmented button{min-inline-size:44px}.client-stage{min-block-size:240px}.quiz-question{padding-block:var(--s4);border-block-end:1px solid var(--border)}.quiz-question [aria-pressed=true]{background:var(--action);color:var(--onAction)}.show-phrase{font-size:var(--hero-word);line-height:1.5;overflow-wrap:anywhere}.phrase-modal{inline-size:min(100% - 32px,960px);max-inline-size:none}.translit{unicode-bidi:isolate}[dir=rtl] .translit{text-align:right}.brand{min-block-size:44px}.app-identity h3 a,.collection .tertiary{display:inline-flex;align-items:center;min-block-size:44px}.grab-handle{padding-block:20px;background-clip:content-box;box-sizing:content-box}.search-field:focus-within{outline:2px solid var(--action);outline-offset:2px}.hero-copy .lead{display:block;overflow:visible;-webkit-line-clamp:unset}.table-scroll{min-inline-size:0}.table-scroll th,.table-scroll td{min-inline-size:120px}.prose a{text-decoration:underline}.dictionary-layout{min-inline-size:0}@media(min-width:1100px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dictionary-layout{display:grid;grid-template-columns:380px minmax(0,1fr);gap:var(--s6)}}@media print{.reveal,.waiting{opacity:1!important;transform:none!important}.topbar,.nav-tabs,.collection,.phone-start,.reading-resume{display:none!important}main{max-inline-size:none!important;padding:0!important}a{color:inherit!important}.panel,.card{break-inside:avoid}.reading-layout{display:block}}@media(prefers-reduced-motion:reduce){.switch span,.word-link-grid>a:active{transform:none!important}}
.hide-stress .sv::after{display:none}.hide-translit .translit{display:none}.phrase-modal .show-phrase{padding:var(--s6)}
.menu-panel.phrase-modal{inset:16px!important;inline-size:auto;max-block-size:calc(100dvh - 32px);min-block-size:calc(100dvh - 32px);display:flex;flex-direction:column;justify-content:center}.phrase-modal .menu-heading{position:sticky;inset-block-start:0;flex-shrink:0}.phrase-modal .show-phrase{flex:1;display:grid;place-items:center;padding:var(--s6);text-align:center}.phrase-modal .grab-handle{display:none}.quiz-why[hidden]{display:none}.button[aria-pressed=true]{border-color:var(--action)}
.word-detail-picture{inline-size:160px;block-size:160px;object-fit:contain;align-self:start}
.deck-list{list-style:none;margin:0}.deck-list a{display:inline-flex;min-block-size:44px;align-items:center;font-size:var(--bg-text)}
.card.feature{display:grid;grid-template-columns:44px minmax(0,1fr) 20px;gap:var(--s4);padding:var(--s4);align-items:start;text-decoration:none}.card.feature h2,.card.feature h3{margin-block-end:var(--s2)}.card.feature .hook{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.card.feature>.i:last-child{align-self:center}.reading-layout>article{min-inline-size:0}
/* Keep the same audio column with and without a vocabulary picture. */
.wr .rc{min-inline-size:0}.menu-heading h2{min-inline-size:0;overflow-wrap:anywhere}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.store-links{scrollbar-width:thin}}
/* D1 designer pass: dense, content-bearing rows and bounded libraries. */
main :is(section,article,aside,nav,div){min-inline-size:0}.lead{display:block;max-inline-size:60ch;text-wrap:pretty}.page-heading h1,.hero-copy h1{text-wrap:balance}.feature-row{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);min-block-size:96px;text-decoration:none}.feature-row .feature-icon{inline-size:40px;block-size:40px;flex:none}.feature-copy{display:grid;gap:var(--s1);flex:1;min-inline-size:0}.feature-copy strong{font-size:var(--card-title);font-weight:600;line-height:1.25}.feature-description{font-size:var(--secondary);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.feature-row .tag{flex:none;white-space:nowrap}.feature-row>.chevron{margin-inline-start:auto}.card h3,.library-card h2,.practice-card h2,.exam-row h3,.exam-feature h3{font-family:var(--font-body);font-size:var(--card-title);font-weight:600}.card a,.exam-row a,.exam-feature a{text-decoration:none}.level-ladder{grid-template-columns:repeat(3,minmax(0,1fr))}.level-tile{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--s2) var(--s3)}.level-tile .level-can,.level-tile .meta-row{grid-column:1/-1}.level-can{display:block;min-block-size:0;overflow:visible;-webkit-line-clamp:unset}.level-tile .meta{white-space:nowrap}.level-tile h3{align-self:center}.level-summary{position:sticky;inset-block-start:100px;align-self:start}.level-summary .cord{inline-size:64px;block-size:64px}.course-layout{grid-template-columns:280px minmax(0,1fr)}.course-units{grid-template-columns:repeat(2,minmax(0,1fr))}.compact-units{grid-template-columns:repeat(4,minmax(0,1fr))}.compact-units .card{display:flex;flex-direction:row;align-items:center}.compact-units figure{inline-size:72px;flex:none}.compact-units .media{aspect-ratio:1}.compact-units .card-body{padding:var(--s3);gap:var(--s2)}.compact-units .hook{display:none}.compact-units h3{font-size:var(--secondary)}.compact-units .unit-eyebrow .i{display:none}.level-filter{position:sticky;inset-block-start:92px;z-index:15;background:var(--surface);margin-block:var(--s4);max-inline-size:100%}.capped>.cap-hidden{display:none!important}.show-all{margin-block:var(--s3);max-inline-size:360px}.word-tiles{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.word-tiles>.wr{border:1px solid var(--border);border-radius:var(--r-tile);padding:var(--s3);margin:0}.word-picture{inline-size:48px;block-size:48px;flex:none;align-self:start}.word-picture img{inline-size:48px;block-size:48px;object-fit:contain}.wr .wt a{text-decoration:none}.lesson-list .row-link{min-block-size:72px;padding:var(--s3);gap:var(--s3)}.lesson-number{display:grid;place-items:center;inline-size:32px;block-size:32px;border:1px solid var(--border);border-radius:50%;font-size:var(--secondary);flex:none}.lesson-list p{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.lesson-list .tag{white-space:nowrap}.lesson-list .row{padding:0}.lesson-sections>*+*{margin-block-start:var(--s4)}.lesson-sections>section+section{margin-block-start:var(--s6)}.lesson-pager{margin-block-start:var(--s7);align-items:stretch}.lesson-pager a{min-block-size:72px;align-content:center}.lesson-aside{position:sticky;inset-block-start:100px;align-self:start}.progress-track{block-size:4px;background:var(--surfaceSunken);border-radius:4px;overflow:hidden}.progress-track>span{display:block;block-size:100%;background:var(--action)}.lesson-toc a{font-size:var(--secondary);padding-inline-start:var(--s3);border-inline-start:2px solid var(--border);text-decoration:none;min-block-size:44px;display:flex;align-items:center}.lesson-toc a[aria-current]{border-color:var(--action);font-weight:600}.lesson-bottom{display:none}.speaker-chip{display:inline-flex;background:var(--surfaceSunken);border-radius:var(--r-chip);padding:var(--s1) var(--s2);font-size:var(--caption);margin-block-start:var(--s4)}.translations-hidden .tr{display:none}.culture-teaser figure{inline-size:96px}.culture-teaser .media{aspect-ratio:1}.library-card .card-body{gap:var(--s3)}.library-card .media{aspect-ratio:4/3;max-block-size:160px}.library-card .hook{font-size:var(--secondary)}.grammar-sample{font-size:var(--secondary);max-block-size:3.2em;overflow:hidden}.topic-samples .bg-text{font-size:var(--secondary)}.topic-samples .tr{font-size:var(--caption)}.topic-samples{position:relative;z-index:2}.topic-samples .dr{padding:var(--s2) 0}.info-row{display:flex;align-items:center;gap:var(--s3);margin-block:var(--s4)}.letter-index{display:flex;overflow-x:auto;gap:var(--s2);position:sticky;inset-block-start:92px;z-index:16;background:var(--bg);padding-block:var(--s2)}.letter-index button{flex:none;min-inline-size:44px}.letter-index [aria-pressed=true],.word-filters [aria-pressed=true]{background:var(--action);color:var(--onAction)}.word-filters{margin-block-end:var(--s4)}.dictionary-search{min-block-size:52px}.query-chips{margin-block-end:var(--s4)}.deck-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.deck-card{padding:var(--s4);gap:var(--s3)}.deck-card .tag{align-self:start}.deck-samples{font-size:var(--secondary)}.exam-rows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.exam-row{display:flex;align-items:center;gap:var(--s3);min-block-size:72px;padding:var(--s3)}.exam-row>div{flex:1}.exam-feature,.placement-card{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);margin-block:var(--s4)}.exam-feature .actions{margin-block:var(--s3)}.exam-skills{display:flex;flex-wrap:wrap;gap:var(--s3)}.exam-skills span{display:flex;align-items:center;gap:var(--s1)}.exam-skills .i{inline-size:20px;block-size:20px}.pass-ring{display:grid;place-items:center;inline-size:88px;block-size:88px;border:6px solid var(--action);border-radius:50%;flex:none;font-weight:700}.practice-card>.button{margin-block-start:auto}.practice-card .feature-icon{inline-size:48px;block-size:48px}.practice-hero{grid-column:span 2;grid-template-columns:1fr 96px}.practice-hero>.cord{grid-column:2;grid-row:1/4;inline-size:96px;block-size:96px}.practice-hero>.button{grid-column:1/-1}.profile-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3);margin-block-end:var(--s4)}.profile-stats h2{font-family:var(--font-body);font-size:var(--caption);font-weight:500}.profile-layout{display:grid;grid-template-columns:2fr 1fr;gap:var(--s4);align-items:start}.achievement-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s3)}.achievement{display:flex;align-items:center;flex-direction:column;gap:var(--s2);font-size:var(--caption);text-align:center;padding:var(--s2)}.achievement>.i{inline-size:48px;block-size:48px;padding:var(--s3);background:var(--surfaceSunken)}.achievement.locked{color:var(--textSecondary)}.activity-map{display:grid;grid-template-rows:repeat(7,12px);grid-auto-flow:column;gap:var(--s1)}.activity-map>span{background:var(--surfaceSunken);border:1px solid var(--border);border-radius:2px}.activity-map>span.active{background:var(--action)}.settings-grid{max-inline-size:720px;margin-inline:auto;grid-template-columns:1fr}.setting-row{min-block-size:52px;border-block-end:1px solid var(--border)}.settings-grid .menu-trigger{justify-content:space-between}.destructive{color:var(--wrong)}.about-brand{display:flex;gap:var(--s4);align-items:center}.about-brand .brand-mark{inline-size:64px;block-size:64px;flex:none}.about-stats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--s4)}.credit-groups{display:grid;gap:var(--s3)}.disclosure-row{min-block-size:52px;display:flex;align-items:center;gap:var(--s3);text-align:start;inline-size:100%;padding:var(--s2);border-radius:var(--r-chip)}.disclosure-row:hover{background:var(--surfaceSunken)}.disclosure-row .i{margin-inline-start:auto}.credit-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.credit-row{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);border-block-end:1px solid var(--border);padding:var(--s2);font-size:var(--caption);overflow-wrap:anywhere}.credit-row h3{font-size:var(--caption);font-weight:500;inline-size:100%;overflow:visible;white-space:normal}.credit-row .tag{max-inline-size:100%;overflow-wrap:anywhere}.credit-row .icon-button{margin-inline-start:auto}.phrase-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.phrase-row{padding:var(--s4);display:flex;flex-wrap:wrap;gap:var(--s2)}.phrase-row .wr{flex-basis:100%}.phrase-row .word-picture{display:none}.phrase-row .wt{font-size:var(--bg-text)}.phrase-row .tr{font-weight:300}.show-phrase{font-family:var(--font-display);font-size:var(--phrase-display)}.deck-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);padding:var(--s3);list-style:none;counter-reset:rank}.deck-list>li{margin:0;counter-increment:rank}.deck-list>li::before{content:counter(rank,decimal-leading-zero);font-size:var(--caption);color:var(--textSecondary)}.deck-list .dr{min-block-size:64px}.deck-list .dc a{text-decoration:none}.quiz-question .actions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}.quiz-question [data-quiz-option]{min-block-size:52px;border-radius:var(--r-option)}.quiz-question [data-correct=true]{border-color:var(--correct);background:var(--correctSoft);color:var(--textPrimary)}.quiz-question [data-correct=false]{border-color:var(--wrong);background:var(--wrongSoft);color:var(--textPrimary)}thead th{background:var(--surfaceSunken)!important}.alphabet-board{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s2);margin-block:var(--s4)}.alphabet-board>a{display:grid;place-items:center;gap:var(--s1);min-block-size:96px;text-decoration:none}.alphabet-board [lang=bg]{font-family:var(--font-display);font-size:var(--hero-word);font-weight:900}.alphabet-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.alphabet-letter{display:flex;gap:var(--s3);align-items:center}.page-heading>.button{max-inline-size:360px}html[lang=ar] .eyebrow,html[lang=he] .eyebrow{letter-spacing:0;text-transform:none;font-size:var(--caption)}
@media(min-width:760px) and (max-width:1150px){.stats{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}.stat strong{font-size:var(--stat-small)}.feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.course-layout{grid-template-columns:240px minmax(0,1fr)}.course-units,.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.hero-copy .actions{display:grid;grid-template-columns:1fr}.hero-copy .button{inline-size:100%;min-block-size:52px}.hero-copy>.tertiary{min-block-size:44px;margin:0}.stats{display:flex;flex-wrap:nowrap;overflow-x:auto;gap:var(--s6);scroll-snap-type:x mandatory;padding-block:var(--s3)}.stat{flex:none;min-inline-size:96px;scroll-snap-align:start}.stat strong{font-size:var(--stat-small)}.stat span{white-space:nowrap;min-block-size:0}.level-ladder{grid-template-columns:1fr}.level-tile{grid-template-columns:40px minmax(0,1fr);min-block-size:80px;padding:var(--s3);gap:var(--s1) var(--s3)}.level-tile .level-badge{grid-row:1/3}.level-tile .meta-row{grid-column:2;font-size:var(--caption)}.level-tile .level-can{display:none}.feature-row{min-block-size:96px;padding:var(--s3);gap:var(--s2)}.feature-description{-webkit-line-clamp:2;font-size:var(--caption)}.feature-row .tag{font-size:var(--eyebrow);padding-inline:var(--s1)}.course-layout{grid-template-columns:1fr}.level-summary{display:none}.course-units,.compact-units{grid-template-columns:1fr}.course-units .card,.compact-units .card{display:flex;flex-direction:row;align-items:center;min-block-size:96px}.course-units figure,.compact-units figure{inline-size:72px;flex:none;margin-inline-start:var(--s3)}.course-units .media,.compact-units .media{aspect-ratio:1;border-radius:var(--r-tile)}.course-units .card-body,.compact-units .card-body{padding:var(--s3);gap:var(--s1);flex:1}.course-units .hook{display:none}.course-units .unit-eyebrow,.compact-units .unit-eyebrow{font-size:var(--eyebrow)}.course-units .unit-eyebrow .i{display:none}.course-units h3{font-size:var(--body)}.level-filter,.letter-index{inset-block-start:52px}.word-tiles,.phrase-list,.exam-rows,.deck-list,.alphabet-grid{grid-template-columns:1fr}.word-tiles>.wr{min-block-size:80px}.lesson-list .row-link{gap:var(--s2)}.lesson-list .row-link>.i:not(.chevron){display:none}.lesson-list h3{font-size:var(--secondary)}.lesson-list .tag{font-size:var(--eyebrow)}.lesson-aside{display:none}.phone-start>.button{inline-size:100%}.lesson-bottom{display:flex;position:fixed;z-index:44;inset-inline:0;bottom:var(--vv-bottom,0px);padding:var(--s3) var(--s5) calc(76px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--surfaceElevated) 88%,transparent);backdrop-filter:blur(20px);border-block-start:1px solid var(--border);pointer-events:none}.lesson-bottom>.button{inline-size:100%;pointer-events:auto}.lesson-bottom[data-top-visible]{visibility:hidden}.lesson-pager a{padding:var(--s3)}.deck-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.deck-card{padding:var(--s3)}.exam-feature,.placement-card{flex-wrap:wrap}.exam-feature>.button,.placement-card>.button{inline-size:100%}.exam-row{flex-wrap:wrap}.exam-row .button{font-size:var(--caption)}.pass-ring{inline-size:64px;block-size:64px;font-size:var(--caption)}.practice-grid{grid-template-columns:1fr}.practice-card{grid-template-columns:40px minmax(0,1fr);gap:var(--s2) var(--s3);padding:var(--s3)}.practice-card>.feature-icon{grid-row:1/3;inline-size:40px;block-size:40px}.practice-card>h2{font-size:var(--body)}.practice-card>p{font-size:var(--caption)}.practice-card>.button{grid-column:2;font-size:var(--secondary);min-block-size:44px}.practice-hero{grid-column:auto}.practice-hero>.cord{display:none}.profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-stats .stat{min-inline-size:0}.profile-layout{grid-template-columns:1fr}.achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.about-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.credit-list{grid-template-columns:1fr}.quiz-question .actions{grid-template-columns:1fr}.alphabet-board{grid-template-columns:repeat(5,minmax(0,1fr))}.alphabet-board>a{min-block-size:72px}.alphabet-board [lang=bg]{font-size:var(--h1)}.library-grid{grid-template-columns:1fr}.library-card .media{max-block-size:140px}.phrase-row .wt{padding-inline-end:0}.phrase-row .audio-controls{position:static;margin-block-start:var(--s2)}main:has(.lesson-bottom){padding-block-end:96px}}
@media(hover:hover) and (pointer:fine){.wr:hover .sv:after{animation:stress-settle 400ms var(--spring)}.alphabet-board a{transition:transform var(--t-hover),box-shadow var(--t-hover)}.alphabet-board a:hover{transform:translateY(-3px);box-shadow:var(--lift-2)}}
@keyframes stress-settle{0%,100%{transform:translateX(-50%) skewX(-18deg)}40%{transform:translate(-50%,-2px) skewX(-18deg)}}@media(prefers-reduced-motion:reduce){.wr:hover .sv:after{animation:none}.alphabet-board a:hover{transform:none}}
figure{position:relative}figure>.credit-info{position:absolute;inset-block-start:var(--s2);inset-inline-end:var(--s2);z-index:2;background:var(--surface);border:1px solid var(--border)}.card.feature-row{flex-direction:row}.word-hero{display:grid;gap:var(--s3);justify-items:start}.word-hero h1{font-size:var(--hero-word)}.word-hero .audio-controls{margin:0}.phrase-modal{position:fixed!important;inset:var(--s4)!important;inline-size:auto!important;max-block-size:calc(100dvh - 32px)!important;display:flex;flex-direction:column;justify-content:center;text-align:center}.phrase-modal .menu-heading{position:absolute;inset-block-start:var(--s3);inset-inline:var(--s3)}.phrase-modal .grab-handle{display:none}.phrase-modal .show-phrase{padding:var(--s6)}.slow{border-radius:var(--r-chip);inline-size:auto;min-inline-size:44px;padding-inline:var(--s3)}.section-heading{align-items:baseline}.section-heading>.tertiary{margin-inline-start:auto}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.word-tiles .wr{flex-wrap:wrap}.word-tiles .wr>.audio-controls{margin-inline-start:60px}.phrase-row .wr>.rc{flex-basis:100%}.phrase-row .wr{flex-wrap:wrap}.phrase-row .wr>.audio-controls{margin-inline-start:0}.phrase-modal .show-phrase{font-size:var(--hero-word)}}
.word-related{display:grid;gap:var(--s1);padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-tile);text-decoration:none;background:var(--surface)}.word-related:hover{background:var(--surfaceSunken);border-color:var(--action)}.word-related:active{transform:scale(.985)}
.letter-heading{align-items:center;justify-content:space-between;padding:0;border:0}.word-hero h1 .sv:after{animation:stress-enter 220ms var(--spring) both}@keyframes stress-enter{from{opacity:0;transform:translate(-50%,-6px) skewX(-18deg)}to{opacity:1;transform:translateX(-50%) skewX(-18deg)}}@media(prefers-reduced-motion:reduce){.word-hero h1 .sv:after{animation:none}}

/* Bound first paint too; without JavaScript the full source list stays readable. */
.js .capped[data-cap="2"]:not([data-cap-ready])>:nth-child(n+3){display:none}.js .capped[data-cap="4"]:not([data-cap-ready])>:nth-child(n+5){display:none}.js .capped[data-cap="5"]:not([data-cap-ready])>:nth-child(n+6){display:none}.js .capped[data-cap="8"]:not([data-cap-ready])>:nth-child(n+9){display:none}.js .capped[data-cap="12"]:not([data-cap-ready])>:nth-child(n+13){display:none}.js .capped[data-cap="24"]:not([data-cap-ready])>:nth-child(n+25){display:none}.js [data-level-group]:not([data-level-ready]):not([data-level-group="A1"]){display:none}

/* D1b audit refinements. */
.setting-row{inline-size:100%;text-align:start;padding:var(--s2) 0;border-radius:var(--r-tile);cursor:pointer}.setting-row:hover{background:var(--surfaceSunken)}.setting-row:active{background:var(--border)}
.setting-row .switch{pointer-events:none}.switch:before{display:none}.setting-row[aria-checked=true] .switch{background:var(--action)}.setting-row[aria-checked=true] .switch span{background:var(--onAction);transform:translateX(18px)}.setting-row:dir(rtl)[aria-checked=true] .switch span{transform:translateX(-18px)}
.settings-grid .meta{max-inline-size:60ch}.settings-grid .segmented{font-size:var(--secondary)}.settings-grid .segmented button{padding-inline:var(--s2)}
[data-theme=dark] .word-picture{background:var(--surfaceElevated)}
[data-theme=dark] .media.light-art{background:var(--surfaceSunken);padding:var(--s3);border-radius:var(--r-tile)}
[data-theme=dark] .media.light-art img{object-fit:contain;filter:brightness(.82) contrast(1.02);border-radius:var(--r-tile)}
.passage-group{margin-block:var(--s6)}.passage-group>h2{margin-block-end:var(--s3)}.passage-unit{margin-block:var(--s4)}.passage-unit>h3{margin-block-end:var(--s3)}.passage-sample{font-size:var(--secondary);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}.passage-meta{display:flex;align-items:center;gap:var(--s2)}
.search-empty{display:grid;gap:var(--s6);margin-block-start:var(--s6)}.search-empty h2{margin-block-end:var(--s3)}.search-chips{display:flex;flex-wrap:wrap;gap:var(--s2)}
@media(min-width:760px) and (max-width:1099px){main{padding-left:max(var(--s7),env(safe-area-inset-left));padding-right:max(var(--s7),env(safe-area-inset-right))}.course-layout{grid-template-columns:1fr}.level-rail,.level-summary{display:none}}
@media(min-width:760px) and (max-width:1023px){.reading-layout{grid-template-columns:minmax(0,1fr)}.reading-aside{position:static;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.stats{padding-inline-end:var(--s4);scroll-padding-inline:var(--s4)}.stat strong{font-size:var(--stat-fluid)}.hero-copy .actions>.button{block-size:52px;min-block-size:52px}.deck-list .tr{font-size:var(--secondary)}.lesson-bottom{background:var(--surfaceElevated);padding-block-end:var(--s3);bottom:calc(64px + env(safe-area-inset-bottom) + var(--vv-bottom,0px))}.lesson-bottom>.button{block-size:52px}.alphabet-note{font-size:var(--secondary)}.word-note{font-size:var(--secondary)}}
@media print{.cap-hidden,.js .capped>*,.js [data-level-group]{display:revert!important}.reveal{opacity:1!important;transform:none!important}}

.table-label{display:block;min-inline-size:0;margin-block-start:var(--s1)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.wr,.word-tiles .wr{grid-template-columns:48px minmax(0,1fr) 44px}.wr>.audio-controls,.word-tiles .wr>.audio-controls{grid-column:3;grid-row:1;flex-direction:column}.wr>.word-note{grid-column:1/-1}.phrase-row .wr>.audio-controls{grid-column:2;flex-direction:row}.phrase-row .wr{grid-template-columns:minmax(0,1fr) auto}}

.disclosure-row{block-size:52px;min-block-size:52px;font-size:var(--secondary);line-height:1.25;padding-block:var(--s1)}
.settings-grid .segmented.wrap{flex-wrap:nowrap}
.about-stats .stat span,.profile-stats .stat span{white-space:normal}

/* W3 returning Today: five containers, with word + culture sharing discovery. */
.returning-grid{gap:var(--s5);align-items:stretch}.returning-grid>.panel{margin:0}
.returning-grid [data-mount=next-step]{grid-area:next}.returning-grid [data-mount=reviews]{grid-area:reviews}.returning-grid [data-mount=daily-goal]{grid-area:goal}.today-mix{grid-area:mix}.today-discover{grid-area:discover}
.returning-grid{grid-template-areas:'next' 'reviews' 'goal' 'mix' 'discover'}
.today-culture{border-block-start:1px solid var(--border);padding-block-start:var(--s4);margin-block-start:var(--s4)}
.greeting-accent{color:var(--brand)}.cord-link{display:block;border-radius:var(--r-card);padding:var(--s2);color:inherit}.cord-link:hover{background:var(--surfaceSunken)}.cord-link:active{transform:scale(.98)}
[data-mount=activity-chart] svg{display:block;inline-size:100%;block-size:auto}.exam-passed{color:var(--correct)}
.progress-drop{outline:2px solid var(--action);outline-offset:4px}.export-reminder{position:relative;padding-inline-end:64px}.export-reminder>.icon-button{position:absolute;inset-inline-end:var(--s2);inset-block-start:var(--s2)}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.returning-grid{grid-template-columns:minmax(0,7fr) minmax(0,5fr);grid-template-areas:'next goal' 'reviews discover' 'mix discover'}}
@media(prefers-reduced-motion:reduce){.cord-link:active{transform:none}}
.passage-list h2{font-family:var(--font-body);font-size:var(--card-title);font-weight:600}
[data-kind=false-friends] .panel.stack{gap:var(--s2)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.word-tiles .wr>.audio-controls{margin-inline-start:0}.wr>.audio-controls{min-inline-size:0;inline-size:44px}.wr>.audio-controls .slow{inline-size:44px;padding-inline:0}.word-picture img{inline-size:100%;block-size:100%}}
@media print{.media img{opacity:1!important}.reveal{animation:none!important}}

h1,h2,h3,p,li{overflow-wrap:break-word}.page-heading :is(h1,h2,h3){overflow-wrap:break-word;hyphens:manual}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.collection{margin-block-start:0}.passage-group{margin-block-end:0}}

.capped [data-passage-row].cap-hidden{display:none!important}
[data-kind=deck] .info-row{font-size:var(--secondary)}
@media print{.capped [data-passage-row].cap-hidden{display:revert!important}}

/* Intrinsic labels keep segmented controls usable with long locales and text zoom. */
.segmented :is(button,a){flex:1 0 auto;inline-size:max-content}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.topbar .brand{min-inline-size:0;flex-shrink:1}.compact-brand .brand-name{display:none}.nav-tabs>a>span{max-inline-size:100%;overflow-wrap:break-word;hyphens:manual}.level-filter,.letter-index{inset-block-start:var(--topbar-height,52px)}.lesson-bottom{bottom:calc(var(--tab-bar-height,64px) + env(safe-area-inset-bottom) + var(--vv-bottom,0px))}.collection{padding-block-end:calc(var(--s6) + var(--tab-bar-height,64px) + env(safe-area-inset-bottom))}}
.large-text .button{block-size:auto;min-block-size:3.25rem}.large-text .button.compact{min-block-size:2.75rem}.large-text .segmented :is(button,a){block-size:auto;min-block-size:2.75rem}.large-text .menu-row{block-size:3rem;min-block-size:3rem}.large-text .disclosure-row{block-size:auto;min-block-size:3.25rem}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.large-text .menu-row{block-size:3.25rem;min-block-size:3.25rem}}

[data-mount=global-search] .word-link-grid .meta{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.stats{gap:var(--s4)}.stats>.stat{flex:0 0 calc((100% - 32px)/3);min-inline-size:0}.large-text .stats>.stat{flex-basis:max-content;min-inline-size:96px}}

.setting-row>span:first-child{min-inline-size:0;flex:1;overflow-wrap:break-word;hyphens:auto}
/* Reserve the same audio geometry before the UI catalog arrives. */
.js .word-hero:not(:has(>.audio-controls))::after{content:"";display:block;inline-size:92px;block-size:44px}
.ff-heading{min-block-size:44px}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.wr:not(.audio-ready)::after{grid-column:3;grid-row:1;inline-size:44px;block-size:92px}.phrase-row .wr:not(.audio-ready)::after{grid-column:2;inline-size:92px;block-size:44px}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){[data-kind=decks]>.panel.feature-row{display:grid;grid-template-columns:40px minmax(0,1fr)}[data-kind=decks]>.panel.feature-row>.button{grid-column:1/-1;inline-size:100%}}

.deck-word{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s1) var(--s2);text-decoration:none;min-block-size:44px;border-radius:var(--r-tile)}.deck-word>.bg-text{grid-column:1;grid-row:1}.deck-word>.tag{grid-column:2;grid-row:1;align-self:start}.deck-word>.tr{grid-column:1/-1;grid-row:2;font-size:var(--secondary)}.deck-word>.meta{grid-column:2;grid-row:2;justify-self:end}.deck-word:hover{background:var(--surfaceSunken)}.deck-list>.dr{align-items:start;padding-block:var(--s2)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.phrase-row .wr>.audio-controls{inline-size:auto;min-inline-size:92px}}
.colophon a,.footer-languages a{min-inline-size:0;overflow-wrap:break-word;hyphens:auto}

.deck-list .deck-word{display:grid;min-inline-size:0;font-size:var(--body)}.deck-word>.bg-text{overflow-wrap:break-word;hyphens:auto}

/* D1 completion: content-led previews and honest stored learning states. */
.home-showcase{grid-template-columns:repeat(3,minmax(0,1fr));margin-block:var(--s6)}
.home-showcase .dr{margin:0}.home-showcase .bg-text{font-size:var(--bg-text)}
.home-showcase .button{margin-block-start:auto;justify-self:start}
.home-culture{grid-template-columns:repeat(2,minmax(0,1fr));margin-block:var(--s6)}
.home-culture .media{max-block-size:220px;aspect-ratio:16/9}
.preview-footer{display:grid;gap:var(--s3);border-block-start:1px solid var(--border);padding-block-start:var(--s4)}
.level-stats{display:flex;flex-wrap:wrap;gap:var(--s2);margin:0;padding:0}
.level-stats .tag{white-space:normal}.card-body>.tag,.panel.stack>.tag,.panel.stack>.level-badge{align-self:start;justify-self:start}
.unit-progress{margin-block:var(--s1)}[data-unit-progress]{font-size:var(--caption)}
.lesson-state{max-inline-size:12ch}.lesson-state-icon{color:var(--action)}
.lesson-list [data-status=done] .lesson-number,.lesson-list [data-status=progress] .lesson-number{display:none}
.quiz-summary{align-items:center;border-block-start:1px solid var(--border);padding-block-start:var(--s4)}
.quiz-question [data-quiz-option]:disabled{opacity:1;cursor:default}
.quiz-question [data-quiz-option]:disabled:not([data-correct]){opacity:.5}
.quiz-feedback-icon{flex:none}
/* Credits are anchored to the picture, never the surrounding flex card. */
figure{container-type:inline-size}
figure>.credit-info{inset-block-start:auto;inset-block-end:var(--s2);inset-inline-end:var(--s2);inline-size:24px;block-size:24px;min-block-size:24px;box-shadow:var(--lift-1)}
figure>.credit-info .i{inline-size:16px;block-size:16px}
@container (max-width:95.999px){figure>.credit-info{display:none}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.home-showcase,.home-culture{grid-template-columns:1fr}.home-showcase{margin-block:var(--s5)}.level-stats{overflow:visible}.lesson-state{font-size:var(--caption)}.nav-tabs>a{position:relative}.topbar{background:var(--surfaceElevated)}}
@media(prefers-reduced-motion:reduce){.quiz-feedback-icon{animation:none}}
.living-word [data-w]{position:relative}.living-word .is-active{color:var(--action);text-decoration:underline;text-underline-offset:.2em;text-decoration-thickness:2px}.living-word .is-spoken{color:var(--textSecondary)}
.living-word .is-active .sv:after{animation:living-tick 120ms var(--ease-out)}
.audio-hint .i-speaker{animation:audio-discover 300ms var(--ease-out)}
@keyframes living-tick{from{transform:translate(-50%,-4px) skewX(-18deg)}to{transform:translate(-50%,0) skewX(-18deg)}}
@keyframes audio-discover{50%{transform:scale(1.08)}}
@media(prefers-reduced-motion:reduce){.living-word .is-active .sv:after,.audio-hint .i-speaker{animation:none}}
.contextual-sister{gap:var(--s4);flex-wrap:wrap}.contextual-sister .feature-copy{flex:1;min-inline-size:160px}.contextual-sister h2{font-size:var(--h3)}
.phrase-turn{align-self:center;position:relative;z-index:2;margin:var(--s4)}
.phrase-modal .show-phrase{overflow:auto;max-block-size:calc(100dvh - 240px);overflow-wrap:break-word;hyphens:auto}
.phrase-modal.sideways .show-phrase{position:absolute;inset:auto;left:50%;top:50%;inline-size:calc(100dvh - 160px);max-block-size:calc(100vw - 120px);transform:translate(-50%,-50%) rotate(90deg);padding:var(--s4)}
.phrase-modal.sideways .phrase-turn{margin-block-start:auto}
@media(min-width:1100px){[data-kind=course],[data-kind=grammar],[data-kind=culture],[data-kind=alphabet],[data-kind=phrasebook],[data-kind=reading],[data-kind=listening],[data-kind=decks],[data-kind=exams],[data-kind=words]{--has-poster:1}
main:has(>.page-heading){position:relative}.page-heading{position:relative;isolation:isolate}.page-heading:after{content:"";display:block;position:absolute;inset-block:0;inset-inline-end:0;inline-size:280px;z-index:-1;opacity:calc(var(--has-poster,0)*.04);background:var(--poster-mark) center/cover no-repeat;pointer-events:none}}
.count-finished{position:relative}.count-finished:after{content:"";position:absolute;inset-inline-end:0;inset-block-start:-.1em;inline-size:2px;block-size:.25em;background:var(--brand);transform:skewX(-18deg);animation:count-tick 240ms var(--ease-out) both}
@keyframes count-tick{0%{opacity:0;transform:translateY(-4px) skewX(-18deg)}50%{opacity:1}100%{opacity:0;transform:translateY(0) skewX(-18deg)}}
@media(prefers-reduced-motion:reduce){.count-finished:after{display:none}}
.quiz-verdict{display:flex;align-items:center;gap:var(--s2);font-size:var(--secondary)}
.quiz-question[data-correct=true] .quiz-verdict{color:var(--correct)}.quiz-question[data-correct=false] .quiz-verdict{color:var(--wrong)}
.quiz-question input{min-block-size:52px;inline-size:100%;border:1.5px solid var(--border);border-radius:var(--r-button);background:var(--surface);padding:var(--s3);font-size:var(--bg-text)}
.app-identity>.app-icon{border:1px solid transparent;transition:transform var(--t-hover),box-shadow var(--t-hover),border-color var(--t-hover)}
@media(hover:hover){.app-identity>.app-icon:hover{transform:translateY(-1px);border-color:var(--action);box-shadow:var(--lift-1)}}
.app-identity>.app-icon:active{transform:scale(.97)}
@media(prefers-reduced-motion:reduce){.app-identity>.app-icon:hover,.app-identity>.app-icon:active{transform:none}}
.home-showcase .section-heading{margin-block-end:0}
.panel>.tag{inline-size:fit-content;align-self:start;justify-self:start}
/* Reserve server number geometry without flashing the final count before 0. */
.js [data-count]:not(.count-ready){color:transparent}
@media(prefers-reduced-motion:reduce){.js [data-count]:not(.count-ready){color:inherit}}
.lesson-bottom:not([data-sticky-ready]){visibility:hidden}
.lesson-state-icon{inline-size:32px;block-size:32px;flex:none}
[data-status=done] .lesson-state-icon{color:var(--correct)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.lesson-list .row-link>.lesson-state-icon.i{display:inline-block}}
/* Progress controls remain separate from the full-row lesson-detail link. */
.lesson-list [data-lesson-status]{display:flex;align-items:center;gap:var(--s3);padding-inline-end:var(--s3)}
.lesson-list [data-lesson-status]>.row-link{min-inline-size:0;flex:1}
.lesson-list [data-play-lesson]{flex:none;max-inline-size:35%}
.phone-start:has([data-start-over]),.lesson-bottom:has([data-start-over]){display:grid;gap:var(--s2);grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.lesson-bottom [data-start-over]{pointer-events:auto}
.storage-notice{position:fixed;z-index:180;inset-inline:var(--s4);inset-block-end:calc(80px + env(safe-area-inset-bottom));max-inline-size:560px;margin-inline:auto;display:flex;gap:var(--s3);align-items:center;box-shadow:var(--lift-2);font-size:var(--secondary)}
.storage-notice .icon-button{flex:none}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.lesson-list [data-lesson-status]{flex-wrap:wrap;padding:var(--s3)}.lesson-list [data-lesson-status]>.row-link{flex-basis:100%;padding:0}.lesson-list [data-play-lesson]{margin-inline-start:40px;max-inline-size:calc(100% - 40px)}}
.lesson-ring svg{display:block;inline-size:32px;block-size:32px;transform:rotate(-90deg)}
.lesson-ring .track{stroke:var(--surfaceSunken)}.lesson-ring .fill{stroke:var(--action);stroke-dasharray:1;stroke-linecap:round;transition:stroke-dashoffset 220ms var(--spring)}
@media(prefers-reduced-motion:reduce){.lesson-ring .fill{transition:none}}
.passage-follow{inline-size:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);margin-block-end:var(--s3)}
.lookup-word{cursor:pointer}.lookup-word:focus-visible{outline:2px solid var(--action);outline-offset:2px;border-radius:var(--s1)}



/* Keep the footer below the viewport while the frequency list loads. */
.deck-placeholder{min-block-size:1200px}

.due-badge{background:var(--action);color:var(--onAction);border-radius:var(--r-chip);padding:0 var(--s2);font-size:var(--caption);font-variant-numeric:tabular-nums}

/* R1-W P1: dialogue roles, letterform education, and thumbnail attribution. */
.dialogue-line{padding-block:var(--s3);border-block-end:1px solid var(--border)}
.dialogue-line:last-child{border-block-end:0}.dialogue-line>.dr{border:0;padding:0}
.dialogue-mine{border-inline-start:2px solid color-mix(in srgb,var(--action) 30%,transparent);padding-inline-start:var(--s3)}
.dialogue-line .speaker-chip{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s2);padding:0;background:none;color:var(--textSecondary);font-size:var(--speaker-size);font-weight:600;line-height:1.4;overflow-wrap:break-word;hyphens:auto}
.speaker-initial{display:grid;place-items:center;inline-size:24px;block-size:24px;border-radius:50%;flex:none;background:var(--surfaceSunken);font-family:var(--font-ui-display);font-weight:800}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.dialogue-line{display:grid;grid-template-columns:88px minmax(0,1fr);gap:var(--s3);align-items:start}.dialogue-line>.dr{display:contents}.dialogue-line>.dr>.dc{grid-column:2}.dialogue-line>.dr>.audio-controls{grid-column:3;grid-row:1}.dialogue-line:has(.audio-controls){grid-template-columns:88px minmax(0,1fr) 44px}.dialogue-line:not(:has(.speaker-chip))>.dr>.dc{grid-column:2}.dialogue-line .speaker-chip{grid-column:1;grid-row:1}.dialogue-line .speaker-initial{display:none}}
.preview .dialogue-line{display:block}.preview .dialogue-line>.dr{display:flex}.preview .speaker-chip{display:flex}
.forms-tip{position:relative;padding:var(--s4);padding-inline-end:var(--s8);border-radius:var(--r-tile);background:var(--brandSoft);font-size:var(--secondary);margin-block:var(--s4)}.forms-close{position:absolute;inset-block-start:var(--s1);inset-inline-end:var(--s1)}
.forms-pairs{display:flex;flex-wrap:wrap;gap:var(--s3)}.forms-pair{display:flex;gap:var(--s2);font-size:var(--forms-glyph);line-height:1.4}.forms-pair>span+span{border-inline-start:1px solid var(--border);padding-inline-start:var(--s2)}
.letterform-option{display:flex;align-items:center;gap:var(--s3);inline-size:100%;min-block-size:72px;padding:var(--s3);border:1.5px solid var(--border);border-radius:var(--r-tile);text-align:start;transition:background var(--t-hover) var(--ease-out),border-color var(--t-hover) var(--ease-out)}.letterform-option+.letterform-option{margin-block-start:var(--s3)}.letterform-option>span:last-child{display:grid;gap:var(--s1)}.letterform-option[aria-pressed=true]{border-color:var(--action)}.choice-disc{inline-size:20px;block-size:20px;flex:none;border:1.5px solid var(--textSecondary);border-radius:50%}.letterform-option[aria-pressed=true] .choice-disc{border:6px solid var(--action)}.letterform-option:hover{background:var(--surfaceSunken)}.letterform-option:active{background:color-mix(in srgb,var(--action) 12%,transparent)}
.letterform-comparison{display:flex;gap:var(--s6)}.letterform-comparison [data-glyph-form]{font-size:var(--forms-display)}
.alphabet-board [lang=bg]:first-child{font-size:var(--forms-capital);color:var(--textTertiary)}.alphabet-board [lang=bg]:nth-child(2){font-size:var(--forms-display);color:var(--textPrimary)}.alphabet-board>a{gap:0;padding:var(--s2)}
figure>.credit-info,.card figure>.credit-info{inset-block-start:auto;inset-block-end:4px;inset-inline-end:4px}
.culture-teaser{grid-template-columns:160px minmax(0,1fr)}.culture-teaser>figure{grid-row:1/5;inline-size:160px}.culture-teaser .media{aspect-ratio:4/3}.culture-teaser>:not(figure){grid-column:2}.culture-teaser h2 a{text-decoration:none}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.culture-teaser{grid-template-columns:1fr}.culture-teaser>figure{grid-row:auto;grid-column:1}.culture-teaser>:not(figure){grid-column:1}}
.client-cord{display:grid;place-items:center;min-block-size:44px}.p-loading>.client-cord{position:absolute;inset:0;pointer-events:none}.p-loading{position:relative}
.forms-pairs{flex-wrap:nowrap;overflow-x:auto;padding-block-end:var(--s1);scrollbar-width:thin}.forms-pair{flex:none}

/* R1-W3 batch 1: Culture, passage catalogs, Course/Level and Unit. */
.culture-grid .library-card .media{inline-size:100%;aspect-ratio:16/9;max-block-size:none}
.culture-grid .library-card{align-content:start}.culture-grid .card-body{padding:var(--s4);gap:var(--s2)}
.culture-grid .library-card h2{display:flex;align-items:start;gap:var(--s2);font-size:var(--compact-title);line-height:1.4}.culture-grid h2>a{flex:1}
.culture-grid .hook{font-size:var(--secondary);line-height:1.45;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.library-card .eyebrow,.passage-card .eyebrow,.unit-eyebrow{color:var(--textTertiary)}
figure[data-kind=photo] img{object-fit:cover;filter:saturate(.88) contrast(1.03)}
figure[data-kind=illus] .media{background:var(--surfaceSunken);padding:0;border-radius:inherit}
figure[data-kind=illus] .media img{object-fit:contain;padding:10%;filter:none;border-radius:inherit}
[data-theme=dark] figure[data-kind=illus] .media{background:var(--surfaceElevated)}
[data-theme=dark] figure[data-kind=photo] img{filter:saturate(.88) contrast(1.03) brightness(.9)}
.culture-grid [data-kind=photo]+[data-kind=illus]{grid-column:1}
.culture-aside-words{display:grid;gap:var(--s3)}.culture-aside-words .word-related{text-decoration:none}
.passage-list{gap:var(--s4)}.passage-card .card-body{gap:var(--s2);padding:var(--s4)}
.passage-card h3{font-family:var(--font-body);font-size:var(--compact-title);font-weight:600;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.passage-card .eyebrow{font-size:var(--eyebrow);line-height:1.4}.passage-sample,.passage-speaker{font-size:var(--secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block}
.passage-meta{margin-block-start:auto}.passage-meta>.chevron{margin-inline-start:auto}.passage-play{position:relative;z-index:2}.passage-play .audio-controls{position:static;margin:0}.passage-play .audio-button{inline-size:32px;min-inline-size:32px;block-size:32px;min-block-size:32px}
.passage-topics{display:flex;gap:var(--s2);flex-wrap:wrap;margin-block:var(--s3)}.passage-topics [aria-pressed=true]{background:var(--action);color:var(--onAction)}.passage-topics [aria-pressed=true] .meta{color:inherit}
.listening-course{margin-block-end:var(--s4)}.level-layout{grid-template-columns:1fr}.level-layout .level-filter{margin-block-start:0}
.course-layout>.level-summary{margin-block-start:var(--s4)}.unit-position{padding:var(--s1) var(--s2);background:var(--surfaceSunken);border-radius:var(--r-chip);justify-self:start}
.unit-layout{display:grid;gap:var(--s7)}.unit-main>section>h2{margin-block-end:var(--s3)}.unit-layout .page-heading{margin:0}.unit-phone-start>.button{inline-size:100%}
.unit-aside{display:none}.unit-layout .lesson-list p{-webkit-line-clamp:2}.unit-layout .lesson-number{border:0;border-radius:0;font-size:var(--lesson-numeral);font-weight:900;color:var(--textTertiary)}
.unit-meta .tag{display:inline-flex;align-items:center;min-block-size:24px;border:0;background:var(--surfaceSunken);font-weight:600}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.unit-layout{grid-template-columns:minmax(0,1fr) 280px}.unit-aside{display:grid;position:sticky;inset-block-start:100px;align-self:start}.unit-aside .unit-cover{margin:0}.unit-aside .media{inline-size:100%;aspect-ratio:16/9}.unit-aside>.button{inline-size:100%}.unit-phone-meta,.unit-phone-start{display:none}.unit-layout .word-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}}
@media(min-width:1100px){.passage-list{grid-template-columns:repeat(4,minmax(0,1fr))}.course-layout .course-units{grid-template-columns:repeat(3,minmax(0,1fr))}.level-layout .course-units{grid-template-columns:repeat(4,minmax(0,1fr))}.unit-layout{grid-template-columns:minmax(0,1fr) 360px}.unit-layout .word-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}.compact-units>.card:only-child{grid-column:1/-1}.compact-units>.card:only-child figure{inline-size:40%}.compact-units>.card:only-child .media{aspect-ratio:16/9}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.culture-grid .library-card{display:grid;grid-template-columns:96px minmax(0,1fr);gap:var(--s3);padding:var(--s3);align-items:start;min-block-size:120px}.culture-grid .library-card>figure{inline-size:96px;border-radius:var(--r-tile)}.culture-grid .library-card .media{aspect-ratio:1;border-radius:var(--r-tile)}.culture-grid .library-card .card-body{padding:0;gap:var(--s1)}.culture-grid .credit-info{display:none}.culture-aside-words{display:none}.passage-list{grid-template-columns:1fr}.passage-card .card-body{padding:var(--s3)}.passage-topics{flex-wrap:nowrap;overflow-x:auto;padding-block:var(--s1)}.passage-topics>button{flex:none;max-inline-size:90%;white-space:nowrap}.page-heading>.actions{display:grid}.page-heading>.actions>.button{inline-size:100%}}

.passage-meta>.audio-controls{order:-1;position:relative;z-index:2;margin:0}.passage-meta>.audio-controls .audio-button{inline-size:32px;min-inline-size:32px;block-size:32px;min-block-size:32px}

@media(max-width:759px),(max-height:500px) and (pointer:coarse){.unit-layout .lesson-list [data-lesson-status]{flex-wrap:nowrap;padding:var(--s3);gap:var(--s2)}.unit-layout .lesson-list [data-lesson-status]>.row-link{flex-basis:auto}.unit-layout .lesson-list [data-play-lesson]{margin:0;max-inline-size:30%;padding-inline:var(--s2)}.unit-layout .lesson-list .row-link>.tag,.unit-layout .lesson-list .row-link>.chevron{display:none}}

.js .stats [data-count]:not(.count-ready){opacity:0}.stats [data-count]{transition:opacity 120ms var(--ease-out)}

/* W5: a quiet installation row, within normal Me/Settings content. */
.install-row{display:flex;align-items:center;gap:var(--s3);flex-wrap:wrap}
.install-row>.button{flex:1;min-inline-size:0}
.install-steps{padding-inline-start:var(--s6)}
.install-steps li{display:flex;gap:var(--s3);align-items:center;min-block-size:52px}

/* R2a: a step caption belongs outside the fixed-height action. */
.lesson-resume-caption{margin:0;grid-column:1/-1;inline-size:100%}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.phone-start:has([data-start-over]),.lesson-bottom:has([data-start-over]){display:none}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.phone-start:has([data-start-over]),.lesson-bottom:has([data-start-over]){grid-template-columns:minmax(0,1fr)}.phone-start>.button,.lesson-bottom>.button{inline-size:100%;min-block-size:52px;flex:none}.lesson-bottom .lesson-resume-caption{pointer-events:auto}}
/* Badge outlines remain their own symbols before and after earning them. */
.achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.achievement{gap:var(--s2);padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-tile);color:var(--textSecondary)}.achievement-symbol{inline-size:56px;block-size:56px;display:grid;place-items:center;border:1.5px solid var(--border);border-radius:50%}.achievement-symbol>.i{inline-size:28px;block-size:28px}.achievement-symbol svg{inline-size:32px;block-size:32px;fill:none;stroke:currentColor;stroke-width:1.5}.achievement-symbol text{font-family:var(--font-display);font-size:var(--secondary);fill:currentColor;stroke:none}.achievement.earned{color:var(--textPrimary)}.achievement.earned .achievement-symbol{border-color:var(--correct);background:var(--correctSoft);color:var(--correct)}.achievement-all{padding:var(--s3);overflow-y:auto}.achievement .meta{font-variant-numeric:tabular-nums}section:has(>[data-mount=activity-chart])[hidden]{display:none}

.certificate-history{block-size:auto;min-block-size:76px;display:grid;justify-content:stretch;align-content:center;gap:var(--s1);padding:var(--s3) var(--s4);text-align:start;white-space:normal}.certificate-history strong{font-weight:600;text-wrap:pretty}.certificate-history>span{white-space:normal}

.certificate-history>.meta{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}

/* W3 batch 2: start the home composition on a shared top line; two cards
   fill two tracks, with the word beside the phrasebook rather than a hole. */
.today-hero{align-items:start}
.hero-copy{justify-content:flex-start}
.home-discover>.panel{align-content:start}
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.home-discover{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* SCAN-1: guidance wraps, while intentional paragraph teasers remain clamped. */
.feature-description{display:block;overflow:visible;-webkit-line-clamp:unset;white-space:normal}
.unit-layout .lesson-list p{display:block;overflow:visible;-webkit-line-clamp:unset}
.settings-grid .button{block-size:auto;min-block-size:52px;max-inline-size:100%;overflow:visible;white-space:normal;overflow-wrap:break-word}
.passage-sample{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;white-space:normal;overflow:hidden;text-overflow:clip;line-height:1.6}
.passage-speaker{white-space:normal;overflow:visible;text-overflow:clip}
.passage-meta>.audio-controls .audio-button,.passage-play .audio-button{inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px}
/* Measure sticky offsets from the actual top bar, including long UI languages. */
@media(min-width:760px) and (min-height:501px),(min-width:760px) and (pointer:fine){.reading-aside,.lesson-aside,.unit-aside,.level-summary,.level-rail{inset-block-start:calc(var(--topbar-height,76px) + 24px)}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.level-filter,.letter-index{inset-block-start:var(--topbar-height,60px)}}

/* The About author is a standalone navigation action, not a prose link. */
main[data-kind=about] .panel.stack>p>a{display:inline-flex;align-items:center;min-block-size:44px;min-inline-size:44px;padding-inline:var(--s1);border-radius:var(--r-chip)}
@media(hover:hover) and (pointer:fine){main[data-kind=about] .panel.stack>p>a:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary)}}

/* Reference TOCs scroll with their short articles; lesson controls stay sticky.
   Phone level navigation is part of the course heading, above its unit list. */
main:is([data-kind=grammar-article],[data-kind=culture-article]) .reading-aside{position:static}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.course-layout .level-filter{position:relative;inset-block-start:auto}}

/* HOT-3: the footer owns its links; a study CTA must yield to it. */
.lesson-bottom:is([data-footer-visible],[data-promo-visible]){visibility:hidden;pointer-events:none}
.lesson-bottom:is([data-footer-visible],[data-promo-visible])>.button{pointer-events:none}

/* DQA-R2-P: word-card links have visible, rounded interaction states. */
a.living-word{position:relative;display:inline-block;border-radius:var(--r-chip);transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}
@media(hover:hover) and (pointer:fine){a.living-word:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary);text-decoration-thickness:2px}}
a.living-word:active{background:color-mix(in srgb,var(--action) 14%,var(--surface));color:var(--textPrimary);transform:scale(.98)}
a.living-word:focus-visible{outline:2px solid var(--action);outline-offset:2px}
@media(prefers-reduced-motion:reduce){a.living-word:active{transform:none}}
/* Compact headwords retain a full tap target inside their word card. */
.phrase-list .wr .wt>a{position:relative}
.wr .wt>a.living-word::before,.phrase-list .wr .wt>a::before{content:"";position:absolute;inset-inline:min(0px,calc((100% - 44px)/2));inset-block:min(0px,calc((100% - 44px)/2))}

/* DQA-R2-W: aligned settings columns and controls that fit narrow locales. */
.settings-grid{max-inline-size:none;margin-inline:0;align-items:start;grid-template-columns:minmax(0,1fr)}
.settings-grid>.panel{align-content:start}
.settings-grid .menu-trigger{justify-content:flex-start;text-align:start}
.settings-grid .menu-trigger>.i:last-child{margin-inline-start:auto}
.settings-grid [data-mount=storage-status]{display:grid;gap:var(--s3)}
.settings-grid [data-mount=storage-status]>.button{justify-self:start}
.settings-grid .segmented:has([data-setting=goalMinutes]){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible}
.settings-grid .segmented:has([data-setting=goalMinutes])>button{inline-size:100%;min-inline-size:44px;padding-inline:var(--s1);font-size:var(--nav-size)}
.passage-tools>.button{block-size:52px;min-block-size:52px}
@media(min-width:760px){.settings-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:399px){.settings-grid .segmented:has([data-setting=goalMinutes]){grid-template-columns:repeat(3,minmax(0,1fr))}}
/* One calm letter-shape hint, with visible pointer feedback on all actions. */
.forms-tip{background:var(--surfaceSunken)}
.forms-pairs{direction:ltr}
@media(hover:hover) and (pointer:fine){.forms-tip :is(.tertiary,.icon-button):hover{background:color-mix(in srgb,var(--action) 10%,var(--surfaceSunken));color:var(--textPrimary)}}
/* A confirmation has its own bounded modal surface on every device. */
.menu-backdrop.modal-backdrop{background:rgb(0 0 0/.4)}
.menu-panel.confirmation-panel{inline-size:min(480px,calc(100vw - 32px));max-block-size:calc(100dvh - 32px);padding:var(--s4);inset:50% auto auto 50%!important;translate:-50% -50%;border-radius:var(--r-card)}
.confirmation-panel .menu-heading{padding:0;margin-block-end:var(--s3)}
.confirmation-panel .confirmation-copy{display:grid;gap:var(--s3);font-size:var(--secondary)}
.confirmation-panel ul{margin:0;padding-inline-start:1.2em}
.confirmation-panel .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-block-start:var(--s4)}
.confirmation-panel .destructive{border-color:var(--wrong)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.menu-panel.confirmation-panel{inset:auto 0 0!important;translate:none;inline-size:auto;max-inline-size:none;border-end-start-radius:0;border-end-end-radius:0;padding-block-end:calc(var(--s4) + env(safe-area-inset-bottom))}}

/* The study dock reserves space only while it is actually visible. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){main:has(.lesson-bottom){padding-block-end:var(--s6)}main:has(.lesson-bottom.is-shown){padding-block-end:calc(77px + var(--s4))}.lesson-bottom{transition:opacity 200ms var(--ease-out)}.lesson-bottom:not(.is-shown){visibility:hidden;pointer-events:none}.lesson-bottom:not(.is-shown)>.button{pointer-events:none}}
/* On phones the article remains in reading order, without a trailing ToC. */
@media(max-width:759px){main:is([data-kind=grammar-article],[data-kind=culture-article]) .reading-aside{display:none}}
/* The next-unit marker is a small state chip, with no field-like grey bar. */
.card .unit-position{align-self:start;justify-self:start;max-inline-size:100%;background:transparent;border:0;padding:0;color:var(--textSecondary)}
.course-vocab>h2,.course-library>h2{margin-block-end:var(--s3)}


/* Shared card tracks align titles, samples and metadata across each row. */
@media(min-width:760px){
 main[data-kind=grammar] .library-grid>.library-card{display:grid;grid-template-rows:subgrid;grid-row:span 5;gap:0}
 main[data-kind=grammar] .library-card>.card-body{display:grid;grid-template-rows:subgrid;grid-row:span 5;gap:var(--s3)}
 .culture-grid>.library-card{display:grid;grid-template-rows:subgrid;grid-row:span 5;gap:0}
 .culture-grid>.library-card>.card-body{display:grid;grid-template-rows:subgrid;grid-row:span 4;gap:var(--s3)}
 .passage-list>.passage-card{display:grid;grid-template-rows:subgrid;grid-row:span 7;gap:0}
 .passage-card>.card-body{display:grid;grid-template-rows:subgrid;grid-row:span 7;gap:var(--s2)}
 .library-card .meta-row,.passage-card .passage-meta{align-self:end;margin-block-start:0}
}
.culture-placeholder{inline-size:100%;block-size:auto;aspect-ratio:16/9}
@media(max-width:759px){.culture-grid .culture-placeholder{inline-size:96px;aspect-ratio:1}}

/* HOT-3c: the SSR phrase card shares the phone's sensor-safe viewport. */
.menu-panel.phrase-modal{inset:max(var(--s4),env(safe-area-inset-top)) max(var(--s4),env(safe-area-inset-right)) max(var(--s4),env(safe-area-inset-bottom)) max(var(--s4),env(safe-area-inset-left))!important;min-block-size:0;max-block-size:calc(100dvh - max(var(--s4),env(safe-area-inset-top)) - max(var(--s4),env(safe-area-inset-bottom)))!important}

/* SEO-1: concise, visible introductions retain a readable line length. */
.seo-intro{max-inline-size:70ch;display:grid;gap:var(--s2)}.seo-intro p{margin:0;color:var(--textSecondary)}

/* RD-9: a browsable collection, with every authored entry visible. */
main[data-kind=false-friends] .page-heading:after{background-size:contain}
.ff-index{display:flex;flex-wrap:wrap;gap:var(--s2);padding-block:var(--s3);margin-block-end:var(--s4)}
.ff-index a{min-inline-size:44px}
.ff-group{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--s4);scroll-margin-block-start:calc(var(--topbar-height,76px) + var(--s4))}
.ff-letter{position:sticky;inset-block-start:calc(var(--topbar-height,76px) + var(--s4));align-self:start;text-align:center;background:var(--bg);padding-block:var(--s2);font-size:var(--h2)}
.ff-grid{columns:3;column-gap:var(--s4)}
.ff-card{break-inside:avoid;display:grid;gap:var(--s3);padding:var(--s4);margin-block-end:var(--s4)}
.ff-card .ff-heading h3{font-size:var(--bg-text);line-height:1.6}
.ff-meaning,.ff-trap{display:grid;gap:var(--s1);padding:var(--s3);border-radius:var(--r-tile);font-size:var(--secondary)}
.ff-meaning{background:color-mix(in srgb,var(--info) 10%,var(--surface));border-inline-start:3px solid var(--info)}
.ff-trap{background:var(--surfaceSunken);border-inline-start:3px solid var(--textSecondary)}
.ff-card .disclosure-row{margin-block-start:0}
@media(max-width:1099px){.ff-grid{columns:2}}
@media(max-width:759px){.ff-group{grid-template-columns:1fr;gap:var(--s2)}.ff-letter{position:static;text-align:start;justify-self:start}.ff-grid{columns:1}.ff-index{gap:var(--s1)}.ff-card{padding:var(--s4)}}

/* RD-9 grammar: the Bulgarian example leads each aligned topic card. */
main[data-kind=grammar] .page-heading:after{background-size:contain}
.grammar-level-title,.grammar-family-title{display:flex;align-items:center;gap:var(--s3)}
.grammar-level-title{margin-block:var(--s6)}
.grammar-family{margin-block-start:var(--s6)}
.grammar-family-title{font-size:var(--h3);margin-block-end:var(--s3)}
.grammar-family-title>.i{inline-size:32px;block-size:32px}
.grammar-family-title>.tag{margin-inline-start:auto}
main[data-kind=grammar] .grammar-sample{font-size:var(--bg-text);line-height:1.6;max-block-size:none;overflow:visible;color:var(--textPrimary)}
main[data-kind=grammar] .library-card h2{font-size:var(--card-title);line-height:1.4}
@media(min-width:760px){.grammar-topics{grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}}


/* RD-9: placement leads; unit tests have room for the learner's results. */
.rd9-placement{display:grid;grid-template-columns:160px minmax(0,1fr);align-items:start;padding:var(--s7);gap:var(--s7);margin-block:var(--s4) var(--s3)}
.rd9-placement .pass-ring{inline-size:144px;block-size:144px;display:flex;flex-direction:column;justify-content:center;border-width:8px;font-family:var(--font-display);font-size:var(--h2);line-height:1.1;gap:var(--s1)}
.placement-copy{display:grid;gap:var(--s3);justify-items:start}
.placement-copy h2{font-size:var(--today-lesson-title)}
.placement-copy>.button{min-inline-size:200px;inline-size:auto}
.placement-facts{display:flex;flex-wrap:wrap;gap:var(--s2)}
.placement-facts .tag{display:flex;align-items:center;gap:var(--s2);min-block-size:32px;white-space:normal}
.placement-facts .i{inline-size:20px;block-size:20px}
.exam-disclaimer{margin-block-end:var(--s5)}
.rd9-exam-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.rd9-exam-card{display:grid;grid-template-rows:1fr auto;align-items:start;padding:var(--s5);gap:var(--s4);min-block-size:0}
.rd9-exam-card>div{display:grid;gap:var(--s4)}
.rd9-exam-card h3{font-size:var(--card-title);line-height:1.4}
.exam-card-facts{display:grid;gap:var(--s2);justify-items:start}
.exam-card-facts>span{display:flex;align-items:center;gap:var(--s2)}
.rd9-exam-card>.button{justify-self:start;min-inline-size:120px}
@media(max-width:1099px){.rd9-exam-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px){.rd9-placement{grid-template-columns:64px minmax(0,1fr);padding:var(--s4);gap:var(--s4)}.rd9-placement .pass-ring{inline-size:64px;block-size:64px;border-width:4px;font-size:var(--secondary);gap:0}.placement-copy h2{font-size:var(--h2)}.placement-copy>.button{min-inline-size:0;inline-size:100%}.placement-facts{gap:var(--s2)}.rd9-exam-grid{grid-template-columns:minmax(0,1fr)}.rd9-exam-card{padding:var(--s4)}}

/* RD-9: an editorial cover and a readable article with playable vocabulary. */
.culture-hero{position:relative;margin-block-end:var(--s6);border-radius:var(--r-card);background:var(--surfaceElevated);isolation:isolate}
.culture-hero .unit-cover{margin:0}
.culture-hero .media{aspect-ratio:16/9;max-block-size:560px;border-radius:var(--r-card)}
.culture-hero figure[data-kind=illus] .media img{padding:var(--s7);object-position:center 25%;object-fit:contain}
.culture-hero-title{position:absolute;inset-inline:0;inset-block-end:0;padding:var(--s6);background:#1B1C1F;color:#fff;border-end-start-radius:var(--r-card);border-end-end-radius:var(--r-card);display:grid;gap:var(--s2)}
.culture-hero-title .eyebrow{color:#fff}
.culture-hero .credit-info{inset-block-start:var(--s3);inset-block-end:auto}
main[data-kind=culture-article] .reading-layout{grid-template-columns:minmax(0,680px) minmax(260px,1fr);gap:var(--s7)}
main[data-kind=culture-article] #article-rule{font-size:var(--body);line-height:1.7;padding:var(--s6)}
main[data-kind=culture-article] .reading-aside{display:grid;gap:var(--s4);align-items:start;position:sticky;inset-block-start:calc(var(--topbar-height,76px) + var(--s4))}
.culture-summary{margin-block-end:var(--s6)}
.culture-aside-words{display:grid;gap:var(--s3)}
.culture-aside-words .wr{display:block;padding:var(--s3) 0}
.culture-aside-words .rc{display:grid;gap:var(--s2)}
.culture-aside-words .word-picture{display:none}
.culture-aside-words .wt{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2)}
.culture-aside-words .wt>a{min-block-size:44px;display:inline-block;line-height:44px}
@media(max-width:1023px){main[data-kind=culture-article] .reading-layout{grid-template-columns:1fr}main[data-kind=culture-article] .reading-aside{position:static}}
@media(max-width:759px){.culture-hero .media{aspect-ratio:4/3;min-block-size:240px}.culture-hero-title{position:relative;padding:var(--s4)}.culture-hero-title h1{font-size:var(--h1)}main[data-kind=culture-article] #article-rule{padding:var(--s4)}main[data-kind=culture-article] .reading-aside>.lesson-toc,main[data-kind=culture-article] .reading-aside>h2:has(+.lesson-toc){display:none}.culture-hero figure[data-kind=illus] .media img{padding:var(--s4)}}

/* Topic summaries stay complete: no extra clamped teasers in the expanded groups. */
.grammar-topics .hook{display:block;-webkit-line-clamp:unset;overflow:visible}
@media(min-width:760px){main[data-kind=grammar] .library-grid.grammar-topics>.library-card{grid-row:span 5}main[data-kind=grammar] .library-grid.grammar-topics>.library-card>.card-body{grid-row:span 5}}

main[data-kind=exams] .page-heading:after{background-size:contain}

/* Visual review: a full-width phone CTA and an illustration clear of the title. */
.rd9-placement{grid-template-columns:144px minmax(0,1fr) auto;column-gap:var(--s6);row-gap:var(--s3);align-items:center}
.rd9-placement .pass-ring{grid-column:1;grid-row:1/3;align-self:start}
.rd9-placement .placement-copy{grid-column:2;grid-row:1}
.rd9-placement .placement-facts{grid-column:2;grid-row:2}
.rd9-placement>.button{grid-column:3;grid-row:1/3;min-inline-size:200px;align-self:center}
.culture-hero figure{border-radius:inherit}
.culture-hero .media img{inline-size:100%;block-size:100%}
.culture-hero figure[data-kind=illus] .media img{padding:var(--s6) var(--s6) calc(var(--s10) + var(--s8));object-position:center}
@media(max-width:759px){
 .rd9-placement{grid-template-columns:64px minmax(0,1fr);gap:var(--s2) var(--s4)}
 .rd9-placement .pass-ring{grid-row:1}
 .rd9-placement .placement-copy>.eyebrow{display:none}
 .rd9-placement .placement-facts{grid-column:1/-1;grid-row:2}
 .rd9-placement>.button{grid-column:1/-1;grid-row:3;inline-size:100%;min-inline-size:0}
 .placement-facts .i{display:none}
 .culture-hero-title{position:absolute}
 .culture-hero figure[data-kind=illus] .media img{padding:var(--s4) var(--s4) calc(var(--s10) + var(--s6))}
}
@media(max-width:759px) and (max-height:700px){main[data-kind=exams] .page-heading{margin-block-end:var(--s3)}main[data-kind=exams] .page-heading>.eyebrow{display:none}}

/* Keep the word cards in the first phone viewport; the full letter index is optional. */
.ff-index-toggle{margin-block-end:var(--s4)}
.ff-index-toggle .i-down{transition:transform var(--t-hover) var(--ease-out)}
.ff-index-toggle[aria-expanded=true] .i-down{transform:rotate(180deg)}
@media(prefers-reduced-motion:reduce){.ff-index-toggle .i-down{transition:none;transform:none!important}}

/* The reserved audio slot keeps grammar previews steady during enhancement. */
main[data-kind=grammar] .grammar-sample{position:relative;z-index:2;min-block-size:44px;padding-inline-end:calc(44px + var(--s3))}
.grammar-sample>.au{position:absolute;inset-inline-end:0;inset-block-start:0}

.grammar-topics h4{margin:0;font-family:var(--font-body);font-size:var(--card-title);font-weight:600;line-height:1.4;text-wrap:balance;hyphens:manual;overflow-wrap:break-word}

/* Compact vocabulary keeps a short culture article and its rail balanced. */
.culture-word{position:relative;padding-block:var(--s2);padding-inline-start:0;padding-inline-end:calc(44px + var(--s3));min-block-size:68px;border-block-end:1px solid var(--border)}
.culture-word-head{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s2);min-block-size:44px;align-content:center}
.culture-word-head>a{display:inline-block;line-height:44px;min-block-size:44px;font-size:var(--bg-text);text-decoration:underline;text-underline-offset:.18em}
.culture-word-head>a:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));border-radius:var(--r-chip)}
.culture-word-head>a:active{transform:scale(.98)}
.culture-word>.au{position:absolute;inset-inline-end:0;inset-block-start:var(--s2)}
.culture-word-meaning{font-size:var(--secondary);color:var(--textSecondary)}
.culture-lesson-links{margin-block-end:var(--s6)}
.culture-lesson-link{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);min-block-size:52px;padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);text-decoration:none;font-size:var(--secondary);transition:background var(--t-hover),transform var(--t-press)}
.culture-lesson-link:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));border-color:var(--action)}
.culture-lesson-link:active{transform:scale(.98)}
@media(prefers-reduced-motion:reduce){.culture-word-head>a:active,.culture-lesson-link:active{transform:none}}

/* RD-9: library previews keep the authored summary visible at every width. */
main[data-kind=culture] .library-card .hook,
main:is([data-kind=culture-article],[data-kind=grammar-article]) .card .hook{display:block;-webkit-line-clamp:unset;overflow:visible}

/* A letter stays with its group on phones as well as desktop. */
@media(max-width:759px){.ff-group{display:block}.ff-letter{position:sticky;inset-block-start:calc(var(--topbar-height,52px) + var(--s2));z-index:3;inline-size:100%;margin-block-end:var(--s2)}}

/* RD-10: the profile starts with a useful next step, not empty statistics. */
.profile-stats[hidden],.profile-stats>[hidden],.profile-layout [hidden]{display:none!important}
.profile-stats{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}
.profile-stats h2{display:flex;align-items:center;gap:var(--s2)}
.profile-layout>.stack{gap:var(--s6)}
.me-welcome{padding:var(--s6);gap:var(--s4)}
.me-welcome h2{font-family:var(--font-display);font-size:var(--profile-title);font-weight:900;line-height:1.15;max-inline-size:24ch}
.profile-layout .button{justify-self:start;align-self:start;max-inline-size:100%}
.profile-layout .actions{align-items:stretch}
.me-settings-shortcuts{grid-template-columns:minmax(0,1fr)}
.me-settings-shortcuts>h2{overflow-wrap:anywhere}
.me-settings-shortcuts>.row-link{min-block-size:52px;padding-inline:0;gap:var(--s2)}
.me-settings-shortcuts>.row-link>span{min-inline-size:0;hyphens:auto;overflow-wrap:anywhere}
.profile-layout [data-mount=current-level]>.button{align-self:start}
.profile-goal-ring{display:grid;place-items:center;position:relative;inline-size:120px;block-size:120px;margin-inline:auto}
.profile-goal-value{position:absolute;inset:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--s1);text-align:center;pointer-events:none}
.profile-goal-value strong{font-family:var(--font-display);font-size:var(--numeric);font-weight:900;line-height:1}
.profile-goal-value>span{font-size:var(--caption);line-height:1.2;color:var(--textSecondary)}
.profile-layout [data-mount=study-plan]>.f-card{border:0;padding:0;background:transparent}
.profile-layout .f-selection-surface{background:var(--action)}
.profile-layout .f-levels.has-surface [aria-pressed=true]{color:var(--onAction);border-color:transparent}
.profile-layout .f-levels.has-surface [aria-pressed=true]:hover{background:color-mix(in srgb,var(--onAction) 12%,transparent);color:var(--onAction)}
@media(max-width:759px){.profile-layout{display:flex;flex-direction:column}.profile-layout>.stack{inline-size:100%}.profile-layout .achievement-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.profile-layout .achievement{padding:var(--s2)}.profile-layout .achievement-symbol{inline-size:44px;block-size:44px}.me-welcome{padding:var(--s4)}}

/* RD-10: one settings panel column with a stable section navigator. */
.settings-layout{display:grid;grid-template-columns:minmax(180px,260px) minmax(0,720px);gap:var(--s6);align-items:start}
.settings-nav{display:grid;gap:var(--s2);position:sticky;inset-block-start:calc(var(--topbar-height,80px) + var(--s4))}
.settings-nav a{display:flex;align-items:center;gap:var(--s3);min-block-size:52px;padding:var(--s3);text-decoration:none;border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);transition:background var(--t-hover),transform var(--t-press)}
.settings-nav a>span{flex:1}.settings-nav a:hover{background:var(--surfaceSunken);border-color:var(--action)}.settings-nav a:active{transform:scale(.98)}
.settings-layout .settings-grid{grid-template-columns:minmax(0,1fr);gap:var(--s6);display:grid}
.settings-grid>.panel{padding:var(--s6);scroll-margin-block-start:calc(var(--topbar-height,80px) + var(--s4))}
.settings-grid .setting-row{border-radius:0;padding-inline:0;gap:var(--s4)}
.settings-grid .setting-row:hover{border-radius:var(--r-chip)}
.settings-grid [data-mount=calendar-reminder]{display:grid;gap:var(--s3)}
.settings-grid .reminder-step{border-color:color-mix(in srgb,var(--textPrimary) 70%,transparent);border-radius:var(--r-chip)}
.settings-grid .reminder-stepper{gap:var(--s4);align-items:center;justify-content:flex-start}
.settings-grid .reminder-stepper>span{font-variant-numeric:tabular-nums;font-weight:600}
.settings-grid [data-mount=storage-status] .p-stack{display:grid;gap:var(--s3)}
.settings-grid [data-mount=storage-status] .button{inline-size:fit-content}
.profile-layout .f-levels.has-surface [aria-pressed=true]{background:transparent}
@media(max-width:759px){.settings-layout{grid-template-columns:minmax(0,1fr)}.settings-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s2)}.settings-nav a{padding:var(--s2);font-size:var(--secondary);gap:var(--s2)}.settings-nav a>.i:last-child{display:none}.settings-grid>.panel{padding:var(--s4)}.profile-layout{display:grid;grid-template-columns:minmax(0,1fr)}.profile-layout>.stack{display:contents}.profile-layout [data-mount=daily-goal]{grid-row:2}}
@media(prefers-reduced-motion:reduce){.settings-nav a:active{transform:none}}

/* RD-10: a missed address still offers a useful route into learning. */
.not-found{display:grid;grid-template-columns:minmax(160px,1fr) minmax(0,2fr);gap:var(--s7);padding:var(--s7);align-items:center;max-inline-size:1100px;margin-inline:auto}
.not-found-identity{display:grid;place-items:center;gap:var(--s4);padding:var(--s6);border-radius:var(--r-card);background:var(--surfaceSunken);align-self:stretch;align-content:center}
.not-found-identity .brand-mark{inline-size:96px;block-size:96px}.not-found-identity .number{font:900 var(--hero-word)/1 var(--font-display);color:var(--textSecondary)}
.not-found .lead{max-inline-size:42ch}.not-found .search-field{max-inline-size:100%;margin-block:var(--s2)}
.not-found-links{display:flex;flex-wrap:wrap;gap:var(--s3)}.not-found-links>.button{flex:1 1 auto}
.settings-layout .install-row{border:0;padding:0;background:transparent}
@media(max-width:759px){.not-found{grid-template-columns:minmax(0,1fr);padding:var(--s4);gap:var(--s4)}.not-found-identity{display:flex;padding:var(--s3);justify-content:center;gap:var(--s6)}.not-found-identity .brand-mark{inline-size:64px;block-size:64px}.not-found-links{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.not-found-links>.primary{grid-column:1/-1}.not-found-links .button{padding-inline:var(--s2)}}
/* Section links keep their natural word width; long labels take a full row. */
@media(max-width:759px){.settings-nav{display:flex;flex-wrap:wrap}.settings-nav a{flex:1 0 44%;min-inline-size:min-content}}
/* RD-10: enlarged text keeps recovery actions and goal figures readable. */
.large-text .not-found-links{display:grid;grid-template-columns:minmax(0,1fr)}
.large-text .not-found-links>.primary{grid-column:auto}
.large-text .profile-goal-ring{inline-size:180px;block-size:180px}
.large-text .profile-goal-ring :is(.cord,.martenitsa-cord){inline-size:180px;block-size:180px}
.large-text .profile-goal-value{inset:36px}
.large-text .profile-stats{grid-template-columns:minmax(0,1fr)}
.large-text .profile-stats .number{font-size:var(--h2)}
.large-text .settings-grid .segmented,.large-text .settings-grid .segmented.wrap{display:flex;flex-wrap:wrap;overflow:visible}
.large-text .settings-grid .segmented button{flex:1 0 min-content;min-inline-size:min-content;max-inline-size:100%;white-space:normal}
/* Enlarged utility screens reserve enough room for the same shell labels. */
.large-text:has(.profile-layout,.settings-layout,.not-found) .store-links>.promo-control{inline-size:272px;min-inline-size:272px;max-inline-size:272px;block-size:80px;min-block-size:80px;flex-basis:272px}
.large-text:has(.profile-layout,.settings-layout,.not-found) .store-links{padding-block-start:var(--s8)}
.large-text:has(.profile-layout,.settings-layout,.not-found) .web-badge>.i{inline-size:var(--s7);block-size:var(--s7)}
.large-text:has(.profile-layout,.settings-layout,.not-found) .app-identity :is(h3,p){-webkit-line-clamp:unset;max-block-size:none;overflow:visible}
.large-text .settings-layout{grid-template-columns:minmax(0,1fr)}
.large-text .settings-nav{position:static;display:flex;flex-wrap:wrap}
.large-text .settings-nav a{flex:1 0 44%;min-inline-size:min-content}
.large-text:has(.profile-layout,.settings-layout,.not-found) .promo-control.web-badge{display:flex;gap:var(--s3)}
.large-text:has(.profile-layout,.settings-layout,.not-found) .web-badge>span{display:block}
.large-text:has(.profile-layout,.settings-layout,.not-found) .web-badge :is(small,b){display:block;text-align:start;white-space:normal}
.large-text .profile-layout .f-plan-summary .p-stat{font-size:var(--h3)}
@media(max-width:759px){
 .large-text .profile-layout :is(h2,h3){font-size:var(--body)}
 .large-text .profile-layout .me-welcome h2{font-size:var(--profile-title)}
}
@media(max-width:759px){.large-text .settings-grid :is(h2,h3){font-size:var(--body)}}
@media(max-width:759px){.large-text main[data-kind=settings] .page-heading h1{font-size:var(--h2)}}

/* A returning profile paints its real data as one stable first frame. */
html[data-returning] main[data-kind=me]:not([data-profile-ready]){visibility:hidden;animation:profile-data-failsafe 1200ms step-end forwards!important}
@keyframes profile-data-failsafe{to{visibility:visible}}

/* R3-P2-14 / RD-9: a complete cover, followed by a title that can grow. */
.culture-hero .media{aspect-ratio:16/9;min-block-size:0;max-block-size:none;border-end-start-radius:0;border-end-end-radius:0}
.culture-hero-title{position:static;overflow-wrap:anywhere}
.culture-hero-title :is(h1,h2){min-inline-size:0}
:is(.culture-hero,.home-culture-preview,.culture-grid,.reading-layout+section) figure[data-kind=illus] .media{display:grid;place-items:center;background:var(--surfaceSunken);aspect-ratio:16/9}
:is(.culture-hero,.home-culture-preview,.culture-grid,.reading-layout+section) figure[data-kind=illus] .media img{inline-size:70%;block-size:70%;padding:0;object-fit:contain;object-position:center}
/* Library photography always reserves the same 16:9 geometry, including phones. */
:is(.culture-grid,.reading-layout+section) figure[data-kind=photo] .media{aspect-ratio:16/9;max-block-size:none}
.culture-grid figure[data-kind=photo]>.credit-info{display:inline-flex}
@media(max-width:759px){.culture-grid .library-card>figure{inline-size:100%;grid-column:1/-1}.culture-grid .library-card{grid-template-columns:minmax(0,1fr)}}
/* W-R7b / DoD 9: photo cards lost their thumbnail layout but retained its
   outer padding on phones. Keep full-bleed photos and pad the copy instead. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){
 .culture-grid .library-card[data-kind=photo]{padding:0;gap:0}
 .culture-grid .library-card[data-kind=photo]>.card-body{padding:var(--s4)}
 .culture-grid .library-card[data-kind=photo]>figure,
 .culture-grid .library-card[data-kind=photo]>figure .media{border-radius:var(--r-card) var(--r-card) 0 0}
}

.show-all{inline-size:fit-content;min-inline-size:min(200px,100%);max-inline-size:100%;justify-self:start}

.course-vocab [data-level-group]>h3,.culture-lesson-links>h2,.reading-layout+section>h2{margin-block-end:var(--s3)}

@media(max-width:759px){main[data-kind=offline]>.actions{display:grid;grid-template-columns:minmax(0,1fr)}main[data-kind=offline]>.actions>.button{inline-size:100%}}

[data-theme=dark] .switch{border:2px solid var(--textSecondary);padding:1px}
[data-theme=dark] .switch span{background:var(--textSecondary)}
[data-theme=dark] .setting-row[aria-checked=true] .switch span,[data-theme=dark] .switch[aria-checked=true] span{background:var(--onAction)}

/* RD-9: ch changed the intro width when the Cyrillic font arrived. */
main[data-kind=false-friends] .page-heading>.lead{max-inline-size:min(100%,40rem)}

/* RD-9: enlarged placement codes and level labels remain inside their controls. */
.large-text .rd9-placement{grid-template-columns:auto minmax(0,1fr)}
.large-text .rd9-placement .pass-ring{inline-size:5em;block-size:5em;font-size:var(--secondary);grid-row:1;grid-column:1}
.large-text .rd9-placement .placement-copy{grid-column:2;grid-row:1}
.large-text .rd9-placement .placement-facts{grid-column:1/-1;grid-row:2}
.large-text .rd9-placement>.button{grid-column:1/-1;grid-row:3;min-inline-size:0}
.large-text .level-filter{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));block-size:auto}
.large-text .level-filter :is(a,button){min-block-size:52px;overflow:visible;line-height:1.4}
.large-text .level-filter>.selection-indicator{display:none}
.large-text .level-filter [aria-pressed=true],.large-text .level-filter [aria-current=page]{background:var(--action);color:var(--onAction)}
@media(max-width:759px){.large-text .rd9-placement{grid-template-columns:minmax(0,1fr)}.large-text .rd9-placement .pass-ring{justify-self:start}.large-text .rd9-placement .placement-copy{grid-column:1;grid-row:2}.large-text .rd9-placement .placement-facts{grid-row:3}.large-text .rd9-placement>.button{grid-row:4}}

/* R3-P3-23: a complete street card, with the phrase owning its available space. */
.menu-panel.phrase-modal{inset:0!important;inline-size:100%!important;block-size:100dvh;max-block-size:100dvh!important;border-radius:0;display:flex;flex-direction:column;padding:max(var(--s5),env(safe-area-inset-top)) max(var(--s5),env(safe-area-inset-right)) max(var(--s5),env(safe-area-inset-bottom)) max(var(--s5),env(safe-area-inset-left));text-align:center}
.phrase-modal .menu-heading{position:static;flex-shrink:0}
.phrase-modal .menu-content{display:flex;flex:1;min-block-size:0;flex-direction:column;justify-content:center;gap:var(--s4)}
.phrase-modal .show-phrase{display:block;flex:0 1 auto;min-block-size:0;max-block-size:100%;padding:0;hyphens:manual;overflow-wrap:normal;word-break:normal;line-height:1.15;text-wrap:balance}
.phrase-modal .phrase-turn{flex-shrink:0;align-self:center}

/* Related cards share the same geometry even when a sister-app row precedes them. */
main[data-kind=culture-article] figure[data-kind=photo] .media{aspect-ratio:16/9;min-block-size:0;max-block-size:none}
main[data-kind=culture-article] figure[data-kind=illus] .media{display:grid;place-items:center;aspect-ratio:16/9;background:var(--surfaceSunken)}
main[data-kind=culture-article] figure[data-kind=illus] .media img{inline-size:70%;block-size:70%;padding:0;object-fit:contain;object-position:center}

/* Enlarged long titles must size to their grid track before they can wrap. */
.page-heading{grid-template-columns:minmax(0,1fr)}
.page-heading>*{min-inline-size:0;max-inline-size:100%}

/* At enlarged text, use the document language dictionary before emergency
   word breaks, so long article titles do not leave a single final letter. */
.large-text :is(.culture-hero-title,.page-heading) :is(h1,h2){hyphens:auto;overflow-wrap:break-word}

/* Category counters remain reachable beside enlarged long category names. */
.grammar-family-label{flex:1;min-inline-size:0;hyphens:auto;overflow-wrap:break-word}
.grammar-family-title>.tag{flex:none}

/* A sister-card title must shrink inside its own text track at 200%. */
.feature-copy{grid-template-columns:minmax(0,1fr)}

/* R4-34: settings own the learning controls and data transfer. */
.settings-grid [data-mount=study-plan]{padding:0;border:0;background:transparent;gap:var(--s4)}
.settings-grid [data-mount=study-plan]>.f-card{padding:0;border:0;background:transparent}
.settings-grid .f-plan-summary .p-stat{font-size:var(--h3);line-height:1.4;white-space:normal}
.settings-grid .f-levels.has-surface [aria-pressed=true]{color:var(--onAction);background:transparent;border-color:transparent}
.settings-grid .f-levels.has-surface [aria-pressed=true]:hover{background:color-mix(in srgb,var(--onAction) 12%,transparent);color:var(--onAction)}
.profile-layout [data-mount=activity-chart] svg{display:block;inline-size:100%;max-block-size:240px}
.lesson-list .lesson-meta{display:flex;overflow:visible;-webkit-line-clamp:unset}
.settings-grid .f-selection-surface{background:var(--action)}
/* The returning profile and its footer enter together after local data paints. */
html[data-returning]:has(main[data-kind=me]:not([data-profile-ready])) footer.collection{visibility:hidden;animation:profile-data-failsafe 1200ms step-end forwards}

html[data-returning] main:is([data-kind=course],[data-kind=level]):not([data-progress-ready]),
html[data-returning]:has(main:is([data-kind=course],[data-kind=level]):not([data-progress-ready])) footer.collection{visibility:hidden;animation:profile-data-failsafe 1200ms step-end forwards}

/* W-R5: every settings segment uses equal tracks, including short phones. */
.settings-grid .segmented,.settings-grid .segmented.wrap,.settings-grid .segmented:has([data-setting=goalMinutes]){display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,88px),1fr));overflow:visible;grid-auto-rows:1fr}
.settings-grid .segmented>button,.settings-grid .segmented:has([data-setting=goalMinutes])>button{inline-size:100%;min-inline-size:0;max-inline-size:100%;white-space:normal;overflow-wrap:anywhere;text-wrap:balance;padding-inline:var(--s1)}
@media(max-width:400px){.settings-grid .segmented>button{padding-inline:0}}

/* Phone tables retain complete words; wider paradigms use labelled rows. */
.grammar-table .table-mobile-label{display:none}
@media(max-width:759px){
 .grammar-table{overflow-x:auto}
 .grammar-table table{inline-size:100%;table-layout:auto}
 .grammar-table :is(th,td){min-inline-size:0;white-space:normal;overflow-wrap:normal;word-break:normal;hyphens:auto;hyphenate-limit-chars:8 4 3;padding:var(--s2)}
 .grammar-table.table-stacked thead{position:absolute;inline-size:1px;block-size:1px;clip-path:inset(50%);overflow:hidden}
 .grammar-table.table-stacked :is(table,tbody,tr){display:block}
 .grammar-table.table-stacked tr+tr{margin-block-start:var(--s4)}
 .grammar-table.table-stacked th{display:block;background:var(--surfaceSunken)}
 .grammar-table.table-stacked td{display:grid;grid-template-columns:minmax(min-content,1fr) minmax(min-content,1fr);gap:var(--s3)}
 .grammar-table.table-stacked .table-mobile-label{display:block;color:var(--textSecondary);font-size:var(--caption)}
}

/* W-R5: meanings scan as compact rows; examples open only on request. */
.ff-search{max-inline-size:720px;margin-block-end:var(--s4)}
.ff-grid{columns:auto;display:grid;gap:var(--s2)}
.ff-card{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s2) var(--s4);align-items:center;margin:0}
.ff-card .ff-heading h3{font-size:var(--bg-text)}
.ff-card .ff-meaning{margin:0}
.ff-card .ff-trap,.ff-card>.disclosure-row,.ff-card>[id^=example-]{grid-column:1/-1}
.ff-card .ff-trap{font-size:var(--secondary)}
.ff-card .ff-trap .meta{display:inline}
.ff-card .ff-trap>p{display:block;margin:0}
.ff-card>.disclosure-row{min-block-size:44px;padding-block:0}

/* W-R5: the optional target plan is a sheet, outside the settings list. */
.study-plan-sheet{max-inline-size:640px}
.study-plan-host{display:block}
.study-plan-host>.f-card{display:grid;gap:var(--s4);padding:var(--s4)}
.study-plan-host .f-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,88px),1fr));gap:var(--s1)}
.study-plan-host .f-levels>button{inline-size:100%;min-inline-size:0;min-block-size:44px}
.study-plan-host [data-plan-save],.settings-grid [data-mount=storage-status]>.button{inline-size:100%;min-block-size:52px}

/* W-R5: a unit explains every lesson outcome, then offers eight compact rows. */
.unit-outcomes{margin-block-start:var(--s6)}
.unit-outcomes>ol{padding-inline-start:var(--s7)}
.unit-outcomes li+li{margin-block-start:var(--s3)}
.unit-word-list{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.unit-word-list>.wr{padding-block:var(--s3)}
.unit-word-list .wt{font-size:var(--bg-text)}
.library-start{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2) var(--s4);margin-block-end:var(--s4)}
.library-start>.tertiary{flex:none;max-inline-size:100%}
main :is(h1,h2,h3){hyphens:manual}
.segmented>button:disabled{opacity:1;background:transparent;color:var(--textSecondary);cursor:default}
.study-plan-host .f-levels{position:relative;isolation:isolate;padding:var(--s1);background:var(--surfaceSunken);border-radius:var(--r-button);margin:0}
.study-plan-host .f-levels>.p-button{border-color:transparent;background:transparent;white-space:normal}
.study-plan-host .f-levels>.p-button[aria-pressed=true]{color:var(--onAction)}
.study-plan-host .f-selection-surface{background:var(--action)}
.study-plan-host .f-plan-summary>.p-stat{font-size:var(--h3);line-height:1.3}

/* Button labels fit two lines at the same row height; explanatory copy is outside. */
button.setting-row{block-size:52px;min-block-size:52px;padding-block:0;font-size:var(--secondary);line-height:1.25}
.letterform-choice+.letterform-choice{margin-block-start:var(--s4)}
.letterform-choice>.letterform-option{block-size:52px;min-block-size:52px;padding-block:0}
.letterform-choice>.meta{margin-block-start:var(--s2);padding-inline-start:var(--s3)}

/* A labelled, stationary progress arc is visibly lesson progress, not a spinner. */
.lesson-state-icon.lesson-ring{display:grid;place-items:center;position:relative;inline-size:44px;block-size:44px;flex:none}
.lesson-state-icon.lesson-ring>svg{position:absolute;inset:0;inline-size:44px;block-size:44px}
.lesson-progress-value{font-size:var(--eyebrow);font-weight:700;font-variant-numeric:tabular-nums}
.large-text button.setting-row,.large-text .letterform-choice>.letterform-option{block-size:auto;min-block-size:52px;padding-block:var(--s2)}

/* W-DQA4 P3-22: authored phrase rows share the same 44px outlined actions. */
.phrase-row>.button,.phrase-row>.icon-button{block-size:44px;min-block-size:44px;align-self:center;border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);border-radius:var(--r-button)}
.phrase-row>.button{padding-block:var(--s2)}

/* W-R6: goal values are indivisible; equal cells wrap as complete units. */
.settings-grid .segmented:has([data-setting=goalMinutes]){grid-template-columns:repeat(auto-fit,minmax(min(100%,96px),1fr))}
.settings-grid .segmented:has([data-setting=goalMinutes])>button{white-space:nowrap;overflow-wrap:normal;word-break:normal;hyphens:manual;padding-inline:var(--s2)}
.large-text .settings-grid .segmented:has([data-setting=goalMinutes]){grid-template-columns:repeat(2,minmax(0,1fr))}

/* W-R6 P2-5: all exam cards end with the same primary text action. */
.rd9-exam-card>.button{inline-size:100%;min-block-size:52px;align-self:end}
.lesson-completed{display:flex;align-items:center;flex-wrap:wrap;gap:var(--s2);font-size:var(--secondary);color:var(--correct)}
.lesson-completed .i{inline-size:24px;block-size:24px}
.lesson-next-action{inline-size:100%}
.lesson-aside:has(.lesson-next-action) .button,.phone-start:has(.lesson-next-action) .button,.lesson-bottom:has(.lesson-next-action) .button{inline-size:100%}

/* W-R6b: translated false-friend meanings keep the enlarged phone grid
 * inside its columns; long words wrap instead of widening the viewport. */
.ff-card>:is(.ff-heading,.ff-meaning,.ff-trap){min-inline-size:0;overflow-wrap:anywhere}
.ff-card>:is(.ff-meaning,.ff-trap){grid-template-columns:minmax(0,1fr)}
.ff-card>:is(.ff-meaning,.ff-trap)>p{min-inline-size:0;overflow-wrap:anywhere}

/* W-R7-20: practice totals form one group before the next section. */
main[data-kind=practice] .learning-numbers{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);padding:var(--s4);margin-block-end:var(--s6);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface)}

/* W-R7-11: clipped chip strips announce each remaining scroll direction. */
:is(.w-filters,.passage-topics){--strip-left:#000;--strip-right:#000;mask-image:linear-gradient(to right,var(--strip-left),#000 24px,#000 calc(100% - 24px),var(--strip-right))}
:is(.w-filters,.passage-topics).strip-more-start{--strip-left:transparent}
:is(.w-filters,.passage-topics).strip-more-end{--strip-right:transparent}
:is(.w-filters,.passage-topics).strip-rtl.strip-more-start{--strip-right:transparent;--strip-left:#000}
:is(.w-filters,.passage-topics).strip-rtl.strip-more-end{--strip-left:transparent}
:is(.w-filters,.passage-topics).strip-rtl.strip-more-end:not(.strip-more-start){--strip-right:#000}

/* W-R7-12: quiet saved positions remain separate from the primary action. */
.additional-lessons{display:grid;gap:var(--s1);margin-block:var(--s4);padding:var(--s3) var(--s4);border-inline-start:2px solid var(--border)}
.additional-lessons>a{min-block-size:44px;display:flex;align-items:center;font-size:var(--secondary);overflow-wrap:break-word}

/* W-R6-N15: the alphabet's tracing promise has a real writing surface. */
.alphabet-trace{display:grid;gap:var(--s3)}
.alphabet-trace>.actions{align-items:center;justify-content:space-between;gap:var(--s2)}
.alphabet-trace h3{font-size:var(--secondary);flex:1}
.alphabet-trace canvas{display:block;inline-size:100%;block-size:160px;border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surfaceSunken);touch-action:none;cursor:crosshair}

/* W-R6-P2-5/14: equally sized actions in a row, including Words search tools. */
.profile-layout .actions>.button{flex:1;inline-size:100%;justify-self:stretch;align-self:stretch}
.profile-layout [data-mount=current-level]>.button{inline-size:100%;justify-self:stretch}
.w-tools>.w-button{min-block-size:52px;block-size:52px}
.rd7-hero .w-actions>.w-button,.w-result .w-actions>.w-button{flex:1;inline-size:100%}

/* W-R6-N27: word state colours always have a readable legend. */
.w-status-legend{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:var(--caption);color:var(--textSecondary)}
.w-status-label{display:inline-flex;align-items:center;gap:var(--s2)}
.w-status-label>.w-status-dot{position:static;display:block;flex:none}

/* W-R6-N21: short culture lines keep whole words at phone and text zoom sizes. */
@media(max-width:759px){main[data-kind=culture-article] .prose{hyphens:manual}}
.large-text main[data-kind=culture-article] .prose{hyphens:manual}

/* W-R6-N31: one underline spans the level and its course-audio label. */
.listening-course{text-decoration:none}
.listening-course>span{text-decoration:underline;text-underline-offset:.18em;text-decoration-color:color-mix(in srgb,currentColor 35%,transparent)}
.listening-course:hover>span{text-decoration-color:currentColor}

/* Passage words are real inline dictionary links, enhanced with a gloss sheet. */
.lesson-sections a.lookup-word{display:inline;color:inherit;text-decoration:none;border-block-end:1px dotted var(--textTertiary);border-radius:2px}
.lesson-sections a.lookup-word:hover{background:var(--surfaceSunken);border-block-end-color:var(--textPrimary)}
.lesson-sections a.lookup-word:active{background:var(--surfaceSunken)}

/* W-R8c R7-11: passage topics keep their complete label at phone widths. */
.passage-topics{flex-wrap:wrap;overflow:visible;mask-image:none}
.passage-topics>button{flex:0 1 auto;max-inline-size:100%;white-space:normal;block-size:auto;min-block-size:44px}

/* W-R8c R7-23: the long third voice choice has its own full-width track. */
.settings-grid .segmented:has([data-setting=speakerGender]){grid-template-columns:repeat(2,minmax(0,1fr))}
.settings-grid .segmented>[data-setting=speakerGender][data-value=both]{grid-column:1/-1}

/* W-R8c R8-16: the meaning leads, transliteration remains a quiet aid. */
.phrase-row .wr .translit{font-size:var(--caption);font-weight:400;color:var(--textSecondary)}
.phrase-row .wr .tr{font-size:var(--secondary);font-weight:400}

/* W-R8c R8-20 / N22: ancestor-only breadcrumbs; the current title is the H1. */
main>.breadcrumbs{flex-wrap:nowrap}
main>.breadcrumbs>.i{flex:none}
main>.breadcrumbs>a{white-space:nowrap;flex:none}

/* W-R8c R8-21: transparent art shares its surrounding culture-card surface. */
[data-theme=dark] main[data-kind=culture-article] figure[data-kind=illus] .media{background:transparent}

/* W-R8c R5 P2-5: related page actions align to a shared content column. */
.passage-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-inline-size:720px}
.passage-tools:has(>:only-child){grid-template-columns:minmax(0,1fr)}
.passage-tools>.button{inline-size:100%;white-space:normal}
.profile-layout .panel>.button{justify-self:stretch;inline-size:100%}
@media(max-width:759px){.passage-tools{grid-template-columns:minmax(0,1fr)}}

/* W-R9-9: inline completion choices have their own rows; the dock has one CTA. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){
 .phone-start:has(.lesson-next-action){display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s3)}
 .phone-start:has(.lesson-next-action)>.button{block-size:auto;min-block-size:52px}
 .lesson-bottom:has(.lesson-next-action)>.button{flex:1;min-inline-size:0}
}

/* W-R9-12: Bulgarian example labels share the same centred chip as Latin. */
.search-chips>.button{display:inline-flex;align-items:center;justify-content:center}
.search-empty>section{display:grid;gap:var(--s3)}
.search-empty>section>h2{margin:0}
[data-search-form]+.meta{margin-block-start:var(--s3)}
[data-mount=global-search]:not(:empty){margin-block-start:var(--s6)}

/* W-R9c: shared goal choices and achievement baselines. */
:is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes]){display:grid;grid-template-columns:repeat(5,minmax(0,1fr));overflow:visible;grid-auto-rows:1fr}
:is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes])>button{inline-size:100%;min-inline-size:0;white-space:normal;overflow-wrap:normal;hyphens:manual;padding-inline:var(--s1)}
@media(max-width:759px){:is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes]){grid-template-columns:repeat(6,minmax(0,1fr))}:is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes])>button{grid-column:span 2}:is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes])>button:nth-of-type(n+4){grid-column:span 3}}
/* R14-11: intentional equal 3 + 2 choices in the narrow profile column. */
.profile-layout .learner-goal .segmented:has([data-setting=goalMinutes]){display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.profile-layout .learner-goal .segmented:has([data-setting=goalMinutes])>button{grid-column:span 2;inline-size:100%;min-inline-size:0;white-space:normal;padding-inline:var(--s1)}
.profile-layout .learner-goal .segmented:has([data-setting=goalMinutes])>button:nth-of-type(n+4){grid-column:span 3}
/* Enlarged text gets the same full-width profile order as the phone. */
.large-text .profile-layout{grid-template-columns:minmax(0,1fr)}
.large-text .profile-layout>.stack{display:contents}
.large-text .profile-layout [data-mount=daily-goal]{grid-row:2}
.large-text :is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes]){grid-template-columns:repeat(2,minmax(0,1fr))}
.large-text :is(.learner-goal,.settings-grid) .segmented:has([data-setting=goalMinutes])>button:nth-of-type(n){grid-column:auto}
.achievement-grid{align-items:stretch}.achievement-grid>.achievement{display:flex;flex-direction:column;align-items:center;justify-content:flex-start}.achievement-grid>.achievement>.meta{margin-block-start:auto;padding-block-start:var(--s2)}
.heatmap-legend{display:flex;align-items:center;justify-content:flex-end;gap:var(--s2)}.heatmap-ramp{display:flex;gap:var(--s1)}.heatmap-ramp>i{inline-size:12px;block-size:12px;background:var(--action);border-radius:2px;opacity:var(--heat)}

/* Reading/listening entry keeps a route home and the lesson action in flow. */
.passage-return{inline-size:100%;margin-block-end:var(--s4)}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){main[data-passage-context] .lesson-bottom{display:flex;position:static;inset:auto;transform:none;opacity:1;visibility:visible;pointer-events:auto;margin-block-start:var(--s4);padding:0;box-shadow:none;border:0}main[data-passage-context] .lesson-bottom>.button{pointer-events:auto}main[data-passage-context]:has(.lesson-bottom.is-shown){padding-block-end:var(--s6)}}

.passage-return>.i{transform:rotate(180deg)}[dir=rtl] .passage-return>.i{transform:none}

@media(max-width:759px){main[data-id="g.alphabet_reading"] .grammar-table:not(.table-stacked) th:first-child{inline-size:40%;overflow-wrap:normal;hyphens:manual}}

/* W-R10b R10-20/21: a quiet unit-test library and one browsable topic strip. */
.exam-row .button{font-size:var(--body)}
.passage-topics{flex-wrap:nowrap;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;mask-image:linear-gradient(to right,var(--strip-left,#000),#000 24px,#000 calc(100% - 24px),var(--strip-right,#000));padding-block:var(--s1)}
.passage-topics::-webkit-scrollbar{display:none}
.passage-topics>button{flex:none;max-inline-size:none;white-space:nowrap;block-size:44px}
/* R10-22: enlarged goal numbers belong below the cord, outside its artwork. */
.large-text .profile-goal-ring{inline-size:100%;block-size:auto;gap:var(--s3)}
.large-text .profile-goal-value{position:static;inset:auto;max-inline-size:100%;gap:var(--s2)}

/* W-R10b R7-20: totals read together instead of spanning the tablet. */
main[data-kind=practice] .learning-numbers{justify-content:flex-start;gap:var(--s3) var(--s6);font-size:var(--secondary)}
main[data-kind=practice] .learning-numbers>p{flex:0 1 auto;margin:0}

/* W-R10b: the SSR search owns one consistently spaced result stack. */
.search-result-groups{display:grid;gap:var(--s7)}
.search-result-groups>section{display:grid;gap:var(--s3);margin:0}
.search-result-groups h2,.search-status{margin:0}
[data-search-form] input::-webkit-search-decoration,[data-search-form] input::-webkit-search-cancel-button{-webkit-appearance:none}
[data-search-form] input{appearance:textfield}

[data-search-form] input:focus-visible{outline:none}
/* R10-27: the production phrasebook is SSR, with overlay stress ticks. */
.phrase-list .wt :lang(bg),.phrase-list .wt>a{line-height:1.35}

/* R10-22: enlarged tablet text needs reading width, including goal choices. */
@media(max-width:1099px){.large-text .profile-layout{grid-template-columns:minmax(0,1fr)}.large-text .profile-layout>.stack{display:contents}.large-text .profile-layout [data-mount=daily-goal]{grid-row:2}.large-text .profile-stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:599px){.large-text .profile-stats{grid-template-columns:minmax(0,1fr)}}

/* The profile goal lives in a narrow column even on tablets: three + two. */
html:not(.large-text) .profile-layout .segmented:has([data-setting=goalMinutes]){grid-template-columns:repeat(6,minmax(0,1fr))}
html:not(.large-text) .profile-layout .segmented:has([data-setting=goalMinutes])>button{grid-column:span 2}
html:not(.large-text) .profile-layout .segmented:has([data-setting=goalMinutes])>button:nth-of-type(n+4){grid-column:span 3}

/* P-R11-22: a determinate bar cannot be mistaken for a loading spinner. */
.lesson-state-icon.lesson-progress-track{display:block;inline-size:44px;block-size:8px;border-radius:var(--r-chip);background:var(--surfaceSunken);overflow:hidden;flex:none;align-self:center}
.lesson-progress-track>.lesson-progress-fill{display:block;block-size:100%;background:var(--action);border-radius:inherit}

/* R10-10: a bounded results placeholder while the small first pack arrives. */
.search-skeleton{display:grid;gap:var(--s3);max-inline-size:640px}
.search-skeleton>span{display:block;block-size:72px;border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surfaceSunken);animation:search-pulse 1.2s ease-in-out infinite alternate}
@keyframes search-pulse{to{opacity:.45}}
@media(prefers-reduced-motion:reduce){.search-skeleton>span{animation:none}}

/* W-R11b R10-22: achievements keep readable padding at enlarged text sizes. */
.large-text .achievement-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,9em),1fr))}
.large-text .achievement{padding:var(--s4);gap:var(--s3);text-align:center}
.large-text .achievement-symbol{flex:none}
.large-text .achievement>span:not(.achievement-symbol){max-inline-size:100%;overflow-wrap:normal;word-break:normal;hyphens:manual}

/* W-R11b R7-20: Practice totals fill two readable tiles, including tablets. */
main[data-kind=practice] .learning-numbers{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3);padding:0;border:0;background:none;font-size:var(--body)}
main[data-kind=practice] .learning-numbers>p{display:flex;align-items:center;min-block-size:72px;padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);color:var(--textPrimary);font-size:var(--body);font-weight:600}
.large-text main[data-kind=practice] .learning-numbers{grid-template-columns:repeat(auto-fit,minmax(min(100%,12em),1fr))}
/* SVG label coordinates stay inside their 24-unit badge when text grows. */
.achievement-symbol svg text{font-size:var(--achievement-svg-label)}
.large-text .achievement-symbol{inline-size:2.75em;block-size:2.75em}
.large-text .achievement-symbol :is(svg,.i){inline-size:1.8em;block-size:1.8em}

/* W-R13-2: exam filters travel with the catalogue, so cards never pass behind
   an isolated sticky pill. Relative positioning retains the sliding indicator. */
main:is([data-kind=exams],[data-kind=reading],[data-kind=listening],[data-kind=grammar]) .level-filter{position:relative;inset-block-start:auto}

/* W-BADGE2b: enlarged About copy keeps its natural height inside the card.
   The brand can take a separate line; long privacy words and links wrap. */
main[data-kind=about] .panel.stack{grid-template-columns:minmax(0,1fr);overflow-wrap:anywhere}
main[data-kind=about] .panel h2{overflow-wrap:anywhere}
.about-brand{flex-wrap:wrap}
.about-brand h2{max-inline-size:100%}
main[data-kind=about] .actions>.tertiary{max-inline-size:100%}
.large-text .about-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr))}

/* W-R15-3: each Bulgarian/Russian comparison is a single readable tile.
   Seventeen source pairs use three columns, leaving two tiles in the last row. */
.forms-pairs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3);overflow:visible;padding:0}
.forms-pair{display:flex;align-items:baseline;justify-content:center;gap:var(--s2);padding:var(--s2);border:1px solid var(--border);border-radius:var(--r-chip);background:var(--surface)}
.forms-pair>[data-glyph-form=bg]{font-size:var(--forms-glyph);color:var(--textPrimary)}
.forms-pair>[data-glyph-form=ru]{font-size:var(--body);color:var(--textSecondary);border:0;padding:0}
.forms-captions{margin:0}
/* Alphabet detail cards use the same single-tile hierarchy. */
.letterform-comparison{align-items:baseline;justify-content:space-around;gap:var(--s3);padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-chip);background:var(--surfaceSunken)}
.letterform-comparison [data-glyph-form=ru]{font-size:var(--body);color:var(--textSecondary)}

/* W-R15-15: the same due-word summary is available beside Me's word total. */
.profile-review{display:block;min-block-size:44px;max-inline-size:100%;text-decoration:underline;line-height:1.5}

/* Authored headline compounds stay whole even under emergency wrapping. */
[data-headline-compound]{min-inline-size:0;max-inline-size:100%;overflow-wrap:normal!important;word-break:normal!important}
.hero-copy,.hero-intro-copy{min-inline-size:0}

/* RD-1: first-visit editorial composition. Returning Today keeps its own layout. */
.home-editorial{--home-gap:var(--s10)}
.home-editorial>section+section{margin-block-start:var(--home-gap)}
.home-editorial .today-hero{grid-template-columns:7fr 5fr;gap:var(--s8);align-items:start}
.home-editorial .hero-copy{justify-content:start;gap:var(--s6);padding-block-start:var(--s2)}
.home-editorial .hero-copy h1{font-size:var(--home-h1);line-height:1.04;max-inline-size:9.5em;text-wrap:balance;overflow-wrap:anywhere;hyphens:none}
.home-editorial .hero-copy .lead{font-size:var(--h3);line-height:1.5;max-inline-size:36ch}
.home-editorial .hero-copy .actions{gap:var(--s3);align-items:stretch}
.home-editorial .hero-copy .actions>.button{flex:1 1 200px;min-block-size:52px;block-size:auto;white-space:normal}
.hero-shortcuts{display:grid;justify-items:start;gap:var(--s1)}
.hero-shortcuts>.tertiary{font-weight:500}
.hero-scene{position:relative;isolation:isolate;display:grid;align-content:end;min-block-size:560px;padding:240px var(--s6) var(--s6);border-radius:var(--r-sheet);background:var(--surfaceSunken)}
.hero-scene>figure{position:absolute;inset:0;z-index:-1;margin:0}
.hero-scene>figure .media{block-size:100%;max-block-size:none;aspect-ratio:auto;border-radius:var(--r-sheet)}
.hero-scene>figure img{inline-size:100%;block-size:100%;object-fit:cover;object-position:center top}
.hero-scene>figure>.credit-info{inset-block-start:var(--s3);inset-block-end:auto;inset-inline-end:var(--s3)}
.home-editorial .preview{padding:var(--s6);display:grid;align-content:start;gap:var(--s3);box-shadow:var(--lift-1)}
.home-editorial .preview h2{font-size:var(--h2);margin:0}
.home-editorial .preview .dialogue-line{margin:0;display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s1)}
.home-editorial .preview .dialogue-line>.dr,.home-editorial .preview .speaker-chip{grid-column:1;grid-row:auto}
.home-editorial .preview .dr{padding-block:var(--s1);margin:0;border:0}
.home-editorial .preview .speaker-chip{margin:0;font-size:var(--caption);min-block-size:0}
.home-editorial .preview .speaker-initial{display:none}
.home-editorial .preview .dc{display:grid;gap:var(--s1)}
.home-editorial .preview .tertiary{justify-self:start}
.home-editorial .home-stats{display:flex;flex-wrap:nowrap;overflow:visible;gap:0;margin-block-start:var(--s8);padding-block:var(--s6);border-block:1px solid var(--border)}
.home-stats>.stat{flex:1 1 0;min-inline-size:0;padding-inline:var(--s6);display:grid;align-content:start;gap:var(--s2)}
.home-stats>.stat:first-child{padding-inline-start:0}
.home-stats>.stat+.stat{border-inline-start:1px solid var(--border)}
.home-stats>.stat strong{font-size:var(--home-stat);line-height:1.1}
.home-stats>.stat span{font-size:var(--secondary);white-space:normal}
.home-editorial h2{font-size:var(--home-h2)}
.home-ladder{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s3)}
.home-level{display:grid;grid-row:span 4;grid-template-rows:subgrid;gap:var(--s4);padding-block-end:var(--s4);overflow:visible}
.home-level-photo{position:relative;display:flex;align-items:end;block-size:128px}/* owner 2026-11-12: photo top = card top on every level card (no ladder offset) */
.home-level-photo>figure{inline-size:100%;block-size:100%}
.home-level-photo .media{block-size:100%;aspect-ratio:auto;border-radius:var(--r-card) var(--r-card) 0 0}
.home-level-photo img{inline-size:100%;block-size:100%;object-fit:cover}
.home-level-photo>.level-badge{position:absolute;inset-block-end:var(--s3);inset-inline-start:var(--s3);background:var(--surface);color:var(--textPrimary);border:0;min-block-size:32px}
.home-level>:is(h3,p,.meta-row){margin-inline:var(--s4)}
.home-level h3{font-size:var(--card-title);line-height:1.25}
.home-level>p{font-size:var(--secondary);line-height:1.45}
.home-level .meta-row{align-self:end;margin-block-start:0}
.home-features{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.home-feature{display:grid;grid-row:span 5;grid-template-rows:subgrid;gap:var(--s5);padding-block-end:var(--s5);overflow:visible}
.home-feature>figure .media{aspect-ratio:16/9;border-radius:var(--r-card) var(--r-card) 0 0}
.home-feature>:not(figure){margin-inline:var(--s5)}
.home-feature>.eyebrow{display:flex;align-items:center;gap:var(--s2)}
.home-feature h2{font-size:var(--h2);line-height:1.2}
.home-feature-copy{display:grid;gap:var(--s4);align-content:start;min-inline-size:0}
.home-feature-copy>.dr{margin-block:0;padding:0;border:0;align-self:start}
.home-feature .dc{display:grid;gap:var(--s2)}
.home-feature .bg-text{font-size:var(--bg-text)}
.home-feature-action{align-self:end;display:flex}
.home-feature-action>.button{inline-size:100%;justify-content:space-between;min-block-size:52px;block-size:52px;padding-block:0;max-inline-size:100%}
.large-text .home-feature-action>.button{block-size:auto}
/* R13-9: the section title gets the phone's full line in every locale. */
@media(max-width:759px){.home-nearest-test>.section-heading{flex-wrap:wrap;gap:0}.home-editorial .home-nearest-test>.section-heading>h2{flex:1 0 100%}}

.home-editorial .home-discover{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s6)}
.home-discover>.panel{display:flex;flex-direction:column;align-items:stretch;gap:var(--s4);padding:var(--s5)}
.home-discover>.panel>.tertiary{align-self:start;margin-block-start:auto}
.home-discover>.panel>.eyebrow{margin-block-end:var(--s2)}
.home-discover .wr{padding:0;border:0;background:transparent;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s3);align-content:start}
.home-discover .wr>.rc{grid-column:1/-1;grid-row:1}
.home-discover .wr>.audio-controls{grid-column:1;grid-row:2;display:flex;flex-direction:row;align-items:center}
.home-discover .wr>.word-picture{grid-column:2;grid-row:2}
.home-discover .wr .wt{font-size:var(--hero-word)}
.home-discover .dr{padding:0;border:0}
.home-discover .dc{display:grid;gap:var(--s2)}
.home-culture-preview{display:flex;flex-direction:column;align-self:stretch}
.home-culture-preview .media{aspect-ratio:16/9}
.home-culture-preview h2{font-size:var(--h2)}
.home-culture-preview .card-body{gap:var(--s3)}
.home-library .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
.home-library .feature-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:start;gap:var(--s3);padding:var(--s5)}
.home-library .feature-copy{display:grid;gap:var(--s2)}
.home-library .feature-description{display:block;overflow:visible;-webkit-line-clamp:unset;font-size:var(--secondary)}
.home-library .feature-row>.tag{grid-column:2;justify-self:start;align-self:end}
.home-library .feature-row>.chevron{grid-column:3;grid-row:1;align-self:center}
.home-library lb-forms-tip{display:block;margin-block-start:var(--s6)}
.home-editorial .card .stretched{display:inline-block;min-block-size:44px;min-inline-size:44px}
.home-editorial a.living-word{min-block-size:44px;display:inline-block;line-height:max(44px,1.5em)}
.home-editorial figure>.credit-info{inline-size:44px;block-size:44px;min-block-size:44px;inset-inline-end:var(--s2);inset-block-end:var(--s2)}
.home-editorial figure>.credit-info:before{content:"";position:absolute;inset:-6px;border-radius:50%}
.home-editorial .hero-scene>figure>.credit-info{inset-block-start:var(--s3);inset-block-end:auto;inset-inline-end:var(--s3)}
@media(min-width:760px) and (max-width:1099px){
 .home-editorial .today-hero{gap:var(--s6);grid-template-columns:1fr 1fr}
 .home-ladder{grid-template-columns:repeat(3,minmax(0,1fr))}
 .home-features,.home-editorial .home-discover{gap:var(--s3)}
 .home-library .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}

 .home-stats>.stat{padding-inline:var(--s3)}
}
@media(max-width:759px){
 .home-editorial{--home-gap:var(--s8)}
 .home-editorial .today-hero{grid-template-columns:minmax(0,1fr);gap:var(--s7)}
 .home-editorial .hero-copy{padding:0;gap:var(--s5)}
 .home-editorial .hero-copy h1{max-inline-size:10em;line-height:1.1}
 .home-editorial .hero-copy .lead{font-size:var(--body)}
 .home-editorial .hero-copy .actions{grid-template-columns:1fr}
 .home-editorial .hero-copy .actions>.button{block-size:auto;min-block-size:52px}
 .hero-shortcuts{gap:var(--s1)}
 .hero-scene{padding:200px var(--s4) var(--s4);min-block-size:480px}
 .home-editorial .preview{padding:var(--s4);gap:var(--s2)}
 .home-editorial .preview h2{font-size:var(--h2)}
 .home-editorial .home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-block-start:var(--s7);padding-block:var(--s4);gap:var(--s5) var(--s3)}
 .home-stats>.stat{flex:1 1 28%;padding:0;min-inline-size:0;border:0!important}
 .home-stats>.stat strong{font-size:var(--home-stat)}
 .home-stats>.stat span{font-size:var(--caption)}
 .home-editorial .section-heading{align-items:center;gap:var(--s2)}
 .home-editorial .section-heading h2{font-size:var(--h2);flex:1}
 .home-editorial .section-heading>.tertiary{flex:none}
 .home-ladder{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4) var(--s3)}
 .home-level{gap:var(--s3);padding-block-end:var(--s3)}
 .home-level-photo{block-size:112px;padding-block-start:0}
 .home-level>:is(h3,p,.meta-row){margin-inline:var(--s3)}
 .home-level>p{font-size:var(--caption)}
 .home-features{grid-template-columns:minmax(0,1fr);gap:var(--s6)}
 .home-feature{grid-row:auto;grid-template-rows:auto;gap:var(--s4)}

 .home-editorial .home-discover{grid-template-columns:minmax(0,1fr);gap:var(--s5)}
 .home-library .feature-grid{grid-template-columns:minmax(0,1fr)}
 .home-library .feature-row{min-block-size:112px;padding:var(--s4)}
}

.home-editorial:lang(ar) .hero-copy h1,.home-editorial:lang(he) .hero-copy h1{line-height:1.4}
/* The first alphabet unit receives a real recommendation after hydration. */

/* Letter-shape pairs stay whole, including on the short 360px phone. */
.home-library .forms-pairs{flex-wrap:wrap;overflow:visible;padding:0}
.home-editorial .tertiary{padding-inline:var(--s2);border-radius:var(--r-chip);transition:background var(--t-hover),color var(--t-hover)}
@media(hover:hover) and (pointer:fine){.home-editorial .tertiary:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary)}}
.home-word .wt :lang(bg){line-height:1.25}
/* Arabic/Hebrew ascenders and marks fit inside the 52px action plate. */
.home-editorial:is(:lang(ar),:lang(he)) .button{line-height:1.6;padding-block:var(--s2)}
.home-editorial a.living-word{padding-inline:var(--s1);border-radius:var(--r-chip);transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}
@media(hover:hover) and (pointer:fine){.home-editorial a.living-word:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary)}}
.home-editorial a.living-word:active{background:var(--surfaceSunken);color:var(--textPrimary);transform:scale(.98)}
@media(prefers-reduced-motion:reduce){.home-editorial a.living-word:active{transform:none}}
@media(hover:hover) and (pointer:fine){
 .home-editorial .card:is(a,:has(a)):hover{background:color-mix(in srgb,var(--action) 6%,var(--surface));color:var(--textPrimary)}
}
/* Park the RTL sheen inside its own plate; a negative physical left offset
   otherwise creates scrollable overflow even when the text itself fits. */
.home-editorial:dir(rtl) .primary::after{inset:0 auto 0 0;transform:none;opacity:0}
@media(hover:hover) and (pointer:fine){.home-editorial:dir(rtl) .primary:hover::after{animation:home-rtl-sheen 600ms var(--ease-out)}}
@keyframes home-rtl-sheen{0%{opacity:0;transform:translateX(0)}15%{opacity:1}85%{opacity:1}100%{opacity:0;transform:translateX(250%)}}
@media(prefers-reduced-motion:reduce){.home-editorial:dir(rtl) .primary:hover::after{animation:none}}

/* One real link covers each feature; audio and credits retain their own targets. */
.home-feature .audio-controls{position:relative;z-index:2}
/* SCAN-1: keep the photo credit plate at 24px; its data-hit child owns 44px. */
.home-editorial figure>.credit-info{inline-size:24px;block-size:24px;min-block-size:24px}

/* RD-2: a learner's next action, daily goal and discovery in five blocks. */
.today-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);margin-block-end:var(--s6)}
.today-greeting{display:grid;gap:var(--s2);min-inline-size:0}
.today-greeting [data-today-greeting]{font-size:var(--h1);line-height:1.2;margin:0}
.today-greeting [data-today-greeting]{min-block-size:1.2em}
.today-greeting [data-greeting-translation]{min-block-size:1.5em}
.today-status{display:grid;justify-items:end;gap:var(--s2);max-inline-size:50%}
.today-streak{display:flex;align-items:center;gap:var(--s2);padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--r-chip);background:var(--surface);font-size:var(--secondary);font-weight:600}
.today-streak>.i{flex:none}
.today-dashboard .returning-grid{grid-template-columns:minmax(0,2fr) minmax(0,1fr);grid-template-areas:'next goal' 'reviews reviews' 'mix mix' 'discover discover';gap:var(--s5);align-items:start}
.today-dashboard .returning-grid>.panel{padding:var(--s6)}
.today-dashboard .returning-grid>.today-next{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);padding:0;align-self:stretch;overflow:visible}
.today-next>figure{position:relative;min-inline-size:0;margin:0;align-self:stretch;border-radius:var(--r-card) 0 0 var(--r-card);background:var(--surfaceSunken)}
.today-photo-empty{min-block-size:280px;background:var(--surfaceSunken);border-radius:var(--r-card) 0 0 var(--r-card)}
.today-next.no-photo{grid-template-columns:minmax(0,1fr)}
.today-next:dir(rtl)>figure{border-radius:0 var(--r-card) var(--r-card) 0}
.today-next picture{display:block;block-size:100%;min-block-size:280px;border-radius:inherit;overflow:hidden;background:var(--dominant,var(--surfaceSunken))}
.today-next img{display:block;inline-size:100%;block-size:100%;object-fit:cover;transition:transform 400ms var(--ease-out)}
.today-next .credit-info{inline-size:24px;block-size:24px;min-block-size:24px;inset-block-end:var(--s3);inset-inline-end:var(--s3)}
.today-next-copy{display:flex;flex-direction:column;align-items:start;justify-content:center;min-inline-size:0;gap:var(--s4);padding:var(--s6)}
.today-next-copy h2{font-size:var(--today-lesson-title);line-height:1.2;hyphens:manual;overflow-wrap:normal;text-wrap:balance}
.today-next-copy h2{min-block-size:1.2em}
.today-next-meta{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2) var(--s3);font-size:var(--secondary);color:var(--textSecondary)}
.today-next-meta{min-block-size:1.5em}
.today-next-copy .progress-track{inline-size:100%;block-size:6px;margin:0}
.today-next-copy>.button{min-inline-size:180px;max-inline-size:100%;block-size:auto;min-block-size:52px;white-space:normal}
.today-other-lessons{border-block-start:1px solid var(--border);padding-block-start:var(--s3);display:grid;gap:var(--s2);inline-size:100%}
.today-other-lessons h3{font-size:var(--secondary);font-family:var(--font-body)}
.today-other-lessons .tertiary{justify-self:start}
.today-dashboard .today-goal{display:grid;justify-items:center;align-self:stretch;align-content:center;gap:var(--s4);text-align:center}
.today-goal h2{font-size:var(--h3);margin:0}
.today-goal .cord-link{position:relative;display:grid;place-items:center;inline-size:120px;block-size:120px;border-radius:50%;flex:none;transition:background var(--t-hover),transform var(--t-press)}
.today-goal .martenitsa-cord{grid-area:1/1}
.today-goal-value{grid-area:1/1;display:grid;justify-items:center;gap:var(--s1);max-inline-size:80px;pointer-events:none}
.today-goal-value strong{font:900 var(--numeric)/1 var(--font-display);font-variant-numeric:tabular-nums}
.today-goal-value>span{font-size:var(--eyebrow);color:var(--textSecondary);line-height:1.3}
.today-goal [data-goal-caption]{font-size:var(--secondary)}
.today-reviews{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3);min-inline-size:0}
.today-review-pill{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s4);min-block-size:44px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-chip);font-size:var(--secondary);color:var(--textSecondary)}
.today-review-pill>.i{flex:none;inline-size:20px;block-size:20px}
.today-reviews.has-due{display:flex;padding:var(--s4) var(--s6);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.today-review-copy{display:grid;gap:var(--s1);flex:1;min-inline-size:0}
.today-review-copy h2{font-size:var(--h3)}
.today-review-copy p{font-size:var(--secondary);color:var(--textSecondary)}
.today-dashboard .today-mix{display:grid;grid-template-columns:44px minmax(0,1fr) auto auto;align-items:center;gap:var(--s4)}
.today-mix-copy{display:grid;gap:var(--s2);min-inline-size:0}
.today-mix h2{font-size:var(--h2)}
.today-mix p{font-size:var(--secondary)}
.today-mix>.tag{display:inline-flex;align-items:center;gap:var(--s2);white-space:nowrap}
.today-mix>.button{min-inline-size:160px}
.today-dashboard .today-discover{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--s6);align-items:start}
.today-word,.today-dashboard .today-culture{display:grid;align-content:start;gap:var(--s3);padding:0;margin:0;border:0;min-inline-size:0}
.today-dashboard .today-culture{border-inline-start:1px solid var(--border);padding-inline-start:var(--s6)}
.today-culture h2{font-size:var(--h2)}
.today-culture>.tertiary{justify-self:start}
.today-word .wr{margin:0;padding:0;border:0;display:flex;flex-wrap:wrap;align-items:center;gap:var(--s3)}
.today-word .wt{font:800 var(--today-lesson-title)/1.3 var(--font-display)}
.today-word>.icon-button{justify-self:start}
.today-word .audio-controls{margin:0}
.today-dashboard .tertiary{padding-inline:var(--s2);border-radius:var(--r-chip);transition:background var(--t-hover),color var(--t-hover),transform var(--t-press)}
@media(hover:hover) and (pointer:fine){
 .today-dashboard .tertiary:hover,.today-goal .cord-link:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));color:var(--textPrimary)}
 .today-next:hover img{transform:scale(1.03)}
}
.today-dashboard .tertiary:active,.today-goal .cord-link:active{background:var(--surfaceSunken);color:var(--textPrimary);transform:scale(.98)}
@media(max-width:759px){
 .today-heading{align-items:start;flex-direction:column;gap:var(--s3);margin-block-end:var(--s4)}
 .today-status{justify-items:start;max-inline-size:100%}
 .today-streak{padding:var(--s2) var(--s3);font-size:var(--caption)}
 .today-dashboard .returning-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'next' 'reviews' 'goal' 'mix' 'discover';gap:var(--s4)}
 .today-dashboard .returning-grid>.panel{padding:var(--s4)}
 .today-dashboard .returning-grid>.today-next{grid-template-columns:minmax(0,1fr);padding:0}
 .today-next>figure,.today-next:dir(rtl)>figure{border-radius:var(--r-card) var(--r-card) 0 0}
 .today-next picture{min-block-size:0;block-size:clamp(96px,16vh,144px)}
 .today-photo-empty{min-block-size:0;block-size:clamp(96px,16vh,144px);border-radius:var(--r-card) var(--r-card) 0 0}
 .today-next-copy{padding:var(--s4);gap:var(--s3)}
 .today-next-copy>.button{inline-size:100%}
 .today-next-meta{font-size:var(--caption)}
 .today-dashboard .today-goal{grid-template-columns:120px minmax(0,1fr);justify-items:start;text-align:start;gap:var(--s2) var(--s4);align-items:center}
 .today-goal .cord-link{grid-column:1;grid-row:1/3}
 .today-goal h2{grid-column:2;align-self:end}
 .today-goal [data-goal-caption]{grid-column:2;align-self:start}
 .today-dashboard .today-mix{grid-template-columns:44px minmax(0,1fr);gap:var(--s3)}
 .today-mix-copy{grid-column:2}
 .today-mix>.tag{grid-column:1/3;grid-row:2;justify-self:start}
 .today-mix>.button{grid-column:1/3;inline-size:100%}
 .today-dashboard .today-discover{grid-template-columns:minmax(0,1fr);gap:var(--s5)}
 .today-dashboard .today-culture{border-inline-start:0;padding-inline-start:0;border-block-start:1px solid var(--border);padding-block-start:var(--s5)}
 .today-reviews.has-due{padding:var(--s4);align-items:start;flex-wrap:wrap}
}
.today-dashboard:dir(rtl) .primary::after{inset:0 auto 0 0;transform:none;opacity:0}
@media(hover:hover) and (pointer:fine){.today-dashboard:dir(rtl) .primary:hover::after{animation:home-rtl-sheen 600ms var(--ease-out)}}
@media(prefers-reduced-motion:reduce){
 .today-dashboard .tertiary:active,.today-goal .cord-link:active,.today-next:hover img{transform:none}
 .today-dashboard:dir(rtl) .primary:hover::after{animation:none}
}

.today-word-actions{display:flex;align-items:center;justify-content:space-between;gap:var(--s3)}
/* Keep the next action on the short phone: translation and streak share a row. */
@media(max-width:759px){
 .today-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2) var(--s3);align-items:center}
 .today-greeting,.today-status{display:contents}
 .today-greeting>.eyebrow,.today-greeting>[data-today-greeting]{grid-column:1/-1}
 .today-greeting>[data-greeting-translation]{grid-column:1;grid-row:3}
 .today-streak{grid-column:2;grid-row:3}
 .today-status>[data-plan-status]{grid-column:1/-1}
}
@media(hover:hover) and (pointer:fine){
 .today-dashboard .tertiary:hover .chevron{translate:3px 0!important}
 .today-dashboard:dir(rtl) .tertiary:hover .chevron{translate:-3px 0!important}
}
@media(prefers-reduced-motion:reduce){.today-dashboard .tertiary .chevron{translate:none!important}}
.today-goal .cord-link{text-decoration:none;color:var(--textPrimary)}
/* Photo controls keep an opaque paired surface in every state. */
@media(hover:hover) and (pointer:fine){.today-next .credit-info:hover{background:var(--action);color:var(--onAction);border-color:var(--action)}}
.today-next .credit-info:active{background:var(--actionPressed);color:var(--onAction);border-color:var(--actionPressed)}

/* MOTION-H / CQA-01: the SSR hero is already discoverable and sized. Its
   paint must never depend on enhancement or on completion of the launch. */
.js .hero-scene>.unit-cover .media img{opacity:1;transform:none;transition:none}

/* DQA-R2-W: the first-view photo has a bounded desktop composition. */
@media(min-width:760px){.hero-scene{block-size:560px;min-block-size:560px;padding-block-start:var(--s6)}.hero-scene>figure img{object-position:50% 30%}}
/* On phones the six editorial sections keep their content in touch strips. */
@media(max-width:759px){
 .home-editorial>.home-course{display:none}
 .home-editorial .home-features{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-template-rows:repeat(5,auto);grid-auto-columns:88%;overflow-x:auto;scroll-snap-type:x mandatory;padding:var(--s1);gap:var(--s4);scrollbar-width:none}
 .home-features>.home-feature{grid-row:span 5;grid-template-rows:subgrid;scroll-snap-align:start}
 .home-editorial .home-discover{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:88%;overflow-x:auto;scroll-snap-type:x mandatory;gap:var(--s4);padding:var(--s1);scrollbar-width:none}
 .home-discover>*{scroll-snap-align:start}
 .home-library .feature-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2)}
 .home-library .feature-row{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--s2);padding:var(--s3) var(--s2);min-block-size:112px}
 .home-library .feature-copy strong{font-size:var(--nav-size);line-height:1.4}
 .home-library .feature-description,.home-library .feature-row>.tag,.home-library .feature-row>.chevron{display:none}
}

/* Long compound labels stay inside the compact phone library tiles. */
.home-editorial .section-heading{align-items:baseline;justify-content:space-between}
.home-editorial .section-heading>.tertiary{margin-inline-start:auto}
@media(max-width:759px){.home-library .feature-copy{min-inline-size:0;max-inline-size:100%}.home-library .feature-copy strong{overflow-wrap:anywhere;hyphens:manual}}

/* The tip's own sunken surface needs its own paired hover tint. */
@media(hover:hover) and (pointer:fine){.home-editorial .forms-tip .tertiary:hover{background:color-mix(in srgb,var(--action) 10%,var(--surfaceSunken));color:var(--textPrimary)}}
/* SEO-1: wrapped Arabic/Hebrew search headings need room for their marks. */
html:is([lang=ar],[lang=he]) .home-editorial .hero-copy h1{font-family:var(--font-system);line-height:1.4;letter-spacing:0}

html[lang=de] :is(.home-library,.course-library) .feature-copy strong{hyphens:auto;overflow-wrap:normal;word-break:normal}
html[lang=de] :is(.level-can,.home-level-step h3){white-space:normal;text-wrap:balance}

/* Enlarged level descriptions need a complete card, rather than a narrow
   subgrid whose intrinsic text width escapes the phone viewport. */
.home-level>*{min-inline-size:0}
html[lang=de] .home-level h3{hyphens:auto;overflow-wrap:normal}
@media(max-width:759px){.large-text .home-ladder{grid-template-columns:minmax(0,1fr)}}

/* A real returning lesson can have a longer title than the first lesson. */
.large-text .today-next-copy h2{hyphens:auto;overflow-wrap:break-word}

/* Long level names wrap inside the actual link, including single words at 360px.
   Keep the full title and card hit area without discretionary text characters. */
.home-level h3 .stretched{max-inline-size:100%;overflow-wrap:anywhere;hyphens:none}

/* R4-28: one next lesson, a conditional review row, a quiet daily goal. */
.today-dashboard .returning-grid{display:grid;grid-template-columns:minmax(0,1fr);grid-template-areas:'next' 'reviews' 'goal' 'discover';gap:var(--s4)}
.today-dashboard .today-next{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.today-dashboard .today-goal-line{grid-area:goal;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--s2) var(--s4);padding-block:var(--s2);border-block:1px solid var(--border)}
.today-goal-line .today-streak{margin:0;padding:0;background:transparent;border:0;font-size:var(--secondary)}
.today-dashboard .today-discover{margin-block-start:var(--s4)}
.today-heading{margin-block-end:var(--s4)}
@media(max-width:759px){
 .today-dashboard .today-next{grid-template-columns:minmax(0,1fr)}
 .today-goal-line .tertiary{font-size:var(--secondary)}
 .today-dashboard .today-goal-line{gap:var(--s1) var(--s3)}
}
/* A hidden review must not reserve an empty grid row and two section gaps. */
.today-dashboard .returning-grid:has(>.today-reviews[hidden]){grid-template-areas:'next' 'goal' 'discover'}
.today-dashboard .returning-grid>.today-next.no-photo{grid-template-columns:minmax(0,1fr);padding:var(--s5)}

/* W-FIX-1: enlarged dialogue owns its height from the first paint. A fixed
   photo height bottom-aligns tall copy above the photo, beneath the header.
   Keep the reserved audio column identical before and after enhancement. */
.large-text .home-editorial .preview .dr{display:grid;grid-template-columns:minmax(0,1fr) 44px;align-items:start}
.large-text .home-editorial .preview .dr>.dc{grid-column:1;grid-row:1}
.large-text .home-editorial .preview .dr::after,.large-text .home-editorial .preview .dr>.audio-controls{grid-column:2;grid-row:1}
.large-text .home-editorial .hero-copy .button>.i{min-inline-size:24px}
@media(min-width:760px){.large-text .home-editorial .hero-scene{block-size:auto;min-block-size:560px;align-content:start}}

/* W-R5b: discovery cards retain their own height; Bulgarian stays aligned with RTL copy. */
.home-editorial .home-discover{align-items:start}
[dir=rtl] .today-greeting [data-today-greeting]{text-align:right}

/* First-paint review flags reserve the same real row the store will fill. */
.today-reviews:not(.has-due){display:none}
html[data-has-due] .today-reviews:not([data-ready]){display:flex;padding:var(--s4) var(--s6);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.today-word>.wr{min-block-size:64px}
.today-word>.wr+p{min-block-size:2lh}
@media(max-width:759px){html[data-has-due] .today-reviews:not([data-ready]){padding:var(--s4)}}
html:not([data-has-due]) .today-dashboard .returning-grid:has(>.today-reviews:not([data-ready])){grid-template-areas:'next' 'goal' 'discover'}

/* Real photo-credit controls keep the shared 44px geometry in the editorial shell too. */
.home-editorial figure>.icon-button.credit-info,.today-next .icon-button.credit-info{inline-size:44px;block-size:44px;min-block-size:44px}

/* W-R6b: enlarged section actions wrap as complete links below the title. */
.large-text .section-heading{flex-wrap:wrap}

/* W-R7b: the returning card's final copy includes a 52px alphabet action.
   Its old 280px photo placeholder was 33.6px shorter than that copy, moving
   the goal and discovery rows when the store arrived. Reserve the complete
   one-line title/meta composition at the same breakpoint as the photo row. */
@media(min-width:760px){
 .today-next-copy{min-block-size:calc(var(--s6)*2 + var(--eyebrow)*1.5 + var(--today-lesson-title)*1.2 + var(--secondary)*1.5 + 6px + 104px + var(--s4)*5)}
}
@media(max-width:759px){
 .today-next-copy{min-block-size:calc(var(--s4)*2 + var(--eyebrow)*1.5 + var(--today-lesson-title)*1.2 + var(--caption)*1.5 + 6px + 104px + var(--s3)*5)}
}

/* H-MOUNT: one real starter path in the W-HERO first-steps slot. */
.home-first-steps{display:grid;gap:var(--s3);margin-block-start:var(--s4)}
.home-editorial .home-first-steps h2{font-size:var(--h3)}
.home-first-steps ol{list-style:none;display:grid;gap:var(--s2);padding:0;margin:0}
.home-first-steps li{margin:0}
.home-first-steps a{display:flex;align-items:start;gap:var(--s3);min-block-size:44px;padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);text-decoration:none;transition:background var(--t-hover),border-color var(--t-hover),transform var(--t-press)}
.home-first-steps a:hover{background:var(--surfaceSunken);border-color:var(--action)}
.home-first-steps a:active{transform:scale(.98)}
.first-step-copy{display:grid;gap:var(--s1);flex:1;min-inline-size:0}
.first-step-copy strong{font-size:var(--secondary);line-height:1.25;min-inline-size:0;overflow-wrap:break-word}
.first-step-goal{font-size:var(--caption);line-height:1.4;color:var(--textSecondary)}
.home-first-steps .lesson-number{flex:none}
.home-first-steps .i-chevron{margin-block-start:var(--s1);flex:none}
@media(prefers-reduced-motion:reduce){.home-first-steps a:active{transform:none}}

/* W-HERO: one shared grid, with a useful path or the learner's live position. */
.home-new-content>section+section{margin-block-start:var(--home-gap)}
.home-editorial .today-hero{align-items:stretch}
.home-editorial .hero-copy{gap:var(--s4);padding-block-start:0}
.hero-intro-copy{display:grid;gap:var(--s4)}
.hero-learning-slot{display:grid;flex:1;min-block-size:0}
.hero-learning-slot>.first-visit{display:flex;flex-direction:column}
.hero-learning-slot .home-first-steps{display:flex;flex-direction:column;flex:1;margin:0;gap:var(--s3)}
.home-first-steps ol{flex:1;grid-auto-rows:1fr}
.home-first-steps li{display:flex}
.home-first-steps a{inline-size:100%;align-items:center}
.first-step-heading{display:flex;align-items:baseline;flex-wrap:wrap;gap:var(--s1) var(--s2)}
.first-step-start{font-size:var(--eyebrow);font-weight:600;color:var(--textSecondary)}
.home-editorial .hero-scene{block-size:auto;min-block-size:560px}
.hero-copy>.today-heading{margin:0;grid-template-columns:minmax(0,1fr)}
.hero-copy .today-greeting{min-inline-size:0}
.hero-copy .today-greeting :is(h1,h2){max-inline-size:none;font-size:var(--home-h1);overflow-wrap:break-word}
html[data-returning] .hero-resume{display:flex;flex-direction:column;justify-content:space-between;gap:var(--s3)}
.hero-resume{padding:var(--s5);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.hero-resume .today-next-copy{padding:0;min-block-size:0;gap:var(--s3);align-items:stretch}
.hero-resume .today-next-copy h2{font-size:var(--h2);min-block-size:0;overflow-wrap:break-word}
.hero-resume .today-next-meta{display:grid;gap:var(--s1)}
.hero-resume .today-streak{display:flex;align-items:center;gap:var(--s2);margin:0;padding:0;border:0;background:transparent;font-size:var(--caption)}
.hero-review-link,.hero-goal-link{display:flex;align-items:center;gap:var(--s3);min-block-size:44px;padding:var(--s2);border-radius:var(--r-tile);text-decoration:none;transition:background var(--t-hover),transform var(--t-press)}
.hero-review-link{border-block:1px solid var(--border)}
.hero-review-link>.i,.hero-goal-link>.i{margin-inline-start:auto;flex:none}
.hero-review-link:hover,.hero-goal-link:hover{background:var(--surfaceSunken)}
.hero-review-link:active,.hero-goal-link:active{background:var(--surfaceSunken);transform:scale(.98)}
.hero-goal-link>span:nth-child(2){display:grid;gap:var(--s1)}
.hero-goal .cord{display:block;inline-size:64px;block-size:64px;margin:0}
[data-hero-goal-ring]{flex:none}
@media(max-width:759px){
 .home-editorial .today-hero{gap:var(--s5)}
 .home-editorial .hero-copy{display:contents}
 .hero-intro-copy,.hero-copy>.today-heading,.hero-learning-slot,.hero-scene{grid-column:1}
 .hero-intro-copy,.hero-copy>.today-heading{grid-row:1}
 .hero-scene{grid-row:2}
 .hero-learning-slot{grid-row:3}
 .home-editorial .hero-scene{min-block-size:480px}
 .home-first-steps a{padding:var(--s2);gap:var(--s2)}
 .home-first-steps .first-step-goal{line-height:1.35}
 .hero-resume{padding:var(--s4)}
 .hero-resume .today-streak{display:none}
 .hero-resume .today-next-copy>.button{min-inline-size:0}
}
@media(prefers-reduced-motion:reduce){.hero-review-link:active,.hero-goal-link:active{transform:none}}

.hero-review-link:dir(rtl)>.i{transform:scaleX(-1)}
.hero-copy>.today-heading.returning-visit{display:none}
html[data-returning] .hero-copy>.today-heading.returning-visit{display:block}
.home-editorial .hero-copy .today-greeting [data-today-greeting]{font-family:var(--font-display);line-height:1.3;min-block-size:1.3em}
.today-dashboard>.additional-lessons:not([hidden]){margin-block-start:var(--s6)}

/* H-R9: returning Today is a study dashboard with one named lesson action. */
html[data-returning] .home-editorial .hero-scene{display:none}
html[data-returning] .home-editorial .today-hero{grid-template-columns:minmax(0,1fr)}
html[data-returning] .hero-copy{display:flex}
html[data-returning] .hero-learning-slot{grid-row:auto}
html[data-returning] .hero-resume{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--s4) var(--s6);align-items:start}
html[data-returning] .hero-next{grid-column:1;grid-row:1 / span 3}
html[data-returning] .hero-review,html[data-returning] .hero-goal,html[data-returning] .hero-resume .today-streak{grid-column:2}
html[data-returning] .today-dashboard{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--s5);margin-block-start:var(--s5)}
.today-dashboard>.today-discover{grid-area:auto;margin-block-start:0}
.today-dashboard>.additional-lessons:not([hidden]){margin-block:0}
.today-course{display:grid;gap:var(--s3)}
.today-course [data-today-upcoming]{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.today-course .row-link{min-inline-size:0;align-items:center;padding:var(--s3);border:1px solid var(--border);border-radius:var(--r-tile)}
.today-course .rc{display:grid;gap:var(--s2);min-inline-size:0}
.today-course strong{overflow-wrap:break-word}
.today-daily-mix{min-block-size:88px;padding:var(--s5)}
@media(max-width:759px){
 html[data-returning] .hero-resume{grid-template-columns:minmax(0,1fr)}
 html[data-returning] .hero-next,html[data-returning] .hero-review,html[data-returning] .hero-goal{grid-column:1;grid-row:auto}
 .today-course [data-today-upcoming]{grid-template-columns:minmax(0,1fr)}
}

.hero-phone-resume{display:none}
@media(max-width:759px){.hero-phone-resume{display:flex;inline-size:100%;margin-block-start:var(--s4);min-block-size:52px;block-size:auto;white-space:normal}}

/* W-R9-17: at enlarged text, audio has a full row inside the dialogue card. */
.large-text .home-editorial .preview .dr{grid-template-columns:minmax(0,1fr);gap:var(--s2)}
.large-text .home-editorial .preview .dc{min-inline-size:0}
.large-text .home-editorial .preview .dr::after,.large-text .home-editorial .preview .dr>.audio-controls{grid-column:1;grid-row:2;justify-self:start;max-inline-size:100%}

/* W-R9c: enlarged numbers keep whole columns and never collide. */
.large-text .home-editorial .home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5)}
.large-text .home-stats>.stat{padding:0;border:0}
@media(max-width:759px){.large-text .home-editorial .home-stats{grid-template-columns:minmax(0,1fr)}}

/* W-R12-14: five facts use the readable 3 + 2 rhythm on portrait tablets. */
@media(min-width:760px) and (max-width:899px){
 .home-editorial .home-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s5) var(--s3)}
 .home-stats>.stat{padding:0;border:0}
 .home-stats>.stat+.stat{border:0}
 .home-stats>.stat span{font-size:var(--caption)}
}

/* H-R15: rate-label font loading must not move the Today controls. */
.home-discover .audio-control.slow{inline-size:calc(2.5em + var(--s6))}

/* W-R15-4: full reading width at the narrowest phone size. */
@media(max-width:379px){.home-ladder{grid-template-columns:minmax(0,1fr)}}
.home-level h3{overflow-wrap:normal;word-break:normal;hyphens:manual}

/* W-R15-16 / R13-9: the exam collection link belongs to its heading. */
@media(max-width:759px){.home-editorial .home-nearest-test>.section-heading{flex-wrap:nowrap;gap:var(--s2)}.home-editorial .home-nearest-test>.section-heading>h2{flex:1 1 auto;min-inline-size:0}.home-nearest-test>.section-heading>.tertiary{margin-block:0;white-space:nowrap}}

/* H-R9b: one full Today path for new and returning learners. */
.home-editorial .home-features{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-editorial .home-discover{grid-template-columns:repeat(2,minmax(0,1fr))}
.home-new-content{margin-block-start:var(--home-gap)}

.today-unit-path ol{grid-template-columns:repeat(3,minmax(0,1fr))}
.today-unit-path a[aria-current=step]{border-color:var(--action);background:var(--surfaceSunken)}
.today-unit-path li[data-status=done] .i-check-circle{color:var(--correct);flex:none}
.home-nearest-test .today-test{display:grid;gap:var(--s4);padding:var(--s6)}
.today-test .eyebrow{display:flex;align-items:center;gap:var(--s2)}
.today-test .button{justify-self:start}
.home-explore .home-culture-preview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.home-explore .home-culture-preview figure .media{block-size:100%;aspect-ratio:16/9}
.home-explore .card-body{justify-content:center;padding:var(--s6)}
.home-editorial .today-dashboard:empty{display:none}
html[data-returning] .today-dashboard{margin:0}
html[data-returning] .hero-copy .today-heading{margin:0}
html[data-returning] .today-unit-path{display:grid;gap:var(--s3)}
[data-hero-goal-ring] .cord-label{font-size:var(--goal-svg-label);font-weight:700}
@media(max-width:759px){
 .today-unit-path ol{grid-template-columns:minmax(0,1fr)}
 .home-explore .home-culture-preview{grid-template-columns:minmax(0,1fr)}
 .home-explore .card-body,.home-nearest-test .today-test{padding:var(--s4)}
 .home-editorial .home-features,.home-editorial .home-discover{grid-template-columns:none}
}

html:not([data-returning]) .today-unit-path{display:none}

.home-editorial{--home-gap:var(--s7)}
.today-unit-path>.section-heading>.tertiary{inline-size:auto;padding:var(--s2);border:0;background:transparent}
.today-unit-path>.section-heading>.tertiary:hover{background:var(--surfaceSunken)}
[data-today-greeting]{min-block-size:1.3em}
[data-greeting-translation]{min-block-size:1.5em}
@media(max-width:759px){.home-editorial{--home-gap:var(--s6)}}

/* Reserve the live dashboard's first-paint geometry while IndexedDB opens. */
@media(min-width:760px){
 html[data-returning] .hero-resume{min-block-size:248px}
 .hero-next .today-next-copy{block-size:100%;justify-content:space-between}
 .today-unit-path li>a{min-block-size:72px}
 .today-unit-path ol:empty{min-block-size:152px}
}

/* W-R10b R10-24: full-width test action. */
.today-test .button{justify-self:stretch;inline-size:100%;font-size:var(--body)}

/* W-R11-4: enlarge the ring with text, keeping its SVG coordinates stable. */
.hero-goal :is(.cord,.martenitsa-cord){inline-size:4.5em;block-size:4.5em}
.today-unit-path .lesson-number{inline-size:2em;min-inline-size:2em;block-size:2em;line-height:1}
.today-unit-path a{padding:var(--s4)}
.large-text .hero-goal-link{display:grid;grid-template-columns:minmax(0,1fr) auto}
.large-text [data-hero-goal-ring]{grid-column:1/-1;justify-self:center}

/* R11-4 enlarged tablet content reflows before photos or figures can widen it. */
.large-text .home-editorial .home-stats{grid-template-columns:repeat(auto-fit,minmax(min(100%,9em),1fr))}
.large-text .home-explore .home-culture-preview{grid-template-columns:minmax(0,1fr)}
.large-text .home-explore .home-culture-preview figure .media{inline-size:100%;block-size:auto;aspect-ratio:16/9;max-block-size:360px}

.large-text .today-unit-path ol{grid-template-columns:repeat(auto-fit,minmax(min(100%,10em),1fr))}

/* W-R11b P3-32: tablet next steps have room for names and their metadata. */
@media(min-width:760px) and (max-width:899px){
 .today-unit-path ol{grid-template-columns:repeat(2,minmax(0,1fr))}
 .hero-goal-link strong{white-space:nowrap}
 html:not(.large-text) .hero-goal :is(.cord,.martenitsa-cord){inline-size:3.5em;block-size:3.5em}
}

/* W-R12-12: completed lessons are one quiet link before the forward path. */
.today-unit-path>.today-completed{justify-self:stretch;inline-size:100%;min-block-size:52px;padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);gap:var(--s3);justify-content:space-between;margin:0}
.today-unit-path>.today-completed:hover{background:var(--surfaceSunken)}
.today-unit-path ol:has(>li:only-child){grid-template-columns:minmax(0,1fr)}

/* Stable dashboard tracks while the optional review link loads or stays hidden. */
@media(min-width:760px){
 html[data-returning] .hero-goal{grid-row:1}
 html[data-returning] .hero-resume .today-streak{grid-row:2}
 html[data-returning] .hero-review{grid-row:3}
}

/* H-TODAY: visible, neutral loading geometry; no invented lesson or empty ring. */
.today-fallback{display:none}
[data-hero-goal-ring]{position:relative}
.today-goal-value{position:absolute;inset:0;display:grid;place-items:center;font-weight:700}
main:not([data-today-ready]) .hero-next,main:not([data-today-ready]) .hero-goal,main:not([data-today-ready]) .hero-review,main:not([data-today-ready]) .today-streak,main:not([data-today-ready]) [data-today-course]{display:none}
main:not([data-today-ready]) .today-fallback{display:flex;grid-column:1/-1}

main:not([data-today-ready]) .hero-resume{min-block-size:0}

.today-review-secondary{display:flex;align-items:center;gap:var(--s3);min-block-size:52px;color:var(--textPrimary);padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--r-button);text-decoration:none}
.today-review-secondary:hover{background:var(--surfaceSunken);border-color:var(--action)}
.today-review-secondary:active{transform:scale(.98)}
.today-review-secondary span{flex:1}
.hero-review-link{padding-inline:var(--s4)}
.today-unit-path ol:empty{display:none}

/* R14-14: preserve the compact completed/upcoming track. */
.today-unit-path{align-content:start;grid-auto-rows:max-content}

/* DQA3-L: the SSR hub keeps its layout while practice.css loads.
   Keep this critical subset aligned with the standalone practice styles. */
.pr-hub[data-mount=practice-hub]{max-inline-size:100%;padding:0;min-inline-size:0}
.pr-hub .pr-hub-head{margin-block-end:var(--s6)}
.pr-hub .pr-hub-head h1{margin:0;font:900 var(--h1)/1.12 var(--font-display);text-wrap:balance}
.pr-hub .pr-hub-head p{margin:0}
.pr-hub>.pr-grid{display:grid;grid-template-columns:repeat(3,minmax(min(100%,280px),1fr));grid-auto-rows:1fr;gap:var(--s3)}
.pr-hub .pr-tile{display:grid;grid-template-columns:24px minmax(min-content,1fr) auto;grid-template-rows:auto 1fr auto;align-items:start;gap:var(--s3);min-block-size:200px;inline-size:100%;block-size:auto;padding:var(--s5);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);color:var(--textPrimary);text-align:start;text-decoration:none;white-space:normal;overflow-wrap:break-word;word-break:normal;hyphens:manual}
.pr-hub .pr-tile-text{display:grid;grid-column:2/-1;grid-row:1/3;align-content:start;gap:var(--s2);min-inline-size:min-content}
.pr-hub .pr-tile-text strong{font-size:var(--card-title)}
.pr-hub .pr-tile-text :is(.muted,.p-muted){font-size:var(--caption);font-weight:400;line-height:1.4}
.pr-hub .pr-tile-action{display:flex;grid-column:1/3;grid-row:3;justify-self:start;align-items:center;min-block-size:44px;padding-inline:var(--s4);border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);border-radius:var(--r-button);font-size:var(--secondary);font-weight:600}
.pr-hub .pr-tile:not(:has(.pr-tile-text)){grid-template-columns:minmax(min-content,1fr);grid-template-rows:auto;min-block-size:88px;align-content:center;justify-items:start;font-size:var(--card-title)}
@media(max-width:1023px){.pr-hub>.pr-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}}
@media(max-width:759px){
 .pr-hub>.pr-grid{grid-auto-rows:auto;gap:var(--s2)}
 .pr-hub .pr-tile{display:flex;align-items:center;min-block-size:72px;padding:var(--s3)}
 .pr-hub .pr-tile-text{flex:1 1 auto;gap:var(--s1)}
 .pr-hub .pr-tile-text strong{font-size:var(--secondary)}
 .pr-hub .pr-tile-text :is(strong,.muted,.p-muted){white-space:normal;overflow:visible;text-overflow:clip}
 .pr-hub .pr-tile-action{display:none}
 .pr-hub .pr-tile:not(:has(.pr-tile-text)){display:grid;font-size:var(--secondary)}
}
@media(max-width:559px){.pr-hub>.pr-grid{grid-template-columns:minmax(0,1fr)}}


/* W owns shell focus and route loading; P owns stage/exercise styling. */
html.player-open,html:has(:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])),html.player-open body,:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client]){height:100%;overflow:hidden;scrollbar-gutter:auto}
html.player-open body,:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client]){min-block-size:0}
:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])>.topbar,:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])>.collection,
body.p-focus>.topbar,body.p-focus>.collection{opacity:0;pointer-events:none;visibility:hidden;transition:opacity 160ms var(--ease-out),visibility 160ms}
:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])>.topbar,body.p-focus>.topbar{position:fixed}
:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])>main,body.p-focus>main{padding:0;margin:0;max-inline-size:none;block-size:100dvh;min-block-size:0;overflow:hidden;outline:0}
:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])>main>.breadcrumbs,body.p-focus>main>.breadcrumbs,
:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client]) .play-banner,body.p-focus .play-banner{display:none}
.p-player.p-route-error{display:flex;flex-direction:column;justify-content:center;gap:var(--s4);padding:var(--s5)}
.menu-panel:has(.p-stack){max-inline-size:min(680px,calc(100vw - 32px))}
.menu-panel>.p-stack{padding:var(--s3);overflow-y:auto;min-block-size:0}
@media(max-width:759px){.menu-panel:has(.p-stack){max-inline-size:none}}
@media(prefers-reduced-motion:reduce){body.p-focus>.topbar,body.p-focus>.collection{transition:none}}
/* The shell's responsive inline-size rule otherwise collapses flex pictures. */
.p-option-picture{inline-size:64px;flex:none}
.p-option-picture img{inline-size:64px;block-size:64px;max-inline-size:none}
/* Preserve the typing board's geometry when its letter controls lock. */
.p-focus .p-typing:has(.p-input:disabled) :is(.p-letter-strip,.p-quiet):not([hidden]){display:flex;visibility:hidden;pointer-events:none}
.p-typing>.p-answers{position:relative;padding-block-end:64px}
.p-typing .p-answer-diff{position:absolute;inset-inline:0;inset-block-end:0;max-block-size:56px;overflow:auto}
.p-focus .p-primary:disabled{background:var(--action);color:var(--onAction)}

/* Shared display tick geometry, including the P stylesheet loaded on demand. */
html.player-open .p-focus .sv::after{inline-size:max(2px,.055em);block-size:.3em;inset-block-end:calc(var(--xh,.49em) + .05em);margin-block-end:.3em;inset-block-start:auto;left:50%;transform:translateX(-50%) skewX(-18deg)}
.wr{position:relative}.wr>.word-picture{order:3;margin-inline-start:auto}.wr>.rc{flex:1;min-inline-size:0}

@media(max-width:759px){.wr,.word-tiles .wr{grid-template-columns:minmax(0,1fr) auto}.wr>.rc{grid-column:1;grid-row:1}.wr>.word-picture{grid-column:2;grid-row:1}.wr>.audio-controls,.word-tiles .wr>.audio-controls{grid-column:1;grid-row:2}.wr>.word-note{grid-column:1/-1}}

/* The cold route reserves the same header/stage/action geometry as the player. */
.p-player[aria-busy=true]>.p-loading{display:grid;grid-template-rows:auto minmax(0,1fr) auto;block-size:100%;padding:0;gap:0}
.p-skeleton-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s4);min-block-size:64px}
.p-skeleton-head>span{block-size:32px;inline-size:32px;border-radius:50%;background:var(--surfaceSunken)}
.p-skeleton-head>span:nth-child(2){flex:1;block-size:4px;border-radius:4px}
.p-skeleton-stage{display:grid;align-content:start;gap:var(--s4);padding:var(--s6) var(--s5)}
.p-skeleton-stage>span{background:var(--surfaceSunken);border-radius:var(--r-card);block-size:52px}
.p-skeleton-stage>span:first-child{block-size:144px}.p-skeleton-stage>span:nth-child(2){inline-size:75%}
.p-skeleton-action{block-size:52px;margin:var(--s4) var(--s5);border-radius:var(--r-button);background:var(--surfaceSunken)}
.p-focus .p-hero-word [lang=bg]{font-family:var(--font-display)}

/* Keep the live-region clipping box inside the locked focus viewport. */
html.player-open #route-announcement,:is(body[data-page=player],body[data-page=practice-session],body[data-page=exam-client])>#route-announcement{position:fixed!important;inset:0 auto auto 0}

html.player-open .living-word .is-active .sv::after{animation-name:host-stress-tick}
@keyframes host-stress-tick{from{transform:translate(-50%,-4px) skewX(-18deg)}to{transform:translate(-50%,0) skewX(-18deg)}}

.wr>.word-note{order:4}.word-picture{background:var(--surfaceSunken);border-radius:var(--r-tile);overflow:hidden}
html[data-theme=dark] .word-picture{background:var(--surfaceElevated)}

/* W3 focus views scroll within their viewport; certificate print stays separate. */
html.player-open body.p-focus>main>.p-player:is(.pr-independent,.pr-listen,.features-ui,.e-host){overflow-y:auto}
.w-certificate-host{position:fixed;inset:0;z-index:70;inline-size:100%;max-inline-size:none;block-size:100dvh!important;margin:0!important;overflow-y:auto;background:var(--bg)}
@media print{body:has(.w-certificate-host)>main>*:not(.w-certificate-host){display:none!important}.w-certificate-host{position:static;block-size:auto!important;overflow:visible}}
.learning-exit{position:fixed;inset-block-start:var(--s3);inset-inline-end:var(--s3);z-index:65;background:var(--surface);border:1px solid var(--border)}
@media print{.learning-exit{display:none!important}}
html.player-open .p-player.features-ui{display:block;inline-size:min(100%,1240px);height:100dvh;max-height:none;margin:0 auto}

/* W4 embeds the reader in the real shell, without its lab brand/review header. */
[data-mount=local-reader].f-root{padding:0;max-inline-size:none}
[data-mount=local-reader] .f-brand,[data-mount=local-reader] .f-title>.p-eyebrow{display:none}

[data-mount=local-reader]{min-block-size:calc(100dvh - var(--topbar-height,80px) - 2 * var(--s6))}

/* R2a-W3 P1-4 / R2A-24: text owns the full card width; media and
   normal/slow audio share a separate horizontal row at every breakpoint. */
.word-tiles{grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr))}
.wr,.word-tiles .wr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2) var(--s3);align-items:start}
.wr>.rc,.word-tiles .wr>.rc{grid-column:1/-1;grid-row:1;min-inline-size:0}
.wr>.audio-controls,.word-tiles .wr>.audio-controls{grid-column:1;grid-row:2;flex-direction:row;inline-size:auto;margin:0;justify-self:start;align-self:center}
.wr>.word-picture{grid-column:2;grid-row:2;inline-size:48px;block-size:48px;align-self:center}
.wr>.word-note{grid-column:1/-1;grid-row:3;margin:0}
.wr .wt a,.wr .tr,.wr .translit{overflow-wrap:break-word;word-break:normal;hyphens:auto}

/* The metadata-first host precedes P's full intro; its padding must survive
   the later generic .e-host .e-intro rule in the lazy exam stylesheet. */
.e-host[data-exam-preparing]>.e-intro{padding:var(--s4)}

/* RD-4: the recommendation and tools have distinct weights. This critical
   block is mirrored in player-host.css for router entries before CSS arrives. */
.pr-redesign.pr-hub{padding:0;max-inline-size:100%;font:var(--body)/1.45 var(--font-body);color:var(--textPrimary)}
.pr-redesign *{box-sizing:border-box;min-inline-size:0}
.pr-redesign [hidden]{display:none!important}
.pr-redesign .pr-hub-head{margin-block-end:var(--s6)}
.pr-redesign .pr-hub-head h1{margin:0;font:900 var(--h1)/1.12 var(--font-display)}
.pr-redesign .pr-hub-head :is(.p-eyebrow,.eyebrow){margin:0;color:var(--textSecondary)}
.pr-redesign .pr-resumes:empty{display:none}
.pr-hero{display:grid;grid-template-columns:2fr 1fr;gap:var(--s6);margin-block-end:var(--s7)}
.pr-hero-card{display:flex;flex-direction:column;align-items:start;gap:var(--s4);padding:var(--s6);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.pr-daily{background:var(--surfaceSunken)}
.pr-hero-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);inline-size:100%}
.pr-hero-top>svg,.pr-panel-title>svg{inline-size:32px;block-size:32px;flex:none}
.pr-duration,.pr-redesign .pr-badge{display:inline-flex;align-items:center;white-space:nowrap;flex:none;min-inline-size:max-content;padding:var(--s1) var(--s2);border-radius:var(--r-chip);background:var(--surface);color:var(--textPrimary);font:600 var(--caption)/1.4 var(--font-body)}
.pr-hero-copy{display:grid;gap:var(--s2);max-inline-size:48ch}
.pr-hero-copy :is(h2,p){margin:0}
.pr-hero-copy h2{font:900 var(--stat-small)/1.15 var(--font-display);text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:manual}
.pr-redesign .p-eyebrow{font:700 var(--eyebrow)/1.45 var(--font-body);text-transform:uppercase;letter-spacing:.12em;color:var(--textSecondary)}
.pr-redesign .p-muted{color:var(--textSecondary);font:400 var(--secondary)/1.45 var(--font-body);text-wrap:pretty}
.pr-redesign .pr-hero-action{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);inline-size:fit-content;max-inline-size:100%;min-block-size:52px;block-size:auto;min-inline-size:min(100%,200px);padding:var(--s3) var(--s5);margin-block-start:auto;border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);border-radius:var(--r-button);background:transparent;color:var(--textPrimary);font:600 var(--secondary)/1.3 var(--font-body);text-align:center;text-decoration:none;white-space:normal;transition:background var(--t-hover),transform var(--t-press),box-shadow var(--t-hover)}
.pr-redesign .pr-hero-action.p-primary{background:var(--action);color:var(--onAction);border-color:var(--action);box-shadow:var(--lift-1)}
.pr-hero-action>svg{inline-size:20px;block-size:20px;flex:none}
.pr-review-count{font:900 var(--h1)/1 var(--font-display);font-variant-numeric:tabular-nums}
.pr-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--s6);align-items:start}
.pr-redesign .pr-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));grid-auto-rows:1fr;gap:var(--s4);margin:0}
.pr-redesign .pr-tile{display:grid;grid-template-columns:32px minmax(0,1fr) auto;grid-template-rows:32px 1fr;align-items:start;align-content:start;gap:var(--s3);inline-size:100%;min-block-size:192px;block-size:auto;padding:var(--s5);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface);color:var(--textPrimary);text-align:start;text-decoration:none;white-space:normal;box-shadow:none;transition:background var(--t-hover),border-color var(--t-hover),transform var(--t-press),box-shadow var(--t-hover)}
.pr-redesign .pr-tile>svg:first-child{grid-column:1;grid-row:1;inline-size:32px;block-size:32px}
.pr-redesign .pr-tile>svg:last-child{grid-column:3;grid-row:1;inline-size:20px;block-size:32px;align-self:center;rotate:none;transition:transform var(--t-hover)}
:dir(rtl) .pr-redesign .pr-tile>svg:last-child{rotate:180deg}
.pr-redesign .pr-tile .pr-tile-text{display:grid;grid-column:1/-1;grid-row:2;gap:var(--s2);align-content:start;min-inline-size:12ch;overflow-wrap:normal;word-break:normal;hyphens:manual}
.pr-redesign .pr-tile-text strong{font:700 var(--card-title)/1.25 var(--font-body);text-wrap:balance;white-space:normal;overflow:visible}
.pr-redesign .pr-tile-text :is(.p-muted,.muted){display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:400 var(--secondary)/1.4 var(--font-body);color:var(--textSecondary)}
.pr-redesign .pr-tile .pr-badge{grid-column:2;grid-row:1;justify-self:start;align-self:center;background:var(--surfaceSunken)}
.pr-tools{display:grid;gap:var(--s6)}
.pr-redesign .pr-panel{margin:0;padding:var(--s5);gap:var(--s4);border-radius:var(--r-card)}
.pr-panel-title{display:flex;align-items:center;gap:var(--s3)}
.pr-panel-title h2{font:900 var(--h2)/1.2 var(--font-display);margin:0}
.pr-redesign .pr-panel h3{font:600 var(--secondary)/1.4 var(--font-body);margin:0}
.pr-redesign .pr-segment-option.p-button{padding:var(--s2);font-size:var(--secondary)}
.pr-redesign .pr-quiz .pr-segment:has([data-value=vocabulary]){display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
.pr-redesign .pr-listen-card .pr-segment{display:grid;grid-template-columns:repeat(3,minmax(0,1fr))}
.pr-redesign .pr-panel>[data-listen-all],.pr-redesign .pr-panel>[data-quiz-start]{min-inline-size:min(100%,200px);inline-size:fit-content;max-inline-size:100%;min-block-size:52px;block-size:auto;white-space:normal;text-align:center}
.pr-redesign .pr-panel>[data-listen-all]:disabled{opacity:1;color:var(--textSecondary);background:var(--surfaceSunken);border-color:var(--border);cursor:default;transform:none;box-shadow:none}
.pr-notice{margin:var(--s6) 0 0!important;color:var(--textSecondary)}
.pr-redesign .pr-tile:focus-visible,.pr-redesign .pr-hero-action:focus-visible{outline:2px solid var(--action);outline-offset:2px}

.pr-redesign .pr-hero-action.p-primary:active{background:var(--actionPressed);color:var(--onAction)}
@media(hover:hover) and (pointer:fine){
 .pr-redesign .pr-tile:hover{background:var(--surfaceSunken);border-color:color-mix(in srgb,var(--action) 40%,var(--border));transform:translateY(-3px);box-shadow:var(--lift-2)}
 .pr-redesign .pr-tile:hover>svg:last-child{transform:translateX(3px)}
 .pr-redesign .pr-hero-action:hover{background:var(--surfaceSunken);transform:translateY(-1px);box-shadow:var(--lift-1)}
 .pr-redesign .pr-hero-action.p-primary:hover{background:var(--actionPressed);color:var(--onAction);box-shadow:var(--lift-2)}
}
.pr-redesign .pr-tile:active,.pr-redesign .pr-hero-action:active{transform:scale(.98);background:var(--surfaceSunken)}
@media(max-width:1099px){.pr-body{grid-template-columns:minmax(0,1fr)}.pr-tools{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px){
 .pr-hero{grid-template-columns:minmax(0,1fr);gap:var(--s4);margin-block-end:var(--s6)}
 .pr-hero-card{padding:var(--s5);gap:var(--s3)}
 .pr-review{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start}
 .pr-review .pr-hero-top{grid-column:1/-1}
 .pr-review .pr-hero-copy{grid-column:1/-1}
 .pr-review .pr-hero-action{grid-column:1/-1;margin-block-start:var(--s1)}
 .pr-redesign .pr-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,280px),1fr));grid-auto-rows:auto;gap:var(--s3)}
 .pr-redesign .pr-tile{grid-template-columns:32px minmax(0,1fr) var(--s8);grid-template-rows:auto auto;min-block-size:112px;padding:var(--s4);gap:var(--s2) var(--s3)}
 .pr-redesign .pr-tile .pr-tile-text{grid-column:2;grid-row:1/3;min-inline-size:12ch}
 .pr-redesign .pr-tile>svg:first-child{grid-row:1/3}
 .pr-redesign .pr-tile>svg:last-child{grid-row:1;align-self:start}
 .pr-redesign .pr-tile .pr-badge{grid-column:3;grid-row:2;justify-self:end}
 .pr-tools{grid-template-columns:minmax(0,1fr)}
 .pr-body{gap:var(--s6)}
}
.pr-redesign:lang(ar),.pr-redesign:lang(he),.pr-redesign:lang(ar) :is(h1,h2,h3),.pr-redesign:lang(he) :is(h1,h2,h3){font-family:var(--font-system)}
@media(prefers-reduced-motion:reduce){.pr-redesign .pr-tile:is(:hover,:active),.pr-redesign .pr-hero-action:is(:hover,:active),.pr-redesign .pr-tile:hover>svg:last-child{transform:none!important}}
/* These small control primitives are also critical on a routed SSR entry. */
.pr-redesign .pr-panel{display:grid;border:1px solid var(--border);background:var(--surface)}
.pr-redesign .pr-panel>.p-button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);padding:var(--s3) var(--s4);border:1.5px solid color-mix(in srgb,var(--textPrimary) 70%,transparent);border-radius:var(--r-button);font:600 var(--secondary)/1.3 var(--font-body);color:var(--textPrimary);background:var(--surface);text-decoration:none}
.pr-redesign .pr-panel>.p-button>svg{inline-size:20px;block-size:20px;flex:none}
.pr-redesign .pr-panel>.p-primary{background:var(--action);color:var(--onAction);border-color:var(--action)}
.pr-redesign .pr-segment{display:flex;position:relative;isolation:isolate;flex-wrap:wrap;gap:0;padding:var(--s1);inline-size:100%;border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surfaceSunken)}
.pr-redesign .pr-segment-option.p-button{display:inline-flex;align-items:center;justify-content:center;flex:1 1 auto;min-block-size:44px;block-size:auto;max-inline-size:100%;border:0;border-radius:var(--r-chip);background:transparent;box-shadow:none;white-space:normal;color:var(--textPrimary);font:600 var(--secondary)/1.4 var(--font-body);text-align:center}
.pr-redesign .pr-segment-option[aria-checked=true]{background:var(--action);color:var(--onAction)}
.pr-redesign .pr-panel>.p-button:hover{background:var(--surfaceSunken);color:var(--textPrimary)}
.pr-redesign .pr-panel>.p-primary:hover{background:var(--actionPressed);color:var(--onAction)}
.pr-redesign .pr-panel>.p-button:disabled{opacity:1;color:var(--textSecondary);background:var(--surfaceSunken);border-color:var(--border);cursor:default;transform:none;box-shadow:none}
.pr-redesign .pr-panel>.p-button:focus-visible,.pr-redesign .pr-segment-option:focus-visible{outline:2px solid var(--action);outline-offset:2px}
.pr-redesign .pr-panel>.p-button:active{transform:scale(.98)}
.pr-redesign .pr-segment-option[aria-checked=false]:hover{background:color-mix(in srgb,var(--action) 8%,transparent)}
.pr-redesign .pr-segment-option[aria-checked=true]:hover{background:var(--actionPressed);color:var(--onAction)}
.pr-redesign .pr-segment-option:active{transform:scale(.98)}
@media(prefers-reduced-motion:reduce){.pr-redesign .pr-panel>.p-button:active,.pr-redesign .pr-segment-option:active{transform:none}}

.pr-redesign:is(:lang(ar),:lang(he)) :is(.p-muted,.p-eyebrow,.pr-tile-text strong,.pr-duration,.pr-badge,.pr-hero-action,.pr-segment-option,.pr-panel>.p-button){font-family:var(--font-system)}
/* Press keeps the foreground/background pair opaque in both themes. */
.pr-redesign a.p-button:active{opacity:1}
.pr-redesign .pr-segment-option.p-button:hover:not(:active){transform:none}
/* Large text: use the full row before a real word can meet the chevron.
   The em threshold follows the card's font size, not device pixels. */
@media(max-width:759px){
 .pr-redesign .pr-tile{container-type:inline-size}
 @container (max-width:14em){
  .pr-redesign .pr-tile .pr-tile-text{grid-column:1/-1;grid-row:2;min-inline-size:0}
  .pr-redesign .pr-tile>svg:first-child,.pr-redesign .pr-tile>svg:last-child{grid-row:1}
  .pr-redesign .pr-tile .pr-badge{grid-column:2;grid-row:1;justify-self:start}
 }
}
/* The practice descriptions are learning guidance, never clipped teasers. */
.pr-hub.pr-redesign .pr-tile-text :is(.p-muted,.muted){white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:normal;word-break:normal;hyphens:manual}

/* SCAN-1: a text column may shrink below its longest phrase. */
.pr-hub.pr-redesign .pr-tile .pr-tile-text{min-inline-size:0;overflow-wrap:break-word}
.pr-hub.pr-redesign .pr-tile-text :is(.p-muted,.muted){white-space:normal;overflow:visible;text-overflow:clip}

/* HOT-3c: the keyboard needs the stage space reserved for later feedback. */
.p-focus .p-player[data-keyboard]:has(>.p-stage)>.p-actionbar:not([data-state])>.p-drawer-slot{block-size:0}

/* W-R5b integration: stable six-column letter keys, quiet pointer hover,
   and RTL block alignment while the Bulgarian text itself remains LTR. */
.p-focus .p-player .p-letter-strip{display:grid;grid-template-columns:repeat(6,minmax(44px,1fr));gap:var(--s1);padding:0;min-block-size:0;overflow:visible}
.p-focus .p-player .p-letter{inline-size:100%;min-inline-size:0;block-size:44px;min-block-size:44px;padding:var(--s1)}
.p-focus .p-player .p-matching .p-match.is-hint{transform:none}
[dir=rtl] .p-player :is(.p-example,.p-new-word-example) .p-bg-group{direction:rtl;text-align:right}
[dir=rtl] .p-player :is(.p-example,.p-new-word-example) .living-word{direction:ltr;text-align:right}
/* P-ACTION: player.css owns the complete paired option states. */
/* The focus player's unlabelled transports are compact 44px controls. */
.p-focus .p-player .audio-control-hero{--audio-control-size:44px;inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px}
.large-text .p-focus .p-player .p-letter{block-size:auto;min-block-size:44px}

/* Stat captions begin consistently; source translations keep their wording. */
.p-result-stats :is(.p-muted,.p-caption)::first-letter{text-transform:uppercase}
/* A forward chevron follows the action label in both writing directions. */
.p-focus .p-player .p-button>svg:has(path[d^="M9 5"]){order:1}

/* W-R5b: intrinsic text leading must not add extra pixels to compact controls. */
.p-focus .p-player .p-tile,.p-focus .p-player .p-quiet{block-size:44px;min-block-size:44px;padding-block:0}
.p-focus .p-player:has(>.p-stage) .p-audio-controls>.audio-control.audio-button{--audio-control:44px;inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px}
.p-focus .p-player .lookup-word{display:inline-flex;align-items:center;block-size:44px;vertical-align:middle}
.large-text .p-focus .p-player :is(.p-tile,.p-quiet,.lookup-word){block-size:auto;min-block-size:44px}

/* 52px is a minimum. Multiline rows grow; their grid stretches each row. */
.p-focus :is(.p-player,.e-host) .p-button{block-size:auto;min-block-size:52px;padding-block:var(--s3)}
.p-focus :is(.p-player,.e-host) .p-button:is(.p-option,.p-match,.p-match-tile,[role=radio]){block-size:auto;min-block-size:56px}
.p-focus :is(.p-player,.e-host) .p-button:is(.p-icon,.p-credit,.p-quiet,.p-tile,.p-letter,.e-filter,.p-skip,.p-why,.p-shortcut-trigger){block-size:44px;min-block-size:44px;padding-block:0}
.p-focus .p-player .p-actionbar>.p-button.p-quiet{block-size:52px;min-block-size:52px}
.p-focus .p-player .p-chat>.p-bubble{padding-inline-end:60px;transform:none;cursor:default}
.p-focus .p-player .p-bubble-audio.p-button{inset-inline-end:var(--s2);inset-block-start:var(--s2);inline-size:44px;min-inline-size:44px;block-size:44px;min-block-size:44px;padding:0}
.large-text .p-focus :is(.p-player,.e-host) .p-button{block-size:auto}
.large-text .p-focus .p-player .p-actionbar>.p-button.p-quiet{block-size:auto}

/* A recap row has room for the full word and its two compact transports. */
.p-focus .p-player:has(>.p-stage) .p-recap-words:not(.p-part-words){grid-template-columns:minmax(0,1fr);gap:var(--s2)}
.p-focus .p-player .p-recap-words:not(.p-part-words)>.p-bg-group{display:flex;justify-content:space-between;gap:var(--s3)}
.p-focus .p-player .p-recap-words:not(.p-part-words)>.p-bg-group>.living-word{min-inline-size:0;overflow-wrap:break-word;white-space:normal}
.p-focus .p-player .p-recap-words:not(.p-part-words)>.p-bg-group>.p-audio-controls{flex:none}

/* P-R6 N-01: phrase/task rows and vowel keys keep all their content. */
.p-focus .p-player .p-button:is(.pr-phrase,.pr-task){block-size:auto;min-block-size:72px;padding:var(--s4);align-self:stretch}
.p-focus .p-player .f-stress-word{align-items:baseline}
.p-focus .p-player .f-stress-word>.p-button{block-size:auto;min-block-size:64px;padding:var(--s1) var(--s2)}

/* R15-6: cold exam entry paints an attested title and facts, never a skeleton.
   Start is disabled until storage, the saved attempt and questions are ready. */
.p-player>.p-exam-preview{display:flex;flex-direction:column;gap:var(--s5);inline-size:calc(100% - 40px);max-inline-size:640px;margin:auto;overflow:auto}
.p-exam-preview>.button{inline-size:100%;max-inline-size:480px;align-self:center}
.p-exam-preview h1{font-size:var(--h1)}
html.player-open body.p-focus>main>.p-player:has(>.p-exam-preview),body[data-page=exam-client]>main>.p-player:has(>.p-exam-preview){display:flex;align-items:center;justify-content:center;block-size:100dvh}

/* Fixed geometry in a 120-unit viewBox; external dimensions reserve layout. */
.martenitsa-cord{display:inline-block;inline-size:var(--cord-size,64px);block-size:var(--cord-size,64px);flex:none;overflow:visible;vertical-align:middle;isolation:isolate;--cord-white:var(--cordWhite,#fff);--cord-edge:var(--cordEdge,#DAD8D3);--cord-track:var(--surfaceSunken,#ECEBE7)}
:root[data-theme=dark] .martenitsa-cord{--cord-white:var(--cordWhite,#E9E7E2)}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .martenitsa-cord{--cord-white:var(--cordWhite,#E9E7E2)}}
.cord-red{stroke:var(--cord-red-color,var(--brand,#C8302C))}.cord-white{stroke:var(--cord-white)}.cord-edge{stroke:var(--cord-edge)}.cord-track{stroke:var(--cord-track)}
.cord-red-fill{fill:var(--cord-red-color,var(--brand,#C8302C))}.cord-white-fill{fill:var(--cord-white)}.cord-edge-fill{fill:var(--cord-edge)}
.cord-plane,.cord-moving{transform-box:view-box;transform-origin:60px 60px}.cord-knot{transform-box:view-box}

.cord-label{font:700 var(--caption)/1 var(--font-body);fill:var(--textPrimary)}

/* P-RING: centre SVG text in the circle, never an HTML font line box.
   SVG central baseline works before text-box-trim (including older Safari).
   Percentage coordinates use CSS pixels; cord geometry uses its 120-unit grid. */
.ring-number{position:absolute;inset:0;display:block;inline-size:100%;block-size:100%;overflow:visible;font:inherit;pointer-events:none}
.ring-number>text,.cord-label{text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums;letter-spacing:0;direction:ltr;fill:currentColor}
.cord-label{x:60;y:60;fill:var(--textPrimary)}
:is(.lesson-number,.today-goal-value,.rd7-ring>span){position:relative}
.lesson-number:has(.ring-number){min-inline-size:2em;min-block-size:2em}
.today-goal-value.ring-number{position:absolute;max-inline-size:none}
.profile-goal-value{inset:0;gap:0}
.profile-goal-value strong{position:absolute;inset:0;display:block}
.profile-goal-value>span{position:absolute;inset-inline:0;inset-block-start:calc(50% + var(--numeric) * .6 + var(--s1))}
.large-text .profile-goal-ring{inline-size:180px;block-size:180px}
.large-text .profile-goal-value{position:absolute;inset:0;gap:0}
/* The deck's track rotates; its number does not. */
.rd7-ring>span{display:block;inline-size:100%;block-size:100%}
.rd7-ring .ring-number{transform:none;inline-size:100%;block-size:100%}

/* Enlarged captions sit below the artwork; the number stays at its centre. */
.large-text .profile-goal-ring{margin-block-end:calc(var(--caption) * 1.2 + var(--s2))}
.large-text .profile-goal-value>span{inset-block-start:calc(100% + var(--s2))}

/* Enlarged goal captions wrap within their own card on tablets. */
.large-text .hero-goal-link strong{white-space:normal}

/* W5 must inline these frame-zero rules with the SSR path mark in <body>.
 * They deliberately contain no animation, hidden initial state or font gate.
 * The layer is decorative; underlying content stays accessible and focusable.
 */
.lb-launch{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;background:transparent;color:var(--textPrimary,#1B1C1F);opacity:1;touch-action:manipulation}
.lb-launch[hidden]{display:none!important}
.lb-launch__backdrop{position:absolute;inset:0;background:var(--bg,#F7F6F4);pointer-events:none}
.lb-launch__lockup{position:relative;display:grid;justify-items:center;gap:var(--s6,24px);max-inline-size:calc(100% - 48px);transform:translateY(0)}
.lb-launch__mark{display:block;inline-size:auto;block-size:224px;background:var(--bg,#F7F6F4);max-inline-size:100%;overflow:visible;flex:none}
.lb-launch__mark :is(#l1,#l2,#l3,#tick){transform-box:fill-box;transform-origin:center;opacity:1}
.lb-launch__mark #tick{fill:var(--brand,#C8302C)}
.lb-launch__wordmark{font-family:var(--font-body,system-ui);font-size:var(--secondary);font-weight:500;line-height:1.5;text-align:center;text-transform:uppercase;letter-spacing:.12em;color:var(--textSecondary,#5C5E66);text-wrap:balance;max-inline-size:100%}
@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .lb-launch{background:transparent;color:var(--textPrimary,#F2F1EE)}}

/* W5 critical policy + path-only wordmark. L5 owns launch.css. */
:root:not([data-launch]) #launch-layer{display:none}
:root[data-launch] .brand-mark{visibility:hidden}
.lb-launch__wordmark{inline-size:220px;block-size:40px;max-inline-size:100%;overflow:visible}

/* Starts with the first rendered style, even when the module graph is late.
   The head also releases policy state; its 2.5s failsafe remains independent. */
:root[data-launch]{--launch-budget:1100ms}
:root[data-launch=short]{--launch-budget:500ms}
:root[data-launch] #launch-layer{animation:launch-retire var(--launch-budget) step-end forwards}
:root[data-launch] .brand-mark{animation:launch-brand var(--launch-budget) step-end forwards}
@keyframes launch-retire{to{visibility:hidden;pointer-events:none}}
@keyframes launch-brand{to{visibility:visible}}

/* RD-5: course navigation, photographic overviews and readable vocabulary. */
main:is([data-kind=course],[data-kind=level])::before{display:none}
.course-heading{display:grid;gap:var(--s2);margin-block-end:var(--s4)}
.course-heading:has(+.course-band h1) .eyebrow{margin:0}
.course-band{display:grid;grid-template-columns:minmax(0,1fr) minmax(220px,auto);gap:var(--s6);padding:var(--s6);margin-block-end:var(--s6);align-items:center}
.course-band-copy{display:grid;grid-template-columns:auto minmax(0,1fr);gap:var(--s3) var(--s4);align-items:center}
.course-band :is(h1,h2){font-size:var(--course-title);margin:0}
.course-band .level-badge{inline-size:64px;block-size:64px;font:900 var(--course-code)/1 var(--font-display);background:var(--action);color:var(--onAction);border:0;border-radius:var(--r-tile)}
.course-band :is(.lead,.course-stats,.course-band-progress){grid-column:1/-1}
.course-stats{display:flex;flex-wrap:wrap;gap:var(--s2) var(--s4);font-size:var(--secondary);color:var(--textSecondary)}
.course-stats>span+span{border-inline-start:1px solid var(--border);padding-inline-start:var(--s4)}
.course-band-progress{display:grid;gap:var(--s2)}
.course-band-progress .progress-track{block-size:6px}
.course-band-actions{display:grid;gap:var(--s2);justify-items:stretch;max-inline-size:340px}
.course-band-actions .tertiary{justify-self:start}
.rd5-course-layout.course-layout{grid-template-columns:72px minmax(0,1fr);gap:var(--s6);align-items:start;margin-block-end:var(--s7)}
.rd5-course-layout>.level-filter{display:flex;flex-direction:column;position:sticky;inset-block-start:calc(var(--topbar-height,76px) + var(--s4));gap:var(--s1);margin:0;padding:var(--s1);align-items:stretch}
.rd5-course-layout .level-filter>a{display:grid;place-items:center;min-block-size:52px;min-inline-size:44px}
.rd5-course-layout .course-units{grid-template-columns:repeat(3,minmax(0,1fr))}

.course-extra,.course-vocab,.course-library{margin-block-start:var(--s7)}
.course-extra .section-heading>div:first-child{display:grid;gap:var(--s2)}
.course-strip-arrows{display:flex;gap:var(--s2);flex:none}
.course-strip-arrows .icon-button{border:1px solid var(--border);background:var(--surface)}
.course-strip-arrows .strip-prev{rotate:180deg}
.course-strip-arrows button:disabled{opacity:1;color:var(--textSecondary);background:var(--surfaceSunken);cursor:default}
.course-photo-strip{display:grid;grid-auto-flow:column;grid-auto-columns:280px;gap:var(--s4);overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:var(--s1);padding:var(--s1) var(--s1) var(--s4);scrollbar-width:none}
.course-photo-strip::-webkit-scrollbar{display:none}

.course-photo-strip .media{aspect-ratio:16/10}

.vocab-topics{grid-template-columns:repeat(3,minmax(0,1fr));margin-block-start:var(--s3)}
.vocab-topic{display:flex;align-items:center;gap:var(--s3);border:1px solid var(--border);background:var(--surface);border-radius:var(--r-tile);padding:var(--s3);min-block-size:72px;text-decoration:none;transition:background var(--t-hover),border-color var(--t-hover),transform var(--t-press)}
.vocab-topic>img{inline-size:40px;block-size:40px;object-fit:contain;flex:none}
.vocab-topic>span{flex:1;min-inline-size:0;font-weight:600}
.vocab-topic:hover{background:var(--surfaceSunken);border-color:var(--action)}
.vocab-topic:active{transform:scale(.98)}
.course-library .feature-grid{margin-block-start:var(--s3);grid-template-columns:repeat(3,minmax(0,1fr))}
.course-library .feature-row{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:var(--s3);padding:var(--s4)}
.course-library .feature-icon{inline-size:32px;block-size:32px;padding:0;background:none}
.course-library .feature-icon .i{inline-size:32px;block-size:32px}
.course-library .feature-copy strong{font-size:var(--card-title)}
.course-library .feature-description{display:none}
.course-library .feature-row>.chevron{display:none}
@media(max-width:1099px){.rd5-course-layout .course-units{grid-template-columns:repeat(2,minmax(0,1fr))}.vocab-topics,.course-library .feature-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px),(max-height:500px) and (pointer:coarse){.course-band{grid-template-columns:1fr;padding:var(--s4);gap:var(--s4)}.course-band .level-badge{inline-size:52px;block-size:52px}.course-band-actions{max-inline-size:none}.course-stats{gap:var(--s2);font-size:var(--caption)}.course-stats>span+span{padding-inline-start:var(--s2)}.rd5-course-layout.course-layout{grid-template-columns:minmax(0,1fr);gap:var(--s4)}.rd5-course-layout>.level-filter{position:relative;inset-block-start:auto;flex-direction:row;max-inline-size:100%}.rd5-course-layout .level-filter>a{flex:1;min-block-size:44px;min-inline-size:0;padding-inline:var(--s1)}.rd5-course-layout .course-units{grid-template-columns:minmax(0,1fr)}.course-photo-strip{grid-auto-columns:min(280px,84vw)}.course-extra .section-heading{align-items:start}.course-strip-arrows{display:none!important}.vocab-topics,.course-library .feature-grid{grid-template-columns:minmax(0,1fr)}}
@media(prefers-reduced-motion:reduce){.vocab-topic:active{transform:none}}

/* The selected label retains its surface while the shared pill is measured. */
.rd5-course-layout .level-filter [aria-current=page]{background:var(--action);color:var(--onAction)}
@media(hover:hover) and (pointer:fine){.rd5-course-layout .level-filter [aria-current=page]:hover{background:var(--actionPressed);color:var(--onAction)}}
.course-band .lead{display:block;overflow:visible;-webkit-line-clamp:unset}

/* Keep Arabic glyph bounds inside the 52px action, and release navigation
   before its section boundary can carry it beneath the persistent header. */
.course-band-actions>.button{line-height:1.5;padding-block:var(--s2)}
.course-vocab>.level-filter{position:relative;inset-block-start:auto}
.rd5-course-layout>.level-filter.course-rail-released{position:relative;inset-block-start:auto}
@media(hover:hover) and (pointer:fine){.course-strip-arrows .icon-button:not(:disabled):hover{background:var(--surfaceSunken);border-color:var(--action)}}

/* Level route: the recommended unit is open, clear and never a lock. */

.unit-card[data-next-unit]{border-color:color-mix(in srgb,var(--action) 45%,var(--border))}

/* RD-9 baseline gate: complete desktop cards keep their title hit areas
   inside the strip; arrows advance by snapped card positions. */
@media(min-width:760px){.course-photo-strip{grid-auto-columns:calc((100% - var(--s4))/2)}}
@media(min-width:1000px){.course-photo-strip{grid-auto-columns:calc((100% - 2*var(--s4))/3)}}
@media(min-width:1280px){.course-photo-strip{grid-auto-columns:calc((100% - 3*var(--s4))/4)}}

/* R4-29: the level introduces its next lesson, then gets out of the way. */
.course-band{padding:var(--s5);gap:var(--s4);margin-block-end:var(--s5)}
.course-band-copy{gap:var(--s2)}
.course-band-copy .lead{margin:0;font-size:var(--secondary)}
.course-band .course-stats{margin:0;gap:var(--s3);font-size:var(--caption)}
.course-band-progress{margin-block-start:var(--s2)}
.course-band-actions{gap:var(--s2)}
.course-next-title{font:600 var(--secondary)/1.4 var(--font-body);margin:0;text-wrap:pretty}
@media(max-width:759px){
 .course-band{grid-template-columns:minmax(0,1fr);padding:var(--s4);gap:var(--s3)}
 .course-band-copy .lead{display:none}
 .course-band-actions{display:grid;grid-template-columns:minmax(0,1fr)}
 .course-band-actions>.tertiary{justify-self:start}
 .course-band .level-badge{font-size:var(--h3);inline-size:44px;block-size:44px}
}
/* Whole desktop cards keep the last visible title inside its tap target. */
@media(min-width:1100px){.course-photo-strip{grid-auto-columns:calc((100% - 3 * var(--s4))/4);padding-inline:0}}

/* W-FIX-1: the code is a label, not a narrow column beside enlarged titles.
   Give the complete heading its own row and balance whole words. */
.large-text .course-band-copy{grid-template-columns:minmax(0,1fr);justify-items:start}
.large-text .course-band .level-badge{inline-size:auto;block-size:auto;min-inline-size:1.6em;min-block-size:1.6em;padding:var(--s2);font-size:var(--h3)}
.large-text .course-band-copy>:is(h1,h2){inline-size:100%;text-wrap:balance;overflow-wrap:normal;word-break:normal;hyphens:manual}
@media(max-width:759px){.large-text .course-band-copy>:is(h1,h2){font-size:var(--h2)}}

/* W-R5: on phones choose the level before its summary; titles own their line. */
.course-phone-levels{display:none}
@media(max-width:759px){
 .course-phone-levels{display:flex;margin-block-end:var(--s4)}
 .course-phone-levels>a{min-inline-size:0;padding-inline:var(--s1)}
 .rd5-course-layout>.level-filter{display:none}
 .course-band-copy{grid-template-columns:minmax(0,1fr);justify-items:start}
}

/* W-R8c carried N10: reserve the published next-lesson lane before hydration. */
@media(min-width:760px){.course-band{grid-template-columns:minmax(0,1fr) minmax(220px,340px)}}

/* W-R9-8: the current level is a compact status beside its level code. */
.course-level-meta{grid-column:1/-1}
.course-level-meta>.level-badge{display:inline-flex;vertical-align:middle}
.course-level-meta>.course-current-status{display:inline-flex;inline-size:max-content;max-inline-size:100%;vertical-align:middle;margin-inline-start:var(--s2)}
.course-band-copy>:is(h1,h2){grid-column:1/-1}

/* W-R9-14: topics form a single browseable row above the listening cards. */
main[data-kind=listening] .passage-topics{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-inline:contain;scrollbar-width:none;mask-image:linear-gradient(to right,var(--strip-left,#000),#000 24px,#000 calc(100% - 24px),var(--strip-right,#000))}
main[data-kind=listening] .passage-topics::-webkit-scrollbar{display:none}
main[data-kind=listening] .passage-topics>button{flex:none;white-space:nowrap;max-inline-size:none}

.listening-controls{display:flex;align-items:center;gap:var(--s2);margin-block:var(--s4)}
.listening-controls>.level-filter{position:relative;inset-block-start:auto;margin:0;flex:1;min-inline-size:0}
.listening-controls>.level-filter>button{flex:1;min-inline-size:0;padding-inline:var(--s1)}
.listening-controls>.icon-button{flex:none;border:1px solid var(--border);background:var(--surface)}
main[data-kind=listening] .library-start>.listening-course{margin:0}

@media(hover:hover) and (pointer:fine){.listening-controls>.icon-button:hover{background:var(--surfaceSunken);border-color:var(--action)}}

/* W-R11b R10-23: one unit card, including Today, Course and photo strips.
   Grid tracks align media, headings, descriptions and status across each row. */
.unit-card-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s4)}
:is(.unit-card-grid,.course-photo-strip)>.unit-card{min-inline-size:0;display:grid;grid-row:span 6;grid-template-rows:subgrid;gap:0;padding:0;overflow:visible;align-items:stretch;scroll-snap-align:start}
.unit-card>.card-body{display:grid;grid-row:span 5;grid-template-rows:subgrid;gap:var(--s2);padding:var(--s4)}
.unit-card>.card-body>:not([hidden]){margin:0}
.unit-card h3{font-size:var(--card-title);display:block;overflow:visible;-webkit-line-clamp:unset}
.unit-card .unit-eyebrow{font-size:var(--eyebrow)}
.unit-card .unit-eyebrow .i{display:inline-block}
.unit-card .hook{font-size:var(--secondary);display:block;overflow:visible;-webkit-line-clamp:unset}
.unit-card .card-status{display:grid;gap:var(--s2);min-block-size:calc(var(--caption)*1.5);align-content:start}
.unit-card .unit-position{grid-row:auto;justify-self:start;border-radius:var(--r-chip);padding:var(--s1) var(--s2);background:var(--surfaceSunken);color:var(--textPrimary);font-weight:600}
.unit-card .meta-row{grid-row:auto;align-self:end}
.unit-card>figure{inline-size:100%;margin:0;align-self:start}
.unit-card>figure .media{aspect-ratio:16/10;border-radius:calc(var(--r-card) - 1px) calc(var(--r-card) - 1px) 0 0}
@media(max-width:1099px){.unit-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px){.unit-card-grid{grid-template-columns:minmax(0,1fr)}}
.large-text .unit-card-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
@media(max-width:759px){
 .unit-card-grid>.unit-card{grid-row:auto;grid-template-rows:auto auto}
 .unit-card-grid>.unit-card>.card-body{grid-row:auto;grid-template-rows:none}
 .unit-card-grid .card-status{min-block-size:0}
 .unit-card-grid .card-status:not(:has(>:not([hidden]))){display:none}
}

/* W-R12b P3-34: a solitary unit is a full editorial row, never an empty strip. */
@media(min-width:1024px){
 .course-photo-strip.course-single{grid-template-columns:minmax(0,1fr);grid-auto-columns:auto;overflow:visible}
 .course-photo-strip.course-single>.unit-card{grid-row:auto;grid-template-columns:minmax(240px,2fr) minmax(0,3fr);grid-template-rows:auto}
 .course-single>.unit-card>figure{align-self:stretch;block-size:100%}
 .course-single>.unit-card>figure .media{block-size:100%;aspect-ratio:auto;min-block-size:240px;border-radius:calc(var(--r-card) - 1px) 0 0 calc(var(--r-card) - 1px)}
 .course-single>.unit-card>.card-body{grid-row:auto;grid-template-rows:none;grid-auto-rows:max-content;align-content:center;gap:var(--s3);padding:var(--s5)}
 .course-single>.unit-card>.card-body>.hook:empty,.course-single .card-status:not(:has(>:not([hidden]))){display:none}
 [dir=rtl] .course-single>.unit-card>figure .media{border-radius:0 calc(var(--r-card) - 1px) calc(var(--r-card) - 1px) 0}
}

/* Course content keeps its own visual hierarchy without changing player views. */
.overview-hero{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s6);align-items:center;margin-block-end:var(--s7)}
.overview-visual{position:relative;min-inline-size:0;border-radius:var(--r-card);background:var(--surfaceSunken);display:grid}
.overview-visual>.unit-cover{margin:0;position:relative;isolation:auto;grid-area:1/1;block-size:100%}
.overview-visual .media{aspect-ratio:16/9;max-block-size:360px;border-radius:var(--r-card)}
.overview-visual .media img{inline-size:100%;block-size:100%;object-fit:cover}
.overview-visual:has(figure)::after{content:'';position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:linear-gradient(0deg,rgba(0,0,0,.9),rgba(0,0,0,.6))}
.overview-title{position:relative;grid-area:1/1;align-self:end;margin:var(--s6);z-index:1;color:#fff;display:grid;gap:var(--s2);pointer-events:none}
.overview-title .eyebrow{color:#fff}
.overview-title h1{font-size:var(--h1);line-height:1.15}
.overview-visual .credit-info{z-index:3;inset-block-start:var(--s2);inset-block-end:auto}
.overview-copy{display:grid;gap:var(--s4);align-content:start;min-inline-size:0}
.overview-copy .prose{font-size:var(--secondary)}
.overview-copy>.lead{color:var(--textPrimary);font-size:var(--body)}
.overview-facts{display:flex;flex-wrap:wrap;gap:var(--s3) var(--s4);font-size:var(--secondary);color:var(--textSecondary)}
.overview-facts>span{display:inline-flex;align-items:center;gap:var(--s2)}
.overview-facts .i{inline-size:20px;block-size:20px}
.overview-copy .actions{gap:var(--s2)}
.overview-copy .actions>.button{min-inline-size:160px}
.overview-progress:has([hidden]){min-block-size:0}
.overview-progress{display:grid;gap:var(--s2)}
/* Reserve the real summary while the store opens, without flashing a zero. */
.js .overview-progress[aria-busy]{visibility:hidden}
.overview-visual:not(:has(figure)){min-block-size:200px;background:var(--action)}
.rd5-unit>section{margin-block-start:var(--s7)}
.rd5-unit>section>h2{margin-block-end:var(--s4)}
.rd5-unit .lesson-list{padding:var(--s2)}
.rd5-unit .lesson-list>.row{border:0;margin:0;gap:var(--s3);padding:var(--s1);border-radius:var(--r-tile)}
.rd5-unit .lesson-list>.row+.row{margin-block-start:var(--s2)}
.rd5-unit .lesson-list .row-link{padding:var(--s3);min-block-size:80px;border-radius:var(--r-tile);gap:var(--s3)}
.rd5-unit .lesson-list h3{font-size:var(--card-title)}
.rd5-unit .lesson-list p{display:block;overflow:visible;-webkit-line-clamp:unset;font-size:var(--secondary);margin-block-start:var(--s1)}
.rd5-unit .lesson-number{color:var(--textSecondary);border:0;inline-size:40px;font:900 var(--lesson-numeral)/1 var(--font-display)}
.rd5-unit .lesson-list [data-play-lesson]{margin-inline-end:var(--s3);align-self:center;flex:none}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr{display:grid;grid-template-columns:minmax(92px,1fr) 48px;border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);padding:var(--s4);gap:var(--s2) var(--s3);margin:0}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr>.rc{grid-column:1/-1;grid-row:1;min-inline-size:0}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr>.word-picture{grid-column:2;grid-row:2;inline-size:48px;block-size:48px;margin:0;align-self:center}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr>.audio-controls{grid-column:1;grid-row:2;display:flex;flex-direction:row;inline-size:auto;justify-self:start;margin:0}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr>.word-note{grid-column:1/-1;grid-row:3;font-size:var(--secondary);color:var(--textSecondary);margin:0}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .wr :is(.wt,.wt a,.tr,.translit){word-break:normal;overflow-wrap:normal;hyphens:manual}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .wr .wt{font-size:var(--bg-text);padding:0;line-height:1.5}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .wr .tr{font-size:var(--secondary)}
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .wr:not(.audio-ready)::after{grid-column:1/-1;grid-row:2;inline-size:92px;block-size:44px}
@media(max-width:1023px){.overview-hero{grid-template-columns:1fr;gap:var(--s4)}.overview-visual .media{max-block-size:360px}.overview-copy .actions>.button{flex:1}.overview-title{margin:var(--s5)}}
@media(max-width:759px){.overview-title h1{font-size:var(--h1)}.overview-title{margin:var(--s4)}.overview-copy{gap:var(--s3)}.overview-facts{font-size:var(--caption);gap:var(--s2) var(--s3)}.overview-copy .actions>.button{min-inline-size:0}.rd5-unit .lesson-list{padding:var(--s1)}.rd5-unit .lesson-list>.row{flex-wrap:wrap;gap:var(--s2)}.rd5-unit .lesson-list .row-link{gap:var(--s2);flex-basis:100%;padding:var(--s2)}.rd5-unit .lesson-list .row-link>.i:not(.lesson-state-icon),.rd5-unit .lesson-list .row-link>.tag{display:none}.rd5-unit .lesson-list [data-play-lesson]{margin:0 var(--s2) var(--s2);min-block-size:44px;inline-size:calc(100% - var(--s4))}.rd5-unit .lesson-number{inline-size:28px}.rd5-unit .lesson-list h3{font-size:var(--body)}:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles{grid-template-columns:minmax(0,1fr)}.overview-hero{margin-block-end:var(--s6)}.lesson-bottom{background:var(--surfaceElevated);backdrop-filter:none}.overview-copy .prose{font-size:var(--secondary)}}

.overview-copy>.lead{display:block;overflow:visible;-webkit-line-clamp:unset}
main:is([data-kind=lesson],[data-kind=lesson-client]) .reading-layout{grid-template-columns:minmax(0,1fr) 312px;align-items:start}
main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-head{margin:0 0 var(--s6)}
main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-sections>section>h2{margin-block-end:var(--s3)}
main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-aside{display:grid;gap:var(--s3);padding:var(--s4);position:sticky;inset-block-start:calc(var(--topbar-height,76px) + var(--s4));max-block-size:calc(100dvh - var(--topbar-height,76px) - var(--s7));overflow-y:auto;scrollbar-width:thin}
main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-aside h2{font-size:var(--card-title)}
.lesson-aside .lesson-facts{display:grid;gap:var(--s2);font-size:var(--secondary);color:var(--textSecondary)}
.lesson-facts>span{display:flex;align-items:center;gap:var(--s2)}
.lesson-facts .i{inline-size:20px;block-size:20px}
.lesson-unit-context{border-block-start:1px solid var(--border);padding-block-start:var(--s3);display:grid;gap:var(--s2)}
.lesson-unit-context .tertiary{justify-self:start;max-inline-size:100%}
.lesson-unit-steps{display:flex;gap:var(--s1)}
.lesson-unit-steps>span{flex:1;block-size:4px;border-radius:var(--r-chip);background:var(--border)}
.lesson-unit-steps>[data-current]{background:var(--action)}
.lesson-aside .lesson-toc{display:grid;gap:var(--s2);margin:0}
.lesson-aside .lesson-toc a{border:0;padding:var(--s2) var(--s3);border-radius:var(--r-chip);font-size:var(--secondary);min-block-size:44px}
.lesson-aside .lesson-toc a[aria-current]{background:var(--surfaceSunken);color:var(--textPrimary)}
.lesson-aside>.tertiary{justify-self:start}
.lesson-forms-tip.forms-tip{padding:var(--s2);margin:0 0 var(--s6);background:var(--surfaceSunken);border:1px solid var(--border);border-radius:var(--r-tile)}
.forms-tip-bar{display:flex;gap:var(--s2);align-items:center}
.forms-disclosure{display:flex;gap:var(--s3);align-items:center;min-block-size:44px;flex:1;text-align:start;border-radius:var(--r-chip);padding:var(--s2);font-weight:600;transition:background var(--t-hover),transform var(--t-press)}
.forms-disclosure>span{flex:1}
.forms-disclosure:hover{background:var(--surfaceSunken)}
.forms-disclosure:active{transform:scale(.98)}
.forms-disclosure[aria-expanded=true]>.i-down{rotate:180deg}
.lesson-forms-tip .forms-tip-content{padding:var(--s3) var(--s2)}
.lesson-forms-tip .forms-pairs{flex-wrap:wrap;overflow:visible;padding:0}
.lesson-forms-tip .tertiary{justify-self:start;text-align:start}
@media(max-width:1023px){main:is([data-kind=lesson],[data-kind=lesson-client]) .reading-layout{grid-template-columns:minmax(0,1fr)}main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-aside{position:static;max-block-size:none;grid-row:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.lesson-aside .lesson-toc{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:759px){main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-aside{display:none}.lesson-forms-tip .forms-pair{font-size:var(--forms-glyph)}.lesson-forms-tip .forms-tip-content{font-size:var(--secondary)}}
@media(prefers-reduced-motion:reduce){.forms-disclosure:active{transform:none}}

@media(max-width:759px){.rd5-unit .lesson-list>.row{flex-wrap:nowrap;align-items:center}.rd5-unit .lesson-list .row-link{display:grid;grid-template-columns:28px minmax(0,1fr) auto;flex:1;flex-basis:auto;min-inline-size:0}.rd5-unit .lesson-list .row-link>.rc{grid-column:2/-1;grid-row:1}.rd5-unit .lesson-number{grid-column:1;grid-row:1}.rd5-unit .lesson-list .row-link>.i:not(.lesson-state-icon):not(.chevron){display:block;grid-column:2;grid-row:2}.rd5-unit .lesson-list .row-link>.tag{display:block;grid-column:3;grid-row:2;white-space:nowrap;font-size:var(--caption)}.rd5-unit .lesson-state-icon{grid-column:1;grid-row:2}.rd5-unit .lesson-state{grid-column:2/-1;grid-row:3}.rd5-unit .lesson-list [data-play-lesson]{inline-size:auto;margin:0 var(--s2) 0 0;max-inline-size:30%;padding-inline:var(--s2)}.rd5-unit .unit-exam-row .row-link>.rc{grid-column:2/-1}}

.lesson-aside:empty{display:none!important}
html:not(.js) main:is([data-kind=lesson],[data-kind=lesson-client]) .reading-layout{grid-template-columns:minmax(0,1fr)}
.overview-visual .credit-info:focus-visible{box-shadow:var(--ring)}
lb-credit{display:contents}
lb-credit>a{position:absolute;inset-block-start:var(--s2);inset-inline-end:var(--s2);z-index:3;inline-size:44px;block-size:44px;display:grid;place-items:center;color:#1B1C1F;background:#fff;border-radius:50%}
.overview-copy .actions>.button{line-height:1.5;padding-block:var(--s2)}

.rd5-unit .overview-visual{aspect-ratio:16/9;max-block-size:360px;max-inline-size:640px;inline-size:100%;justify-self:center}
.rd5-unit .overview-visual>.unit-cover .media{block-size:100%}
.rd5-unit .lesson-list [data-play-lesson]{min-inline-size:44px}
@media(max-width:759px){.rd5-unit .overview-copy .actions{display:grid;grid-template-columns:minmax(0,1fr)}.rd5-unit .overview-copy .actions>.button{inline-size:100%;flex:none}}

/* Owner's iPhone fixes: real icon/label rows, attached quote marks and paired navigation. */
main:is([data-kind=lesson],[data-kind=lesson-client]) [data-start-over]{display:flex;align-items:center;justify-content:center;gap:var(--s2);line-height:1.5;padding-block:var(--s2)}
[data-start-over]>.i{position:static;flex:none;margin:0}
[data-start-over]>span{min-inline-size:0}
.lesson-pager a.lesson-neighbor{grid-template-columns:minmax(0,1fr) 24px;text-align:start;align-content:start;gap:var(--s2) var(--s3)}
.lesson-pager a.lesson-neighbor>.meta{justify-content:start;grid-column:1}
.lesson-pager .lesson-neighbor>h3{grid-column:1;font-size:var(--card-title)}
.lesson-pager .lesson-neighbor>.i{grid-column:2;grid-row:1/3;align-self:center}
.lesson-neighbor.previous>.i{rotate:180deg}
.lesson-neighbor:active{background:var(--surfaceSunken)}
.lesson-forms-tip .forms-tip-content{display:grid;gap:var(--s3)}
.forms-disclosure,.forms-disclosure>span{min-inline-size:0}
.lesson-forms-tip .forms-disclosure:hover{background:color-mix(in srgb,var(--action) 10%,var(--surfaceSunken))}

.lesson-pager>.lesson-neighbor:only-child{grid-column:1/-1}
@media(max-width:759px){.lesson-pager{grid-template-columns:minmax(0,1fr)}}

.overview-progress:has([data-unit-track][hidden]):has([data-unit-progress][hidden]){display:none}
@media(max-width:759px){.rd5-unit>section{margin-block-start:var(--s6)}}
/* Arabic glyphs keep their full bounds inside the shared 52px action. */
main:is([data-kind=unit],[data-kind=lesson],[data-kind=lesson-client]) :is(.phone-start,.lesson-bottom,.lesson-aside)>.button{line-height:1.5;padding-block:var(--s2)}
/* Short headwords remain full-size controls; an active ToC row still answers hover. */
main:is([data-kind=unit],[data-kind=lesson],[data-kind=lesson-client]) .wr .wt>a{display:inline-block;vertical-align:middle;white-space:normal;min-inline-size:44px;min-block-size:44px}/* inline-block keeps the spaces between Living Word spans (BUG-1); flex dropped them */
.lesson-aside .lesson-toc a:hover{background:color-mix(in srgb,var(--action) 12%,var(--surface));color:var(--textPrimary)}
.lesson-aside .lesson-toc a:active{background:color-mix(in srgb,var(--action) 18%,var(--surface));color:var(--textPrimary)}
main:is([data-kind=lesson],[data-kind=lesson-client]) .lesson-head>.lead{display:block;overflow:visible;-webkit-line-clamp:unset}

/* Text-only lesson culture notes must not retain the former photo column. */
.lesson-sections>.culture-teaser{grid-template-columns:minmax(0,1fr)}
.lesson-sections>.culture-teaser>:not(figure){grid-column:1}

/* Word cards are the only surface; their list is a layout container. */
:is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles.panel{padding:0;border:0;border-radius:0;background:transparent}

/* Lesson and unit vocabulary share compact phone rows with real dividers. */
@media(max-width:759px){
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles{padding:0;gap:0;overflow:visible}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr{border:0;border-block-end:1px solid var(--border);border-radius:0;padding:var(--s3);display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s2) var(--s3);align-items:center}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles>.wr:last-child{border-block-end:0}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles .wr>.rc{grid-column:1;grid-row:1;gap:var(--s1)}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles .wr>.audio-controls{grid-column:2;grid-row:1;align-self:center}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles .wr>.word-picture{grid-column:2;grid-row:2;justify-self:end}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles .wr>.word-note{grid-column:1;grid-row:2;font-size:var(--secondary);margin:0}
 :is(.rd5-unit,main:is([data-kind=lesson],[data-kind=lesson-client])) .word-tiles .wt>a{line-height:1.4;padding-block:var(--s2);display:inline-block}
}

/* R4-29: one quiet metadata line and only one filled lesson action. */
.lesson-list .row{position:relative;align-items:center;gap:var(--s3)}
.lesson-list .row-link{min-block-size:72px;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4)}
.lesson-list .lesson-meta{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s2);margin-block-start:var(--s1)}
.lesson-list .lesson-state:not([hidden])::before{content:'·';margin-inline-end:var(--s2)}
.lesson-list [data-next-lesson]{background:var(--surfaceSunken);border-inline-start:3px solid var(--action)}
.lesson-list .row>[data-play-lesson]{margin-inline-end:var(--s3);flex:none}
.lesson-list [data-status=done] .lesson-state-icon{color:var(--correct)}
@media(max-width:759px){
 .lesson-list .row{display:flex;flex-wrap:wrap;padding:0;gap:0}
 .lesson-list .row-link{flex:1 1 100%;inline-size:100%;min-inline-size:0}
 .lesson-list .row>[data-play-lesson]{margin:0 var(--s4) var(--s3);inline-size:calc(100% - 2 * var(--s4));min-block-size:52px}
}

.rd5-unit .lesson-list .lesson-meta{display:flex;overflow:visible;font-size:var(--caption);-webkit-line-clamp:unset}
@media(max-width:759px){
 .rd5-unit .lesson-list>.row{flex-wrap:wrap;gap:0}
 .rd5-unit .lesson-list .row-link{flex:1 1 100%;grid-template-columns:28px minmax(0,1fr) 20px;padding:var(--s3);min-block-size:72px}
 .rd5-unit .lesson-list .row-link>.rc{grid-column:2;grid-row:1}
 .rd5-unit .lesson-state-icon{grid-column:1;grid-row:1}
 .rd5-unit .lesson-list .row-link>.chevron{display:block;grid-column:3;grid-row:1}
 .rd5-unit .lesson-list [data-play-lesson]{max-inline-size:none;inline-size:calc(100% - var(--s6));margin:0 var(--s3) var(--s3);min-block-size:52px}
}

.lesson-list .row:has([data-play-lesson]:not([hidden])) .row-link>.chevron{display:none}

/* The unit row contract wins over the older overview card selectors. */
#unit-words.unit-word-list{grid-template-columns:minmax(0,1fr);gap:0}
#unit-words.unit-word-list>.wr{border:0;border-block-end:1px solid var(--border);border-radius:0;padding:var(--s3);display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:var(--s2) var(--s3);align-items:center}
#unit-words.unit-word-list>.wr:last-child{border-block-end:0}
#unit-words.unit-word-list>.wr>.rc{grid-column:2;grid-row:1;gap:var(--s1)}
#unit-words.unit-word-list>.wr:not(:has(>.word-picture))>.rc{grid-column:1/3}
#unit-words.unit-word-list>.wr>.audio-controls{grid-column:3;grid-row:1;align-self:center}
#unit-words.unit-word-list>.wr>.word-picture{grid-column:1;grid-row:1;justify-self:start}
#unit-words.unit-word-list>.wr>.word-note{grid-column:1/3;grid-row:2;margin:0}

.lesson-stars-legend{margin-block-start:var(--s3);max-inline-size:75ch}

.overview-title>.eyebrow{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2)}

/* W-DQA4 P3-21: larger headwords; shared card tracks keep voices aligned. */
main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles .wr .wt{font-size:var(--h2)}
@media(min-width:760px){
 main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr{grid-template-rows:subgrid;grid-row:span 3}
 main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr>.audio-controls{align-self:end}
}

/* W-R6 P2-21: the headword lane is identical with or without an illustration. */
#unit-words.unit-word-list>.wr{grid-template-columns:minmax(0,1fr) auto}
#unit-words.unit-word-list>.wr>.rc,#unit-words.unit-word-list>.wr:not(:has(>.word-picture))>.rc{grid-column:1;grid-row:1/3}
#unit-words.unit-word-list>.wr>.audio-controls{grid-column:2;grid-row:1;justify-self:end}
#unit-words.unit-word-list>.wr>.word-picture{grid-column:2;grid-row:2;justify-self:end}
#unit-words.unit-word-list>.wr>.word-note{grid-column:1;grid-row:3}

/* W-R7-6: progress owns a full grid track at every text size. */
.rd5-unit .lesson-list .row-link{display:grid;grid-template-columns:44px minmax(0,1fr) 20px}
.rd5-unit .lesson-list .row-link>.lesson-number,.rd5-unit .lesson-list .row-link>.lesson-state-icon{grid-column:1;grid-row:1;align-self:center}
.rd5-unit .lesson-list .row-link>.rc{grid-column:2;grid-row:1}
.rd5-unit .lesson-list .row-link>.chevron{grid-column:3;grid-row:1}
.rd5-unit .lesson-list .lesson-meta{display:grid;gap:var(--s1);max-inline-size:100%}
.rd5-unit .lesson-list .lesson-state{max-inline-size:none}
.rd5-unit .lesson-list .lesson-state::before{content:none}
.lesson-ring .track{stroke:color-mix(in srgb,var(--textPrimary) 30%,var(--surface))}
.lesson-progress-value{display:grid;place-items:center;position:relative;line-height:1;font-size:var(--eyebrow)}

/* W-R6-N30: title and description share a contained hero below a clear photo. */
.rd5-unit .overview-hero{grid-template-columns:minmax(0,1fr);gap:var(--s4);padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-card);background:var(--surface)}
.rd5-unit .overview-visual{grid-template-columns:minmax(0,1fr)}
.rd5-unit .overview-visual:has(figure)::after{background:linear-gradient(0deg,rgba(0,0,0,.82),rgba(0,0,0,0) 75%)}
.rd5-unit .overview-copy{gap:var(--s3)}

/* W-R8c N30: the desktop unit cover fills a real image/text column. */
@media(min-width:1100px){
 .rd5-unit .overview-hero{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:var(--s6)}
 .rd5-unit .overview-visual{max-inline-size:none;justify-self:stretch}
}

/* W-R11-3: the lesson dock is one opaque band joined to the tab bar.
   Its measured height also reserves room when enlarged labels wrap. */
@media(max-width:759px),(max-height:500px) and (pointer:coarse){
 .lesson-bottom{background:var(--surfaceElevated);backdrop-filter:none;inset-inline:0;inline-size:auto;bottom:calc(var(--tab-bar-height,64px) + var(--vv-bottom,0px));padding:var(--s3) var(--s5);border-block-start:1px solid var(--border);pointer-events:auto}
 .lesson-bottom>.button{block-size:auto;min-block-size:52px}
 main:has(.lesson-bottom.is-shown){padding-block-end:calc(var(--study-dock-height,77px) + var(--s4))}
 html:has(.lesson-bottom.is-shown){scroll-padding-block-end:calc(var(--study-dock-height,77px) + var(--tab-bar-height,64px) + var(--s4))}
 main[data-passage-context]:has(.lesson-bottom.is-shown){padding-block-end:var(--s6)}
}

/* R10-21: readable scroll affordances share the live overflow-edge state. */
.passage-topics{mask-image:linear-gradient(to right,var(--strip-left,#000),#000 32px,#000 calc(100% - 32px),var(--strip-right,#000))}

/* W-R11b N30: the title anchors the description/stats column beside the photo. */
.rd5-unit .overview-hero{align-items:start}
.rd5-unit .overview-title{grid-area:auto;margin:0;color:var(--textPrimary);pointer-events:auto}
.rd5-unit .overview-title .eyebrow{color:var(--textSecondary)}
.rd5-unit .overview-visual:has(figure)::after{display:none}

/* W-R12: the lesson number remains the anchor inside a quiet progress outline. */
.rd5-unit .lesson-list [data-status=progress] .lesson-number{display:grid;place-items:center;position:relative;z-index:1;inline-size:44px;block-size:44px;font-size:var(--secondary);color:var(--textPrimary)}
.rd5-unit .lesson-list .lesson-state-icon.lesson-ring{display:grid;inline-size:44px;block-size:44px}
.rd5-unit .lesson-list .lesson-meta{display:flex;flex-wrap:wrap}
.rd5-unit .lesson-list .lesson-state:not([hidden]){display:flex;align-items:center;gap:var(--s1);flex-basis:100%;max-inline-size:none}
.rd5-unit .lesson-state .i-star{inline-size:1rem;block-size:1rem;color:var(--textSecondary)}
.rd5-unit .lesson-state .i-star.earned{opacity:1;color:var(--textPrimary);--mask:url('data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"%3E%3Cpath d="m12 2 3 6 7 1-5 5 1 7-6-3-6 3 1-7-5-5 7-1 3-6Z"/%3E%3C/svg%3E')}

/* Units without an available source photograph have no empty media slot. */
.rd5-unit .overview-no-media{grid-template-columns:minmax(0,1fr)}

/* R14-6: enlarged vocabulary keeps text, voices and notes on full tracks. */
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles{grid-template-columns:minmax(0,1fr)}
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr{grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;grid-row:auto}
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr>.rc{grid-column:1/-1;grid-row:1}
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr>.audio-controls{grid-column:1;grid-row:2;justify-self:start}
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr>.word-picture{grid-column:2;grid-row:2}
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-tiles>.wr>.word-note{grid-column:1/-1;grid-row:3}
.large-text main:is([data-kind=lesson],[data-kind=lesson-client]) .word-note q>span{overflow-wrap:normal;hyphens:manual}

/* P-RING: the numeral owns its grid track even at 200% text size. */
.rd5-unit .lesson-list .row-link{--lesson-ring-size:max(44px,calc(var(--secondary) * 2.5));grid-template-columns:max(44px,calc(var(--lesson-numeral) * 1.9)) minmax(0,1fr) 20px}
.rd5-unit .lesson-list .row-link>.lesson-number,.rd5-unit .lesson-list .row-link>.lesson-state-icon{justify-self:center}
.rd5-unit .lesson-list [data-status=progress] :is(.lesson-number,.lesson-state-icon.lesson-ring){inline-size:var(--lesson-ring-size);block-size:var(--lesson-ring-size);min-inline-size:0;min-block-size:0}
.rd5-unit .lesson-list .lesson-state-icon.lesson-ring>svg{inline-size:100%;block-size:100%}

/* W-R15-17: chip edges use the live scroll cue rather than a hard cut. */
:root body .passage-topics[data-scroll-cues]{mask-image:linear-gradient(to right,transparent,#000 var(--cue-left,0px),#000 calc(100% - var(--cue-right,0px)),transparent);scroll-padding-inline:var(--s7)}

/* RD-7: graphite collection bands, generous Bulgarian previews, opaque jumps. */
.rd7-hub,.rd7-detail{display:grid;gap:var(--s6);color:var(--textPrimary)}
.rd7-heading{display:grid;gap:var(--s2)}
.rd7-heading :is(h1,p),.rd7-level-band :is(h2,p),.rd7-deck-hero :is(h1,p),.rd7-deck-card :is(h3,p){margin:0}
.rd7-jumps{position:static;z-index:12;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s2);padding:var(--s2);border:1px solid var(--border);border-radius:var(--r-button);background:var(--surfaceElevated);box-shadow:var(--lift-1)}
.rd7-jump{display:grid;place-items:center;min-block-size:44px;border:1.5px solid transparent;border-radius:var(--r-chip);font-weight:700;text-decoration:none;color:var(--textPrimary);background:var(--surfaceSunken);transition:background var(--t-hover),transform var(--t-press)}
.rd7-level{display:grid;gap:var(--s3);scroll-margin-block-start:calc(var(--topbar-height,80px) + 80px)}
.rd7-level-band{display:flex;align-items:center;justify-content:space-between;gap:var(--s4);padding-block-end:var(--s3);border-block-end:1px solid var(--border)}
.rd7-level-copy{display:grid;gap:var(--s1);min-inline-size:0}
.rd7-level-band h2{display:flex;align-items:center;gap:var(--s3);font-size:var(--h2);overflow-wrap:normal;hyphens:manual}
.rd7-level-code{display:grid;place-items:center;flex:none;min-inline-size:48px;min-block-size:44px;border-radius:var(--r-chip);font-family:var(--font-display);background:var(--action);color:var(--onAction)}
.rd7-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s3)}
.rd7-deck-card{display:grid;grid-template-rows:subgrid;grid-row:span 3;row-gap:var(--s2);min-inline-size:0;padding:var(--s4);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface);color:var(--textPrimary);text-decoration:none;transition:transform var(--t-hover) var(--ease-out),box-shadow var(--t-hover),border-color var(--t-hover),background var(--t-hover)}
.rd7-card-head{display:flex;gap:var(--s3);align-items:center;justify-content:space-between;min-inline-size:0}
.rd7-card-head h3{font-size:var(--card-title);line-height:1.25;overflow-wrap:normal;word-break:normal;hyphens:manual;text-wrap:pretty}
.rd7-ring{position:relative;display:grid;place-items:center;flex:none;inline-size:44px;block-size:44px;color:var(--textSecondary);font-size:var(--eyebrow);font-weight:700;font-variant-numeric:tabular-nums}
.rd7-ring svg{position:absolute;inset:0;inline-size:100%;block-size:100%;transform:rotate(-90deg)}
.rd7-ring-track{stroke:var(--border)}.rd7-ring-fill{stroke:var(--action)}
.rd7-preview{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s3);align-content:start;font-size:var(--body);line-height:1.45;color:var(--textPrimary)}
.rd7-preview>.living-word{white-space:nowrap;overflow-wrap:normal;word-break:normal}
.rd7-card-foot{display:flex;gap:var(--s2);justify-content:space-between;align-items:center;color:var(--textSecondary)}
.rd7-card-foot>svg{flex:none;inline-size:20px;block-size:20px;transition:transform var(--t-hover)}
[dir=rtl] .rd7-card-foot>svg{transform:rotate(180deg)}
.rd7-expand.w-button{justify-self:start;min-inline-size:160px}
.rd7-back.w-button{justify-self:start;border-color:transparent;padding-inline:var(--s2)}
.rd7-deck-hero{display:flex;align-items:center;justify-content:space-between;gap:var(--s6);padding:var(--s6);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-card)}
.rd7-deck-copy{display:grid;gap:var(--s3);min-inline-size:0}.rd7-deck-copy>.w-button{justify-self:start}
.rd7-deck-hero>.rd7-ring{inline-size:96px;block-size:96px;font-size:var(--h3)}
.rd7-word-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}
.rd7-word-item{min-inline-size:0;padding:var(--s2);border:1px solid var(--border);border-radius:var(--r-tile);background:var(--surface)}
.rd7-word-item .w-row{padding:0;border:0;gap:var(--s2);align-items:center}
.rd7-word-item .w-row-open{min-inline-size:0;padding:var(--s3);border-radius:var(--r-chip);min-block-size:72px}
.rd7-word-item .w-row-bg{font-size:var(--bg-text);overflow-wrap:normal;hyphens:manual}
.rd7-word-item .w-row-meaning{font-size:var(--secondary);color:var(--textSecondary)}
.rd7-word-item>.w-caption{padding:var(--s2) var(--s3);margin:0}
.rd7-hub :is(.w-caption,.w-secondary),.rd7-detail :is(.w-caption,.w-secondary,.w-translit,.w-row-meta){color:var(--textSecondary)}
.rd7-hub a:focus-visible,.rd7-detail a:focus-visible{outline:2px solid var(--action);outline-offset:2px}
.rd7-jump:active,.rd7-deck-card:active{transform:scale(.98);background:var(--surfaceSunken)}
@media(hover:hover) and (pointer:fine){.rd7-jump:hover{background:color-mix(in srgb,var(--action) 10%,var(--surface));border-color:var(--action)}.rd7-deck-card:hover{transform:translateY(-3px);border-color:var(--action);box-shadow:var(--lift-2)}.rd7-deck-card:hover .rd7-card-foot>svg{transform:translateX(3px)}[dir=rtl] .rd7-deck-card:hover .rd7-card-foot>svg{transform:rotate(180deg) translateX(3px)}}
@media(max-width:899px){.rd7-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.rd7-word-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:599px){.rd7-grid{grid-template-columns:minmax(0,1fr)}.rd7-hub,.rd7-detail{gap:var(--s5)}.rd7-jumps{gap:var(--s1);padding:var(--s1)}.rd7-level-band h2{font-size:var(--h3)}.rd7-level-band>.rd7-ring{display:none}.rd7-deck-hero{padding:var(--s4);align-items:start;gap:var(--s3)}.rd7-deck-hero>.rd7-ring{inline-size:64px;block-size:64px;font-size:var(--caption)}.rd7-deck-copy>.w-button{grid-column:1/-1}.rd7-preview{font-size:var(--bg-text)}}
@media(prefers-reduced-motion:reduce){.rd7-hub *,.rd7-detail *{transition:none!important;scroll-behavior:auto}.rd7-deck-card:is(:hover,:active),.rd7-jump:active{transform:none}}
.js .rd7-grid.capped[data-cap="3"]:not([data-cap-ready])>:nth-child(n+4){display:none}
.rd7-level>.show-all{justify-self:start}
.rd7-jump[aria-current=location]{background:var(--action);color:var(--onAction)}
@media(hover:hover) and (pointer:fine){.rd7-jump[aria-current=location]:hover{background:var(--actionPressed);color:var(--onAction)}}
@media(max-width:759px){.rd7-jumps{inset-block-start:var(--topbar-height,52px)}}
.rd7-hub .w-button:disabled,.rd7-detail .w-button:disabled{opacity:1;background:var(--surfaceSunken);color:var(--textSecondary);border-color:var(--border);box-shadow:none;cursor:default}
[dir=rtl] .rd7-back>svg{transform:rotate(180deg)}
.rd7-card-head{min-block-size:44px}
/* words.css arrives after the critical SSR sheet; preserve component roles. */
.rd7-hub .rd7-ring>svg,.rd7-detail .rd7-ring>svg{inline-size:100%;block-size:100%}
.rd7-hub .rd7-card-head h3{font-size:var(--card-title);overflow-wrap:normal;word-break:normal;hyphens:manual}
.rd7-hub .rd7-card-foot>svg{inline-size:20px;block-size:20px}
.rd7-hub .rd7-level-band h2,.rd7-detail h1{overflow-wrap:normal;word-break:normal;hyphens:manual}
@media(max-width:599px){.rd7-hub .rd7-level-band h2{font-size:var(--h3)}}
.rd7-jumps{inset-block-start:var(--rd7-sticky-top,calc(var(--topbar-height,80px) + var(--s5)))}
.rd7-level{scroll-margin-block-start:calc(var(--rd7-sticky-top,100px) + 80px)}
.rd7-hub{line-height:1.45}
.rd7-hub .rd7-card-head h3{font-family:var(--font-display);font-weight:900;line-height:1.15}
.rd7-heading>p:last-child{font-size:var(--secondary)}
.rd7-level-copy>p,.rd7-card-foot>span{line-height:1.5}
.rd7-level>.show-all{min-block-size:44px;padding:var(--s2) var(--s3);font-size:var(--secondary);line-height:1.2}
html:is([lang=ar],[lang=he]) :is(.rd7-hub,.rd7-detail){font-family:var(--font-system)}
html:is([lang=ar],[lang=he]) :is(.rd7-hub,.rd7-detail) :is(h1,h2,h3){font-family:var(--font-system);line-height:1.45;letter-spacing:0}
/* Page-local shell seams are part of the W integration, scoped to these routes. */
main:is([data-kind=decks],[data-kind=deck-client])>.breadcrumbs>a{min-inline-size:44px;justify-content:center;padding-inline:var(--s1);border-radius:var(--r-chip)}
body:has(main[data-kind=deck-client]) .compact-footer a.tertiary:hover{background:color-mix(in srgb,var(--action) 8%,var(--surface));border-radius:var(--r-chip)}
.rd7-deck-copy>.lead{font-size:var(--secondary);line-height:1.45;color:var(--textSecondary)}
/* Held presses must win over the shared pointer-hover rules. */
.rd7-hub .w-button:active:not(:disabled),.rd7-detail .w-button:active:not(:disabled){transform:scale(.98);background:color-mix(in srgb,var(--action) 14%,var(--surface));color:var(--textPrimary);box-shadow:var(--lift-1)}
.rd7-detail .w-button.w-primary:active:not(:disabled){background:var(--actionPressed);color:var(--onAction)}
.rd7-hub .rd7-deck-card:active{transform:scale(.98)}
.rd7-detail .w-row-open:active{transform:scale(.98);background:color-mix(in srgb,var(--action) 12%,var(--surface))}
@media(prefers-reduced-motion:reduce){.rd7-hub .rd7-deck-card:active,.rd7-detail .w-row-open:active{transform:none!important}}
@media(hover:hover) and (pointer:fine){.rd7-deck-card:hover{background:color-mix(in srgb,var(--action) 6%,var(--surface));border-color:color-mix(in srgb,var(--action) 35%,var(--border))}}
.rd7-detail .w-button.w-primary:disabled{background:var(--surfaceSunken);color:var(--textSecondary);border-color:var(--border);box-shadow:none;opacity:1}
.rd7-detail .w-button.w-primary:disabled:after{display:none}
/* html already reserves 100px for anchor scrolling; avoid counting it twice. */
.rd7-level{scroll-margin-block-start:calc(var(--rd7-sticky-top,100px) - var(--s6))}
/* A retained slot lets the jump bar stay usable through the footer, instead
   of a containing block pushing sticky controls behind the floating header. */
.rd7-jump-slot{min-inline-size:0}
.rd7-jump-slot>.rd7-jumps{position:static}

/* view-transition-name gives main its own stacking context. Keep its fixed
   collection navigation above the later footer, below the persistent shell. */
main[data-kind=decks]{position:relative;z-index:1}
/* PLAYER-R5 P2-17: compact deck lists, one unadorned row link and sense tags. */
.rd7-word-grid .w-row-open{text-decoration:none}
.rd7-word-grid .w-row-open:is(:hover,:focus-visible) .w-row-bg{text-decoration:underline;text-underline-offset:.18em}
.rd7-word-grid>[data-deck-expand]{grid-column:1/-1;justify-self:start}
.r5-sense-tag{display:inline-block;margin-inline-start:var(--s2);font-size:var(--caption);font-weight:400;color:var(--textSecondary)}
main[data-kind=deck-client]>.breadcrumbs{flex-wrap:nowrap}
main[data-kind=deck-client]>.breadcrumbs>svg{flex:none}
main[data-kind=deck-client]>.breadcrumbs>a{display:block;align-content:center;flex:0 1 auto;min-inline-size:44px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
main[data-kind=deck-client]>.breadcrumbs [aria-current]{flex:1 1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-inline-size:0}

/* PLAYER-R5b: the merged-deck action keeps its foreground/background pair. */
.w-root .rd7-merged>.w-primary{background:var(--action);color:var(--onAction);justify-self:start}
.w-root .rd7-merged>.w-primary:is(:hover,:active){background:var(--actionPressed);color:var(--onAction)}

/* PLAYER-R5b gate: complete ancestor labels, compact current deck identity. */
main[data-kind=deck-client]>.breadcrumbs{flex-wrap:wrap;gap:var(--s2)}
main[data-kind=deck-client]>.breadcrumbs>:is(a,span){flex:0 1 auto;inline-size:max-content;max-inline-size:100%;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
main[data-kind=deck-client]>.breadcrumbs>a{min-inline-size:44px}

/* P-RING: the largest percentage fits its circle when text is enlarged. */
.rd7-ring{inline-size:max(44px,3em);block-size:max(44px,3em)}
.large-text .rd7-grid{grid-template-columns:minmax(0,1fr)}
.large-text .rd7-level-band h2{flex-wrap:wrap}
/* A long German title must not widen the mobile layout viewport at 200%. */
.large-text .rd7-heading{min-inline-size:0}
.large-text .rd7-heading h1{overflow-wrap:anywhere}

.i{display:inline-block;background:currentColor;mask:var(--mask) center/contain no-repeat;-webkit-mask:var(--mask) center/contain no-repeat}
.i-alphabet{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m2%2018%205-12%205%2012M4%2014h6m5%204V6h4c5%200%205%206%200%206h-4m4%200c5%200%205%206%200%206h-4%22%20%2F%3E%3C%2Fsvg%3E")}.i-atom{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%205c4-4%2020%2011%2016%2014S0%208%204%205ZM20%205C16%201%200%2016%204%2019S24%208%2020%205Z%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%221.5%22%20%2F%3E%3C%2Fsvg%3E")}.i-auto{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M12%203a9%209%200%200%201%200%2018Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-backward{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m8%202-6%205%206%205M2%207h10c13%200%2013%2015%200%2015%22%20%2F%3E%3C%2Fsvg%3E")}.i-bag{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%227%22%20width%3D%2216%22%20height%3D%2215%22%20rx%3D%222%22%20%2F%3E%3Cpath%20d%3D%22M8%2010V6c0-6%208-6%208%200v4%22%20%2F%3E%3C%2Fsvg%3E")}.i-bed{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%209v13m20-13v13M2%2018h20M4%209V3h16v6M2%2015v-4c0-3%2020-3%2020%200v4M7%206h3m4%200h3%22%20%2F%3E%3C%2Fsvg%3E")}.i-book-filled{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M2%204c4-2%207-1%209%200v17c-3-2-6-3-9-2Zm11%200c3-2%206-2%209%200v15c-3-1-6%200-9%202Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-book{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v16M12%205C8%202%203%203%202%204v15c3-1%207-1%2010%202%203-3%207-3%2010-2V4c-3-1-7-1-10%201Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-branch{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203v12a4%204%200%200%200%204%204h10M15%2015l4%204-4%204M5%2011c7%200%206-6%2014-6M15%201l4%204-4%204%22%20%2F%3E%3C%2Fsvg%3E")}.i-briefcase{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%227%22%20width%3D%2220%22%20height%3D%2214%22%20rx%3D%222%22%20%2F%3E%3Cpath%20d%3D%22M8%207V3h8v4M2%2012c5%204%2015%204%2020%200m-10%201v4%22%20%2F%3E%3C%2Fsvg%3E")}.i-browser{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%222%22%20y%3D%224%22%20width%3D%2220%22%20height%3D%2216%22%20rx%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M2%209h20M6%206.5h.1M9%206.5h.1M12%206.5h.1M7%2014h10m-10%203h6%22%20%2F%3E%3C%2Fsvg%3E")}.i-building{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m2%208%2010-6%2010%206ZM4%2010v9m5-9v9m6-9v9m5-9v9M2%2022h20M2%2019h20%22%20%2F%3E%3C%2Fsvg%3E")}.i-bus{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2017H3V5c0-2%2018-2%2018%200v12h-2M7%2017h10M4%2011h16M8%204v7M16%204v7M6%2020h1v-3H6v3ZM17%2020h1v-3h-1v3Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-calendar{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%222%22%20%2F%3E%3Cpath%20d%3D%22M3%2010h18M7%202v6m10-6v6M7%2014h3m4%200h3m-10%204h3%22%20%2F%3E%3C%2Fsvg%3E")}.i-car{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%2010%203-7h12l3%207v10h-3v-3H6v3H3Zm0%200h18M6%2013h2m8%200h2%22%20%2F%3E%3C%2Fsvg%3E")}.i-carrot{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%208C7%203%203%2018%203%2021c4-1%2018-8%2011-13ZM16%207l4-4M16%204V1M19%208h4M7%2014l3%202M10%209l2%202%22%20%2F%3E%3C%2Fsvg%3E")}.i-cart{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%203h3l3%2013h11l3-10H6M9%2020h.01M18%2020h.01%22%20%2F%3E%3C%2Fsvg%3E")}.i-chart{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203v18h18M6%2016l5-7%204%203%206-8%22%20%2F%3E%3C%2Fsvg%3E")}.i-chat{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2014a3%203%200%200%201-3%203H9l-6%204V5a3%203%200%200%201%203-3h12a3%203%200%200%201%203%203Z%22%20%2F%3E%3Cpath%20d%3D%22M7%207h10M7%2012h7%22%20%2F%3E%3C%2Fsvg%3E")}.i-check-circle{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%3Cpath%20d%3D%22m7%2012%203%203%207-7%22%20%2F%3E%3C%2Fsvg%3E")}.i-check{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m5%2012%204%204L19%206%22%20%2F%3E%3C%2Fsvg%3E")}.i-chevron{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m9%205%207%207-7%207%22%20%2F%3E%3C%2Fsvg%3E")}.i-clock{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%3Cpath%20d%3D%22M12%206v6l4%202%22%20%2F%3E%3C%2Fsvg%3E")}.i-close{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%206%2012%2012M6%2018%2018%206%22%20%2F%3E%3C%2Fsvg%3E")}.i-cloud{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2019c-7%200-6-9%200-9%200-10%2015-10%2015%200%206%200%205%209-1%209Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-columns{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%208l10-5%2010%205H2ZM4%2021h16M6%2010v8M12%2010v8M18%2010v8%22%20%2F%3E%3C%2Fsvg%3E")}.i-cup{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%207h13v7c0%209-13%209-13%200Zm13%201h3c5%200%203%207-3%206M2%2022h16M6%202v2m5-2v2%22%20%2F%3E%3C%2Fsvg%3E")}.i-down{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m6%209%206%206%206-6%22%20%2F%3E%3C%2Fsvg%3E")}.i-download{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2015v6h18v-6M12%202v15m-5-5%205%205%205-5%22%20%2F%3E%3C%2Fsvg%3E")}.i-ear{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%2010c-1-10%2015-11%2014-1%200%205-6%205-6%2010s-7%204-7-1m3-8c-1-5%206-6%206-1%200%203-4%203-4%206%22%20%2F%3E%3C%2Fsvg%3E")}.i-euro{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M19%205a8%208%200%201%200%200%2014M4%2010h12M4%2014h10%22%20%2F%3E%3C%2Fsvg%3E")}.i-expand{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M9%203H3v6m12%2012h6v-6M3%203l7%207m11%2011-7-7%22%20%2F%3E%3C%2Fsvg%3E")}.i-external{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M14%203h7v7m0-7L10%2014m-2-9H3v16h16v-5%22%20%2F%3E%3C%2Fsvg%3E")}.i-eye{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M1%2012c6-11%2016-11%2022%200-6%2011-16%2011-22%200Z%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%20%2F%3E%3C%2Fsvg%3E")}.i-flag{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2021V3m0%201c5-4%209%204%2014%200v10c-5%204-9-4-14%200%22%20%2F%3E%3C%2Fsvg%3E")}.i-flame{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M13%202c1%205-5%206-3%2011%202-1%203-3%203-5%204%203%207%206%206%2010a7%207%200%200%201-14-1c0-4%203-7%205-9-1%204%200%205%201%206-1-5%203-7%202-12Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-food{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%202v7c0%204%206%204%206%200V2M7%202v20M20%202c-6%202-6%2011-1%2011h1m0-11v20%22%20%2F%3E%3C%2Fsvg%3E")}.i-gift{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%227%22%20width%3D%2218%22%20height%3D%225%22%20rx%3D%221%22%20%2F%3E%3Cpath%20d%3D%22M5%2012v10h14V12M12%207v15m0-15c-9-1-6-8-2-5l2%205c9-1%206-8%202-5Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-globe{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2212%22%20rx%3D%224%22%20ry%3D%229%22%20%2F%3E%3Cpath%20d%3D%22M3%2012h18%22%20%2F%3E%3C%2Fsvg%3E")}.i-graduation{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%208l10-5%2010%205-10%205-10-5ZM6%2010v7c4%203%208%203%2012%200v-7M22%208v10%22%20%2F%3E%3C%2Fsvg%3E")}.i-hand{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%2012V5a1.5%201.5%200%200%201%203%200v6-8a1.5%201.5%200%200%201%203%200v8-6a1.5%201.5%200%200%201%203%200v7-4a1.5%201.5%200%200%201%203%200v8c0%208-9%208-12%204l-5-6c-2-3%200-4%202-2l3%203%22%20%2F%3E%3C%2Fsvg%3E")}.i-headphones{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2014V11c0-12%2018-12%2018%200v3M3%2012h4v9H3Zm14%200h4v9h-4%22%20%2F%3E%3C%2Fsvg%3E")}.i-health{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%225%22%20width%3D%2218%22%20height%3D%2216%22%20rx%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M9%205V2h6v3M12%209v8m-4-4h8%22%20%2F%3E%3C%2Fsvg%3E")}.i-heart{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2021%203%2012C-4%203%208-2%2012%206c4-8%2016-3%209%206Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-home{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m2%2011%2010-9%2010%209M5%209v12h5v-7h4v7h5V9%22%20%2F%3E%3C%2Fsvg%3E")}.i-info{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%229%22%20%2F%3E%3Cpath%20d%3D%22M12%2010v7m0-10v.1%22%20%2F%3E%3C%2Fsvg%3E")}.i-key{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%227%22%20cy%3D%228%22%20r%3D%225%22%20%2F%3E%3Cpath%20d%3D%22m11%2012%209%209%203-3-2-2-2%202-2-2%202-2-2-2%22%20%2F%3E%3C%2Fsvg%3E")}.i-laptop{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%203h14v13H5V3ZM2%2020l3-4h14l3%204H2Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-link{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M10%208l3-3a5%205%200%200%201%207%207l-3%203M14%2016l-3%203a5%205%200%200%201-7-7l3-3M8%2016l8-8%22%20%2F%3E%3C%2Fsvg%3E")}.i-list{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%206h13M8%2012h13M8%2018h13M3%206h.1M3%2012h.1M3%2018h.1%22%20%2F%3E%3C%2Fsvg%3E")}.i-lock{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%224%22%20y%3D%2210%22%20width%3D%2216%22%20height%3D%2212%22%20rx%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M7%2010V6a5%205%200%200%201%2010%200v4m-5%205v3%22%20%2F%3E%3C%2Fsvg%3E")}.i-mail{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h18v14H3V6ZM3%207l9%207%209-7M17%203h5%22%20%2F%3E%3C%2Fsvg%3E")}.i-map{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m2%205%207-3%206%203%207-3v17l-7%203-6-3-7%203Zm7-3v17m6-14v17%22%20%2F%3E%3C%2Fsvg%3E")}.i-masks{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%203c4%202%206%202%2010%200v7c0%205-5%207-5%207S2%2015%202%2010V3ZM6%207h.01M9%207h.01M5%2011l4%201M12%208c4%202%206%202%2010%200v7c0%205-5%207-5%207s-5-2-5-7M16%2012h.01M19%2012h.01M15%2017q3-2%205%200%22%20%2F%3E%3C%2Fsvg%3E")}.i-mic{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%229%22%20y%3D%222%22%20width%3D%226%22%20height%3D%2213%22%20rx%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M5%2010v2a7%207%200%200%200%2014%200v-2m-7%209v3m-4%200h8%22%20%2F%3E%3C%2Fsvg%3E")}.i-minus{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012h14%22%20%2F%3E%3C%2Fsvg%3E")}.i-moon{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M21%2013A9%209%200%200%201%2011%203a9%209%200%201%200%2010%2010Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-nature{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%203C2%200%200%2019%209%2020c9%201%2013-7%2011-17ZM5%2021%2016%209%22%20%2F%3E%3C%2Fsvg%3E")}.i-network{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v6M5%2018l7-7%207%207M5%2018h14%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%224%22%20r%3D%222%22%20%2F%3E%3Ccircle%20cx%3D%224%22%20cy%3D%2219%22%20r%3D%222%22%20%2F%3E%3Ccircle%20cx%3D%2220%22%20cy%3D%2219%22%20r%3D%222%22%20%2F%3E%3C%2Fsvg%3E")}.i-news{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%202h18v20H3ZM7%206h10M7%2010h4v5H7Zm7%200h3m-3%204h3M7%2019h10%22%20%2F%3E%3C%2Fsvg%3E")}.i-palette{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202a10%2010%200%201%200%200%2020h2c3%200%203-3%201-4-2-1-1-4%202-4h3c4-5-2-12-8-12ZM7%207h.01M12%205h.01M17%208h.01M5%2012h.01%22%20%2F%3E%3C%2Fsvg%3E")}.i-pan{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%208h13v4a6%206%200%200%201-12%200V8ZM16%209h6M6%204h7%22%20%2F%3E%3C%2Fsvg%3E")}.i-pause{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%204v16M16%204v16%22%20%2F%3E%3C%2Fsvg%3E")}.i-pen{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%2016%2013-13c3-3%208%202%205%205L8%2021l-6%201Zm11-11%205%205M3%2016l5%205%22%20%2F%3E%3C%2Fsvg%3E")}.i-people{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%229%22%20cy%3D%228%22%20r%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M2%2021v-3c0-7%2014-7%2014%200v3M16%205c5%200%205%206%200%206m2%204c4%200%204%203%204%206%22%20%2F%3E%3C%2Fsvg%3E")}.i-person-filled{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22none%22%20d%3D%22M12%202a10%2010%200%201%201%200%2020%2010%2010%200%200%201%200-20Zm0%204a3%203%200%201%201%200%206%203%203%200%200%201%200-6ZM5%2019c1-6%2013-6%2014%200Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-person{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229%22%20r%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M5%2019c1-6%2013-6%2014%200%22%20%2F%3E%3C%2Fsvg%3E")}.i-pet{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cellipse%20cx%3D%2212%22%20cy%3D%2216%22%20rx%3D%226%22%20ry%3D%225%22%20%2F%3E%3Cellipse%20cx%3D%223%22%20cy%3D%229%22%20rx%3D%222%22%20ry%3D%223%22%20%2F%3E%3Cellipse%20cx%3D%229%22%20cy%3D%225%22%20rx%3D%222%22%20ry%3D%223%22%20%2F%3E%3Cellipse%20cx%3D%2216%22%20cy%3D%225%22%20rx%3D%222%22%20ry%3D%223%22%20%2F%3E%3Cellipse%20cx%3D%2222%22%20cy%3D%2210%22%20rx%3D%222%22%20ry%3D%223%22%20%2F%3E%3C%2Fsvg%3E")}.i-phone{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%226%22%20y%3D%222%22%20width%3D%2212%22%20height%3D%2220%22%20rx%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M10%205h4m-2%2014h.1%22%20%2F%3E%3C%2Fsvg%3E")}.i-pin{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%2022s8-8%208-13a8%208%200%201%200-16%200c0%205%208%2013%208%2013Z%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%229%22%20r%3D%222.5%22%20%2F%3E%3C%2Fsvg%3E")}.i-plane{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m22%202-8%2020-3-9-9-3Zm0%200L11%2013%22%20%2F%3E%3C%2Fsvg%3E")}.i-play{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m8%204%2012%208-12%208Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-plus{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%205v14M5%2012h14%22%20%2F%3E%3C%2Fsvg%3E")}.i-printer{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M6%208V2h12v6M6%2018H2V8h20v10h-4M6%2014h12v8H6Zm12-3h1%22%20%2F%3E%3C%2Fsvg%3E")}.i-puzzle{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203h6c-3%206%209%206%206%200h6v6c-6-3-6%209%200%206v6h-6c3-6-9-6-6%200H3v-6c6%203%206-9%200-6Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-quote{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%206h7v7l-5%205H3l4-5H3V6ZM14%206h7v7l-5%205h-2l4-5h-4V6Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-review-filled{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20fill%3D%22black%22%20d%3D%22M2%202v8h8L7%207a6%206%200%200%201%2010%203l3-1A9%209%200%200%200%205%205Zm20%2020v-8h-8l3%203a6%206%200%200%201-10-3l-3%201a9%209%200%200%200%2015%204Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-review{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M20%209a8%208%200%200%200-14-3L3%209m0-6v6h6M4%2015a8%208%200%200%200%2014%203l3-3m0%206v-6h-6%22%20%2F%3E%3C%2Fsvg%3E")}.i-ruler{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2017L17%203l4%204L7%2021l-4-4ZM13%207l2%202M10%2010l2%202M7%2013l2%202M3%203l18%2018%22%20%2F%3E%3C%2Fsvg%3E")}.i-run{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2215%22%20cy%3D%224%22%20r%3D%222%22%20%2F%3E%3Cpath%20d%3D%22m5%209%205-2%205%206%205%201m-9-6-3%207-5%204m6-5%207%202-2%206%22%20%2F%3E%3C%2Fsvg%3E")}.i-seal{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%202%203%202%204%201%201%204%202%203-2%203-1%204-4%201-3%202-3-2-4-1-1-4-2-3%202-3%201-4%204-1Z%20m-5%2010%203%203%207-7%22%20%2F%3E%3C%2Fsvg%3E")}.i-search{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2210%22%20cy%3D%2210%22%20r%3D%227%22%20%2F%3E%3Cpath%20d%3D%22m15%2015%206%206%22%20%2F%3E%3C%2Fsvg%3E")}.i-settings{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m10%202-.5%203-2%20.8L5%204%202%209l2.5%202v2L2%2015l3%205%202.5-1.8%202%20.8.5%203h4l.5-3%202-.8L19%2020l3-5-2.5-2v-2L22%209l-3-5-2.5%201.8-2-.8L14%202Z%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%223%22%20%2F%3E%3C%2Fsvg%3E")}.i-shield{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202l9%204v7c0%205-9%209-9%209S3%2018%203%2013V6l9-4ZM8%2012l3%203%205-6%22%20%2F%3E%3C%2Fsvg%3E")}.i-shirt{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m8%203-7%204%203%206%203-1v10h10V12l3%201%203-6-7-4c0%205-8%205-8%200Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-sliders{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%205h18M3%2012h18M3%2019h18M7%203v4M16%2010v4M10%2017v4%22%20%2F%3E%3C%2Fsvg%3E")}.i-smile{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%209h.01M16%209h.01M7%2014c3%204%207%204%2010%200%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%2210%22%20%2F%3E%3C%2Fsvg%3E")}.i-sofa{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M5%2012V6h14v6M5%2010H2v10h20V10h-3v6H5v-6ZM5%2020v2M19%2020v2%22%20%2F%3E%3C%2Fsvg%3E")}.i-sort{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%206h16M7%2012h10M10%2018h4%22%20%2F%3E%3C%2Fsvg%3E")}.i-sos{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M12%202L1%2022h22L12%202ZM12%209v6M12%2018h.01%22%20%2F%3E%3C%2Fsvg%3E")}.i-sparkles{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m10%203%202%206%206%202-6%202-2%206-2-6-6-2%206-2Zm9%2012%201%203%203%201-3%201-1%203-1-3-3-1%203-1ZM19%202v6m-3-3h6%22%20%2F%3E%3C%2Fsvg%3E")}.i-speaker{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m3%209%204%200%205-4v14l-5-4H3Zm13-1a6%206%200%200%201%200%208m3-11a10%2010%200%200%201%200%2014%22%20%2F%3E%3C%2Fsvg%3E")}.i-speed{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2020a10%2010%200%201%201%2018%200M12%2016l5-8M6%208l2%202m4-6v3m8%205h-3%22%20%2F%3E%3C%2Fsvg%3E")}.i-stack{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2215%22%20height%3D%2215%22%20rx%3D%222%22%20%2F%3E%3Cpath%20d%3D%22M7%2021h12a2%202%200%200%200%202-2V7M7%208h7m-7%205h5%22%20%2F%3E%3C%2Fsvg%3E")}.i-star{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22m12%202%203%207%208%201-6%205%202%208-7-4-7%204%202-8-6-5%208-1Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-stethoscope{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M4%203v6a5%205%200%200%200%2010%200V3M3%203h3M12%203h3M9%2014v3a5%205%200%200%200%2010%200v-5%22%20%2F%3E%3Ccircle%20cx%3D%2219%22%20cy%3D%229%22%20r%3D%223%22%20%2F%3E%3C%2Fsvg%3E")}.i-suitcase{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M8%205V2h8v3M5%206h14v14H5V6ZM8%209v8M16%209v8M7%2020v2M17%2020v2%22%20%2F%3E%3C%2Fsvg%3E")}.i-sun-filled{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%225%22%20fill%3D%22black%22%20%2F%3E%3Cpath%20d%3D%22M12%202v2m0%2016v2M2%2012h2m16%200h2M5%205l1.5%201.5m11%2011L19%2019M5%2019l1.5-1.5m11-11L19%205%22%20%2F%3E%3C%2Fsvg%3E")}.i-sun{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2212%22%20r%3D%224%22%20%2F%3E%3Cpath%20d%3D%22M12%202v2m0%2016v2M2%2012h2m16%200h2M5%205l1.5%201.5m11%2011L19%2019M5%2019l1.5-1.5m11-11L19%205%22%20%2F%3E%3C%2Fsvg%3E")}.i-sunrise{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%2019h20M6%2015a6%206%200%200%201%2012%200M12%203v3M3%207l2%202m14%200%202-2M2%2014h2m16%200h2%22%20%2F%3E%3C%2Fsvg%3E")}.i-tools{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%203l6%206-3%203-5-5c-1%205%204%208%207%206l8%208%204-4-8-8c2-4-1-8-6-8l4%205-3%203M14%209l6-6%202%202-6%206M8%2014l-6%206%202%202%206-6%22%20%2F%3E%3C%2Fsvg%3E")}.i-trophy{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M7%203h10v8a5%205%200%200%201-10%200V3Zm0%202H3v4c0%203%203%204%204%204m10-8h4v4c0%203-3%204-4%204m-5%203v5m-5%200h10%22%20%2F%3E%3C%2Fsvg%3E")}.i-upload{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%2015v6h18v-6M12%2017V2m-5%205%205-5%205%205%22%20%2F%3E%3C%2Fsvg%3E")}.i-video{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M2%204h20v16H2V4ZM10%208l6%204-6%204V8Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-washer{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20d%3D%22M3%202h18v20H3V2ZM3%207h18M6%205h.01M9%205h.01M8%2015c2-3%206%203%208%200%22%20%2F%3E%3Ccircle%20cx%3D%2212%22%20cy%3D%2214%22%20r%3D%225%22%20%2F%3E%3C%2Fsvg%3E")}.i-words-filled{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Cpath%20fill%3D%22black%22%20fill-rule%3D%22evenodd%22%20stroke%3D%22none%22%20d%3D%22M6%203h12a3%203%200%200%201%203%203v12a3%203%200%200%201-3%203H6a3%203%200%200%201-3-3V6a3%203%200%200%201%203-3Zm0%2014%204-10h2l4%2010h-2l-1-3H9l-1%203Zm4-5h2l-1-3Zm7-5v10h1V7Z%22%20%2F%3E%3C%2Fsvg%3E")}.i-words{--mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2024%2024%22%20fill%3D%22none%22%20stroke%3D%22black%22%20stroke-width%3D%221.6%22%20stroke-linecap%3D%22round%22%20stroke-linejoin%3D%22round%22%3E%3Crect%20x%3D%223%22%20y%3D%223%22%20width%3D%2218%22%20height%3D%2218%22%20rx%3D%223%22%20%2F%3E%3Cpath%20d%3D%22M7%2016l4-9%204%209m-6.5-3h5M17%206v12%22%20%2F%3E%3C%2Fsvg%3E")}