.room-intro{max-width:40rem;padding-block:clamp(1rem,5vw,3.5rem) 1rem}.room-intro h1{margin-bottom:.5em}.room-note{color:var(--ink-soft)}kbd{border:1px solid var(--line-strong);background:var(--paper);min-width:1.7em;font-family:var(--sans);text-align:center;color:var(--ink);border-bottom-width:2px;border-radius:4px;padding:.1em .45em;font-size:.85em;font-weight:500;line-height:1.4;display:inline-block}html.room-open,html.room-open body{overscroll-behavior:none;overflow:hidden}.room-stage{z-index:200;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;background:#d9d1c4;outline:none;position:fixed;inset:0}.room-canvas{opacity:0;cursor:grab;touch-action:none;width:100%;height:100%;transition:opacity .6s;display:block}.room-stage.is-running .room-canvas{opacity:1}.room-stage.is-locked .room-canvas{cursor:none}.room-start{z-index:2;text-align:center;pointer-events:none;justify-items:center;gap:.9rem;width:max-content;max-width:calc(100% - 2rem);transition:opacity .7s,visibility linear;display:grid;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.room-start.is-gone{opacity:0;visibility:hidden;transition:opacity .7s,visibility 0s linear .7s}.room-start-how{border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);font-family:var(--sans);text-wrap:balance;color:var(--ink);background:#f8f5efdb;margin:0;padding:.85rem 1.3rem;font-size:1rem;line-height:1.6}.room-loading{font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin:0;font-size:.72rem}.room-leave{top:max(1rem, env(safe-area-inset-top));right:max(1rem, env(safe-area-inset-right));background:color-mix(in srgb, var(--paper) 82%, transparent);-webkit-backdrop-filter:blur(6px);min-height:2.5rem;padding:.55rem 1.1rem;position:absolute}.room-crosshair{pointer-events:none;background:#ffffffd9;border-radius:50%;width:6px;height:6px;margin:-3px 0 0 -3px;transition:transform .15s;position:absolute;top:50%;left:50%;box-shadow:0 0 0 1px #2b272373}.room-crosshair.is-on{transform:scale(1.5)}.room-click-hint{left:50%;top:max(1.4rem, env(safe-area-inset-top));border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;white-space:nowrap;color:var(--ink-soft);pointer-events:none;background:#f8f5efdb;margin:0;padding:.4rem .9rem;font-size:.72rem;animation:.6s both room-hint-in;position:absolute;transform:translate(-50%)}.room-others{left:max(1rem, env(safe-area-inset-left));top:max(1.15rem, calc(env(safe-area-inset-top) + .4rem));border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);font-family:var(--sans);letter-spacing:.06em;color:var(--ink-soft);pointer-events:none;background:#f8f5efb8;margin:0;padding:.35rem .75rem;font-size:.7rem;animation:.6s both room-hint-in;position:absolute}.room-roomnote{left:50%;top:max(1.4rem, env(safe-area-inset-top));border-radius:var(--radius);font-family:var(--sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-soft);pointer-events:none;background:#f8f5efdb;margin:0;padding:.4rem .9rem;font-size:.72rem;animation:2.6s forwards room-note;position:absolute;transform:translate(-50%)}@keyframes room-note{0%{opacity:0}12%,80%{opacity:1}to{opacity:0}}.room-hud{left:50%;bottom:max(1.1rem, calc(env(safe-area-inset-bottom) + .6rem));pointer-events:none;justify-items:center;gap:.6rem;width:min(30rem,100% - 2rem);display:grid;position:absolute;transform:translate(-50%)}.room-hud>*{pointer-events:auto}.room-aim{border-radius:var(--radius);-webkit-backdrop-filter:blur(6px);max-width:100%;color:var(--ink);text-align:center;pointer-events:none;background:#f8f5efd6;border:0;justify-items:center;gap:.1rem;margin:0;padding:.45rem .9rem .5rem;display:grid}button.room-aim{min-height:0;font:inherit;letter-spacing:normal;text-transform:none;pointer-events:auto;cursor:pointer}.room-aim-title{max-width:100%;font-family:var(--serif);white-space:nowrap;text-overflow:ellipsis;font-size:1rem;line-height:1.25;overflow:hidden}.room-aim-meta,.room-aim-price{font-family:var(--sans);color:var(--ink-soft);font-size:.78rem;font-weight:300}.room-aim-price{color:var(--ink);font-weight:500}.room-aim-price.is-sold{color:var(--sold)}.room-aim-how{font-family:var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-size:.66rem}@keyframes room-hint-in{0%{opacity:0}}.room-stage.is-touch{--stick:136px;--knob:56px;--stick-b:max(28px, calc(env(safe-area-inset-bottom) + 12px));--stick-l:max(28px, calc(env(safe-area-inset-left) + 16px));--stick-r:max(28px, calc(env(safe-area-inset-right) + 16px));--bar-t:max(12px, calc(env(safe-area-inset-top) + 4px));--chip:44px}.room-stick{bottom:var(--stick-b);width:var(--stick);height:var(--stick);opacity:.72;pointer-events:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;background:#2b272324;border:1.5px solid #ffffffb3;border-radius:50%;transition:opacity .15s,transform .18s cubic-bezier(.2,.9,.3,1);position:absolute;box-shadow:0 1px 10px #2b27231f}.room-stick.is-move{left:var(--stick-l)}.room-stick.is-look{right:var(--stick-r)}.room-stage:not(.is-look-stick) .room-stick.is-look{display:none}.room-stick.is-move:before{content:"";border:1px dashed #ffffff4d;border-radius:50%;position:absolute;inset:8%}.room-stage:not(.is-running) .room-stick{visibility:hidden}.room-stick.is-active{opacity:1;transition:opacity .1s}.room-stick-knob{width:var(--knob);height:var(--knob);margin:calc(var(--knob) / -2) 0 0 calc(var(--knob) / -2);pointer-events:none;background:#f8f5efe0;border-radius:50%;transition:transform .16s cubic-bezier(.3,1.4,.6,1);position:absolute;top:50%;left:50%;box-shadow:0 2px 8px #0003}.room-stick.is-active .room-stick-knob{transition:none}.room-stick.is-look .room-stick-knob:after{content:"";background:#2b272359;border-radius:50%;position:absolute;inset:38%}.room-stick.is-running .room-stick-knob{background:#fffffffa;box-shadow:0 0 0 6px #ffffff47,0 2px 8px #0003}.room-look-hint{left:calc(50% + 10px);right:var(--stick-r);top:24%;bottom:calc(var(--stick-b) + 8px);pointer-events:none;background:#2b27230f;border:1.5px dashed #ffffff73;border-radius:22px;place-items:center;animation:.6s .8s both room-hint-in;display:grid;position:absolute}.room-look-hint span{border-radius:var(--radius);font-family:var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft);background:#f8f5efcc;padding:.35rem .75rem;font-size:.62rem}.room-look-hint span:before,.room-look-hint span:after{content:"←";margin-right:.45em}.room-look-hint span:after{content:"→";margin:0 0 0 .45em}.room-steps{left:50%;top:var(--bar-t);gap:8px;margin:0;display:flex;position:absolute;transform:translate(-50%)}.room-step{width:var(--chip,44px);height:var(--chip,44px);min-height:0;font-family:var(--serif);letter-spacing:0;color:var(--ink);touch-action:manipulation;background:#f8f5efd6;border:1px solid #ffffffb3;border-radius:50%;place-items:center;padding:0 0 .2rem;font-size:1.6rem;line-height:1;display:grid}button.room-step:hover{background:#f8f5eff2;border-color:#ffffffe6}.room-stage.is-touch .room-leave{top:var(--bar-t);min-height:var(--chip);border-radius:calc(var(--chip) / 2);-webkit-backdrop-filter:none;touch-action:manipulation;background:#f8f5efd6;border-color:#ffffffb3;padding:0 1.1rem;font-size:.66rem}.room-gear{left:max(12px, calc(env(safe-area-inset-left) + 4px));top:var(--bar-t);width:var(--chip);height:var(--chip);min-height:0;color:var(--ink);touch-action:manipulation;background:#f8f5efd6;border:1px solid #ffffffb3;border-radius:50%;padding:0;position:absolute}button.room-gear:hover,button.room-gear.is-open{background:var(--paper);border-color:var(--ink)}.room-stage.is-touch .room-others,.room-stage.is-touch .room-roomnote{top:calc(var(--bar-t) + var(--chip) + 10px)}.room-settings{left:max(12px, calc(env(safe-area-inset-left) + 4px));top:calc(var(--bar-t) + var(--chip) + 8px);z-index:2;width:min(18rem,100% - 24px);max-height:calc(100% - var(--bar-t) - var(--chip) - 20px);border-radius:var(--radius);font-family:var(--sans);color:var(--ink);accent-color:var(--ink);touch-action:manipulation;background:#f8f5eff7;padding:.9rem 1rem .6rem;font-size:.85rem;position:absolute;overflow-y:auto;box-shadow:0 10px 30px #1e181238}.room-settings-row{gap:.3rem;margin-bottom:.5rem;display:grid}.room-settings-row>span{justify-content:space-between;display:flex}.room-settings-row output{font-variant-numeric:tabular-nums;color:var(--ink-soft)}.room-settings-row input[type=range]{width:100%;min-height:44px;margin:0}.room-settings-check,.room-settings-mode label{align-items:center;gap:.6rem;min-height:44px;display:flex}.room-settings-check input,.room-settings-mode input{width:1.15rem;height:1.15rem;margin:0}.room-settings-mode{border:0;flex-wrap:wrap;column-gap:1.25rem;margin:.2rem 0 0;padding:0;display:flex}.room-settings-mode legend{width:100%;color:var(--ink-soft);margin-bottom:.1rem;padding:0}.room-settings-actions{justify-content:space-between;align-items:center;margin:.4rem 0 0;display:flex}.room-settings-actions .button-quiet{min-height:44px;padding:0 1.1rem}.room-settings-actions .link-button{letter-spacing:.08em;min-height:44px;font-size:.8rem}.room-stage.is-touch .room-hud{bottom:calc(var(--stick-b) + var(--stick) + .7rem);gap:.45rem}.room-stage.is-touch .room-aim{padding:.35rem .75rem .4rem}.room-stage.is-touch .room-aim-title{font-size:.92rem}.room-stage.is-touch .room-aim-meta,.room-stage.is-touch .room-aim-price{font-size:.72rem}@media (width<=22.5rem){.room-stage.is-touch{--stick:120px;--knob:52px;--stick-l:max(20px, calc(env(safe-area-inset-left) + 12px));--stick-r:max(20px, calc(env(safe-area-inset-right) + 12px))}}@media (orientation:landscape) and (height<=30rem){.room-hud{left:0;right:0;bottom:max(.5rem, calc(env(safe-area-inset-bottom) + .25rem));gap:.3rem;width:auto;transform:none}.room-stage.is-touch{--stick:128px;--knob:54px;--stick-b:max(16px, calc(env(safe-area-inset-bottom) + 4px));--stick-l:max(44px, calc(env(safe-area-inset-left) + 12px));--stick-r:max(44px, calc(env(safe-area-inset-right) + 12px));--bar-t:max(10px, env(safe-area-inset-top))}.room-stage.is-touch .room-hud{left:calc(var(--stick-l) + var(--stick) + .75rem);right:calc(var(--stick-r) + var(--stick) + .75rem);bottom:calc(var(--stick-b) + .25rem)}.room-stage.is-touch .room-aim{align-items:baseline;gap:.6rem;padding:.25rem .7rem;display:flex}.room-stage.is-touch .room-aim-meta,.room-stage.is-touch .room-aim-how{display:none}.room-look-hint{top:20%}}.room-overlay{border-radius:var(--radius);background:var(--paper);width:min(64rem,100% - 2rem);max-height:calc(100% - 2rem);color:var(--ink);border:0;padding:0;box-shadow:0 24px 60px #1e181240}.room-overlay::backdrop{background:#201c188c}.room-overlay-inner{grid-template-columns:minmax(0,1.6fr) minmax(14rem,1fr);gap:clamp(1.25rem,3vw,2.5rem);padding:clamp(1rem,3vw,2rem);display:grid}.room-overlay-media{background:var(--paper-2);justify-content:center;align-items:center;min-height:0;display:flex}.room-overlay-media img{object-fit:contain;max-width:100%;max-height:min(72vh,44rem);display:block}.room-overlay-text{align-self:center}.room-overlay-text h2{margin-bottom:.5rem}.room-overlay-meta{font-family:var(--sans);color:var(--ink-soft);margin:0 0 .2rem;font-size:.9rem;font-weight:300}.room-overlay-price{font-family:var(--sans);margin:1rem 0 1.5rem;font-size:1.15rem;font-weight:500}.room-overlay-price.is-sold{color:var(--sold)}.room-overlay-actions{flex-wrap:wrap;gap:.75rem;margin:0;display:flex}@media (width<=44rem){.room-overlay-inner{grid-template-columns:1fr}.room-overlay-media img{max-height:50vh}}@media (prefers-reduced-motion:reduce){.room-canvas{transition:none}}.room-mel-prompt{border-left:3px solid #a65136}.room-mel-prompt kbd{margin-left:.35rem;font-size:.72rem}.room-mel{inset:auto max(1rem, calc(env(safe-area-inset-right) + .5rem)) max(1rem, calc(env(safe-area-inset-bottom) + .5rem)) auto;border-radius:var(--radius);width:min(23rem,100% - 2rem);max-height:min(34rem,100% - 2rem);color:var(--ink);background:#f8f5eff7;border:0;margin:0;padding:0;position:fixed;box-shadow:0 16px 44px #1e18123d}.room-mel::backdrop{background:0 0}.room-mel[open]{display:flex}.room-mel-inner{flex-direction:column;width:100%;min-height:0;display:flex}.room-mel-head{border-bottom:1px solid var(--line);justify-content:space-between;align-items:flex-start;gap:.75rem;padding:.85rem .9rem .6rem 1rem;display:flex}.room-mel-head h2{font-family:var(--serif);margin:0;font-size:1.25rem;font-weight:500;line-height:1.2}.room-mel-sub{font-family:var(--sans);color:var(--muted);margin:.1rem 0 0;font-size:.74rem;font-weight:300}.room-mel-close{width:2.25rem;height:2.25rem;min-height:0;color:var(--ink-soft);cursor:pointer;background:0 0;border:0;border-radius:50%;place-items:center;padding:0;display:grid}.room-mel-close:hover,.room-mel-close:focus-visible{background:var(--paper-3);color:var(--ink)}.room-mel-log{overscroll-behavior:contain;flex-direction:column;flex:auto;gap:.5rem;min-height:7rem;padding:.8rem 1rem;display:flex;overflow-y:auto}.room-mel-msg{border-radius:var(--radius);max-width:88%;font-family:var(--sans);white-space:pre-wrap;overflow-wrap:anywhere;margin:0;padding:.5rem .7rem;font-size:.9rem;font-weight:300;line-height:1.45}.room-mel-msg.is-mel{background:var(--paper-2);border-left:3px solid #a65136;align-self:flex-start}.room-mel-msg.is-you{background:var(--ink);color:var(--paper);align-self:flex-end}.room-mel-msg.is-pending{color:var(--muted)}.room-mel-form{border-top:1px solid var(--line);gap:.5rem;padding:.6rem 1rem .4rem;display:flex}.room-mel-input{border:1px solid var(--line-field);border-radius:var(--radius);min-width:0;color:var(--ink);font:300 1rem/1.3 var(--sans);background:#fff;flex:auto;padding:.55rem .7rem}.room-mel-input::placeholder{color:var(--placeholder)}.room-mel-input:disabled{background:var(--paper-2)}.room-mel-send{flex:none}.room-mel-foot{font-family:var(--sans);color:var(--muted);margin:0;padding:0 1rem .75rem;font-size:.72rem;font-weight:300}.room-mel-foot a{color:inherit}@media (width<=40rem),(hover:none) and (pointer:coarse){.room-mel{border-radius:var(--radius) var(--radius) 0 0;width:100%;max-width:none;max-height:min(70dvh,30rem);padding-bottom:env(safe-area-inset-bottom);inset:auto 0 0}}
