.npz{--npz-panel:var(--wp--preset--color--surface,#fff);--npz-ink:var(--wp--preset--color--ink,#111);--npz-muted:#5b5b66;--npz-line:#e3e3ea;--npz-soft:#f5f5f8;--npz-accent:var(--wp--preset--color--accent,#e01e75);display:grid;gap:1.5rem;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:start}
@media (max-width:900px){.npz{grid-template-columns:minmax(0,1fr)}}
.npz__stage,.npz__panel{min-width:0}
.npz [hidden]{display:none!important}
.npz__stage{position:sticky;top:calc(env(safe-area-inset-top,0px) + 4.5rem)}
@media (max-width:900px){.npz__stage{position:static}}

/* Preview */
.npz__preview{position:relative;border-radius:16px;overflow:hidden;aspect-ratio:4/3;max-width:100%;background:#0d0d12}
.npz__wall{position:absolute;inset:0;display:grid;place-items:center;transition:filter .3s;padding:8%}
.npz__board{position:relative;display:grid;place-items:center;max-width:100%;padding:.6em .8em;border-radius:14px;transition:background .2s,box-shadow .2s}
.npz__board--rectangle{border-radius:4px}
.npz__board--rectangle,.npz__board--cut-around,.npz__board--open-box,.npz__board--acrylic-stand,.npz__board--cut-to-letter{background:rgba(14,16,26,.45);border:1px solid rgba(255,255,255,.32);box-shadow:inset 0 1px 2px rgba(255,255,255,.3),inset 0 -1px 2px rgba(0,0,0,.6),0 20px 45px rgba(0,0,0,.6);backdrop-filter:blur(8px)}
.npz__board--cut-around{border-radius:36px}
.npz__board--rectangle{border-radius:8px}
.npz__board--cut-to-letter{background:transparent!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important}
.npz__board--naked{background:transparent!important;border:none!important;box-shadow:none!important}
.npz__board--open-box{border-radius:6px;box-shadow:inset 0 0 0 6px rgba(255,255,255,.18),0 15px 40px rgba(0,0,0,.45)}
.npz__board--acrylic-stand{border-radius:10px 10px 0 0;border-bottom:10px solid rgba(255,255,255,.45)}
.npz__board--acrylic-stand::after{content:"";position:absolute;left:10%;right:10%;bottom:-14px;height:14px;background:rgba(255,255,255,.18);border-radius:0 0 6px 6px}
.npz__board--c-white{background:rgba(255,255,255,.88)!important;border-color:rgba(255,255,255,.6)!important}
.npz__board--c-black{background:rgba(8,8,12,.88)!important;border-color:rgba(255,255,255,.18)!important}
.npz__board--c-silver{background:linear-gradient(135deg,rgba(230,230,240,.45),rgba(150,150,165,.45))!important;border-color:rgba(255,255,255,.5)!important}
.npz__board--c-gold{background:linear-gradient(135deg,rgba(255,235,150,.45),rgba(195,145,30,.45))!important;border-color:rgba(255,220,100,.6)!important}
.npz__board--naked.npz__board--c-white,.npz__board--naked.npz__board--c-black,.npz__board--naked.npz__board--c-silver,.npz__board--naked.npz__board--c-gold,.npz__board--cut-to-letter.npz__board--c-white,.npz__board--cut-to-letter.npz__board--c-black,.npz__board--cut-to-letter.npz__board--c-silver,.npz__board--cut-to-letter.npz__board--c-gold{background:transparent!important}
.npz__sign{--neon:#ff4fd8;max-width:100%;white-space:pre-wrap;word-break:break-word;font-size:clamp(1.7rem,5.2vw,4rem);line-height:1.15;color:#fff;cursor:default;user-select:none;transition:font-size .15s ease}
.npz__ch{--glow:var(--neon);color:#fff;text-shadow:0 0 3px #fff,0 0 8px #fff,0 0 18px var(--glow),0 0 38px var(--glow),0 0 75px var(--glow),0 0 130px color-mix(in srgb,var(--glow) 40%,transparent);-webkit-text-stroke:0.5px rgba(255,255,255,0.4)}
.npz__sign .npz__ch{--glow:var(--neon)}
.npz__sign.is-multi .npz__ch{cursor:pointer}
.npz__sign.is-off .npz__ch{color:var(--neon);text-shadow:none;opacity:.9}
@property --neon{syntax:'<color>';inherits:true;initial-value:#ff4fd8}
.npz__sign.is-rgb{animation:npz-rgb 6s linear infinite}
@keyframes npz-rgb{0%{--neon:#ff3b3b}25%{--neon:#ffe23d}50%{--neon:#3dff7a}75%{--neon:#3d7bff}100%{--neon:#ff3b3b}}
.npz__sign.is-dynamic .npz__ch{animation:npz-chase 2.4s linear infinite}
.npz__sign.is-dynamic .npz__ch:nth-child(4n+1){animation-delay:-.6s}.npz__sign.is-dynamic .npz__ch:nth-child(4n+2){animation-delay:-1.2s}.npz__sign.is-dynamic .npz__ch:nth-child(4n+3){animation-delay:-1.8s}
@keyframes npz-chase{0%{--glow:#ff2ea6}33%{--glow:#3d9bff}66%{--glow:#3dff7a}100%{--glow:#ff2ea6}}
@media (prefers-reduced-motion:reduce){.npz__sign.is-rgb,.npz__sign.is-dynamic .npz__ch{animation:none}}
.npz__room canvas{display:block;width:100%;height:auto}
.npz__label{position:absolute;left:.75rem;bottom:.6rem;margin:0;padding:.2rem .5rem;border-radius:6px;background:rgba(0,0,0,.6);color:#e8e8ee;font-size:.72rem}
.npz__dims{position:absolute;right:.75rem;bottom:.6rem;padding:.2rem .5rem;border-radius:6px;background:rgba(0,0,0,.6);color:#fff;font-size:.78rem;font-variant-numeric:tabular-nums}
.npz__promo{position:absolute;right:.75rem;top:.75rem;padding:.3rem .6rem;border-radius:8px;background:var(--npz-accent);color:#fff;font-size:.8rem;font-weight:600}
.npz__power{position:absolute;left:.75rem;top:.75rem;display:inline-flex;padding:3px;border-radius:999px;border:0;background:rgba(255,255,255,.9);cursor:pointer;font:inherit;font-size:.75rem;font-weight:700}
.npz__power span{padding:.2rem .55rem;border-radius:999px;color:#666}
.npz__power[aria-pressed=true] span:first-child,.npz__power[aria-pressed=false] span:last-child{background:#1a8f4c;color:#fff}
.npz__power[aria-pressed=false] span:last-child{background:#555}
.npz__stage-tools{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.75rem}
.npz__privacy,.npz__hint{color:var(--npz-muted);font-size:.84rem;margin:.4rem 0 0}

/* Panel */
.npz__panel{background:var(--npz-panel);color:var(--npz-ink);border:1px solid var(--npz-line);border-radius:16px;padding:1.25rem}
.npz__steps{list-style:none;margin:0;padding:0;display:grid;gap:1.4rem}
.npz__step-head{display:flex;align-items:center;gap:.55rem;margin-bottom:.6rem}
.npz__step-head h3{margin:0;font-size:1rem;letter-spacing:.02em;text-transform:uppercase}
.npz__num{display:inline-grid;place-items:center;width:1.6rem;height:1.6rem;border-radius:6px;background:var(--npz-ink);color:#fff;font-size:.82rem;font-weight:700}
.npz__text-row{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:.6rem}
@media (max-width:480px){.npz__text-row{grid-template-columns:1fr}}
.npz textarea,.npz select,.npz input[type=email],.npz input[readonly]{width:100%;box-sizing:border-box;font:inherit;padding:.65rem .75rem;border:1px solid var(--npz-line);border-radius:10px;background:#fff;color:#111}
.npz textarea{min-height:5.2rem;resize:vertical}
.npz__align{display:flex;gap:.35rem;margin-top:.4rem;font-size:.82rem}
.npz__align label{display:inline-flex;gap:.25rem;align-items:center;padding:.25rem .5rem;border:1px solid var(--npz-line);border-radius:8px;cursor:pointer}
.npz__align label:has(input:checked){border-color:var(--npz-accent)}
.npz__logo-cta{display:grid;align-content:center;gap:.2rem;padding:.8rem;border-radius:12px;background:var(--npz-ink);color:#fff;text-decoration:none;text-align:center;font-size:.9rem}
.npz__logo-cta span{opacity:.85;font-size:.82rem;text-decoration:underline}
.npz__font-toggle{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:.5rem .9rem;border:1px solid var(--npz-line);border-radius:10px;background:#fff;color:#111;font-size:1.35rem;cursor:pointer}
.npz__fonts{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.5rem,1fr));gap:.4rem;margin-top:.5rem;max-height:20rem;overflow:auto;padding:.2rem}
.npz__font{display:flex;align-items:center;gap:.4rem;min-height:46px;padding:.4rem .6rem;border:1px solid var(--npz-line);border-radius:10px;cursor:pointer;font-size:1.15rem;background:#fff}
.npz__font input{position:absolute;opacity:0}
.npz__font:has(input:checked){border-color:var(--npz-accent);box-shadow:0 0 0 1px var(--npz-accent)}
.npz__font:has(input:focus-visible){outline:3px solid var(--npz-accent);outline-offset:2px}
.npz__effects{display:grid;gap:.4rem}
.npz__effect{display:flex;gap:.6rem;align-items:flex-start;padding:.6rem .7rem;border:1px solid var(--npz-line);border-radius:10px;cursor:pointer}
.npz__effect:has(input:checked){border-color:var(--npz-accent);box-shadow:0 0 0 1px var(--npz-accent)}
.npz__effect input{margin-top:.25rem;accent-color:var(--npz-accent)}
.npz__effect small{display:block;color:var(--npz-muted);font-size:.8rem}
.npz__effect em,.npz__check em{font-style:normal;color:var(--npz-accent);font-weight:600;font-size:.85rem}
.npz__swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.6rem,1fr));gap:.5rem .3rem}
.npz__swatch{position:relative;display:grid;justify-items:center;gap:.25rem;cursor:pointer;text-align:center}
.npz__swatch i{width:38px;height:38px;border-radius:50%;background:var(--sw);box-shadow:inset 0 0 0 1px rgba(0,0,0,.15),0 0 10px color-mix(in srgb,var(--sw) 60%,transparent)}
.npz__swatch span{font-size:.68rem;line-height:1.15;color:var(--npz-muted)}
.npz__swatch input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.npz__swatch:has(input:checked) i{outline:3px solid var(--npz-ink);outline-offset:2px}
.npz__swatch:has(input:focus-visible) i{outline:3px solid var(--npz-accent);outline-offset:2px}
.npz__sizes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem}
.npz__size{position:relative;display:grid;grid-template-columns:1fr auto;gap:.1rem .5rem;padding:.55rem .7rem;border:1px solid var(--npz-line);border-radius:10px;cursor:pointer;background:#fff}
.npz__size input{position:absolute;opacity:0}
.npz__size:has(input:checked){border-color:var(--npz-accent);box-shadow:0 0 0 1px var(--npz-accent)}
.npz__size:has(input:focus-visible){outline:3px solid var(--npz-accent);outline-offset:2px}
.npz__size-name{font-weight:700;font-size:.9rem}
.npz__size-price{font-weight:800;font-variant-numeric:tabular-nums}
.npz__size-dims{grid-column:1/-1;color:var(--npz-muted);font-size:.78rem;font-variant-numeric:tabular-nums}
.npz__cards{display:grid;gap:.45rem}
.npz__cards--2{grid-template-columns:repeat(2,minmax(0,1fr))}
.npz__cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:480px){.npz__cards--3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.npz__card{position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.6rem .7rem;border:1px solid var(--npz-line);border-radius:10px;cursor:pointer;background:#fff}
.npz__card input{position:absolute;opacity:0}
.npz__card:has(input:checked){border-color:var(--npz-accent);box-shadow:0 0 0 1px var(--npz-accent)}
.npz__card:has(input:focus-visible){outline:3px solid var(--npz-accent);outline-offset:2px}
.npz__card strong{display:block;font-size:.88rem}
.npz__card small{color:var(--npz-accent);font-weight:600}
.npz__card--backing{flex-direction:column;align-items:stretch;text-align:left}
.npz__bb{display:grid;place-items:center;height:64px;border-radius:8px;background:var(--npz-soft)}
.npz__bb i{font:italic 700 1.4rem/1 Georgia,serif;color:#222;padding:.15rem .5rem}
.npz__bb--cut-around i{border:2px dashed #999;border-radius:18px}
.npz__bb--rectangle i{border:2px dashed #999;border-radius:2px;padding:.35rem .8rem}
.npz__bb--cut-to-letter i{text-shadow:0 0 0 #999,1px 1px 0 #bbb,-1px -1px 0 #bbb,2px 2px 0 #ccc}
.npz__bb--naked i{color:#444}
.npz__bb--acrylic-stand i{border:2px dashed #999;border-bottom-width:6px;border-radius:2px}
.npz__bb--open-box i{border:2px solid #999;outline:2px dashed #bbb;outline-offset:3px;padding:.3rem .7rem}
.npz__chip{width:26px;height:26px;border-radius:50%;flex:0 0 auto;box-shadow:inset 0 0 0 1px rgba(0,0,0,.2)}
.npz__check{display:flex;align-items:center;gap:.5rem;min-height:40px}
.npz__check input{accent-color:var(--npz-accent)}
.npz__power-row{display:flex;align-items:center;gap:.6rem;margin-top:.5rem}
.npz__power-row label{font-weight:600;white-space:nowrap}

/* Summary */
.npz__summary{border-top:1px solid var(--npz-line);margin-top:1.25rem;padding-top:1rem;display:grid;gap:.4rem}
.npz__price{display:flex;flex-wrap:wrap;align-items:baseline;gap:.5rem}
.npz__price strong{font-size:1.8rem;font-variant-numeric:tabular-nums}
.npz__price s{color:var(--npz-muted)}
.npz__price small{flex-basis:100%;color:var(--npz-accent);font-size:.84rem}
.npz__total-label{font-weight:600}
.npz__breakdown summary{cursor:pointer;color:var(--npz-muted);font-size:.85rem}
.npz__breakdown ul{list-style:none;margin:.4rem 0 0;padding:0;font-size:.85rem;display:grid;gap:.2rem}
.npz__breakdown li{display:flex;justify-content:space-between;gap:1rem;font-variant-numeric:tabular-nums}
.npz__eta{color:var(--npz-muted);font-size:.85rem}
.npz__actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem}
.npz__assure{list-style:none;padding:0;margin:.8rem 0 0;display:grid;gap:.25rem;font-size:.82rem;color:var(--npz-muted)}
.npz__assure li::before{content:"✓ ";color:#1a8f4c;font-weight:700}
.npz-btn{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:.6rem 1.1rem;border-radius:10px;border:1px solid var(--npz-ink);background:transparent;color:var(--npz-ink);font:inherit;font-weight:600;text-decoration:none;cursor:pointer}
.npz-btn--primary{background:var(--npz-accent);border-color:var(--npz-accent);color:#fff}
.npz-btn--ghost{border-color:var(--npz-line)}
.npz-btn--wide{flex:1 1 100%;min-height:52px;font-size:1.05rem}
.npz-btn[disabled]{opacity:.6;cursor:wait}
.npz-btn:focus-visible{outline:3px solid var(--npz-accent);outline-offset:2px}
.npz__dialog{max-width:28rem;width:calc(100% - 2rem);border:0;border-radius:16px;padding:1.5rem}
.npz__dialog::backdrop{background:rgba(0,0,0,.6)}
.npz__dialog label{display:block;margin-top:.75rem}
.npz__status{min-height:1.2em;color:var(--npz-muted)}
.npz__scene--upload{background:repeating-linear-gradient(45deg,#2a2a33 0 6px,#33333d 6px 12px)}
.npz__scene--upload input{position:absolute;inset:0;opacity:0;cursor:pointer}
.np-gallery{list-style:none;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));gap:1rem}
.np-gallery__meta{display:grid;gap:.25rem;padding:.5rem 0}
.np-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1.25rem}

/* ---------- Wall scenes: rendered photographic backgrounds (assets/scenes, lazy per scene) ---------- */
.npz__scenes{display:flex;gap:.4rem;overflow-x:auto;padding:.6rem 0 .1rem;scrollbar-width:thin}
.npz__scene{position:relative;flex:0 0 auto;width:80px;height:60px;border-radius:10px;overflow:hidden;cursor:pointer;background:#222 center/cover no-repeat;box-shadow:inset 0 0 0 1px rgba(0,0,0,.15)}
.npz__scene input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.npz__scene span{position:absolute;left:0;right:0;bottom:0;padding:.1rem .3rem;background:rgba(0,0,0,.6);color:#fff;font-size:.68rem;text-align:center}
.npz__scene:has(input:checked){outline:3px solid var(--npz-accent);outline-offset:1px}
.npz__scene:has(input:focus-visible){outline:3px solid var(--npz-ink);outline-offset:1px}
.npz__wall{background:#16151c center/cover no-repeat;--dim:.34}
.npz__wall::before{content:"";position:absolute;inset:0;background:rgba(8,6,12,var(--dim));transition:background .3s;pointer-events:none}
.npz__wall>*{position:relative;z-index:1}
.npz__wall.is-day{--dim:0}
.npz [hidden]{display:none!important}
@media (max-width:600px){.npz__label{display:none}}
.npz__scene--upload{background:repeating-linear-gradient(45deg,#2a2a33 0 6px,#33333d 6px 12px)}

/* Scene catalogue (generated by tools/render_scenes*.py) */
.npz__scene--studio{background-image:url(scenes/studio-thumb.webp)}.npz__wall--studio{background-image:url(scenes/studio.webp);--dim:0.1}
.npz__scene--brick{background-image:url(scenes/brick-thumb.webp)}.npz__wall--brick{background-image:url(scenes/brick.webp);--dim:0.34}
.npz__scene--white-brick{background-image:url(scenes/white-brick-thumb.webp)}.npz__wall--white-brick{background-image:url(scenes/white-brick.webp);--dim:0.48}
.npz__scene--concrete{background-image:url(scenes/concrete-thumb.webp)}.npz__wall--concrete{background-image:url(scenes/concrete.webp);--dim:0.34}
.npz__scene--marble{background-image:url(scenes/marble-thumb.webp)}.npz__wall--marble{background-image:url(scenes/marble.webp);--dim:0.5}
.npz__scene--wood{background-image:url(scenes/wood-thumb.webp)}.npz__wall--wood{background-image:url(scenes/wood.webp);--dim:0.36}
.npz__scene--stone{background-image:url(scenes/stone-thumb.webp)}.npz__wall--stone{background-image:url(scenes/stone.webp);--dim:0.36}
.npz__scene--plants{background-image:url(scenes/plants-thumb.webp)}.npz__wall--plants{background-image:url(scenes/plants.webp);--dim:0.34}
.npz__scene--floral{background-image:url(scenes/floral-thumb.webp)}.npz__wall--floral{background-image:url(scenes/floral.webp);--dim:0.34}
.npz__scene--bedroom{background-image:url(scenes/bedroom-thumb.webp)}.npz__wall--bedroom{background-image:url(scenes/bedroom.webp);--dim:0.34}
.npz__scene--living{background-image:url(scenes/living-thumb.webp)}.npz__wall--living{background-image:url(scenes/living.webp);--dim:0.34}
.npz__scene--kids{background-image:url(scenes/kids-thumb.webp)}.npz__wall--kids{background-image:url(scenes/kids.webp);--dim:0.45}
.npz__scene--gaming{background-image:url(scenes/gaming-thumb.webp)}.npz__wall--gaming{background-image:url(scenes/gaming.webp);--dim:0.2}
.npz__scene--bar{background-image:url(scenes/bar-thumb.webp)}.npz__wall--bar{background-image:url(scenes/bar.webp);--dim:0.3}
.npz__scene--restaurant{background-image:url(scenes/restaurant-thumb.webp)}.npz__wall--restaurant{background-image:url(scenes/restaurant.webp);--dim:0.3}
.npz__scene--tiles{background-image:url(scenes/tiles-thumb.webp)}.npz__wall--tiles{background-image:url(scenes/tiles.webp);--dim:0.45}
.npz__scene--salon{background-image:url(scenes/salon-thumb.webp)}.npz__wall--salon{background-image:url(scenes/salon.webp);--dim:0.42}
.npz__scene--gym{background-image:url(scenes/gym-thumb.webp)}.npz__wall--gym{background-image:url(scenes/gym.webp);--dim:0.25}
.npz__scene--office{background-image:url(scenes/office-thumb.webp)}.npz__wall--office{background-image:url(scenes/office.webp);--dim:0.34}
.npz__scene--shopfront{background-image:url(scenes/shopfront-thumb.webp)}.npz__wall--shopfront{background-image:url(scenes/shopfront.webp);--dim:0}
.npz__scene--wedding{background-image:url(scenes/wedding-thumb.webp)}.npz__wall--wedding{background-image:url(scenes/wedding.webp);--dim:0.5}
.npz__scene--drape{background-image:url(scenes/drape-thumb.webp)}.npz__wall--drape{background-image:url(scenes/drape.webp);--dim:0.5}
.npz__scene--nightclub{background-image:url(scenes/nightclub-thumb.webp)}.npz__wall--nightclub{background-image:url(scenes/nightclub.webp);--dim:0}
.npz__wall.is-day{--dim:0}
.npz__scene-tabs{display:flex;gap:.3rem;margin-top:.6rem;flex-wrap:wrap}.npz__scene-tabs button{border:1px solid var(--npz-line);background:#fff;border-radius:999px;padding:.3rem .75rem;font:inherit;font-size:.8rem;cursor:pointer;min-height:34px;color:var(--npz-ink)}.npz__scene-tabs button[aria-selected=true]{background:var(--npz-ink);color:#fff;border-color:var(--npz-ink)}
.npz__scene--upload{background:repeating-linear-gradient(45deg,#2a2a33 0 6px,#33333d 6px 12px)}

.npz__ai{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.6rem}
.npz__ai-label{font-size:.85rem;font-weight:600;margin-right:.2rem}
.npz__ai button{border:1px solid rgba(255,46,138,.55);background:rgba(255,46,138,.08);color:inherit;border-radius:999px;padding:.3em .8em;font:inherit;font-size:.82rem;cursor:pointer}
.npz__ai button:hover{background:rgba(255,46,138,.2)}
