.nv-board{aspect-ratio:1;grid-template-columns:var(--nv-lab,.62fr) var(--nv-n-fr,10fr);grid-template-rows:var(--nv-lab,.62fr) var(--nv-n-fr,10fr);-webkit-user-select:none;user-select:none;width:100%;display:grid;container-type:inline-size}.nv-board-compact{--nv-lab:.5fr}.nv-labels-x,.nv-labels-y{color:#7dd3fc8c;font-weight:700;font-size:calc(100cqw / (var(--nv-n) + .62) * .4);font-variant-numeric:tabular-nums;justify-content:space-around;align-items:center;line-height:1;display:flex}.nv-labels-x{flex-direction:row}.nv-labels-y{flex-direction:column}.nv-labels-x>span,.nv-labels-y>span{text-align:center;flex:1 1 0;justify-content:center;align-items:center;min-width:0;display:flex}.nv-sea{aspect-ratio:1;background:radial-gradient(120% 90% at 30% 10%,#38bdf82e,#0000 60%),radial-gradient(100% 80% at 80% 100%,#082f49b3,#0000 70%),linear-gradient(160deg,#145a86 0%,#0e3a5c 48%,#0a2c47 100%);border-radius:clamp(6px,1.6cqw,14px);position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #7dd3fc38,inset 0 0 30px #0206178c,0 18px 40px -18px #000c}.nv-sea-enemy{background:radial-gradient(120% 90% at 30% 10%,#22d3ee1f,#0000 60%),radial-gradient(100% 80% at 80% 100%,#02061799,#0000 70%),linear-gradient(160deg,#0f4a6e 0%,#0b2f4d 50%,#081f36 100%)}.nv-sea:before{content:"";pointer-events:none;background:repeating-linear-gradient(115deg,#0000 0 18px,#ffffff09 18px 20px,#0000 20px 44px),repeating-linear-gradient(65deg,#0000 0 26px,#7dd3fc08 26px 28px,#0000 28px 60px);animation:14s linear infinite nv-waves;position:absolute;inset:-50%}@keyframes nv-waves{0%{transform:translate(0,0)}to{transform:translate(60px,30px)}}.nv-lines{pointer-events:none;background-image:linear-gradient(90deg,#7dd3fc29 1px,#0000 1px),linear-gradient(#7dd3fc29 1px,#0000 1px);background-size:calc(100% / var(--nv-n)) calc(100% / var(--nv-n));background-position:-.5px -.5px;position:absolute;inset:0}.nv-cells{grid-template-columns:repeat(var(--nv-n), minmax(0, 1fr));grid-template-rows:repeat(var(--nv-n), minmax(0, 1fr));display:grid;position:absolute;inset:0}.nv-cell{-webkit-tap-highlight-color:transparent;background:0 0;border:0;outline:none;margin:0;padding:0;display:block;position:relative}.nv-cell:focus-visible{z-index:1;border-radius:3px;box-shadow:inset 0 0 0 2px #22d3ee}.nv-cell-enabled{cursor:crosshair}@media (hover:hover){.nv-cell-enabled:hover{background:#22d3ee1f}}.nv-layer{pointer-events:none;position:absolute;inset:0}.nv-at{left:calc(var(--x) * 100% / var(--nv-n));top:calc(var(--y) * 100% / var(--nv-n));width:calc(var(--w,1) * 100% / var(--nv-n));height:calc(var(--h,1) * 100% / var(--nv-n));position:absolute}.nv-tint-ok{background:#22c55e47;box-shadow:inset 0 0 0 1px #4ade80b3}.nv-tint-bad{background:#ef44444d;box-shadow:inset 0 0 0 1px #f87171cc}.nv-tint-zone{background:repeating-linear-gradient(135deg,#94a3b81f 0 3px,#0000 3px 7px)}.nv-tint-target{background:#22d3ee38;box-shadow:inset 0 0 0 2px #22d3eee6}.nv-tint-last{animation:1.2s ease-in-out infinite alternate nv-last;box-shadow:inset 0 0 0 2px #fbbf24d9}@keyframes nv-last{0%{box-shadow:inset 0 0 0 2px #fbbf24f2,0 0 10px #fbbf2473}to{box-shadow:inset 0 0 0 1px #fbbf2459,0 0 #fbbf2400}}.nv-mark{justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.nv-miss:after{content:"";opacity:.9;background:radial-gradient(circle at 35% 35%,#f0f9ff,#bae6fd 55%,#7dd3fc);border-radius:9999px;width:30%;height:30%;box-shadow:0 0 0 2px #bae6fd2e,0 0 8px #bae6fd59}.nv-revealed:after{content:"";background:#94a3b873;border-radius:9999px;width:14%;height:14%}.nv-hit:before{content:"";background:radial-gradient(circle,#f973168c,#0000 70%);border-radius:9999px;animation:1.4s ease-in-out infinite alternate nv-glow;position:absolute;inset:12%}.nv-hit:after{content:"";background:radial-gradient(circle at 50% 60%,#fff7ed 0 12%,#fdba74 22%,#f97316 45%,#dc2626 75%,#7f1d1d);border-radius:9999px;width:46%;height:46%;animation:.9s ease-in-out infinite alternate nv-flicker;box-shadow:0 0 10px #f97316cc}.nv-sunk:after{content:"";background:radial-gradient(circle at 50% 55%,#fca5a5 0 10%,#dc2626 35%,#7f1d1d 70%,#450a0a);border-radius:9999px;width:40%;height:40%;box-shadow:0 0 6px #7f1d1de6}.nv-sunk:before{content:"";background:#7f1d1d59;position:absolute;inset:0}@keyframes nv-flicker{0%{filter:brightness();transform:scale(.9)rotate(-4deg)}50%{filter:brightness(1.25);transform:scale(1.05)rotate(3deg)}to{filter:brightness(1.1);transform:scale(.95)rotate(-2deg)}}@keyframes nv-glow{0%{opacity:.55;transform:scale(.9)}to{opacity:1;transform:scale(1.15)}}.nv-radar{pointer-events:none;mix-blend-mode:screen;background:conic-gradient(#0000 0deg 300deg,#22d3ee08 320deg,#22d3ee33 358deg,#0000 360deg);animation:4.5s linear infinite nv-sweep;position:absolute;inset:-40%}@keyframes nv-sweep{to{transform:rotate(360deg)}}.nv-reticle{animation:1.6s ease-in-out infinite nv-reticle}@keyframes nv-reticle{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(.88)rotate(45deg)}}.nv-turn-ring{box-shadow:0 0 0 2px #22d3ee8c,0 0 28px -4px #22d3ee8c}.nv-enemy-size{width:min(100%, 560px, calc(100dvh - var(--nv-chrome,330px)));min-width:min(100%,250px)}.nv-own-size{width:clamp(118px,38vw,210px)}.nv-placer-size{width:min(100%, 540px, calc(100dvh - var(--nv-placer-chrome,320px)));min-width:min(100%,250px)}@media (orientation:portrait) and (max-height:700px){.nv-own-size{width:clamp(108px,33vw,170px)}}@media (min-width:768px) and (min-height:700px){.nv-own-size{width:min(40vw,260px)}}@media (min-width:1024px) and (orientation:landscape){.nv-enemy-size{width:min(48vw,620px,100dvh - 190px)}.nv-own-size{width:min(34vw,460px,100dvh - 250px)}.nv-placer-size{width:min(56vw,600px,100dvh - 170px)}}@media (orientation:landscape) and (max-height:560px){.nv-enemy-size{width:min(50vw, calc(100dvh - var(--nv-land-chrome,120px)));min-width:0}.nv-own-size{width:min(28vw, calc(100dvh - var(--nv-land-chrome,120px) - 30px))}.nv-placer-size{width:min(52vw,100dvh - 64px);min-width:0}}.nv-scroll-x{scrollbar-width:none}.nv-scroll-x::-webkit-scrollbar{display:none}@keyframes nv-shake{0%,to{transform:translate(0,0)}20%{transform:translate(-4px,2px)}40%{transform:translate(4px,-2px)}60%{transform:translate(-3px,-1px)}80%{transform:translate(2px,1px)}}.nv-shake{animation:.4s ease-in-out nv-shake}@keyframes nv-wobble-a{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}@keyframes nv-wobble-b{0%,to{transform:translate(0)}25%{transform:translate(-5px)}75%{transform:translate(5px)}}.nv-wobble-0{animation:.25s ease-in-out 2 nv-wobble-a}.nv-wobble-1{animation:.25s ease-in-out 2 nv-wobble-b}.nv-dock-item{touch-action:pan-x}@media (min-width:1024px),(orientation:landscape) and (max-height:560px){.nv-dock-item{touch-action:pan-y}}@keyframes nv-confetti{0%{opacity:1;transform:translateY(-10vh)rotate(0)}85%{opacity:1}to{transform:translate3d(var(--dx), 110vh, 0) rotate(var(--rot));opacity:0}}.nv-confetti{animation:nv-confetti var(--dur) cubic-bezier(.2, .6, .4, 1) var(--delay) both}@keyframes nv-bubble{0%{opacity:0;transform:translate(0,0)scale(.6)}20%{opacity:.9}to{transform:translate3d(var(--bx,0px), -70px, 0) scale(1.1);opacity:0}}.nv-bubble{animation:nv-bubble var(--bd,1.8s) ease-out var(--bdelay,0s) infinite}@keyframes nv-rays{to{transform:rotate(360deg)}}.nv-rays{animation:18s linear infinite nv-rays}@keyframes nv-dot{0%,80%,to{opacity:.25;transform:translateY(0)}40%{opacity:1;transform:translateY(-2px)}}.nv-dot{animation:1.1s ease-in-out infinite nv-dot}@media (prefers-reduced-motion:reduce){.nv-sea:before,.nv-radar{animation:none}}
