/* Scoped to the new puzzle. Existing boards and layout stay untouched. */
#screen-play[data-game="ngedip"] .play-stage { width:100%; max-width:680px; margin-inline:auto; padding:8px; display:block; }
#screen-play[data-game="ngedip"] .v3-gameplay-status-strip { display:none; }
.nd-wrap { width:100%; color:var(--nyon-ink); }
.nd-status { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr); align-items:center; min-height:72px; gap:6px; padding:10px 12px; border:2px solid #dedddd; border-radius:18px; background:#fffdf9; box-shadow:0 5px 0 #e5dfd5; margin-bottom:16px; font-weight:800; }
.nd-level { display:grid; gap:4px; text-align:left; }
.nd-level small { font-size:10px; letter-spacing:.7px; }
.nd-level b { font-size:clamp(11px,2.8vw,16px); }
.nd-phase { text-align:center; color:var(--nyon-success); font-size:clamp(12px,3vw,17px); line-height:1.25; }
.nd-counters { display:flex; align-items:center; justify-content:flex-end; gap:8px; }
.nd-lives { color:#cd4c72; font-size:clamp(15px,3.5vw,22px); white-space:nowrap; letter-spacing:2px; }
.nd-timer { display:grid; place-items:center; min-width:34px; height:42px; background:var(--nyon-butter); border-radius:12px; box-shadow:0 4px 0 #c6a644; font-size:24px; }
.nd-timer[hidden] { display:none; }
.nd-frame { position:relative; width:100%; aspect-ratio:4/5; overflow:hidden; border:2px solid var(--nyon-ink); border-radius:20px; background:var(--nyon-cream); isolation:isolate; touch-action:manipulation; }
.nd-scene { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:fill; user-select:none; -webkit-user-drag:none; }
.nd-after { opacity:0; }
.nd-rings,.nd-curtain { position:absolute; inset:0; pointer-events:none; }
.nd-ring { position:absolute; border:3px solid #F8D35E; border-radius:50%; box-shadow:0 0 0 2px #302b3b, inset 0 0 0 1px #302b3b; box-sizing:border-box; }
.nd-curtain { display:flex; visibility:hidden; }
.nd-curtain.closed,.nd-curtain.opening,.nd-curtain.sealed { visibility:visible; }
.nd-curtain span { width:50%; height:100%; background:repeating-linear-gradient(90deg,#aec9bf 0,#aec9bf 16%,#bfd8cf 16%,#bfd8cf 32%); transition:transform .35s ease; }
.nd-curtain span:first-child { transform:translateX(-101%); }
.nd-curtain span:nth-of-type(2) { transform:translateX(101%); }
.nd-curtain.closed span { transform:translateX(0); }
.nd-curtain.sealed { background:#aec9bf; }
.nd-curtain b { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); padding:14px 18px; border:2px solid var(--nyon-ink); border-radius:16px; background:var(--nyon-butter); box-shadow:0 5px 0 #302b3b30; text-align:center; white-space:nowrap; font-size:clamp(16px,4vw,25px); opacity:0; }
.nd-curtain.closed b { opacity:1; }
.nd-intro { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:24px; background:var(--nyon-cream); text-align:center; }
.nd-intro[hidden] { display:none; }
.nd-intro>img { width:88px; height:88px; object-fit:contain; }
.nd-intro>b { font-size:clamp(22px,5vw,32px); }
.nd-intro p { margin:0; }
.nd-start { width:min(100%,320px); min-height:48px; background:var(--nyon-sage); color:var(--nyon-ink); }
.nd-instruction { display:flex; align-items:center; gap:12px; padding:14px 16px; margin:16px 0; border:2px solid #dedddd; border-radius:18px; background:#fffdf9; box-shadow:0 5px 0 #e5dfd5; color:var(--nyon-success); font-weight:800; }
.nd-instruction>span { font-size:26px; }
.nd-instruction p { margin:0; font-size:clamp(13px,3.3vw,17px); }
.nd-miss { position:absolute; transform:translate(-50%,-50%); color:#cd4c72; font-size:56px; font-weight:900; line-height:1; pointer-events:none; text-shadow:0 2px 0 #fffdf9; animation:nd-miss-pop .55s ease-out forwards; }
@keyframes nd-miss-pop { 0% { opacity:0; transform:translate(-50%,-50%) scale(.5); } 25% { opacity:1; transform:translate(-50%,-50%) scale(1.15); } 65% { opacity:1; transform:translate(-50%,-50%) scale(1); } 100% { opacity:0; transform:translate(-50%,-65%) scale(.9); } }
@media (max-width:600px) { #screen-play[data-game="ngedip"] .play-stage { padding:4px 0; } }
@media (prefers-reduced-motion:reduce) { .nd-curtain span { transition:none; } }
