@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:30px}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:6px}main:focus{outline:none}h1,h2,h3,p{text-wrap:pretty}button,a{touch-action:manipulation}button{font-size:14px}main{min-height:60vh}.wrap{width:min(1160px,calc(100% - 112px));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:100px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:40px}.section-heading h2{font-size:clamp(34px,4vw,48px);letter-spacing:-2px;line-height:1.16;font-weight:500}.section-heading>p{color:var(--muted);font-size:13px;line-height:1.9}.page-content{padding-top:65px;animation:enter .7s var(--ease) both}.page-title{font-size:clamp(48px,6.5vw,82px);font-weight:500;letter-spacing:-3.5px;line-height:1.12}.page-title em{font-family:var(--serif);font-weight:400;color:var(--accent)}@media(width<=900px){.wrap{width:calc(100% - 64px)}}@media(width<=600px){.wrap{width:calc(100% - 40px)}.section-space{padding-block:60px}.section-heading{flex-direction:column;align-items:flex-start;gap:22px}.page-content{padding-top:35px}.page-title{letter-spacing:-2px}}}@layer components{.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--accent);color:var(--on-accent);font-size:12px;font-weight:500;padding:18px 25px;border-radius:50px;transition:transform .25s,box-shadow .25s}.button:hover{transform:translateY(-3px);box-shadow:0 7px 20px color-mix(in srgb,var(--accent) 20%,transparent)}.button app-icon{transition:translate .25s}.button:hover app-icon{translate:3px}.text-link{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:500;padding-block:8px;transition:color .2s}.text-link:hover{color:var(--accent)}.text-link app-icon{transition:transform .25s}.text-link:hover app-icon{transform:translate(2px,-2px)}.skip-link{position:fixed;top:10px;left:15px;z-index:100;padding:12px 20px;background:var(--text);color:var(--bg);transform:translateY(-150%)}.skip-link:focus{transform:none}}@layer motion{@keyframes enter{0%{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}.reveal-preset{opacity:0;transform:translateY(25px)}.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}}}
