:root {
  --pf-paper:          #F2EEE6;
  --pf-paper-2:        #E8E2D6;
  --pf-ink:            #1A1916;
  --pf-ink-2:          #5A554C;
  --pf-ink-3:          #6B655B;
  --pf-hairline:       #CFC8BA;
  --pf-rule-strong:    #8C8577;
  --pf-ghost:          color-mix(in oklab, var(--pf-ink) 20%, var(--pf-paper));
  --pf-night:          #121110;
  --pf-night-2:        #1C1A17;
  --pf-on-night:       #ECE6DB;
  --pf-on-night-2:     #A59E91;
  --pf-on-night-3:     #8C8577;
  --pf-hairline-night: #34302A;
  --pf-rule-night:     #6F6A60;
  --pf-ribbon:         #7B2D20;
  --pf-ribbon-night:   #C98A74;
  --pf-g1: #C5C8C3; --pf-g1-ink: #1A1916; --pf-g1-ink-2: #4A4B47;
  --pf-g2: #4A1B1A; --pf-g2-ink: #F1E6DA; --pf-g2-ink-2: #C9A69C;
  --pf-g3: #9B3A22; --pf-g3-ink: #F6EDE2; --pf-g3-ink-2: #F0C9B4;
  --pf-g4: #161C2A; --pf-g4-ink: #E6E8EE; --pf-g4-ink-2: #9EA6B8;
  --pf-g5: #23302A; --pf-g5-ink: #E7EADF; --pf-g5-ink-2: #A5B0A2;
  --pf-g6: #AEB596; --pf-g6-ink: #1A1916; --pf-g6-ink-2: #3D4232;
  --pf-font-display: "Cormorant", "Cormorant Garamond", "Iowan Old Style", "Times New Roman", serif;
  --pf-font-body:    "Switzer", "Helvetica Neue", Arial, system-ui, sans-serif;
  --pf-font-mono:    "DM Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, monospace;
  --pf-mat-steel:      #C5C8C3;
  --pf-mat-oxblood:    #4A1B1A;
  --pf-mat-vermilion:  #9B3A22;
  --pf-mat-ink:        #161C2A;
  --pf-mat-cellar:     #23302A;
  --pf-mat-leaf:       #AEB596;
  --pf-mat-oak:        #5A3E2B;
  --pf-mat-travertine: #D8CCB6;
  --pf-mat-silver:     #B8BBBD;
  --pf-mat-paper:      #E9E2D3;
  --pf-wax:            #7B2D20;
  --pf-wax-deep:       #5E2017;
  --pf-fs-hero:       clamp(3rem, 1rem + 9vw, 10rem);
  --pf-fs-display-xl: clamp(2.375rem, 1rem + 6.6vw, 8rem);
  --pf-fs-display-l:  clamp(2.25rem, 1.2rem + 4.2vw, 6rem);
  --pf-fs-display-m:  clamp(1.875rem, 1.35rem + 2.3vw, 3.75rem);
  --pf-fs-display-s:  clamp(1.5rem, 1.25rem + 1.05vw, 2.25rem);
  --pf-fs-lede:       clamp(1.125rem, 1.04rem + 0.38vw, 1.375rem);
  --pf-fs-body:       clamp(1rem, 0.97rem + 0.13vw, 1.0625rem);
  --pf-fs-small:      0.875rem;
  --pf-fs-mono:       clamp(0.6875rem, 0.66rem + 0.1vw, 0.75rem);
  --pf-fs-counter:    clamp(0.75rem, 0.7rem + 0.2vw, 0.875rem);
  --pf-lh-display-xl: 0.94;
  --pf-lh-display-l:  0.98;
  --pf-lh-display-m:  1.04;
  --pf-lh-display-s:  1.15;
  --pf-lh-lede:       1.45;
  --pf-lh-body:       1.6;
  --pf-lh-mono:       1.4;
  --pf-track-display-caps: 0.005em;
  --pf-track-display:      -0.01em;
  --pf-track-italic:       -0.015em;
  --pf-track-body:         0;
  --pf-track-mono:         0.12em;
  --pf-track-wordmark:     0;
  --pf-fw-display:   300;
  --pf-fw-display-m: 400;
  --pf-fw-body:      400;
  --pf-fw-lede:      300;
  --pf-fw-strong:    500;
  --pf-fw-mono:      400;
  --pf-italic-scale: 1.06;
  --pf-measure:      62ch;
  --pf-measure-lede: 34em;
  --pf-space-1: 0.25rem;
  --pf-space-2: 0.5rem;
  --pf-space-3: 0.75rem;
  --pf-space-4: 1rem;
  --pf-space-5: 1.5rem;
  --pf-space-6: 2rem;
  --pf-space-7: 3rem;
  --pf-space-8: 4rem;
  --pf-space-9: 6rem;
  --pf-space-10: 8rem;
  --pf-space-11: 12rem;
  --pf-section-y:  clamp(6rem, 4rem + 9vh, 12.5rem);
  --pf-margin:     clamp(1.25rem, 0.6rem + 3.2vw, 4rem);
  --pf-gutter:     clamp(1rem, 0.75rem + 1vw, 1.75rem);
  --pf-columns:    12;
  --pf-max-width:  105rem;
  --pf-header-h:   clamp(3.5rem, 3rem + 1vw, 4.5rem);
  --pf-radius-frame: clamp(0.625rem, 0.4rem + 0.8vw, 1.25rem);
  --pf-radius-img:   0.25rem;
  --pf-radius-card:  0.375rem;
  --pf-radius-pill:  999px;
  --pf-radius-field: 0;
  --pf-hair:       1px;
  --pf-focus-w:    2px;
  --pf-focus-off:  3px;
  --pf-grain-opacity-light: 0.05;
  --pf-grain-opacity-dark:  0.07;
  --pf-grain-opacity-film:  0.10;
  --pf-grain-size: 180px;
  --pf-ease-reveal:   cubic-bezier(0.16, 1, 0.3, 1);
  --pf-ease-settle:   cubic-bezier(0.22, 1, 0.36, 1);
  --pf-ease-inout:    cubic-bezier(0.65, 0, 0.35, 1);
  --pf-ease-draw:     cubic-bezier(0.37, 0, 0.63, 1);
  --pf-ease-exit:     cubic-bezier(0.7, 0, 0.84, 0);
  --pf-dur-instant:   120ms;
  --pf-dur-quick:     240ms;
  --pf-dur-ui:        420ms;
  --pf-dur-reveal:    900ms;
  --pf-dur-cinematic: 1400ms;
  --pf-dur-draw:      1600ms;
  --pf-stagger:       60ms;
  --pf-stagger-word:  40ms;
  --pf-reveal-y:      1.5rem;
  --pf-scrub:         0.6;
  --pf-lenis-lerp:    0.1;
  --pf-dur-xs:   150ms;
  --pf-dur-s:    300ms;
  --pf-dur-m:    600ms;
  --pf-dur-l:    900ms;
  --pf-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --pf-dur-seal-strike: 1200ms;
  --pf-dur-bow-draw:    1800ms;
  --pf-z-loader: 100;
  --pf-z-veil:   95;
  --pf-z-menu:   90;
  --pf-z-header: 80;
  --pf-z-sticky: 70;
  --pf-z-pip:    60;
  --pf-z-rail:   50;
  --pf-z-grain:  40;
  --pf-focus:       #7B2D20;
  --pf-focus-halo:  rgba(242, 238, 230, 0.9);
  --pf-error:       #A3241B;
  --pf-error-night: #F08A73;
  --pf-ghost-light: #C7C3BC;
  --pf-ghost-dark:  #393735;
  --pf-ghost-film:  rgba(242, 238, 230, 0.32);
  --pf-scrim-bottom: linear-gradient(to top, rgba(18,17,16,.66) 0%, rgba(18,17,16,.30) 38%, rgba(18,17,16,0) 72%);
  --pf-scrim-left:   linear-gradient(to right, rgba(18,17,16,.58) 0%, rgba(18,17,16,.22) 42%, rgba(18,17,16,0) 70%);
  --pf-scrim-full:   rgba(18,17,16,.38);
  --pf-scrim-menu:   rgba(18,17,16,.92);
  --pf-scrim-bottom-light: linear-gradient(to top, rgba(242,238,230,.78) 0%, rgba(242,238,230,.36) 38%, rgba(242,238,230,0) 72%);
  --pf-cat-time:       #16191C;
  --pf-cat-stone:      #DDD5C6;
  --pf-cat-leather:    #2A1E16;
  --pf-cat-cellar:     #E2E1DA;
  --pf-cat-table:      #1C211D;
  --pf-cat-paper:      #ECE5D8;
  --pf-cat-craft:      #24211E;
  --pf-cat-instrument: #D8DADA;
  --pf-cat-passage:    #151B24;
  --pf-cat-light-ink-2: #4F4A43;
  --pf-cat-light-rule:  #776F64;
  --pf-cat-dark-ink-3:  #9A9285;
  --pf-cat-dark-rule:   #756F64;
  --pf-card-img-h:   min(64vh, 640px);
  --pf-card-text-w:  clamp(20rem, 30vw, 28rem);
  --pf-card-gap:     clamp(1.5rem, 3vw, 3rem);
  --pf-card-peek:    clamp(2.5rem, 9vw, 12rem);
}
[data-theme="dark"], .pf-dark {
  --pf-focus: #C98A74;
  --pf-focus-halo: rgba(18, 17, 16, 0.9);
  --pf-error: var(--pf-error-night);
}
[data-theme="film"] {
  --pf-focus: #F2EEE6;
  --pf-focus-halo: rgba(18, 17, 16, 0.75);
  --pf-error: var(--pf-error-night);
}
[data-theme="light"], .pf-light, .pf-light-2 {
  --pf-focus: #7B2D20;
  --pf-focus-halo: rgba(242, 238, 230, 0.9);
  --pf-error: #A3241B;
}
.pf-light {
  --bg: var(--pf-paper); --fg: var(--pf-ink); --fg-2: var(--pf-ink-2); --fg-3: var(--pf-ink-3);
  --line: var(--pf-hairline); --rule: var(--pf-rule-strong); --accent: var(--pf-ribbon);
  --ghost: color-mix(in oklab, var(--pf-ink) 20%, var(--pf-paper));
}
.pf-light-2 {
  --bg: var(--pf-paper-2); --fg: var(--pf-ink); --fg-2: var(--pf-ink-2); --fg-3: var(--pf-ink-2);
  --line: var(--pf-hairline); --rule: var(--pf-rule-strong); --accent: var(--pf-ribbon);
  --ghost: color-mix(in oklab, var(--pf-ink) 20%, var(--pf-paper-2));
}
.pf-dark {
  --bg: var(--pf-night); --fg: var(--pf-on-night); --fg-2: var(--pf-on-night-2); --fg-3: var(--pf-on-night-3);
  --line: var(--pf-hairline-night); --rule: var(--pf-rule-night); --accent: var(--pf-ribbon-night);
  --ghost: color-mix(in oklab, var(--pf-on-night) 18%, var(--pf-night));
}
.pf-ground-1 { --bg: var(--pf-g1); --fg: var(--pf-g1-ink); --fg-2: var(--pf-g1-ink-2); --line: color-mix(in oklab, var(--pf-g1-ink) 22%, var(--pf-g1)); }
.pf-ground-2 { --bg: var(--pf-g2); --fg: var(--pf-g2-ink); --fg-2: var(--pf-g2-ink-2); --line: color-mix(in oklab, var(--pf-g2-ink) 22%, var(--pf-g2)); }
.pf-ground-3 { --bg: var(--pf-g3); --fg: var(--pf-g3-ink); --fg-2: var(--pf-g3-ink-2); --line: color-mix(in oklab, var(--pf-g3-ink) 26%, var(--pf-g3)); }
.pf-ground-4 { --bg: var(--pf-g4); --fg: var(--pf-g4-ink); --fg-2: var(--pf-g4-ink-2); --line: color-mix(in oklab, var(--pf-g4-ink) 22%, var(--pf-g4)); }
.pf-ground-5 { --bg: var(--pf-g5); --fg: var(--pf-g5-ink); --fg-2: var(--pf-g5-ink-2); --line: color-mix(in oklab, var(--pf-g5-ink) 22%, var(--pf-g5)); }
.pf-ground-6 { --bg: var(--pf-g6); --fg: var(--pf-g6-ink); --fg-2: var(--pf-g6-ink-2); --line: color-mix(in oklab, var(--pf-g6-ink) 26%, var(--pf-g6)); }
[class*="pf-ground-"] { --accent: var(--fg); }
.pf-cat--dark, .pf-cat--time, .pf-cat--leather, .pf-cat--table, .pf-cat--craft, .pf-cat--passage {
  --fg: var(--pf-on-night); --fg-2: var(--pf-on-night-2); --fg-3: var(--pf-cat-dark-ink-3);
  --line: var(--pf-hairline-night); --rule: var(--pf-cat-dark-rule);
  --pf-focus: var(--pf-ribbon-night); --pf-focus-halo: rgba(18,17,16,.9); --pf-error: var(--pf-error-night);
}
.pf-cat--light, .pf-cat--stone, .pf-cat--cellar, .pf-cat--paper, .pf-cat--instrument {
  --fg: var(--pf-ink); --fg-2: var(--pf-cat-light-ink-2); --fg-3: var(--pf-cat-light-ink-2);
  --line: var(--pf-hairline); --rule: var(--pf-cat-light-rule);
  --pf-focus: var(--pf-ribbon); --pf-focus-halo: rgba(242,238,230,.9); --pf-error: #A3241B;
}
.pf-cat--time       { --bg: var(--pf-cat-time); }
.pf-cat--stone      { --bg: var(--pf-cat-stone); }
.pf-cat--leather    { --bg: var(--pf-cat-leather); }
.pf-cat--cellar     { --bg: var(--pf-cat-cellar); }
.pf-cat--table      { --bg: var(--pf-cat-table); }
.pf-cat--paper      { --bg: var(--pf-cat-paper); }
.pf-cat--craft      { --bg: var(--pf-cat-craft); }
.pf-cat--instrument { --bg: var(--pf-cat-instrument); }
.pf-cat--passage    { --bg: var(--pf-cat-passage); }
@media (prefers-reduced-motion: reduce) {
  :root {
    --pf-dur-reveal: 1ms; --pf-dur-cinematic: 1ms; --pf-dur-draw: 1ms;
    --pf-dur-l: 1ms; --pf-dur-seal-strike: 1ms; --pf-dur-bow-draw: 1ms;
    --pf-stagger: 0ms; --pf-stagger-word: 0ms; --pf-reveal-y: 0;
  }
}
