@font-face { font-family: 'Rubik'; src: url('fonts/Rubik-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Alef'; src: url('fonts/Alef-Regular.ttf') format('truetype'); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: 'Alef'; src: url('fonts/Alef-Bold.ttf') format('truetype'); font-weight: 700; font-style: normal; font-display: swap; }
html { font-size: 16px; }
body { font-family: 'Alef', Arial, sans-serif; font-size: 18px; line-height: 1.65; }
h1, h2, h3, .tp-name, .tp-button { font-family: 'Rubik', Arial, sans-serif; font-weight: 400; }
h1 { font-size: clamp(2.4rem, 5vw, 3.65rem); line-height: 1.13; letter-spacing: -.045em; text-wrap: balance; }
.tp-home h1 { font-size: clamp(2.65rem, 5.5vw, 4.4rem); }
h2 { font-size: clamp(1.55rem, 3vw, 1.9rem); line-height: 1.3; letter-spacing: -.03em; text-wrap: balance; }
h3 { font-size: 1.3rem; line-height: 1.35; letter-spacing: -.025em; }
.tp-scene { font-size: 1.25rem; line-height: 1.6; }
.tp-lead { font-size: 1.125rem; }
.tp-name, .tp-breadcrumbs, .tp-button, .tp-route, .tp-footer { font-size: 1rem; }
.tp-name { letter-spacing: -.02em; }
.tp-name-detail { font-family: 'Alef', Arial, sans-serif; letter-spacing: 0; }
.tp-crumb-link, .tp-breadcrumbs span { line-height: 1.4; }
.tp-row-link, .tp-next-link, .tp-source-link, .tp-fieldset legend, .tp-note-label { font-weight: 700; }
.tp-row-link { font-size: 1.2rem; line-height: 1.45; }
.tp-route figcaption { font-size: 1rem; line-height: 1.55; }
.tp-button { font-size: 1rem; line-height: 1.4; }
.tp-reading-list p, .tp-sheet-status { font-size: 1.0625rem; }
.tp-footer { line-height: 1.7; }
.tp-source-title { margin: 0; font: inherit; letter-spacing: normal; }
.tp-sheet { font-variant-numeric: tabular-nums; }
