:root{color-scheme:light dark;--bg: #f4f7f4;--surface: #ffffff;--surface-2: #e7eee8;--text: #13201a;--text-muted: #4a5b51;--primary: #1b5e4b;--primary-soft: #d7e8df;--on-primary: #ffffff;--accent: #eb6834;--accent-ink: #a8431a;--on-accent: #1a0d06;--link: #1b5e4b;--ring: #1b5e4b;--border: #cfdad2;--border-strong: #68796e;--ok: #15803d;--warn: #a16207;--bad: #b91c1c;--info: #1b5e4b;--viz-1: #12907a;--viz-2: #eb6834;--font-sans: "Fira Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--font-display: "Fraunces", Georgia, "Times New Roman", serif;--hero-bg: #0f3328;--hero-fg: #f4f7f4;--hero-muted: #b8cfc3;--hero-mint: #6fcaa2;--landing-header-h: 64px;--font-mono: "Fira Code", ui-monospace, "SF Mono", Menlo, monospace;--s1: 4px;--s2: 8px;--s3: 12px;--s4: 16px;--s5: 24px;--s6: 32px;--radius: 10px;--header-h: 56px;--sidebar-w: 232px;--row-h: 36px;--t-fast: .15s;--ease: cubic-bezier(.22, 1, .36, 1)}@media (prefers-color-scheme: dark){:root{--bg: #0d1511;--surface: #141f19;--surface-2: #1d2c24;--text: #e8f0ea;--text-muted: #a2b5a9;--primary: #6fcaa2;--primary-soft: #1d3a2e;--on-primary: #0d1511;--accent: #f07a45;--accent-ink: #f59a70;--on-accent: #1a0d06;--link: #7fd4ad;--ring: #7fd4ad;--border: #28392f;--border-strong: #6d8b7a;--ok: #4ade80;--warn: #e0a93b;--bad: #f87171;--info: #6fcaa2;--viz-1: #3aa380;--viz-2: #d95926}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;background:var(--bg);color:var(--text);font:400 15px/1.55 var(--font-sans)}h1,h2,h3,h4{line-height:1.25;margin:0;font-weight:600;text-wrap:balance}h2{font-size:1.4rem}h3{font-size:1.05rem}h4{font-size:.95rem}p{margin:0 0 var(--s3)}ul,ol{margin:0 0 var(--s3);padding-left:1.2em}code,.mono{font-family:var(--font-mono);font-size:.88em}a{color:var(--link)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px;border-radius:4px}h1[tabindex="-1"]:focus,h2[tabindex="-1"]:focus,h3[tabindex="-1"]:focus{outline:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.skip{position:absolute;left:var(--s3);top:-48px;background:var(--primary);color:var(--on-primary);padding:var(--s2) var(--s3);border-radius:var(--radius);z-index:100}.skip:focus{top:var(--s2)}.shell{min-height:100dvh}.topbar{display:flex;align-items:center;gap:var(--s5);padding:0 var(--s5);min-height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:var(--s2);font-weight:700;letter-spacing:-.01em;white-space:nowrap}.brand .logo{color:var(--primary)}.topnav ul{list-style:none;margin:0;padding:0;display:flex;gap:var(--s1)}.navlink{display:flex;align-items:center;gap:var(--s2);min-height:var(--header-h);padding:0 var(--s3);border:0;border-bottom:3px solid transparent;background:transparent;color:var(--text-muted);font:500 .95rem var(--font-sans);cursor:pointer;white-space:nowrap;transition:color var(--t-fast) ease}.navlink:hover{color:var(--text)}.navlink[aria-current=page]{color:var(--text);border-bottom-color:var(--primary);font-weight:600}.navlink .num{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font:600 .75rem var(--font-mono);border:1px solid var(--border-strong)}.navlink[aria-current=page] .num{background:var(--primary);color:var(--on-primary);border-color:var(--primary)}main{padding:var(--s5);max-width:1100px;width:100%;margin:0 auto}.page-head{margin-bottom:var(--s4)}.page-head p{color:var(--text-muted);max-width:66ch;margin-top:var(--s1)}.subnav{display:flex;gap:var(--s1);margin-bottom:var(--s4);border-bottom:1px solid var(--border)}.subnav button{border:0;background:transparent;color:var(--text-muted);font:500 .92rem var(--font-sans);padding:var(--s2) var(--s3);min-height:40px;cursor:pointer;border-bottom:3px solid transparent;margin-bottom:-1px}.subnav button[aria-current=page]{color:var(--text);border-bottom-color:var(--primary);font-weight:600}footer.app-foot{margin-top:var(--s6);padding-top:var(--s3);border-top:1px solid var(--border);color:var(--text-muted);font-size:.85rem}@media (max-width: 760px){.topbar{flex-wrap:wrap;gap:0 var(--s3);padding:var(--s2) var(--s3) 0}.topnav{width:100%;overflow-x:auto}.topnav ul{gap:0}.navlink{min-height:44px;padding:0 var(--s2);gap:6px;font-size:.9rem}.navlink .num{width:20px;height:20px;font-size:.7rem}main{padding:var(--s4)}}.steps{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin:var(--s4) 0}.step-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4);display:flex;flex-direction:column;gap:var(--s2)}.step-card .actions{margin-top:auto;padding-top:var(--s2)}.step-card .big{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--primary);color:var(--on-primary);font:600 1rem var(--font-mono)}.step-card p{color:var(--text-muted);margin:0}.step-card .status{font-size:.85rem;min-height:1.4em}.statusline{display:flex;flex-wrap:wrap;gap:var(--s2);margin-bottom:var(--s3)}details.more{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin-bottom:var(--s3)}details.more>summary{cursor:pointer;padding:0 var(--s4);min-height:44px;display:flex;align-items:center;gap:var(--s2);font-weight:500;list-style:none}details.more>summary::-webkit-details-marker{display:none}details.more>summary:before{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(-45deg);transition:transform var(--t-fast) ease}details.more[open]>summary:before{transform:rotate(45deg)}details.more>.body{padding:0 var(--s4) var(--s4)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4);margin-bottom:var(--s3)}.card>h3{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s3)}.card .sub{color:var(--text-muted);font-size:.88rem;margin:calc(var(--s2) * -1) 0 var(--s3)}.grid{display:grid;gap:var(--s3) var(--s4);grid-template-columns:repeat(auto-fit,minmax(210px,1fr))}.cols-2{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(340px,1fr));align-items:start}.stats{display:grid;gap:var(--s3);grid-template-columns:repeat(auto-fit,minmax(170px,1fr));margin-bottom:var(--s3)}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s3) var(--s4)}.stat .label{color:var(--text-muted);font-size:.82rem;display:flex;gap:var(--s2);align-items:center}.stat .value{font:600 1.7rem/1.2 var(--font-mono);letter-spacing:-.02em}.stat .hint{color:var(--text-muted);font-size:.8rem}.row{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:center}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.muted{color:var(--text-muted)}.field{display:grid;gap:var(--s1);margin-bottom:var(--s3);align-content:start}.field>label,.field>.label{font-size:.85rem;font-weight:500}.field .hint{color:var(--text-muted);font-size:.8rem}.field .err{color:var(--bad);font-size:.82rem;display:flex;gap:var(--s1);align-items:center}input,select,textarea{width:100%;min-height:40px;padding:var(--s2) var(--s3);border:1px solid var(--border-strong);border-radius:var(--radius);background:var(--surface);color:var(--text);font:inherit}textarea{min-height:84px;resize:vertical}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:var(--bad);box-shadow:0 0 0 1px var(--bad)}input[type=file]{padding:var(--s2)}input[type=checkbox]{width:18px;min-height:18px;accent-color:var(--primary)}.check{display:flex;gap:var(--s2);align-items:center;font-size:.9rem;margin-bottom:var(--s3)}.seg{display:inline-flex;border:1px solid var(--border-strong);border-radius:var(--radius);overflow:hidden;margin-bottom:var(--s3)}.seg button{border:0;border-radius:0;background:transparent;color:var(--text);min-height:36px;padding:0 var(--s3)}.seg button[aria-pressed=true]{background:var(--primary);color:var(--on-primary)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);min-height:40px;padding:0 var(--s4);border-radius:var(--radius);border:1px solid var(--primary);background:var(--primary);color:var(--on-primary);font:500 .95rem var(--font-sans);cursor:pointer;transition:filter var(--t-fast) ease,background var(--t-fast) ease}.btn:hover:not(:disabled){filter:brightness(1.12)}.btn:active:not(:disabled){filter:brightness(.95)}.btn.secondary{background:transparent;color:var(--text);border-color:var(--border-strong)}.btn.secondary:hover:not(:disabled){background:var(--surface-2);filter:none}.btn:disabled{opacity:.55;cursor:not-allowed}.btn.small{min-height:32px;padding:0 var(--s3);font-size:.85rem}@media (max-width: 860px){.btn,input,select{min-height:44px}}.alert{display:flex;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--radius);border:1px solid var(--border-strong);background:var(--surface);margin-bottom:var(--s3)}.alert .icon{flex:none;margin-top:2px}.alert.error{border-color:var(--bad)}.alert.error .icon{color:var(--bad)}.alert.warn{border-color:var(--warn)}.alert.warn .icon{color:var(--warn)}.alert.info .icon{color:var(--info)}.alert .alert-title{font-weight:600}.empty{display:grid;justify-items:center;gap:var(--s2);text-align:center;padding:var(--s5) var(--s4);color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius)}.empty h4{color:var(--text)}.skeleton{background:linear-gradient(90deg,var(--surface-2),var(--border),var(--surface-2));background-size:200% 100%;border-radius:6px;height:1em;animation:shimmer 1.4s linear infinite}@keyframes shimmer{to{background-position:-200% 0}}.spinner{width:16px;height:16px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.skeleton,.spinner{animation-duration:3s}*{transition-duration:.01ms!important;scroll-behavior:auto!important}}.badge{display:inline-flex;align-items:center;gap:var(--s1);padding:2px var(--s2);border-radius:999px;font-size:.78rem;font-weight:600;border:1px solid currentColor;white-space:nowrap;background:color-mix(in srgb,currentColor 10%,var(--surface))}.badge.strong{color:var(--ok)}.badge.moderate{color:var(--warn)}.badge.limited{color:var(--bad)}.badge.neutral{color:var(--text-muted)}.table-wrap{overflow:auto;max-height:440px;border:1px solid var(--border);border-radius:var(--radius)}table{width:100%;border-collapse:collapse;font-size:.88rem}th,td{text-align:left;padding:0 var(--s3);height:var(--row-h);white-space:nowrap;border-bottom:1px solid var(--border)}th{position:sticky;top:0;background:var(--surface-2);font-weight:600;z-index:1}tbody tr:hover{background:var(--surface-2)}td.wrap{white-space:normal;min-width:220px;padding:var(--s2) var(--s3);height:auto}td.num,th.num{text-align:right;font-family:var(--font-mono)}.map{position:relative;margin:var(--s3) 0}.map-axis,.map-row{display:grid;grid-template-columns:64px 1fr;align-items:center;gap:var(--s2)}.map-axis{height:18px;color:var(--text-muted);font:.72rem var(--font-mono)}.map-scale{position:relative;height:100%;border-bottom:1px solid var(--border)}.map-scale span{position:absolute;bottom:3px;transform:translate(-50%);white-space:nowrap}.map-scale span:first-child{transform:none}.map-scale span.last{transform:translate(-100%)}.map-scale i{position:absolute;bottom:-1px;width:1px;height:4px;background:var(--border-strong)}.map-name{font:.74rem var(--font-mono);color:var(--text-muted);overflow:hidden;text-overflow:ellipsis}.map-track{position:relative;height:24px;touch-action:pan-y}.map-track .bar{position:absolute;left:0;top:8px;height:8px;background:var(--border-strong);opacity:.35;border-radius:0 4px 4px 0}.map-track svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.map-track .tick{stroke:var(--viz-1);stroke-width:1.5;fill:none;vector-effect:non-scaling-stroke}.map-track .hit{stroke:var(--viz-2);stroke-width:2.5;fill:none;vector-effect:non-scaling-stroke}.map-track .active{stroke:var(--text);stroke-width:3;fill:none;vector-effect:non-scaling-stroke}.map-tip{position:absolute;z-index:5;pointer-events:none;transform:translate(-50%,-100%);background:var(--surface);border:1px solid var(--border-strong);border-radius:6px;padding:6px 10px;font-size:.8rem;box-shadow:0 2px 10px #00000026;width:max-content;max-width:250px}.map-tip strong{display:block;font:600 .85rem var(--font-mono)}.map-tip span{color:var(--text-muted)}.map-legend{display:flex;flex-wrap:wrap;gap:var(--s4);font-size:.8rem;color:var(--text-muted);margin-top:var(--s2)}.map-legend i{display:inline-block;width:3px;height:12px;margin-right:6px;vertical-align:-2px}tbody tr:focus-visible{outline-offset:-2px}tbody tr.is-active{background:var(--surface-2)}input[type=file]::file-selector-button{margin-right:var(--s3);border:1px solid var(--border-strong);background:var(--surface-2);color:var(--text);border-radius:6px;padding:4px 12px;font:500 .85rem var(--font-sans);cursor:pointer}.pathway-wrap{display:grid;gap:var(--s3);grid-template-columns:1fr}@media (min-width: 900px){.pathway-wrap.has-side{grid-template-columns:2fr 1fr}}.pathway{height:440px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}dl.kv{margin:0;font-size:.85rem}dl.kv dt{color:var(--text-muted)}dl.kv dd{margin:0 0 var(--s2);word-break:break-word}.legend{display:flex;flex-wrap:wrap;gap:var(--s4);font-size:.82rem;color:var(--text-muted);margin:var(--s2) 0 var(--s3)}.legend svg{vertical-align:middle;margin-right:6px}.banner{display:flex;gap:var(--s3);align-items:flex-start;border:1px solid color-mix(in srgb,var(--warn) 45%,var(--border));background:color-mix(in srgb,var(--warn) 9%,var(--surface));padding:var(--s3) var(--s4);border-radius:var(--radius);margin-bottom:var(--s4)}.banner .icon{color:var(--warn);flex:none;margin-top:2px}.report-list li{margin-bottom:var(--s1)}.kbd{font:.78rem var(--font-mono);border:1px solid var(--border-strong);border-radius:4px;padding:0 5px}.brand{color:var(--text);text-decoration:none}.landing{min-height:100dvh;display:flex;flex-direction:column}.wrap{width:100%;max-width:1040px;margin:0 auto;padding-inline:var(--s5)}.landing-top{position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--hero-bg) 94%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid color-mix(in srgb,var(--hero-fg) 12%,transparent);color:var(--hero-fg)}.landing-top-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s3);max-width:1040px;margin:0 auto;padding:0 var(--s5);min-height:var(--landing-header-h)}.landing-top .brand{color:var(--hero-fg)}.landing-top .brand .logo{color:var(--hero-mint)}.landing-top .btn.secondary{color:var(--hero-fg);border-color:color-mix(in srgb,var(--hero-fg) 40%,transparent)}.landing-top .btn.secondary:hover:not(:disabled){background:color-mix(in srgb,var(--hero-fg) 10%,transparent)}.landing main{flex:1;font-size:1.06rem;max-width:none;padding:0}.big-btn{min-height:48px;padding:0 var(--s5);font-size:1rem;text-decoration:none}.btn.accent{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600;box-shadow:0 6px 18px -8px var(--accent)}.btn.accent:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}.btn{transition:filter var(--t-fast) ease,background var(--t-fast) ease,transform var(--t-fast) var(--ease)}.btn:active:not(:disabled){transform:translateY(0)}.case{background:var(--bg);padding:calc(var(--s6) * 1.7) 0}.case h2,.honest-sec h2{font-size:clamp(1.7rem,3vw,2.3rem);line-height:1.1;margin-bottom:var(--s5);max-width:24ch}.spread{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}.sp{display:flex;flex-direction:column;border-radius:calc(var(--radius) * 1.6);padding:var(--s6)}.sp.host{background:var(--hero-bg);color:var(--hero-fg)}.sp.donor{background:var(--surface);border:1px solid var(--border)}.sp p{margin:0}.sp .role{font-size:.85rem;font-weight:600;color:var(--text-muted)}.sp.host .role,.sp.host .common{color:var(--hero-muted)}.sp h3{font-family:var(--font-display);font-style:italic;font-weight:600;font-size:clamp(1.5rem,2.4vw,2rem);line-height:1.1;margin-top:var(--s3)}.sp .common{color:var(--text-muted);margin-top:var(--s1)}.sp .count{display:flex;align-items:baseline;gap:var(--s3);margin:var(--s5) 0 var(--s3)}.sp .count b{font:600 clamp(4rem,8vw,6rem)/.9 var(--font-display);letter-spacing:-.03em}.sp .count span{font-size:1.1rem;color:var(--text-muted)}.sp.host .count b{color:var(--hero-mint)}.sp.host .count span{color:var(--hero-muted)}.sp.donor .count b{color:var(--accent-ink)}.chrom-row{width:100%;max-width:300px;height:auto;display:block;margin-bottom:var(--s4)}.sp.host .chrom-row rect{fill:var(--hero-mint);opacity:.85}.sp.donor .chrom-row rect{fill:var(--accent)}.sp .blurb{font-size:1.05rem}.sp .trad{margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border);font-size:.95rem}.sp.host .trad{border-top-color:color-mix(in srgb,var(--hero-fg) 22%,transparent)}.sp .trad .src{display:block;margin-top:var(--s1);font:.8rem var(--font-mono);color:var(--text-muted)}.sp.host .trad .src{color:var(--hero-muted)}.chips{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2)}.chips li{padding:4px 14px;border-radius:999px;font-size:.9rem;border:1px solid var(--border-strong)}.sp.host .chips li{border-color:color-mix(in srgb,var(--hero-fg) 38%,transparent)}.question{margin-top:calc(var(--s6) * 1.5);max-width:940px}.question h3{font-family:var(--font-display);font-weight:500;font-size:clamp(1.5rem,3vw,2.2rem);line-height:1.22;letter-spacing:-.01em;margin-bottom:var(--s4)}.question p{color:var(--text-muted);max-width:62ch}.honest-sec{background:var(--surface);border-block:1px solid var(--border);padding:calc(var(--s6) * 1.7) 0}.promises{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s6) calc(var(--s6) * 1.5)}.promises h3{font-family:var(--font-display);font-size:1.4rem;margin-bottom:var(--s3)}.promises ul{list-style:none;margin:0;padding:0}.promises li{display:grid;grid-template-columns:32px 1fr;gap:var(--s3);align-items:start;padding:var(--s4) 0;border-top:1px solid var(--border)}.promises li:last-child{border-bottom:1px solid var(--border)}.promises .ic{display:grid;place-items:center;width:32px;height:32px;border-radius:50%}.promises .do .ic{background:var(--primary-soft);color:var(--primary)}.promises .dont .ic{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent-ink)}.closer{background:var(--hero-bg);color:var(--hero-fg);padding:calc(var(--s6) * 2) 0 var(--s6)}.closer-in{display:flex;align-items:center;justify-content:space-between;gap:var(--s5);flex-wrap:wrap}.closer h2{font-size:clamp(2rem,4vw,3rem);margin:0 0 var(--s2);color:var(--hero-fg)}.closer p{margin:0;color:var(--hero-muted)}.landing-foot{background:var(--hero-bg);color:var(--hero-muted);border-top:1px solid color-mix(in srgb,var(--hero-fg) 14%,transparent);padding:var(--s5) 0 var(--s6)}.foot-in{max-width:1040px;margin:0 auto;padding-inline:var(--s5);display:flex;justify-content:space-between;align-items:flex-end;gap:var(--s4);flex-wrap:wrap}.foot-brand{display:flex;align-items:center;gap:var(--s2);margin:0 0 var(--s3);color:var(--hero-fg);font-weight:700}.foot-brand .logo{color:var(--hero-mint)}.made{margin:0;color:var(--hero-fg);font-size:1.1rem}.made strong{font-weight:600}.foot-note{margin:0;font-size:.85rem;max-width:44ch;text-align:right}@media (max-width: 860px){.hero-grid{grid-template-columns:1fr;gap:var(--s5)}.timeline li:before{display:none}}@media (max-width: 760px){body{font-size:16px}.wrap,.landing-top-in{padding-inline:var(--s4)}.hero{padding-top:var(--s5)}.cta{padding:var(--s5)}}.rhero{padding:var(--s2) 0 var(--s4);border-bottom:1px solid var(--border);margin-bottom:var(--s3)}.rhero h3{font-size:1.45rem;letter-spacing:-.01em;max-width:32ch;margin-bottom:var(--s3)}.rhero .row{margin-bottom:var(--s3)}.rsec{padding:var(--s4) 0;border-bottom:1px solid var(--border)}.rsec h3{display:flex;align-items:center;gap:var(--s2);margin-bottom:var(--s2)}.rsec.limits{background:var(--surface-2);border:0;border-radius:var(--radius);padding:var(--s4);margin:var(--s4) 0}.rsec .report-list,.fig{margin:0}.fig svg{width:100%;height:auto;display:block}.fig figcaption{color:var(--text-muted);font-size:.8rem;margin-top:var(--s2);max-width:48ch}.fig-bar{fill:var(--viz-1);opacity:.38}.fig-bar.host{opacity:.62}.fig-gene{fill:var(--viz-2)}.fig-slot{fill:color-mix(in srgb,var(--viz-2) 14%,transparent);stroke:var(--viz-2);stroke-width:1.5;stroke-dasharray:3 2}.fig-arrow{fill:none;stroke:var(--text-muted);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.fig-route{fill:none;stroke:var(--text-muted);stroke-width:1.5;stroke-linecap:round;stroke-dasharray:4 5}.fig-label{fill:var(--text-muted);font:14.5px var(--font-sans)}.fig-role{fill:var(--text);font:600 14px var(--font-sans)}.fig-dot{fill:var(--viz-2)}@media (prefers-reduced-motion: no-preference){.hero .fig-bar{transform-box:fill-box;transform-origin:bottom;animation:grow .7s var(--ease) both}.hero .fig-gene{animation:pop .5s var(--ease) .9s both}.hero .fig-dot{offset-rotate:0deg;animation:travel 2.4s cubic-bezier(.65,0,.35,1) 1.3s 2 both}}@keyframes grow{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes pop{0%{opacity:0;transform:scale(.4)}to{opacity:1;transform:scale(1)}}.hero .fig-gene{transform-box:fill-box;transform-origin:center}@keyframes travel{0%{offset-distance:0%;opacity:0}12%{opacity:1}78%{opacity:1}to{offset-distance:100%;opacity:0}}@keyframes rise{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.map-more{font-size:.82rem;color:var(--text-muted);margin:var(--s2) 0 0}.linkish{background:none;border:0;padding:0;color:var(--link);font:inherit;text-decoration:underline;cursor:pointer;min-height:24px}.map-track .dens{fill:var(--viz-1)}.map-legend .ramp{width:44px;height:8px;margin-right:6px;vertical-align:0;background:linear-gradient(90deg,color-mix(in srgb,var(--viz-1) 18%,transparent),var(--viz-1));border-radius:2px}.g3d-stage{position:relative;width:100%;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.g3d-stage canvas:focus-visible{outline:2px solid var(--ring);outline-offset:-2px}.g3d-note{font-size:.82rem;margin:var(--s2) 0 0;max-width:64ch}.visual{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4);margin:var(--s3) 0}.visual svg{width:100%;height:auto;display:block}.fig-gene-label{fill:var(--text);font:600 13px var(--font-mono)}.fig-arrow.dashed{stroke-dasharray:5 5}.visual-title{font-size:.95rem;margin:var(--s3) 0 var(--s2);color:var(--text-muted);font-weight:500}.meter{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--s2)}.meter li{display:grid;gap:6px;justify-items:start;padding:var(--s2) var(--s3);border:1px solid var(--border);border-radius:var(--radius)}.meter-label{font-size:.8rem;color:var(--text-muted)}.topbar{background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.stat .value{color:var(--primary)}.num,td.num,th.num,.stat .value,.datapanel dd{font-variant-numeric:tabular-nums}p,li{text-wrap:pretty}.navlink{transition:color var(--t-fast) ease,border-color var(--t-fast) var(--ease)}.navlink[aria-current=page]{border-bottom-color:var(--accent)}.subnav button{transition:color var(--t-fast) ease,border-color var(--t-fast) var(--ease)}.subnav button[aria-current=page]{border-bottom-color:var(--accent)}tbody tr{transition:background var(--t-fast) ease}button,.btn,summary,select,label[for],.navlink{cursor:pointer}button:disabled,.btn:disabled{cursor:not-allowed}.btn:active:not(:disabled){transform:scale(.97)}@keyframes reveal{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: no-preference){.explain-card,.alert,.table-wrap,.visual,.rhero{animation:reveal .24s var(--ease) both}details.more[open]>.body{animation:reveal .2s var(--ease) both}.simbar i{transition:width .5s var(--ease)}}@media (prefers-reduced-motion: reduce){.hero .fig-dot{display:none}}.workspace{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:var(--s5);align-items:start;margin-top:var(--s4)}.journey{list-style:none;margin:0;padding:0;display:grid;gap:0}.journey li{display:grid;grid-template-columns:40px 1fr;gap:var(--s4);padding-bottom:var(--s5);position:relative}.journey li:not(:last-child):before{content:"";position:absolute;left:19px;top:40px;bottom:0;width:2px;background:var(--border)}.journey .mark{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;border:2px solid var(--border-strong);background:var(--surface);font:600 1rem var(--font-mono);color:var(--text-muted)}.journey li.done .mark{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.journey li.next .mark{border-color:var(--accent);color:var(--accent-ink);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 18%,transparent)}.journey h3{font-size:1.15rem;margin-bottom:2px}.journey p{color:var(--text-muted);margin:0 0 var(--s2);max-width:52ch}.journey .state{display:inline-flex;align-items:center;gap:var(--s1);font-size:.82rem;font-weight:600;margin-bottom:var(--s2);color:var(--text-muted)}.journey li.done .state{color:var(--primary)}.journey li.next .state{color:var(--accent-ink)}.datapanel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:var(--s4) var(--s5);position:sticky;top:calc(var(--header-h) + var(--s4))}.datapanel h3{font-size:1rem;margin-bottom:var(--s3);display:flex;justify-content:space-between;align-items:center;gap:var(--s2)}.datapanel dl{margin:0;display:grid;grid-template-columns:1fr auto;gap:var(--s2) var(--s4)}.datapanel dt{color:var(--text-muted);font-size:.9rem;align-self:baseline}.datapanel dd{margin:0;font:600 1.15rem var(--font-mono);text-align:right;color:var(--text)}.datapanel .health{display:flex;flex-wrap:wrap;gap:var(--s2);margin-top:var(--s4);padding-top:var(--s3);border-top:1px solid var(--border)}@media (max-width: 860px){.workspace{grid-template-columns:1fr}.datapanel{position:static}}.simbar-cell{display:flex;align-items:center;gap:var(--s2);justify-content:flex-end}.simbar{display:block;width:84px;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden;flex:none}.simbar i{display:block;height:100%;background:var(--viz-1);border-radius:3px}.simbar.mutual i{background:var(--viz-2)}.nextbar{display:flex;justify-content:space-between;align-items:center;gap:var(--s3);margin-top:var(--s6);padding-top:var(--s4);border-top:1px solid var(--border)}.nextbar .row{gap:var(--s3)}.explain{margin:var(--s3) 0}.explain-card{margin-top:var(--s2);padding:var(--s3) var(--s4);border:1px solid var(--border);border-radius:var(--radius);background:var(--primary-soft);color:var(--text);max-width:68ch}.explain-card p{margin:0 0 var(--s2)}.explain-note{font-size:.82rem;margin:var(--s2) 0 0;display:flex;gap:var(--s1);align-items:center}.landing h2,.landing .journey-caps h3{font-family:var(--font-display);font-weight:600;letter-spacing:-.01em}.hero{position:relative;overflow:hidden;isolation:isolate;background:var(--hero-bg);color:var(--hero-fg);padding:clamp(32px,6vw,72px) 0 clamp(40px,7vw,88px)}.hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(50% 65% at 76% 48%,color-mix(in srgb,var(--hero-mint) 20%,transparent),transparent 72%)}.hero .wrap{max-width:1180px}.hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:var(--s6);align-items:center;min-height:min(620px,74vh)}.hero h1{font-family:var(--font-display);font-weight:600;font-optical-sizing:auto;font-size:clamp(2rem,3.3vw,2.9rem);line-height:1.07;letter-spacing:-.02em;max-width:none;margin:0 0 var(--s5);color:var(--hero-fg)}.hero h1 .line{display:block;overflow:hidden;padding-bottom:.1em;margin-bottom:-.1em}.hero h1 .line>span{display:block}.hero .lead{font-size:1.2rem;color:var(--hero-muted);max-width:50ch;margin:0 0 var(--s5)}.hero-note{color:var(--hero-muted);font-size:.9rem;margin:var(--s3) 0 0}.btn.ghost{background:transparent;color:var(--hero-fg);border-color:color-mix(in srgb,var(--hero-fg) 45%,transparent)}.btn.ghost:hover:not(:disabled){background:color-mix(in srgb,var(--hero-fg) 10%,transparent);filter:none}.hero-visual{position:relative;height:clamp(340px,62vh,600px)}.hero-helix{width:100%;height:100%}.hero-pause{position:absolute;right:0;bottom:0;min-height:32px;padding:6px 14px;border-radius:999px;border:1px solid color-mix(in srgb,var(--hero-fg) 40%,transparent);background:color-mix(in srgb,var(--hero-bg) 70%,transparent);color:var(--hero-fg);font:500 .85rem var(--font-sans);transition:background var(--t-fast) ease}.hero-pause:hover{background:color-mix(in srgb,var(--hero-fg) 12%,transparent)}@keyframes line-in{to{transform:none}}@keyframes fade-in{to{opacity:1}}@media (prefers-reduced-motion: no-preference){.hero h1 .line>span{transform:translateY(108%);animation:line-in .76s var(--ease) forwards}.hero .lead,.hero .row,.hero-note{opacity:0;animation:fade-in .6s ease-out .62s forwards}}@media (max-width: 860px){.hero-grid{grid-template-columns:1fr;min-height:0}.hero-visual{height:340px;order:-1}.spread,.promises{grid-template-columns:1fr}.sp{padding:var(--s5)}.foot-note{text-align:left}}.journey-story{position:relative;height:300vh;background:var(--bg)}.journey-stage{position:sticky;top:var(--landing-header-h);height:calc(100vh - var(--landing-header-h));height:calc(100dvh - var(--landing-header-h));max-width:1180px;margin:0 auto;padding-inline:var(--s5);display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:var(--s6);align-items:center;--p1: 0;--p2: 0;--p3: 0}.journey-copy h2{font-size:1.7rem;margin-bottom:var(--s5)}.journey-caps{list-style:none;margin:0;padding:0;position:relative;min-height:250px}.journey-caps li{position:absolute;inset:0 0 auto 0;opacity:0;transform:translateY(10px);pointer-events:none;transition:opacity .32s var(--ease),transform .32s var(--ease)}.journey-caps li.on{opacity:1;transform:none;pointer-events:auto}.cap-n{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--primary);color:var(--on-primary);font:600 .95rem var(--font-mono)}.journey-caps li:last-child .cap-n{background:var(--accent);color:var(--on-accent)}.journey-caps h3{font-size:1.6rem;line-height:1.15;margin:var(--s3) 0 var(--s2)}.journey-caps p{color:var(--text-muted);max-width:42ch}.journey-dots{display:flex;gap:var(--s2);margin-top:var(--s5)}.journey-dots i{width:28px;height:4px;border-radius:2px;background:var(--border);transition:background .32s var(--ease)}.journey-dots i.on{background:var(--primary)}.journey-fig{margin:0}.journey-fig svg{width:100%;height:auto;display:block}.g-bar{transform-box:fill-box;transform-origin:bottom;transform:scaleY(var(--p1))}.g-gene{transform-box:fill-box;transform-origin:center;opacity:var(--p2);transform:scale(calc(.6 + .4 * var(--p2)))}.g-slot{opacity:clamp(0,calc((var(--p3) - .35) * 2.5),1)}.g-arrow{opacity:clamp(0,calc((var(--p3) - .92) * 12.5),1)}.g-dot{offset-rotate:0deg;offset-distance:calc(var(--p3) * 100%);opacity:clamp(0,calc(var(--p3) * 20),1)}.journey-legend{list-style:none;margin:var(--s3) 0 0;padding:0;display:flex;flex-wrap:wrap;gap:var(--s2) var(--s5);font-size:.95rem}.journey-legend li{display:flex;align-items:center;gap:var(--s2)}.journey-legend i{display:inline-block;width:14px;height:10px;border-radius:2px}.lg-gene{opacity:var(--p2)}.lg-gene i{background:var(--viz-2)}.lg-slot{opacity:clamp(0,calc((var(--p3) - .35) * 2.5),1)}.lg-slot i{border:1.5px dashed var(--viz-2);background:color-mix(in srgb,var(--viz-2) 14%,transparent)}.journey-note{color:var(--text-muted);font-size:.82rem;margin:var(--s2) 0 0}.journey-story.still{height:auto}.journey-story.still .journey-stage{position:static;height:auto;padding-block:var(--s6)}.journey-story.still .journey-caps{min-height:0;display:grid;gap:var(--s5)}.journey-story.still .journey-caps li{position:static;opacity:1;transform:none;pointer-events:auto}.journey-story.still .journey-dots{display:none}.journey-story.still .lg-gene,.journey-story.still .lg-slot{opacity:1}@media (max-width: 860px){.journey-stage{grid-template-columns:1fr;align-content:start;gap:var(--s4);padding-top:var(--s4)}.journey-fig{order:-1}.journey-caps{min-height:230px}.journey-caps h3{font-size:1.35rem}}@media (max-width: 760px){.foot-in{padding-inline:var(--s4)}}
