/* FynGym site — tokens, resets, keyframes only. All component styling is inline. */
:root{
  --bg:#f4f4f2; --bg2:#ffffff; --bg3:#ececea; --ink:#14181d; --dim:#59616c;
  --line:rgba(20,24,29,.13); --line2:rgba(20,24,29,.07); --faint:#626a76;
  --acc:#275f95; --acc2:#17405f; --accInk:#ffffff; --accSoft:#e7f0fa; --accLine:rgba(39,95,149,.22);
  --warm:#9a6c15; --warmSoft:#f8efdc; --ok:#2c7a52; --okSoft:#e4f2ea; --dang:#a83a31; --dangSoft:#fbeae8;
  --glass:rgba(244,244,242,.78); --shadow:0 26px 64px rgba(20,24,29,.16); --shadow2:0 10px 30px rgba(20,24,29,.09);
  --grid:rgba(20,24,29,.055); --shot:#e7e9ec;
  --font:"IBM Plex Sans",system-ui,-apple-system,sans-serif;
  --disp:"Archivo","IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,monospace;
}
[data-theme="dark"]{
  --bg:#0a0d11; --bg2:#12171e; --bg3:#171d25; --ink:#edf1f6; --dim:#9ba5b1; --faint:#7d8794;
  --line:rgba(255,255,255,.13); --line2:rgba(255,255,255,.07);
  --acc:#63a6e2; --acc2:#9cccf5; --accInk:#08121c; --accSoft:rgba(99,166,226,.15); --accLine:rgba(99,166,226,.3);
  --warm:#e8bd62; --warmSoft:rgba(232,189,98,.14); --ok:#62c791; --okSoft:rgba(98,199,145,.14); --dang:#e78078; --dangSoft:rgba(231,128,120,.14);
  --glass:rgba(10,13,17,.72); --shadow:0 26px 70px rgba(0,0,0,.62); --shadow2:0 10px 30px rgba(0,0,0,.45);
  --grid:rgba(255,255,255,.05); --shot:#1b222b;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;color-scheme:light}
[data-theme="dark"]{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
body *{transition:background-color .42s cubic-bezier(.4,0,.2,1),border-color .42s cubic-bezier(.4,0,.2,1),color .3s ease,box-shadow .42s ease}
h1,h2,h3,h4,h5{margin:0;font-family:var(--disp);font-weight:700;letter-spacing:-.025em;line-height:1.08;text-wrap:balance}
p{margin:0;text-wrap:pretty}
a{color:var(--acc);text-decoration:none;transition:color .2s ease,opacity .2s ease}
a:hover{color:var(--acc2)}
img{display:block;max-width:100%}
button,input,textarea,select{font-family:inherit;font-size:inherit}
ul,ol{margin:0;padding-left:1.15em}
li{margin:.3em 0}
::selection{background:var(--accSoft);color:var(--ink)}
::-webkit-scrollbar{width:10px;height:10px}
::-webkit-scrollbar-thumb{background:var(--line);border-radius:8px}
::-webkit-scrollbar-thumb:hover{background:var(--faint)}
::-webkit-scrollbar-track{background:transparent}
input::placeholder,textarea::placeholder{color:var(--faint)}
[data-rv]{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
@keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
@keyframes fade{from{opacity:0}to{opacity:1}}
@keyframes drift{0%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(2.5%,-3%,0) scale(1.06)}100%{transform:translate3d(0,0,0) scale(1)}}
@keyframes marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@keyframes bob{0%{transform:translateY(0)}50%{transform:translateY(-9px)}100%{transform:translateY(0)}}
@keyframes ping{0%{transform:scale(1);opacity:.55}70%{transform:scale(2.4);opacity:0}100%{transform:scale(2.4);opacity:0}}
@keyframes sheen{0%{transform:translateX(-120%)}100%{transform:translateX(220%)}}
@keyframes scanline{0%{transform:translateY(-100%)}100%{transform:translateY(1100%)}}
@keyframes dash{to{stroke-dashoffset:0}}
summary{list-style:none;cursor:pointer}
summary::-webkit-details-marker{display:none}
[data-knob]{transform:translateX(0);transition:transform .42s cubic-bezier(.34,1.3,.5,1)}
[data-theme="dark"] [data-knob]{transform:translateX(21px)}
[data-sun],[data-moon]{transition:opacity .3s ease,transform .45s ease}
[data-moon]{opacity:0;transform:rotate(-40deg) scale(.7)}
[data-theme="dark"] [data-sun]{opacity:0;transform:rotate(40deg) scale(.7)}
[data-theme="dark"] [data-moon]{opacity:1;transform:none}
[data-only="dark"]{display:none}
[data-theme="dark"] [data-only="dark"]{display:block}
[data-theme="dark"] [data-only="light"]{display:none}
[data-desk]{display:flex}
[data-mob]{display:none}
@media (max-width:920px){
  [data-desk]{display:none!important}
  [data-mob]{display:block}
  [data-stack]{grid-template-columns:minmax(0,1fr)!important}
  [data-flip]{order:-1}
}
@media (prefers-reduced-motion: reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  [data-rv]{opacity:1!important;transform:none!important}
}
