:root{--paper:#ecebe5;--ink:#20211e;--muted:#74756c;--orange:#df502c;--mono:'IBM Plex Mono',monospace;--display:'Space Grotesk',Arial,sans-serif}
.ng-shell{background:var(--paper);color:var(--ink)}
.page-hero{position:relative;overflow:hidden;padding:64px 5% 56px;border-bottom:1px solid #20211e26;background:linear-gradient(180deg,#ecebe5 0%,#e3e0d4 100%)}
.page-hero .eyebrow{font:11px var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.page-hero h1{font:700 clamp(52px,8vw,110px)/0.95 var(--display);letter-spacing:-3px;margin:14px 0}
.page-hero h1 em{font-style:italic;color:var(--orange);font-weight:400}
.page-hero p.lead{max-width:640px;font-size:18px;line-height:1.5}
.page-hero .meta{display:flex;gap:12px;margin-top:18px;font:11px var(--mono);text-transform:uppercase;color:var(--muted)}
.hero-parallax{position:absolute;inset:auto -10% -40% -10%;height:420px;background:radial-gradient(60% 100% at 50% 100%,#df502c33,transparent 70%),url('https://nodegod.co.uk/assets/images/gallery-2026-08-28-roadside-snack-stand-scoreboard.jpg') center/cover;opacity:.28;transform:translateY(0);pointer-events:none}
.functional-wrap{padding:40px 5% 80px;max-width:1280px;margin:0 auto}
.functional-wrap .bezel,.functional-wrap .signal-app,.functional-wrap .auction-workspace,.functional-wrap .gallery-main,.functional-wrap .desktop-main,.functional-wrap .archive-main{border-radius:22px}
.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
html.no-motion .reveal{opacity:1;transform:none}
html.no-motion *{animation:none!important;transition:none!important}
.ng-footer-bar{border-top:1px solid #20211e26;padding:22px 5%;display:flex;justify-content:space-between;font:11px var(--mono);text-transform:uppercase;color:var(--muted)}
@media(max-width:800px){.page-hero{padding:44px 6% 40px}.functional-wrap{padding:24px 4% 56px}}

.functional-wrap{overflow:clip}
.functional-wrap:has(.signal-app){max-width:none;padding:0 0 40px}
.signal-app{position:relative;min-height:82vh}
.crossnav{display:flex;flex-wrap:wrap;gap:10px 18px;align-items:center;margin:48px 5% 0;padding:20px 0;border-top:1px solid #20211e26;font:11px var(--mono);text-transform:uppercase;color:var(--muted)}
.crossnav a{color:var(--ink);text-decoration:underline;text-underline-offset:4px}

header nav{display:flex;gap:22px;font-size:12px;flex-wrap:wrap}
.editorial{padding:56px 5% 8px;max-width:1280px;margin:0 auto}
.section-heading h2{font:700 clamp(30px,4.6vw,54px)/1.02 var(--display);letter-spacing:-1.5px;margin:10px 0}
.section-heading p{color:var(--muted);max-width:640px}
.ed-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;margin-top:26px}
.ed-card{background:#fff;border:1px solid #20211e22;border-radius:18px;padding:20px;display:flex;flex-direction:column;gap:8px}
.ed-card h3{margin:0;font:600 20px var(--display)}
.ed-card p{margin:0;color:#444;font-size:14px;line-height:1.55}
.ed-num{font:10px var(--mono);letter-spacing:.14em;color:var(--orange)}
.ed-tag{font:10px var(--mono);color:var(--muted)}
.ed-art-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}
.ed-art img{width:100%;border-radius:12px;aspect-ratio:4/3;object-fit:cover}
.howto{margin-top:28px;background:#20211e;color:#ecebe5;border-radius:18px;padding:26px}
.howto h3{margin:0 0 10px;font:600 22px var(--display)}
.howto ol{margin:0;padding-left:20px;line-height:1.7}
.fineprint{color:var(--muted);font-size:12px;margin-top:14px}
@media(max-width:700px){header nav{gap:12px}.ed-grid{grid-template-columns:1fr}}
