/* FINISHING PASS (loaded LAST on every live page):
   1. one type system everywhere: Manrope for text, JetBrains Mono for small labels, Instrument Serif italic for accents
   2. no tiny text: menu, labels, captions, notes, footer and buttons are all raised to readable sizes
   3. premium details: crisp text, balanced headings, glowing menu, button light-sweep, branded scrollbar and selection */

:root{--f-sans:'Manrope',system-ui,sans-serif;--f-mono:'JetBrains Mono',ui-monospace,monospace;--f-serif:'Instrument Serif',Georgia,serif}

/* ---------- 1. fonts ---------- */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-family:var(--f-sans)}
button,input,select,textarea,summary{font-family:inherit}
.pf-tag small,.social-dock__label,.social-dock [role="tooltip"]{font-family:var(--f-sans)!important}
/* every small label above a heading uses the same mono style */
.kicker,.eyebrow,.pf-kick,.wwd-kick,.chip,.chip-stage,.tag,.team-kicker,.package-label,.case-domain,footer h4{
  font-family:var(--f-mono)!important;letter-spacing:.16em;text-transform:uppercase}

/* ---------- 2. readable sizes ---------- */
/* menu */
.nav-links a,.nav5d .nav-links a{font-size:16px!important;padding:10px 16px!important;letter-spacing:-.005em}
.nav-cta .btn-primary,.nav5d .btn-primary{font-size:15px!important;padding:12px 22px!important}
.mobile-nav summary,.nav5d .mobile-nav summary{font-size:15px!important;padding:11px 18px!important}
.mobile-nav-links a{font-size:17px}
.brand span{font-size:max(16px,1em)}
/* labels and kickers */
.kicker,.eyebrow,.team-kicker,.package-label{font-size:13.5px!important}
.chip,.chip-stage,.tag,.wwd-kick,.wwd-count,.wwd-inc-h{font-size:13px!important}
footer h4{font-size:13px!important}
.crumbs,.crumbs a,.crumbs span{font-size:14px!important}
/* buttons */
.btn,.button,a.button,button.button{font-size:16px!important}
.estimate-reset,.spatial-grid-toggle,.stream-control,.video-toggle,.social-dock__toggle{font-size:14.5px!important}
/* captions, notes, small print */
.scroll-cue{font-size:12.5px!important}
p.desc,footer li,footer a,footer span,.note,p.note,.price-note,.pricing-note,.cost-note,.offer-period,.package-terms,.package-period{font-size:15.5px!important;line-height:1.6}
.art-note,.spatial-instruction,.stream-caption,.case-domain,.poster-signature,.portrait-caption span{font-size:14px!important}
.portrait-email{font-size:14.5px!important}
label,.ef label{font-size:14.5px}
.estimate-option label span,.estimate-summary p,.estimate-summary small,.summary-separate strong,.base-features li{font-size:15px!important}
small{font-size:max(13px,.8em)}
.field label,#contactForm label{font-size:14.5px!important}
.portal-next p,.win-shield span,.base-heading span,.summary-separate span{font-size:14px!important}
.eng-legend span,.stage-count,.stage-count b,.stage-count span,.steps .n,.steps .step>span,.cards .number{font-size:13.5px!important}
.art-top span,.art-row span,.spatial-topline span,.spatial-topline a{font-size:13px!important}
/* pricing showroom cards (sized to the card, but never tiny) */
.pf-kick{font-size:max(12.5px,1cqw)!important}
.pf-sup{font-size:max(14px,1.2cqw)!important}
.pf-feat{font-size:max(14px,1.4cqw)!important}
.pf-tag small{font-size:max(13px,1cqw)!important}

/* ---------- 3. premium details ---------- */
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
::selection{background:rgba(47,143,255,.45);color:#fff}
/* menu: active / hover pill glows */
.nav-links a{position:relative;transition:color .25s,background .25s,box-shadow .25s}
.nav-links a:hover,.nav-links a[aria-current="page"]{color:#fff!important;background:linear-gradient(180deg,rgba(87,166,255,.16),rgba(47,143,255,.06))!important;box-shadow:inset 0 0 0 1px rgba(120,185,255,.28),0 0 22px -6px rgba(47,143,255,.8)}
/* primary buttons: a light sweep crosses them on hover */
.btn-primary,.button.primary{overflow:hidden;isolation:isolate}
.btn-primary::after,.button.primary::after{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;border-radius:inherit;
  background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.55) 48%,transparent 66%) -150% 0/220% 100% no-repeat;transition:background-position .9s cubic-bezier(.2,.8,.2,1)}
.btn-primary:hover::after,.button.primary:hover::after{background-position:150% 0}
/* keyboard focus is clearly visible */
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid #57a6ff;outline-offset:3px}
/* branded scrollbar */
html{scrollbar-color:#2f6fc0 #040912}
::-webkit-scrollbar{width:11px}
::-webkit-scrollbar-track{background:#040912}
::-webkit-scrollbar-thumb{background:linear-gradient(#2f8fff,#1b4f99);border-radius:10px;border:3px solid #040912}

/* phones: keep sizes comfortable without overflowing */
@media (max-width:700px){
  .kicker,.eyebrow,.team-kicker,.package-label{font-size:12.5px!important}
  .btn,.button,a.button,button.button{font-size:15.5px!important}
}
@media (prefers-reduced-motion:reduce){.btn-primary::after,.button.primary::after{transition:none}}
