/* Porta do Sono (семейство Portas, nCp) — слой 1 (движок). Токены палитры SeedWave как в carro/ и capsula/.
   Гамма «от индиго к рассвету»: ночь (по умолчанию) — глубокий индиго, день — рассвет.
   Акцент продукта — вариант A «полуночный индиго» (B рассветное золото / C ночной петроль — в _src/mark.py). */
:root{
  --bg:#0a0d2a;--surface:#141a46;--ink:#eef0ff;--ink-soft:#a7adda;--line:rgba(141,156,255,.22);
  --accent:#8d9cff;--accent-ink:#0a0d2a;--dawn1:#ffb36b;--dawn2:#ffe3b8;--chip:rgba(255,255,255,.05);--chip-on:rgba(141,156,255,.16);
  --ok:#7fd3a0;--warn:#f0c05a;--bad:#ef6b6b;
  --display:"Spectral",Georgia,serif;--body:"Manrope",system-ui,sans-serif;--r:18px;
}
:root[data-theme="light"]{
  --bg:#f7f3ec;--surface:#ffffff;--ink:#171a3f;--ink-soft:#5c6090;--line:rgba(59,79,216,.18);
  --accent:#3b4fd8;--accent-ink:#ffffff;--dawn1:#f6a04a;--dawn2:#ffe9c7;--chip:rgba(30,40,100,.045);--chip-on:rgba(59,79,216,.12);
  --ok:#2f8f5b;--warn:#b8860b;--bad:#c23b3b;
}
/* варианты акцента (выбирает Игорь, этап 0):
   B «рассветное золото»: ночь #ffb36b / день #c2641e · C «ночной петроль»: ночь #5fc6e6 / день #1e6f8f */
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:400 16px/1.5 var(--body);-webkit-font-smoothing:antialiased;min-height:100vh}
a{color:inherit}
button{font:inherit;color:inherit;cursor:pointer}
.wrap{max-width:600px;margin:0 auto;padding:0 16px}

/* шапка — стандарт серии: значок + словомарка слева, две круглые кнопки справа */
.top{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800;font-size:17px;letter-spacing:-.01em}
.brand img{width:36px;height:36px;border-radius:10px}
.tools{display:flex;gap:8px;position:relative}
.rb{width:40px;height:40px;border-radius:50%;border:1px solid var(--line);background:transparent;font-size:13px;font-weight:700;display:grid;place-items:center}
.menu{position:absolute;right:48px;top:46px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:6px;display:none;z-index:20;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.menu.open{display:block}
.menu a{display:block;padding:8px 16px;border-radius:9px;text-decoration:none;font-weight:600}
.menu a[aria-current]{background:var(--chip-on);color:var(--accent)}

/* герой */
.hero{padding:18px 0 6px}
.kicker{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent)}
.hero h1{font:600 clamp(30px,7.5vw,42px)/1.08 var(--display);margin:0 0 10px;letter-spacing:-.01em}
.hero p{color:var(--ink-soft);margin:0;font-size:17px}
.hero p.kicker{color:var(--accent);font-size:13px}

/* карточка */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:20px 18px;margin:18px 0}
.label{font-size:13px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-soft);margin:0 0 8px}
.note{font-size:13px;color:var(--ink-soft);margin:12px 0 0}
.q{font-weight:800;font-size:20px;margin:6px 0 4px}
.hint{color:var(--ink-soft);font-size:14px;margin:0 0 14px}

/* «дом-ночь» — вау-механика: окна загораются с ответами, после последнего дверь приоткрывается и за ней светает; на этапе 0 — луна дышит */
.house-wrap{display:flex;justify-content:center;margin:6px 0 10px}
.house{width:170px;height:160px}
.house .moon{fill:var(--dawn2);opacity:.85;transform-origin:128px 26px}
.house .moon.breathe{animation:breathe 4.6s ease-in-out infinite}
@keyframes breathe{0%,100%{transform:scale(1);opacity:.75}50%{transform:scale(1.12);opacity:1}}
.house .roof{fill:var(--accent);opacity:.55}
.house .wall{fill:none;stroke:var(--accent);stroke-width:2.5;opacity:.7}
.house .win{fill:var(--chip);stroke:var(--accent);stroke-width:1.5;transition:fill .6s,filter .6s}
.house .win.lit{fill:var(--dawn1);filter:drop-shadow(0 0 6px var(--dawn1))}
.house .doorleaf{fill:var(--surface);stroke:var(--accent);stroke-width:2;transform-origin:68px 119px;transition:transform .9s cubic-bezier(.4,0,.2,1)}
.house .knob{fill:var(--accent)}
.house .doorlight{opacity:0;transition:opacity .9s}
.house.open .doorleaf,.house.dawn .doorleaf{transform:perspective(120px) rotateY(-62deg)}
.house.open .doorlight,.house.dawn .doorlight{opacity:1}

/* кнопки и чипы */
.grid{display:grid;gap:8px;grid-template-columns:repeat(2,1fr)}
.chip{border:1px solid var(--line);background:var(--chip);border-radius:12px;padding:12px 8px;font-weight:700;font-size:15px;min-height:52px;transition:background .15s,border-color .15s,transform .1s}
.chip:active{transform:scale(.97)}
.chip.on,.chip:hover{border-color:var(--accent);background:var(--chip-on)}
.chip.wide{grid-column:1/-1}
.chip.alarm{border-color:var(--bad);color:var(--bad);background:transparent;font-size:14px}
.chip.alarm:hover{background:rgba(239,107,107,.1)}
.alarmcard{border-color:var(--bad)}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:16px}
.btn{border:0;border-radius:14px;padding:14px 20px;font-weight:800;font-size:16px;background:var(--accent);color:var(--accent-ink);min-height:50px;display:inline-flex;align-items:center;gap:8px;text-decoration:none}
.btn[disabled]{opacity:.45;cursor:not-allowed}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.alarm{background:var(--bad);color:#fff;width:100%;justify-content:center;font-size:18px}
.btn[aria-disabled="true"]{opacity:.5}
.link{background:none;border:0;color:var(--ink-soft);text-decoration:underline;text-underline-offset:4px;padding:8px 2px;font-size:15px}
.rt{font:600 26px/1.15 var(--display);margin:4px 0 2px}
.disclaimer{font-size:14px;color:var(--ink-soft);border-left:3px solid var(--accent);padding:6px 12px;margin:14px 0 0}
.emergency{font-size:14px;color:var(--ink-soft);border-left:3px solid var(--bad);padding:6px 12px;margin:10px 0 0}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:99px;font-weight:700;opacity:0;transition:opacity .3s;pointer-events:none;z-index:50}
.toast.on{opacity:1}

/* «что делает» — статичный текст для людей и поисковиков */
.about{margin:28px 0 8px}
.about h2{font:600 24px/1.2 var(--display);margin:0 0 10px}
.about ul{margin:0;padding-left:20px;color:var(--ink-soft)}
.about li{margin:6px 0}
.honest{font-size:13px;color:var(--ink-soft);margin-top:14px}

/* футер — стандарт SeedWave */
footer.sw{text-align:center;padding:28px 0 64px;font-size:15px;color:var(--ink-soft)}
footer.sw a{display:inline-block;padding:8px 4px;text-decoration:underline;text-decoration-color:var(--accent);text-underline-offset:4px}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
}

/* ---------- этап 1: результат, маршруты, экран врача ---------- */
.result .rt{display:flex;align-items:center;gap:10px}
.result .dot{width:14px;height:14px;border-radius:50%;background:var(--ok);box-shadow:0 0 10px var(--ok);flex:none}
.result.yellow .dot{background:var(--warn);box-shadow:0 0 10px var(--warn)}
.result.red .dot{background:var(--bad);box-shadow:0 0 10px var(--bad)}
.zsub{margin:4px 0 10px;font-size:16px}
.why{color:var(--ink-soft);margin:0 0 6px;font-size:15px}
.spec{font-weight:700;margin:0 0 4px}
.orient{font-size:12px;color:var(--ink-soft);margin:0 0 10px;letter-spacing:.02em}
.row.main .btn{flex:1 1 auto;justify-content:center}
.rh{font:600 24px/1.2 var(--display);margin:24px 0 6px}
.route h3{margin:0 0 8px;font-size:18px}
.route ol{margin:0 0 8px;padding-left:20px;color:var(--ink-soft)}
.route li{margin:6px 0}
.pill{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:99px;padding:8px 14px;text-decoration:none;font-weight:700;font-size:14px;background:var(--chip)}
.place{border-top:1px solid var(--line);padding:12px 0 4px;margin-top:8px}
.place .addr{color:var(--ink-soft);font-size:14px}
.place ul{margin:8px 0;padding-left:18px}
.place li{margin:6px 0;font-size:15px}
.place .langs{display:block;font-size:13px;color:var(--ink-soft)}
.src{font-size:12px;color:var(--ink-soft);margin:10px 0 0}
.src a{color:var(--ink-soft)}
.doc .docbox{background:var(--bg);border:2px solid var(--accent);border-radius:14px;padding:16px;margin:8px 0 14px}
.doc .big{font-size:20px;line-height:1.35;margin:0 0 10px;font-weight:600}
.doc .docnote{font-size:15px;color:var(--ink-soft);margin:6px 0 0}
.doc .mine p{margin:4px 0;color:var(--ink-soft);font-size:14px}
.warnline{color:var(--bad);font-weight:700;margin:0 0 6px;font-size:15px}

/* ---------- листовка mais/ ---------- */
.flyer .card h2{font:600 22px/1.2 var(--display);margin:0 0 8px}
.flyer .card ul,.flyer .card ol{margin:0;padding-left:20px}
.flyer .card li{margin:6px 0}
.flyer .hero .row{margin-top:16px}
