/* FOCAL ATL base: reset, typography, layout primitives, utilities, motion floor. */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden;overflow-x:clip;scroll-padding-top:5rem}
html:focus-within{scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--canvas);color:var(--text-primary);font-family:var(--font-body);font-size:var(--t-body);line-height:var(--lh-body);font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;overflow-x:clip;text-rendering:optimizeLegibility}
body.menu-open{overflow:hidden}
img,picture,video,svg{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
a{color:inherit;text-decoration:none}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4,p,figure{margin:0}
::selection{background:var(--focal-bronze);color:var(--focal-black)}
:focus{outline:none}
:focus-visible{outline:2px solid var(--focal-bronze-light);outline-offset:4px}

/* Typography */
.f-display,.f-h1,.f-h2,.f-h3{font-family:var(--font-display);font-weight:300;line-height:var(--lh-tight);text-transform:uppercase;letter-spacing:var(--track-display);color:var(--text-primary);text-wrap:balance}
.f-h1{font-size:var(--t-hero);letter-spacing:var(--track-hero);line-height:1}
.f-h2{font-size:var(--t-1);letter-spacing:.1em;line-height:1.02}
.f-h3{font-size:var(--t-2);letter-spacing:.12em;font-weight:400;line-height:1.15}
.f-h4{font-family:var(--font-display);font-weight:500;font-size:var(--t-3);letter-spacing:.14em;text-transform:uppercase;line-height:1.25}
.f-lede{font-size:var(--t-lede);line-height:1.55;color:var(--text-secondary);max-width:var(--measure);font-weight:400}
.f-body{color:var(--text-secondary);max-width:var(--measure)}
.f-body p+p{margin-top:1.1em}
.f-small{font-size:var(--t-small);color:var(--text-tertiary)}
.f-em{color:var(--text-primary)}
.f-bronze{color:var(--focal-bronze)}
.f-label{display:inline-flex;align-items:center;gap:.75rem;font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:var(--track-label);text-transform:uppercase;color:var(--focal-bronze);line-height:1}
.f-label--rule::before{content:"";width:1.5rem;height:1px;background:var(--focal-bronze);flex:none}
.f-label--muted{color:var(--text-tertiary)}
.f-mono{font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.12em;text-transform:uppercase}
.f-num{font-family:var(--font-display);font-weight:200;font-size:var(--t-num);line-height:.85;letter-spacing:-.02em;color:var(--text-primary);font-variant-numeric:tabular-nums}
.f-num--bronze{color:var(--focal-bronze)}
.f-num--sm{font-size:clamp(2.5rem,5vw,4.5rem)}
.f-eyebrow{font-family:var(--font-display);font-weight:400;font-size:var(--t-label);letter-spacing:.3em;text-transform:uppercase;color:var(--text-secondary)}
.f-measure{max-width:var(--measure)}
.f-measure--narrow{max-width:46ch}

/* Layout */
.f-container{width:100%;max-width:var(--container);margin-inline:auto;padding-inline:var(--gutter)}
.f-container--narrow{max-width:var(--container-narrow)}
.f-section{position:relative;padding-block:var(--section-y)}
.f-section--tight{padding-block:calc(var(--section-y) * .6)}
.f-section--flush-top{padding-top:0}
.f-section--panel{background:var(--panel)}
.f-section--black{background:var(--focal-black)}
.f-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(1rem,2.5vw,2.5rem);row-gap:var(--s-7)}
.f-rule{border:0;height:1px;background:var(--line);margin:0}
.f-rule--bronze{background:var(--line-strong)}
.f-stack>*+*{margin-top:var(--s-5)}
.f-stack--lg>*+*{margin-top:var(--s-7)}
.f-head{display:grid;gap:var(--s-5);align-items:end;margin-bottom:clamp(2.5rem,6vw,5rem)}
.f-head__title{max-width:14ch}
.f-head__aside{max-width:44ch;color:var(--text-secondary)}
@media (min-width:1024px){
  .f-head{grid-template-columns:7fr 5fr;gap:var(--s-8)}
  .f-head--wide .f-head__title{max-width:18ch}
}

/* Accessibility helpers */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.f-skip{position:fixed;top:.75rem;left:.75rem;z-index:200;padding:.75rem 1.25rem;background:var(--focal-bronze);color:var(--focal-black);font-family:var(--font-mono);font-size:var(--t-label);letter-spacing:.2em;text-transform:uppercase;transform:translateY(-200%);transition:transform var(--d-fast) var(--ease-out)}
.f-skip:focus-visible{transform:none;outline-color:var(--focal-ivory)}
main:focus{outline:none}

/* Touch targets */
@media (pointer:coarse){
  .f-btn,.f-nav__link,.f-menu__link,.f-tab,.f-tile,.f-footer a{min-height:44px}
  .f-btn,.f-tab{display:inline-flex;align-items:center;justify-content:center}
}

/* Reduced motion: final states everywhere, nothing moves, nothing loads that should not */
@media (prefers-reduced-motion:reduce){
  html:focus-within{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important;scroll-behavior:auto!important}
  .f-reveal .f-reveal__part,.f-reveal__part{opacity:1!important;transform:none!important}
  .f-line{transform:scaleY(1)!important}
  .f-grain{animation:none!important}
}
body.reduced *,body.reduced *::before,body.reduced *::after{animation-duration:.001ms!important;transition-duration:.001ms!important;transition-delay:0s!important}
body.reduced .f-reveal__part{opacity:1!important;transform:none!important}
body.paused *,body.paused *::before,body.paused *::after{animation-play-state:paused!important}

/* Small phones: long single words in uppercase display type must never leave the column */
@media (max-width:430px){
  .f-h1{font-size:clamp(1.9rem,8.4vw,2.6rem);letter-spacing:.06em}
  .f-h2{font-size:clamp(1.6rem,7.6vw,2.4rem);letter-spacing:.06em}
  .f-h3{letter-spacing:.08em}
}

.f-page-hero__grid>*,.f-head>*,.f-grid>*{min-width:0}
