.lantern-rig{--chain:150px;--lantern-w:110px;position:relative;width:var(--lantern-w);pointer-events:none;user-select:none;-webkit-user-select:none}@media (min-width:640px){.lantern-rig{--chain:190px;--lantern-w:130px}}@media (min-width:1024px){.lantern-rig{--chain:230px;--lantern-w:150px}}.lantern-mount{position:absolute;top:0;left:50%;width:40px;transform:translateX(-50%);z-index:2}.lantern-pendulum{position:relative;top:12px;transform-origin:50% 0;will-change:transform}.lantern-pendulum.is-idle{animation:lantern-idle 1.3s ease-in-out -.65s infinite alternate}@keyframes lantern-idle{0%{transform:rotate(-.07rad)}to{transform:rotate(.07rad)}}@media (prefers-reduced-motion:reduce){.lantern-pendulum.is-idle{animation:none}}.lantern-chain{position:relative;height:var(--chain)}.lantern-chain-svg{position:absolute;left:50%;top:0;width:1px;height:100%;overflow:visible}.lantern-body{position:relative;margin-top:-6px;pointer-events:auto;cursor:grab;touch-action:none}.lantern-rig[data-grabbing] .lantern-body{cursor:grabbing}.lantern-svg{position:relative;display:block;width:100%;overflow:visible}.lantern-flame{will-change:transform}.dark-room .lantern-flame{transform:scale(0)}.dark-room .lantern-glass-light,.dark-room .lantern-glow{opacity:0}.dark-room .lantern-rig{--lantern-glass:rgba(210,218,232,.05)}.dark-room:not(.is-lighting) .lantern-svg{filter:drop-shadow(0 0 1px rgba(200,212,235,.25)) drop-shadow(0 0 18px rgba(170,190,225,.08))}.lantern-flame-marker{position:absolute;left:50%;top:47.5%;width:0;height:0}.lantern-pilot,.lantern-pilot-glow{opacity:0}.lantern-pilot-glow{position:absolute;left:50%;top:47.5%;width:180px;height:180px;margin:-90px 0 0 -90px;border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgb(var(--glow)/.55),rgb(var(--glow)/.12) 55%,transparent)}.dark-room:not(.is-lighting) .lantern-pilot,.dark-room:not(.is-lighting) .lantern-pilot-glow{animation:sputter 3.4s linear infinite}@keyframes sputter{0%,13%,31%,34%,52%,55%,57%,6%,61%,9%,to{opacity:0}7%,8%{opacity:.9}11%{opacity:.5}32%,33%{opacity:.7}53%{opacity:1}56%{opacity:.4}59%{opacity:.85}}.lantern-flash{position:absolute;left:50%;top:47.5%;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;pointer-events:none;opacity:0;background:radial-gradient(closest-side,rgb(var(--glow)/.95),rgb(var(--glow)/.45) 35%,rgb(var(--glow)/.12) 65%,transparent)}.lantern-flash.is-bursting{animation:lantern-flash 1s cubic-bezier(.1,.7,.2,1) forwards}@keyframes lantern-flash{0%{opacity:0;transform:scale(.3)}12%{opacity:1}to{opacity:0;transform:scale(11)}}.lantern-glow{position:absolute;left:50%;top:48%;width:640%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;pointer-events:none;background:radial-gradient(closest-side,rgb(var(--glow)/.42),rgb(var(--glow)/.16) 22%,rgb(var(--glow)/.06) 48%,transparent 100%);will-change:opacity}:root:not([data-theme=dark]) .lantern-glow{background:radial-gradient(closest-side,rgb(var(--glow)/.34),rgb(var(--glow)/.12) 22%,rgb(var(--glow)/.04) 48%,transparent 100%)}.dark-room-hint{display:none}.dark-room .dark-room-hint{display:block;position:absolute;right:calc(100% + 18px);top:calc(12px + var(--chain) + var(--lantern-w) * .38);width:9.5rem;text-align:right;pointer-events:auto;cursor:pointer;user-select:none;color:#eceef2}.dark-room.is-lighting .dark-room-hint{opacity:0;transition:opacity .3s ease}.hint-title{font-family:var(--font-serif);font-style:italic;font-size:22px;line-height:1.1;text-shadow:0 0 18px rgba(200,212,235,.25)}.hint-action{margin-top:8px;font-family:var(--font-mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;animation:hint-pulse 2.2s ease-in-out infinite}.hint-touch{display:none}@media (hover:none){.hint-mouse{display:none}.hint-touch{display:inline}}.hint-arrow{fill:none;stroke:rgba(236,238,242,.8);stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;overflow:visible}.hint-arrow--up{display:none}.hint-arrow--side{position:absolute;right:-34px;top:4px;width:26px;height:16px;animation:hint-bob-x 1.1s ease-in-out infinite alternate}@media (min-width:768px){.dark-room .dark-room-hint{right:auto;left:50%;top:calc(12px + var(--chain) + var(--lantern-w) * 1.62 + 78px);width:18rem;margin-left:-9rem;text-align:center}.hint-title{font-size:30px}.hint-action{font-size:12px}.hint-arrow--side{display:none}.hint-arrow--up{display:block;position:absolute;left:50%;top:-52px;width:18px;height:34px;margin-left:-9px;animation:hint-bob-y 1.1s ease-in-out infinite alternate}}.lantern-beacon{display:none}.dark-room:not(.is-lighting) .lantern-beacon{display:block;position:absolute;left:50%;top:47%;width:120%;aspect-ratio:1;translate:-50% -50%;border-radius:50%;border:1.5px solid rgba(214,224,242,.55);box-shadow:0 0 24px rgba(190,206,235,.25),inset 0 0 24px rgba(190,206,235,.12);pointer-events:none;opacity:0;animation:beacon 2.6s cubic-bezier(.2,.6,.3,1) 1s infinite}.dark-room:not(.is-lighting) .lantern-beacon--late{animation-delay:2.3s}@keyframes beacon{0%{opacity:0;scale:.55}15%{opacity:.9}to{opacity:0;scale:1.5}}@keyframes hint-bob-y{to{transform:translateY(-6px)}}@keyframes hint-bob-x{to{transform:translateX(5px)}}@keyframes hint-pulse{0%,to{opacity:.45}50%{opacity:1}}.dark-room-hint .hint-action,.dark-room-hint .hint-title{transition:text-shadow .4s ease,color .4s ease}.dark-room-hint.is-calling .hint-title{text-shadow:0 0 14px rgba(214,224,242,.7),0 0 34px rgb(var(--glow)/.45)}.dark-room-hint.is-calling .hint-action{animation-duration:.7s}.dark-room-hint.is-calling .hint-arrow{animation-duration:.35s}.dark-room-hint.is-nudged{animation:hint-nudge .5s ease}@keyframes hint-nudge{0%,to{transform:none}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(2px)}}@media (prefers-reduced-motion:reduce){.hint-arrow,.lantern-beacon{animation:none!important}}html.dark-room:not(.is-lighting),html.dark-room:not(.is-lighting) body{overflow:hidden;overscroll-behavior:none}.dark-room:not(.is-lighting) .lantern-body{cursor:pointer}.dark-room:not(.is-lighting) .lantern-body .lantern-svg{transition:filter .4s ease}.dark-room:not(.is-lighting) .lantern-body:focus-visible .lantern-svg,.dark-room:not(.is-lighting) .lantern-body:hover .lantern-svg{filter:drop-shadow(0 0 1px rgba(200,212,235,.45)) drop-shadow(0 0 26px rgb(var(--glow)/.28))}.dark-room:not(.is-lighting) .lantern-body:hover .lantern-pilot,.dark-room:not(.is-lighting) .lantern-body:hover .lantern-pilot-glow{animation-duration:1.1s}.dark-room-hint.is-insistent .hint-first,.hint-later{display:none}.dark-room-hint.is-insistent .hint-later{display:inline}.dark-room-hint.is-insistent .hint-action{animation-duration:1.2s}.dark-room-hint.is-insistent .hint-arrow{animation-duration:.55s}.dark-room-hint.is-insistent .lantern-beacon,.dark-room-hint.is-insistent~.lantern-pendulum .lantern-beacon{animation-duration:1.6s}