@font-face{font-family:'B612';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/b612-normal-400.87913e8a.woff2) format('woff2')}
@font-face{font-family:'B612';font-style:normal;font-weight:700;font-display:swap;src:url(/assets/fonts/b612-normal-700.4fc7b11c.woff2) format('woff2')}
@font-face{font-family:'B612 Mono';font-style:normal;font-weight:400;font-display:swap;src:url(/assets/fonts/b612-mono-normal-400.914811b1.woff2) format('woff2')}
@font-face{font-family:'Literata';font-style:normal;font-weight:400 600;font-display:swap;src:url(/assets/fonts/literata-normal-400.ddbd6799.woff2) format('woff2')}
@font-face{font-family:'Literata';font-style:italic;font-weight:400;font-display:swap;src:url(/assets/fonts/literata-italic-400.9c7215d1.woff2) format('woff2')}
:root{--abyss:#081818;--teal:#33706d;--teal-deep:#245955;--paper:#f2f5f4;--ink:#14201f;--muted:#4b5c59;--rule:#d6dfdd;--signal:#ce0829;
--display:'B612',system-ui,sans-serif;--body:'Literata',Georgia,serif;--mono:'B612 Mono',ui-monospace,monospace}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:var(--ink);font:400 18px/1.65 var(--body)}
img{max-width:100%;height:auto}
a{color:var(--teal-deep);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--ink)}
:focus-visible{outline:2px solid var(--signal);outline-offset:2px}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px}
.skip{position:absolute;left:-999px;top:0;background:#fff;padding:8px 12px;z-index:9}
.skip:focus{left:8px}
/* header: the firm's own wordmark */
.head{background:#fff;border-bottom:1px solid var(--rule)}
.head .wrap{display:flex;align-items:center;justify-content:space-between;gap:16px 32px;padding-top:12px;padding-bottom:12px;flex-wrap:wrap}
.brand{display:block;line-height:0}
.brand img{width:300px;height:auto}
.nav{display:flex;flex-wrap:wrap;gap:4px 26px;margin:0;padding:0;list-style:none}
.nav a{display:block;padding:10px 0 8px;font:400 15px/1.2 var(--display);color:var(--ink);text-decoration:none;border-bottom:2px solid transparent}
.nav a:hover{color:var(--teal-deep);border-bottom-color:var(--rule)}
.nav a[aria-current=page]{border-bottom-color:var(--signal)}
/* signature: the logo's measurement grid and line graph, at full width */
.band{position:relative;overflow:hidden;color:#fff;background-color:var(--teal);
background-image:linear-gradient(rgba(255,255,255,.15) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px);
background-size:32px 32px;background-position:-1px -1px}
.band .trace{position:absolute;left:0;bottom:20px;width:100%;height:84px;pointer-events:none}
.band .trace polyline{fill:none;stroke:#fff;stroke-width:2.5;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.band .wrap{position:relative;padding-top:68px;padding-bottom:144px}
.eyebrow{margin:0;font:400 13px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase}
.band .eyebrow{color:rgba(255,255,255,.88)}
.band h1{margin:.45em 0 .35em;max-width:17ch;font:700 clamp(32px,5.2vw,56px)/1.08 var(--display);letter-spacing:-.01em}
.band .lead{margin:0;max-width:46ch;font-size:20px;line-height:1.55;color:rgba(255,255,255,.94)}
.band--page .wrap{padding-top:48px;padding-bottom:120px}
.band--page h1{font-size:clamp(28px,4.2vw,44px);max-width:22ch}
.band--page .trace{height:68px;bottom:16px}
/* 2005 home page */
.splash{background:var(--abyss);color:#d5e2df}
.splash .wrap{display:grid;grid-template-columns:minmax(0,674px) minmax(0,1fr);gap:24px 44px;align-items:center;padding-top:40px;padding-bottom:40px}
.splash img{display:block;width:100%;max-width:674px}
.splash .eyebrow{color:#8fb3ad}
.splash p{margin:.6em 0 0;font-size:17px;line-height:1.6}
/* sections */
.sec{padding:64px 0}
.sec--paper{background:var(--paper)}
.sec h2{margin:0 0 .55em;font:700 28px/1.2 var(--display);letter-spacing:-.005em}
.sec .eyebrow{color:var(--teal-deep);margin-bottom:10px}
.lede{max-width:62ch;margin:0 0 1.2em;color:var(--muted)}
.disc{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:28px 0 0;padding:0;list-style:none}
.disc li{border-top:3px solid var(--teal);padding-top:14px}
.disc h3{margin:0 0 6px;font:700 18px/1.3 var(--display)}
.disc h3 a{color:var(--ink);text-decoration:none}
.disc h3 a:hover{color:var(--teal-deep);text-decoration:underline}
.disc p{margin:0;font-size:16px;line-height:1.55;color:var(--muted)}
.also{margin:24px 0 0;font-size:16px;color:var(--muted)}
/* archival photos: shown at their own size or smaller, never enlarged */
.plates{display:flex;flex-wrap:wrap;gap:28px 24px;align-items:flex-end;margin:28px 0 0}
.plates figure{margin:0;flex:0 1 auto}
.plates img{display:block;border:1px solid var(--rule);background:#fff}
.plates figcaption{margin-top:8px;font-size:15px;line-height:1.45;color:var(--muted)}
.note{margin:18px 0 0;font-size:15px;line-height:1.5;color:var(--muted)}
/* illustrations: quiet 3:2 pictures, the caption says what they are */
.ill{margin:0}
.ill picture,.splash-fig picture{display:block}
.ill img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:1px solid var(--rule);background:var(--paper)}
.ill figcaption{margin-top:8px;font-size:15px;line-height:1.45;color:var(--muted)}
.ill .label{font:400 11px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep);margin-right:6px}
.stack{display:grid;gap:22px}
.gallery{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:28px}
.svc-head .ill,.svc-head .plates{margin-top:18px}
.splash-fig{margin:28px 0 0;background:var(--abyss)}
.splash-fig img{display:block;width:100%;max-width:674px;margin:0 auto}
.splash-fig figcaption{padding:10px 14px;font:400 12px/1.5 var(--mono);color:#8fb3ad}
.article .ill{margin:1.6em 0 0}
/* stage 2: service sentences, dated notes, criteria table, contents, related links */
.svc-intro{margin:0 0 14px;max-width:62ch}
.cert .cert-note{margin-top:.8em;font-size:15px;color:var(--muted)}
.related{margin:28px 0 0;padding-top:16px;border-top:1px solid var(--rule);font-size:16px;color:var(--muted)}
.article .lead-in{font-weight:600}
.datenote{margin:1.4em 0 0;padding:12px 16px;background:var(--paper);border-left:3px solid var(--teal);font-size:16px;line-height:1.55}
.tbl{overflow-x:auto;margin:1.4em 0 0}
.cmp{width:100%;border-collapse:collapse;font-size:15px;line-height:1.45}
.cmp caption{text-align:left;margin-bottom:8px;font:400 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep)}
.cmp th,.cmp td{padding:8px 10px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}
.cmp thead th{font:700 14px/1.3 var(--display);border-bottom:2px solid var(--teal)}
.cmp tbody th{font-weight:600}
.toc{margin:1.8em 0 0;padding:18px 20px;border:1px solid var(--rule)}
.toc .eyebrow{color:var(--teal-deep);margin:0 0 8px}
.toc ol{margin:0;padding-left:22px;font-size:16px;line-height:1.5}
.toc li{margin:.25em 0}
.toc p{margin:10px 0 0;font-size:16px}
/* home: tile sentences, interview quote; clients intro */
.tile a{color:inherit;text-decoration:none;display:block}
.tile a:hover figcaption{color:var(--ink)}
.tile a:hover img{border-color:var(--teal)}
.tile p{margin:8px 0 0;font-size:15px;line-height:1.5;color:var(--ink)}
.pull{margin:20px 0 0;padding:2px 0 2px 18px;border-left:3px solid var(--teal)}
.pull p{margin:0;font-style:italic;font-size:18px;line-height:1.55}
.pull footer{margin-top:6px;font:400 12px/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--teal-deep)}
.split .note{max-width:62ch}
.clients-intro{max-width:70ch;margin:0 0 28px}
/* classroom criteria: the grid at small scale */
.split{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:40px;align-items:start}
.criteria{margin:0;border:1px solid var(--rule);background-color:#fff;
background-image:linear-gradient(rgba(51,112,109,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(51,112,109,.10) 1px,transparent 1px);
background-size:24px 24px;padding:20px 22px}
.criteria .eyebrow{margin:0 0 12px}
.criteria dl{margin:0}
.criteria div{padding:10px 0;border-top:1px solid var(--rule)}
.criteria dt{font:700 30px/1.15 var(--display);color:var(--teal-deep);letter-spacing:-.01em}
.criteria dd{margin:4px 0 0;font-size:15px;line-height:1.5;color:var(--ink)}
.more{display:inline-block;margin-top:18px;font:700 15px/1.2 var(--display)}
.clientline{max-width:70ch;margin:0}
/* services */
.svc{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:12px 48px;padding:36px 0;border-top:1px solid var(--rule)}
.svc:first-child{border-top:0;padding-top:0}
.svc h2{margin:0;font:700 24px/1.25 var(--display)}
.svc ul{margin:0;padding:0;list-style:none}
.svc > div > ul{columns:2;column-gap:36px}
.svc li{break-inside:avoid;padding:3px 0 3px 18px;position:relative}
.svc li::before{content:'';position:absolute;left:0;top:.82em;width:9px;height:2px;background:var(--teal)}
.svc li ul{margin:4px 0 6px}
.svc li li{font-size:16px;color:var(--muted)}
.svc li li::before{width:5px;background:var(--rule)}
.svc .solo{margin:0;color:var(--muted)}
.svc--long > div > ul{columns:2}
/* clients */
.groups{columns:3;column-gap:40px;margin:8px 0 0}
.group{break-inside:avoid;margin:0 0 28px}
.group h2{margin:0 0 6px;font:400 13px/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--teal-deep)}
.group ul{margin:0;padding:0;list-style:none}
.group li{padding:3px 0;border-bottom:1px solid var(--rule)}
/* about */
.cert{margin:0;padding:22px 24px;border-left:4px solid var(--teal);background:var(--paper)}
.cert p{margin:0 0 .6em}
.cert p:last-child{margin:0}
.prose{max-width:70ch}
.prose h2{margin:1.8em 0 .4em;font:700 22px/1.3 var(--display)}
.prose ul{padding-left:20px}
/* interview */
.article{max-width:700px}
.article .intro p{font-size:20px;line-height:1.6}
.article h2{margin:2em 0 .5em;font:700 21px/1.35 var(--display)}
.article blockquote{margin:1.2em 0;padding:4px 0 4px 20px;border-left:3px solid var(--teal);color:var(--ink)}
.article ul{padding-left:22px}
.article li{margin:.3em 0}
.article hr{border:0;border-top:1px solid var(--rule);margin:2.4em 0}
a.term{color:inherit;text-decoration:underline;text-decoration-color:var(--teal);text-decoration-thickness:2px}
.gloss{margin:0}
.gloss div{padding:14px 0;border-top:1px solid var(--rule)}
.gloss dt{font:700 17px/1.3 var(--display)}
.gloss dd{margin:6px 0 0;font-size:17px}
.gloss div:target{background:var(--paper)}
/* footer */
.foot{background:var(--abyss);color:#b9ccc8;padding:48px 0 40px;font-size:16px}
.foot .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px 48px;align-items:start}
.foot strong{display:block;font:700 19px/1.3 var(--display);color:#fff}
.foot p{margin:4px 0 0}
.foot ul{display:flex;flex-wrap:wrap;gap:6px 22px;margin:0;padding:0;list-style:none}
.foot a{color:#d5e2df}
.foot a:hover{color:#fff}
.foot ul a{display:inline-block;padding:10px 0}
.foot .small{grid-column:1/-1;margin:8px 0 0;padding-top:18px;border-top:1px solid #1d3331;font:400 12px/1.6 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:#8fb3ad}
@media (max-width:980px){.foot .wrap{grid-template-columns:minmax(0,1fr)}.disc{grid-template-columns:repeat(2,minmax(0,1fr))}.groups{columns:2}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
.splash .wrap{grid-template-columns:minmax(0,1fr)}.split{grid-template-columns:minmax(0,1fr)}}
@media (max-width:760px){body{font-size:17px}.nav a{padding:13px 0 11px}.brand img{width:240px}.head .wrap{padding-top:10px;padding-bottom:4px}
.band .wrap{padding-top:44px;padding-bottom:112px}.band .lead{font-size:18px}.band--page .wrap{padding-top:36px;padding-bottom:96px}.band .trace{height:58px;bottom:16px}
.sec{padding:48px 0}.svc{grid-template-columns:minmax(0,1fr)}.svc > div > ul{columns:1}
.foot .wrap{grid-template-columns:minmax(0,1fr)}.article .intro p{font-size:18px}}
@media (max-width:560px){.cmp thead{display:none}.cmp tr{display:block;padding:10px 0;border-bottom:1px solid var(--rule)}
.cmp th,.cmp td{display:block;border:0;padding:2px 0}.cmp td::before{content:attr(data-label) ": ";font-weight:600}
.disc{grid-template-columns:minmax(0,1fr)}.groups{columns:1}.gallery{grid-template-columns:minmax(0,1fr)}.wrap{padding:0 16px}.band .wrap{padding-left:16px;padding-right:16px}}
