:root{--bg:#0b0f1a;--surface:#121826;--surface-2:#1a2234;--ink:#f2f5fc;--ink-2:#a7b0c7;--ink-3:#7f8aa8;--hairline:#232b3f;--series-1:#3987e5;--series-2:#d95926;--accent:#7fb4f5;--font-display:"Bricolage Grotesque", "Instrument Sans", system-ui, sans-serif;--font-body:"Instrument Sans", system-ui, sans-serif;--font-mono:"Spline Sans Mono", ui-monospace, SFMono-Regular, monospace;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0}html{scrollbar-gutter:stable}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:15px;line-height:1.55}.app{flex-direction:column;max-width:1120px;min-height:100vh;margin:0 auto;padding:0 28px 40px;display:flex;position:relative}main{flex:1}.bg-glow{pointer-events:none;z-index:0;background:radial-gradient(52% 38% at 28% 4%,#3987e51c,#0000 70%),radial-gradient(40% 30% at 82% 90%,#4c6ef50f,#0000 70%);position:fixed;inset:0}main,.footer{z-index:1;position:relative}.topbar{z-index:10;justify-content:space-between;align-items:center;gap:20px;padding:22px 0 18px;display:flex;position:relative}.brand{font-family:var(--font-display);color:var(--ink);white-space:nowrap;align-items:baseline;gap:10px;font-size:19px;font-weight:700;text-decoration:none;display:flex}.brand-mark{background:radial-gradient(circle at 35% 35%, var(--accent), var(--series-1) 70%);border-radius:50%;align-self:center;width:12px;height:12px;box-shadow:0 0 12px #3987e5a6}.brand-sub{font-family:var(--font-body);color:var(--ink-3);letter-spacing:.02em;font-size:13px;font-weight:400}.search{width:min(420px,56vw);position:relative}.search-box{background:var(--surface);border:1px solid var(--hairline);border-radius:12px;align-items:center;gap:10px;padding:0 12px;transition:border-color .15s,box-shadow .15s;display:flex}.search-box:focus-within{border-color:#7fb4f58c;box-shadow:0 0 0 3px #3987e52e}.search-icon{width:16px;height:16px;color:var(--ink-3);flex:none}.search-box input{min-width:0;color:var(--ink);font:500 14px var(--font-body);background:0 0;border:none;outline:none;flex:1;padding:11px 0}.search-box input::placeholder{color:var(--ink-3)}.search-kbd{font:500 11px var(--font-mono);color:var(--ink-3);border:1px solid var(--hairline);background:#ffffff05;border-radius:6px;flex:none;padding:2px 6px}.search-results{background:var(--surface-2);border:1px solid var(--hairline);z-index:40;border-radius:14px;margin:0;padding:6px;list-style:none;position:absolute;top:calc(100% + 8px);left:0;right:0;overflow:hidden;box-shadow:0 18px 50px #00000080}.search-row{cursor:pointer;border-radius:9px;grid-template-columns:auto 1fr 52px;align-items:center;gap:12px;padding:9px 10px;display:grid}.search-row.is-active{background:#3987e524}.search-symbol{font:600 14px var(--font-mono);color:var(--ink)}.search-name{color:var(--ink-2);white-space:nowrap;text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.search-meter{background:#ffffff12;border-radius:2px;height:4px;overflow:hidden}.search-meter>span{background:var(--series-1);opacity:.85;border-radius:2px;height:100%;display:block}.search-none{color:var(--ink-2);padding:14px 12px;font-size:13px}.hero{max-width:720px;padding:9vh 0 40px;position:relative}.eyebrow{font:600 11.5px var(--font-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:0 0 18px}.hero h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0 0 22px;font-size:clamp(3rem,7.5vw,5.2rem);font-weight:800;line-height:.98}.hero-sub{color:var(--ink-2);max-width:540px;margin:0 0 30px;font-size:16.5px}.hero-curve{opacity:.55;pointer-events:none;width:min(620px,52vw);height:auto;position:absolute;top:6vh;right:-160px}.chips{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.chips-label{font:600 11.5px var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);margin-right:4px}.chip{background:var(--surface);border:1px solid var(--hairline);color:var(--ink);cursor:pointer;font-family:var(--font-body);border-radius:999px;align-items:baseline;gap:8px;padding:8px 14px;transition:border-color .15s,transform .15s,background .15s;display:inline-flex}.chip:hover:not(:disabled){border-color:#7fb4f580;transform:translateY(-1px)}.chip:disabled{opacity:.5;cursor:default}.chip.is-current{border-color:var(--series-1);background:#3987e51f}.chip-symbol{font:600 13px var(--font-mono)}.chip-hint{color:var(--ink-3);font-size:12px}.chips-compact .chip{padding:5px 11px}.chips-compact .chip-symbol{font-size:12px}.gene-head{padding:26px 0 6px}.gene-title-row{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:18px;display:flex}.gene-title{font-family:var(--font-display);letter-spacing:-.015em;margin:0 0 8px;font-size:clamp(2.4rem,5vw,3.6rem);font-weight:800;line-height:1}.gene-sub{flex-wrap:wrap;align-items:baseline;gap:14px;padding-bottom:4px;display:flex}.gene-name{color:var(--ink-2);font-size:14.5px}.gene-id{font:500 12.5px var(--font-mono);color:var(--ink-3);letter-spacing:.03em}.stat-row{grid-template-columns:repeat(4,1fr);gap:12px;margin:18px 0 14px;display:grid}.stat-tile{background:var(--surface);border:1px solid var(--hairline);border-radius:14px;padding:14px 16px 12px}.stat-label{color:var(--ink-3);margin-bottom:6px;font-size:12px}.stat-value{font-family:var(--font-display);font-size:24px;font-weight:700;line-height:1.1}.stat-unit{font-family:var(--font-body);color:var(--ink-2);font-size:12.5px;font-weight:400}.stat-note{color:var(--ink-3);margin-top:5px;font-size:12px}.chart-card{background:var(--surface);border:1px solid var(--hairline);border-radius:18px;padding:18px 18px 10px;overflow:hidden}.chart-head{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;padding:2px 6px 12px;display:flex}.chart-title{font-family:var(--font-display);font-size:17px;font-weight:700}.chart-meta{font:400 11.5px var(--font-mono);color:var(--ink-3);letter-spacing:.02em;margin-top:3px}.chart-controls{align-items:center;gap:10px;display:flex}.segmented{border:1px solid var(--hairline);background:#ffffff0a;border-radius:10px;padding:3px;display:inline-flex}.segmented button{color:var(--ink-2);font:500 12.5px var(--font-body);cursor:pointer;background:0 0;border:none;border-radius:7px;padding:6px 12px;transition:background .15s,color .15s}.segmented button.is-on{color:var(--ink);background:#3987e538}.ghost-btn{border:1px solid var(--hairline);color:var(--ink-2);font:500 12.5px var(--font-body);cursor:pointer;background:0 0;border-radius:10px;padding:8px 13px;transition:border-color .15s,color .15s}.ghost-btn:hover{color:var(--ink);border-color:#7fb4f580}.legend{gap:18px;padding:0 6px 10px;display:flex}.legend-item{color:var(--ink-2);align-items:center;gap:8px;font-size:12.5px;display:inline-flex}.legend-key{border-radius:2px;width:16px;height:3px}.legend-n{color:var(--ink-3);font:400 11.5px var(--font-mono)}.chart-wrap{transition:opacity .2s;position:relative}.chart-wrap.is-stale{opacity:.45}.chart-svg{border-radius:10px;display:block}.chart-svg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.chart-skeleton{height:320px;color:var(--ink-3);place-items:center;font-size:13.5px;display:grid}.chart-tooltip{background:var(--surface-2);border:1px solid var(--hairline);pointer-events:none;z-index:30;border-radius:12px;width:216px;padding:11px 13px;position:absolute;box-shadow:0 12px 34px #00000073}.tt-head{font:600 12.5px var(--font-mono);color:var(--ink);align-items:center;gap:7px;margin-bottom:6px;display:flex}.tt-muted{color:var(--ink-3);font-weight:400}.tt-dot{border-radius:50%;flex:none;width:8px;height:8px}.tt-value{font-family:var(--font-display);margin-bottom:7px;font-size:22px;font-weight:700;line-height:1.15}.tt-unit{font-family:var(--font-body);color:var(--ink-2);font-size:12px;font-weight:400}.tt-row{color:var(--ink-3);justify-content:space-between;align-items:center;gap:10px;padding:2.5px 0;font-size:12px;display:flex}.tt-row strong{color:var(--ink-2);text-align:right;font-weight:500}.tt-key{vertical-align:middle;border-radius:2px;width:12px;height:3px;margin-right:6px;display:inline-block}.table-section{margin:14px 0 0}.table-toggle{color:var(--ink-2);font:500 13px var(--font-body);cursor:pointer;background:0 0;border:none;align-items:center;gap:8px;padding:8px 4px;display:inline-flex}.table-toggle:hover{color:var(--ink)}.table-chevron{color:var(--ink-3);transition:transform .18s;display:inline-block}.table-chevron.is-open{transform:rotate(90deg)}.table-count{font:400 11.5px var(--font-mono);color:var(--ink-3)}.table-scroll{border:1px solid var(--hairline);background:var(--surface);border-radius:14px;max-height:340px;overflow:auto}.table-scroll table{border-collapse:collapse;width:100%;font-size:12.5px}.table-scroll th{background:var(--surface-2);color:var(--ink-3);font:600 11px var(--font-mono);letter-spacing:.07em;text-transform:uppercase;text-align:left;padding:9px 14px;position:sticky;top:0}.table-scroll td{color:var(--ink-2);border-top:1px solid #ffffff0a;padding:7px 14px}.table-scroll td:first-child{font-family:var(--font-mono);color:var(--ink)}.table-scroll .num{text-align:right;font-family:var(--font-mono);font-variant-numeric:tabular-nums}.error-card{color:var(--ink);background:#d03b3b17;border:1px solid #d03b3b59;border-radius:14px;margin:20px 0;padding:14px 18px;font-size:14px}.footer{border-top:1px solid var(--hairline);margin-top:34px;padding-top:18px}.footer p{color:var(--ink-3);max-width:760px;margin:0;font-size:12px}@media (width<=860px){.stat-row{grid-template-columns:repeat(2,1fr)}.hero-curve{display:none}}@media (width<=620px){.app{padding:0 16px 32px}.topbar{flex-wrap:wrap}.search{order:3;width:100%}.stat-row{grid-template-columns:1fr 1fr;gap:8px}.chart-card{padding:12px 10px 6px}.chips-compact{display:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important}}
