:root{
  --color-primary:#59155f;
  --color-accent:#7b3f91;
  --color-primary-hover:#6b2473;
  --color-ink:#19151b;
  --color-muted:#5f565f;
  --color-paper:#fff;
  --color-neutral:#f7f7f5;
  --color-cream:#f4f1e8;
  --color-cream-ink:#29231d;
  --color-blue:#eaf1f3;
  --color-blue-ink:#19292e;
  --color-peach:#f5ece7;
  --color-peach-ink:#30201b;
  --color-green:#edf2e8;
  --color-green-ink:#1d2b1a;
  --color-dark:#19151b;
  --color-dark-muted:#b8b1b9;
  --color-line:#e8e6e7;
  --color-line-dark:rgba(255,255,255,.13);
  --color-control:#aaa4aa;
  --font-heading:"Sora",-apple-system,"PingFang SC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans CJK KR","Malgun Gothic","Microsoft YaHei",sans-serif;
  --font-body:"Outfit",-apple-system,"PingFang SC","Hiragino Sans GB","Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans CJK KR","Malgun Gothic","Microsoft YaHei",sans-serif;
  --font-mono:"SFMono-Regular","Cascadia Code","Roboto Mono",Consolas,monospace;
  --text-xs:.75rem;
  --text-sm:.875rem;
  --text-base:1rem;
  --text-lg:1.125rem;
  --text-h3:1.25rem;
  --text-h2:clamp(2rem,4vw,2.75rem);
  --text-display:clamp(2.65rem,5.4vw,4rem);
  --leading-tight:1.16;
  --leading-heading:1.2;
  --leading-body:1.6;
  --leading-loose:1.72;
  --space-1:.25rem;
  --space-2:.5rem;
  --space-3:.75rem;
  --space-4:1rem;
  --space-5:1.5rem;
  --space-6:2rem;
  --space-7:2.5rem;
  --space-8:3rem;
  --space-9:4rem;
  --space-10:6rem;
  --space-11:7.5rem;
  --gutter:clamp(1rem,4vw,2rem);
  --container-narrow:46rem;
  --container-standard:76rem;
  --container-wide:88rem;
  --radius-sm:.5rem;
  --radius-md:1rem;
  --radius-lg:1.5rem;
  --shadow-soft:0 1.125rem 2.75rem rgba(25,21,27,.08);
  --header-control-size:.875rem;
  --hero-pad:clamp(4rem,8vw,6rem);
  --hero-pad-crumb:3rem;
  --section-pad:clamp(5rem,9vw,7.5rem);
  --section-pad-tight:clamp(4rem,7vw,5.875rem);
  --motion:cubic-bezier(.2,.75,.25,1);
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--color-paper);color:var(--color-ink);font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-body);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
main{overflow-x:clip}
img,svg,video,canvas{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit}
button{color:inherit}
h1,h2,h3,h4,h5,h6{margin:0;color:inherit;font-family:var(--font-heading);font-weight:700;overflow-wrap:anywhere}
h1{font-size:var(--text-display);line-height:var(--leading-tight);letter-spacing:-.035em}
h2{font-size:var(--text-h2);line-height:var(--leading-tight);letter-spacing:-.028em}
h3{font-size:var(--text-h3);line-height:var(--leading-heading);letter-spacing:-.018em}
h4{font-size:var(--text-lg);line-height:var(--leading-heading)}
h5{font-size:var(--text-base);line-height:var(--leading-heading)}
h6{font-size:var(--text-sm);line-height:var(--leading-heading)}
p{margin:0;font-size:var(--text-base);line-height:var(--leading-body)}
li{font-size:var(--text-base);line-height:var(--leading-body)}
small{font-size:var(--text-xs);line-height:1.5}
figcaption{font-size:var(--text-sm);line-height:var(--leading-body)}
blockquote{margin:0;font-size:var(--text-lg);line-height:var(--leading-loose)}
code{font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6}
pre{max-width:100%;margin:0;overflow-x:auto;font-family:var(--font-mono);font-size:var(--text-sm);line-height:1.6}
th{font-size:var(--text-sm);line-height:1.45}
td{font-size:var(--text-sm);line-height:1.55}
dt{font-size:var(--text-base);line-height:var(--leading-heading);font-weight:700}
dd{margin:0;font-size:var(--text-base);line-height:var(--leading-body)}
label{font-size:var(--text-sm);line-height:1.45}
ul,ol{margin:0}
address{font-style:normal}
:focus-visible{outline:3px solid color-mix(in srgb,var(--color-accent) 42%,transparent);outline-offset:3px}
::selection{background:#dfcee4;color:var(--color-ink)}
[hidden]{display:none!important}
.u-container,.u-container-narrow,.u-container-wide{width:min(100% - var(--gutter)*2,var(--container-standard));margin-inline:auto}
.u-container-narrow{max-width:var(--container-narrow)}
.u-container-wide{max-width:var(--container-wide)}
.u-grid{display:grid;gap:var(--space-5)}
.u-grid>*{min-width:0}
.u-grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.u-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.u-grid-auto{grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr))}
.u-stack{display:flex;flex-direction:column;gap:var(--space-5)}
.u-cluster{display:flex;align-items:center;flex-wrap:wrap;gap:var(--space-3)}
.u-section{padding-block:var(--section-pad)}
.u-section-tight{padding-block:var(--section-pad-tight)}
.u-surface-neutral{background:var(--color-neutral);color:var(--color-ink)}
.u-surface-cream{background:var(--color-cream);color:var(--color-cream-ink)}
.u-surface-blue{background:var(--color-blue);color:var(--color-blue-ink)}
.u-surface-peach{background:var(--color-peach);color:var(--color-peach-ink)}
.u-surface-green{background:var(--color-green);color:var(--color-green-ink)}
.u-surface-dark{background:#19151b;color:#fff}
.u-muted{color:var(--color-muted)}
.u-mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
.u-center{text-align:center}
.u-center .c-kicker{align-self:center;margin-inline:auto}
.u-center .c-actions{justify-content:center}
.u-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.reveal{opacity:0;transform:translateY(1.25rem);transition:opacity .6s var(--motion),transform .6s var(--motion)}
.reveal.reveal-left{transform:translateX(-1.25rem)}
.reveal.reveal-right{transform:translateX(1.25rem)}
.reveal.is-visible{opacity:1;transform:none}
@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{opacity:1;transform:none}
}
@media(max-width:64rem){
  .u-grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:42rem){
  :root{--section-pad:4.5rem;--section-pad-tight:3.75rem}
  .u-grid-2,.u-grid-3{grid-template-columns:1fr}
}
