:root{--plaster: #f3f6f7;--paper: #ffffff;--ink: #12213b;--ink-soft: #4a5a72;--line: #d5dde3;--blue: #0038b8;--blue-soft: #e5ecfb;--amber: #ffb020;--amber-ink: #6b4500;--green: #12915a;--red: #c62828;--sign: #14171c;--font-ui: "Rubik", "Segoe UI", system-ui, -apple-system, Arial, sans-serif;--font-he: "Frank Ruhl Libre", "Times New Roman", "David", serif;--radius-bubble: 18px;--gutter: 16px;--max: 560px;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--plaster);color:var(--ink);font:400 1rem/1.5 var(--font-ui);-webkit-font-smoothing:antialiased}button,input{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--blue);outline-offset:2px;border-radius:6px}.visually-hidden{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.he{font-family:var(--font-he);direction:rtl;unicode-bidi:isolate}.page{max-width:var(--max);margin:0 auto;min-height:100dvh;display:flex;flex-direction:column}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 20px;border-radius:12px;border:0;font-weight:500;text-decoration:none}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:#002c91}.btn-quiet{background:transparent;color:var(--ink-soft);padding:0 12px}.btn-quiet:hover{color:var(--ink);background:#e7ecef}.btn[disabled]{opacity:.55;cursor:not-allowed}.sign{margin:12px var(--gutter) 0;background:var(--sign);border-radius:14px;padding:14px 18px;display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px;box-shadow:inset 0 0 0 3px #2a2f37;color:var(--amber);background-image:radial-gradient(rgba(255,176,32,.07) 1px,transparent 1.4px);background-size:5px 5px}.sign-number{font-weight:700;font-size:2.6rem;line-height:1;letter-spacing:.02em;text-shadow:0 0 10px rgba(255,176,32,.55)}.sign-dest{min-width:0;text-align:right}.sign-dest .he{display:block;font-family:var(--font-ui);font-weight:700;font-size:1.35rem;line-height:1.2;text-shadow:0 0 8px rgba(255,176,32,.45)}.sign-dest span:last-child{font-size:.85rem;color:#f5c66d}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px var(--gutter) 0;gap:8px}.topbar p{margin:0;color:var(--ink-soft);font-size:.95rem}.route-summary{padding:18px var(--gutter) 6px}.route-summary h1{font-size:1.35rem;margin:0 0 4px;line-height:1.25}.route-summary p{margin:0;color:var(--ink-soft)}.meter{margin-top:12px;height:8px;background:var(--line);border-radius:99px;overflow:hidden}.meter>div{height:100%;background:var(--amber);border-radius:99px}.route{list-style:none;margin:8px 0 32px;padding:0 var(--gutter);position:relative}.stop{position:relative;display:grid;grid-template-columns:44px 1fr;column-gap:12px}.stop:before{content:"";position:absolute;left:19px;top:0;bottom:0;width:6px;background:var(--blue)}.stop:first-child:before{top:30px}.stop:last-child:before{bottom:calc(100% - 30px)}.stop[data-status=locked]:before{background:repeating-linear-gradient(var(--line) 0 8px,transparent 8px 14px)}.stop[data-status=current]:before{background:linear-gradient(var(--blue) 0 30px,var(--line) 30px);background-repeat:no-repeat}.stop[data-status=current]+.stop:before,.stop[data-status=locked]+.stop:before{background:repeating-linear-gradient(var(--line) 0 8px,transparent 8px 14px)}.stop-dot{position:relative;z-index:1;margin-top:14px;width:32px;height:32px;border-radius:50%;margin-left:6px;display:grid;place-items:center;font-weight:700;font-size:.85rem;background:var(--paper);border:4px solid var(--line);color:var(--ink-soft)}.stop[data-status=completed] .stop-dot{background:var(--blue);border-color:var(--blue);color:#fff}.stop[data-status=current] .stop-dot{width:40px;height:40px;margin:10px 0 0 2px;background:var(--amber);border-color:var(--ink);color:var(--ink)}.stop-card{display:block;width:100%;text-align:left;margin:6px 0;padding:12px 14px;border-radius:14px;border:1px solid transparent;background:transparent;text-decoration:none;color:inherit}a.stop-card:hover{background:var(--paper);border-color:var(--line)}.stop[data-status=current] .stop-card{background:var(--paper);border-color:var(--ink);border-width:2px}.stop[data-status=locked] .stop-card{color:var(--ink-soft)}.stop-title{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:500;font-size:1.05rem}.stop-meta{display:block;margin:2px 0 0;font-size:.875rem;color:var(--ink-soft)}.ticks{display:flex;gap:3px;margin-top:8px}.ticks span{flex:1;height:5px;border-radius:2px;background:var(--line)}.ticks span.on{background:var(--blue)}.stop[data-status=current] .ticks span.on{background:var(--amber)}.stop-go{margin-top:10px}.lesson-head{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:8px 8px 8px 4px;background:#f3f6f7f0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.lesson-head h1{font-size:1.05rem;margin:0;line-height:1.2}.lesson-head p{margin:0;font-size:.8rem;color:var(--ink-soft)}.lesson-head .grow{flex:1;min-width:0}.back{width:44px;height:44px;border-radius:50%;border:0;background:transparent;display:grid;place-items:center}.back:hover{background:#e2e8ec}.scene{margin:0;position:relative}.scene svg{display:block;width:100%;height:auto;aspect-ratio:400 / 210}.scene figcaption{padding:12px var(--gutter) 0;color:var(--ink-soft);font-size:.95rem}.chat{flex:1;padding:12px var(--gutter) 24px;display:flex;flex-direction:column;gap:10px}.bubble{max-width:88%;padding:10px 14px;border-radius:var(--radius-bubble);line-height:1.4}.bubble.tutor{align-self:flex-start;background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:6px}.bubble.you{align-self:flex-end;background:var(--blue);color:#fff;border-bottom-right-radius:6px}.bubble.pending{opacity:.75}.bubble p{margin:0}.phrase{align-self:flex-start;width:88%;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius-bubble);border-bottom-left-radius:6px;padding:10px 14px 12px}.phrase[data-learned=true]{border-color:var(--blue);box-shadow:inset 4px 0 0 var(--blue)}.phrase-en{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;color:var(--ink-soft)}.phrase-en b{font-weight:500;color:var(--ink)}.learned-mark{color:var(--blue);font-weight:500;white-space:nowrap}.phrase-he{display:block;font-size:1.75rem;line-height:1.25;text-align:right;margin:6px 0 0;font-weight:500}.phrase-tr{display:block;text-align:right;font-size:1rem;color:var(--ink);font-style:italic}.phrase-alt{margin-top:8px;padding-top:8px;border-top:1px dashed var(--line);font-size:.9rem}.phrase-alt .label{color:var(--ink-soft)}.phrase-alt .he{font-size:1.25rem;display:block;text-align:right}.phrase-alt .tr{display:block;text-align:right;font-style:italic}.phrase-note{margin:8px 0 0;font-size:.85rem;color:var(--amber-ink);background:#fff4dc;padding:6px 10px;border-radius:8px}.live-log{display:flex;flex-direction:column;gap:10px}.divider{align-self:center;font-size:.8rem;color:var(--ink-soft);padding:4px 12px;background:#e7ecef;border-radius:99px;margin:6px 0}.banner{margin:4px 0;padding:14px;border-radius:14px;background:var(--ink);color:#fff}.banner p{margin:0 0 10px}.banner .btn-primary{background:var(--amber);color:var(--ink)}.callbar{position:sticky;bottom:0;z-index:5;padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom));background:#f3f6f7f5;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-top:1px solid var(--line);display:flex;align-items:center;gap:14px}.callbar .status{flex:1;min-width:0}.callbar .status strong{display:block;font-weight:500}.callbar .status span{font-size:.875rem;color:var(--ink-soft)}.call-btn{position:relative;flex:none;width:64px;height:64px;border-radius:50%;border:0;display:grid;place-items:center;color:#fff;background:var(--green)}.call-btn.end{background:var(--red)}.call-btn svg{width:28px;height:28px}.call-btn.end:after{content:"";position:absolute;inset:-6px;border-radius:50%;border:3px solid var(--green);opacity:calc(.15 + var(--level, 0) * .85);transform:scale(calc(1 + var(--level, 0) * .12))}.mute-btn{width:48px;height:48px;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:grid;place-items:center}.mute-btn[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.mute-btn svg{width:22px;height:22px}.toast{position:fixed;left:50%;top:72px;transform:translate(-50%);z-index:20;background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;font-size:.95rem;max-width:calc(100% - 32px);box-shadow:0 6px 24px #12213b40}.toast .he{color:var(--amber);font-size:1.1rem;margin-left:6px}.auth{padding:0 var(--gutter) 40px}.auth h1{font-size:1.5rem;margin:24px 0 6px;line-height:1.25}.auth>p{margin:0 0 20px;color:var(--ink-soft)}.field{display:block;margin-bottom:16px}.field>span{display:block;font-weight:500;margin-bottom:6px}.field input{width:100%;min-height:48px;padding:0 14px;border-radius:12px;border:1px solid #b8c3cc;background:var(--paper)}.field input:focus-visible{outline-offset:0;border-color:var(--blue)}fieldset.field{border:0;padding:0;margin:0 0 20px}fieldset.field legend{font-weight:500;margin-bottom:4px;padding:0}fieldset.field p{margin:0 0 10px;font-size:.9rem;color:var(--ink-soft)}.choice{display:flex;gap:8px}.choice label{flex:1;display:block;padding:10px 12px;border-radius:12px;border:1px solid #b8c3cc;background:var(--paper);cursor:pointer}.choice label:has(input:checked){border:2px solid var(--blue);background:var(--blue-soft);padding:9px 11px}.choice input{position:absolute;opacity:0}.choice label:has(input:focus-visible){outline:3px solid var(--blue);outline-offset:2px}.choice small{display:block;color:var(--ink-soft);font-style:italic}.form-error{color:var(--red);background:#fdecea;padding:10px 12px;border-radius:10px;margin:0 0 16px}.switch{margin-top:16px;text-align:center}.linklike{border:0;background:none;color:var(--blue);text-decoration:underline;padding:8px}.center-msg{padding:48px var(--gutter);text-align:center;color:var(--ink-soft)}@media(prefers-reduced-motion:no-preference){.stop[data-status=current] .stop-dot{animation:arrive 2.4s ease-in-out infinite}@keyframes arrive{0%,to{box-shadow:0 0 #ffb0208c}50%{box-shadow:0 0 0 8px #ffb02000}}.call-btn.end:after{transition:transform 80ms linear,opacity 80ms linear}}.chat-end{scroll-margin-bottom:120px}
