.rain-open,.rain-dialog button{font:inherit;cursor:pointer;border:1px solid var(--accent);border-radius:.6rem;padding:.7rem 1rem;background:var(--panel);color:var(--ink)}.rain-open{margin-top:1rem;text-align:left}.rain-open:hover{background:var(--bg)}.rain-open:focus-visible,.rain-dialog button:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.rain-dialog[open]{display:block}.rain-dialog{width:min(760px,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;border:1px solid var(--line);border-radius:1.4rem;padding:1.5rem;background:var(--bg);color:var(--ink);box-shadow:0 20px 80px #0008}.rain-dialog::backdrop{background:#04101ac9}.rain-dialog h2{font-size:clamp(1.8rem,5vw,3rem);margin:1.2rem 0;letter-spacing:-.04em}.rain-dialog .dialog-top{display:flex;justify-content:space-between;align-items:center;gap:1rem}.rain-dialog .dialog-top p{margin:0}.rain-scene{overflow:hidden;border-radius:.9rem;background:#173447}.rain-scene svg{display:block;width:100%;height:auto}.rain-dialog .dialog-controls{display:flex;flex-wrap:wrap;gap:.7rem;margin:1rem 0}.rain-dialog button:disabled{opacity:.5;cursor:default}.rain-dialog [hidden],.rain-open[hidden]{display:none!important}.rain-dialog .scene-note{font-size:.85rem;color:var(--muted)}body.rain-dialog-open{overflow:hidden}
/* Explicitly started by the visitor; remains pausable in every system setting. */
.rain-scene #mini-drops line{stroke:#a7ddf4;stroke-width:2;stroke-linecap:round;animation:mini-rain var(--fall-time) linear var(--fall-delay) infinite!important}
.rain-scene[data-kind=drizzle] #mini-drops line{stroke-width:1;opacity:.65}
.rain-scene[data-kind=storm] #mini-drops line{stroke-width:2.5}
.rain-scene[data-kind=shower] #mini-drops{animation:shower-density 6s ease-in-out infinite!important}
.rain-scene.paused #mini-drops,.rain-scene.paused #mini-drops line{animation-play-state:paused!important}
@keyframes mini-rain{from{transform:translate(30px,70px)}to{transform:translate(-25px,340px)}}
@keyframes shower-density{0%,100%{opacity:.2}35%,65%{opacity:1}}
@media(max-width:500px){.rain-dialog{padding:1rem}.rain-dialog .dialog-top{align-items:flex-start}}
.rain-scene svg{max-height:34dvh}.rain-dialog .dialog-top{position:sticky;top:0;background:var(--bg);z-index:1}
