/* NodeClash Immersive Safe Layer
   Presentation-only progressive enhancement. No game-state ownership. */
:root{--nc-immersive-depth:0px;--nc-immersive-tilt:0deg}
body.nc-immersive-ready{background:radial-gradient(circle at 50% 10%,rgba(100,170,255,.08),transparent 35%),#050914}
.nc-immersive-vignette{position:fixed;inset:0;pointer-events:none;z-index:1;background:radial-gradient(circle,transparent 42%,rgba(0,0,0,.34) 100%);mix-blend-mode:multiply}
.nc-immersive-grid{position:fixed;left:-10%;right:-10%;bottom:-20%;height:65%;pointer-events:none;z-index:1;opacity:.25;transform:perspective(700px) rotateX(64deg);background-image:linear-gradient(rgba(110,180,255,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(110,180,255,.22) 1px,transparent 1px);background-size:48px 48px;mask-image:linear-gradient(to top,black,transparent)}
.nc-immersive-orbit{position:fixed;width:min(70vw,720px);height:min(70vw,720px);left:50%;top:50%;transform:translate(-50%,-50%) perspective(800px) rotateX(68deg);border:1px solid rgba(120,190,255,.16);border-radius:50%;pointer-events:none;z-index:1;box-shadow:0 0 80px rgba(80,150,255,.08),inset 0 0 50px rgba(80,150,255,.05);animation:ncOrbit 18s linear infinite}
.nc-immersive-orbit:before,.nc-immersive-orbit:after{content:"";position:absolute;inset:12%;border:1px solid rgba(180,220,255,.12);border-radius:50%}.nc-immersive-orbit:after{inset:27%;border-color:rgba(100,180,255,.09)}
.nc-splash{isolation:isolate;overflow:hidden}.nc-splash-bg{background:radial-gradient(circle at 50% 45%,rgba(72,145,255,.16),transparent 30%),radial-gradient(circle at 20% 80%,rgba(120,70,255,.10),transparent 25%),#03050b!important}
.nc-splash:before{content:"";position:absolute;inset:-40%;background:conic-gradient(from 0deg,transparent,rgba(90,180,255,.08),transparent 25%,rgba(170,90,255,.06),transparent 50%);animation:ncSpin 20s linear infinite;pointer-events:none}
.nc-splash:after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(255,255,255,.65) 0 1px,transparent 1.5px);background-size:83px 83px;opacity:.14;animation:ncStars 8s linear infinite;pointer-events:none}
.nc-splash-center{position:relative;z-index:3}.nc-splash-core{transform:translateZ(0);box-shadow:0 0 35px rgba(80,170,255,.35),inset 0 0 25px rgba(255,255,255,.12)}
.nc-splash-ring{box-shadow:0 0 55px rgba(90,170,255,.22);animation:ncPulse 2.4s ease-in-out infinite}
.board-focus-stage,.board-stage-center{transform-style:preserve-3d}
.board-focus-stage{perspective:1100px}
.board-stage-center{transform:translateZ(var(--nc-immersive-depth)) rotateX(var(--nc-immersive-tilt));transition:transform .28s ease-out;filter:drop-shadow(0 22px 38px rgba(0,0,0,.3))}
.board{transform-style:preserve-3d;box-shadow:0 22px 70px rgba(0,0,0,.34),0 0 55px rgba(70,150,255,.08)}
.board .cell{transform:translateZ(0);transition:transform .16s ease,filter .16s ease,box-shadow .16s ease}
.board .cell:hover{transform:translateZ(10px) scale(1.025);filter:brightness(1.12);box-shadow:0 10px 22px rgba(0,0,0,.22)}
body.nc-win-impact .board{animation:ncWinImpact .62s cubic-bezier(.2,.8,.2,1)}
@keyframes ncOrbit{to{transform:translate(-50%,-50%) perspective(800px) rotateX(68deg) rotateZ(360deg)}}
@keyframes ncSpin{to{transform:rotate(360deg)}}
@keyframes ncStars{to{background-position:83px 83px}}
@keyframes ncPulse{50%{transform:scale(1.035);opacity:.72}}
@keyframes ncWinImpact{0%{transform:translateZ(0) scale(1)}25%{transform:translateZ(10px) scale(1.018)}55%{transform:translateZ(-3px) scale(.996)}100%{transform:translateZ(0) scale(1)}}
@media(max-width:700px){.nc-immersive-grid{opacity:.14;background-size:34px 34px}.nc-immersive-orbit{width:105vw;height:105vw;opacity:.6}.board-stage-center{transform:none!important}.board .cell:hover{transform:none;box-shadow:none}}
@media(prefers-reduced-motion:reduce){.nc-immersive-orbit,.nc-splash:before,.nc-splash:after,.nc-splash-ring,body.nc-win-impact .board{animation:none!important}.board-stage-center{transition:none}}

/* --- v6.1.4 physical-feel geometry layer --- */
.board.nc-board-3d{transform:perspective(1250px) rotateX(var(--nc-board-rotate-x,0deg)) rotateY(var(--nc-board-rotate-y,0deg)) translateZ(0);transition:transform .18s ease-out;box-shadow:0 40px 100px rgba(0,0,0,.4),0 0 70px rgba(65,160,255,.12);}
.board .cell.nc-cell-3d{position:relative;transform-style:preserve-3d;perspective:700px;}
.nc-physical-seed{position:relative;display:grid;place-items:center;transform:translateZ(14px);width:74%;height:74%;transform-style:preserve-3d;filter:drop-shadow(0 14px 10px rgba(0,0,0,.28));}
.nc-seed-face{position:relative;z-index:3;display:grid;place-items:center;width:100%;height:100%;font-size:clamp(2.4rem,6vw,4.3rem);line-height:1;text-shadow:0 2px 0 rgba(0,0,0,.28),0 0 24px currentColor;backface-visibility:hidden;}
.nc-seed-side{position:absolute;inset:8%;transform:translateZ(-8px) scale(.95);border-radius:26%;background:linear-gradient(145deg,rgba(255,255,255,.2),rgba(0,0,0,.35));filter:blur(.2px);}
.nc-seed-shadow{position:absolute;left:14%;right:14%;bottom:2%;height:13%;border-radius:50%;background:rgba(0,0,0,.42);filter:blur(9px);transform:translateZ(-15px);}
.nc-geom-triangle .nc-seed-face{color:#79e9ff}.nc-geom-circle .nc-seed-face{color:#ff8db7}
.board .cell.nc-cell-3d:hover .nc-physical-seed{transform:translateZ(24px) scale(1.04)}
body.nc-win-impact .nc-physical-seed{animation:ncSeedImpact .58s cubic-bezier(.2,.8,.2,1)}
@keyframes ncSeedImpact{0%{transform:translateZ(14px) scale(1)}25%{transform:translateZ(35px) scale(1.1) rotateX(4deg)}55%{transform:translateZ(20px) scale(.98)}100%{transform:translateZ(14px) scale(1)}}
@media(max-width:700px){.board.nc-board-3d{transform:none!important}.nc-physical-seed{transform:translateZ(5px)}.board .cell.nc-cell-3d:hover .nc-physical-seed{transform:translateZ(5px) scale(1)} }
@media(prefers-reduced-motion:reduce){.board.nc-board-3d{transition:none}.body.nc-win-impact .nc-physical-seed{animation:none!important}}

/* v6.2.6 Quick PvP scan status */
.nc-quick-pvp-state{padding:9px 11px;border-radius:12px;border:1px solid rgba(133,216,255,.14);background:rgba(5,18,31,.36);color:rgba(230,248,255,.78);font-size:.78rem;line-height:1.35;letter-spacing:.03em}.nc-quick-pvp-state[data-tone="found"]{border-color:rgba(108,246,180,.36);color:#bdfde1}.nc-quick-pvp-state[data-tone="timeout"]{border-color:rgba(255,211,101,.34);color:#ffe8a8}.nc-quick-pvp-state[data-tone="error"]{border-color:rgba(255,111,137,.38);color:#ffd0da}.nc-quick-pvp-state[data-tone="search"]{border-color:rgba(106,214,255,.24);color:#d4f4ff}
