/* Earwitness — "Ledger" design language.
   Tokens lifted from the Claude Design file "Ear Witness - Designs" (project/Main.dc.html).
   Rules: never colour alone, no decorative gradients or shadows, tabular numbers,
   legal and honesty text never below 14px, 2px stroke icons, 8px spacing scale. */

:root{
  --ink:#0B1220;
  --primary:#1F3A5F;
  --verified:#0F6E56;
  --caution:#B4600F;
  --stop:#A32D2D;
  --ground:#F3F5F8;
  --line:#DDE2EA;
  --line-strong:#CBD3DE;
  --muted:#5B6678;
  --body:#3D4758;
  --white:#FFFFFF;
  --tint-primary:#DCE7F5;
  --tint-verified:#D8EFE7;
  --tint-neutral:#E9EDF3;
  --notice-bg:#FBF1E6;
  --notice-line:#EBCFA8;
  --notice-ink:#5A3A0E;
  --gutter:20px;
  --max:1120px;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:Inter,system-ui,-apple-system,sans-serif;
  font-size:15px;
  line-height:1.5;
  color:var(--ink);
  background:var(--white);
  -webkit-font-smoothing:antialiased;
}
img,svg{max-width:100%}
a{color:var(--primary);text-decoration:underline;text-underline-offset:2px}
a:hover{color:var(--ink)}
h1,h2,h3,h4{margin:0;line-height:1.15;letter-spacing:-0.01em}
h1{font-size:40px;font-weight:700}
h2{font-size:28px;font-weight:700}
h3{font-size:17px;font-weight:600;letter-spacing:0}
p{margin:0}
.num{font-variant-numeric:tabular-nums}

/* layout */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.section{padding:64px 0;border-top:1px solid var(--line)}
.section--ground{background:var(--ground)}
.section--flush{border-top:0}
.stack{display:flex;flex-direction:column;gap:16px}
.stack--lg{gap:32px}
.grid{display:grid;gap:16px}
.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))}
.measure{max-width:680px}
.measure-wide{max-width:820px}

/* eyebrow / titles */
.eyebrow{font-size:12px;font-weight:600;letter-spacing:0.08em;text-transform:uppercase;color:var(--muted)}
.lede{font-size:18px;line-height:1.55;color:var(--body)}
.body{color:var(--body)}
.caption{font-size:12px;color:var(--muted)}

/* skip link */
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:8px;top:8px;z-index:100;background:var(--white);padding:12px 16px;border:2px solid var(--primary);border-radius:12px}

/* header */
.masthead{position:sticky;top:0;z-index:50;background:var(--white);border-bottom:1px solid var(--line)}
.masthead__inner{display:flex;align-items:center;gap:24px;height:68px;max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.brand{display:inline-flex;align-items:center;gap:10px;font-size:17px;font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:-0.01em}
.brand:hover{color:var(--ink)}
.brand__mark{width:28px;height:28px;flex:0 0 28px}
.nav{display:flex;gap:4px;margin-left:auto;align-items:center}
.nav a{
  display:inline-flex;align-items:center;height:40px;padding:0 12px;border-radius:10px;
  font-size:14px;font-weight:600;color:var(--body);text-decoration:none;
}
.nav a:hover{background:var(--ground);color:var(--ink)}
.nav a[aria-current="page"]{background:var(--tint-primary);color:var(--primary)}
.nav__cta{
  display:inline-flex;align-items:center;height:40px;padding:0 16px;border-radius:10px;
  background:var(--primary);color:var(--white)!important;font-size:14px;font-weight:600;text-decoration:none;
}
.nav__cta:hover{background:var(--ink)}
.nav-toggle{display:none;margin-left:auto;height:44px;padding:0 14px;border:1.5px solid var(--line-strong);border-radius:10px;background:var(--white);font:600 14px Inter,system-ui,sans-serif;color:var(--primary);cursor:pointer}

/* buttons */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  height:48px;padding:0 20px;border:0;border-radius:12px;
  background:var(--primary);color:var(--white);
  font:600 15px Inter,system-ui,sans-serif;text-decoration:none;cursor:pointer;
}
.btn:hover{background:var(--ink);color:var(--white)}
.btn--secondary{background:var(--white);color:var(--primary);border:1.5px solid var(--line-strong)}
.btn--secondary:hover{background:var(--ground);color:var(--primary)}
.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}

/* cards */
.card{padding:20px;border:1px solid var(--line);border-radius:14px;background:var(--white);display:flex;flex-direction:column;gap:8px}
.card--ground{background:var(--ground)}
.card h3{margin-bottom:2px}
.card__num{font-size:40px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-0.02em;line-height:1}
.card__num span{font-size:16px;font-weight:500;color:var(--muted)}

/* badges */
.badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;background:var(--tint-neutral);color:var(--body)}
.badge--indicative{background:var(--tint-neutral);color:var(--ink)}
.badge--cross{background:var(--tint-primary);color:var(--primary)}
.badge--calibrated{background:var(--tint-verified);color:var(--verified)}
.badge--class1{background:var(--ink);color:var(--white)}
.badge-row{display:flex;flex-wrap:wrap;gap:8px}

/* notices — amber is reserved for what a reader must not misunderstand */
.notice{display:flex;gap:12px;padding:14px 16px;border-radius:12px;background:var(--notice-bg);border:1px solid var(--notice-line)}
.notice p{font-size:14px;line-height:1.45;color:var(--notice-ink)}
.notice svg{flex:0 0 20px}
.notice--plain{background:var(--ground);border-color:var(--line)}
.notice--plain p{color:var(--body)}

/* hero — sized so the whole pitch lands above the fold */
.hero{padding:40px 0 44px}
.hero__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,auto);gap:48px;align-items:center}
.hero h1{font-size:44px;max-width:21ch}
.hero .lede{font-size:17px;max-width:54ch}
.hero__copy{gap:14px}
.hero__device{display:flex;justify-content:center}
.frame--hero{width:218px;height:472px;border-radius:17px}
.frame--hero iframe{transform:scale(0.5590)}
.notice--tight{padding:12px 14px}
.notice--tight p{font-size:14px;line-height:1.4}
@media (max-height:780px){
  .hero{padding:28px 0 32px}
  .hero h1{font-size:38px}
  .frame--hero{width:190px;height:411px}
  .frame--hero iframe{transform:scale(0.4872)}
}
.panel{border:1px solid var(--line);border-radius:14px;overflow:hidden}
.panel__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid var(--line);background:var(--ground)}
.panel__head p{font-size:13px;font-weight:600}
.row{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 16px;border-bottom:1px solid var(--line)}
.row:last-child{border-bottom:0}
.row__dot{width:10px;height:10px;border-radius:999px;flex:0 0 10px;background:var(--verified)}
.row__dot--caution{background:var(--caution)}
.row__dot--neutral{background:var(--line-strong)}
.row__main{flex:1 1 auto;min-width:0}
.row__main p:first-child{font-size:15px}
.row__meta{font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}

/* steps */
.steps{counter-reset:step;display:flex;flex-direction:column;gap:12px;margin:0;padding:0;list-style:none}
.steps li{counter-increment:step;display:flex;gap:16px;padding:16px 20px;border:1px solid var(--line);border-radius:14px}
.steps li::before{
  content:counter(step);flex:0 0 32px;height:32px;border-radius:999px;background:var(--tint-primary);color:var(--primary);
  display:inline-flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;font-variant-numeric:tabular-nums;
}

/* tables */
.table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px}
table{border-collapse:collapse;width:100%;min-width:760px;font-size:14px}
caption{text-align:left;padding:16px 16px 8px;font-size:13px;color:var(--muted)}
th,td{padding:12px 16px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}
thead th{background:var(--ground);font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;position:sticky;top:0}
tbody th{font-weight:600;color:var(--ink)}
tbody tr:last-child th,tbody tr:last-child td{border-bottom:0}
td .num,th .num{font-variant-numeric:tabular-nums}
.mark{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:13px}
.mark--yes{color:var(--verified)}
.mark--no{color:var(--muted)}
.mark--part{color:var(--caution)}
.col-us{background:#F7FAFD}

/* FAQ */
details.qa{border:1px solid var(--line);border-radius:14px;background:var(--white);overflow:hidden}
details.qa+details.qa{margin-top:10px}
details.qa>summary{
  display:flex;align-items:center;gap:12px;padding:18px 20px;cursor:pointer;
  font-size:16px;font-weight:600;color:var(--ink);list-style:none;
}
details.qa>summary::-webkit-details-marker{display:none}
details.qa>summary::after{content:"+";margin-left:auto;font-size:20px;font-weight:600;color:var(--muted);line-height:1}
details.qa[open]>summary::after{content:"\2212"}
details.qa[open]>summary{border-bottom:1px solid var(--line)}
.qa__body{padding:16px 20px 20px;display:flex;flex-direction:column;gap:12px;color:var(--body)}
.qa__body a{color:var(--primary)}

/* legal / long-form prose: never below 14px */
.prose{font-size:15px;line-height:1.65;color:var(--body);max-width:760px}
.prose h2{margin:40px 0 12px;color:var(--ink)}
.prose h3{margin:28px 0 8px;color:var(--ink);font-size:17px}
.prose p,.prose li{font-size:15px}
.prose ul,.prose ol{padding-left:22px;margin:12px 0}
.prose li+li{margin-top:6px}
.prose table{min-width:0;font-size:14px}

/* table of contents */
.toc{border:1px solid var(--line);border-radius:14px;padding:16px 20px;background:var(--ground)}
.toc ol{margin:8px 0 0;padding-left:20px;font-size:14px}
.toc li+li{margin-top:4px}

/* coverage */
.coverage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.country{border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:8px}
.country__name{display:flex;align-items:center;gap:8px;font-size:17px;font-weight:600}
.country__list{font-size:13px;color:var(--body);margin:0;padding-left:18px}
.country__list li+li{margin-top:4px}

/* footer */
.footer{border-top:1px solid var(--line);background:var(--ground);padding:48px 0 32px}
.footer__grid{display:grid;grid-template-columns:minmax(0,1.4fr) repeat(3,minmax(0,1fr));gap:32px}
.footer h4{font-size:13px;font-weight:600;letter-spacing:0.06em;text-transform:uppercase;color:var(--muted)}
.footer ul{list-style:none;margin:12px 0 0;padding:0;font-size:14px}
.footer li+li{margin-top:8px}
.footer a{color:var(--body);text-decoration:none}
.footer a:hover{color:var(--ink);text-decoration:underline}
.footer__legal{margin-top:32px;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--muted);display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}

@media (max-width:900px){
  .hero__grid{grid-template-columns:minmax(0,1fr);gap:28px}
  .hero h1{font-size:34px;max-width:none}
  .frame--hero{width:200px;height:433px}
  .frame--hero iframe{transform:scale(0.5128)}
  h1{font-size:32px}
  h2{font-size:24px}
  .grid-3,.grid-4,.coverage{grid-template-columns:repeat(2,minmax(0,1fr))}
  .footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav-toggle{display:inline-flex;align-items:center}
  .nav{
    display:none;position:absolute;left:0;right:0;top:68px;flex-direction:column;align-items:stretch;
    gap:4px;padding:12px var(--gutter) 16px;background:var(--white);border-bottom:1px solid var(--line);
  }
  .nav.is-open{display:flex}
  .nav a,.nav__cta{height:48px;justify-content:flex-start}
}
@media (max-width:560px){
  .grid-2,.grid-3,.grid-4,.coverage{grid-template-columns:minmax(0,1fr)}
  .section{padding:48px 0}
  .hero{padding:48px 0 40px}
}
@media print{
  .masthead,.nav,.footer__grid,.btn-row{display:none}
  body{font-size:12pt}
  .section{border:0;padding:12pt 0}
}

/* ---- Screenshots -------------------------------------------------------
   Real app screens, served from /screens and shown at scale inside a frame.
   pointer-events are off: these are pictures, not a working app. */
.shots{display:flex;flex-wrap:wrap;gap:24px;align-items:flex-start}
.shot{margin:0;display:flex;flex-direction:column;gap:10px;max-width:272px}
.shot figcaption{font-size:13px;line-height:1.45;color:var(--body)}
.shot figcaption b{color:var(--ink);font-weight:600}
.frame{
  position:relative;overflow:hidden;background:var(--white);
  border:1px solid var(--line);border-radius:20px;
  width:272px;height:589px;flex:0 0 auto;
}
.frame iframe{
  width:390px;height:844px;border:0;display:block;
  transform:scale(0.6974);transform-origin:top left;pointer-events:none;
}
.frame--page{width:360px;height:496px;border-radius:10px}
.frame--page iframe{width:900px;height:1240px;transform:scale(0.4)}
.shot--page{max-width:360px}
.frame--sm{width:200px;height:433px;border-radius:16px}
.frame--sm iframe{transform:scale(0.5128)}
.shot--sm{max-width:200px}
.shot-note{font-size:12px;color:var(--muted)}
.step-shot{display:flex;gap:24px;align-items:flex-start;flex-wrap:wrap}
.step-shot .stack{flex:1 1 320px;min-width:260px}
@media (max-width:560px){
  .shots{gap:20px;justify-content:center}
  .frame--page{width:300px;height:414px}
  .frame--page iframe{transform:scale(0.3333)}
  .shot--page{max-width:300px}
}

/* ---- How-it-works carousel -------------------------------------------
   Screens and copy change together. Manual first: autoplay stops for good
   on any interaction, and never starts if the visitor prefers reduced motion. */
.section--carousel{overflow:hidden}
.carousel{
  display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);
  gap:56px;align-items:center;
}
.carousel__stage{
  position:relative;width:272px;height:589px;flex:0 0 auto;
  justify-self:center;
}
.carousel__pane{
  position:absolute;inset:0;
  opacity:0;transform:translateY(10px) scale(0.985);
  transition:opacity .45s ease,transform .45s ease;
  pointer-events:none;
}
.carousel__pane.is-active{opacity:1;transform:none}
.frame--carousel{width:272px;height:589px}

.carousel__side{display:flex;flex-direction:column;gap:28px;min-width:0}
.carousel__copies{position:relative;min-height:236px}
.carousel__copy{
  position:absolute;inset:0;max-width:52ch;
  display:flex;flex-direction:column;gap:12px;
  opacity:0;transform:translateY(8px);
  transition:opacity .45s ease,transform .45s ease;
  pointer-events:none;
}
.carousel__copy.is-active{opacity:1;transform:none;pointer-events:auto}
.carousel__num{
  font-size:13px;font-weight:700;letter-spacing:0.08em;color:var(--primary);
  font-variant-numeric:tabular-nums;
}
.carousel__num span{color:var(--muted);font-weight:600}
.carousel__title{font-size:26px;font-weight:700;line-height:1.2;letter-spacing:-0.01em}

.carousel__controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.carousel__arrow,.carousel__play{
  display:inline-flex;align-items:center;justify-content:center;
  width:44px;height:44px;border:1.5px solid var(--line-strong);border-radius:12px;
  background:var(--white);color:var(--primary);cursor:pointer;
}
.carousel__arrow:hover,.carousel__play:hover{background:var(--ground)}
.carousel__arrow:focus-visible,.carousel__play:focus-visible,.carousel__dot:focus-visible{
  outline:2px solid var(--primary);outline-offset:2px
}
.carousel__dots{display:flex;gap:6px;align-items:center;margin:0 4px}
.carousel__dot{
  width:28px;height:44px;padding:0;border:0;background:none;cursor:pointer;
  display:inline-flex;align-items:center;justify-content:center;
}
.carousel__dot span{
  display:block;width:24px;height:4px;border-radius:999px;background:var(--line-strong);
  transition:background .25s ease;
}
.carousel__dot:hover span{background:var(--muted)}
.carousel__dot.is-active span{background:var(--primary)}
.carousel__play .icon-play{display:none}
.carousel__play[data-playstate="paused"] .icon-pause{display:none}
.carousel__play[data-playstate="paused"] .icon-play{display:block}

@media (max-width:980px){
  .carousel{grid-template-columns:minmax(0,1fr);gap:28px}
  .carousel__stage{width:230px;height:498px}
  .frame--carousel{width:230px;height:498px}
  .frame--carousel iframe{transform:scale(0.5897)}
  .carousel__copies{min-height:280px}
  .carousel__title{font-size:22px}
}
@media (max-width:560px){
  .carousel__copies{min-height:320px}
}
@media (prefers-reduced-motion:reduce){
  .carousel__pane,.carousel__copy{transition:none}
}

/* ---- Full-page deck --------------------------------------------------
   The homepage as a carousel: each main section is one screen, no scrolling.
   ?view=page removes it and returns a normal scrolling page. */
.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}

.has-deck,.has-deck body{overflow:hidden}
.deck{
  position:relative;
  height:calc(100dvh - 68px);
  display:flex;flex-direction:column;
}
.deck__viewport{flex:1 1 auto;overflow:hidden}
.deck__track{display:flex;height:100%;transition:transform .5s cubic-bezier(.4,0,.2,1)}
.deck__slide{
  flex:0 0 100%;height:100%;overflow-y:auto;overflow-x:hidden;
  display:flex;align-items:center;
}
.deck__inner{width:100%;max-width:var(--max);margin:0 auto;padding:24px var(--gutter)}
.deck__slide h1{font-size:44px;max-width:21ch}
.deck__slide h2{font-size:32px;max-width:24ch}
.deck__slide .lede{font-size:17px;max-width:56ch}

.deck__split{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,auto);gap:48px;align-items:center}
.deck__media{display:flex;justify-content:center}
.frame--deck{width:218px;height:472px;border-radius:17px}
.frame--deck iframe{transform:scale(0.5590)}
.deck__num{font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--primary);font-variant-numeric:tabular-nums}
.deck__num span{color:var(--muted);font-weight:600;text-transform:none;letter-spacing:.04em}

/* control bar */
.deck__bar{
  flex:0 0 auto;display:flex;align-items:center;gap:12px;
  padding:10px var(--gutter);border-top:1px solid var(--line);background:var(--white);
  max-width:var(--max);margin:0 auto;width:100%;
}
.deck__arrow{
  display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
  border:1.5px solid var(--line-strong);border-radius:10px;background:var(--white);
  color:var(--primary);cursor:pointer;flex:0 0 auto;
}
.deck__arrow:hover:not(:disabled){background:var(--ground)}
.deck__arrow:disabled{opacity:.35;cursor:default}
.deck__dots{display:flex;gap:5px;align-items:center;flex:1 1 auto;min-width:0;overflow:hidden}
.deck__dot{width:100%;max-width:34px;height:40px;padding:0;border:0;background:none;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.deck__dot span{display:block;width:100%;height:4px;border-radius:999px;background:var(--line-strong);transition:background .25s ease}
.deck__dot:hover span{background:var(--muted)}
.deck__dot.is-active span{background:var(--primary)}
.deck__count{font-size:13px;font-weight:600;color:var(--muted);font-variant-numeric:tabular-nums;flex:0 0 auto}
.deck__plain{font-size:13px;color:var(--muted);text-decoration:underline;flex:0 0 auto}
.deck__arrow:focus-visible,.deck__dot:focus-visible{outline:2px solid var(--primary);outline-offset:2px}

/* the deck hides the page footer; it is reachable from the last slide's links */
.has-deck .footer{display:none}

/* plain-page fallback: ?view=page */
.view-page,.view-page body{overflow:auto}
.view-page .deck{height:auto;display:block}
.view-page .deck__viewport{overflow:visible}
.view-page .deck__track{display:block;transform:none!important}
.view-page .deck__slide{height:auto;display:block;border-bottom:1px solid var(--line)}
.view-page .deck__slide[aria-hidden]{display:block}
.view-page .deck__inner{padding:56px var(--gutter)}
.view-page .deck__bar{display:none}
.view-page .footer{display:block}

@media (max-width:980px){
  .deck__split{grid-template-columns:minmax(0,1fr);gap:24px}
  .deck__media{order:-1}
  .deck__slide h1{font-size:30px}
  .deck__slide h2{font-size:24px;max-width:none}
  .deck__slide .lede{font-size:16px}
  .frame--deck{width:170px;height:368px}
  .frame--deck iframe{transform:scale(0.4359)}
  .deck__plain{display:none}
}
@media (max-width:620px){
  .deck__inner{padding:16px var(--gutter)}
  .deck__slide{align-items:flex-start}
  .deck__media{display:none}
  .deck__slide h1{font-size:28px}
  .deck__count{display:none}
}
@media (prefers-reduced-motion:reduce){
  .deck__track{transition:none}
}
