@font-face{font-family:'DM Sans';src:url(../assets/fonts/DMSans-Regular.ttf) format('truetype');font-weight:400;font-display:swap;}
@font-face{font-family:'DM Sans';src:url(../assets/fonts/DMSans-Medium.ttf) format('truetype');font-weight:500;font-display:swap;}
@font-face{font-family:'DM Sans';src:url(../assets/fonts/DMSans-SemiBold.ttf) format('truetype');font-weight:600;font-display:swap;}
@font-face{font-family:'DM Sans';src:url(../assets/fonts/DMSans-ExtraBold.ttf) format('truetype');font-weight:800;font-display:swap;}
@font-face{font-family:'JetBrains Mono';src:url(../assets/fonts/JetBrainsMono-Medium.ttf) format('truetype');font-weight:500;font-display:swap;}

:root{
  --ink-900:#060811;
  --ink-700:#1E2030;
  --paper-100:#F5F0EB;
  --paper-200:#EDE8E2;
  --paper-300:#E2DDD7;
  --paper-400:#D5D0CA;
  --fuchsia-700:#E4005C;
  --cobalt-700:#0067FC;
  --cobalt-900:#003AB0;
  --sans:'DM Sans',system-ui,sans-serif;
  --mono:'JetBrains Mono',ui-monospace,monospace;
  --line-on-paper:rgba(6,8,17,0.14);
  --line-on-ink:rgba(245,240,235,0.16);
  --text-dim-paper:rgba(6,8,17,0.66);
  --text-dim-ink:rgba(245,240,235,0.66);
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;background:var(--paper-100);color:var(--ink-900);font-family:var(--sans);
  -webkit-font-smoothing:antialiased;line-height:1.5;overflow-x:hidden;font-size:18px;
}
img{display:block;max-width:100%;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
.wrap{max-width:1280px;margin:0 auto;padding:0 40px;}
@media (max-width:700px){.wrap{padding:0 22px;}}

section{padding:104px 0;position:relative;}
@media (max-width:700px){section{padding:68px 0;}}

.kicker{
  font-family:var(--mono);font-weight:500;font-size:13px;letter-spacing:0.06em;
  text-transform:uppercase;opacity:0.6;display:block;margin-bottom:16px;
}
.section-head{max-width:660px;margin-bottom:52px;}
.section-head h2{margin:0 0 16px;}
.section-head p{font-size:18px;line-height:1.6;color:var(--text-dim-paper);margin:0;max-width:58ch;}
.section-head.on-ink p{color:var(--text-dim-ink);}

h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-0.01em;}
h1{font-size:clamp(38px,4.8vw,54px);line-height:1.12;font-weight:800;}
h2{font-size:clamp(30px,3vw,40px);line-height:1.2;}
h3{font-size:23px;font-weight:600;}
h4{font-size:19px;font-weight:600;}
p{margin:0;}

.lede{font-size:20px;line-height:1.6;color:var(--text-dim-paper);max-width:52ch;}
.lede.on-ink{color:var(--text-dim-ink);}
@media (max-width:640px){.lede{font-size:18px;}}

.btnrow{display:flex;gap:12px;flex-wrap:wrap;}
.btn{
  font-family:var(--mono);font-size:16px;letter-spacing:0.02em;font-weight:500;
  padding:14px 22px;border:1px solid transparent;display:inline-block;
  transition:background .15s,border-color .15s,color .15s;
}
.btn-fuchsia{background:var(--fuchsia-700);color:var(--paper-100);border-color:var(--fuchsia-700);}
.btn-fuchsia:hover{background:var(--paper-100);color:var(--fuchsia-700);}
.btn-ghost-ink{border-color:var(--ink-900);color:var(--ink-900);}
.btn-ghost-ink:hover{background:var(--ink-900);color:var(--paper-100);}
.btn-ghost-paper{border-color:var(--line-on-ink);color:var(--paper-100);}
.btn-ghost-paper:hover{border-color:var(--paper-100);}
.btn-dark{background:var(--ink-900);color:var(--paper-100);border-color:var(--ink-900);}
.btn-dark:hover{background:var(--fuchsia-700);border-color:var(--fuchsia-700);}
.btn-cobalt-inv{background:var(--paper-100);color:var(--cobalt-700);border-color:var(--paper-100);}
.btn-cobalt-inv:hover{background:var(--ink-900);color:var(--paper-100);border-color:var(--ink-900);}

a:focus-visible,button:focus-visible{outline:2px solid var(--cobalt-700);outline-offset:3px;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important;transition-duration:0.001ms !important;}
}
.reveal{opacity:0;transform:translateY(14px);animation:revealUp .7s cubic-bezier(.2,.7,.2,1) forwards;}
@keyframes revealUp{to{opacity:1;transform:translateY(0);}}

.motif{width:38px;height:38px;}
.motif-sm{width:26px;height:26px;}
