.nf-page{background:var(--pl-deep);min-height:100svh;color:var(--pl-paper);flex-direction:column;display:flex}.nf-main{padding:calc(88px + clamp(16px, 4vw, 64px)) var(--pl-gutter) clamp(32px, 6vw, 96px);flex:1;align-items:center;display:grid}.nf-academy-brand{align-items:center;gap:16px;display:flex}.nf-academy-brand .pl-logo{display:block}.nf-academy-brand .nf-descriptor{border-left:1px solid var(--pl-line-strong);font-family:var(--pl-font-title);letter-spacing:-.01em;padding-left:13px;font-size:14px;font-weight:600;line-height:26px}.nf-pixelnut-logo{min-height:44px;color:var(--pl-paper);align-items:center;gap:10px;display:inline-flex}.nf-pixelnut-logo .pn-nut{grid-template-rows:repeat(13,2px);grid-template-columns:repeat(13,2px);width:26px;height:26px;display:grid}.nf-pixelnut-logo .pn-nut span[data-p="1"]{background:currentColor}.nf-pixelnut-logo .nf-wordmark{font-family:var(--pl-font-title);letter-spacing:-.02em;font-size:19px;font-weight:600}.nf-layout{gap:clamp(28px,4vw,64px);width:100%;max-width:1280px;margin:0 auto;display:grid}@media (min-width:960px){.nf-layout{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:end}}.nf-title{max-width:16ch;font-family:var(--pl-font-title);letter-spacing:-.02em;text-wrap:balance;margin:0;font-size:clamp(32px,4.2vw,60px);font-weight:600;line-height:1.06}.nf-page .nf-lead{max-width:46ch;color:var(--pl-text-dim);margin:28px 0 0;font-size:clamp(16px,1.3vw,19px);line-height:1.55}.nf-actions{flex-wrap:wrap;align-items:center;gap:14px 28px;margin-top:32px;display:flex}.nf-link{color:var(--pl-paper);text-decoration:underline;-webkit-text-decoration-color:var(--pl-line-strong);text-decoration-color:var(--pl-line-strong);text-underline-offset:5px;min-height:44px;transition:text-decoration-color var(--pl-fast) var(--pl-ease-out);align-items:center;display:inline-flex}.nf-link:hover{-webkit-text-decoration-color:var(--pl-blue);text-decoration-color:var(--pl-blue)}.nf-link:focus-visible{outline:2px solid var(--pl-blue);outline-offset:4px;border-radius:2px}.nf-viewer{border:1px solid var(--pl-line);border-radius:var(--pl-r-lg);background:var(--pl-night);padding:clamp(40px,5vw,64px) clamp(14px,3vw,40px) clamp(18px,3vw,40px);position:relative}.nf-timecode{font-family:var(--pl-font-mono);color:var(--pl-text-dim);font-size:12px;position:absolute;top:clamp(14px,1.6vw,22px);left:clamp(16px,2vw,28px)}.nf-viewer .pl-grid-svg{touch-action:pan-y;display:block}.nf-viewer .is-field{color:var(--pl-paper);opacity:.16}.nf-viewer .is-digit{color:var(--pl-paper);opacity:0;transition:opacity .42s var(--pl-ease-out)}.nf-viewer .is-digit.is-on{opacity:1}.nf-viewer .is-digit .cell-frame{opacity:.7}.nf-page--pixelnut{isolation:isolate}.nf-page--pixelnut:before,.nf-page--pixelnut:after{content:"";z-index:-1;pointer-events:none;position:fixed;inset:0}.nf-page--pixelnut:before{background:radial-gradient(60% 50% at 12% 0,#9cafbb12,#0000 70%),radial-gradient(50% 45% at 100% 100%,#9cafbb0b,#0000 70%)}.nf-page--pixelnut:after{opacity:.035;mix-blend-mode:overlay;background-image:url(/assets/grano-Ck-zjVIn.svg);background-size:128px 128px}.nf-canvas{--nf-cell:clamp(14px, 2.4vw, 26px);justify-items:start;gap:18px;display:grid}.nf-canvas .pn-nut{grid-template-columns:repeat(13, var(--nf-cell));grid-template-rows:repeat(13, var(--nf-cell));gap:2px;display:grid}.nf-canvas .pn-nut span{border-radius:2px}.nf-canvas .pn-nut span[data-p="1"]{background:0 0}.nf-canvas .pn-nut span[data-p="0"]{background:radial-gradient(circle,#efefef24 1px,#0000 1.5px)}.nf-canvas .pn-nut span.is-set{background:var(--pl-paper);animation:nf-place .5s var(--pl-ease-out) both}@keyframes nf-place{0%{background:var(--pl-blue);opacity:0}40%{background:var(--pl-blue);opacity:1}}.nf-canvas .pn-nut span.is-missing{position:relative}.nf-canvas .pn-nut span.is-missing:after{content:"";border-radius:inherit;opacity:0;transition:opacity .4s var(--pl-ease-out);position:absolute;inset:0;box-shadow:inset 0 0 0 1px #9cafbbd9,0 0 10px 1px #9cafbb66}.nf-canvas.is-done .pn-nut span.is-missing:after{opacity:.35;animation:3s ease-in-out infinite nf-breathe}@keyframes nf-breathe{50%{opacity:1}}.nf-status{font-family:var(--pl-font-mono);color:var(--pl-blue);margin:0;font-size:13px}@media (prefers-reduced-motion:reduce){.nf-viewer .is-digit,.nf-canvas .pn-nut span.is-missing:after{transition:none}.nf-canvas .pn-nut span.is-set{animation:none}.nf-canvas.is-done .pn-nut span.is-missing:after{opacity:1;animation:none}}
