/* ===========================================================================
   ORBCAT : design tokens (locked from assets/avatar.png + assets/banner.png)
   ---------------------------------------------------------------------------
   Palette   : desk orange   #F0895F  (sampled 240,137,95 avatar background)
               orb violet    #BB96BB  (sampled 187,150,187 paw pad / orb spots)
               violet deep   #6B3F84  (derived, CTA/badge contrast against orange)
               ink           #241F1D  (pedestal black, outline weight)
               cream         #FFF3E8  (content-section surface, off the orange)
               brass         #C9A24B  (claims plaque, insurance-office prop)
   Type      : Lilita One 400        display, chunky rounded comic headline
               Nunito 400/700/800    body / UI
               JetBrains Mono 400/500/700  CA plaque, counters, ledger figures
               (self-hosted woff2 in assets/fonts, no runtime remote fetch)
   Spacing   : 4 . 8 . 12 . 16 . 24 . 32 . 48 . 64 . 96 . 128 (px)
   Radius    : 22px panels . 14px controls . 999px pills
   Motion    : paw swipe 380ms cubic-bezier(.32,.94,.6,1) in, ball fall is a
               PER-EVENT injected @keyframes (random drift/bounce, written by
               app.js on every knock, never a fixed loop), respawn pop 460ms
               back-out. prefers-reduced-motion collapses all of it to a plain
               opacity cross-fade.
   =========================================================================== */

@font-face{font-family:"Lilita One";src:url("assets/fonts/lilita-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Nunito";src:url("assets/fonts/nunito-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"Nunito";src:url("assets/fonts/nunito-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap;}
@font-face{font-family:"Nunito";src:url("assets/fonts/nunito-800.woff2") format("woff2");font-weight:800;font-style:normal;font-display:swap;}
@font-face{font-family:"JetBrains Mono";src:url("assets/fonts/jbmono-400.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap;}
@font-face{font-family:"JetBrains Mono";src:url("assets/fonts/jbmono-500.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap;}
@font-face{font-family:"JetBrains Mono";src:url("assets/fonts/jbmono-700.woff2") format("woff2");font-weight:700;font-style:normal;font-display:swap;}

:root{
  --clr-orange:#F0895F;
  --clr-orange-deep:#D96E3C;
  --clr-orange-dim:rgba(217,110,60,.16);
  --clr-purple-soft:#BB96BB;
  --clr-purple-deep:#6B3F84;
  --clr-purple-dim:rgba(107,63,132,.14);
  --clr-ink:#241F1D;
  --clr-cream:#FFF3E8;
  --clr-cream-soft:#FFFAF4;
  --clr-brass:#C9A24B;
  --clr-brass-deep:#8A6A28;
  --text-hi:#241F1D;
  --text-body:#5B4A44;
  --text-faint:#8A756D;
  --text-on-dark:#FFF3E8;
  --line:rgba(36,31,29,.14);
  --line-strong:rgba(36,31,29,.28);

  --font-display:"Lilita One","Baloo 2",system-ui,sans-serif;
  --font-body:"Nunito",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --font-mono:"JetBrains Mono","SFMono-Regular",Consolas,monospace;

  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:24px;
  --sp-6:32px; --sp-7:48px; --sp-8:64px; --sp-9:96px; --sp-10:128px;

  --radius-lg:22px; --radius-md:14px; --radius-sm:9px; --radius-pill:999px;

  --ease-out:cubic-bezier(.32,.94,.6,1);
  --ease-pop:cubic-bezier(.34,1.56,.64,1);
  --dur-swipe:380ms;
  --dur-pop:460ms;
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--clr-cream);
  color:var(--text-hi);
  font-family:var(--font-body);
  font-size:16px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul,ol{margin:0;padding:0;list-style:none;}
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
h1,h2,h3{font-family:var(--font-display);font-weight:400;line-height:1.08;margin:0;letter-spacing:.01em;}
p{margin:0;}

#boot-error-banner{
  position:fixed;top:0;left:0;right:0;z-index:9999;
  background:#B3261E;color:#fff;font-family:var(--font-mono);
  font-size:13px;padding:10px 16px;text-align:center;
}
#boot-error-banner:empty{display:none;}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .6s var(--ease-out),transform .6s var(--ease-out);}
.reveal.is-visible{opacity:1;transform:none;}

/* ---------- header strip ---------- */
.desk-strip{
  position:sticky;top:0;z-index:50;
  background:var(--clr-cream-soft);
  border-bottom:3px solid var(--clr-ink);
  padding:10px var(--sp-5) 0;
}
.strip-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);}
.strip-row--top{padding-bottom:8px;}
.brand{display:flex;align-items:center;gap:10px;}
.brand-logo{width:30px;height:30px;border-radius:8px;border:2px solid var(--clr-ink);}
.brand-mark{font-family:var(--font-display);font-size:19px;letter-spacing:.02em;}
.brand-sub{display:none;}
@media (min-width:640px){
  .brand-sub{display:inline;font-family:var(--font-mono);font-size:11px;color:var(--text-faint);padding-left:8px;border-left:1px solid var(--line-strong);margin-left:2px;text-transform:uppercase;letter-spacing:.06em;}
}
.status-chip{
  display:flex;align-items:center;gap:7px;
  font-family:var(--font-mono);font-size:11px;letter-spacing:.03em;
  color:var(--clr-purple-deep);background:var(--clr-purple-dim);
  border:1px solid var(--clr-purple-deep);border-radius:var(--radius-pill);
  padding:5px 12px;white-space:nowrap;
}
.status-dot{width:7px;height:7px;border-radius:50%;background:#4FA35A;box-shadow:0 0 0 3px rgba(79,163,90,.25);}
.strip-row--nav{padding:10px 0;gap:var(--sp-4);}
.nav-links{display:none;gap:var(--sp-4);font-weight:700;font-size:13.5px;flex-wrap:wrap;}
@media (min-width:820px){.nav-links{display:flex;}}
.nav-links a{opacity:.75;transition:opacity .2s;}
.nav-links a:hover{opacity:1;}
.nav-controls{display:flex;align-items:center;gap:10px;margin-left:auto;}
.icon-btn{
  display:flex;align-items:center;gap:8px;
  border-radius:var(--radius-pill);
  transition:transform .18s var(--ease-out);
}
.icon-btn:hover{transform:translateY(-2px);}
.buy-btn{
  background:var(--clr-purple-deep);color:#fff;
  padding:8px 16px 8px 8px;font-weight:800;font-size:13.5px;
  border:2px solid var(--clr-ink);
}
.buy-btn span{white-space:nowrap;}

/* ---------- hero ---------- */
.hero{
  padding:var(--sp-8) var(--sp-5) var(--sp-7);
  max-width:1080px;margin:0 auto;
  display:grid;gap:var(--sp-7);
}
.hero-copy{max-width:640px;}
.eyebrow{
  font-family:var(--font-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--clr-purple-deep);font-weight:700;margin-bottom:10px;
}
.hero h1{font-size:clamp(30px,5.4vw,50px);}
.hero-sub{margin-top:var(--sp-4);font-size:17px;color:var(--text-body);max-width:56ch;}
.hero-mascot{display:none;}
@media (min-width:920px){
  .hero-mascot{
    display:block;width:180px;height:auto;margin-top:var(--sp-6);
    filter:drop-shadow(0 10px 0 rgba(36,31,29,.12));
  }
}

.scene-wrap{display:grid;justify-items:center;gap:var(--sp-4);}
.scene{
  position:relative;
  width:100%;max-width:640px;
  border:3px solid var(--clr-ink);
  border-radius:var(--radius-lg);
  overflow:hidden;
  box-shadow:0 14px 0 -6px var(--clr-orange-deep);
  background:var(--clr-orange);
}
.scene-still{
  display:block;
  width:100%;height:auto;
}

.brass-plaque{
  position:absolute;left:50%;bottom:2.2%;transform:translateX(-50%);
  width:min(78%,300px);
  background:linear-gradient(180deg,#DEB868,var(--clr-brass) 46%,var(--clr-brass-deep));
  border:2px solid #5B3F14;border-radius:8px;
  padding:8px 12px;
  display:flex;flex-direction:column;align-items:center;gap:2px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.5),0 3px 0 rgba(36,31,29,.3);
  cursor:pointer;
}
.brass-plaque:focus-visible{outline:3px solid var(--clr-ink);outline-offset:3px;}
.plaque-label{font-family:var(--font-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#3E2A0C;opacity:.8;}
.plaque-ca{font-family:var(--font-mono);font-size:12.5px;font-weight:700;color:#2B1D08;text-align:center;word-break:break-all;}
.plaque-state{font-family:var(--font-mono);font-size:9.5px;color:#3E2A0C;opacity:.7;}
.brass-plaque.is-copied .plaque-state{color:#1E5C34;opacity:1;}

.scene-hint{font-family:var(--font-mono);font-size:12px;color:var(--text-faint);text-align:center;min-height:16px;}

.hero-stats{
  width:100%;max-width:640px;margin:0;
  display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-3);
}
.hero-stats > div{
  background:var(--clr-cream-soft);border:2px solid var(--clr-ink);border-radius:var(--radius-md);
  padding:12px 10px;text-align:center;
}
.hero-stats dt{font-family:var(--font-mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-faint);}
.hero-stats dd{margin:4px 0 0;font-family:var(--font-mono);font-size:clamp(18px,4vw,26px);font-weight:700;color:var(--clr-purple-deep);}
.hero-stats dd.is-tweening{transition:opacity .18s;opacity:.4;}

/* ---------- coverage steps ---------- */
.coverage{
  background:var(--clr-cream-soft);
  padding:var(--sp-8) var(--sp-5);
  border-top:3px solid var(--clr-ink);border-bottom:3px solid var(--clr-ink);
}
.section-head{max-width:1080px;margin:0 auto var(--sp-6);}
.section-head h2{font-size:clamp(24px,3.6vw,34px);margin-top:8px;}
.section-sub{margin-top:10px;color:var(--text-body);font-size:15.5px;max-width:62ch;}
.coverage-steps{
  max-width:1080px;margin:0 auto;
  display:grid;gap:var(--sp-5);
}
@media (min-width:820px){.coverage-steps{grid-template-columns:repeat(3,1fr);}}
.coverage-steps li{
  background:var(--clr-cream);border:2px solid var(--clr-ink);border-radius:var(--radius-lg);
  padding:var(--sp-5);
}
.step-index{
  display:inline-block;font-family:var(--font-mono);font-weight:700;font-size:13px;
  color:#fff;background:var(--clr-purple-deep);border-radius:var(--radius-pill);
  padding:3px 10px;margin-bottom:var(--sp-3);
}
.coverage-steps h3{font-size:20px;margin-bottom:8px;}
.coverage-steps p{color:var(--text-body);font-size:15px;}

/* ---------- ledger ---------- */
.ledger{padding:var(--sp-8) var(--sp-5);}
.table-wrap{
  max-width:1080px;margin:0 auto;overflow-x:auto;
  border:2px solid var(--clr-ink);border-radius:var(--radius-lg);
  background:var(--clr-cream-soft);
}
table{width:100%;border-collapse:collapse;min-width:560px;}
thead th{
  text-align:left;font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.05em;
  color:var(--text-faint);padding:14px 16px;border-bottom:2px solid var(--clr-ink);
}
tbody td{
  padding:12px 16px;border-bottom:1px solid var(--line);font-size:14px;
}
tbody tr:last-child td{border-bottom:none;}
tbody tr.is-new{animation:rowIn .5s var(--ease-out) both;}
@keyframes rowIn{
  0%{opacity:0;transform:translateY(-8px);background:var(--clr-purple-dim);}
  100%{opacity:1;transform:translateY(0);background:transparent;}
}
td.col-time,td.col-damage{font-family:var(--font-mono);white-space:nowrap;}
td.col-status{font-family:var(--font-mono);font-weight:700;font-size:12px;letter-spacing:.04em;}
td.col-status.status-denied{color:#B3261E;}
td.col-status.status-replaced{color:var(--clr-purple-deep);}

/* ---------- policy (declarations page) ---------- */
.policy{background:var(--clr-cream-soft);padding:var(--sp-8) var(--sp-5);border-bottom:3px solid var(--clr-ink);}
.policy-doc{
  max-width:1080px;margin:0 auto;
  background:var(--clr-cream);border:2px solid var(--clr-ink);border-radius:var(--radius-lg);
  padding:var(--sp-6);
  box-shadow:0 10px 0 -4px var(--clr-orange-deep);
}
.policy-meta{
  display:grid;grid-template-columns:repeat(2,1fr);gap:var(--sp-3);
  margin:0 0 var(--sp-6);padding-bottom:var(--sp-5);
  border-bottom:1px dashed var(--line-strong);
}
@media (min-width:720px){.policy-meta{grid-template-columns:repeat(4,1fr);}}
.policy-meta > div{display:flex;flex-direction:column;gap:3px;}
.policy-meta dt{font-family:var(--font-mono);font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint);}
.policy-meta dd{margin:0;font-weight:800;font-size:14px;}
.policy-grid{display:grid;gap:var(--sp-5);}
@media (min-width:820px){.policy-grid{grid-template-columns:1fr 1fr;}}
.policy-col{border:2px solid var(--clr-ink);border-radius:var(--radius-md);padding:var(--sp-5);}
.policy-col h3{font-size:19px;margin-bottom:var(--sp-3);}
.policy-col ul{display:flex;flex-direction:column;gap:10px;}
.policy-col li{position:relative;padding-left:22px;font-size:14.5px;color:var(--text-body);}
.policy-col li::before{position:absolute;left:0;top:1px;font-family:var(--font-mono);font-weight:700;}
.policy-col--covered{background:rgba(79,163,90,.08);border-color:#3D7E48;}
.policy-col--covered h3{color:#2C6135;}
.policy-col--covered li::before{content:"+";color:#3D7E48;}
.policy-col--excluded{background:rgba(179,38,30,.06);border-color:#B3261E;}
.policy-col--excluded h3{color:#8E1E17;}
.policy-col--excluded li::before{content:"\2212";color:#B3261E;}
.policy-fine{margin-top:var(--sp-5);font-size:13px;color:var(--text-faint);line-height:1.7;max-width:74ch;}

/* ---------- plans (rate schedule) ---------- */
.plans{padding:var(--sp-8) var(--sp-5);}
.plan-grid{max-width:1080px;margin:0 auto;display:grid;gap:var(--sp-5);}
@media (min-width:820px){.plan-grid{grid-template-columns:repeat(3,1fr);}}
.plan-card{
  position:relative;background:var(--clr-cream-soft);border:2px solid var(--clr-ink);border-radius:var(--radius-lg);
  padding:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-3);
}
.plan-card--recommended{
  background:var(--clr-cream);border-color:var(--clr-purple-deep);
  box-shadow:0 10px 0 -5px var(--clr-purple-deep);
}
.plan-badge{
  position:absolute;top:-13px;left:var(--sp-5);
  font-family:var(--font-mono);font-size:10.5px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  background:var(--clr-purple-deep);color:#fff;border-radius:var(--radius-pill);padding:4px 10px;
}
.plan-name{font-family:var(--font-display);font-size:20px;}
.plan-price{font-family:var(--font-mono);font-weight:700;font-size:26px;color:var(--clr-purple-deep);}
.plan-price span{font-size:13px;font-weight:400;color:var(--text-faint);}
.plan-card ul{display:flex;flex-direction:column;gap:8px;flex:1;}
.plan-card li{position:relative;padding-left:18px;font-size:14px;color:var(--text-body);}
.plan-card li::before{content:"\2022";position:absolute;left:0;color:var(--clr-orange-deep);font-weight:700;}
.plan-verdict{font-size:13px;font-style:italic;color:var(--text-faint);border-top:1px solid var(--line);padding-top:var(--sp-3);}

/* ---------- journal (narrative case log) ---------- */
.journal{background:var(--clr-cream-soft);padding:var(--sp-8) var(--sp-5);border-top:3px solid var(--clr-ink);}
.journal-list{
  max-width:820px;margin:0 auto;
  display:flex;flex-direction:column;gap:var(--sp-5);
  border-left:3px solid var(--clr-purple-deep);
}
.journal-list li{position:relative;padding:0 0 0 var(--sp-5);margin-left:var(--sp-3);}
.journal-list li::before{
  content:"";position:absolute;left:calc(-1 * var(--sp-3) - 8px);top:4px;
  width:13px;height:13px;border-radius:50%;
  background:var(--clr-cream-soft);border:3px solid var(--clr-purple-deep);
}
.journal-case{
  display:inline-block;font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.05em;
  color:var(--clr-purple-deep);margin-bottom:6px;
}
.journal-list h3{font-size:19px;margin-bottom:8px;}
.journal-list p{color:var(--text-body);font-size:14.5px;max-width:64ch;}

/* ---------- faq ---------- */
.faq{padding:var(--sp-8) var(--sp-5);}
.faq-list{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:var(--sp-3);}
.faq-item{
  border:2px solid var(--clr-ink);border-radius:var(--radius-md);
  background:var(--clr-cream-soft);padding:16px var(--sp-5);
}
.faq-item summary{
  cursor:pointer;list-style:none;font-weight:800;font-size:15.5px;
  display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{
  content:"+";flex:0 0 auto;font-family:var(--font-mono);font-size:18px;color:var(--clr-purple-deep);
  transition:transform .2s var(--ease-out);
}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item p{margin-top:12px;color:var(--text-body);font-size:14.5px;max-width:66ch;}

/* ---------- footer ---------- */
.site-footer{
  background:var(--clr-ink);color:var(--text-on-dark);
  padding:var(--sp-7) var(--sp-5) var(--sp-5);
}
.footer-inner{
  max-width:1080px;margin:0 auto;
  display:grid;gap:var(--sp-6);
}
@media (min-width:820px){.footer-inner{grid-template-columns:1.3fr 1fr;}}
.footer-brand{display:flex;flex-direction:column;gap:10px;align-items:flex-start;}
.footer-brand .brand-mark{color:var(--text-on-dark);}
.footer-desc{color:rgba(255,243,232,.7);font-size:14px;max-width:44ch;}
.footer-ca{
  display:flex;align-items:center;gap:10px;
  font-family:var(--font-mono);font-size:12.5px;
  background:rgba(255,243,232,.08);border:1px solid rgba(255,243,232,.25);
  border-radius:var(--radius-pill);padding:7px 14px;margin-top:6px;
}
.footer-ca:hover{border-color:rgba(255,243,232,.5);}
.footer-controls{display:flex;flex-direction:column;gap:var(--sp-4);align-items:flex-start;}
@media (min-width:820px){.footer-controls{align-items:flex-end;}}
.footer-nav{display:flex;gap:var(--sp-4);font-size:13.5px;flex-wrap:wrap;}
.footer-nav a{opacity:.72;}
.footer-nav a:hover{opacity:1;}
.footer-social{display:flex;gap:10px;}
.footer-meta{
  max-width:1080px;margin:var(--sp-6) auto 0;padding-top:var(--sp-4);
  border-top:1px solid rgba(255,243,232,.16);
  display:flex;flex-wrap:wrap;gap:var(--sp-3);justify-content:space-between;
  font-family:var(--font-mono);font-size:11px;color:rgba(255,243,232,.55);
}
.disclosure{
  max-width:1080px;margin:var(--sp-4) auto 0;font-size:11.5px;
  color:rgba(255,243,232,.4);line-height:1.6;
}

/* ---------- responsive tuning ---------- */
@media (max-width:400px){
  .hero{padding:var(--sp-6) var(--sp-4) var(--sp-6);}
  .hero-stats{grid-template-columns:1fr 1fr 1fr;gap:8px;}
  .hero-stats > div{padding:9px 6px;}
  .hero-stats dd{font-size:16px;}
  .desk-strip{padding:8px var(--sp-4) 0;}
}
@media (min-width:920px){
  .hero{grid-template-columns:1fr 1.1fr;align-items:center;}
  .hero-copy{padding-right:var(--sp-6);}
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  .reveal{transition:opacity .2s linear;transform:none;}
  .paw-img.is-swiping,.paw-img.is-retreating,.ball-img.is-popping,
  .scene.is-shattering .ball-img,.scene.is-shattering::after{animation:none !important;}
  .icon-btn:hover{transform:none;}
}
