/* The painting is the interface; hit targets follow its projected objects. */
.room-object-hit{position:fixed;z-index:3;padding:0;border:0;border-radius:0;background:transparent;cursor:pointer;touch-action:manipulation}.room-object-hit:hover{background:transparent}.room-object-hit:focus-visible{outline:2px dashed #697f7b;outline-offset:3px}.room-object-hit[hidden],.room-popup[hidden]{display:none!important}
.room-popup{position:fixed;z-index:8;width:min(290px,calc(100vw - 24px));padding:16px 18px;color:#48564f;background:#f5f2e9 url('/assets/painted/paper-wash.webp') center/380px;box-shadow:0 8px 26px #39463b20;border:1px solid #bfc6b66b;border-radius:5px 9px 7px 10px;font:13px Georgia,serif;animation:room-preview-in .18s ease-out;transform-origin:var(--popup-origin,50%) 100%}.room-popup::after{content:'';position:absolute;left:calc(var(--popup-origin,50%) - 5px);bottom:-6px;width:10px;height:10px;background:#f5f2e9;border-right:1px solid #bfc6b66b;border-bottom:1px solid #bfc6b66b;transform:rotate(45deg)}.room-url-preview{width:min(275px,calc(100vw - 24px));padding:0}.room-url-link{display:block;padding:14px 17px;color:inherit;text-decoration:none}.room-url-title{display:block;font-size:15px;margin-bottom:6px}.room-url-address{display:block;font:11px/1.5 -apple-system,BlinkMacSystemFont,sans-serif;overflow-wrap:anywhere;color:#69786f}.room-url-link:hover .room-url-title{text-decoration:underline;text-underline-offset:4px}.room-popup a:focus-visible,.room-popup button:focus-visible,.room-popup input:focus-visible{outline:2px solid #697f7b;outline-offset:3px}
.radio-heading{display:flex;align-items:center;justify-content:space-between}.radio-label{font:10px -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:.16em;color:#82927f}.room-popup button{background:transparent;border:0;color:inherit;cursor:pointer;font:inherit;min-width:36px;min-height:36px;padding:6px}.room-popup .radio-dismiss{font-size:20px;min-height:24px;margin:-8px -8px -4px 0}.radio-title{font-size:23px;line-height:1.2;margin:12px 0 5px}.radio-artist{font-size:11px;margin:0 0 13px;color:#82927f}.radio-transport{display:flex;align-items:center;justify-content:center;gap:15px}.room-popup .radio-play{min-width:84px;background:#798e7830;border-radius:50px}.radio-timeline{margin:12px 0}.room-popup input{width:100%;accent-color:#718b71;cursor:pointer}.radio-time{display:block;text-align:right;font:10px -apple-system,BlinkMacSystemFont,sans-serif;color:#82927f}.radio-volume-row{display:flex;align-items:center;gap:12px;font-size:11px}.radio-volume-row input{min-width:0}.radio-message:empty{display:none}.radio-message{font-size:11px;line-height:1.5}.room-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes room-preview-in{from{opacity:0;transform:translateY(5px) scale(.97)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.room-popup{animation:none}}
.room-object-hit[aria-pressed]{background:transparent}
/* Destination snapshots are requested only when their room icon is opened. */
.room-url-preview{width:min(340px,calc(100vw - 24px));overflow:hidden;background:#fff;border-radius:10px;border:1px solid #d8ddd8}.room-url-preview::after{display:none}.room-url-link{padding:0}.room-preview-browser{display:flex;align-items:center;gap:16px;padding:9px 12px;background:#f0f2f0;color:#788079;font:10px -apple-system,BlinkMacSystemFont,sans-serif}.room-preview-dots{font-size:8px;letter-spacing:2px;color:#b8c0b9}.room-site-snapshot{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;object-position:top;background:#f5f5f5}.room-preview-caption{display:block;padding:12px 15px}.room-preview-note,.room-snapshot-date{display:block;font:10px/1.5 -apple-system,BlinkMacSystemFont,sans-serif;color:#7e8780;margin-top:5px}.room-snapshot-date{font-size:9px;color:#9ca49e}.room-url-link:hover .room-site-snapshot{filter:brightness(.98)}
/* Compact streaming-player styling; playback remains the bundled room music. */
.room-radio{display:grid;grid-template-columns:76px minmax(0,1fr);gap:7px 13px;width:min(320px,calc(100vw - 24px));max-height:calc(100dvh - 24px);overflow:auto;padding:16px;background:linear-gradient(155deg,#303d35,#181818 47%);border:1px solid #ffffff10;border-radius:12px;color:#fff;box-shadow:0 12px 40px #0005;font:12px -apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}.room-radio::after{display:none}.room-radio .radio-heading{grid-column:1/-1}.room-radio .radio-label{font-size:9px;letter-spacing:.14em;color:#e1e7e2;font-weight:600}.room-radio .radio-dismiss{color:#b3b3b3}.radio-cover{position:relative;grid-column:1;grid-row:2/4;width:76px;height:76px;border-radius:5px;overflow:hidden;background:linear-gradient(0deg,#1b3324a0,#13221d30),url('/assets/painted/desktop-lake-wallpaper-v1.webp') center/cover;box-shadow:0 6px 18px #0004;padding:7px;display:flex;flex-direction:column;justify-content:space-between}.radio-cover[data-track='1']{background-position:65% 60%;filter:hue-rotate(12deg)}.radio-cover[data-track='2']{background-position:30% 20%;filter:hue-rotate(175deg)}.radio-cover-word{font:italic 15px/1.1 Georgia,serif;color:#fff}.radio-cover-caption{font-size:5px;letter-spacing:.13em;color:#e1e7df}.room-radio .radio-title{grid-column:2;grid-row:2;align-self:end;margin:0;font:700 19px/1.15 -apple-system,BlinkMacSystemFont,sans-serif;letter-spacing:-.035em}.room-radio .radio-artist{grid-column:2;grid-row:3;align-self:start;margin:0;color:#b3b3b3;font-size:11px}.room-radio .radio-timeline{grid-column:1/-1;margin:7px 0 0}.room-radio .radio-time{color:#b3b3b3;font-size:9px}.room-radio input{accent-color:#1ed760;height:5px;padding:0;margin:4px 0 8px}.room-radio .radio-transport{grid-column:1/-1;gap:20px}.room-radio .radio-transport button{padding:7px;min-width:32px;min-height:32px;color:#b3b3b3}.room-radio .radio-transport svg{display:block;width:19px;height:19px;fill:currentColor}.room-radio .radio-transport .radio-play{min-width:42px;width:42px;height:42px;padding:11px;border-radius:50%;background:#1ed760;color:#000}.room-radio .radio-play:hover{background:#3be477;transform:scale(1.04)}.room-radio .radio-play svg{width:20px;height:20px}.room-radio .radio-volume-row{grid-column:1/-1;color:#b3b3b3;font-size:10px;gap:14px}.room-radio .radio-volume-row input{margin:0}.radio-playlist{grid-column:1/-1;background:#242424;border:1px solid #ffffff15;color:#ddd;padding:7px;border-radius:4px;font:11px -apple-system,BlinkMacSystemFont,sans-serif;max-width:100%}.room-radio .radio-message{grid-column:1/-1;color:#b3b3b3}
.room-url-preview{width:min(300px,calc(100vw - 24px))}.room-preview-browser{padding:7px 11px}.room-preview-caption{padding:10px 13px}.room-preview-caption .room-url-title{font-size:14px;margin-bottom:4px}.room-snapshot-date{display:none}.room-popup[data-side='below']::after{bottom:auto;top:-6px;transform:rotate(225deg)}
header{top:auto!important;bottom:17px;left:24px!important}header h1{font-size:18px}header p{font-size:10px;margin:4px 0 0}
.room-site-snapshot{height:150px;aspect-ratio:auto;object-fit:cover;object-position:top}
/* Small paper scraps belong to the painting; there is no browser chrome. */
.room-url-preview{width:min(205px,calc(100vw - 24px));background:#f6f2e8 url('/assets/painted/paper-wash.webp') center/340px;border:0;border-radius:0;box-shadow:none;filter:drop-shadow(0 4px 7px #3d49331c);clip-path:polygon(1% 2%,27% 0,59% 1%,98% 0,100% 28%,99% 63%,100% 99%,69% 98%,34% 100%,0 98%,1% 61%,0 27%)}.room-preview-browser{display:none}.room-site-snapshot{height:99px;margin:5px 5px 0;width:calc(100% - 10px);opacity:.88;filter:saturate(.7);mix-blend-mode:multiply;clip-path:polygon(0 2%,49% 0,100% 1%,99% 64%,100% 98%,61% 100%,0 98%)}.room-preview-caption{padding:8px 10px 10px}.room-preview-caption .room-url-title{font:12px Georgia,serif;color:#536551;margin-bottom:3px}.room-preview-caption .room-url-address{font:9px/1.4 Georgia,serif;color:#7c8778}.room-preview-note{font:8px/1.3 Georgia,serif;margin-top:4px;color:#8d9588}
.room-radio{width:min(235px,calc(100vw - 24px));grid-template-columns:48px minmax(0,1fr);gap:5px 10px;padding:13px;background:#27312c url('/assets/painted/paper-wash.webp') center/350px;background-blend-mode:multiply;border:0;border-radius:3px;box-shadow:none;filter:drop-shadow(0 5px 9px #24362933);clip-path:polygon(1% 1%,34% 0,69% 1%,99% 0,100% 35%,99% 69%,100% 99%,65% 98%,35% 100%,0 99%,1% 63%,0 33%)}.room-radio .radio-label{font-size:7px;letter-spacing:.1em;color:#c2cdc2}.room-radio .radio-dismiss{font-size:16px;min-width:22px;min-height:22px;padding:3px}.radio-cover{width:48px;height:48px;padding:5px;border-radius:1px}.radio-cover-word{font-size:10px}.radio-cover-caption{font-size:3px}.room-radio .radio-title{font-size:14px;letter-spacing:-.02em}.room-radio .radio-artist{font-size:9px;color:#b5c0b4}.room-radio .radio-timeline{margin-top:5px}.room-radio .radio-time{font-size:8px}.room-radio .radio-transport{gap:16px}.room-radio .radio-transport button{min-width:25px;min-height:25px;padding:5px}.room-radio .radio-transport svg{width:14px;height:14px}.room-radio .radio-transport .radio-play{width:31px;height:31px;min-width:31px;padding:8px;background:#8fc59c}.room-radio .radio-play svg{width:15px;height:15px}.room-radio .radio-volume-row{font-size:8px}.radio-playlist{font-size:9px;padding:4px;background:#b0c0ac0b;border-color:#cbd5c016;color:#c2cdc0;border-radius:1px}.room-radio input{accent-color:#8fc59c;height:3px;margin:3px 0 5px}
.room-clock-hit{touch-action:none;cursor:grab;overflow:visible}.room-clock-hit.is-turning{cursor:grabbing}.clock-hand-hint{position:absolute;top:calc(100% + 5px);left:50%;transform:translateX(-50%);width:max-content;max-width:220px;pointer-events:none;opacity:0;background:#f7f3e7e6;color:#71806a;padding:4px 6px;font:9px Georgia,serif}.room-clock-hit:hover .clock-hand-hint,.room-clock-hit:focus-visible .clock-hand-hint{opacity:1}
.clock-hand-hint{position:fixed;z-index:5;transform:none;top:auto;left:auto;width:220px;max-width:calc(100vw - 24px);opacity:1;text-align:center}.clock-hand-hint[hidden]{display:none!important}

/* Raised paper/player layers cast a shadow outside their painted contents. */
.room-popup{z-index:20;isolation:isolate;pointer-events:auto}
.room-url-preview,.room-radio{clip-path:none;filter:none;border-radius:3px 5px 4px 3px;box-shadow:0 14px 30px #18251f45,0 3px 7px #18251f26;border:1px solid #f4efdf65}
.room-radio{border-color:#a5b59c38}
