@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/instrument-serif-latin.woff2') format('woff2')}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;src:url('fonts/instrument-serif-italic-latin.woff2') format('woff2')}
@font-face{font-family:'DM Sans';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/dm-sans-latin.woff2') format('woff2')}
@font-face{font-family:'DM Mono';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/dm-mono-latin.woff2') format('woff2')}
@font-face{font-family:'Caveat';font-style:normal;font-weight:400 700;font-display:swap;src:url('fonts/caveat-latin.woff2') format('woff2')}

:root{
  --bg:hsl(35 44% 94%);--fg:hsl(344 34% 20%);--border:hsl(345 20% 82%);
  --card:hsl(35 50% 97%);--muted:hsl(344 22% 36%);--primary:hsl(348 56% 40%);
  --accent:hsl(13 75% 67%);--secondary:hsl(26 36% 87%);--ring:hsl(348 56% 43%);
  --serif:'Instrument Serif',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;
  --mono:'DM Mono',ui-monospace,monospace;--hand:'Caveat',cursive;
}
*{box-sizing:border-box}
html{min-width:320px;background:var(--bg);scroll-behavior:smooth;scroll-padding-top:1.5rem;-webkit-text-size-adjust:100%}
body.guides{margin:0;min-height:100dvh;background:radial-gradient(circle at 12% 8%,hsl(13 75% 67%/.15),transparent 26rem),radial-gradient(circle at 90% 60%,hsl(348 56% 43%/.08),transparent 30rem),var(--bg);color:var(--fg);font-family:var(--sans);font-size:1.0625rem;line-height:1.7;-webkit-font-smoothing:antialiased;overflow-x:hidden}
.grain{position:fixed;inset:0;z-index:10;pointer-events:none;opacity:.2;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.12'/%3E%3C/svg%3E")}
a{color:var(--primary);text-underline-offset:.2em;text-decoration-thickness:1px}
a:hover{color:var(--fg)}
:focus-visible{outline:3px solid var(--ring);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:1rem;top:-4rem;z-index:20;background:var(--fg);color:var(--bg);padding:.7rem 1rem;border-radius:4px}
.skip:focus{top:1rem}

.bar,.wrap,.foot{position:relative;z-index:1;width:min(1120px,calc(100% - 40px));margin-inline:auto}
.bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding-top:24px}
.wordmark{display:inline-flex;align-items:center;gap:10px;color:var(--fg);font-size:11px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;text-decoration:none}
.wordmark__mark{display:grid;place-items:center;width:27px;height:27px;border:1px solid hsl(348 56% 43%/.5);border-radius:50%;color:var(--primary)}
.bar__nav{display:flex;align-items:center;gap:1.25rem;font-size:13px;font-weight:600}
.bar__nav a{color:var(--fg);text-decoration:none;padding:.5rem 0}
.bar__nav a:hover{color:var(--primary)}
.bar__nav .bar__cta{color:var(--primary);border-bottom:1px solid var(--primary)}

.eyebrow{display:flex;align-items:center;gap:11px;margin:0 0 1.2rem;color:var(--primary);font-family:var(--mono);font-size:11px;letter-spacing:.09em;text-transform:uppercase;line-height:1.5}
.eyebrow::before{content:'';width:30px;height:1px;background:var(--primary);flex:none}
.byline{margin:1.4rem 0 0;color:var(--muted);font-family:var(--mono);font-size:12px;letter-spacing:.04em}
.byline span:first-of-type{color:var(--fg)}

.wrap{padding-block:clamp(2.5rem,7vw,5rem) 3rem}
.hub-head{max-width:760px;margin-bottom:clamp(2.5rem,6vw,4.5rem)}
.hub-title,.art-title{margin:0;font-family:var(--serif);font-weight:400;letter-spacing:-.045em;line-height:1;color:var(--fg);text-wrap:balance}
.hub-title{font-size:clamp(3rem,10vw,6.5rem)}
.hub-title em{color:var(--primary)}
.hub-lede{max-width:560px;margin:1.6rem 0 0;color:var(--muted);font-size:1.1rem}

.cards{list-style:none;margin:0;padding:0;display:grid;gap:0}
.card{border-top:1px solid var(--border)}
.card:last-child{border-bottom:1px solid var(--border)}
.card__link{display:grid;gap:.5rem;padding:1.7rem 0;color:var(--fg);text-decoration:none;position:relative;transition:padding-left .25s ease,background-color .25s ease}
.card__link:hover{padding-left:1rem;background:hsl(35 50% 97%/.7)}
.card__eyebrow{color:var(--primary);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.card__title{font-family:var(--serif);font-size:clamp(1.9rem,5vw,2.8rem);line-height:1.08;letter-spacing:-.03em;max-width:24ch}
.card__desc{max-width:62ch;color:var(--muted)}
.card__meta{color:var(--primary);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.cards--row{grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1.5rem}
.cards--row .card,.cards--row .card:last-child{border:1px solid var(--border);background:var(--card);border-radius:3px}
.cards--row .card__link{padding:1.5rem;height:100%;align-content:start}
.cards--row .card__link:hover{padding-left:1.5rem;background:var(--secondary)}
.cards--row .card__title{font-size:1.9rem}

.crumbs ol{display:flex;flex-wrap:wrap;gap:.3rem .6rem;list-style:none;margin:0 0 2.2rem;padding:0;font-family:var(--mono);font-size:11px;letter-spacing:.04em;color:var(--muted)}
.crumbs li+li::before{content:'/';margin-right:.6rem;color:var(--border)}
.crumbs a{color:var(--muted)}
.art-head{max-width:820px}
.art-title{font-size:clamp(2.6rem,8vw,5.2rem)}
.layout{display:grid;grid-template-columns:minmax(0,1fr);gap:2rem;margin-top:clamp(2rem,5vw,3.5rem)}
.toc{border:1px solid var(--border);background:var(--card);border-radius:3px;padding:1.1rem 1.2rem}
.toc__title{margin:0 0 .6rem;color:var(--primary);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.toc ol{margin:0;padding:0;list-style:none;counter-reset:t;display:grid;gap:.1rem}
.toc li{counter-increment:t}
.toc li a{display:flex;gap:.7rem;padding:.4rem 0;color:var(--fg);text-decoration:none;font-size:.95rem;line-height:1.4}
.toc li a::before{content:counter(t,decimal-leading-zero);color:var(--primary);font-family:var(--mono);font-size:11px;padding-top:.2rem}
.toc li a:hover{color:var(--primary);text-decoration:underline}
.toc__write{display:none;margin-top:1rem;font-size:13px;font-weight:700}

.prose{max-width:690px;min-width:0}
.prose p{margin:0 0 1.15rem;overflow-wrap:break-word}
.intro{font-family:var(--serif);font-size:clamp(1.35rem,3.6vw,1.65rem);line-height:1.4;color:var(--fg);margin-bottom:1rem}
.intro p{margin-bottom:1rem}
.sec{padding-top:2.6rem;margin-top:.5rem;border-top:1px solid var(--border)}
.sec h2,.related h2{margin:0 0 1.2rem;font-family:var(--serif);font-weight:400;font-size:clamp(2rem,5.5vw,2.9rem);line-height:1.08;letter-spacing:-.035em;text-wrap:balance}
.steps{list-style:none;counter-reset:s;margin:1.2rem 0 1.5rem;padding:0;display:grid;gap:.9rem}
.steps li{counter-increment:s;position:relative;padding-left:3rem;min-height:2.2rem}
.steps li::before{content:counter(s);position:absolute;left:0;top:.05rem;display:grid;place-items:center;width:2rem;height:2rem;border:1px solid var(--primary);border-radius:50%;color:var(--primary);font-family:var(--mono);font-size:12px}
.items{margin:1.2rem 0 1.5rem;display:grid;gap:1rem}
.item{padding:1rem 0 0;border-top:1px solid var(--border)}
.item dt{font-family:var(--serif);font-size:1.5rem;line-height:1.2;color:var(--fg)}
.item dd{margin:.35rem 0 0;color:var(--muted)}
.examples{display:grid;gap:1.5rem;margin:1.5rem 0}
.note{position:relative;margin:0;padding:1.4rem 1.4rem 1.2rem;border:1px solid hsl(35 29% 72%);border-radius:3px;background:repeating-linear-gradient(transparent,transparent 31px,hsl(348 56% 43%/.1) 31px,hsl(348 56% 43%/.1) 32px),linear-gradient(135deg,hsl(35 50% 98%),hsl(34 43% 93%));box-shadow:0 12px 24px hsl(344 34% 20%/.08)}
.note::before{content:'';position:absolute;top:0;bottom:0;left:0;width:4px;background:var(--primary)}
.note__label{margin:0 0 .5rem;color:var(--primary);font-family:var(--mono);font-size:11px;letter-spacing:.1em;text-transform:uppercase}
.note__text{margin:0}
.note__text p{margin:0;font-family:var(--hand);font-size:clamp(1.55rem,4.6vw,1.9rem);line-height:1.3;font-weight:500;color:var(--fg)}
.note__tip{margin:1rem 0 0!important;padding-top:.8rem;border-top:1px dashed var(--border);color:var(--muted);font-size:.95rem}
.note__tip strong{color:var(--primary)}
.faq details{border-top:1px solid var(--border)}
.faq details:last-child{border-bottom:1px solid var(--border)}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;padding:1.1rem 0;font-weight:700;line-height:1.4}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';color:var(--primary);font-family:var(--mono);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:'\2212'}
.faq details p{margin:0 0 1.2rem;color:var(--muted)}

.cta{margin:3rem 0 0;padding:1.8rem;border-radius:3px;background:var(--primary);color:hsl(35 50% 97%);display:grid;gap:.6rem;justify-items:start;position:relative;overflow:hidden}
.cta::before,.cta::after{content:'';position:absolute;width:150%;height:1px;background:hsl(35 44% 94%/.2);left:-25%;transform:rotate(18deg);top:30%}
.cta::after{transform:rotate(-18deg);top:70%}
.cta>*{position:relative;z-index:1}
.cta__kicker{margin:0!important;font-family:var(--mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;opacity:.9}
.cta__title{margin:0!important;font-family:var(--serif);font-size:clamp(1.7rem,5vw,2.3rem);line-height:1.1;letter-spacing:-.02em;max-width:22ch}
.btn{display:inline-flex;align-items:center;gap:.7rem;margin-top:.6rem;padding:.8rem 1.2rem;min-height:44px;background:hsl(35 50% 97%);color:hsl(348 56% 34%);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;border-radius:3px;transition:transform .2s ease,gap .2s ease}
.btn:hover{color:var(--fg);gap:1rem;transform:translateY(-2px)}
.cta .btn:focus-visible{outline-color:hsl(35 50% 97%)}
.main-end{height:0}
.related{margin-top:clamp(3rem,7vw,5rem);padding-top:2.5rem;border-top:1px solid var(--border)}

.foot{display:grid;justify-items:center;gap:.5rem;padding:3rem 0 2.5rem;text-align:center}
.foot__line{margin:0;font-family:var(--serif);font-style:italic;font-size:1.4rem}
.foot__links,.foot__small{margin:0;font-size:.9rem;color:var(--muted)}
.foot__links{display:flex;flex-wrap:wrap;gap:.4rem .8rem;justify-content:center}
.foot__small{font-family:var(--mono);font-size:11px}

@media (min-width:600px){.bar,.wrap,.foot{width:min(1120px,calc(100% - 64px))}.examples{gap:2rem}.note{padding:1.7rem 2rem 1.4rem}.note:nth-child(odd){transform:rotate(-.5deg)}.note:nth-child(even){transform:rotate(.4deg)}}
@media (min-width:980px){
  .layout{grid-template-columns:230px minmax(0,1fr);gap:clamp(2.5rem,6vw,5.5rem)}
  .toc{position:sticky;top:1.5rem;align-self:start;border:0;background:none;padding:0 0 0 1rem;border-left:1px solid var(--border);border-radius:0;max-height:calc(100dvh - 3rem);overflow:auto}
  .toc__write{display:inline-block}
}
@media (max-width:380px){body.guides{font-size:1rem}.bar__nav{gap:.8rem}.steps li{padding-left:2.6rem}}
@media (prefers-reduced-motion:no-preference){
  .art-head,.hub-head{animation:rise .8s ease both}
  @keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}.note{transform:none!important}}
@media (forced-colors:active){.note::before{background:CanvasText}.cta{border:1px solid CanvasText}}
@media print{.grain,.bar,.toc,.cta,.related{display:none}body.guides{background:#fff}}
