/* Build More — base element styles + the editorial utility primitives from global.css. */
html{font-family:var(--font-sans);-webkit-text-size-adjust:100%;text-rendering:optimizeLegibility}
body{margin:0;color:var(--color-ink);background:var(--color-paper);-webkit-font-smoothing:antialiased}
::selection{background:var(--color-lime);color:var(--color-pine-950)}
a{color:var(--color-pine);text-decoration:none}
a:hover{color:var(--color-pine-800)}
/* mono kicker: the uppercase technical label above headings */
.kicker{font-family:var(--font-mono);font-size:0.7rem;font-weight:500;letter-spacing:0.22em;text-transform:uppercase}
/* fine plot grid — technical "atelier" texture. Default = white lines for dark panels. */
.plotgrid{background-image:linear-gradient(to right,rgba(255,255,255,0.05) 1px,transparent 1px),linear-gradient(to bottom,rgba(255,255,255,0.05) 1px,transparent 1px);background-size:56px 56px}
.plotgrid--paper{background-image:linear-gradient(to right,color-mix(in srgb,var(--color-pine) 7%,transparent) 1px,transparent 1px),linear-gradient(to bottom,color-mix(in srgb,var(--color-pine) 7%,transparent) 1px,transparent 1px);background-size:56px 56px}
/* subtle film grain overlay for solid color fields */
.grain{position:relative}
.grain::after{content:'';position:absolute;inset:0;pointer-events:none;z-index:1;opacity:0.4;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
/* lime marker highlight under an italic serif phrase (light bg only) */
.hl{position:relative;font-style:italic}
.hl::after{content:'';position:absolute;left:-0.05em;right:-0.05em;bottom:0.06em;height:0.36em;background:var(--color-lime);z-index:-1;border-radius:0.1em}
/* editorial link underline that draws on hover */
.link-draw{background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:0% 1px;transition:background-size 0.35s cubic-bezier(0.22,1,0.36,1)}
.link-draw:hover{background-size:100% 1px}
/* marquee ticker */
@keyframes marquee-x{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.marquee-track{display:inline-flex;width:max-content;animation:marquee-x 40s linear infinite}
.marquee-track--reverse{animation-direction:reverse}
.edge-fade{-webkit-mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent);mask-image:linear-gradient(to right,transparent,#000 10%,#000 90%,transparent)}
/* staggered entrance (paired with an IntersectionObserver adding .is-in) */
@media (prefers-reduced-motion:no-preference){
.reveal{opacity:0;transform:translateY(18px)}
.reveal.is-in{opacity:1;transform:none;transition:opacity 0.7s cubic-bezier(0.22,1,0.36,1),transform 0.7s cubic-bezier(0.22,1,0.36,1)}
}
@media (prefers-reduced-motion:reduce){
*,*::before,*::after{animation-duration:0.01ms!important;transition-duration:0.01ms!important}
}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
