html,body{overflow-x:clip}
/* ============================================================
   NYC TRAFFIC KING — "Velvet Tabloid" design system (v20260703)
   Anton condensed tabloid structure on royal violet + gold velvet.
   Loaded LAST on every page: acts as token remap + component kit.
   Dark cover pages: body.royal-dark. Light court pages: default.
   ============================================================ */
:root{
  --ink:#150a2c; --coal:#1f1040; --smoke:#291653; --line:#3c2570;
  --gold:#e0af45; --gold-hi:#ffe9ad; --gold-deep:#b08a2e; --gold-dim:#8a6b24;
  --crimson:#c02458; --crimson-hi:#ef5c8f;
  --ivory:#f9f4e9; --parch:#efe6cf; --velvet-body:#d9d2e6; --mute-v:#a89bc4;
  --foil:linear-gradient(105deg,#b08a2e 0%,#fff3c4 40%,#e0af45 55%,#b08a2e 100%);
  --display:'Anton','Arial Narrow',sans-serif;
  --royalserif:'Fraunces',Georgia,serif;
  --sans:'Libre Franklin',-apple-system,system-ui,sans-serif;

  /* Legacy token remap (older pages reference these) */
  --royal:#2b1160; --royal-deep:#150a2c; --royal-soft:#5b2c9b;
  --gold-bright:#ffe9ad; --gold-soft:#f4e3b2;
  --crimson-soft:#ef5c8f; --cream:#f9f4e9; --paper:#ffffff;
  --blue:#4d2f9b; --blue-deep:#2b1160; --muted:#6d6486;
  --primary:#2b1160; --accent:#c9992e; --bg:#faf6ec; --card:#ffffff;
}

/* ---------- typography remap (the tabloid voice, sitewide) ---------- */
h1,h2,.h-display,.nav-logo,.brand,.btn-gold,.cta-band h2,.hero h1{
  font-family:var(--display)!important;font-weight:400!important;
  letter-spacing:.015em;text-transform:uppercase;line-height:1.02;
}
h3,h4{font-family:var(--sans)!important;font-weight:800!important}
body{font-family:var(--sans)!important}
.eyebrow,.kicker,.sec-kicker,blockquote,.quip,.caveat,[class*="script"]{
  font-family:var(--royalserif)!important;font-style:italic;font-weight:600!important;
  letter-spacing:.01em;text-transform:none;
}
h1 .foil,h2 .foil,.foil{background:var(--foil);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- buttons (supercharged royal CTA) ---------- */
.btn-gold,.cta,a.btn-gold{
  position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;gap:.55rem;
  font-family:var(--display)!important;font-size:1.12rem;letter-spacing:.05em;text-transform:uppercase;
  color:#231303!important;background:linear-gradient(135deg,#ffe9ad,#e0af45 55%,#c9992e)!important;
  border:1px solid var(--gold-hi)!important;border-radius:14px;padding:.95rem 1.5rem;cursor:pointer;
  transition:transform .12s ease;box-shadow:0 10px 32px rgba(224,175,69,.3);text-decoration:none;
}
.btn-gold::after,.cta::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,0));transform:scaleX(0);transform-origin:left;transition:transform .5s ease}
.btn-gold:hover::after,.cta:hover::after{transform:scaleX(1)}
.btn-gold:active,.cta:active{transform:scale(.965)}
.btn-gold.connecting,.cta.connecting{color:transparent!important}
.btn-gold.connecting::before,.cta.connecting::before{content:"Summoning the King…";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#231303;font-family:var(--display);letter-spacing:.05em}
.btn-ghost-gold,.cta-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;font-weight:800;font-family:var(--sans)!important;font-size:.95rem;color:var(--gold-hi)!important;border:1px solid var(--gold-deep)!important;border-radius:14px;padding:.9rem 1.3rem;background:rgba(255,255,255,.04)!important;transition:all .2s;text-decoration:none}
.btn-ghost-gold:hover,.cta-ghost:hover{background:rgba(224,175,69,.12)!important;border-color:var(--gold)!important}
body:not(.royal-dark) .btn-ghost-gold,body:not(.royal-dark) .cta-ghost{color:#8a6712!important;background:rgba(224,175,69,.08)!important}

/* ---------- royal marquee band ---------- */
.royal-marquee{border-top:1px solid var(--gold-deep);border-bottom:1px solid var(--gold-deep);background:linear-gradient(180deg,#241348,#180d33);overflow:hidden;white-space:nowrap}
.royal-marquee .track{display:inline-block;padding:.6rem 0;font-family:var(--display);letter-spacing:.14em;font-size:.9rem;color:var(--gold);text-transform:uppercase;animation:royal-march 32s linear infinite}
.royal-marquee .track span{margin:0 1.1rem}
.royal-marquee .track .sep{color:var(--crimson-hi)}
@keyframes royal-march{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.royal-marquee .track{animation:none}}

/* ---------- sticky mobile call bar ---------- */
.royal-callbar{position:fixed;left:0;right:0;bottom:0;z-index:960;display:flex;gap:.5rem;padding:.55rem .7rem calc(.55rem + env(safe-area-inset-bottom));background:rgba(18,9,38,.95);backdrop-filter:blur(12px);border-top:1px solid var(--gold-deep)}
.royal-callbar a{flex:1;display:flex;align-items:center;justify-content:center;gap:.45rem;font-family:var(--display);letter-spacing:.05em;font-size:1rem;text-transform:uppercase;border-radius:12px;padding:.8rem .5rem;text-decoration:none}
.royal-callbar .rc-call{background:linear-gradient(135deg,#ffe9ad,#e0af45 55%,#c9992e);color:#231303;box-shadow:0 0 22px rgba(224,175,69,.4);animation:royal-pulse 2.6s ease-in-out infinite}
.royal-callbar .rc-text{border:1px solid var(--gold-deep);color:var(--gold-hi);background:rgba(255,255,255,.05)}
@keyframes royal-pulse{0%,100%{box-shadow:0 0 14px rgba(224,175,69,.35)}50%{box-shadow:0 0 30px rgba(224,175,69,.65)}}
@media(min-width:900px){.royal-callbar{display:none}}
@media(max-width:899px){body{padding-bottom:76px}}

/* ---------- royal feedback (James's seal) ---------- */
.royal-fb-btn{position:fixed;right:14px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:970;width:52px;height:52px;border-radius:50%;background:var(--crimson);color:#fff;border:2px solid var(--crimson-hi);font-size:1.3rem;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 10px 26px rgba(192,36,88,.5);transition:transform .15s}
.royal-fb-btn:hover{transform:scale(1.08)}
@media(min-width:900px){.royal-fb-btn{bottom:24px}}
.royal-fb-modal{position:fixed;inset:0;z-index:980;display:none;align-items:flex-end;justify-content:center;background:rgba(10,5,22,.6);backdrop-filter:blur(4px)}
.royal-fb-modal.open{display:flex}
.royal-fb-card{width:100%;max-width:480px;background:#1f1040;border:1px solid var(--line);border-radius:22px 22px 0 0;padding:1.3rem;color:var(--velvet-body)}
@media(min-width:700px){.royal-fb-modal{align-items:center}.royal-fb-card{border-radius:22px}}
.royal-fb-card h3{font-family:var(--display)!important;font-weight:400!important;color:var(--ivory);text-transform:uppercase;letter-spacing:.04em;margin:0 0 .3rem}
.royal-fb-card p{font-size:.85rem;color:var(--mute-v);margin:0 0 .8rem}
.royal-fb-card textarea{width:100%;min-height:110px;background:#160b30;border:1px solid var(--line);border-radius:12px;color:var(--ivory);font-family:var(--sans);font-size:16px;padding:.8rem;resize:vertical}
.royal-fb-card textarea:focus{outline:2px solid var(--gold-deep)}
.royal-fb-actions{display:flex;gap:.6rem;margin-top:.8rem}
.royal-fb-actions .send{flex:1}
.royal-fb-actions .cancel{background:none;border:1px solid var(--line);color:var(--mute-v);border-radius:12px;padding:.8rem 1rem;cursor:pointer;font-family:var(--sans)}
.royal-fb-done{display:none;text-align:center;padding:1.4rem 0}
.royal-fb-done .seal{font-size:2.2rem;color:var(--gold)}

/* ---------- summon form ---------- */
.summon-form{display:grid;gap:.7rem;margin-top:1.4rem;max-width:560px}
.summon-form input,.summon-form select,.summon-form textarea{width:100%;background:#160b30;border:1px solid var(--line);border-radius:12px;color:var(--ivory);font-family:var(--sans);font-size:16px;padding:.85rem}
body:not(.royal-dark) .summon-form input,body:not(.royal-dark) .summon-form select,body:not(.royal-dark) .summon-form textarea{background:#fff;border-color:#d9cfe8;color:#2b1160}
.summon-form input:focus,.summon-form select:focus,.summon-form textarea:focus{outline:2px solid var(--gold-deep)}
.summon-form .row2{display:grid;gap:.7rem}
@media(min-width:640px){.summon-form .row2{grid-template-columns:1fr 1fr}}
.summon-form .hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.summon-note{font-size:.8rem;color:var(--mute-v)}
.summon-done{display:none;border:1px solid var(--gold-deep);border-radius:14px;background:rgba(224,175,69,.1);padding:1rem 1.2rem;color:var(--ivory)}

/* ---------- stamps + seals ---------- */
.royal-stamp{display:inline-block;transform:rotate(-4deg);border:2px solid var(--crimson-hi);color:var(--crimson-hi);font-family:var(--display);font-size:.78rem;letter-spacing:.16em;padding:.28rem .55rem;text-transform:uppercase;border-radius:4px;background:rgba(21,10,44,.06)}

/* ---------- reveal on scroll ---------- */
.rv{opacity:0;transform:translateY(18px);transition:opacity .6s ease,transform .6s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}}

/* ---------- dark cover pages ---------- */
body.royal-dark{background:radial-gradient(1200px 800px at 80% -10%,#2b1160 0%,transparent 60%),radial-gradient(1000px 700px at -10% 40%,#241047 0%,transparent 55%),#150a2c;color:var(--velvet-body)}
body.royal-dark .royal-aurora{position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.55;filter:blur(70px);background:radial-gradient(340px 340px at 20% 25%,rgba(224,175,69,.13),transparent 70%),radial-gradient(420px 420px at 85% 70%,rgba(192,36,88,.14),transparent 70%),radial-gradient(300px 300px at 60% 10%,rgba(122,79,214,.2),transparent 70%);animation:royal-aurora 18s ease-in-out infinite alternate}
@keyframes royal-aurora{to{transform:translate(-4%,3%) scale(1.08)}}
@media (prefers-reduced-motion:reduce){body.royal-dark .royal-aurora{animation:none}}

/* ---------- light court pages polish ---------- */
body:not(.royal-dark){background:#faf6ec}
body:not(.royal-dark) .royal-marquee{background:linear-gradient(180deg,#2b1160,#1f1040)}

/* supersede legacy sticky pills (royal-callbar replaces them) */
.alive-callpill{display:none!important}
@media(max-width:899px){.sticky-call{display:none!important}}
