:root{--bg:#fff;--bg-sec:#faf9f6;--bg-ter:#f4f1ea;--border:#e8e2d6;--border-soft:#f0ebe0;--text:#2e2c27;--text-sec:#6b6355;--text-ter:#8a8070;--ink:#1c1a16;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:24px;--s-6:32px;--s-7:48px;--s-8:64px;--s-9:88px;--s-10:120px;--r-sm:8px;--r-md:12px;--r-lg:16px;--r-xl:22px;--shadow-sm:0 1px 2px rgba(46,44,39,.04),0 2px 8px rgba(46,44,39,.03);--shadow-md:0 2px 6px rgba(46,44,39,.05),0 12px 28px rgba(46,44,39,.07);--shadow-lg:0 4px 12px rgba(46,44,39,.06),0 28px 64px rgba(46,44,39,.1);--ease:cubic-bezier(.22,.68,.28,1)}*{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:88px;scrollbar-gutter:stable}body{margin:0;background:var(--bg);color:var(--text);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-feature-settings:"cv02","cv03","cv04","ss01";-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.025em;text-wrap:balance}h1{letter-spacing:-.038em}p{margin:0;text-wrap:pretty}a{color:inherit}.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease)}.btn:after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,transparent 20%,hsla(0,0%,100%,.16) 50%,transparent 80%);transform:translateX(-120%);transition:transform .6s var(--ease)}.btn:hover{transform:translateY(-1.5px);box-shadow:var(--shadow-md)}.btn:hover:after{transform:translateX(120%)}.btn:active{transform:translateY(0);transition-duration:.08s}.card{transition:transform .25s var(--ease),box-shadow .25s var(--ease),border-color .25s var(--ease)}.card:hover{transform:translateY(-3px);border-color:#ddd4c5;box-shadow:var(--shadow-md)}.ul-link{position:relative;text-decoration:none}.ul-link:after{content:"";position:absolute;left:0;bottom:-2px;height:1px;width:100%;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}.ul-link:hover:after{transform:scaleX(1);transform-origin:left}.grain:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.035;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}.skip{position:absolute;left:-9999px;top:0;background:var(--ink);color:#fff;padding:12px 18px;z-index:999;border-radius:0 0 var(--r-sm) 0;font-size:14px;text-decoration:none}.skip:focus{left:0}:focus-visible{outline:2px solid var(--text);outline-offset:3px;border-radius:4px}.nav-mobile{display:none!important}@media (max-width:900px){.nav-desktop{display:none!important}.nav-mobile{display:flex!important}}details summary::-webkit-details-marker{display:none}details summary{transition:color .15s var(--ease)}details summary:hover{color:var(--ink)}details[open] .chev{transform:rotate(45deg)}.chev{transition:transform .28s var(--ease);display:inline-block}.page-t{animation:page-in .4s var(--ease) both}@keyframes page-in{0%{opacity:0;transform:translate3d(0,10px,0)}to{opacity:1;transform:none}}@keyframes marquee{0%{transform:translateX(0)}to{transform:translateX(-50%)}}.marquee-track{display:flex;width:max-content;animation:marquee 44s linear infinite}.marquee:hover .marquee-track{animation-play-state:paused}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes pulse-ring{0%{opacity:.5;transform:scale(.85)}to{opacity:0;transform:scale(2.1)}}@keyframes caret{0%,45%{opacity:1}55%,to{opacity:0}}::selection{background:#e9e2d2;color:var(--ink)}@media (min-width:900px){::-webkit-scrollbar{width:11px}::-webkit-scrollbar-track{background:var(--bg-sec)}::-webkit-scrollbar-thumb{background:#ded7c8;border-radius:6px;border:3px solid var(--bg-sec)}::-webkit-scrollbar-thumb:hover{background:#cfc6b5}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}