/* Nullworks portfolio project pages (1.62, 1.63), drawn with the homepage's own pieces: a centred header on
   its glow, pill labels, pictures in cards with nested corners, dark panels with the coloured glow and
   the homepage's project cards at the end. Drawn by PDC_Portfolio inside the website style
   (body.nws-site) and on its own when that is off. Tokens follow the site (--nws-*) with fallbacks;
   a dark page swaps them for the whole page. */

.nwp{
  --nwp-bg:var(--nws-canvas,#f6f6f4);
  --nwp-ink:var(--nws-ink,#161616);
  --nwp-ink-2:var(--nws-ink-2,#3c3c39);
  --nwp-muted:var(--nws-muted,#6c6c67);
  --nwp-faint:var(--nws-faint,#94948e);
  --nwp-line:var(--nws-line,#e7e7e3);
  --nwp-line-strong:var(--nws-line-strong,#d6d6d1);
  --nwp-surface:#fff;
  --nwp-subtle:#f3f3f1;
  --nwp-subtle-2:#ecece9;
  --nwp-glass:rgba(255,255,255,.78);
  --nwp-placeholder:#e9e9e6;
  --nwp-inverse:#fff;
  --nwp-accent:var(--nwp-accent-user,var(--nwp-ink));
  --nwp-accent-ink:var(--nwp-accent-user-ink,var(--nwp-inverse));
  --nwp-dot:var(--nwp-accent-user,#2f9a5f);
  --nwp-mark:var(--nwp-accent-user,var(--nwp-tint,#7c5ce6));
  --nwp-glow-1:rgba(124,92,230,.17);--nwp-glow-2:rgba(59,102,218,.13);--nwp-glow-3:rgba(225,154,27,.12);
  --nwp-shadow-xs:0 1px 2px rgba(22,22,20,.05);
  --nwp-shadow-sm:0 1px 2px rgba(22,22,20,.05),0 4px 12px -4px rgba(22,22,20,.08);
  --nwp-shadow-md:0 2px 4px rgba(22,22,20,.04),0 14px 32px -10px rgba(22,22,20,.16);
  --nwp-shadow-lg:0 10px 24px -8px rgba(22,22,20,.16),0 32px 72px -20px rgba(22,22,20,.3);
  --nwp-font:var(--nws-font,"NW Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif);
  --nwp-gutter:var(--nws-gutter,clamp(16px,3.2vw,40px));
  --nwp-wide:1600px;--nwp-medium:1120px;--nwp-text:760px;
  --nwp-card-r:24px;--nwp-card-pad:10px;
  --nwp-radius:20px;
  --nwp-gap:clamp(18px,2vw,24px);
  --nwp-ggap:10px;
  --nwp-vmax:min(86svh,980px);
  --nwp-ease:cubic-bezier(.2,.7,.2,1);
  position:relative;display:block;background:var(--nwp-bg);color:var(--nwp-ink);font-family:var(--nwp-font);
  padding-bottom:clamp(40px,6vw,96px);-webkit-font-smoothing:antialiased;overflow-x:clip
}
.nwp.is-dark,.nwp .has-bg.is-dark,.nwp .nwp-board.is-dark{
  --nwp-ink:#f3f3f0;--nwp-ink-2:#d6d6d0;--nwp-muted:#a2a29b;--nwp-faint:#77776f;--nwp-line:rgba(255,255,255,.1);--nwp-line-strong:rgba(255,255,255,.2);
  --nwp-surface:#171716;--nwp-subtle:#1f1f1e;--nwp-subtle-2:#2a2a28;--nwp-glass:rgba(255,255,255,.07);--nwp-placeholder:#1b1b1a;--nwp-inverse:#111;
  --nwp-shadow-xs:0 1px 2px rgba(0,0,0,.35);
  --nwp-shadow-sm:0 1px 2px rgba(0,0,0,.35),0 10px 24px -12px rgba(0,0,0,.7);
  --nwp-shadow-md:0 2px 4px rgba(0,0,0,.35),0 18px 40px -14px rgba(0,0,0,.8);
  --nwp-glow-1:rgba(124,92,230,.3);--nwp-glow-2:rgba(59,102,218,.24);--nwp-glow-3:rgba(225,154,27,.15);
  --nwp-accent:var(--nwp-accent-user,var(--nwp-ink));--nwp-accent-ink:var(--nwp-accent-user-ink,var(--nwp-inverse));
  --nwp-mark:color-mix(in srgb,var(--nwp-accent-user,var(--nwp-tint,#7c5ce6)) 80%,#fff)
}
.nwp .has-bg.is-light,.nwp .nwp-board.is-light{
  --nwp-ink:#161616;--nwp-ink-2:#3c3c39;--nwp-muted:#63635e;--nwp-faint:#8c8c86;--nwp-line:rgba(0,0,0,.1);--nwp-line-strong:rgba(0,0,0,.18);
  --nwp-surface:#fff;--nwp-subtle:rgba(0,0,0,.04);--nwp-subtle-2:rgba(0,0,0,.07);--nwp-glass:rgba(255,255,255,.78);--nwp-placeholder:rgba(0,0,0,.06);--nwp-inverse:#fff;
  --nwp-shadow-xs:0 1px 2px rgba(22,22,20,.05);
  --nwp-shadow-sm:0 1px 2px rgba(22,22,20,.05),0 4px 12px -4px rgba(22,22,20,.08);
  --nwp-shadow-md:0 2px 4px rgba(22,22,20,.04),0 14px 32px -10px rgba(22,22,20,.16);
  --nwp-accent:var(--nwp-accent-user,var(--nwp-ink));--nwp-accent-ink:var(--nwp-accent-user-ink,var(--nwp-inverse));
  --nwp-mark:var(--nwp-accent-user,var(--nwp-tint,#7c5ce6))
}
.nwp-theme-dark{--nwp-bg:#0c0c0b}
/* The project's own colour (1.63), from its cover, lights the header and the page around the first blocks. */
.nwp.has-tint{--nwp-glow-1:color-mix(in srgb,var(--nwp-tint) 24%,transparent)}
.nwp.is-dark.has-tint{--nwp-glow-1:color-mix(in srgb,var(--nwp-tint) 36%,transparent)}
.nwp-gap-none{--nwp-gap:0px;--nwp-ggap:0px;--nwp-radius:0px;--nwp-card-r:0px}
.nwp-gap-s{--nwp-gap:10px;--nwp-ggap:8px}
.nwp-gap-l{--nwp-gap:clamp(40px,6vw,96px);--nwp-ggap:clamp(10px,1.2vw,18px)}
.nwp-corners-square{--nwp-radius:0px;--nwp-card-r:0px}
.nwp *,.nwp *::before,.nwp *::after{box-sizing:border-box}
/* The theme styles every button; these start from nothing. */
.nwp button,.nwp-lb button{-webkit-appearance:none;appearance:none;margin:0;padding:0;border:0;border-radius:0;background:transparent;color:inherit;font:inherit;line-height:1;letter-spacing:normal;text-transform:none;text-shadow:none;box-shadow:none;min-width:0;min-height:0}
.nwp img,.nwp video{max-width:100%}
.nwp :focus-visible{outline:2px solid var(--nwp-ink);outline-offset:3px}
body.nws-site .nwp :is(h1,h2,h3,p,a,button,span,dt,dd,li,figcaption,blockquote,small,strong,b,em){text-transform:none;font-family:inherit}
.nwp :is(h1,h2,h3){font-family:var(--nwp-font)}

/* The theme's box around the content opens up to the full width. */
body.nwp-page #content>.ast-container,body.nwp-page .site-content>.ast-container{max-width:none!important;width:100%!important;padding:0!important;margin:0!important;display:block!important}
body.nwp-page #content{padding:0!important}
/* The site's logo sits above the project's own header, sharing its glow. */
body.nwp-page .nws-hero{padding:22px var(--nws-gutter,40px) 0}
body.nwp-page .nws-hero::before,body.nwp-page .nws-hero::after{display:none}
body.nwp-page .nws-hero .nws-logo img{width:clamp(84px,7vw,108px)}
body.nwp-page.nwp-has-cover .nws-hero{display:none}

/* A dark page is dark from the top bar to the footer. */
body.nws-site.nwp-dark{background:#0c0c0b!important;--nws-canvas:#0c0c0b;--nws-surface:#171716;--nws-subtle:#1c1c1b;--nws-subtle-2:#262624;--nws-line:rgba(255,255,255,.1);--nws-line-strong:rgba(255,255,255,.2);--nws-ink:#f3f3f0;--nws-ink-2:#d6d6d0;--nws-muted:#a2a29b;--nws-faint:#76766f;color:#f3f3f0}
html:has(body.nwp-dark){background:#0c0c0b}
body.nwp-dark .nws-bar{background:rgba(12,12,11,.72)}
body.nwp-dark .nws-bar.is-scrolled{background:rgba(12,12,11,.9);box-shadow:0 10px 30px -22px rgba(0,0,0,.9)}
body.nwp-dark .nws-bar-logo img,body.nwp-dark .nws-logo img{filter:brightness(0) invert(1)}
body.nwp-dark .nws-lang,body.nwp-dark .nws-nav{background:rgba(255,255,255,.06);box-shadow:none}
body.nwp-dark .nws-nav a[aria-current="page"]{background:#f3f3f0;color:#111!important}
body.nwp-dark .nws-lang a[aria-current="true"]{background:#f3f3f0;color:#111!important}
body.nwp-dark .nws-portal{background:#f3f3f0;color:#111!important}
body.nwp-dark .nws-portal:hover{background:#fff}
body.nwp-dark .nws-panel{background:#171716;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
body.nwp-dark .nws-btn:not(.is-light):not(.is-ghost){background:#1c1c1b;color:#f3f3f0!important;border-color:rgba(255,255,255,.16)}

/* ------------------------------------------------------------------ */
/* Reading progress                                                     */
/* ------------------------------------------------------------------ */
.nwp-progress{position:fixed;left:0;right:0;top:calc(var(--nws-top,var(--wp-admin--admin-bar--height,0px)) + var(--nws-bar,0px));height:2px;z-index:61;pointer-events:none;display:none}
.nwp-progress span{display:block;height:100%;background:var(--nwp-mark);transform-origin:0 50%;transform:scaleX(0)}
@supports (animation-timeline:scroll()){
  .nwp-progress{display:block}
  .nwp-progress span{animation:nwp-progress linear both;animation-timeline:scroll(root block)}
}
@keyframes nwp-progress{to{transform:scaleX(1)}}

/* ------------------------------------------------------------------ */
/* Header: centred on the homepage's glow                               */
/* ------------------------------------------------------------------ */
.nwp-head{position:relative;isolation:isolate;width:min(var(--nwp-wide),100% - 2 * var(--nwp-gutter));margin:0 auto;padding:clamp(18px,2.4vw,34px) 0 clamp(28px,3.6vw,52px);display:flex;flex-direction:column;align-items:center;text-align:center}
.nwp-head::before{content:"";position:absolute;z-index:-1;left:50%;top:-150px;width:min(1240px,100vw);height:calc(100% + 150px);transform:translateX(-50%);pointer-events:none;background:radial-gradient(30% 36% at 50% 30%,var(--nwp-glow-1),transparent 70%),radial-gradient(22% 30% at 71% 46%,var(--nwp-glow-2),transparent 72%),radial-gradient(22% 30% at 29% 54%,var(--nwp-glow-3),transparent 72%)}
.nwp-head::after{content:"";position:absolute;z-index:-1;left:50%;top:-150px;width:min(1400px,100vw);height:calc(100% + 150px);transform:translateX(-50%);pointer-events:none;background-image:radial-gradient(color-mix(in srgb,var(--nwp-ink) 11%,transparent) 1px,transparent 1.3px);background-size:24px 24px;-webkit-mask-image:radial-gradient(40% 52% at 50% 38%,#000 12%,transparent 76%);mask-image:radial-gradient(40% 52% at 50% 38%,#000 12%,transparent 76%)}
.nwp-head-main{display:flex;flex-direction:column;align-items:center;width:100%}
.nwp-crumbs{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px;margin:0 0 clamp(20px,2.2vw,28px)}
.nwp-back,.nwp-kicker{display:inline-flex;align-items:center;gap:8px;height:34px;border:1px solid var(--nwp-line);border-radius:999px;background:var(--nwp-glass);box-shadow:var(--nwp-shadow-xs);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:13.5px;font-weight:600;letter-spacing:-.005em;color:var(--nwp-ink-2)!important;white-space:nowrap}
.nwp-back{gap:7px;padding:0 15px 0 11px;text-decoration:none!important;transition:background .2s,color .2s,border-color .2s}
.nwp-back:hover{background:var(--nwp-ink);border-color:var(--nwp-ink);color:var(--nwp-bg)!important}
.nwp-back .nwp-i{width:16px;height:16px}
.nwp-kicker{padding:0 15px 0 13px}
.nwp-kicker i,.nwp-label i{flex:none;width:7px;height:7px;border-radius:50%;background:var(--nwp-dot);box-shadow:0 0 0 3px color-mix(in srgb,var(--nwp-dot) 20%,transparent)}
body.nws-site .nwp .nwp-title,.nwp-title{margin:0;max-width:17ch;font-size:clamp(38px,5.4vw,82px);line-height:1;font-weight:680;letter-spacing:-.045em;color:var(--nwp-ink);text-wrap:balance;overflow-wrap:anywhere}
.nwp-lede{max-width:60ch;margin:clamp(18px,2vw,26px) 0 0;font-size:clamp(17px,1.3vw,19px);line-height:1.6;color:var(--nwp-muted)}
.nwp-lede p{margin:0 0 .8em}.nwp-lede p:last-child{margin-bottom:0}
.nwp-lede a,.nwp-fact dd a{color:inherit!important;text-decoration:underline!important;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)!important;text-decoration-thickness:1.5px!important;text-underline-offset:4px}
.nwp-lede strong{color:var(--nwp-ink);font-weight:620}
.nwp-facts{display:grid;margin:0;padding:0}
.nwp-fact{margin:0}
.nwp-fact dt{margin:0;font-size:12.5px;font-weight:550;line-height:1.35;color:var(--nwp-muted);text-transform:none!important;letter-spacing:0}
.nwp-fact dd{margin:0;font-size:15px;font-weight:600;line-height:1.45;letter-spacing:-.005em;color:var(--nwp-ink)}
.nwp-head-facts{width:min(100%,1040px);margin-top:clamp(28px,3.4vw,44px)}
.nwp-head-facts .nwp-facts,.nwp-facts-bar .nwp-facts{grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);background:var(--nwp-surface);border:1px solid var(--nwp-line);border-radius:20px;box-shadow:var(--nwp-shadow-sm);text-align:left;overflow:hidden}
.nwp-head-facts .nwp-fact,.nwp-facts-bar .nwp-fact{display:flex;flex-direction:column;gap:4px;min-width:0;padding:16px 20px 17px;border-left:1px solid var(--nwp-line)}
.nwp-head-facts .nwp-fact:first-child,.nwp-facts-bar .nwp-fact:first-child{border-left:0}
.nwp-js .nwp-head-main>*{animation:nwp-rise .9s var(--nwp-ease) both}
.nwp-js .nwp-head-main>.nwp-title{animation-delay:.06s}
.nwp-js .nwp-head-main>.nwp-lede{animation-delay:.14s}
.nwp-js .nwp-head-facts{animation:nwp-rise .9s var(--nwp-ease) .2s both}
@keyframes nwp-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* Full-screen cover behind the title */
.nwp-head.is-full{display:block;width:100%;max-width:none;margin:0 0 var(--nwp-gap);padding:0;height:min(88svh,1000px);min-height:420px;overflow:hidden;color:#fff;text-align:left}
.nwp-head.is-full::before{display:none}
.nwp-head.is-full::after{top:0;left:0;width:100%;height:100%;transform:none;-webkit-mask-image:none;mask-image:none;background:linear-gradient(180deg,rgba(0,0,0,.34) 0%,rgba(0,0,0,0) 26%,rgba(0,0,0,0) 44%,rgba(0,0,0,.66) 100%)}
.nwp-cover{position:absolute;inset:0;z-index:-2;background:#111}
.nwp-cover>*,.nwp-cover .nwp-media,.nwp-cover .nwp-player{position:absolute;inset:0;width:100%!important;height:100%;aspect-ratio:auto!important;border-radius:0!important;margin:0}
.nwp-cover img,.nwp-cover video{width:100%;height:100%;object-fit:cover}
.nwp-head.is-full .nwp-head-main{position:absolute;left:0;right:0;bottom:0;width:min(var(--nwp-wide),100% - 2 * var(--nwp-gutter));margin:0 auto;padding-bottom:clamp(26px,4.6vw,64px);align-items:flex-start}
.nwp-head.is-full .nwp-crumbs{justify-content:flex-start}
.nwp-head.is-full .nwp-title,body.nws-site .nwp .nwp-head.is-full .nwp-title{max-width:16ch;color:#fff;text-shadow:0 2px 30px rgba(0,0,0,.25)}
.nwp-head.is-full .nwp-lede{color:rgba(255,255,255,.86)}
.nwp-head.is-full .nwp-lede strong{color:#fff}
.nwp-head.is-full :is(.nwp-back,.nwp-kicker){color:#fff!important;border-color:rgba(255,255,255,.3);background:rgba(0,0,0,.22);box-shadow:none}
.nwp-head.is-full .nwp-back:hover{background:#fff;color:#111!important;border-color:#fff}
.nwp-head.is-full .nwp-player .nwp-sound{bottom:auto;top:16px;right:16px}
@supports (animation-timeline:scroll()){
  .nwp-cover>*{animation:nwp-drift linear both;animation-timeline:scroll(root block);animation-range:0 100vh}
}
@keyframes nwp-drift{to{transform:translateY(14%) scale(1.06)}}
.nwp-facts-bar{width:min(var(--nwp-wide),100% - 2 * var(--nwp-gutter));margin:0 auto var(--nwp-gap)}

/* The cover in a card under the title */
.nwp-b-cover :is(.nwp-media,.nwp-player){width:100%;max-height:min(84svh,1040px)}
.nwp-b-cover .nwp-media>img,.nwp-b-cover .nwp-media .nwp-img{height:100%;object-fit:cover}
.nwp-b-cover .nwp-player video{object-fit:cover}

/* ------------------------------------------------------------------ */
/* Blocks                                                               */
/* ------------------------------------------------------------------ */
.nwp-flow{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:var(--nwp-gap)}
.nwp-flow::before{content:"";position:absolute;z-index:-1;left:50%;top:-160px;width:min(1800px,140vw);height:min(1500px,170vh);transform:translateX(-50%);pointer-events:none;background:radial-gradient(28% 32% at 22% 30%,color-mix(in srgb,var(--nwp-mark) 9%,transparent),transparent 72%),radial-gradient(26% 30% at 78% 56%,rgba(59,102,218,.06),transparent 72%)}
.nwp.is-dark .nwp-flow::before{background:radial-gradient(28% 32% at 22% 30%,color-mix(in srgb,var(--nwp-mark) 16%,transparent),transparent 72%),radial-gradient(26% 30% at 78% 56%,rgba(59,102,218,.1),transparent 72%)}
.nwp-b{position:relative;min-width:0}
.nwp-b-in{width:min(var(--nwp-wide),100% - 2 * var(--nwp-gutter));margin:0 auto}
.nwp-w-medium>.nwp-b-in{width:min(var(--nwp-medium),100% - 2 * var(--nwp-gutter))}
.nwp-w-text>.nwp-b-in{width:min(var(--nwp-text),100% - 2 * var(--nwp-gutter))}
.nwp-w-full>.nwp-b-in{width:100%}
.nwp-b.is-joined{margin-top:calc(-1 * var(--nwp-gap))}
.nwp-b.is-spaced{margin-top:clamp(32px,5vw,80px)}
/* Words between pictures get more room around them, like the homepage's sections. */
.nwp-flow>:is(.nwp-b-text,.nwp-b-quote):not(.is-joined):not(.has-bg){margin-block:clamp(10px,3.4vw,52px)}
/* A coloured block is a panel, like the homepage's dark card; edge to edge it is a band. */
.nwp-b.has-bg:not(.nwp-w-full)>.nwp-b-in{position:relative;isolation:isolate;overflow:hidden;background:var(--nwp-block-bg);color:var(--nwp-ink);border-radius:calc(var(--nwp-card-r) + 2px);padding:clamp(24px,4.4vw,72px)}
.nwp-b.has-bg.nwp-w-full{position:relative;isolation:isolate;overflow:hidden;background:var(--nwp-block-bg);color:var(--nwp-ink);padding:clamp(32px,6vw,104px) 0}
.nwp .has-glow:not(.nwp-w-full)>.nwp-b-in::before,.nwp .has-glow.nwp-w-full::before,.nwp .nwp-col.has-glow::before{content:"";position:absolute;z-index:-1;top:-60%;right:-10%;width:70%;height:220%;pointer-events:none;background:radial-gradient(38% 34% at 52% 42%,rgba(124,92,230,.42),transparent 70%),radial-gradient(30% 28% at 74% 62%,rgba(59,102,218,.34),transparent 72%),radial-gradient(24% 22% at 40% 70%,rgba(225,154,27,.22),transparent 72%)}
.nwp-fig{margin:0;padding:0;min-width:0}
/* Pictures in a card, as on the homepage: the card's corners and the picture's are nested. */
.nwp-fig.is-card{--nwp-radius:max(0px,calc(var(--nwp-card-r) - var(--nwp-card-pad)));padding:var(--nwp-card-pad);background:var(--nwp-surface);border:1px solid var(--nwp-line);border-radius:var(--nwp-card-r);box-shadow:var(--nwp-shadow-sm)}
.nwp-fig.is-card.is-v{width:min(100%,calc(var(--nwp-vmax) * var(--nwp-r) + 2 * var(--nwp-card-pad) + 2px));margin-inline:auto}
.nwp-fig.is-card.is-s{width:min(100%,calc(var(--nwp-vmax) + 2 * var(--nwp-card-pad) + 2px));margin-inline:auto}
.nwp-fig.is-card:is(.is-v,.is-s) .nwp-player{width:100%}
.nwp-cap{margin:12px auto 0;max-width:72ch;padding:0 4px;font-size:13.5px;line-height:1.5;color:var(--nwp-muted);text-align:center}
.nwp-fig.is-card>.nwp-cap{margin:11px 8px 3px;max-width:none;padding:0;text-align:left}
.nwp-w-full .nwp-cap{padding:0 var(--nwp-gutter)}
.nwp-js .nwp-b[data-nwp-reveal]{opacity:0;transform:translateY(26px);transition:opacity .8s var(--nwp-ease),transform .9s var(--nwp-ease)}
.nwp-js .nwp-b[data-nwp-reveal].is-in{opacity:1;transform:none}

/* Side by side: the row shares its width, each block its part; phones stack them in order. */
.nwp-cols{display:grid;grid-template-columns:var(--nwp-tpl);gap:var(--nwp-gap) min(var(--nwp-gap),48px);align-items:stretch}
.nwp-col{position:relative;min-width:0;display:flex;flex-direction:column;justify-content:flex-start;container-type:inline-size}
.nwp-col.is-middle{justify-content:center}
.nwp-col.is-bottom{justify-content:flex-end}
.nwp-col.has-bg{isolation:isolate;overflow:hidden;background:var(--nwp-block-bg);color:var(--nwp-ink);border-radius:calc(var(--nwp-card-r) + 2px);padding:clamp(22px,3.4vw,56px)}
.nwp-w-full .nwp-col.has-bg{border-radius:0}
.nwp-js .nwp-b-row[data-nwp-reveal]>.nwp-cols>.nwp-col{opacity:0;transform:translateY(18px);transition:opacity .8s var(--nwp-ease),transform .9s var(--nwp-ease)}
.nwp-js .nwp-b-row[data-nwp-reveal].is-in>.nwp-cols>.nwp-col{opacity:1;transform:none}
.nwp-js .nwp-b-row[data-nwp-reveal]>.nwp-cols>.nwp-col:nth-child(2){transition-delay:.08s}
.nwp-js .nwp-b-row[data-nwp-reveal]>.nwp-cols>.nwp-col:nth-child(3){transition-delay:.16s}
.nwp-js .nwp-b-row[data-nwp-reveal]>.nwp-cols>.nwp-col:nth-child(4){transition-delay:.24s}
/* Columns of blocks (1.63): a column holds its blocks one under another. Text beside other blocks sits in a
   box like the pictures' cards. In a column of blocks the boxes grow, so the column ends with the row. A box on
   its own wraps its words and sits at the top, middle or bottom; Spread out makes it as tall as the row, with
   the heading at the top and the words at the bottom. */
.nwp-col.is-stack{gap:var(--nwp-gap)}
.nwp-col.is-spread{justify-content:space-between}
.nwp-col.is-boxed{align-self:start}
.nwp-col.is-boxed.is-middle{align-self:center}
.nwp-col.is-boxed.is-bottom{align-self:end}
.nwp-col.is-boxed.is-spread{align-self:stretch}
:is(.nwp-col.is-boxed.is-spread,.nwp-col.is-spread>.nwp-part.is-boxed)>.nwp-text{flex:1 1 auto;align-content:space-between}
:is(.nwp-col.is-boxed.is-spread,.nwp-col.is-spread>.nwp-part.is-boxed)>.nwp-text.no-head{align-content:center}
.nwp-part{position:relative;min-width:0}
.nwp-part.has-bg{isolation:isolate;overflow:hidden;background:var(--nwp-block-bg);color:var(--nwp-ink);border-radius:calc(var(--nwp-card-r) + 2px);padding:clamp(22px,3.4vw,56px)}
.nwp-w-full .nwp-part.has-bg{border-radius:0}
.nwp .nwp-part.has-glow::before{content:"";position:absolute;z-index:-1;top:-60%;right:-10%;width:70%;height:220%;pointer-events:none;background:radial-gradient(38% 34% at 52% 42%,rgba(124,92,230,.42),transparent 70%),radial-gradient(30% 28% at 74% 62%,rgba(59,102,218,.34),transparent 72%),radial-gradient(24% 22% at 40% 70%,rgba(225,154,27,.22),transparent 72%)}
.nwp-col.is-boxed,.nwp-part.is-boxed{background:var(--nwp-surface);border:1px solid var(--nwp-line);border-radius:var(--nwp-card-r);box-shadow:var(--nwp-shadow-sm);padding:clamp(22px,2.6vw,40px)}
.nwp-part.is-boxed{flex:1 1 auto;display:flex;flex-direction:column;justify-content:flex-start}
.nwp-col.is-middle>.nwp-part.is-boxed{justify-content:center}
.nwp-col.is-bottom>.nwp-part.is-boxed{justify-content:flex-end}
.nwp-col.is-spread>.nwp-part.is-boxed{justify-content:space-between}
:is(.nwp-col,.nwp-part).is-boxed .nwp-text{gap:clamp(12px,1.4vw,18px)}
/* Pictures and palettes in a column of blocks (1.63.1) take the room the words leave: the column ends with the
   row's tallest block instead of making the row taller. A picture is cropped to fit; the column only grows past
   the tallest block when the words alone need more room. Phones show everything at its own size. */
@media (min-width:761px){
  .nwp-col.is-stack>.nwp-part.is-fill{flex:1 1 0;min-height:var(--nwp-fill-min,140px);display:flex;flex-direction:column}
  .nwp-col.is-stack>.nwp-part.nwp-b-palette.is-fill{--nwp-fill-min:88px}
  .nwp-col.is-stack:has(>.nwp-part.is-fill)>.nwp-part:not(.is-fill){flex:0 0 auto}
  .nwp-part.is-fill>.nwp-fig{flex:1 1 auto;min-height:0;display:flex;flex-direction:column}
  .nwp-part.is-fill>.nwp-fig>:not(.nwp-cap){flex:1 1 auto;min-height:0}
  .nwp-part.is-fill .nwp-zoom{display:flex;flex-direction:column}
  .nwp-part.is-fill .nwp-media{flex:1 1 auto;min-height:0;aspect-ratio:auto!important}
  .nwp .nwp-part.is-fill .nwp-media>img,.nwp .nwp-part.is-fill .nwp-media .nwp-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .nwp-part.is-fill .nwp-palette.is-bars{min-height:0}
}
:is(.nwp-col,.nwp-part).is-boxed .nwp-quote-text{font-size:clamp(22px,2.2vw,34px)}

/* Pictures: their shape is held and their colour shows while they load, then they fade in. */
.nwp-media{position:relative;overflow:hidden;background:var(--nwp-c,var(--nwp-placeholder));border-radius:var(--nwp-radius);isolation:isolate}
.nwp-w-full .nwp-media,.nwp-w-full .nwp-player,.nwp-w-full .nwp-compare,.nwp-w-full .nwp-evo-stage{border-radius:0}
.nwp-media>img,.nwp-media .nwp-img{display:block;width:100%;height:auto}
.nwp-media.is-gif{background:transparent}
.nwp-media.is-fill{height:100%}
.nwp .nwp-media.is-fill>img,.nwp .nwp-media.is-fill .nwp-img{width:100%;height:100%;object-fit:cover}
.nwp-js .nwp-img{opacity:0;transition:opacity .7s ease}
.nwp-js .nwp-img.is-loaded{opacity:1}
.nwp-zoom{display:block;position:relative;cursor:zoom-in;color:inherit;text-decoration:none!important;border-radius:var(--nwp-radius)}
.nwp-zoom::after{content:"";position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.88) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%23161616' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 3h6v6M9 21H3v-6M21 3l-7 7M3 21l7-7'/%3E%3C/svg%3E") center/16px no-repeat;box-shadow:0 4px 14px -6px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transform:scale(.85);transition:opacity .2s,transform .2s;pointer-events:none;z-index:2}
.nwp-zoom:hover::after,.nwp-zoom:focus-visible::after{opacity:1;transform:none}
@media (hover:none){.nwp-zoom::after{display:none}}

/* Rows, cells and masonry of pictures and videos */
.nwp-grid.is-rows{display:flex;flex-direction:column;gap:var(--nwp-ggap)}
.nwp-row{display:flex;gap:var(--nwp-ggap);align-items:flex-start}
.nwp-row>.nwp-cell{flex:var(--nwp-r) 1 0%;min-width:0}
.nwp-cells{display:grid;grid-template-columns:repeat(var(--nwp-cols),minmax(0,1fr));gap:var(--nwp-ggap)}
.nwp-cells .nwp-media,.nwp-cells .nwp-player{aspect-ratio:var(--nwp-ar)!important;height:auto}
.nwp-cells .nwp-media>img,.nwp-cells .nwp-media .nwp-img,.nwp-cells .nwp-zoom{height:100%}
.nwp-cells .nwp-media img{height:100%;object-fit:cover}
.nwp-grid.is-masonry{columns:var(--nwp-cols);column-gap:var(--nwp-ggap)}
.nwp-grid.is-masonry .nwp-cell{break-inside:avoid;margin-bottom:var(--nwp-ggap)}
.nwp-cell{position:relative;min-width:0}
.nwp-cell-cap{display:block;margin-top:8px;padding:0 2px;font-size:12.5px;line-height:1.45;color:var(--nwp-muted)}
/* Masonry, placed by the script: shortest column first, in the order chosen. */
.nwp [data-nwp-masonry].is-placed{display:flex;align-items:flex-start;columns:auto;gap:var(--nwp-mgap,var(--nwp-ggap))}
.nwp-mcol{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:var(--nwp-mgap,var(--nwp-ggap))}
.nwp [data-nwp-masonry].is-placed .nwp-cell,.nwp [data-nwp-masonry].is-placed .nwp-ref{margin:0}
.nwp-refs{--nwp-mgap:var(--nwp-ggap)}

/* ------------------------------------------------------------------ */
/* Video                                                                */
/* ------------------------------------------------------------------ */
.nwp-player{position:relative;overflow:hidden;width:100%;margin-inline:auto;border-radius:var(--nwp-radius);background:var(--nwp-c,#0f0f0e);isolation:isolate;color:#fff}
.nwp-b-video .nwp-player.is-v{width:min(100%,calc(var(--nwp-vmax) * var(--nwp-r)))}
.nwp-b-video .nwp-player.is-s{width:min(100%,var(--nwp-vmax))}
.nwp-player video{display:block;width:100%;height:100%;object-fit:cover;background:transparent}
.nwp-player.is-fill{height:100%}
.nwp-player:fullscreen{width:100vw!important;height:100vh!important;max-width:none;aspect-ratio:auto!important;border-radius:0;background:#000}
.nwp-player:fullscreen video{object-fit:contain}
.nwp-player.is-embed .nwp-poster,.nwp-player.is-embed iframe{position:absolute;inset:0;width:100%;height:100%;border:0;object-fit:cover}
.nwp-player.is-embed .nwp-poster{transition:transform .8s var(--nwp-ease),opacity .3s}
.nwp-player.is-embed:hover .nwp-poster{transform:scale(1.03)}
.nwp-watch{position:absolute;left:12px;bottom:12px;z-index:3;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.6);color:#fff!important;font-size:12.5px;font-weight:600;text-decoration:none!important}
.nwp-js .nwp-watch{display:none}
.nwp .nwp-bigplay{--s:clamp(58px,6vw,78px);position:absolute;left:50%;top:50%;z-index:3;width:var(--s);height:var(--s);margin:calc(var(--s) / -2) 0 0 calc(var(--s) / -2);padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.94);color:#111;display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 40px -10px rgba(0,0,0,.5);transition:transform .3s var(--nwp-ease),opacity .25s}
.nwp .nwp-bigplay .nwp-i,.nwp .nwp-bigplay svg{width:38%;height:38%;margin-left:7%}
.nwp .nwp-bigplay:hover{transform:scale(1.07)}
.nwp-player.is-v .nwp-bigplay,.nwp-cell .nwp-bigplay,.nwp-app .nwp-bigplay,.nwp-bi .nwp-bigplay,.nwp-evo-step .nwp-bigplay{--s:52px}
.nwp-player.is-started .nwp-bigplay{opacity:0;pointer-events:none;transform:scale(.85)}
.nwp-player.is-started.is-paused:not(.is-loop) .nwp-bigplay{opacity:1;pointer-events:auto;transform:none}
.nwp-player.is-loop.is-paused.is-still .nwp-bigplay{opacity:1;pointer-events:auto;transform:none}
.nwp-ctl{position:absolute;left:10px;right:10px;bottom:10px;z-index:4;display:flex;align-items:center;gap:4px;padding:5px 8px;border-radius:14px;background:rgba(20,20,20,.55);-webkit-backdrop-filter:blur(14px) saturate(1.4);backdrop-filter:blur(14px) saturate(1.4);color:#fff;opacity:0;transform:translateY(8px);transition:opacity .25s,transform .25s;pointer-events:none}
.nwp-player.is-started:not(.is-idle) .nwp-ctl,.nwp-player.is-started.is-paused .nwp-ctl,.nwp-player.is-started:focus-within .nwp-ctl{opacity:1;transform:none;pointer-events:auto}
.nwp-player.is-idle.is-playing{cursor:none}
.nwp .nwp-ctl-btn{flex:none;width:34px;height:34px;padding:0;border:0;border-radius:10px;background:transparent;color:#fff;display:grid;place-items:center;cursor:pointer}
.nwp .nwp-ctl-btn:hover{background:rgba(255,255,255,.15)}
.nwp .nwp-ctl-btn svg{width:18px;height:18px}
.nwp-ctl-bar{position:relative;flex:1;min-width:40px;height:28px;display:flex;align-items:center;cursor:pointer;touch-action:none}
.nwp-ctl-bar::before{content:"";position:absolute;left:0;right:0;height:4px;border-radius:4px;background:rgba(255,255,255,.22)}
.nwp-ctl-buf,.nwp-ctl-fill{position:absolute;left:0;height:4px;border-radius:4px;width:0}
.nwp-ctl-buf{background:rgba(255,255,255,.32)}
.nwp-ctl-fill{background:#fff}
.nwp-ctl-knob{position:absolute;left:0;width:13px;height:13px;margin-left:-6.5px;border-radius:50%;background:#fff;box-shadow:0 1px 4px rgba(0,0,0,.35);transform:scale(0);transition:transform .15s}
.nwp-ctl-bar:hover .nwp-ctl-knob,.nwp-ctl-bar.is-drag .nwp-ctl-knob,.nwp-ctl-bar:focus-visible .nwp-ctl-knob{transform:scale(1)}
.nwp-ctl-time{flex:none;padding:0 6px;font-size:12px;font-variant-numeric:tabular-nums;white-space:nowrap;opacity:.92}
.nwp-player.is-v .nwp-ctl-time,.nwp-cell .nwp-ctl-time{display:none}
.nwp .nwp-sound{position:absolute;right:12px;bottom:12px;z-index:4;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(20,20,20,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s}
.nwp .nwp-sound svg{width:18px;height:18px}
.nwp-player:hover .nwp-sound,.nwp-player:focus-within .nwp-sound,.nwp-player.is-unmuted .nwp-sound{opacity:1}
.nwp .nwp-sound:hover{background:rgba(20,20,20,.72)}
@media (hover:none){.nwp .nwp-sound{opacity:.92}}
.nwp-spin{position:absolute;left:50%;top:50%;z-index:3;width:34px;height:34px;margin:-17px 0 0 -17px;border-radius:50%;border:3px solid rgba(255,255,255,.28);border-top-color:#fff;opacity:0;pointer-events:none;transition:opacity .2s;animation:nwp-spin .8s linear infinite}
.nwp-player.is-waiting.is-playing .nwp-spin{opacity:1}
@keyframes nwp-spin{to{transform:rotate(360deg)}}

/* ------------------------------------------------------------------ */
/* Text, details, quotes, space                                         */
/* ------------------------------------------------------------------ */
.nwp-text{display:grid;gap:clamp(14px,1.6vw,20px)}
.nwp-text.is-split{grid-template-columns:minmax(0,.9fr) minmax(0,1.5fr);gap:20px clamp(28px,6vw,110px);align-items:start}
.nwp-text.is-split .nwp-text-head{position:sticky;top:calc(var(--nws-top,0px) + var(--nws-bar,0px) + 28px)}
/* Beside a heading with a label, the text starts level with the heading. */
@media (min-width:861px){.nwp-text.is-split .nwp-text-head:has(>.nwp-label+.nwp-h)+.nwp-prose{padding-top:48px}}
.nwp-text.is-center{text-align:center;justify-items:center}
.nwp-text.is-center .nwp-prose{max-width:62ch}
.nwp-label{display:inline-flex;align-items:center;gap:8px;height:30px;margin:0 0 18px;padding:0 13px 0 11px;border:1px solid var(--nwp-line);border-radius:999px;background:var(--nwp-glass);box-shadow:var(--nwp-shadow-xs);font-size:12.5px;font-weight:600;line-height:1;letter-spacing:0;text-transform:none!important;color:var(--nwp-ink-2);white-space:nowrap}
body.nws-site .nwp .nwp-h,.nwp-h{margin:0;font-size:clamp(30px,3.4vw,52px);line-height:1.04;font-weight:680;letter-spacing:-.04em;color:var(--nwp-ink);text-wrap:balance}
.nwp-prose{font-size:clamp(16px,1.15vw,18px);line-height:1.7;color:var(--nwp-ink-2)}
.nwp-prose p{margin:0 0 1em}.nwp-prose>:last-child{margin-bottom:0}
.nwp-prose strong{color:var(--nwp-ink);font-weight:620}
.nwp-prose a{color:var(--nwp-ink)!important;text-decoration:underline!important;text-decoration-color:color-mix(in srgb,currentColor 40%,transparent)!important;text-decoration-thickness:1.5px!important;text-underline-offset:4px}
.nwp-prose ul{margin:0 0 1em;padding:0;list-style:none}
.nwp-prose li{position:relative;margin:6px 0;padding-left:22px}
.nwp-prose li::before{content:"";position:absolute;left:3px;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--nwp-accent)}
.nwp-text.is-center .nwp-prose ul{display:inline-block;text-align:left}
/* In text blocks (1.63), a list reads as its points: a fine line between them and a dot in the page's colour. */
.nwp-text .nwp-prose ul{margin:0 0 1.1em}
.nwp-text .nwp-prose li{--pt:.62em;margin:0;padding:var(--pt) 0 var(--pt) 28px}
.nwp-text .nwp-prose li:first-child{--pt:.15em}
.nwp-text .nwp-prose li:last-child{padding-bottom:0}
.nwp-text .nwp-prose li+li{border-top:1px solid var(--nwp-line)}
.nwp-text .nwp-prose li::before{left:4px;top:calc(var(--pt) + .5lh - 3.5px);width:7px;height:7px;background:var(--nwp-mark);box-shadow:0 0 0 3px color-mix(in srgb,var(--nwp-mark) 18%,transparent)}
.nwp-text.is-list-numbers .nwp-prose ul{counter-reset:nwp-li}
.nwp-text.is-list-numbers .nwp-prose li{counter-increment:nwp-li;padding-left:40px}
.nwp-text.is-list-numbers .nwp-prose li::before{content:counter(nwp-li);left:0;top:calc(var(--pt) + .5lh - 12px);width:24px;height:24px;display:grid;place-items:center;background:color-mix(in srgb,var(--nwp-mark) 14%,transparent);box-shadow:none;color:var(--nwp-mark);font-size:12px;font-weight:700;line-height:1;font-variant-numeric:tabular-nums}
.nwp-text:is(.is-list-checks,.is-list-arrows) .nwp-prose li{padding-left:32px}
.nwp-text:is(.is-list-checks,.is-list-arrows) .nwp-prose li::before{left:0;top:calc(var(--pt) + .5lh - 9px);width:18px;height:18px;border-radius:0;box-shadow:none;background:var(--nwp-mark);-webkit-mask:var(--nwp-li-icon) center/contain no-repeat;mask:var(--nwp-li-icon) center/contain no-repeat}
.nwp-text.is-list-checks{--nwp-li-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4.5 12.5l5 5 10-11'/%3E%3C/svg%3E")}
.nwp-text.is-list-arrows{--nwp-li-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h13M13 6l6 6-6 6'/%3E%3C/svg%3E")}
/* Headings: four sizes, and the page's colour or a gradient into it. */
.nwp .nwp-text.is-h-s .nwp-h{font-size:clamp(22px,2vw,30px);line-height:1.18;letter-spacing:-.025em}
.nwp .nwp-text.is-h-l .nwp-h{font-size:clamp(36px,4.8vw,74px);line-height:1;letter-spacing:-.048em}
.nwp .nwp-text.is-h-xl .nwp-h{font-size:clamp(44px,7.4vw,120px);line-height:.94;letter-spacing:-.058em}
.nwp .nwp-text.is-hc-accent :is(.nwp-h,.nwp-stat-v){color:var(--nwp-mark)}
.nwp .nwp-text.is-hc-gradient :is(.nwp-h,.nwp-stat-v){background:linear-gradient(100deg,var(--nwp-ink) 0%,var(--nwp-ink) 28%,var(--nwp-mark) 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
/* ==Words== in a heading take the page's colour, or a line under them when the heading already has it. */
.nwp .nwp-h .nwp-h-mark{font-style:normal;color:var(--nwp-mark)}
.nwp .nwp-text:is(.is-hc-accent,.is-hc-gradient) .nwp-h-mark{text-decoration:underline;text-decoration-color:color-mix(in srgb,var(--nwp-mark) 55%,transparent);text-decoration-thickness:.07em;text-underline-offset:.12em;text-decoration-skip-ink:none}
.nwp-text.is-size-xl .nwp-prose{font-size:clamp(24px,2.8vw,42px);line-height:1.28;letter-spacing:-.022em;font-weight:520;color:var(--nwp-ink)}
/* Highlighted words: a marker stroke in the page's colour. */
.nwp .nwp-hl{padding:0 .08em;margin:0 -.04em;background:linear-gradient(transparent 50%,color-mix(in srgb,var(--nwp-mark) 32%,transparent) 50%,color-mix(in srgb,var(--nwp-mark) 32%,transparent) 94%,transparent 94%);color:inherit;border-radius:2px;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.nwp.is-dark .nwp-hl,.nwp .has-bg.is-dark .nwp-hl{background:linear-gradient(transparent 50%,color-mix(in srgb,var(--nwp-mark) 46%,transparent) 50%,color-mix(in srgb,var(--nwp-mark) 46%,transparent) 94%,transparent 94%)}
/* A large first letter. */
.nwp-text.has-dropcap .nwp-prose>p:first-child::first-letter{float:left;margin:.06em .12em 0 -.02em;font-size:3.5em;line-height:.8;font-weight:700;letter-spacing:0;color:var(--nwp-mark)}
/* Two columns on wide screens. */
@media (min-width:861px){.nwp-text.is-cols-2 .nwp-prose{columns:2;column-gap:clamp(28px,4vw,64px)}.nwp-text.is-cols-2 .nwp-prose>*{break-inside:avoid}}
/* Big numbers: one per line, as "12 | What it counts". */
.nwp-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,150px),1fr));column-gap:clamp(18px,2.4vw,36px)}
.nwp-stat{display:flex;flex-direction:column;gap:8px;min-width:0;padding:18px 0 20px;border-top:1px solid var(--nwp-line)}
.nwp .nwp-stat-v{font-size:clamp(34px,4.2vw,64px);line-height:1;font-weight:680;letter-spacing:-.045em;color:var(--nwp-ink);font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.nwp-stat-l{font-size:14.5px;line-height:1.45;color:var(--nwp-muted)}
.nwp-text.is-center .nwp-stats{text-align:center}
/* 1.64.1: centred big numbers take the block's whole width (not the 62ch of centred prose, which
   squeezed them into one column), as many to a row as fit, with a short last row centred. */
.nwp-text.is-center.is-stats .nwp-prose{justify-self:stretch;max-width:none}
.nwp-text.is-center .nwp-stats{display:flex;flex-wrap:wrap;justify-content:center}
.nwp-text.is-center .nwp-stat{flex:1 1 150px}
/* A button after the text. */
.nwp-text-cta{margin:clamp(18px,2vw,26px) 0 0!important}
.nwp-text.is-center .nwp-text-cta{text-align:center}
.nwp-text-cta .nwp-btn{text-decoration:none!important}
/* Text in a box on its own line, and the tinted box. */
.nwp-b.is-boxed:not(.nwp-w-full)>.nwp-b-in{background:var(--nwp-surface);border:1px solid var(--nwp-line);border-radius:var(--nwp-card-r);box-shadow:var(--nwp-shadow-sm);padding:clamp(24px,3.6vw,56px)}
.nwp :is(.nwp-col,.nwp-part).is-boxed.is-tint,.nwp .nwp-b.is-boxed.is-tint:not(.nwp-w-full)>.nwp-b-in{background:color-mix(in srgb,var(--nwp-mark) 7%,var(--nwp-surface));border-color:color-mix(in srgb,var(--nwp-mark) 22%,transparent);box-shadow:none}
.nwp-text.is-size-l .nwp-prose{font-size:clamp(20px,2vw,28px);line-height:1.45;letter-spacing:-.015em;color:var(--nwp-ink)}
.nwp-details{padding:clamp(20px,2.4vw,30px);background:var(--nwp-surface);border:1px solid var(--nwp-line);border-radius:var(--nwp-card-r);box-shadow:var(--nwp-shadow-sm)}
body.nws-site .nwp .nwp-details-title,.nwp-details-title{margin:0 0 14px;font-size:18px;line-height:1.3;font-weight:650;letter-spacing:-.02em;color:var(--nwp-ink)}
.nwp-details .nwp-facts{grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));column-gap:24px}
.nwp-details .nwp-fact{display:flex;flex-direction:column;gap:4px;min-width:0;padding:13px 0;border-top:1px solid var(--nwp-line)}
.nwp .nwp-quote{margin:0;padding:0;border:0!important;background:none!important;font-size:inherit;font-style:normal;quotes:none;display:flex;flex-direction:column;align-items:center;text-align:center}
.nwp .nwp-quote :is(p,footer,strong,span){font-style:normal}
.nwp-quote-mark{display:grid;place-items:center;width:46px;height:46px;margin-bottom:22px;padding-top:14px;border:1px solid var(--nwp-line);border-radius:14px;background:var(--nwp-surface);box-shadow:var(--nwp-shadow-xs);color:var(--nwp-accent);font-family:Georgia,"Times New Roman",serif!important;font-size:40px;line-height:1;font-weight:700}
.nwp-quote-text{max-width:28ch;font-size:clamp(26px,3vw,44px);line-height:1.14;font-weight:640;letter-spacing:-.035em;color:var(--nwp-ink);text-wrap:balance}
.nwp-quote-text p{margin:0 0 .5em}.nwp-quote-text p:last-child{margin:0}
.nwp-quote footer{margin-top:22px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:4px 10px;font-size:15px}
.nwp-quote footer strong{color:var(--nwp-ink);font-weight:650}
.nwp-quote footer strong+span::before{content:"·";margin-right:10px;color:var(--nwp-faint)}
.nwp-quote footer span{color:var(--nwp-muted)}
.nwp-spacer{height:clamp(8px,2vw,24px)}
.nwp-spacer.is-m{height:clamp(24px,4vw,56px)}
.nwp-spacer.is-l{height:clamp(48px,8vw,112px)}
.nwp-spacer.is-xl{height:clamp(80px,14vw,200px)}
.nwp-spacer.has-line{display:flex;align-items:center}
.nwp-spacer.has-line::before{content:"";flex:1;height:1px;background:var(--nwp-line-strong)}

/* ------------------------------------------------------------------ */
/* Before / after, with pictures or videos                              */
/* ------------------------------------------------------------------ */
.nwp-compare{--pos:50%;position:relative;overflow:hidden;border-radius:var(--nwp-radius);background:var(--nwp-placeholder);touch-action:pan-y;user-select:none;-webkit-user-select:none;cursor:ew-resize}
.nwp-cmp-layer{position:absolute;inset:0}
.nwp-cmp-layer .nwp-media{position:absolute;inset:0;height:100%;border-radius:0}
.nwp-cmp-layer img{width:100%;height:100%!important;object-fit:cover;-webkit-user-drag:none;pointer-events:none}
.nwp-cmp-layer video{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:cover;pointer-events:none}
.nwp-cmp-layer.is-before{clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.nwp-cmp-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;margin-left:-1px;background:#fff;box-shadow:0 0 0 1px rgba(0,0,0,.08);pointer-events:none;z-index:2}
.nwp-cmp-handle>span{position:absolute;left:50%;top:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:#fff;color:#111;display:grid;place-items:center;box-shadow:0 8px 24px -4px rgba(0,0,0,.35);transition:transform .2s}
.nwp-compare:hover .nwp-cmp-handle>span,.nwp-compare.is-drag .nwp-cmp-handle>span{transform:scale(1.08)}
.nwp-cmp-label{position:absolute;top:14px;z-index:1;display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.88);color:#161616;font-size:12.5px;font-weight:650;box-shadow:0 4px 14px -6px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}
.nwp-cmp-label.is-before{left:14px}
.nwp-cmp-label.is-after{right:14px}
.nwp-cmp-range{position:absolute;left:0;bottom:0;width:100%;height:24px;margin:0;opacity:0;pointer-events:none}
.nwp-cmp-range:focus-visible+.nwp-cmp-handle>span{outline:3px solid var(--nwp-accent);outline-offset:3px}
.nwp .nwp-cmp-play{position:absolute;left:14px;bottom:14px;z-index:3;width:36px;height:36px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.88);color:#161616;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 14px -6px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transition:opacity .2s}
.nwp .nwp-cmp-play svg{width:16px;height:16px}
.nwp-compare:hover .nwp-cmp-play,.nwp .nwp-cmp-play:focus-visible,.nwp-compare.is-paused .nwp-cmp-play{opacity:1}
@media (hover:none){.nwp .nwp-cmp-play{opacity:.94}}

/* ------------------------------------------------------------------ */
/* Dump: a pile of attempts                                             */
/* ------------------------------------------------------------------ */
.nwp-dump{--nwp-paper:#fff;display:grid;grid-template-columns:repeat(var(--nwp-cols),minmax(0,1fr));gap:clamp(12px,2vw,30px) clamp(8px,1.2vw,18px);align-items:center;padding:clamp(10px,2vw,30px) clamp(4px,1vw,14px)}
.nwp.is-dark .nwp-dump,.nwp .has-bg.is-dark .nwp-dump{--nwp-paper:#222220}
.nwp-dump-item{position:relative;z-index:var(--nwp-z);padding:clamp(5px,.55vw,9px);border-radius:5px;background:var(--nwp-paper);box-shadow:0 1px 2px rgba(0,0,0,.08),0 14px 30px -14px rgba(0,0,0,.4);transform:translate(var(--nwp-dx),var(--nwp-dy)) rotate(var(--nwp-rot));transition:transform .5s var(--nwp-ease),box-shadow .4s}
.nwp-dump-item .nwp-media,.nwp-dump-item .nwp-player{border-radius:3px}
.nwp-dump-item .nwp-zoom::after,.nwp-bi .nwp-zoom::after{top:8px;right:8px;width:30px;height:30px;background-size:14px}
.nwp-dump-item:hover,.nwp-dump-item:focus-within{z-index:30;transform:translate(0,0) rotate(0deg) scale(1.07);box-shadow:0 2px 4px rgba(0,0,0,.1),0 30px 60px -20px rgba(0,0,0,.5)}
.nwp-dump.is-wild .nwp-dump-item:nth-child(3n+2){margin-inline:-5%}
.nwp-dump.is-wild .nwp-dump-item:nth-child(4n+1)::before{content:"";position:absolute;z-index:2;top:-9px;left:50%;width:62px;height:20px;margin-left:-31px;transform:rotate(-5deg);background:rgba(255,241,190,.78);box-shadow:0 1px 2px rgba(0,0,0,.12)}
.nwp-dump.is-wild .nwp-dump-item:nth-child(6n+4)::before{content:"";position:absolute;z-index:2;top:-8px;right:12%;width:52px;height:18px;transform:rotate(9deg);background:rgba(210,230,255,.72);box-shadow:0 1px 2px rgba(0,0,0,.12)}

/* ------------------------------------------------------------------ */
/* References                                                           */
/* ------------------------------------------------------------------ */
.nwp-refs{columns:var(--nwp-cols);column-gap:var(--nwp-ggap)}
.nwp-ref{position:relative;break-inside:avoid;margin-bottom:var(--nwp-ggap)}
.nwp-ref-src{position:absolute;left:10px;bottom:10px;z-index:3;display:inline-flex;align-items:center;gap:5px;max-width:calc(100% - 20px);height:28px;padding:0 11px;border-radius:999px;background:rgba(255,255,255,.92);color:#111!important;font-size:12px;font-weight:650;line-height:1.3;text-decoration:none!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:0 4px 14px -6px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;transform:translateY(4px);transition:opacity .2s,transform .2s}
.nwp-ref-src .nwp-i{width:12px;height:12px;flex:none}
.nwp-ref:hover .nwp-ref-src,.nwp-ref:focus-within .nwp-ref-src{opacity:1;transform:none}
@media (hover:none){.nwp-ref-src{opacity:1;transform:none}}

/* ------------------------------------------------------------------ */
/* Evolution: from the first attempt to the final                       */
/* ------------------------------------------------------------------ */
.nwp-evo-list{list-style:none;margin:0;padding:0;display:flex;align-items:flex-end;gap:clamp(22px,2.8vw,44px)}
.nwp-evo-step{position:relative;flex:var(--nwp-r) 1 0%;min-width:0;display:flex;flex-direction:column;gap:10px}
.nwp-evo-step:not(:last-child)::after{content:"";position:absolute;top:calc(50% + 19px);right:calc(clamp(22px,2.8vw,44px) / -2 - 5px);width:9px;height:9px;border-top:2px solid var(--nwp-faint);border-right:2px solid var(--nwp-faint);transform:rotate(45deg)}
.nwp-evo-tag{display:inline-flex;align-items:center;gap:7px;align-self:flex-start;max-width:100%;height:28px;padding:0 11px 0 4px;border:1px solid var(--nwp-line);border-radius:999px;background:var(--nwp-surface);font-size:12.5px;font-weight:600;color:var(--nwp-ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nwp-evo-tag b{display:inline-grid;place-items:center;flex:none;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--nwp-subtle-2);color:var(--nwp-ink);font-size:11px;font-weight:700;font-variant-numeric:tabular-nums}
.nwp-evo-step:not(.is-final) :is(.nwp-media,.nwp-player){filter:saturate(.82) contrast(.97)}
.nwp-evo-step.is-final .nwp-evo-tag{border-color:var(--nwp-accent);background:var(--nwp-accent);color:var(--nwp-accent-ink)}
.nwp-evo-step.is-final .nwp-evo-tag b{background:color-mix(in srgb,var(--nwp-accent-ink) 22%,transparent);color:inherit}
.nwp-evo.is-long .nwp-evo-list{overflow-x:auto;scroll-snap-type:x mandatory;padding:4px 2px 14px;scrollbar-width:thin}
.nwp-evo.is-long .nwp-evo-step{flex:0 0 clamp(220px,27%,440px);scroll-snap-align:start}
.nwp-evo-stage{position:relative;overflow:hidden;border-radius:var(--nwp-radius);background:var(--nwp-placeholder);cursor:col-resize;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.nwp-evo-frame{position:absolute;inset:0;opacity:0;transition:opacity .16s linear}
.nwp-evo-frame.is-on{opacity:1}
.nwp-evo-frame .nwp-media,.nwp-evo-frame .nwp-player{position:absolute;inset:0;height:100%;border-radius:0;background:transparent}
.nwp-evo-frame img{width:100%;height:100%!important;object-fit:contain;pointer-events:none;-webkit-user-drag:none}
.nwp-evo-frame video{object-fit:contain}
.nwp-evo-frame .nwp-sound,.nwp-evo-frame .nwp-bigplay{display:none}
.nwp-evo-now{position:absolute;left:14px;top:14px;z-index:2;display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:999px;background:rgba(255,255,255,.88);color:#161616;font-size:12.5px;font-weight:650;box-shadow:0 4px 14px -6px rgba(0,0,0,.35);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);pointer-events:none}
.nwp-evo-ui{position:relative;margin-top:14px;padding:0 4px}
.nwp-evo-range{display:block;width:100%;margin:0;accent-color:var(--nwp-accent);cursor:pointer}
.nwp-evo-ticks{display:flex;justify-content:space-between;list-style:none;margin:8px 0 0;padding:0 6px}
.nwp-evo-ticks li{width:8px;height:8px;border-radius:50%;background:var(--nwp-line-strong);transition:background .2s,transform .2s}
.nwp-evo-ticks li.is-on{background:var(--nwp-accent);transform:scale(1.35)}
.nwp-evo-ticks span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* ------------------------------------------------------------------ */
/* Social: posts, stories and reels in their app                        */
/* ------------------------------------------------------------------ */
.nwp-social{--nwp-phone:clamp(250px,23vw,330px)}
.nwp-phones{display:flex;justify-content:center;align-items:flex-start;flex-wrap:wrap;gap:clamp(18px,2.6vw,40px)}
.nwp-phone{flex:0 0 auto;width:var(--nwp-phone);display:flex;flex-direction:column;gap:12px}
.nwp-app{--app-bg:#fff;--app-ink:#111;--app-muted:#737373;position:relative;overflow:hidden;background:var(--app-bg);color:var(--app-ink);border-radius:20px;box-shadow:0 1px 2px rgba(0,0,0,.06),0 26px 60px -30px rgba(0,0,0,.5),0 0 0 1px rgba(0,0,0,.06);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,var(--nwp-font);font-size:13px;line-height:1.35;text-align:left}
.nwp-app.is-dark{--app-bg:#000;--app-ink:#f5f5f5;--app-muted:#a8a8a8;box-shadow:0 26px 60px -30px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.08)}
.nwp-phone.is-story .nwp-app,.nwp-phone.is-reel .nwp-app{aspect-ratio:9/16;border-radius:32px;background:#0d0d0d;color:#fff;box-shadow:0 0 0 7px #0b0b0b,0 0 0 8px rgba(255,255,255,.08),0 34px 70px -30px rgba(0,0,0,.65)}
.nwp-phone.is-story,.nwp-phone.is-reel{padding:8px 8px 0}
.nwp-app-head{display:flex;align-items:center;gap:9px;padding:11px 12px;min-width:0}
.nwp-app-avatar{flex:none;width:30px;height:30px;border-radius:50%;object-fit:cover;background:#eee;box-shadow:0 0 0 2px var(--app-bg),0 0 0 3.5px var(--nwp-accent-user,#d0d0cc)}
.nwp-app-avatar.is-letter{display:grid;place-items:center;background:#222;color:#fff;font-weight:700;font-size:13px}
.nwp-app-handle{font-weight:650;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nwp-app-more{margin-left:auto;display:grid;opacity:.85}
.nwp-app .nwp-i{width:22px;height:22px}
.nwp-app-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:0 4px;font-size:12.5px;color:var(--nwp-muted)}
.nwp-app-meta a{display:inline-flex;align-items:center;gap:4px;color:var(--nwp-ink)!important;font-weight:650;text-decoration:none!important;white-space:nowrap}
.nwp-app-meta a .nwp-i{width:13px;height:13px}
.nwp-app .nwp-media,.nwp-app .nwp-player{position:absolute;inset:0;width:100%!important;height:100%;aspect-ratio:auto!important;border-radius:0!important;margin:0}
.nwp-app .nwp-media img,.nwp-app video{width:100%;height:100%!important;object-fit:cover}
.nwp-app .nwp-ctl{display:none}
/* Story */
.nwp-story-frames{position:absolute;inset:0}
.nwp-story-frame{position:absolute;inset:0;opacity:0;transition:opacity .22s}
.nwp-story-frame.is-on{opacity:1;z-index:1}
.nwp-story-top{position:absolute;left:0;right:0;top:0;z-index:3;padding:9px 9px 18px;background:linear-gradient(rgba(0,0,0,.42),transparent);pointer-events:none}
.nwp-story-bars{display:grid;grid-template-columns:repeat(var(--nwp-n),minmax(0,1fr));gap:3px}
.nwp-story-bars span{height:2.5px;border-radius:2px;background:rgba(255,255,255,.36);overflow:hidden}
.nwp-story-bars i{display:block;width:100%;height:100%;background:#fff;transform-origin:0 50%;transform:scaleX(var(--p,0))}
.nwp-story-top .nwp-app-head{padding:9px 3px 0;color:#fff}
.nwp-story-top .nwp-app-avatar{box-shadow:0 0 0 1.5px rgba(255,255,255,.9)}
.nwp .nwp-story-tap{position:absolute;top:0;bottom:70px;z-index:2;width:38%;padding:0;margin:0;border:0;background:transparent;cursor:pointer}
.nwp .nwp-story-tap.is-prev{left:0}
.nwp .nwp-story-tap.is-next{right:0;width:62%}
.nwp .nwp-story-tap:focus-visible{outline:2px solid #fff;outline-offset:-4px}
.nwp-story-foot{position:absolute;left:0;right:0;bottom:0;z-index:3;display:flex;align-items:center;gap:12px;padding:12px 12px 14px;background:linear-gradient(transparent,rgba(0,0,0,.36));color:#fff}
.nwp-story-reply{flex:1;min-width:0;height:36px;display:flex;align-items:center;padding:0 14px;border:1px solid rgba(255,255,255,.6);border-radius:999px;font-size:12.5px;white-space:nowrap;overflow:hidden;color:rgba(255,255,255,.92)}
.nwp-story-foot .nwp-i{flex:none;width:23px;height:23px}
.nwp-phone.is-story.is-held .nwp-story-top,.nwp-phone.is-story.is-held .nwp-story-foot{opacity:0;transition:opacity .2s}
/* Reel */
.nwp-reel-side{position:absolute;right:8px;bottom:86px;z-index:3;display:flex;flex-direction:column;align-items:center;gap:16px;color:#fff}
.nwp-reel-side span{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;font-weight:650;text-shadow:0 1px 3px rgba(0,0,0,.4)}
.nwp-reel-side .nwp-i{width:27px;height:27px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.4))}
.nwp-reel-foot{position:absolute;left:0;right:0;bottom:0;z-index:3;padding:40px 58px 16px 12px;background:linear-gradient(transparent,rgba(0,0,0,.55));color:#fff;pointer-events:none}
.nwp-reel-foot .nwp-app-head{padding:0}
.nwp-reel-cap{margin:7px 0 0;font-size:12.5px;line-height:1.4}
.nwp-phone.is-reel .nwp-sound{top:14px;right:14px;bottom:auto;opacity:.95}
/* Post */
.nwp-post-media{position:relative;overflow:hidden;background:#efefef}
.nwp-app.is-dark .nwp-post-media{background:#111}
.nwp-post-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.nwp-post-track::-webkit-scrollbar{display:none}
.nwp-post-slide{position:relative;flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always}
.nwp .nwp-post-nav{position:absolute;top:50%;z-index:2;width:28px;height:28px;margin-top:-14px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#111;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .2s;box-shadow:0 2px 8px rgba(0,0,0,.2)}
.nwp .nwp-post-nav .nwp-i{width:15px;height:15px}
.nwp .nwp-post-nav.is-prev{left:8px}.nwp .nwp-post-nav.is-next{right:8px}
.nwp-post-media:hover .nwp-post-nav:not([disabled]),.nwp .nwp-post-nav:focus-visible{opacity:1}
.nwp .nwp-post-nav[disabled]{opacity:0!important;pointer-events:none}
.nwp-heart-pop{position:absolute;left:50%;top:50%;z-index:3;margin:-44px 0 0 -44px;opacity:0;transform:scale(.2);pointer-events:none}
.nwp-heart-pop .nwp-i{width:88px;height:88px;fill:#fff;stroke:none;filter:drop-shadow(0 6px 18px rgba(0,0,0,.35))}
.nwp-heart-pop.is-on{animation:nwp-heart .95s cubic-bezier(.2,.9,.3,1.25)}
@keyframes nwp-heart{0%{opacity:0;transform:scale(.2)}18%{opacity:1;transform:scale(1.12)}32%{transform:scale(.94)}46%{transform:scale(1)}78%{opacity:1;transform:scale(1)}100%{opacity:0;transform:scale(.9) translateY(-10px)}}
.nwp-post-bar{position:relative;display:flex;align-items:center;justify-content:space-between;padding:10px 12px 4px}
.nwp-post-actions{display:flex;gap:15px}
.nwp-post-actions .nwp-i,.nwp-post-save .nwp-i{width:23px;height:23px;cursor:pointer;transition:transform .2s}
.nwp-post-actions .nwp-i:first-child.is-liked{fill:#ff3040;stroke:#ff3040;animation:nwp-like .4s}
@keyframes nwp-like{40%{transform:scale(1.25)}}
.nwp-post-dots{position:absolute;left:50%;top:50%;display:flex;gap:4px;transform:translate(-50%,-50%)}
.nwp-post-dots i{width:6px;height:6px;border-radius:50%;background:rgba(0,0,0,.2);transition:background .2s}
.nwp-app.is-dark .nwp-post-dots i{background:rgba(255,255,255,.3)}
.nwp-post-dots i.is-on{background:var(--nwp-accent-user,#3a8bff)}
.nwp-post-likes{margin:4px 12px 0;font-size:13px;font-weight:650}
.nwp-post-cap{margin:4px 12px 14px;font-size:13px;line-height:1.45;overflow-wrap:anywhere}
.nwp-post-cap b{font-weight:650;margin-right:3px}
.nwp-post-bar:last-child{padding-bottom:12px}

/* ------------------------------------------------------------------ */
/* Process steps                                                        */
/* ------------------------------------------------------------------ */
.nwp-steps{list-style:none;margin:0;padding:0}
.nwp-steps.is-timeline{position:relative;display:flex;flex-direction:column;gap:clamp(30px,4.4vw,64px)}
.nwp-steps.is-timeline::before{content:"";position:absolute;left:21px;top:22px;bottom:22px;width:1px;background:var(--nwp-line-strong)}
.nwp-step{position:relative;min-width:0}
.is-timeline>.nwp-step{display:grid;grid-template-columns:44px minmax(0,1fr);gap:0 clamp(18px,2.4vw,34px);align-items:start}
.is-timeline>.nwp-step.has-media{grid-template-columns:44px minmax(0,1fr) minmax(0,min(48%,620px))}
.nwp-step-media .nwp-player.is-v{--nwp-vmax:min(64svh,600px);width:min(100%,calc(var(--nwp-vmax) * var(--nwp-r)))}
.nwp-step-media .nwp-player.is-s{width:min(100%,min(64svh,600px))}
.is-timeline .nwp-step-media{justify-self:end;width:100%}
.nwp-frame-card .is-timeline .nwp-step-media{--nwp-radius:max(0px,calc(var(--nwp-card-r) - var(--nwp-card-pad)));padding:var(--nwp-card-pad);background:var(--nwp-surface);border:1px solid var(--nwp-line);border-radius:var(--nwp-card-r);box-shadow:var(--nwp-shadow-sm)}
.nwp-step-n{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--nwp-surface);border:1px solid var(--nwp-line-strong);box-shadow:var(--nwp-shadow-xs);font-size:13.5px;font-weight:680;font-variant-numeric:tabular-nums;color:var(--nwp-ink);transition:background .4s,border-color .4s,color .4s}
.nwp-step.is-in .nwp-step-n{background:var(--nwp-accent);border-color:var(--nwp-accent);color:var(--nwp-accent-ink)}
.nwp-step-copy{padding-top:9px}
.nwp-step-copy h3{margin:0 0 10px;font-size:clamp(20px,1.8vw,26px);line-height:1.15;font-weight:660;letter-spacing:-.028em;color:var(--nwp-ink)}
.nwp-step-copy .nwp-prose{font-size:clamp(15.5px,1.1vw,17px)}
.nwp-steps.is-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,250px),1fr));gap:clamp(12px,1.6vw,20px)}
.is-cards>.nwp-step{display:flex;flex-direction:column;gap:14px;padding:14px 14px 22px;border-radius:var(--nwp-card-r);background:var(--nwp-surface);border:1px solid var(--nwp-line);box-shadow:var(--nwp-shadow-sm);overflow:hidden}
.is-cards .nwp-step-n{align-self:flex-start;width:auto;height:24px;padding:0 9px;margin:4px 6px 0;border:0;border-radius:999px;background:var(--nwp-subtle)!important;color:var(--nwp-muted)!important;box-shadow:none;font-size:12px;font-weight:650}
.is-cards .nwp-step-copy{padding:0 6px}
.is-cards .nwp-step-media{order:-1;margin:0;--nwp-radius:max(0px,calc(var(--nwp-card-r) - 14px))}

/* ------------------------------------------------------------------ */
/* Palette                                                              */
/* ------------------------------------------------------------------ */
.nwp-palette.is-bars{display:flex;min-height:clamp(220px,26vw,380px);border-radius:var(--nwp-radius);overflow:hidden}
.nwp-fig:not(.is-card) .nwp-palette.is-bars{box-shadow:0 0 0 1px var(--nwp-line)}
.nwp .nwp-swatch{position:relative;flex:1 1 0;min-width:0;margin:0;padding:clamp(14px,1.6vw,22px);border:0;border-radius:0;background:var(--nwp-sw);display:flex;flex-direction:column;justify-content:flex-end;align-items:flex-start;gap:4px;text-align:left;font:inherit;cursor:copy;transition:flex-grow .5s var(--nwp-ease),transform .3s}
.nwp .nwp-swatch.is-dark{color:#fff}.nwp .nwp-swatch.is-light{color:#111}
.nwp-palette.is-bars .nwp-swatch:hover{flex-grow:1.7}
.nwp-sw-name{font-size:14.5px;font-weight:650;line-height:1.2}
.nwp-sw-hex{font-size:12.5px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.03em;opacity:.8}
.nwp .nwp-swatch.is-copied .nwp-sw-hex{opacity:1;font-weight:700}
.nwp-palette.is-chips{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,160px),1fr));gap:var(--nwp-ggap)}
/* Chips are small cards: the colour on top, its name and code underneath. */
.nwp .nwp-palette.is-chips .nwp-swatch{aspect-ratio:1/1.12;padding:12px 14px;border:1px solid var(--nwp-line);border-radius:var(--nwp-radius);background:linear-gradient(var(--nwp-sw),var(--nwp-sw)) top/100% 68% no-repeat,var(--nwp-surface);color:var(--nwp-ink)}
.nwp-palette.is-chips .nwp-swatch:hover{transform:translateY(-3px)}

/* ------------------------------------------------------------------ */
/* Moodboard: pieces placed freely, scaled with the board               */
/* ------------------------------------------------------------------ */
.nwp-board{position:relative}
.nwp-board-in{position:relative;width:100%;container-type:inline-size}
.nwp-board.has-paper .nwp-board-in{background:var(--nwp-paper);border-radius:var(--nwp-card-r)}
.nwp-board.is-framed .nwp-board-in{overflow:hidden}
.nwp-fig.is-card .nwp-board.is-framed .nwp-board-in{border-radius:var(--nwp-radius)}
.nwp-bi{position:absolute;transform:rotate(var(--r,0deg))}
.nwp-bi.is-media>*{display:block;width:100%;height:100%}
.nwp-bi :is(.nwp-media,.nwp-player){height:100%;border-radius:clamp(3px,.7cqw,12px)}
.nwp-bi .nwp-zoom{height:100%;border-radius:clamp(3px,.7cqw,12px)}
.nwp-board.has-shadow .nwp-bi.is-media:not(.is-frame)>*,.nwp-board.has-shadow .nwp-bi.is-frame,.nwp-board.has-shadow .nwp-bi.is-color .nwp-swatch,.nwp-board.has-shadow .nwp-bi:is(.is-sticky,.is-card){box-shadow:0 1px 2px rgba(0,0,0,.08),0 12px 30px -14px rgba(0,0,0,.4)}
.nwp-bi.is-round :is(.nwp-media,.nwp-player,.nwp-zoom),.nwp-board.has-shadow .nwp-bi.is-round>*{border-radius:50%}
.nwp-bi.is-frame{padding:.7cqw .7cqw 2.6cqw;background:#fff;border-radius:3px}
.nwp-bi.is-frame :is(.nwp-media,.nwp-player,.nwp-zoom){border-radius:1px}
.nwp-bi.is-tape::before{content:"";position:absolute;z-index:3;top:-1.1cqw;left:50%;width:min(40%,10cqw);height:2.2cqw;transform:translateX(-50%) rotate(-3deg);background:rgba(255,241,190,.84);box-shadow:0 1px 2px rgba(0,0,0,.12);pointer-events:none}
.nwp .nwp-bi.is-color .nwp-swatch{position:absolute;inset:0;width:100%;height:100%;padding:7% 9%;gap:.25cqw;border-radius:clamp(3px,.6cqw,10px);overflow:hidden}
.nwp .nwp-bi.is-chip .nwp-swatch{background:linear-gradient(var(--nwp-sw),var(--nwp-sw)) top/100% 70% no-repeat,#fff;color:#161616}
.nwp .nwp-bi.is-circle .nwp-swatch{border-radius:50%;align-items:center;justify-content:center;text-align:center}
.nwp .nwp-bi.is-plain .nwp-swatch :is(.nwp-sw-name,.nwp-sw-hex){opacity:0;transition:opacity .2s}
.nwp .nwp-bi.is-plain .nwp-swatch:is(:hover,:focus-visible,.is-copied) :is(.nwp-sw-name,.nwp-sw-hex){opacity:1}
.nwp-bi .nwp-sw-name{font-size:max(9px,1.05cqw)}
.nwp-bi .nwp-sw-hex{font-size:max(8px,.85cqw)}
/* On a board shrunk to a phone, colours keep their colour and lose their small print. */
@container (max-width:560px){.nwp-bi :is(.nwp-sw-name,.nwp-sw-hex){display:none}}
.nwp-bi.is-note{display:flex;flex-direction:column}
.nwp-note-in{--fs:1.5;width:100%;font-size:clamp(11px,1.25vw,19px);font-size:max(9px,calc(var(--fs) * 1cqw));line-height:1.38;color:var(--nwp-ink);overflow-wrap:anywhere}
.nwp-note-in p{margin:0 0 .55em}.nwp-note-in>:last-child{margin-bottom:0}
.nwp-note-in ul{margin:0 0 .55em;padding-left:1.1em}
.nwp-bi.is-size-s .nwp-note-in{--fs:1.1}
.nwp-bi.is-size-l .nwp-note-in{--fs:2.1}
.nwp-bi.is-size-xl .nwp-note-in{--fs:3.2}
.nwp-bi.is-sticky{padding:1.5cqw 1.6cqw;background:var(--nwp-note,#fff1a6);border-radius:2px}
.nwp-bi.is-sticky .nwp-note-in{color:var(--nwp-note-ink,#1c1b17)}
.nwp-bi.is-card{padding:1.4cqw 1.6cqw;background:var(--nwp-note,var(--nwp-surface));border:1px solid var(--nwp-line);border-radius:clamp(5px,1cqw,14px)}
.nwp-bi.is-card .nwp-note-in{color:var(--nwp-note-ink,var(--nwp-ink))}
.nwp-bi.is-text .nwp-note-in{color:var(--nwp-note,var(--nwp-ink-2))}
.nwp-bi.is-type .nwp-note-in{--fs:3.4;font-weight:700;line-height:.96;letter-spacing:-.045em;color:var(--nwp-note,var(--nwp-ink))}
.nwp-bi.is-type.is-size-s .nwp-note-in{--fs:2.2}
.nwp-bi.is-type.is-size-l .nwp-note-in{--fs:5.4}
.nwp-bi.is-type.is-size-xl .nwp-note-in{--fs:8.4}
.nwp-board-hint{display:none}
.nwp-js [data-nwp-reveal] .nwp-bi{opacity:0;translate:0 14px;transition:opacity .6s var(--nwp-ease),translate .8s var(--nwp-ease);transition-delay:calc(min(var(--i,0),16) * 40ms + .1s)}
.nwp-js [data-nwp-reveal].is-in .nwp-bi{opacity:1;translate:0 0}

/* ------------------------------------------------------------------ */
/* End of the page: more projects, as the homepage shows them           */
/* ------------------------------------------------------------------ */
.nwp-end{width:min(var(--nwp-wide),100% - 2 * var(--nwp-gutter));margin:clamp(64px,9vw,140px) auto 0}
body.nws-site .nwp .nwp-more-title,.nwp-more-title{margin:0 0 clamp(22px,2.6vw,32px);text-align:center;font-size:clamp(28px,3.2vw,44px);line-height:1.06;font-weight:680;letter-spacing:-.04em;color:var(--nwp-ink);text-wrap:balance}
.nwp-more-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.nwp-pcard{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:14px;min-width:0;padding:18px 14px 14px;border:1px solid var(--nwp-line);border-radius:20px;background:var(--nwp-surface);box-shadow:var(--nwp-shadow-sm);color:var(--nwp-ink)!important;text-decoration:none!important;transition:transform .25s ease,box-shadow .25s ease,border-color .25s ease}
.nwp-pcard:hover{transform:translateY(-3px);box-shadow:var(--nwp-shadow-md);border-color:var(--nwp-line-strong)}
.nwp-pcard-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:0 6px}
.nwp-pcard-title{display:flex;align-items:flex-start;gap:8px;min-width:0}
.nwp-pcard-title .nwp-i{flex:none;width:16px;height:16px;margin-top:2px;color:var(--nwp-faint)}
.nwp-pcard-title b{font-size:15.5px;font-weight:620;line-height:1.35;letter-spacing:-.01em;color:var(--nwp-ink)}
.nwp-pcard-year{flex:none;margin-top:1px;padding:3px 9px;border-radius:999px;background:var(--nwp-subtle);color:var(--nwp-muted);font-size:12px;font-weight:600;line-height:1.35;white-space:nowrap;font-variant-numeric:tabular-nums}
.nwp-pcard-media{display:block;overflow:hidden;border-radius:14px;aspect-ratio:75/56;background:var(--nwp-c,var(--nwp-placeholder))}
.nwp-pcard-img{display:block;width:100%!important;height:100%!important;object-fit:cover;transition:transform .5s ease}
.nwp-pcard:hover .nwp-pcard-img{transform:scale(1.03)}
.nwp-end-links{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:clamp(26px,3vw,40px)}
.nwp-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 22px;border-radius:12px;border:1px solid var(--nwp-line-strong);background:var(--nwp-surface);color:var(--nwp-ink)!important;font-size:15px;font-weight:600;letter-spacing:-.005em;text-decoration:none!important;white-space:nowrap;box-shadow:var(--nwp-shadow-xs);transition:transform .15s,background .15s,border-color .15s}
.nwp-btn:hover{background:var(--nwp-subtle);border-color:color-mix(in srgb,var(--nwp-line-strong) 70%,var(--nwp-ink))}
.nwp-btn.is-primary{background:var(--nwp-ink);border-color:var(--nwp-ink);color:var(--nwp-bg)!important;box-shadow:0 1px 2px rgba(0,0,0,.18),inset 0 1px 0 rgba(255,255,255,.1)}
.nwp-btn.is-primary:hover{background:color-mix(in srgb,var(--nwp-ink) 86%,var(--nwp-bg));border-color:transparent;transform:translateY(-1px)}
.nwp-btn .nwp-i{width:16px;height:16px}

/* ------------------------------------------------------------------ */
/* Image viewer                                                         */
/* ------------------------------------------------------------------ */
html.nwp-lb-open{overflow:hidden}
.nwp-lb{position:fixed;inset:0;z-index:100000;display:flex;background:rgba(10,10,10,.93);-webkit-backdrop-filter:blur(18px) saturate(1.2);backdrop-filter:blur(18px) saturate(1.2);color:#fff;opacity:0;transition:opacity .25s;font-family:var(--nws-font,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif)}
.nwp-lb.is-open{opacity:1}
.nwp-lb-stage{flex:1;display:flex;overflow:auto;overscroll-behavior:contain;padding:64px 16px 56px;touch-action:pan-x pan-y pinch-zoom}
.nwp-lb-img{display:block;margin:auto;max-width:100%;max-height:calc(100svh - 120px);width:auto;height:auto;object-fit:contain;cursor:zoom-in;user-select:none;-webkit-user-drag:none;transition:opacity .25s}
.nwp-lb.is-tall .nwp-lb-img{max-height:none;width:min(100%,var(--nwp-nw,1400px))}
.nwp-lb.is-zoomed .nwp-lb-img{max-width:none;max-height:none;width:var(--nwp-nw,auto);cursor:zoom-out}
.nwp-lb.is-loading .nwp-lb-img{opacity:.35}
.nwp-lb-bar{position:absolute;top:0;left:0;right:0;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px;pointer-events:none}
.nwp-lb-bar>*{pointer-events:auto}
.nwp-lb-count{padding:0 8px;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;opacity:.82}
.nwp-lb-tools{display:flex;gap:8px}
.nwp-lb .nwp-lb-btn{width:44px;height:44px;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.12);color:#fff;display:grid;place-items:center;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:background .2s}
.nwp-lb .nwp-lb-btn:hover{background:rgba(255,255,255,.24)}
.nwp-lb .nwp-lb-btn svg{width:20px;height:20px}
.nwp-lb .nwp-lb-prev,.nwp-lb .nwp-lb-next{position:absolute;top:50%;z-index:2;margin-top:-22px}
.nwp-lb .nwp-lb-prev{left:14px}.nwp-lb .nwp-lb-next{right:14px}
.nwp-lb[hidden],.nwp-lb [hidden],.nwp [hidden]{display:none!important}
.nwp-lb-cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:16px 20px 18px;text-align:center;font-size:13.5px;line-height:1.45;color:rgba(255,255,255,.82);background:linear-gradient(transparent,rgba(0,0,0,.55));pointer-events:none}
.nwp-lb-cap:empty{display:none}
@media (hover:none){.nwp-lb .nwp-lb-prev,.nwp-lb .nwp-lb-next{display:none}}

/* ------------------------------------------------------------------ */
/* Blocks in a narrow column of a row                                   */
/* ------------------------------------------------------------------ */
@container (max-width:640px){
  .nwp .nwp-text.is-h-xl .nwp-h{font-size:clamp(34px,12cqw,72px)}
  .nwp .nwp-text.is-h-l .nwp-h{font-size:clamp(28px,9cqw,56px)}
  .nwp-text.is-cols-2 .nwp-prose{columns:1}
  .nwp-text.is-size-xl .nwp-prose{font-size:clamp(20px,6cqw,32px)}
  .nwp .nwp-stat-v{font-size:clamp(28px,9cqw,52px)}
  .nwp-text.is-split{grid-template-columns:minmax(0,1fr)}
  .nwp-text.is-split .nwp-text-head{position:static}
  .nwp-text.is-split .nwp-text-head+.nwp-prose{padding-top:0!important}
  .is-timeline>.nwp-step.has-media{grid-template-columns:44px minmax(0,1fr)}
  .is-timeline>.nwp-step.has-media .nwp-step-media{grid-column:2;margin-top:16px}
  .nwp-evo.is-strip .nwp-evo-list{overflow-x:auto;scroll-snap-type:x mandatory;padding:2px 2px 12px;scrollbar-width:none}
  .nwp-evo.is-strip .nwp-evo-step{flex:0 0 78%;scroll-snap-align:start}
  .nwp-evo.is-strip .nwp-evo-step::after{display:none}
  .nwp-palette.is-bars{flex-direction:column;min-height:0}
  .nwp-palette.is-bars .nwp-swatch{min-height:72px;flex-direction:row;justify-content:space-between;align-items:flex-end}
  .nwp-palette.is-bars .nwp-swatch:hover{flex-grow:1}
  .nwp-refs,.nwp-grid.is-masonry{columns:2}
  .nwp-dump{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nwp-social{--nwp-phone:min(100%,300px)}
}
@container (max-width:420px){
  .nwp-cells{grid-template-columns:minmax(0,1fr)}
  .nwp-grid.is-rows .nwp-row{flex-direction:column}
  .nwp-grid.is-rows .nwp-row>.nwp-cell{flex:none;width:100%}
}

/* ------------------------------------------------------------------ */
/* Screens                                                              */
/* ------------------------------------------------------------------ */
@media (max-width:1024px){
  .nwp-b-row.is-n4>.nwp-cols{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nwp-more-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nwp-more-grid>.nwp-pcard:nth-child(3){display:none}
  .is-timeline>.nwp-step.has-media{grid-template-columns:44px minmax(0,1fr)}
  .is-timeline>.nwp-step.has-media .nwp-step-media{grid-column:2;margin-top:18px}
}
@media (max-width:860px){
  .nwp-text.is-split{grid-template-columns:minmax(0,1fr)}
  .nwp-text.is-split .nwp-text-head{position:static}
}
@media (max-width:760px){
  .nwp{--nwp-card-r:20px;--nwp-card-pad:8px;--nwp-radius:16px}
  .nwp-gap-none,.nwp-corners-square{--nwp-card-r:0px;--nwp-radius:0px}
  .nwp-b-row>.nwp-cols,.nwp-b-row.is-n4>.nwp-cols{grid-template-columns:minmax(0,1fr)}
  .nwp-head{padding-top:14px}
  .nwp-head-facts .nwp-facts,.nwp-facts-bar .nwp-facts{grid-auto-flow:row;grid-template-columns:repeat(2,minmax(0,1fr))}
  .nwp-head-facts .nwp-fact,.nwp-facts-bar .nwp-fact{padding:13px 16px 14px;border-left:0;border-top:1px solid var(--nwp-line)}
  .nwp-head-facts .nwp-fact:nth-child(-n+2),.nwp-facts-bar .nwp-fact:nth-child(-n+2){border-top:0}
  .nwp-head-facts .nwp-fact:nth-child(2n),.nwp-facts-bar .nwp-fact:nth-child(2n){border-left:1px solid var(--nwp-line)}
  .nwp-head-facts .nwp-fact:last-child:nth-child(odd),.nwp-facts-bar .nwp-fact:last-child:nth-child(odd){grid-column:1 / -1}
  .nwp-on-phone,.on-phone-stack .nwp-row{flex-direction:column}
  .on-phone-stack .nwp-row>.nwp-cell{flex:none;width:100%}
  .on-phone-stack .nwp-cells{grid-template-columns:minmax(0,1fr)}
  .on-phone-stack.is-masonry,.nwp-grid.is-masonry{columns:2}
  .on-phone-swipe .nwp-row,.on-phone-swipe .nwp-cells,.on-phone-swipe.is-masonry{display:flex;flex-direction:row;columns:auto;overflow-x:auto;scroll-snap-type:x mandatory;gap:10px;margin:0 calc(-1 * var(--nwp-gutter));padding:0 var(--nwp-gutter) 6px;scrollbar-width:none}
  .nwp-fig.is-card .on-phone-swipe :is(.nwp-row,.nwp-cells),.nwp-fig.is-card .on-phone-swipe.is-masonry{margin:0 calc(-1 * var(--nwp-card-pad));padding:0 var(--nwp-card-pad) 6px;scroll-padding-inline:var(--nwp-card-pad)}
  .nwp-w-full .on-phone-swipe .nwp-row,.nwp-w-full .on-phone-swipe .nwp-cells{margin:0;padding:0 0 6px}
  .on-phone-swipe .nwp-row::-webkit-scrollbar,.on-phone-swipe .nwp-cells::-webkit-scrollbar{display:none}
  .on-phone-swipe .nwp-cell{flex:0 0 82%;margin:0;scroll-snap-align:center}
  .on-phone-swipe.is-rows{gap:10px}
  .nwp-dump{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 10px}
  .nwp-refs{columns:2}
  .nwp-evo.is-strip .nwp-evo-list{overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--nwp-gutter));padding:4px var(--nwp-gutter) 12px;scrollbar-width:none}
  .nwp-fig.is-card .nwp-evo.is-strip .nwp-evo-list{margin:0 calc(-1 * var(--nwp-card-pad));padding:4px var(--nwp-card-pad) 10px}
  .nwp-evo.is-strip .nwp-evo-step{flex:0 0 74%;scroll-snap-align:center}
  .nwp-phones{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--nwp-gutter));padding:10px var(--nwp-gutter) 16px;scrollbar-width:none}
  .nwp-phones::-webkit-scrollbar{display:none}
  .nwp-phones:has(>.nwp-phone:only-child){justify-content:center}
  .nwp-phone{width:min(76vw,330px);scroll-snap-align:center}
  .nwp-palette.is-bars{flex-direction:column;min-height:0}
  .nwp-palette.is-bars .nwp-swatch{min-height:78px;flex-direction:row;justify-content:space-between;align-items:flex-end}
  .nwp-palette.is-bars .nwp-swatch:hover{flex-grow:1}
  .nwp-steps.is-timeline::before{left:19px}
  .is-timeline>.nwp-step,.is-timeline>.nwp-step.has-media{grid-template-columns:40px minmax(0,1fr)}
  .is-timeline .nwp-step-n{width:40px;height:40px;font-size:13px}
  .nwp-cmp-handle>span{width:40px;height:40px;margin:-20px 0 0 -20px}
  .nwp-cmp-label{top:10px;height:28px;padding:0 10px;font-size:12px}
  .nwp-cmp-label.is-before{left:10px}.nwp-cmp-label.is-after{right:10px}
  .nwp-head.is-full{height:min(78svh,760px)}
  .nwp-more-grid{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:min(82%,420px);gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;margin:0 calc(-1 * var(--nwp-gutter));padding:4px var(--nwp-gutter) 14px;scroll-padding-inline:var(--nwp-gutter);scrollbar-width:none}
  .nwp-more-grid::-webkit-scrollbar{display:none}
  .nwp-more-grid>.nwp-pcard:nth-child(3){display:flex}
  .nwp-pcard{scroll-snap-align:start;padding:14px 12px 12px;border-radius:18px}
  .nwp-end-links{flex-direction:column;align-items:stretch}
  /* Moodboards on phones */
  .nwp-board.on-phone-pan{overflow-x:auto;overscroll-behavior-x:contain;margin:0 calc(-1 * var(--nwp-gutter));padding:0 var(--nwp-gutter) 8px;scrollbar-width:none}
  .nwp-fig.is-card .nwp-board.on-phone-pan{margin:0 calc(-1 * var(--nwp-card-pad));padding:0 var(--nwp-card-pad) 6px}
  .nwp-board.on-phone-pan::-webkit-scrollbar{display:none}
  .nwp-board.on-phone-pan .nwp-board-in{width:700px;max-width:none}
  .nwp-board-hint{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:8px;font-size:12.5px;font-weight:550;color:var(--nwp-muted)}
  .nwp-board-hint .nwp-i{width:15px;height:15px}
  .nwp-board.on-phone-list .nwp-board-in{aspect-ratio:auto!important;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;align-items:start;container-type:normal}
  .nwp-board.on-phone-list.has-paper .nwp-board-in{padding:12px}
  .nwp-board.on-phone-list .nwp-bi{position:relative;left:auto!important;top:auto!important;width:auto!important;height:auto!important;min-height:0!important;transform:none;z-index:auto!important}
  .nwp-board.on-phone-list .nwp-bi:is(.is-media,.is-color){aspect-ratio:var(--ar)}
  .nwp-board.on-phone-list .nwp-bi.is-note{grid-column:1 / -1}
  .nwp-board.on-phone-list .nwp-bi:is(.is-sticky,.is-card){padding:14px 16px}
  .nwp-board.on-phone-list .nwp-bi.is-frame{padding:6px 6px 20px}
  .nwp-board.on-phone-list .nwp-bi.is-tape::before{top:-8px;width:60px;height:18px}
  .nwp-board.on-phone-list .nwp-note-in{font-size:16px}
  .nwp-board.on-phone-list .nwp-bi.is-type .nwp-note-in{font-size:30px}
  .nwp-board.on-phone-list .nwp-bi .nwp-sw-name{font-size:12.5px}
  .nwp-board.on-phone-list .nwp-bi .nwp-sw-hex{font-size:11px}
}
/* ------------------------------------------------------------------ */
/* Moving band (1.64): words gliding across the page, edge to edge      */
/* ------------------------------------------------------------------ */
.nwp-b-band{overflow-x:clip}
.nwp-band{--nwp-band-fs:clamp(40px,6.4vw,104px);--nwp-band-c1:var(--nwp-mark);--nwp-band-c2:var(--nwp-mark-2,var(--nwp-mark));position:relative;display:flex;overflow:hidden;padding:clamp(6px,1vw,14px) 0;color:var(--nwp-ink)}
.nwp-band.is-size-m{--nwp-band-fs:clamp(28px,4.2vw,64px)}
.nwp-band.is-size-xl{--nwp-band-fs:clamp(52px,9.4vw,156px)}
.nwp-band-track{display:flex;flex:none;width:max-content}
.nwp .nwp-band .nwp-band-seq{display:flex;flex:none;align-items:center;margin:0;padding:0;color:inherit;font-size:var(--nwp-band-fs);font-weight:720;line-height:1.1;letter-spacing:-.045em;white-space:nowrap}
.nwp-band-w{padding:0 .3em .04em}
/* Between the words: a star, a dot, a slash or a dash, in the page's colour. */
.nwp-band-sep{flex:none;width:.4em;height:.4em;background:linear-gradient(135deg,var(--nwp-band-c1),var(--nwp-band-c2))}
.nwp-band.is-sep-star .nwp-band-sep{-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 5.6 6.4 11.4 12 12-5.6.6-11.4 6.4-12 12-.6-5.6-6.4-11.4-12-12C5.6 11.4 11.4 5.6 12 0Z'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 0c.6 5.6 6.4 11.4 12 12-5.6.6-11.4 6.4-12 12-.6-5.6-6.4-11.4-12-12C5.6 11.4 11.4 5.6 12 0Z'/%3E%3C/svg%3E") center/contain no-repeat}
.nwp-band.is-sep-dot .nwp-band-sep{width:.2em;height:.2em;border-radius:50%}
.nwp-band.is-sep-slash .nwp-band-sep{width:.07em;height:.76em;border-radius:.04em;transform:skewX(-20deg)}
.nwp-band.is-sep-dash .nwp-band-sep{width:.62em;height:.075em;border-radius:.04em}
/* Mixed: every other word in the page's colour (and in its second typeface, below); outline: every other word drawn. */
.nwp-band.is-mix .nwp-band-w.is-alt{background:linear-gradient(100deg,var(--nwp-band-c1),var(--nwp-band-c2));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.nwp-band.is-outline .nwp-band-w.is-alt{color:transparent;-webkit-text-fill-color:transparent;-webkit-text-stroke:max(1.5px,.022em) currentColor}
/* On a band of its own: dark, or the page's colour. */
.nwp-band.is-fill-dark{--nwp-band-c1:color-mix(in srgb,var(--nwp-mark) 70%,#fff);--nwp-band-c2:color-mix(in srgb,var(--nwp-mark-2,var(--nwp-mark)) 70%,#fff);padding:clamp(14px,2vw,30px) 0;background:#111113;color:#f3f3f0}
.nwp.is-dark .nwp-band.is-fill-dark{background:#050506;box-shadow:inset 0 1px rgba(255,255,255,.08),inset 0 -1px rgba(255,255,255,.08)}
.nwp-band.is-fill-colour{--nwp-band-c1:#fff;--nwp-band-c2:rgba(255,255,255,.72);padding:clamp(14px,2vw,30px) 0;background:linear-gradient(100deg,var(--nwp-mark),var(--nwp-mark-2,var(--nwp-mark)));color:#fff}
/* Tilted: a little wider than the page, so its ends stay out of sight. */
.nwp-band.is-tilt{width:calc(100% + 8vw);margin:clamp(14px,2.2vw,40px) 0 clamp(14px,2.2vw,40px) -4vw;rotate:-2deg}
.nwp-band.is-tilt.is-to-right{rotate:2deg}
/* Gliding, once the page's script has laid the words out. */
.nwp-band.is-moving .nwp-band-track{animation:nwp-band var(--nwp-band-dur,30s) linear infinite}
.nwp-band.is-moving.is-to-right .nwp-band-track{animation-direction:reverse}
.nwp-band:is(.is-paused,.is-off) .nwp-band-track{animation-play-state:paused}
@media (hover:hover){.nwp-band.is-moving:hover .nwp-band-track{animation-play-state:paused}}
@keyframes nwp-band{to{transform:translateX(var(--nwp-band-shift,-50%))}}
.nwp-band-pause{position:absolute;z-index:2;top:50%;right:clamp(10px,1.6vw,24px);display:none;place-items:center;width:34px;height:34px;margin:-17px 0 0;padding:0;border:1px solid var(--nwp-line);border-radius:50%;background:color-mix(in srgb,var(--nwp-surface) 86%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:var(--nwp-ink);box-shadow:var(--nwp-shadow-sm);cursor:pointer;opacity:0;transition:opacity .2s}
.nwp-band.is-moving .nwp-band-pause{display:grid}
.nwp-band.is-tilt .nwp-band-pause{right:calc(4vw + clamp(10px,1.6vw,24px))}
.nwp-band:hover .nwp-band-pause,.nwp-band-pause:focus-visible,.nwp-band.is-paused .nwp-band-pause{opacity:1}
@media (hover:none){.nwp-band-pause{opacity:.85}}
.nwp-band-pause .nwp-i{width:14px;height:14px}
.nwp-band-i{display:grid}
.nwp-band-i.is-play,.nwp-band.is-paused .nwp-band-i.is-pause{display:none}
.nwp-band.is-paused .nwp-band-i.is-play{display:grid}
/* ------------------------------------------------------------------ */
/* Vivid (1.64, the default style): the project's colour lights the page */
/* ------------------------------------------------------------------ */
/* A second colour next to the project's, for gradients: its hue turned a little, where browsers can. */
.nwp-style-vivid{isolation:isolate;--nwp-dot:var(--nwp-accent-user,var(--nwp-mark));--nwp-mark-2:color-mix(in srgb,var(--nwp-mark) 55%,#fff)}
@supports (color:oklch(from red l c h)){.nwp-style-vivid{--nwp-mark-2:oklch(from var(--nwp-mark) calc(l + .05) c calc(h + 42))}}
/* The top: a larger light in the project's colour, drifting slowly. */
.nwp-style-vivid .nwp-head:not(.is-full)::before{top:-240px;width:min(1640px,130vw);height:calc(100% + 300px);background:radial-gradient(30% 34% at 50% 34%,color-mix(in srgb,var(--nwp-mark) 44%,transparent),transparent 72%),radial-gradient(24% 30% at 73% 46%,color-mix(in srgb,var(--nwp-mark-2) 34%,transparent),transparent 72%),radial-gradient(22% 28% at 27% 55%,rgba(225,154,27,.2),transparent 72%);animation:nwp-aura 16s ease-in-out infinite alternate}
.nwp-style-vivid.is-dark .nwp-head:not(.is-full)::before{background:radial-gradient(30% 34% at 50% 34%,color-mix(in srgb,var(--nwp-mark) 50%,transparent),transparent 72%),radial-gradient(24% 30% at 73% 46%,color-mix(in srgb,var(--nwp-mark-2) 40%,transparent),transparent 72%),radial-gradient(22% 28% at 27% 55%,rgba(225,154,27,.18),transparent 72%)}
@keyframes nwp-aura{from{transform:translateX(-50%) scale(1)}to{transform:translateX(-50%) scale(1.08) rotate(1.5deg)}}
/* The title in two parts: "Client — What was made", the second on its own line in the project's colour. */
.nwp-style-vivid .nwp-head:not(.is-full) .nwp-title,body.nws-site .nwp.nwp-style-vivid .nwp-head:not(.is-full) .nwp-title{font-size:clamp(40px,6.2vw,104px)}
.nwp-style-vivid .nwp-title:has(.nwp-title-b){max-width:22ch}
.nwp-style-vivid .nwp-title-a{display:block}
.nwp-style-vivid .nwp-title-sep{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.nwp-style-vivid .nwp-title-b{display:block;margin-top:.04em;padding-bottom:.1em;font-weight:560;background:linear-gradient(100deg,var(--nwp-mark) 0%,var(--nwp-mark-2) 50%,var(--nwp-mark) 100%) 0 0/200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;animation:nwp-sheen 9s ease-in-out infinite alternate}
@keyframes nwp-sheen{to{background-position:100% 0}}
.nwp-style-vivid .nwp-head.is-full .nwp-title-b{background:none;color:#fff;-webkit-text-fill-color:#fff;opacity:.84}
/* The details: frosted glass over the light, with larger values. */
.nwp-style-vivid :is(.nwp-head-facts,.nwp-facts-bar) .nwp-facts{background:color-mix(in srgb,var(--nwp-surface) 62%,transparent);-webkit-backdrop-filter:blur(18px) saturate(1.5);backdrop-filter:blur(18px) saturate(1.5);border-color:color-mix(in srgb,var(--nwp-line) 60%,transparent);box-shadow:0 1px 2px rgba(22,22,20,.04),0 20px 50px -28px color-mix(in srgb,var(--nwp-mark) 50%,transparent)}
.nwp-style-vivid :is(.nwp-head-facts,.nwp-facts-bar) .nwp-fact dd{font-size:clamp(16px,1.35vw,20px);font-weight:650;letter-spacing:-.015em}
/* The light around the first blocks, stronger. */
.nwp-style-vivid .nwp-flow::before{background:radial-gradient(28% 32% at 22% 30%,color-mix(in srgb,var(--nwp-mark) 17%,transparent),transparent 72%),radial-gradient(26% 30% at 78% 56%,color-mix(in srgb,var(--nwp-mark-2) 14%,transparent),transparent 72%)}
.nwp-style-vivid.is-dark .nwp-flow::before{background:radial-gradient(28% 32% at 22% 30%,color-mix(in srgb,var(--nwp-mark) 22%,transparent),transparent 72%),radial-gradient(26% 30% at 78% 56%,color-mix(in srgb,var(--nwp-mark-2) 17%,transparent),transparent 72%)}
/* Pictures and videos glow with their own colour, warmed by the project's. */
.nwp-style-vivid .nwp-fig.is-card{--nwp-halo:color-mix(in srgb,var(--nwp-glow,var(--nwp-mark)) 60%,var(--nwp-mark));box-shadow:0 1px 2px rgba(22,22,20,.05),0 12px 28px -18px color-mix(in srgb,var(--nwp-halo) 50%,transparent),0 34px 80px -36px color-mix(in srgb,var(--nwp-halo) 78%,transparent)}
.nwp-style-vivid.is-dark .nwp-fig.is-card{box-shadow:0 1px 2px rgba(0,0,0,.4),0 34px 90px -34px color-mix(in srgb,var(--nwp-halo) 70%,transparent)}
.nwp-style-vivid :is(.nwp-b-image,.nwp-b-video) .nwp-fig:not(.is-card)>:is(.nwp-media,.nwp-zoom,.nwp-player){box-shadow:0 34px 80px -36px color-mix(in srgb,color-mix(in srgb,var(--nwp-glow,var(--nwp-mark)) 60%,var(--nwp-mark)) 78%,transparent)}
/* Videos play on dark cards, like screens, with the project's light behind them (on light pages). */
.nwp-style-vivid:not(.is-dark) .nwp-fig.is-card:has(video){--nwp-surface:#141416;--nwp-subtle:#1d1d20;--nwp-subtle-2:#2a2a2e;--nwp-line:rgba(255,255,255,.1);--nwp-ink:#f3f3f0;--nwp-ink-2:#d6d6d0;--nwp-muted:#a2a29b;--nwp-accent:#f3f3f0;--nwp-accent-ink:#111;position:relative;isolation:isolate;overflow:hidden;background:#141416;border-color:#141416;color:#f3f3f0;box-shadow:0 1px 2px rgba(0,0,0,.18),0 16px 34px -20px color-mix(in srgb,var(--nwp-halo) 60%,transparent),0 44px 100px -40px color-mix(in srgb,var(--nwp-halo) 90%,transparent)}
.nwp-style-vivid:not(.is-dark) .nwp-fig.is-card:has(video)::before{content:"";position:absolute;z-index:-1;inset:-30% -20% auto auto;width:80%;height:90%;pointer-events:none;background:radial-gradient(closest-side,color-mix(in srgb,var(--nwp-mark) 42%,transparent),transparent)}
/* Pictures open up a little under the pointer, and settle as they come into view. */
.nwp-style-vivid .nwp-zoom .nwp-media{overflow:hidden}
.nwp-style-vivid .nwp-zoom .nwp-img{transition:scale 1.1s var(--nwp-ease),opacity .7s ease}
@media (hover:hover){.nwp-style-vivid .nwp-zoom:hover .nwp-img{scale:1.035}}
.nwp-js .nwp-style-vivid [data-nwp-reveal] .nwp-fig{transition:scale 1.2s var(--nwp-ease)}
.nwp-js .nwp-style-vivid [data-nwp-reveal]:not(.is-in) .nwp-fig{scale:.965}
/* Boxes: frosted, with a touch of the project's colour in the corner. */
.nwp-style-vivid :is(.nwp-col,.nwp-part).is-boxed:not(.is-tint),.nwp-style-vivid .nwp-b.is-boxed:not(.is-tint):not(.nwp-w-full)>.nwp-b-in{background:radial-gradient(90% 70% at 0% 0%,color-mix(in srgb,var(--nwp-mark) 10%,transparent),transparent 62%),color-mix(in srgb,var(--nwp-surface) 80%,transparent);-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border-color:color-mix(in srgb,var(--nwp-line) 70%,transparent)}
.nwp-style-vivid :is(.nwp-col,.nwp-part).has-bg.is-light{background:radial-gradient(90% 70% at 0% 0%,color-mix(in srgb,var(--nwp-mark) 9%,transparent),transparent 62%),var(--nwp-block-bg)}
/* Quotes open with the project's colour. */
.nwp-style-vivid .nwp-quote-mark{border:0;background:linear-gradient(135deg,var(--nwp-mark),var(--nwp-mark-2));color:#fff;box-shadow:0 12px 26px -12px color-mix(in srgb,var(--nwp-mark) 80%,transparent)}
/* A heading on its own is a section title: larger, with a stroke of colour under it. */
.nwp-style-vivid .nwp-text.is-title.is-h-m .nwp-h{font-size:clamp(40px,5.4vw,86px);line-height:.98;letter-spacing:-.052em}
.nwp-style-vivid .nwp-text.is-title .nwp-text-head::after{content:"";display:block;width:84px;height:5px;margin-top:clamp(16px,1.8vw,24px);border-radius:5px;background:linear-gradient(90deg,var(--nwp-mark),var(--nwp-mark-2))}
.nwp-style-vivid .nwp-text.is-title.is-center .nwp-text-head::after{margin-left:auto;margin-right:auto}
/* The final version of an evolution, and the end of the page, in the project's colour. */
.nwp-style-vivid .nwp-evo-step.is-final .nwp-evo-tag{border-color:transparent;background:linear-gradient(100deg,var(--nwp-mark),var(--nwp-mark-2));color:#fff}
.nwp-style-vivid .nwp-more-title::after{content:"";display:block;width:84px;height:5px;margin:clamp(14px,1.6vw,20px) auto 0;border-radius:5px;background:linear-gradient(90deg,var(--nwp-mark),var(--nwp-mark-2))}
/* The title's second part comes in just after the first. */
.nwp-js .nwp-style-vivid .nwp-head:not(.is-full) .nwp-title-b{animation:nwp-rise-b 1.1s var(--nwp-ease) .2s both,nwp-sheen 9s ease-in-out 1.4s infinite alternate}
@keyframes nwp-rise-b{from{opacity:0;translate:0 .32em}to{opacity:1;translate:none}}

/* ------------------------------------------------------------------ */
/* The vivid style's second typeface (1.64): a serif italic, by default */
/* ------------------------------------------------------------------ */
/* Instrument Serif or Fraunces (SIL Open Font License, see fonts/): the page's head declares the one it uses, and
   only that one is fetched. */
/* --nwp-serif-grow: how much larger the typeface is set than the page's own, so both read at one weight. Text set
   whole in it grows through font-size-adjust (a height for its lower-case letters, --nwp-serif-x being the typeface's
   own), which keeps each place's own sizes, and its line height grows with it. */
.nwp.has-serif{--nwp-serif:"NW Instrument Serif",ui-serif,Georgia,"Times New Roman",serif;--nwp-serif-x:.51;--nwp-serif-grow:1.14;--nwp-serif-ls:-.005em}
/* Fraunces at its softest, with its livelier italic; its letters follow the size they are set at (optical size). */
.nwp.has-serif.nwp-type-soft{--nwp-serif:"NW Fraunces",ui-serif,Georgia,"Times New Roman",serif;--nwp-serif-x:.47;--nwp-serif-grow:1.04;--nwp-serif-ls:-.028em;font-variation-settings:"SOFT" 100,"WONK" 1}
/* The title's second part. The side room keeps an italic's overhang inside its colour. */
.nwp.has-serif .nwp-title-b{margin:.02em -.12em 0;padding:0 .12em .14em;font-family:var(--nwp-serif)!important;font-style:italic;font-weight:400;font-size:calc(var(--nwp-serif-grow) * 1em);line-height:1;letter-spacing:var(--nwp-serif-ls)}
/* Quotes, set whole in it, and opened by its quotation mark in the project's colour. */
.nwp.has-serif .nwp-quote-text,.nwp.has-serif .nwp-quote-text :is(p,span,em,i,a,strong,b){font-family:var(--nwp-serif)!important;font-style:italic;letter-spacing:var(--nwp-serif-ls)}
.nwp.has-serif .nwp-quote-text{--nwp-serif-g:calc(var(--nwp-serif-grow) * 1.1);font-weight:400;font-size-adjust:calc(var(--nwp-serif-x) * var(--nwp-serif-g));line-height:calc(1.12 * var(--nwp-serif-g))}
.nwp.has-serif .nwp-quote-mark{display:block;width:auto;height:.4em;margin:0 0 clamp(8px,1vw,14px);padding:0 .16em;border:0;border-radius:0;background:linear-gradient(135deg,var(--nwp-mark),var(--nwp-mark-2));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;box-shadow:none;font-family:var(--nwp-serif)!important;font-style:italic;font-weight:400;font-size:clamp(84px,7.4vw,124px);line-height:.8}
/* Section titles, and ==marked== words in any heading. */
.nwp.has-serif .nwp-text.is-title .nwp-h{--nwp-serif-g:calc(var(--nwp-serif-grow) * 1.06);font-family:var(--nwp-serif)!important;font-style:italic;font-weight:400;font-size-adjust:calc(var(--nwp-serif-x) * var(--nwp-serif-g));line-height:calc(1.02 * var(--nwp-serif-g));letter-spacing:var(--nwp-serif-ls)}
.nwp.has-serif .nwp-text.is-hc-gradient .nwp-h{margin-right:-.12em;padding-right:.12em}
.nwp.has-serif .nwp-h .nwp-h-mark{font-family:var(--nwp-serif)!important;font-style:italic;font-weight:400;font-size-adjust:calc(var(--nwp-serif-x) * var(--nwp-serif-grow));letter-spacing:var(--nwp-serif-ls);text-decoration:none}
/* A large first letter. */
.nwp.has-serif .nwp-text.has-dropcap .nwp-prose>p:first-child::first-letter{margin:.02em .1em 0 -.04em;font-family:var(--nwp-serif);font-style:italic;font-weight:400;font-size:4.4em;line-height:.76}
/* "More projects": its last word. */
.nwp.has-serif .nwp-more-mark{display:inline-block;margin:0 -.12em -.14em;padding:0 .12em .14em;background:linear-gradient(100deg,var(--nwp-mark),var(--nwp-mark-2));-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent;font-family:var(--nwp-serif)!important;font-style:italic;font-weight:400;font-size:calc(var(--nwp-serif-grow) * 1em);line-height:1;letter-spacing:var(--nwp-serif-ls)}
/* A moving band's other words, when mixed. */
.nwp.has-serif .nwp-band.is-mix .nwp-band-w.is-alt{padding:0 .36em .1em;font-family:var(--nwp-serif)!important;font-style:italic;font-weight:400;font-size-adjust:calc(var(--nwp-serif-x) * var(--nwp-serif-grow));letter-spacing:var(--nwp-serif-ls)}
@media (prefers-reduced-motion:reduce){
  .nwp *,.nwp *::before,.nwp *::after{animation:none!important;transition:none!important}
  .nwp-js .nwp-b[data-nwp-reveal],.nwp-js .nwp-b-row[data-nwp-reveal]>.nwp-cols>.nwp-col{opacity:1;transform:none}
  .nwp-js [data-nwp-reveal] .nwp-bi{opacity:1;translate:none}
  .nwp-js .nwp-img{opacity:1}
  .nwp-dump-item:hover{transform:translate(var(--nwp-dx),var(--nwp-dy)) rotate(var(--nwp-rot))}
  .nwp-pcard:hover,.nwp-btn.is-primary:hover,.nwp-pcard:hover .nwp-pcard-img{transform:none}
}
@media print{
  .nwp-progress,.nwp .nwp-bigplay,.nwp-ctl,.nwp .nwp-sound,.nwp .nwp-cmp-play,.nwp-end-links{display:none!important}
  .nwp-js .nwp-b[data-nwp-reveal],.nwp-js .nwp-img,.nwp-js [data-nwp-reveal] .nwp-bi,.nwp-js .nwp-b-row[data-nwp-reveal]>.nwp-cols>.nwp-col{opacity:1!important;transform:none!important;translate:none!important}
  .nwp-head::before,.nwp-head::after{display:none}
}
/* A password-protected project: WordPress's own password form, in the page's type. */
.nwp-locked .nwp-lede form{display:grid;gap:12px;max-width:420px;margin:0 auto;text-align:left}
.nwp-locked .nwp-lede input[type=password]{height:46px;padding:0 14px;border:1px solid var(--nwp-line);border-radius:12px;background:var(--nwp-surface);font:inherit;color:var(--nwp-ink)}
.nwp-locked .nwp-lede input[type=submit]{height:46px;padding:0 20px;border:0;border-radius:12px;background:var(--nwp-ink);color:var(--nwp-bg);font:inherit;font-weight:650;cursor:pointer}

/* A vertical GIF with six of its own frames beside it (1.64.3): the block keeps the shape of a wide picture,
   the GIF takes the left and the frames fill the rest, so nothing is left empty. */
.nwp-gifstrip{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:clamp(6px,.8vw,12px)}
.nwp-gifstrip>*{min-width:0;min-height:0;overflow:hidden;border-radius:var(--nwp-radius)}
.nwp-gifstrip-main{grid-row:1 / 3}
.nwp-gifstrip-main .nwp-zoom,.nwp-gifstrip-main .nwp-media{height:100%}
.nwp-gifstrip-main .nwp-media{aspect-ratio:auto!important}
.nwp .nwp-gifstrip .nwp-media>img,.nwp .nwp-gifstrip .nwp-img{width:100%;height:100%;object-fit:cover}
.nwp-gifstrip-frame{display:block;background:var(--nwp-placeholder)}
@media (max-width:760px){
  .nwp-gifstrip{grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;aspect-ratio:auto!important}
  .nwp-gifstrip-main{grid-column:1 / -1;grid-row:auto;aspect-ratio:var(--nwp-r)}
  .nwp-gifstrip-frame{aspect-ratio:var(--nwp-r)}
}
/* 1.64.8: one to eight frames beside a vertical GIF, in pairs; with an odd number the last one is as
   big as the GIF, so the block is always a full rectangle. Phones: the GIF, then two per row. */
.nwp-gifstrip-main{grid-column:1}
.nwp-gifstrip-frame.is-big{grid-column:-2 / -1;grid-row:1 / 3}
@media (max-width:760px){
  .nwp-gifstrip{grid-template-columns:repeat(var(--nwp-mc,2),minmax(0,1fr))!important}
  .nwp-gifstrip-main{grid-column:1 / -1}
  .nwp-gifstrip-frame.is-big{grid-column:1 / -1;grid-row:auto}
}

/* 1.65.1: text aligned to the right */
.nwp-text.is-right{text-align:right;justify-items:end}
.nwp-text.is-right .nwp-prose{max-width:62ch;justify-self:end}
.nwp-text.is-right .nwp-prose ul,.nwp-text.is-right .nwp-prose ol{display:inline-block;text-align:left}
.nwp-text.is-right .nwp-stats{text-align:right;display:flex;flex-wrap:wrap;justify-content:flex-end}
.nwp-text.is-right .nwp-stat{flex:1 1 150px}
.nwp-text.is-right.is-stats .nwp-prose{justify-self:stretch;max-width:none}
.nwp-text.is-right .nwp-text-cta{text-align:right}
.nwp-style-vivid .nwp-text.is-title.is-right .nwp-text-head::after{margin-left:auto;margin-right:0}

/* 1.65.2: paragraphs keep a good shape (no word left alone on the last line); headings balance their lines. */
.nwp p,.nwp li,.nwp figcaption,.nwp dd,.nwp blockquote{text-wrap:pretty}
.nwp h1,.nwp h2,.nwp h3,.nwp h4,.nwp h5,.nwp h6{text-wrap:balance}

/* 1.65.2: the same good shape for captions, big-number labels, notes and card texts. */
.nwp .nwp-cap,.nwp .nwp-stat-l,.nwp .nwp-lede,.nwp .nwp-label,.nwp [class*=note] ,.nwp .nwp-step-copy,.nwp .nwp-quote-text{text-wrap:pretty}

/* 1.65.3: blocks side by side always end at the same height. A palette alone in its column grows to the
   row's height; boxed text alone in a column is as tall as the row (its words still sit at the top, middle or
   bottom); and in a column of boxes without a picture the boxes share the extra height. */
.nwp-cols>.nwp-col.nwp-b-palette:not(.is-stack)>.nwp-fig{flex:1 1 auto;display:flex;flex-direction:column}
.nwp-cols>.nwp-col.nwp-b-palette:not(.is-stack)>.nwp-fig>.nwp-palette.is-bars{flex:1 1 auto}
.nwp-cols>.nwp-col.is-boxed,.nwp-cols>.nwp-col.is-boxed.is-middle,.nwp-cols>.nwp-col.is-boxed.is-bottom{align-self:stretch}
.nwp-cols>.nwp-col.is-stack:not(:has(>.nwp-part.is-fill))>.nwp-part.is-boxed{flex:1 1 auto}
.nwp-cols>.nwp-col.is-stack.is-middle>.nwp-part.is-boxed,.nwp-cols>.nwp-col.is-stack.is-top>.nwp-part.is-boxed{justify-content:center}

/* 1.65.4: social posts, stories and reels as big as the block allows: the phones share the block's width
   (one to three a row), between 280 and 440 px wide, instead of a fixed small size. */
.nwp-social{container-type:inline-size}
.nwp-social .nwp-phones{--nwp-phone:clamp(280px,calc((100cqw - (var(--nwp-np,1) - 1) * clamp(18px,2.6vw,40px)) / var(--nwp-np,1)),440px)}
.nwp-social .nwp-phone.is-story,.nwp-social .nwp-phone.is-reel{width:min(var(--nwp-phone),400px)}
@media (max-width:760px){.nwp-social .nwp-phone{width:min(84vw,400px)}}

/* 1.65.5: phones fill their column: as wide as the column (shared when there are several), limited only so a
   whole story, reel or post still fits the height of the screen. */
@media (min-width:761px){
  .nwp-social .nwp-phones{--nwp-phone:clamp(280px,calc((100cqw - (var(--nwp-np,1) - 1) * clamp(18px,2.6vw,40px)) / var(--nwp-np,1)),680px)}
  .nwp-social .nwp-phone.is-story,.nwp-social .nwp-phone.is-reel{width:min(var(--nwp-phone),calc((92vh - 50px) * .5625 + 16px))}
  .nwp-social .nwp-phone.is-post{width:min(var(--nwp-phone),calc((92vh - 140px) * .8))}
}

/* 1.65.6: the app around a social post scales with the phone: icons, avatar, names, captions, bars and
   buttons keep their proportions at any size (never smaller than the original design). */
.nwp .nwp-social .nwp-phone{container-type:inline-size}
.nwp .nwp-social .nwp-phone>*{--u:max(1px,calc(100cqw / 330))}
.nwp .nwp-social .nwp-app{font-size:calc(13 * var(--u));border-radius:calc(20 * var(--u))}
.nwp .nwp-social .nwp-phone.is-story .nwp-app,.nwp .nwp-social .nwp-phone.is-reel .nwp-app{border-radius:calc(32 * var(--u));box-shadow:0 0 0 calc(7 * var(--u)) #0b0b0b,0 0 0 calc(8 * var(--u)) rgba(255,255,255,.08),0 34px 70px -30px rgba(0,0,0,.65)}
.nwp .nwp-social .nwp-app-head{gap:calc(9 * var(--u));padding:calc(11 * var(--u)) calc(12 * var(--u))}
.nwp .nwp-social .nwp-app-avatar{width:calc(30 * var(--u));height:calc(30 * var(--u));box-shadow:0 0 0 calc(2 * var(--u)) var(--app-bg),0 0 0 calc(3.5 * var(--u)) var(--nwp-accent-user,#d0d0cc)}
.nwp .nwp-social .nwp-app-avatar.is-letter,.nwp .nwp-social .nwp-app-handle{font-size:calc(13 * var(--u))}
.nwp .nwp-social .nwp-app .nwp-i{width:calc(22 * var(--u));height:calc(22 * var(--u))}
.nwp .nwp-social .nwp-app .nwp-bigplay{--s:calc(52 * var(--u))}
.nwp .nwp-social .nwp-app-meta{font-size:calc(12.5 * var(--u));gap:calc(8 * var(--u))}
.nwp .nwp-social .nwp-app-meta a .nwp-i{width:calc(13 * var(--u));height:calc(13 * var(--u))}
.nwp .nwp-social .nwp-story-top{padding:calc(9 * var(--u)) calc(9 * var(--u)) calc(18 * var(--u))}
.nwp .nwp-social .nwp-story-bars{gap:calc(3 * var(--u))}
.nwp .nwp-social .nwp-story-bars span{height:calc(2.5 * var(--u))}
.nwp .nwp-social .nwp-story-top .nwp-app-head{padding:calc(9 * var(--u)) calc(3 * var(--u)) 0}
.nwp .nwp-social .nwp-story-top .nwp-app-avatar{box-shadow:0 0 0 calc(1.5 * var(--u)) rgba(255,255,255,.9)}
.nwp .nwp-social .nwp-story-tap{bottom:calc(70 * var(--u))}
.nwp .nwp-social .nwp-story-foot{gap:calc(12 * var(--u));padding:calc(12 * var(--u)) calc(12 * var(--u)) calc(14 * var(--u))}
.nwp .nwp-social .nwp-story-reply{height:calc(36 * var(--u));padding:0 calc(14 * var(--u));font-size:calc(12.5 * var(--u))}
.nwp .nwp-social .nwp-story-foot .nwp-i{width:calc(23 * var(--u));height:calc(23 * var(--u))}
.nwp .nwp-social .nwp-reel-side{right:calc(8 * var(--u));bottom:calc(86 * var(--u));gap:calc(16 * var(--u))}
.nwp .nwp-social .nwp-reel-side span{font-size:calc(11.5 * var(--u));gap:calc(3 * var(--u))}
.nwp .nwp-social .nwp-reel-side .nwp-i{width:calc(27 * var(--u));height:calc(27 * var(--u))}
.nwp .nwp-social .nwp-reel-foot{padding:calc(40 * var(--u)) calc(58 * var(--u)) calc(16 * var(--u)) calc(12 * var(--u))}
.nwp .nwp-social .nwp-reel-cap{margin:calc(7 * var(--u)) 0 0;font-size:calc(12.5 * var(--u))}
.nwp .nwp-social .nwp-phone.is-reel .nwp-sound{top:calc(14 * var(--u));right:calc(14 * var(--u));width:calc(38 * var(--u));height:calc(38 * var(--u))}
.nwp .nwp-social .nwp-app .nwp-sound svg{width:calc(18 * var(--u));height:calc(18 * var(--u))}
.nwp .nwp-social .nwp-post-nav{width:calc(28 * var(--u));height:calc(28 * var(--u));margin-top:calc(-14 * var(--u))}
.nwp .nwp-social .nwp-post-nav .nwp-i{width:calc(15 * var(--u));height:calc(15 * var(--u))}
.nwp .nwp-social .nwp-post-nav.is-prev{left:calc(8 * var(--u))}
.nwp .nwp-social .nwp-post-nav.is-next{right:calc(8 * var(--u))}
.nwp .nwp-social .nwp-post-bar{padding:calc(10 * var(--u)) calc(12 * var(--u)) calc(4 * var(--u))}
.nwp .nwp-social .nwp-post-bar:last-child{padding-bottom:calc(12 * var(--u))}
.nwp .nwp-social .nwp-post-actions{gap:calc(15 * var(--u))}
.nwp .nwp-social .nwp-post-actions .nwp-i,.nwp .nwp-social .nwp-post-save .nwp-i{width:calc(23 * var(--u));height:calc(23 * var(--u))}
.nwp .nwp-social .nwp-post-dots{gap:calc(4 * var(--u))}
.nwp .nwp-social .nwp-post-dots i{width:calc(6 * var(--u));height:calc(6 * var(--u))}
.nwp .nwp-social .nwp-post-likes{margin:calc(4 * var(--u)) calc(12 * var(--u)) 0;font-size:calc(13 * var(--u))}
.nwp .nwp-social .nwp-post-cap{margin:calc(4 * var(--u)) calc(12 * var(--u)) calc(14 * var(--u));font-size:calc(13 * var(--u))}

/* 1.65.8: full screen for silent loops too, and a proper full-screen view (whole video, black around it). */
.nwp .nwp-fsbtn{position:absolute;right:58px;bottom:12px;z-index:4;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:rgba(20,20,20,.5);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);color:#fff;display:grid;place-items:center;cursor:pointer;opacity:0;transition:opacity .2s,background .2s}
.nwp .nwp-fsbtn svg{width:17px;height:17px}
.nwp-player:hover .nwp-fsbtn,.nwp-player:focus-within .nwp-fsbtn,.nwp-player.is-fs .nwp-fsbtn{opacity:1}
.nwp .nwp-fsbtn:hover{background:rgba(20,20,20,.72)}
@media (hover:none){.nwp .nwp-fsbtn{opacity:.92}}
.nwp-player:not(:has(>.nwp-sound)) .nwp-fsbtn{right:12px}
.nwp-head.is-full .nwp-player .nwp-fsbtn{bottom:auto;top:16px;right:62px}
.nwp .nwp-phone.is-reel .nwp-fsbtn{top:14px;bottom:auto;right:60px;opacity:.95}
.nwp-player:fullscreen{width:100vw!important;height:100vh!important;max-width:none!important;aspect-ratio:auto!important;border-radius:0!important;background:#000!important;display:flex;align-items:center;justify-content:center}
.nwp-player:-webkit-full-screen{width:100vw!important;height:100vh!important;max-width:none!important;aspect-ratio:auto!important;border-radius:0!important;background:#000!important}
.nwp-player:fullscreen video,.nwp-player:-webkit-full-screen video{position:static!important;width:100%!important;height:100%!important;object-fit:contain!important}
.nwp-player:fullscreen .nwp-sound{bottom:18px;right:18px;opacity:1}
.nwp-player:fullscreen .nwp-fsbtn{bottom:18px;right:64px;top:auto}

/* 1.65.2: comfortable reading. Left-aligned prose keeps a readable line length on wide screens, and on
   phones text set to the right reads from the left (ragged-left paragraphs are hard to follow there). */
.nwp-text:not(.is-center):not(.is-right):not(.is-stats):not(.is-cols-2):not(.is-split) .nwp-prose{max-width:72ch}
@media (max-width:640px){
  .nwp-text.is-right{text-align:left;justify-items:start}
  .nwp-text.is-right .nwp-prose{justify-self:start}
  .nwp-text.is-right .nwp-stats{text-align:left;justify-content:flex-start}
  .nwp-text.is-right .nwp-text-cta{text-align:left}
  .nwp-style-vivid .nwp-text.is-title.is-right .nwp-text-head::after{margin-left:0;margin-right:auto}
}
