/* TWVY — The Type system. White, huge grotesque type, Apple/Google/Sony register.
   One design system across the whole lab. No logo: text wordmark only. */
:root{
  --bg:#FAFAF8; --panel:#F5F5F3; --panel2:#EDEDEA; --ink:#141310; --ink2:#3C3A35;
  --mut:#6E6A61; --line:#E4E4DF; --gold:#B08D2E; --gold2:#C9A227; --dark:#101010;
  --darkpanel:#171716; --radius:18px; --maxw:1200px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;line-height:1.5}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 24px}
h1,h2,h3{font-weight:600;letter-spacing:-.03em;line-height:1.02}
.kicker{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin-bottom:18px}
.lede{font-size:clamp(19px,2.4vw,24px);color:var(--ink2);line-height:1.45;font-weight:450}
.btn{display:inline-flex;align-items:center;gap:8px;background:var(--ink);color:#fff;font-weight:600;font-size:16px;
  padding:14px 26px;border-radius:999px;border:1px solid var(--ink);cursor:pointer;transition:.2s}
.btn:hover{background:#000;transform:translateY(-1px)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--panel)}
.btn.gold{background:var(--gold2);border-color:var(--gold2);color:#141310}
.btn.light{background:#fff;color:var(--ink);border-color:#fff}
section{padding:96px 0}
.sec-head{max-width:760px;margin-bottom:48px}
.sec-head h2{font-size:clamp(34px,5vw,56px);margin-bottom:16px}

/* ---------- header / grouped nav ---------- */
header.site{position:sticky;top:0;z-index:60;background:rgba(250,250,248,.88);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{display:flex;align-items:center;gap:28px;height:64px;max-width:var(--maxw);margin:0 auto;padding:0 24px}
.wordmark{font-weight:700;font-size:22px;letter-spacing:.14em}
.nav-groups{display:flex;gap:4px;margin-left:8px}
.nav-item{position:relative}
.nav-btn{background:none;border:0;font:inherit;font-size:15px;font-weight:550;color:var(--ink2);padding:9px 13px;border-radius:9px;cursor:pointer}
.nav-btn:hover,.nav-item.open .nav-btn{background:var(--panel);color:var(--ink)}
.menu{position:absolute;top:calc(100% + 10px);left:0;min-width:290px;background:#fff;border:1px solid var(--line);
  border-radius:16px;box-shadow:0 24px 60px rgba(20,19,16,.13);padding:10px;display:none}
.nav-item.open .menu{display:block}
.menu a{display:flex;flex-direction:column;gap:1px;padding:9px 12px;border-radius:10px}
.menu a:hover{background:var(--panel)}
.menu a b{font-size:15px;font-weight:600}
.menu a span{font-size:13px;color:var(--mut)}
.menu .mhead{font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);padding:10px 12px 4px}
.nav-cta{margin-left:auto}
.burger{display:none;margin-left:auto;background:none;border:0;cursor:pointer;padding:8px}
.burger i{display:block;width:22px;height:2px;background:var(--ink);margin:5px 0;border-radius:2px}
@media(max-width:960px){
  .nav-groups{display:none;position:absolute;top:64px;left:0;right:0;background:var(--bg);border-bottom:1px solid var(--line);
    flex-direction:column;padding:12px 16px 20px;max-height:calc(100vh - 64px);overflow:auto}
  .nav-groups.show{display:flex}
  .menu{position:static;display:none;box-shadow:none;border:0;background:transparent;padding:0 0 6px 10px}
  .nav-item.open .menu{display:block}
  .burger{display:block}.nav-cta{display:none}
}

/* ---------- hero / landing ---------- */
.hero{padding:84px 0 70px}
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:48px;align-items:center}
.hero h1{font-size:clamp(46px,7.2vw,92px);margin-bottom:24px}
.hero .lede{max-width:560px;margin-bottom:34px}
.hero-fig{border-radius:24px;overflow:hidden;background:var(--panel)}
.hero-fig img{width:100%;height:100%;object-fit:cover}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:860px){.hero-grid{grid-template-columns:1fr}.hero{padding:52px 0 44px}}
.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden;margin-top:56px}
.counter{background:#fff;padding:26px 24px}
.counter b{display:block;font-weight:600;font-size:clamp(30px,4vw,44px);letter-spacing:-.03em}
.counter span{font-size:13px;color:var(--mut);font-weight:550;letter-spacing:.04em;text-transform:uppercase}
@media(max-width:760px){.counters{grid-template-columns:repeat(2,1fr)}}

/* ---------- cards / grids ---------- */
.grid{display:grid;gap:18px}
.grid.c2{grid-template-columns:repeat(2,1fr)}.grid.c3{grid-template-columns:repeat(3,1fr)}.grid.c4{grid-template-columns:repeat(4,1fr)}
@media(max-width:960px){.grid.c3,.grid.c4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.grid.c2,.grid.c3,.grid.c4{grid-template-columns:1fr}}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:28px;transition:.2s}
a.card:hover{transform:translateY(-3px);box-shadow:0 18px 40px rgba(20,19,16,.08)}
.card h3{font-size:22px;margin-bottom:8px}
.card p{color:var(--ink2);font-size:15.5px}
.card .go{margin-top:16px;font-weight:650;font-size:15px;color:var(--gold)}
.card .thumb{border-radius:12px;overflow:hidden;margin:-8px -8px 18px;background:var(--panel);aspect-ratio:4/3;position:relative}
.card .thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block}
.tag{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--gold);
  border:1px solid var(--line);border-radius:999px;padding:5px 11px;margin-bottom:14px;background:#fff}

/* ---------- dark bands / exit ---------- */
.band{background:var(--dark);color:#F4F2ED;border-radius:28px;padding:64px 48px}
.band h2{color:#fff}.band p{color:#B9B5AA}
.band .kicker{color:var(--gold2)}
@media(max-width:620px){.band{padding:44px 26px}}
.exit{background:#000;color:#fff}
.exit h2{font-size:clamp(36px,5.6vw,64px);color:#fff;max-width:820px}
.exit p{color:#A9A59B;max-width:620px;font-size:19px;margin:18px 0 30px}

/* ---------- index bars ---------- */
.bar-row{display:grid;grid-template-columns:170px 1fr 64px;gap:14px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}
.bar-row b{font-size:16px}.bar-track{height:10px;background:var(--panel2);border-radius:99px;overflow:hidden}
.bar-fill{height:100%;background:var(--ink);border-radius:99px}
.bar-row .n{font-variant-numeric:tabular-nums;color:var(--mut);text-align:right;font-weight:600}
table.idx{width:100%;border-collapse:collapse;font-size:16px}
table.idx th{text-align:left;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--mut);padding:10px 8px;border-bottom:2px solid var(--ink)}
table.idx td{padding:14px 8px;border-bottom:1px solid var(--line)}
table.idx td.n{font-variant-numeric:tabular-nums}

/* ---------- generic page ---------- */
.page-hero{padding:72px 0 8px}
.page-hero h1{font-size:clamp(42px,6.4vw,76px);max-width:900px}
.page-hero .lede{margin-top:20px;max-width:680px}
.prose{max-width:760px}
.prose h2{font-size:32px;margin:52px 0 14px}
.prose h3{font-size:22px;margin:34px 0 10px}
.prose p{font-size:18px;color:var(--ink2);margin-bottom:16px;line-height:1.65}
.prose ul{margin:0 0 16px 20px;color:var(--ink2);font-size:18px;line-height:1.65}
.prose blockquote{border-left:3px solid var(--gold2);padding:4px 0 4px 20px;font-size:21px;color:var(--ink);margin:26px 0;font-weight:550}
.stat-panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:30px}
.stat-panel .row{display:flex;justify-content:space-between;gap:16px;padding:13px 0;border-bottom:1px solid var(--line)}
.stat-panel .row:last-child{border:0}
.stat-panel .row span{color:var(--mut);font-weight:550}
.stat-panel .row b{font-size:19px}
.split{display:grid;grid-template-columns:1.15fr .85fr;gap:44px;align-items:start}
@media(max-width:860px){.split{grid-template-columns:1fr}}

/* ---------- books ---------- */
.book-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}
@media(max-width:960px){.book-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:640px){.book-grid{grid-template-columns:repeat(2,1fr)}}
.book{background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;display:flex;flex-direction:column}
.book img{aspect-ratio:3/4;object-fit:cover;width:100%;background:var(--panel)}
.book .bb{padding:16px 18px 20px;display:flex;flex-direction:column;gap:5px;flex:1}
.book h3{font-size:17.5px;letter-spacing:-.01em}
.book .sub{font-size:13.5px;color:var(--mut)}
.book .blurb{font-size:14px;color:var(--ink2);flex:1}
.book .meta{display:flex;justify-content:space-between;align-items:center;margin-top:12px}
.book .price{font-weight:750;font-size:16px}
.book .buy{font-weight:650;font-size:14px;color:var(--gold)}

/* ---------- conversation (chat) ---------- */
.door-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
@media(max-width:960px){.door-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.door-grid{grid-template-columns:1fr}}
.chat-shell{max-width:760px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:24px;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:14px;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--bg)}
.chat-head img{width:44px;height:44px;border-radius:50%;object-fit:cover;border:1px solid var(--line)}
.chat-head b{font-size:16px}.chat-head span{display:block;font-size:13px;color:var(--mut)}
.chat-body{padding:26px 22px 10px;min-height:340px}
.msg{display:flex;gap:11px;margin-bottom:18px;animation:rise .35s ease both}
@keyframes rise{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.msg img{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none;border:1px solid var(--line)}
.bubble{background:var(--panel);border-radius:4px 18px 18px 18px;padding:13px 17px;font-size:16.5px;line-height:1.5;max-width:560px}
.msg.me{flex-direction:row-reverse}
.msg.me .bubble{background:var(--ink);color:#fff;border-radius:18px 4px 18px 18px}
.msg.reflect .bubble{background:transparent;border:1px dashed var(--line);color:var(--ink2);font-style:italic}
.chips{display:flex;flex-wrap:wrap;gap:9px;padding:6px 22px 20px}
.chip{border:1.5px solid var(--ink);background:#fff;border-radius:999px;padding:11px 18px;font:inherit;font-size:15px;font-weight:550;cursor:pointer;transition:.15s;text-align:left}
.chip:hover{background:var(--ink);color:#fff}
.chat-input{display:none;gap:9px;padding:0 22px 20px}
.chat-input.show{display:flex}
.chat-input input{flex:1;border:1.5px solid var(--line);border-radius:999px;padding:12px 18px;font:inherit;font-size:16px;background:var(--bg)}
.chat-input input:focus{outline:none;border-color:var(--ink)}
.typing{display:inline-flex;gap:5px;padding:14px 17px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--mut);animation:tp 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes tp{0%,100%{opacity:.3}50%{opacity:1}}
.progress{height:3px;background:var(--panel2)}
.progress i{display:block;height:100%;background:var(--gold2);width:0;transition:width .5s}
.casefile{background:var(--dark);color:#EDEBE4;border-radius:24px;padding:44px 40px;margin-top:26px}
.casefile h2{color:#fff;font-size:clamp(30px,4.6vw,46px)}
.casefile .depth{font-size:clamp(56px,9vw,96px);font-weight:700;letter-spacing:-.04em;color:#fff;line-height:1}
.casefile .lbl{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:#9d998e;font-weight:700}
.casefile hr{border:0;border-top:1px solid #2c2c2a;margin:26px 0}
.casefile .day{display:grid;grid-template-columns:64px 1fr;gap:14px;padding:7px 0;font-size:15.5px}
.casefile .day b{color:var(--gold2);font-variant-numeric:tabular-nums}
.casefile p{color:#C9C5BA}
.casefile .sent{font-style:italic;color:#EDEBE4}
@media(max-width:620px){.casefile{padding:32px 24px}}
.emailbox{display:flex;gap:9px;flex-wrap:wrap;margin-top:14px}
.emailbox input{flex:1;min-width:220px;border:1.5px solid var(--line);border-radius:999px;padding:13px 19px;font:inherit;font-size:16px;background:#fff}
.fineprint{font-size:13px;color:var(--mut);margin-top:10px}

/* ---------- footer ---------- */
footer.site{border-top:1px solid var(--line);margin-top:40px;background:#fff}
.foot{max-width:var(--maxw);margin:0 auto;padding:56px 24px 40px;display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:32px}
.foot h4{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--mut);margin-bottom:14px}
.foot a{display:block;padding:4px 0;color:var(--ink2);font-size:15px}
.foot a:hover{color:var(--ink)}
.foot-base{border-top:1px solid var(--line);padding:20px 24px;max-width:var(--maxw);margin:0 auto;display:flex;gap:16px;flex-wrap:wrap;justify-content:space-between;color:var(--mut);font-size:13.5px}
@media(max-width:860px){.foot{grid-template-columns:1fr 1fr}}

/* ================= MOBILE — the phone is the primary device ================= */
*{-webkit-tap-highlight-color:transparent}
button,.chip,.btn,.card{touch-action:manipulation}
html{scroll-padding-top:80px}
.burger{min-width:44px;min-height:44px}
[data-country-board]{overflow-x:auto;-webkit-overflow-scrolling:touch}
.mobile-cta{display:none}
@media(max-width:960px){
  .nav-groups .nav-btn{width:100%;text-align:left;padding:14px 10px;font-size:16.5px;border-radius:10px}
  .nav-groups .menu a{padding:12px 12px}
  .menu a b{font-size:16px}
}
@media(max-width:620px){
  section{padding:60px 0}
  .wrap{padding:0 18px}
  .page-hero{padding:48px 0 4px}
  .hero{padding:38px 0 34px}
  .hero h1{font-size:clamp(41px,11.8vw,56px)}
  .hero .lede{font-size:19px}
  .hero-ctas{gap:10px}
  .hero-ctas .btn{flex:1 1 100%;justify-content:center;padding:16px 22px;font-size:17px}
  .hero-fig{aspect-ratio:4/3;border-radius:20px}
  .counters{margin-top:36px;border-radius:16px}
  .counter{padding:20px 18px}
  .counter b{font-size:32px}
  .card{padding:24px 20px;border-radius:16px}
  .card h3{font-size:21px}
  .sec-head{margin-bottom:34px}
  .band{border-radius:22px}
  .bar-row{grid-template-columns:118px 1fr 44px;gap:10px}
  .bar-row b{font-size:15px}
  table.idx{font-size:15px;min-width:480px}
  .book .bb{padding:13px 14px 16px}
  .book h3{font-size:16px}
  /* the conversation, full-bleed like a native chat app */
  .chat-shell{margin:0 -18px;border-radius:0;border-left:0;border-right:0}
  .chat-head{padding:13px 16px}
  .chat-body{padding:20px 15px 6px;min-height:300px}
  .msg{gap:9px;margin-bottom:15px}
  .msg img{width:30px;height:30px}
  .bubble{font-size:16px;padding:12px 15px;max-width:88%}
  .chips{flex-direction:column;padding:4px 15px 16px;gap:8px}
  .chip{width:100%;padding:14px 17px;font-size:16px;border-radius:16px;line-height:1.35}
  .chip:active{background:var(--ink);color:#fff;transform:scale(.99)}
  .chat-input{padding:0 15px 16px}
  .chat-input input{font-size:16px;padding:13px 17px}
  .casefile{border-radius:20px;margin-left:-6px;margin-right:-6px}
  .casefile .day{grid-template-columns:52px 1fr;font-size:15px}
  .emailbox input{flex:1 1 100%}
  .emailbox .btn{flex:1 1 100%;justify-content:center}
  .foot{padding:44px 18px 30px}
  /* sticky thumb CTA (landing + conversation picker only) */
  .mobile-cta{display:flex;position:fixed;left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:55;
    background:var(--ink);color:#fff;border-radius:999px;padding:7px 7px 7px 20px;align-items:center;justify-content:space-between;
    box-shadow:0 14px 34px rgba(0,0,0,.28);font-weight:600;font-size:15.5px}
  .mobile-cta a{background:var(--gold2);color:#141310;border-radius:999px;padding:11px 18px;font-weight:700}
  .mobile-cta-space{height:76px}
}
@media(min-width:621px){.mobile-cta-space{display:none}}

/* ================= APPLE PASS — centered, airy, product first ================= */
.hero-center{text-align:center;max-width:940px;margin:0 auto}
.hero-center .lede{max-width:600px;margin:0 auto 30px;font-size:clamp(19px,2.4vw,23px)}
.hero-center .hero-ctas{justify-content:center}
.hero-product{margin:56px auto 0;max-width:900px;border-radius:28px;overflow:hidden;background:var(--panel)}
.hero-product img{width:100%;height:auto}
.sec-head.center{text-align:center;margin-left:auto;margin-right:auto}
.sec-head.center .lede{margin-left:auto;margin-right:auto}
@media(max-width:620px){
  .hero-ctas .btn{flex:0 1 auto;padding:14px 24px;font-size:16px}
  .hero-product{margin-top:40px;border-radius:22px}
  .hero-center .lede{font-size:19px}
}

/* ================= CHAT FEEL — settle-once scrolling + app-grade mobile ================= */
.jump-pill{position:fixed;right:16px;bottom:18px;z-index:60;background:var(--ink);color:#fff;border:0;border-radius:999px;padding:11px 18px;font:inherit;font-size:14px;font-weight:600;box-shadow:0 10px 28px rgba(20,19,16,.28);display:none;cursor:pointer}
@media(max-width:860px){
  .chat-shell{overflow:visible;background:transparent;border:0;border-radius:0;box-shadow:none}
  .chat-head{position:sticky;top:64px;z-index:40;margin:8px 2px 0;background:var(--bg);border:1px solid var(--line);border-radius:18px;padding:11px 14px;box-shadow:0 8px 24px rgba(20,19,16,.06)}
  .chat-head img{width:36px;height:36px;border:0}
  .chat-log{padding:20px 4px 10px}
  .msg{gap:9px;margin-bottom:14px}
  .msg img{width:30px;height:30px;border:0}
  .bubble{border-radius:20px;padding:13px 16px}
  .msg:not(.me) .bubble{border-bottom-left-radius:6px}
  .msg.me .bubble{border-bottom-right-radius:6px}
  .bubble.reflect{font-size:15.5px}
  .chips{gap:10px;padding:12px 2px 20px}
  .chip{border-radius:16px;padding:15px 18px;font-size:16px;background:#fff;box-shadow:0 1px 3px rgba(20,19,16,.05)}
  .chat-input.show{position:sticky;bottom:10px;margin:0 2px 12px;border-radius:16px;box-shadow:0 12px 32px rgba(20,19,16,.16);z-index:30}
  .page-hero{padding:30px 0 4px}
  .page-hero h1{font-size:32px}
  .page-hero .lede{font-size:17px}
}

/* ================= REGISTERS — how should we talk? ================= */
.level-pick{max-width:760px;margin:0 auto}
.lvl-head{font-size:26px;font-weight:600;letter-spacing:-.02em}
.lvl-sub{color:var(--mut);font-size:16.5px;margin:8px 0 22px;max-width:56ch}
.lvl{display:flex;flex-direction:column;gap:3px;width:100%;text-align:left;background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px 22px;margin-bottom:12px;cursor:pointer;font:inherit;transition:border-color .15s ease}
.lvl:hover{border-color:var(--ink)}
.lvl b{font-size:19px;font-weight:600}
.lvl span{color:var(--mut);font-size:15.5px}

/* ================= COVERS — shown whole, never cropped ================= */
.coverwrap{background:var(--panel)}
.coverwrap img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:initial}

/* Best Mode door (Conversations index) — additive; worst set untouched. */
.mode-door{max-width:760px;margin:0 auto 44px}
.mode-btn[aria-pressed="true"]{border-color:var(--ink)}
.mode-btn[aria-pressed="true"] b::after{content:" · Reading";color:var(--gold);font-weight:600}
.mode-door .mode-mark{font-size:12px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}

/* ================= TWO PRODUCTS — separated wings ================= */
/* The bridge: the one quiet line a finished file carries back to the research. */
.bridge{margin-top:28px;padding-top:20px;border-top:1px solid #2c2c2a;color:#9d998e;font-size:15.5px;line-height:1.55}
.bridge a{color:#EDEBE4;font-weight:600;white-space:nowrap}
.bridge a:hover{color:#fff}
/* Research pages carry a uniform way home to the Lab hub. */
.backbar{padding-top:26px}
.backlink{font-size:14px;font-weight:600;color:var(--mut)}
.backlink:hover{color:var(--ink)}
.page-hero.with-back{padding-top:30px}
/* The two houses on the homepage hero. */
.houses{margin:44px auto 0;max-width:820px;text-align:left}
.houses .card h3{font-size:24px}

/* ================= EVIDENCE TIERS + ACCESSIBILITY ================= */
/* The tier label rides on claim-bearing copy: what kind of knowing is this?
   Established · Peer-reviewed · Disputed · Philosophical · Lab hypothesis ·
   Field note. Small, gold, never decorative. */
.tier{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;
  color:var(--gold);border:1px solid var(--line);background:#fff;border-radius:999px;padding:3px 11px;vertical-align:middle}
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;
  clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ================= HOMEPAGE — the landing page IS the chat box ================= */
.home-chat{padding:40px 0 26px}
.home-figure{max-width:172px;margin:4px auto 20px}
.home-figure img{width:100%;height:auto}
.home-line{text-align:center;color:var(--mut);font-size:15px;margin:28px auto 4px}
.lobby-again{max-width:760px;margin:24px auto 0;text-align:center}
@media(max-width:620px){
  .home-chat{padding:22px 0 8px}
  .home-figure{max-width:124px;margin-bottom:14px}
}

/* ================= MOBILE FIT — hug the conversation (Oct 17) =================
   Measured defect: .chat-body's fixed min-height (340/300px) left a ~110px
   dead void between the last bubble and the chips, and on short phones
   (375x667, or Safari with its bars showing) pushed the second house chip
   below the fold. The greeting's real content is ~182px; the shell now
   hugs it, and the home stack above the shell gives back ~22px more. */
@media(max-width:860px){
  .chat-body{min-height:230px}
}
@media(max-width:620px){
  .chat-body{min-height:188px}
  .home-chat{padding-top:14px}
  .home-figure{max-width:104px;margin-bottom:10px}
  .home-line{margin-top:20px}
}
