/* Novadiem — Polyhedra toy: shared styles (geometry-study + home hero) */
.lab{padding:clamp(24px,4vw,48px) 0 80px;}
.lab__stage{
  position:relative;width:100%;aspect-ratio:1;max-width:680px;margin:0 auto;
  background:transparent;
  overflow:visible;cursor:grab;touch-action:none;user-select:none;
}
.lab__stage:active{cursor:grabbing;}
.toy-scene{position:absolute;inset:0;width:100%;height:100%;display:block;}
.toy-logo{transform-box:fill-box;transform-origin:center;animation:toyGlow 7s ease-in-out infinite;filter:drop-shadow(0 7px 11px rgba(0,0,0,.72)) drop-shadow(0 2px 4px rgba(0,0,0,.55)) drop-shadow(0 0 9px rgba(214,171,78,.42));}
.toy-logo path,.toy-logo polygon{fill:url(#logoGold);stroke:#7a5212;stroke-width:1.1;stroke-opacity:.45;}
@keyframes toyGlow{0%,100%{opacity:.92;}50%{opacity:1;}}
@media (prefers-reduced-motion:reduce){.toy-logo{animation:none;}}

/* orbital rings around the toy */
.ring-a,.ring-b,.ring-c{transform-box:view-box;transform-origin:220px 220px;}
.ring-a{animation:ringSpin 86s linear infinite;}
.ring-b{animation:ringSpin 62s linear infinite reverse;}
.ring-c{animation:ringSpin 120s linear infinite;}
@keyframes ringSpin{to{transform:rotate(360deg);}}
.toy-star{animation:toyTwinkle 5s ease-in-out infinite;}
.toy-star:nth-of-type(even){animation-duration:6.5s;animation-delay:1.4s;}
.toy-star:nth-of-type(3n){animation-duration:4s;animation-delay:.7s;}
@keyframes toyTwinkle{0%,100%{opacity:.14;}50%{opacity:.7;}}
@media (prefers-reduced-motion:reduce){.ring-a,.ring-b,.ring-c,.toy-star{animation:none;}}

/* glyph controls */
.gctl{display:flex;flex-direction:column;align-items:center;gap:9px;}
.gctl__ic{width:22px;height:22px;color:rgba(232,225,208,.8);display:grid;place-items:center;}
.gctl__ic svg{width:100%;height:100%;display:block;}
.gctl__track{
  position:relative;width:6px;height:118px;border-radius:6px;
  background:rgba(232,225,208,.12);cursor:pointer;touch-action:none;
}
.gctl__fill{position:absolute;left:0;right:0;bottom:0;border-radius:6px;background:linear-gradient(#d6ab4e,#b07d21);}
.gctl__thumb{
  position:absolute;left:50%;width:15px;height:15px;border-radius:50%;
  background:#f3e7cf;transform:translate(-50%,50%);box-shadow:0 1px 5px rgba(0,0,0,.5);
}
/* horizontal shape slider across the bottom */
.gctl--h{position:absolute;left:30px;right:30px;bottom:-42px;flex-direction:row;align-items:center;gap:12px;z-index:3;}
.gctl--h .gctl__track{width:auto;flex:1;height:6px;background:linear-gradient(90deg,#d6ab4e,#3ECFCF);}
.gctl--h .gctl__fill{display:none;}
.gctl--h .gctl__thumb{left:0;bottom:auto;top:50%;transform:translate(-50%,-50%);}
.gctl__ic--ico{color:#d6ab4e;}
.gctl__ic--dod{color:#3ECFCF;}

/* ---- day mode: the core vignette must blend into parchment, not read as a black smudge ---- */
[data-theme="light"] #coreMask stop{stop-color:#f1e7d0;}
[data-theme="light"] #coreHalo stop{stop-color:#caa04a;}
[data-theme="light"] .toy-logo{filter:drop-shadow(0 6px 10px rgba(110,72,18,.40)) drop-shadow(0 2px 4px rgba(110,72,18,.30)) drop-shadow(0 0 9px rgba(176,125,33,.30));}
[data-theme="light"] .toy-logo path,[data-theme="light"] .toy-logo polygon{stroke:#7a5212;stroke-opacity:.5;}

/* day mode: deepen + lift the rings and stars so they read on parchment */
[data-theme="light"] #ringGrad stop{stop-color:#8a5d10;}
[data-theme="light"] #ringGrad stop:first-child{stop-opacity:1;}
[data-theme="light"] #ringGrad stop:nth-child(2){stop-opacity:.6;}
[data-theme="light"] .ring-c,[data-theme="light"] .ring-b{stroke:#9a6712;}
[data-theme="light"] .ring-c circle{opacity:.32;}
[data-theme="light"] .ring-b circle{opacity:.42;}
[data-theme="light"] .toy-star{fill:#8a5d10;}
@media (prefers-reduced-motion:reduce){[data-theme="light"] .toy-star{opacity:.55;}}
