/* Homepage only: editorial layout, connected to the shared site shell. */
body.home{background:#fafaf6;color:#222a26}
.home #main-content{padding:0!important}
.np-home{--ink:#183d30;--line:#d9dfd6;--lime:#d9f278;--muted:#566359;font-size:16px;line-height:1.8}
.np-home h1,.np-home h2,.np-home h3{letter-spacing:-.055em;line-height:1.12;color:var(--ink);text-wrap:balance}
.np-home h1{font-size:clamp(2.7rem,4.5vw,4.6rem);margin:25px 0}
.np-home h2{font-size:clamp(2.1rem,3.5vw,3.6rem);margin:14px 0 25px}
.np-home h3{font-size:1.55rem}
.np-home p{margin:0 0 20px}
.np-home a{color:inherit}
.np-home a:focus-visible,.np-home summary:focus-visible{outline:3px solid #237743;outline-offset:5px}
.np-home .np-eyebrow{font-size:.69rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;line-height:1.6}
.np-hero{padding-block:85px 60px}
.np-hero h1 em{font-style:normal;color:#55703a}
.np-hero-copy>p:not(.np-eyebrow){max-width:620px;color:var(--muted)}
.np-home .np-intro{font-size:1.16rem;line-height:1.7}
.np-dot{width:8px;height:8px;display:inline-block;background:#5f7d38;border-radius:50%;margin-right:7px}
.np-button{background:var(--ink);color:white!important;padding:14px 21px;font-size:.86rem}
.np-button:hover{background:#2c5942}
.np-text-link{font-size:.84rem;font-weight:600;text-decoration:underline;text-underline-offset:5px;line-height:1.7}
.np-hero-foot{border-top:1px solid var(--line);font-size:.73rem;color:var(--muted)}
.np-product-map{background:#193b30;color:#edf2e8;padding:30px;border-radius:13px;box-shadow:16px 18px 0 #edf0df;transform:rotate(1deg)}
.np-map-top,.np-map-bottom{font-size:.57rem;letter-spacing:.14em}
.np-map-top{color:#cfddc7}
.np-map-dot{width:8px;height:8px;background:var(--lime);border-radius:50%}
.np-map-title{font-family:Montserrat,sans-serif;font-size:2rem;font-weight:600;letter-spacing:-.05em;line-height:1.2;padding:40px 0 28px}
.np-map-title span{color:var(--lime)}
.np-map-row{padding:20px 0;border-top:1px solid #4b6658}
.np-map-row>span:last-child{margin-left:auto;color:var(--lime)}
.np-map-row strong{font-size:1rem}
.np-map-row small{font-size:.7rem;color:#c5d3c5}
.np-map-index{font-size:.66rem;color:var(--lime)}
.np-map-bottom{margin-top:24px;padding-top:20px;border-top:1px solid #4b6658;color:#cad8c6}
.np-jump{border-block:1px solid var(--line);background:#f1f3e9}
.np-jump a{font-size:.76rem;text-decoration:none;font-weight:600}
.np-jump a:hover{text-decoration:underline}
.np-section{padding-block:85px;scroll-margin-top:95px}
.np-home .np-large{font-size:1.2rem;line-height:1.7}
.np-section-head p:not(.np-eyebrow){color:var(--muted);max-width:470px}
.np-capabilities{background:#f0f2e9;border-block:1px solid var(--line)}
.np-capability{border:1px solid #dfe4d9}
.np-cap-top{color:#536b42;font-size:.78rem}
.np-capability .np-cap-label{font-size:.72rem;letter-spacing:.04em;font-weight:600;color:#53634f;margin-bottom:12px}
.np-capability h3{font-size:1.9rem;margin-bottom:22px;max-width:450px}
.np-capability h3 a{text-decoration:none}
.np-capability h3 a:hover{text-decoration:underline;text-underline-offset:5px}
.np-capability>p:not(.np-cap-label){font-size:.9rem;line-height:1.85;color:#4c5a51}
.np-tags{margin:6px 0 25px}
.np-tags li{background:#f0f4e8;color:#3d5338;border:1px solid #e0e6d6;font-size:.66rem;padding:5px 9px;border-radius:3px;line-height:1.5}
.np-capability>.np-text-link{margin-top:auto;align-self:start}
.np-step-number{border-top:2px solid #809162;font-size:.72rem;color:#57683c}
.np-process h3{font-size:1.25rem;margin:18px 0}
.np-process strong{display:block;font-size:.85rem;line-height:1.6;margin-bottom:17px}
.np-process p{font-size:.82rem;color:var(--muted);line-height:1.8}
.np-tech-band{background:#193b30;color:#d8e2d7}
.np-tech-band h2,.np-tech-band h3{color:#f4f6ec}
.np-tech-band .np-eyebrow{color:var(--lime)}
.np-tech-intro{max-width:770px}
.np-tech-grid article{border-top:1px solid #4a6354}
.np-tech-grid h3{font-size:1.25rem;letter-spacing:-.025em}
.np-tech-grid p{font-size:.86rem}
.np-tech-grid .np-stack{color:var(--lime);font-size:.82rem}
.np-story h3{font-size:1.9rem;max-width:450px;margin-bottom:22px}
.np-story p:not(.np-eyebrow){font-size:.9rem}
.np-story-green{background:#e4edcb}
.np-story-lilac{background:#eae5f2}
.np-portfolio-note{font-size:.85rem;color:var(--muted);margin-top:25px!important}
.np-tools-section{background:#f1f2eb;border-block:1px solid var(--line)}
.np-tool-grid article{border:1px solid #dce2d6}
.np-tool-symbol{width:33px;height:33px;background:#ebf2dc;color:#3b5834}
.np-tool-grid h3{font-size:1.1rem;letter-spacing:-.025em;line-height:1.4}
.np-tool-grid h3 a{text-decoration:none}
.np-tool-grid p{font-size:.8rem;color:var(--muted)}
.np-tool-grid .np-text-link{margin-top:auto}
.np-audit-callout{background:#e1edc4}
.np-audit-callout h3{font-size:1.7rem}
.np-audit-callout p:not(.np-eyebrow){max-width:730px;font-size:.85rem;margin-bottom:0}
.np-audit-callout .np-button{flex-shrink:0}
.np-article-image{aspect-ratio:16/9;background:#e9eddf}
.np-article-image img{width:100%;height:100%;object-fit:cover;box-shadow:none;border:0}
.np-image-fallback{font-size:.8rem;letter-spacing:.1em}
.np-article-meta{margin:17px 0 12px;font-size:.65rem;color:var(--muted)}
.np-article-grid h3{font-size:1.24rem;line-height:1.35;letter-spacing:-.025em}
.np-article-grid h3 a{text-decoration:none}
.np-article-grid h3 a:hover{text-decoration:underline}
.np-article-grid p{font-size:.83rem;color:var(--muted)}
.np-article-grid .np-text-link{margin-top:auto}
.np-working{border-top:1px solid var(--line)}
.np-engagements article{padding:0 0 22px;margin-bottom:22px;border-bottom:1px solid var(--line)}
.np-engagements h3{font-size:1.25rem;letter-spacing:-.025em}
.np-engagements p{font-size:.9rem;color:var(--muted)}
.np-faq{border-top:1px solid var(--line)}
.np-faq details{border-top:1px solid var(--line);padding:22px 0}
.np-faq summary{font-size:1rem;cursor:pointer;font-weight:600;color:var(--ink)}
.np-faq details p{max-width:850px;margin:20px 0 0;color:var(--muted);font-size:.93rem}
.np-final-cta{background:var(--lime);margin-bottom:70px}
.np-final-cta h2{font-size:clamp(2.5rem,4vw,4rem)}
.np-final-cta>p:not(.np-eyebrow){max-width:650px}


/* Bootstrap controls containers, rows, columns, flex and responsive spacing. */
.np-home{--bs-border-color:var(--line)}

@media(max-width:991.98px){.np-hero h1{font-size:3rem}
.np-map-title{font-size:1.65rem}
.np-product-map{padding:23px}
}

@media(max-width:767.98px){.np-hero{padding-block:42px 50px}
.np-hero h1{font-size:clamp(2.45rem,7.6vw,3.5rem)}
.np-product-map{transform:none;box-shadow:8px 8px 0 #edf0df;margin-right:8px}
.np-section{padding-block:50px}
.np-home h2{font-size:2.25rem}
.np-capability h3{font-size:1.7rem}
.np-hero-foot{font-size:.66rem}
.np-jump a{font-size:.7rem}
}

@media(max-width:575.98px){.np-article-grid h3{font-size:1.4rem}
.np-home .np-intro{font-size:1.05rem}
.np-hero .np-eyebrow{font-size:.61rem}
.np-story h3{font-size:1.65rem}
}

/* Motion is limited to small feedback and one-time reveals; no animation library. */
.np-jump a[aria-current="location"]{color:var(--ink);text-decoration:underline;text-decoration-thickness:2px;text-underline-offset:6px}
.np-faq details[open]{background:#f0f3e8}
.np-home .np-capability:focus-within,.np-tool-grid article:focus-within{border-color:#809b60}
@media(prefers-reduced-motion:no-preference){
 html.np-smooth-scroll{scroll-behavior:smooth}
 .np-home .np-button,.np-home .np-capability,.np-home .np-story,.np-tool-grid article,.np-article-image img,.np-product-map,.np-map-row{transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease,background-color .22s ease}
 .np-button span[aria-hidden],.np-cap-top>span:last-child{transition:transform .22s ease}
 .np-home .np-button:active{transform:translateY(1px)}
 .np-map-dot{animation:np-status-pulse 2s ease-in-out 3}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .np-home .np-button:hover{transform:translateY(-2px);box-shadow:0 6px 16px #183d3020}
 .np-button:hover span[aria-hidden],.np-capability:hover .np-cap-top>span:last-child{transform:translate(3px,-3px)}
 .np-home .np-capability:hover,.np-home .np-story:hover,.np-tool-grid article:hover{transform:translateY(-4px);box-shadow:0 10px 24px #183d300c;border-color:#809b60}
 .np-article-image:hover img{transform:scale(1.035)}
 .np-product-map:hover{transform:rotate(0deg) translateY(-3px)}
 .np-map-row:hover{transform:translateX(3px);background:#ffffff06}
}
@keyframes np-status-pulse{50%{box-shadow:0 0 0 6px #d9f27820}}
@media print{.np-home *{animation:none!important;transition:none!important}}
/* Core creative services and decorative, self-hosted vector motion. */
.np-design-card{background:#edf1e2;border:1px solid #dce4cf}
.np-design-grid>.col:nth-child(3n+2) .np-design-card{background:#eee9f3;border-color:#e1d8e9}
.np-design-grid>.col:nth-child(3n) .np-design-card{background:#f3eddf;border-color:#e7ddc8}
.np-design-card h3{font-size:1.55rem;letter-spacing:-.04em;margin-bottom:20px}
.np-design-card p{font-size:.9rem;color:var(--muted)}
.np-motion-section{position:relative;isolation:isolate}
.np-motion-section>:not(.np-ambient-lines):not(.np-motion-toggle){position:relative;z-index:1}
.np-ambient-lines{position:absolute;inset:0;width:100%;height:100%;color:#769450;pointer-events:none;z-index:0;overflow:hidden;opacity:.22;mask-image:linear-gradient(90deg,transparent,#000 12%,#000 90%,transparent)}
.np-line-traces{opacity:.7}
.np-motion-toggle{position:absolute;right:12px;top:20px;z-index:2;border:1px solid #bcc8ac;color:#40543b;font-size:.68rem;background:#fafaf6e6}
#design-services{scroll-margin-top:95px}
@media(prefers-reduced-motion:no-preference){
 .np-line-field{animation:np-line-drift 16s ease-in-out infinite alternate;transform-origin:center;animation-play-state:paused}
 .np-line-traces{animation:np-line-travel 14s linear infinite;animation-play-state:paused}
 .np-line-traces path:last-child{stroke-dashoffset:700}
 .np-scene-visible .np-line-field,.np-scene-visible .np-line-traces{animation-play-state:running}
 .np-home.np-motion-paused .np-line-field,.np-home.np-motion-paused .np-line-traces,.np-home.np-motion-paused .np-map-dot{animation-play-state:paused}
 .np-design-card{transition:transform .25s ease,box-shadow .25s ease}
}
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 .np-design-card:hover{transform:translateY(-6px);box-shadow:0 12px 28px #183d3014}
}
@keyframes np-line-drift{from{transform:translate(-20px,-14px) rotate(-1deg)}to{transform:translate(22px,18px) rotate(1deg)}}
@keyframes np-line-travel{from{stroke-dashoffset:1500}to{stroke-dashoffset:0}}
@media(max-width:767.98px){.np-motion-toggle{top:6px}.np-ambient-lines{opacity:.15}}
@media print{.np-ambient-lines,.np-motion-toggle{display:none}}
