/* Original page-specific artwork and finite, reduced-motion-aware animations. */
.ngv-art{width:100%;max-width:640px;margin-inline:auto;isolation:isolate}
.ngv-art svg{display:block;width:100%;height:auto;overflow:visible;font-family:Proximanova-regular,sans-serif}
.ngv-art text{font-family:Proximanova-regular,sans-serif}
.ngv-photo{margin:0;overflow:hidden;border:1px solid #e1e7da;border-radius:12px;background:#fff;box-shadow:0 12px 38px #2637130a}
.ngv-photo>img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;transition:transform .6s cubic-bezier(.2,.65,.3,1)}
.ngv-photo:hover>img{transform:scale(1.025)}
.ngv-photo figcaption{display:block;padding:10px 16px;font-size:12px;line-height:1.5;color:#666;background:#fff}
.ngv-photo figcaption a{color:#4b7215;text-decoration:underline;text-underline-offset:3px}
.ngv-art.is-in-view .ngv-node{animation:ngv-assemble .9s both cubic-bezier(.2,.75,.25,1)}
.ngv-art.is-in-view .ngv-node--two{animation-delay:.18s}
.ngv-art.is-in-view .ngv-node--three{animation-delay:.36s}
.ngv-art.is-in-view .ngv-node--four{animation-delay:.54s}
.ngv-art.is-in-view .ngv-track{stroke-dasharray:1100;animation:ngv-connect 2.7s both .3s ease}
.ngv-art.is-in-view .ngv-cursor{animation:ngv-click 2s both .5s ease}
.ngv-art.is-in-view .ngv-status{animation:ngv-status 2.8s both .4s ease}
@keyframes ngv-assemble{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes ngv-connect{from{stroke-dashoffset:1100}to{stroke-dashoffset:0}}
@keyframes ngv-click{0%{opacity:0;transform:translate(25px,20px)}45%{opacity:1;transform:translate(0,0)}65%{transform:translate(-4px,-4px)}100%{opacity:1;transform:translate(0,0)}}
@keyframes ngv-status{0%,35%{opacity:.25}50%,65%{opacity:1}80%{opacity:.4}100%{opacity:1}}
.ngm-hero-art{margin:0}
.ngm-hero-art .ngv-art{max-width:600px}
.ngm .ngm-spotlight-image.ngv-photo>img{aspect-ratio:4/3}
.ngm .ngm-spotlight-image.ngv-photo figcaption{position:static}
.ngm .ngm-contact-photo.ngv-photo>img{aspect-ratio:16/10}
.ngm-contact-copy>.ngv-art{max-width:480px;margin-top:20px}
.ngm-cta .ngm-cta-photo{background:radial-gradient(circle at 18% 60%,#36580f 0 4%,transparent 4.2%),repeating-linear-gradient(125deg,transparent 0 76px,#3d650d 77px 79px,transparent 80px 150px),#75af36;opacity:.22}
.ngm-page--seo .ngm-cta .ngm-cta-photo{background:repeating-radial-gradient(circle at 12% 48%,transparent 0 63px,#496e18 64px 66px,transparent 67px 105px);opacity:.3}
.ngm-page--hosting .ngm-cta .ngm-cta-photo{background:linear-gradient(90deg,transparent 49%,#466c17 50%,transparent 51%),linear-gradient(0deg,transparent 49%,#466c17 50%,transparent 51%);background-size:110px 110px;opacity:.18}
.ngm-page--contact .ngm-cta .ngm-cta-photo{background:repeating-linear-gradient(45deg,transparent 0 55px,#486e18 56px 58px,transparent 59px 100px);opacity:.18}
.ngm-fee-section{background:#f5f8f0}
.ngm-fees{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px;margin:auto}
.ngm-fee{padding:32px;background:#fff;border:1px solid #d9e3cc;border-radius:12px;box-shadow:0 14px 35px #283e1207;transition:transform .25s,border-color .25s}
.ngm-fee:hover{transform:translateY(-4px);border-color:#84c041}
.ngm-fee .ngm-kicker{font-size:12px;letter-spacing:1.2px;margin-bottom:14px}
.ngm-fee h3{font-size:27px;line-height:1.2;margin:0 0 15px}
.ngm-fee p:last-child{margin-bottom:0}
.ngm-fee-contact{max-width:740px;margin:28px auto 0;text-align:center}
.ngm-fee-contact>.ngm-link{margin-top:8px}
.ngh .ngh-graphic-stage{background:#f7f9f3;border:1px solid #e0e7d8;border-radius:16px;padding:12px}
.ngh .ngh-graphic-stage__ring{display:none}
.ngh .ngh-about__photo.ngv-photo{overflow:hidden}
.ngh .ngh-about__photo.ngv-photo>img{aspect-ratio:5/4;height:auto}
.ngh .ngh-about__badge.ngv-about-stamp{width:210px;min-height:160px;background:#262626;display:flex;align-items:center;justify-content:center;padding:28px;box-shadow:0 18px 45px #0002;left:auto;right:22px;bottom:auto;top:24px}
.ngh .ngh-about__badge.ngv-about-stamp span{color:#fff;font-size:23px;line-height:1.25;text-align:left}
.ngh .ngh-about__badge.ngv-about-stamp strong{color:#84c041}
.ngh .ngh-areas__art>.ngv-art{max-width:590px}
.ngh .ngh-cta__photo{background:repeating-radial-gradient(circle at 90% 50%,transparent 0 90px,#2d4a0c 91px 94px,transparent 95px 150px);opacity:.16}
.ngh-bitcoin__visual.is-in-view>svg{animation:ngv-assemble 1s both}
.ngw-design .ngw-hero__visual>.ngv-art{max-width:650px}
.ngw-design .ngw-editorial-visual.ngv-photo{max-width:100%;margin-top:26px;padding:0}
.ngw-design .ngw-project.ngv-client-card{min-height:210px;display:flex;flex-direction:column;justify-content:space-between;padding:30px;border:1px solid #dfe7d5;border-radius:12px;background:linear-gradient(135deg,#f4f8ee,#fff);transition:transform .3s}
.ngw-design .ngw-project.ngv-client-card:hover{transform:translateY(-5px)}
.ngv-client-mark{display:flex;align-items:center;gap:16px;color:#4b7215;font-size:14px;letter-spacing:1px;text-transform:uppercase}
.ngv-client-mark b{font-size:32px;line-height:1;color:#262626}
.ngw-design .ngv-client-card .ngw-project__caption{padding:22px 0 0;border-top:1px solid #dfe7d5;margin-top:25px}
.ngw-design .ngv-client-card .ngw-project__caption h3{font-size:26px}
.ngv-motion-item.is-in-view{animation:ngv-assemble .65s both}
@media(max-width:800px){.ngm-fees{gap:18px}.ngm-fee{padding:26px}.ngm-contact-copy>.ngv-art{max-width:430px}.ngw-design .ngw-project.ngv-client-card{padding:24px}.ngh .ngh-about__badge.ngv-about-stamp{width:180px;min-height:135px;padding:23px}}
@media(max-width:540px){.ngm-fees{grid-template-columns:1fr}.ngm-fee{padding:25px}.ngm-fee h3{font-size:25px}.ngv-photo figcaption{font-size:11px;padding:9px 12px}.ngm-contact-copy>.ngv-art{margin-top:10px}.ngh .ngh-about__badge.ngv-about-stamp{width:155px;min-height:110px;padding:20px}.ngh .ngh-about__badge.ngv-about-stamp span{font-size:19px}}
@media(prefers-reduced-motion:reduce){.ngv-art *, .ngv-motion-item, .ngh-bitcoin__visual, .ngh-bitcoin__visual>svg{animation:none!important;transition:none!important}.ngv-photo>img,.ngm-fee,.ngw-design .ngw-project.ngv-client-card{transition:none!important;transform:none!important}}
.ngm .ngv-contact-head{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:36px;max-width:1080px;text-align:left;margin-bottom:25px}
.ngv-contact-head .ngv-art{max-width:420px}
@media(max-width:800px){.ngm .ngv-contact-head{gap:20px}}
@media(max-width:540px){.ngm .ngv-contact-head{grid-template-columns:1fr;text-align:center;gap:8px}.ngv-contact-head .ngv-art{max-width:330px}}
