.bench{position:relative;display:grid;gap:18px;padding:18px var(--gutter) 28px;max-width:1500px;margin:0 auto}.bench-words{display:grid;gap:14px;align-content:start}.bench h1{font-size:clamp(56px,17vw,132px);line-height:.86;letter-spacing:-.02em;text-shadow:0 0 .03em var(--halo),0 0 .2em var(--halo-2),0 0 .62em var(--halo-2)}.bench h1 em{font-style:italic;color:var(--signal)}.bench .lead{font-size:18px;max-width:34ch;color:var(--ink-2)}.bench .lead strong{color:var(--ink);font-weight:600}.tray{position:relative;height:min(64svh,122vw);min-height:380px;margin:0 calc(var(--gutter) * -.5);touch-action:pan-y;user-select:none;-webkit-user-select:none}.tray:before{content:"";position:absolute;inset:6% 8%;background:radial-gradient(closest-side,#4a0d0544,transparent);pointer-events:none}:root[data-room=light] .tray:before{display:none}.tray-canvas{position:absolute;inset:0;width:100%;height:100%;outline:none;cursor:grab}.tray-canvas:focus-visible{outline:2px solid var(--signal);outline-offset:-6px}.tray-still{position:absolute;inset:8% 14%;width:72%;height:84%;object-fit:contain;opacity:0;transition:opacity .3s}.no-gl .tray-still{opacity:1}.tray-hint{position:absolute;left:0;right:0;top:80%;text-align:center;pointer-events:none;font:400 clamp(26px,6vw,40px)/1 var(--display);font-style:italic;color:#1c0300;opacity:0;transition:opacity .5s}.is-live .tray-hint{opacity:.85}.is-live .tray-hint.is-gone{opacity:0}:root[data-room=light] .tray-hint{color:#17100e}:root[data-room=light] .is-live .tray-hint:not(.is-gone){opacity:.55}.ghost{position:absolute;left:-26px;top:-26px;width:52px;height:52px;border-radius:50%;background:radial-gradient(circle at 40% 35%,#ffffff40,#ffffff10 60%,transparent 70%);box-shadow:0 0 0 1px #fff2;pointer-events:none;opacity:0;transition:opacity .35s}.tray-status{display:flex;align-items:center;gap:10px;min-height:28px}.dial{width:26px;height:26px;flex:none;color:var(--dial);filter:drop-shadow(0 0 3px #b9ff8f66)}:root[data-room=light] .dial{color:#2a6b28;filter:none}.dial-hand{transform-origin:13px 13px}.tray-status .edge{color:var(--ink-2)}.bench-tools{display:grid;gap:14px}.bench-row{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center}.say{min-height:1.5em;font-size:15px;color:var(--ink-2);max-width:46ch}.card{display:grid;gap:6px;padding:14px 16px;border:1px solid var(--line-2);border-left:3px solid var(--signal);background:var(--room-2);max-width:460px}.card[hidden]{display:none}.card h2{font-size:38px}.card p{font-size:15px;color:var(--ink-2)}.card .edge{font-size:11px;color:var(--ink-3)}.card a.go{font-weight:600}@media(min-width:960px){.bench{grid-template-columns:minmax(360px,5fr) 7fr;grid-template-rows:auto 1fr;align-items:start;min-height:calc(100svh - var(--head));padding-top:40px}.bench{grid-template-rows:auto auto 1fr}.bench-words{grid-column:1;grid-row:1;padding-top:4vh}.bench-lead{grid-column:1;grid-row:2}.bench-tools{grid-column:1;grid-row:3;align-self:start}.tray{grid-column:2;grid-row:1 / span 3;height:min(calc(100svh - var(--head) - 60px),900px);margin:0}.bench h1{font-size:clamp(96px,10.5vw,176px)}.bench .lead{font-size:20px}}.back-only{display:none}.is-back .back-only{display:inline-flex}.btn[disabled]{opacity:.4;cursor:default;transform:none;box-shadow:none}.readout{min-height:1.4em;font-size:15px;color:var(--ink)}.packet{position:absolute;inset:0;z-index:3;display:grid;place-items:center;touch-action:none}.packet canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;cursor:ew-resize;filter:drop-shadow(0 24px 34px #0009)}.is-sealed .tray-hint,.is-sealed .ghost{display:none}.is-sealed .tray-canvas{cursor:ew-resize}.tear{width:fit-content}.tray.is-drawing,.tray.is-drawing canvas{touch-action:none}.tray-canvas{touch-action:pan-y}.no-gl .tray-hint,.no-gl .ghost,.no-gl [data-over],.no-gl [data-drop],.no-gl [data-lamp],.no-gl [data-tilt]{display:none!important}.bench-tools{display:flex;flex-direction:column;gap:14px}.bench-tools .card{order:5}.bench-tools .card h2{font-size:30px}.bench-tools .card [data-line]{display:none}@media(max-width:959px){.bench-tools .card{order:-1}}.is-sealed [data-drop],.is-sealed [data-fresh],.is-sealed [data-over],.is-sealed [data-photo]{visibility:hidden}
