@font-face{font-family:IPE Onest;src:url(/fonts/onest-400.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:IPE Onest;src:url(/fonts/onest-600.woff2)format("woff2");font-weight:600;font-style:normal;font-display:swap}@font-face{font-family:IPE Display;src:url(/fonts/sofia-sans-extra-condensed-900.woff2)format("woff2");font-weight:900;font-style:normal;font-display:swap}@font-face{font-family:IPE Mono;src:url(/fonts/martian-mono-500.woff2)format("woff2");font-weight:500;font-style:normal;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--paper:#fbf7ef;--card:#fff;--card-2:#f4efe4;--ink:#23201c;--ink-soft:#575049;--ink-faint:#756c62;--rule:#e7ddcb;--rule-2:#d8ccb4;--accent:#b5470f;--accent-ink:#fff;--gold:#e8a417;--gold-ink:#23201c;--focus:#2f6df0;--ok:#0b7d57;--ok-bg:#0ea3711f;--bad:#c2333a;--bad-bg:#e5484d1a;--warn:#8a5a00;--warn-bg:#e0891b24;--info:#2457c5;--info-bg:#2f6df01a;--t-present:#0b8a60;--t-past:#b8690f;--t-future:#2f6df0;--t-perfect:#7b4fe0;--t-aux:#c92a5c;--t-be:#0a8ca3;--t-past-bg:#e0891b24;--t-perfect-bg:#8b5cf621;--font:"IPE Onest", "Segoe UI", Roboto, Arial, sans-serif;--font-display:"IPE Display", "Arial Narrow", sans-serif;--font-mono:"IPE Mono", Consolas, Menlo, monospace;--fs-body:17px;--fs-small:14px;--fs-h1:clamp(34px, 6vw, 52px);--fs-h2:clamp(24px, 4vw, 32px);--lh:1.55;--r-sm:6px;--r:10px;--shadow:0 1px 0 var(--rule-2), 0 8px 20px #3c2a140f;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;--dur:.16s;--nav-h:64px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#12100d;--card:#1b1813;--card-2:#221e18;--ink:#f3ece0;--ink-soft:#c3b8a7;--ink-faint:#9b9181;--rule:#312a20;--rule-2:#413828;--accent:#ff8a4c;--accent-ink:#12100d;--gold:#ffc23d;--focus:#7aa2ff;--ok:#4cd29a;--ok-bg:#0ea3712e;--bad:#ff8f87;--bad-bg:#e5484d29;--warn:#ffc36b;--warn-bg:#e0891b33;--info:#8fb0ff;--info-bg:#2f6df033;--t-present:#3fcf96;--t-past:#f2a446;--t-future:#7aa2ff;--t-perfect:#b39bff;--t-aux:#ff7aa2;--t-be:#45c8de;--t-past-bg:#e0891b33;--t-perfect-bg:#8b5cf633;--shadow:0 1px 0 #0006, 0 8px 20px #0000004d}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--paper:#12100d;--card:#1b1813;--card-2:#221e18;--ink:#f3ece0;--ink-soft:#c3b8a7;--ink-faint:#9b9181;--rule:#312a20;--rule-2:#413828;--accent:#ff8a4c;--accent-ink:#12100d;--gold:#ffc23d;--focus:#7aa2ff;--ok:#4cd29a;--ok-bg:#0ea3712e;--bad:#ff8f87;--bad-bg:#e5484d29;--warn:#ffc36b;--warn-bg:#e0891b33;--info:#8fb0ff;--info-bg:#2f6df033;--t-present:#3fcf96;--t-past:#f2a446;--t-future:#7aa2ff;--t-perfect:#b39bff;--t-aux:#ff7aa2;--t-be:#45c8de;--t-past-bg:#e0891b33;--t-perfect-bg:#8b5cf633;--shadow:0 1px 0 #0006, 0 8px 20px #0000004d}@media (prefers-reduced-motion:reduce){:root{--dur:0s}}:root[data-motion=off]{--dur:0s}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background:var(--paper);color:var(--ink);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh);-webkit-font-smoothing:antialiased;margin:0}h1,h2,h3{margin:0 0 var(--s3);line-height:1.15}h1{font-family:var(--font-display);font-weight:900;font-size:var(--fs-h1);letter-spacing:.01em;line-height:.95}h2{font-size:var(--fs-h2);font-weight:600}h3{font-size:19px;font-weight:600}p{margin:0 0 var(--s3)}a{color:var(--accent);text-underline-offset:3px}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.app{grid-template-rows:auto 1fr auto;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.topbar{z-index:20;align-items:center;gap:var(--s3);padding:var(--s2) var(--s4);padding-top:max(var(--s2), env(safe-area-inset-top));background:color-mix(in srgb, var(--paper) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rule);display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);white-space:nowrap;letter-spacing:.02em;color:var(--ink);text-overflow:ellipsis;min-width:0;margin-right:auto;font-size:26px;font-weight:900;text-decoration:none;overflow:hidden}.brand span{color:var(--accent)}main{width:100%;max-width:880px;padding:var(--s5) var(--s4) calc(var(--nav-h) + var(--s8) + env(safe-area-inset-bottom));margin:0 auto}.bottom-nav{z-index:20;background:var(--card);border-top:1px solid var(--rule-2);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(4,1fr);display:grid;position:fixed;bottom:0;left:0;right:0}.bottom-nav a{min-height:var(--nav-h);color:var(--ink-soft);flex-direction:column;justify-content:center;align-items:center;gap:2px;font-size:13px;text-decoration:none;display:flex}.bottom-nav a svg{width:24px;height:24px}.bottom-nav a.active{color:var(--accent);font-weight:600}@media (min-width:960px){.app{grid-template-rows:auto 1fr;grid-template-columns:220px 1fr}.topbar{grid-column:1/-1}.bottom-nav{padding:var(--s5) var(--s3);align-self:start;gap:var(--s1);background:0 0;border:none;grid-template-columns:1fr;position:sticky;top:64px}.bottom-nav a{justify-content:flex-start;gap:var(--s3);min-height:44px;padding:0 var(--s3);border-radius:var(--r-sm);flex-direction:row;font-size:16px}.bottom-nav a.active{background:var(--card);box-shadow:var(--shadow)}main{padding-bottom:var(--s8)}}.stack>*+*{margin-top:var(--s4)}.row{gap:var(--s2);flex-wrap:wrap;align-items:center;display:flex}.spread{gap:var(--s3);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.grid-2{gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.muted{color:var(--ink-soft)}.small{font-size:var(--fs-small)}.eyebrow{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:var(--s2);font-size:12px}.card{background:var(--card);border:1px solid var(--rule);border-radius:var(--r);box-shadow:var(--shadow);padding:var(--s5)}.card.flat{box-shadow:none}.card.hero{border-left:4px solid var(--accent)}hr.rule{border:none;border-top:1px solid var(--rule);margin:var(--s5) 0}.btn{justify-content:center;align-items:center;gap:var(--s2);min-height:48px;padding:0 var(--s5);border-radius:var(--r-sm);border:1px solid var(--rule-2);background:var(--card);color:var(--ink);font:600 16px/1 var(--font);cursor:pointer;transition:transform var(--dur), background var(--dur);text-decoration:none;display:inline-flex}.btn:hover{background:var(--card-2)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn.primary:hover{background:color-mix(in srgb, var(--accent) 88%, black)}.btn.gold{background:var(--gold);border-color:var(--gold);color:var(--gold-ink)}.btn.ghost{color:var(--accent);padding:0 var(--s3);background:0 0;border-color:#0000}.btn.small{min-height:40px;padding:0 var(--s3);font-size:15px}.btn.block{width:100%}.icon-btn{width:44px;height:44px;color:var(--ink-soft);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:50%;place-items:center;display:inline-grid}.icon-btn svg{width:22px;height:22px}.field{gap:var(--s1);display:grid}.field label,.field .label{font-size:15px;font-weight:600}.field .hint{font-size:var(--fs-small);color:var(--ink-soft)}input[type=text],input[type=password],input[type=number],select,textarea{width:100%;min-height:48px;padding:var(--s3);border:1px solid var(--rule-2);border-radius:var(--r-sm);background:var(--card);color:var(--ink);font:400 17px/1.4 var(--font)}textarea{resize:vertical;min-height:120px}input.answer{font-size:19px}.chips{gap:var(--s2);flex-wrap:wrap;display:flex}.chip{min-height:40px;padding:0 var(--s4);border:1px solid var(--rule-2);background:var(--card);color:var(--ink);font:400 15px/1 var(--font);cursor:pointer;border-radius:999px}.chip[aria-pressed=true],.chip[aria-checked=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.badge{background:var(--card-2);color:var(--ink-soft);white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:13px;font-weight:600;display:inline-flex}.badge.ok{background:var(--ok-bg);color:var(--ok)}.badge.bad{background:var(--bad-bg);color:var(--bad)}.badge.warn{background:var(--warn-bg);color:var(--warn)}.badge.info{background:var(--info-bg);color:var(--info)}.progress{background:var(--card-2);border-radius:999px;height:10px;overflow:hidden}.progress>span{background:var(--ok);height:100%;transition:width var(--dur);display:block}.prompt-text{margin:var(--s3) 0;font-size:22px;font-weight:600;line-height:1.4}.translation{color:var(--ink-soft);font-style:italic}.options{gap:var(--s2);display:grid}.option{align-items:center;gap:var(--s3);width:100%;min-height:56px;padding:var(--s3) var(--s4);border:2px solid var(--rule-2);border-radius:var(--r);background:var(--card);color:var(--ink);font:400 18px/1.35 var(--font);text-align:left;cursor:pointer;display:flex}.option[aria-checked=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 8%, var(--card))}.option .key{border:1px solid var(--rule-2);width:28px;height:28px;font-family:var(--font-mono);text-transform:uppercase;border-radius:50%;flex:none;place-items:center;font-size:12px;display:inline-grid}.tokens{gap:var(--s2);min-height:56px;padding:var(--s2);border:2px dashed var(--rule-2);border-radius:var(--r);flex-wrap:wrap;display:flex}.tokens.built{background:var(--card-2);border-style:solid}.token{min-height:44px;padding:0 var(--s4);border-radius:var(--r-sm);border:1px solid var(--rule-2);background:var(--card);color:var(--ink);font:600 18px/1 var(--font);cursor:pointer}.feedback{border-radius:var(--r);padding:var(--s4);border:1px solid var(--rule);background:var(--card-2)}.feedback h3{align-items:center;gap:var(--s2);display:flex}.feedback.ok{background:var(--ok-bg);border-color:color-mix(in srgb, var(--ok) 35%, transparent)}.feedback.bad{background:var(--bad-bg);border-color:color-mix(in srgb, var(--bad) 35%, transparent)}.feedback.warn{background:var(--warn-bg);border-color:color-mix(in srgb, var(--warn) 35%, transparent)}.feedback.info{background:var(--info-bg);border-color:color-mix(in srgb, var(--info) 35%, transparent)}.example{padding:var(--s2) 0;border-bottom:1px solid var(--rule)}.example:last-child{border-bottom:none}.example .en{font-weight:600}.example .ru{color:var(--ink-soft)}.example .note{font-size:var(--fs-small);color:var(--ink-faint)}.structure-table{border-collapse:collapse;width:100%;font-size:15px}.structure-table th,.structure-table td{text-align:left;vertical-align:top;padding:var(--s2);border-bottom:1px solid var(--rule)}.tense-past{color:var(--t-past)}.tense-perfect{color:var(--t-perfect)}.status-line{white-space:nowrap;border:1px solid var(--rule);background:var(--card);color:var(--ink-soft);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;font-size:14px;font-weight:600;display:inline-flex}.status-line .short{display:none}@media (max-width:480px){.brand{font-size:21px}.status-line .long{display:none}.status-line .short{display:inline}}.status-line .dot{background:var(--ink-faint);border-radius:50%;width:10px;height:10px}.status-line.saved .dot{background:var(--ok)}.status-line.pending .dot{background:var(--warn)}.status-line.error .dot{background:var(--bad)}.stat{gap:2px;display:grid}.stat .value{font-family:var(--font-display);font-size:40px;font-weight:900;line-height:1}.stat .label{font-size:var(--fs-small);color:var(--ink-soft)}.list-plain{margin:0;padding:0;list-style:none}.list-plain>li+li{margin-top:var(--s2)}.notice{padding:var(--s3) var(--s4);border-radius:var(--r-sm);background:var(--warn-bg);color:var(--ink);font-size:15px}.center-screen{min-height:100dvh;padding:var(--s4);place-items:center;display:grid}.auth-card{width:min(420px,100%)}.timeline-legend{margin:0;padding-left:1.6em;font-weight:600}.timeline-legend li+li{margin-top:var(--s1)}.form-list{gap:var(--s2);display:grid}.form-row{gap:var(--s3);padding:var(--s3);border:1px solid var(--rule);border-radius:var(--r-sm);grid-template-columns:minmax(150px,210px) 1fr;align-items:start;display:grid}.form-row[aria-current=true]{border-color:var(--accent);background:color-mix(in srgb, var(--accent) 6%, var(--card))}.form-row .formula{font-family:var(--font-mono);color:var(--ink-soft);font-size:12px}@media (max-width:560px){.form-row{gap:var(--s1);grid-template-columns:1fr}}.chat{gap:var(--s3);flex-direction:column;display:flex}.bubble{max-width:min(560px,88%);padding:var(--s3) var(--s4);border-radius:var(--r);border:1px solid var(--rule);background:var(--card)}.bubble p{margin:0}.bubble.theirs{border-bottom-left-radius:2px;align-self:flex-start}.bubble.mine{background:var(--info-bg);border-color:#0000;border-bottom-right-radius:2px;align-self:flex-end}.bubble.narrator{color:var(--ink-faint);background:0 0;border:none;align-self:center;font-style:italic}.bubble .who{font-size:var(--fs-small);color:var(--ink-faint)}.bubble-tools{margin-top:var(--s1);gap:var(--s2)}.bubble-tools:empty{display:none}.icon-btn.speak{width:40px;height:40px}details>summary{cursor:pointer}.toasts{right:var(--s4);bottom:calc(var(--nav-h) + var(--s4));gap:var(--s2);z-index:30;max-width:min(360px, calc(100vw - 2 * var(--s4)));flex-direction:column;display:flex;position:fixed}.toast{align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r);background:var(--card);border:1px solid var(--rule-2);border-left:4px solid var(--gold);box-shadow:var(--shadow);animation:toast-in var(--dur) ease-out;justify-content:space-between;display:flex}.toast.mission{border-left-color:var(--accent)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.campaign-map{width:100%;max-width:640px}.campaign-map .station-bg{fill:var(--card);stroke:var(--rule-2);stroke-width:3px}.campaign-map .station.open .station-bg{stroke:var(--accent)}.campaign-map .station.done .station-bg{fill:var(--gold);stroke:var(--gold)}.campaign-map .station.soon{opacity:.55}.campaign-map .station.soon .station-bg{stroke-dasharray:4 4}.campaign-map .station-num{font:600 18px var(--font);fill:var(--ink)}.campaign-map .station-label{font:13px var(--font);fill:var(--ink-soft)}.mission.soon{opacity:.6;box-shadow:none}.mission.current{border-color:var(--accent)}.step-row{padding:var(--s2) 0;border-top:1px solid var(--rule)}.workshop-scene{border-radius:var(--r);border:1px solid var(--rule);width:100%;max-width:560px}.item-grid{gap:var(--s3);grid-template-columns:repeat(auto-fill,minmax(200px,1fr));display:grid}.item-grid .item{gap:var(--s1);padding:var(--s3);border:1px solid var(--rule);border-radius:var(--r-sm);flex-direction:column;display:flex}.item-grid .item.locked{opacity:.6;border-style:dashed}@media (prefers-reduced-motion:reduce){.toast{animation:none}}[data-motion=off] .toast{animation:none}button.card.room{font:inherit;color:inherit;text-align:left;cursor:pointer;width:100%}
