:root{--bg:#161616;--surface:#1e1e1e;--raised:#262626;--hover:#2e2e2e;--line:#2c2c2c;--line2:#3d3d3d;--text:#e8e8e8;--sub:#9a9a9a;--mute:#666;--black:#111;--accent:#f0f0f0;--on-accent:#111;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--r:4px;color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Hiragino Sans,Hiragino Kaku Gothic ProN,Noto Sans JP,Yu Gothic UI,Meiryo,sans-serif;font-size:13px}*{box-sizing:border-box}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}button,input{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.layout{grid-template-columns:7fr 3fr;grid-template-rows:56px minmax(0,1fr);min-width:1000px;height:calc(100vh - 30px);display:grid}.layout>.toolbar{grid-column:1/-1}.left{flex-direction:column;min-width:0;min-height:0;display:flex}.toolbar{background:var(--surface);border-bottom:1px solid var(--line);flex:none;justify-content:center;align-items:center;gap:8px;height:56px;padding:0 20px;display:flex;position:relative}.tb-center{align-items:center;gap:8px;display:flex}.tb-right{align-items:center;gap:8px;display:flex;position:absolute;top:0;bottom:0;right:20px}.brand{letter-spacing:.04em;white-space:nowrap;margin-right:16px;font-size:13px;font-weight:700}.tb-sep{flex:1}.docname{color:var(--sub);cursor:pointer;border-radius:var(--r);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;max-width:160px;padding:6px 10px;font-size:12px;overflow:hidden}.docname:hover{background:var(--hover);color:var(--text)}.btn{border:1px solid var(--line2);background:var(--raised);border-radius:var(--r);cursor:pointer;white-space:nowrap;height:32px;padding:0 14px;font-size:12.5px;transition:background .12s,border-color .12s}.btn:hover{background:var(--hover)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--on-accent);font-weight:600}.btn.primary:hover{background:#fff}.btn.small{height:26px;padding:0 10px;font-size:12px}.btn.ghost{color:var(--sub);border-color:#0000}.btn.icon{width:32px;padding:0;font-size:15px}.btn.wide{width:100%}.btn:disabled{opacity:.3;cursor:default;background:var(--raised)}.btn[hidden]{display:none}.viewport{flex:1;min-height:0;position:relative;overflow:hidden}.viewport canvas{outline:none;width:100%;height:100%;display:block;position:absolute;top:0;bottom:0;left:0;right:0}.seg{z-index:2;border:1px solid var(--line2);border-radius:var(--r);background:#1e1e1eeb;display:flex;position:absolute;overflow:hidden}.seg button{cursor:pointer;background:0 0;border:0;min-width:44px;height:30px;padding:0 12px;font-size:12px}.seg button+button{border-left:1px solid var(--line)}.seg button:hover{background:var(--hover)}.seg button.on{background:var(--accent);color:var(--on-accent)}.vp-views{top:16px;left:50%;transform:translate(-50%)}.vp-dims{z-index:2;color:var(--sub);font-variant-numeric:tabular-nums;letter-spacing:.02em;white-space:pre;font-size:11.5px;position:absolute;bottom:16px;left:18px}.vp-hint{z-index:2;color:var(--mute);font-size:11px;position:absolute;bottom:16px;right:18px}.panel{background:var(--surface);border-left:1px solid var(--line);flex-direction:column;min-width:0;min-height:0;display:flex}.ptabs{border-bottom:1px solid var(--line);flex:none;align-items:flex-end;gap:24px;height:48px;padding:0 24px;display:flex}.ptabs button{cursor:pointer;height:42px;color:var(--sub);background:0 0;border:0;border-bottom:2px solid #0000;padding:0 2px;font-size:13px}.ptabs button.on{border-bottom-color:var(--accent);color:var(--text);font-weight:600}.tab-cnt{color:var(--mute);font-size:11px;font-weight:400}.pbody{flex:1;padding:22px 24px 56px;overflow-y:auto}.tab[hidden]{display:none}.block{padding-bottom:18px}.block-h{justify-content:space-between;align-items:center;margin-bottom:4px;display:flex}.block-t{letter-spacing:.02em;font-size:12px;font-weight:600}.row{align-items:center;gap:10px;display:flex}.note{color:var(--sub);margin:6px 0 0;font-size:11px;line-height:1.65}.legend{align-items:flex-start;gap:8px;margin:0 0 14px;display:flex}.hatch-chip{border:1px solid var(--line2);background:repeating-linear-gradient(135deg,#5a5a5a 0 1px,#0000 1px 4px);flex:none;width:18px;height:10px;margin-top:3px}.smooth-l{color:var(--sub);font-size:11.5px}.sec{border-top:1px solid var(--line)}.sec-h{cursor:pointer;text-align:left;background:0 0;border:0;justify-content:space-between;align-items:center;width:100%;padding:15px 0;font-size:13px;font-weight:600;display:flex}.sec-h .cnt{color:var(--mute);font-size:11px;font-weight:400}.chev{border-right:1.5px solid var(--sub);border-bottom:1.5px solid var(--sub);width:6px;height:6px;margin:0 12px 3px 2px;transition:transform .15s;display:inline-block;transform:rotate(45deg)}.sec.closed .chev{margin-bottom:1px;transform:rotate(-45deg)}.sec.closed .sec-b{display:none}.sec-b{padding-bottom:14px}.pr{padding:4px 0 8px}.pr-head{justify-content:space-between;align-items:baseline;margin-bottom:2px;font-size:12px;display:flex}.pr-lr{color:var(--mute);font-variant-numeric:tabular-nums;font-size:10.5px}.sl{align-items:flex-start;gap:12px;display:flex}.sl-rail{flex:1;height:36px;position:relative}.sl-rail.compact{height:22px}.sl-track{background:#333;border-radius:2px;height:4px;position:absolute;top:9px;left:7px;right:7px}.sl-hatch{background:repeating-linear-gradient(135deg,#555 0 1px,#0000 1px 4px);height:10px;position:absolute;top:-3px}.sl-zero{background:#777;width:1px;height:12px;position:absolute;top:-4px}.sl-fill{background:var(--accent);border-radius:2px;height:100%;position:absolute;top:0}.sl-input{-webkit-appearance:none;appearance:none;cursor:pointer;background:0 0;width:100%;height:22px;margin:0;position:absolute;top:0;left:0}.sl-input:focus{outline:none}.sl-input::-webkit-slider-runnable-track{background:0 0;height:22px}.sl-input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);border:1.5px solid var(--accent);border-radius:50%;width:14px;height:14px;margin-top:4px;box-shadow:0 1px 3px #00000080}.sl-input:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #ffffff38}.sl-input::-moz-range-track{background:0 0;height:22px}.sl-input::-moz-range-thumb{background:var(--accent);border:1.5px solid var(--accent);border-radius:50%;width:11px;height:11px}.sl-ticks{pointer-events:none;height:16px;position:absolute;top:18px;left:7px;right:7px}.sl-ticks span{color:var(--mute);font-variant-numeric:tabular-nums;padding-top:5px;font-size:9px;position:absolute;top:0;transform:translate(-50%)}.sl-ticks span:before{content:"";background:#4a4a4a;width:1px;height:4px;position:absolute;top:0;left:50%}.sl-num{border:1px solid var(--line2);border-radius:var(--r);text-align:right;font-variant-numeric:tabular-nums;background:var(--raised);flex:none;width:58px;height:26px;padding:0 6px;font-size:12px}.sl-num:focus{outline:2px solid var(--accent);outline-offset:-1px}.sl.extra .sl-num{color:var(--sub);background:#1a1a1a;font-style:italic}.gene{background:var(--raised);border:1px solid var(--line);border-radius:6px;margin-top:12px;padding:10px 12px 4px}.gene-head{align-items:center;gap:12px;margin-bottom:6px;display:flex}.gene-thumb{background:#1a1a1a;border-radius:3px;flex:none;width:40px;height:56px}.gene-name{cursor:text;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:12.5px;font-weight:600;overflow:hidden}.gene-w{align-items:flex-start;gap:8px;display:flex}.gw-l{width:42px;color:var(--sub);flex:none;padding-top:4px;font-size:11px}.gene-w .sl{flex:1;gap:8px}.gene-w .sl-num{width:50px;height:22px}.gene-foot{flex-direction:column;gap:8px;margin-top:20px;display:flex}.row2{gap:8px;display:flex}.row2 .btn{flex:1}.empty{color:var(--mute);text-align:center;border:1px dashed var(--line2);border-radius:6px;margin:14px 0 0;padding:28px 8px;font-size:12px;line-height:1.8}.icon-x{border-radius:var(--r);cursor:pointer;width:26px;height:26px;color:var(--sub);background:0 0;border:0;flex:none;font-size:17px;line-height:1}.icon-x:hover{background:var(--hover);color:var(--text)}dialog.modal{width:min(440px,92vw);color:var(--text);background:var(--surface);border:0;border:1px solid var(--line2);border-radius:8px;padding:0;box-shadow:0 20px 60px #0009}dialog.modal::backdrop{background:#0000008c}.m-head{justify-content:space-between;align-items:center;padding:18px 20px 6px 24px;display:flex}.m-head h2{margin:0;font-size:15px}.m-body{padding:8px 24px 4px;font-size:13px;line-height:1.7}.m-body>.empty{margin-top:0}.m-actions{justify-content:flex-end;gap:8px;padding:18px 24px 22px;display:flex}.msg{white-space:pre-line;margin:0}.field{color:var(--sub);flex-direction:column;gap:6px;font-size:12px;display:flex}.text{border:1px solid var(--line2);border-radius:var(--r);height:38px;color:var(--text);background:var(--raised);padding:0 10px;font-size:14px}.text:focus{outline:2px solid var(--accent);outline-offset:-1px}.open-list{flex-direction:column;gap:6px;max-height:340px;display:flex;overflow-y:auto}.open-item{border:1px solid var(--line);border-radius:6px;align-items:center;gap:6px;padding-right:6px;display:flex}.oi-main{cursor:pointer;text-align:left;background:0 0;border:0;border-radius:6px;flex-direction:column;flex:1;align-items:flex-start;min-width:0;padding:10px 12px;display:flex}.oi-main:hover{background:var(--hover)}.oi-name{font-size:13px;font-weight:600}.oi-date{color:var(--mute);font-size:11px}.choices{flex-direction:column;gap:8px;padding-bottom:14px;display:flex}.choice{text-align:left;border:1px solid var(--line2);background:var(--raised);cursor:pointer;border-radius:6px;flex-direction:column;align-items:flex-start;gap:2px;padding:12px 14px;display:flex}.choice:hover{border-color:var(--accent)}.choice b{font-size:14px}.choice span{color:var(--sub);font-size:11.5px}.toast{background:var(--accent);color:var(--on-accent);opacity:0;pointer-events:none;z-index:100;border-radius:6px;max-width:80vw;padding:10px 16px;font-size:12.5px;transition:opacity .2s,transform .2s;position:fixed;bottom:28px;left:50%;transform:translate(-50%,10px)}.toast.show{opacity:1;transform:translate(-50%)}.ov{z-index:1;pointer-events:none;position:absolute;top:0;bottom:0;left:0;right:0}.ov[hidden]{display:none}.ov-svg{width:100%;height:100%;position:absolute;top:0;bottom:0;left:0;right:0;overflow:visible}.ov-curve{fill:none;stroke:#ffffff73;stroke-width:1.5px;stroke-dasharray:3 3}.ov-mark{stroke:var(--accent);stroke-width:2px}.ov-sl{pointer-events:auto;cursor:pointer;touch-action:none;outline:none;position:absolute}.ov-rail{border-radius:1px;position:absolute}.ov-h .ov-rail{height:2px;top:13px;left:0;right:0}.ov-v .ov-rail{width:2px;top:0;bottom:0;left:13px}.ov-pos .ov-rail{background:#ffffff4d}.ov-dot{background:var(--accent);border-radius:50%;width:14px;height:14px;transition:transform .1s;position:absolute;box-shadow:0 1px 4px #0009}.ov-h .ov-dot{margin-left:-7px;top:7px}.ov-v .ov-dot{margin-top:-7px;left:7px}.ov-pos:hover .ov-dot,.ov-pos.drag .ov-dot{transform:scale(1.3)}.ov-amt .ov-rail{background:#3a3a3a}.ov-h.ov-amt .ov-rail{height:4px;top:12px}.ov-v.ov-amt .ov-rail{width:4px;left:12px}.ov-hatch{background:repeating-linear-gradient(135deg,#ffffff4d 0 1px,#0000 1px 4px);position:absolute}.ov-h .ov-hatch{width:25%;height:10px;top:9px}.ov-h .ov-ha{left:0}.ov-h .ov-hb{right:0}.ov-v .ov-hatch{width:10px;height:25%;left:9px}.ov-v .ov-ha{bottom:0}.ov-v .ov-hb{top:0}.ov-zero{background:#fff9;position:absolute}.ov-h .ov-zero{width:1px;height:18px;top:5px;left:50%}.ov-v .ov-zero{width:18px;height:1px;top:50%;left:5px}.ov-fill{background:var(--accent);position:absolute}.ov-h .ov-fill{height:4px;top:12px}.ov-v .ov-fill{width:4px;left:12px}.ov-amt.neg .ov-fill{background:#8c8c8c}.ov-knob{background:var(--bg);border:2px solid var(--accent);width:14px;height:14px;transition:transform .1s;position:absolute;transform:rotate(45deg)}.ov-h .ov-knob{margin-left:-7px;top:7px}.ov-v .ov-knob{margin-top:-7px;left:7px}.ov-amt:hover .ov-knob,.ov-amt.drag .ov-knob{transform:rotate(45deg)scale(1.3)}.ov-pos:focus-visible .ov-dot{box-shadow:0 0 0 4px #ffffff47}.ov-amt:focus-visible .ov-knob{box-shadow:0 0 0 4px #ffffff47}.ov-end{color:var(--sub);white-space:nowrap;pointer-events:none;font-size:10px;position:absolute}.ov-h .ov-end{top:7px}.ov-h .ov-end-neg{right:calc(100% + 8px)}.ov-h .ov-end-pos{left:calc(100% + 8px)}.ov-v .ov-end{left:50%;transform:translate(-50%)}.ov-v .ov-end-neg{top:calc(100% + 5px)}.ov-v .ov-end-pos{bottom:calc(100% + 5px)}.ov-amt.extra+.ov-tag,.ov-amt.extra~.ov-tag{font-style:italic}.ov-clear{pointer-events:auto;height:22px;color:var(--sub);background:var(--raised);border:1px solid var(--line2);border-radius:var(--r);cursor:pointer;padding:0 10px;font-size:11px;position:absolute;transform:translate(-50%)}.ov-clear:hover:not(:disabled){color:var(--text);background:var(--hover)}.ov-clear:disabled{opacity:.35;cursor:default}.ov-links{pointer-events:auto;flex-direction:column;align-items:flex-start;gap:6px;display:flex;position:absolute;top:16px;left:16px}.ov-links[hidden]{display:none}.ov-lgroup{border:1px solid var(--line2);border-radius:var(--r);background:#1e1e1eeb;align-items:center;gap:4px;padding:3px 4px 3px 10px;display:flex}.ov-llabel{color:var(--sub);white-space:nowrap;margin-right:4px;font-size:11px}.ov-link{cursor:pointer;height:24px;color:var(--text);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:3px;padding:0 10px;font-size:11.5px}.ov-link:hover{background:var(--hover)}.ov-link.on{background:var(--accent);color:var(--on-accent)}.ov-tag{white-space:nowrap;color:var(--text);border:1px solid var(--line2);font-variant-numeric:tabular-nums;pointer-events:none;background:#161616e6;border-radius:3px;padding:1px 7px;font-size:11px;line-height:1.5;position:absolute}.ov-tag-v,.ov-tag-h{transform:translate(-50%,-100%)}
.credit{background:var(--surface);border-top:1px solid var(--line);height:30px;min-width:1000px;color:var(--sub);justify-content:center;align-items:center;gap:4px;font-size:11.5px;display:flex}.credit a{color:var(--text);text-decoration:none}.credit a:hover{text-decoration:underline}.exp3d{border-top:1px solid var(--line);flex-direction:column;gap:8px;margin-top:22px;padding-top:18px;display:flex}.exp3d .note{margin:0}.lang-seg{border:1px solid var(--line2);border-radius:var(--r);margin-right:10px;display:flex;overflow:hidden}.lang-seg button{cursor:pointer;height:26px;color:var(--sub);letter-spacing:.04em;background:0 0;border:0;padding:0 9px;font-size:11px;font-weight:600}.lang-seg button+button{border-left:1px solid var(--line2)}.lang-seg button:hover{background:var(--hover);color:var(--text)}.lang-seg button.on{background:var(--accent);color:var(--on-accent)}@supports (height:100dvh){.layout{height:calc(100dvh - 30px)}}
@media (max-width:1000px){.layout,.credit{min-width:0}.layout{grid-template-columns:3fr 2fr}.pbody{padding:18px 16px 40px}.ptabs{padding:0 16px}.vp-hint{display:none}.left>.ov-links{background:var(--surface);border-top:1px solid var(--line);flex:none;flex-flow:wrap;justify-content:center;gap:4px;padding:5px 6px;position:static}.left>.ov-links[hidden]{display:none}.ov-link{padding:0 6px;font-size:11px}}
@media (max-width:760px),(max-width:1000px) and (orientation:portrait){
.layout{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(220px,44%) minmax(0,1fr)}
.toolbar{height:auto;flex-direction:column;align-items:stretch;gap:8px;padding:8px 12px}
.tb-center{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;display:grid}
.tb-center .lang-seg{justify-self:start;margin-right:0}
.tb-center .brand{grid-column:2/5;align-self:center;margin-right:0;padding-right:150px;overflow:hidden}
.tb-center>.btn{min-width:0;height:36px;padding:0 4px;overflow:hidden;text-overflow:ellipsis}
.tb-right{gap:4px;height:32px;top:8px;bottom:auto;right:12px}
.docname{max-width:84px;padding:6px 4px}
.panel{border-left:0;border-top:1px solid var(--line)}
.ptabs{height:44px}.ptabs button{height:40px}
.vp-views{top:10px}.seg button{white-space:nowrap;min-width:0;padding:0 11px}.layout:has(.ov:not([hidden])){grid-template-rows:auto minmax(300px,64%) minmax(0,1fr)}
.vp-dims{bottom:8px;left:12px;font-size:10px}
.ov-tag{font-size:10px;padding:0 5px}
.ov-lgroup{padding:2px 2px 2px 6px;gap:0}.ov-llabel{margin-right:2px}
.toast{bottom:44px}
.credit{font-size:11px}
dialog.modal{width:calc(100vw - 24px)}.m-head{padding:16px 16px 4px 18px}.m-body{padding:6px 18px 4px}.m-actions{flex-wrap:wrap;padding:14px 18px 18px}
}
@media (max-width:380px){.tb-center .brand{font-size:12px;letter-spacing:0}.tb-center>.btn{font-size:11.5px}}
@media (pointer:coarse){
button,.sl-input,.ov-sl{touch-action:manipulation}
.ov-sl{touch-action:none}
.sl-rail{height:40px}.sl-rail.compact{height:26px}
.sl-input{height:26px}.sl-input::-webkit-slider-runnable-track{height:26px}
.sl-input::-webkit-slider-thumb{width:22px;height:22px;margin-top:2px}
.sl-input::-moz-range-thumb{width:20px;height:20px}
.sl-track{top:11px;left:11px;right:11px}.sl-ticks{top:22px;left:11px;right:11px}
.sl-num,.text{font-size:16px}.sl-num{height:30px}
.ov-dot,.ov-knob{width:18px;height:18px}
.ov-h .ov-dot,.ov-h .ov-knob{margin-left:-9px;top:5px}.ov-v .ov-dot,.ov-v .ov-knob{margin-top:-9px;left:5px}
.ov-link{height:30px}.ov-clear{height:28px}
.sec-h{padding:16px 0}
}
@media (max-height:500px) and (orientation:landscape){.layout{grid-template-rows:44px minmax(0,1fr);height:calc(100vh - 24px)}@supports (height:100dvh){.layout{height:calc(100dvh - 24px)}}.toolbar{height:44px}.toolbar .btn{height:30px}.credit{height:24px;font-size:10.5px}.vp-views{top:8px}.seg button{height:28px}.ptabs{height:40px}.ptabs button{height:36px}}
