@font-face{font-family:'Fraunces';font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/fraunces-italic-latin-ext.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:'Fraunces';font-style:italic;font-weight:400 700;font-display:swap;src:url(/fonts/fraunces-italic-latin.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:'Fraunces';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fraunces-normal-latin-ext.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:'Fraunces';font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/fraunces-normal-latin.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:'Comfortaa';font-style:normal;font-weight:300 700;font-display:swap;src:url(/fonts/comfortaa-latin.woff2) format('woff2')}

:root{--font:'Fraunces',Georgia,'Times New Roman',serif;--font-hi:'Comfortaa',ui-rounded,system-ui,-apple-system,'Segoe UI',sans-serif}

body{font-family:var(--font);font-size:17px;font-weight:400;line-height:1.6;letter-spacing:0;font-optical-sizing:auto}
h1,h2,h3,h4{font-family:var(--font);font-weight:600;font-optical-sizing:auto}
h1{font-size:clamp(2.3rem,6vw,4.2rem);line-height:1.03;letter-spacing:-.025em}
h2{font-size:clamp(1.8rem,4.4vw,2.8rem);line-height:1.07;letter-spacing:-.02em}
h3{font-size:1.22rem;line-height:1.25;letter-spacing:-.01em}
h4{font-size:1.02rem}
.h-tool{font-size:clamp(2rem,4.8vw,2.8rem);letter-spacing:-.02em}
.lead{font-size:clamp(1.08rem,2vw,1.25rem);line-height:1.5}
.small{font-size:.88rem}.tiny{font-size:.78rem}
em,i,.hero h1 .soft{font-style:italic}

.eyebrow,.brand,.nav nav a,.btn,.icon-btn,.seg span,.chip,.pill,.live-pill,.toast,.fchip,.nb,.side .cap,.lvl,
.field>label,.field>.label,.group h4,.section-t,.opt b,.opt .tag,.steps-bar,.steps li::before,.stepper,
.day small,.day b,.day em,.time,.pinbox,.pin-input,.cal .dow,.cd .cnt,.cd .tag,.hb b,
.float,table.t th,.tl-lbl,.progress-steps i,.next-list .n,.soon,
.setrow label.l,.check,.faq summary,.legal nav.toc a,.vh .act,.calc .row-h,.calc output,
input,select,button{font-family:var(--font-hi)}

.big-id,.total-card .big,.total-row b,.dock .amt,.kpi b,.q b,.trust b,.cd .dn,.cal-head b,.price,.float b,.row-j .t strong,.row-j .r,.ag time,.summary .total,.sh-h strong{font-family:var(--font);font-weight:600}

.eyebrow{font-size:.7rem;font-weight:700;letter-spacing:.12em}
.brand{font-family:var(--font);font-weight:600;font-size:1.15rem;letter-spacing:-.015em}
.nav nav a{font-size:.8rem;font-weight:600}
.btn{font-size:.82rem;font-weight:700;letter-spacing:0}
.btn.sm{font-size:.74rem}.btn.xs{font-size:.68rem}
.seg span{font-size:.74rem;font-weight:700}
.seg span small{font-family:var(--font-hi);font-size:.62rem}
.chip{font-size:.68rem}.pill{font-size:.66rem}
.field>label,.field>.label,.setrow label.l{font-size:.76rem;font-weight:700}
.setrow .hint,.field .hint{font-family:var(--font);font-size:.82rem}
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=search],select{font-size:.88rem;font-weight:500}
textarea{font-family:var(--font);font-size:.95rem}
.opt b{font-size:.84rem;font-weight:700}.opt .d{font-size:.88rem}.opt .tag{font-size:.72rem}
.check{font-size:.8rem;font-weight:500;line-height:1.45}
.faq summary{font-size:.9rem;font-weight:700}
.group h4,.section-t,.side .cap,table.t th,.cal .dow{font-size:.64rem;letter-spacing:.1em}
.nb{font-size:.78rem;font-weight:600}.nb[aria-current="page"]{font-weight:700}
.fchip{font-size:.72rem;font-weight:700}
.kpi span{font-family:var(--font-hi);font-size:.7rem;font-weight:600}
.kpi b,.q b{letter-spacing:-.02em}
.q span{font-size:.72rem}
.big-id{letter-spacing:.01em}
.total-card .big{letter-spacing:-.03em}
.time{font-size:.78rem}
.day b{font-family:var(--font);font-weight:600;letter-spacing:-.02em}
.toast{font-size:.8rem}
table.t{font-size:.9rem}
table.t td.mono{font-size:.72rem}
.chart text{font-family:var(--font-hi);font-size:10px}
.row-j .d,.kv,.feed,.hist{font-size:.9rem}
.feed time,.hist time{font-family:var(--font-hi);font-size:.66rem}
.alert{font-size:.92rem;font-weight:500}
.drop strong{font-family:var(--font);font-size:1.3rem;font-weight:600;letter-spacing:-.01em}
.steps p,.tile p,.muted,.lead,.opt .d,.sec-head p{color:var(--text-2)}
.tile.ink p{color:#C9CED6}
.hint,.tiny.muted,.small.muted{color:var(--muted)}

/* ===== One type scale for every page =====
   Fraunces carries reading text and headings, Comfortaa carries UI labels.
   Eleven steps replace the ~60 ad-hoc sizes; UI text never drops below 12px, and inputs are 16px so iOS does not zoom. */
:root{
  --t-cap:.75rem;      /* 12  uppercase labels */
  --t-xs:.8125rem;     /* 13  chips, tags, hints, timestamps */
  --t-sm:.875rem;      /* 14  secondary UI, tables, small copy */
  --t-ui:.9375rem;     /* 15  buttons, options, list rows */
  --t-body:1.0625rem;  /* 17  reading text */
  --t-lead:clamp(1.125rem,1.02rem + .45vw,1.3125rem);
  --t-h4:1.0625rem;
  --t-h3:1.25rem;
  --t-h2s:clamp(1.5rem,1.28rem + .9vw,1.875rem);
  --t-h2:clamp(1.875rem,1.45rem + 1.9vw,2.625rem);
  --t-h1:clamp(2.375rem,1.62rem + 3.3vw,3.75rem);
  --t-num:clamp(1.625rem,1.4rem + 1vw,2.125rem);
  --t-num-xl:clamp(2.25rem,1.7rem + 2.6vw,3.25rem);
}
body{font-size:var(--t-body);line-height:1.6}

/* headings */
h1,.gate h1,.legal h1{font-size:var(--t-h1);line-height:1.04;letter-spacing:-.025em}
h2,.h-tool,.dash-hi h1{font-size:var(--t-h2);line-height:1.08;letter-spacing:-.02em}
.h-sec,.vh h1,.login-h{font-size:var(--t-h2s);line-height:1.15;letter-spacing:-.015em}
h3,.way-txt h3,.legal h2,.drop strong,.sh-h strong,.cal-head b{font-size:var(--t-h3);line-height:1.25;letter-spacing:-.01em}
h4,.panel h3,.legal .sum h2{font-size:var(--t-h4);line-height:1.3}
.lead,.sec-head p{font-size:var(--t-lead);line-height:1.5}
.brand{font-size:1.125rem}

/* numbers */
.dcard b,.kpi b,.q b,.trust b,.total-row b,.float b,.panel h3 b{font-size:var(--t-num);line-height:1.1;letter-spacing:-.02em}
.dock .amt,.day b,.small-id,.rcard .oid{font-size:var(--t-h3)}
.big-id,.total-card .big{font-size:var(--t-num-xl);line-height:1.05}

/* uppercase caption labels */
.eyebrow,.section-t,.group h4,table.t th,.side .cap,.cal .dow,.kpi span,table.orders td[data-l]::before{font-size:var(--t-cap);font-weight:700;letter-spacing:.09em;text-transform:uppercase}

/* 13px: chips, tags, hints, timestamps */
.tiny,.chip,.pill,.opt .tag,.vchip,.soon,.lvl,.nb .badge,.feed time,.hist time,.cd .tag,.cd .cnt,.time small,.day small,.day em,
table.orders .ft,.custom-m small,.pg .no,.dock .lbl,.next-list .n,.steps-bar i,.progress-steps i,.tl-lbl,.ways-tabs small,.acct .who,
.field .hint,.setrow .hint,.legend,.tip,.kpi small,.row-j .r small,.ag .n small,table.t td.mono,.seg span small,.q span,.btn.xs,
.side .foot .who,.row-j .th.gone,.multi label,table.orders .c-date{font-size:var(--t-xs)}

/* 14px: secondary UI */
.small,.btn.sm,.nav nav a,.seg span,.field>label,.field>.label,.opt .d,.check,.toast,.kv,table.t,.summary div,.next-list div,.feed,.hist,
.row-j .d,.auto .h p,.auto .meta,.savebar span,.hb,.hb b,.ag time,.ag .n,.legal nav.toc a,.legal .note,.legal .upd,footer.site,
.trust span,.float,.dcard span,.dcard small,.canvas-bar .sub,.slot-picked,.live-pill,.steps-bar,.time,.calc .row-h,.total-card dl,
details.manual summary,table.orders .c-pages,table.orders .c-file,table.orders .c-cost,table.orders .c-pick,.cd .dn,.alert .small{font-size:var(--t-sm)}

/* 15px: primary UI */
.btn,.opt b,.alert,.ways-tabs b,.setrow label.l,.faq summary,.group .row>span,.summary .total,.pay-note,.way-txt p,.steps p,.tile p{font-size:var(--t-ui)}
.btn{font-weight:700}
.btn.sm{font-weight:700}

/* form controls: 16px stops iOS zoom-on-focus */
input[type=text],input[type=email],input[type=tel],input[type=number],input[type=password],input[type=search],select,textarea{font-size:1rem}
.stepper input,.stepper output{font-size:1rem}

@media (max-width:420px){
  .seg span{font-size:var(--t-xs)}
  .ways-tabs b{font-size:var(--t-sm)}
  .nav nav a{font-size:var(--t-xs)}
}
