/* Preserve one coordinate system for the photograph, light and moving objects. */
.scene{aspect-ratio:3/2;isolation:isolate;background:#050403}
.scene-art{position:absolute;inset:0;z-index:0;pointer-events:none}
.match-overlay{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:9}.match-guide{position:absolute;left:50%;top:5%;transform:translateX(-50%);z-index:12;max-width:90%;width:max-content;padding:10px 16px;background:#17120ee8;border:1px solid #c6aa7255;border-radius:4px;color:#e4d6b8;font-size:11px;line-height:1.6;text-align:center}.match-guide button{display:block;margin:4px auto 0}.scene.match-active{touch-action:none}
.sync-status{font-size:10px;color:#c6aa72;line-height:1.6;margin:5px 0 15px}.audio-credit{display:block;font-size:9px;line-height:1.6;color:#a99b80;margin:8px 0}
.scene .scene-bottom{z-index:30}
.ambiance-panel .settings-sound{display:block;width:100%;margin:0 0 14px;text-align:center;font-size:11px;padding:10px;border-radius:3px}.ambiance-panel .settings-sound[aria-pressed="true"]{background:#b59a5d26;border-color:#b59a5d}
.ambiance-panel{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#8a7040 #17150f}.ambiance-panel .ambient-title{font-size:11px;letter-spacing:.6px;color:#c6aa72;margin:14px 0 8px;padding-top:12px;border-top:1px solid #a38a4d33}
.candle-cleanup{margin-top:24px;padding-top:16px;border-top:1px solid #b89a5633}.candle-cleanup h3{font:24px 'Cormorant Garamond',serif;margin:0 0 12px}.candle-cleanup>div{padding:7px 0;border-bottom:1px solid #b89a5622}.candle-cleanup p{margin:4px 0;font-size:11px}.candle-cleanup .choice{font-size:10px;padding:8px 10px}
.altar-image{position:absolute;inset:0;display:block;object-fit:fill;filter:brightness(.61) saturate(.9)}
.room-animation{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.foreground-occlusion{position:absolute;inset:0;width:100%;height:100%;z-index:4;pointer-events:none}
.vignette{z-index:2;background:radial-gradient(ellipse at 50% 58%,transparent 42%,#02020233 100%),linear-gradient(#0003,transparent 28%,transparent 76%,#0005)}
#effects{position:absolute;inset:0;z-index:2;pointer-events:none}
.hdr-light{z-index:4}
.cat-three{position:absolute;left:71.940104%;top:51.660156%;width:13.020833%;height:21.484375%;z-index:3;pointer-events:none}
.cat-detail-view{position:relative;width:min(100%,300px);aspect-ratio:10/11;margin:20px auto;background:radial-gradient(ellipse at 50% 65%,#55412655,transparent 72%);touch-action:none;cursor:grab}.cat-detail-view:active{cursor:grabbing}.cat-detail-view:focus-visible{outline:1px solid #c6aa72;outline-offset:4px}
.cat-detail-view .cat-three{inset:0;width:100%;height:100%;z-index:0}
.cat-loading-note{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:20px;text-align:center;font-size:11px;line-height:1.8;color:#c6aa72;pointer-events:none}
.cat-wave-status{position:absolute;left:0;right:0;bottom:-8px;font-size:9px;text-align:center;color:#aaa28e;pointer-events:none}
.object-target,.object-target:hover,.object-target:focus{padding:0!important;margin:0;transform:none!important;border:0!important;background:transparent!important;backdrop-filter:none!important;border-radius:0!important;box-shadow:none!important;cursor:pointer}.object-target:before{display:none!important}.object-target:focus-visible{outline:1px dashed #c6aa72!important;outline-offset:2px}.object-target[aria-label^="Light a candle"]{z-index:6}
#rituals,nav a[href="#rituals"]{display:none}.modal-symbol:empty{display:none}.tarot-reading{margin:0 0 18px}.tarot-reading img{display:block;max-height:min(50dvh,430px);max-width:100%;width:auto;margin:0 auto;object-fit:contain;box-shadow:0 10px 30px #0008}.tarot-reading figcaption{font:28px 'Cormorant Garamond',serif;margin-top:12px}.tarot-source{display:block;font-size:9px;color:#aaa28e;margin-top:16px}
#ritual-dialog{max-height:90dvh;overflow-y:auto}
.light-controls{display:flex;align-items:center;gap:10px;pointer-events:auto}.light-controls label{display:flex;align-items:center;gap:6px;font-size:9px}.light-controls input{display:inline-block;width:70px;margin:0;padding:0;accent-color:#d8b86f}.light-controls small{font-size:8px;color:#c7b380}
.light-controls output{font-size:8px;min-width:24px;font-variant-numeric:tabular-nums}.fullscreen-button{font-size:19px;line-height:1;padding:2px 4px}.scene-sound{display:none}
body.shrine-fullscreen{overflow:hidden}body.shrine-fullscreen>header,body.shrine-fullscreen>footer,body.shrine-fullscreen main>:not(.altar-wrap){display:none}body.shrine-fullscreen .altar-wrap{position:fixed;inset:0;margin:0;display:grid;place-items:center;padding:12px;background:#080806;z-index:100}body.shrine-fullscreen .altar-foot{display:none}body.shrine-fullscreen .scene{width:min(calc(100vw - 24px),calc((100dvh - 24px)*1.5));height:auto;aspect-ratio:3/2}body.shrine-fullscreen .scene-sound{display:inline-block}body.shrine-fullscreen .toast{z-index:120}
@media(max-width:600px){.light-controls{gap:5px}.light-controls label{font-size:7px}.light-controls input{width:42px}.light-controls small{display:none}}
.tv-signal{z-index:2;box-shadow:0 0 35px #72bd7d30}
.scene-caption,.scene-bottom{z-index:5;pointer-events:none}
.scene-bottom button{pointer-events:auto}
.hotspot{z-index:5;background:#17130cad;backdrop-filter:blur(4px)}
.toast{z-index:30;line-height:1.7;text-align:center;box-shadow:0 8px 35px #0008}
.votive{width:.8%;height:1.75%;box-shadow:2px 8px 8px #0009}
.offering{font-size:clamp(9px,1.4vw,22px)}
.glow-muted .votive{filter:brightness(.4)}
.scene.slots-spinning{border-color:#ad7334}
@media(max-width:800px){.scene{aspect-ratio:3/2}.hotspot{font-size:0;padding:8px;border-radius:50%;gap:0}.hotspot i{font-size:15px}.hotspot:before{display:none}.hotspot:hover,.hotspot:focus-visible{font-size:9px;border-radius:25px;gap:6px}.scene-caption span+span{font-size:12px}.scene-bottom{bottom:10px}.scene-caption{top:12px}}
@media(max-width:480px){.scene-caption{left:10px;right:10px;font-size:7px}.scene-caption span+span{font-size:10px}.scene-bottom{left:10px;right:10px}.hotspot{padding:6px}.hotspot i{font-size:12px}.scene-bottom,.scene-bottom .quiet{font-size:7px}.toast{bottom:15px;font-size:11px;width:max-content;max-width:90vw}}
.ambiance-panel{position:absolute;right:0;bottom:38px;width:280px;padding:18px;background:#17150fed;border:1px solid #a38a4d66;border-radius:6px;box-shadow:0 8px 40px #0008;text-align:left}.ambiance-panel[hidden]{display:none}.ambiance-panel label{display:grid;grid-template-columns:95px 1fr 34px;margin:12px 0;font-size:11px}.ambiance-panel input{width:100%}.ambiance-panel small{display:block;line-height:1.6;font-size:10px}.duration-label{display:block;text-align:left;font-size:12px;color:#bcae91;margin:14px 0 20px}.duration-label select{display:block;width:100%;padding:12px;margin-top:8px;background-color:#11120e;color:#e9dfc8;border:1px solid #73644288}.offering-ledger{max-height:230px;overflow:auto;text-align:left;padding-left:20px;color:#cfc2a8;font-size:12px;line-height:1.8}.offering-ledger li{padding:7px 2px;border-bottom:1px solid #ffffff12}.storage-note{font-size:10px!important}
body.shrine-fullscreen,body.shrine-fullscreen .altar-wrap{background:#000!important}body.shrine-fullscreen .altar-wrap{padding:0!important}body.shrine-fullscreen .scene{width:min(100vw,calc(100dvh * 1.5));border:0!important;box-shadow:none!important;background:#000}.scene-caption,.scene-bottom,.tv-signal span,.toast{transition:opacity 1.4s ease}body.shrine-fullscreen.shrine-idle .scene-caption,body.shrine-fullscreen.shrine-idle .scene-bottom,body.shrine-fullscreen.shrine-idle .tv-signal span,body.shrine-fullscreen.shrine-idle .toast{opacity:0;pointer-events:none}body.shrine-fullscreen.shrine-idle .scene{cursor:none}.tv-signal img{visibility:hidden}.tv-signal{background:transparent!important;box-shadow:none!important}.tv-signal span{display:none}
.layered-scene{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none}
.placement-guide{position:absolute;left:50%;bottom:75px;transform:translateX(-50%);z-index:35;width:max-content;max-width:90%;padding:12px 16px;background:#17130feb;border:1px solid #a88d5355;border-radius:5px;font-size:12px;text-align:center;line-height:1.7}.placement-guide button{margin-left:12px}.scene.placing-candle{cursor:crosshair!important}.placed-candles{position:absolute;inset:0;width:100%;height:100%;z-index:5;pointer-events:none}
.placement-guide{top:8%;bottom:auto;max-width:86%;padding:8px 12px;font-size:11px;line-height:1.5}.scene.placing-candle{touch-action:none}
.ambiance-panel{pointer-events:auto;z-index:50}
dialog.thermal-dialog{width:min(820px,94vw);max-width:820px;max-height:92dvh;overflow:auto}.thermal-note{font-size:12px;line-height:1.7;color:#b9ad92}.thermal-pile{position:relative;isolation:isolate;aspect-ratio:10/7;overflow:hidden;background:radial-gradient(ellipse at 40% 20%,#594535,#201711 85%);border:1px solid #b9a16d44;border-radius:3px;margin:18px 0;touch-action:none}.thermal-pile>canvas{display:block;width:100%;height:100%}.thermal-draft{position:absolute;box-sizing:border-box;width:40%;height:45.7142857%;padding:0;background:transparent;box-shadow:0 3.5px 8.5px #0009;cursor:grab;outline:1px dashed #fff4;touch-action:none}.thermal-draft:active{cursor:grabbing}.thermal-draft canvas{width:100%;height:100%;display:block;isolation:isolate}.thermal-upload{display:block;font-size:12px;line-height:1.8;text-align:left}.thermal-upload input{display:block;max-width:100%;width:100%;padding:12px 0;color:#c9b996;font:inherit}.thermal-tools{display:flex;flex-wrap:wrap;align-items:center;gap:20px;margin-top:14px}.thermal-tools label{flex:1;min-width:140px;text-align:left;font-size:11px}.thermal-tools input{display:block;width:100%;margin-top:12px}.thermal-tools .action{margin:0}.thermal-status{font-size:12px;min-height:2em;line-height:1.7;color:#c9b996}.thermal-dialog .chamber-link{display:none}@media(max-width:480px){.thermal-tools{align-items:stretch;flex-direction:column;gap:12px}.thermal-note{font-size:10px}}
.tarot-spread{position:relative;aspect-ratio:1000/650;overflow:hidden;background:radial-gradient(ellipse,#453529,#191410);border:1px solid #b9a16d44;margin:18px 0;touch-action:none}.tarot-spread figure{user-select:none;-webkit-user-select:none;position:absolute;margin:0;width:15%;cursor:grab;touch-action:none}.tarot-spread figure:focus{outline:1px solid #ddc88c}.tarot-spread img{pointer-events:none;-webkit-user-drag:none;display:block;width:100%;height:auto;box-shadow:2px 4px 10px #000b;user-select:none}.tarot-spread figcaption{font-size:clamp(8px,1.3vw,12px);text-align:center;background:#1a140edd;color:#d8c9a3;padding:4px}.tarot-spread>p{padding:25% 10%;color:#b9ad92}.tarot-note-label{display:block;text-align:left;font-size:12px;margin:18px 0}.tarot-note-label textarea{display:block;box-sizing:border-box;width:100%;margin-top:8px;background:#15120e;color:#ddd0b1;border:1px solid #b9a16d55;padding:12px;resize:vertical}.thermal-tools select{display:block;margin-top:8px;padding:8px;background-color:#252017;color:#ddd0b1;border:1px solid #b9a16d66}
.tarot-spread figure{filter:drop-shadow(2px 4px 5px #000b)}.tarot-spread img{box-shadow:none;border-radius:3%;background:#e9ddbd}.tarot-rotate{position:absolute;right:-8px;top:-8px;width:24px;height:24px;min-width:0;margin:0;padding:0;border:1px solid #b59c65aa;border-radius:50%;background:#272016dd;color:#dfc98f;font-size:17px;line-height:22px;cursor:crosshair;touch-action:none;opacity:0;pointer-events:none;transition:opacity .18s ease}.tarot-spread figure:hover .tarot-rotate,.tarot-spread figure:focus-visible .tarot-rotate,.thermal-draft:hover .tarot-rotate,.thermal-draft:focus-visible .tarot-rotate{opacity:.85;pointer-events:auto}.tarot-rotate:hover,.tarot-rotate:focus-visible{opacity:1;pointer-events:auto;outline:1px solid #d8b973}.tarot-spread figure:active{cursor:grabbing}

.radio-panel .radio-strip{border-top:1px solid #b9a16d33;padding:8px 0 4px;text-align:left}.radio-strip-head{display:flex;justify-content:space-between;align-items:center;gap:8px}.radio-station{font:italic 15px 'Cormorant Garamond',serif;color:#e2cf9f}.radio-remove{font-size:16px;padding:0 4px}.radio-now{display:block;min-height:1.4em;font-size:10px;color:#a99f86;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.radio-row{display:flex;gap:8px;align-items:center;margin:8px 0}.radio-row select,.radio-row input,.radio-panel details input{flex:1;min-width:0;margin:0;padding:8px;background-color:#15120e;color:#ddd0b1;border:1px solid #b9a16d55;font-size:11px}.radio-panel details input{display:block;width:100%;margin:6px 0}.radio-panel select{display:block;width:100%;padding:8px;background-color:#15120e;color:#ddd0b1;border:1px solid #b9a16d55}
.thermal-lightbox{position:fixed;inset:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#000c;cursor:zoom-out}.thermal-lightbox canvas{max-width:92vw;max-height:88vh;height:auto;image-rendering:pixelated;box-shadow:0 10px 30px #000}
.ambiance-panel select,.ambiance-panel input[type=text],.ambiance-panel input:not([type]){color-scheme:dark;min-width:0;width:100%;box-sizing:border-box;padding:5px 26px 5px 8px;font:inherit;font-size:11px;color:#eadfc6;background-color:#211c14 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%23c7ab6a' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 9px center;border:1px solid #a38a4d66;border-radius:3px;appearance:none;-webkit-appearance:none}.ambiance-panel input[type=text],.ambiance-panel input:not([type]){padding-right:8px;background-image:none}.ambiance-panel select:focus-visible,.ambiance-panel input:focus-visible{outline:1px solid #d8bd7a;outline-offset:1px}.ambiance-panel select option{background-color:#211c14;color:#eadfc6}.ambiance-panel label:has(>select){grid-template-columns:95px 1fr;align-items:center}
.mixer-generators{border-top:1px solid #b9a16d55;margin-top:14px;padding-top:6px}.mixer-generator{margin:8px 0}.mixer-generator .choice{width:100%}.mixer-generator-controls{padding-left:6px;border-left:1px solid #b9a16d33}

/* Room for the brass dropdown arrow whatever padding a panel gives its selects. */
html body select:not([multiple]){padding-right:30px}
input[type=range],input[type=checkbox],input[type=radio]{accent-color:#c6aa72}

/* YouTube on the CRT: the player is laid over the TV screen and fitted to its corners (crt-youtube.js). */
.crt-youtube{position:absolute;left:0;top:0;width:640px;height:480px;transform-origin:0 0;pointer-events:none;z-index:3;overflow:hidden;border-radius:7%/9%;background:#030303}.crt-youtube[hidden]{display:none}.crt-youtube .crt-yt-player,.crt-youtube iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.crt-youtube .crt-yt-glass{position:absolute;inset:0;pointer-events:none}.crt-youtube .crt-yt-roll{position:absolute;left:0;right:0;height:9%;top:-9%;background:#000;box-shadow:0 6px 10px #ffffff10;pointer-events:none}
.scene.table-mode .scene-art>.crt-youtube:not([hidden]){visibility:visible!important}
