@font-face{font-family:Montserrat;src:url(/assets/fonts/montserrat/Montserrat-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/montserrat/Montserrat-Medium.woff2) format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/montserrat/Montserrat-SemiBold.woff2) format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:Montserrat;src:url(/assets/fonts/montserrat/Montserrat-Bold.woff2) format("woff2");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:JetBrains Mono;src:url(/assets/fonts/jetbrains/JetBrainsMono-Regular.woff2) format("woff2");font-style:normal;font-weight:400;font-display:swap}@layer reset,tokens,base,components,motion;@layer reset{html{scroll-behavior:smooth;overflow-x:hidden}*,*:before,*:after{box-sizing:border-box}*{margin:0}button,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}img{max-width:100%}a{color:inherit;text-decoration:none}}@layer tokens{:root{color-scheme:light;--bg: #fcfcfa;--surface: #f2f2ed;--text: #252624;--muted: #71736f;--accent: #bc4535;--on-accent: #fff;--line: #dedfd8;--portrait-bg: #f5dfd7;--font: montserrat, arial, sans-serif;--serif: georgia, "Times New Roman", serif;--mono: "JetBrains Mono", monospace;--ease: cubic-bezier(.22, 1, .36, 1)}:root[data-theme=dark]{color-scheme:dark;--bg: #1b1e1c;--surface: #252925;--text: #f0f0e8;--muted: #a8aca4;--accent: #f58b76;--on-accent: #221e1a;--line: #3b403a;--portrait-bg: #423c34}}@layer base{html{scroll-behavior:smooth;scroll-padding-top:1.875rem}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased}::selection{background:var(--accent);color:var(--on-accent)}:focus-visible{outline:2px solid var(--accent);outline-offset:.375rem}main{min-height:60vh}main:focus{outline:none}h1,h2,h3,p{text-wrap:pretty}button,a{touch-action:manipulation}button{font-size:.875rem}.wrap{width:min(72.5rem,calc(100% - 7rem));margin-inline:auto}.accent{color:var(--accent)}.muted{color:var(--muted)}.mono{font-family:var(--mono)}.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}.section-space{padding-block:6.25rem}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:2.5rem}.section-heading h2{font-size:clamp(2.125rem,4vw,3rem);letter-spacing:-.125rem;line-height:1.16;font-weight:500}.section-heading>p{color:var(--muted);font-size:.8125rem;line-height:1.9}.page-content{padding-top:4.0625rem;animation:enter .7s var(--ease) both}.page-title{font-size:clamp(3rem,6.5vw,5.125rem);font-weight:500;letter-spacing:-.21875rem;line-height:1.12}.page-title em{font-family:var(--serif);font-weight:400;color:var(--accent)}@media(width<=56.25rem){.wrap{width:calc(100% - 4rem)}}@media(width<=37.5rem){.wrap{width:calc(100% - 2.5rem)}.section-space{padding-block:3.75rem}.section-heading{flex-direction:column;align-items:flex-start;gap:1.375rem}.page-content{padding-top:2.1875rem}.page-title{letter-spacing:-.125rem}}}@layer components{.button{display:inline-flex;align-items:center;justify-content:center;gap:1.5rem;background:var(--accent);color:var(--on-accent);font-size:.75rem;font-weight:500;padding:1.125rem 1.5625rem;border-radius:3.125rem;transition:transform .25s,box-shadow .25s}.button:hover{transform:translateY(-.1875rem);box-shadow:0 .4375rem 1.25rem color-mix(in srgb,var(--accent) 20%,transparent)}.button app-icon{transition:translate .25s}.button:hover app-icon{translate:.1875rem}.text-link{display:inline-flex;align-items:center;gap:.75rem;font-size:.8125rem;font-weight:500;padding-block:.5rem;transition:color .2s}.text-link:hover{color:var(--accent)}.text-link app-icon{transition:transform .25s}.text-link:hover app-icon{transform:translate(.125rem,-.125rem)}.skip-link{position:fixed;top:.625rem;left:.9375rem;z-index:100;padding:.75rem 1.25rem;background:var(--text);color:var(--bg);transform:translateY(-150%)}.skip-link:focus{transform:none}}@layer motion{@keyframes enter{0%{opacity:0;transform:translateY(1.375rem)}to{opacity:1;transform:none}}.reveal-preset{opacity:0;transform:translateY(1.5625rem)}.reveal{animation:enter .85s var(--ease) both}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.reveal-preset{opacity:1;transform:none}}}
