/* TapAPI — design system (brand kit: black / TapAPI yellow #FFC700 / white).
   DARK site theme — the app (till PWA, SpeedPoint terminal) stays light for
   daylight reading; this sheet styles the website only.
   --navy remains a dark SURFACE color (pages use it as inline backgrounds);
   text roles use --ink, which is light here. --mut is deliberately bright
   (#B9C3CE, not the kit grey #666) so body copy survives sunlight.

   v3 REBUILD 18-Jul-2026 (exact metrics from deployed-page inline blocks) — original was overwritten on the server; this file
   was reconstructed from the session transcripts of the 13-Jul dark
   conversion. Variable names and roles are the recovered originals; the
   component layer is rebuilt to the same spec. If any page renders oddly,
   screenshot it — the fix is one selector, not a redeploy.
   v3.1 22-Jul-2026: bare header rule scoped to body>header (nested headers
   were inheriting sticky). */

/* SPEED4: stand-in faces sized like Inter and Poppins, used only until those fonts arrive, so text keeps its line breaks and nothing below it moves */
@font-face{font-family:'Inter Fallback';src:local('Arial'),local('ArialMT'),local('Liberation Sans'),local('LiberationSans'),local('Arimo'),local('Arimo-Regular'),local('Helvetica');font-weight:400;size-adjust:106.3%;ascent-override:91.13%;descent-override:22.69%;line-gap-override:0%;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Arimo Bold'),local('Arimo-Bold'),local('Helvetica Bold'),local('Helvetica-Bold');font-weight:700;size-adjust:98%;ascent-override:98.85%;descent-override:24.61%;line-gap-override:0%;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter Fallback R';src:local('Roboto'),local('Roboto Regular'),local('Roboto-Regular');font-weight:400;size-adjust:107.1%;ascent-override:90.45%;descent-override:22.52%;line-gap-override:0%;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Inter Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:700;size-adjust:108.5%;ascent-override:89.29%;descent-override:22.23%;line-gap-override:0%;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins Fallback';src:local('Arial Bold'),local('Arial-BoldMT'),local('Liberation Sans Bold'),local('LiberationSans-Bold'),local('Arimo Bold'),local('Arimo-Bold'),local('Helvetica Bold'),local('Helvetica-Bold');font-weight:700;size-adjust:107.5%;ascent-override:97.67%;descent-override:32.56%;line-gap-override:9.3%;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
@font-face{font-family:'Poppins Fallback R';src:local('Roboto Bold'),local('Roboto-Bold');font-weight:700;size-adjust:114.5%;ascent-override:91.7%;descent-override:30.57%;line-gap-override:8.73%;unicode-range:U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF, U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD}
/* SPEED1: Inter, Poppins fonts served from this site */
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa25L7SUc.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/inter-UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLEj6Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLEj6Z1xlFQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLCz7Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLCz7Z1xlFQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLDD4Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLDD4Z1xlFQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLBT5Z1JlFc-K.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: 'Poppins';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/assets/fonts/poppins-pxiByp8kv8JHgFVrLBT5Z1xlFQ.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

:root{
  --navy:#0A2540; --navy2:#123454; --navy3:#1C4568;
  --em:#FFC700; --em-d:#E0AF00; --em-t:#241D06;
  --gold:#FFC700; --gold-t:#241D06;
  --bg:#0A0A0A; --card:#161616; --ink:#F2F5F8; --mut:#B9C3CE; --line:#2A2A2A;
  --green:#FFC700; --yellow-soft:#241D06; --green-soft:#241D06;
  --r:16px; --r-s:10px;
  --sh:0 1px 2px rgba(0,0,0,.4),0 8px 24px rgba(0,0,0,.45);
  --sh-lg:0 2px 4px rgba(0,0,0,.45),0 18px 48px rgba(0,0,0,.6);
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:"Inter","Inter Fallback","Inter Fallback R",-apple-system,'Segoe UI',Roboto,sans-serif;
  background:var(--bg);color:var(--ink);line-height:1.6
}
h1,h2,h3,h4{font-family:"Poppins","Poppins Fallback","Poppins Fallback R","Inter",sans-serif;line-height:1.15;color:var(--ink)}
h1{font-size:clamp(2rem,6vw,3.2rem);font-weight:900;letter-spacing:-.02em}
h2{font-size:clamp(1.5rem,4.5vw,2.2rem);font-weight:800;letter-spacing:-.015em}
h3{font-size:1.2rem;font-weight:800}
.paper h1{font-size:2rem;font-weight:900;margin-bottom:8px;line-height:1.1}
.paper h2{font-size:1.2rem;font-weight:800;margin:26px 0 10px}
.subtitle{color:var(--mut);font-size:1rem;margin-bottom:24px}
p{color:var(--mut);margin:0 0 12px}
p strong,p b{color:var(--ink)}
a{color:var(--ink);text-decoration:none}
img{max-width:100%;height:auto;display:block}
ul,ol{padding-left:22px;margin:8px 0 14px;color:var(--mut)}
li{margin-bottom:6px}
hr{border:none;border-top:1px solid var(--line);margin:24px 0}

.wrap{max-width:1180px;margin:0 auto;padding:0 20px}

/* ── Header ───────────────────────────────────────────── */
header.site{
  background:var(--bg);border-bottom:1px solid var(--line);
  padding:14px 0;position:sticky;top:0;z-index:100
}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px}
header.site .brand{font-weight:800;font-size:1.15rem;display:flex;align-items:center;gap:8px;color:var(--ink)}
header.site .brand img{width:44px;height:44px;border-radius:8px}
header.site .brand svg{display:block}
header.site nav{display:flex;gap:24px;align-items:center}
header.site nav a{font-weight:600;color:var(--mut);font-size:.95rem}
header.site nav a:hover{color:var(--em)}
header.site nav a.cta{
  background:var(--em);color:#0A0A0A;padding:10px 18px;
  border-radius:10px;font-weight:800
}
header.site nav a.cta:hover{background:var(--em-d);color:#0A0A0A}
header.site button{
  background:var(--card);color:var(--ink);border:1px solid var(--line);
  border-radius:8px;padding:8px 12px;font-size:1.05rem;cursor:pointer
}
@media (max-width:720px){header.site nav a:not(.cta){display:none}}

/* ── Hero ─────────────────────────────────────────────── */
.hero{padding:56px 0 40px}
.hero .wrap{display:grid;grid-template-columns:1.15fr 1fr;gap:40px;align-items:center}
@media (max-width:900px){.hero .wrap{grid-template-columns:1fr}}
.hero .pill,.pill{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--em-t);color:var(--em);border:1px solid rgba(255,199,0,.35);
  font-size:.8rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;
  padding:6px 14px;border-radius:100px;margin-bottom:16px
}
.hero h1 span,.hero h1 em{color:var(--em);font-style:normal}
.hero p{font-size:1.05rem;max-width:560px}
.hero img{border-radius:var(--r);box-shadow:var(--sh-lg)}

/* ── Buttons ──────────────────────────────────────────── */
.cta,.btn,.btn-primary,button.primary{
  display:inline-block;background:var(--em);color:#0A0A0A;font-weight:800;
  padding:12px 20px;border-radius:10px;text-decoration:none;border:none;
  cursor:pointer;font-size:1rem;font-family:inherit;margin:8px 8px 0 0;
  transition:background .15s ease,transform .15s ease
}
.cta:hover,.btn:hover,.btn-primary:hover,button.primary:hover{
  background:var(--em-d);color:#0A0A0A;transform:translateY(-1px)
}
.cta.outline,.btn.outline,.btn-secondary{
  background:transparent;color:var(--ink);border:2px solid var(--line)
}
.cta.outline:hover,.btn.outline:hover,.btn-secondary:hover{
  border-color:var(--em);color:var(--em);background:transparent
}

/* ── Surfaces ─────────────────────────────────────────── */
.paper{
  background:var(--card);border:1px solid var(--line);
  border-radius:14px;padding:36px 32px;box-shadow:var(--sh)
}
.card{
  background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);padding:28px 24px;box-shadow:var(--sh);overflow:hidden
}
/* image-topped cards (homepage platform cards): photo bleeds to the card
   edges, rounded top, uniform crop; text keeps the card padding below */
.card>img:first-child{
  width:calc(100% + 48px);max-width:none;margin:-28px -24px 18px;
  height:200px;object-fit:cover;border-radius:var(--r) var(--r) 0 0;display:block
}
.card h3{margin-bottom:8px}
.card p{margin-bottom:0}
.card:hover{border-color:rgba(255,199,0,.3)}
section{padding:48px 0}
section.alt,.section-alt{background:#101010}

.grid,.cards{display:grid;gap:20px}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:900px){.grid-3,.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}

/* ── Labels, badges, notices ──────────────────────────── */
.badge{
  display:inline-block;background:#101010;color:var(--mut);
  font-size:.8rem;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;
  padding:6px 12px;border-radius:20px;margin-bottom:16px
}
.eyebrow{
  color:var(--em);font-size:.78rem;font-weight:800;
  letter-spacing:.14em;text-transform:uppercase;margin-bottom:10px
}
.notice,.info-box{
  background:var(--yellow-soft);border:1px solid rgba(255,199,0,.35);
  border-radius:var(--r-s);padding:16px 20px;margin:20px 0;
  font-size:.95rem;color:#FFE28A
}
.notice b,.info-box b{color:var(--em)}

/* ── Forms ────────────────────────────────────────────── */
input,select,textarea{
  width:100%;background:var(--card);color:var(--ink);
  border:1px solid var(--line);border-radius:var(--r-s);
  padding:12px 14px;font-size:1rem;font-family:inherit
}
input::placeholder,textarea::placeholder{color:#6E7681}
input:focus,select:focus,textarea:focus{
  outline:none;border-color:var(--em);
  box-shadow:0 0 0 3px rgba(255,199,0,.25)
}
label{display:block;font-weight:700;font-size:.9rem;margin:14px 0 6px;color:var(--ink)}

/* ── Tables ───────────────────────────────────────────── */
table{width:100%;border-collapse:collapse;margin:16px 0}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line)}
th{color:var(--ink);font-weight:800}
td{color:var(--mut)}

/* ── Footer ───────────────────────────────────────────── */
footer,footer.site,footer.compliance{
  background:#050505;color:var(--mut);
  padding:32px 20px;font-size:.85rem;line-height:1.6;border-top:1px solid var(--line)
}
footer a,footer.compliance a{color:var(--em);text-decoration:none}
footer a:hover{text-decoration:underline}
footer.compliance{text-align:center}



/* ── Homepage header vocabulary (header + .wrap.nav + .nav-links + .menu-btn) ── */
body>header{background:var(--bg);border-bottom:1px solid var(--line);padding:14px 0;position:sticky;top:0;z-index:100}
.wrap.nav,.nav{display:flex;align-items:center;justify-content:space-between;gap:16px;position:relative}
.logo{display:flex;align-items:center}
.logo-img{height:40px;width:auto;display:block}
.nav-links{display:flex;gap:24px;align-items:center}
.nav-links a{font-weight:600;color:var(--mut);font-size:.95rem}
.nav-links a:hover{color:var(--em)}
.menu-btn{display:none;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 12px;font-size:1.05rem;cursor:pointer}
@media (max-width:720px){
  .nav-links{display:none}
  .menu-btn{display:block}
  /* common JS toggle names covered so the burger works whichever the page uses */
  .nav-links.open,.nav-links.show,.nav-links.active,.nav-links.on{
    display:flex;flex-direction:column;align-items:flex-start;gap:14px;
    position:absolute;top:calc(100% + 14px);left:0;right:0;
    background:var(--card);border:1px solid var(--line);border-radius:12px;
    padding:16px 20px;box-shadow:var(--sh-lg);z-index:200
  }
}

/* ── Homepage hero split (15-Jul: hero_3 next to the chooser on PC) ───── */
.hero-split{display:grid;gap:28px;align-items:center;grid-template-columns:1fr}
@media (min-width:901px){.hero-split{grid-template-columns:1.15fr 1fr;gap:40px}}
.hero-split img{border-radius:20px;box-shadow:var(--sh-lg);width:100%;height:auto}



/* ══ Homepage vocabulary — from the live class inventory (18-Jul), covering
      every class the page uses but does not define inline ═══════════════ */

/* text roles */
.lede{font-size:1.15rem;color:var(--mut);max-width:640px}
.em{color:var(--em)}
.hint{font-size:.85rem;color:var(--mut)}
.copy{color:var(--mut);font-size:.9rem;line-height:1.7}
.dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--em);margin:0 10px;vertical-align:middle}

/* badges */
.badge.gold{background:var(--em-t);color:var(--em)}
.badge.navy{background:var(--navy);color:#fff}

/* button family (btn base defined above) */
.btn-em{background:var(--em);color:#0A0A0A}
.btn-em:hover{background:var(--em-d);color:#0A0A0A}
.btn-ghost{background:transparent;color:var(--ink);border:2px solid var(--line)}
.btn-ghost:hover{border-color:var(--em);color:var(--em);background:transparent}
.btn-navy{background:var(--navy);color:#fff;border:1px solid var(--navy3)}
.btn-navy:hover{background:var(--navy2);color:#fff}
.btn-lg{padding:16px 26px;font-size:1.1rem;border-radius:12px}

/* icon chips */
.icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;background:var(--card);border:1px solid var(--line);margin-bottom:12px}
.icon.gold{background:var(--em-t);color:var(--em);border-color:rgba(255,199,0,.35)}
.icon.navy{background:var(--navy);color:#fff;border-color:var(--navy3)}

/* inline illustrations in the step rows */
.illo{display:inline-block;vertical-align:middle;height:64px;width:auto;border-radius:8px}
img.illo{height:64px;width:auto}

/* layout: page uses unhyphenated grid names, min-width 900 desktop */
.grid2{display:grid;gap:24px;grid-template-columns:1fr}
.grid4{display:grid;gap:20px;grid-template-columns:1fr 1fr}
.cols{display:grid;gap:28px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
@media(min-width:900px){
  .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid4{grid-template-columns:repeat(4,minmax(0,1fr))}
}

/* panels & steps (how-it-works) */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px;box-shadow:var(--sh)}
.step-row{display:grid;gap:20px;grid-template-columns:1fr}
@media(min-width:900px){.step-row{grid-template-columns:repeat(3,minmax(0,1fr))}}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:28px 24px;text-align:center}
.step h3{margin:10px 0 8px}
.step p{margin:0}
/* yellow step numerals (restored: 01 / 02 / 03 at the top of each card) */
.step-row{counter-reset:step}
.step{counter-increment:step}
.step::before{
  content:"0" counter(step);display:block;color:var(--em);
  font-family:"Poppins","Poppins Fallback","Poppins Fallback R","Inter",sans-serif;font-weight:800;font-size:.9rem;
  letter-spacing:.14em;margin-bottom:22px
}

/* reveal helper: VISIBLE BY DEFAULT — content must never depend on a JS class
   to appear. If the page's reveal script runs, the transition still animates. */
.rv{opacity:1;transform:none;transition:opacity .6s ease,transform .6s ease}

/* compliance footer container (its .tap/.api wordmarks are styled inline) */
.tapapi-compliance-footer{background:#050505;color:var(--mut);padding:40px 20px;font-size:.85rem;line-height:1.7;border-top:1px solid var(--line)}
.tapapi-compliance-footer a{color:var(--em);text-decoration:none}
.tapapi-compliance-footer a:hover{text-decoration:underline}
.tapapi-compliance-footer h3,.tapapi-compliance-footer h4{color:var(--ink);margin:18px 0 8px;font-size:1rem}

/* ── Utilities ────────────────────────────────────────── */
.center{text-align:center}
.mut{color:var(--mut)}
.yellow,.accent{color:var(--em)}
.mt-0{margin-top:0}.mb-0{margin-bottom:0}
.hide{display:none}
@media (max-width:720px){.hide-mobile{display:none}}
@media (min-width:721px){.hide-desktop{display:none}}

/* footer v2: compact horizontal */
footer .wrap{max-width:min(1400px,92vw)}
footer .ft2-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:18px 40px;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.08)}
footer .ft2-logo{height:44px;width:auto;display:block}
footer .ft2-links{list-style:none;display:flex;flex-wrap:wrap;gap:10px 34px;margin:0;padding:0;align-items:center}
footer .ft2-links li{margin:0}
footer .ft2-legal{display:grid;gap:20px;margin-top:24px}
footer .ft2-legal p{font-size:.8rem;opacity:.75;margin:0;line-height:1.6}
footer .copy{margin-top:28px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}
@media (min-width:900px){
  footer .ft2-legal{grid-template-columns:1fr 1fr;gap:64px}
}
footer .copy a{color:inherit;font-weight:700}

/* ── TapAPI app tile ──────────────────────────────────────────────
   The home-screen icon at preview size. The black plate and rounded
   corners are baked into icon-192-v2.png; these control size only.
   Added 23-Jul-2026, folded back in after this sheet was overwritten. */
.tapapi-tile{width:56px;height:56px;border-radius:14px;display:inline-block;vertical-align:middle}
.tapapi-tile--sm{width:20px;height:20px;border-radius:5px;vertical-align:-4px;margin-right:6px}
.tapapi-tile-wrap{text-align:center;line-height:0}
