:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:#ffffffde;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;min-width:320px;min-height:100vh;background-color:#1a1816;transition:background-color .6s ease}body:after{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(255,240,200,.06) 0%,transparent 70%);opacity:0;transition:opacity .6s ease}body.room-lit{background-color:#3d3831}body.room-lit:after{opacity:1}body.dial-page{background-color:#1c1c1e}body.dial-page:after{background:radial-gradient(ellipse 70% 60% at 50% 40%,rgba(200,210,220,.04) 0%,transparent 70%);opacity:1}.carousel{width:100vw;height:100vh;overflow-x:scroll;overflow-y:hidden;scroll-snap-type:x mandatory;display:flex;-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none}.carousel::-webkit-scrollbar{display:none}.carousel__page{flex:0 0 100vw;width:100vw;height:100vh;scroll-snap-align:start;display:flex;flex-direction:column;align-items:center;justify-content:center}.carousel__dots{position:fixed;bottom:28px;left:50%;transform:translate(-50%);display:flex;gap:10px;z-index:10}.carousel__dot{all:unset;width:8px;height:8px;border-radius:50%;background:#ffffff40;cursor:pointer;transition:background .3s ease,transform .3s ease}.carousel__dot--active{background:#ffffffb3;transform:scale(1.25)}.light-switch{all:unset;cursor:pointer;display:inline-block;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:none}.light-switch:focus-visible{outline:3px solid #6cabf7;outline-offset:6px;border-radius:12px}.rotary-dial{all:unset;cursor:grab;display:inline-block;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:none}.rotary-dial:active{cursor:grabbing}.rotary-dial:focus-visible{outline:3px solid #6cabf7;outline-offset:6px;border-radius:50%}#root{width:100vw;height:100vh;overflow:hidden}.page{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:24px}.switch-label{font-family:system-ui,sans-serif;font-size:14px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:#ffffff59;transition:color .4s ease}.switch-label--on{color:#fff0c899}.dial-label{font-family:system-ui,sans-serif;font-size:32px;font-weight:300;letter-spacing:4px;color:#ffffffb3;font-variant-numeric:tabular-nums;transition:color .4s ease}
