/* Layout: one calm column floating on a sky where light breaks through clouds; frosted panels keep text readable */
:root{
  --sky-top:#cfe4f5; --sky-mid:#e6f1fa; --sky-low:#f7f3e6;
  --glow:rgba(255,214,120,.55); --ray:rgba(255,226,150,.28); --cloud:rgba(255,255,255,.85);
  --panel:rgba(255,255,255,.82); --panel-solid:#ffffff; --line:rgba(40,70,100,.14);
  --ink:#1d2b3a; --ink-soft:#4b5d70; --accent:#b07a12; --accent-ink:#ffffff; --blue:#2f6a9e; --blue-soft:#e3eef8;
  --crisis:#b3261e; --crisis-bg:#fdecea; --lock:#f4ead2;
  --font-display:"Spectral", Georgia, "Times New Roman", serif;
  --font-ui:"Nunito Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --sky-top:#0f1d33; --sky-mid:#18294a; --sky-low:#2a2a3d;
  --glow:rgba(255,200,100,.28); --ray:rgba(255,210,130,.12); --cloud:rgba(170,190,220,.18);
  --panel:rgba(18,30,50,.86); --panel-solid:#14233b; --line:rgba(200,220,255,.14);
  --ink:#eaf1f9; --ink-soft:#a9b9cc; --accent:#e3b44f; --accent-ink:#1a1405; --blue:#8dbbe6; --blue-soft:#1d3456;
  --crisis:#ff8a80; --crisis-bg:#3a1714; --lock:#2c2717; color-scheme:dark}}
:root[data-theme="dark"]{
  --sky-top:#0f1d33; --sky-mid:#18294a; --sky-low:#2a2a3d;
  --glow:rgba(255,200,100,.28); --ray:rgba(255,210,130,.12); --cloud:rgba(170,190,220,.18);
  --panel:rgba(18,30,50,.86); --panel-solid:#14233b; --line:rgba(200,220,255,.14);
  --ink:#eaf1f9; --ink-soft:#a9b9cc; --accent:#e3b44f; --accent-ink:#1a1405; --blue:#8dbbe6; --blue-soft:#1d3456;
  --crisis:#ff8a80; --crisis-bg:#3a1714; --lock:#2c2717; color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
body{background:var(--sky-mid);color:var(--ink);font-family:var(--font-ui);font-size:16px;line-height:1.55;
  padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));padding-block:0 48px;min-height:100%}
.sky{position:fixed;inset:0;z-index:-1;overflow:hidden;
  background:linear-gradient(180deg,var(--sky-top) 0%,var(--sky-mid) 55%,var(--sky-low) 100%)}
.sky .sun{position:absolute;left:50%;top:-18vh;width:120vw;height:70vh;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,var(--glow) 0%,transparent 62%)}
.sky .rays{position:absolute;left:50%;top:-10vh;width:160vmax;height:160vmax;transform:translateX(-50%);
  background:repeating-conic-gradient(from 160deg at 50% 0%,var(--ray) 0deg 3deg,transparent 3deg 11deg);
  -webkit-mask:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 45%);mask:radial-gradient(ellipse at 50% 0%,#000 0%,transparent 45%);
  animation:breathe 14s ease-in-out infinite}
.sky .cloud{position:absolute;border-radius:50%;background:var(--cloud);filter:blur(22px)}
.c1{width:70vw;height:18vh;left:-20vw;top:4vh}.c2{width:60vw;height:16vh;right:-18vw;top:9vh}.c3{width:50vw;height:12vh;left:25vw;top:0}
@keyframes breathe{0%,100%{opacity:.75}50%{opacity:1}}
@media (prefers-reduced-motion:reduce){.sky .rays{animation:none}}

.wrap{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:18px}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:5;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:12px 14px;margin-top:12px;background:var(--panel);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:16px}
.brand{font-family:var(--font-display);font-weight:600;font-size:1.35rem;letter-spacing:.01em;display:flex;align-items:center;gap:8px;margin-right:auto}
.brand svg{flex:none}
.tier{display:flex;border:1px solid var(--line);border-radius:999px;overflow:hidden;font-size:.82rem;font-weight:700}
.tier button{border:0;background:transparent;color:var(--ink-soft);padding:6px 12px;cursor:pointer;font:inherit}
.tier button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
.btn-crisis{border:1px solid var(--crisis);color:var(--crisis);background:transparent;border-radius:999px;padding:6px 12px;font:700 .82rem var(--font-ui);cursor:pointer}

.panel{background:var(--panel);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid var(--line);border-radius:18px;padding:20px}
.hero{text-align:left;padding-top:26px}
.hero h1{font-family:var(--font-display);font-weight:600;font-size:clamp(1.7rem,5vw,2.3rem);line-height:1.15;margin:0 0 6px;text-wrap:balance}
.hero p{margin:0;color:var(--ink-soft);max-width:60ch}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}

details.profile summary{cursor:pointer;font-weight:700;list-style:none;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}
details.profile summary::-webkit-details-marker{display:none}
.summary-chips{font-weight:400;color:var(--ink-soft);font-size:.9rem;align-self:center}
#profilePanel{border:3px solid var(--accent);box-shadow:0 6px 22px var(--glow)}
.pd-title{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap;font-family:var(--font-display);font-size:1.25rem;font-weight:600}
.chev{display:inline-block;color:var(--accent);transition:transform .2s;font-size:1rem}
details[open] .chev{transform:rotate(90deg)}
.pd-hint{flex-basis:100%;margin:0;font-weight:400}
details[open] .pd-hint{display:none}
.next-row{margin-top:20px}
.sec-toggle{all:unset;cursor:pointer;display:inline-flex;align-items:baseline;gap:8px;text-align:left;border-radius:6px}
.sec-toggle:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.sec-toggle .chev{flex:none}
.sec-toggle[aria-expanded="true"] .chev{transform:rotate(90deg)}
.panel.collapsed > :not(.sec-head){display:none!important}
.panel.collapsed .sec-head{margin-bottom:0}
.res-head{display:flex;align-items:baseline;gap:8px}
.res-head .conv-title{margin:0 0 12px;flex:1;min-width:0}
.panel.collapsed .res-head .conv-title{margin:0}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-top:14px}
label{display:flex;flex-direction:column;gap:4px;font-size:.82rem;font-weight:700;color:var(--ink-soft)}
input,select,textarea{font:inherit;font-size:1rem;color:var(--ink);background:var(--panel-solid);border:1px solid var(--line);border-radius:10px;padding:9px 11px;width:100%;min-width:0}
textarea{min-height:110px;resize:vertical;line-height:1.5}
:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.trad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:6px}
.trad button{border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:12px;padding:10px 6px;cursor:pointer;font:600 .88rem var(--font-ui);min-width:0}
.trad button[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.fine{font-size:.8rem;color:var(--ink-soft);margin:10px 0 0}

.ask h2{font-family:var(--font-display);font-size:1.3rem;margin:0 0 10px;font-weight:600}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.chip{border:1px solid var(--line);background:var(--blue-soft);color:var(--ink);border-radius:999px;padding:5px 12px;font:600 .82rem var(--font-ui);cursor:pointer}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.btn{border:0;border-radius:12px;padding:11px 18px;font:700 1rem var(--font-ui);cursor:pointer;background:var(--accent);color:var(--accent-ink)}
a.btn{text-decoration:none;display:inline-flex;align-items:center}
.btn.ghost{background:transparent;color:var(--blue);border:1px solid var(--line)}
.btn.small{padding:7px 12px;font-size:.85rem}
.btn:disabled{opacity:.5;cursor:not-allowed}

.crisis{border:2px solid var(--crisis);background:var(--crisis-bg)}
.crisis h2{color:var(--crisis);margin:0 0 6px;font-size:1.25rem}
.lines{display:grid;gap:10px;margin:14px 0}
.line{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;background:var(--panel-solid);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.line strong{display:block}
.num{font-family:var(--font-ui);font-weight:700;font-variant-numeric:tabular-nums;user-select:all;color:var(--ink)}

.tabs{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--line);margin:-4px -4px 16px;padding:0 4px}
.tabs button{border:0;background:transparent;color:var(--ink-soft);font:700 .9rem var(--font-ui);padding:10px 12px;cursor:pointer;border-bottom:3px solid transparent;white-space:nowrap}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.tabs .pro{font-size:.65rem;letter-spacing:.08em;background:var(--lock);color:var(--accent);border-radius:6px;padding:1px 5px;margin-left:4px;vertical-align:2px}
.example-tag{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--blue-soft);color:var(--blue);border-radius:6px;padding:2px 8px;margin-bottom:10px}

.sermon{font-family:var(--font-display);font-size:1.12rem;line-height:1.75;max-width:64ch}
.sermon h3{font-size:1.5rem;line-height:1.2;margin:0 0 4px;font-weight:600;text-wrap:balance}
.sermon .refs{font-family:var(--font-ui);font-size:.82rem;color:var(--ink-soft);margin:0 0 16px}
.sermon p{margin:0 0 1em}
.sermon .amen{font-style:italic}
.audio-bar{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:16px}
ul.steps{padding-left:1.2em;margin:0;display:grid;gap:8px}
.disclaimer{font-size:.82rem;color:var(--ink-soft);border-top:1px solid var(--line);padding-top:10px;margin-top:18px}

.locked{background:var(--lock);border-radius:14px;padding:18px;display:grid;gap:10px}
.locked h4{margin:0;font-family:var(--font-display);font-size:1.2rem}
.price{font-weight:700}
.preview-blur{filter:blur(4px);opacity:.6;pointer-events:none;user-select:none}

ol.plan{list-style:none;padding:0;margin:0;display:grid;gap:12px}
ol.plan li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.when{font-size:.7rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);background:var(--lock);border-radius:8px;padding:4px 8px;white-space:nowrap;margin-top:2px}
ol.plan p{margin:2px 0 0;color:var(--ink-soft);font-size:.95rem}
.check{display:flex;gap:8px;align-items:flex-start;font-weight:700;color:var(--ink);cursor:pointer;font-size:1rem}
.check input{width:auto;margin-top:5px}

.help-group h4{margin:16px 0 8px;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft)}
.org{background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;padding:14px;display:grid;gap:6px;margin-bottom:10px}
.org .name{font-weight:700}
.org .meta{font-size:.88rem;color:var(--ink-soft)}
.org .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.draft{background:var(--blue-soft);border-radius:12px;padding:12px;font-size:.92rem;white-space:pre-wrap}

.acts{display:grid;gap:10px;margin-top:12px}
.act{display:grid;grid-template-columns:2.2em 1fr;gap:10px;align-items:start}
.act b{font-family:var(--font-display);font-size:1.5rem;color:var(--accent);line-height:1}
.prayer{font-family:var(--font-display);font-size:1.1rem;line-height:1.7;font-style:italic;max-width:62ch}

footer.foot{font-size:.82rem;color:var(--ink-soft);text-align:center;display:grid;gap:4px}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--panel-solid);padding:8px 14px;border-radius:999px;font-size:.88rem;font-weight:700;z-index:20}
.convs-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.convs-head h2{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin:0;margin-right:auto}
.count{font-size:.8rem;font-weight:700;color:var(--ink-soft);font-variant-numeric:tabular-nums}
.meter{display:flex;gap:4px}.meter i{width:18px;height:6px;border-radius:3px;background:var(--line)}.meter i.on{background:var(--accent)}
.conv-list{display:grid;gap:8px;list-style:none;margin:0;padding:0}
.conv{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;padding:10px 12px}
.conv[aria-current="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.conv .open{all:unset;cursor:pointer;display:grid;gap:2px;min-width:0}
.conv .open:focus-visible{outline:3px solid var(--blue);outline-offset:4px;border-radius:6px}
.conv .t{font-weight:700;display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.conv .s{font-size:.86rem;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.conv .del{display:flex;gap:6px;align-items:center}
.mini{font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;border-radius:6px;padding:1px 6px;background:var(--blue-soft);color:var(--blue)}
.limit{background:var(--lock);border-radius:14px;padding:14px;margin-bottom:12px;display:grid;gap:8px}
.limit p{margin:0}
.conv-title{font-family:var(--font-display);font-size:1.05rem;color:var(--ink-soft);margin:0 0 12px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.moods{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 14px}
.moods button{border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:12px;padding:12px 6px;font:700 .95rem var(--font-ui);cursor:pointer}
.moods button[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.encourage{background:var(--blue-soft);border-radius:14px;padding:14px 16px;margin-bottom:16px;font-family:var(--font-display);font-size:1.05rem;line-height:1.6}
.encourage .fine{font-family:var(--font-ui);margin:0 0 4px}
ol.plan li.updated{background:var(--lock);border-radius:12px;padding:10px;margin:0 -10px}
.upd{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent);border-radius:6px;padding:1px 6px;margin-left:6px;vertical-align:2px}
.plan-sub{font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:18px 0 10px}
.conv.devo-item{background:linear-gradient(135deg,var(--lock),var(--blue-soft));border-color:var(--accent)}
.conv.devo-item .t{font-family:var(--font-display);font-size:1.05rem}
.conv.holiday-item{border-width:2px;background:linear-gradient(135deg,var(--lock),var(--panel-solid))}
.empty{text-align:center;color:var(--ink-soft);padding:18px 0}
.panel{scroll-margin-top:96px}
.seek-cta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:var(--lock);border-radius:12px;padding:10px 12px;margin:0 0 14px;font-weight:600}
.seek-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.trad .seek-btn{grid-column:1/-1;background:var(--lock);color:var(--accent);border:1px solid var(--accent)}
.seek-cta .seek-btn{background:var(--accent);color:var(--accent-ink)}
.seek-top{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.seek-steps{list-style:none;display:flex;gap:4px;padding:0;margin:0 0 18px;flex-wrap:wrap}
.seek-steps button{all:unset;cursor:pointer;display:flex;align-items:center;gap:6px;font:700 .8rem var(--font-ui);color:var(--ink-soft);padding:4px 8px 4px 4px;border-radius:999px}
.seek-steps button:focus-visible{outline:3px solid var(--blue)}
.seek-steps button:disabled{cursor:default;opacity:.55}
.seek-steps .n{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;background:var(--line);color:var(--ink);font-size:.75rem}
.seek-steps .done .n{background:var(--blue-soft);color:var(--blue)}
.seek-steps [aria-current="step"]{color:var(--ink)}
.seek-steps [aria-current="step"] .n{background:var(--accent);color:var(--accent-ink)}
.gospel{font-family:var(--font-display);font-size:1.12rem;line-height:1.7;max-width:64ch}
.gospel h2,.seeker h2{font-family:var(--font-display);font-size:clamp(1.7rem,6vw,2.3rem);line-height:1.15;margin:0 0 12px;font-weight:600;text-wrap:balance}
.gospel h3{font-size:1.3rem;margin:26px 0 4px;font-weight:600;text-wrap:balance}
.gospel p{margin:0 0 .6em}
.verse-hero{margin:0 0 6px;padding:20px 22px;border-radius:16px;background:linear-gradient(135deg,var(--lock),var(--blue-soft));font-family:var(--font-display);font-size:clamp(1.2rem,4.2vw,1.5rem);line-height:1.5;font-style:italic}
.verse{margin:10px 0;padding:4px 0 4px 16px;border-left:3px solid var(--accent);font-family:var(--font-display);font-style:italic}
.verse-hero cite,.verse cite{display:block;font-style:normal;font-family:var(--font-ui);font-size:.82rem;font-weight:700;color:var(--accent);margin-top:6px;letter-spacing:.02em}
.seek-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.celebrate{background:var(--blue-soft);border-radius:16px;padding:18px;display:grid;gap:8px;margin-top:18px}
.celebrate h3{font-family:var(--font-display);font-size:1.5rem;margin:0}
.celebrate p{margin:0}
.faq{margin-top:16px}
.faq details{border-bottom:1px solid var(--line);padding:12px 0}
.faq summary{cursor:pointer;font-weight:700}
.faq p{margin:8px 0 0}
.quiz{display:grid;gap:16px;margin:16px 0}
.qq{font-weight:700;margin-bottom:6px}
.opts{display:flex;flex-wrap:wrap;gap:6px}
.opt{border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:12px;padding:8px 12px;font:600 .9rem var(--font-ui);cursor:pointer;text-align:left}
.opt[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.result{background:var(--lock);border-radius:14px;padding:14px 16px;margin:4px 0 18px;font-family:var(--font-display);font-size:1.1rem;line-height:1.55}
.trad-cards{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
.tcard{background:var(--panel-solid);border:1px solid var(--line);border-radius:16px;padding:16px;display:flex;flex-direction:column;gap:8px;min-width:0}
.tcard.match{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent)}
.tcard h4{margin:0;font-family:var(--font-display);font-size:1.2rem;line-height:1.25}
.tcard p{margin:0;font-size:.93rem}
.tcard .welcome{font-size:.86rem;color:var(--ink-soft)}
.tcard .btn{margin-top:auto;align-self:flex-start}
.tcard .for-step{align-self:flex-start}
.next-box{background:var(--lock);border-radius:14px;padding:14px 16px;display:grid;gap:6px;margin:16px 0}
.next-box h4{margin:0;font-family:var(--font-display);font-size:1.15rem}
.next-box p{margin:0}
.study-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:6px}
.study-head h2{font-family:var(--font-display);font-size:1.3rem;font-weight:600;margin:0}
.study-ex{margin-top:16px;border-top:1px solid var(--line);padding-top:16px}
.study-ex h3{font-family:var(--font-display);font-size:1.35rem;margin:4px 0 6px;text-wrap:balance}
.pair{display:grid;gap:10px;margin:14px 0}
.pside{background:var(--panel-solid);border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:grid;gap:6px}
.pside.nt{background:var(--blue-soft)}
.plabel{font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.pside.nt .plabel{color:var(--blue)}
.pside q{font-family:var(--font-display);font-style:italic;font-size:1.06rem;line-height:1.6;quotes:none}
.pside .pref{font-weight:700;font-size:.88rem}
.parrow{justify-self:center;color:var(--accent);font-size:1.2rem;line-height:1}
.pnote{font-size:.88rem;color:var(--ink-soft);margin:0}
.pnav{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pcount{font-weight:700;font-variant-numeric:tabular-nums;margin:0 auto 0 0}
.plist{list-style:none;padding:0;margin:12px 0 0;display:grid;gap:6px}
.plist button{all:unset;cursor:pointer;display:grid;grid-template-columns:2em 1fr;gap:6px;padding:8px 10px;border-radius:10px;border:1px solid var(--line);background:var(--panel-solid);font-size:.92rem}
.plist button:focus-visible{outline:3px solid var(--blue)}
.plist button[aria-current="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.plist .pn{font-weight:700;color:var(--accent);font-variant-numeric:tabular-nums}
@media (min-width:640px){.pair{grid-template-columns:1fr auto 1fr;align-items:stretch}.parrow{align-self:center}}
.go-row{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.go{display:inline-flex;align-items:center;gap:6px;border:1.5px solid var(--accent);background:transparent;color:var(--accent);border-radius:999px;padding:5px 12px;font:700 .84rem var(--font-ui);cursor:pointer}
.go:hover{background:var(--accent);color:var(--accent-ink)}
ul.steps .go-row{margin:6px 0 4px}
.back-bar{margin-bottom:6px}
.org.spotlight{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent);animation:spot 1.1s ease-in-out 3}
@keyframes spot{50%{box-shadow:0 0 0 3px var(--accent),0 0 0 10px var(--glow)}}
.for-step{justify-self:start;font-size:.72rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);border-radius:6px;padding:2px 8px}
@media (prefers-reduced-motion:reduce){.org.spotlight{animation:none}}
.sheet-backdrop{position:fixed;inset:0;z-index:30;background:rgba(10,20,35,.55);display:flex;align-items:flex-end;justify-content:center;
  padding-left:max(0px,env(safe-area-inset-left,0px));padding-right:max(0px,env(safe-area-inset-right,0px))}
.sheet{width:100%;max-width:440px;background:var(--panel-solid);color:var(--ink);border-radius:22px 22px 0 0;
  padding:10px 16px calc(18px + env(safe-area-inset-bottom,0px));display:grid;gap:12px;animation:up .28s ease-out;max-height:100%;overflow:auto}
@keyframes up{from{transform:translateY(40px);opacity:.4}to{transform:none;opacity:1}}
.grab{width:40px;height:5px;border-radius:3px;background:var(--line);margin:0 auto}
.phone-screen{background:linear-gradient(180deg,#1f3b5c,#0e1a2b);color:#fff;border-radius:18px;padding:26px 16px 22px;display:grid;justify-items:center;gap:6px;text-align:center}
.avatar{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,#e3b44f,#b07a12);display:grid;place-items:center;font:700 1.6rem var(--font-ui);color:#1a1405}
.avatar.small{width:40px;height:40px;font-size:1rem}
.dial-name{font:600 1.25rem var(--font-ui);text-wrap:balance}
.dial-num{font:400 1rem var(--font-ui);opacity:.8;font-variant-numeric:tabular-nums;user-select:all}
.dial-status{font-size:.85rem;opacity:.75;margin-top:2px}
.dial-status::after{content:"";animation:dots 1.4s steps(4) infinite}
@keyframes dots{0%{content:""}25%{content:"."}50%{content:".."}75%{content:"..."}}
.keys{display:flex;gap:26px;margin:16px 0 10px;font-size:.72rem;opacity:.85}
.keys span{display:grid;justify-items:center;gap:4px}
.keys i{font-style:normal;width:48px;height:48px;border-radius:50%;background:rgba(255,255,255,.14);display:grid;place-items:center;font-size:1.1rem}
.end{width:62px;height:62px;border-radius:50%;border:0;background:#e5483d;display:grid;place-items:center;cursor:pointer}
.phone-screen.sms{justify-items:stretch;text-align:left;background:linear-gradient(180deg,#f2f5f9,#e7edf4);color:#1d2b3a}
.sms-head{display:flex;gap:10px;align-items:center;border-bottom:1px solid rgba(0,0,0,.08);padding-bottom:10px}
.sms .dial-num{opacity:.65}
.bubble{justify-self:end;max-width:85%;background:#2f7cf6;color:#fff;border-radius:18px 18px 4px 18px;padding:10px 13px;font-size:.92rem;line-height:1.45;white-space:pre-wrap;margin:10px 0}
.sms-input{display:flex;justify-content:space-between;align-items:center;border:1px solid rgba(0,0,0,.12);border-radius:20px;padding:7px 8px 7px 14px;font-size:.85rem;color:#7a8796;background:#fff}
.sms-input b{width:26px;height:26px;border-radius:50%;background:#2f7cf6;color:#fff;display:grid;place-items:center}
.sheet-note{margin:0;font-size:.88rem;color:var(--ink-soft);text-align:center}
.sheet-actions{justify-content:center}
@media (prefers-reduced-motion:reduce){.sheet{animation:none}.dial-status::after{animation:none;content:"…"}}
@media (max-width:460px){.trad{grid-template-columns:1fr}.panel{padding:16px}.moods{grid-template-columns:1fr}}

/* ---------- Real-app additions ---------- */
.working{display:flex;align-items:center;gap:12px;background:var(--blue-soft);border-radius:14px;padding:14px 16px;margin-top:12px}
.working .spin{width:22px;height:22px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--accent);animation:spin 1s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
.error-box{background:var(--crisis-bg);color:var(--ink);border:1px solid var(--crisis);border-radius:14px;padding:12px 14px;margin-top:12px;display:grid;gap:8px}
.sample-note{display:inline-block;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;background:var(--lock);color:var(--accent);border-radius:6px;padding:2px 8px}
.study-list{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 0}
.study-list .chip[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.passage{display:grid;gap:6px}
@media (prefers-reduced-motion:reduce){.working .spin{animation:none}}

/* feedback */
.stars{display:flex;gap:6px;margin:12px 0 4px}
.stars button{border:1px solid var(--line);background:var(--panel-solid);color:var(--line);border-radius:12px;width:52px;height:52px;font-size:1.7rem;line-height:1;cursor:pointer}
.stars button.on{color:var(--accent);border-color:var(--accent)}
.stars button:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
.linkbtn{background:none;border:0;padding:4px;font:600 .9rem var(--font-ui);color:var(--blue);text-decoration:underline;cursor:pointer}

/* Read & Listen */
.badge-full{font-size:.7rem;letter-spacing:.08em;background:var(--lock);color:var(--accent);border-radius:6px;padding:2px 6px;font-weight:700;white-space:nowrap}
.rtabs{margin-top:12px}
.rbar{display:grid;grid-template-columns:1.4fr 1.2fr .6fr;gap:8px;margin-top:12px}
.rbar label{font-size:.8rem;color:var(--ink-soft);font-weight:600}
.rbar select{margin-top:3px}
.rplayer{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:12px 0 4px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-solid)}
.rplayer .fine{flex:1;min-width:180px}
.rset{flex:1;min-width:200px}
.rset summary{cursor:pointer;font-weight:600;color:var(--blue);list-style:none}
.rset summary::-webkit-details-marker{display:none}
.rset summary::before{content:"⚙ ";}
.rset-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;margin-top:10px}
.rset-grid label{font-size:.8rem;color:var(--ink-soft);font-weight:600}
.rset-grid select,.rset-grid input[type=range]{margin-top:3px;width:100%}
.rset-grid label.check{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--ink)}
.rset-grid label.check input{width:auto}
.rlist{margin:10px 0;padding:12px;border-radius:12px;background:var(--lock)}
.rlist-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.rlist .chips{margin-top:8px}
.rnote{background:var(--blue-soft);border-radius:10px;padding:8px 12px}
.rtext{font-family:var(--font-display);font-size:1.12rem;line-height:1.75;margin-top:6px}
.rtext .rref{font-size:1.35rem;margin:14px 0 6px}
.rtext .rtitle{font-style:italic;color:var(--ink-soft);margin:0 0 8px;font-size:1rem}
.rtext p{margin:0 0 12px}
.rtext .v{border-radius:6px;padding:1px 0;transition:background .25s;cursor:pointer}
.rtext .v sup{font-family:var(--font-ui);font-size:.62em;font-weight:700;color:var(--accent);margin-right:3px}
.rtext .speaking{background:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent)}
.rtext .rref.speaking,.rtext .rtitle.speaking{display:inline-block;padding:0 6px}
.rh{font-size:.95rem;margin:16px 0 6px}
.rlook label{font-weight:600}
.chipwrap{display:inline-flex;align-items:center}
.chip-x{border:0;background:none;color:var(--ink-soft);cursor:pointer;padding:4px 6px;font-size:.85rem}
.plans{display:grid;gap:10px;margin-top:10px}
.plan-card{border:1px solid var(--line);border-radius:12px;padding:12px;background:var(--panel-solid);display:grid;gap:8px}
.plan-card.on{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}
.pbar{height:8px;border-radius:4px;background:var(--line);overflow:hidden}
.pbar i{display:block;height:100%;background:var(--accent)}
@media (max-width:640px){.rbar{grid-template-columns:1fr 1fr}.rbar label:first-child{grid-column:1/-1}}
.rlist .chip[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}

/* Learn */
.smodes{margin-top:12px}
.ln-lead{margin:12px 0 8px;max-width:64ch}
.ln-levels{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:10px 0}
.ln-level{text-align:left;border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;display:grid;gap:3px;font:inherit}
.ln-level span{font-size:.82rem;color:var(--ink-soft)}
.ln-level.kids strong::after{content:" ★";color:var(--accent)}
.ln-level[aria-pressed="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 2px var(--accent)}
.ln-change summary{cursor:pointer;color:var(--ink-soft);margin:4px 0}
.ln-paths{display:grid;gap:10px}
.ln-build{margin-top:14px}
.ln-build label{font-weight:600}
.ln-lessons{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ln-lessons button{width:100%;text-align:left;display:flex;gap:10px;align-items:center;border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:12px;padding:10px 12px;cursor:pointer;font:inherit}
.ln-lessons .pn{flex:0 0 28px;height:28px;border-radius:50%;background:var(--lock);color:var(--accent);display:grid;place-items:center;font-weight:700}
.ln-tr{font-size:.8rem;color:var(--ink-soft);font-weight:600;display:flex;align-items:center;gap:6px}
.ln-tr select{width:auto;padding:6px 8px}
.ln-text .ln-answer{background:color-mix(in srgb,var(--blue) 18%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--blue) 18%,transparent);border-radius:6px}
.ln-hint{background:var(--blue-soft);border-radius:10px;padding:8px 12px;margin:12px 0 0}
.ln-quiz{margin-top:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--panel-solid)}
.ln-bottom{border:2px solid var(--accent)}
.ln-q{font-family:var(--font-display);font-size:1.2rem;margin:4px 0 10px}
.ln-choices{display:grid;gap:8px}
.ln-choice{display:flex;gap:10px;align-items:center;text-align:left;border:1px solid var(--line);background:var(--panel-solid);color:var(--ink);border-radius:12px;padding:11px 12px;font:600 1rem var(--font-ui);cursor:pointer}
.ln-choice .ln-letter{flex:0 0 26px;height:26px;border-radius:50%;background:var(--blue-soft);display:grid;place-items:center;font-size:.85rem}
.ln-choice.right{border-color:#2e7d32;background:color-mix(in srgb,#2e7d32 14%,var(--panel-solid))}
.ln-choice.wrong{border-color:var(--crisis);background:color-mix(in srgb,var(--crisis) 12%,var(--panel-solid))}
.ln-choice.dim{opacity:.6}
.ln-choice:disabled{cursor:default}
.ln-quiz.kids .ln-choice{font-size:1.1rem;padding:14px}
.ln-quiz.kids .ln-q{font-size:1.35rem}
.ln-feedback{margin-top:12px;border-radius:10px;padding:10px 12px}
.ln-feedback.ok{background:color-mix(in srgb,#2e7d32 14%,transparent)}
.ln-feedback.no{background:var(--lock)}
.ln-quiz .linkbtn{margin-top:10px}
.ln-done{text-align:center;padding:16px 8px;margin-top:12px;border:1px solid var(--line);border-radius:14px;background:var(--panel-solid)}
.ln-score{font-family:var(--font-display);font-size:1.6rem;margin:0}
/* pregnancy relationship question */
.sit-ask{margin-top:12px;padding:12px;border-radius:12px;background:var(--lock)}
.sit-opts{display:grid;gap:8px;margin-bottom:6px}
.sit-opts .btn{text-align:left}
/* reading voice */
.voice-pick{display:grid;grid-template-columns:1fr auto;gap:8px 10px;align-items:end;margin-top:12px}
.voice-pick label{font-size:.85rem;font-weight:600}
.voice-pick #voiceNote{grid-column:1/-1}
.voice-status{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(16px + env(safe-area-inset-bottom,0px));background:var(--panel-solid);color:var(--ink);border:1px solid var(--accent);border-radius:999px;padding:8px 16px;font-size:.88rem;box-shadow:0 6px 22px var(--glow);z-index:50;max-width:calc(100% - 32px);text-align:center}
@media (max-width:480px){.voice-pick{grid-template-columns:1fr}}
