/* M29: controlled reveal of actual registered states. No generated alpha video. */
.rd29{width:100%;min-width:0;color:#304c59}.rd29 *{box-sizing:border-box}.rd29-frame{position:relative;isolation:isolate;overflow:hidden;width:100%;line-height:0;background:#1c302b;border-radius:inherit}.rd29 .rd29-state{width:100%;pointer-events:none}.rd29 .rd29-before{position:absolute;inset:0;z-index:0}.rd29 .rd29-after{position:relative;z-index:1}.rd29 .rd29-state>img,.rd29 .rd29-state>svg{position:static;display:block;width:100%;height:auto;opacity:1;object-fit:contain;max-width:none}.rd29 .rd29-overlay{position:absolute;inset:0;z-index:3;display:block;width:100%;height:100%;pointer-events:none}.rd29 .rd29-caption{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0 4px;font:13px/1.45 system-ui,sans-serif;min-height:58px}.rd29 .rd29-caption>span{max-width:68ch}.rd29 .rd29-skip{min-width:44px;min-height:44px;padding:8px 13px;border:1px solid #8b9c9f;border-radius:5px;background:#f9f4e9;color:#304c59;font:inherit;cursor:pointer;touch-action:manipulation;flex-shrink:0}.rd29 .rd29-skip:focus-visible{outline:3px solid #355d6a;outline-offset:3px}.rd29 .rd29-skip[hidden]{display:none!important}
.rd29 .rd29-running .rd29-after{animation:rd29-open var(--rd29-duration) cubic-bezier(.3,0,.2,1) both}.rd29 .rd29-kind-frost.rd29-running .rd29-after{animation-name:rd29-clear-frost}.rd29 .rd29-kind-curtain.rd29-running .rd29-after{animation-name:rd29-curtain}.rd29 .rd29-kind-cloth.rd29-running .rd29-after,.rd29 .rd29-kind-paper.rd29-running .rd29-after{animation-name:rd29-paper}.rd29 .rd29-kind-music.rd29-running .rd29-after{animation-name:rd29-music}.rd29 .rd29-kind-bridge.rd29-running .rd29-after{animation-name:rd29-bridge}.rd29 .rd29-kind-finale.rd29-running .rd29-after{animation-name:rd29-village}
.rd29 .rd29-motion-slide.rd29-running .rd29-after,.rd29 .rd29-motion-gears.rd29-running .rd29-after{animation:none;clip-path:none}.rd29 .rd29-motion-slide .rd29-before,.rd29 .rd29-motion-gears .rd29-before{z-index:4}.rd29 .rd29-motion-slide.rd29-running .rd29-before,.rd29 .rd29-motion-gears.rd29-running .rd29-before{animation:rd29-remove-before var(--rd29-duration) linear both}.rd29 .rd29-cover{transform-box:view-box;transform:translate(0,0)}.rd29 .rd29-running .rd29-cover{animation:rd29-slide-cover var(--rd29-duration) cubic-bezier(.45,0,.2,1) both}.rd29 .rd29-wheel{transform-box:view-box;transform:rotate(0deg)}.rd29 .rd29-running .rd29-wheel{animation:rd29-bench-turn var(--rd29-duration) cubic-bezier(.25,.05,.25,1) both}
.rd29 .rd29-finished .rd29-before,.rd29 .rd29-finished .rd29-overlay{display:none!important}.rd29 .rd29-finished .rd29-after{display:block!important;animation:none!important;clip-path:none!important;opacity:1!important}.rd29 .rd29-finished{animation:none!important}
@keyframes rd29-open{0%,15%{clip-path:inset(0 100% 0 0)}35%{clip-path:inset(0 88% 0 0)}75%,100%{clip-path:inset(0)}}
@keyframes rd29-clear-frost{0%,15%{clip-path:circle(0% at 54% 44%)}42%{clip-path:circle(22% at 54% 44%)}78%,100%{clip-path:circle(150% at 54% 44%)}}
@keyframes rd29-curtain{0%,15%{clip-path:inset(0 50% 0 50%)}38%{clip-path:inset(0 39% 0 39%)}77%,100%{clip-path:inset(0)}}
@keyframes rd29-paper{0%,15%{clip-path:inset(100% 0 0 0)}36%{clip-path:inset(76% 0 0 0)}76%,100%{clip-path:inset(0)}}
@keyframes rd29-music{0%,15%{clip-path:inset(0 100% 0 0)}36%{clip-path:inset(0 72% 0 0)}53%{clip-path:inset(0 42% 0 0)}76%,100%{clip-path:inset(0)}}
@keyframes rd29-bridge{0%,15%{clip-path:inset(0 100% 0 0)}35%{clip-path:inset(0 80% 0 0)}51%{clip-path:inset(0 48% 0 0)}77%,100%{clip-path:inset(0)}}
@keyframes rd29-village{0%,15%{clip-path:inset(0 100% 0 0)}34%{clip-path:inset(0 78% 0 0)}54%{clip-path:inset(0 48% 0 0)}79%,100%{clip-path:inset(0)}}
@keyframes rd29-remove-before{0%,12%{opacity:1}14%,100%{opacity:0}}
@keyframes rd29-slide-cover{0%,14%{transform:translate(0,0)}76%,100%{transform:translate(var(--rd29-shift-x),var(--rd29-shift-y))}}
@keyframes rd29-bench-turn{0%,14%{transform:rotate(0deg)}78%,100%{transform:rotate(var(--rd29-wheel-turn))}}
@media(max-width:520px){.rd29 .rd29-caption{font-size:12px;align-items:flex-start;gap:8px}.rd29 .rd29-skip{max-width:115px;padding:8px}}
@media(prefers-reduced-motion:reduce){.rd29 .rd29-frame *{animation:none!important;transition:none!important}.rd29 .rd29-before,.rd29 .rd29-overlay{display:none!important}.rd29 .rd29-after{clip-path:none!important;opacity:1!important}}

/* M30 · a single gentle unwrapping, followed by earned warm light. */
.rd29 .rd30-gift{position:absolute;inset:0;z-index:8;display:flex;align-items:center;justify-content:center;pointer-events:none;overflow:hidden}.rd29 .rd30-gift i{position:absolute;width:7%;height:110%;background:linear-gradient(90deg,#405d51,#718971 45%,#3d594d);box-shadow:0 0 0 1px #d9bd7e55}.rd29 .rd30-gift i:last-child{width:110%;height:5.5%;background:linear-gradient(#425e50,#829879 45%,#425e50)}.rd29 .rd30-gift b{z-index:1;width:16%;aspect-ratio:1;border-radius:50%;display:grid;place-items:center;color:#fbe7b3;background:radial-gradient(circle at 38% 30%,#bb7751,#874f3c);border:2px solid #dec28a;font:36px Georgia,serif;box-shadow:0 6px 14px #132e2840}.rd29 .rd29-running .rd30-gift{animation:rd29-m30-unwrap .85s cubic-bezier(.3,0,.2,1) both}.rd29 .rd30-magic{position:absolute;inset:0;width:100%;height:100%;z-index:7;pointer-events:none;overflow:hidden}.rd29 .rd30-magic path{fill:#ffe5a2;stroke:#e7c071;stroke-width:.25;transform-origin:0 0;opacity:0}.rd29 .rd29-running .rd30-magic path{animation:rd29-m30-star 1.55s var(--spark-delay) ease-out both}.rd29 .rd30-halo{fill:none;stroke:#ffe0a0;stroke-width:.3;opacity:0}.rd29 .rd29-running .rd30-halo{animation:rd29-m30-halo 2.2s .8s ease-out both;transform-origin:50% 50%}.rd29 .rd29-finished .rd30-magic,.rd29 .rd29-finished .rd30-gift{display:none!important}.rd29 .rd29-kind-light.rd29-running .rd29-after{animation-name:rd29-m30-lantern-filter;clip-path:none}
@keyframes rd29-m30-unwrap{0%,16%{opacity:1;transform:scale(1)}65%{opacity:.65;transform:scale(1.06)}100%{opacity:0;transform:scale(1.18)}}
@keyframes rd29-m30-star{0%{opacity:0;transform:scale(.3) rotate(-12deg)}25%{opacity:.95;transform:scale(1) rotate(0)}65%{opacity:.55}100%{opacity:0;transform:translateY(-2px) scale(.2) rotate(15deg)}}
@keyframes rd29-m30-halo{0%{opacity:0;transform:scale(.6)}35%{opacity:.32}100%{opacity:0;transform:scale(1.15)}}
@keyframes rd29-m30-lantern-filter{0%,15%{opacity:0}68%,100%{opacity:1}}
@media(prefers-reduced-motion:reduce){.rd29 .rd30-magic,.rd29 .rd30-gift{display:none!important}}

.rd29 .rd29-kind-crossfade.rd29-running .rd29-after{animation-name:rd37-crossfade;clip-path:none}@keyframes rd37-crossfade{0%,18%{opacity:0}75%,100%{opacity:1}}

/* M41: HTML/CSS sparkle overlay avoids SVG default-fill rectangles in Safari. */
.rd29 .rd41-magic{background:transparent!important;fill:none;line-height:1}.rd29 .rd41-magic span{position:absolute;display:block;font:clamp(12px,2vw,25px)/1 system-ui;color:#fff7cf;text-shadow:0 0 12px #d8dfff;opacity:0}.rd29 .rd29-running .rd41-magic span{animation:rd29-m30-star 1.55s var(--spark-delay) ease-out both}.rd29 .rd41-aura{position:absolute;inset:16%;border-radius:50%;background:radial-gradient(ellipse,transparent 30%,#ffdcb43b 60%,transparent 72%);opacity:0}.rd29 .rd29-running .rd41-aura{animation:rd29-m30-halo 2.2s .8s ease-out both}
#puzzle [data-legacy-help=true]{display:none!important}.unified-help{margin:14px 0 20px;border:2px solid #386958;border-radius:12px;background:#f0f7f5;color:#193b39;padding:0 16px}.unified-help summary{cursor:pointer;min-height:48px;padding:14px 0;font-weight:700}.unified-help p{font:16px/1.6 system-ui;color:#193b39}.help-steps{display:flex;flex-wrap:wrap;gap:8px}.help-steps button,.help-fill{min-height:46px;padding:10px 14px;border:2px solid #597c74;border-radius:8px;background:#fff;color:#173b38;cursor:pointer;font:600 14px/1.4 system-ui}.help-steps button[aria-pressed=true],.help-fill{background:#8d213c;color:#fff;border-color:#8d213c}.help-current{padding-bottom:12px}.help-current:empty{padding:0}.film-intro-button{margin:8px 0 18px;min-height:44px;padding:9px 15px;border:1px solid #2d6656;border-radius:8px;background:#eff8f8;color:#174639;font:600 15px system-ui;cursor:pointer}
