.nb-root{--nb-gap:0.06;min-height:100dvh;touch-action:manipulation;-webkit-touch-callout:none}.nb-board-frame{position:relative;border-radius:28px;padding:10px;background:linear-gradient(180deg,color-mix(in srgb,var(--navy) 92%,#fff),var(--navy));border:4px solid var(--outline);box-shadow:0 8px 0 var(--outline),inset 0 3px 0 rgba(255,255,255,.18)}.nb-board{position:relative;width:100%;container-type:inline-size;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;outline-offset:4px;cursor:pointer}.nb-board[data-disabled=true]{cursor:progress}.nb-board:focus-visible{outline:4px solid var(--focus);border-radius:18px}.nb-slot{position:absolute;left:0;top:0;transition:translate var(--nb-fall,.38s) cubic-bezier(.3,.9,.35,1.08);will-change:translate;pointer-events:none}.nb-slot .nb-face{pointer-events:auto}.nb-slot[data-instant=true]{transition:none}.nb-hole{border-radius:18%;background:rgba(0,0,0,.22);box-shadow:inset 0 2px 6px rgba(0,0,0,.35)}.nb-bed,.nb-hole{position:absolute}.nb-bed{border-radius:22%;background:rgba(255,255,255,.07)}.nb-face{--cell:calc(100cqw / var(--cols));position:absolute;inset:calc(var(--nb-gap) * 100%);display:grid;place-items:center;border-radius:24%;border:3px solid var(--outline);box-shadow:0 4px 0 var(--outline),inset 0 -5px 0 rgba(0,0,0,.12),inset 0 4px 0 rgba(255,255,255,.55);font-family:var(--font-display);font-weight:700;font-size:calc(var(--cell) * .5);line-height:1;color:var(--outline);transition:transform .11s ease,box-shadow .11s ease,filter .11s;transform-origin:50% 60%}@supports not (width:1cqw){.nb-face{--cell:calc(min(92vw, 540px) / var(--cols))}}.nb-face[data-kind=num]{background:hsl(var(--hue) 86% 78%)}.nb-face[data-kind=letter]{background:#cfe9ff}.nb-face[data-kind=letter][data-vowel=true]{background:#ffe08a}.nb-face[data-kind=op]{background:#fff;border-radius:50%;font-size:calc(var(--cell) * .58)}.nb-face[data-kind=op][data-op="+"]{color:#1f7a4d}.nb-face[data-kind=op][data-op="-"]{color:#b3402c}.nb-face[data-kind=op][data-op="×"]{color:#6d3fc0}.nb-face[data-kind=op][data-op="÷"]{color:#0f6fa8}.nb-face[data-kind=crate]{background:repeating-linear-gradient(90deg,#c88a52 0 22%,#b67a44 22% 25%),#c88a52;border-radius:16%;color:transparent}.nb-face[data-kind=crate]:after,.nb-face[data-kind=crate]:before{content:"";position:absolute;inset:12%;border:3px solid rgba(76,44,20,.7);border-radius:8%}.nb-face[data-kind=crate]:after{inset:0;border:0;background:linear-gradient(45deg,transparent 46%,rgba(76,44,20,.7) 47% 53%,transparent 54%),linear-gradient(-45deg,transparent 46%,rgba(76,44,20,.7) 47% 53%,transparent 54%)}.nb-face[data-kind=crate][data-hp="1"]{filter:saturate(.8)}.nb-face[data-kind=crate][data-hp="1"]:before{border-style:dashed}.nb-vowel-dot{position:absolute;bottom:9%;left:50%;width:calc(var(--cell) * .1);height:calc(var(--cell) * .1);translate:-50% 0;border-radius:50%;background:var(--outline)}.nb-badge{right:-6%;top:-6%;min-width:calc(var(--cell) * .34);height:calc(var(--cell) * .34);padding:0 3px;place-items:center;border-radius:999px;background:var(--outline);color:#fff;font-size:calc(var(--cell) * .2);border:2px solid #fff}.nb-badge,.nb-icon{position:absolute;display:grid}.nb-icon{left:-4%;top:-4%;width:calc(var(--cell) * .38);height:calc(var(--cell) * .38);place-items:center;border-radius:50%;background:#fff;border:2px solid var(--outline);font-size:calc(var(--cell) * .23);line-height:1}.nb-face[data-frozen=true]{background-image:linear-gradient(135deg,rgba(255,255,255,.85),rgba(190,235,255,.55) 55%,rgba(255,255,255,.75));border-color:#3f86b8;box-shadow:0 4px 0 #3f86b8,inset 0 0 0 3px rgba(255,255,255,.8);filter:saturate(.55) brightness(1.06)}.nb-face[data-frozen=true]:after{content:"";position:absolute;inset:0;border-radius:inherit;background:linear-gradient(115deg,transparent 38%,rgba(63,134,184,.55) 39% 41%,transparent 42%),linear-gradient(60deg,transparent 58%,rgba(63,134,184,.45) 59% 61%,transparent 62%)}.nb-face[data-locked=true]{filter:grayscale(.55) brightness(.92);border-style:double;border-width:5px}.nb-face[data-special=blast]{box-shadow:0 4px 0 var(--outline),0 0 0 4px #ff9f3d,0 0 18px 4px rgba(255,159,61,.75),inset 0 4px 0 rgba(255,255,255,.55)}.nb-face[data-special=lightning]{box-shadow:0 4px 0 var(--outline),0 0 0 4px #8a63ff,0 0 18px 4px rgba(138,99,255,.75),inset 0 4px 0 rgba(255,255,255,.55)}.nb-face[data-special]{animation:nb-glow 1.6s ease-in-out infinite}.nb-face[data-sel]{transform:scale(1.1);box-shadow:0 0 0 4px #fff,0 0 0 8px var(--outline),0 4px 0 8px var(--outline);z-index:3}.nb-face[data-cursor=true]{outline:4px dashed var(--focus);outline-offset:3px}.nb-face[data-hint]{animation:nb-hint .9s ease-in-out infinite}.nb-badge[data-hint]{background:#ffd66e;color:var(--outline);border-color:var(--outline)}.nb-face[data-blocked=true]{animation:wiggle .3s ease-in-out 1}@keyframes nb-drop{0%{transform:translateY(calc(var(--drop, 1) * -105%))}70%{transform:translateY(4%)}to{transform:translateY(0)}}@keyframes nb-pop{0%{transform:scale(.2);opacity:0}70%{transform:scale(1.1);opacity:1}to{transform:scale(1)}}@keyframes nb-vanish{0%{transform:scale(1);opacity:1}55%{transform:scale(1.18);opacity:1}to{transform:scale(.1) rotate(25deg);opacity:0}}@keyframes nb-glow{0%,to{filter:brightness(1)}50%{filter:brightness(1.12)}}@keyframes nb-hint{0%,to{box-shadow:0 0 0 4px #ffd66e,0 0 8px 2px rgba(255,214,110,.7),0 4px 0 var(--outline)}50%{box-shadow:0 0 0 7px #ffd66e,0 0 22px 9px rgba(255,214,110,.95),0 4px 0 var(--outline)}}@keyframes nb-ring{0%{transform:translate(-50%,-50%) scale(.2);opacity:.9}to{transform:translate(-50%,-50%) scale(1);opacity:0}}@keyframes nb-bolt{0%{opacity:0;transform:scale(var(--sx,1),var(--sy,1)) scaleX(.1)}25%{opacity:1}to{opacity:0;transform:scale(var(--sx,1),var(--sy,1))}}@keyframes nb-float-up{0%{transform:translate(-50%) scale(.6);opacity:0}20%{opacity:1;transform:translate(-50%,-10px) scale(1.1)}to{transform:translate(-50%,-52px) scale(1);opacity:0}}@keyframes nb-cheer{0%{transform:translate(-50%,-50%) scale(.4) rotate(-6deg);opacity:0}25%{transform:translate(-50%,-50%) scale(1.15) rotate(3deg);opacity:1}75%{transform:translate(-50%,-58%) scale(1);opacity:1}to{transform:translate(-50%,-80%) scale(.95);opacity:0}}@keyframes nb-shake{0%,to{transform:translateX(0)}20%{transform:translateX(-7px)}40%{transform:translateX(6px)}60%{transform:translateX(-4px)}80%{transform:translateX(3px)}}@keyframes nb-shuffle{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.4)}to{transform:rotate(1turn) scale(1)}}@keyframes nb-star-in{0%{transform:scale(0) rotate(-90deg);opacity:0}70%{transform:scale(1.3) rotate(8deg);opacity:1}to{transform:scale(1) rotate(0)}}@keyframes nb-confetti{0%{transform:translate3d(0,-10vh,0) rotate(0)}to{transform:translate3d(var(--dx,0),105vh,0) rotate(540deg)}}.nb-enter-drop{animation:nb-drop .44s cubic-bezier(.25,.8,.4,1) both}.nb-enter-pop{animation:nb-pop .32s ease-out both}.nb-ghost{animation:nb-vanish .28s ease-in both}.nb-shuffling{animation:nb-shuffle .52s ease-in-out both}.nb-shake{animation:nb-shake .36s ease-in-out}.nb-fx{position:absolute;pointer-events:none;z-index:5}.nb-fx-blast{border-radius:50%;border:6px solid #ffb23f;background:radial-gradient(circle,rgba(255,236,170,.95),rgba(255,159,61,.35) 60%,transparent 70%);transform:translate(-50%,-50%);animation:nb-ring .46s ease-out both}.nb-fx-bolt{background:linear-gradient(90deg,transparent,#fff 15%,#b79bff 50%,#fff 85%,transparent);border-radius:999px;box-shadow:0 0 22px 6px rgba(138,99,255,.7);animation:nb-bolt .42s ease-out both}.nb-float{z-index:6;font-family:var(--font-display);font-weight:700;font-size:1.35rem;color:#fff;-webkit-text-stroke:.1em var(--outline);paint-order:stroke fill;animation:nb-float-up .9s ease-out both}.nb-cheer,.nb-float{position:absolute;pointer-events:none}.nb-cheer{left:50%;top:42%;z-index:7;white-space:nowrap;font-size:clamp(2rem,9vw,3.4rem);animation:nb-cheer 1.1s ease-out both}.nb-star-in{animation:nb-star-in .52s cubic-bezier(.3,1.4,.5,1) both}.nb-confetti{position:fixed;top:0;z-index:70;width:10px;height:16px;border-radius:2px;pointer-events:none;animation:nb-confetti var(--dur,2.4s) linear var(--delay,0s) both}.nb-path{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:2;overflow:visible}.nb-bar{height:10px;border-radius:999px;background:rgba(23,49,77,.18);overflow:hidden;border:2px solid var(--outline)}.nb-bar>i{display:block;height:100%;background:linear-gradient(90deg,var(--mint),var(--sun));transition:width .4s ease}html[data-reduced-motion=true] .nb-face,html[data-reduced-motion=true] .nb-slot{transition-duration:.01ms!important}@media (prefers-reduced-motion:reduce){.nb-face,.nb-slot{transition-duration:.01ms!important}}.nb-mini{position:relative;inset:auto;width:var(--mini,44px);height:var(--mini,44px);--cell:var(--mini,44px)}.nb-mini[data-kind=num]{background:hsl(var(--hue) 86% 78%)}.nb-node{position:relative;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;border:5px solid var(--outline);font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--outline);box-shadow:0 6px 0 var(--outline),inset 0 -6px 0 rgba(0,0,0,.12),inset 0 5px 0 rgba(255,255,255,.55);transition:transform .12s ease}a.nb-node:active{transform:translateY(4px);box-shadow:0 2px 0 var(--outline),inset 0 -3px 0 rgba(0,0,0,.12)}.nb-node[data-state=locked]{background:#cfd6e0;color:#6b7686;border-style:dashed;box-shadow:0 4px 0 #8a94a3}.nb-node[data-state=done]{background:var(--mint)}.nb-node[data-state=current]{background:var(--sun);animation:pulse-ring 1.2s ease-out infinite}.nb-trail{position:absolute;left:50%;top:0;bottom:0;width:0;border-left:8px dotted rgba(255,255,255,.7);transform:translateX(-50%)}