/* NORTHERN / PUBLIC FIRM IDENTITY — v4
   Original editorial + motion system; applies only to the public website. */
.hero-v4{padding-top:34px}
.hero-v4 .hero-kicker{border-bottom:1px solid var(--line);padding:7px 0 20px;margin-bottom:10px}
.hero-v4 .hero-kicker .eyebrow{font-size:10px;letter-spacing:.18em;font-weight:650}
.hero-v4 .hero-index{font-size:9px;letter-spacing:.12em}
.hero-v4 .hero-grid{grid-template-columns:minmax(0,1.02fr) minmax(0,1fr);min-height:640px;gap:clamp(20px,3vw,54px);align-items:center}
.hero-v4 .hero-content{padding:25px 0 35px}
.hero-v4 .hero-prelude{display:flex;align-items:center;gap:13px;margin-bottom:23px;font-size:10px;letter-spacing:.2em}
.hero-prelude-rule{display:inline-block;width:28px;height:1px;background:var(--note)}
.hero-v4 h1{font-size:clamp(54px,5.2vw,86px);white-space:normal;max-width:780px;line-height:1.075;margin-bottom:28px;letter-spacing:-.062em}
.hero-v4 h1 em{display:inline;color:var(--accent-strong)}
.hero-v4 .hero-description{font-size:16px;line-height:1.8;max-width:525px;margin-bottom:31px}
.hero-actions{display:flex;align-items:center;flex-wrap:wrap;gap:clamp(20px,3vw,38px)}
.hero-v4 .arrow-link{font-size:13px}
.hero-secondary{display:inline-flex;gap:10px;align-items:center;font-size:12px;color:var(--muted);transition:color .2s}
.hero-secondary:hover{color:var(--text)}
.hero-secondary span{color:var(--accent-strong)}
.hero-signature{display:flex;align-items:center;border-top:1px solid var(--line);padding-top:18px;margin-top:58px;max-width:515px}
.hero-signature>span{font:10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:var(--quiet);padding:0 17px;border-right:1px solid var(--line)}
.hero-signature>span:first-child{padding-left:0}
.hero-signature>span:last-child{border-right:0;padding-right:0}
.hero-signature strong{font-weight:500;color:var(--note);margin-right:7px}
.hero-v4 .hero-figure{max-width:unset;display:block;justify-self:stretch;align-self:center}
.hero-v4 .hero-figure:before{display:none}
.signal-shell{position:relative;isolation:isolate;overflow:hidden;min-width:0;color:#d6e7e1;background:#0b1922;border:1px solid #2d4a52;box-shadow:0 28px 82px rgba(1,19,25,.16),inset 0 1px 0 rgba(219,247,237,.06)}
.signal-shell:before{position:absolute;inset:0;z-index:-1;content:"";pointer-events:none;background:linear-gradient(125deg,rgba(120,197,182,.07),transparent 53%),radial-gradient(circle at 60% 51%,rgba(66,136,143,.15),transparent 57%)}
.signal-chrome{min-height:54px;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:0 21px;background:rgba(12,30,41,.8);border-bottom:1px solid rgba(156,186,186,.19);font:9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.15em;color:#9ab7b9}
.signal-chrome-mark{display:flex;align-items:center;gap:10px;color:#d9ebe3}
.signal-chrome-mark i,.signal-breath i{width:6px;height:6px;display:inline-block;border-radius:50%;background:#9ed6c6;box-shadow:0 0 12px rgba(158,214,198,.6)}
.signal-chrome-bottom{min-height:52px;border-bottom:0;border-top:1px solid rgba(156,186,186,.19);font-size:9px;letter-spacing:.10em}
.signal-chrome-bottom b{margin:0 7px;color:#527d83;font-weight:400}
.signal-breath{display:flex;align-items:center;gap:9px;white-space:nowrap}
.signal-breath i{width:4px;height:4px;animation:np-breathe 3.2s ease-in-out infinite}
@keyframes np-breathe{0%,100%{opacity:.4;box-shadow:0 0 3px rgba(158,214,198,.25)}50%{opacity:1;box-shadow:0 0 14px rgba(158,214,198,.67)}}
.signal-stage{height:clamp(340px,34vw,510px);position:relative;overflow:hidden;background:radial-gradient(circle at 75% 28%,rgba(47,112,113,.18),transparent 56%),#0b1922}
.signal-stage canvas,.signal-fallback{position:absolute;display:block;inset:0;width:100%;height:100%}
.signal-stage canvas{opacity:0;transition:opacity .65s}
.signal-stage.is-rendering canvas{opacity:1}
.signal-stage.is-rendering .signal-fallback{opacity:0}
.signal-fallback{transition:opacity .65s;object-fit:cover}
.signal-stage:before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 4px,rgba(15,30,38,.09) 4px 5px);opacity:.22}
.signal-stage:after{content:"";position:absolute;inset:0;z-index:2;pointer-events:none;box-shadow:inset 0 0 56px rgba(6,14,22,.56)}
.signal-corner{position:absolute;z-index:3;left:22px;right:22px;display:flex;justify-content:space-between;gap:12px;font:9px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.11em;color:#90aab0}
.signal-corner-a{top:21px}
.signal-corner-a strong{font-weight:500;color:#b1cfc6}
.signal-corner-b{bottom:23px;align-items:center}
.signal-track{position:relative;display:block;width:63px;height:2px;background:#345b5e}
.signal-track b{position:absolute;top:0;left:0;display:block;height:2px;width:23px;background:#8bc7bb;animation:np-track 4.5s ease-in-out infinite alternate}
@keyframes np-track{to{transform:translateX(40px)}}
.signal-rail{position:absolute;left:20px;top:50%;transform:translateY(-50%);height:74px;display:flex;flex-direction:column;justify-content:space-between;z-index:3}
.signal-rail span{display:block;width:10px;height:1px;background:#496b71}
.signal-rail span:nth-child(2){width:16px;background:#95c6b8}
.hero-v4 .hero-tail{padding-top:19px}
.hero-v4 .hero-tail span{line-height:1.7}
.disciplines .discipline-card .discipline-id{color:var(--note)}
.disciplines .discipline-card p:not(.discipline-overline){max-width:395px}
.method-display-foot{letter-spacing:.07em}
.closing .closing-emblem{opacity:.055}
@media(min-width:1750px){.hero-v4 .hero-grid{min-height:705px}.signal-stage{height:535px}}
@media(max-width:1120px){
.hero-v4 .hero-grid{min-height:530px;gap:20px}
.hero-v4 h1{font-size:clamp(50px,5.4vw,70px)}
.hero-signature{margin-top:40px}
.signal-stage{height:clamp(285px,35vw,430px)}
.signal-chrome{padding:0 15px}
.signal-chrome-bottom{font-size:8px}
}
@media(max-width:760px){
.hero-v4{padding-top:25px}
.hero-v4 .hero-kicker{padding-bottom:16px}
.hero-v4 .hero-index{display:none}
.hero-v4 .hero-grid{display:flex;flex-direction:column;gap:0;min-height:0}
.hero-v4 .hero-content{width:100%;padding:48px 0 35px}
.hero-v4 h1{font-size:clamp(50px,10.2vw,74px);line-height:1.075;max-width:660px}
.hero-v4 .hero-description{font-size:15px;line-height:1.75}
.hero-signature{margin-top:37px;padding-top:17px}
.hero-v4 .hero-figure{width:100%;max-width:650px;margin:0 auto 24px}
.signal-stage{height:clamp(320px,92vw,445px)}
.hero-v4 .hero-tail{padding:15px 0 22px;font-size:9px}
}
@media(max-width:440px){
.hero-v4 h1{font-size:clamp(46px,11.5vw,58px)}
.hero-v4 .hero-content{padding-top:42px}
.hero-v4 .hero-kicker .eyebrow{font-size:9px;letter-spacing:.13em}
.hero-v4 .hero-description{font-size:14px}
.hero-actions{gap:22px}
.hero-signature>span{font-size:8px;padding:0 10px;letter-spacing:.045em}
.hero-signature strong{margin-right:4px}
.signal-stage{height:340px}
.signal-chrome{min-height:47px;padding:0 12px;font-size:8px;letter-spacing:.08em}
.signal-chrome-bottom{min-height:48px;font-size:7px}
.signal-chrome-bottom b{margin:0 4px}
.signal-corner{left:14px;right:14px;font-size:8px}
}
@media(prefers-reduced-motion:reduce){.signal-breath i,.signal-track b{animation:none}.signal-stage canvas,.signal-fallback{transition:none}}
