:root{
  --oak-primary:#c51a83;
  --oak-primary-strong:#a91470;
  --oak-accent:#f044c0;
  --oak-ink:#24121f;
  --oak-text:#513d49;
  --oak-muted:#786571;
  --oak-soft:#9b8793;
  --oak-light:#fff8fc;
  --oak-surface:#ffffff;
  --oak-surface-glass:rgba(255,255,255,.76);
  --oak-tint:#fceef7;
  --oak-tint-strong:#f8e2f0;
  --oak-line:rgba(76,31,59,.11);
  --oak-line-strong:rgba(147,29,100,.2);
  --oak-focus:rgba(240,68,192,.28);
  --oak-positive:#9e176b;
  --oak-danger:#a62858;
  --oak-font-heading:"Sora",-apple-system,"PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Apple SD Gothic Neo","Malgun Gothic","Microsoft JhengHei","Microsoft YaHei",sans-serif;
  --oak-font-body:"Manrope",-apple-system,"PingFang SC","PingFang TC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Apple SD Gothic Neo","Malgun Gothic","Microsoft JhengHei","Microsoft YaHei",sans-serif;
  --oak-font-mono:"SFMono-Regular","Cascadia Code","Roboto Mono",Consolas,monospace;
  --oak-fs-0:.75rem;
  --oak-fs-1:.875rem;
  --oak-fs-2:1rem;
  --oak-fs-3:1.25rem;
  --oak-fs-4:1.625rem;
  --oak-fs-5:2.25rem;
  --oak-fs-6:clamp(2.6rem,5.2vw,4.35rem);
  --oak-lh-tight:1.08;
  --oak-lh-heading:1.2;
  --oak-lh-body:1.72;
  --oak-space-1:.5rem;
  --oak-space-2:1rem;
  --oak-space-3:1.5rem;
  --oak-space-4:2.5rem;
  --oak-space-5:4rem;
  --oak-space-6:6rem;
  --oak-space-7:8rem;
  --oak-radius-sm:.75rem;
  --oak-radius-md:1.125rem;
  --oak-radius-lg:1.5rem;
  --oak-radius-xl:2rem;
  --oak-shadow-sm:0 12px 32px rgba(77,20,59,.07);
  --oak-shadow-md:0 24px 70px rgba(77,20,59,.1);
  --oak-shadow-dark:0 30px 75px rgba(43,11,33,.22);
  --oak-duration:190ms;
  --oak-ease:cubic-bezier(.2,.8,.2,1);
  --oak-container-narrow:760px;
  --oak-container:1180px;
  --oak-container-wide:1360px;
  --oak-gutter:clamp(1rem,4vw,2rem);
  --oak-header-height:4.25rem;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;text-size-adjust:100%}
body{
  margin:0;
  min-width:0;
  color:var(--oak-ink);
  background:
    radial-gradient(circle at 82% 4%,rgba(240,68,192,.11),transparent 25rem),
    radial-gradient(circle at 5% 27%,rgba(197,26,131,.055),transparent 22rem),
    var(--oak-light);
  font-family:var(--oak-font-body);
  font-size:var(--oak-fs-2);
  line-height:var(--oak-lh-body);
  overflow-wrap:anywhere;
  -webkit-font-smoothing:antialiased;
}
body::before{
  content:"";
  position:fixed;
  z-index:-1;
  inset:0;
  pointer-events:none;
  opacity:.42;
  background-image:linear-gradient(rgba(73,27,58,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(73,27,58,.026) 1px,transparent 1px);
  background-size:32px 32px;
  mask-image:linear-gradient(to bottom,#000,transparent 78%);
}
img,svg,video{display:block;max-width:100%}
img{height:auto}
button,input,select,textarea{font:inherit}
button{color:inherit}
a{color:inherit;text-decoration:none}
p,h1,h2,h3,h4,h5,h6,ul,ol,dl,dd,figure,blockquote{margin-block-start:0}
h1,h2,h3,h4,h5,h6{
  color:var(--oak-ink);
  font-family:var(--oak-font-heading);
  line-height:var(--oak-lh-heading);
  letter-spacing:-.035em;
}
h1{font-size:var(--oak-fs-6);line-height:var(--oak-lh-tight)}
h2{font-size:var(--oak-fs-5)}
h3{font-size:var(--oak-fs-4)}
h4{font-size:var(--oak-fs-3)}
p{color:var(--oak-muted)}
ul,ol{padding-inline-start:1.25rem}
::selection{color:#fff;background:var(--oak-primary)}
:focus-visible{outline:3px solid var(--oak-focus);outline-offset:3px}
[hidden]{display:none!important}
.oak-container,.oak-container-narrow,.oak-container-wide{
  width:calc(100% - var(--oak-gutter)*2);
  margin-inline:auto;
}
.oak-container{max-width:var(--oak-container)}
.oak-container-narrow{max-width:var(--oak-container-narrow)}
.oak-container-wide{max-width:var(--oak-container-wide)}
.oak-grid{display:grid;gap:var(--oak-space-3)}
.oak-grid>*{min-width:0}
.oak-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.oak-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.oak-grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
.oak-grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,16rem),1fr))}
.oak-cluster{display:flex;flex-wrap:wrap;align-items:center;gap:var(--oak-space-2)}
.oak-stack>*+*{margin-block-start:var(--oak-space-3)}
.oak-flow>*+*{margin-block-start:1em}
.oak-split{display:flex;align-items:center;justify-content:space-between;gap:var(--oak-space-3)}
.oak-mono{font-family:var(--oak-font-mono);font-variant-numeric:tabular-nums}
.oak-muted{color:var(--oak-muted)}
.oak-primary{color:var(--oak-primary)}
.oak-center{text-align:center}
.oak-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;
}
.oak-mt-1{margin-top:var(--oak-space-1)}
.oak-mt-2{margin-top:var(--oak-space-2)}
.oak-mt-3{margin-top:var(--oak-space-3)}
.oak-mt-4{margin-top:var(--oak-space-4)}
.oak-mb-0{margin-bottom:0}
.oak-py-4{padding-block:var(--oak-space-4)}
.oak-py-5{padding-block:var(--oak-space-5)}
.oak-py-6{padding-block:var(--oak-space-6)}
.oak-gap-1{gap:var(--oak-space-1)}
.oak-gap-2{gap:var(--oak-space-2)}
.oak-gap-4{gap:var(--oak-space-4)}
.oak-divider{height:1px;border:0;background:var(--oak-line)}
.oak-code,pre{
  max-width:100%;
  overflow-x:auto;
  border:1px solid var(--oak-line);
  border-radius:var(--oak-radius-md);
  background:var(--oak-ink);
  color:#f8eaf3;
  font-family:var(--oak-font-mono);
  font-size:var(--oak-fs-1);
  tab-size:2;
}
pre{padding:var(--oak-space-3)}
code{font-family:var(--oak-font-mono);font-variant-numeric:tabular-nums}
.reveal,.reveal-up,.reveal-scale{opacity:0}
.reveal-up{transform:translateY(18px)}
.reveal-scale{transform:scale(.985)}
.reveal.is-visible,.reveal-up.is-visible,.reveal-scale.is-visible{
  opacity:1;
  transform:none;
  transition:opacity .65s var(--oak-ease),transform .65s var(--oak-ease);
}
@media (max-width:900px){
  .oak-grid-3,.oak-grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .oak-split{align-items:flex-start;flex-direction:column}
}
@media (max-width:640px){
  :root{--oak-fs-5:1.9rem;--oak-space-6:4.5rem;--oak-space-7:5.5rem}
  .oak-grid-2,.oak-grid-3,.oak-grid-4{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .reveal,.reveal-up,.reveal-scale{opacity:1;transform:none}
}
main{overflow-x:clip}
