.room{display:block}.room-hero{padding-top:clamp(1rem,1.6vw,2rem)}.room-hero__title{padding:clamp(2.25rem,3.2vw,4.5rem) 0 clamp(1.25rem,1.8vw,2.5rem)}.room-hero__foot{justify-content:space-between;align-items:baseline;gap:.5rem var(--sb-gutter);flex-wrap:wrap;padding-bottom:clamp(1rem,1.6vw,2rem);display:flex}.room-lede{max-width:var(--sb-measure);margin:0}.room-lede .sb-zh{color:var(--sb-ink)}.room-state{color:var(--sb-ink-dim);margin:0}.room-state[hidden]{display:none}.room-state .sb-zh,.room-state .sb-en{display:inline}.room-state .sb-en{margin-left:.45em}.room-body{padding-top:clamp(1.5rem,2.4vw,3rem)}.room-specimens{margin:0;padding:0;list-style:none}.room-specimen{gap:var(--sb-gutter);border-top:1px solid var(--sb-rule);grid-template-columns:3rem 4rem minmax(0,1fr);align-items:baseline;padding:1rem 0;display:grid}.room-specimen:first-child{border-top:0}.room-specimen__mark{height:calc(var(--sb-size-h2) * var(--sb-lh-h2));justify-content:center;align-self:start;align-items:center;display:flex}.room-specimen__id{font-family:var(--sb-mono);font-size:var(--sb-size-small);color:var(--sb-ink-dim)}.room-specimen__name .sb-zh{font-size:var(--sb-size-h2)}.room-specimen__who{color:var(--sb-ink-dim);font-size:var(--sb-size-small);margin:.35rem 0 0}.room-specimen__who .sb-num{font-family:var(--sb-mono)}@media (width<=620px){.room-specimen{grid-template-columns:2.5rem minmax(0,1fr)}.room-specimen__id{grid-column:1/-1}}.room-sheet{gap:calc(var(--sb-gutter) * 1.25) var(--sb-gutter);grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));margin:0;padding:0;list-style:none;display:grid}.room-plate{min-width:0}.room-plate canvas{width:100%;height:auto;display:block}.room-plate__line{font-size:var(--sb-size-small);grid-template-columns:2rem minmax(0,1fr);align-items:baseline;gap:.5rem;margin-top:.5rem;display:grid}.room-plate__n{font-family:var(--sb-mono);color:var(--sb-ink-dim)}.room-plate__name .sb-zh{color:var(--sb-ink)}.room-plate__plan{color:var(--sb-ink-dim);grid-column:2;align-items:center;gap:.4rem;display:flex}.sb-plan-mark .plot-mark{fill:none;stroke:var(--sb-ink);stroke-width:1.75px}.sb-plan-mark .plot-mark-fill{fill:var(--sb-ink);stroke:none}.sb-plan-mark{flex:none;display:block}.room-empty{max-width:var(--sb-measure);color:var(--sb-ink-dim)}
