
html{scroll-behavior:smooth}
body{margin:0;text-wrap:pretty}
[data-theme]{--bg:#161826;--panel:#1a1c2a;--surface:#232532;--raised:#2b2d3b;--line:rgba(233,233,237,.09);--line2:rgba(233,233,237,.16);--text:#d6d7de;--muted:#b2b6ca;--faint:#8b8fa3;--accent:#9184d9;--accent-ink:#d2cefd;--accent-tint:#2b2741;--warn:oklch(0.80 0.11 78);--warn-tint:oklch(0.32 0.05 78);--ok:oklch(0.78 0.10 158);--ok-tint:oklch(0.30 0.04 158);--danger:oklch(0.72 0.12 25);--danger-tint:oklch(0.31 0.05 25);--canvas:#10111b;--shadow:0 0 0 1px #3f424d,0 10px 30px rgba(0,0,0,.45);--code:#12131d;--lit:radial-gradient(1100px 640px at 78% -200px,color-mix(in srgb,var(--color-accent-900) 70%,transparent),transparent 62%),var(--bg)}
[data-theme="light"]{--bg:#f4f4f8;--panel:#fafafc;--surface:#ffffff;--raised:#eeeef4;--line:rgba(28,29,43,.08);--line2:rgba(28,29,43,.15);--text:#1d1e2c;--muted:#565a6e;--faint:#6f7389;--accent:#5d52b0;--accent-ink:#463c96;--accent-tint:#ecebfa;--warn:oklch(0.56 0.13 65);--warn-tint:oklch(0.95 0.04 80);--ok:oklch(0.52 0.11 155);--ok-tint:oklch(0.95 0.03 155);--danger:oklch(0.54 0.16 25);--danger-tint:oklch(0.95 0.03 25);--canvas:#e6e6ee;--shadow:0 0 0 1px rgba(28,29,43,.10),0 10px 30px rgba(28,29,43,.10);--code:#f3f3f8;--lit:radial-gradient(1100px 640px at 78% -200px,color-mix(in srgb,var(--accent) 14%,transparent),transparent 62%),var(--bg)}
/* motion language (one vocabulary for the whole page): transform and opacity only; entrances slow out, exits faster */
[data-theme]{--ease-out:cubic-bezier(.16,1,.3,1);--ease-std:cubic-bezier(.4,0,.2,1);--dur-micro:.18s;--dur-panel:.24s;--dur-reveal:.6s}
a{color:var(--accent-ink);text-decoration:none;transition:color var(--dur-micro) var(--ease-std)}a:hover{color:var(--accent)}
.wrap{max-width:1180px;margin:0 auto;padding:0 clamp(16px,5vw,64px)}
.mono{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
[data-theme] .btn{color:var(--text);transition:transform var(--dur-micro) var(--ease-std),background var(--dur-micro) var(--ease-std),border-color var(--dur-micro) var(--ease-std),color var(--dur-micro) var(--ease-std)}
[data-theme] .btn:hover{transform:scale(1.03)}
[data-theme] .btn:active{transform:scale(.96);transition-duration:.08s}
[data-theme] .btn:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent)}
[data-theme] .btn-primary{color:var(--bg);background:var(--accent);border-color:var(--accent)}
[data-theme] .btn-primary:hover{background:var(--accent-ink);border-color:var(--accent-ink)}
[data-theme="light"] .btn-primary{color:#fff}
[data-theme] .btn-secondary{border-color:var(--line2)}
[data-theme] .input{background:var(--bg);color:var(--text);border-color:var(--line2);transition:border-color var(--dur-micro) var(--ease-std),box-shadow var(--dur-micro) var(--ease-std)}
[data-theme] .input:focus{border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 35%,transparent);outline:none}
.btn-lg{min-height:46px;padding:0 20px;font-size:15px}
.nav-a{color:var(--muted);font-size:14px}.nav-a:hover{color:var(--text)}

/* page type */
.h1{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:clamp(44px,6.2vw,84px);line-height:1.04;letter-spacing:-.025em;margin:0;color:var(--text)}
.h2{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:clamp(30px,3.6vw,46px);line-height:1.1;letter-spacing:-.02em;margin:0;color:var(--text);text-wrap:balance}
.lead{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:var(--muted);margin:0;max-width:46ch}
.one{font-size:17px;line-height:1.6;color:var(--muted);margin:0;max-width:38ch}
/* every section is aligned to the left edge of the column, like the hero: text left, fragment right or below */
.sec{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:40px clamp(40px,6vw,96px);align-items:center;padding:clamp(72px,9vw,128px) 0}
.sec.wide{display:flex;flex-direction:column;align-items:flex-start;gap:40px;padding:clamp(56px,7vw,96px) 0 clamp(24px,3vw,40px)}
.sec.wide .one{max-width:48ch}
.txt{display:flex;flex-direction:column;gap:18px;min-width:0}
.fig{display:flex;min-width:0}
/* scroll reveals: fade and a 14 px rise, once, the fragment a beat after its text */
.rv{opacity:1;transform:none}
@media (prefers-reduced-motion:no-preference){
  .rv.armed{opacity:0;transform:translateY(14px)}
  .rv.in{opacity:1;transform:none;transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
  .fig.rv.in,.rv.late.in{transition-delay:.12s}
}
.plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.plan{display:flex;flex-direction:column;gap:8px;padding:22px 24px;border-radius:14px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.plan h3{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:19px;margin:0;color:var(--text);display:flex;align-items:center;gap:10px}
.plan p{margin:0;font-size:14.5px;line-height:1.55;color:var(--muted)}
.tag{font-size:12px}
[data-theme="light"] .tag-accent{background:var(--accent-tint);color:var(--accent-ink)}
[data-theme="light"] .tag-neutral{background:var(--raised);color:var(--muted)}
.chk{display:flex;align-items:center;gap:10px;min-height:40px;font-size:15px;color:var(--text);cursor:pointer}
.chk input{-webkit-appearance:none;appearance:none;flex:none;width:18px;height:18px;margin:0;border-radius:5px;border:1.5px solid var(--line2);background:var(--bg) center/12px 12px no-repeat;cursor:pointer;transition:background-color var(--dur-micro) var(--ease-std),border-color var(--dur-micro) var(--ease-std),transform var(--dur-micro) var(--ease-std)}
.chk input:active{transform:scale(.9)}
.chk input:checked{border-color:var(--accent);background-color:var(--accent);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23161826' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
[data-theme="light"] .chk input:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* fragments: the app's own pieces at the app's own size (00, 01, 01d, 02, 02d, 02q, 01p, 04) */
.f{flex:none;box-sizing:border-box;font:400 14px/1.5 Inter,system-ui,sans-serif;color:var(--text);border-radius:14px;background:var(--panel);box-shadow:var(--shadow);overflow:hidden}
.f *{box-sizing:border-box}
.f .m{font-family:'JetBrains Mono',ui-monospace,monospace;font-variant-numeric:tabular-nums}
.f .chip{display:inline-flex;align-items:center;gap:6px;padding:2px 9px;border-radius:6px;font-size:12px;line-height:18px;font-weight:500;white-space:nowrap}
.f .chip.warn{background:var(--warn-tint);color:var(--warn)}
.f .chip.acc{background:var(--accent-tint);color:var(--accent-ink)}
.f .chip.ok{background:var(--ok-tint);color:var(--ok)}
.f .chip.neu{background:var(--raised);color:var(--muted)}
.f .chip.dg{background:var(--danger-tint);color:var(--danger)}
.f .idc{display:inline-flex;align-items:center;gap:5px;padding:1px 7px;border-radius:5px;background:var(--raised);color:var(--muted);font:400 12px 'JetBrains Mono',monospace;white-space:nowrap}
.f .faint{color:var(--faint);font-size:12.5px}
.f .lbl{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);font-weight:500}
.f .t{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:22px;line-height:1.25;letter-spacing:-.01em;color:var(--text)}
.f .b{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border-radius:9px;border:1px solid var(--line2);background:transparent;color:var(--text);font:500 14px Inter,system-ui,sans-serif;white-space:nowrap;transition:transform var(--dur-micro) var(--ease-std),background var(--dur-micro) var(--ease-std),color var(--dur-micro) var(--ease-std)}
.f .b.p{border-color:var(--accent);background:var(--accent-tint);color:var(--accent-ink)}
.f .b.ok{border-color:var(--ok);color:var(--ok)}
.f .b.dg{border-color:color-mix(in srgb,var(--danger) 55%,transparent);color:var(--danger)}
.f .b.hit{background:var(--accent);color:var(--bg);transform:scale(.96)}
.f .b.ok.hit{background:var(--ok);border-color:var(--ok)}
.f kbd{font:500 11px 'JetBrains Mono',monospace;padding:1px 6px;border-radius:4px;border:1px solid var(--line2);color:var(--muted)}
.f .row{display:flex;align-items:center;gap:10px}
.f .code{font:400 12.5px/1.6 'JetBrains Mono',monospace;background:var(--code);border-radius:8px;padding:8px 12px;color:var(--muted);white-space:pre;overflow:hidden}
.f .box{width:16px;height:16px;flex:none;border-radius:4px;display:grid;place-items:center;border:1.5px solid var(--accent);background:var(--accent-tint);color:var(--accent-ink);font-size:11px}
.f .field{display:flex;align-items:center;gap:10px;min-height:40px;padding:0 12px;border-radius:9px;border:1px solid var(--line2);background:var(--bg);color:var(--faint);font-size:14px}
.f .opt{display:flex;gap:12px;align-items:flex-start;padding:12px 14px;border-radius:10px;border:1px solid var(--line2);background:var(--surface)}
.f .opt.on{border-color:var(--accent);background:color-mix(in srgb,var(--accent-tint) 70%,var(--surface))}
.f .rad{width:16px;height:16px;flex:none;border-radius:50%;border:1.5px solid var(--line2);margin-top:3px;display:grid;place-items:center}
.f .rad.on{border-color:var(--accent)}.f .rad.on::after{content:'';width:8px;height:8px;border-radius:50%;background:var(--accent)}
.f .qw{display:grid;grid-template-rows:1fr;transition:grid-template-rows .32s var(--ease-std),opacity .22s var(--ease-std),transform .22s var(--ease-std)}
.f .qw.gone{grid-template-rows:0fr;opacity:0;transform:translateX(-12px)}
.f .qw>.q{min-height:0;overflow:hidden}
.f .q{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font-size:13.5px;line-height:1.55;transition:box-shadow var(--dur-micro) var(--ease-std)}
.f .q.sel{box-shadow:0 0 0 1px var(--accent)}
.f .av{width:22px;height:22px;flex:none;border-radius:50%;display:grid;place-items:center;font:500 10px Inter,sans-serif}
.f .av.sb{background:var(--accent-tint);color:var(--accent-ink)}
.f .av.ses{background:var(--raised);color:var(--muted)}
.f .av.you{background:var(--ok-tint);color:var(--ok)}
.f .thr{display:flex;flex-direction:column;gap:14px;padding-left:11px;border-left:1px solid var(--line2)}
.f .thr>div{position:relative;padding-left:22px}
.f .thr>div>.av{position:absolute;left:-22px;top:-1px}
.f .wgl{display:flex;align-items:center;gap:12px;padding:11px 16px;border-top:1px solid var(--line);font-size:13.5px}
.f .ck{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:14px;align-items:center;padding:9px 16px;border-top:1px solid var(--line);font-size:13.5px;color:var(--muted)}
.f .ck .k{display:flex;align-items:center;gap:8px;color:var(--text)}
.f .fold{display:flex;flex-direction:column;gap:6px;padding:10px 12px;border-radius:8px;background:var(--raised);box-shadow:0 0 0 1px var(--line);font-size:13px;line-height:1.55;color:var(--muted)}
.spin{display:inline-block;animation:spin 1.1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.pulse{animation:pulse 2.4s var(--ease-std) infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.45}}

/* the hero: Home (00) at the app's size, cut at the right and faded at the bottom */
.home{width:1280px;max-width:none;display:grid;grid-template-columns:200px minmax(0,1fr);height:640px;--mask:linear-gradient(to bottom,#000 calc(100% - 110px),transparent);-webkit-mask-image:var(--mask);mask-image:var(--mask)}
.home .sb{border-right:1px solid var(--line);background:var(--bg);padding:14px 10px;display:flex;flex-direction:column;gap:2px;font-size:13px}
.home .sb .brand{display:flex;align-items:center;gap:8px;font-weight:500;padding:4px 8px 12px;font-size:14px}
.home .sb .proj{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:8px;background:var(--surface);box-shadow:0 0 0 1px var(--line);margin-bottom:10px;font-size:12.5px}
.home .sb .grp{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);padding:10px 8px 4px}
.home .sb .it{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:7px;color:var(--muted)}
.home .sb .it.on{background:var(--accent-tint);color:var(--accent-ink)}
.home .sb .it .n{margin-left:auto;font-size:11.5px;color:var(--faint)}
.home .sb .it .dot{margin-left:auto;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.home .hm{display:flex;flex-direction:column;min-width:0}
.home .top{display:flex;align-items:center;gap:14px;padding:10px 20px;border-bottom:1px solid var(--line);font-size:13px}
.home .top .srch{display:flex;align-items:center;gap:8px;padding:5px 12px;border-radius:7px;background:var(--surface);box-shadow:0 0 0 1px var(--line);color:var(--faint);font-size:12.5px;min-width:260px}
.home .top .res{display:flex;align-items:center;gap:8px;padding:4px 10px;border-radius:7px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font:400 12px 'JetBrains Mono',monospace;color:var(--muted)}
.home .body{padding:18px 22px;display:flex;flex-direction:column;gap:16px}
.home .greet{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:22px;letter-spacing:-.01em}
.home .tiles{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
.home .tile{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.home .tile .k{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.home .tile .k i:last-child{margin-left:auto;color:var(--faint);font-size:11px}
.home .tile .v{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:24px;line-height:1.2}
.home .tile .s{font-size:11.5px;color:var(--faint)}
.home .two{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:12px;align-items:start}
.home .card{display:flex;flex-direction:column;gap:10px;padding:12px 14px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font-size:13px}
.home .card .hd{display:flex;align-items:center;gap:8px;font-weight:500}
.home .card .hd .faint{font-weight:400}
.home .card .hd a{margin-left:auto;font-size:12px}
.home .sbar{display:flex;gap:3px;height:5px;border-radius:3px;overflow:hidden}
.home .sbar i{display:block;height:100%}
.home .leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.home .leg b{font-weight:500;color:var(--muted)}
.home .ip{display:grid;grid-template-columns:minmax(0,1fr) auto 120px auto;gap:12px;align-items:center;padding:7px 0;border-top:1px solid var(--line);font-size:13px}
.home .ip .id{font:400 11px 'JetBrains Mono',monospace;color:var(--faint)}
.home .ip .bar{height:4px;border-radius:2px;background:var(--line2);overflow:hidden}
.home .ip .bar i{display:block;height:100%;background:var(--accent)}
.home .ip .bar i.gr{background:var(--ok)}
.home .ip .n{font-size:12px;color:var(--faint);text-align:right;min-width:36px}
.home .li{display:flex;align-items:center;gap:9px;padding:6px 0;border-top:1px solid var(--line);font-size:13px}
.home .li .sub{font:400 11px 'JetBrains Mono',monospace;color:var(--faint)}
.home .li .faint{margin-left:auto}

/* the Needs you loop (01): each card's panel, its action lit, the card leaves; then all clear. The box keeps one height whatever the loop shows, so the page under it never moves */
.nq{width:1060px;max-width:none;display:grid;grid-template-columns:340px minmax(0,1fr);height:480px;position:relative}
.nq .hero-q{border-right:1px solid var(--line);padding:16px 14px;display:flex;flex-direction:column;gap:8px;background:var(--bg);overflow:hidden}
.nq .hero-p{padding:22px 26px 24px;display:flex;flex-direction:column;gap:16px;min-width:0;overflow:hidden}
.nq .clear{display:flex;flex-direction:column;align-items:flex-start;gap:14px;margin:auto 0;padding:24px 0}
.nq .clear .big{display:flex;align-items:center;gap:14px;font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:30px;letter-spacing:-.01em;color:var(--text)}
.nq .clear .big i{font-size:34px;color:var(--ok)}
.nq .clear p{font-size:16px!important}
.f .pause,.tw .pause{position:absolute;right:14px;bottom:12px;display:inline-flex;align-items:center;gap:6px;padding:5px 10px;border-radius:7px;border:1px solid var(--line2);background:var(--panel);color:var(--muted);font:500 12px Inter,system-ui,sans-serif;cursor:pointer;transition:transform var(--dur-micro) var(--ease-std),color var(--dur-micro) var(--ease-std)}
.f .pause:hover,.tw .pause:hover{color:var(--text);transform:scale(1.03)}
.f .pause:active,.tw .pause:active{transform:scale(.96)}
.f .pause:focus-visible,.tw .pause:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 55%,transparent)}
.nq .panel{animation:panel-in var(--dur-panel) var(--ease-out)}
@keyframes panel-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}

/* the board (04): five columns at the app's size, cut with a fade at the bottom */
.bd{width:100%;max-width:1180px;--mask:linear-gradient(to bottom,#000 calc(100% - 120px),transparent);-webkit-mask-image:var(--mask);mask-image:var(--mask);box-shadow:0 0 0 1px var(--line);background:var(--bg)}
.bd-top{display:flex;align-items:center;gap:16px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:14px}
.bd-cols{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;height:560px;overflow:hidden}
.bd .col{display:flex;flex-direction:column;gap:8px;padding:12px 10px;border-right:1px solid var(--line);min-width:0}
.bd .col:last-child{border-right:0}
.bd .col-h{display:flex;align-items:center;gap:8px;padding:2px 4px 6px;font-size:13px;font-weight:500}
.bd .col-h .faint{margin-left:auto}
.bd .c{display:flex;flex-direction:column;gap:6px;padding:11px 12px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font-size:12.5px;line-height:1.4}
.bd .id{font:400 11px 'JetBrains Mono',monospace;color:var(--faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bd .ti{color:var(--text);font-size:13.5px;line-height:1.35;font-weight:500}
.bd .hd{display:flex;align-items:center;justify-content:space-between;gap:6px}
.bd .hd .chip,.bd .ft .chip{font-size:11px;padding:0 7px;line-height:18px}
.bd .docs{display:flex;gap:4px;flex-wrap:wrap}
.bd .docs em{font:400 10.5px 'JetBrains Mono',monospace;font-style:normal;color:var(--faint);padding:0 5px;border-radius:4px;background:var(--raised)}
.bd .bar{display:block;height:4px;border-radius:2px;background:var(--line2);overflow:hidden;margin-top:2px}
.bd .bar i{display:block;height:100%;background:var(--accent)}
.bd .ft{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:12px}
/* Claude's working glyph, as the app draws it (Activity.tsx's Spinner: ten glyphs, 130 ms each, in Claude's orange) */
.f .glyph{display:inline-block;width:14px;text-align:center;font-size:14px;line-height:1;color:oklch(0.72 0.14 40);font-family:Inter,system-ui,sans-serif}
.f .glyph::after{content:'\00B7';animation:glyph 1.3s steps(1,end) infinite}
@keyframes glyph{0%{content:'\00B7'}10%{content:'\2722'}20%{content:'\2733'}30%{content:'\2736'}40%{content:'\273B'}50%{content:'\273D'}60%{content:'\273B'}70%{content:'\2736'}80%{content:'\2733'}90%{content:'\2722'}}
.bd .ok{color:var(--ok);display:inline-flex;align-items:center;gap:3px}
.bd .sha{display:inline-flex;align-items:center;gap:4px;font:400 11.5px 'JetBrains Mono',monospace;color:var(--muted)}
.bd .col:last-child .sha{color:var(--ok)}
/* the board's columns rise in one after another when it scrolls into view */
@media (prefers-reduced-motion:no-preference){
  .bd.rv.armed .col{opacity:0;transform:translateY(16px)}
  .bd.rv.in .col{opacity:1;transform:none;transition:opacity var(--dur-reveal) var(--ease-out),transform var(--dur-reveal) var(--ease-out)}
  .bd.rv.in .col:nth-child(2){transition-delay:.08s}.bd.rv.in .col:nth-child(3){transition-delay:.16s}.bd.rv.in .col:nth-child(4){transition-delay:.24s}.bd.rv.in .col:nth-child(5){transition-delay:.32s}
}

/* Review before building (01e): the review with the Supervisor decisions side panel, at the app's size */
.rw{width:100%;max-width:1180px;display:grid;grid-template-columns:minmax(0,1fr) 360px;background:var(--bg)}
.rw .rv-main{display:flex;flex-direction:column;gap:16px;padding:22px 26px 0;min-width:0}
.rw .rv-side{border-left:1px solid var(--line);background:var(--panel);display:flex;flex-direction:column;min-width:0}
.rw .card{display:flex;flex-direction:column;gap:12px;padding:16px 18px;border-radius:12px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.rw .card .hd{display:flex;align-items:center;gap:6px 10px;flex-wrap:wrap;font-weight:500;font-size:14.5px}
.rw .card .hd .lk{white-space:nowrap}
.rw .card .hd .faint{font-weight:400}
.rw .card p,.rw .card li{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.rw .card ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.rw .blk{display:flex;flex-direction:column;gap:5px}
.rw .steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,auto);grid-auto-flow:column;gap:6px 20px}
.rw .step{display:flex;align-items:baseline;gap:9px;font-size:13.5px;line-height:1.45;color:var(--muted)}
.rw .step .n{font:500 11.5px 'JetBrains Mono',monospace;color:var(--accent-ink);flex:none;width:14px}
.rw .step .c{margin-left:auto;font-size:12px;color:var(--faint);flex:none}
.rw .acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:16px 0 22px;margin-top:4px;border-top:1px solid var(--line)}
.rw .acts kbd{display:none}
.rw .acts .b{padding:9px 13px}
.rw .sp-h{display:flex;align-items:center;gap:8px;padding:16px 18px 10px;font-weight:500;font-size:14px}
.rw .sp-h .cnt{display:inline-flex;align-items:center;gap:4px;font-size:12px;color:var(--faint);font-weight:400}
.rw .sp-h .cnt i{font-size:13px}
.rw .sp-sum{padding:0 18px 12px;font-size:12.5px;line-height:1.5;color:var(--faint)}
.rw .dc{display:flex;flex-direction:column;gap:9px;padding:12px 14px;margin:0 12px 10px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font-size:13px;line-height:1.5}
.rw .dc.open{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 50%,transparent)}
.rw .dc .qq{font-weight:500;color:var(--text);font-size:13.5px;line-height:1.4}
.rw .dc .a{display:flex;gap:7px;color:var(--muted)}
.rw .dc .a i{flex:none;margin-top:3px;color:var(--faint)}
.rw .dc .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.rw .dc .field{min-height:34px;font-size:13px}
.rw .dc .mini{padding:6px 11px;font-size:12.5px}
.f .tagf{display:inline-flex;align-items:center;gap:4px;padding:0 6px;border-radius:4px;background:var(--warn-tint);color:var(--warn);font-size:11px;line-height:17px;font-weight:500}
.f .tagc{display:inline-flex;align-items:center;padding:0 6px;border-radius:4px;background:var(--accent-tint);color:var(--accent-ink);font-size:11px;line-height:17px;font-weight:500}
.rw .lk{display:inline-flex;align-items:center;gap:4px;font-size:13px;color:var(--accent-ink)}

/* the review walkthrough: the Needs you card, then the change page (04c) opened from it, read tab by tab and approved */
.wk{position:relative;width:100%;max-width:1180px;height:760px}
.wk .wk-card,.wk .cp{position:absolute;left:0;top:0;transform-origin:50% 40%}
.wk .wk-card{width:820px;padding:22px 26px;display:flex;flex-direction:column;gap:16px;left:50%;margin-left:-410px;top:60px}
.wk .cp{width:100%;height:740px;display:flex;flex-direction:column;background:var(--bg)}
.wk.card .cp,.wk.chat .cp{opacity:0;transform:scale(.97);pointer-events:none}
.wk.page .wk-card,.wk.chat .wk-card{opacity:0;transform:scale(.96);pointer-events:none}
/* the chat before the card: the goal typed and sent, the agent reading and drafting, then the proposal ready */
.wk .wk-chat{position:absolute;left:50%;top:60px;width:720px;height:560px;margin-left:-360px;display:flex;flex-direction:column;transform-origin:50% 40%}
.wk.card .wk-chat,.wk.page .wk-chat{opacity:0;transform:scale(.96);pointer-events:none}
.wk .wk-chat .win-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13.5px;font-weight:500;flex:none}
.wk .wk-chat .win-h .faint{font-weight:400}
.wk .wk-chat .win-b{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 16px 16px;overflow:hidden;--mask:linear-gradient(to bottom,transparent,#000 48px);-webkit-mask-image:var(--mask);mask-image:var(--mask)}
.wk .wk-chat .lw{display:grid;grid-template-rows:0fr;flex:none}
.wk .wk-chat .lw.in{grid-template-rows:1fr}
.wk .wk-chat .lw>.l{min-height:0;overflow:hidden}
.wk .wk-chat .l>*{opacity:0;transform:translateY(8px)}
.wk .wk-chat .lw.in .l>*{opacity:1;transform:none}
.wk .wk-chat .li{display:flex;gap:8px;align-items:flex-start;padding-top:10px;font-size:13.5px;line-height:1.5;color:var(--text)}
.wk .wk-chat .li.do{color:var(--muted);font-size:13px}
.wk .wk-chat .li.do i{margin-top:3px;flex:none;color:var(--faint)}
.wk .wk-chat .youl{display:flex;gap:10px;width:100%;padding:10px 12px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line);line-height:1.5}
.wk .wk-chat .youl .lbl{margin-bottom:2px}
.wk .wk-chat .supl{display:flex;gap:10px;width:100%;padding:10px 12px;border-radius:10px;background:var(--accent-tint);color:var(--accent-ink);line-height:1.5}
.wk .wk-chat .supl .lbl{color:var(--accent-ink);opacity:.75;margin-bottom:2px}
.wk .wk-chat .readyl{display:flex;gap:10px;width:100%;padding:10px 12px;border-radius:10px;background:var(--ok-tint);color:var(--text);line-height:1.5}
.wk .wk-chat .readyl i{flex:none;margin-top:3px;color:var(--ok)}
.wk .wk-chat .composer{flex:none;display:flex;align-items:flex-end;gap:10px;margin:0 12px 12px;padding:6px 6px 6px 12px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);color:var(--faint);font-size:13.5px;transition:border-color var(--dur-micro) var(--ease-std)}
.wk .wk-chat .composer.typing{border-color:var(--accent);color:var(--text)}
.wk .wk-chat .composer .ph-text{flex:1;line-height:1.5;padding:4px 0}
.wk .wk-chat .composer .ph-paperclip{margin-bottom:7px}
.wk .wk-chat .composer.typing .ph-text::after{content:'';display:inline-block;width:1px;height:14px;margin-left:1px;vertical-align:-2px;background:var(--accent);animation:caret 1s steps(1,end) infinite}
@keyframes caret{50%{opacity:0}}
.wk .wk-chat .composer .snd{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--raised);color:var(--faint);font-size:13px;transition:background var(--dur-micro) var(--ease-std),color var(--dur-micro) var(--ease-std),transform var(--dur-micro) var(--ease-std)}
.wk .wk-chat .composer.typing .snd{background:var(--accent);color:var(--bg)}
[data-theme="light"] .wk .wk-chat .composer.typing .snd{color:#fff}
.wk .wk-chat .composer .snd.hit{transform:scale(.9);background:var(--accent-ink)}
.wk .cp-top{display:flex;align-items:center;gap:8px;padding:12px 20px;border-bottom:1px solid var(--line);flex:none}
.wk .cp-head{display:flex;flex-direction:column;gap:8px;padding:16px 20px 12px;flex:none}
.wk .cp-strip{display:flex;align-items:center;gap:12px;margin:0 20px 12px;padding:10px 14px;border-radius:10px;background:var(--accent-tint);color:var(--accent-ink);font-size:13.5px;flex:none}
.wk .cp-strip.ok{background:var(--ok-tint);color:var(--text)}
.wk .cp-strip .b.mini{padding:7px 12px;font-size:13px;background:var(--panel);color:var(--text)}
.wk .cp-strip .b.p.mini{border-color:var(--accent);background:var(--accent);color:var(--bg)}
[data-theme="light"] .wk .cp-strip .b.p.mini{color:#fff}
.wk .cp-strip .b.p.mini.hit{transform:scale(.96);background:var(--accent-ink)}
.wk .cp-tabs{display:flex;align-items:center;gap:4px;padding:0 20px;border-bottom:1px solid var(--line);flex:none}
.wk .tab{display:inline-flex;align-items:center;gap:6px;padding:10px 10px 9px;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;white-space:nowrap;transition:color var(--dur-micro) var(--ease-std)}
.wk .tab .n{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.wk .tab.on{color:var(--text);border-bottom-color:var(--accent)}
.wk .seg{display:inline-flex;border-radius:7px;box-shadow:0 0 0 1px var(--line2);overflow:hidden;font-size:12.5px}
.wk .seg>span{display:inline-flex;align-items:center;gap:5px;padding:5px 10px;color:var(--faint)}
.wk .seg>span.on{background:var(--surface);color:var(--text)}
.wk .cp-body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 280px}
.wk .cp-main{min-width:0;overflow:hidden;padding:16px 20px}
.wk .cp-scroll{display:flex;flex-direction:column;gap:14px;transition:transform 1.6s var(--ease-std)}
.wk .cp-sum{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--faint)}
.wk .blk{display:flex;flex-direction:column;gap:6px}
.wk .blk p,.wk .blk li,.wk .dl,.wk .req{font-size:14px;line-height:1.55;color:var(--muted);margin:0}
.wk .blk ul{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:3px}
.wk .dl{display:flex;gap:10px;padding:6px 0;border-top:1px solid var(--line)}
.wk .dn{flex:none;font:500 12px 'JetBrains Mono',monospace;color:var(--accent-ink);padding-top:2px}
.wk .spec{display:flex;flex-direction:column;gap:8px;padding:12px 14px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.wk .req{display:flex;gap:10px;align-items:flex-start;font-size:13.5px}
.wk .req .tagc,.wk .req .tagm{flex:none;margin-top:2px}
.f .tagm{display:inline-flex;align-items:center;padding:0 6px;border-radius:4px;background:var(--warn-tint);color:var(--warn);font-size:11px;line-height:17px;font-weight:500}
.wk .grp{display:flex;flex-direction:column;gap:2px}
.wk .gh{display:flex;align-items:center;justify-content:space-between;padding:6px 0 4px;font-weight:500;font-size:13.5px;border-top:1px solid var(--line)}
.wk .tk{display:flex;align-items:center;gap:10px;padding:4px 0 4px 8px;font-size:13.5px;color:var(--muted)}
.wk .tk .box{border-color:var(--line2);background:transparent}
.wk .tk.doing{color:var(--text)}
.wk .tk .box i{display:none}
.wk .tk.doing .box{border-color:var(--ok);background:var(--ok-tint);color:var(--ok)}
.wk .tk.doing .box i{display:block}
.wk .drow{display:flex;flex-direction:column;gap:7px;padding:12px 14px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line);font-size:13.5px;line-height:1.5}
.wk .dq{font-weight:500;color:var(--text)}
.wk .drow .a{display:flex;gap:7px;color:var(--muted)}
.wk .drow .a i{flex:none;margin-top:3px;color:var(--faint)}
.wk .drow .meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.wk .drow .meta .lk{margin-left:auto;font-size:12.5px}
.wk .drow .field{min-height:34px;font-size:13px}
.wk .cp-side{border-left:1px solid var(--line);padding:16px 18px;display:flex;flex-direction:column;gap:16px;font-size:13px;overflow:hidden}
.wk .sb-blk{display:flex;flex-direction:column;gap:6px}
.wk .pbar{height:5px;border-radius:3px;background:var(--line2);overflow:hidden}
.wk .pbar i{display:block;height:100%;background:var(--accent);transform-origin:left;transition:transform .8s var(--ease-out)}
.wk .cursor{position:absolute;left:0;top:0;width:20px;height:20px;z-index:5;pointer-events:none;filter:drop-shadow(0 1px 2px rgba(0,0,0,.5));transition:transform .7s var(--ease-out),opacity .3s var(--ease-std)}
.wk .b.hit{transform:scale(.96)}
@media (prefers-reduced-motion:no-preference){
  .wk .wk-card,.wk .cp,.wk .wk-chat{transition:opacity .55s var(--ease-out),transform .55s var(--ease-out)}
  .wk .wk-chat .lw{transition:grid-template-rows .4s var(--ease-std)}
  .wk .wk-chat .l>*{transition:opacity .4s var(--ease-std) .1s,transform .4s var(--ease-std) .1s}
}

/* the supervisor's feed (02d): questions come in at the bottom, the supervisor reads and decides, the next one pushes it up */
.sf{width:600px;height:460px;display:flex;flex-direction:column;position:relative}
.sf .sf-h{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--line);font-size:14px;font-weight:500;flex:none}
.sf .sf-h .faint{font-weight:400}
.sf .sf-b{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 18px 48px;overflow:hidden;--mask:linear-gradient(to bottom,transparent,#000 56px);-webkit-mask-image:var(--mask);mask-image:var(--mask)}
.sf .dw{display:grid;grid-template-rows:0fr;flex:none}
.sf .dw.in{grid-template-rows:1fr}
.sf .dw>.d{min-height:0;overflow:hidden}
.sf .d .di{display:flex;flex-direction:column;gap:10px;padding:14px 0 0;opacity:0;transform:translateY(10px)}
.sf .dw.in .d .di{opacity:1;transform:none}
.sf .thr{gap:10px;margin-left:12px}
.sf .thr>div{line-height:1.5;font-size:13.5px}
.sf .thr .lbl{margin-bottom:3px;display:flex;align-items:center;gap:8px}
.sf .think{display:flex;align-items:center;gap:8px;color:var(--faint);font-size:12.5px}
.sf .reason{color:var(--muted);font-size:13px;line-height:1.5}
.sf .reason .caret{display:inline-block;width:7px;height:14px;vertical-align:-2px;background:var(--accent);margin-left:2px;animation:blink 1s steps(2) infinite}
@keyframes blink{50%{opacity:0}}
.sf .out{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.sf .pause{z-index:1}
@media (prefers-reduced-motion:no-preference){
  .sf .dw{transition:grid-template-rows .36s var(--ease-out)}
  .sf .d .di{transition:opacity .3s var(--ease-out) .12s,transform .3s var(--ease-out) .12s}
}

/* the supervisor's two windows: the session's chat and the decisions list; the one that is acting turns to the front, the other goes back */
.tw{width:600px;height:460px;position:relative;perspective:1400px;perspective-origin:60% 40%}
.tw .win{position:absolute;left:0;top:0;width:520px;height:400px;display:flex;flex-direction:column;transform-origin:50% 50%;backface-visibility:hidden;will-change:transform,opacity}
.tw .win.front{transform:translate(0,44px) rotateY(0) scale(1);opacity:1;z-index:2}
.tw .win.back{transform:translate(80px,0) rotateY(-10deg) scale(.9);opacity:.7;z-index:1}
.tw .win-h{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--line);font-size:13.5px;font-weight:500;flex:none}
.tw .win-h .faint{font-weight:400}
.tw .win-b{flex:1;min-height:0;display:flex;flex-direction:column;justify-content:flex-end;padding:0 16px 16px;overflow:hidden;--mask:linear-gradient(to bottom,transparent,#000 48px);-webkit-mask-image:var(--mask);mask-image:var(--mask)}
.tw .lw{display:grid;grid-template-rows:0fr;flex:none}
.tw .lw.in{grid-template-rows:1fr}
.tw .lw>.l{min-height:0;overflow:hidden}
.tw .l>*{opacity:0;transform:translateY(8px)}
.tw .lw.in .l>*{opacity:1;transform:none}
.tw .chat .li{display:flex;gap:8px;align-items:flex-start;padding-top:10px;font-size:13.5px;line-height:1.5;color:var(--text)}
.tw .chat .li.do{color:var(--muted);font-size:13px}
.tw .chat .li.do i{margin-top:3px;flex:none;color:var(--faint)}
.tw .chat .askb{display:flex;flex-direction:column;gap:8px;width:100%;padding:10px 12px;border-radius:10px;background:var(--surface);box-shadow:0 0 0 1px var(--line)}
.tw .chat .askq{font-weight:500;line-height:1.4}
.tw .chat .supl{display:flex;gap:10px;width:100%;padding:10px 12px;border-radius:10px;background:var(--accent-tint);color:var(--accent-ink);line-height:1.5}
.tw .chat .supl .lbl{color:var(--accent-ink);opacity:.75;margin-bottom:2px}
.tw .dec{display:flex;flex-direction:column;gap:7px;padding:12px 0 0;font-size:13px;line-height:1.5}
.tw .dec+.dec,.tw .decs .lw+.lw .dec{border-top:1px solid var(--line);margin-top:10px}
.tw .decq{font-weight:500;color:var(--text);font-size:13.5px;line-height:1.4}
.tw .dec .a{display:flex;gap:7px;color:var(--muted)}
.tw .dec .a i{flex:none;margin-top:3px;color:var(--faint)}
.tw .think{display:flex;align-items:center;gap:8px;color:var(--faint);font-size:12.5px}
.tw .budget{height:4px;border-radius:2px;background:var(--line2);overflow:hidden}
.tw .budget i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:left;transform:scaleX(0);animation:budget 2.2s linear forwards}
@keyframes budget{to{transform:scaleX(.34)}}
.tw .budget i{animation-duration:3s}
.tw .out{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:11.5px;color:var(--faint)}
.tw .composer{flex:none;display:flex;align-items:center;gap:10px;margin:0 12px 12px;padding:6px 6px 6px 12px;border-radius:12px;border:1px solid var(--line2);background:var(--bg);color:var(--faint);font-size:13.5px}
.tw .composer .ph-text{flex:1}
.tw .composer .snd{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent);color:var(--bg);font-size:13px}
[data-theme="light"] .tw .composer .snd{color:#fff}
.tw .chat{padding-bottom:10px}
.tw .decs{justify-content:flex-start;-webkit-mask-image:none;mask-image:none;padding-top:4px}
@media (prefers-reduced-motion:no-preference){
  .tw .win{transition:transform .9s var(--ease-out),opacity .9s var(--ease-out)}
  .tw .lw{transition:grid-template-rows .42s var(--ease-out)}
  .tw .l>*{transition:opacity .4s var(--ease-out) .12s,transform .4s var(--ease-out) .12s}
}

/* the trunk strip: a small git tree that draws itself once when scrolled into view (reduced motion: already drawn) */
.trunk{display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:clamp(24px,3vw,40px) 0 0}
.trunk-lbl{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--faint);margin:0}
.trunk-cap{max-width:52ch}
.tree-box{width:100%;max-width:1000px;overflow-x:auto;overflow-y:hidden}
.tree{display:block;width:100%;min-width:720px;height:auto}
.tree .dr{stroke-dasharray:1;stroke-dashoffset:0}
.tree .pop{transform-box:fill-box;transform-origin:center}
@media (prefers-reduced-motion:no-preference){
  .tree.armed .dr{stroke-dashoffset:1}.tree.armed .pop{transform:scale(0)}.tree.armed .fd{opacity:0}
  .tree.play .dr,.tree.play .pop,.tree.play .fd{animation-duration:9s;animation-timing-function:var(--ease-out);animation-fill-mode:forwards}
  .tree.play .a-up{animation-name:d4}.tree.play .a-dn{animation-name:d22}.tree.play .b-up{animation-name:d34}.tree.play .b-dn{animation-name:d49}.tree.play .p-dn{animation-name:d62}
  .tree.play .c-a1{animation-name:p11}.tree.play .c-a2{animation-name:p15}.tree.play .c-a3{animation-name:p19}.tree.play .l-a{animation-name:p28}
  .tree.play .c-b1{animation-name:p42}.tree.play .c-b2{animation-name:p46}.tree.play .l-b{animation-name:p55}.tree.play .m-p{animation-name:p69}
  .tree.play .t-a{animation-name:f9}.tree.play .t-la{animation-name:f28}.tree.play .t-b{animation-name:f39}.tree.play .t-p{animation-name:f69}
}
@keyframes d4{0%,4%{stroke-dashoffset:1}9%,100%{stroke-dashoffset:0}}
@keyframes d22{0%,22%{stroke-dashoffset:1}27%,100%{stroke-dashoffset:0}}
@keyframes d34{0%,34%{stroke-dashoffset:1}39%,100%{stroke-dashoffset:0}}
@keyframes d49{0%,49%{stroke-dashoffset:1}54%,100%{stroke-dashoffset:0}}
@keyframes d62{0%,62%{stroke-dashoffset:1}68%,100%{stroke-dashoffset:0}}
@keyframes p11{0%,11%{transform:scale(0)}13%{transform:scale(1.3)}14%,100%{transform:scale(1)}}
@keyframes p15{0%,15%{transform:scale(0)}17%{transform:scale(1.3)}18%,100%{transform:scale(1)}}
@keyframes p19{0%,19%{transform:scale(0)}21%{transform:scale(1.3)}22%,100%{transform:scale(1)}}
@keyframes p28{0%,28%{transform:scale(0)}30%{transform:scale(1.3)}31%,100%{transform:scale(1)}}
@keyframes p42{0%,42%{transform:scale(0)}44%{transform:scale(1.3)}45%,100%{transform:scale(1)}}
@keyframes p46{0%,46%{transform:scale(0)}48%{transform:scale(1.3)}49%,100%{transform:scale(1)}}
@keyframes p55{0%,55%{transform:scale(0)}57%{transform:scale(1.3)}58%,100%{transform:scale(1)}}
@keyframes p69{0%,69%{transform:scale(0)}71%{transform:scale(1.3)}72%,100%{transform:scale(1)}}
@keyframes f9{0%,9%{opacity:0}12%,100%{opacity:1}}
@keyframes f28{0%,28%{opacity:0}31%,100%{opacity:1}}
@keyframes f39{0%,39%{opacity:0}42%,100%{opacity:1}}
@keyframes f69{0%,69%{opacity:0}72%,100%{opacity:1}}
/* footer: brand and three link columns, then a base line; on a phone the columns wrap under the brand */
.foot{border-top:1px solid var(--line);padding:clamp(40px,5vw,64px) 0 32px;display:flex;flex-direction:column;gap:40px;font-size:14px;line-height:1.6}
.foot-top{display:flex;flex-wrap:wrap;gap:32px clamp(40px,6vw,96px)}
.foot-brand{flex:1 1 260px;display:flex;flex-direction:column;gap:8px}
.foot-name{font-family:var(--font-heading);font-weight:var(--font-heading-weight);font-size:18px;color:var(--text)}
.foot-brand p{margin:0;color:var(--muted);max-width:34ch}
.foot-cols{flex:2 1 420px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px 32px}
.foot-col{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.foot-col h4{margin:0 0 2px;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--faint)}
.foot-col a,.foot-base a{color:var(--muted)}.foot-col a:hover,.foot-base a:hover{color:var(--text)}
.foot-base{display:flex;flex-wrap:wrap;gap:8px 24px;padding-top:20px;border-top:1px solid var(--line);font-size:13px;color:var(--faint)}
@media (max-width:560px){.foot-cols{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* sign-up: a hidden field bots fill; the note under the form; the error line; the sent panel */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.hear-note{margin:2px 0 0;font-size:13px;line-height:1.5;color:var(--faint)}
.hear-err{margin:2px 0 0;display:flex;gap:8px;align-items:center;font-size:14px;line-height:1.5;color:var(--danger)}
.hear-sent{margin:0;display:flex;gap:12px;align-items:flex-start;font-size:15px;line-height:1.6;color:var(--muted)}
.hear-sent b{font-weight:600;color:var(--text)}
.hear-sent .ph{flex:none;font-size:20px;line-height:24px;color:var(--accent)}

@media (max-width:960px){
  .sec{grid-template-columns:minmax(0,1fr);gap:32px;padding:64px 0}
  .sec.wide{display:flex}
  .rw{grid-template-columns:minmax(0,1fr)}
  .wk{height:720px}
  .wk .cp-body{grid-template-columns:minmax(0,1fr)}
  .wk .cp-side{display:none}
  .rw .rv-side{border-left:0;border-top:1px solid var(--line)}
  .rw .rv-main{padding:18px 18px 0}
  .rw .steps{grid-template-columns:minmax(0,1fr);grid-template-rows:none;grid-auto-flow:row}
  .plans{grid-template-columns:minmax(0,1fr)}
  .nav-cta{display:none}
}
/* a phone: fragments go fluid and wrap rather than being cut (spec: nothing essential lost); the two wide screens scroll sideways in their box */
@media (max-width:720px){
  .f{width:100%!important;max-width:100%!important}
  .nq{grid-template-columns:minmax(0,1fr)!important;height:auto}
  .nq .hero-q{border-right:0;border-bottom:1px solid var(--line);height:440px}
  .nq .hero-p{min-height:420px}
  .nq .pause{position:static;align-self:flex-end;margin:0 14px 12px}
  .sf{height:520px}
  .wk{overflow-x:auto;overflow-y:hidden;height:700px}
  .wk .cp{width:900px!important;max-width:none!important;height:680px}
  .wk .wk-card{width:340px!important;margin-left:0;left:0}
  .wk .wk-chat{width:340px!important;margin-left:0;left:0;top:20px;height:600px}
  .wk .wk-chat .win-h .faint{display:none}
  .tw{width:100%;height:520px;perspective:none}
  .tw .win{width:100%;height:440px}
  .tw .win.back{transform:translate(0,0) scale(.94)}
  .tw .win.front{transform:translate(0,60px)}
  .sf .sf-b{padding:0 14px 48px}
  .sf .sf-h .faint:first-of-type{display:none}
  .tw .win-h .faint{display:none}
  .f .wgl{flex-wrap:wrap;row-gap:4px}
  .f .ck{grid-template-columns:minmax(0,1fr);gap:4px}
  .f .code{white-space:pre-wrap;word-break:break-all}
  .f .row.wrap-p{flex-wrap:wrap}
  .home{overflow-x:auto;height:560px;display:block}
  .home .sb{display:none}
  .home .hm{width:900px}
  .bd{overflow-x:auto}
  .bd-top{flex-wrap:wrap;row-gap:6px}
  .bd-cols{grid-template-columns:repeat(5,220px);width:max-content;height:520px}
}
/* reduced motion, in tiers: movement goes, fades and loading indicators stay, nothing teleports (durations near zero, never zero) */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .rv,.rv.armed,.bd.rv .col{opacity:1;transform:none}
  .f .qw{transition:opacity .15s var(--ease-std)!important;transition-duration:.15s!important}
  .f .qw.gone{transform:none}
  .sf .d .di{transition:opacity .15s var(--ease-std)!important;transform:none}
  .tw .win,.tw .l>*{transition:opacity .15s var(--ease-std)!important;transform:none!important}
  .wk .wk-card,.wk .cp,.wk .wk-chat{transition:opacity .15s var(--ease-std)!important;transform:none!important}
  .wk .cursor{display:none}
  .tw .win.back{opacity:.7}
  .tw .budget i{animation:none;transform:scaleX(.34)}
  .sf .reason .caret{animation:none!important}
  .spin,.pulse{animation:none!important;opacity:1}
  .f .glyph::after{animation:none!important;content:'\273B'}
  .nq .panel{animation:none}
  [data-theme] .btn:hover,[data-theme] .btn:active{transform:none}
}

@media (prefers-color-scheme: light){[data-theme="auto"]{--bg:#f4f4f8;--panel:#fafafc;--surface:#ffffff;--raised:#eeeef4;--line:rgba(28,29,43,.08);--line2:rgba(28,29,43,.15);--text:#1d1e2c;--muted:#565a6e;--faint:#6f7389;--accent:#5d52b0;--accent-ink:#463c96;--accent-tint:#ecebfa;--warn:oklch(0.56 0.13 65);--warn-tint:oklch(0.95 0.04 80);--ok:oklch(0.52 0.11 155);--ok-tint:oklch(0.95 0.03 155);--danger:oklch(0.54 0.16 25);--danger-tint:oklch(0.95 0.03 25);--canvas:#e6e6ee;--shadow:0 0 0 1px rgba(28,29,43,.10),0 10px 30px rgba(28,29,43,.10);--code:#f3f3f8;--lit:radial-gradient(1100px 640px at 78% -200px,color-mix(in srgb,var(--accent) 14%,transparent),transparent 62%),var(--bg)}
[data-theme="auto"] .btn-primary{color:#fff}
[data-theme="auto"] .tag-accent{background:var(--accent-tint);color:var(--accent-ink)}
[data-theme="auto"] .tag-neutral{background:var(--raised);color:var(--muted)}
[data-theme="auto"] .chk input:checked{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 6.2l2.3 2.3 4.7-5' fill='none' stroke='%23ffffff' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
[data-theme="auto"] .wk .wk-chat .composer.typing .snd{color:#fff}
[data-theme="auto"] .wk .cp-strip .b.p.mini{color:#fff}
[data-theme="auto"] .tw .composer .snd{color:#fff}}
