.lab3d-body{background:var(--paper)}.lab3d{grid-template-rows:auto auto auto 1fr;grid-template-columns:minmax(0,1fr);min-height:100dvh;display:grid}.lab3d>*{min-width:0}.lab3d .bar{padding:2px var(--gutter);background:var(--paper);border-block-end:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;display:flex}.lab3d .bar h1{align-items:baseline;gap:10px;font-size:1.15rem;display:flex}.lab3d .bar .brand{color:var(--lak);font-size:1.35rem}.lab3d .bar .sub{font-family:var(--font-body);color:var(--mute);font-size:.85rem;font-weight:500}.lab3d .data-link{min-height:44px;color:var(--lak-deep);text-underline-offset:6px;align-items:center;font-size:.85rem;-webkit-text-decoration:underline dashed;text-decoration:underline dashed;display:inline-flex}.stage-wrap{background:var(--stage);height:64dvh;min-height:360px;position:relative}#stage{touch-action:none;background:var(--stage);width:100%;height:100%;display:block}.stage-wrap .notice{inset-inline:var(--gutter);color:var(--ink);text-align:center;pointer-events:none;margin:0;font-size:.75rem;line-height:1.5;position:absolute;inset-block-end:8px}.loader{color:var(--mute);place-content:center;justify-items:center;gap:10px;font-size:.9rem;display:grid;position:absolute;inset:0}.loader[hidden]{display:none}.loader .needle{background:repeating-linear-gradient(90deg, var(--lak) 0 10px, transparent 10px 16px);width:120px;height:6px;animation:1.4s steps(8,end) infinite stitch;-webkit-mask:linear-gradient(90deg,#000 0 0) 0 0/0% 100% no-repeat;mask:linear-gradient(90deg,#000 0 0) 0 0/0% 100% no-repeat}@keyframes stitch{to{-webkit-mask-size:100% 100%;mask-size:100% 100%}}@media (prefers-reduced-motion:reduce){.loader .needle{animation:none;-webkit-mask-size:100% 100%;mask-size:100% 100%}}.still-bar{inset-inline:var(--gutter);border-radius:var(--radius-m);background:var(--paper);box-shadow:0 6px 20px color-mix(in srgb, var(--ink) 12%, transparent);justify-content:space-between;align-items:center;gap:10px;padding:8px 12px;font-size:.85rem;display:flex;position:absolute;inset-block-start:10px}.still-bar[hidden]{display:none}.views{padding:10px var(--gutter) 4px;border-block-end:1px solid var(--line);background:var(--paper)}.lab3d .chip-row{scrollbar-width:none;gap:8px;padding-block:4px;display:flex;overflow-x:auto}.lab3d .chip{border:1px solid var(--line);background:var(--paper);min-height:44px;color:var(--ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;padding:0 16px;font-size:.9rem}.lab3d .chip[aria-pressed=true]{background:var(--lak-soft);color:var(--lak-deep);outline:2px dashed var(--lak);outline-offset:-5px;border-color:#0000;font-weight:700}.panel{padding:12px var(--gutter) 28px;grid-template-columns:minmax(0,1fr);align-content:start;gap:14px;display:grid}.panel>*{min-width:0}.panel .group h3{color:var(--mute);margin:0 0 2px;font-size:.85rem;font-weight:500}.actions{flex-wrap:wrap;gap:10px;display:flex}.actions button,.still-bar button{border-radius:var(--radius-s);min-height:44px;font:inherit;cursor:pointer;padding:0 18px;font-weight:700}.actions .primary{background:var(--lak);color:var(--paper);border:none;flex:100%}.actions .secondary{color:var(--lak-deep);border:1px solid var(--lak);background:0 0;flex:1}.still-bar .ghost{border:1px solid var(--line);min-height:44px;color:var(--ink);background:0 0;font-weight:500}.message{min-height:1.5em;color:var(--lak-deep);margin:0;font-size:.85rem}.still-out{gap:6px;margin:0;display:grid}.still-out[hidden]{display:none}.still-out img{border-radius:var(--radius-m);background:var(--stage);width:100%}.still-out a{color:var(--lak-deep);font-size:.85rem}.stats dl{gap:2px;margin:4px 0 0;font-size:.82rem;display:grid}.stats dl div{border-block-end:1px dashed var(--line);justify-content:space-between;gap:12px;padding-block:4px;display:flex}.stats dt{color:var(--mute)}.stats dd{text-align:end;overflow-wrap:anywhere;margin:0}.hint,.foot{color:var(--mute);margin:0;font-size:.75rem}@media (width>=900px){.lab3d{grid-template-rows:auto auto 1fr;grid-template-columns:minmax(0,1.5fr) minmax(320px,1fr);height:100dvh}.lab3d .bar{grid-column:1/-1}.stage-wrap{grid-area:2/1/4;height:auto}.views{grid-area:2/2}.panel{grid-area:3/2;overflow-y:auto}.lab3d .chip-row{flex-wrap:wrap}}
