@font-face{font-family:"DM Sans";font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/dm-sans-latin-ext.woff2) format("woff2");unicode-range:u+0100-02ba,u+02bd-02c5,u+02c7-02cc,u+02ce-02d7,u+02dd-02ff,u+0304,u+0308,u+0329,u+1d00-1dbf,u+1e00-1e9f,u+1ef2-1eff,u+2020,u+20a0-20ab,u+20ad-20c0,u+2113,u+2c60-2c7f,u+a720-a7ff}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:300 700;font-display:swap;src:url(../fonts/dm-sans-latin.woff2) format("woff2");unicode-range:u+00??,u+0131,u+0152-0153,u+02bb-02bc,u+02c6,u+02da,u+02dc,u+0304,u+0308,u+0329,u+2000-206f,u+20ac,u+2122,u+2191,u+2193,u+2212,u+2215,u+feff,u+fffd}
@font-face{font-family:"DM Sans Fallback";src:local("Arial");ascent-override:94.9%;descent-override:29.66%;line-gap-override:0%;size-adjust:104.53%}

:root{
  --bg:#000;
  --fg:#fff;
  --fg-90:rgba(255,255,255,.9);
  --fg-85:rgba(255,255,255,.85);
  --fg-80:rgba(255,255,255,.8);
  --fg-70:rgba(255,255,255,.7);
  --line:rgba(255,255,255,.1);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--fg);font-family:"DM Sans","DM Sans Fallback",system-ui,sans-serif;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}

.content-wrapper{margin:0 auto;width:100%;max-width:640px;padding:0 1rem}
@media (min-width:768px){.content-wrapper{max-width:768px}}
@media (min-width:1024px){.content-wrapper{max-width:1024px;padding:0 2rem}}
@media (min-width:1280px){.content-wrapper{max-width:1280px}}
@media (min-width:1536px){.content-wrapper{max-width:1536px}}

.focus-ring:focus-visible{outline:2px solid var(--fg-90);outline-offset:2px;border-radius:2px}
.fade-link{transition:opacity 75ms}
.fade-link:hover{opacity:.8}

.skip-link{position:absolute;left:.5rem;top:.5rem;z-index:200;transform:translateY(-200%);background:#fff;color:#000;padding:.5rem .75rem;font-size:.875rem;font-weight:500;border-radius:2px;transition:transform .15s}
.skip-link:focus{transform:translateY(0)}

/* Header */
.site-header{position:fixed;inset:0 0 auto 0;z-index:40;display:flex;align-items:center;height:4rem}
@media (min-width:768px){.site-header{height:8rem}}
@media (min-width:1024px){.site-header{height:9rem}}
.site-header__row{display:flex;justify-content:space-between;align-items:center;gap:1rem}
.brand{display:block;font-size:1.125rem;font-weight:600;line-height:1.25;letter-spacing:-.025em}
@media (min-width:768px){.brand{font-size:1.25rem}}
.primary-nav{display:none;flex:1;justify-content:flex-end;align-items:center;gap:2.5rem}
@media (min-width:768px){.primary-nav{display:flex}}
@media (min-width:1024px){.primary-nav{gap:3.5rem}}
.primary-nav a{color:var(--fg-90);transition:color 75ms}
.primary-nav a:hover{color:var(--fg)}

.menu-toggle{position:relative;z-index:50;display:inline-flex;align-items:center;justify-content:center;min-width:2.75rem;min-height:2.75rem;margin:-.375rem;padding:.375rem}
@media (min-width:768px){.menu-toggle{display:none}}
.menu-toggle__bars{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;width:1.5rem;height:1.5rem}
.menu-toggle__bars span{display:block;width:18px;height:1.5px;border-radius:999px;background:var(--fg);transition:transform .2s}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:first-child{transform:translateY(4.75px) rotate(45deg)}
.menu-toggle[aria-expanded="true"] .menu-toggle__bars span:last-child{transform:translateY(-4.75px) rotate(-45deg)}

.mobile-menu{position:fixed;inset:0;z-index:45;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2rem;font-size:1.5rem;font-weight:500;opacity:0;visibility:hidden;transition:opacity .2s,visibility .2s}
.mobile-menu.is-open{opacity:1;visibility:visible}
@media (min-width:768px){.mobile-menu{display:none}}

/* Hero */
.hero{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:100vh;min-height:100svh;background:var(--bg)}
.hero__glow{position:absolute;inset:0;pointer-events:none;background:radial-gradient(1200px 600px at 50% 20%,rgba(255,255,255,.08),rgba(0,0,0,0) 60%)}
.hero__content{position:relative;z-index:10;text-align:center;padding:0 1rem;animation:hero-in .9s cubic-bezier(.22,1,.36,1) both}
.hero__title{font-size:3.75rem;font-weight:600;line-height:.95;letter-spacing:-.025em}
@media (min-width:768px){.hero__title{margin-top:1.2em}}
@media (min-width:1024px){.hero__title{font-size:8rem}}
.hero__claim{margin-top:1rem;font-size:1.125rem;line-height:1.75rem;font-weight:500;color:var(--fg-80)}
@media (min-width:768px){.hero__claim{margin-top:1.25rem;font-size:1.5rem;line-height:2rem}}
@keyframes hero-in{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}

/* About */
.about{padding:4rem 0}
@media (min-width:768px){.about{padding:6rem 0}}
.about__inner{display:flex;flex-direction:column;align-items:center;gap:1.5rem}
.about__title{width:100%;text-align:center;font-size:1.5rem;font-weight:600;line-height:1.2;letter-spacing:-.025em}
@media (min-width:768px){.about__title{font-size:1.875rem}}
@media (min-width:1024px){.about__title{font-size:2.25rem}}
.about__text{max-width:56rem;margin:0 auto;text-align:center;font-size:1.125rem;line-height:1.625;color:var(--fg-80)}
@media (min-width:768px){.about__text{font-size:1.25rem}}
@media (min-width:1024px){.about__text{font-size:1.5rem}}

.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s cubic-bezier(.22,1,.36,1),transform .7s cubic-bezier(.22,1,.36,1)}
.reveal.is-visible{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

/* Footer */
.site-footer{padding:2.5rem 0 1.5rem}
@media (min-width:1024px){.site-footer{padding-top:3rem}}
.site-footer__inner{display:flex;flex-direction:column;gap:2rem}
@media (min-width:1024px){.site-footer__inner{gap:2.5rem}}
.divider{height:1px;width:100%;background:var(--line)}
.footer-grid{display:grid;gap:2.5rem}
@media (min-width:1024px){.footer-grid{grid-template-columns:repeat(3,1fr);gap:3rem}}
.footer-brand{text-align:center}
.footer-brand > * + *{margin-top:.75rem}
@media (min-width:1024px){.footer-brand{text-align:left}}
.footer-brand__name{display:inline-flex;font-size:1.125rem;font-weight:600;letter-spacing:-.025em}
.footer-claim,.copyright{font-size:.875rem;color:var(--fg-70)}
.footer-spacer{display:none}
@media (min-width:1024px){.footer-spacer{display:block}}
.footer-nav{display:flex;justify-content:center;gap:1.5rem;white-space:nowrap}
@media (min-width:1024px){.footer-nav{justify-self:end;justify-content:flex-start}}
.footer-nav a{color:var(--fg-85);transition:color 75ms}
.footer-nav a:hover{color:var(--fg)}
.copyright{text-align:center}

/* Legal pages */
.legal{min-height:100vh;padding:8rem 0 6rem}
.legal .content-wrapper{max-width:65ch;text-align:center}
.legal .content-wrapper > * + *{margin-top:2.5rem}
.legal h1{font-size:1.875rem;font-weight:700;line-height:1.2}
@media (min-width:768px){.legal h1{font-size:2.25rem}}
.legal section{text-align:left;font-size:1rem;line-height:1.625;color:var(--fg-90)}
.legal section > * + *{margin-top:.75rem}
.legal h2{font-size:1.25rem;font-weight:600;color:var(--fg)}
.legal .mail{display:inline-block;margin-top:.5rem;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:4px}
.legal .back{display:inline-block}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .hero__content{animation:none}
  .reveal{opacity:1;transform:none;transition:none}
}
