.ca-page{overflow-x:clip}
.ca-width{max-width:1440px;margin-inline:auto;padding-inline:6vw}
.ca-page h1{font-size:clamp(40px,4.6vw,74px);overflow-wrap:break-word}
.ca-page h2{font-size:clamp(30px,3.2vw,52px)}
.ca-paper{background:#f9f5e9;border:1px solid #c3bea7;border-top-color:#fff;box-shadow:3px 5px 0 #e0dac8,5px 9px 0 #c3bea7,0 25px 45px #252c2420;transition:transform 560ms cubic-bezier(.2,.7,.2,1),box-shadow 560ms}
@media(hover:hover){.ca-paper:hover{transform:translateY(-3px);box-shadow:3px 8px 0 #e0dac8,5px 12px 0 #c3bea7,0 28px 45px #252c2420}}

.ca-opening{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);gap:clamp(30px,5vw,80px);align-items:center;padding-block:clamp(36px,5vw,70px)}
.ca-intro{max-width:56ch;font-size:20px}
.ca-photo img{display:block;width:100%;aspect-ratio:3/2;object-fit:cover;box-shadow:6px 8px 0 #c7b5a5,12px 22px 40px #252c2428}
.ca-photo figcaption{max-width:60ch;padding-top:18px}

/* Route: a vertical rail threads the three stages; the stop stage is a solid oxblood caution. */
.ca-route{position:relative;display:grid;gap:clamp(36px,4vw,60px);padding-block:30px clamp(50px,6vw,90px)}
.ca-route:before{content:"";position:absolute;left:calc(6vw + 22px);top:40px;bottom:calc(clamp(50px,6vw,90px) + 40px);width:2px;background:linear-gradient(var(--wine),var(--apricot))}
.ca-stage{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px clamp(30px,4vw,64px);align-items:start;padding-left:80px}
.ca-stage-env{grid-template-columns:minmax(0,1fr) minmax(0,1.2fr)}
.ca-stage-env .ca-checks{order:-1}
.ca-node{position:absolute;left:0;top:0;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:var(--wine);color:var(--paper);font-family:var(--display);font-size:22px;box-shadow:0 0 0 5px var(--paper),0 4px 0 #252c24}
.ca-stage-text p{max-width:60ch}
.ca-checks{list-style:none;margin:0;padding:28px 30px}
.ca-checks li{position:relative;padding:12px 0 12px 26px;border-top:1px solid var(--line);font-size:17px;line-height:1.55}
.ca-checks li:first-child{border-top:0}
.ca-checks li:before{content:"";position:absolute;left:0;top:21px;width:10px;height:10px;background:var(--apricot);box-shadow:0 0 0 2px var(--wine)}
.ca-stop{background:var(--wine);color:var(--paper);padding:clamp(28px,3.5vw,48px) clamp(24px,3vw,48px) clamp(28px,3.5vw,48px) 80px;margin-left:-0px;box-shadow:inset 0 2px 2px #ffffff35,0 16px 35px #252c2440;border-bottom:4px solid var(--apricot)}
.ca-stop .ca-node{background:var(--apricot);color:var(--wine);left:20px;top:clamp(28px,3.5vw,48px);box-shadow:0 0 0 5px var(--wine)}
.ca-stop .ca-checks{color:var(--ink)}

.ca-next{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(30px,5vw,80px);align-items:start;padding-block:clamp(30px,4vw,60px)}
.ca-next-text p{max-width:60ch}
.ca-describe{margin:0;padding:28px 30px 28px 56px;counter-reset:d}
.ca-describe li{counter-increment:d;position:relative;padding:12px 0;border-top:1px solid var(--line);font-size:17px}
.ca-describe li:first-child{border-top:0}
.ca-describe li:before{content:counter(d);position:absolute;left:-30px;font-family:var(--display);font-size:24px;color:var(--wine)}

.ca-board-section{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.3fr);gap:clamp(30px,5vw,70px);align-items:start;padding-block:clamp(40px,5vw,80px)}
.ca-board{padding:clamp(22px,3vw,38px);min-width:0}
.ca-example-links,.ca-example-buttons{display:flex;flex-wrap:wrap;gap:6px 14px;margin-bottom:22px;border-bottom:1px solid var(--line);padding-bottom:14px}
.ca-example-links a{display:inline-flex;align-items:center;min-height:44px;font-weight:700;font-size:15px}
.ca-example-buttons[hidden]{display:none}
.ca-example-buttons button{min-height:44px;font-size:15px;padding:10px 14px;border:1px solid transparent;box-shadow:0 0 0 0 transparent;transition:transform 520ms cubic-bezier(.2,.7,.2,1),background 520ms}
.ca-example-buttons button[aria-pressed=true]{background:var(--wine);color:var(--paper)}
@media(hover:hover){.ca-example-buttons button:hover{transform:translateY(-3px)}}
.ca-example-buttons button:focus-visible{transform:translateY(-3px)}
.ca-examples article{padding:6px 0 10px;scroll-margin-top:120px}
.ca-examples article+article{border-top:1px solid var(--line);margin-top:14px;padding-top:20px}
.ca-board.ca-js .ca-examples article{border:0;margin:0;padding-top:6px}
.ca-board.ca-js .ca-examples article[hidden]{display:none}
.ca-board.ca-js .ca-example-links{display:none}
.ca-explanation{font-size:17px}
.ca-question{margin:0 0 10px;padding:14px 18px;border-left:4px solid var(--apricot);background:#f4efdf;font-size:17px;font-style:italic}
.ca-board textarea{min-height:260px}
.ca-help,.ca-status{font-size:14px;max-width:65ch}
.ca-actions{display:flex;flex-wrap:wrap;gap:12px 22px;align-items:center;margin:20px 0 14px}
.ca-actions button{min-height:48px}
.ca-status{margin:0}

.ca-reading{padding-block:20px clamp(40px,5vw,70px)}
.ca-reading h2{font-size:30px}
.ca-reading ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px 36px}
.ca-reading a{display:inline-flex;align-items:center;min-height:44px;font-weight:700}

.ca-closing .ca-width{padding-inline:0;max-width:1440px}
.ca-closing .primary-action{margin-right:18px}
.ca-closing .email{margin-top:30px}

@media(max-width:900px){
 .ca-opening,.ca-next,.ca-board-section{grid-template-columns:1fr}
 .ca-stage,.ca-stage-env{grid-template-columns:1fr}
 .ca-stage-env .ca-checks{order:0}
}
@media(max-width:600px){
 .ca-width{padding-inline:22px}
 .ca-page h1{font-size:40px}
 .ca-intro{font-size:18px}
 .ca-photo figcaption{font-size:12px}
 .ca-route:before{left:44px}
 .ca-stage{padding-left:0;padding-top:64px}
 .ca-node{left:22px}
 .ca-stop{padding:70px 22px 28px;margin-inline:-22px}
 .ca-stop .ca-node{left:22px;top:12px}
 .ca-checks{padding:20px 22px}
 .ca-describe{padding:20px 22px 20px 50px}
 .ca-describe li:before{left:-28px}
 .ca-example-links,.ca-example-buttons{flex-direction:column;align-items:stretch}
 .ca-example-buttons button{text-align:left}
 .ca-closing .primary-action{display:flex;margin:0 0 10px;white-space:normal}
}
@media(prefers-reduced-motion:reduce){.ca-paper,.ca-example-buttons button{transition:none}.ca-paper:hover,.ca-example-buttons button:hover{transform:none}}
