.nw{--nw-bg:#0a0a0b;--nw-ink:#f5f5f7;--nw-muted:#9e9ea0;--nw-line:rgba(255,255,255,.14);--nw-pink:#e88cff;--nw-ease:cubic-bezier(.16,1,.3,1);display:block;position:relative;isolation:isolate;height:var(--nw-height,720px);min-height:560px;overflow:hidden;color:var(--nw-ink);background:var(--nw-bg);font-family:var(--body-font-stack,Arial,sans-serif)}
.nw *,.nw *::before,.nw *::after{box-sizing:border-box}.nw [hidden]{display:none!important}
.nw__stage{position:absolute;inset:0;z-index:1;touch-action:pan-y;cursor:grab}.nw__stage:active{cursor:grabbing}
.nw__stage canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1.2s var(--nw-ease)}.nw.is-ready .nw__stage canvas{opacity:1}
.nw__fallback{position:absolute;inset:14% 10% 26% 30%;display:flex;align-items:center;justify-content:center;transition:opacity .8s var(--nw-ease);pointer-events:none}.nw__fallback img{width:100%;height:auto;max-height:100%;object-fit:contain;filter:invert(1) grayscale(1) brightness(1.4)}.nw.is-ready .nw__fallback{opacity:0}
.nw__top,.nw__bottom{position:absolute;z-index:3;left:40px;right:40px;display:flex;align-items:center;justify-content:flex-end;pointer-events:none}.nw__top{top:28px}.nw__bottom{bottom:28px}
.nw button{font:inherit;font-size:12px;letter-spacing:.02em;line-height:1;color:var(--nw-ink);background:none;border:0;cursor:pointer;min-height:36px;padding:10px 18px;border-radius:999px;transition:background .25s var(--nw-ease),color .25s var(--nw-ease)}
.nw__modes,.nw__tools{display:flex;gap:2px;padding:3px;border:1px solid var(--nw-line);border-radius:999px;pointer-events:auto;background:rgba(10,10,11,.4);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.nw__modes button{color:var(--nw-muted)}.nw__modes button[aria-pressed=true]{background:var(--nw-pink);color:#111}.nw button:hover{color:var(--nw-pink)}.nw__modes button[aria-pressed=true]:hover{color:#111}
.nw button:focus-visible,.nw a:focus-visible{outline:2px solid var(--nw-pink);outline-offset:3px}
.nw__copy{position:absolute;z-index:2;left:40px;bottom:96px;max-width:44%;pointer-events:none}
.nw__eyebrow{margin:0 0 14px;font-size:16px;line-height:1.4;letter-spacing:0;text-transform:none;color:var(--nw-muted)}
.nw__heading{font-family:var(--heading-font-stack,Arial,sans-serif);font-weight:var(--heading-font-weight,800);font-size:clamp(60px,7.4vw,120px);line-height:.88;letter-spacing:-.05em;margin:0 0 30px;color:var(--nw-ink)}
.nw__dot{color:var(--nw-pink)}
.nw__shop.theme-button{display:inline-flex;align-items:center;min-height:50px;padding:15px 30px;background:var(--nw-ink);color:#111;border:0;border-radius:999px;font-size:15px;font-weight:500;line-height:1.2;text-decoration:none;pointer-events:auto;transition:background .3s var(--nw-ease),transform .3s var(--nw-ease)}
.nw__shop.theme-button:before,.nw__shop.theme-button:after{display:none}.nw__shop.theme-button:hover{background:var(--nw-pink);color:#111;opacity:1}.nw__shop.theme-button:active{transform:scale(.97)}
.nw__status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@keyframes nw-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
/* the heading is the LCP element: it paints immediately; only the button eases in */
.nw__shop{animation:nw-rise .5s var(--nw-ease) .1s both}
@media(min-width:1500px){.nw__copy{left:56px}.nw__top,.nw__bottom{left:56px;right:56px}}
@media(max-width:749px){.nw{height:70svh;min-height:520px;max-height:640px}.nw__stage{bottom:auto;height:calc(100% - 150px)}.nw__top{top:16px}.nw__top,.nw__bottom{left:20px;right:20px}.nw__copy{left:20px;bottom:84px;max-width:calc(100% - 40px)}.nw__heading{font-size:64px;margin-bottom:22px}.nw__eyebrow{font-size:15px;margin-bottom:10px}.nw__bottom{bottom:18px}.nw__fallback{inset:56px 10% 270px}}
@media(prefers-reduced-motion:reduce){.nw *{transition:none!important;animation:none!important}}
