:root{
  --forest:#132C20;
  --forest-2:#1C3C2B;
  --panel:#273F33;
  --gold:#C8A45D;
  --cream:#FFFAF1;
  --sage:#D9E0D9;
  --surface:var(--cream);
  --surface-support:var(--sage);
  --surface-emphasis:var(--panel);
  --action:var(--gold);
  --text-on-dark:var(--cream);
  --muted-on-dark:var(--sage);
  --line:var(--sage);
  --focus-ring:var(--gold);
  --space-xs:.5rem;
  --space-sm:.75rem;
  --space-md:1.5rem;
  --space-lg:2.5rem;
  --space-xl:clamp(3.75rem,8vw,6.5rem);
  --type-label:.75rem;
  --type-small:.9375rem;
  --type-body:1.0625rem;
  --type-card:1.1875rem;
  --type-section:clamp(1.85rem,3.3vw,2.6rem);
  --type-display:clamp(2.55rem,5.5vw,4.25rem);
  --ease-out-quart:cubic-bezier(.25,1,.5,1);
}

@font-face{font-family:"DM Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/dm-sans-latin.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:500;font-display:swap;src:url("/fonts/dm-sans-latin.woff2") format("woff2")}
@font-face{font-family:"DM Sans";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/dm-sans-latin.woff2") format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:400;font-display:swap;src:url("/fonts/libre-baskerville-latin.woff2") format("woff2")}
@font-face{font-family:"Libre Baskerville";font-style:normal;font-weight:700;font-display:swap;src:url("/fonts/libre-baskerville-latin.woff2") format("woff2")}

*{box-sizing:border-box}
html{color-scheme:light;-webkit-text-size-adjust:100%;scroll-behavior:smooth;touch-action:manipulation;-webkit-tap-highlight-color:rgba(200,164,93,.28)}
body{margin:0;background:var(--surface);color:var(--forest);font-family:"DM Sans",sans-serif;font-size:var(--type-body);font-kerning:normal;font-feature-settings:"kern" 1,"liga" 1;line-height:1.6}
h1,h2,h3{margin:0;font-family:"Libre Baskerville",serif;line-height:1.2}
a{color:inherit}
a:focus-visible{outline:3px solid var(--focus-ring);outline-offset:4px}
main:focus{outline:0}
[id]{scroll-margin-top:1rem}

.wrap,.w{width:min(1040px,calc(100% - 44px));margin-inline:auto}
.bar .wrap{width:min(1100px,calc(100% - 44px))}
main.w{width:min(960px,calc(100% - 44px));padding-block:clamp(3.125rem,7vw,4.25rem);line-height:1.65}
main.w>h1{max-width:17ch;font-size:var(--type-display);line-height:1.08;letter-spacing:-.026em;text-wrap:balance}
main.w>.lede{max-width:64ch;margin:1.375rem 0 clamp(2.625rem,6vw,3.25rem);color:var(--forest-2)}

.bar,.top{background:var(--forest);color:var(--text-on-dark);padding-block:.875rem;font-size:var(--type-small)}
.bar .wrap,.top .w{display:flex;align-items:center;justify-content:space-between;gap:.875rem;flex-wrap:wrap}
.bar nav,.top nav{display:flex;gap:1rem;flex-wrap:wrap}
.bar a,.top a{min-width:2.75rem;min-height:3rem;display:inline-flex;align-items:center;justify-content:center;color:var(--muted-on-dark);text-decoration:none}
.bar a:hover,.bar a:focus-visible,.top a:hover,.top a:focus-visible,.bar a[aria-current="page"],.top a[aria-current="page"]{color:var(--action);text-decoration:underline;text-underline-offset:5px}

.hero,.cta{background:var(--forest);color:var(--text-on-dark)}
.hero{padding:clamp(3.875rem,8vw,5.25rem) 0 clamp(3.5rem,7vw,4.75rem);border-bottom:3px solid var(--action)}
.hero h1{max-width:18ch;font-size:var(--type-display);line-height:1.08;letter-spacing:-.026em;text-wrap:balance;overflow-wrap:anywhere}
.bar+main .hero h1{max-width:15ch}
.lede{max-width:60ch;margin:1.5rem 0;font-size:clamp(1.125rem,2.2vw,1.4375rem);line-height:1.52}
.hero .lede,.cta p,.proof .intro,.proof p{color:var(--muted-on-dark)}
.label,.tag,.route-kind{margin:0 0 1.125rem;font-size:var(--type-label);font-weight:700;line-height:1.35;letter-spacing:.15em;text-transform:uppercase}
.hero .label,.hero .tag,.cta .label,.cta .tag,.proof .tag,.method .label,.build-choice .route-kind,.asset.build h3,.asset.dark h3,.route.build .tag{color:var(--action)}

.button{display:inline-flex;align-items:center;justify-content:center;min-height:3rem;margin-top:.625rem;padding:.875rem 1.25rem;border:2px solid var(--action);background:var(--action);color:var(--forest);font-weight:700;text-decoration:none;transition:transform .18s var(--ease-out-quart),background-color .18s var(--ease-out-quart),border-color .18s var(--ease-out-quart)}
.button:hover,.button:focus-visible{border-color:var(--surface-support);background:var(--surface-support)}
.button:active{transform:translateY(1px) scale(.985)}
.note,.cta-note,.fallback{display:block;max-width:54ch;margin-top:.625rem;font-size:var(--type-small);line-height:1.58;color:var(--muted-on-dark)}
.fallback{margin-bottom:0}.fallback a,.foot a{color:var(--text-on-dark);text-underline-offset:4px}

main:not(.w)>section{padding-block:clamp(3.125rem,7vw,4.375rem);border-bottom:1px solid var(--line)}
.section h2,h2.section-title{max-width:21ch;font-size:var(--type-section);line-height:1.14;letter-spacing:-.018em;text-wrap:balance;overflow-wrap:anywhere}
.intro{max-width:62ch;margin:1.125rem 0 1.75rem;line-height:1.62}
.text-link,.conditions a{font-weight:700;text-underline-offset:4px;text-decoration-thickness:1px}
.text-link:hover,.conditions a:hover{color:var(--forest-2);text-decoration-thickness:2px}
.boundary .text-link:hover{color:var(--text-on-dark)}

.choice-grid,.step-grid,.assets,.at-a-glance{display:grid;gap:var(--space-md)}
.choice-grid,.at-a-glance,.assets{grid-template-columns:repeat(2,minmax(0,1fr))}
.step-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.choice,.step-card,.asset,.route,.term{min-width:0;padding:clamp(1.25rem,2.4vw,1.75rem);border:1px solid var(--line);background:var(--surface)}
.choice h3{font-size:clamp(1.5rem,2.6vw,1.8125rem)}
.choice p{max-width:39ch}.choice ul{margin:1.375rem 0;padding-left:1.125rem}.choice li{margin:.4375rem 0}
.answers{background:var(--surface-support)}
.answer-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-md);margin:1.75rem 0 0}
.answer-list>div{min-width:0;padding:1.25rem;border:1px solid var(--line);background:var(--surface)}
.answer-list dt{font-family:"Libre Baskerville",serif;font-size:var(--type-card);font-weight:700;line-height:1.22}
.answer-list dd{margin:1rem 0 0;font-size:var(--type-small);line-height:1.58}
.build-choice,.asset.build,.asset.dark,.route.build{border-color:var(--surface-emphasis);background:var(--surface-emphasis);color:var(--text-on-dark)}
.build-choice li,.asset.build p,.asset.dark p,.route.build p{color:var(--muted-on-dark)}
.build-choice .text-link{color:var(--action)}
.lab-choice,.conditions,.drafts,.term.emphasis{border-color:var(--surface-support);background:var(--surface-support)}
.lab-choice .route-kind,.section:not(.method):not(.boundary):not(.next) .label,.step-card strong,main>section:not(.proof):not(.cta) .tag,main>.tag,.route:not(.build) .tag{color:var(--forest-2)}

.method,.proof{background:var(--forest-2);color:var(--text-on-dark)}
.boundary{background:var(--surface-emphasis);color:var(--text-on-dark)}
.next,.cta{background:var(--forest)}
.method .intro,.boundary .intro,.method-note{color:var(--muted-on-dark)}
.method-flow{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;border:1px solid var(--line);background:var(--line)}
.method-step{min-width:0;min-height:11.75rem;padding:1.5rem 1.125rem;background:var(--forest)}
.method-step strong,.step-card strong{display:block;margin-bottom:.6875rem;font-size:var(--type-label);letter-spacing:.1em}
.method-step strong{color:var(--action)}
.method-step h3,.step-card h3,.asset h3,.route h2,.term h3{font-size:var(--type-card);line-height:1.22}
.method-step p,.step-card p,.asset p,.note,.cta-note,.fallback{font-size:var(--type-small);line-height:1.58}
.method-step p,.proof p{margin:.5625rem 0 0;color:var(--muted-on-dark)}
.method-note{margin:1.125rem 0 0;font-size:var(--type-small)}
.boundary .text-link{color:var(--action)}

.drafts .intro{max-width:68ch}.conditions .intro{max-width:68ch}
.at-a-glance{margin:0 0 clamp(3rem,7vw,3.875rem)}
.route h2{font-size:1.625rem}.route p{margin-bottom:0}
h2.section-title{margin:clamp(3rem,6vw,3.5rem) 0 1.25rem;padding-top:1.5rem;border-top:2px solid var(--action);font-size:var(--type-section)}
.term{margin:.875rem 0}.term h3{margin:0 0 .4375rem}.term p{margin:0}
main.w .proof{margin-top:2.75rem;padding:2rem}

.foot{padding:1.625rem 0;background:var(--forest);color:var(--muted-on-dark);font-size:var(--type-small)}
.foot p{max-width:72ch}
.bar~.foot{padding:1.875rem 0;background:var(--surface);color:var(--forest-2)}
.bar~.foot a{color:inherit;font-weight:700}

@media(hover:hover){
  .button:hover{transform:translateY(-2px)}
  .choice:has(.text-link):hover{transform:translateY(-2px)}
  .choice{transition:transform .24s var(--ease-out-quart)}
}

@media(max-width:1023px) and (min-width:701px){
  .step-grid--expand-last{display:flex;flex-wrap:wrap}
  .step-grid--expand-last .step-card{flex:0 0 calc((100% - var(--space-md)) / 2)}
  .step-grid--expand-last .step-card:last-child{flex-basis:100%}
}

@media(max-width:800px){
  .choice-grid,.method-flow,.step-grid,.answer-list{grid-template-columns:1fr}
  .method-step{min-height:0}
  .bar nav{gap:.75rem}
}

@media(max-width:700px){
  .hero,main:not(.w)>section{padding-block:3.125rem}
  .assets,.at-a-glance{grid-template-columns:1fr}
  .button{width:100%;text-align:center}
  .bar .wrap,.top .w{align-items:flex-start}
  .bar nav,.top nav{width:100%;gap:.75rem}
}

@media(max-width:480px){
  .bar,.top{padding-block:.5rem}
  .bar nav,.top nav{justify-content:space-between;gap:.25rem}
  .bar a,.top a{font-size:.875rem}
}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}
}

.skip-link{position:absolute;inset-inline-start:var(--space-md);inset-block-start:-5rem;z-index:1;padding:.75rem 1rem;background:var(--action);color:var(--forest);font-weight:700}.skip-link:focus{inset-block-start:var(--space-sm)}
.wrap,.w,.choice,.step-card,.method-step,.asset,.route,.term{min-width:0}
h1,h2,h3,p,a,li{overflow-wrap:anywhere}

@media(forced-colors:active){
  .button,.skip-link{border:1px solid ButtonText}.bar a[aria-current="page"],.top a[aria-current="page"]{outline:1px solid currentColor;outline-offset:3px}
}
