.twin-grid{grid-template-columns:minmax(0,2.1fr) minmax(280px,1fr);align-items:start;gap:16px;display:grid}.twin{min-width:0;margin:0}.twin-stage{aspect-ratio:16/9;isolation:isolate;border:1px solid var(--hair);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:radial-gradient(72% 78% at 50% 42%,#0d2442 0%,#0a1d34 42%,#061525 72%,#03070f 100%);position:relative;overflow:hidden}.twin.grabbing .twin-stage{cursor:grabbing}.twin-stage:focus-visible{outline:1.5px solid var(--sig);outline-offset:3px}.twin-stage canvas{opacity:0;width:100%;height:100%;transition:opacity .6s var(--ease);position:absolute;inset:0}.twin.ready .twin-stage canvas{opacity:1}.twin-poster{transition:opacity .6s var(--ease);position:absolute;inset:0}.twin-poster img{object-fit:cover;width:100%;height:100%}.twin.ready .twin-poster{opacity:0;visibility:hidden;transition:opacity .6s var(--ease), visibility 0s .6s}.twin-tag,.twin-readout{z-index:2;font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--hair);pointer-events:none;background:#060d169e;padding:5px 9px;font-size:.66rem;position:absolute;top:14px}.twin-tag{left:14px}.twin-readout{font-variant-numeric:tabular-nums;right:14px}.twin-readout:empty{display:none}.twin-corners i{z-index:1;pointer-events:none;border:0 solid #ffc6288c;width:18px;height:18px;position:absolute}.twin-corners i:first-child{border-top-width:1px;border-left-width:1px;top:8px;left:8px}.twin-corners i:nth-child(2){border-top-width:1px;border-right-width:1px;top:8px;right:8px}.twin-corners i:nth-child(3){border-bottom-width:1px;border-left-width:1px;bottom:8px;left:8px}.twin-corners i:nth-child(4){border-bottom-width:1px;border-right-width:1px;bottom:8px;right:8px}.twin.loading .twin-stage:after{content:"";z-index:3;background:linear-gradient(90deg, transparent, var(--sig), transparent);background-repeat:no-repeat;background-size:40% 100%;height:2px;animation:1.1s linear infinite twinLoad;position:absolute;bottom:0;left:0;right:0}@keyframes twinLoad{0%{background-position:-40% 0}to{background-position:140% 0}}.twin-tools{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.twin-tools[hidden]{display:none}.twin-set{border:1px solid var(--hair-2);background:#0b1a2c8c;display:inline-flex}.twin-set+.twin-set{margin-left:0}.twin-tools button{appearance:none;border:0;border-right:1px solid var(--hair);color:var(--ink-2);min-width:44px;min-height:44px;font:500 .72rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0 12px;transition:background .25s,color .25s;display:inline-flex}.twin-tools button:last-child{border-right:0}.twin-tools button:hover{color:var(--ink);background:#ffc62814}.twin-tools button:focus-visible{outline:2px solid var(--sig);outline-offset:-3px}.twin-tools button[aria-pressed=true]{color:var(--navy);background:var(--sig)}.twin-tools svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:square;width:16px;height:16px}.twin figcaption{color:var(--ink-4);flex-wrap:wrap;justify-content:space-between;gap:6px 20px;margin-top:12px;font-size:.85rem;display:flex}.twin figcaption kbd{font-family:var(--mono);color:var(--ink-2);border:1px solid var(--hair-2);padding:0 5px;font-size:.75rem}.twin-status{font-family:var(--mono);letter-spacing:.08em;color:var(--ink-3);font-size:.72rem}.twin.no-gl .twin-stage{cursor:default}.twin:not(.ready) .twin-help{display:none}.twin-record{border:1px solid var(--hair);background:#0b1a2c73;min-width:0}.twin-record .hd,.spec2 .hd{border-bottom:1px solid var(--hair);font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);background:#0b1f3399;justify-content:space-between;align-items:center;gap:10px;padding:14px 18px;font-size:.66rem;display:flex}.twin-record dl{margin:0}.twin-record .r{border-bottom:1px solid var(--hair);gap:4px;padding:12px 18px;display:grid}.twin-record dt{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);font-size:.7rem}.twin-record dd{color:var(--ink);font-variant-numeric:tabular-nums;overflow-wrap:break-word;margin:0;font-size:.92rem}.twin-record dd.src{color:var(--ink-2);font-size:.76rem}.twin-record .note{color:var(--ink-4);padding:12px 18px 16px;font-size:.8rem}.spec2 .spec-stage{border-bottom:1px solid var(--hair);font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);justify-content:space-between;align-items:center;gap:10px;padding:12px 20px;font-size:.7rem;display:flex}.spec2 .spec-stage>span:first-child{align-items:center;gap:8px;display:inline-flex}.spec2 dt{align-items:baseline;gap:12px;display:flex}.spec2 dt .ix{color:var(--sig);opacity:.8;font-size:.62rem}.spec2 dd{font-variant-numeric:tabular-nums}@media (width<=960px){.twin-grid{grid-template-columns:1fr}}@media (width<=640px){.twin-stage{aspect-ratio:4/3}.twin-tag,.twin-readout{padding:4px 7px;font-size:.66rem;top:10px}.twin-tag{text-overflow:ellipsis;white-space:nowrap;max-width:calc(100% - 20px);left:10px;overflow:hidden}.twin-readout{top:auto;bottom:10px;right:10px}.twin-tools{gap:6px}.twin-tools button{min-width:44px;padding:0 10px}}@media (prefers-reduced-motion:reduce){.twin-stage canvas,.twin-poster{transition:none}.twin.loading .twin-stage:after{background-position:50% 0;animation:none}}.register{border:1px solid var(--hair);background:#0b1a2c73;overflow-x:auto}.register table{border-collapse:collapse;width:100%;min-width:640px}.register th,.register td{text-align:left;border-bottom:1px solid var(--hair);color:var(--ink-2);vertical-align:middle;padding:14px 18px;font-size:.9rem}.register thead th{font-family:var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-4);background:#0b1f3399;font-size:.64rem;font-weight:500}.register tbody tr:last-child>*{border-bottom:0}.register tbody th a{color:var(--ink);font-weight:600}.register tbody th a:hover{color:var(--sig)}.register td.mono{font-family:var(--mono);font-size:.76rem}.register td .dot{margin-right:6px}
