@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/ielts/assets/nunito-cyrillic-ext-wght-normal-D4X5GqEv.woff2) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/ielts/assets/nunito-cyrillic-wght-normal-CY6AOgYE.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/ielts/assets/nunito-vietnamese-wght-normal-U01xdrZh.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/ielts/assets/nunito-latin-ext-wght-normal-CXYtwYOx.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Variable;font-style:normal;font-display:swap;font-weight:200 1000;src:url(/ielts/assets/nunito-latin-wght-normal-BzFMHfZw.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{color-scheme:light;--tk-ink-900: #2a2140;--tk-ink-600: #5e5675;--tk-ink-500: #706888;--tk-line-300: #d9d3e6;--tk-line-200: #eae6f2;--tk-fog-100: #f2eee3;--tk-fog-50: #f8f5ee;--tk-caramel: #ff9a1f;--tk-caramel-soft: #ffefd9;--tk-caramel-ink: #a04f00;--tk-caramel-ledge: #e07800;--tk-pink: #ff5fa2;--tk-pink-soft: #ffe5f1;--tk-pink-ink: #b0236a;--tk-pink-ledge: #e03a82;--tk-lemon: #ffd43b;--tk-lemon-soft: #fff6cc;--tk-lemon-ink: #7a5a00;--tk-lemon-ledge: #e5b100;--tk-mint: #22c38e;--tk-mint-soft: #ddf8ee;--tk-mint-ink: #0b7353;--tk-mint-ledge: #149e70;--tk-sky: #3fa9f5;--tk-sky-soft: #e2f2ff;--tk-sky-ink: #17619f;--tk-sky-ledge: #1e86d6;--tk-grape: #9b6cff;--tk-grape-soft: #f0e8ff;--tk-grape-ink: #5a30b5;--tk-grape-ledge: #7745e6;--tk-berry: #ff4d6a;--tk-berry-soft: #ffe3e8;--tk-berry-ink: #b01d3a;--tk-berry-ledge: #d42a48;--tk-fox: #ee6c33;--tk-fox-soft: #ffe7da;--tk-fox-ink: #a03300;--tk-fox-ledge: #c24b1a;--tk-navy: #1d2e4a;--tk-navy-soft: #e6ebf3;--tk-navy-ink: #0d1726;--tk-navy-ledge: #0e1a2e;--tk-gold: #e5b842;--tk-gold-soft: #fff2cf;--tk-gold-ink: #705200;--tk-gold-ledge: #b88a1c;--tk-biscuit: #fbf6ec;--tk-biscuit-border: #eadfc9;--tk-biscuit-ledge: #d9cdb6;--tk-sky-strong: #1c78c4;--tk-sky-strong-ledge: #135a96;--tk-berry-strong: #c8243f;--tk-berry-strong-ledge: #961a30;--ds-bg: var(--tk-fog-50);--ds-surface: #ffffff;--ds-surface-sunken: var(--tk-fog-100);--ds-border: var(--tk-line-200);--ds-border-strong: var(--tk-line-300);--ds-grid-line: rgba(29, 46, 74, .042);--ds-lamp-glow: rgba(229, 184, 66, .06);--ds-sprinkle-1: #ffc4dd;--ds-sprinkle-2: #bfe3ff;--ds-sprinkle-3: #ffe89a;--ds-sprinkle-4: #bdf0dd;--ds-sprinkle-5: #ddccff;--ds-candy-tint: 40%;--ds-scrim: rgba(42, 33, 64, .45);--ds-shine: rgba(255, 255, 255, .5);--ds-shadow-float: 0 18px 40px rgba(42, 33, 64, .16);--ds-text: var(--tk-ink-900);--ds-text-muted: var(--tk-ink-600);--ds-text-subtle: var(--tk-ink-500);--ds-focus: var(--tk-sky-strong);--ds-caramel: var(--tk-caramel);--ds-caramel-soft: var(--tk-caramel-soft);--ds-caramel-ink: var(--tk-caramel-ink);--ds-caramel-ledge: var(--tk-caramel-ledge);--ds-pink: var(--tk-pink);--ds-pink-soft: var(--tk-pink-soft);--ds-pink-ink: var(--tk-pink-ink);--ds-pink-ledge: var(--tk-pink-ledge);--ds-lemon: var(--tk-lemon);--ds-lemon-soft: var(--tk-lemon-soft);--ds-lemon-ink: var(--tk-lemon-ink);--ds-lemon-ledge: var(--tk-lemon-ledge);--ds-mint: var(--tk-mint);--ds-mint-soft: var(--tk-mint-soft);--ds-mint-ink: var(--tk-mint-ink);--ds-mint-ledge: var(--tk-mint-ledge);--ds-sky: var(--tk-sky);--ds-sky-soft: var(--tk-sky-soft);--ds-sky-ink: var(--tk-sky-ink);--ds-sky-ledge: var(--tk-sky-ledge);--ds-grape: var(--tk-grape);--ds-grape-soft: var(--tk-grape-soft);--ds-grape-ink: var(--tk-grape-ink);--ds-grape-ledge: var(--tk-grape-ledge);--ds-fox: var(--tk-fox);--ds-fox-soft: var(--tk-fox-soft);--ds-fox-ink: var(--tk-fox-ink);--ds-fox-ledge: var(--tk-fox-ledge);--ds-navy: var(--tk-navy);--ds-navy-soft: var(--tk-navy-soft);--ds-navy-ink: var(--tk-navy-ink);--ds-navy-ledge: var(--tk-navy-ledge);--ds-gold: var(--tk-gold);--ds-gold-soft: var(--tk-gold-soft);--ds-gold-ink: var(--tk-gold-ink);--ds-gold-ledge: var(--tk-gold-ledge);--ds-biscuit: var(--tk-biscuit);--ds-biscuit-border: var(--tk-biscuit-border);--ds-biscuit-ledge: var(--tk-biscuit-ledge);--ds-brand: var(--tk-caramel);--ds-brand-ledge: var(--tk-caramel-ledge);--ds-wplus-body: var(--tk-caramel);--ds-wplus-eyes: var(--tk-ink-900);--ds-brand-soft: var(--tk-caramel-soft);--ds-brand-ink: var(--tk-caramel-ink);--ds-on-brand: var(--tk-ink-900);--ds-ok: var(--tk-mint);--ds-ok-ledge: var(--tk-mint-ledge);--ds-ok-soft: var(--tk-mint-soft);--ds-ok-ink: var(--tk-mint-ink);--ds-on-ok: #04301f;--ds-bad: var(--tk-berry);--ds-bad-ledge: var(--tk-berry-ledge);--ds-bad-soft: var(--tk-berry-soft);--ds-bad-ink: var(--tk-berry-ink);--ds-bad-strong: var(--tk-berry-strong);--ds-bad-strong-ledge: var(--tk-berry-strong-ledge);--ds-on-bad: #ffffff;--ds-warn: var(--tk-lemon);--ds-warn-ledge: var(--tk-lemon-ledge);--ds-warn-soft: var(--tk-lemon-soft);--ds-warn-ink: var(--tk-lemon-ink);--ds-info: var(--tk-sky);--ds-info-ledge: var(--tk-sky-ledge);--ds-info-soft: var(--tk-sky-soft);--ds-info-ink: var(--tk-sky-ink);--ds-flame: #ff7a1a;--ds-sentence: var(--tk-caramel);--ds-sentence-soft: var(--tk-caramel-soft);--ds-sentence-ink: var(--tk-caramel-ink);--ds-sentence-ledge: var(--tk-caramel-ledge);--ds-words: var(--tk-grape);--ds-words-soft: var(--tk-grape-soft);--ds-words-ink: var(--tk-grape-ink);--ds-words-ledge: var(--tk-grape-ledge);--ds-listen: var(--tk-sky);--ds-listen-soft: var(--tk-sky-soft);--ds-listen-ink: var(--tk-sky-ink);--ds-listen-ledge: var(--tk-sky-ledge);--ds-listen-strong: var(--tk-sky-strong);--ds-listen-strong-ledge: var(--tk-sky-strong-ledge);--ds-on-listen: #ffffff;--ds-toffee: #d08a3c;--ds-toffee-deep: #5e3714;--ds-toffee-shine: #fff8ec;--ds-toffee-drop: #8fc8f2;--ds-yellow: #ffca05;--ds-blush: #f3a3a0;--ds-font: "Nunito Variable", "Nunito", "PingFang TC", "Noto Sans TC", "Microsoft JhengHei", system-ui, sans-serif;--ds-text-xs: .75rem;--ds-text-sm: .875rem;--ds-text-base: 1rem;--ds-text-lg: 1.125rem;--ds-text-title: 1.5rem;--ds-text-display: 2rem;--ds-text-hero: 2.75rem;--ds-leading: 1.6;--ds-leading-heading: 1.3;--ds-radius-sm: 12px;--ds-radius-md: 16px;--ds-radius-lg: 24px;--ds-radius-card: 26px;--ds-radius-tile: 22px;--ds-radius-xl: 32px;--ds-radius-pill: 999px;--ds-stroke: 2px;--ds-ledge: 4px;--ds-ledge-sm: 3px;--ds-ledge-chunky: 5px;--ds-control: 48px;--ds-space-1: 4px;--ds-space-2: 8px;--ds-space-3: 12px;--ds-space-4: 16px;--ds-space-6: 24px;--ds-space-8: 32px;--ds-space-12: 48px;--ds-gutter: 16px;--ds-motion-fast: .12s;--ds-motion-base: .2s;--ds-motion-smooth: .32s;--ds-ease-out: cubic-bezier(.2, .8, .2, 1);--ds-ease-bounce: cubic-bezier(.3, 1.6, .5, 1)}:root[data-theme=dark]{color-scheme:dark;--ds-bg: #141724;--ds-surface: #211c38;--ds-surface-sunken: #1a162d;--ds-border: #322b4d;--ds-border-strong: #463d66;--ds-grid-line: rgba(255, 255, 255, .035);--ds-lamp-glow: rgba(229, 184, 66, .08);--ds-sprinkle-1: #4a2440;--ds-sprinkle-2: #1f3b5c;--ds-sprinkle-3: #4f4108;--ds-sprinkle-4: #1d4638;--ds-sprinkle-5: #36295c;--ds-scrim: rgba(0, 0, 0, .6);--ds-shine: rgba(255, 255, 255, .25);--ds-shadow-float: 0 18px 40px rgba(0, 0, 0, .5);--ds-text: #f7f3ff;--ds-text-muted: #c9c1e0;--ds-text-subtle: #9c93ba;--ds-focus: #8cc8ff;--ds-caramel-soft: #4a2a08;--ds-caramel-ink: #ffbe6b;--ds-pink-soft: #45193a;--ds-pink-ink: #ff9cc8;--ds-lemon-soft: #42370a;--ds-lemon-ink: #ffe27a;--ds-mint-soft: #0f3a2e;--ds-mint-ink: #6fe6bd;--ds-sky-soft: #12304d;--ds-sky-ink: #8fcbff;--ds-grape-soft: #2d2152;--ds-grape-ink: #c9b0ff;--ds-fox-soft: #4a1d0a;--ds-fox-ink: #ff9c73;--ds-navy-soft: #1e2a3d;--ds-navy-ink: #bcd3f2;--ds-gold-soft: #3d3008;--ds-gold-ink: #ffe17d;--ds-biscuit: #191629;--ds-biscuit-border: #322b4d;--ds-biscuit-ledge: #211c38;--ds-brand-soft: #4a2a08;--ds-brand-ink: #ffbe6b;--ds-ok-soft: #0f3a2e;--ds-ok-ink: #6fe6bd;--ds-bad-soft: #451a28;--ds-bad-ink: #ff95a8;--ds-warn-soft: #42370a;--ds-warn-ink: #ffe27a;--ds-info-soft: #12304d;--ds-info-ink: #8fcbff;--ds-sentence-soft: #4a2a08;--ds-sentence-ink: #ffbe6b;--ds-words-soft: #2d2152;--ds-words-ink: #c9b0ff;--ds-listen-soft: #12304d;--ds-listen-ink: #8fcbff;--ds-candy-tint: 0%}:root[data-exam=ielts]{--ds-radius-sm: 8px;--ds-radius-md: 12px;--ds-radius-lg: 16px;--ds-radius-card: 16px;--ds-radius-tile: 14px;--ds-radius-xl: 20px;--ds-stroke: 1px;--ds-ledge: 0px;--ds-ledge-sm: 0px;--ds-ledge-chunky: 0px;--ds-grid-line: transparent;--ds-lamp-glow: transparent}:root[data-exam=ielts]:not([data-theme=dark]){--ds-bg: #f6f7fb;--ds-surface: #ffffff;--ds-surface-sunken: #eceff6;--ds-border: #e3e6ef;--ds-border-strong: #cdd2e0;--ds-text: #151b2e;--ds-text-muted: #4a5368;--ds-text-subtle: #5f687d;--ds-focus: #3b4fd8;--ds-brand: #3b4fd8;--ds-brand-ledge: #2f40b5;--ds-brand-soft: #e9ecfd;--ds-brand-ink: #2a3bb0;--ds-on-brand: #ffffff;--ds-scrim: rgba(21, 27, 46, .45);--ds-shadow-float: 0 12px 32px rgba(21, 27, 46, .14);--ds-shadow-card: 0 1px 2px rgba(21, 27, 46, .05), 0 6px 20px rgba(21, 27, 46, .05)}:root[data-exam=ielts][data-theme=dark]{--ds-bg: #0e1220;--ds-surface: #161b2d;--ds-surface-sunken: #121727;--ds-border: #252c44;--ds-border-strong: #343c58;--ds-text: #eef1fa;--ds-text-muted: #b8bfd3;--ds-text-subtle: #9099b1;--ds-focus: #a9b6ff;--ds-brand: #8d9bff;--ds-brand-ledge: #7482f0;--ds-brand-soft: #1e2650;--ds-brand-ink: #b9c3ff;--ds-on-brand: #0b1030;--ds-shadow-float: 0 12px 32px rgba(0, 0, 0, .5);--ds-shadow-card: 0 1px 2px rgba(0, 0, 0, .4)}:root[data-exam=ielts][data-layout=canvas]:not([data-theme=dark]){--ds-bg: #f6f5f9;--ds-surface: #ffffff;--ds-surface-sunken: #ecebf2;--ds-border: #e3e1ea;--ds-border-strong: #d2cedd;--ds-text: #1b1a22;--ds-text-muted: #5f5b6e;--ds-text-subtle: #66627a;--ds-focus: #6b2bd8;--ds-brand: #6b2bd8;--ds-brand-ledge: #4f1ba8;--ds-brand-soft: #f1eaff;--ds-brand-ink: #5a22be;--ds-on-brand: #ffffff;--ds-panel: #ffffff;--ds-hero-fill: linear-gradient(135deg, #9e74f1 0%, #b998f6 100%);--ds-hero-done-fill: linear-gradient(135deg, #6e3ae3 0%, #7e41ee 100%);--ds-hero-ink: #1b1a22;--ds-hero-eyebrow: #2a1a4a;--ds-hero-track: rgba(255, 255, 255, .45);--ds-hero-bar: #ffffff;--ds-hero-button: #ffffff;--ds-hero-button-ink: #5a22be;--ds-streak: #ffede6;--ds-streak-ink: #b33a16;--ds-streak-flame: #f25f3a;--ds-chip: #ecebf2;--ds-chip-ink: #3a3747;--ds-task-title: #1b1a22;--ds-task-listen-gap: linear-gradient(90deg, #ee5f95 0%, #f48db7 100%);--ds-task-listen-gap-ink: #3a0f22;--ds-task-listen-choose: linear-gradient(90deg, #ff8a1f 0%, #ffaf52 100%);--ds-task-listen-choose-ink: #4a2300;--ds-task-read-tfng: linear-gradient(90deg, #1db3a3 0%, #45cebc 100%);--ds-task-read-tfng-ink: #063d37;--ds-task-read-gap: linear-gradient(90deg, #7f95e3 0%, #a4b5f1 100%);--ds-task-read-gap-ink: #1b2550;--ds-tick: #ffffff;--ds-tick-ink: #6b2bd8;--ds-tick-open: rgba(255, 255, 255, .35);--ds-nav: #ffffff;--ds-nav-ink: #6e6a7c;--ds-nav-active: #6b2bd8;--ds-badge: #d6336c;--ds-on-badge: #ffffff;--ds-scrim: rgba(27, 26, 34, .45);--ds-hero-done-ink: #ffffff;--ds-hero-done-sub: #f1eaff;--ds-more-pink: #fde6f0;--ds-more-pink-ink: #6b2e47;--ds-more-lemon: #fff1da;--ds-more-lemon-ink: #6b4a12;--ds-more-mint: #dcf6f1;--ds-more-mint-ink: #0f4d45;--ds-meter-current: #c9b5f5;--ds-meter-open: #e2dfe9;--ds-audio-card: #ecebf2;--ds-wave: #cdbdf3;--ds-wave-heard: #6b2bd8;--ds-option: #ecebf2;--ds-option-picked: #f1eaff;--ds-option-key: #ffffff;--ds-option-key-ink: #3a3747;--ds-right: #14a58c;--ds-right-fill: #e9faf5;--ds-wrong: #e0457b;--ds-wrong-fill: #fff0f5;--ds-sheet-right: #e2f7f0;--ds-sheet-right-ink: #0c7a6b;--ds-sheet-right-button: #0e7a6c;--ds-sheet-right-button-ink: #ffffff;--ds-sheet-wrong: #fde8ef;--ds-sheet-wrong-ink: #c42a5c;--ds-sheet-quote: #ffffff;--ds-result-blob: #eee6ff;--ds-dot-listen-gap: #ee5f95;--ds-dot-listen-choose: #ff8a1f;--ds-dot-read-tfng: #1db3a3;--ds-dot-read-gap: #7f95e3;--ds-dot-listen-choose-many: #f0b000;--ds-dot-read-choose: #3aa0e8;--ds-dot-read-choose-many: #5bbf4a;--ds-topic-lemon: #fff1da;--ds-topic-sky: #e6ecfc;--ds-topic-peach: #ffe5dd;--ds-topic-periwinkle: #e4e9f9;--ds-topic-grape: #f0e8ff;--ds-topic-mint: #ddf6f2;--ds-topic-pink: #fde6f0;--ds-topic-rose: #fce3ea;--ds-segment: #ecebf2;--ds-segment-on: #ffffff;--ds-segment-shadow: 0 1px 3px rgba(27, 26, 34, .12);--ds-words-hero: linear-gradient(135deg, #1db3a3 0%, #45cebc 100%);--ds-words-hero-ink: #063d37;--ds-words-hero-button: #ffffff;--ds-words-hero-button-ink: #0c7a6b;--ds-missed: #fde8ef;--ds-missed-ink: #8a1d47;--ds-review-banner: #f1eaff;--ds-words-hero-title: #1b1a22;--ds-word-card: #ffffff;--ds-word-card-edge: #e3e1ea;--ds-word-card-shadow: 0 16px 36px rgba(27, 26, 34, .08);--ds-word-stack-back: #fff1da;--ds-word-stack-mid: #ddf6f2;--ds-word-meter: #1db3a3;--ds-row-line: #e8e6ee;--ds-welcome-fade: linear-gradient(180deg, #f6f5f9 0%, #eee6ff 100%);--ds-blob-pink: #f9cbdf;--ds-blob-blue: #c9d4f5;--ds-blob-mint: #bfeee6;--ds-blob-grape: #efe7ff;--ds-blob-peach: #ffe9cf;--ds-dot-off: #d9d5e3;--ds-brand-glow: rgba(107, 43, 216, .28);--ds-letter-glow: rgba(158, 116, 241, .28);--ds-jelly-white: #ffffff;--ds-jelly-ink: #1b0b45;--ds-jelly-tile-ink: #1b0b45;--ds-jelly-glyph: #ffffff;--ds-jelly-tone-brand: #6b2bd8;--ds-jelly-tone-brand-top: #7c47e2;--ds-jelly-tone-sky: #4a63c8;--ds-jelly-tone-sky-top: #6179d6;--ds-jelly-tone-mint: #0f8c7e;--ds-jelly-tone-mint-top: #20a596;--ds-jelly-tone-pink: #d6336c;--ds-jelly-tone-pink-top: #e4568a;--ds-jelly-tone-amber: #d97706;--ds-jelly-tone-amber-top: #ee9a2e;--ds-jelly-tone-amber-deep: #c26a00;--ds-jelly-tone-amber-deep-top: #e8890c;--ds-jelly-tone-rose: #c62f43;--ds-jelly-tone-rose-top: #d8545f;--ds-jelly-tone-green: #3f9a30;--ds-jelly-tone-green-top: #5dbf4c;--ds-letter-shadow: rgba(74, 40, 150, .2);--ds-letter-shadow-deep: rgba(24, 6, 70, .28);--ds-switch-off: #d9d5e3;--ds-switch-knob: #ffffff;--ds-switch-knob-shadow: 0 1px 3px rgba(0, 0, 0, .2);--ds-slider-track: #e2dfe9;--ds-slider-thumb: #ffffff;--ds-goal-picked: #f3edff;--ds-goal-picked-ink: #4f1ba8;--ds-goal-hint: #f3edff;--ds-goal-hint-ink: #3a2a66;--ds-date-tile: #ffffff;--ds-date-tile-band: #ec6a8c;--ds-cal-done: #efe7ff;--ds-cal-done-ink: #4f1ba8;--ds-cal-out: #6c6880;--ds-cal-key-edge: #b99bf2;--ds-report-card: #ecebf2;--ds-ai-bubble: #f3edff;--ds-ai-bubble-ink: #3a2a66;--ds-ai-card: #ffffff;--ds-ai-card-edge: #e2deea;--ds-ai-copied: #0b7a6f;--ds-ai-copied-ink: #ffffff;--ds-wb-arc: #fff1da;--ds-glass-nav: linear-gradient(to bottom, rgba(255, 255, 255, .58), rgba(255, 255, 255, .4));--ds-glass-nav-solid: #ffffff;--ds-glass-nav-edge: rgba(27, 26, 34, .08);--ds-glass-nav-shadow: inset 0 1px 0 rgba(255, 255, 255, .95), inset 0 -1px 0 rgba(255, 255, 255, .35), inset 0 0 0 1px rgba(255, 255, 255, .3), 0 10px 30px rgba(27, 26, 34, .16), 0 1px 4px rgba(27, 26, 34, .08);--ds-glass-nav-lens: linear-gradient(to bottom, rgba(107, 43, 216, .13), rgba(107, 43, 216, .07));--ds-glass-nav-lens-shadow: inset 0 1px 0 rgba(255, 255, 255, .8), inset 0 0 0 .5px rgba(107, 43, 216, .12), 0 1px 3px rgba(27, 26, 34, .06);--ds-glass-nav-ink: #3a3747;--ds-press-scale: .97;--ds-press-in: .1s;--ds-press-out: .3s;--ds-press-in-ease: cubic-bezier(.2, .8, .2, 1);--ds-press-spring: cubic-bezier(.34, 1.56, .64, 1);--ds-press-dim: .7;--ds-bubble: #ecebf2;--ds-placement-chip: #fde6f0;--ds-placement-chip-ink: #a3264d;--ds-spark-amber: #f8a61e;--ds-spark-pink: #f49bc2;--ds-spark-teal: #28c1b0;--ds-shadow-card: none;--ds-shadow-float: 0 12px 32px rgba(27, 26, 34, .16)}:root[data-exam=ielts][data-layout=canvas][data-theme=dark]{--ds-bg: #1b1a22;--ds-surface: #23222c;--ds-surface-sunken: #2b2a35;--ds-border: #34323f;--ds-border-strong: #44414f;--ds-text: #f3f1f8;--ds-text-muted: #a7a2b8;--ds-text-subtle: #9a95ab;--ds-focus: #b79bff;--ds-brand: #b79bff;--ds-brand-ledge: #9b7cf0;--ds-brand-soft: #2a2140;--ds-brand-ink: #d6c6ff;--ds-on-brand: #1b1031;--ds-panel: #23222c;--ds-hero-fill: linear-gradient(135deg, #46309a 0%, #6249bd 100%);--ds-hero-done-fill: linear-gradient(135deg, #46309a 0%, #6249bd 100%);--ds-hero-ink: #ffffff;--ds-hero-eyebrow: #e4daff;--ds-hero-track: rgba(255, 255, 255, .25);--ds-hero-bar: #ffffff;--ds-hero-button: #ffffff;--ds-hero-button-ink: #46309a;--ds-streak: #3a2219;--ds-streak-ink: #ffb8a0;--ds-streak-flame: #f25f3a;--ds-chip: #2b2a35;--ds-chip-ink: #d6d2e3;--ds-task-title: #ffffff;--ds-task-listen-gap: linear-gradient(90deg, #8c4462 0%, #975370 100%);--ds-task-listen-gap-ink: #ffe3ee;--ds-task-listen-choose: linear-gradient(90deg, #8d531f 0%, #935f2f 100%);--ds-task-listen-choose-ink: #ffebd6;--ds-task-read-tfng: linear-gradient(90deg, #157167 0%, #237b71 100%);--ds-task-read-tfng-ink: #ddfbf6;--ds-task-read-gap: linear-gradient(90deg, #4a5b9c 0%, #5466ab 100%);--ds-task-read-gap-ink: #e6ecff;--ds-tick: #ffffff;--ds-tick-ink: #46309a;--ds-tick-open: rgba(255, 255, 255, .2);--ds-nav: #201f28;--ds-nav-ink: #9a95ab;--ds-nav-active: #b79bff;--ds-badge: #d6336c;--ds-on-badge: #ffffff;--ds-scrim: rgba(0, 0, 0, .6);--ds-hero-done-ink: #ffffff;--ds-hero-done-sub: #e4daff;--ds-more-pink: #3a1f2c;--ds-more-pink-ink: #ffd6e6;--ds-more-lemon: #3a2e17;--ds-more-lemon-ink: #ffe3b0;--ds-more-mint: #12322e;--ds-more-mint-ink: #c9f5ee;--ds-meter-current: #5b3fa8;--ds-meter-open: #34323f;--ds-audio-card: #2b2a35;--ds-wave: #4a3d72;--ds-wave-heard: #b79bff;--ds-option: #2b2a35;--ds-option-picked: #2a2140;--ds-option-key: #23222c;--ds-option-key-ink: #d6d2e3;--ds-right: #3cc9b1;--ds-right-fill: #12322e;--ds-wrong: #f27aa3;--ds-wrong-fill: #3a1f2c;--ds-sheet-right: #12322e;--ds-sheet-right-ink: #7fe3d2;--ds-sheet-right-button: #0f7f72;--ds-sheet-right-button-ink: #ffffff;--ds-sheet-wrong: #3a1f2c;--ds-sheet-wrong-ink: #ff9fc0;--ds-sheet-quote: #23222c;--ds-result-blob: #2a2140;--ds-dot-listen-gap: #f07aa6;--ds-dot-listen-choose: #ffa04d;--ds-dot-read-tfng: #3cc9b1;--ds-dot-read-gap: #99aaf0;--ds-dot-listen-choose-many: #ffcd4a;--ds-dot-read-choose: #6cbcf2;--ds-dot-read-choose-many: #7fd36e;--ds-topic-lemon: #3a2e17;--ds-topic-sky: #1f2a44;--ds-topic-peach: #3d231c;--ds-topic-periwinkle: #232a45;--ds-topic-grape: #2a2140;--ds-topic-mint: #12322e;--ds-topic-pink: #3a1f2c;--ds-topic-rose: #3d1f28;--ds-segment: #2b2a35;--ds-segment-on: #44414f;--ds-segment-shadow: none;--ds-words-hero: linear-gradient(135deg, #157167 0%, #237b71 100%);--ds-words-hero-ink: #ddfbf6;--ds-words-hero-button: #ffffff;--ds-words-hero-button-ink: #0c5f55;--ds-missed: #3a1f2c;--ds-missed-ink: #ffc2d6;--ds-review-banner: #2a2140;--ds-words-hero-title: #ffffff;--ds-word-card: #23222c;--ds-word-card-edge: #34323f;--ds-word-card-shadow: none;--ds-word-stack-back: #3a2e17;--ds-word-stack-mid: #12322e;--ds-word-meter: #3cc9b1;--ds-row-line: #2b2a35;--ds-welcome-fade: linear-gradient(180deg, #1b1a22 0%, #2a2140 100%);--ds-blob-pink: #4a2236;--ds-blob-blue: #232a45;--ds-blob-mint: #12322e;--ds-blob-grape: #2a2140;--ds-blob-peach: #3d2a1c;--ds-dot-off: #44414f;--ds-brand-glow: rgba(0, 0, 0, .4);--ds-letter-glow: rgba(183, 155, 255, .16);--ds-jelly-white: #ffffff;--ds-jelly-ink: #0b0620;--ds-jelly-tile-ink: #1b0b45;--ds-jelly-glyph: #1b0b45;--ds-jelly-tone-brand: #b79bff;--ds-jelly-tone-brand-top: #cdbbff;--ds-jelly-tone-sky: #8fa6f2;--ds-jelly-tone-sky-top: #a9bbf7;--ds-jelly-tone-mint: #5fd0c0;--ds-jelly-tone-mint-top: #86e0d2;--ds-jelly-tone-pink: #f58db3;--ds-jelly-tone-pink-top: #f8a6c4;--ds-jelly-tone-amber: #f6b450;--ds-jelly-tone-amber-top: #f9c878;--ds-jelly-tone-amber-deep: #ee9d36;--ds-jelly-tone-amber-deep-top: #f5b765;--ds-jelly-tone-rose: #f28a94;--ds-jelly-tone-rose-top: #f6a6ad;--ds-jelly-tone-green: #7fd36e;--ds-jelly-tone-green-top: #a2e394;--ds-letter-shadow: rgba(0, 0, 0, .4);--ds-letter-shadow-deep: rgba(0, 0, 0, .45);--ds-switch-off: #44414f;--ds-switch-knob: #ffffff;--ds-switch-knob-shadow: 0 1px 3px rgba(0, 0, 0, .5);--ds-slider-track: #34323f;--ds-slider-thumb: #f3f1f8;--ds-goal-picked: #2a2140;--ds-goal-picked-ink: #d6c6ff;--ds-goal-hint: #2a2140;--ds-goal-hint-ink: #e4daff;--ds-date-tile: #1b1a22;--ds-date-tile-band: #d6517e;--ds-cal-done: #2a2140;--ds-cal-done-ink: #d6c6ff;--ds-cal-out: #8a8699;--ds-cal-key-edge: #6249bd;--ds-report-card: #2b2a35;--ds-ai-bubble: #2a2140;--ds-ai-bubble-ink: #e4dcff;--ds-ai-card: #23222c;--ds-ai-card-edge: #34323f;--ds-ai-copied: #0f7f72;--ds-ai-copied-ink: #ffffff;--ds-wb-arc: #33281a;--ds-glass-nav: linear-gradient(to bottom, rgba(48, 46, 60, .66), rgba(26, 25, 34, .58));--ds-glass-nav-solid: #25242e;--ds-glass-nav-edge: rgba(255, 255, 255, .14);--ds-glass-nav-shadow: inset 0 1px 0 rgba(255, 255, 255, .14), 0 12px 32px rgba(0, 0, 0, .55), 0 2px 8px rgba(0, 0, 0, .3);--ds-glass-nav-lens: linear-gradient(to bottom, rgba(183, 155, 255, .22), rgba(183, 155, 255, .12));--ds-glass-nav-lens-shadow: inset 0 1px 0 rgba(255, 255, 255, .18), inset 0 0 0 .5px rgba(255, 255, 255, .08);--ds-glass-nav-ink: #dcd8e6;--ds-press-scale: .97;--ds-press-in: .1s;--ds-press-out: .3s;--ds-press-in-ease: cubic-bezier(.2, .8, .2, 1);--ds-press-spring: cubic-bezier(.34, 1.56, .64, 1);--ds-press-dim: .7;--ds-bubble: #2b2a35;--ds-placement-chip: #3a1f2c;--ds-placement-chip-ink: #ffc2d6;--ds-spark-amber: #f8a61e;--ds-spark-pink: #f49bc2;--ds-spark-teal: #28c1b0;--ds-shadow-card: none;--ds-shadow-float: 0 12px 32px rgba(0, 0, 0, .5)}.ds-button{--btn-bg: var(--ds-surface);--btn-fg: var(--ds-text);--btn-edge: var(--ds-border);--btn-ledge: var(--ds-border-strong);--btn-drop: var(--ds-ledge);position:relative;display:inline-flex;align-items:center;justify-content:center;gap:var(--ds-space-2);min-width:var(--ds-control);min-height:var(--ds-control);padding:10px 20px;border:var(--ds-stroke) solid var(--btn-edge);border-radius:var(--ds-radius-md);background:var(--btn-bg);color:var(--btn-fg);box-shadow:0 var(--btn-drop) 0 var(--btn-ledge);font:800 var(--ds-text-base) / 1.25 var(--ds-font);letter-spacing:.02em;text-decoration:none;cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;transition:transform var(--ds-motion-fast) var(--ds-ease-out),box-shadow var(--ds-motion-fast) var(--ds-ease-out),filter var(--ds-motion-fast)}.ds-button>svg{flex-shrink:0}.ds-button:active:not(:disabled){transform:translateY(var(--btn-drop));box-shadow:0 0 0 var(--btn-ledge)}.ds-button:focus-visible{outline:3px solid var(--ds-focus);outline-offset:3px}@media(hover:hover){.ds-button:hover:not(:disabled){filter:brightness(1.04)}}.ds-button--large{min-height:56px;padding:14px 24px;border-radius:18px;font-size:var(--ds-text-lg)}.ds-button--compact{--btn-drop: var(--ds-ledge-sm);min-height:40px;padding:6px 14px;border-radius:var(--ds-radius-sm);font-size:var(--ds-text-sm)}.ds-button--primary{--btn-bg: var(--ds-brand);--btn-fg: var(--ds-on-brand);--btn-edge: var(--ds-brand);--btn-ledge: var(--ds-brand-ledge)}.ds-button--success{--btn-bg: var(--ds-ok);--btn-fg: var(--ds-on-ok);--btn-edge: var(--ds-ok);--btn-ledge: var(--ds-ok-ledge)}.ds-button--danger{--btn-bg: var(--ds-bad-strong);--btn-fg: var(--ds-on-bad);--btn-edge: var(--ds-bad-strong);--btn-ledge: var(--ds-bad-strong-ledge)}.ds-button--tertiary{--btn-bg: var(--ds-surface-sunken);--btn-edge: var(--ds-surface-sunken);--btn-ledge: var(--ds-border)}.ds-button--ghost{--btn-bg: transparent;--btn-edge: transparent;--btn-fg: var(--ds-brand-ink);box-shadow:none}.ds-button--ghost:active:not(:disabled){transform:none}.ds-button:disabled:not([aria-busy=true]){--btn-bg: var(--ds-surface-sunken);--btn-fg: var(--ds-text-subtle);--btn-edge: var(--ds-border);--btn-ledge: var(--ds-border);cursor:not-allowed}.ds-button--ghost:disabled:not([aria-busy=true]){--btn-bg: transparent;--btn-edge: transparent}.ds-icon-button{--btn-drop: var(--ds-ledge-sm);width:44px;min-width:44px;height:44px;min-height:44px;padding:0;border-radius:var(--ds-radius-pill)}.ds-spinner{animation:ds-spin 1s linear infinite}@keyframes ds-spin{to{transform:rotate(360deg)}}.ds-choice-chips{display:flex;flex-wrap:wrap;gap:var(--ds-space-2)}.ds-chip{display:inline-flex;align-items:center;gap:var(--ds-space-1);min-height:40px;padding:6px 14px;border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-pill);background:var(--ds-surface);color:var(--ds-text);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-border);font:800 var(--ds-text-sm) / 1.3 var(--ds-font);white-space:nowrap;cursor:pointer;transition:transform var(--ds-motion-fast) var(--ds-ease-out),box-shadow var(--ds-motion-fast) var(--ds-ease-out)}.ds-chip[aria-checked=true]{border-color:var(--ds-brand);background:var(--ds-brand-soft);color:var(--ds-brand-ink);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-brand-ledge)}.ds-chip:active:not(:disabled){transform:translateY(var(--ds-ledge-sm));box-shadow:0 0 0 var(--ds-border)}.ds-chip:focus-visible{outline:3px solid var(--ds-focus);outline-offset:3px}.ds-card{border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);box-shadow:0 var(--ds-ledge) 0 var(--ds-border);color:var(--ds-text)}.ds-notice{margin:0;padding:var(--ds-space-3) var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-info-soft);border-radius:var(--ds-radius-md);background:var(--ds-info-soft);color:var(--ds-info-ink);font-size:var(--ds-text-sm);font-weight:700;line-height:var(--ds-leading);overflow-wrap:anywhere}.ds-notice--error{border-color:var(--ds-bad-soft);background:var(--ds-bad-soft);color:var(--ds-bad-ink)}.ds-notice--success{border-color:var(--ds-ok-soft);background:var(--ds-ok-soft);color:var(--ds-ok-ink)}.ds-tag{display:inline-flex;align-items:center;padding:2px 10px;border-radius:var(--ds-radius-pill);background:var(--ds-surface-sunken);color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:800;line-height:1.6}.ds-tag[data-tone=sentence]{background:var(--ds-sentence-soft);color:var(--ds-sentence-ink)}.ds-tag[data-tone=words]{background:var(--ds-words-soft);color:var(--ds-words-ink)}.ds-tag[data-tone=listen]{background:var(--ds-listen-soft);color:var(--ds-listen-ink)}.ds-tag[data-tone=speak]{background:var(--ds-pink-soft);color:var(--ds-pink-ink)}.ds-tag[data-tone=vocab]{background:var(--ds-lemon-soft);color:var(--ds-lemon-ink)}.ds-field{display:grid;gap:var(--ds-space-2);font-size:var(--ds-text-sm);font-weight:700}.ds-field input,.ds-field select{min-height:var(--ds-control);padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-stroke) solid var(--ds-border-strong);border-radius:var(--ds-radius-sm);background:var(--ds-surface);color:var(--ds-text);font:700 16px var(--ds-font)}.ds-field input:focus,.ds-field select:focus{outline:3px solid var(--ds-focus);outline-offset:2px}.ds-visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){.ds-spinner{animation:none}.ds-button,.ds-chip{transition:none}}@media(forced-colors:active){.ds-button,.ds-chip,.ds-card{border-color:ButtonText}.ds-chip[aria-checked=true]{border-color:Highlight}}*,*:before,*:after{box-sizing:border-box}body{margin:0;background-color:var(--ds-bg);background-image:linear-gradient(to right,var(--ds-grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--ds-grid-line) 1px,transparent 1px);background-size:24px 24px;color:var(--ds-text);font:600 var(--ds-text-base) / var(--ds-leading) var(--ds-font);-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:100%}:root[data-theme=dark] body{background-image:linear-gradient(to right,var(--ds-grid-line) 1px,transparent 1px),linear-gradient(to bottom,var(--ds-grid-line) 1px,transparent 1px),radial-gradient(ellipse at 50% 0%,var(--ds-lamp-glow),transparent 75%);background-size:24px 24px,24px 24px,100% 100%}h1,h2,h3,h4{margin:0;font-weight:900;line-height:var(--ds-leading-heading);text-wrap:pretty}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus{outline:none}button,input,textarea,select{font-family:inherit}[data-tone=caramel]{--tone: var(--ds-caramel);--tone-soft: var(--ds-caramel-soft);--tone-ink: var(--ds-caramel-ink);--tone-ledge: var(--ds-caramel-ledge)}[data-tone=pink]{--tone: var(--ds-pink);--tone-soft: var(--ds-pink-soft);--tone-ink: var(--ds-pink-ink);--tone-ledge: var(--ds-pink-ledge)}[data-tone=lemon]{--tone: var(--ds-lemon);--tone-soft: var(--ds-lemon-soft);--tone-ink: var(--ds-lemon-ink);--tone-ledge: var(--ds-lemon-ledge)}[data-tone=mint]{--tone: var(--ds-mint);--tone-soft: var(--ds-mint-soft);--tone-ink: var(--ds-mint-ink);--tone-ledge: var(--ds-mint-ledge)}[data-tone=sky]{--tone: var(--ds-sky);--tone-soft: var(--ds-sky-soft);--tone-ink: var(--ds-sky-ink);--tone-ledge: var(--ds-sky-ledge)}[data-tone=grape]{--tone: var(--ds-grape);--tone-soft: var(--ds-grape-soft);--tone-ink: var(--ds-grape-ink);--tone-ledge: var(--ds-grape-ledge)}.ds-card[data-tone]{border-color:var(--tone-soft);box-shadow:0 var(--ds-ledge) 0 var(--tone)}.ds-card[data-tone]>h2:before,.ds-card[data-tone]>.tf-section-head>h2:before{content:"";display:inline-block;width:14px;height:14px;margin-inline-end:8px;border-radius:5px;background:var(--tone);vertical-align:-1px}[data-type=build-sentence]{--type: var(--ds-sentence);--type-soft: var(--ds-sentence-soft);--type-ink: var(--ds-sentence-ink);--type-ledge: var(--ds-sentence-ledge)}[data-type=complete-words]{--type: var(--ds-words);--type-soft: var(--ds-words-soft);--type-ink: var(--ds-words-ink);--type-ledge: var(--ds-words-ledge)}[data-type=choose-response],[data-type=listen-gap],[data-type=listen-choose],[data-type=listen-choose-many],[data-type=listening]{--type: var(--ds-listen);--type-soft: var(--ds-listen-soft);--type-ink: var(--ds-listen-ink);--type-ledge: var(--ds-listen-ledge)}[data-type=read-tfng],[data-type=read-gap],[data-type=read-choose],[data-type=read-choose-many],[data-type=reading]{--type: var(--ds-words);--type-soft: var(--ds-words-soft);--type-ink: var(--ds-words-ink);--type-ledge: var(--ds-words-ledge)}[data-type=essay-sentence],[data-type=writing]{--type: var(--ds-sentence);--type-soft: var(--ds-sentence-soft);--type-ink: var(--ds-sentence-ink);--type-ledge: var(--ds-sentence-ledge)}[data-type=speak-part1],[data-type=speaking]{--type: var(--ds-pink);--type-soft: var(--ds-pink-soft);--type-ink: var(--ds-pink-ink);--type-ledge: var(--ds-pink-ledge)}[data-type=vocab-upgrade],[data-type=vocabulary]{--type: var(--ds-lemon);--type-soft: var(--ds-lemon-soft);--type-ink: var(--ds-lemon-ink);--type-ledge: var(--ds-lemon-ledge)}.tf-app{min-height:100dvh;padding-bottom:calc(88px + env(safe-area-inset-bottom))}.tf-analytics-consent{position:fixed;z-index:30;inset:auto var(--ds-space-3) calc(88px + env(safe-area-inset-bottom));max-width:520px;margin-inline:auto;padding:var(--ds-space-4)}.tf-qa-evidence{position:relative;z-index:11;width:100%;max-width:560px;margin-inline:auto;padding:var(--ds-space-3);overflow-wrap:anywhere}.tf-qa-run{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media(max-width:480px){.tf-qa-evidence{padding:6px 12px}.tf-qa-evidence p{margin:0;font-size:12px;line-height:1.3}.tf-qa-evidence summary{font-size:12px}}.tf-qa-evidence textarea{width:100%;min-width:0}.tf-keyboard-hint{color:var(--ds-text);font-size:var(--ds-text-sm)}.tf-page{position:relative;display:grid;gap:var(--ds-space-4);align-content:start;width:100%;max-width:560px;margin-inline:auto;padding:var(--ds-space-4) var(--ds-gutter) var(--ds-space-8)}.tf-page-head{display:grid;gap:var(--ds-space-1)}.tf-page-head h1{margin-top:var(--ds-space-2);font-size:var(--ds-text-display)}.tf-section{display:grid;gap:var(--ds-space-3);padding:var(--ds-space-4)}.tf-section:not(.ds-card){padding-inline:0}.tf-section h2{font-size:var(--ds-text-lg)}.tf-section-head{display:flex;justify-content:space-between;align-items:center;gap:var(--ds-space-3)}.tf-subhead{margin-top:var(--ds-space-2);font-size:var(--ds-text-base)}.tf-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:var(--ds-space-3)}.tf-actions--stack{display:grid;justify-content:stretch}.tf-eyebrow{margin:0;color:var(--ds-brand-ink);font-size:var(--ds-text-sm);font-weight:900;letter-spacing:.04em}.tf-muted{margin:0;color:var(--ds-text-muted)}.tf-fineprint{margin:0;color:var(--ds-text-subtle);font-size:var(--ds-text-xs);font-weight:700}.tf-hint{margin:0;color:var(--ds-text-muted);font-size:var(--ds-text-sm)}.tf-item-name{display:block;color:var(--ds-text-subtle);font-size:var(--ds-text-xs);font-weight:800;letter-spacing:.02em}.tf-item-head{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2);margin:0}.tf-item-head .tf-item-name{display:inline}.tf-link{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;border:0;background:none;color:var(--ds-brand-ink);font:inherit;font-weight:800;text-decoration:underline;text-underline-offset:.2em;cursor:pointer}.tf-text-mode-notice{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;color:var(--ds-text-muted);font-weight:800}.tf-empty{display:grid;justify-items:center;gap:var(--ds-space-3);padding:var(--ds-space-6);text-align:center}.tf-empty h2{font-size:var(--ds-text-lg)}.tf-empty p{margin:0;color:var(--ds-text-muted)}.tf-brand{display:flex;justify-content:space-between;align-items:center;gap:var(--ds-space-3);min-height:44px}.tf-brand-name{color:var(--ds-brand-ink);font-size:var(--ds-text-lg);font-weight:900;letter-spacing:.02em}.tf-counters{display:flex;gap:var(--ds-space-2)}.tf-counter{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:2px 12px;border:var(--ds-stroke) solid var(--tone-soft, var(--ds-border));border-radius:var(--ds-radius-pill);background:var(--tone-soft, var(--ds-surface));box-shadow:0 var(--ds-ledge-sm) 0 var(--tone, var(--ds-border));color:var(--tone-ink, var(--ds-text));font-weight:900;font-variant-numeric:tabular-nums}.tf-counter .lucide{color:var(--ds-flame)}.tf-earned,.tf-unlock{display:inline-flex;align-items:center;gap:var(--ds-space-2);width:fit-content;padding:6px 14px;border-radius:var(--ds-radius-pill);background:var(--ds-pink-soft);color:var(--ds-pink-ink);font-size:var(--ds-text-sm);font-weight:900}.tf-earned .tf-mini-candy,.tf-unlock .tf-mini-candy{flex:none}.tf-unlock{border-radius:var(--ds-radius-md);background:var(--ds-warn-soft);color:var(--ds-warn-ink);text-align:start;text-wrap:pretty}.tf-nav{position:fixed;inset:auto 0 0;z-index:10;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:100%;max-width:560px;margin-inline:auto;padding:6px var(--ds-space-2) calc(8px + env(safe-area-inset-bottom));border-top:var(--ds-stroke) solid var(--ds-border);background:var(--ds-surface)}.tf-nav[data-count="5"]{grid-template-columns:repeat(5,minmax(0,1fr))}.tf-nav a{display:grid;justify-items:center;align-content:center;gap:2px;min-width:0;min-height:60px;padding:4px 2px;color:var(--ds-text-subtle);font-size:var(--ds-text-xs);font-weight:800;text-decoration:none;-webkit-tap-highlight-color:transparent;touch-action:manipulation}.tf-nav a span{display:inline-flex;flex-wrap:wrap;justify-content:center;align-items:center;max-width:100%}.tf-nav a svg{box-sizing:content-box;padding:4px 10px;border:var(--ds-stroke) solid transparent;border-radius:var(--ds-radius-md);transition:background-color var(--ds-motion-fast) var(--ds-ease-out)}.tf-nav a[aria-current=page]{color:var(--tone-ink, var(--ds-brand-ink));font-weight:900}.tf-nav a[aria-current=page] svg{border-color:var(--tone, var(--ds-brand));background:var(--tone-soft, var(--ds-brand-soft));color:var(--tone-ink, var(--ds-brand-ink))}.tf-nav a:focus-visible{outline:3px solid var(--ds-focus);outline-offset:2px;border-radius:var(--ds-radius-md)}.tf-nav small{margin-inline-start:4px;padding:0 7px;border-radius:var(--ds-radius-pill);background:var(--ds-bad-strong);color:var(--ds-on-bad);font-size:11px;font-weight:900;font-variant-numeric:tabular-nums}.tf-dialog{width:min(520px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:0;border:var(--ds-stroke) solid var(--ds-border);border-radius:28px;background:var(--ds-surface);color:var(--ds-text);box-shadow:var(--ds-shadow-float)}.tf-dialog::backdrop{background:var(--ds-scrim)}.tf-dialog-header{display:flex;justify-content:space-between;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-3) var(--ds-space-3) 0 var(--ds-space-6)}.tf-dialog-header h2{font-size:var(--ds-text-lg)}.tf-form{display:grid;gap:var(--ds-space-4);padding:var(--ds-space-4) var(--ds-space-6) var(--ds-space-6)}.tf-form fieldset{display:grid;gap:var(--ds-space-1);margin:0;padding:0;border:0}.tf-form legend{margin-bottom:var(--ds-space-2);font-weight:900}.tf-radio{display:flex;align-items:center;gap:var(--ds-space-3);min-height:44px;cursor:pointer}.tf-radio input{width:20px;height:20px;accent-color:var(--ds-brand)}.tf-textarea{display:grid;gap:var(--ds-space-1);font-size:var(--ds-text-sm);font-weight:800}.tf-textarea textarea{padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-stroke) solid var(--ds-border-strong);border-radius:var(--ds-radius-sm);background:var(--ds-surface);color:var(--ds-text);font:600 16px var(--ds-font);resize:vertical}.tf-textarea textarea:focus{outline:3px solid var(--ds-focus);outline-offset:2px}.tf-reset{display:grid;justify-items:center;gap:var(--ds-space-3);max-width:360px}.tf-reset p{margin:0}.tf-sticky-actions{position:sticky;bottom:0;z-index:4;margin-inline:calc(-1 * var(--ds-gutter));padding:var(--ds-space-3) var(--ds-gutter) calc(var(--ds-space-3) + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent,var(--ds-bg) 30%)}.tf-hero{position:relative;display:grid;gap:var(--ds-space-3);overflow:hidden;padding:calc(var(--ds-space-6) + 10px) var(--ds-space-4) var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-xl);background:var(--ds-surface);box-shadow:0 var(--ds-ledge) 0 var(--ds-border-strong)}.tf-hero:before{content:"";position:absolute;inset:0 0 auto;height:10px;background:linear-gradient(90deg,var(--ds-fox),var(--ds-caramel),var(--ds-gold))}.tf-hero-top{display:flex;align-items:center;gap:var(--ds-space-3)}.tf-bubble{position:relative;flex:1;margin:0;padding:var(--ds-space-3) var(--ds-space-4);border-radius:20px;background:var(--ds-pink-soft);color:var(--ds-pink-ink);font-weight:800}.tf-bubble:before{content:"";position:absolute;top:50%;left:-7px;width:16px;height:16px;border-radius:3px;background:var(--ds-pink-soft);transform:translateY(-50%) rotate(45deg)}.tf-hero-title{margin-top:var(--ds-space-2);font-size:var(--ds-text-display);font-variant-numeric:tabular-nums}.tf-track-chip{display:inline-flex;align-items:center;gap:var(--ds-space-2);width:fit-content;min-height:40px;padding:4px 6px 4px 14px;border:var(--ds-stroke) solid var(--ds-sky-soft);border-radius:var(--ds-radius-pill);background:var(--ds-sky-soft);color:var(--ds-sky-ink);font:inherit;font-size:var(--ds-text-sm);font-weight:800;cursor:pointer;-webkit-tap-highlight-color:transparent}.tf-track-chip span{padding:2px 10px;border-radius:var(--ds-radius-pill);background:var(--ds-surface);color:var(--ds-sky-ink);font-size:var(--ds-text-xs);font-weight:900}.tf-track-chip:focus-visible{outline:3px solid var(--ds-focus);outline-offset:2px}.tf-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:var(--ds-space-2) 0 0;padding:var(--ds-space-3) 0 0;border-top:var(--ds-stroke) solid var(--ds-surface-sunken);list-style:none}.tf-week li{display:grid;justify-items:center;gap:4px}.tf-week-day{color:var(--ds-text-subtle);font-size:var(--ds-text-xs);font-weight:800}.tf-week li[data-today] .tf-week-day{color:var(--ds-brand-ink);font-weight:900}.tf-week-mark{display:grid;place-items:center;width:40px;height:40px;border:var(--ds-stroke) solid transparent;border-radius:var(--ds-radius-pill);background:var(--ds-surface-sunken)}.tf-week li[data-done=true] .tf-week-mark{border-color:var(--candy-wrapper, var(--ds-brand-soft));background:var(--ds-surface)}.tf-week li[data-today] .tf-week-mark{border-color:var(--ds-brand)}.tf-week li[data-saved] .tf-week-mark{background:var(--ds-info-soft);color:var(--ds-info-ink)}.tf-intro{display:grid;gap:var(--ds-space-3)}.tf-intro h2{margin-top:var(--ds-space-2);font-size:var(--ds-text-lg)}.tf-type-list{display:grid;gap:var(--ds-space-3);margin:0;padding:0;list-style:none}.tf-type-list li{display:flex;align-items:flex-start;gap:var(--ds-space-3);padding:var(--ds-space-4)}.tf-type-list p{margin:var(--ds-space-1) 0 0;color:var(--ds-text-muted);font-size:var(--ds-text-sm)}.tf-quests{display:grid;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}.tf-quests li{display:flex;align-items:center;gap:var(--ds-space-3);min-height:44px;font-weight:800}.tf-quest-box{display:grid;flex:none;place-items:center;width:28px;height:28px;border:var(--ds-stroke) solid var(--ds-border-strong);border-radius:9px;background:var(--ds-surface);color:var(--ds-on-ok)}.tf-quests li[data-done=true] .tf-quest-box{border-color:var(--tone-ledge, var(--ds-ok-ledge));background:var(--tone, var(--ds-ok));color:var(--ds-on-brand)}.tf-quests li:not([data-done=true]) .tf-quest-box{border-color:var(--tone, var(--ds-border-strong));background:var(--tone-soft, var(--ds-surface))}.tf-quests li[data-done=true]>span:nth-child(2){color:var(--ds-text-subtle);text-decoration:line-through}.tf-skill-days{display:grid;gap:var(--ds-space-2);padding-top:var(--ds-space-2)}.tf-skill-days-title{margin:0;color:var(--ds-text-muted);font-size:var(--ds-text-sm);font-weight:800}.tf-skill-buttons{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ds-space-2)}.tf-skins{display:flex;flex-wrap:wrap;gap:var(--ds-space-3)}.tf-skin{position:relative;display:grid;justify-items:center;gap:4px;min-width:76px;padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-stroke) solid transparent;border-radius:18px;background:var(--tone-soft);cursor:pointer}.tf-skin input{position:absolute;opacity:0;pointer-events:none}.tf-skin:has(input:focus-visible){outline:3px solid var(--ds-focus);outline-offset:2px}.tf-skin[data-active=true]{border-color:var(--tone-ink);background:var(--ds-surface)}.tf-skin-art{display:block;width:56px;height:56px}.tf-skin-art svg{display:block;width:100%;height:100%}.tf-skin-name{color:var(--tone-ink);font-size:var(--ds-text-sm);font-weight:800;text-align:center}.tf-hat-tile{min-width:92px;max-width:140px}.tf-hat-tile[data-locked=true]{opacity:.55;cursor:not-allowed}.tf-hat-preview{display:grid;justify-items:center;align-content:end;min-height:68px}.tf-hat-preview .tf-mascot-hat{width:38px;margin-bottom:-7px}.tf-hat-hint{color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:700;text-align:center;line-height:1.3}.tf-machines{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--ds-space-2);margin:0;padding:0;list-style:none}.tf-machines[data-count="4"]{grid-template-columns:repeat(2,minmax(0,1fr))}@media(min-width:480px){.tf-machines[data-count="4"]{grid-template-columns:repeat(4,minmax(0,1fr))}}.tf-machines li{display:grid;justify-items:center;align-content:start;gap:2px;min-width:0;padding:var(--ds-space-3) 4px;border:var(--ds-stroke) solid transparent;border-radius:20px;background:var(--type-soft);text-align:center}.tf-machines li[data-max]{border-color:var(--type)}.tf-machine-level{padding:0 10px;border-radius:var(--ds-radius-pill);background:var(--ds-surface);color:var(--type-ink);font-size:var(--ds-text-base);font-weight:900;font-variant-numeric:tabular-nums}.tf-machine-name{color:var(--ds-text);font-size:var(--ds-text-xs);font-weight:900}.tf-machine-next{color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:700;line-height:1.4}.tf-nudge{display:flex;align-items:flex-start;gap:var(--ds-space-3);padding:var(--ds-space-4)}.tf-nudge--rain{border-color:var(--ds-info-soft);background:var(--ds-info-soft);box-shadow:0 var(--ds-ledge) 0 var(--ds-info)}.tf-nudge--melt{border-color:var(--ds-warn-soft);background:var(--ds-warn-soft);box-shadow:0 var(--ds-ledge) 0 var(--ds-warn)}.tf-nudge-icon{flex:none}.tf-nudge--rain .tf-nudge-icon{color:var(--ds-info-ink)}.tf-nudge--melt .tf-nudge-icon{color:var(--ds-warn-ink)}.tf-nudge-body{display:grid;justify-items:start;gap:var(--ds-space-2);min-width:0}.tf-nudge-body h2{font-size:var(--ds-text-base)}.tf-nudge-body p{margin:0;color:var(--ds-text-muted);font-size:var(--ds-text-sm);line-height:1.6}.tf-hero-chips{display:flex;flex-wrap:wrap;gap:var(--ds-space-2)}.tf-countdown{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:4px 14px;border-radius:var(--ds-radius-pill);background:var(--tone-soft);color:var(--tone-ink);font-size:var(--ds-text-sm);font-weight:900}.tf-dept-stations,.tf-footprints-card{display:grid;gap:var(--ds-space-3);padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-xl);background:var(--ds-surface);box-shadow:0 var(--ds-ledge) 0 var(--ds-border-strong);overflow:hidden}@media(max-width:360px){.tf-footprints-card{padding:var(--ds-space-3)}.tf-week{gap:2px}.tf-week-mark{width:34px;height:34px}.tf-week .tf-mini-candy{width:22px}}.tf-dept-stations .tf-skill-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ds-space-2)}.tf-bounty-card{display:flex;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-3) var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-fox-soft);border-radius:var(--ds-radius-card);background:var(--ds-surface);box-shadow:0 var(--ds-ledge) 0 var(--ds-border-strong)}.tf-bounty-badge{display:inline-block;padding:2px 8px;border-radius:var(--ds-radius-pill);background:var(--ds-fox-soft);color:var(--ds-fox-ink);font-size:var(--ds-text-xs);font-weight:900}.tf-bounty-body{display:grid;gap:2px;min-width:0}.tf-bounty-title{margin:0;font-size:var(--ds-text-sm);font-weight:800;color:var(--ds-text)}.tf-bounty-reward{margin:0;font-size:var(--ds-text-xs);font-weight:700;color:var(--ds-fox-ink)}.tf-round{min-height:100dvh;background:var(--ds-surface)}.tf-round:not([data-type]){--type: var(--ds-brand);--type-soft: var(--ds-brand-soft);--type-ink: var(--ds-brand-ink);--type-ledge: var(--ds-brand-ledge)}.tf-round-bar{position:sticky;top:0;z-index:5;display:grid;gap:var(--ds-space-2);max-width:560px;margin-inline:auto;padding:max(var(--ds-space-2),env(safe-area-inset-top)) var(--ds-gutter) var(--ds-space-3);background:var(--ds-surface)}.tf-round-top{display:grid;grid-template-columns:44px 1fr 44px;align-items:center}.tf-round-title{min-width:0;margin:0;color:var(--type-ink);font-weight:900;text-align:center;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}.tf-meter{flex:1;height:16px;border-radius:var(--ds-radius-pill);background:var(--ds-surface-sunken)}.tf-meter-fill{position:relative;display:block;width:max(16px,calc(var(--done, 0) * 100%));height:100%;border-radius:inherit;background:repeating-linear-gradient(-45deg,var(--type) 0 10px,var(--type-ledge) 10px 20px);transition:width .45s var(--ds-ease-bounce)}.tf-meter-fill:before{content:"";position:absolute;top:3px;right:8px;left:8px;height:4px;border-radius:var(--ds-radius-pill);background:var(--ds-shine)}.tf-meter-candy{position:absolute;top:50%;right:-12px;transform:translateY(-50%)}.tf-round-body{display:grid;gap:var(--ds-space-4);max-width:560px;margin-inline:auto;padding:var(--ds-space-2) var(--ds-gutter) var(--ds-space-12)}.tf-round-body>*{min-width:0}.tf-item-title{font-size:var(--ds-text-lg)}.tf-item-title:focus{outline:none}.tf-task{display:grid;gap:var(--ds-space-4)}.tf-round .tf-task>.tf-actions{position:sticky;bottom:0;z-index:4;margin-inline:calc(-1 * var(--ds-gutter));padding:var(--ds-space-3) var(--ds-gutter) calc(var(--ds-space-3) + env(safe-area-inset-bottom));background:linear-gradient(to bottom,transparent,var(--ds-surface) 30%)}.tf-round .tf-actions .ds-button--primary,.tf-round .tf-actions .ds-button--success,.tf-round .tf-actions .ds-button--danger{flex:1 1 auto}.tf-dialogue{display:grid;gap:var(--ds-space-3);padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface)}.tf-line{display:grid;grid-template-columns:44px minmax(0,1fr);align-items:start;gap:var(--ds-space-3);margin:0;font-size:1.125rem;line-height:1.55}.tf-speaker{display:grid;place-items:center;width:44px;height:28px;margin-top:2px;border-radius:var(--ds-radius-pill);background:var(--ds-surface-sunken);color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:900}.tf-line--reply .tf-speaker{margin-top:8px;background:var(--type-soft);color:var(--type-ink)}.tf-slots{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.tf-slots li{display:flex;align-items:center;gap:2px}.tf-slot{display:inline-flex;align-items:center;gap:4px;min-width:56px;min-height:46px;padding:4px 12px;border:var(--ds-stroke) solid transparent;border-radius:14px;font:inherit;font-size:1.0625rem;font-weight:800}.tf-slot--given{background:var(--ds-surface-sunken);color:var(--ds-text-muted)}.tf-slot--empty{border:var(--ds-stroke) dashed var(--ds-border-strong);background:var(--ds-surface)}.tf-slot--placed{border-color:var(--type);background:var(--type-soft);box-shadow:0 var(--ds-ledge-sm) 0 var(--type-ledge);color:var(--type-ink);cursor:pointer}.tf-slot--placed:disabled{cursor:default}.tf-slot[data-result=right]{border-color:var(--ds-ok);background:var(--ds-ok-soft);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-ok-ledge);color:var(--ds-ok-ink)}.tf-slot[data-result=wrong]{border-color:var(--ds-bad);background:var(--ds-bad-soft);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-bad-ledge);color:var(--ds-bad-ink)}.tf-end{font-size:var(--ds-text-lg);font-weight:900}.tf-pool{display:flex;flex-wrap:wrap;justify-content:center;gap:10px var(--ds-space-2);padding:var(--ds-space-2) 0}.tf-chip{--chip: var(--ds-border);--chip-soft: var(--ds-surface);--chip-ink: var(--ds-text);--chip-ledge: var(--ds-border-strong);min-height:48px;padding:8px 18px;border:var(--ds-stroke) solid var(--chip);border-radius:14px;background:var(--chip-soft);box-shadow:0 var(--ds-ledge) 0 var(--chip-ledge);color:var(--chip-ink);font:inherit;font-size:1.0625rem;font-weight:800;cursor:pointer;transition:transform var(--ds-motion-fast) var(--ds-ease-out),box-shadow var(--ds-motion-fast) var(--ds-ease-out)}.tf-pool .tf-chip:nth-child(5n+1){--chip: var(--ds-pink);--chip-soft: var(--ds-pink-soft);--chip-ink: var(--ds-pink-ink);--chip-ledge: var(--ds-pink-ledge)}.tf-pool .tf-chip:nth-child(5n+2){--chip: var(--ds-sky);--chip-soft: var(--ds-sky-soft);--chip-ink: var(--ds-sky-ink);--chip-ledge: var(--ds-sky-ledge)}.tf-pool .tf-chip:nth-child(5n+3){--chip: var(--ds-lemon);--chip-soft: var(--ds-lemon-soft);--chip-ink: var(--ds-lemon-ink);--chip-ledge: var(--ds-lemon-ledge)}.tf-pool .tf-chip:nth-child(5n+4){--chip: var(--ds-grape);--chip-soft: var(--ds-grape-soft);--chip-ink: var(--ds-grape-ink);--chip-ledge: var(--ds-grape-ledge)}.tf-pool .tf-chip:nth-child(5n+5){--chip: var(--ds-caramel);--chip-soft: var(--ds-caramel-soft);--chip-ink: var(--ds-caramel-ink);--chip-ledge: var(--ds-caramel-ledge)}.tf-chip:active:not(:disabled){transform:translateY(var(--ds-ledge));box-shadow:0 0 0 var(--chip-ledge)}.tf-chip:disabled{border-style:dashed;border-color:var(--ds-border);background:var(--ds-surface-sunken);box-shadow:none;color:transparent;cursor:default}.tf-chip:focus-visible,.tf-slot:focus-visible{outline:3px solid var(--ds-focus);outline-offset:2px}.tf-correction{margin:0;padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--ds-ok-soft);color:var(--ds-ok-ink);font-weight:800}.tf-passage{margin:0;padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);font-size:1.125rem;line-height:2.4}.tf-blank{display:inline-flex;align-items:baseline;white-space:nowrap;color:var(--type-ink);font-weight:900}.tf-blank-input{width:calc(var(--letters) * 1.15ch + 16px);min-width:2.4ch;height:1.9em;margin-inline-start:1px;padding:0 4px;border:var(--ds-stroke) solid var(--type);border-bottom-width:4px;border-radius:10px;background:var(--type-soft);color:var(--ds-text);font:inherit;font-size:max(16px,1em);font-weight:900;line-height:1.3;letter-spacing:.1em;vertical-align:baseline}.tf-blank-input:focus{outline:3px solid var(--ds-focus);outline-offset:1px}.tf-blank[data-result=right] .tf-blank-input{border-color:var(--ds-ok);background:var(--ds-ok-soft);color:var(--ds-ok-ink)}.tf-blank[data-result=wrong] .tf-blank-input{border-color:var(--ds-bad);background:var(--ds-bad-soft);color:var(--ds-bad-ink);text-decoration:line-through}.tf-blank-fix{margin-inline-start:4px;color:var(--ds-ok-ink);font-size:var(--ds-text-sm)}.tf-blank-mark{margin-inline-start:2px;color:var(--ds-ok-ink)}.tf-notes{display:grid;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}.tf-notes li{display:grid;gap:2px;padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--ds-surface);font-size:var(--ds-text-sm);line-height:1.75}.tf-notes li[data-result=wrong] strong{color:var(--ds-bad-ink)}.tf-listen{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-3);min-width:0}.tf-listen .tf-play{--btn-bg: var(--ds-listen-strong);--btn-fg: var(--ds-on-listen);--btn-edge: var(--ds-listen-strong);--btn-ledge: var(--ds-listen-strong-ledge);border-radius:var(--ds-radius-pill);flex:1 1 auto;min-width:0}.tf-rates{min-width:0}.tf-rates .ds-chip{min-height:44px}.tf-passage-block{display:grid;gap:var(--ds-space-3);min-width:0}.tf-passage-preview{margin:0;color:var(--ds-text-muted);font-size:1.0625rem;line-height:1.7;overflow-wrap:anywhere}.tf-evidence,.tf-translation,.tf-glossary{display:grid;gap:var(--ds-space-2);min-width:0}.tf-evidence h4,.tf-glossary h4{margin:0;color:var(--ds-text-muted);font-size:var(--ds-text-sm)}.tf-evidence p,.tf-translation p{margin:0;line-height:1.7;overflow-wrap:anywhere}.tf-here{color:var(--type-ink);font-size:var(--ds-text-sm);font-weight:900}.tf-mark{background:var(--type-soft);color:var(--type-ink);padding:0 .15em;border-radius:4px}.tf-glossary ul{display:grid;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}.tf-word{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2) var(--ds-space-3);width:100%;min-height:44px;padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-md);background:var(--ds-surface);color:var(--ds-text);font:inherit;font-weight:800;text-align:start;cursor:pointer}.tf-word span:last-child{margin-inline-start:auto}.tf-word[aria-pressed=true]{border-color:var(--type);background:var(--type-soft);color:var(--type-ink)}.tf-word:focus-visible,.tf-passage-block .ds-button:focus-visible{outline:3px solid var(--ds-focus);outline-offset:3px}.tf-report{padding:0}.tf-report legend:focus{outline:3px solid var(--ds-focus);outline-offset:3px}.tf-wave{width:22px;height:20px;fill:currentColor}.tf-transcript{display:grid;gap:2px;margin:0;padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--type-soft)}.tf-transcript span:first-child{color:var(--type-ink);font-size:var(--ds-text-xs);font-weight:900}.tf-transcript span:last-child{font-size:1.0625rem;line-height:1.55;overflow-wrap:anywhere}.tf-vocab-plain{text-decoration:underline;text-decoration-thickness:3px;text-decoration-color:var(--type-ink);text-underline-offset:5px}.tf-vocab-result span:first-child{font-size:var(--ds-text-sm)}.tf-options{display:grid;gap:10px;min-width:0;margin:0;padding:0;border:0}.tf-options:disabled .tf-option{opacity:.55;cursor:default}.tf-option{position:relative;display:flex;align-items:center;gap:var(--ds-space-3);min-height:60px;padding:var(--ds-space-3) var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:18px;background:var(--ds-surface);box-shadow:0 var(--ds-ledge) 0 var(--ds-border-strong);font-size:1.0625rem;font-weight:700;line-height:1.45;cursor:pointer;transition:transform var(--ds-motion-fast) var(--ds-ease-out),box-shadow var(--ds-motion-fast) var(--ds-ease-out)}.tf-option:active{transform:translateY(var(--ds-ledge-sm));box-shadow:0 1px 0 var(--ds-border-strong)}.tf-option input{position:absolute;opacity:0;pointer-events:none}.tf-option:has(input:focus-visible){outline:3px solid var(--ds-focus);outline-offset:2px}.tf-option-letter{display:grid;flex:none;place-items:center;width:34px;height:34px;border:var(--ds-stroke) solid var(--tone, var(--ds-border));border-radius:11px;background:var(--tone-soft, var(--ds-surface));color:var(--tone-ink, var(--ds-text-muted));font-size:var(--ds-text-sm);font-weight:900}.tf-option:has(input:checked){border-color:var(--type);background:var(--type-soft);box-shadow:0 var(--ds-ledge) 0 var(--type-ledge)}.tf-option:has(input:checked) .tf-option-letter{background:var(--ds-surface)}.tf-options .tf-option[data-result=right]{border-color:var(--ds-ok);background:var(--ds-ok-soft);box-shadow:0 var(--ds-ledge) 0 var(--ds-ok-ledge);color:var(--ds-ok-ink)}.tf-options .tf-option[data-result=wrong]{border-color:var(--ds-bad);background:var(--ds-bad-soft);box-shadow:0 var(--ds-ledge) 0 var(--ds-bad-ledge);color:var(--ds-bad-ink)}.tf-options:disabled .tf-option[data-result]{opacity:1}.tf-option svg{flex:none;margin-inline-start:auto}.tf-selected-mark{display:none;flex:none;margin-inline-start:auto;color:var(--type-ink)}.tf-option:has(input:checked) .tf-selected-mark{display:block}.tf-feedback{--sheet: var(--ds-surface);display:grid;gap:var(--ds-space-3);padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--sheet)}.tf-feedback[data-result=right]{--sheet: var(--ds-ok-soft);border-color:var(--ds-ok)}.tf-feedback[data-result=wrong]{--sheet: var(--ds-bad-soft);border-color:var(--ds-bad)}.tf-feedback-head{display:flex;align-items:center;gap:var(--ds-space-3)}.tf-feedback-copy{min-width:0;flex:1}.tf-feedback-row{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2)}.tf-candy-pop{display:inline-flex;align-items:center;gap:4px;padding:2px 10px;border:var(--ds-stroke) solid var(--ds-caramel);border-radius:var(--ds-radius-pill);background:var(--ds-caramel-soft);box-shadow:0 2px 0 var(--ds-caramel-ledge);color:var(--ds-caramel-ink);font-size:var(--ds-text-xs);font-weight:900;font-variant-numeric:tabular-nums}.tf-candy-pop .tf-mini-candy{width:18px}.tf-combo-pill,.tf-round-combo{display:inline-flex;align-items:center;gap:4px;width:fit-content;padding:2px 10px;border:var(--ds-stroke) solid var(--ds-lemon);border-radius:var(--ds-radius-pill);background:var(--ds-lemon-soft);box-shadow:0 2px 0 var(--ds-lemon-ledge);color:var(--ds-lemon-ink);font-size:var(--ds-text-xs);font-weight:900;letter-spacing:.03em;font-variant-numeric:tabular-nums}.tf-combo-pill[data-hot],.tf-round-combo[data-hot]{border-color:var(--ds-pink);background:var(--ds-pink-soft);box-shadow:0 2px 0 var(--ds-pink-ledge);color:var(--ds-pink-ink)}.tf-round-combo{margin:0 auto}.tf-feedback-title{font-size:var(--ds-text-title)}.tf-feedback-title:focus{outline:none}.tf-feedback[data-result=right] .tf-feedback-title{color:var(--ds-ok-ink)}.tf-feedback[data-result=wrong] .tf-feedback-title{color:var(--ds-bad-ink)}.tf-feedback-detail{margin:2px 0 0;color:var(--ds-text-muted);font-size:var(--ds-text-sm);font-weight:800}.tf-explanation{padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.tf-explanation h4{margin:0 0 var(--ds-space-1);color:var(--ds-text-muted);font-size:var(--ds-text-sm)}.tf-explanation p{margin:0;line-height:1.75;overflow-wrap:anywhere}.tf-round .tf-feedback>.tf-actions{position:sticky;bottom:0;z-index:4;margin:0 calc(-1 * var(--ds-space-4)) calc(-1 * var(--ds-space-4));padding:var(--ds-space-3) var(--ds-space-4) calc(var(--ds-space-4) + env(safe-area-inset-bottom));border-radius:0 0 22px 22px;background:linear-gradient(to bottom,transparent,var(--sheet) 30%)}.tf-rescued{margin:0}.tf-chip,.tf-option,.tf-slot{-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.tf-limit{display:grid;gap:2px;margin:0;padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-md);background:var(--ds-surface-sunken);font-size:var(--ds-text-sm)}.tf-limit strong{color:var(--type-ink);font-weight:900}.tf-limit span:last-child{color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:700}.tf-question{margin:0;padding:var(--ds-space-3) var(--ds-space-4);border-inline-start:6px solid var(--type);border-radius:var(--ds-radius-md);background:var(--type-soft);font-size:1.125rem;font-weight:800;line-height:1.5;overflow-wrap:anywhere}.tf-reading,.tf-size-preview{margin:0;padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface);font-size:1.125rem;line-height:1.7;overflow-wrap:anywhere}html[data-text-size=sm] .tf-reading,html[data-text-size=sm] .tf-passage,html[data-text-size=sm] .tf-size-preview{font-size:1rem}html[data-text-size=lg] .tf-reading,html[data-text-size=lg] .tf-passage,html[data-text-size=lg] .tf-size-preview{font-size:1.25rem}.tf-statement{display:grid;gap:2px;margin:0;padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--type-soft)}.tf-statement span:first-child{color:var(--type-ink);font-size:var(--ds-text-xs);font-weight:900}.tf-statement span:last-child{font-size:1.125rem;font-weight:800;line-height:1.5;overflow-wrap:anywhere}.tf-option-letter--wide{width:auto;min-width:34px;padding:0 8px}.tf-option-hint{display:block;color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:700}.tf-notes-card{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--ds-space-2);min-width:0;padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-lg);background:var(--ds-surface)}.tf-notes-title{margin:0 0 var(--ds-space-1);color:var(--type-ink);font-weight:900}.tf-gap-line{margin:0;font-size:1.0625rem;line-height:2.2;overflow-wrap:anywhere}.tf-gap{display:inline-flex;flex-wrap:wrap;align-items:baseline;gap:4px;max-width:100%}.tf-gap-input{width:11ch;min-width:0;max-width:100%;height:1.9em;min-height:44px;padding:0 6px;border:var(--ds-stroke) solid var(--type);border-bottom-width:4px;border-radius:10px;background:var(--type-soft);color:var(--ds-text);font:inherit;font-size:max(16px,1em);font-weight:800;line-height:1.3}.tf-gap-input:focus{outline:3px solid var(--ds-focus);outline-offset:1px}.tf-gap[data-result=right] .tf-gap-input{border-color:var(--ds-ok);background:var(--ds-ok-soft);color:var(--ds-ok-ink)}.tf-gap[data-result=wrong] .tf-gap-input{border-color:var(--ds-bad);background:var(--ds-bad-soft);color:var(--ds-bad-ink);text-decoration:line-through}.tf-gap-fix{color:var(--ds-ok-ink);font-size:var(--ds-text-sm);font-weight:900}.tf-line[data-kind=essay-sentence]{grid-template-columns:minmax(0,1fr);gap:var(--ds-space-2)}.tf-line[data-kind=essay-sentence] .tf-speaker{width:fit-content;padding:0 12px}.tf-speak-card{display:grid;gap:var(--ds-space-2);justify-items:start;padding:var(--ds-space-4);border:var(--ds-stroke) solid var(--type-soft);border-radius:var(--ds-radius-lg);background:var(--type-soft)}.tf-speak-question{margin:0;font-size:1.25rem;font-weight:900;line-height:1.45}.tf-recorder{display:grid;gap:var(--ds-space-3);justify-items:center;padding:var(--ds-space-4);border-radius:var(--ds-radius-lg);background:var(--ds-surface-sunken);font-weight:900;font-variant-numeric:tabular-nums}.tf-recorder .tf-actions{width:100%}.tf-recording-dot{width:16px;height:16px;border-radius:50%;background:var(--ds-bad);animation:tf-pulse 1.2s ease-in-out infinite}@keyframes tf-pulse{50%{opacity:.35}}@media(prefers-reduced-motion:reduce){.tf-recording-dot{animation:none}}.tf-playback{width:100%}.tf-sample{display:grid;gap:var(--ds-space-2);padding:var(--ds-space-4);border-radius:var(--ds-radius-lg);background:var(--ds-ok-soft)}.tf-sample h3{margin:0;color:var(--ds-ok-ink);font-size:var(--ds-text-sm)}.tf-sample p{margin:0;font-size:1.0625rem;line-height:1.6}.tf-self-check{display:grid;gap:var(--ds-space-1);margin:0;padding:0;border:0}.tf-self-check legend{margin-bottom:var(--ds-space-2);font-weight:900}.tf-self-check input{accent-color:var(--ds-pink)}.tf-feedback .tf-booking,.tf-feedback .tf-course{margin-top:var(--ds-space-2)}.tf-streak-hint{display:grid;gap:var(--ds-space-2);min-width:0;padding:var(--ds-space-3) var(--ds-space-4);border-radius:var(--ds-radius-md);background:var(--ds-surface)}.tf-streak-hint-actions{display:flex;flex-wrap:wrap;gap:0 var(--ds-space-3)}.tf-streak-hint .tf-link:focus-visible{outline:3px solid var(--ds-focus);outline-offset:3px}.tf-explanation h4:focus{outline:3px solid var(--ds-focus);outline-offset:3px}.tf-round-body[data-bar-covers=true] .tf-task>.tf-actions:before{content:"往下滑，還有內容 ↓";flex:1 0 100%;color:var(--ds-text-muted);font-size:var(--ds-text-xs);font-weight:900;text-align:center;pointer-events:none}html[data-exam=ielts] .tf-round .tf-task>.tf-actions{position:static;margin-inline:0;padding-inline:0;background:none}html[data-exam=ielts] .tf-round-body[data-bar-covers=true] .tf-task>.tf-actions:before{content:none}@media(max-width:480px){.tf-round:is([data-type=listen-gap],[data-type=read-gap]) .tf-task>.tf-actions{position:static;margin-inline:0;padding-inline:0;background:none}.tf-round:is([data-type=listen-gap],[data-type=read-gap]) .tf-round-body[data-bar-covers=true] .tf-task>.tf-actions:before{content:none}}.tf-result{justify-items:center;overflow:hidden;text-align:center}.tf-result-mascot{margin-top:var(--ds-space-4)}.tf-score{display:flex;justify-content:center;align-items:baseline;gap:var(--ds-space-1);margin:0;font-size:var(--ds-text-display);font-variant-numeric:tabular-nums}.tf-score strong{background:linear-gradient(135deg,var(--ds-pink),var(--ds-caramel));-webkit-background-clip:text;background-clip:text;color:transparent;font-size:1.9em;font-weight:900}@media(forced-colors:active){.tf-score strong{background:none;color:CanvasText}}.tf-score span{color:var(--ds-text-subtle);font-weight:900}.tf-levelups{display:grid;gap:var(--ds-space-2);width:100%;margin:0;padding:0;list-style:none}.tf-levelups li{display:flex;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-2) var(--ds-space-3);border:var(--ds-stroke) solid var(--ds-warn);border-radius:20px;background:var(--ds-warn-soft);color:var(--ds-warn-ink);font-weight:900;text-align:start}.tf-levelups .tf-jar{flex:none;width:42px}.tf-breakdown{display:grid;width:100%;margin:0;padding:var(--ds-space-2) var(--ds-space-4);list-style:none;text-align:start}.tf-breakdown li{display:flex;justify-content:space-between;align-items:center;gap:var(--ds-space-3);padding:var(--ds-space-3) 0}.tf-breakdown li>span:first-child{position:relative;padding-inline-start:20px}.tf-breakdown li>span:first-child:before{content:"";position:absolute;top:.45em;left:0;width:12px;height:12px;border-radius:4px;background:var(--type)}.tf-breakdown li+li{border-top:var(--ds-stroke) solid var(--ds-surface-sunken)}.tf-fraction{font-size:var(--ds-text-lg);font-weight:900;font-variant-numeric:tabular-nums}.tf-result .tf-actions{width:100%}.tf-reminder-offer{display:grid;justify-items:start;gap:var(--ds-space-3);width:100%;text-align:start}.tf-reminder-offer h2{font-size:var(--ds-text-lg)}.tf-reminder-offer p{margin:0}.tf-card-preview{display:grid;justify-items:center;gap:var(--ds-space-2);margin:0}.tf-card-preview img{width:min(240px,70%);border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-md);box-shadow:var(--ds-shadow-float)}.tf-card-preview figcaption{color:var(--ds-text-muted);font-size:var(--ds-text-sm)}.tf-confetti{position:absolute;inset:0 0 auto;height:420px;pointer-events:none}.tf-confetti-piece{position:absolute;top:-24px;left:var(--x);width:28px}.tf-confetti-piece--star{width:16px}.tf-confetti-piece--star rect{fill:var(--ds-lemon)}.tf-confetti-piece--dot{width:8px;height:8px;background:var(--ds-pink)}.tf-confetti-piece--dot:nth-child(6n){background:var(--ds-sky)}.tf-confetti-piece--dot:nth-child(9){background:var(--ds-mint)}.tf-confetti-piece--star:nth-child(5n) rect{fill:var(--ds-grape)}.tf-review{grid-template-columns:minmax(0,1fr)}.tf-review .ds-chip,.tf-settings .ds-chip{min-height:44px}.tf-tabs{display:flex;flex-wrap:wrap;gap:var(--ds-space-2)}.tf-tab{min-height:44px;padding:8px 14px;border:var(--ds-stroke) solid var(--ds-border);border-radius:var(--ds-radius-pill);background:var(--ds-surface);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-border-strong);color:var(--ds-text);font:inherit;font-weight:800;cursor:pointer}.tf-tab[aria-selected=true]{border-color:var(--ds-brand);background:var(--ds-brand-soft);color:var(--ds-brand-ink);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-brand-ledge)}.tf-tab:focus-visible{outline:3px solid var(--ds-focus);outline-offset:3px}.tf-filters{display:grid;gap:var(--ds-space-2)}.tf-row-actions{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-space-2)}.tf-row-actions .ds-button{min-height:44px}.tf-word-en{margin:0;font-weight:900;overflow-wrap:anywhere}.tf-word-quiz-banner,.tf-word-quiz{display:grid;gap:var(--ds-space-3);margin-bottom:var(--ds-space-3);padding:var(--ds-space-4)}.tf-word-quiz-banner p{margin:0}.tf-word-quiz-prompt{margin:0;padding:var(--ds-space-3) var(--ds-space-4);border:var(--ds-stroke) solid var(--ds-lemon);border-radius:var(--ds-radius-md);background:var(--ds-lemon-soft);color:var(--ds-lemon-ink);font-size:var(--ds-text-title);font-weight:900;text-align:center;overflow-wrap:anywhere}.tf-word-quiz-choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--ds-space-2)}.tf-word-quiz-option{justify-content:center;min-height:48px;padding:var(--ds-space-2) var(--ds-space-3);text-align:center}.tf-word-quiz-option[data-result=right]{border-color:var(--ds-ok);background:var(--ds-ok-soft);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-ok-ledge);color:var(--ds-ok-ink)}.tf-word-quiz-option[data-result=wrong]{border-color:var(--ds-bad);background:var(--ds-bad-soft);box-shadow:0 var(--ds-ledge-sm) 0 var(--ds-bad-ledge);color:var(--ds-bad-ink)}.tf-module-list{display:grid;gap:var(--ds-space-3);margin:0;padding:0;list-style:none}.tf-module-row{display:flex;justify-content:space-between;align-items:center;gap:var(--ds-space-3);padding-top:var(--ds-space-2);border-top:1px solid var(--ds-border)}.tf-module-row .ds-button{flex:none;white-space:nowrap}.tf-module-row:first-child{padding-top:0;border-top:0}.tf-module-copy{display:grid;gap:2px;min-width:0}.tf-module-copy p{margin:0}.tf-confirm{display:grid;gap:var(--ds-space-3);min-width:0}.tf-confirm p{margin:0;color:var(--ds-bad-ink);font-weight:800;overflow-wrap:anywhere}.tf-me-links{display:grid;gap:var(--ds-space-3)}.tf-me-links .ds-button{width:100%;min-height:48px}.tf-practice{display:grid;gap:var(--ds-space-3);margin:0;padding:0;list-style:none}.tf-practice li{display:grid;gap:var(--ds-space-1);padding:var(--ds-space-4)}.tf-practice li h2{font-size:var(--ds-text-lg)}.tf-menu-row{display:flex;align-items:center;justify-content:space-between;gap:var(--ds-space-3);width:100%;min-height:var(--ds-control);padding:var(--ds-space-4);color:var(--ds-text);font:inherit;font-weight:900;text-align:start;cursor:pointer}.tf-menu-row span{font-weight:700}.tf-menu-row:focus-visible{outline:3px solid var(--ds-focus);outline-offset:3px}.tf-mistakes{display:grid;gap:var(--ds-space-3);margin:0;padding:0;list-style:none}.tf-mistakes li{display:grid;gap:var(--ds-space-2);padding:var(--ds-space-4)}.tf-mistakes li[data-type]{border-color:var(--type-soft);box-shadow:0 var(--ds-ledge) 0 var(--type)}.tf-mistake-preview{margin:0;overflow-wrap:anywhere;font-size:1.0625rem;line-height:1.55}.tf-mistake-foot{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--ds-space-2);font-size:var(--ds-text-sm)}.tf-melt{display:inline-flex;align-items:center;gap:4px;margin-inline-start:auto;padding:2px 10px;border-radius:var(--ds-radius-pill);background:var(--ds-warn-soft);color:var(--ds-warn-ink);font-size:var(--ds-text-xs);font-weight:900}.tf-mistakes li[data-melt=puddle] .tf-melt{background:var(--ds-bad-soft);color:var(--ds-bad-ink)}.tf-melt[data-state=cleared]{background:var(--ds-ok-soft);color:var(--ds-ok-ink)}.tf-flavors{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--ds-space-2);margin:0;padding:0;list-style:none}.tf-flavors li{display:grid;justify-items:center;align-content:start;gap:6px;min-width:0;padding:var(--ds-space-3) 4px;border:var(--ds-stroke) solid transparent;border-radius:18px;background:var(--ds-surface-sunken)}.tf-flavors li[data-owned=true]{border-color:var(--candy-wrapper);background:color-mix(in srgb,var(--candy-wrapper) var(--ds-candy-tint),var(--ds-surface));box-shadow:0 var(--ds-ledge-sm) 0 var(--candy-wrapper)}.tf-flavor-art{display:grid;place-items:center;height:34px}.tf-flavor-art .tf-mini-candy{width:42px}.tf-flavor-name{color:var(--ds-text);font-size:var(--ds-text-xs);font-weight:900;text-align:center}.tf-flavors li[data-owned=false] .tf-flavor-name{color:var(--ds-text-muted)}.tf-flavor-state{color:var(--ds-text);font-size:var(--ds-text-xs);font-weight:800}.tf-flavors .ds-button{min-width:0;padding-inline:6px;gap:2px;font-variant-numeric:tabular-nums}.tf-flavors .ds-button .tf-mini-candy{width:14px}.tf-estimate-band{display:grid;gap:2px;margin:0}.tf-estimate-band strong{color:var(--tone-ink, var(--ds-brand-ink));font-size:var(--ds-text-hero);font-weight:900;line-height:1.1}.tf-estimate-band span{color:var(--ds-text-muted);font-size:var(--ds-text-sm);font-weight:800}.tf-estimate-meter{height:14px;overflow:hidden;border-radius:var(--ds-radius-pill);background:var(--ds-surface-sunken)}.tf-estimate-meter span{position:relative;display:block;height:100%;border-radius:inherit;background:repeating-linear-gradient(-45deg,var(--tone, var(--ds-brand)) 0 10px,var(--tone-ledge, var(--ds-brand-ledge)) 10px 20px)}.tf-accuracy-top{display:flex;align-items:center;gap:var(--ds-space-4)}.tf-ring{flex:none;width:128px;height:128px}.tf-ring-track,.tf-ring-value{fill:none;stroke-width:14}.tf-ring-track{stroke:var(--ds-surface-sunken)}.tf-ring-value{stroke:var(--tone, var(--ds-brand));stroke-linecap:round;transform:rotate(-90deg);transform-origin:64px 64px}.tf-ring-number{fill:var(--ds-text);font:900 26px var(--ds-font)}.tf-ring-label{fill:var(--ds-text-muted);font:800 12px var(--ds-font)}.tf-accuracy-facts{display:grid;gap:var(--ds-space-2);margin:0}.tf-accuracy-facts div{display:flex;justify-content:space-between;gap:var(--ds-space-3);min-width:120px}.tf-accuracy-facts dt{color:var(--ds-text-muted);font-size:var(--ds-text-sm);font-weight:700}.tf-accuracy-facts dd{margin:0;color:var(--tone-ink, var(--ds-brand-ink));font-weight:900;font-variant-numeric:tabular-nums}.tf-type-bars{display:grid;gap:var(--ds-space-2);margin:0;padding:0;list-style:none}.tf-type-bars li{display:grid;grid-template-columns:5em 1fr 4em;align-items:center;gap:var(--ds-space-3);font-size:var(--ds-text-sm);font-weight:800}.tf-bar{height:12px;overflow:hidden;border-radius:var(--ds-radius-pill);background:var(--ds-surface-sunken)}.tf-bar span{display:block;height:100%;border-radius:inherit;background:var(--type, var(--ds-brand))}.tf-bar-value{text-align:end;font-weight:900;font-variant-numeric:tabular-nums}.tf-reminder{display:flex;flex-wrap:wrap;align-items:end;gap:var(--ds-space-3)}.tf-estimate-skills{display:grid;gap:var(--ds-space-2);margin:0}.tf-estimate-skills div{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:var(--ds-space-2);padding:var(--ds-space-2) 0;border-bottom:1px solid var(--ds-border)}.tf-estimate-skills div:last-child{border-bottom:0}.tf-estimate-skills dt{font-weight:900}.tf-estimate-skills dd{margin:0;text-align:end}.tf-estimate-skills strong{color:var(--tone-ink, var(--ds-brand-ink));font-size:var(--ds-text-lg);font-weight:900}.tf-course{display:grid;gap:var(--ds-space-3)}.tf-course h2,.tf-course p{margin:0}.tf-course .ds-button{justify-self:start;text-decoration:none}.tf-booking{display:grid;gap:var(--ds-space-3)}.tf-booking h2,.tf-booking p{margin:0}.tf-booking .ds-button{justify-self:start;text-decoration:none}.tf-booking-summary{display:grid;gap:var(--ds-space-1);padding:var(--ds-space-3);border-radius:var(--ds-radius-md);background:var(--ds-surface-sunken);font-size:var(--ds-text-sm)}.tf-booking-summary .tf-link{justify-self:start;gap:4px;min-height:36px}.tf-mini-candy{display:block;width:28px;height:auto}.tf-mc-ink{fill:var(--ds-on-brand)}.tf-mc-body{fill:var(--candy-body, var(--ds-caramel))}.tf-mc-end{fill:var(--candy-wrapper, var(--ds-lemon))}.tf-mc-glint{fill:var(--ds-toffee-shine)}.tf-mc-ghost{fill:var(--ds-border-strong)}.tf-type-icon{flex:none;width:48px;height:48px}.tf-ti-tile{fill:var(--type-soft, var(--ds-brand-soft));stroke:var(--type-ink, var(--ds-brand-ink));stroke-width:2}.tf-ti-tile--hot{fill:var(--ds-surface)}.tf-ti-text{fill:var(--type-ink, var(--ds-brand-ink));font:900 15px var(--ds-font)}.tf-ti-line{fill:none;stroke:var(--type-ink, var(--ds-brand-ink));stroke-width:2.4;stroke-linecap:round}.tf-ti-dot{fill:var(--type-ink, var(--ds-brand-ink))}.tf-mascot{display:inline-block;flex:none;width:var(--size, 120px);line-height:0}.tf-mascot svg{display:block;width:100%;height:auto}.tf-mascot-wrap{position:relative;display:inline-grid;place-items:center;flex:none;width:var(--size, 120px);height:var(--size, 120px);line-height:0}.tf-mascot-costume{position:absolute;inset:0;display:block;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}.tf-mascot-hat{display:block;width:calc(var(--size, 120px) * .62);height:auto;margin-bottom:calc(var(--size, 120px) * -.12);z-index:1}.tf-hat-ink{fill:var(--ds-on-brand)}.tf-hat-glint{fill:var(--ds-toffee-shine)}.tf-hat-shadow{fill:var(--hat-shadow, var(--ds-border-strong))}.tf-hat-highlight{fill:var(--hat-highlight, var(--ds-surface))}.tf-mascot-wrap:after{content:"";position:absolute;bottom:-4px;width:58%;height:8px;background:var(--ds-on-brand);opacity:.12;border-radius:999px;pointer-events:none;z-index:0}:root[data-theme=dark] .tf-mascot-wrap:after{opacity:.28}.tf-costume-hat[data-hat=sprout],.tf-mascot-hat[data-hat=sprout]{--hat-shadow: var(--ds-mint-ledge);--hat-highlight: var(--ds-mint-soft)}.tf-costume-hat[data-hat=sprout] .tf-hat-main,.tf-mascot-hat[data-hat=sprout] .tf-hat-main{fill:var(--ds-mint)}.tf-costume-hat[data-hat=sprout] .tf-hat-accent,.tf-mascot-hat[data-hat=sprout] .tf-hat-accent{fill:var(--ds-lemon)}.tf-costume-hat[data-hat=beret]{--hat-shadow: var(--ds-pink-ledge);--hat-highlight: var(--ds-pink-soft)}.tf-costume-hat[data-hat=beret] .tf-hat-main{fill:var(--ds-pink)}.tf-costume-hat[data-hat=beret] .tf-hat-accent{fill:var(--ds-lemon)}.tf-costume-hat[data-hat=headphones],.tf-mascot-hat[data-hat=headphones]{--hat-shadow: var(--ds-sky-ledge);--hat-highlight: var(--ds-sky-soft)}.tf-costume-hat[data-hat=headphones] .tf-hat-main,.tf-mascot-hat[data-hat=headphones] .tf-hat-main{fill:var(--ds-sky)}.tf-costume-hat[data-hat=headphones] .tf-hat-accent,.tf-mascot-hat[data-hat=headphones] .tf-hat-accent{fill:var(--ds-pink)}.tf-costume-hat[data-hat=cap],.tf-mascot-hat[data-hat=cap]{--hat-shadow: var(--ds-grape-ledge);--hat-highlight: var(--ds-grape-soft)}.tf-costume-hat[data-hat=cap] .tf-hat-main,.tf-mascot-hat[data-hat=cap] .tf-hat-main{fill:var(--ds-grape)}.tf-costume-hat[data-hat=cap] .tf-hat-accent,.tf-mascot-hat[data-hat=cap] .tf-hat-accent{fill:var(--ds-lemon)}.tf-costume-hat[data-hat=crown],.tf-mascot-hat[data-hat=crown]{--hat-shadow: var(--ds-lemon-ledge);--hat-highlight: var(--ds-lemon-soft)}.tf-costume-hat[data-hat=crown] .tf-hat-main,.tf-mascot-hat[data-hat=crown] .tf-hat-main{fill:var(--ds-lemon)}.tf-costume-hat[data-hat=crown] .tf-hat-accent,.tf-mascot-hat[data-hat=crown] .tf-hat-accent{fill:var(--ds-pink)}.tf-costume-face[data-face=blush]{--hat-shadow: var(--ds-pink-ledge);--hat-highlight: var(--ds-pink-soft)}.tf-costume-face[data-face=blush] .tf-hat-main{fill:var(--ds-pink)}.tf-costume-face[data-face=blush] .tf-hat-accent{fill:var(--ds-toffee-shine)}.tf-costume-face[data-face=glasses] .tf-hat-ink{fill:var(--ds-sky-ink)}.tf-costume-face[data-face=glasses] .tf-hat-highlight{fill:var(--ds-sky-soft)}.tf-costume-face[data-face=shades]{--hat-shadow: var(--ds-on-brand);--hat-highlight: var(--ds-sky-soft)}.tf-costume-face[data-face=shades] .tf-hat-main{fill:var(--ds-on-brand)}.tf-costume-prop[data-prop=boba]{--hat-shadow: var(--ds-caramel-ledge);--hat-highlight: var(--ds-caramel-soft)}.tf-costume-prop[data-prop=boba] .tf-hat-main{fill:var(--ds-caramel)}.tf-costume-prop[data-prop=boba] .tf-hat-accent{fill:var(--ds-pink)}.tf-costume-prop[data-prop=pencil]{--hat-shadow: var(--ds-lemon-ledge);--hat-highlight: var(--ds-lemon-soft)}.tf-costume-prop[data-prop=pencil] .tf-hat-main{fill:var(--ds-lemon)}.tf-costume-prop[data-prop=pencil] .tf-hat-accent{fill:var(--ds-pink)}.tf-costume-prop[data-prop=wand]{--hat-shadow: var(--ds-lemon-ledge);--hat-highlight: var(--ds-lemon-soft)}.tf-costume-prop[data-prop=wand] .tf-hat-main{fill:var(--ds-lemon)}.tf-costume-prop[data-prop=wand] .tf-hat-accent{fill:var(--ds-grape)}.tf-pixel-heart{display:inline-block;width:22px;height:auto}.tf-heart-ink{fill:var(--ds-on-brand)}.tf-heart-fill{fill:var(--ds-pink)}.tf-heart-shine{fill:var(--ds-toffee-shine)}.tf-heart-ghost{fill:var(--ds-border-strong)}.tf-jar{width:56px;height:auto}.tf-jar-ink{fill:var(--ds-on-brand)}.tf-jar-lid{fill:var(--type, var(--ds-caramel))}.tf-jar-glass{fill:var(--ds-surface)}.tf-jar-shine{fill:var(--ds-border-strong)}:root[data-theme=dark] .tf-jar-ink{fill:var(--ds-text-subtle)}.tf-jar-candy-body{fill:var(--jar-candy)}.tf-jar-candy[data-colour="0"]{--jar-candy: var(--ds-pink)}.tf-jar-candy[data-colour="1"]{--jar-candy: var(--ds-sky)}.tf-jar-candy[data-colour="2"]{--jar-candy: var(--ds-mint)}.tf-jar-candy[data-colour="3"]{--jar-candy: var(--ds-grape)}.tf-jar-candy[data-colour="4"]{--jar-candy: var(--ds-caramel)}@keyframes tf-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes tf-nudge{0%,to{transform:none}50%{transform:translateY(-3px)}}@keyframes tf-shadow{0%,to{transform:scaleX(1);opacity:.14}50%{transform:scaleX(.86);opacity:.08}}@keyframes tf-blink{0%,93%,to{transform:scaleY(1)}96%{transform:scaleY(.1)}}@keyframes tf-hop{0%{transform:none}20%{transform:scale(1.08,.88)}50%{transform:translateY(-24px) scale(.94,1.08)}78%{transform:scale(1.05,.95)}to{transform:none}}@keyframes tf-wobble{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}45%{transform:rotate(7deg)}70%{transform:rotate(-4deg)}}@keyframes tf-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.03,.96)}}@keyframes tf-wiggle{0%{transform:rotate(-12deg)}to{transform:rotate(12deg)}}@keyframes tf-twinkle{0%,to{opacity:.35;transform:scale(.6) rotate(0)}50%{opacity:1;transform:scale(1.1) rotate(25deg)}}@keyframes tf-float{0%{opacity:0;transform:translateY(6px)}30%{opacity:1}to{opacity:0;transform:translate(10px,-16px)}}@keyframes tf-pop{0%{transform:scale(.6);opacity:0}to{transform:none;opacity:1}}@keyframes tf-shake{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}@keyframes tf-rise{0%{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}@keyframes tf-fall{0%{transform:translate(0) rotate(0);opacity:0}10%{opacity:1}to{transform:translate(var(--drift),400px) rotate(var(--spin));opacity:0}}@keyframes tf-blink-caret{50%{opacity:0}}@keyframes tf-wave{0%,to{opacity:.35}50%{opacity:1}}@keyframes tf-eq{0%,to{transform:scaleY(.45)}50%{transform:scaleY(1)}}@media(prefers-reduced-motion:no-preference){.tf-week li[data-done=true] .tf-mini-candy{animation:tf-pop .4s var(--ds-ease-bounce) both}.tf-ti-caret{animation:tf-blink-caret 1.1s steps(1) infinite}.tf-ti-wave{animation:tf-wave 1.6s ease-in-out infinite}.tf-ti-wave--late{animation-delay:.3s}.tf-slot--placed{animation:tf-pop .25s var(--ds-ease-bounce) both}.tf-slot[data-result=wrong]{animation:tf-shake .4s ease-in-out both}.tf-feedback{animation:tf-rise .35s var(--ds-ease-out) both}.tf-score strong{animation:tf-pop .5s .2s var(--ds-ease-bounce) both}.tf-confetti-piece{animation:tf-fall 2.4s var(--delay) cubic-bezier(.2,.6,.4,1) both}.tf-wave rect{transform-box:fill-box;transform-origin:center;animation:tf-eq .9s ease-in-out infinite}.tf-wave rect:nth-child(2){animation-delay:.15s}.tf-wave rect:nth-child(3){animation-delay:.3s}.tf-wave rect:nth-child(4){animation-delay:.45s}.tf-jar-candy{animation:tf-pop .35s var(--ds-ease-bounce) both;transform-box:fill-box;transform-origin:center}.tf-levelups li{animation:tf-rise .4s var(--ds-ease-out) both}.tf-nudge-icon{animation:tf-nudge 3s ease-in-out infinite}.tf-estimate-meter span{transition:width var(--ds-motion-smooth) var(--ds-ease-out)}.tf-hero .tf-mascot,.tf-hero .tf-fox-scene{animation:tf-breathe 3.2s ease-in-out infinite}.tf-feedback[data-result=right] .tf-mascot,.tf-feedback[data-result=right] .tf-fox-scene{animation:tf-hop .55s var(--ds-ease-bounce) both}.tf-feedback[data-result=wrong] .tf-mascot,.tf-feedback[data-result=wrong] .tf-fox-scene{animation:tf-wobble .5s ease-in-out both}.tf-result-mascot,.tf-result .tf-fox-scene{animation:tf-bob 2.4s ease-in-out infinite}.tf-stage-companion .tf-fox-scene{animation:tf-nudge 3s ease-in-out infinite}.tf-candy-pop,.tf-combo-pill,.tf-round-combo{animation:tf-pop .35s var(--ds-ease-bounce) both}}@media(prefers-reduced-motion:reduce){.tf-confetti{display:none}.tf-meter-fill,.tf-chip,.tf-option,.tf-choice-card,.tf-nav a svg{transition:none}}
