.df{--accent:var(--color-accent);--accent-2:var(--color-accent-2);--accent-soft:var(--color-accent-soft);--ok:var(--color-ok);--paper:var(--color-paper);--ink:var(--color-ink);--rule:var(--color-rule);--hilite-soft:var(--color-hilite-soft);--card:var(--color-card);--t-display:var(--font-display);--t-ui:var(--font-ui);--t-mono:var(--font-mono);--t-hand:var(--font-hand);--r-sm:var(--radius-r-sm);--r-md:var(--radius-r-md);--r-lg:var(--radius-r-lg);--r-xl:var(--radius-r-xl);--df-bg:#16130f;--df-panel:#211c16;--df-line:#352d24;--df-ink:#f3ece0;--df-ink2:#c4b9a8;--df-mute:#8c8475;min-height:100vh;background:var(--df-bg);color:var(--df-ink);font-family:var(--t-ui);-webkit-font-smoothing:antialiased}.df *,.df :after,.df :before{box-sizing:border-box}.df-wrap{max-width:1180px;margin:0 auto;padding:0 32px}.df-top{position:sticky;top:0;z-index:30;backdrop-filter:blur(10px);background:color-mix(in oklab,#16130f 80%,transparent);border-bottom:1px solid var(--df-line)}.df-top-inner{display:flex;align-items:center;justify-content:space-between;height:64px}.df-brand-name{font-family:var(--t-display);font-size:22px;font-weight:600;letter-spacing:-.5px;color:var(--df-ink)}.df .lang-rail{display:inline-flex;gap:4px;padding:4px;background:#1b1610;border:1px solid var(--df-line);border-radius:999px}.df .lang-pill{border:none;background:transparent;color:var(--df-mute);cursor:pointer;padding:6px 14px;border-radius:999px;font-size:13px;font-weight:500;font-family:var(--t-ui);display:inline-flex;align-items:center;gap:6px;transition:all .15s;white-space:nowrap}.df .lang-pill.on,.df .lang-pill:hover{color:var(--df-ink)}.df .lang-pill.on{background:var(--df-panel);border:1px solid var(--df-line)}.df .lang-pill .tag{font-family:var(--t-mono);font-size:10px;opacity:.6}.df-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:56px;align-items:center}@media (max-width:1000px){.df-hero{grid-template-columns:1fr;gap:36px}}.df-h1{font-family:var(--t-display);font-weight:500;letter-spacing:-1.4px;line-height:1.02;font-size:clamp(40px,6.6vw,76px);margin:0;color:var(--df-ink);text-wrap:balance}.df-eyebrow{font-family:var(--t-mono);font-size:11px;letter-spacing:2.4px;text-transform:uppercase;color:var(--accent);font-weight:600}.df-sub{color:var(--df-ink2);font-size:18px;line-height:1.6;max-width:460px}.drill-card{background:var(--df-panel);border:1px solid var(--df-line);border-radius:var(--r-xl);box-shadow:0 24px 80px rgba(0,0,0,.45);padding:26px}.df-hero .drill-card{width:100%}.drill-stage{font-family:var(--t-display);font-weight:400;font-size:clamp(22px,3vw,30px);line-height:1.5;color:var(--df-ink)}.drill-blank{display:inline-block;min-width:96px;text-align:center;padding:2px 12px;margin:0 2px;border-radius:8px;font-family:var(--t-mono);font-size:.88em;font-weight:600;border:2px solid var(--accent);color:var(--accent);background:color-mix(in oklab,var(--accent) 12%,transparent)}.drill-blank.filled{border-color:var(--df-ink);color:var(--df-ink);background:transparent}.drill-blank.ok{border-color:var(--ok);color:#a8d6a0;background:color-mix(in oklab,var(--ok) 16%,transparent)}.drill-blank.no{border-color:var(--accent);color:#f0a78c;background:color-mix(in oklab,var(--accent) 16%,transparent)}.drill-blank.type{min-width:120px;text-align:left}.df-caret{display:inline-block;width:2px;height:1em;margin-left:1px;vertical-align:-2px;background:var(--accent);animation:dfblink 1s step-end infinite}@keyframes dfblink{50%{opacity:0}}.df-typedot{display:inline-flex;align-items:center;gap:5px;font-family:var(--t-mono);font-size:11px;color:var(--df-mute);letter-spacing:.4px}.df-typedot b{width:6px;height:6px;border-radius:6px;background:var(--accent);display:inline-block}.df-section{padding:96px 0;border-top:1px solid var(--df-line)}.df-card{background:var(--df-panel);border:1px solid var(--df-line);border-radius:var(--r-lg);padding:26px}.df-eyebrow2{font-family:var(--t-mono);font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--df-mute);font-weight:500}.df-h2{font-family:var(--t-display);font-weight:500;letter-spacing:-.8px;line-height:1.06;font-size:clamp(30px,4.4vw,48px);margin:0;color:var(--df-ink);text-wrap:balance}.df-coach{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--r-md);background:#1b1610;border:1px solid var(--df-line)}.df-coach-dot{width:30px;height:30px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--t-display);font-weight:600;font-size:15px;flex-shrink:0}.df-mono-num{font-family:var(--t-mono);font-weight:600;color:var(--accent)}.loop-grid{display:grid;grid-template-columns:repeat(4,1fr)}@media (max-width:820px){.loop-grid{grid-template-columns:1fr 1fr!important}}@media (max-width:460px){.loop-grid{grid-template-columns:1fr!important}}.df-read-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:36px;align-items:start}@media (max-width:940px){.df-read-grid{grid-template-columns:1fr;gap:22px}}.df-passage{font-family:var(--t-display);font-weight:400;font-size:clamp(22px,2.5vw,28px);line-height:1.66;color:var(--df-ink);letter-spacing:-.2px;text-wrap:pretty;margin:0}.df-word{display:inline;cursor:pointer;border:none;background:transparent;padding:0 1px;font:inherit;color:inherit;position:relative;transition:background .15s,color .15s;text-decoration:underline;text-decoration-style:dotted;text-decoration-thickness:2px;text-underline-offset:5px;text-decoration-color:color-mix(in oklab,var(--accent) 55%,transparent)}.df-word:hover{background:color-mix(in oklab,var(--accent) 14%,transparent)}.df-word.on,.df-word:hover{text-decoration-color:var(--accent)}.df-word.on{background:color-mix(in oklab,var(--accent) 18%,transparent);color:var(--df-ink);box-shadow:0 2px 0 var(--accent)}.df-note{background:var(--df-panel);border:1px solid var(--df-line);border-radius:var(--r-lg);box-shadow:0 18px 50px rgba(0,0,0,.4);padding:22px 22px 18px}.df-rail{position:sticky;top:92px}.df-hint{border:1.5px dashed var(--df-line);border-radius:var(--r-lg);padding:26px 22px;background:#1b1610;text-align:center}.df-chip-dark{display:inline-flex;gap:4px;padding:3px 9px;border-radius:999px;font-size:11px;font-weight:500;background:#1b1610;color:var(--df-ink2)}.df-chip-dark,.vocab-card{align-items:center;border:1px solid var(--df-line)}.vocab-card{display:grid;grid-template-columns:auto 1fr auto;gap:16px;background:var(--df-panel);border-radius:var(--r-lg);padding:16px 18px}.vocab-flag{width:36px;height:36px;border-radius:9px;background:#1b1610;border:1px solid var(--df-line);display:flex;align-items:center;justify-content:center;font-family:var(--t-mono);font-size:12px;font-weight:600;color:var(--df-ink2);flex-shrink:0}.vocab-grade{display:inline-flex;gap:6px}.vocab-grade button{font-family:var(--t-mono);font-size:12px;padding:7px 12px;border-radius:8px;border:1px solid var(--df-line);background:#1b1610;color:var(--df-ink2);cursor:pointer;transition:all .14s}.vocab-grade button:hover{color:var(--df-ink);border-color:var(--df-ink)}.vocab-grade button.again:hover{border-color:var(--accent);color:#f0a78c}.vocab-grade button.easy:hover{border-color:var(--ok);color:#b6e0ad}.vocab-new{border-color:color-mix(in oklab,var(--accent) 55%,var(--df-line))}.df .btn-xl{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 28px;border-radius:var(--r-md);font-size:15px;font-weight:600;font-family:var(--t-ui);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;transition:all .15s}.df a.btn-xl{text-decoration:none}.df .btn-xl:hover{background:var(--accent-2);border-color:var(--accent-2);transform:translateY(-1px)}.df .btn-xl.ghost-light{background:transparent;border-color:rgba(255,255,255,.32);color:var(--paper)}.df .btn-xl.ghost-light:hover{background:rgba(255,255,255,.08);border-color:rgba(255,255,255,.55);transform:none}@media (prefers-reduced-motion:no-preference){.df .lift{animation:liftin .4s cubic-bezier(.2,.7,.3,1)}.df .swap{animation:swapin .32s ease}}@keyframes liftin{0%{transform:translateY(10px)}to{transform:none}}@keyframes swapin{0%{transform:translateY(6px)}to{transform:none}}.dfm{min-height:100vh;background:var(--df-bg);color:var(--df-ink);font-family:var(--t-ui);-webkit-font-smoothing:antialiased;position:relative}.dfm a{text-decoration:none}.dfm-wrap{padding:0 18px}.dfm-top{position:sticky;top:0;z-index:30;justify-content:space-between;height:54px;padding:0 16px;background:color-mix(in oklab,#16130f 86%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--df-line)}.dfm-top,.dfm-top .dfm-actions{display:flex;align-items:center}.dfm-top .dfm-actions{gap:10px}.dfm-signin{border:none;background:transparent;color:var(--df-ink2);padding:8px 4px}.dfm-signin,.dfm-signup{font-size:13px;font-family:var(--t-ui);cursor:pointer}.dfm-signup{padding:9px 16px;border-radius:var(--r-md);font-weight:600;border:1px solid var(--accent);background:var(--accent);color:#fff;white-space:nowrap}.dfm-hero{padding:24px 0 32px}.dfm-eyebrow{font-family:var(--t-mono);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--accent);font-weight:600}.dfm-h1{font-family:var(--t-display);font-weight:500;letter-spacing:-1.1px;line-height:1.04;font-size:37px;margin:14px 0 0;color:var(--df-ink);text-wrap:balance}.dfm-sub{color:var(--df-ink2);font-size:16px;line-height:1.55;margin:16px 0 0}.dfm-cta-col{display:flex;flex-direction:column;gap:10px;margin-top:22px}.dfm-btn{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 22px;border-radius:var(--r-md);font-size:15.5px;font-weight:600;font-family:var(--t-ui);border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;transition:filter .15s}.dfm-btn:active{filter:brightness(.94)}.dfm-btn.ghost{background:transparent;border-color:rgba(255,255,255,.26);color:var(--df-ink)}.dfm-demo-hint{display:flex;align-items:center;gap:8px;justify-content:center;font-family:var(--t-mono);font-size:10.5px;color:var(--df-mute);letter-spacing:.3px;margin-top:20px;text-align:center}.dfm-demo-hint .ln{flex:1;height:1px;background:var(--df-line)}.dfm .drill-card{padding:17px;border-radius:20px;box-shadow:0 18px 50px rgba(0,0,0,.5);margin-top:16px}.dfm .drill-stage{font-size:21px;line-height:1.5}.dfm .drill-blank.type{min-width:92px;font-size:.82em}.dfm .btn-xl{padding:10px 18px!important;font-size:13px}.dfm .drill-card>div:first-child span,.dfm .drill-card>div:nth-child(2) span{white-space:nowrap}.dfm .lang-rail{background:#1b1610;border-color:var(--df-line);padding:3px;gap:3px;flex-wrap:nowrap;flex-shrink:0}.dfm .lang-pill{color:var(--df-mute);padding:6px 11px;font-size:12px;white-space:nowrap}.dfm .lang-pill.on,.dfm .lang-pill:hover{color:var(--df-ink)}.dfm .lang-pill.on{background:var(--df-panel);box-shadow:none;border:1px solid var(--df-line)}.dfm .lang-pill .tag{font-family:var(--t-mono);font-size:10px;opacity:.6;margin-left:5px}.dfm .df-chip-dark{white-space:nowrap}.dfm-section{padding:38px 0;border-top:1px solid var(--df-line)}.dfm-eyebrow2{font-family:var(--t-mono);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--df-mute);font-weight:500}.dfm-h2{font-family:var(--t-display);font-weight:500;letter-spacing:-.6px;line-height:1.08;font-size:26px;margin:12px 0 0;color:var(--df-ink);text-wrap:balance}.dfm-lead{color:var(--df-ink2);font-size:15px;line-height:1.6;margin:14px 0 0}.dfm-card{background:var(--df-panel);border:1px solid var(--df-line);border-radius:var(--r-lg);padding:18px}.dfm-stack{display:flex;flex-direction:column}.dfm-grid2,.dfm-stack{gap:12px;margin-top:22px}.dfm-grid2{display:grid;grid-template-columns:1fr 1fr}.dfm-loop-row{display:grid;grid-template-columns:36px 1fr;gap:14px;align-items:start;padding:16px;background:var(--df-panel);border:1px solid var(--df-line);border-radius:var(--r-lg)}.dfm-loop-n{width:36px;height:36px;border-radius:10px;background:#1b1610;border:1px solid var(--df-line);justify-content:center;font-family:var(--t-mono);font-size:14px;font-weight:600;color:var(--accent)}.dfm-loop-n,.dfm-read-meta{display:flex;align-items:center}.dfm-read-meta{gap:9px;flex-wrap:wrap;margin-bottom:14px}.dfm-read-meta .ttl{font-family:var(--t-mono);font-size:10.5px;letter-spacing:1.2px;text-transform:uppercase;color:var(--df-mute);white-space:nowrap}.dfm-read-meta .src{font-size:12px;color:var(--df-mute);white-space:nowrap}.dfm-passage{border-left:2px solid color-mix(in oklab,var(--accent) 40%,var(--df-line));padding-left:16px}.dfm .df-passage{font-size:20px;line-height:1.62;margin:0}.dfm-read-foot{margin-top:16px;display:flex;align-items:center;gap:8px;font-size:11.5px;color:var(--df-mute)}.dfm-read-foot .dash{width:16px;border-bottom:2px dotted var(--accent);display:inline-block}.dfm-note-wrap{margin-top:16px}.dfm-vocab{background:var(--df-panel);border:1px solid var(--df-line);border-radius:var(--r-lg);padding:14px}.dfm-vocab.is-new{border-color:color-mix(in oklab,var(--accent) 55%,var(--df-line))}.dfm-vocab-head{display:flex;align-items:flex-start;gap:12px}.dfm-vocab-flag{width:34px;height:34px;border-radius:9px;background:#1b1610;border:1px solid var(--df-line);display:flex;align-items:center;justify-content:center;font-family:var(--t-mono);font-size:11px;font-weight:600;color:var(--df-ink2);flex-shrink:0}.dfm-vocab-grade{display:flex;gap:8px;margin-top:13px}.dfm-vocab-grade button{flex:1;font-family:var(--t-mono);font-size:12px;padding:10px 8px;border-radius:9px;border:1px solid var(--df-line);background:#1b1610;color:var(--df-ink2);cursor:pointer;transition:all .14s}.dfm-vocab-grade button:active{transform:scale(.97)}.dfm-vocab-grade button.again{border-color:color-mix(in oklab,var(--accent) 40%,var(--df-line));color:#f0a78c}.dfm-vocab-grade button.easy{border-color:color-mix(in oklab,var(--ok) 40%,var(--df-line));color:#b6e0ad}.dfm-soon{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:18px}.dfm-soon .lbl{font-family:var(--t-mono);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--df-mute)}.dfm-ctaband{background:var(--accent);border-radius:var(--r-xl);padding:38px 22px;text-align:center}.dfm-ctaband h2{font-family:var(--t-display);font-weight:500;font-size:31px;letter-spacing:-.7px;margin:0;color:#fff;line-height:1.05}.dfm-ctaband p{color:rgba(255,255,255,.88);font-size:15px;margin:12px 0 0;line-height:1.5}.dfm-footer{border-top:1px solid var(--df-line);padding:26px 18px 8px;display:flex;flex-direction:column;gap:12px;align-items:flex-start}.dfm-footer .meta{font-size:12px;color:var(--df-mute)}.dfm-footer a{font-size:12px;color:var(--accent)}.landing-mobile{display:none}@media (max-width:760px){.landing-desktop{display:none}.landing-mobile{display:block}}