:root{--nn-paper:#ECF1F7;--nn-paper-raised:#F7FAFC;--nn-paper-elevated:#DDE5EF;--nn-ink:#0B1A2E;--nn-azure:#3973C2;--nn-azure-deep:#2E5DA0;--nn-azure-lift:#5B91D4;--nn-slate:#64748B;--nn-slate-dim:#94A3B8;--nn-hairline:rgba(11,26,46,0.10);--nn-hairline-azure:rgba(57,115,194,0.22);--fg-1:var(--nn-ink);--fg-2:#3E4A5F;--fg-3:var(--nn-slate);--fg-accent:var(--nn-azure-deep);--fg-inverse:var(--nn-paper);--bg-0:var(--nn-paper);--bg-1:var(--nn-paper-raised);--bg-2:var(--nn-paper-elevated);--bg-3:#CFDAE6;--bg-inverse:var(--nn-ink);--line-quiet:var(--nn-hairline);--line-mid:rgba(11,26,46,0.14);--line-strong:rgba(11,26,46,0.22);--line-azure:var(--nn-azure);--line-azure-lift:var(--nn-azure-lift);--ff-sans:var(--nn-font-sans),"Söhne","Neue Haas Unica","Inter",system-ui,-apple-system,sans-serif;--ff-mono:var(--nn-font-mono),"IBM Plex Mono",ui-monospace,SFMono-Regular,Menlo,monospace;--ff-serif:var(--nn-font-serif),"Playfair Display",Georgia,"Times New Roman",serif;--nn-periwinkle:#B6C7E8;--fs-display:clamp(44px,7.5vw,72px);--lh-display:1.05;--fw-display:500;--fs-h1:clamp(36px,6vw,56px);--lh-h1:1.08;--fw-h1:500;--fs-h2:clamp(28px,4.5vw,40px);--lh-h2:1.15;--fw-h2:500;--fs-subhead:32px;--lh-subhead:1.25;--fw-subhead:400;--fs-lead:22px;--lh-lead:1.45;--fw-lead:400;--fs-body:17px;--lh-body:1.6;--fw-body:400;--fs-small:14px;--lh-small:1.5;--fw-small:400;--fs-micro:12px;--lh-micro:1.4;--fw-micro:500;--fs-numeral:20px;--lh-numeral:1.4;--fw-numeral:500;--fs-eyebrow:12px;--lh-eyebrow:1.2;--fw-eyebrow:500;--content-max:1240px;--gutter:96px;--gutter-sm:48px;--section-gap:160px;--section-gap-sm:96px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;--sp-7:48px;--sp-8:64px;--sp-9:96px;--sp-10:160px;--radius-0:0px;--radius-1:2px;--radius-2:4px;--radius-pill:999px;--shadow-1:0 1px 2px rgba(11,26,46,0.05),0 8px 24px rgba(11,26,46,0.08),0 24px 48px rgba(11,26,46,0.06);--shadow-2:0 2px 4px rgba(11,26,46,0.07),0 16px 40px rgba(11,26,46,0.12),0 32px 64px rgba(11,26,46,0.10);--shadow-inset-hairline:inset 0 0 0 1px var(--line-quiet);--shadow-inset-azure:inset 0 0 0 1px var(--nn-hairline-azure);--ease-out:cubic-bezier(0.2,0.8,0.2,1);--ease-in-out:cubic-bezier(0.65,0,0.35,1);--dur-fast:180ms;--dur-mid:400ms;--dur-slow:700ms}body,html{background:var(--bg-0);font-family:var(--ff-sans);font-size:var(--fs-body);line-height:var(--lh-body);font-weight:var(--fw-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv11"}body{position:relative;min-height:100dvh;isolation:isolate}body:before{z-index:-1;background-image:url(/assets/img/tools-pattern.svg),radial-gradient(circle at 1px 1px,rgba(30,58,95,.05) 1px,transparent 0),radial-gradient(ellipse 1400px 900px at 50% 0,rgba(247,250,252,.5),transparent 60%),radial-gradient(ellipse 800px 600px at 85% 8%,rgba(30,58,95,.1),transparent 70%),radial-gradient(ellipse 1000px 800px at 15% 92%,rgba(37,99,235,.1),transparent 70%);background-size:480px 480px,120px 120px,auto,auto,auto;background-repeat:repeat,repeat,no-repeat,no-repeat,no-repeat;background-blend-mode:normal,normal,normal,normal,normal}body:after,body:before{content:"";position:fixed;inset:0;pointer-events:none}body:after{z-index:3;background:radial-gradient(ellipse 120% 100% at 50% 50%,transparent 55%,rgba(11,26,46,.07) 100%)}.nn-display,h1.nn-display{font:var(--fw-display) var(--fs-display)/var(--lh-display) var(--ff-sans);letter-spacing:-.02em;color:var(--fg-1)}.nn-h1,h1{font:var(--fw-h1) var(--fs-h1)/var(--lh-h1) var(--ff-sans);letter-spacing:-.015em;color:var(--fg-1)}.nn-h2,h2{font:var(--fw-h2) var(--fs-h2)/var(--lh-h2) var(--ff-sans);letter-spacing:-.012em;color:var(--fg-1)}.nn-subhead,h3{font:var(--fw-subhead) var(--fs-subhead)/var(--lh-subhead) var(--ff-sans);letter-spacing:-.005em;color:var(--fg-1)}.nn-lead{font:var(--fw-lead) var(--fs-lead)/var(--lh-lead) var(--ff-sans);color:var(--fg-2)}.nn-body,p{font:var(--fw-body) var(--fs-body)/var(--lh-body) var(--ff-sans);color:var(--fg-1)}.nn-small{color:var(--fg-2)}.nn-meta,.nn-small{font:var(--fw-small) var(--fs-small)/var(--lh-small) var(--ff-sans)}.nn-meta{color:var(--fg-3)}.nn-eyebrow{font:var(--fw-eyebrow) var(--fs-eyebrow)/var(--lh-eyebrow) var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-accent)}.nn-num,.nn-numeral{font:var(--fw-numeral) var(--fs-numeral)/var(--lh-numeral) var(--ff-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--fg-1)}.nn-code,code{font:500 14px/1.5 var(--ff-mono);color:var(--fg-2)}.nn-link,a{color:var(--fg-1);text-decoration:none;position:relative;display:inline-block}.nn-link:after,a:after{content:"";position:absolute;left:0;right:100%;bottom:-3px;height:1px;background:var(--nn-azure);transition:right var(--dur-mid) var(--ease-out)}@media (hover:hover){.nn-link:hover:after,a:hover:after{right:0}.nn-link:hover,a:hover{color:var(--nn-ink)}}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--nn-paper);color:var(--fg-1)}.nn-scroll-progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:var(--nn-azure);transform-origin:left center;transform:scaleX(0);will-change:transform;pointer-events:none}@supports (animation-timeline:scroll()){.nn-scroll-progress{animation:nn-scroll-progress-fill linear both;animation-timeline:scroll(root block)}@keyframes nn-scroll-progress-fill{0%{transform:scaleX(0)}to{transform:scaleX(1)}}}@property --mag-x{syntax:"<number>";inherits:false;initial-value:0}@property --mag-y{syntax:"<number>";inherits:false;initial-value:0}@property --glow-x{syntax:"<length>";inherits:false;initial-value:0}@property --glow-y{syntax:"<length>";inherits:false;initial-value:0}@property --reveal-progress{syntax:"<number>";inherits:false;initial-value:0}[data-reveal]{opacity:0;will-change:opacity,transform}[data-reveal=fade-rise]{transform:translateY(24px)}[data-reveal=side-slide-left]{transform:translateX(-40px)}[data-reveal=side-slide-right]{transform:translateX(40px)}[data-reveal=scale-settle]{transform:scale(.96)}[data-reveal=blur-to-sharp]{filter:blur(12px)}[data-reveal=clip-reveal]{-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0)}[data-reveal=mask-wipe]{-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0)}@supports (animation-timeline:view()){[data-reveal]{animation-timeline:view();animation-range:entry 0 entry 100%;animation-fill-mode:both;animation-timing-function:var(--ease-out)}[data-reveal=fade-rise]{animation-name:reveal-fade-rise}[data-reveal=side-slide-left]{animation-name:reveal-slide-left}[data-reveal=side-slide-right]{animation-name:reveal-slide-right}[data-reveal=scale-settle]{animation-name:reveal-scale-settle}[data-reveal=clip-reveal]{animation-name:reveal-clip}[data-reveal=blur-to-sharp]{animation-name:reveal-blur}[data-reveal=mask-wipe]{animation-name:reveal-mask-wipe}[data-reveal-stagger] [data-reveal]{animation-range:entry calc(var(--i, 0) * 10%) entry calc(80% + var(--i, 0) * 10%)}}@supports not (animation-timeline:view()){[data-reveal]{transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out),filter var(--dur-slow) var(--ease-out),-webkit-clip-path var(--dur-slow) var(--ease-out);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out),filter var(--dur-slow) var(--ease-out),clip-path var(--dur-slow) var(--ease-out);transition:opacity var(--dur-slow) var(--ease-out),transform var(--dur-slow) var(--ease-out),filter var(--dur-slow) var(--ease-out),clip-path var(--dur-slow) var(--ease-out),-webkit-clip-path var(--dur-slow) var(--ease-out)}[data-reveal-stagger] [data-reveal]{transition-delay:calc(var(--i, 0) * 80ms)}}[data-reveal][data-revealed]{animation:none;opacity:1;transform:none;filter:none;-webkit-clip-path:none;clip-path:none;transition:opacity .25s var(--ease-out),transform .25s var(--ease-out),filter .25s var(--ease-out),-webkit-clip-path .25s var(--ease-out);transition:opacity .25s var(--ease-out),transform .25s var(--ease-out),filter .25s var(--ease-out),clip-path .25s var(--ease-out);transition:opacity .25s var(--ease-out),transform .25s var(--ease-out),filter .25s var(--ease-out),clip-path .25s var(--ease-out),-webkit-clip-path .25s var(--ease-out)}@media (prefers-reduced-motion:reduce){[data-reveal]{animation:none!important;transition:opacity .15s linear!important;transform:none!important;filter:none!important;-webkit-clip-path:none!important;clip-path:none!important}[data-reveal][data-revealed]{opacity:1}.nn-btn-primary:active,.nn-btn:hover .nn-btn-arrow,.nn-card-hover:hover,.nn-hero-split-cta:hover .nn-btn-arrow,.nn-modal-close:active,.nn-modal-thumb:active,.nn-project-card:active,.nn-project-card:hover .nn-project-img img,.nn-service-card:active,.nn-team-card:active,[data-magnetic]{transform:none}}[data-reveal-enter]{opacity:1;transform:none;transition:opacity var(--dur-mid) var(--ease-out),transform var(--dur-mid) var(--ease-out)}@starting-style{[data-reveal-enter]{opacity:0;transform:translateY(8px)}}@keyframes reveal-fade-rise{0%{opacity:0;transform:translateY(24px);--reveal-progress:0}to{opacity:1;transform:none;--reveal-progress:1}}@keyframes reveal-slide-left{0%{opacity:0;transform:translateX(-40px);--reveal-progress:0}to{opacity:1;transform:none;--reveal-progress:1}}@keyframes reveal-slide-right{0%{opacity:0;transform:translateX(40px);--reveal-progress:0}to{opacity:1;transform:none;--reveal-progress:1}}@keyframes reveal-scale-settle{0%{opacity:0;transform:scale(.96);--reveal-progress:0}to{opacity:1;transform:none;--reveal-progress:1}}@keyframes reveal-clip{0%{opacity:0;-webkit-clip-path:inset(0 100% 0 0);clip-path:inset(0 100% 0 0);--reveal-progress:0}to{opacity:1;-webkit-clip-path:inset(0);clip-path:inset(0);--reveal-progress:1}}@keyframes reveal-blur{0%{opacity:0;filter:blur(12px);--reveal-progress:0}to{opacity:1;filter:blur(0);--reveal-progress:1}}@keyframes reveal-mask-wipe{0%{opacity:0;-webkit-clip-path:inset(100% 0 0 0);clip-path:inset(100% 0 0 0);--reveal-progress:0}to{opacity:1;-webkit-clip-path:inset(0);clip-path:inset(0);--reveal-progress:1}}:focus{outline:none}:focus-visible{outline:2px solid var(--nn-azure);outline-offset:3px;border-radius:2px}.nn-btn:focus-visible,.nn-tab:focus-visible{outline:none;box-shadow:0 0 0 3px color-mix(in oklab,var(--nn-azure) 35%,transparent),0 0 0 1.5px var(--nn-azure);border-radius:2px}.nn-faq:focus-visible,.nn-project-card:focus-visible,.nn-service-card:focus-visible,.nn-team-card:focus-visible{outline:2px solid var(--nn-azure);outline-offset:4px;border-radius:2px}.nn-hero-split-cta:focus-visible,.nn-link:focus-visible,.nn-nav-link:focus-visible,a:focus-visible{outline:none}.nn-link:focus-visible:after,.nn-nav-link:focus-visible:after,a:focus-visible:after{right:0}.nn-hero-split-cta:focus-visible:after{background:var(--nn-paper)}.nn-footer-list a:focus-visible{outline:none;text-decoration:underline;-webkit-text-decoration-color:var(--nn-azure);text-decoration-color:var(--nn-azure);text-decoration-thickness:2px;text-underline-offset:4px}.nn-field input:focus-visible,.nn-field select:focus-visible,.nn-field textarea:focus-visible{outline:none;box-shadow:0 1px 0 0 var(--nn-azure)}.nn-btn-primary:active{background:color-mix(in oklab,var(--nn-azure) 78%,black);transform:translateY(1px);box-shadow:none;transition-duration:.12s}.nn-btn-outline:active{border-color:var(--nn-azure-deep);color:var(--nn-azure-deep);background:color-mix(in oklab,var(--nn-azure) 10%,transparent);transition-duration:.12s}.nn-btn-ghost:active:after{height:2px}.nn-tab:active{color:var(--nn-azure-deep);border-color:var(--nn-azure-deep);transition-duration:.12s}.nn-modal-close:active,.nn-modal-thumb:active,.nn-project-card:active,.nn-service-card:active,.nn-team-card:active{transform:translateY(1px)}.nn-card-hover{transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-card-hover:hover{transform:translateY(-2px);box-shadow:var(--shadow-1)}}img,svg{display:block;max-width:100%}button{font-family:inherit}.nn-container{max-width:1240px;margin:0 auto;padding:0 48px}.nn-section{padding:120px 0}.nn-section-sm{padding:80px 0}.nn-section-raised{background:var(--nn-paper-raised)}.nn-nav,.nn-section-elevated{background:var(--nn-paper-elevated)}.nn-nav{position:-webkit-sticky;position:sticky;top:0;z-index:40;border-bottom:1px solid var(--line-quiet)}.nn-nav-inner{max-width:1240px;margin:0 auto;padding:10px 48px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;grid-gap:48px;gap:48px;height:60px}.nn-brand{display:flex;align-items:center;gap:14px;text-decoration:none;min-height:44px}.nn-brand:after{display:none}.nn-brand-mark-img{display:block;height:32px;width:auto}.nn-brand-word{font:500 20px/1 var(--ff-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--nn-ink);margin-top:6px}.nn-nav-links{display:flex;gap:32px;justify-content:center}.nn-nav-link{font:500 12px/1 var(--ff-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--fg-2);text-decoration:none;position:relative;padding-bottom:6px;transition:color var(--dur-fast) var(--ease-out)}.nn-nav-link:after{content:"";position:absolute;left:0;right:100%;bottom:0;height:1px;background:var(--nn-azure);transition:right var(--dur-mid) var(--ease-out)}@media (hover:hover){.nn-nav-link:hover{color:var(--fg-1)}.nn-nav-link:hover:after{right:0}}.nn-nav-link.active{color:var(--nn-ink)}.nn-nav-link.active:after{right:0}.nn-btn{font:500 12px/1 var(--ff-sans);letter-spacing:.18em;text-transform:uppercase;padding:14px 20px;border:0;cursor:pointer;transition:all var(--dur-fast) var(--ease-out);text-decoration:none;display:inline-block}.nn-btn:after{display:none}.nn-btn-primary{background:var(--nn-azure-deep);color:#fff;position:relative;isolation:isolate;overflow:hidden}.nn-btn-primary[data-glow]:before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(200px circle at var(--glow-x,50%) var(--glow-y,50%),color-mix(in oklab,var(--nn-azure-lift) 32%,transparent),transparent 60%);opacity:0;transition:opacity var(--dur-fast) var(--ease-out);pointer-events:none}@media (hover:hover){.nn-btn-primary:hover{background:color-mix(in oklab,var(--nn-azure) 88%,black);color:var(--nn-paper);box-shadow:var(--shadow-1)}.nn-btn-primary[data-glow]:hover:before{opacity:1}[data-magnetic]{transition:transform var(--dur-fast) var(--ease-out);transform:translate3d(calc(var(--mag-x, 0) * 6px),calc(var(--mag-y, 0) * 4px),0)}[data-magnetic]:hover{will-change:transform}}.nn-btn-outline{background:transparent;color:var(--fg-1);border:1px solid var(--line-strong)}@media (hover:hover){.nn-btn-outline:hover{border-color:var(--nn-azure);color:var(--nn-azure);background:color-mix(in oklab,var(--nn-azure) 6%,transparent)}}.nn-btn-ghost{background:transparent;color:var(--fg-1);padding:14px 0;position:relative}.nn-btn-ghost:before{right:0;background:var(--line-strong)}.nn-btn-ghost:after,.nn-btn-ghost:before{content:"";position:absolute;left:0;bottom:8px;height:1px}.nn-btn-ghost:after{display:block!important;right:100%;background:var(--nn-azure);transition:right var(--dur-mid) var(--ease-out)}@media (hover:hover){.nn-btn-ghost:hover{color:var(--nn-azure)}.nn-btn-ghost:hover:after{right:0}}.nn-btn-lg{padding:18px 28px;font-size:13px}.nn-btn-arrow{display:inline-block;transition:transform var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-btn:hover .nn-btn-arrow,.nn-hero-split-cta:hover .nn-btn-arrow{transform:translateX(3px)}}.nn-hero-split{display:grid;grid-template-columns:42% 1fr;height:92svh;min-height:760px;border-bottom:1px solid var(--line-quiet);position:relative;background-color:var(--nn-azure-deep);overflow:hidden;isolation:isolate}.nn-hero-split:before{content:"";inset:0;background-image:url(/assets/img/tools-pattern-dark.svg);background-size:480px 480px;background-repeat:repeat}.nn-hero-logomark,.nn-hero-split:before{position:absolute;z-index:0;pointer-events:none}.nn-hero-logomark{-webkit-user-select:none;-moz-user-select:none;user-select:none;left:-6%;top:50%;width:56%;max-width:760px;aspect-ratio:2292/1856;transform:translateY(-50%);opacity:.16;animation:nn-hero-logo-float 16s ease-in-out infinite,nn-hero-logo-fade 1.2s ease-out .2s backwards}.nn-hero-logomark img{object-fit:contain;object-position:center}@keyframes nn-hero-logo-float{0%,to{transform:translateY(-50%) scale(1) rotate(-.6deg)}50%{transform:translateY(-53%) scale(1.025) rotate(.6deg)}}@keyframes nn-hero-logo-fade{0%{opacity:0}to{opacity:.16}}@media (prefers-reduced-motion:reduce){.nn-hero-logomark{animation:nn-hero-logo-fade .6s ease-out backwards;transform:translateY(-50%)}}@media (max-width:768px){.nn-hero-logomark{left:-10%;width:90%;opacity:.08}}.nn-hero-split-left{color:var(--nn-paper);padding:96px;display:flex;flex-direction:column;justify-content:center;position:relative;z-index:1}.nn-hero-split-copy{max-width:520px}.nn-hero-split-title{color:var(--nn-paper);margin:0;font:600 92px/1.02 var(--ff-serif);letter-spacing:-.02em}.nn-hero-split-title-accent{display:block;font-style:italic;font-weight:400;font-size:64px;line-height:1.1;margin-top:8px;color:var(--nn-periwinkle);letter-spacing:-.01em}.nn-hero-split-lead{margin:40px 0 0;font:400 20px/1.5 var(--ff-sans);color:rgba(247,250,252,.7);max-width:460px}.nn-hero-split-cta{display:inline-flex;align-items:center;gap:12px;margin-top:64px;font:500 12px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-paper);text-decoration:none;padding-bottom:12px;position:relative;width:-moz-fit-content;width:fit-content}.nn-hero-split-cta:after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:rgba(247,250,252,.5);transition:background var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-hero-split-cta:hover:after{background:var(--nn-paper)}}.nn-hero-split-right{position:relative;z-index:1;overflow:hidden}.nn-hero-split-right:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(ellipse 60% 55% at 50% 45%,rgba(91,145,212,.14) 0,rgba(91,145,212,0) 70%),radial-gradient(ellipse 120% 80% at 50% 100%,rgba(11,26,46,.35) 0,rgba(11,26,46,0) 60%)}.nn-hero-stack{position:absolute;inset:0;z-index:1}.nn-hero-stack-back,.nn-hero-stack-front{position:absolute;margin:0;border:0;background:transparent;overflow:visible}.nn-hero-stack-back{top:8%;right:calc(6% + 96px);width:50%;height:70%}.nn-hero-stack-front{top:24%;right:calc(28% + 96px);width:42%;height:62%}.nn-hero-stack-glow{position:absolute;inset:-14px;z-index:0;overflow:hidden;border-radius:0;pointer-events:none}.nn-hero-stack-glow img{width:100%;height:100%;object-fit:cover;filter:blur(64px) saturate(1.5);opacity:.95;transform:scale(1.05)}.nn-hero-stack-img{position:absolute;inset:0;z-index:1;overflow:hidden;border:1px solid rgba(236,241,247,.12);background:var(--nn-ink)}.nn-hero-stack-img img{width:100%;height:100%;object-fit:cover;display:block}.nn-hero-stack-front .nn-hero-stack-img{box-shadow:0 32px 64px rgba(0,0,0,.45)}@media (max-width:1280px){.nn-hero-split-left{padding:72px 64px}.nn-hero-split-title{font-size:64px}.nn-hero-split-title-accent{font-size:44px}}@media (max-width:768px){.nn-hero-split{grid-template-columns:1fr;height:auto;min-height:0}.nn-hero-split-left{padding:72px 32px;min-height:60dvh}.nn-hero-split-title{font-size:60px}.nn-hero-split-title-accent{font-size:42px}.nn-hero-split-right{min-height:70dvh}.nn-hero-stack-back{top:8%;right:8%;width:70%;height:70%}.nn-hero-stack-front{top:22%;right:22%;width:60%;height:56%}}.nn-hero-word{display:inline-block;opacity:0;transform:translateY(.3em);filter:blur(10px)}@keyframes nn-hero-word-reveal{0%{opacity:0;transform:translateY(.3em);filter:blur(10px)}to{opacity:1;transform:none;filter:blur(0)}}.nn-hero-split[data-hero-title-play=full] .nn-hero-word{animation:nn-hero-word-reveal .9s var(--ease-out) both;animation-delay:calc(var(--wi, 0) * .14s + var(--phrase-offset, 0s))}.nn-hero-split-title-accent .nn-hero-word{--phrase-offset:180ms}.nn-hero-split[data-hero-title-play=reduced] .nn-hero-word{animation:nn-hero-word-fade .15s linear both}@keyframes nn-hero-word-fade{to{opacity:1;transform:none;filter:none}}@media (max-width:768px){.nn-hero-split[data-hero-title-play=full] .nn-hero-word{animation-duration:.7s;animation-delay:calc(var(--wi, 0) * .11s + var(--phrase-offset, 0s))}.nn-hero-split-title-accent .nn-hero-word{--phrase-offset:140ms}}@supports (animation-timeline:scroll()){.nn-hero-split-right:before,.nn-hero-split:before,.nn-hero-stack-back,.nn-hero-stack-front{animation-timeline:scroll(root block);animation-range:0 100lvh;animation-fill-mode:both;animation-timing-function:linear}.nn-hero-split:before{animation-name:nn-hero-drift-pattern}.nn-hero-split-right:before{animation-name:nn-hero-drift-atmos}.nn-hero-stack-back{animation-name:nn-hero-drift-back}.nn-hero-stack-front{animation-name:nn-hero-drift-front}@keyframes nn-hero-drift-atmos{to{transform:translate3d(0,100px,0)}}@keyframes nn-hero-drift-pattern{to{transform:translate3d(0,70px,0)}}@keyframes nn-hero-drift-back{to{transform:translate3d(0,30px,0)}}@keyframes nn-hero-drift-front{to{transform:translate3d(0,-30px,0)}}}@supports not (animation-timeline:scroll()){.nn-hero-split[data-hero-scroll-ready] .nn-hero-split-right:before{transform:translate3d(0,calc(var(--nn-hero-scroll, 0) * 100px),0)}.nn-hero-split[data-hero-scroll-ready]:before{transform:translate3d(0,calc(var(--nn-hero-scroll, 0) * 70px),0)}.nn-hero-split[data-hero-scroll-ready] .nn-hero-stack-back{transform:translate3d(0,calc(var(--nn-hero-scroll, 0) * 30px),0)}.nn-hero-split[data-hero-scroll-ready] .nn-hero-stack-front{transform:translate3d(0,calc(var(--nn-hero-scroll, 0) * -30px),0)}}.nn-hero-split[data-hero-active] .nn-hero-split-right:before,.nn-hero-split[data-hero-active] .nn-hero-stack-back,.nn-hero-split[data-hero-active] .nn-hero-stack-front,.nn-hero-split[data-hero-active]:before{will-change:transform}@media (max-width:768px),(prefers-reduced-motion:reduce){.nn-hero-split-right:before,.nn-hero-split:before,.nn-hero-stack-back,.nn-hero-stack-front{animation:none!important;transform:none!important;will-change:auto!important}}.nn-pillars{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--nn-azure)}.nn-pillar{padding:48px 36px 48px 0;border-left:1px solid var(--line-mid)}.nn-pillar:first-child{border-left:0;padding-left:0}.nn-pillar:not(:first-child){padding-left:36px}.nn-pillar-n{font:500 11px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.22em}.nn-pillar-title{font:500 22px/1.2 var(--ff-sans);color:var(--fg-1);margin:18px 0 10px;letter-spacing:-.005em}.nn-pillar-desc{font:400 14px/1.55 var(--ff-sans);color:var(--fg-2);max-width:220px}.nn-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0}.nn-stat{padding:0 32px;border-left:1px solid var(--line-mid)}.nn-stat:first-child{padding-left:0;border-left:0}.nn-stat-num{font:500 56px/1 var(--ff-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--fg-1);margin-top:12px;letter-spacing:-.01em}.nn-stat-unit{font:400 13px/1.5 var(--ff-sans);color:var(--fg-3);margin-top:10px;letter-spacing:.04em}.nn-section-head{margin-bottom:48px}.nn-chapter{display:inline-flex;align-items:center;gap:16px;padding-bottom:20px;margin-bottom:28px;border-bottom:1px solid var(--nn-azure);min-width:280px}.nn-chapter img{width:28px;height:28px;flex:0 0 auto}.nn-chapter-n{font:500 14px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.2em}.nn-chapter-label{font:500 12px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-2)}.nn-section-title{font:var(--fw-h1) clamp(34px,7.5vw,56px)/1.08 var(--ff-sans);letter-spacing:-.015em;color:var(--fg-1);max-width:820px;margin:0;text-wrap:pretty;overflow-wrap:break-word}.nn-section-lead{font:var(--fw-lead) 22px/1.45 var(--ff-sans);color:var(--fg-2);max-width:640px;margin:24px 0 0;text-wrap:pretty}.nn-service-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:0;gap:0;border-top:1px solid var(--line-mid)}.nn-service-card{padding:48px;border-bottom:1px solid var(--line-mid);border-left:1px solid var(--line-mid);cursor:pointer;transition:background var(--dur-fast) var(--ease-out);position:relative;text-decoration:none;display:block}.nn-service-card:after{display:none}.nn-service-card:first-child,.nn-service-card:nth-child(odd){border-left:0}@media (hover:hover){.nn-service-card:hover{background:rgba(37,86,168,.04)}}.nn-service-card.featured{background:rgba(37,86,168,.06)}.nn-service-card.featured:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:var(--nn-azure);transition:height var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-service-card.featured:hover:before{height:3px}}.nn-service-head{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:32px}.nn-service-head img{width:40px;height:40px}.nn-service-n{font:500 13px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.22em}.nn-service-title{font:500 30px/1.15 var(--ff-sans);letter-spacing:-.012em;margin:0 0 18px;color:var(--fg-1)}.nn-service-desc{font:400 15px/1.6 var(--ff-sans);color:var(--fg-2);margin:0 0 36px;max-width:440px}.nn-service-foot{display:flex;align-items:center;justify-content:space-between;padding-top:22px;border-top:1px solid var(--line-quiet)}.nn-service-from{font:500 13px/1 var(--ff-mono);color:var(--nn-azure-deep);letter-spacing:.15em}.nn-service-more{font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-2)}@media (hover:hover){.nn-service-card:hover .nn-service-more{color:var(--nn-azure)}}.nn-service-hub-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:40px 32px;gap:40px 32px}.nn-service-hub-card{display:block;text-decoration:none;color:inherit}.nn-service-hub-img{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--nn-paper-raised);margin-bottom:22px;border-radius:4px}.nn-service-hub-body{padding:4px 8px 0}@media (max-width:1024px){.nn-service-hub-body{padding:4px 16px 0}}.nn-service-hub-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}@media (hover:hover){.nn-service-hub-card:hover .nn-service-hub-img img{transform:scale(1.02)}}.nn-service-hub-title{font:500 28px/1.2 var(--ff-sans);letter-spacing:-.012em;color:var(--fg-1);margin:0 0 10px}.nn-service-hub-desc{font:400 16px/1.55 var(--ff-sans);color:var(--fg-2);margin:0 0 18px;max-width:420px}.nn-service-hub-meta{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font:500 12px/1 var(--ff-mono);letter-spacing:.06em;color:var(--nn-azure-deep);margin:0 0 16px}.nn-service-hub-arrow{display:inline-flex;align-items:center;gap:8px;font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-azure)}@media (hover:hover){.nn-service-hub-card:hover .nn-service-hub-arrow{color:var(--nn-azure-deep)}}.nn-project-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:40px 32px;gap:40px 32px}.nn-project-card{cursor:pointer;text-decoration:none;display:block;background:transparent;border:0;padding:0;margin:0;font:inherit;color:inherit;text-align:left;width:100%}.nn-project-card:after{display:none}.nn-project-img{aspect-ratio:4/3;overflow:hidden;background:var(--nn-paper-raised);margin-bottom:22px;position:relative}.nn-project-img img{width:100%;height:100%;object-fit:cover;transition:transform .9s var(--ease-out)}@media (hover:hover){.nn-project-card:hover .nn-project-img img{transform:scale(1.04)}}.nn-project-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.nn-project-title{font:500 24px/1.2 var(--ff-sans);letter-spacing:-.008em;color:var(--fg-1);margin:0 0 8px}.nn-empty{grid-column:1/-1;text-align:center;color:var(--fg-3);font:400 16px/1.5 var(--ff-sans);padding:64px 0}.nn-testimonial{margin:0;padding:56px 0;border-bottom:1px solid var(--line-quiet)}.nn-testimonial:first-child{padding-top:0}.nn-testimonial-rule{width:48px;height:1px;background:var(--nn-azure);margin-bottom:28px}.nn-testimonial-quote{font:400 28px/1.35 var(--ff-sans);letter-spacing:-.008em;color:var(--fg-1);margin:0 0 32px;max-width:820px;text-wrap:pretty}.nn-testimonial-cap{display:block;font-style:normal}.nn-testimonial-name{font-weight:500;color:var(--fg-1);font-size:15px}.nn-testimonial-role{font-size:13px;color:var(--fg-3);margin-top:4px}.nn-testimonial-proj{margin-top:8px;font:500 11px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.18em;text-transform:uppercase}.nn-faq{border-bottom:1px solid var(--line-mid);cursor:pointer;padding:28px 0}.nn-faq-row{display:grid;grid-template-columns:1fr 40px;align-items:center;grid-gap:24px;gap:24px}.nn-faq-q{font:500 22px/1.3 var(--ff-sans);letter-spacing:-.008em;color:var(--fg-1)}.nn-faq-toggle{color:var(--nn-azure);font-size:22px;text-align:right;font-family:var(--ff-mono);display:inline-block;transition:transform var(--dur-fast) var(--ease-out)}.nn-faq[aria-expanded=true] .nn-faq-toggle{transform:rotate(45deg)}.nn-faq-a{margin-top:24px;color:var(--fg-2);font:400 16px/1.65 var(--ff-sans);max-width:820px;animation:nn-fade-up .5s var(--ease-out)}.nn-faq[aria-expanded=false] .nn-faq-a{display:none}@keyframes nn-fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.nn-cta-band{background:var(--nn-paper-elevated);border-top:1px solid var(--nn-azure);border-bottom:1px solid var(--line-quiet);padding:96px 0}.nn-cta-inner{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:56px;gap:56px}.nn-cta-title{font:500 52px/1.08 var(--ff-sans);letter-spacing:-.018em;margin:16px 0 0;color:var(--fg-1);max-width:720px;text-wrap:pretty}.nn-footer{background:var(--nn-paper-raised);border-top:1px solid var(--line-quiet);padding:96px 0 0}.nn-footer-inner{max-width:1240px;margin:0 auto;padding:0 48px 72px;display:grid;grid-template-columns:2.2fr 1fr 1fr 1.6fr;grid-gap:48px;gap:48px}.nn-footer-brand{display:flex;align-items:center;gap:20px}.nn-footer-brand .nn-footer-mark{display:block;height:72px;width:auto;flex-shrink:0}.nn-footer-blurb{font:400 13px/1.55 var(--ff-sans);color:var(--fg-2);margin:0;min-width:0;flex:1 1}.nn-footer-list{list-style:none;padding:0;margin:16px 0 0;display:flex;flex-direction:column;gap:12px}.nn-footer-list a{font:400 14px/1 var(--ff-sans);color:var(--fg-2);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}.nn-footer-list a:after{display:none}@media (hover:hover){.nn-footer-list a:hover{color:var(--nn-azure)}}.nn-footer-office{font:400 13px/1.8 var(--ff-mono);color:var(--fg-2);margin-top:16px}.nn-footer-base{border-top:1px solid var(--line-quiet);padding:24px 48px;max-width:1240px;margin:0 auto;display:flex;justify-content:space-between;color:var(--fg-3);font-size:12px;font-family:var(--ff-mono);letter-spacing:.1em}.nn-page-head{padding:140px 0 72px;border-bottom:1px solid var(--line-quiet)}.nn-page-eyebrow{display:flex;align-items:center;gap:16px;padding-bottom:20px;border-bottom:1px solid var(--nn-azure);max-width:300px;margin-bottom:36px}.nn-page-eyebrow img{width:26px;height:26px}.nn-page-eyebrow .nn-mono{font:500 13px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.22em}.nn-page-eyebrow .nn-label{font:500 12px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-2)}.nn-page-title{font:500 clamp(42px,8vw,84px)/1.02 var(--ff-sans);letter-spacing:-.025em;margin:0;max-width:1040px;text-wrap:balance;overflow-wrap:break-word}.nn-page-lead{font:400 24px/1.5 var(--ff-sans);color:var(--fg-2);margin-top:32px;max-width:720px;text-wrap:pretty}.nn-page-head-grid{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:96px;gap:96px;align-items:end}.nn-titleblock{border-top:1px solid var(--nn-azure)}.nn-titleblock-list{margin:0;display:grid}.nn-titleblock-row{display:grid;grid-template-columns:120px 1fr;grid-gap:24px;gap:24px;padding:14px 2px;border-bottom:1px solid var(--line-quiet);align-items:baseline}.nn-titleblock-row dt{font:500 10px/1 var(--ff-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--nn-azure-deep);margin:0}.nn-titleblock-row dd{font:400 13px/1.5 var(--ff-mono);color:var(--fg-1);letter-spacing:.02em;margin:0}.nn-titleblock-row dd .nn-mono{font:inherit;color:inherit;letter-spacing:inherit}.nn-page-head.nn-services{padding:96px 0 64px}.nn-page-head.nn-services .nn-page-title{font-size:clamp(36px,6vw,64px);max-width:640px}.nn-page-head.nn-services .nn-page-lead{font-size:20px;margin-top:24px;max-width:560px}.nn-page-head.nn-services .nn-page-head-img{margin-top:40px}.nn-breadcrumb{display:inline-flex;align-items:center;gap:6px;font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);text-decoration:none;margin-bottom:24px;transition:color var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-breadcrumb:hover{color:var(--nn-azure)}}@media (min-width:1024px){.nn-page-head.nn-services:has(.nn-page-head-img) .nn-container{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-column-gap:64px;column-gap:64px;align-items:center}.nn-page-head.nn-services:has(.nn-page-head-img) .nn-page-head-img{margin-top:0;aspect-ratio:4/5;height:auto}}@media (max-width:640px){.nn-page-head.nn-services{padding:72px 0 48px}.nn-page-head.nn-services .nn-page-head-img{margin-top:28px}}.nn-tabs{display:flex;gap:10px;flex-wrap:wrap}.nn-tab{font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;padding:12px 18px;border:1px solid var(--line-strong);color:var(--fg-2);cursor:pointer;background:transparent;transition:all var(--dur-fast) var(--ease-out);min-height:44px}@media (hover:hover){.nn-tab:hover{color:var(--nn-azure);border-color:var(--nn-azure-lift)}}.nn-tab.active{color:var(--nn-azure-deep);border-color:var(--nn-azure-deep)}.nn-two-col{display:grid;grid-template-columns:1fr 1fr;grid-gap:96px;gap:96px;align-items:start}.nn-two-col-narrow{grid-template-columns:1.2fr 1fr}.nn-principle-list{list-style:none;padding:0;margin:32px 0 0;display:flex;flex-direction:column;gap:24px}.nn-principle-list li{padding:22px 0 22px 28px;border-left:1px solid var(--nn-azure);font:400 15px/1.6 var(--ff-sans);color:var(--fg-2)}.nn-principle-list strong{color:var(--fg-1);font-weight:500;display:block;margin-bottom:6px;font-size:18px}.nn-team-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}.nn-team-card{padding:32px 28px;background:var(--nn-paper);border:1px solid var(--line-quiet);transition:border-color var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-team-card:hover{border-color:var(--nn-azure-lift)}}.nn-team-avatar{width:56px;height:56px;border:1px solid var(--nn-azure);display:flex;align-items:center;justify-content:center;font:500 14px/1 var(--ff-mono);letter-spacing:.1em;color:var(--nn-azure);margin-bottom:24px}.nn-team-name{font:500 18px/1.2 var(--ff-sans);margin:0 0 4px;color:var(--fg-1)}.nn-team-role{font:400 13px/1.5 var(--ff-sans);color:var(--fg-3);margin:0}.nn-team-tenure{font:500 11px/1 var(--ff-mono);color:var(--nn-azure);margin-top:12px;letter-spacing:.14em;text-transform:uppercase}.nn-roofing-feature{background:linear-gradient(180deg,var(--nn-paper) 0,var(--nn-paper-elevated) 100%);padding:140px 0;position:relative}.nn-roof-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:0;gap:0;margin-top:72px}.nn-roof-cell{padding:48px 36px;border-left:1px solid var(--line-mid)}.nn-roof-cell:first-child{border-left:0;padding-left:0}.nn-roof-n{font:500 13px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.22em;margin-bottom:28px}.nn-roof-title{font:500 24px/1.2 var(--ff-sans);margin:0 0 14px;color:var(--fg-1);letter-spacing:-.008em}.nn-roof-desc{font:400 15px/1.65 var(--ff-sans);color:var(--fg-2)}.nn-spec-sheet{border-top:1px solid var(--nn-azure);display:grid;grid-template-columns:1fr 1fr 1fr}@media (max-width:640px){.nn-spec-sheet{grid-template-columns:1fr}.nn-spec-cell{border-right:0;border-bottom:1px solid var(--line-quiet);padding:24px 0}.nn-spec-cell:last-child{border-bottom:0}}.nn-spec-row{display:grid;grid-template-columns:160px 1fr;padding:24px 0;border-bottom:1px solid var(--line-quiet);grid-gap:32px;gap:32px}.nn-spec-cell{border-right:1px solid var(--line-quiet);padding:36px 32px}.nn-spec-cell:last-child{border-right:0}.nn-spec-label{font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--fg-3);margin-bottom:14px}.nn-spec-val{font:500 22px/1.25 var(--ff-mono);color:var(--fg-1);letter-spacing:-.005em}.nn-spec-unit{display:block;font:400 12px/1.4 var(--ff-sans);color:var(--fg-3);margin-top:8px;letter-spacing:.04em}.nn-contact-grid{display:grid;grid-template-columns:1.5fr 1fr;grid-gap:96px;gap:96px}.nn-contact-form{display:grid;grid-template-columns:1fr 1fr;grid-gap:32px 28px;gap:32px 28px;background:var(--nn-paper-raised);padding:48px 40px;border-top:1px solid var(--nn-azure);align-content:start}.nn-field{display:flex;flex-direction:column}.nn-field-full{grid-column:span 2}.nn-field label{font:500 10px/1 var(--ff-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--nn-azure);margin-bottom:12px}.nn-field input,.nn-field select,.nn-field textarea{background:transparent;border:0;border-bottom:1px solid var(--line-strong);color:var(--fg-1);font:400 16px/1.5 var(--ff-sans);padding:12px 0;outline:0;transition:border-color var(--dur-fast) var(--ease-out);font-family:var(--ff-sans)}.nn-field select{background:transparent;-moz-appearance:none;appearance:none;-webkit-appearance:none}.nn-field input:focus,.nn-field select:focus,.nn-field textarea:focus{border-bottom-color:var(--nn-azure)}.nn-field textarea{resize:vertical;min-height:120px}.nn-field input:user-invalid,.nn-field select:user-invalid,.nn-field textarea:user-invalid{border-bottom:2px solid color-mix(in oklab,var(--nn-ink) 85%,transparent)}.nn-field-hint{display:none;margin-top:8px;font:400 12px/1.4 var(--ff-sans);color:var(--fg-3)}.nn-field input:user-invalid+.nn-field-hint,.nn-field select:user-invalid+.nn-field-hint,.nn-field textarea:user-invalid+.nn-field-hint{display:block}.nn-form-actions{grid-column:span 2;justify-self:start;margin-top:16px}.nn-sent{grid-column:span 2;padding:48px 36px;border:1px solid var(--nn-azure);background:rgba(37,86,168,.04)}.nn-contact-aside{background:var(--nn-paper-raised);padding:48px 40px;border-top:1px solid var(--nn-azure)}.nn-contact-aside-block+.nn-contact-aside-block{margin-top:40px;padding-top:40px;border-top:1px solid var(--line-quiet)}.nn-cities{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}.nn-city{font:500 11px/1 var(--ff-sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border:1px solid var(--line-strong);color:var(--fg-2)}.nn-contact-mono{font:400 13px/1.8 var(--ff-mono);color:var(--fg-2);margin-top:14px}.nn-map-section{padding-top:0}.nn-map-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:20px}.nn-map-directions{font:500 11px/1 var(--ff-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--nn-azure);text-decoration:none;border-bottom:1px solid transparent;padding-bottom:4px;transition:border-color .2s ease}.nn-map-directions:hover{border-bottom-color:var(--nn-azure)}.nn-map-frame{position:relative;width:100%;aspect-ratio:16/7;border:1px solid var(--nn-azure);background:var(--nn-paper-raised);overflow:hidden}.nn-map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;filter:grayscale(.2) contrast(1.02)}@media (max-width:760px){.nn-map-frame{aspect-ratio:4/5}}.nn-pull-quote{padding:80px 0;border-top:1px solid var(--line-mid);border-bottom:1px solid var(--line-mid);text-align:left;max-width:880px;margin:0 auto}.nn-pull-quote-text{font:400 36px/1.35 var(--ff-sans);letter-spacing:-.015em;color:var(--fg-1);margin:0;text-wrap:pretty}.nn-pull-quote-cap{margin-top:28px;font:500 12px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-azure-deep)}.nn-prose p{font:400 17px/1.7 var(--ff-sans);color:var(--fg-2);margin:0 0 20px;max-width:640px}.nn-prose p:last-child{margin-bottom:0}.nn-prose strong{color:var(--fg-1);font-weight:500}.nn-process{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:0;gap:0;border-top:1px solid var(--nn-azure)}.nn-process-step{border-left:1px solid var(--line-mid);padding:44px 28px}.nn-process-step:first-child{border-left:0;padding-left:0}.nn-process-n{font:500 13px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.22em}.nn-process-title{font:500 20px/1.2 var(--ff-sans);margin:20px 0 12px;color:var(--fg-1)}.nn-process-desc{font:400 14px/1.6 var(--ff-sans);color:var(--fg-2);max-width:240px}.nn-license-strip{display:flex;gap:48px;flex-wrap:wrap;padding:32px 0;border-top:1px solid var(--line-quiet);border-bottom:1px solid var(--line-quiet)}.nn-license{display:flex;flex-direction:column;gap:6px}.nn-license-label{font:500 10px/1 var(--ff-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--fg-3)}.nn-license-val{font:500 14px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.08em}.nn-editorial{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:96px;gap:96px;align-items:center}.nn-editorial-img{aspect-ratio:4/5;background:var(--nn-paper-raised);overflow:hidden;position:relative}.nn-editorial-img img{width:100%;height:100%;object-fit:cover}.nn-editorial-tag{position:absolute;left:24px;bottom:24px;padding:10px 14px;background:rgba(236,241,247,.88);border:1px solid var(--nn-azure);font:500 11px/1 var(--ff-mono);letter-spacing:.2em;text-transform:uppercase;color:var(--nn-azure)}.canvas-root{background:var(--bg-2);min-height:100dvh;padding:72px 48px 96px}.canvas-header{max-width:1600px;margin:0 auto 72px;display:flex;justify-content:space-between;align-items:flex-end;gap:32px;padding-bottom:32px;border-bottom:1px solid var(--nn-azure)}.canvas-title{font:500 40px/1.1 var(--ff-sans);letter-spacing:-.015em;color:var(--fg-1);margin:0}.canvas-sub{font:400 16px/1.5 var(--ff-sans);color:var(--fg-2);margin-top:12px;max-width:540px}.canvas-meta{font:500 12px/1.5 var(--ff-mono);color:var(--fg-3);letter-spacing:.18em;text-transform:uppercase;text-align:right}.canvas-grid{display:grid;grid-template-columns:repeat(2,1fr);grid-gap:64px 48px;gap:64px 48px;max-width:1600px;margin:0 auto}.canvas-cell{display:flex;flex-direction:column;gap:16px}.canvas-cell-head{display:flex;justify-content:space-between;align-items:baseline;padding-bottom:14px;border-bottom:1px solid var(--line-mid)}.canvas-cell-title{font:500 18px/1 var(--ff-sans);color:var(--fg-1);letter-spacing:.04em}.canvas-cell-n{font:500 12px/1 var(--ff-mono);color:var(--nn-azure);letter-spacing:.22em}.canvas-cell-note{font:400 13px/1.5 var(--ff-sans);color:var(--fg-3);margin:0}.canvas-frame-wrap{position:relative;aspect-ratio:4/5;background:var(--nn-paper);border:1px solid var(--line-quiet);overflow:hidden}.canvas-frame{position:absolute;top:0;left:0;width:1440px;height:1800px;border:0;transform-origin:0 0;background:var(--nn-paper);pointer-events:none}.canvas-frame-link{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;padding:16px;background:linear-gradient(180deg,transparent 60%,rgba(236,241,247,.18));text-decoration:none}.canvas-frame-link:after{display:none}.canvas-frame-cta{padding:10px 14px;background:rgba(236,241,247,.92);border:1px solid var(--nn-azure);font:500 10px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-azure);opacity:0;transition:opacity var(--dur-mid) var(--ease-out)}@media (hover:hover){.canvas-cell:hover .canvas-frame-cta{opacity:1}}.nn-mono{font-family:var(--ff-mono);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.nn-rule{height:1px;background:var(--line-mid);border:0}.nn-rule-azure{height:1px;background:var(--nn-azure);border:0}.nn-spacer-lg{height:80px}.nn-spacer-md{height:48px}.nn-spacer-sm{height:24px}.nn-fade{opacity:0;transform:translateY(12px);animation:nn-fade-up .9s var(--ease-out) forwards}.nn-fade.d1{animation-delay:80ms}.nn-fade.d2{animation-delay:.16s}.nn-fade.d3{animation-delay:.24s}.nn-fade.d4{animation-delay:.32s}.nn-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);align-items:center;justify-content:center;z-index:100;padding:40px}.nn-modal-inner{background:var(--nn-paper-raised);max-width:960px;width:100%;max-height:92dvh;overflow:auto;position:relative}.nn-modal-close,.nn-modal-inner{border:1px solid var(--line-strong)}.nn-modal-close{position:absolute;right:16px;top:16px;z-index:2;background:rgba(236,241,247,.85);color:var(--fg-1);font:500 11px/1 var(--ff-sans);letter-spacing:.18em;text-transform:uppercase;padding:10px 14px;cursor:pointer}.nn-modal-thumbs{display:flex;gap:8px;padding:16px 40px;overflow-x:auto;border-bottom:1px solid var(--line-quiet);background:var(--bg-1)}.nn-modal-thumb{flex:0 0 96px;height:72px;padding:0;margin:0;border:1px solid var(--line-quiet);border-radius:2px;overflow:hidden;background:transparent;cursor:pointer;transition:border-color .12s ease}@media (hover:hover){.nn-modal-thumb:hover{border-color:var(--line-strong)}}.nn-modal-thumb.active{border:2px solid var(--nn-azure)}.nn-modal-thumb img{width:100%;height:100%;object-fit:cover;display:block}.nn-page-head-img{margin-top:48px;width:100%;aspect-ratio:21/9;overflow:hidden;border-radius:4px;background:var(--line-quiet);position:relative}.nn-page-head-img img{width:100%;height:100%;object-fit:cover;display:block}.nn-modal-detail{padding:48px 40px}.nn-modal-detail-title{font:500 40px/1.1 var(--ff-sans);letter-spacing:-.015em;margin:14px 0 0}.nn-modal-detail-brief{margin:28px 0 0;color:var(--fg-2);max-width:620px;line-height:1.65}@media (max-width:1024px){.nn-container{padding:0 32px}.nn-pillars,.nn-project-grid,.nn-stats{grid-template-columns:repeat(2,1fr)}.nn-project-grid{gap:32px 24px}.nn-service-grid{grid-template-columns:1fr}.nn-service-hub-grid,.nn-team-grid{grid-template-columns:repeat(2,1fr)}.nn-roof-grid{grid-template-columns:1fr}.nn-process{grid-template-columns:repeat(2,1fr)}.nn-contact-grid,.nn-page-head-grid,.nn-two-col,.nn-two-col-narrow{grid-template-columns:1fr;gap:48px}.nn-page-head-grid{align-items:start}.nn-editorial{grid-template-columns:1fr;gap:48px}.nn-footer-inner{grid-template-columns:1fr 1fr;gap:32px}}@media (max-width:640px){.nn-container{padding:0 20px}.nn-cta-inner,.nn-footer-inner,.nn-pillars,.nn-process,.nn-project-grid,.nn-service-hub-grid,.nn-stats,.nn-team-grid{grid-template-columns:1fr}.nn-cta-inner{gap:28px}.nn-pillar,.nn-pillar:not(:first-child){padding:24px 0;border-left:0;border-top:1px solid var(--line-quiet)}.nn-pillar:first-child{border-top:0;padding-top:0}.nn-pillar-desc{max-width:none}.nn-stat,.nn-stat:first-child{padding:20px 0;border-left:0;border-top:1px solid var(--line-quiet)}.nn-stat:first-child{border-top:0;padding-top:0}.nn-stat-num{font-size:clamp(40px,12vw,56px);margin-top:8px}.nn-contact-form{grid-template-columns:1fr;gap:24px;padding:32px 24px}.nn-contact-form .nn-field-full,.nn-contact-form .nn-form-actions,.nn-contact-form .nn-sent{grid-column:auto}.nn-contact-aside{padding:32px 24px}.nn-nav-inner{padding:10px 20px;gap:12px;grid-template-columns:auto auto;justify-content:space-between}.nn-nav-cta{white-space:nowrap}.nn-modal{padding:12px}.nn-modal-thumbs{padding:12px 16px}.nn-modal-thumb{flex:0 0 64px;height:48px}.nn-modal-detail{padding:32px 20px}.nn-modal-detail-title{font-size:28px}.nn-page-head-img{aspect-ratio:16/9;margin-top:32px}.nn-hero-split-title{font-size:40px}.nn-hero-split-lead{font-size:18px}}.nn-nav-right{display:flex;align-items:center;gap:12px;justify-self:end}.nn-mobile-trigger{display:none;width:44px;height:44px;background:transparent;border:1px solid var(--nn-hairline);border-radius:var(--radius-1);color:var(--nn-ink);cursor:pointer;align-items:center;justify-content:center;padding:0;transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-mobile-trigger:hover{border-color:var(--nn-azure)}}.nn-mobile-trigger:focus-visible{outline:2px solid var(--nn-azure);outline-offset:2px}.nn-mobile-trigger-bars{display:inline-flex;flex-direction:column;gap:5px;width:20px}.nn-mobile-trigger-bars>span{display:block;height:1.5px;width:20px;background:currentColor;transform-origin:50% 50%;transition:transform var(--dur-mid) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}.nn-mobile-trigger.is-open .nn-mobile-trigger-bars>span:first-child{transform:translateY(3.25px) rotate(45deg)}.nn-mobile-trigger.is-open .nn-mobile-trigger-bars>span:last-child{transform:translateY(-3.25px) rotate(-45deg)}.nn-mobile-drawer{position:fixed;inset:0;z-index:50;pointer-events:none;visibility:hidden;overflow:clip}.nn-mobile-drawer.is-open{pointer-events:auto;visibility:visible}.nn-mobile-backdrop{position:absolute;inset:0;background:rgba(22,24,32,.48);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity var(--dur-mid) var(--ease-out)}.nn-mobile-drawer.is-open .nn-mobile-backdrop{opacity:1}.nn-mobile-panel{position:absolute;top:0;right:0;bottom:0;width:min(85vw,380px);background:var(--nn-paper-raised);border-left:1px solid var(--line-quiet);display:flex;flex-direction:column;padding:max(20px,env(safe-area-inset-top)) max(24px,env(safe-area-inset-right)) max(32px,env(safe-area-inset-bottom)) 24px;transform:translateX(100%);transition:transform var(--dur-mid) var(--ease-out);box-shadow:-24px 0 60px -20px rgba(10,14,24,.25)}.nn-mobile-drawer.is-open .nn-mobile-panel{transform:translateX(0)}.nn-mobile-panel-head{display:flex;justify-content:flex-end;margin-bottom:32px}.nn-mobile-close{width:44px;height:44px;display:inline-flex;align-items:center;justify-content:center;background:transparent;border:1px solid var(--nn-hairline);border-radius:var(--radius-1);color:var(--nn-ink);cursor:pointer;font:400 24px/1 var(--ff-sans);transition:border-color var(--dur-fast) var(--ease-out)}.nn-mobile-close:focus-visible{outline:2px solid var(--nn-azure);outline-offset:2px}@media (hover:hover){.nn-mobile-close:hover{border-color:var(--nn-azure)}}.nn-mobile-links{display:flex;flex-direction:column;border-top:1px solid var(--line-quiet)}.nn-mobile-link{display:grid;grid-template-columns:44px 1fr;align-items:baseline;grid-gap:16px;gap:16px;min-height:56px;padding:14px 4px;color:var(--fg-1);text-decoration:none;border-bottom:1px solid var(--line-quiet);font:500 clamp(22px,6.5vw,28px)/1.1 var(--ff-sans);letter-spacing:-.01em;opacity:0;transform:translateX(18px)}.nn-mobile-drawer.is-open .nn-mobile-link{opacity:1;transform:translateX(0);transition:opacity var(--dur-mid) var(--ease-out),transform var(--dur-mid) var(--ease-out);transition-delay:calc(.12s + var(--i, 0) * 60ms)}.nn-mobile-link-index{font:500 11px/1 var(--ff-mono);letter-spacing:.18em;color:var(--fg-3);text-transform:uppercase;align-self:center}.nn-mobile-link.active,.nn-mobile-link.active .nn-mobile-link-index{color:var(--nn-azure)}@media (hover:hover){.nn-mobile-link:hover{color:var(--nn-azure)}}.nn-mobile-cta{margin-top:auto;align-self:stretch;justify-content:center;opacity:0;transform:translateY(8px)}.nn-mobile-drawer.is-open .nn-mobile-cta{opacity:1;transform:translateY(0);transition:opacity var(--dur-mid) var(--ease-out),transform var(--dur-mid) var(--ease-out);transition-delay:.4s}@media (prefers-reduced-motion:reduce){.nn-mobile-panel{transition:none}.nn-mobile-backdrop{transition:opacity .15s linear}.nn-mobile-drawer.is-open .nn-mobile-cta,.nn-mobile-drawer.is-open .nn-mobile-link{transition:opacity .15s linear;transition-delay:0s;transform:none}.nn-mobile-trigger-bars>span{transition:none}}@media (max-width:768px){.nn-nav-links{display:none}.nn-mobile-trigger{display:inline-flex}}@media (max-width:480px){:root{--gutter-sm:20px;--section-gap-sm:72px}.nn-container{padding-left:20px;padding-right:20px}.nn-section-head{margin-bottom:32px}.nn-brand-word{display:none}.nn-brand-mark-img{height:28px}.nn-nav-cta{padding:10px 14px;font-size:11px;letter-spacing:.14em}.nn-nav-inner{gap:8px;padding:10px 16px}}@media (max-width:359px){.nn-nav-cta{display:none}}.nn-modal-track{display:flex;overflow:hidden;width:100%}.nn-modal-slide{flex:0 0 100%;min-width:0;display:none}.nn-modal-slide[data-active=true]{display:block}.nn-modal-slide img{width:100%;height:auto;display:block}@media (max-width:768px){.nn-modal-track{overflow-x:auto;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;align-items:flex-start}.nn-modal-track::-webkit-scrollbar{display:none}.nn-modal-slide{display:block;scroll-snap-align:center;aspect-ratio:4/3;background:var(--bg-1)}.nn-modal-slide img{width:100%;height:100%;object-fit:contain}}@supports (field-sizing:content){.nn-field textarea{field-sizing:content}}.nn-folder-card .nn-service-hub-img{border-radius:4px 4px 4px 0}.nn-folder-tab{position:absolute;left:0;bottom:-1px;background:var(--nn-paper);font:500 10px/1 var(--ff-mono);letter-spacing:.24em;padding:8px 14px 7px;border:1px solid var(--line-quiet);border-bottom:0;border-radius:2px 2px 0 0;z-index:1}.nn-folder-count,.nn-folder-tab{display:inline-flex;align-items:center;color:var(--nn-azure-deep)}.nn-folder-count{gap:8px;margin-top:24px;font:500 12px/1 var(--ff-mono);letter-spacing:.14em;padding:10px 14px;border:1px solid var(--nn-hairline-azure);border-radius:999px;background:rgba(57,115,194,.06)}.nn-project-year{font:500 11px/1 var(--ff-mono);letter-spacing:.14em;color:var(--fg-3)}.nn-project-card-brief{font:400 15px/1.55 var(--ff-sans);color:var(--fg-2);margin:0 0 14px;max-width:44ch}.nn-project-card-cta{display:inline-flex;align-items:center;gap:8px;font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-azure);transition:color var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-project-card:hover .nn-project-card-cta{color:var(--nn-azure-deep)}}.nn-folder-jump{display:flex;flex-wrap:wrap;gap:12px}.nn-project-head .nn-page-title{font-size:clamp(40px,6.5vw,72px);max-width:880px}.nn-project-head .nn-page-lead{max-width:660px;font-size:20px;margin-top:24px}.nn-project-hero-section{padding-top:24px;padding-bottom:24px}.nn-project-hero{position:relative;width:100%;aspect-ratio:16/9;overflow:hidden;border-radius:4px;background:var(--bg-2)}.nn-project-hero img{width:100%;height:100%;object-fit:cover;display:block}.nn-project-spec-section{padding-top:56px;padding-bottom:56px}.nn-project-spec-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);grid-gap:64px;gap:64px;align-items:start}.nn-project-spec-meta{position:-webkit-sticky;position:sticky;top:96px;border-top:1px solid var(--nn-azure);padding-top:20px}.nn-project-spec-title{font:500 14px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-azure-deep);margin:0 0 16px}.nn-project-spec-list{gap:0}.nn-project-spec-detail{display:flex;flex-direction:column;gap:40px}.nn-project-spec-block .nn-eyebrow{margin-bottom:16px}.nn-project-bullets{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;border-top:1px solid var(--line-quiet)}.nn-project-bullets li{font:400 17px/1.55 var(--ff-sans);color:var(--fg-1);padding:16px 0 16px 28px;border-bottom:1px solid var(--line-quiet);position:relative}.nn-project-bullets li:before{content:"";position:absolute;left:4px;top:26px;width:12px;height:1px;background:var(--nn-azure)}.nn-project-bullets-mono li{font:400 14px/1.55 var(--ff-mono);letter-spacing:.01em;color:var(--fg-2)}.nn-project-gallery-section{padding-top:48px}.nn-project-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:24px;gap:24px;margin-top:56px}.nn-project-gallery-item{margin:0;position:relative;overflow:hidden;border-radius:4px;aspect-ratio:4/3}.nn-project-gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .9s var(--ease-out)}@media (hover:hover){.nn-project-gallery-item:hover img{transform:scale(1.02)}}.nn-project-gallery-item-wide{grid-column:1/-1;aspect-ratio:21/9}.nn-project-nav-section{border-top:1px solid var(--line-quiet);padding-top:48px;padding-bottom:64px}.nn-project-nav{display:grid;grid-template-columns:1fr 1fr;grid-gap:32px;gap:32px}.nn-project-nav-cell-right{text-align:right}.nn-project-nav-link{display:inline-flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--fg-1);transition:color var(--dur-fast) var(--ease-out);max-width:100%}.nn-project-nav-link-right{align-items:flex-end}.nn-project-nav-title{font:500 22px/1.2 var(--ff-sans);letter-spacing:-.01em}@media (hover:hover){.nn-project-nav-link:hover .nn-project-nav-title{color:var(--nn-azure)}}@media (max-width:1024px){.nn-project-spec-grid{grid-template-columns:1fr;gap:40px}.nn-project-spec-meta{position:static}.nn-project-gallery{grid-template-columns:1fr;gap:20px}.nn-project-gallery-item-wide{aspect-ratio:16/9}}@media (max-width:640px){.nn-project-hero{aspect-ratio:4/3}.nn-project-nav{grid-template-columns:1fr;gap:28px}.nn-project-nav-cell-right{text-align:left}.nn-project-nav-link-right{align-items:flex-start}.nn-project-nav-title{font-size:19px}.nn-folder-jump .nn-btn{flex:1 1 auto;text-align:center}}.nn-folder-collage{display:grid;grid-template-columns:2fr 1fr;grid-gap:8px;gap:8px;aspect-ratio:4/3;margin-bottom:22px;border-radius:4px 4px 4px 0}.nn-folder-collage,.nn-folder-collage-main{position:relative;overflow:hidden;background:var(--bg-2)}.nn-folder-collage-side{display:grid;grid-template-rows:1fr 1fr;grid-gap:8px;gap:8px;min-width:0}.nn-folder-collage-thumb{position:relative;overflow:hidden;background:var(--bg-2)}.nn-folder-collage img{object-fit:cover;transition:transform .9s var(--ease-out)}@media (hover:hover){.nn-folder-card:hover .nn-folder-collage-main img{transform:scale(1.04)}.nn-folder-card:hover .nn-folder-collage-thumb img{transform:scale(1.06)}}.nn-folder-collage-more{inset:0;display:flex;justify-content:center;background:rgba(11,26,46,.55);font:500 18px/1 var(--ff-mono);letter-spacing:.02em;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.nn-folder-collage-more,.nn-project-img-count{position:absolute;align-items:center;color:var(--nn-paper)}.nn-project-img-count{left:12px;bottom:12px;display:inline-flex;gap:6px;padding:6px 10px;background:rgba(11,26,46,.78);font:500 11px/1 var(--ff-mono);letter-spacing:.08em;border-radius:2px;z-index:2;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.nn-project-img-count svg{display:block}.nn-project-img-overlay{position:absolute;inset:0;display:flex;align-items:flex-end;justify-content:flex-end;padding:16px;background:linear-gradient(180deg,rgba(11,26,46,0) 55%,rgba(11,26,46,.55));opacity:0;transition:opacity var(--dur-mid) var(--ease-out);z-index:1;pointer-events:none}@media (hover:hover){.nn-project-card:hover .nn-project-img-overlay{opacity:1}}.nn-project-img-overlay-cta{font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;color:var(--nn-paper);padding:10px 14px;border:1px solid rgba(247,250,252,.6);border-radius:2px;background:rgba(11,26,46,.4)}.nn-project-spec-cta{margin-top:32px;padding-top:24px;border-top:1px solid var(--line-quiet);display:flex;flex-direction:column;gap:14px}.nn-project-spec-cta .nn-eyebrow{margin-bottom:4px}.nn-project-spec-phone{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--fg-1);padding:14px 16px;border:1px solid var(--nn-hairline-azure);border-radius:4px;background:rgba(57,115,194,.04);transition:border-color var(--dur-fast) var(--ease-out),background var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-project-spec-phone:hover{border-color:var(--nn-azure);background:rgba(57,115,194,.08)}}.nn-project-spec-phone-label{font:500 10px/1 var(--ff-sans);letter-spacing:.24em;text-transform:uppercase;color:var(--nn-azure-deep)}.nn-project-spec-phone-num{font:500 22px/1.1 var(--ff-mono);letter-spacing:.01em;color:var(--fg-1)}.nn-project-spec-estimate{width:100%;text-align:center}.nn-project-gallery-item{background:var(--bg-2);border:0;padding:0;cursor:zoom-in;font:inherit;color:inherit;text-align:left;width:100%;display:block}.nn-project-gallery-item-zoom{position:absolute;right:12px;top:12px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:rgba(11,26,46,.7);color:var(--nn-paper);border-radius:999px;opacity:0;transform:translateY(-4px);transition:opacity var(--dur-mid) var(--ease-out),transform var(--dur-mid) var(--ease-out);z-index:1;pointer-events:none;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@media (hover:hover){.nn-project-gallery-item:hover .nn-project-gallery-item-zoom{opacity:1;transform:translateY(0)}}.nn-project-gallery-item:focus-visible{outline:2px solid var(--nn-azure);outline-offset:3px}.nn-lightbox{position:fixed;inset:0;z-index:200;background:rgba(7,12,22,.92);display:grid;grid-template-rows:auto 1fr auto;grid-template-columns:auto 1fr auto;grid-template-areas:"close  counter close-spacer" "prev   stage   next" "caption caption caption";padding:24px;grid-gap:16px;gap:16px;animation:nn-lightbox-fade .22s var(--ease-out)}@keyframes nn-lightbox-fade{0%{opacity:0}to{opacity:1}}.nn-lightbox-close{grid-area:close;justify-self:start;background:rgba(247,250,252,.1);color:var(--nn-paper);border:1px solid rgba(247,250,252,.25);font:500 11px/1 var(--ff-sans);letter-spacing:.22em;text-transform:uppercase;padding:12px 16px;cursor:pointer;border-radius:2px;transition:background var(--dur-fast) var(--ease-out)}@media (hover:hover){.nn-lightbox-close:hover{background:rgba(247,250,252,.2)}}.nn-lightbox-counter{grid-area:counter;justify-self:center;align-self:center;font:500 12px/1 var(--ff-mono);letter-spacing:.18em;color:rgba(247,250,252,.75)}.nn-lightbox-stage{grid-area:stage;position:relative;display:flex;align-items:center;justify-content:center;min-height:0;min-width:0}.nn-lightbox-stage img{max-width:100%;max-height:100%;width:auto!important;height:auto!important;object-fit:contain;display:block;border-radius:2px;box-shadow:0 30px 60px rgba(0,0,0,.4)}.nn-lightbox-arrow{width:56px;height:56px;align-self:center;background:rgba(247,250,252,.1);color:var(--nn-paper);border:1px solid rgba(247,250,252,.25);border-radius:999px;font:500 22px/1 var(--ff-sans);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.nn-lightbox-arrow-prev{grid-area:prev}.nn-lightbox-arrow-next{grid-area:next}@media (hover:hover){.nn-lightbox-arrow:hover{background:rgba(247,250,252,.2);transform:scale(1.05)}}.nn-lightbox-caption{grid-area:caption;text-align:center;font:500 13px/1 var(--ff-sans);letter-spacing:.12em;text-transform:uppercase;color:rgba(247,250,252,.85);display:flex;flex-direction:column;gap:8px}.nn-lightbox-caption-hint{font:400 11px/1 var(--ff-mono);letter-spacing:.08em;text-transform:none;color:rgba(247,250,252,.55)}@media (max-width:640px){.nn-folder-collage{grid-template-columns:1fr;grid-template-rows:2fr 1fr;aspect-ratio:4/3}.nn-folder-collage-side{grid-template-rows:none;grid-template-columns:1fr 1fr}.nn-lightbox{grid-template-rows:auto auto 1fr auto auto;grid-template-columns:1fr 1fr;grid-template-areas:"close  counter" "stage  stage" "stage  stage" "prev   next" "caption caption";padding:16px;gap:12px}.nn-lightbox-arrow{width:100%;height:48px;border-radius:4px}}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/e1aab0933260df4d-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/b7387a63dd068245-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/36966cca54120369-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:Space Grotesk Fallback;src:local("Arial");ascent-override:89.71%;descent-override:26.62%;line-gap-override:0.00%;size-adjust:109.69%}.__className_61695a{font-family:Space Grotesk,Space Grotesk Fallback;font-style:normal}.__variable_61695a{--nn-font-sans:"Space Grotesk","Space Grotesk Fallback"}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/edc640959b0c7826-s.woff2) format("woff2");unicode-range:u+0460-052f,u+1c80-1c8a,u+20b4,u+2de0-2dff,u+a640-a69f,u+fe2e-fe2f}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ac0e76ddaeeb7981-s.woff2) format("woff2");unicode-range:u+0301,u+0400-045f,u+0490-0491,u+04b0-04b1,u+2116}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/64d784ea54a4acde-s.woff2) format("woff2");unicode-range:u+0370-0377,u+037a-037f,u+0384-038a,u+038c,u+038e-03a1,u+03a3-03ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/ff71da380fbe67dd-s.woff2) format("woff2");unicode-range:u+0102-0103,u+0110-0111,u+0128-0129,u+0168-0169,u+01a0-01a1,u+01af-01b0,u+0300-0301,u+0303-0304,u+0308-0309,u+0323,u+0329,u+1ea0-1ef9,u+20ab}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/6d831b18ae5b01dc-s.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/_next/static/media/558ca1a6aa3cb55e-s.p.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}@font-face{font-family:JetBrains Mono Fallback;src:local("Arial");ascent-override:75.79%;descent-override:22.29%;line-gap-override:0.00%;size-adjust:134.59%}.__className_6d24ac{font-family:JetBrains Mono,JetBrains Mono Fallback;font-style:normal}.__variable_6d24ac{--nn-font-mono:"JetBrains Mono","JetBrains Mono Fallback"}