@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/site-font-1.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/site-font-2.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/site-font-3.ttf) format('truetype');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/site-font-4.ttf) format('truetype');
}
@font-face {
  font-family: 'IBM Plex Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/site-font-5.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/site-font-6.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(assets/site-font-7.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(assets/site-font-8.ttf) format('truetype');
}

:root{--ink:#0b0b0c;--paper:#f0e8da;--muted:#b8b5ae;--line:#ffffff29;--blue:#001b3d;--orange:#b65a2a;--serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,Arial,sans-serif;--mono:'IBM Plex Mono',monospace}*{box-sizing:border-box}html{background:var(--ink);scroll-behavior:smooth}body{margin:0;color:var(--paper);font:400 16px/1.7 var(--sans);background:linear-gradient(90deg,transparent 49.9%,#ffffff04 50%,transparent 50.1%),var(--ink)}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button,a,input,select,summary{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #e99460;outline-offset:5px}button,summary{cursor:pointer}img{display:block;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.12) brightness(.84)}p{max-width:65ch;color:var(--muted)}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.02;margin:0 0 1.2rem}h1{font-size:clamp(3.8rem,8vw,8rem)}h2{font-size:clamp(2.6rem,4.5vw,4.8rem)}h3{font-size:2.1rem}.eyebrow,.meta,label,.textlink{font:400 .875rem/1.6 var(--mono)}.eyebrow{text-transform:uppercase;letter-spacing:.12em;margin-bottom:1.4rem;color:var(--muted)}.meta{color:var(--muted)}.textlink{display:inline-block;padding:.6rem 0;border-bottom:1px solid var(--orange)}.textlink:hover{color:#e99460}.btn{display:inline-flex;align-items:center;justify-content:space-between;gap:2rem;padding:1rem 1.3rem;border:1px solid #ffffff6b;box-shadow:inset 3px 0 var(--orange);font:400 .875rem/1.6 var(--mono);background:transparent;color:inherit}.btn:hover{background:var(--orange);color:white}.btn.primary{background:var(--paper);color:var(--ink);border-color:var(--paper)}.actions{display:flex;flex-wrap:wrap;gap:1rem;align-items:center;margin-top:2rem}.skip{position:fixed;left:1rem;top:-100px;z-index:500;background:var(--paper);color:#111;padding:1rem}.skip:focus{top:1rem}.menu{position:fixed;right:22px;top:20px;z-index:100}.menu summary{list-style:none;background:var(--paper);color:#111;border:2px solid #111;padding:.8rem 1.2rem;box-shadow:6px 6px var(--blue);font:500 .875rem var(--mono)}.menu summary::-webkit-details-marker{display:none}.menu[open] summary{box-shadow:6px 6px var(--orange)}.menu nav{position:absolute;top:calc(100% + 16px);right:0;width:min(360px,88vw);padding:1rem 1.5rem;border:2px solid #111;border-left:10px solid var(--blue);box-shadow:8px 8px var(--blue);background:var(--paper);color:#111;max-height:75svh;overflow:auto}.menu nav a{display:flex;justify-content:space-between;padding:1rem .3rem;border-bottom:1px solid #0003;font:400 1rem var(--mono)}.menu nav a:hover,.menu nav a[aria-current=page]{color:#994418}.wordmark{position:absolute;top:30px;left:4vw;font:500 .9rem var(--mono);letter-spacing:.2em;z-index:5}.home-hero{position:relative;display:grid;grid-template-columns:41% 41% 18%;min-height:760px;height:92svh;max-height:1040px;border-bottom:1px solid var(--line)}.hero-copy{padding:8rem 0 5rem 4vw;align-self:center;z-index:2}.hero-copy h1{font-size:clamp(5rem,11.7vw,12rem);letter-spacing:-.05em;white-space:nowrap}.hero-copy h2{font-size:clamp(2.2rem,3.2vw,3.5rem);margin-top:1rem}.hero-copy p{max-width:34ch;padding-right:1rem}.hero-image{position:relative;overflow:hidden}.hero-image img{object-position:48% center}.hero-image:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b0b0c55,transparent 40%)}.hero-side{border-left:1px solid var(--line);padding:11rem 2rem 3rem;background:linear-gradient(145deg,#202022,#0b0b0c);position:relative}.hero-side .line{width:35px;height:3px;background:var(--orange);margin-bottom:2rem}.hero-side p{font:400 .875rem/2.5 var(--mono)}.vertical{position:absolute;bottom:3rem;right:2rem;writing-mode:vertical-rl;font:.875rem var(--mono);color:var(--muted)}.intro-strip{padding:2rem 4vw;display:flex;gap:2rem;justify-content:space-between;border-bottom:1px solid var(--line);font:.875rem/1.8 var(--mono)}.mosaic{display:grid;grid-template-columns:1fr 1.25fr .8fr;min-height:520px;border-bottom:1px solid var(--line)}.mosaic>div{min-width:0}.paper{background:var(--paper);color:#181818;padding:4rem 3rem}.paper p,.paper .eyebrow{color:#4b4944}.paper h2{font-size:clamp(2.8rem,4vw,4rem)}.photo-panel{position:relative;min-height:350px;overflow:hidden}.caption{position:absolute;bottom:1.4rem;left:1.5rem;right:1.5rem;font:.875rem var(--mono);color:white}.section{padding:5rem 4vw;border-bottom:1px solid var(--line)}.split{display:grid;grid-template-columns:1fr 1fr;gap:5vw}.section-head{display:flex;justify-content:space-between;gap:2rem;align-items:end;margin-bottom:2rem}.section-head p{max-width:42ch}.number{font:.875rem var(--mono);color:#d38a5f;display:block;margin-bottom:1.8rem}.rows{border-top:1px solid var(--line)}.row{display:flex;gap:2rem;justify-content:space-between;align-items:center;padding:1.5rem 0;border-bottom:1px solid var(--line)}.row h3{margin:0;font-size:2.2rem}.row:hover h3{color:#e99460}.page-top{padding:8rem 4vw 3rem;border-bottom:1px solid var(--line)}.page-top p{max-width:55ch;font-size:1.1rem}.page-top.compact{padding-bottom:2rem}.resource-tabs{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:2rem}.resource-tabs a{font:.875rem var(--mono);padding:.8rem 1.1rem;border:1px solid var(--line)}.resource-tabs a.active{background:var(--paper);color:#111;border-color:var(--paper)}.directory{padding:2rem 4vw 5rem}.filters{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:1rem;padding-bottom:1.5rem}.filters label{display:grid;gap:.5rem;color:var(--muted)}input,select{width:100%;min-width:0;border-radius:0;border:1px solid #ffffff4a;background:#171719;color:var(--paper);padding:.9rem;font-size:1rem;min-height:50px}select{color-scheme:dark}.results-top{display:flex;justify-content:space-between;align-items:center;margin:.5rem 0 1.5rem}.reset{border:0;background:none;color:var(--paper);text-decoration:underline;padding:.5rem;font-size:.875rem}.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.card{background:linear-gradient(145deg,#171719,#101011);border:1px solid var(--line);padding:1.8rem;display:flex;flex-direction:column;min-height:320px}.card h2{font-size:2.55rem;margin:1.1rem 0}.card p{margin:0 0 1.5rem}.card .meta{font-size:.8rem}.card .card-links{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);font:.875rem/1.6 var(--mono)}.card-links a:hover{color:#e99460}.card:hover{border-color:#b65a2a99}.pill{display:inline-block;border-left:2px solid var(--orange);padding-left:.6rem;color:#ccc4b9}.empty{padding:3rem;border:1px solid var(--line);grid-column:1/-1}.article-layout{display:grid;grid-template-columns:240px minmax(0,780px);gap:5vw;padding:3rem 4vw 6rem;justify-content:center}.article-rail{position:sticky;top:100px;align-self:start}.article-rail a{display:block;padding:.7rem 0;border-bottom:1px solid var(--line);font:.875rem var(--mono)}.prose{min-width:0}.prose section{padding:1rem 0 3rem;scroll-margin-top:4rem;border-bottom:1px solid var(--line);margin-bottom:2rem}.prose h2{font-size:3rem}.prose h3{font-size:2rem;margin-top:2rem}.prose p{font-size:1.06rem;line-height:1.85}.prose .question{padding:1.5rem;border-left:3px solid var(--orange);background:#171719;color:var(--paper)}.prose .sources{font-size:.875rem}.sources a{text-decoration:underline}.breadcrumb{font:.875rem var(--mono);color:var(--muted);display:inline-block;margin-bottom:2rem}.visit-grid{display:grid;grid-template-columns:1fr 1fr}.visit-grid .paper{padding:4rem}.visit-grid .paper .btn{border-color:#111}.visit-grid .paper h3{margin-top:2rem}footer{padding:2.5rem 4vw;display:flex;justify-content:space-between;gap:2rem;font:.875rem/1.8 var(--mono);color:var(--muted)}footer nav{display:flex;gap:1.5rem;flex-wrap:wrap}.essay-callout{background:var(--blue);padding:3rem}.essay-callout p{color:#d4d8df}.readtime{font:.875rem var(--mono);color:var(--muted)}[hidden]{display:none!important}@media(min-width:1600px){body{max-width:1900px;margin:auto}}@media(max-width:1000px){.home-hero{grid-template-columns:55% 45%;height:auto;min-height:720px}.hero-side{display:none}.hero-copy h1{font-size:14vw}.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.filters{grid-template-columns:1fr 1fr}.mosaic{grid-template-columns:1fr 1.2fr}.mosaic>div:last-child{display:none}.article-layout{grid-template-columns:180px minmax(0,1fr)}}@media(max-width:640px){.wordmark{left:1.2rem;top:26px;font-size:.75rem}.menu{right:14px;top:14px}.menu summary{padding:.8rem .9rem}.home-hero{display:block;min-height:760px;min-height:94svh;position:relative}.hero-image{position:absolute;inset:0;z-index:0}.hero-image img{object-position:40% center;filter:grayscale(1) contrast(1.12) brightness(.5)}.hero-image:after{background:linear-gradient(0deg,#0b0b0c 0%,#0b0b0cbb 42%,transparent 100%)}.hero-copy{position:relative;padding:12rem 1.2rem 3rem;min-height:94svh;display:flex;flex-direction:column;justify-content:end}.hero-copy h1{font-size:22vw}.hero-copy h2{font-size:2.8rem}.hero-copy p{color:#e1dcd3}.hero-copy .eyebrow{font-size:.75rem}.hero-copy .actions{gap:.8rem}.hero-copy .btn{width:100%}.intro-strip{padding:1.5rem 1.2rem;display:block}.intro-strip span{display:block;margin:.4rem 0}.mosaic{display:block}.mosaic .photo-panel{height:400px}.paper{padding:3rem 1.2rem}.section{padding:3rem 1.2rem}.split{grid-template-columns:1fr;gap:2rem}.section-head{display:block}.page-top{padding:7rem 1.2rem 2rem}h1{font-size:3.8rem;overflow-wrap:break-word}.directory{padding:1.5rem 1.2rem 3rem}.filters{grid-template-columns:1fr 1fr;gap:.8rem}.filters label:first-child{grid-column:1/-1}.filters label{font-size:.8rem}.filters select{font-size:.9rem;padding:.8rem .4rem}.cards{grid-template-columns:1fr}.card{min-height:290px;padding:1.5rem}.article-layout{display:block;padding:1.5rem 1.2rem 3rem}.article-rail{position:static;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:2rem}.article-rail a{font-size:.8rem}.prose h2{font-size:2.7rem}.visit-grid{display:block}.visit-grid .paper{padding:3rem 1.2rem}.visit-grid .photo-panel{height:360px}.row h3{font-size:1.8rem}.resource-tabs{gap:.4rem}.resource-tabs a{font-size:.8rem;padding:.7rem}.essay-callout{padding:2rem 1.2rem}footer{display:block;padding:2rem 1.2rem}footer nav{margin-top:1rem}.actions{gap:1rem}.intro-strip .meta{font-size:.8rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Shared resource search and supplied photography. */
.shared-search{border-bottom:1px solid var(--line)}.search-heading{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.4rem}.search-heading .eyebrow{margin:0}.search-heading .resource-tabs{margin:0}.shared-search .filters{grid-template-columns:1.5fr 1fr 1.2fr 1fr 1fr auto;align-items:end}.search-submit{min-height:50px;justify-content:center;padding:.9rem 1.1rem}.shared-search .query-field{min-width:0}.detail-search{padding-bottom:1.5rem;background:#101011}.detail-search .cards:not([hidden]){margin:1.5rem 0;max-height:70svh;overflow:auto;overscroll-behavior:contain;padding:4px}.result-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.5rem}#leader-profile .textlink{margin-left:1.5rem;padding:.2rem 0}.image-header{display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,32%);gap:4vw;align-items:center}.image-header h1{font-size:clamp(3.4rem,6.8vw,7rem)}figure{margin:0}.essay-cover{max-width:360px;justify-self:end;width:100%}.essay-cover img{height:auto;aspect-ratio:1;object-fit:contain;filter:none}.art-cover img{height:auto;max-height:420px;object-fit:contain}.people-banner{max-height:520px;overflow:hidden}.people-banner img{height:auto;max-height:520px;object-fit:cover;object-position:center}.editorial-photo{margin:2rem 0}.editorial-photo img{height:auto;max-height:520px;object-fit:cover}.resource-card{padding:0;overflow:hidden}.card-image{display:block;aspect-ratio:1.7;overflow:hidden;border-bottom:1px solid var(--line)}.card-image img{object-position:center}.card-image.essay-image{aspect-ratio:1;background:#161617}.essay-image img{filter:none;object-fit:contain}.card-content{padding:1.5rem;display:flex;flex-direction:column;flex:1}.card-group{display:flex;align-items:center;gap:.8rem;min-height:42px}.group-logo{width:44px;height:44px;object-fit:contain;filter:none;background:var(--paper);padding:3px}.card-leaders{font:.875rem/1.8 var(--mono);padding:1rem 0}.card-leaders a:hover{text-decoration:underline}.card-leaders .meta{display:block;font-size:.75rem}.resource-card .card-links{margin-top:auto}.detail-search input,.detail-search select{background:#19191b}@media(max-width:1250px){.shared-search .filters{grid-template-columns:repeat(3,minmax(0,1fr))}.shared-search .query-field{grid-column:auto}.image-header h1{font-size:clamp(3.2rem,6vw,6rem)}}@media(max-width:640px){.image-header{grid-template-columns:1fr}.image-header h1{font-size:3.8rem}.essay-cover{max-width:300px;justify-self:start;margin-top:.5rem}.art-cover{width:100%}.art-cover img{max-height:300px}.search-heading{display:block}.search-heading .resource-tabs{margin-top:.8rem}.shared-search .filters{grid-template-columns:repeat(2,minmax(0,1fr))}.shared-search .query-field{grid-column:1/-1}.search-submit{font-size:.875rem}.shared-search .results-top{align-items:start;gap:.8rem}.result-actions{gap:0;min-width:92px;flex-direction:column}.result-actions button{font-size:.8rem;padding:.35rem 0}#leader-profile .textlink{display:block;margin:.5rem 0 0;font-size:.8rem}.card-content{padding:1.4rem}.detail-search .cards:not([hidden]){max-height:none;overflow:visible}.people-banner img{min-height:230px;object-fit:cover}.image-header .page-heading{min-width:0}}
.theme-toggle{position:fixed;right:145px;top:20px;z-index:100;background:var(--paper);color:#111;border:2px solid #111;padding:.8rem 1rem;font:500 .875rem var(--mono);box-shadow:4px 4px var(--blue);cursor:pointer}.footer-brand{display:flex;align-items:center;gap:1rem}.footer-logo{width:90px;height:90px;object-fit:contain;filter:none}.hero-image img{object-position:62% center}.hero-copy h1{position:relative;z-index:2}.editor-nav-link{font:.875rem var(--mono)}
:root[data-theme=light]{--ink:#f2efe8;--muted:#565752;--line:#1b1b1b29;--paper:#f0e8da;color-scheme:light}
[data-theme=light] body{color:#17181a;background:linear-gradient(90deg,transparent 49.9%,#00000004 50%,transparent 50.1%),var(--ink)}
[data-theme=light] .home-hero{background:#f2efe8}[data-theme=light] .hero-side{background:linear-gradient(145deg,#e4e2dc,#efede7)}[data-theme=light] .hero-image:after{background:linear-gradient(90deg,#f2efe866,transparent 40%)}
[data-theme=light] .paper{background:#e8e3d8}[data-theme=light] .btn{border-color:#26344a70;color:#17243b}[data-theme=light] .btn.primary{background:var(--blue);border-color:var(--blue);color:#fff}[data-theme=light] .btn:hover{background:#a84e21;color:white}
[data-theme=light] .card{background:linear-gradient(145deg,#fffefa,#eae7df)}[data-theme=light] input,[data-theme=light] select{background:#fffefa;color:#18202a;border-color:#26344a55;color-scheme:light}[data-theme=light] .detail-search{background:#e8e5dd}[data-theme=light] .detail-search input,[data-theme=light] .detail-search select{background:#fffefa}
[data-theme=light] .pill{color:#50514d}[data-theme=light] .reset{color:#17243b}[data-theme=light] .prose .question{background:#e4e0d6;color:#1b2737}[data-theme=light] .essay-callout{color:#f0e8da}[data-theme=light] .essay-callout .eyebrow{color:#cbd4df}[data-theme=light] .essay-callout .textlink{color:#fff}[data-theme=light] .number{color:#98431a}[data-theme=light] .row:hover h3,[data-theme=light] .textlink:hover{color:#98431a}[data-theme=light] .card-image.essay-image{background:#e4e0d6}
[data-theme=light] .card-group .group-logo{background:#ece8df}[data-theme=light] .footer-logo{background:#080808}
@media(max-width:640px){.theme-toggle{top:14px;right:119px;font-size:.75rem;padding:.92rem .6rem}.wordmark{top:75px}.hero-copy{padding-top:11rem}[data-theme=light] .hero-copy p{color:#333a3d}[data-theme=light] .hero-image img{filter:grayscale(1) contrast(1.05) brightness(.9)}[data-theme=light] .hero-image:after{background:linear-gradient(0deg,#f2efe8 0%,#f2efe8eb 37%,#f2efe855 76%,#f2efe840 100%)}.image-header,.page-top{padding-top:8.5rem}.footer-logo{width:76px;height:76px}}
/* Architectural color panels, drawn separately from photograph filters. */
.shadow-host{position:relative}.picture-shadow{position:absolute;left:0;top:26%;width:42%;height:38%;background:#001B3D;border-right:2px solid #B65A2A;opacity:.62;z-index:1;pointer-events:none}.hero-side{isolation:isolate}.hero-side-shadow{z-index:-1}.hero-photo-shadow{display:none}.hero-side:before{content:'';position:absolute;inset:0;z-index:-2;background:linear-gradient(135deg,transparent 0 48%,#ffffff04 48% 52%,transparent 52%)}.hero-side .line,.hero-side p,.hero-side .vertical{position:relative;z-index:2}.hero-side .vertical{position:absolute}.shadow-host .caption{z-index:3}@media(max-width:1000px){.hero-photo-shadow{display:block}.hero-image .picture-shadow{z-index:1}.hero-image:after{z-index:2;pointer-events:none}}
@media(max-width:640px){.home-hero .hero-image.shadow-host{position:absolute;inset:0}}

.picture-crop{overflow:hidden;isolation:isolate}.picture-crop>img{will-change:transform}

/* Partner marks stay in their original colors in both themes. */
.brand-lockup{display:flex;align-items:center;gap:1.15rem;min-width:0}
.brand-lockup>h2,.brand-lockup>h3,.brand-lockup>.eyebrow{margin:0;min-width:0}
.brand-lockup>.brand-logo,.leader-brand{width:112px;height:112px;flex:0 0 112px;object-fit:contain;filter:none!important;background:#f0e8da;padding:4px}
.page-heading>.brand-lockup{margin-bottom:1.5rem}
.article-body>.brand-lockup{margin:2rem 0 1rem}
.leader-brand{margin:1rem 0}
.card-group .group-logo{width:76px;height:76px;flex:0 0 76px;background:#f0e8da;filter:none!important}
@media(max-width:640px){.brand-lockup{gap:.75rem}.brand-lockup>.brand-logo,.leader-brand{width:80px;height:80px;flex-basis:80px}.brand-lockup>h3{font-size:1.6rem}.card-group .group-logo{width:64px;height:64px;flex-basis:64px}}

.free-text{font:inherit;color:inherit;line-height:1.5}.free-picture{display:block;max-width:none!important;filter:none}.free-item{touch-action:none}body:has([data-free-created]) main{isolation:isolate}

/* Keep the theme control quiet and in the footer. */
body:not(.editor-body) footer .theme-toggle{position:static;display:inline-block;justify-self:start;right:auto;top:auto;z-index:auto;border:0;background:transparent;color:inherit;box-shadow:none;padding:.25rem 0;font:400 .875rem var(--sans);text-decoration:underline;text-underline-offset:3px;min-height:32px}
/* One photo-relative reference rectangle at all breakpoints. */
.hero-side-shadow{display:none!important}.hero-photo-shadow{display:block!important}.hero-image .picture-shadow{z-index:3}.picture-shadow[hidden]{display:none!important}

/* ---------- Resource filters: room for the search box at desktop widths ---------- */
@media (min-width: 1251px) {
  .shared-search .filters { grid-template-columns: minmax(240px, 2fr) repeat(4, minmax(0, 1fr)) auto; }
}

/* ---------- Contact page ---------- */
.contact-layout { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(300px, 1fr); gap: 4vw; padding: 2rem 4vw 6rem; align-items: start; }
.contact-form, .form-success { grid-column: 1; min-width: 0; }
.contact-aside { grid-column: 2; grid-row: 1 / span 2; position: sticky; top: 2rem; display: grid; gap: 1rem; }
.contact-aside .paper { padding: 2.5rem 2.2rem; }
.contact-aside h3 { font-size: 1.8rem; margin: 2rem 0 .8rem; }
.contact-aside p { margin: .6rem 0; }
.aside-photo { margin: 0; height: 260px; min-height: 0; }
.next-steps { list-style: none; counter-reset: step; margin: 0; padding: 0; }
.next-steps li { counter-increment: step; position: relative; padding: 0 0 1.1rem 2.6rem; color: #4b4944; line-height: 1.6; }
.next-steps li::before { content: "0" counter(step); position: absolute; left: 0; top: .1rem; font: .8rem var(--mono); color: #98431a; }
.next-steps strong { display: block; color: #181818; font-weight: 500; }
.email-line a { padding: 0; overflow-wrap: anywhere; }

.form-step { border: 0; border-top: 1px solid var(--line); margin: 0; padding: 2.4rem 0; min-width: 0; }
fieldset.form-step:first-of-type { border-top: 0; padding-top: 1rem; }
.form-step > legend { float: left; width: 100%; padding: 0; margin: 0 0 1.4rem; font: 400 2.1rem/1.1 var(--serif); color: var(--paper); }
.form-step > legend + * { clear: both; }
.step { display: block; font: 400 .875rem/1.6 var(--mono); letter-spacing: .12em; color: #d38a5f; margin-bottom: .6rem; }
.field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 1.5rem; margin-bottom: 1.2rem; }
.field { display: grid; gap: .5rem; align-content: start; min-width: 0; }
.field.narrow { max-width: 420px; margin-top: 1.4rem; }
.field-label, .field > label { font: 400 .875rem/1.6 var(--mono); color: var(--muted); }
.field-label { display: block; margin-bottom: .5rem; }
.tag { font-size: .75rem; letter-spacing: .06em; text-transform: uppercase; color: #8d8a84; margin-left: .4rem; }
.hint { font-size: .95rem; margin: 0 0 1rem; }
.group-label { font: 400 .8rem/1.6 var(--mono); text-transform: uppercase; letter-spacing: .12em; margin: 1.6rem 0 .8rem; color: var(--muted); }
.form-step textarea { display: block; width: 100%; min-height: 190px; resize: vertical; border-radius: 0; border: 1px solid #ffffff4a; background: #171719; color: var(--paper); padding: .9rem; font: 1rem/1.65 var(--sans); }
.form-step textarea:focus-visible { outline: 3px solid #e99460; outline-offset: 5px; }
.field-foot { display: flex; justify-content: space-between; gap: 1rem; align-items: start; margin-top: .7rem; }
.field-foot .hint { margin: 0; }
.count { white-space: nowrap; }
.contact-form input[type=date], .contact-form input[type=time] { color-scheme: dark; }

/* Choices: real checkboxes and radio buttons, shown as toggles */
.chip-group { display: flex; flex-wrap: wrap; gap: .55rem; border: 0; margin: 0; padding: 0; min-width: 0; }
.chip { position: relative; display: inline-flex; }
.chip input { position: absolute; inset: 0; width: 100%; height: 100%; min-height: 0; margin: 0; padding: 0; opacity: 0; cursor: pointer; }
.chip span { display: inline-flex; align-items: center; gap: .6rem; min-height: 46px; padding: .6rem 1rem; border: 1px solid #ffffff4a; font: 400 .875rem/1.3 var(--mono); color: var(--paper); transition: background .15s, border-color .15s; }
.chip span::before { content: ""; flex: none; width: .8rem; height: .8rem; border: 1px solid currentColor; opacity: .7; }
.chip input[type=radio] + span::before { border-radius: 50%; }
.chip:hover span { border-color: var(--orange); }
.chip input:checked + span { background: var(--paper); border-color: var(--paper); color: var(--ink); box-shadow: inset 3px 0 var(--orange); }
.chip input:checked + span::before { background: var(--orange); border-color: var(--orange); opacity: 1; }
.chip input:focus-visible + span { outline: 3px solid #e99460; outline-offset: 3px; }
.chip-soft span { border-style: dashed; }
.days { margin-bottom: .6rem; }

/* Suggest a training time */
.schedule-step > .hint { margin: .9rem 0 0; }
.schedule > summary { list-style: none; gap: 1.4rem; cursor: pointer; }
.schedule > summary::-webkit-details-marker { display: none; }
.schedule-toggle .plus { display: inline-block; font-size: 1.2rem; line-height: 1; transition: transform .2s; }
.schedule[open] > .schedule-toggle { background: var(--paper); color: var(--ink); border-color: var(--paper); }
.schedule[open] > .schedule-toggle .plus { transform: rotate(45deg); }
.schedule-panel { margin-top: 1.4rem; padding: 1.8rem; border: 1px solid var(--line); border-left: 3px solid var(--orange); background: #141416; }
.schedule-panel .sub { border: 0; margin: 0 0 1.8rem; padding: 0; min-width: 0; }
.schedule-panel .sub > legend { padding: 0; margin-bottom: .9rem; font: 400 .8rem/1.6 var(--mono); text-transform: uppercase; letter-spacing: .12em; color: var(--muted); }
.group-size { margin: -.6rem 0 1.8rem; }
.slots { display: grid; gap: 1rem; }
.slot { display: grid; grid-template-columns: 5.5rem 1fr 1fr auto; gap: .8rem; align-items: end; }
.slot-num, .slot .remove-slot { padding-bottom: .9rem; }
.slot .remove-slot { justify-self: start; }
.add-slot { margin-top: .6rem; padding-left: 0; }

.hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }

/* Sending, problems, and the confirmation */
.form-submit { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.5rem; padding-top: 2.4rem; border-top: 1px solid var(--line); }
.form-submit .meta { margin: 0; }
.form-submit .btn[disabled] { opacity: .6; cursor: wait; }
.form-errors { border: 1px solid #e07a5f; border-left: 6px solid #e07a5f; background: #2a1713; padding: 1.1rem 1.4rem; margin-bottom: 1rem; }
.form-errors p { margin: 0 0 .4rem; color: var(--paper); font-weight: 500; }
.form-errors ul { margin: 0; padding-left: 1.2rem; }
.form-errors a { text-decoration: underline; color: #f3b49b; }
.field-error { font: .8rem/1.5 var(--mono); color: #f3b49b; margin: .1rem 0 0; }
.contact-form [aria-invalid=true] { border-color: #e07a5f !important; }
.form-success { border: 1px solid var(--line); border-left: 3px solid var(--orange); padding: 3rem; background: #141416; }
.form-success h2 { font-size: clamp(2.4rem, 4vw, 3.6rem); }
.form-success dl { display: grid; grid-template-columns: max-content 1fr; gap: .5rem 1.5rem; margin: 1.5rem 0 0; font-size: .95rem; }
.form-success dt { font: .8rem/1.9 var(--mono); color: var(--muted); text-transform: uppercase; letter-spacing: .08em; }
.form-success dd { margin: 0; color: var(--paper); white-space: pre-wrap; overflow-wrap: anywhere; }
.preview-note { border-left: 2px solid var(--orange); padding-left: .8rem; }

[data-theme=light] .form-step > legend { color: #17181a; }
[data-theme=light] .step { color: #98431a; }
[data-theme=light] .tag { color: #6d6d68; }
[data-theme=light] .form-step textarea { background: #fffefa; color: #18202a; border-color: #26344a55; }
[data-theme=light] .contact-form input[type=date], [data-theme=light] .contact-form input[type=time] { color-scheme: light; }
[data-theme=light] .chip span { border-color: #26344a55; color: #17181a; }
[data-theme=light] .chip input:checked + span { background: var(--blue); border-color: var(--blue); color: #fff; }
[data-theme=light] .schedule[open] > .schedule-toggle { background: var(--blue); border-color: var(--blue); color: #fff; }
[data-theme=light] .schedule-panel, [data-theme=light] .form-success { background: #e8e3d8; }
[data-theme=light] .form-success dd { color: #17181a; }
[data-theme=light] .form-errors { background: #f6e2dc; }
[data-theme=light] .form-errors p { color: #5a1e10; }
[data-theme=light] .form-errors a, [data-theme=light] .field-error { color: #9c3416; }

@media (max-width: 1000px) {
  .contact-layout { grid-template-columns: 1fr; }
  .contact-aside { grid-column: 1; grid-row: auto; position: static; }
}
@media (max-width: 640px) {
  .contact-layout { padding: 1rem 1.2rem 3rem; }
  .field-row { grid-template-columns: 1fr; }
  .form-step > legend { font-size: 1.8rem; }
  .schedule-panel { padding: 1.2rem; }
  .slot { grid-template-columns: 1fr; gap: .6rem; }
  .slot-num, .slot .remove-slot { padding: 0; }
  .schedule-toggle, .form-submit .btn { width: 100%; }
  .form-success { padding: 2rem 1.2rem; }
  .form-success dl { grid-template-columns: 1fr; gap: .2rem; }
  .form-success dd { margin-bottom: .6rem; }
  .field-foot { display: block; }
  .count { display: block; margin-top: .4rem; }
}

/* ---------- Editor preview only ---------- */
.editor-preview-badge { position: fixed; left: 0; bottom: 0; z-index: 200; background: #b65a2a; color: #fff; padding: 6px 12px; font: 12px var(--mono); pointer-events: none; }
.free-editing [data-free-id] { cursor: move; outline: 1px dashed #b65a2a99; outline-offset: 2px; touch-action: none; }
.free-editing [data-free-id]:hover, .free-editing .free-selected { outline: 2px solid #b65a2a; outline-offset: 3px; }
.free-dragging { opacity: .85; }
.free-picture { object-fit: cover; }

/* ---------- Phone polish ---------- */
.caption { text-shadow: 0 1px 3px #000c; }
@media (max-width: 640px) {
  /* On phones the opening photo sits behind the text, so its accent panel is hidden there. */
  .home-hero .hero-photo-shadow { display: none !important; }
  footer nav { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.2rem; margin-top: 1.2rem; }
  footer nav a { padding: .6rem 0; border-bottom: 1px solid var(--line); }
  body:not(.editor-body) footer .theme-toggle { margin-top: .8rem; min-height: 44px; }
  .wordmark { padding: 10px 0; margin-top: -10px; }
  .card-links a, .card-leaders a { display: inline-block; padding: .3rem 0; }
  .article-rail a { padding: .55rem 0; }
}
