:root{--surface:#fff;--surface-quiet:#f2f3f8;--rule:#d9dce8;--ink:#0b1230;--ink-muted:#4a5170;--line-before:#1e5bff;--line-days:#1d8f41;--line-month:#a87400;--line-90:#8a4fd8;--sun:#ffd84d;--sun-soft:#fff4c4;--sun-ink:#4a3a00;--scarlet:#e21d2d;--scarlet-press:#b8121f;--on-scarlet:#fff;--panel-outline:2px solid var(--ink);--tag-demo-bg:#f2f3f8;--tag-demo-ink:#4a5170;--tag-conflict-bg:#fff1c2;--tag-conflict-ink:#5c4300;--tag-partner-bg:#e3e9ff;--tag-partner-ink:#1a3a99;--font-sign:"Readex Pro", system-ui, sans-serif;--font-text:"Readex Pro", system-ui, sans-serif;--tracking-title:-.025em;--step-small:.8125rem;--step-body:1rem;--step-lead:1.25rem;--step-head:2rem;--step-digits:4rem;--line-width:6px;--station:14px;--interchange:26px;--radius:4px;--radius-pill:999px;--radius-bubble:14px;--gutter:16px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-6:24px;--space-8:32px;--ease-out:cubic-bezier(.16, 1, .3, 1);--train-time:.6s;--midnight:var(--surface);--midnight-2:var(--surface-quiet);--on-midnight:var(--ink);--on-midnight-muted:var(--ink-muted);--porcelain:var(--surface);--porcelain-2:var(--surface-quiet);--line-days-on-light:var(--line-days);--line-month-on-light:var(--line-month)}:root[lang=ar]{--tracking-title:0}@media (prefers-reduced-motion:reduce){:root{--train-time:0s}}*,:before,:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--midnight);color:var(--ink);font-family:var(--font-text);font-size:var(--step-body);-webkit-font-smoothing:antialiased;line-height:1.5}a{color:inherit}button{font:inherit;cursor:pointer}.shell{background:var(--porcelain);flex-direction:column;max-width:430px;min-height:100%;margin:0 auto;display:flex}.shell-top{z-index:10;justify-content:space-between;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--gutter);padding-top:calc(var(--space-3) + env(safe-area-inset-top));background:var(--midnight);color:var(--on-midnight);display:flex;position:sticky;top:0}.shell-brand{align-items:center;gap:var(--space-2);font-family:var(--font-sign);font-weight:600;font-size:var(--step-lead);letter-spacing:var(--tracking-title);text-transform:lowercase;text-decoration:none;display:flex}.shell-main{padding:var(--space-4) var(--gutter) var(--space-8);flex:1}.shell-legal{padding:var(--space-2) var(--gutter);background:var(--porcelain-2);border-top:1px solid var(--rule);text-align:center}.shell-tabs{background:var(--midnight);color:var(--on-midnight-muted);padding-bottom:env(safe-area-inset-bottom);grid-template-columns:repeat(3,1fr);display:grid;position:sticky;bottom:0}.shell-tabs a{padding:var(--space-3) var(--space-2);text-align:center;font-size:var(--step-small);border-top:3px solid #0000;text-decoration:none}.shell-tabs a.is-active{color:var(--on-midnight);border-top-color:var(--scarlet)}.lang-switch{border-radius:var(--radius);background:var(--midnight-2);display:flex;overflow:hidden}.lang-switch button{color:var(--on-midnight-muted);padding:var(--space-1) var(--space-3);background:0 0;border:0;min-width:40px;min-height:32px;font-weight:600}.lang-switch button.is-active{background:var(--ink);color:var(--surface)}.tag{padding:2px var(--space-2);border-radius:var(--radius);font-size:var(--step-small);font-weight:500;line-height:1.4;display:inline-block}.tag-demo{background:var(--tag-demo-bg);color:var(--tag-demo-ink)}.tag-conflict{background:var(--tag-conflict-bg);color:var(--tag-conflict-ink)}.tag-partner{background:var(--tag-partner-bg);color:var(--tag-partner-ink)}.tag-legal{color:var(--ink-muted);background:0 0}.sign{font-family:var(--font-sign);letter-spacing:var(--tracking-title);font-weight:700;line-height:1.15}h1.sign{font-size:var(--step-head);margin:0 0 var(--space-3)}h2.sign{font-size:var(--step-lead);margin:var(--space-6) 0 var(--space-2)}.muted{color:var(--ink-muted)}.digits{font-family:var(--font-sign);font-variant-numeric:tabular-nums;font-weight:700}.btn-primary{justify-content:center;align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-3) var(--space-6);border-radius:var(--radius-pill);background:var(--scarlet);color:var(--on-scarlet);border:0;font-weight:600;text-decoration:none;display:inline-flex}.btn-primary:active{background:var(--scarlet-press)}.btn-secondary{justify-content:center;align-items:center;gap:var(--space-2);min-height:44px;padding:var(--space-2) var(--space-4);border:2px solid var(--ink);border-radius:var(--radius-pill);color:var(--ink);background:0 0;font-weight:600;text-decoration:none;display:inline-flex}.card{border:1px solid var(--rule);border-radius:var(--radius);padding:var(--space-4);background:#fff}.placeholder{margin-top:var(--space-8);text-align:center;color:var(--ink-muted)}:root[dir=rtl] .icon-arrow{transform:scaleX(-1)}.start-hero{margin:calc(-1 * var(--space-4)) calc(-1 * var(--gutter)) 0;padding:var(--space-6) var(--gutter) var(--space-4);background:var(--midnight);color:var(--on-midnight)}.start-hero svg{width:100%;height:auto;display:block}.start-kicker{margin:0 0 var(--space-2);font-size:var(--step-small);color:var(--on-midnight-muted)}.start-title{margin:0 0 var(--space-3);font-size:2.5rem}.start-sub{color:var(--on-midnight-muted);margin:0}.start-stat{align-items:baseline;gap:var(--space-2);margin:var(--space-4) 0 0;color:var(--on-midnight);display:flex}.start-stat .digits{font-size:var(--step-digits);line-height:1}.draw{stroke-dasharray:400;stroke-dashoffset:400px;animation:draw calc(var(--train-time) * 2) var(--ease-out) forwards}.draw:nth-child(2){animation-delay:calc(var(--train-time) * .3)}.draw:nth-child(3){animation-delay:calc(var(--train-time) * .6)}.draw:nth-child(4){animation-delay:calc(var(--train-time) * .9)}@keyframes draw{to{stroke-dashoffset:0}}.pop{transform-box:fill-box;transform-origin:50%;animation:pop var(--train-time) var(--ease-out) forwards;transform:scale(0)}@keyframes pop{to{transform:scale(1)}}.lang-cards{gap:var(--space-3);margin:var(--space-3) 0 var(--space-6);grid-template-columns:repeat(3,1fr);display:grid}.lang-card{align-items:center;gap:var(--space-1);min-height:84px;padding:var(--space-3);border:2px solid var(--rule);border-radius:var(--radius);color:var(--ink);background:#fff;flex-direction:column;display:flex}.lang-card .sign{font-size:var(--step-head)}.lang-card.is-active{border-color:var(--ink);background:var(--midnight);color:var(--on-midnight)}.lang-card small{color:inherit;opacity:.8}.start-cta{width:100%;font-size:var(--step-lead)}.intake-progress{margin:0 0 var(--space-6);align-items:center;display:flex}.intake-progress .seg{height:var(--line-width);background:var(--rule);flex:1}.intake-progress .seg.is-done{background:var(--line-days-on-light)}.intake-progress .stop{width:var(--station);height:var(--station);border:3px solid var(--rule);background:#fff;border-radius:50%;flex:none}.intake-progress .stop.is-done{border-color:var(--line-days-on-light);background:var(--line-days-on-light)}.intake-progress .stop.is-current{width:var(--interchange);height:var(--interchange);border-color:var(--ink);box-shadow:0 0 0 4px var(--porcelain)}.intake-q{margin:0 0 var(--space-1)}.intake-help{margin:0 0 var(--space-4)}.option-grid{gap:var(--space-3);margin:0 0 var(--space-6);display:grid}.option{align-items:center;gap:var(--space-3);min-height:64px;padding:var(--space-3) var(--space-4);border:2px solid var(--rule);border-radius:var(--radius);color:var(--ink);text-align:start;background:#fff;font-weight:500;display:flex}.option .icon{color:var(--ink-muted);flex:none}.option.is-active{border-color:var(--ink);background:var(--midnight);color:var(--on-midnight)}.option.is-active .icon{color:var(--line-days)}.option[disabled]{opacity:.55;cursor:not-allowed}.option .soon{font-size:var(--step-small);color:var(--ink-muted);margin-inline-start:auto}.option.is-active .soon{color:var(--on-midnight-muted)}.intake-name{width:100%;min-height:48px;padding:var(--space-3);border:2px solid var(--rule);border-radius:var(--radius);font:inherit;margin:0 0 var(--space-6)}.intake-actions{gap:var(--space-3);justify-content:space-between;align-items:center;display:flex}.intake-actions .btn-primary{flex:1}.link-sam{margin:var(--space-6) auto 0;color:var(--ink-muted);background:0 0;border:0;text-decoration:underline;display:block}.building{margin:calc(-1 * var(--space-4)) calc(-1 * var(--gutter)) calc(-1 * var(--space-8));min-height:100%;padding:var(--space-6) var(--gutter) var(--space-6);background:var(--midnight);color:var(--on-midnight)}.building h1{margin:0}.building .muted{color:var(--on-midnight-muted);margin:var(--space-1) 0 0}.building .digits{font-size:var(--step-lead)}.building-line{margin:var(--space-4) 0;padding-inline-start:44px;position:relative}.building-line .rail{inset-inline-start:17px;width:var(--line-width);background:var(--rail-color,var(--line-before));height:0;animation:grow var(--grow-time,2.4s) linear forwards;position:absolute;top:0}@keyframes grow{to{height:100%}}.building-station{align-items:center;gap:var(--space-3);opacity:0;min-height:34px;animation:arrive var(--train-time) var(--ease-out) forwards;animation-delay:var(--delay,0s);display:flex;position:relative;transform:translate(-8px)}:root[dir=rtl] .building-station{transform:translate(8px)}@keyframes arrive{to{opacity:1;transform:none}}.building-station .dot{width:var(--station);height:var(--station);background:var(--porcelain);border:3px solid var(--phase,var(--line-before));border-radius:50%;margin-inline-start:13px;position:absolute;inset-inline-start:-44px}.building-station .icon{color:var(--phase,var(--line-before));flex:none}.building-station span{font-size:var(--step-small)}.building-phase{margin:var(--space-3) 0 var(--space-1);font-size:var(--step-small);color:var(--phase);opacity:0;animation:arrive var(--train-time) var(--ease-out) forwards;animation-delay:var(--delay,0s);font-weight:600}.building-train{inset-inline-start:4px;background:var(--scarlet);width:32px;height:32px;color:var(--on-scarlet);border-radius:var(--radius);animation:ride var(--grow-time,2.4s) linear forwards;place-items:center;display:grid;position:absolute;top:0}@keyframes ride{to{top:calc(100% - 32px)}}.building-ready{opacity:0;animation:arrive var(--train-time) var(--ease-out) forwards;animation-delay:var(--delay,0s)}.building-ready .btn-primary{width:100%;margin-top:var(--space-3)}.practice-sub{margin:0 0 var(--space-3);font-size:var(--step-small)}.practice-empty{text-align:center;margin:0}.report-list,.signal-list{gap:var(--space-3);margin:0;padding:0;list-style:none;display:grid}.report{padding:var(--space-3) var(--space-4);background:var(--sun-soft);border-color:var(--sun-soft);border-radius:var(--radius-bubble)}.report.is-new{border-color:var(--ink);opacity:0;animation:arrive var(--train-time) var(--ease-out) forwards;transform:translate(-8px)}:root[dir=rtl] .report.is-new{transform:translate(8px)}.report-head{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);flex-wrap:wrap;display:flex}.report-count{align-items:baseline;gap:var(--space-1);color:var(--ink);margin-inline-end:auto;display:inline-flex}.report-count .icon{color:var(--ink-muted);align-self:center}.report-count .digits{font-size:var(--step-lead);line-height:1}.report-count .muted{font-size:var(--step-small)}.report-yours{font-size:var(--step-small);color:var(--scarlet);font-weight:600}.report-text{margin:0}.report-where{margin:var(--space-1) 0 0;font-size:var(--step-small)}.link-list{margin:0 0 var(--space-6);gap:var(--space-2);padding:0;list-style:none;display:grid}.go-link{gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);background:#fff;grid-template-columns:auto 1fr 16px;align-items:center;text-decoration:none;display:grid}.go-link .icon-arrow{color:var(--ink-muted);transform:rotate(-45deg)}:root[dir=rtl] .go-link .icon-arrow{transform:rotate(-45deg)scaleX(-1)}.go-kind{padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--surface-quiet);color:var(--ink-muted);white-space:nowrap;font-size:.7rem;font-weight:600}.go-link.is-official .go-kind{background:var(--tag-partner-bg);color:var(--tag-partner-ink)}.go-link.is-free .go-kind{background:var(--sun-soft);color:var(--sun-ink)}.go-label{font-size:var(--step-small)}.go-checked{margin:2px var(--space-3) 0;font-size:.7rem;display:block}.signals-title{margin:var(--space-6) 0 var(--space-2);font-size:var(--step-small);color:var(--ink-muted);font-weight:600}.signal{border-inline-start:var(--line-width) solid var(--rule);padding-inline-start:var(--space-3)}.signal-labels{gap:var(--space-2);margin:0 0 var(--space-1);font-size:var(--step-small);flex-wrap:wrap;display:flex}.signal-strength{color:var(--ink-muted);font-weight:600}.signal-strength.is-official{color:var(--line-days-on-light)}.signal-strength.is-university{color:var(--line-before)}.signal-strength.is-unverified{color:var(--tag-conflict-ink)}.signal-kind{padding:0 var(--space-2);border-radius:var(--radius);background:var(--tag-conflict-bg);color:var(--tag-conflict-ink)}.signal-text{margin:0}.signal-source,.signal-note{align-items:center;gap:var(--space-1);margin:var(--space-1) 0 0;font-size:var(--step-small);color:var(--ink-muted);display:inline-flex}.signal-source .icon{transform:rotate(-45deg)}:root[dir=rtl] .signal-source .icon{transform:rotate(-45deg)scaleX(-1)}.report-cta{margin:var(--space-4) 0 0}.report-cta .btn-primary{width:100%}.report-form{margin:var(--space-4) 0 0;border:var(--panel-outline)}.report-form-title{margin:0 0 var(--space-1);font-size:var(--step-lead)}.report-form-sub{margin:0 0 var(--space-3);font-size:var(--step-small)}.report-city{align-items:center;gap:var(--space-1);margin:0 0 var(--space-3);font-size:var(--step-small);display:flex}.report-city strong{color:var(--ink)}.report-options{margin-bottom:var(--space-4)}.report-options .option{min-height:52px;padding:var(--space-2) var(--space-3)}.report-detail-label{margin:0 0 var(--space-2);font-size:var(--step-small);display:block}.report-detail{width:100%;padding:var(--space-3);border:2px solid var(--rule);border-radius:var(--radius);font:inherit;resize:vertical;margin:0 0 var(--space-4)}.report-detail:focus{border-color:var(--ink);outline:none}.report-form-foot{justify-content:space-between;align-items:center;gap:var(--space-3);flex-wrap:wrap;display:flex}.report-form-actions{gap:var(--space-2);margin-inline-start:auto;display:flex}.report-form .btn-primary[disabled]{opacity:.5;cursor:not-allowed}.report-thanks{margin:var(--space-4) 0 0;border-color:var(--line-days)}.report-thanks p{align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-3);display:flex}.report-thanks .icon{color:var(--line-days);flex:none}.me-too{align-items:center;gap:var(--space-1);margin:var(--space-2) 0 0;padding:var(--space-1) var(--space-2);border:1px solid var(--rule);border-radius:var(--radius-pill);background:var(--surface-quiet);color:var(--ink-muted);font-size:var(--step-small);font-weight:500;display:inline-flex}.me-too:active{border-color:var(--ink);color:var(--ink)}.chip{align-items:baseline;gap:var(--space-1);min-height:36px;padding:var(--space-1) var(--space-3);border:2px solid var(--rule);border-radius:var(--radius-pill);color:var(--ink);font-weight:500;font-size:var(--step-small);background:#fff;display:inline-flex}.chip.is-active{border-color:var(--ink);background:var(--ink);color:#fff}.chip[disabled]{opacity:.55;cursor:not-allowed}.chip small{color:var(--ink-muted);font-size:.7rem}.city-chips{gap:var(--space-2);margin:var(--space-3) 0;flex-wrap:wrap;display:flex}.stat-row{gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-3);text-align:center;grid-template-columns:repeat(3,1fr);display:grid}.stat-row dt{font-size:var(--step-head);line-height:1}.stat-row dd{margin:var(--space-1) 0 0;font-size:var(--step-small);color:var(--ink-muted)}.reports-all .report{border-inline-start:var(--line-width) solid var(--phase,var(--rule))}.report-station{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);color:var(--phase,var(--ink));text-decoration:none;display:flex}.report-station .sign{font-size:var(--step-body);color:var(--ink)}.report-station .icon-arrow{color:var(--ink-muted);margin-inline-start:auto}.reports-rule{gap:var(--space-2);margin:var(--space-4) 0;font-size:var(--step-small);align-items:flex-start;display:flex}.reports-rule .icon{flex:none;margin-top:2px}.roadmap{margin:var(--space-4) 0;padding:0;list-style:none}.roadmap-stretch{padding:0;padding-block-end:var(--space-6);padding-inline-start:34px;position:relative}.roadmap-stretch:before{content:"";inset-inline-start:10px;width:var(--line-width);background:var(--phase);position:absolute;top:10px;bottom:-10px}.roadmap-stretch:last-child:before{height:10px;bottom:auto}.roadmap-stretch.is-next:before,.roadmap-stretch.is-cities:before,.roadmap-stretch.is-later:before{background:repeating-linear-gradient(to bottom, var(--phase) 0 10px, transparent 10px 16px)}.roadmap-head{align-items:center;gap:var(--space-2);margin:0 0 var(--space-2);display:flex}.roadmap-head h2{font-size:var(--step-lead);margin:0}.roadmap-ring{width:var(--interchange);height:var(--interchange);border:4px solid var(--phase);background:#fff;border-radius:50%;position:absolute;inset-inline-start:0}.roadmap-stretch.is-now .roadmap-ring{background:var(--phase)}.status{padding:0 var(--space-2);border:1px solid var(--rule);border-radius:var(--radius-pill);font-size:var(--step-small);color:var(--ink-muted);margin-inline-start:auto;font-weight:600}.status-now{border-color:var(--phase);color:var(--phase)}.roadmap-items{gap:var(--space-2);margin:0;padding:0;list-style:none;display:grid}.roadmap-item{align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--rule);border-radius:var(--radius);color:var(--ink);background:#fff;text-decoration:none;display:flex}.roadmap-item .icon{color:var(--phase);flex:none;margin-top:2px}.roadmap-item .roadmap-go{color:var(--ink-muted);margin-inline-start:auto}.roadmap-item.is-link:active{border-color:var(--ink)}.mock-label{align-items:center;gap:var(--space-1);margin:var(--space-3) 0;padding:2px var(--space-2);border-radius:var(--radius-pill);background:var(--tag-demo-bg);color:var(--tag-demo-ink);font-size:var(--step-small);display:inline-flex}.chat{border:var(--panel-outline);border-radius:var(--radius);background:var(--surface-quiet);overflow:hidden}.chat-top{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--rule);background:#fff;display:flex}.chat-who{flex-direction:column;min-width:0;display:flex}.chat-top small{font-size:var(--step-small)}.chat-avatar{border:3px solid var(--ink);width:40px;height:40px;font-size:var(--step-body);background:#fff;border-radius:50%;flex:none;place-items:center;display:grid}.chat-body{gap:var(--space-2);padding:var(--space-4);min-height:280px;display:grid}.chat-day{margin:0 auto var(--space-2);padding:2px var(--space-2);border-radius:var(--radius);color:var(--ink-muted);font-size:var(--step-small);background:#fff}.bubble{max-width:88%;padding:var(--space-2) var(--space-3) var(--space-4);border-radius:var(--radius);border:1px solid var(--rule);animation:arrive var(--train-time) var(--ease-out) both;background:#fff;position:relative}.bubble p{margin:0 0 var(--space-1)}.bubble time{inset-inline-end:var(--space-2);color:var(--ink-muted);font-size:.7rem;position:absolute;bottom:2px}.bubble.is-me{background:var(--line-days);border-color:var(--line-days);color:#fff;margin-inline-start:auto}.bubble.is-me time{color:#fff;opacity:.85}.bubble-deadline{align-items:baseline;gap:var(--space-2);color:var(--scarlet);font-weight:600;display:flex}.bubble-deadline .digits{font-size:var(--step-head);line-height:1}.bubble-link{align-items:center;gap:var(--space-1);margin:var(--space-1) 0 0;color:var(--line-before);font-weight:600;text-decoration:none;display:inline-flex}.chat-quick{gap:var(--space-2);padding:var(--space-3) var(--space-4);border-top:1px solid var(--rule);background:#fff;flex-wrap:wrap;display:flex}.ready-wa{justify-content:center;align-items:center;gap:var(--space-1);margin:var(--space-3) 0 0;font-size:var(--step-small);display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.talk-head{align-items:flex-start;gap:var(--space-3);margin:0 0 var(--space-4);display:flex}.talk-head-small{margin-bottom:var(--space-2);align-items:center}.pasamigo{flex:none}.talk-bubble{max-width:none;padding-bottom:var(--space-3);animation:arrive var(--train-time) var(--ease-out) both;flex:1}.talk-name{font-family:var(--font-sign);font-weight:700;font-size:var(--step-small);color:var(--ink-muted)}.ask-kicker{font-size:var(--step-small);margin:0}.talk-form{gap:var(--space-3);margin:0 0 var(--space-4);display:grid}.talk-input{width:100%;padding:var(--space-3) var(--space-4);border:2px solid var(--ink);border-radius:var(--radius);font:inherit;font-size:var(--step-body);resize:vertical;background:#fff;line-height:1.5}.talk-input:focus{outline:3px solid var(--line-before);outline-offset:2px}.talk-input:disabled{color:var(--ink-muted)}.talk-actions{gap:var(--space-3);align-items:center;display:flex}.talk-send{flex:1}.talk-send[disabled]{opacity:.5;cursor:not-allowed}.mic{background:var(--ink);color:#fff;border:0;border-radius:50%;flex:none;place-items:center;width:48px;height:48px;display:grid;position:relative}.mic.is-on{background:var(--scarlet)}.mic-wave{align-items:center;gap:2px;height:20px;display:flex;position:absolute;inset-inline-start:calc(100% + var(--space-2))}.mic-wave i{background:var(--scarlet);border-radius:2px;width:3px;height:8px;animation:.8s ease-in-out infinite wave}.mic-wave i:nth-child(2){animation-delay:.1s}.mic-wave i:nth-child(3){animation-delay:.2s}.mic-wave i:nth-child(4){animation-delay:.3s}@keyframes wave{0%,to{height:6px}50%{height:18px}}.ai-label{align-items:center;gap:var(--space-1);margin:0 0 var(--space-3);font-size:var(--step-small);display:flex}.chat-log{gap:var(--space-2);margin:0 0 var(--space-3);display:grid}.chat-row{align-items:flex-end;gap:var(--space-2);display:flex}.chat-row.is-me{justify-content:flex-end}.chat-row .pasamigo{flex:none;margin-bottom:-6px}.chat-gap{flex:none;width:64px}.bubble.is-live p:first-child:after{content:"";vertical-align:text-bottom;background:var(--ink-muted);width:2px;height:1em;margin-inline-start:2px;animation:.8s step-end infinite caret;display:inline-block}@keyframes caret{50%{opacity:0}}.chat-row .bubble{max-width:85%;padding:var(--space-2) var(--space-3);border-radius:var(--radius-bubble);animation:arrive var(--train-time) var(--ease-out) both}.chat-row .bubble.is-bot{background:var(--surface-quiet);border-color:var(--surface-quiet);border-end-start-radius:var(--radius)}.chat-row .bubble.is-me{background:var(--ink);border-color:var(--ink);color:#fff;border-end-end-radius:var(--radius)}.chat-row .bubble p{margin:0}.why-line{font-size:var(--step-small);margin-top:var(--space-1)!important}.typing{align-items:center;gap:4px;min-height:36px;display:flex}.typing i{background:var(--ink-muted);border-radius:50%;width:6px;height:6px;animation:1s ease-in-out infinite typing}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes typing{0%,to{opacity:.3;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}.talk-row{align-items:flex-end;gap:var(--space-2);display:flex}.talk-row .talk-input{min-height:48px;padding:var(--space-3) var(--space-4);border-radius:var(--radius-bubble);resize:none;flex:1}.talk-row .talk-send{border-radius:50%;flex:none;width:48px;height:48px;padding:0}.build-row{gap:var(--space-2);margin:0 0 var(--space-4);justify-items:center;display:grid}.talk-chips{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);flex-wrap:wrap;display:flex}.talk-chips .muted{font-size:var(--step-small)}.talk-chips .chip{border-color:var(--ink)}.need{padding:var(--space-3) var(--space-4);margin:0 0 var(--space-3);background:var(--surface-quiet);border-color:var(--surface-quiet)}.need-title{margin:0 0 var(--space-2);font-family:var(--font-sign);letter-spacing:var(--tracking-title);font-weight:600;font-size:var(--step-body)}.need-list{gap:var(--space-1);margin:0;padding:0;list-style:none;display:grid}.need-list li button{gap:var(--space-2);width:100%;font:inherit;font-size:var(--step-small);color:var(--ink-muted);text-align:start;background:0 0;border:0;grid-template-columns:16px 1fr auto;align-items:center;padding:2px 0;display:grid}.need-list li.is-asking button{color:var(--ink);font-weight:600}.need-list li.is-known button{color:var(--ink)}.need-list li.is-known .icon{color:var(--line-days)}.need-list li.is-todo .icon{color:var(--rule)}.need-list b{text-align:end;animation:arrive var(--train-time) var(--ease-out) both;font-weight:600}.talk-privacy{margin:0 0 var(--space-4);font-size:var(--step-small)}.talk-foot{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.talk-foot .link-sam{margin:0}.why{margin:0 0 var(--space-4);padding:var(--space-3) var(--space-4);border-inline-start:var(--line-width) solid var(--line-before);background:var(--surface-quiet);border-radius:var(--radius)}.why strong{font-size:var(--step-small);color:var(--ink-muted);display:block}.city-other{margin:0 0 var(--space-3)}.city-other label{margin:0 0 var(--space-2);font-size:var(--step-small);display:block}.city-other-row{gap:var(--space-2);display:flex}.city-other-row .intake-name{flex:1;margin:0}.ask-note{margin:0 0 var(--space-4);font-size:var(--step-small)}.sum{margin:0 0 var(--space-4);padding:0 var(--space-4);border:var(--panel-outline);list-style:none}.sum li+li{border-top:1px solid var(--rule)}.sum button{gap:var(--space-3);width:100%;padding:var(--space-3) 0;color:var(--ink);text-align:start;font:inherit;background:0 0;border:0;grid-template-columns:1fr auto 14px;align-items:center;display:grid}.sum span{color:var(--ink-muted)}.sum b{text-align:end;font-weight:600}.sum .icon{color:var(--ink-muted)}.next-card{gap:var(--space-2);padding:var(--space-4);margin:0 0 var(--space-4);border:var(--panel-outline);border-radius:var(--radius);animation:arrive var(--train-time) var(--ease-out) both;background:#fff;display:grid}.next-row{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.next-label{font-size:var(--step-small);color:var(--ink-muted);font-weight:600}.next-title{margin:0}.countdown{align-items:baseline;gap:var(--space-2);color:var(--ink-muted);margin:0;display:flex}.countdown .digits{font-size:var(--step-digits);color:var(--scarlet);line-height:.9}.next-card .btn-primary{margin-top:var(--space-2);justify-self:start}.line{margin:0;padding:0;list-style:none}.line-phase{position:relative}.phase-head{align-items:center;gap:var(--space-2);width:100%;padding:var(--space-3) 0 var(--space-1) 40px;color:var(--phase);font:600 var(--step-small) var(--font-text);text-align:start;cursor:default;background:0 0;border:0;padding-inline:40px 0;display:flex;position:relative}.phase-head[aria-expanded]{cursor:pointer}.phase-head .muted{text-transform:none;letter-spacing:0;font-weight:500}.phase-head:before{content:"";inset-inline-start:13px;width:var(--line-width);background:var(--phase);position:absolute;top:0;bottom:0}.line-phase:first-child .phase-head:before{top:50%}.chev{color:var(--ink-muted);margin-inline-start:auto;transform:rotate(90deg)}.chev.is-open{transform:rotate(-90deg)}.stations{margin:0;padding:0;list-style:none}.station{position:relative}.station:before{content:"";inset-inline-start:13px;width:var(--line-width);background:var(--phase);position:absolute;top:0;bottom:0}.line-phase:last-child .station:last-child:before{bottom:50%}.station-row{gap:var(--space-1) var(--space-2);width:100%;padding:var(--space-3) 0;color:var(--ink);text-align:start;font:inherit;background:0 0;border:0;grid-template-columns:40px 1fr auto;align-items:start;display:grid;position:relative}.station .dot{z-index:1;width:var(--station);height:var(--station);box-shadow:0 0 0 4px var(--phase);background:#fff;border-radius:50%;margin:4px 0 0 9px;margin-inline:9px 0;position:relative}.station.is-done .dot{background:var(--phase)}.station.is-here .dot{width:var(--interchange);height:var(--interchange);margin-top:0;background:var(--sun);box-shadow:0 0 0 4px var(--ink), 0 0 0 10px var(--sun-soft);margin-inline-start:3px}.station-text{gap:2px;display:grid}.station-name{font-family:var(--font-sign);letter-spacing:var(--tracking-title);font-weight:600;font-size:var(--step-lead);line-height:1.05}.station.is-done .station-name{color:var(--ink-muted)}.station-sub{font-size:var(--step-small);color:var(--ink-muted)}.station.is-here .station-sub{color:var(--ink);font-weight:600}.station-date{font-size:var(--step-small);color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap;justify-items:end;padding-top:4px;display:grid}.station-date small{font-size:.7rem}.station-date.is-hot{color:var(--scarlet);font-weight:600}.line.is-drawing .phase-head,.line.is-drawing .station-row{opacity:0;animation:arrive var(--train-time) var(--ease-out) forwards;animation-delay:var(--delay,0s)}.dates-note{margin:var(--space-4) 0 var(--space-3);font-size:var(--step-small)}.peek{margin:0 0 var(--space-3) 40px;padding:var(--space-3) var(--space-4);border:var(--panel-outline);border-radius:var(--radius);animation:arrive var(--train-time) var(--ease-out) both;background:#fff;margin-inline:40px 0}.peek-head{align-items:center;gap:var(--space-2);color:var(--phase);display:flex}.peek-head h2{font-size:var(--step-lead);color:var(--ink);margin:0}.peek p{margin:var(--space-2) 0 0}.kv{gap:var(--space-1) var(--space-3);margin:var(--space-2) 0 0;font-size:var(--step-small);grid-template-columns:auto 1fr;display:grid}.kv dt{color:var(--ink-muted)}.kv dd{margin:0;font-weight:600}.peek-tags{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.peek-count{align-items:center;gap:var(--space-1);font-size:var(--step-small);color:var(--ink-muted);display:inline-flex}.peek-count .digits{font-size:var(--step-body);color:var(--ink)}.peek-actions{justify-content:space-between;align-items:center;gap:var(--space-2);margin-top:var(--space-3);flex-wrap:wrap;display:flex}@media (prefers-reduced-motion:reduce){.draw,.pop,.building-station,.building-phase,.building-ready,.building-line .rail,.building-train,.report.is-new,.bubble,.talk-bubble,.need-list b,.next-card,.peek,.line.is-drawing .phase-head,.line.is-drawing .station-row,.mic-wave i,.chat-row .bubble,.typing i{animation-duration:0s!important;animation-delay:0s!important}}.ask-fab{z-index:20;bottom:calc(var(--space-4) + env(safe-area-inset-bottom));align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-4) var(--space-1) var(--space-1);border:2px solid var(--ink);border-radius:var(--radius-pill);color:var(--ink);box-shadow:0 10px 24px -12px color-mix(in srgb, var(--ink) 45%, transparent);background:#fff;padding-inline-start:var(--space-1);padding-inline-end:var(--space-4);font-weight:600;display:inline-flex;position:fixed;inset-inline-end:max(var(--space-4), calc((100vw - 430px) / 2 + var(--space-4)))}.ask-sheet{z-index:30;inset-inline:0;max-width:430px;max-height:85vh;padding:var(--space-3) var(--gutter) calc(var(--space-3) + env(safe-area-inset-bottom));border:var(--panel-outline);border-radius:var(--radius-bubble) var(--radius-bubble) 0 0;box-shadow:0 -12px 32px -16px color-mix(in srgb, var(--ink) 50%, transparent);animation:arrive var(--train-time) var(--ease-out) both;background:#fff;border-bottom:0;flex-direction:column;margin:0 auto;display:flex;position:fixed;bottom:0}.ask-head{align-items:center;gap:var(--space-2);display:flex}.ask-who{flex:1;line-height:1.3;display:grid}.ask-who small{font-size:var(--step-small)}.ask-close{background:var(--surface-quiet);width:36px;height:36px;color:var(--ink);border:0;border-radius:50%;place-items:center;display:grid}.ask-log{align-content:start;gap:var(--space-2);min-height:120px;padding:var(--space-3) 0;flex:1;display:grid;overflow-y:auto}.ask-hint{font-size:var(--step-small);margin:0}.ask-gap{width:var(--space-2)}.ask-sheet .talk-chips{margin-bottom:var(--space-2)}.ask-sheet .talk-form{margin-bottom:var(--space-1)}.ask-legal{text-align:center;margin:0;font-size:.7rem}@media (prefers-reduced-motion:reduce){.ask-sheet{animation-duration:0s!important}}.shell:has(.lp){--bleed:var(--gutter)}.lp{gap:calc(var(--space-8) * 2);padding-block:var(--space-2) var(--space-8);display:grid}.lp ::selection{background:var(--sun);color:var(--ink)}.lp h2{font-family:var(--font-sign);letter-spacing:var(--tracking-title);text-wrap:balance;margin:0;font-size:1.75rem;font-weight:700;line-height:1.1}.lp p{margin:0}.lp-hero{gap:var(--space-8);display:grid}.lp-hero-text{gap:var(--space-4);align-content:start;display:grid}.lp-title{font-family:var(--font-sign);letter-spacing:var(--tracking-title);text-wrap:balance;margin:0;font-size:clamp(2.375rem,11vw,3rem);font-weight:700;line-height:1}:root[lang=ar] .lp-title{font-size:clamp(1.875rem,8.6vw,2.5rem);line-height:1.3}.lp-lead{text-wrap:pretty;max-width:40ch;font-size:1.125rem;line-height:1.5;margin-block-end:var(--space-2)!important}.lp-doors{gap:var(--space-2);display:grid}.lp-btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:56px;padding-inline:var(--space-6);border-radius:var(--radius-pill);font:600 1.0625rem/1 var(--font-text);transition:background-color .16s var(--ease-out), transform .16s var(--ease-out);text-decoration:none;display:flex}.lp-btn svg{flex:none;width:22px;height:22px}.lp-btn:active{transform:scale(.97)}.lp-btn.talk{background:var(--scarlet);color:var(--on-scarlet)}.lp-btn.talk:hover{background:var(--scarlet-press)}.lp-btn.type{background:var(--surface);color:var(--ink);border:2px solid var(--ink)}.lp-btn.type:hover{background:var(--surface-quiet)}.lp-btn:focus-visible{outline:3px solid var(--line-before);outline-offset:3px}.lp-promise{gap:var(--space-2) var(--space-4);color:var(--ink-muted);flex-wrap:wrap;margin:0;padding:0;font-size:.9375rem;list-style:none;display:flex}.lp-promise li,.lp-checks li{align-items:center;gap:6px;display:inline-flex}.lp-promise svg{width:16px;height:16px;color:var(--line-days);flex:none}.lp-sample{gap:var(--space-4);background:var(--surface-quiet);border-radius:var(--radius);padding:var(--space-6) var(--space-4) var(--space-4);margin:0;display:grid}.lp-sample figcaption{font-size:var(--step-small);color:var(--ink-muted)}.lp-line{margin:0;padding:0;list-style:none;display:grid}.lp-st{gap:var(--space-3);grid-template-columns:28px 1fr;padding-block-end:var(--space-4);display:grid;position:relative}.lp-st:last-child{padding-block-end:0}.lp-st:before{content:"";inset-inline-start:11px;width:var(--line-width);background:var(--c);position:absolute;top:0;bottom:0}.lp-st:first-child:before{top:12px}.lp-st:last-child:before{height:12px;bottom:auto}.lp-dot{z-index:1;width:var(--station);height:var(--station);background:var(--surface);border:4px solid var(--c);border-radius:50%;justify-self:center;margin-block-start:5px;position:relative}.lp-st.is-done .lp-dot{background:var(--c)}.lp-st.is-here .lp-dot{border:5px solid var(--ink);background:var(--surface);width:24px;height:24px;box-shadow:0 0 0 8px var(--sun);margin-block-start:0}.lp-st-body{gap:var(--space-2);min-width:0;display:grid}.lp-st-row{justify-content:space-between;align-items:baseline;gap:2px var(--space-3);flex-wrap:wrap;display:flex}.lp-st-row b{font-family:var(--font-sign);font-size:1rem;font-weight:600;line-height:1.35}.lp-st.is-done .lp-st-row b{color:var(--ink-muted);font-weight:500}.lp-st.is-here .lp-st-row b{font-size:1.125rem}.lp-when{font-size:var(--step-small);color:var(--ink-muted);font-variant-numeric:tabular-nums;white-space:nowrap}.lp-st.is-here .lp-when{color:var(--ink);font-weight:600}.lp-when.is-deadline{color:var(--scarlet-press);font-size:.875rem;font-weight:700}.lp-st-tags{display:flex}.lp-report{gap:var(--space-2);background:var(--sun-soft);border-radius:var(--radius-bubble);padding:var(--space-3) var(--space-4);border-start-start-radius:var(--radius);margin:0;font-size:.9375rem;line-height:1.45;display:grid}.lp-report footer{justify-content:space-between;align-items:center;gap:var(--space-2);font-size:var(--step-small);color:var(--sun-ink);font-variant-numeric:tabular-nums;flex-wrap:wrap;display:flex}.lp-report .tag-demo{background:var(--surface)}.lp-source{font-size:var(--step-small);color:var(--ink-muted);align-items:center;gap:6px;display:inline-flex}.lp-source svg{width:14px;height:14px;color:var(--line-before);flex:none}.lp-sec{gap:var(--space-6);display:grid}.lp-get-list{gap:var(--space-6);margin:0;padding:0;list-style:none;display:grid}.lp-get-list li{align-content:start;gap:var(--space-1) var(--space-3);grid-template-columns:22px 1fr;display:grid}.lp-get-list li:before{content:"";border:4px solid var(--c);border-radius:50%;grid-row:1;align-self:center;width:14px;height:14px}.lp-get-list li[data-sun]:before{background:var(--sun);border-color:var(--ink);border-width:3px}.lp-get-list b{font-size:1.0625rem;font-weight:600;line-height:1.3}.lp-get-list p{color:var(--ink-muted);grid-column:2;max-width:44ch}.lp-ask{margin-inline:calc(var(--bleed) * -1);padding:var(--space-8) var(--bleed);background:var(--surface-quiet)}.lp-ask-head{gap:var(--space-2);align-content:start;display:grid}.lp-ask-head p{max-width:44ch}.lp-facts{gap:var(--space-2);flex-wrap:wrap;margin:0;padding:0;list-style:none;display:flex}.lp-facts li{background:var(--surface);border-radius:var(--radius-pill);padding:10px var(--space-4);font-size:.9375rem;font-weight:500;line-height:1.2}.lp-never{color:var(--ink-muted);max-width:52ch;font-size:.9375rem}.lp-how-line{margin:0;padding:0;list-style:none;display:grid}.lp-how-line li{gap:var(--space-1) var(--space-3);grid-template-columns:36px 1fr;padding-block-end:var(--space-6);display:grid;position:relative}.lp-how-line li:last-child{padding-block-end:0}.lp-how-line li:not(:last-child):before{content:"";inset-inline-start:15px;width:var(--line-width);background:var(--c);position:absolute;top:18px;bottom:-18px}.lp-how-dot{z-index:1;border:6px solid var(--c);background:var(--surface);border-radius:50%;grid-row:span 2;width:36px;height:36px;position:relative}.lp-how-line li.is-people .lp-how-dot{border-color:var(--ink);background:var(--sun);border-width:5px}.lp-how-line b{font-family:var(--font-sign);align-self:center;font-size:1.1875rem;font-weight:600;line-height:1.3}.lp-how-line p{color:var(--ink-muted);grid-column:2;max-width:36ch}.lp-who>div{gap:var(--space-4);display:grid}.lp-statement{text-wrap:pretty;max-width:34ch;font-size:1.3125rem;font-weight:500;line-height:1.4}.lp-now{background:var(--surface-quiet);border-radius:var(--radius-pill);padding:var(--space-2) var(--space-4);justify-self:start;font-size:.9375rem}.lp-trust{gap:calc(var(--space-8) + var(--space-4))}.lp-trust-col{gap:var(--space-6);align-content:start;display:grid}.lp-checks{gap:var(--space-4);margin:0;padding:0;list-style:none;display:grid}.lp-checks li{align-items:flex-start;gap:var(--space-3);max-width:44ch}.lp-checks svg{width:20px;height:20px;color:var(--line-days);flex:none;margin-block-start:2px}.lp-ai{gap:var(--space-3);background:var(--surface-quiet);border-radius:var(--radius);padding:var(--space-6);align-content:start;display:grid}.lp-ai h2{align-items:center;gap:var(--space-3);margin-block-end:var(--space-1);font-size:1.375rem;display:flex}.lp-ai-badge{background:var(--ink);width:36px;height:36px;color:var(--surface);letter-spacing:0;border-radius:50%;flex:none;place-content:center;font-size:.875rem;font-weight:700;display:inline-grid}.lp-ai p{max-width:52ch}.lp-end{gap:var(--space-4);padding-block-start:var(--space-4)}.lp-end h2{font-size:2.25rem;line-height:1.05}:root[lang=ar] .lp-end h2,:root[lang=ar] .lp h2{line-height:1.35}.lp-end>p:not(.lp-sign){max-width:38ch;margin-block-end:var(--space-2)}.lp-sign{align-items:center;gap:var(--space-2);font-family:var(--font-sign);color:var(--ink);font-size:1.125rem;font-weight:600;display:flex;margin-block-start:var(--space-6)!important}@media (width>=640px){.lp-get-list{gap:var(--space-8) var(--space-6);grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.shell:has(.lp){--bleed:48px;max-width:1240px}.shell:has(.lp) .shell-main{padding-inline:var(--bleed)}.shell:has(.lp) .shell-top{padding-inline:var(--bleed)}.lp{padding-block:var(--space-8) var(--space-8);gap:128px}.lp h2{font-size:2.5rem}.lp-hero{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:64px}.lp-title{font-size:4.5rem;line-height:.98}:root[lang=ar] .lp-title{font-size:4rem;line-height:1.25}.lp-lead{max-width:36ch;font-size:1.3125rem}.lp-doors{grid-template-columns:repeat(2,minmax(0,1fr));max-width:520px}.lp-sample{padding:var(--space-8) var(--space-8) var(--space-6)}.lp-st-row b{font-size:1.0625rem}.lp-st.is-here .lp-st-row b{font-size:1.25rem}.lp-get,.lp-who{grid-template-columns:minmax(0,4fr) minmax(0,8fr);align-items:start;gap:64px}.lp-get-list{grid-template-columns:repeat(2,1fr);gap:48px}.lp-ask{gap:var(--space-6) 64px;border-radius:var(--radius);margin-inline:calc(var(--bleed) * -.5);padding-block:72px;padding-inline:calc(var(--bleed) * .5);grid-template-columns:minmax(0,4fr) minmax(0,8fr)}.lp-ask-head{grid-row:span 2}.lp-facts{align-self:start}.lp-facts li{padding:14px var(--space-6);font-size:1.0625rem}.lp-how-line{gap:var(--space-6);grid-template-columns:repeat(3,1fr)}.lp-how-line li{align-content:start;gap:var(--space-3);grid-template-columns:1fr;padding-block-end:0}.lp-how-line li:not(:last-child):before{inset-inline-start:18px;inset-inline-end:calc(var(--space-6) * -1);width:auto;height:var(--line-width);top:15px;bottom:auto}.lp-how-dot{grid-row:auto;margin-block-end:var(--space-2)}.lp-how-line b{font-size:1.375rem}.lp-how-line p{grid-column:1;font-size:1.0625rem}.lp-statement{max-width:30ch;font-size:2rem;line-height:1.3}:root[lang=ar] .lp-statement{line-height:1.5}.lp-trust{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}.lp-checks li{font-size:1.125rem}.lp-ai{padding:var(--space-8)}.lp-end{text-align:center;justify-items:center}.lp-end h2{font-size:4rem}.lp-end>p:not(.lp-sign){font-size:1.125rem}.lp-end .lp-doors{width:100%}}@media (prefers-reduced-motion:no-preference){.lp-hero-text>*{animation:lp-rise .64s var(--ease-out) both}.lp-hero-text>:nth-child(2){animation-delay:70ms}.lp-hero-text>:nth-child(3){animation-delay:.14s}.lp-hero-text>:nth-child(4){animation-delay:.21s}.lp-st{animation:lp-rise .56s var(--ease-out) both}.lp-st:first-child{animation-delay:.22s}.lp-st:nth-child(2){animation-delay:.29s}.lp-st:nth-child(3){animation-delay:.36s}.lp-st:nth-child(4){animation-delay:.43s}.lp-st:nth-child(5){animation-delay:.5s}.lp-st:nth-child(6){animation-delay:.57s}.lp-st.is-here .lp-dot{animation:2.4s ease-in-out .9s infinite lp-halo}@supports (animation-timeline:view()){.lp-sec>*{animation:linear both lp-rise;animation-timeline:view();animation-range:entry entry 40%}}}@keyframes lp-rise{0%{opacity:.15;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes lp-halo{0%,to{box-shadow:0 0 0 8px var(--sun)}50%{box-shadow:0 0 0 12px var(--sun)}}
