/* Landing — page-specific styles. Loads on top of vivian-chrome.css. */

/* ── HERO ────────────────────────────────────────────── */
.hero { padding:88px 32px 100px; }
.hero .grid { display:grid; grid-template-columns:0.95fr 1.05fr; gap:80px; align-items:center; max-width:1440px; margin:0 auto; }
.hero h1 { font-family:var(--font-headline); font-weight:600; font-size:clamp(48px,5.6vw,84px); line-height:0.98; letter-spacing:-0.03em; color:var(--ink); margin:0 0 28px; text-wrap:balance; }
.hero h1 em { font-style:italic; font-weight:400; color:var(--gold); }
.hero .lead { font-family:var(--font-headline); font-style:italic; font-weight:300; font-size:clamp(18px,1.5vw,23px); line-height:1.45; color:var(--gold); max-width:30ch; margin:0 0 36px; }
.hero .body-lead { font-size:16px; line-height:1.6; color:var(--ink-soft); max-width:48ch; margin:0 0 36px; }
.hero .body-lead b { color:var(--ink); font-weight:700; }
.hero .ctas { display:flex; gap:14px; flex-wrap:wrap; align-items:center; }
.hero .belt { display:flex; gap:32px; margin-top:48px; flex-wrap:wrap; }
.hero .belt .b { display:flex; flex-direction:column; gap:4px; }
.hero .belt .b .v { font-family:var(--font-headline); font-weight:700; font-size:28px; color:var(--ink); letter-spacing:-0.02em; line-height:1; }
.hero .belt .b .v em { font-style:italic; font-weight:400; color:var(--gold); }
.hero .belt .b .l { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); }

/* RETSKILDE detail mock */
.source { background:var(--paper); border:1px solid var(--rule); box-shadow:0 36px 80px -48px rgba(26,20,16,0.35),0 2px 0 var(--rule-soft); position:relative; display:grid; grid-template-columns:1.65fr 1fr; }
.source .src-head { grid-column:1 / -1; display:flex; align-items:center; gap:14px; padding:14px 20px; border-bottom:1px solid var(--rule); background:var(--paper); }
.source .src-head .glyph { width:32px; height:32px; background:var(--ink); color:var(--gold-pale); display:flex; align-items:center; justify-content:center; font-family:var(--font-headline); font-style:italic; font-weight:700; font-size:15px; }
.source .src-head .meta { display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.source .src-head .crumb { display:flex; align-items:center; gap:10px; font-size:10.5px; font-weight:700; letter-spacing:0.16em; color:var(--ink-muted); text-transform:uppercase; flex-wrap:wrap; }
.source .src-head .crumb b { color:var(--ink); font-weight:700; }
.source .src-head .crumb .dot { width:3px; height:3px; background:var(--ink-muted); border-radius:9999px; }
.source .src-head .ttl { font-family:var(--font-headline); font-weight:600; font-size:14px; color:var(--ink); letter-spacing:-0.005em; line-height:1.2; }
.source .src-head .pill { font-family:var(--font-body); font-size:9.5px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--paper); background:var(--gold); padding:5px 9px; white-space:nowrap; }
.source .src-head .pos { font-family:var(--font-body); font-size:10px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink); background:transparent; padding:6px 10px; border:1px solid var(--rule); display:inline-flex; align-items:center; gap:6px; }
.source .src-head .pos .ico { font-size:13px; }
.source .src-head .x { width:30px; height:30px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--rule); color:var(--ink-soft); cursor:pointer; }
.source .src-head .x .ico { font-size:16px; }

.source .src-body { padding:32px 36px 28px; border-right:1px solid var(--rule); min-width:0; }
.source .src-body .law { font-size:10.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); margin-bottom:8px; }
.source .src-body h3 { font-family:var(--font-headline); font-weight:600; font-size:34px; line-height:1.05; color:var(--ink); letter-spacing:-0.018em; margin:0 0 12px; }
.source .src-body .cite { font-family:var(--font-body); font-size:12px; color:var(--ink-soft); letter-spacing:0; margin-bottom:24px; }
.source .src-body .stk-lbl { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold); margin:18px 0 8px; }
.source .src-body p.stk { font-family:var(--font-headline); font-weight:400; font-size:15.5px; line-height:1.55; color:var(--ink); margin:0 0 10px; }
.source .src-body .stk-mark { position:relative; background:rgba(233,193,118,0.16); padding:10px 14px; border-left:3px solid var(--gold-pale); margin:0 0 10px; }
.source .src-body .stk-mark .badge { position:absolute; top:8px; right:8px; width:22px; height:22px; border:1px solid var(--gold); color:var(--gold); font-family:var(--font-body); font-size:11px; font-weight:700; border-radius:9999px; display:flex; align-items:center; justify-content:center; }
.source .src-body hr { border:0; border-top:1px solid var(--rule); margin:24px 0; }

.source .src-rail { padding:24px; background:var(--paper); display:flex; flex-direction:column; gap:22px; }
.source .src-rail .blk .lbl { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:8px; }
.source .src-rail .blk .lbl b { color:var(--ink); font-weight:700; }
.source .src-rail .fit { display:flex; align-items:baseline; gap:10px; margin-bottom:8px; }
.source .src-rail .fit .pct { font-family:var(--font-headline); font-weight:600; font-size:54px; line-height:0.9; color:var(--ink); letter-spacing:-0.04em; font-variant-numeric:tabular-nums; }
.source .src-rail .fit .pct sup { font-family:var(--font-body); font-size:15px; font-weight:700; color:var(--ink-muted); vertical-align:18px; margin-left:2px; }
.source .src-rail .fit .lab { font-family:var(--font-headline); font-style:italic; font-size:15px; color:var(--gold); font-weight:400; }
.source .src-rail .blk p { font-size:13px; line-height:1.5; color:var(--ink); margin:0; }
.source .src-rail .blk p b { color:var(--ink); font-weight:700; }
.source .src-rail .card { background:var(--cream); border:1px solid var(--rule); padding:14px 16px; }
.source .src-rail .find { display:grid; grid-template-columns:26px 1fr; gap:12px; align-items:flex-start; }
.source .src-rail .find .n { width:22px; height:22px; border:1px solid var(--rule); font-family:var(--font-body); font-size:11px; font-weight:700; display:flex; align-items:center; justify-content:center; color:var(--ink); }
.source .src-rail .find h6 { font-family:var(--font-body); font-weight:700; font-size:13px; margin:0 0 4px; color:var(--ink); }
.source .src-rail .find p { font-size:12px; line-height:1.5; color:var(--ink-soft); margin:0; }
.source .src-rail .rel-row { display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:baseline; padding:8px 0; border-bottom:1px dashed var(--rule); }
.source .src-rail .rel-row:last-child { border-bottom:0; }
.source .src-rail .rel-row .ico { font-size:14px; color:var(--gold); margin-top:1px; }
.source .src-rail .rel-row .ref { font-family:var(--font-body); font-size:12px; font-weight:700; color:var(--ink); letter-spacing:0; }
.source .src-rail .rel-row .ref small { font-weight:400; color:var(--ink-soft); margin-left:6px; }

.source .src-foot { grid-column:1 / -1; display:flex; align-items:center; justify-content:space-between; padding:14px 20px; border-top:1px solid var(--rule); background:var(--paper); gap:12px; flex-wrap:wrap; }
.source .src-foot .esc { display:inline-flex; align-items:center; gap:8px; font-size:11px; color:var(--ink-muted); letter-spacing:0.04em; }
.source .src-foot .esc kbd { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:10px; background:var(--cream); border:1px solid var(--rule); padding:2px 6px; color:var(--ink); }
.source .src-foot .acts { display:flex; gap:8px; flex-wrap:wrap; }
.source .src-foot .acts .a { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-size:11.5px; font-weight:700; letter-spacing:0.04em; padding:9px 14px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); }
.source .src-foot .acts .a.dark { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.source .src-foot .acts .a.dark .ico { color:var(--gold-pale); }
.source .src-foot .acts .a .ico { font-size:14px; }

.hero .stamp { position:absolute; top:-12px; right:-12px; background:var(--ink); color:var(--gold-pale); padding:7px 13px; font-family:var(--font-body); font-size:9.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; display:flex; align-items:center; gap:8px; z-index:3; }
.hero .stamp::before { content:''; width:6px; height:6px; background:var(--green); border-radius:9999px; box-shadow:0 0 0 3px rgba(61,106,58,0.3); }

/* ── PROOF STRIP ─────────────────────────────────────── */
.proof { background:var(--ink); color:var(--paper); padding:64px 32px; }
.proof .row { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1.5fr 1fr; gap:64px; align-items:center; }
.proof blockquote { margin:0; font-family:var(--font-headline); font-style:italic; font-weight:300; font-size:clamp(20px,1.6vw,26px); line-height:1.4; color:var(--paper); }
.proof blockquote::before { content:'\201C'; display:block; font-size:48px; line-height:0.5; color:var(--gold-pale); margin-bottom:18px; font-style:normal; }
.proof blockquote cite { display:block; margin-top:18px; font-family:var(--font-body); font-style:normal; font-size:10.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-pale); }
.proof .trust { display:flex; flex-direction:column; gap:0; }
.proof .trust .t { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:flex-start; padding:14px 0; border-top:1px solid rgba(255,255,255,0.10); }
.proof .trust .t:first-child { border-top:0; padding-top:0; }
.proof .trust .t:last-child { padding-bottom:0; }
.proof .trust .ico { font-size:20px; margin-top:2px; color:var(--gold-pale); }
.proof .trust b { display:block; font-family:var(--font-body); font-weight:700; font-size:13px; color:var(--paper); letter-spacing:0.04em; }
.proof .trust span.note { display:block; font-size:11.5px; color:rgba(251,247,236,0.66); margin-top:3px; letter-spacing:0; }

/* ── RETSKILDER feature trio ────────────────────────── */
.tri { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--rule); }
.tri .item { background:var(--paper); padding:32px 28px; }
.tri .rn { display:block; font-family:var(--font-headline); font-style:italic; font-weight:400; font-size:32px; color:var(--gold); line-height:0.85; margin-bottom:14px; letter-spacing:-0.02em; }
.tri h4 { font-family:var(--font-headline); font-weight:600; font-size:20px; margin:0 0 10px; letter-spacing:-0.01em; color:var(--ink); }
.tri p { font-size:13.5px; line-height:1.6; color:var(--ink-soft); margin:0; }

/* ── PLAN (task list mock) ──────────────────────────── */
.plan .top { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:flex-end; margin:0 auto 28px; max-width:1280px; }
.plan .top h2 { font-family:var(--font-headline); font-weight:600; font-size:clamp(36px,4.2vw,56px); line-height:1.02; letter-spacing:-0.025em; color:var(--ink); margin:0; max-width:18ch; text-wrap:balance; }
.plan .top h2 em { font-style:italic; font-weight:400; color:var(--gold); }
.plan .top .meta { text-align:right; }
.plan .top .meta .count { font-family:var(--font-headline); font-weight:600; font-size:36px; color:var(--ink); letter-spacing:-0.02em; }
.plan .top .meta .lab { font-size:10.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); }
.plan .lede { font-family:var(--font-headline); font-style:italic; font-weight:300; font-size:19px; line-height:1.45; color:var(--gold); max-width:54ch; margin:18px 0 36px; }

.plan-grp { max-width:1280px; margin:0 auto; }
.plan-grp .grp-head { display:flex; align-items:baseline; justify-content:space-between; padding:24px 4px 14px; }
.plan-grp .grp-head .h { font-family:var(--font-headline); font-style:italic; font-weight:400; font-size:18px; color:var(--gold); letter-spacing:-0.005em; }
.plan-grp .grp-head .c { font-size:10.5px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); }
.task { display:grid; grid-template-columns:auto 1fr auto; gap:20px; align-items:center; padding:20px 22px; background:var(--paper); border:1px solid var(--rule); margin-bottom:10px; position:relative; }
.task::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--gold-pale); }
.task.red::before { background:var(--red); }
.task .check { width:22px; height:22px; border:1.5px solid var(--rule); background:var(--paper); cursor:pointer; }
.task .body h4 { font-family:var(--font-headline); font-weight:600; font-size:19px; color:var(--ink); margin:0 0 6px; letter-spacing:-0.005em; line-height:1.25; }
.task .body p { font-size:13.5px; line-height:1.55; color:var(--ink-soft); margin:0 0 10px; max-width:78ch; }
.task .body .row { display:flex; gap:18px; flex-wrap:wrap; font-size:11px; color:var(--ink-muted); font-weight:600; letter-spacing:0.02em; align-items:center; }
.task .body .row .m { display:inline-flex; align-items:center; gap:6px; }
.task .body .row .m .ico { font-size:13px; color:var(--gold); }
.task .body .row .m b { color:var(--ink); font-weight:700; }
.task .body .row .m.sent { background:var(--gold-bg); color:var(--ink); padding:3px 8px; font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11px; letter-spacing:0; border:1px dashed var(--gold); }
.task .act { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-size:11.5px; font-weight:700; letter-spacing:0.04em; padding:10px 16px; border:1px solid var(--ink); background:var(--paper); color:var(--ink); }
.task .act.gold { background:var(--gold-pale); border-color:var(--gold-pale); color:var(--ink); }
.task .act .ico { font-size:14px; }

/* ── PRÆCEDENS MATCH ─────────────────────────────────── */
.match .top { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:flex-start; margin:0 auto 24px; max-width:1280px; }
.match .top h2 { font-family:var(--font-headline); font-weight:600; font-size:clamp(36px,4.2vw,56px); line-height:1.02; letter-spacing:-0.025em; color:var(--ink); margin:0; max-width:14ch; text-wrap:balance; }
.match .top h2 em { font-style:italic; font-weight:400; color:var(--gold); }
.match .top .summary { display:flex; gap:32px; justify-content:flex-end; text-align:right; }
.match .top .summary .s { display:flex; flex-direction:column; gap:4px; align-items:flex-end; }
.match .top .summary .s .v { font-family:var(--font-headline); font-weight:600; font-size:32px; color:var(--ink); letter-spacing:-0.02em; line-height:1; }
.match .top .summary .s.r .v { color:var(--red); }
.match .top .summary .s.b .v { color:var(--gold); }
.match .top .summary .s .l { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); }
.match .lede { font-family:var(--font-headline); font-style:italic; font-weight:300; font-size:19px; line-height:1.45; color:var(--gold); max-width:54ch; margin:18px 0 32px; }

.match .filters { max-width:1280px; margin:0 auto 18px; display:flex; align-items:center; gap:8px; justify-content:space-between; flex-wrap:wrap; }
.match .filters .tabs { display:flex; gap:8px; flex-wrap:wrap; }
.match .filters .tab { font-family:var(--font-body); font-size:11.5px; font-weight:700; letter-spacing:0.06em; text-transform:uppercase; padding:9px 16px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); }
.match .filters .tab.active { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.match .filters .upd { display:inline-flex; align-items:center; gap:8px; font-size:11px; color:var(--ink-muted); letter-spacing:0.04em; }
.match .filters .upd .ico { font-size:14px; color:var(--gold); }

.case-card { max-width:1280px; margin:0 auto 10px; background:var(--paper); border:1px solid var(--rule); padding:24px 28px; position:relative; }
.case-card::before { content:''; position:absolute; left:0; top:0; bottom:0; width:3px; background:var(--green); }
.case-card.against::before { background:var(--red); }
.case-card.mixed::before { background:var(--gold-pale); }
.case-card .hd { display:grid; grid-template-columns:auto 1fr auto auto; gap:24px; align-items:center; }
.case-card .ring { width:78px; height:78px; border:2px solid var(--green); color:var(--ink); font-family:var(--font-headline); font-weight:600; font-size:22px; letter-spacing:-0.02em; border-radius:9999px; display:flex; align-items:center; justify-content:center; font-variant-numeric:tabular-nums; background:rgba(61,106,58,0.06); }
.case-card.against .ring { border-color:var(--red); background:rgba(156,58,46,0.06); }
.case-card.mixed .ring { border-color:var(--gold); background:rgba(167,133,65,0.08); }
.case-card .info { min-width:0; }
.case-card .info .meta { display:flex; align-items:center; gap:10px; font-size:11px; font-weight:700; letter-spacing:0.16em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:8px; flex-wrap:wrap; }
.case-card .info .meta b { color:var(--ink); font-weight:700; }
.case-card .info .meta .dot { width:3px; height:3px; background:var(--ink-muted); border-radius:9999px; }
.case-card .info .meta .pill { font-family:var(--font-body); font-size:9.5px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--paper); background:var(--gold); padding:4px 8px; }
.case-card .info h4 { font-family:var(--font-headline); font-weight:600; font-size:22px; line-height:1.2; color:var(--ink); margin:0; letter-spacing:-0.012em; }
.case-card .info h4 em { font-style:italic; font-weight:400; color:var(--gold); }
.case-card .stance { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-size:11.5px; font-weight:700; letter-spacing:0.04em; padding:8px 14px; border:1px solid var(--green); color:var(--green); background:rgba(61,106,58,0.05); }
.case-card .stance.against { border-color:var(--red); color:var(--red); background:rgba(156,58,46,0.05); }
.case-card .stance.mixed { border-color:var(--gold); color:var(--gold); background:rgba(167,133,65,0.06); }
.case-card .stance .ico { font-size:14px; }
.case-card .toggle { width:34px; height:34px; border:1px solid var(--rule); background:transparent; display:flex; align-items:center; justify-content:center; color:var(--ink-soft); cursor:pointer; }

.case-card .detail { display:grid; grid-template-columns:1fr 1fr; gap:36px; margin-top:22px; padding-top:22px; border-top:1px solid var(--rule); }
.case-card .detail .col .l { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); margin-bottom:8px; }
.case-card .detail .col p { font-size:13.5px; line-height:1.55; color:var(--ink); margin:0; }
.case-card .usage { margin-top:18px; padding:16px 18px; background:var(--cream-dim); border:1px solid var(--rule); }
.case-card .usage .l { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.case-card .usage .l .ico { font-size:14px; color:var(--gold); }
.case-card .usage p { font-size:13.5px; line-height:1.55; color:var(--ink); margin:0; }
.case-card .usage p b { font-weight:700; }
.case-card .actions { margin-top:18px; display:flex; gap:10px; flex-wrap:wrap; }
.case-card .actions .a { display:inline-flex; align-items:center; gap:8px; font-family:var(--font-body); font-size:11.5px; font-weight:700; letter-spacing:0.04em; padding:10px 16px; border:1px solid var(--rule); background:var(--paper); color:var(--ink); }
.case-card .actions .a .ico { font-size:14px; color:var(--gold); }
.case-card .actions .a.dark { background:var(--ink); color:var(--paper); border-color:var(--ink); }
.case-card .actions .a.dark .ico { color:var(--gold-pale); }

/* ── RETSUDVIKLING (timeline drift) ─────────────────── */
.drift .top { display:grid; grid-template-columns:1fr auto; gap:24px; align-items:flex-start; max-width:1280px; margin:0 auto 24px; }
.drift .top h2 { font-family:var(--font-headline); font-weight:600; font-size:clamp(36px,4.2vw,56px); line-height:1.02; letter-spacing:-0.025em; color:var(--ink); margin:0; max-width:16ch; text-wrap:balance; }
.drift .top h2 em { font-style:italic; font-weight:400; color:var(--gold); }
.drift .top .summary { display:flex; gap:32px; align-items:flex-start; }
.drift .top .summary .s { text-align:right; }
.drift .top .summary .s .v { font-family:var(--font-headline); font-weight:600; font-size:30px; color:var(--ink); line-height:1; letter-spacing:-0.02em; }
.drift .top .summary .s.r .v { color:var(--red); }
.drift .top .summary .s .l { font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--ink-muted); margin-top:6px; }
.drift .lede { font-family:var(--font-headline); font-style:italic; font-weight:300; font-size:19px; line-height:1.45; color:var(--gold); max-width:60ch; margin:18px 0 32px; }

.principle { max-width:1280px; margin:0 auto 12px; background:var(--paper); border:1px solid var(--rule); padding:24px 28px 28px; }
.principle .hd { display:flex; align-items:center; gap:14px; margin-bottom:6px; flex-wrap:wrap; }
.principle .pill { font-family:var(--font-body); font-size:9.5px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; padding:6px 10px; border:1px solid var(--red); color:var(--red); background:rgba(156,58,46,0.06); }
.principle.stable .pill { border-color:var(--green); color:var(--green); background:rgba(61,106,58,0.06); }
.principle.broad .pill { border-color:var(--gold); color:var(--gold); background:rgba(167,133,65,0.08); }
.principle .stance { display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; letter-spacing:0.04em; color:var(--green); }
.principle.against .stance { color:var(--red); }
.principle.neutral .stance { color:var(--ink-muted); }
.principle .stance .ico { font-size:14px; }
.principle h4 { font-family:var(--font-headline); font-weight:600; font-size:24px; letter-spacing:-0.014em; color:var(--ink); margin:6px 0 8px; }
.principle h4 em { font-style:italic; color:var(--gold); font-weight:400; }
.principle p { font-size:14px; line-height:1.55; color:var(--ink-soft); max-width:80ch; margin:0; }

.principle .tl { margin-top:24px; position:relative; display:grid; align-items:end; }
.principle .tl::before { content:''; position:absolute; left:1.5%; right:1.5%; top:18px; height:1px; background:var(--rule); }
.principle .tl .nodes { display:flex; justify-content:space-between; align-items:flex-start; position:relative; }
.principle .tl .nd { flex:1; display:flex; flex-direction:column; align-items:center; gap:8px; position:relative; }
.principle .tl .nd .y { font-family:var(--font-body); font-size:11px; font-weight:700; color:var(--ink-muted); letter-spacing:0.04em; font-variant-numeric:tabular-nums; }
.principle .tl .nd .dot { width:14px; height:14px; border-radius:9999px; background:var(--paper); border:1.5px solid var(--ink-muted); position:relative; z-index:2; }
.principle .tl .nd.green .dot { border-color:var(--green); background:rgba(61,106,58,0.15); }
.principle .tl .nd.red .dot { border-color:var(--red); background:var(--red); }
.principle .tl .nd.gold .dot { border-color:var(--gold); background:var(--gold); }
.principle .tl .nd.muted .dot { border-color:var(--ink-muted); background:var(--paper); }
.principle .tl .nd .ref { font-family:var(--font-body); font-size:11px; font-weight:700; color:var(--ink); margin-top:4px; font-variant-numeric:tabular-nums; }
.principle .tl .nd .scope { font-size:9.5px; font-weight:700; letter-spacing:0.18em; text-transform:uppercase; color:var(--ink-muted); }
.principle .tl .nd.red .scope { color:var(--red); }
.principle .tl .nd.gold .scope { color:var(--gold); }
.principle .tl .nd.green .scope { color:var(--green); }

/* ── ANONYMISERING ──────────────────────────────────── */
.anon { background:var(--ink); color:var(--paper); padding:120px 32px; }
.anon .sec-head h2 { color:var(--paper); }
.anon .sec-head h2 em { color:var(--gold-pale); }
.anon .sec-head .sub { color:var(--gold-pale); }
.anon .sec-head .num { color:var(--gold-pale); opacity:0.35; }
.anon .row { max-width:1280px; margin:0 auto; display:grid; grid-template-columns:1fr 1.1fr; gap:60px; align-items:center; }
.anon h3 { font-family:var(--font-headline); font-weight:600; font-size:32px; line-height:1.1; color:var(--paper); margin:0 0 18px; letter-spacing:-0.018em; }
.anon h3 em { font-style:italic; font-weight:400; color:var(--gold-pale); }
.anon .body { font-size:16px; line-height:1.65; color:rgba(251,247,236,0.78); max-width:48ch; margin:0 0 24px; }
.anon .body b { color:var(--paper); font-weight:700; }
.anon .pii { display:flex; flex-wrap:wrap; gap:6px; margin-top:12px; }
.anon .pii span { font-family:var(--font-body); font-size:10.5px; font-weight:700; letter-spacing:0.1em; color:var(--gold-pale); padding:7px 12px; border:1px solid rgba(233,193,118,0.32); }

.anon .pipe { background:rgba(255,255,255,0.03); border:1px solid rgba(255,255,255,0.10); position:relative; }
.anon .pipe::before { content:''; position:absolute; left:-1px; top:-1px; bottom:-1px; width:3px; background:var(--gold-pale); }
.anon .stage { padding:22px 26px; border-bottom:1px solid rgba(255,255,255,0.08); }
.anon .stage:last-child { border-bottom:0; }
.anon .stage .lab { font-family:var(--font-body); font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:rgba(251,247,236,0.45); margin-bottom:8px; display:flex; align-items:center; justify-content:space-between; }
.anon .stage .lab .n { font-family:var(--font-headline); font-style:italic; font-weight:400; color:var(--gold-pale); }
.anon .stage .h { font-family:var(--font-headline); font-weight:600; font-size:17px; color:var(--paper); margin:0 0 10px; letter-spacing:-0.005em; }
.anon .stage .txt { font-family:ui-monospace,SFMono-Regular,Menlo,monospace; font-size:11.5px; line-height:1.65; color:rgba(251,247,236,0.85); background:rgba(255,255,255,0.04); padding:11px 13px; border-left:2px solid rgba(255,255,255,0.18); }
.anon .stage .txt mark { background:rgba(233,193,118,0.28); color:var(--gold-pale); padding:0 3px; }
.anon .stage .txt .red { background:rgba(194,54,46,0.16); color:#f5a39d; padding:0 3px; }
.anon .bdry { padding:12px 26px; background:linear-gradient(90deg,rgba(233,193,118,0.05),transparent); border-top:1px dashed rgba(233,193,118,0.4); border-bottom:1px dashed rgba(233,193,118,0.4); font-family:var(--font-body); font-size:10px; font-weight:700; letter-spacing:0.22em; text-transform:uppercase; color:var(--gold-pale); display:flex; align-items:center; justify-content:space-between; }
.anon .bdry .ico { font-size:15px; }

/* ── responsive ─────────────────────────────────────── */
@media (max-width:1100px) {
  .hero .grid, .anon .row, .match .top, .drift .top, .plan .top { grid-template-columns:1fr; gap:36px; }
  .proof .row { grid-template-columns:1fr 1fr; gap:32px; }
  .source { grid-template-columns:1fr; }
  .source .src-body { border-right:0; border-bottom:1px solid var(--rule); }
  .match .top .summary, .drift .top .summary { justify-content:flex-start; }
  .case-card .hd { grid-template-columns:auto 1fr; grid-template-rows:auto auto; }
  .case-card .hd .stance, .case-card .hd .toggle { grid-column:span 2; justify-self:flex-start; }
  .tri { grid-template-columns:1fr; }
}
@media (max-width:680px) {
  .hero { padding:48px 20px 72px; }
  .hero h1 { font-size:clamp(40px,9.5vw,56px); }
  .hero .lead { font-size:18px; }
  .hero .ctas { flex-direction:column; align-items:stretch; }
  .proof { padding:40px 20px; }
  .proof .row { grid-template-columns:1fr; gap:24px; }
  .case-card, .task { padding:20px 18px; }
  .case-card .detail { grid-template-columns:1fr; gap:20px; }
  .case-card .hd { grid-template-columns:auto 1fr; }
  .case-card .ring { width:60px; height:60px; font-size:17px; }
  .case-card .info h4 { font-size:18px; }
  .principle .tl .nd .ref { font-size:10px; }
  .principle .tl .nd .scope { font-size:8.5px; letter-spacing:0.14em; }
  .principle .tl .nd .y { font-size:10px; }
  .source .src-body { padding:24px 22px 22px; }
  .source .src-body h3 { font-size:26px; }
  .source .src-foot { padding:14px 18px; }
  .source .src-foot .esc { display:none; }
  .source .src-foot .acts { width:100%; }
  .source .src-foot .acts .a { flex:1; justify-content:center; font-size:10.5px; padding:10px 12px; }
  .anon { padding:72px 20px; }
  .plan-grp .grp-head { flex-direction:column; align-items:flex-start; gap:6px; }
  .task { grid-template-columns:auto 1fr; }
  .task .act { grid-column:1 / -1; justify-self:flex-start; }
  .match .filters { gap:12px; }
}

/* ── PRODUCT SCREENSHOTS ──────────────────────────────────────────────────── */
.lp-root figure.product-shot {
    margin: 0;
    line-height: 0;
}
.lp-root figure.product-shot .screen-img {
    display: block;
    width: 100%;
    max-width: 680px;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 4px 32px rgba(0,0,0,.14), 0 1px 6px rgba(0,0,0,.08);
    border: 1px solid var(--outline-variant);
}
.lp-root .hero .grid figure.product-shot { margin-left: auto; }
.lp-root .deep .grid figure.product-shot { margin: 0 auto; }
.lp-root .deep.alt .grid figure.product-shot { margin: 0; }

/* LOGO IMAGE */
.lp-root nav.lp .logo-img  { height: 28px; width: auto; display: block; }
.lp-root footer.lp .logo-img { height: 32px; width: auto; display: block; filter: brightness(0) invert(1); }

/* LOGO IMAGE */
.lp-root nav.lp .logo-img  { height: 28px; width: auto; display: block; }
.lp-root footer.lp .logo-img { height: 32px; width: auto; display: block; filter: brightness(0) invert(1); }
