/* Norogami: ink, cobalt and a sculptural brand across screen sizes. */
.n-home{--night:#10131b;--night-muted:#aab2c6;--electric:#91aaff}
.n-home>.header{position:absolute;inset:0 0 auto;z-index:5;height:86px;border-color:#ffffff20;color:#f5f4ee}
.n-home>.header .brand-dev{color:var(--electric)}
.n-home>.header .brand-symbol{background:#5675f2}
.n-home>.header .header-contact{border-color:#ffffff60}
.n-home>.header .header-contact:hover{background:#f5f4ee;color:var(--night)}
.n-home>.header nav a:hover,.n-home>.header nav a[aria-current]{color:var(--electric)}
.n-home :focus-visible{outline-color:#6484ff}
.n-hero{position:relative;isolation:isolate;overflow:clip;background:var(--night);color:#f5f4ee;padding-top:86px}
.n-hero::before{content:"";position:absolute;inset:0;z-index:-1;background-image:linear-gradient(90deg,#6377b309 1px,transparent 1px);background-size:calc(100% / 12) 100%;pointer-events:none}
.n-masthead{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-top:25px}
.n-wordmark{font-size:clamp(5rem,11.5vw,10.25rem);font-weight:600;letter-spacing:-.085em;line-height:1.06;white-space:nowrap}
.n-wordmark>span{display:inline-block;vertical-align:top;font-size:clamp(.75rem,1.4vw,1.2rem);font-weight:500;letter-spacing:.07em;padding-top:.95em;margin-left:20px;color:var(--electric)}
.n-specialty{font-size:.75rem;line-height:1.6;color:var(--night-muted);align-self:flex-start;margin-top:28px}
.n-hero-body{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:50px;align-items:center;padding-block:28px 38px}
.n-hero-copy{position:relative;z-index:2}
.n-hero .eyebrow{color:var(--night-muted);font-size:.65rem;margin-bottom:19px}
.n-hero h1{font-size:clamp(2.5rem,4vw,3.65rem);font-weight:500;letter-spacing:-.055em;line-height:1.08;max-width:560px}
.n-hero h1 em{color:var(--electric);white-space:nowrap}
.n-hero-description{font-size:.975rem;max-width:455px;color:#b7bfd1;margin-top:22px;line-height:1.65}
.n-hero .actions{align-items:center;margin-top:25px;gap:22px}
.n-hero .primary{background:#4565dc;gap:22px}
.n-hero .primary:hover{background:#4969df}
.n-hero .primary span{font-size:1.2rem;transition:transform .25s}
.n-hero .primary:hover span{transform:translate(2px,-2px)}
.n-project-link{font-size:.875rem;display:inline-flex;gap:12px;align-items:center;min-height:48px}
.n-project-link span{transition:transform .25s}
.n-project-link:hover span{transform:translateY(4px)}
.n-hero-note{font-size:.7rem;color:#929db7;margin-top:18px;max-width:410px;line-height:1.6}
.n-art{position:relative;min-width:0;align-self:stretch;display:flex;align-items:center;justify-content:center;perspective:950px}
.n-art-depth{width:115%;max-width:500px;flex-shrink:0;transform:rotateX(var(--n-rx,0deg)) rotateY(var(--n-ry,0deg));transition:transform .45s ease-out}
.n-sculpture{width:100%;height:auto;display:block;overflow:visible;transform:translateY(var(--n-scroll,0px))}
.n-art-caption{position:absolute;bottom:10px;right:12px;color:#8390b0;letter-spacing:.14em;font-size:.5rem}
.n-hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid #ffffff20;padding-block:20px 24px;color:#aab2c6;font-size:.7rem}
.n-hero-bottom a{display:inline-flex;gap:25px;align-items:center;min-height:32px;color:#e4e8f4}
.n-hero-bottom a span{font-size:1.2rem}
.n-home .business-section{padding-top:90px}
.n-home .section-heading h2,.n-home .business-intro h2,.n-home .d-intro h2{max-width:100%}
.n-home .text-link,.n-home .tile-link{transition:color .2s,border-color .2s}
.n-home .text-link:hover{color:var(--blue);border-color:var(--blue)}
.n-home .stack-group li{transition:color .25s,transform .25s}
@media(hover:hover) and (pointer:fine){.n-home .stack-group li:hover{color:var(--blue);transform:translateX(5px)}.n-home .service-list article{transition:padding-left .25s}.n-home .service-list article:hover{padding-left:10px}}
.n-home .process-grid li{position:relative}
.n-home .process-grid li::before{content:"";position:absolute;top:-1px;left:0;right:0;height:2px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .65s ease}
.n-home .process-grid li.is-revealed::before{transform:scaleX(1)}
.n-home .n-contact{width:100%;margin:0;border:0;background:var(--night);color:#f5f4ee;padding:85px 0 90px;overflow:clip}
.n-contact-inner{position:relative;isolation:isolate}
.n-home .n-contact .eyebrow{color:var(--night-muted)}
.n-home .n-contact h2{font-size:clamp(3.5rem,7.4vw,7rem);max-width:800px}
.n-home .n-contact h2 em{color:var(--electric)}
.n-home .n-contact .n-contact-inner>p:not(.eyebrow){max-width:560px;color:#b7bfd1;margin:26px 0 30px;font-size:1rem}
.n-contact .contact-handle{color:var(--night-muted)}
.n-contact .primary{background:#4565dc}
.n-contact .primary:hover{background:#4969df}
.n-contact-symbol{position:absolute;z-index:-1;right:0;top:-55px;font-size:clamp(15rem,35vw,33rem);line-height:1;font-weight:700;letter-spacing:-.1em;color:transparent;-webkit-text-stroke:1px #6e89e340;transform:rotate(-9deg);user-select:none}
.n-home>.footer{background:var(--paper)}
@media(prefers-reduced-motion:no-preference){
  .n-wordmark{animation:n-type-in .9s cubic-bezier(.16,1,.3,1) both}
  .n-enter{animation:n-copy-in .7s cubic-bezier(.16,1,.3,1) both;animation-delay:.15s}
  h1.n-enter{animation-delay:.23s}.n-hero-description.n-enter{animation-delay:.31s}.actions.n-enter{animation-delay:.39s}.n-hero-note.n-enter{animation-delay:.47s}
  .n-plane{animation:n-assemble 1.15s cubic-bezier(.16,1,.3,1) both;transform-box:fill-box;transform-origin:center}
  .n-plane-left{--from-x:-42px;--from-y:28px;animation-delay:.15s}
  .n-plane-right{--from-x:36px;--from-y:-35px;animation-delay:.3s}
  .n-plane-cross{--from-x:0px;--from-y:48px;animation-delay:.45s}
  .n-orbits,.n-measure,.n-art-caption{animation:n-copy-in 1.2s .4s both}
  .n-solid{animation:n-float 8s 1.7s ease-in-out infinite;animation-play-state:paused}
  .n-hero.is-in-view .n-solid{animation-play-state:running}
}
@keyframes n-type-in{from{opacity:0;transform:translateY(22px);clip-path:inset(0 0 100% 0)}to{opacity:1;transform:none;clip-path:inset(0)}}
@keyframes n-copy-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@keyframes n-assemble{from{opacity:0;transform:translate(var(--from-x),var(--from-y))}to{opacity:1;transform:none}}
@keyframes n-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}
@media(min-width:1000px) and (max-height:780px){.n-masthead{padding-top:15px}.n-wordmark{font-size:min(10vw,8.3rem)}.n-hero-body{padding-block:14px 24px}.n-hero h1{font-size:3rem}.n-hero-description{margin-top:17px}.n-hero .actions{margin-top:19px}.n-hero-bottom{padding-block:12px 16px}.n-art-depth{width:100%;max-width:400px}}
@media(max-width:1000px){.n-specialty{display:none}.n-hero-body{gap:10px;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr)}.n-art-depth{width:120%}.n-hero h1{font-size:clamp(2.1rem,4.7vw,3rem)}.n-hero .actions{gap:10px 16px}.n-hero-note{max-width:340px}}
@media(max-width:760px){
  .n-home>.header{height:74px}.n-hero{padding-top:74px}.n-home>.header .brand-symbol{width:28px;height:28px;font-size:1.15rem}.n-home>.header .brand{font-size:1.05rem}
  .n-home>.header .header-contact{font-size:.65rem;padding:9px 11px}
  .n-masthead{padding-top:22px;gap:0}.n-wordmark{font-size:14.5vw;letter-spacing:-.08em}.n-wordmark>span{font-size:.6rem;margin-left:8px;padding-top:1em}
  .n-hero-body{position:relative;display:block;padding-block:24px 21px}.n-hero-copy{max-width:560px}.n-hero .eyebrow{font-size:.55rem;margin-bottom:14px}
  .n-hero h1{font-size:clamp(2rem,7.7vw,3.4rem);max-width:90%}.n-hero h1 em{display:block}.n-hero-description{font-size:.85rem;margin-top:18px;max-width:80%}
  .n-hero .actions{gap:10px 18px;margin-top:19px}.n-hero .button{min-height:48px;padding:12px 18px;font-size:.8rem;gap:14px}.n-project-link{font-size:.75rem}
  .n-hero-note{font-size:.65rem;margin-top:12px;max-width:84%}.n-art{position:absolute;right:-36px;top:-22px;width:190px;height:180px;opacity:.29;z-index:0;pointer-events:none}.n-art-depth{width:100%}.n-art-caption,.n-measure,.n-orbits,.n-orbit-point{display:none}.n-hero-copy{z-index:1}.n-sculpture{transform:none}
  .n-hero-bottom{gap:14px;padding-block:12px 17px;font-size:.6rem}.n-hero-bottom>span{max-width:150px}.n-hero-bottom a{gap:12px}
  .n-home .business-section{padding-top:56px}.n-home .n-contact{padding:60px 0 65px}.n-home .n-contact h2{font-size:clamp(2.7rem,11.3vw,4.8rem)}.n-contact-symbol{right:10px;top:65px;opacity:.6}.n-home .n-contact .n-contact-inner>p:not(.eyebrow){font-size:.9375rem}
}
@media(max-width:360px){.n-home>.header .brand-dev{display:none}.n-hero .actions{gap:5px 13px}.n-hero .button{font-size:.72rem;padding-inline:14px}.n-project-link{font-size:.69rem;gap:7px}.n-art{width:155px;right:-29px;top:-8px}.n-hero-description{max-width:95%}.n-hero-note{max-width:100%}}
@media(max-width:360px) and (max-height:700px){.n-hero .eyebrow,.n-hero-bottom{display:none}.n-hero-body{padding-top:14px}.n-masthead{padding-top:14px}}
@media(prefers-reduced-motion:reduce){.n-art-depth,.n-sculpture{transform:none!important}.n-home .process-grid li::before{transform:scaleX(1)}.n-home .stack-group li:hover{transform:none}.n-home .service-list article:hover{padding-left:0}}

/* Preserve the sculpture's volume and finger-sized links on phones. */
@media(max-width:760px){
  .n-home>.header .header-contact{min-height:44px;display:inline-flex;align-items:center;padding-block:10px}
  .n-home>.header .brand{min-height:44px}
  .n-art{right:-24px;top:-25px;width:clamp(145px,46vw,225px);height:auto;opacity:.84}
  .n-hero-description{max-width:95%}
  .n-hero-bottom a,.n-home .work-link,.n-home .text-link{min-height:44px;align-items:center}
  .n-home .text-link{display:inline-flex}
  .n-home .contact-handle{min-height:44px;display:inline-flex;align-items:center}
}
@media(max-width:360px){.n-art{right:-18px;top:-24px;width:145px}}
