/* ==========================================================================
   iBSMU 1.2.1 · patch layer
   Подключается ПОСЛЕ premium.css. Только переопределения, разметка и логика
   приложения не меняются. Шрифт: Inter (SIL OFL 1.1), с оптической осью opsz:
   крупные заголовки автоматически получают Display-начертание.
   ========================================================================== */

@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url("./assets/fonts/inter-cyrillic-ext-opsz-normal.woff2") format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url("./assets/fonts/inter-cyrillic-opsz-normal.woff2") format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}
@font-face{font-family:"Inter";font-style:normal;font-display:swap;font-weight:100 900;src:url("./assets/fonts/inter-latin-opsz-normal.woff2") format("woff2");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}

/* ---------- 1. Шрифты ---------- */
:root{
  --font:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --hair:rgba(22,28,46,.07);
  --float-shadow:0 1px 2px rgba(22,30,48,.05),0 12px 28px -10px rgba(22,30,48,.14);
  --field-bg:color-mix(in srgb,var(--ink) 5.5%,var(--surface));
}
:root[data-theme=dark]{
  --hair:rgba(255,255,255,.08);
  --float-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 14px 30px -12px rgba(0,0,0,.65);
  --field-bg:color-mix(in srgb,var(--ink) 8%,var(--surface));
}
:root,html,body,button,input,textarea,select{font-family:var(--font)}
html{font-optical-sizing:auto;font-kerning:normal;text-rendering:optimizeLegibility}
body{letter-spacing:-.011em;font-feature-settings:"calt" 1,"kern" 1,"cv05" 1}
small,.muted,.source-note,.field-help,.page-sub,.course-copy small,.lesson-meta,.sync-info{letter-spacing:0}
.page-title,.home-title,.login-intro h1,.legal-title,.guide-intro h3,.settings-feature h3{font-weight:660;letter-spacing:-.03em;line-height:1.08}
.logo-text,.brand strong,.ticket-top strong,.ticket-person>strong{letter-spacing:-.025em}
.section-title,.card-title,.sheet-header h2,.guide-brand strong{font-weight:640;letter-spacing:-.02em}
.focus-time,.academic-score strong,.home-metric strong,.stat-value,.lesson-clock strong,.lesson-clock small,.day-button strong,.course-count,.grade-total strong,.group-count,.person-book,.type-value,.ticket-detail strong{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"calt" 1,"cv05" 1}
.focus-time{font-weight:420;letter-spacing:-.035em}
.academic-score strong{font-weight:360;letter-spacing:-.05em}
.home-metric strong{font-weight:520;letter-spacing:-.035em}
.lesson-title,.course-copy strong,.person-info strong,.record-title{font-weight:580;letter-spacing:-.018em}
.menu-copy strong,.preference-row strong{font-weight:580}
/* подписи-«эйбрау»: спокойнее трекинг и вес */
.eyebrow,.hero-kicker,.settings-label,.overline,.identity-top small{letter-spacing:.06em;font-weight:620;font-size:.66rem}
.ticket-top small{letter-spacing:.1em;font-weight:560}
.focus-top .eyebrow,.academic-top .eyebrow{font-size:.66rem}

/* ---------- 2. Обводки: убираем декоративные, оставляем только волосяные разделители ---------- */
.surface,.form-surface,.record-card,.grade-card,.stat-card,.calendar-panel,.menu-card,.lesson-card,.home-metric,.group-person,.group-list-item,.next-class,.empty-state,.login-card,.course-list,.settings-group,.guide-launch,.guide-message.assistant,.guide-actions button,.guide-suggestions button,.guide-compose,.sheet,.sheet-close,.icon-button,.tile-symbol,.preference-icon,.person-avatar,.bottom-nav,.dock-lens,.segmented,.grade-total,.filter-chips button,.calendar-arrow,.small-button,.small-action,.found-banner,.notice,.legal-editor-text,.picker-option,.theme-mini,.type-range::-webkit-slider-thumb{border-color:transparent!important}
.surface,.form-surface,.record-card,.grade-card,.stat-card,.calendar-panel,.menu-card,.lesson-card,.home-metric,.group-person,.group-list-item,.next-class,.empty-state,.login-card,.course-list,.settings-group{box-shadow:var(--float-shadow)}
.detail-line,.record-buttons,.record-action,.record-pdf,.sheet-header,.guide-sheet .sheet-header,.guide-footer,.legal-meta,.type-sample,.legal-row,.setting-row,.event-timeline li,.form-intro,.review-row{border-color:var(--hair)!important}
.guide-sheet .sheet-header:after{display:none}
.guide-sheet{border-color:transparent}
/* кольца-дуги на тёмных карточках */
.day-focus:before,.academic-hero:before,.ticket-face:before,.identity-card:after{border:0!important;box-shadow:none!important}
.day-focus,.academic-hero,.ticket-face{border:0!important;box-shadow:0 20px 40px -20px rgba(18,16,30,.55),inset 0 1px 0 rgba(255,255,255,.12)}
/* док и плитки */
.bottom-nav{box-shadow:inset 0 1px 0 var(--edge),0 2px 6px rgba(22,30,48,.06),0 20px 44px -14px rgba(22,30,48,.28)}
.dock-lens{box-shadow:0 1px 2px rgba(22,30,48,.08),0 6px 14px -6px color-mix(in srgb,var(--accent) 30%,transparent),inset 0 1px 0 var(--edge)}
.icon-button{box-shadow:0 1px 2px rgba(22,30,48,.06),0 6px 14px -8px rgba(22,30,48,.2)}
.tile-symbol,.preference-icon{background:var(--accent-soft)!important;color:var(--accent)!important;box-shadow:none}
.sheet{box-shadow:0 -24px 70px -14px rgba(16,20,34,.4),inset 0 1px 0 var(--edge)}
.sheet-close{background:color-mix(in srgb,var(--muted) 16%,transparent);box-shadow:none}
.ticket-portrait,.ticket-logo,.ticket-card{border-color:transparent!important}
.person-avatar{box-shadow:0 4px 12px -4px rgba(22,30,48,.18)}
/* поля: заливка вместо рамки, один тонкий акцент при фокусе */
.field-input,.custom-select,.date-picker-input,.term-select,.login-card input[type=email],.login-card input[type=password],.login-card input[type=text],.api-settings input,.legal-editor-text{background:var(--field-bg);border:1px solid transparent!important;border-radius:14px;box-shadow:none;transition:background-color .2s,box-shadow .25s}
.field-input:focus,.field-input:focus-visible,.custom-select:focus-visible,.date-picker-input:focus-visible,.term-select:focus-visible,.login-card input:focus,.api-settings input:focus,.legal-editor-text:focus{outline:none!important;background:var(--surface);box-shadow:0 0 0 1.5px color-mix(in srgb,var(--accent) 55%,transparent),0 8px 18px -10px color-mix(in srgb,var(--accent) 40%,transparent)}
.field-input::placeholder{color:var(--muted);opacity:.7}
input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 60%,transparent);outline-offset:2px}
.guide-compose:focus-within{box-shadow:0 0 0 1.5px color-mix(in srgb,var(--ai-blue) 55%,transparent)}
.guide-compose,.guide-suggestions button,.guide-actions button{background:var(--field-bg)}
.guide-message.assistant{background:var(--field-bg);box-shadow:none}
.theme-option[aria-pressed=true] .theme-mini{outline:2px solid var(--accent);outline-offset:3px}
/* разделители внутри групп: «вставные», как в iOS */
.settings-group{overflow:hidden}
.preference-row{position:relative}
.preference-row+.preference-row{border-top:0}
.preference-row+.preference-row:before{content:'';position:absolute;top:0;left:62px;right:0;height:1px;background:var(--hair)}
.course-list{background:var(--surface);gap:0}
.course-row{position:relative}
.course-row+.course-row:before{content:'';position:absolute;top:0;left:18px;right:0;height:1px;background:var(--hair)}
@media(min-width:1000px){.course-list{gap:1px;background:var(--hair)}.course-row+.course-row:before{display:none}}

/* ---------- 3. Шапка: без полосы в покое, линия и размытие при прокрутке ---------- */
.topbar{background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;border-bottom:1px solid transparent;transition:background-color .3s,border-color .3s}
.topbar.scrolled{background:color-mix(in srgb,var(--bg) 78%,transparent);-webkit-backdrop-filter:blur(24px) saturate(1.7);backdrop-filter:blur(24px) saturate(1.7);border-bottom-color:var(--hair)}

/* ---------- 4. Экран входа на телефоне: без прокрутки, шапка закреплена ---------- */
.btn-arrow{flex:none;width:30px;height:30px;padding:7px;border-radius:50%;background:rgba(255,255,255,.2);transition:translate .45s var(--spring)}
.primary-button:active .btn-arrow{translate:3px 0}
[data-theme=dark] .btn-arrow{background:rgba(0,0,0,.14)}
@media(max-width:699px){
  #loginScreen{position:fixed;inset:0;z-index:5;max-width:none;margin:0;padding:0 20px calc(12px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;background:radial-gradient(700px 420px at 100% -4%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 70%),var(--bg)}
  #loginScreen>.login-visual{position:sticky;top:0;z-index:3;flex:none;margin:0 -20px;padding:calc(12px + env(safe-area-inset-top)) 20px 10px;gap:11px;background:linear-gradient(var(--bg) 62%,color-mix(in srgb,var(--bg) 0%,transparent))}
  .login-visual .app-logo{width:40px;height:40px;border-radius:22.4%}
  .login-visual .logo-text{font-size:1.2rem}
  .login-visual .logo-text span{font-size:.66rem;margin-top:2px}
  #loginScreen>.login-intro{flex:none;margin:12px 0 16px}
  .login-intro .overline,.login-intro p{display:none}
  .login-intro h1{font-size:clamp(1.95rem,9vw,2.5rem);margin:0}
  #loginScreen>.login-card{flex:none;margin-top:auto;padding:18px;border-radius:24px}
  .login-card h2{font-size:1.1rem;margin:0 0 12px}
  .login-card>p{display:none}
  .login-card form{gap:6px}
  .login-card form>label{font-size:.72rem;margin-top:2px}
  .login-card input[type=email],.login-card input[type=password],.login-card input[type=text]{min-height:46px;padding:11px 14px;font-size:1rem}
  .password-group input{padding-right:84px!important}
  .show-password{top:6px}
  .remember-row{margin:6px 0 2px}
  .remember-row strong{font-size:.76rem}
  .remember-row small{font-size:.62rem;line-height:1.45;margin-top:2px}
  .consent-row span{font-size:.65rem;line-height:1.45}
  .login-card .primary-button{min-height:50px;margin-top:8px}
  .login-card .error{margin-top:10px}
  #loginScreen>.legal-footer{flex:none;justify-content:center;gap:4px 14px;margin:12px 0 4px}
  .legal-footer a{font-size:.64rem}
  #loginScreen>.unofficial{flex:none;margin:0;text-align:center;font-size:.62rem}
}
@media(max-width:699px) and (min-height:780px){
  .login-intro h1{font-size:clamp(2.2rem,10.4vw,2.9rem)}
  .login-intro p{display:block;font-size:.92rem;line-height:1.55;margin:14px 0 0;max-width:300px}
}
@media(max-width:699px) and (max-height:720px){
  .login-intro h1{font-size:1.65rem}
  .login-card h2,#loginScreen>.unofficial{display:none}
  #loginScreen>.login-intro{margin:8px 0 10px}
}
@media(prefers-reduced-motion:reduce){.btn-arrow{transition:none}}

/* ==========================================================================
   1.2.2 · расписание и карточка «Дальше по плану»
   ========================================================================== */
/* Один разделитель между временем и содержанием: убираем полоску у времени, оставляем линию у текста */
.lesson-clock:after{display:none!important}
.lesson-body{position:relative;border-left:0!important;padding-left:16px}
.lesson-body:before{content:'';position:absolute;left:0;top:1px;bottom:1px;width:3px;border-radius:3px;background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 72%,transparent),color-mix(in srgb,var(--accent) 34%,transparent))}
/* «Пятница, 23 октября»: месяц со строчной, как в русском */
.day-heading{text-transform:none}
.day-heading::first-letter{text-transform:uppercase}
.month-button{text-transform:none}
/* Время на главной: начало крупно, окончание мельче и полупрозрачно, без тире */
.focus-time{display:flex;align-items:baseline;flex-wrap:wrap;column-gap:.6rem;font-size:2.7rem;font-weight:520;letter-spacing:-.04em;line-height:1.05;margin:0 0 12px}
.focus-time .t-end{font-size:.5em;font-weight:450;letter-spacing:-.01em;opacity:.55}
@media(min-width:1000px){.focus-time{font-size:3.1rem}}

/* 1.2.3 — calm entrances and a useful academic overview. */
.view>*{animation:none}
.motion-pending{opacity:0}
.motion-pending:focus-within{opacity:1}
.home-metrics{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);align-items:stretch;min-height:166px}
.home-metric.score-metric{padding:21px;gap:9px;border:1px solid #ffffff20;background:radial-gradient(ellipse at 100% 0%,#b77c9352,transparent 75%),linear-gradient(135deg,#353644,#202732);color:#fff;box-shadow:0 8px 24px #20273218;text-align:left;overflow:hidden}
.score-metric .score-eyebrow{font-size:.56rem;letter-spacing:.12em;color:#e3c7d3;font-weight:600}
.score-value{display:flex;align-items:baseline;gap:6px;min-width:0}
.score-metric .score-value strong{font-size:clamp(2rem,8vw,2.8rem);line-height:1.05;letter-spacing:-.045em;font-weight:650;color:#fff}
.score-value small{font-size:.72rem;color:#c4c8d5;white-space:nowrap}
.score-metric .score-label{font-size:.78rem;color:#f0e8ee}
.score-metric .score-link{font-size:.65rem;color:#c4c8d5;margin-top:4px}
.score-metric>.glyph{top:auto;bottom:20px;color:#e3c7d3}
.home-metric.requests-metric{padding:21px;text-align:left;align-content:center;gap:10px;min-width:0}
.requests-metric .requests-symbol{width:34px;height:34px;display:grid;place-items:center;background:var(--accent-soft);border-radius:11px;color:var(--accent);margin-bottom:3px}
.requests-symbol .glyph{position:static;width:19px;height:19px;color:inherit}
.requests-metric strong{font-size:1rem;font-weight:600;line-height:1.25;letter-spacing:-.025em;overflow-wrap:normal}
.requests-metric>span{font-size:.7rem;line-height:1.45}
.requests-metric>.glyph{top:23px;width:14px}
.academic-score strong{font-weight:650;letter-spacing:-.045em;color:#fff}
.academic-hero{background:radial-gradient(ellipse at 100% 0%,#b77c9340,transparent 70%),linear-gradient(135deg,#353644,#202732)}
html[data-motion=reduced] .motion-pending{opacity:1}
@media(prefers-reduced-motion:reduce){.motion-pending{opacity:1}}
@media(max-width:360px){.home-metric.score-metric,.home-metric.requests-metric{padding:16px}.requests-metric strong{font-size:.9rem}}

/* The edge gesture leaves vertical and nested horizontal scrolling native. */
.view.edge-dragging,.sheet.edge-dragging{animation:none!important;transition:none!important;will-change:transform;position:relative;background:var(--bg);box-shadow:-12px 0 32px #10182814;pointer-events:none}
.sheet.edge-dragging{background:var(--surface)}
@media(prefers-reduced-motion:reduce){.edge-dragging{box-shadow:none}}

/* 1.2.5: a single downward collapse, without the old horizontal exit. */
.sheet-overlay.genie-closing{animation:genie-shade-out 460ms ease both;perspective:1000px;overflow:hidden}
.genie-closing .sheet{transform-origin:50% 100%;backface-visibility:hidden;will-change:transform,opacity;animation:sheet-genie-down 440ms cubic-bezier(.4,0,.2,1) both!important}
@keyframes sheet-genie-down{
 0%{transform:perspective(1000px) translateY(0) rotateX(0deg) scale(1);opacity:1;border-radius:30px 30px 0 0}
 30%{transform:perspective(1000px) translateY(7%) rotateX(-7deg) scale(.97,1.02);opacity:1;border-radius:42px 42px 16px 16px}
 65%{transform:perspective(1000px) translateY(46%) rotateX(16deg) scale(.64,.87);opacity:.9;border-radius:65px}
 100%{transform:perspective(1000px) translateY(110%) rotateX(28deg) scale(.14,.28);opacity:0;border-radius:90px}
}
@keyframes genie-shade-out{0%,20%{background:#161c2b55;opacity:1}100%{background:transparent;opacity:0}}
.course-mark.result-fail,.grade-chip.result-fail{color:#b53b4b;background:#fbe9ec}
.course-mark.result-success,.grade-chip.result-success{color:#207958;background:#e5f4ed}
.course-mark.result-good,.grade-chip.result-good{color:#356e9b;background:#e9f1fa}
.course-mark.result-neutral,.grade-chip.result-neutral{color:var(--muted);background:var(--raised)}
.course-mark.result-symbol{display:grid;place-items:center}
.result-symbol .glyph{width:23px;height:23px;stroke-width:2.5}
.course-mark.result-fail,.course-mark.result-success{font-size:.72rem;min-width:44px;width:auto;padding:9px;white-space:nowrap}
.course-mark.result-symbol{width:44px;padding:9px}
.course-mark.result-number{font-size:1.35rem}
html[data-theme=dark] .result-fail{color:#ff9aa8;background:#502b35}
html[data-theme=dark] .result-success{color:#82d8b0;background:#203f35}
html[data-theme=dark] .result-good{color:#9ac8f0;background:#263d53}
html[data-motion=reduced] .genie-closing .sheet{animation:none!important}
@media(prefers-reduced-motion:reduce){.genie-closing .sheet{animation:none!important}}

/* 1.2.6: compact account sheet, matching the student ticket palette. */
.account-sheet{width:min(520px,100%)}
.account-sheet .sheet-content{display:flex;flex-direction:column;gap:16px;padding-top:18px}
.account-summary{display:flex;align-items:center;gap:16px;min-height:136px;padding:22px;border:1px solid #ffffff24;border-radius:25px;color:#fff;background:radial-gradient(ellipse at 100% 0%,#a26c8b50,transparent 70%),linear-gradient(135deg,#353d49,#252a35 65%,#3c293b);box-shadow:0 10px 25px #20273214}
.account-portrait{display:grid;place-items:center;flex:0 0 66px;width:66px;height:78px;border-radius:20px;overflow:hidden;background:#ffffff18;border:1px solid #ffffff50;font-size:1.3rem;font-weight:600;color:#fff}
.account-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top}
.account-identity{min-width:0;flex:1}
.account-eyebrow{display:block;color:#ccc7d3;font-size:.56rem;letter-spacing:.12em;margin-bottom:8px}
.account-identity>strong{display:block;font-size:1.06rem;font-weight:650;line-height:1.3;letter-spacing:-.025em;overflow-wrap:anywhere}
.account-tags{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.account-tag{font-size:.65rem;line-height:1.3;padding:5px 9px;border-radius:8px;background:#ffffff14;color:#e4e1ec;border:1px solid #ffffff10}
.account-links{display:flex;flex-direction:column;gap:10px}
.account-links .preference-row{width:100%;padding:17px 16px;border:1px solid var(--line);border-radius:21px;background:var(--raised);text-align:left}
.account-links .preference-row strong{font-size:1rem;font-weight:600}
.account-links .preference-row small{font-size:.75rem;line-height:1.45;margin-top:4px}
.account-logout{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:55px;padding:15px;border-radius:20px;border:1px solid #bd50653b;background:#fae9ed;color:#b63f56;font-size:.92rem;font-weight:600;margin-top:2px}
.account-logout .glyph{width:21px;height:21px}
html[data-theme=dark] .account-logout{background:#482b35;color:#ff9aaf;border-color:#754353}
@media(max-width:360px){.account-summary{padding:17px;gap:12px}.account-portrait{flex-basis:54px;width:54px;height:66px}.account-identity>strong{font-size:.96rem}}

/* 1.2.7: readable group metadata and curriculum cards. */
.page-sub.source-caption,.source-note{font-size:.68rem;line-height:1.45;color:var(--muted);margin-top:8px}
.group-meta-chips{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:-5px 0 18px}
.info-capsule{display:inline-flex;align-items:center;max-width:100%;padding:7px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font-size:.74rem;line-height:1.35;overflow-wrap:anywhere}
.count-capsule{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.group-quick-actions{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 23px}
.group-quick-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:43px;padding:10px 13px;border-radius:13px;border:1px solid var(--line);background:var(--surface);color:var(--accent);font-size:.76rem;line-height:1.3;font-weight:550;max-width:100%}
.group-quick-button .glyph{width:18px;height:18px}
.compact-section-title{font-size:.95rem;margin:18px 0 12px}
.leaders-list{margin-bottom:24px}
.group-person.group-leader{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));box-shadow:none;background:linear-gradient(120deg,var(--surface),color-mix(in srgb,var(--accent-soft) 30%,var(--surface)))}
.leader-capsule{display:inline-flex;align-items:center;width:fit-content;padding:4px 8px;margin-bottom:7px;border-radius:8px;background:var(--accent-soft);color:var(--accent);font-size:.6rem;font-weight:600;line-height:1.3}
.leader-fallback{display:flex;flex-direction:column;align-items:flex-start;padding:15px;border:1px solid var(--line);border-radius:18px;background:var(--surface);font-size:.85rem}
.plan-course-list{display:grid;gap:10px;margin-top:12px}
.plan-course-card{min-width:0;padding:17px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 3px 12px #15233804}
.plan-course-title{font-size:.94rem;line-height:1.35;font-weight:600;letter-spacing:-.02em;margin:0 0 10px}
.plan-department{display:inline-block;max-width:100%;padding:5px 9px;border-radius:9px;background:var(--raised);border:1px solid var(--line);color:var(--muted);font-size:.65rem;line-height:1.4;margin-bottom:8px;overflow-wrap:anywhere}
.plan-metrics{display:flex;flex-wrap:wrap;gap:6px}
.plan-metric{display:inline-flex;align-items:center;gap:7px;padding:4px 5px 4px 9px;max-width:100%;border:1px solid var(--line);border-radius:10px;background:var(--raised);font-size:.63rem;line-height:1.35;color:var(--muted)}
.plan-metric strong{display:grid;place-items:center;min-width:24px;min-height:24px;padding:3px 6px;border-radius:7px;color:var(--accent);background:var(--accent-soft);font-size:.7rem;font-weight:600;flex-shrink:0}
@media(min-width:900px){.plan-course-list{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}}

/* 1.2.8: startup introduction, then a quiet loading state. */
html.splash-active{overflow:hidden}
.startup-splash{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;overflow:auto;padding:calc(28px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));background:var(--bg);color:var(--ink);transition:opacity 360ms ease}
.splash-content{width:min(100%,350px);text-align:center;margin:auto}
.splash-logo{display:block;width:76px;height:76px;border-radius:22px;margin:0 auto 23px;box-shadow:0 12px 35px #18223420;animation:splash-rise 900ms cubic-bezier(.22,1,.36,1) both}
.splash-wordmark{position:relative;height:65px;display:grid;place-items:center}
.splash-wordmark strong{font-size:3.1rem;font-weight:620;letter-spacing:-.065em;line-height:1.1;animation:splash-brand 1200ms 700ms both}
.splash-loading-title{position:absolute;font-size:1.15rem;color:var(--muted);animation:splash-loading-label 1300ms both}
.splash-tagline{font-size:1rem;font-weight:550;letter-spacing:-.02em;color:var(--accent);margin:8px 0 22px;animation:splash-rise 600ms 1400ms both}
.splash-demo{position:relative;display:flex;flex-direction:column;gap:11px;min-height:210px;transition:opacity 450ms ease;max-width:330px;margin:auto}
.splash-example-label{font-size:.58rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);animation:splash-rise 500ms 1600ms both}
.splash-message{max-width:94%;padding:13px 16px;font-size:.82rem;line-height:1.5;text-align:left;border:1px solid var(--line)}
.splash-question{align-self:flex-end;background:var(--accent-soft);color:var(--ink);border-radius:19px 19px 5px 19px;animation:splash-rise 600ms 1800ms both}
.splash-thinking{font-size:.7rem;color:var(--muted);text-align:left;padding:2px 10px;animation:splash-think 1800ms 2300ms both}
.splash-thinking span{display:inline-block;margin-left:7px;letter-spacing:3px;animation:splash-pulse 900ms ease-in-out infinite alternate}
.splash-answer{align-self:flex-start;background:var(--surface);border-radius:19px 19px 19px 5px;animation:splash-rise 700ms 3600ms both}
.splash-orb{position:relative;isolation:isolate;width:57px;height:57px;display:grid;place-items:center;margin:17px auto 15px;border-radius:50%;color:#fff;background:conic-gradient(from var(--aura-angle),#67bdff,#f5a4db,#a5d7ff,#79e1e1,#67bdff);box-shadow:inset 0 1px 3px #ffffff90,0 0 26px #a9c8ff55;animation:aura-turn 3s linear infinite,splash-breathe 2500ms ease-in-out infinite}
.splash-orb:before{content:'';position:absolute;inset:-5px;background:inherit;filter:blur(9px);opacity:.35;border-radius:inherit;z-index:-1}
.splash-orb span{font-size:1.9rem}
.splash-status{font-size:.72rem;color:var(--muted);line-height:1.5;margin:0;min-height:22px}
.splash-retry{margin-top:18px;border:1px solid var(--line);border-radius:13px;padding:11px 16px;min-height:44px;background:var(--surface);color:var(--accent);font-size:.8rem}
.splash-waiting .splash-demo,.splash-waiting .splash-tagline{opacity:0;visibility:hidden;animation:none}
.splash-waiting .splash-demo{display:none}
.splash-waiting .splash-orb{margin-top:35px;width:72px;height:72px}
.splash-leaving{opacity:0;pointer-events:none}
@keyframes splash-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes splash-brand{from{opacity:0;transform:translateY(7px);filter:blur(4px)}to{opacity:1;transform:none;filter:none}}
@keyframes splash-loading-label{0%,60%{opacity:1}100%{opacity:0;visibility:hidden}}
@keyframes splash-think{0%{opacity:0}20%,70%{opacity:1}100%{opacity:0}}
@keyframes splash-pulse{to{opacity:.35}}
@keyframes splash-breathe{50%{transform:scale(.92);border-radius:43% 57% 56% 44%}}
html[data-motion=reduced] .splash-loading-title{display:none}
html[data-motion=reduced] .splash-thinking{display:none}
@media(prefers-reduced-motion:reduce){.splash-loading-title,.splash-thinking{display:none}}
@media(max-height:670px){.splash-logo{width:58px;height:58px;margin-bottom:12px}.splash-wordmark{height:53px}.splash-wordmark strong{font-size:2.6rem}.splash-demo{min-height:190px}.splash-orb{margin-top:8px}}
.splash-demo{max-height:280px;overflow:hidden;transition:opacity 400ms ease,min-height 600ms ease,max-height 600ms ease}
.splash-tagline{max-height:30px;overflow:hidden;transition:opacity 400ms ease,max-height 600ms ease,margin 600ms ease}
.splash-waiting .splash-demo{display:flex;min-height:0;max-height:0;gap:0}
.splash-waiting .splash-tagline{max-height:0;margin:0}
.splash-orb{transition:width 600ms ease,height 600ms ease,margin 600ms ease}

/* 1.2.9: installation in three compact steps. */
.install-sheet{width:min(500px,100%)}
.install-intro{display:flex;align-items:center;gap:12px;margin-bottom:18px}
.install-logo{width:47px;height:47px;border-radius:14px;box-shadow:0 4px 12px #15233816}
.install-intro strong,.install-intro small{display:block}
.install-intro strong{font-size:.96rem;font-weight:600}
.install-intro small{font-size:.72rem;color:var(--muted);margin-top:4px}
.install-platforms{display:flex;gap:5px;padding:4px;background:var(--raised);border-radius:13px;border:1px solid var(--line)}
.install-platforms button{flex:1;min-height:38px;border:0;border-radius:10px;background:none;font-size:.76rem}
.install-platforms button[aria-pressed=true]{background:var(--surface);color:var(--accent);box-shadow:0 2px 6px #1523380d}
.install-browser-hint{font-size:.72rem;color:var(--muted);margin:14px 0 10px}
.install-steps{padding:0;margin:0;list-style:none;display:grid;gap:8px}
.install-steps li{display:flex;align-items:center;gap:11px;padding:13px 12px;background:var(--raised);border:1px solid var(--line);border-radius:17px}
.install-step-number{color:var(--muted);font-size:.65rem;font-variant-numeric:tabular-nums}
.install-step-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:11px;background:var(--accent-soft);color:var(--accent)}
.install-step-icon .glyph{width:21px;height:21px}
.install-step-copy{min-width:0}
.install-step-copy strong,.install-step-copy small{display:block}
.install-step-copy strong{font-size:.83rem;font-weight:600;line-height:1.35}
.install-step-copy small{font-size:.65rem;color:var(--muted);line-height:1.4;margin-top:4px}
.install-sheet .sheet-header{min-height:54px;padding:12px 18px}
.install-sheet .sheet-header h2{font-size:1rem;line-height:1.25;font-weight:600}
.install-sheet .sheet-content{padding-top:14px}
.install-sheet .install-intro{margin-bottom:12px;gap:10px}
.install-sheet .install-logo{width:36px;height:36px;border-radius:11px}
.install-sheet .install-intro strong{font-size:.83rem}
.install-sheet .install-intro small{font-size:.65rem}
.install-video{margin:12px 0;overflow:hidden;border-radius:17px;background:var(--raised);pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.install-video video{display:block;width:100%;max-height:270px;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}
.install-video video::-webkit-media-controls{display:none!important}
.install-entry{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;min-height:45px;padding:11px 15px;margin:0 0 17px;border:1px solid var(--line);border-radius:15px;background:var(--surface);color:var(--accent);font-size:.8rem}
.install-entry .glyph{width:20px;height:20px}
