/* ============================================================
   HERO — one sentence, one button.
============================================================ */
.hero{padding:var(--s7) 0 var(--s6);text-align:center}
.hero .dot{display:block;margin:0 auto var(--s5);background:var(--accent);animation:breathe 2.8s ease-in-out infinite,dot-in var(--t-base) var(--ease) both}
.hero h1{font-size:clamp(1.9rem,5.2vw,2.75rem);line-height:1.4;letter-spacing:.02em;margin:0 auto;max-width:14em}
.hero .alt{font-size:1rem;color:var(--ink-3);margin:10px 0 var(--s4)}
.hero .sub{color:var(--ink-2);max-width:26em;line-height:1.75;margin:0 auto var(--s6);font-size:1.0625rem}
.hero .ctas{display:flex;gap:var(--s3) var(--s5);flex-wrap:wrap;align-items:center;justify-content:center}
.hero .ctas .btn{min-width:180px}

/* ============================================================
   THOUGHT CARD — a white card: tag → title → two lines of the
   conversation → where it stopped → who, how long, continue
============================================================ */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s5) var(--s5) var(--s4);margin:0 0 var(--s3);
  transition:border-color var(--t-fast)}
.card:hover{border-color:var(--line-strong)}
.card .kicker{margin-bottom:10px;color:var(--ink-2);font-size:.8125rem}
.card .question{margin:0 0 4px;font-family:var(--font-serif);font-weight:600;letter-spacing:.01em;font-size:1.0625rem;line-height:1.5}
.card .question a{text-decoration:none;color:var(--ink);transition:color var(--t-fast)}
.card .question a:hover{color:var(--accent-deep)}
.card-title{margin:0 0 10px;font-size:.875rem;color:var(--ink-2)}
.card-title a{text-decoration:none}
.card .excerpt{margin:var(--s3) 0 0}
.card-foot{display:flex;gap:6px 14px;align-items:center;flex-wrap:wrap;margin-top:var(--s4);padding-top:var(--s4);border-top:1px solid var(--line);font-size:.8125rem;color:var(--ink-2)}
.card-foot .who{color:var(--ink);font-weight:500}
.card-foot .who a{text-decoration:none}
.card-foot .who a:hover{color:var(--accent-deep)}
.card-foot .continued{color:var(--accent-deep);font-weight:500}
.card-foot .lonely{color:var(--ink-3)}
.card .go{display:inline-flex;align-items:center;gap:6px;margin-left:auto;color:var(--accent-deep);background:var(--accent-tint);text-decoration:none;font-weight:600;font-size:.875rem;min-height:36px;padding:0 14px;border-radius:var(--r-pill);white-space:nowrap;transition:background var(--t-fast),color var(--t-fast)}
.card .go:hover{background:var(--accent-tint-2)}
.card .go .dot{display:none}
.card .go::after{content:"→";transition:transform var(--t-fast) var(--ease)}
.card .go:hover::after{transform:translateX(2px)}
.card .meta.tiny{margin:6px 0 0}

/* the featured (first) thought under the hero: larger title, more air */
.hero-thought{margin:0 0 var(--s6)}
.hero-thought .card{padding:var(--s6) var(--s6) var(--s5);border-color:var(--accent-tint-2)}
.hero-thought .question.t-huge,.hero-thought .question.t-large,.hero-thought .question.t-medium{font-size:clamp(1.5rem,3.4vw,1.95rem);line-height:1.45;letter-spacing:.01em}
.hero-thought .kicker .dot{background:var(--accent)}

/* V15.1 Ignition — one primary question, not a four-column portal (§12-§14). */
.hero.ignition{padding-bottom:var(--s5)}
.hero-ctas{margin-top:var(--s5)}
.ig-featured{max-width:640px;margin:0 auto var(--s6);padding:var(--s6) var(--s5);background:var(--surface);
  border:1px solid var(--line);border-radius:var(--r-card)}
.ig-featured-q{font-size:clamp(1.35rem,3.2vw,1.75rem);line-height:1.4;letter-spacing:-.01em;margin:0 0 var(--s4);color:var(--ink)}
.ig-featured .dot{margin:0 auto var(--s4)}
.ig-growing{max-width:640px;margin:0 auto var(--s6);text-align:left}
.ig-growing .ig-label{font-size:.75rem;font-weight:600;letter-spacing:.08em;color:var(--ink-3);margin:0 0 var(--s3);text-align:center}
.ig-tree{margin:0 0 var(--s4)}
.ig-tree-root{display:flex;align-items:center;gap:var(--s2);font-size:.9375rem;color:var(--ink-2);margin:0 0 var(--s2)}
.ig-tree-branches{list-style:none;margin:0;padding:0 0 0 22px;border-left:1px dashed var(--line-strong);display:flex;flex-direction:column;gap:var(--s2)}
.ig-tree-branches li a{color:var(--accent-deep);text-decoration:none;font-size:.9375rem}
.ig-tree-branches li a:hover{text-decoration:underline}
.ig-more-row{max-width:640px;margin:0 auto var(--s5);font-size:.875rem;color:var(--ink-3);display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center;justify-content:center}
.ig-more-link{color:var(--ink-2);text-decoration:none}
.ig-more-link:hover{color:var(--accent-deep)}
.ig-more-sep{color:var(--ink-3)}

/* the stopping point, on the card: a short line hung off an accent rule */
.card-anchor{position:relative;color:var(--ink);font-size:1rem;line-height:1.6;margin:var(--s4) 0 0;padding:2px 0 2px 14px;display:block;max-width:34em}
.card-anchor::before{content:"";position:absolute;left:0;top:2px;bottom:2px;width:3px;border-radius:3px;background:var(--accent)}
.card-anchor .dot{display:none}

/* ============================================================
   THOUGHT DETAIL — a page being read
============================================================ */
.thought{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s5) var(--s5) var(--s6);margin-top:var(--s2)}
.thought .kicker{margin:0 0 var(--s3)}
.thought h1{margin:0 0 var(--s3)}
.orig-title{color:var(--ink-2);font-size:1rem;margin:-4px 0 var(--s3)}
.thought .byline{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:.875rem;color:var(--ink-2);margin-bottom:var(--s5)}
.thought .byline a{text-decoration:none;font-weight:500;color:var(--ink)}
.thought .byline a:hover{color:var(--accent-deep)}
.parent-ref{font-size:.875rem;color:var(--ink-2);background:var(--surface-2);padding:10px 14px;margin:0 0 var(--s4);border-radius:var(--r-input);line-height:1.6}
.parent-ref a{text-decoration:none;font-weight:500;color:var(--ink)}
.parent-ref a:hover{color:var(--accent-deep)}
.oq{background:var(--surface-2);border-radius:var(--r-input);padding:var(--s4) var(--s4);margin:0 0 var(--s5)}
.oq .kicker{margin-bottom:4px}
.oq p{font-size:1.0625rem;line-height:1.65;margin:0;font-weight:500}
.langbar{display:flex;gap:12px;align-items:center;margin:0 0 var(--s4);font-size:.875rem;color:var(--ink-2);flex-wrap:wrap}
.langbar label{display:flex;gap:10px;align-items:center;margin:0;white-space:nowrap;font-size:inherit;color:inherit;font-weight:500}
.langbar select{padding:6px 34px 6px 12px;font-size:.875rem;min-height:36px;margin:0;width:auto;display:inline-block;border-radius:var(--r-pill);font-weight:400}
.key{font-size:.8125rem;color:var(--ink-3);margin:0 0 var(--s2)}
.key b{color:var(--ink);font-weight:600;font-size:.9rem}

.timeline{margin:var(--s6) 0 0;padding:var(--s4);background:var(--surface-2);border-radius:var(--r-input)}
.timeline .kicker{margin-bottom:var(--s2)}
.timeline ol{list-style:none;padding:0 0 0 18px;margin:0;position:relative}
.timeline ol::before{content:"";position:absolute;left:3px;top:8px;bottom:8px;width:2px;border-radius:2px;background:var(--line-strong)}
.timeline li{position:relative;padding:0 0 8px;font-size:.875rem;color:var(--ink-2)}
.timeline li::before{content:"";position:absolute;left:-18px;top:.55em;width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.timeline li a{text-decoration:none;color:var(--ink)}
.timeline li a:hover{color:var(--accent-deep)}

.actions{display:flex;gap:8px;flex-wrap:wrap;margin:var(--s5) 0 var(--s3);align-items:center}
.actions .btn{min-height:40px;padding:8px 16px;font-size:.875rem}
.actions .btn.danger{margin-left:auto}
.disclaimer{font-size:.75rem;color:var(--ink-3);margin-top:var(--s3)}
.children,.comments{margin-top:var(--s7)}
.children h3,.comments h3{margin-bottom:var(--s3)}
.children .card{background:var(--surface-2);border-color:transparent}
.comments h3 .meta{font-weight:400;display:block;margin-top:2px}
.comment{padding:12px 0;border-bottom:1px solid var(--line);font-size:.9375rem;line-height:1.65}
.comment:last-child{border-bottom:0}
.comment b{font-weight:600;margin-right:.4em}
#comment-form{display:flex;flex-direction:column;gap:10px;margin-top:var(--s3);align-items:flex-start}
#comment-form textarea{width:100%}

/* floating continue bar — the only shadow on the site */
.continue-bar{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(72px + env(safe-area-inset-bottom));width:min(92vw,520px);
  display:flex;align-items:center;justify-content:center;gap:10px;background:var(--accent-fill);color:#fff;text-decoration:none;font-weight:600;font-size:1rem;
  padding:14px 22px;border-radius:var(--r-pill);box-shadow:var(--shadow-float);z-index:6;transition:background var(--t-fast),transform var(--t-fast) var(--ease)}
.continue-bar .dot{display:none}
.continue-bar:hover{background:var(--accent-deep);transform:translateX(-50%) translateY(-1px)}
.continue-bar small{font-weight:400;font-size:.8125rem;opacity:.85}
.continue-bar::after{content:"→"}
@media (prefers-color-scheme:dark){.continue-bar{color:#0F1312}}

/* ============================================================
   ANCHOR — where the thinking stopped. The one bold thing.
============================================================ */
.anchor-block{position:relative;margin:var(--s6) 0 var(--s5);padding:var(--s5) var(--s5) var(--s5);background:var(--accent-tint);border-radius:var(--r-card)}
.anchor-block .dot{display:block;background:var(--accent);width:12px;height:12px;margin-bottom:var(--s3)}
.anchor-block .dot.arrive{animation:anchor-arrive 900ms var(--ease) both}
@keyframes anchor-arrive{0%{transform:scale(.4);opacity:0}55%{transform:scale(1.15);opacity:1}75%{transform:scale(.94)}100%{transform:scale(1);opacity:1}}
.anchor-block .tag{font-size:.875rem;font-weight:500;color:var(--accent-ink);margin:0 0 var(--s2);letter-spacing:0;text-transform:none}
.anchor-block .tag.lonely{font-size:.875rem}
.anchor-block .quote{font-size:clamp(1.25rem,2.6vw,1.5rem);line-height:1.5;color:var(--ink);font-weight:600;letter-spacing:-.01em;margin:0 0 var(--s4);max-width:30em;text-wrap:pretty}
.anchor-block .continue-from-here{display:inline-flex;align-items:center;gap:8px;white-space:nowrap;color:#fff;background:var(--accent-fill);font-weight:600;text-decoration:none;min-height:44px;padding:0 20px;border-radius:var(--r-pill);transition:background var(--t-fast)}
.anchor-block .continue-from-here:hover{background:var(--accent-deep)}
.anchor-block .continue-from-here::after{content:"→"}
@media (prefers-color-scheme:dark){.anchor-block .continue-from-here{color:#0F1312}}
.anchor-edit-wrap{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--accent-tint-2)}
.anchor-edit-wrap>summary{cursor:pointer;color:var(--accent-ink);font-size:.8125rem;font-weight:500;list-style:none;min-height:32px;display:inline-flex;align-items:center}
.anchor-edit-wrap>summary::-webkit-details-marker{display:none}
.anchor-edit-wrap>summary::before{content:"✎ "}
.anchor-edit{margin-top:var(--s3);display:flex;flex-direction:column;gap:8px;max-width:32em}
.anchor-edit textarea{width:100%;font-size:1rem}
.anchor-edit .row{margin-top:0}

/* lineage: where this came from */
.lineage-from{margin:0 0 var(--s4);font-size:.875rem;color:var(--ink-2);background:var(--surface-2);border-radius:var(--r-input);padding:12px 14px}
.lineage-from ol{list-style:none;padding:0 0 0 18px;margin:6px 0 0;display:flex;flex-direction:column;gap:6px;position:relative}
.lineage-from ol::before{content:"";position:absolute;left:3px;top:8px;bottom:8px;width:2px;border-radius:2px;background:var(--line-strong)}
.lineage-from li{position:relative;line-height:1.5}
.lineage-from li::before{content:"";position:absolute;left:-18px;top:.5em;width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.lineage-from li:first-child::before{background:var(--accent)}
.lineage-from li a{text-decoration:none;color:var(--ink);font-weight:500}
.lineage-from li a:hover{color:var(--accent-deep)}
.lineage-from li.tomb{color:var(--ink-3);font-style:italic}

/* discover: segmented sort control */
.sort-tabs{display:inline-flex;gap:2px;margin:0 0 var(--s4);padding:3px;background:var(--surface-2);border-radius:var(--r-pill);max-width:100%;overflow-x:auto;scrollbar-width:none}
.sort-tabs::-webkit-scrollbar{display:none}
.sort-tabs a{color:var(--ink-2);text-decoration:none;font-size:.875rem;font-weight:500;padding:0 14px;min-height:34px;display:inline-flex;align-items:center;border-radius:var(--r-pill);white-space:nowrap;transition:color var(--t-fast),background var(--t-fast)}
.sort-tabs a:hover{color:var(--ink)}
.sort-tabs a[aria-current]{color:var(--ink);background:var(--surface);box-shadow:0 1px 2px rgba(21,30,28,.08)}

/* ============================================================
   CONTINUE — three steps in one white card
============================================================ */
.continue-page{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s5) var(--s5) var(--s6);margin-top:var(--s2)}
.continue-page .kicker{margin-bottom:var(--s3)}
.continue-page .anchor-block{margin-top:var(--s5)}
.continue-page .anchor-block .quote{margin-bottom:0}
.continue-page .where{font-size:1.0625rem;color:var(--ink);margin:var(--s5) 0 var(--s1);font-weight:600}
.continue-page .lede{margin-top:0;font-size:1rem}
.continue-page .oq{margin-top:var(--s4)}
.steps-c{counter-reset:s;list-style:none;padding:0;margin:var(--s5) 0 0}
.steps-c.js-collapsed{display:none}
.steps-c>li{position:relative;padding:0 0 var(--s6) 44px;counter-increment:s}
.steps-c>li::before{content:counter(s);position:absolute;left:0;top:-2px;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:.8125rem;font-weight:600;display:flex;align-items:center;justify-content:center;line-height:1}
.steps-c>li::after{content:"";position:absolute;left:13px;top:32px;bottom:8px;width:2px;border-radius:2px;background:var(--line)}
.steps-c>li:last-child::after{display:none}
.steps-c>li:last-child{padding-bottom:0}
.steps-c h3{font-size:1.0625rem;margin-bottom:6px}
.continue-form{display:grid;grid-template-columns:1fr;gap:0}
.go-box .meta{margin-top:12px}
.ctx-details{margin-top:12px}
.ctx-details summary{cursor:pointer;color:var(--ink-2);font-size:.875rem;min-height:32px;font-weight:500}
.ctx{font:12.5px/1.55 var(--font-mono);background:var(--surface-2);margin-top:8px;color:var(--ink-2);border-color:transparent}
.return-box textarea{margin:8px 0 12px}
.branch-hint{display:inline-flex;gap:8px;align-items:center;font-size:.8125rem;color:var(--ink-2);margin-top:8px}

/* which AI: chips */
.ai-pick{border:0;padding:0;margin:0 0 var(--s2);display:flex;flex-wrap:wrap;gap:8px}
.ai-pick legend{width:100%;padding:0;margin:0 0 8px;font-size:.875rem;font-weight:500;color:var(--ink-2)}
.ai-opt{position:relative;display:inline-flex;align-items:center;padding:0 14px;min-height:36px;border-radius:var(--r-pill);background:var(--surface-2);font-size:.9rem;font-weight:500;color:var(--ink-2);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.ai-opt input{position:absolute;opacity:0;width:1px;height:1px}
.ai-opt:hover{color:var(--ink);background:var(--surface-3)}
.ai-opt:has(input:checked){color:var(--accent-ink);background:var(--accent-tint)}
.ai-opt:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}

/* ============================================================
   PUBLISH — steps in one card
============================================================ */
.publish{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s5) var(--s5) var(--s6);margin-top:var(--s2)}
.publish h1{margin-bottom:6px}
.steps{list-style:none;padding:0;margin:var(--s4) 0 0;counter-reset:p}
.step{position:relative;padding:var(--s5) 0 var(--s5) 44px;border-top:1px solid var(--line);counter-increment:p}
.step::before{content:counter(p);position:absolute;left:0;top:calc(var(--s5) - 2px);width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);font-size:.8125rem;font-weight:600;display:flex;align-items:center;justify-content:center;line-height:1}
.step h2{font-size:1.0625rem;margin-bottom:4px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.range{display:flex;gap:10px;align-items:center;flex-wrap:wrap;font-size:.875rem;margin:10px 0;color:var(--ink-2)}
.range label{display:inline-flex;gap:6px;align-items:center;margin:0}
.range input{width:72px;padding:5px 10px;min-height:36px}
.vis{border:1px solid var(--line);border-radius:var(--r-input);padding:8px 16px 12px;margin:16px 0}
.vis legend{font-size:.875rem;font-weight:500;color:var(--ink-2);padding:0 6px}
.vis label{display:flex;gap:10px;align-items:center;margin:8px 0;color:var(--ink);min-height:32px;font-weight:400}
/* V17: public-visibility warning — shows whenever Public is selected, not only on scan flags */
.vis-warn{border:1px solid #D9A441;border-left-width:4px;border-radius:10px;background:#FDF6E7;
  padding:10px 12px;margin:10px 0 4px;font-size:.8125rem;line-height:1.55;color:#6B4E16;font-weight:500}
.vis-warn[hidden]{display:none}
.types{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.types label{display:inline-flex;align-items:center;gap:6px;margin:0;border-radius:var(--r-pill);padding:0 14px;font-size:.875rem;font-weight:500;color:var(--ink-2);cursor:pointer;min-height:36px;background:var(--surface-2);transition:background var(--t-fast),color var(--t-fast)}
.types label:hover{color:var(--ink);background:var(--surface-3)}
.types input{display:none}
.types label .dot{display:none}
.types label:has(input:checked){color:var(--accent-ink);background:var(--accent-tint)}

/* ============================================================
   PORTRAIT
============================================================ */
.portrait{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s5);margin:var(--s2) 0 var(--s4)}
.portrait .kicker{margin-bottom:var(--s2)}
.portrait h1{margin-bottom:var(--s1)}
.portrait .handle{color:var(--ink-2);font-size:.9rem;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.portrait .handle .btn{margin-left:auto;min-height:36px;padding:4px 14px;font-size:.875rem}
.stats{display:flex;gap:var(--s6);margin:var(--s5) 0;flex-wrap:wrap}
.stats div{display:flex;flex-direction:column}
.stats b{font-size:1.75rem;line-height:1.1;font-weight:600;letter-spacing:-.02em}
.stats span{font-size:.8125rem;color:var(--ink-2)}
.recent{border-top:1px solid var(--line);padding-top:var(--s4)}
.recent ul{list-style:none;padding:0 0 0 18px;margin:8px 0 0;position:relative}
.recent ul::before{content:"";position:absolute;left:3px;top:8px;bottom:8px;width:2px;border-radius:2px;background:var(--line)}
.recent li{position:relative;padding:4px 0;font-size:1rem;font-weight:500}
.recent li::before{content:"";position:absolute;left:-18px;top:.85em;width:8px;height:8px;border-radius:50%;background:var(--accent)}
.recent li a{text-decoration:none}
.recent li a:hover{color:var(--accent-deep)}

/* ============================================================
   AUTH — one narrow card
============================================================ */
.auth{max-width:440px;margin:var(--s4) auto 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s6) var(--s5)}
.auth h1{margin-bottom:var(--s2)}
#auth-form{display:flex;flex-direction:column}
#auth-form>.btn{margin-top:var(--s5);align-self:stretch}
.auth>.meta{margin-top:var(--s4)}

/* ============================================================
   V10.1 — THINKING POSITION
   The detail page is one path: a single 2px line on the left; the
   original question, every turn, and the Anchor all hang from it.
   The Anchor is the largest dot on that line, not a card beside it.
============================================================ */
.thought .byline .ai-note{color:var(--ink-3)}
.thought .byline .jump{margin-left:auto;color:var(--accent-deep);font-weight:500;font-size:.8125rem}
.thought .byline .jump:hover{text-decoration:underline;text-underline-offset:3px}

/* the path container: everything inside hangs from --path-x */
.path{position:relative;padding-left:26px;--path-x:5px;margin-top:var(--s2)}
.path::before{content:"";position:absolute;left:var(--path-x);top:14px;bottom:28px;width:2px;border-radius:2px;background:var(--line)}
.path .thread{padding-left:0;margin-top:0}
.path .thread::before{display:none}
.path .thread .msg .anchor{left:-36px}
.path .oq{position:relative;margin:0 0 var(--s5);padding:0 0 0 0;background:transparent;border-radius:0}
.path .oq::before{content:"";position:absolute;left:-26px;top:.55em;width:12px;height:12px;border-radius:50%;background:var(--surface);border:2px solid var(--accent)}
.path .oq .kicker{margin-bottom:2px}
.path .oq p:not(.kicker){font-size:1.0625rem;font-weight:500}
.path .timeline{margin:0 0 var(--s5)}
.msg.is-anchor::before{border-color:var(--accent);background:var(--accent)}

/* the Anchor node */
.path .anchor-block{margin:var(--s2) 0 0;padding:var(--s2) 0 0;background:transparent;border-radius:0;position:relative}
.path .anchor-block .node{position:absolute;left:-30px;top:12px;width:20px;height:20px;border-radius:50%;background:var(--surface);display:grid;place-items:center;box-shadow:0 0 0 2px var(--surface)}
.path .anchor-block .node .dot{width:16px;height:16px;margin:0;display:block}
.anchor-block .node .dot.arrive{animation:anchor-arrive 900ms var(--ease) both}
.anchor-block .tag{font-size:1.125rem;font-weight:600;color:var(--ink);margin:0 0 2px;letter-spacing:-.01em}
.anchor-block .point{font-size:.8125rem;color:var(--accent-deep);font-weight:500;margin:0 0 var(--s3)}
.anchor-block .quote{font-size:clamp(1.3rem,3vw,1.625rem);line-height:1.45;color:var(--ink);font-weight:600;letter-spacing:-.015em;margin:0 0 var(--s4);max-width:28em;text-wrap:pretty;padding:var(--s4) var(--s5);background:var(--accent-tint);border-radius:var(--r-card);border-top-left-radius:6px}
.anchor-cta{display:flex;gap:10px 16px;align-items:center;flex-wrap:wrap}
.anchor-cta .nobody,.anchor-cta .went{font-size:.875rem;color:var(--ink-2)}
.anchor-cta .went{color:var(--accent-deep);font-weight:500}
.anchor-block.lonely .anchor-cta .nobody{color:var(--ink-2)}
/* on the continue page the anchor is the opening, without the path line */
.continue-page .anchor-block .node{display:block;margin-bottom:var(--s3)}
.continue-page .anchor-block .node .dot{width:16px;height:16px;display:block}
.continue-page .anchor-block .point{display:none}
.continue-page .anchor-block .quote{margin-bottom:0}

/* where the thinking went: branches hang off the anchor, each is a smaller dot on a fork */
.branches{list-style:none;margin:var(--s5) 0 0;padding:0 0 0 22px;position:relative}
.branches::before{content:"";position:absolute;left:-21px;top:0;bottom:24px;width:2px;border-radius:2px;background:var(--line)}
.branch{position:relative;margin:0 0 var(--s4);padding:var(--s3) var(--s4);background:var(--surface-2);border-radius:var(--r-input)}
.branch::before{content:"";position:absolute;left:-42px;top:22px;width:42px;height:2px;background:var(--line)}
.branch .dot{position:absolute;left:-48px;top:17px;width:12px;height:12px;background:var(--accent);border:2px solid var(--surface);box-sizing:border-box}
.branch.mid .dot{background:var(--surface);border-color:var(--accent)}
.branch .b-title{display:block;font-weight:600;text-decoration:none;color:var(--ink);line-height:1.4}
.branch .b-title:hover{color:var(--accent-deep)}
.branch .b-quote{margin:4px 0 6px;color:var(--ink-2);font-size:.9375rem;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.branch .b-meta{margin:0;font-size:.8125rem;color:var(--ink-3);display:flex;gap:10px;flex-wrap:wrap}
.branch .b-meta a{color:var(--ink-2);text-decoration:none;font-weight:500}
.branch .b-meta a:hover{color:var(--accent-deep)}

/* came from an Anchor (continuations) */
.from-anchor{margin:0 0 var(--s5);padding:var(--s4) var(--s4) var(--s3);background:var(--surface-2);border-radius:var(--r-input);border-left:3px solid var(--accent)}
.from-anchor .from-label{margin:0 0 4px;font-size:.8125rem;color:var(--ink-2);display:inline-flex;gap:6px;align-items:center;font-weight:500}
.from-anchor .from-quote{margin:0 0 6px;font-weight:500;line-height:1.5}
.from-anchor .from-meta{margin:0;font-size:.8125rem;color:var(--ink-3)}
.from-anchor .from-meta a{color:var(--accent-deep);text-decoration:none;font-weight:500}
.from-anchor .from-meta a:hover{text-decoration:underline;text-underline-offset:3px}

/* the path so far (ancestors) */
.lineage-from li{display:grid;grid-template-columns:1fr;gap:1px}
.lineage-from li .stop{color:var(--ink-2);font-weight:400;font-size:.8125rem;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.lineage-from li .who{color:var(--ink-3);font-size:.75rem}
.lineage-from li.here .cur{font-weight:600;color:var(--ink)}
.lineage-from li.here::before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}

/* likes are a footnote now; comments fold away */
.actions .quiet-like{color:var(--ink-3);font-weight:400}
details.comments>summary{list-style:none;cursor:pointer;display:flex;flex-direction:column;gap:2px}
details.comments>summary::-webkit-details-marker{display:none}
details.comments>summary h3{display:inline-flex;gap:8px;align-items:baseline;white-space:nowrap}
details.comments>summary h3::after{content:"＋";color:var(--ink-3);font-weight:400;font-size:.9rem}
details.comments[open]>summary h3::after{content:"－"}
details.comments>summary>.meta{display:block}
.comments #comments{margin-top:var(--s3)}

/* continue: the handoff screen */
.handoff{padding-bottom:var(--s5);margin-bottom:var(--s5);border-bottom:1px solid var(--line)}
.handoff .path-note{margin:2px 0}
.handoff .begin{margin-top:var(--s4)}

/* /start: one thought, handed to you */
.start{padding:var(--s6) 0 var(--s7);text-align:center}
.start h1{font-size:clamp(1.6rem,4.6vw,2.25rem);letter-spacing:-.02em;margin-bottom:var(--s6)}
.start-anchor{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-card);padding:var(--s6) var(--s5);text-align:left;max-width:560px;margin:0 auto}
.start-anchor .dot{display:block;margin:0 0 var(--s4)}
.start-anchor .tag{margin:0 0 var(--s2);font-size:.9375rem;color:var(--ink-2);font-weight:500}
.start-anchor .quote{font-size:clamp(1.3rem,3.2vw,1.75rem);line-height:1.4;font-weight:600;letter-spacing:-.015em;margin:0 0 var(--s3);text-wrap:pretty}
.start-anchor .meta a{color:var(--ink-2);font-weight:400}
.start-anchor .ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:var(--s5)}
.start .another{margin-top:var(--s5)}

/* publish: leave an anchor */
.anchor-field{margin-top:var(--s3)}
.anchor-hint{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:var(--s4) 0 0;padding:10px 14px;background:var(--accent-tint);border-radius:var(--r-input);font-size:.875rem;color:var(--accent-ink);font-weight:500}
.anchor-hint .linkish{color:var(--accent-ink);font-weight:600}
.card-anchor{text-decoration:none}
.card-anchor:hover{color:var(--accent-deep)}

/* ============================================================
   V11 — THINKING PATH
   Turns are labelled by what they are, not by who said them.
   Human thinking leads; the AI's collision is folded and quiet.
============================================================ */
.node-label{display:inline-block;font-size:.75rem;font-weight:600;color:var(--accent-deep);letter-spacing:0;margin:0 0 4px;line-height:1.3}
.node-label.ai{color:var(--ink-3);font-weight:500}
.node-label.editable{cursor:pointer;border-bottom:1px dashed var(--accent-tint-2)}
.node-label.editable:hover{border-bottom-color:var(--accent)}
.node-pick{min-height:28px;padding:2px 30px 2px 8px;font-size:.8rem;border-radius:var(--r-pill);margin-bottom:4px}
.msg.nt-contradiction .node-label,.msg.nt-turning_point .node-label,.msg.nt-insight .node-label{color:var(--ink);background:var(--accent-tint);padding:2px 10px;border-radius:var(--r-pill);margin-bottom:6px}
.msg.nt-question .node-label{color:var(--accent-ink)}
.msg.human.nt-turning_point::before,.msg.human.nt-contradiction::before,.msg.human.nt-insight::before{box-shadow:0 0 0 4px var(--accent-tint)}
.msg.human.nt-turning_point p.body,.msg.human.nt-insight p.body{font-weight:600}
.branch-mark{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;color:var(--ink-2);margin:0 0 4px 10px;font-weight:500}
.msg.is-branch::before{background:var(--surface);border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.msg.assistant.long .body{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.msg.assistant.long.open .body{display:block;-webkit-line-clamp:unset}
.msg.assistant .expand{display:inline-block;margin-top:4px;font-size:.8125rem;text-decoration:none;color:var(--accent-deep)}
.timeline li .nl{display:inline-block;font-size:.7rem;font-weight:600;color:var(--accent-deep);margin-right:8px}
.this-is-where{margin:var(--s3) 0 0}

/* lineage in words (graph page) */
.lineage-tree{list-style:none;margin:var(--s5) 0 var(--s4);padding:0 0 0 22px;position:relative}
.lineage-tree::before{content:"";position:absolute;left:5px;top:10px;bottom:16px;width:2px;border-radius:2px;background:var(--line)}
.lineage-tree li{position:relative;margin:0 0 var(--s4)}
.lineage-tree li::before{content:"";position:absolute;left:-22px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--ink);border:2px solid var(--surface);box-sizing:border-box}
.lineage-tree li.current::before{background:var(--accent);box-shadow:0 0 0 3px var(--accent-tint)}
.lineage-tree li.deleted::before,.lineage-tree li.not_public::before,.lineage-tree li.unavailable::before{background:var(--surface);border-color:var(--ink-3);border-style:dashed}
.lineage-tree .lt-title{display:block;font-weight:600;text-decoration:none;color:var(--ink)}
.lineage-tree .lt-title:hover{color:var(--accent-deep)}
.lineage-tree .lt-stop{margin:2px 0;color:var(--ink-2);font-size:.9375rem;display:flex;gap:6px;align-items:baseline}
.lineage-tree .lt-stop .dot{position:relative;top:-1px;flex:none}
.lineage-tree .lt-lab{color:var(--ink-3);font-size:.8125rem;flex:none}
.lineage-tree .lt-meta{margin:0;font-size:.8125rem;color:var(--ink-3)}
.lineage-tree .lineage-tree{margin-top:var(--s3)}

/* V11.1 — publish editor: name each step, choose the stop */
.thread.edit .step-bar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:4px 0 2px}
.thread.edit .stop-pick{display:inline-flex;gap:6px;align-items:center;margin:0;font-size:.8125rem;color:var(--ink-2);cursor:pointer;min-height:28px}
.thread.edit .msg.is-stop{background:var(--accent-tint);border-radius:var(--r-input);padding:8px 10px;margin-left:-10px}
.thread.edit .msg.is-stop .stop-pick{color:var(--accent-ink);font-weight:600}
.thread.edit .msg.is-stop::before{background:var(--accent);border-color:var(--accent)}
/* lineage: the tree of anchors is the map; quotes are the nodes */
.lineage-tree{margin-top:var(--s6)}
.lineage-tree .lt-stop{font-size:1.0625rem;color:var(--ink);font-weight:500;line-height:1.5}
.lineage-tree .lt-title{font-size:.875rem;color:var(--ink-2);font-weight:500}
.lineage-tree li.current .lt-stop{color:var(--accent-ink)}
.map-details{margin-top:var(--s5)}
.map-details>summary{list-style:none;cursor:pointer;display:inline-flex}
.map-details>summary::-webkit-details-marker{display:none}

/* V15.1 §8 — the post-Anchor screen */
.anchored{max-width:560px;margin:0 auto;padding:var(--s7) var(--s4);text-align:center}
.anchored .anchor-quote{font-size:1.25rem;line-height:1.6;color:var(--ink);margin:var(--s4) 0;font-style:normal;border:0;padding:0}
.anchored .dot{margin:var(--s2) auto var(--s4)}
.anc-ctas{display:flex;gap:var(--s3);justify-content:center;margin-top:var(--s5);flex-wrap:wrap}

/* V15.1 §3-§10 — the Share Page / Thinking Entry */
.share-entry{max-width:560px;margin:0 auto;padding:var(--s7) var(--s4);text-align:center}
.share-entry .share-question{font-size:clamp(1.4rem,3.6vw,2rem);line-height:1.4;letter-spacing:-.01em;margin:var(--s3) 0}
.share-entry .share-label{font-size:.8125rem;color:var(--ink-3);margin:var(--s4) 0 var(--s1);text-transform:none}
.share-entry .share-before,.share-entry .share-after,.share-entry .share-text{font-size:1.0625rem;line-height:1.7;color:var(--ink);margin:0}
.share-entry .dot{margin:var(--s5) auto var(--s3)}
.share-entry .stopped-here{color:var(--ink-2);margin:0 0 var(--s5)}
.share-entry .btn.big{min-width:220px}
.share-entry .brand-foot{margin-top:var(--s6);color:var(--ink-3);font-size:.8125rem}

/* V15.2 Universal Ignition — the free-typed trigger box */
.ig-h1-sub{max-width:520px;margin:0 auto var(--s5);color:var(--ink-2);font-size:.9375rem;line-height:1.6}
.ig-thesis{max-width:560px;margin:var(--s3) auto 0;color:var(--ink-2);font-size:.9375rem;letter-spacing:.04em}
.ignite-form{max-width:560px;margin:0 auto var(--s2);display:flex;flex-direction:column;gap:var(--s3)}
.ignite-form textarea{width:100%;resize:vertical;font:inherit;font-size:1.0625rem;padding:var(--s4);
  border:1px solid var(--line);border-radius:var(--r-input);background:var(--surface);color:var(--ink)}
.ignite-form textarea:focus{outline:none;border-color:var(--accent)}
.ignite-form .btn{align-self:center;min-width:160px}
.ig-cues{max-width:560px;margin:0 auto var(--s6);color:var(--ink-3);font-size:.8125rem;line-height:1.6}

/* V15.2 §12-13 — the Resonance layer */
.resonance{max-width:560px;margin:0 auto;padding:var(--s7) var(--s4);text-align:center}
.resonance-quote{font-size:1.15rem;line-height:1.6;color:var(--ink);margin:var(--s3) 0 var(--s5);border:0;padding:0}
.resonance h1{font-size:1.4rem;margin:0 0 var(--s5)}
.resonance-chips{display:flex;flex-wrap:wrap;gap:var(--s2);justify-content:center;margin:0 0 var(--s5)}
.chip{display:inline-block;padding:var(--s2) var(--s4);border:1px solid var(--line);border-radius:var(--r-pill);
  background:var(--surface);color:var(--ink-2);text-decoration:none;font-size:.9375rem;cursor:pointer}
.chip:hover{border-color:var(--accent-tint-2);color:var(--ink)}
.own-form{display:flex;flex-direction:column;gap:var(--s3);max-width:420px;margin:0 auto var(--s5)}
.own-form textarea{font:inherit;padding:var(--s3);border:1px solid var(--line);border-radius:var(--r-input)}
.skip-link{display:inline-block;margin-top:var(--s2)}
