/* ---- house (outside the board) ---- */
[data-scene="nutcracker"] .nc-stage{background:radial-gradient(60% 55% at 50% 40%,#2e0a10,#160408 60%,#070102)}
[data-scene="nutcracker"] .nc-stage::before,[data-scene="nutcracker"] .nc-stage::after{content:"";position:absolute;top:-10px;bottom:-10px;width:15%;z-index:0;pointer-events:none;filter:blur(2px) brightness(.5);background:linear-gradient(180deg,rgba(0,0,0,.5),transparent 25%,transparent 75%,rgba(0,0,0,.65)),repeating-linear-gradient(90deg,#24030a 0,#560915 12px,#86142a 19px,#4a0712 29px,#24030a 38px)}
[data-scene="nutcracker"] .nc-stage::before{left:-10px;-webkit-mask:linear-gradient(90deg,#000 40%,transparent);mask:linear-gradient(90deg,#000 40%,transparent)}
[data-scene="nutcracker"] .nc-stage::after{right:-10px;-webkit-mask:linear-gradient(270deg,#000 40%,transparent);mask:linear-gradient(270deg,#000 40%,transparent)}
[data-scene="nutcracker"] .nc-house{position:absolute;inset:-12px;z-index:1;pointer-events:none}
[data-scene="nutcracker"] .nc-house svg{position:absolute;inset:0;width:100%;height:100%;filter:blur(1.4px) brightness(.55) saturate(.8)}
[data-scene="nutcracker"] .nc-house::after{content:"";position:absolute;inset:0;background:radial-gradient(70% 75% at 50% 48%,transparent 30%,rgba(0,0,0,.85) 100%)}
[data-scene="nutcracker"] .nc-shake{position:absolute;inset:0}
/* ---- set ---- */
[data-scene="nutcracker"] .nc-set{position:absolute;left:34px;top:84px;width:332px;height:468px;z-index:1;overflow:hidden;background:radial-gradient(circle,rgba(226,180,94,.06) 0 1.4px,transparent 2.4px) 0 0/22px 22px,radial-gradient(circle,rgba(226,180,94,.035) 0 1px,transparent 1.8px) 11px 11px/22px 22px,linear-gradient(#0a1330,#16285a 70%,#1b2b56)}
[data-scene="nutcracker"] .nc-wain{position:absolute;left:0;right:0;bottom:86px;height:64px;background:repeating-linear-gradient(90deg,transparent 0 6px,rgba(255,220,160,.05) 6px 7px,transparent 7px 46px,rgba(0,0,0,.28) 46px 48px,transparent 48px 52px),linear-gradient(#26193f,#150e26);border-top:3px solid rgba(226,180,94,.4);box-shadow:inset 0 2px 0 rgba(0,0,0,.35)}
[data-scene="nutcracker"] .nc-window{position:absolute;left:206px;top:70px;width:92px;height:150px;border-radius:46px 46px 4px 4px;background:linear-gradient(90deg,#2a170c,#4a2c18 40%,#2a170c);box-shadow:inset 0 0 0 2px #d9ad52,inset 0 0 0 3px rgba(0,0,0,.4),0 6px 14px rgba(0,0,0,.45)}
[data-scene="nutcracker"] .nc-window::after{content:"";position:absolute;left:-6px;right:-6px;bottom:-8px;height:8px;border-radius:2px;background:linear-gradient(#d9ad52,#6b4510);box-shadow:0 4px 6px rgba(0,0,0,.5)}
[data-scene="nutcracker"] .nc-glass{position:absolute;inset:7px;border-radius:39px 39px 0 0;overflow:hidden;background:radial-gradient(circle at 66% 22%,#fdf6dc 0 9px,rgba(253,246,220,.22) 13px,transparent 32px),linear-gradient(#0e1d44,#2a4a84)}
[data-scene="nutcracker"] .nc-glass::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 0 100%,rgba(235,245,255,.55),transparent 22px),radial-gradient(circle at 100% 100%,rgba(235,245,255,.5),transparent 20px),radial-gradient(circle at 50% 100%,rgba(235,245,255,.25),transparent 18px),linear-gradient(115deg,transparent 40%,rgba(255,255,255,.07) 46%,transparent 52%)}
[data-scene="nutcracker"] .nc-sn{position:absolute;left:-40px;right:0;top:-92px;bottom:0;will-change:transform}
[data-scene="nutcracker"] .nc-sn.a{background:radial-gradient(circle,#fff 0 1.3px,transparent 1.9px) 0 0/19px 23px;animation:nc-snA 18s linear infinite}
[data-scene="nutcracker"] .nc-sn.b{background:radial-gradient(circle,rgba(255,255,255,.65) 0 .9px,transparent 1.4px) 5px 9px/13px 17px;animation:nc-snB 13s linear infinite;top:-68px}
@keyframes nc-snA{from{transform:translate(0,0)}to{transform:translate(19px,92px)}}
@keyframes nc-snB{from{transform:translate(0,0)}to{transform:translate(13px,68px)}}
[data-scene="nutcracker"] .nc-mull{position:absolute;inset:7px;border-radius:39px 39px 0 0;background:linear-gradient(90deg,transparent 37px,#3b2414 37px 41px,transparent 41px),linear-gradient(transparent 76px,#3b2414 76px 80px,transparent 80px);box-shadow:inset 0 0 0 1px rgba(217,173,82,.5)}
[data-scene="nutcracker"] .nc-treesvg{position:absolute;left:4px;top:100px;width:136px;height:286px;overflow:visible}
[data-scene="nutcracker"] .nc-floor{position:absolute;left:0;top:382px;width:332px;height:86px;display:block}
[data-scene="nutcracker"] .nc-dark{position:absolute;inset:0;background:rgba(2,4,14,.66)}
[data-scene="nutcracker"] .nc-vig{position:absolute;inset:0;background:radial-gradient(60% 55% at 50% 64%,transparent 40%,rgba(0,0,0,.55) 100%)}
[data-scene="nutcracker"] .nc-wash{position:absolute;inset:0;opacity:0;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(70% 50% at 50% 62%,rgba(255,200,120,.45),transparent 70%)}
[data-scene="nutcracker"] .nc-fire{position:absolute;left:-60px;bottom:40px;width:160px;height:200px;background:radial-gradient(closest-side,rgba(255,140,50,.28),transparent);animation:nc-fire 3.4s ease-in-out infinite;mix-blend-mode:screen}
@keyframes nc-fire{0%,100%{opacity:.7}23%{opacity:1}41%{opacity:.6}67%{opacity:.9}}
[data-scene="nutcracker"] .nc-tl{position:absolute;width:5px;height:5px;margin:-2.5px;border-radius:50%;background:var(--c);box-shadow:0 0 6px 2px var(--c),0 0 14px 4px color-mix(in srgb,var(--c) 45%,transparent);animation:nc-tw var(--d) ease-in-out infinite alternate;animation-delay:var(--dl)}
@keyframes nc-tw{from{opacity:.25}to{opacity:1}}
[data-scene="nutcracker"] .nc-beam{transform-origin:50% 0;position:absolute;left:34px;top:84px;width:332px;height:468px;z-index:5;pointer-events:none;opacity:0;mix-blend-mode:screen;overflow:visible}
/* ---- lever ---- */
[data-scene="nutcracker"] .nc-lever{position:absolute;left:228px;top:334px;width:0;height:0;z-index:3}
[data-scene="nutcracker"] .nc-arm{position:absolute;left:-4px;top:-5px;width:88px;height:10px;border-radius:5px;transform-origin:4px 50%;transform:rotate(20deg);background:linear-gradient(#f6e3a1,#c9952f 35%,#7a5418 70%,#e0b45a);box-shadow:0 3px 5px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,250,220,.6)}
[data-scene="nutcracker"] .nc-arm::after{content:"";position:absolute;left:18px;top:-3px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6d6,#c9952f 50%,#5a3a10);box-shadow:0 0 0 1px #3a2408,0 2px 3px rgba(0,0,0,.5)}
[data-scene="nutcracker"] .nc-arm::before{content:"";position:absolute;left:50px;top:-2px;width:8px;height:14px;border-radius:3px;background:linear-gradient(90deg,#6b4614,#f6e3a1 45%,#8a6420)}
[data-scene="nutcracker"] .nc-knob{position:absolute;right:-20px;top:-12px;width:34px;height:34px;border:0;padding:0;border-radius:50%;cursor:grab;touch-action:none;background:radial-gradient(circle at 35% 30%,#fff 0,#fff 7%,#e33 18%,#b0162a 52%,#7a0a14 85%);box-shadow:0 5px 9px rgba(0,0,0,.55),inset 0 -7px 7px -2px rgba(40,0,6,.7),inset 0 2px 1px rgba(255,255,255,.35),0 0 0 3px #b8862c,0 0 0 4px #6b4510}
[data-scene="nutcracker"] .nc-knob::before{content:"";position:absolute;inset:-16px;border-radius:50%}
[data-scene="nutcracker"] .nc-knob::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:2px solid rgba(255,214,140,.8);opacity:0;pointer-events:none}
[data-scene="nutcracker"] .nc-knob.pulse::after{animation:nc-halo 1.6s ease-out infinite}
[data-scene="nutcracker"] .nc-knob:focus-visible{outline:2px solid var(--gold-hi);outline-offset:6px}
@keyframes nc-halo{0%{opacity:.9;transform:scale(.8)}100%{opacity:0;transform:scale(1.6)}}
[data-scene="nutcracker"] .nc-ghost{position:absolute;left:0;top:0;width:400px;height:680px;z-index:6;pointer-events:none;opacity:0;transition:opacity .5s;overflow:visible}
[data-scene="nutcracker"] .nc-ghost.on{opacity:1}
[data-scene="nutcracker"] .nc-ghost path.arc{fill:none;stroke:rgba(255,222,160,.75);stroke-width:2;stroke-linecap:round;stroke-dasharray:2 6;animation:nc-march 1s linear infinite}
@keyframes nc-march{to{stroke-dashoffset:-16}}
/* ---- the nutcracker ---- */
[data-scene="nutcracker"] .nc-man{position:absolute;left:120px;top:198px;width:160px;height:330px;z-index:4;transform-origin:50% 100%;filter:brightness(.22) drop-shadow(0 -1.5px 0 rgba(255,228,170,0))}
[data-scene="nutcracker"] .nc-man svg{width:160px;height:330px;display:block;overflow:visible}
[data-scene="nutcracker"] .nc-man .lid{transform-box:fill-box;transform-origin:50% 0;transform:scaleY(0)}
[data-scene="nutcracker"] .nc-man .plume{transform-box:fill-box;transform-origin:50% 100%;animation:nc-plume 4s ease-in-out infinite alternate}
@keyframes nc-plume{from{transform:rotate(-3deg)}to{transform:rotate(3deg)}}
[data-scene="nutcracker"] .nc-flash{position:absolute;left:200px;top:347px;width:56px;height:56px;margin:-28px 0 0 -28px;border-radius:50%;z-index:9;opacity:0;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle,#fffbe8 0,#fff1c0 30%,rgba(255,200,110,.5) 60%,transparent 72%)}
[data-scene="nutcracker"] .nc-ring{position:absolute;left:200px;top:347px;width:60px;height:60px;margin:-30px 0 0 -30px;border-radius:50%;z-index:9;opacity:0;pointer-events:none;mix-blend-mode:screen;border:1.5px solid #ffd98a;box-shadow:0 0 8px rgba(255,200,110,.7)}
/* ---- curtains ---- */
[data-scene="nutcracker"] .nc-curtains{position:absolute;left:34px;top:96px;width:332px;height:456px;z-index:12;cursor:pointer;outline:none}
[data-scene="nutcracker"] .nc-curtains.open{pointer-events:none}
[data-scene="nutcracker"] .nc-curtains.open .nc-glow{opacity:0!important}
[data-scene="nutcracker"] .nc-glow{position:absolute;inset:0;opacity:0;pointer-events:none;transition:opacity .35s ease;background:radial-gradient(80% 45% at 50% 0%,rgba(255,205,140,.3),transparent 70%),radial-gradient(60% 30% at 50% 100%,rgba(255,200,120,.25),transparent 70%);box-shadow:inset 0 0 0 1.5px rgba(247,222,160,.55),inset 0 0 60px rgba(255,190,110,.28),0 0 34px rgba(255,180,100,.3)}
[data-scene="nutcracker"] .nc-curcv{position:absolute;left:0;top:0;width:332px;height:456px;transition:filter .35s ease}
[data-scene="nutcracker"] .nc-curtains:hover .nc-curcv,[data-scene="nutcracker"] .nc-curtains.hov .nc-curcv,[data-scene="nutcracker"] .nc-curtains:focus-visible .nc-curcv{filter:brightness(1.2) saturate(1.06)}
[data-scene="nutcracker"] .nc-glow::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 35%,rgba(255,236,190,.22) 47%,rgba(255,236,190,.05) 53%,transparent 62%) -200% 0/200% 100% no-repeat}
[data-scene="nutcracker"] .nc-curtains:hover .nc-glow::after,[data-scene="nutcracker"] .nc-curtains.hov .nc-glow::after{animation:nc-sheen 1.6s ease-out}
@keyframes nc-sheen{to{background-position:300% 0}}
[data-scene="nutcracker"] .nc-val{transition:filter .35s}
[data-scene="nutcracker"] .nc-shake:has(.nc-curtains:hover) .nc-val,[data-scene="nutcracker"] .nc-shake:has(.nc-curtains.hov) .nc-val{filter:brightness(1.2) drop-shadow(0 6px 6px rgba(0,0,0,.5)) drop-shadow(0 0 10px rgba(255,200,120,.5))}
[data-scene="nutcracker"] .nc-curtains:hover .nc-glow,[data-scene="nutcracker"] .nc-curtains.hov .nc-glow,[data-scene="nutcracker"] .nc-curtains:focus-visible .nc-glow{opacity:1}
/* placard on a gilt rod */
[data-scene="nutcracker"] .nc-hint{position:absolute;left:50%;top:134px;width:250px;margin-left:-125px;pointer-events:none;transform-origin:50% -64px;animation:nc-swing 5s ease-in-out infinite alternate;transition:opacity .5s,transform .8s}
[data-scene="nutcracker"] .nc-hint .nc-hrod{position:absolute;left:44px;right:44px;top:-70px;height:6px;border-radius:3px;background:linear-gradient(#f6e3a1,#c9952f 45%,#6b4614);box-shadow:0 3px 5px rgba(0,0,0,.5)}
[data-scene="nutcracker"] .nc-hint .nc-hrod::before,[data-scene="nutcracker"] .nc-hint .nc-hrod::after{content:"";position:absolute;top:-4px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6d6,#c9952f 55%,#5a3a10)}
[data-scene="nutcracker"] .nc-hint .nc-hrod::before{left:-9px}[data-scene="nutcracker"] .nc-hint .nc-hrod::after{right:-9px}
[data-scene="nutcracker"] .nc-hint .nc-cord{position:absolute;top:-64px;width:1.5px;height:64px;background:linear-gradient(90deg,#8a6420,#f3d58e,#8a6420)}
[data-scene="nutcracker"] .nc-hint .nc-cord.up{top:-130px;height:62px}[data-scene="nutcracker"] .nc-hint .nc-cord.a{left:56px}[data-scene="nutcracker"] .nc-hint .nc-cord.b{right:56px}
[data-scene="nutcracker"] .nc-card{position:relative;filter:drop-shadow(10px 14px 10px rgba(0,0,0,.35));padding:15px 14px 15px;text-align:center;border-radius:8px;background:linear-gradient(160deg,#fdf6e3,#efe0bd);box-shadow:0 16px 30px rgba(0,0,0,.6),inset 0 0 0 2px #c49a45,inset 0 0 0 5px #fdf6e3,inset 0 0 0 6px rgba(196,154,69,.6),inset 0 0 26px rgba(160,110,40,.18)}
[data-scene="nutcracker"] .nc-card .k{font:600 9.5px/1 var(--f-display);letter-spacing:.26em;white-space:nowrap;text-transform:uppercase;color:#9a6a26}
[data-scene="nutcracker"] .nc-card .t{font:600 21px/1.1 var(--f-display);color:#5a1414;margin-top:8px;letter-spacing:.08em}
[data-scene="nutcracker"] .nc-card .s{font:italic 500 15px/1.2 "Cormorant Garamond",Georgia,serif;color:#7a4a2a;margin-top:5px}
[data-scene="nutcracker"] .nc-card .s::before,[data-scene="nutcracker"] .nc-card .s::after{content:"";display:inline-block;width:22px;height:1px;background:#c49a45;vertical-align:middle;margin:0 8px}
@keyframes nc-swing{from{transform:rotate(-1.4deg)}to{transform:rotate(1.4deg)}}
[data-scene="nutcracker"] .nc-curtains.open .nc-hint{animation:none;opacity:0;transform:translateY(-34px)}
[data-scene="nutcracker"] .nc-tie{position:absolute;top:362px;width:34px;height:9px;z-index:13;opacity:0;border-radius:5px;background:repeating-linear-gradient(60deg,#f6dc98 0 3px,#a87a2b 3px 6px);box-shadow:0 3px 6px rgba(0,0,0,.5)}
[data-scene="nutcracker"] .nc-tie::before{content:"";position:absolute;top:-3px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff1c0,#c9933c 60%,#6b4510)}
[data-scene="nutcracker"] .nc-tie::after{content:"";position:absolute;top:9px;width:12px;height:28px;border-radius:40% 40% 30% 30%/25% 25% 75% 75%;background:repeating-linear-gradient(90deg,#f3d58e 0 1.5px,#a87a2b 1.5px 3px);box-shadow:inset 0 -6px 6px rgba(0,0,0,.25)}
[data-scene="nutcracker"] .nc-tie.l{left:33px;transform:rotate(-6deg)}[data-scene="nutcracker"] .nc-tie.l::before{left:24px}[data-scene="nutcracker"] .nc-tie.l::after{left:25px}
[data-scene="nutcracker"] .nc-tie.r{left:333px;transform:rotate(6deg)}[data-scene="nutcracker"] .nc-tie.r::before{left:-4px}[data-scene="nutcracker"] .nc-tie.r::after{left:-3px}
[data-scene="nutcracker"] .nc-val{position:absolute;left:34px;top:80px;width:332px;height:58px;z-index:14;pointer-events:none;background:radial-gradient(ellipse 50% 100% at 50% 0,#b51f33 0 70%,#7a0f1d 84%,#f3d58e 86% 92%,transparent 93%) 0 10px/83px 48px repeat-x,linear-gradient(#5e0a16,#8e1325) 0 0/100% 16px no-repeat;filter:drop-shadow(0 6px 6px rgba(0,0,0,.5))}
[data-scene="nutcracker"] .nc-fascia{position:absolute;left:0;top:0;width:400px;height:680px;z-index:14;pointer-events:none}
[data-scene="nutcracker"] .nc-frame{position:absolute;left:0;top:0;z-index:14;pointer-events:none;filter:drop-shadow(0 10px 20px rgba(0,0,0,.6))}
[data-scene="nutcracker"] .nc-foot{position:absolute;left:0;top:0;width:0;height:0;z-index:15}
[data-scene="nutcracker"] .nc-fl{position:absolute;top:544px;width:24px;height:12px;margin-left:-12px;border-radius:12px 12px 2px 2px;background:linear-gradient(#f6e3a1,#b8862c 40%,#4a300c);box-shadow:0 2px 3px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,250,220,.7)}
[data-scene="nutcracker"] .nc-fl::before{content:"";position:absolute;left:1px;right:1px;top:-6px;height:9px;border-radius:50%;background:radial-gradient(closest-side,#fffbe8,rgba(255,214,140,.75) 55%,transparent);filter:blur(.4px)}
[data-scene="nutcracker"] .nc-fl::after{content:"";position:absolute;left:-22px;right:-22px;bottom:4px;height:60px;border-radius:50%;background:radial-gradient(50% 100% at 50% 100%,rgba(255,200,120,.32),transparent 70%);mix-blend-mode:screen;animation:nc-breathe 3s ease-in-out infinite;animation-delay:var(--dl)}
@keyframes nc-breathe{0%,100%{opacity:.6}50%{opacity:1}}
/* ---- walnuts on a tufted cushion ---- */
[data-scene="nutcracker"] .nc-apron{position:absolute;left:6px;top:556px;width:388px;height:92px;z-index:14;border-radius:0 0 50% 50%/0 0 46% 46%;background:linear-gradient(180deg,#f6e3a1 0,#b8862c 3px,#4a300c 6px,transparent 6px),linear-gradient(180deg,transparent 0 10px,#d9ad52 10px 11px,transparent 11px),repeating-linear-gradient(90deg,rgba(0,0,0,0) 0 38px,rgba(0,0,0,.18) 38px 40px),radial-gradient(90% 120% at 50% 0,#6a4426,#3a2212 60%,#140a04);box-shadow:inset 0 -14px 20px rgba(0,0,0,.55),0 18px 30px rgba(0,0,0,.6)}
[data-scene="nutcracker"] .nc-tray{position:absolute;left:24px;top:556px;width:352px;height:84px;z-index:16;opacity:0;overflow:visible}
[data-scene="nutcracker"] .nc-nut{position:absolute;width:60px;height:57px;border:0;padding:0;background:none;cursor:grab;touch-action:none;z-index:17;pointer-events:none}
[data-scene="nutcracker"] .nc-nut::before{content:"";position:absolute;inset:-12px}
[data-scene="nutcracker"] .nc-nuts.ready .nc-nut{pointer-events:auto}
[data-scene="nutcracker"] .nc-nut .ent{position:relative;display:block;width:60px;height:57px;opacity:0}
[data-scene="nutcracker"] .nc-nut .sh{position:absolute;left:8px;right:8px;bottom:-2px;height:12px;border-radius:50%;background:radial-gradient(closest-side,rgba(0,0,0,.6),transparent);transform:scale(var(--s));transition:transform .25s,opacity .25s}
[data-scene="nutcracker"] .nc-nut .halo{position:absolute;left:50%;top:50%;width:80px;height:80px;margin:-40px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,196,96,.35),rgba(255,196,96,.12) 60%,transparent);box-shadow:0 0 0 1px rgba(255,206,120,.35);opacity:0;pointer-events:none;transition:opacity .3s}
[data-scene="nutcracker"] .nc-nuts.ready .nc-nut.sug:not(.drag) .halo{animation:nc-halo 2.4s ease-out infinite}@media (hover:hover){[data-scene="nutcracker"] .nc-nuts.ready .nc-nut:hover .halo{opacity:1;animation:none}}
[data-scene="nutcracker"] .nc-nut .in{position:relative;display:block;width:60px;height:57px;transform:scale(var(--s));animation:nc-bob 2.6s ease-in-out infinite alternate;filter:brightness(var(--b,1)) drop-shadow(0 0 4px rgba(255,200,100,.3));transition:filter .25s}
[data-scene="nutcracker"] .nc-nut svg{display:block;width:60px;height:57px;overflow:visible}
@media (hover:hover){[data-scene="nutcracker"] .nc-nut:hover .in{filter:brightness(1.08) drop-shadow(0 0 10px rgba(255,214,130,.95))}}[data-scene="nutcracker"] .nc-nut:focus-visible .in{filter:brightness(1.08) drop-shadow(0 0 10px rgba(255,214,130,.95))}
[data-scene="nutcracker"] .nc-nut:focus-visible{outline:none}
[data-scene="nutcracker"] .nc-nut.drag{cursor:grabbing;z-index:22!important}
[data-scene="nutcracker"] .nc-nut.drag .in{animation:none;transform:scale(1.18);filter:drop-shadow(0 0 14px rgba(255,222,150,1))}
[data-scene="nutcracker"] .nc-nut.drag .sh{transform:translateY(14px) scale(1.5);opacity:.45}
[data-scene="nutcracker"] .nc-nut.held .in{animation:none;filter:drop-shadow(0 1.5px 1px rgba(40,10,0,.7))}
[data-scene="nutcracker"] .nc-nut.held .sh{opacity:0}
@keyframes nc-bob{from{transform:translateY(0) scale(var(--s))}to{transform:translateY(-4px) scale(var(--s))}}
/* ---- reveal ---- */
[data-scene="nutcracker"] .nc-dim{position:absolute;inset:-1400px;z-index:18;opacity:0;pointer-events:none;background:radial-gradient(circle at 50% 43%,rgba(8,2,4,0) 0,rgba(8,2,4,.35) 150px,rgba(8,2,4,.7) 330px)}
[data-scene="nutcracker"] .nc-spos{position:absolute;left:200px;top:300px;width:0;height:0;visibility:hidden;z-index:19}
[data-scene="nutcracker"] .nc-rayw{position:absolute;left:-300px;top:-300px;width:600px;height:600px;opacity:0;pointer-events:none}
[data-scene="nutcracker"] .nc-rayw::before{content:"";position:absolute;inset:150px;border-radius:50%;background:radial-gradient(closest-side,rgba(255,226,160,.55),rgba(255,200,120,.18) 55%,transparent)}
[data-scene="nutcracker"] .nc-rays{position:absolute;inset:0;border-radius:50%;-webkit-mask:radial-gradient(circle,#000 14%,rgba(0,0,0,.35) 38%,transparent 60%);mask:radial-gradient(circle,#000 14%,rgba(0,0,0,.35) 38%,transparent 60%);filter:blur(2px);animation:nc-spin 240s linear infinite}

@keyframes nc-spin{to{transform:rotate(360deg)}}
@keyframes nc-twk{from{opacity:.3}to{opacity:1}}
