@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600&family=Noto+Serif+SC:wght@400;500&display=swap');
:root{color-scheme:dark;--gold:#eccd96;--muted:#afbbac;--serif:'Noto Serif SC',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:#17251f;color:#f0e8d8;font:16px/1.65 'DM Sans',system-ui,sans-serif}button{font:inherit;color:inherit;cursor:pointer;transition:background .2s,transform .2s}button:hover{transform:translateY(-1px)}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.4;cursor:default;transform:none}[hidden]{display:none!important}header{max-width:1470px;margin:auto;display:flex;gap:25px;align-items:center;padding:26px 5%;border-bottom:1px solid #fff2}.brand{font:30px Georgia,serif;text-decoration:none;color:var(--gold)}.edition{color:var(--muted);font-size:12px;letter-spacing:.14em}.other-night{margin-left:auto;color:var(--gold);font-size:14px;text-decoration:none}main{max-width:1470px;margin:auto;padding:30px 5% 0}.intro{display:flex;justify-content:space-between;align-items:center;margin-bottom:25px}.eyebrow{font-size:12px;letter-spacing:.16em;color:var(--gold);margin:0 0 14px}h1{font:400 clamp(30px,3.3vw,47px)/1.5 var(--serif);margin:0}.intro>p{font-size:14px;color:var(--muted);line-height:1.9}.cabin{border-radius:15px;overflow:hidden;border:1px solid #e5c28720}.painting{position:relative;aspect-ratio:16/9;isolation:isolate;overflow:hidden}.scene,#treeShade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scene-vignette{position:absolute;inset:0;background:linear-gradient(#06160f25,transparent 60%,#07140e44);pointer-events:none}#treeShade{clip-path:polygon(73% 0,100% 0,100% 80%,73% 80%);filter:brightness(.65) saturate(.8);opacity:1;transition:opacity 1.3s;pointer-events:none}.painting.lit #treeShade{opacity:0}#starGlow{position:absolute;left:77%;top:0;width:22%;height:35%;background:radial-gradient(ellipse,#ffe4a655,transparent 65%);opacity:0;transition:opacity 1.4s;pointer-events:none;mix-blend-mode:screen}.painting.lit #starGlow{opacity:1}.hotspot{position:absolute;display:flex;align-items:center;gap:7px;min-width:44px;min-height:44px;border:0;background:none;padding:7px;z-index:3}.hotspot>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1a3024c9;color:#ffe7b7;border:1px solid #edc48c;box-shadow:0 0 0 6px #edc48c18;font-size:23px;backdrop-filter:blur(4px)}.hotspot b{font-weight:400;font-size:14px;background:#17281edc;border:1px solid #edc48c30;border-radius:20px;padding:5px 12px;white-space:nowrap}.hotspot:hover>span{box-shadow:0 0 0 10px #edc48c26}.fire-spot{left:9%;top:45%}.record-spot{left:13%;top:79%}.cocoa-spot{left:46%;top:72%}.star-spot{right:4%;top:7%}.gift-spot{right:5%;top:73%}.record-spot.playing .record-icon{animation:spin 5s linear infinite}.scene-bar{display:flex;align-items:center;justify-content:space-between;padding:15px 20px;background:#203025;gap:15px}#sceneHint{font-size:14px;color:#cad2bc}.scene-controls{display:flex;gap:8px;flex-wrap:wrap}.scene-controls button{border:1px solid #dcc19150;background:transparent;border-radius:22px;padding:6px 10px;font-size:12px;color:var(--gold)}.rituals{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:23px 0 30px}.rituals>button{display:flex;align-items:center;gap:16px;background:#23352a;border:1px solid #ead7b41c;border-radius:12px;text-align:left;padding:22px}.rituals>button>span{font-size:31px;color:var(--gold)}strong{display:block;font-size:16px;font-weight:500}small{display:block;font-size:14px;color:var(--muted);margin-top:6px}footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #fff2;padding:20px 0 28px;color:#9eac9b;font-size:12px}#sceneToast{position:absolute;bottom:14px;left:50%;transform:translateX(-50%);background:#182a21ed;border:1px solid #e8cf9340;border-radius:18px;padding:10px 19px;font-size:14px;width:max-content;max-width:90%;text-align:center;opacity:0;pointer-events:none;transition:opacity .3s;z-index:4}.flakes{position:absolute;left:41%;top:0;width:35%;height:56%;overflow:hidden;pointer-events:none}.flake{position:absolute;top:-12px;color:#fff8;font-size:12px;animation:fall 9s linear infinite}.flakes.paused{opacity:0}.flakes.paused .flake{animation-play-state:paused}dialog{width:min(540px,calc(100% - 26px));max-height:91dvh;overflow:auto;background:#213329;color:#eee7d7;border:1px solid #e9cc9950;border-radius:19px;padding:29px;box-shadow:0 25px 100px #0007}dialog::backdrop{background:#07160dd0;backdrop-filter:blur(6px)}.close{float:right;background:none;border:0;font-size:28px;line-height:1;color:var(--muted)}h2{font:400 29px/1.5 var(--serif);margin:16px 0 12px}.subtle{font-size:14px;color:#b9c6b5}.mix-pad{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;min-height:180px;border:1px solid #edd39b35;background:radial-gradient(ellipse at center,#68472a,#2c3929 72%);border-radius:16px;touch-action:none;user-select:none;cursor:grab;margin:20px 0}.mix-pad:active{cursor:grabbing}#potIcon{font-size:69px;line-height:1.4;transition:transform .12s}#mixPrompt{font-size:14px;color:#efe1bd}.steam{position:absolute;top:15px;left:0;width:100%;text-align:center;color:#fff8;font-size:28px;opacity:0;pointer-events:none}.steam.visible{animation:steam 2.4s ease-in-out infinite}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.steps button,.extras button{border:1px solid #d3be9150;background:#304533;border-radius:10px;padding:10px 8px;font-size:14px}.steps button.done{background:#435c3e;border-color:#dcc48e}.primary{display:block;width:100%;background:var(--gold);border:0;border-radius:10px;padding:13px 15px;color:#293625;font-weight:600;touch-action:none}.extras{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-top:13px}.response{font-size:14px;color:#d0d6bd;min-height:24px;text-align:center;margin:16px 0}progress{width:100%;height:9px;accent-color:#e5b677;margin-top:14px}.fine{font-size:12px;color:var(--muted);text-align:center;margin-top:18px}.mallow-scene{position:relative;height:180px;border-radius:13px;overflow:hidden;display:grid;place-items:center;background:#4c3524}.mallow-scene img{position:absolute;width:100%;height:100%;object-fit:cover;object-position:left center;filter:brightness(.45)}#mallowIcon{position:relative;font-size:78px;transition:filter .4s,transform .35s}#sideLabel{position:absolute;right:14px;bottom:12px;font-size:13px;background:#17271dd9;padding:4px 10px;border-radius:12px}.mallow-scene.roasting #mallowIcon{transform:translateY(13px) rotate(-8deg)}.toast-meters{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:13px}.toast-meters label{font-size:12px;color:var(--muted)}.toast-meters progress{margin-top:4px}.gift-button{display:flex;align-items:center;justify-content:center;flex-direction:column;width:100%;gap:18px;border:0;background:#2e4231;border-radius:14px;padding:28px;margin:20px 0;color:var(--gold)}#giftIcon{font-size:84px}#giftAction{font-size:14px}.gift-note{background:#eadfc6;color:#36422f;border-radius:4px;padding:28px 24px;box-shadow:0 12px 35px #0003;transform:rotate(-1deg)}.gift-note p{font:22px/1.9 var(--serif);margin:0 0 20px}.gift-note span{font-size:13px;color:#687152}.text-button{display:block;margin:20px auto 0;border:0;background:none;color:var(--gold);font-size:14px}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fall{to{transform:translate(12px,360px)}}@keyframes steam{0%{opacity:0;transform:translateY(8px)}45%{opacity:.6}100%{opacity:0;transform:translateY(-20px)}}@media(max-width:750px){header{padding:20px;gap:12px}.brand{font-size:25px}.edition{display:none}.other-night{font-size:12px}main{padding:25px 14px 0}.intro{display:block;margin-bottom:20px}.intro h1{font-size:29px}.intro .eyebrow{font-size:11px;letter-spacing:.1em}.intro>p{font-size:14px;margin:10px 0 0}.intro>p br{display:none}.hotspot{padding:4px;gap:4px}.hotspot>span{width:28px;height:28px;font-size:20px}.hotspot b{font-size:11px;padding:3px 6px}.fire-spot{left:1%;top:40%}.record-spot{left:8%;top:78%}.cocoa-spot{left:40%;top:69%}.star-spot{right:0;top:1%}.gift-spot{right:0;top:81%}.gift-spot b{display:none}.scene-bar{flex-direction:column;align-items:flex-start;padding:13px;gap:9px}#sceneHint{font-size:13px}.scene-controls{width:100%;justify-content:space-between}.scene-controls button{font-size:12px;padding:5px 10px}.rituals{grid-template-columns:1fr;gap:10px;margin:16px 0 24px}.rituals>button{padding:17px}.rituals strong{font-size:15px}.rituals small{font-size:13px}footer{display:block;line-height:1.9}footer>span{display:block;margin-bottom:7px}dialog{padding:24px}dialog h2{font-size:27px}.steps button{font-size:13px;padding:10px 5px}#sceneToast{font-size:12px;bottom:8px;padding:7px 10px}.flakes{height:58%}.gift-note p{font-size:21px}.mix-pad{min-height:160px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.steam.visible{opacity:.5}}
/* Quiet scene: only subtle rings identify interactive objects. */
.painting .hotspot{width:44px;height:44px;min-width:44px;min-height:44px;padding:8px;gap:0;margin:-22px 0 0 -22px;right:auto;bottom:auto;justify-content:center}
.painting .hotspot b{display:none}
.painting .hotspot>span{width:27px;height:27px;min-width:27px;font-size:0;background:#14251d26;border:1.5px solid #ffe0a8cf;box-shadow:0 0 0 5px #edc48c14,0 0 13px #ffdda52b;backdrop-filter:none}
.painting .hotspot:hover>span,.painting .hotspot:focus-visible>span{background:#efd49d25;box-shadow:0 0 0 8px #edc48c28,0 0 16px #ffdda55b}
.painting .fire-spot{left:16%;top:52%}.painting .record-spot{left:17%;top:79%}.painting .cocoa-spot{left:56%;top:79%}.painting .star-spot{left:85%;top:7%}.painting .gift-spot{left:83%;top:71%}
#sceneToast{width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
#sceneHint{display:none}.scene-bar{justify-content:flex-end}
/* Interactions now stay in the room; object states are painted in place. */
#openWindowImage{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;clip-path:polygon(39% 0,76% 0,76% 63%,39% 63%);opacity:0;pointer-events:none;transition:opacity .8s}.painting.window-open #openWindowImage{opacity:1}
#roomDim{position:absolute;inset:0;background:linear-gradient(100deg,#04122045,#030d1a95 60%,#080c1555);opacity:0;pointer-events:none;transition:opacity 1.2s}.painting.lights-off #roomDim{opacity:1}
.painting .window-spot{left:57%;top:37%}.painting .lamp-spot{left:38.5%;top:46%}.painting .milk-spot{left:65.6%;top:75%}.painting .chocolate-spot{left:63.8%;top:89%}.painting .mug-spot{left:73%;top:82%}.painting .cocoa-spot{left:55.5%;top:77%;width:70px;height:65px;margin:-32px 0 0 -35px;touch-action:none;cursor:grab}.painting .cocoa-spot:active{cursor:grabbing}.painting .hotspot.needed>span{box-shadow:0 0 0 7px #ffe2a052,0 0 25px #ffd89470}.painting .hotspot.completed>span{border-color:#f4ddad55;background:#ffdda512}.painting .hotspot>span{opacity:.7;transition:opacity .2s}.painting .hotspot:hover>span,.painting .hotspot:focus-visible>span{opacity:1}
#roomEffects{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:4}.cocoa-vapor{position:absolute;left:51.5%;top:63%;width:8%;height:14%;pointer-events:none;opacity:0;transition:opacity 1s;z-index:3}.cocoa-vapor.visible{opacity:.65}.cocoa-vapor i{position:absolute;bottom:0;left:20%;width:14%;height:50%;border-radius:50%;background:#fff8df70;filter:blur(5px);animation:roomSteam 3s ease-in-out infinite}.cocoa-vapor i:nth-child(2){left:45%;animation-delay:1s}.cocoa-vapor i:nth-child(3){left:65%;animation-delay:2s}.mug-vapor{left:69%;top:64%}.roasting-stick{position:absolute;left:25%;top:62%;width:22%;aspect-ratio:1;transform:translate(-18%,-15%) rotate(-6deg);padding:0;border:0;background:none;z-index:5;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none;transform-origin:80% 80%}.roasting-stick:hover{transform:translate(-18%,-15%) rotate(-6deg)}.roasting-stick:active{cursor:grabbing}.roasting-stick img{width:100%;height:100%;object-fit:contain;pointer-events:none;filter:sepia(var(--toast,0)) saturate(var(--saturation,1));transition:filter .3s}.roasting-stick.flipped img{transform:scaleX(-1)}.roasting-stick.warm{filter:drop-shadow(0 0 10px #e7a34175)}.painting .bite-spot{left:31%;top:57%;z-index:6}.room-letter{position:absolute;right:5%;bottom:12%;width:30%;max-height:75%;overflow:auto;z-index:8;background:#ebdfc4ef;color:#35412f;padding:22px;box-shadow:0 10px 50px #0007;border-radius:3px;transform:rotate(-2deg)}.room-letter p{font:clamp(13px,1.5vw,22px)/1.9 var(--serif);margin:8px 0 15px}.room-letter>span{font-size:13px}.room-letter button{float:right;border:0;background:none;color:#536147;font-size:24px;line-height:1}.quiet-help{margin:17px 0 24px}.quiet-help>button{background:none;border:0;color:#a9b7a5;padding:6px 0;font-size:13px}.quiet-help>p{color:#adbba5;font-size:14px;max-width:820px;line-height:1.9;margin:8px 0}.scene-bar{justify-content:flex-end}#painting.sipping{animation:roomSip .65s ease-in-out}#painting.pouring .milk-spot>span{box-shadow:0 0 24px #fff2bb}
@keyframes roomSteam{0%{opacity:0;transform:translateY(8px) scale(.6)}35%{opacity:.7}100%{opacity:0;transform:translateY(-38px) scale(1.6)}}@keyframes roomSip{50%{filter:brightness(1.06)}}
@media(max-width:750px){.painting .hotspot{width:36px;height:36px;min-width:36px;min-height:36px;padding:7px;margin:-18px 0 0 -18px}.painting .hotspot>span{width:22px;height:22px;min-width:22px;border-width:1px;box-shadow:0 0 0 3px #edc48c14}.painting .cocoa-spot{width:44px;height:42px;margin:-21px 0 0 -22px}.painting .chocolate-spot{top:91%}.painting .milk-spot{top:70%}.painting .mug-spot{left:75%;top:81%}.room-letter{width:47%;right:4%;bottom:6%;padding:10px;max-height:90%}.room-letter p{font-size:13px;margin:4px 0 9px;line-height:1.65}.room-letter>span{font-size:12px}.cocoa-vapor i{filter:blur(2px)}.roasting-stick{width:25%}.painting .bite-spot{left:34%;top:58%}}

/* Physical gestures: hinged window and chocolate held in the foreground. */
#windowPane{position:absolute;left:46%;top:14%;width:18%;height:41%;background:url(christmas-night.webp) 56.0976% 23.7288% / 555.5556% 243.9024%;transform-origin:left center;transform:perspective(700px) rotateY(var(--window-angle,0deg));pointer-events:none;box-shadow:var(--window-shadow,none);z-index:1}
#openWindowImage{transition:none;opacity:var(--window-progress,0)}.painting.window-open #openWindowImage{opacity:var(--window-progress,1)}
.painting .window-spot{touch-action:none;cursor:ew-resize;z-index:5;transition:none;left:var(--window-handle,57%)}
#chocolateFocus{position:absolute;inset:0;z-index:15;backdrop-filter:blur(5px);background:#09150e55;touch-action:none;transition:backdrop-filter .3s,background .3s}
#chocolateFocus.carrying{backdrop-filter:none;background:transparent;pointer-events:none}
#closeChocolate{position:absolute;right:3%;top:4%;border:1px solid #ffdfa866;border-radius:50%;width:36px;height:36px;background:#17251f77;color:#ffe0a8;z-index:2;pointer-events:auto;font-size:24px}
#chocolateBar{position:absolute;left:50%;top:47%;width:46%;aspect-ratio:1.5;transform:translate(-50%,-50%);touch-action:none;cursor:crosshair;user-select:none;-webkit-user-select:none;outline-offset:6px;pointer-events:auto;filter:drop-shadow(0 18px 18px #0008);transition:width .35s}
.choc-half{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;transition:transform .24s cubic-bezier(.2,.8,.3,1);will-change:transform}
.choc-left{clip-path:polygon(0 0,50% 0,49% 28%,51% 43%,49% 63%,51% 81%,50% 100%,0 100%)}
.choc-right{clip-path:polygon(50% 0,100% 0,100% 100%,50% 100%,51% 81%,49% 63%,51% 43%,49% 28%)}
#chocolateBar.snapped .choc-left{transform:translate(-8%,3%) rotate(-10deg)}#chocolateBar.snapped .choc-right{transform:translate(8%,-3%) rotate(12deg)}
#chocolateBar.carry{width:20%;cursor:grab}#chocolateBar.carry:active{cursor:grabbing}
#cutTrail{position:absolute;left:50%;top:12%;height:76%;width:2px;background:#ffe8c2;box-shadow:0 0 8px #ffdda6;transform:scaleY(var(--cut,0));transform-origin:top;opacity:.8;pointer-events:none}
#chocolateBar.snapped #cutTrail{opacity:0}.painting.chocolate-ready .cocoa-spot>span{box-shadow:0 0 0 9px #ffe4ab44,0 0 26px #ffe4ab99}
@media(max-width:750px){#chocolateBar{width:62%}#chocolateBar.carry{width:27%}}

/* One quiet cue at a time; the gesture moves the actual foreground prop. */
.painting .window-spot>span{font-size:26px;width:52px;min-width:52px;border:0;border-radius:0;background:none;box-shadow:none;text-shadow:0 2px 8px #000;animation:pushPull 2s ease-in-out infinite}
@keyframes pushPull{0%,100%{transform:translateX(-5px)}50%{transform:translateX(5px)}}
.painting .hotspot.guided>span{opacity:1;box-shadow:0 0 0 7px #ffe3a425,0 0 25px #ffd99599;animation:guideBreath 2s ease-in-out infinite}
@keyframes guideBreath{50%{opacity:.55;box-shadow:0 0 0 11px #ffe3a412,0 0 32px #ffd99570}}
.painting .milk-spot{touch-action:none;cursor:grab}.painting .milk-spot:active{cursor:grabbing}
#milkProp{position:absolute;left:65.6%;top:70%;width:8%;height:24%;object-fit:contain;z-index:8;pointer-events:none;transform:translate(-50%,-60%) rotate(var(--bottle-tilt,0deg));transform-origin:50% 70%;transition:transform .3s;filter:drop-shadow(4px 7px 5px #0006)}
#stirSpoon{position:absolute;left:55.5%;top:73%;width:14%;height:25%;object-fit:contain;z-index:6;pointer-events:none;transform:translate(-32%,-74%) rotate(var(--spoon-angle,0deg));transform-origin:32% 74%;filter:drop-shadow(3px 4px 3px #0005)}
#stirCue{position:absolute;left:55.5%;top:74%;transform:translate(-50%,-50%);font-size:clamp(24px,4vw,50px);color:#ffdfa9;z-index:7;pointer-events:none;text-shadow:0 2px 8px #000;animation:guideBreath 2s ease-in-out infinite}
.painting .cocoa-spot.guided{width:13%;height:22%;margin:0;transform:translate(-50%,-50%);z-index:9}.painting .cocoa-spot.guided>span{opacity:0}
#chocolateBar.dropping{left:55.5%!important;top:74%!important;width:4%!important;opacity:0;transition:left .85s ease-in,top .85s ease-in,width .85s ease-in,opacity .85s ease-in;pointer-events:none}
#chocolateFocus.dropping{backdrop-filter:none;background:transparent;pointer-events:none}#chocolateFocus.dropping #closeChocolate{display:none}

.painting .milk-spot.guided>span{font-size:25px;border:0;background:none;text-shadow:0 2px 8px #000}

#entrySpotlight{position:absolute;inset:0;pointer-events:none;z-index:10;background:radial-gradient(ellipse 17% 28% at 17% 79%,transparent 25%,#08120ac9 100%);opacity:0;transition:opacity 1s}.painting.awaiting-music #entrySpotlight{opacity:1}
.painting.awaiting-music .record-spot{z-index:11;width:72px;height:72px;min-width:72px;min-height:72px;margin:-36px 0 0 -36px}
.painting.awaiting-music .record-spot>span{font-size:25px;width:52px;height:52px;min-width:52px;background:#e8c88c;color:#243127;border:1px solid #fff1cd;animation:entryPulse 1.8s ease-in-out infinite;box-shadow:0 0 0 10px #edce9525,0 0 45px #edce9566;padding-left:3px;opacity:1}
@keyframes entryPulse{50%{transform:scale(1.13);box-shadow:0 0 0 18px #edce9505,0 0 55px #edce9588}}

.atmosphere-line{margin:0;padding:22px 24px 8px;min-height:68px;text-align:center;font:400 16px/1.9 var(--serif);color:#e7d6b6;background:#203025;text-wrap:pretty}.atmosphere-line.refresh{animation:captionIn .45s ease-out}@keyframes captionIn{from{opacity:.3;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@media(max-width:750px){.atmosphere-line{font-size:15px;padding:18px 20px 7px;min-height:80px}}

.roasting-stick img{filter:sepia(var(--toast,0)) saturate(var(--saturation,1)) brightness(var(--char,1));transition:filter .25s}#roastArrow{position:absolute;left:25%;top:57%;z-index:7;color:#ffe0a8;font-size:clamp(26px,5vw,52px);pointer-events:none;text-shadow:0 2px 10px #000;animation:roastDirection 1.8s ease-in-out infinite}@keyframes roastDirection{50%{transform:translate(-10px,-10px);opacity:.5}}.painting .bite-spot.burnt>span{font-size:23px}.roasting-stick.burnt{filter:drop-shadow(0 -7px 9px #bdbdbd44)}

.roast-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;padding:12px 20px;background:#203025}.roast-actions button{border:1px solid #d9bc8255;border-radius:22px;background:#ecd3a114;padding:9px 17px;font-size:14px;color:#eeddbd;min-height:44px}.roasting-stick.setting-down{opacity:0;transform:translate(22%,48%) rotate(28deg);transition:transform .6s ease-in,opacity .6s ease-in;pointer-events:none}.painting .window-spot.guided>span{font-size:26px;border:0;box-shadow:none;background:none;animation:pushPull 2s ease-in-out infinite}.painting .hotspot:disabled{pointer-events:none}

/* Keep iOS text selection and image callouts out of the gesture surface. */
.intro,.intro *,.cabin,.cabin *{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
.painting{touch-action:none;overscroll-behavior:contain}
.painting img{pointer-events:none;-webkit-user-drag:none;user-drag:none}
.painting button,.painting [role="button"]{touch-action:none}
.scene-controls button,.roast-actions button{touch-action:manipulation}
