/* scalar-system.css — shared layer, loaded after each page's inline styles.
   type system · ornament cut · button + field system · notices · reveals ·
   slate/cream section tones · rail outline · mobile chrome · tablet tier · print */

/* 1. tokens + type */
:root{--content-max:1240px;--serif:'Instrument Serif',Georgia,'Times New Roman',serif;--sans:'Instrument Sans',system-ui,-apple-system,sans-serif;--mono:'JetBrains Mono',ui-monospace,monospace;--slate-deep:#232B2B}
body{font-family:var(--sans);font-size:clamp(16px,.95vw,18px);color:var(--slate);text-rendering:optimizeLegibility}
body::before{display:none}
::selection{background:var(--cream-dark);color:var(--slate)}
h1,h2,h3{font-family:var(--serif);font-weight:400;letter-spacing:-.008em;text-wrap:balance}
h1{line-height:1.02}
h2{font-size:clamp(1.9rem,3vw,2.6rem);line-height:1.08}
.hero + section h2{font-size:clamp(2.2rem,3.6vw,3rem);line-height:1.06}
h3{font-size:1.5rem;line-height:1.2}
h4{font-family:var(--sans);font-weight:500;letter-spacing:-.005em}
.hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.6rem,4.6vw,4.2rem);letter-spacing:-.012em;line-height:1.02;max-width:16ch}
.serif-accent{font-family:var(--serif);font-style:italic;font-weight:400;letter-spacing:-.005em}
.hero .serif-accent{font-size:1em}
p{color:var(--slate-light);text-wrap:pretty}
.lede{font-weight:400;color:var(--slate-light)}
.illus-caption{color:var(--muted)}
.rail .nav-link .name,.btn,.btn-ghost,.rail-foot .rf-cta{font-family:var(--sans)}
/* functional labels: 11px floor */
.eyebrow,.sec-num,.p-num,.pa-num,.s-num,.m-tag,.pr-num,.tt-eyebrow,.tt-role,.att-title,.exp-tag,.brand-tag,.ind-tag,.pc-meta,.pc-role,.t-eyebrow,.tt-link,.inline-cta,.pc-go,.meta-strip,.toc .toc-title,.rail .nav-link .num,.hero .kicker,.brand-affil-note,.msheet-sec-label,.mbar-toggle{font-family:var(--mono);font-size:11px;letter-spacing:.18em}
form.contact-form label,.field label,.contact-info dt,.att-meta dt,.info-row dt,.compare tbody th,.compare thead th,.rail-foot .rf-status,.ci-steps li b{font-family:var(--mono);font-size:11px;letter-spacing:.16em}
.principle .pr-num{font-size:11px;letter-spacing:.18em;margin-bottom:16px}
footer{font-size:11px;letter-spacing:.18em}
.foot-disc{flex-basis:100%;text-transform:none;letter-spacing:.01em;font-family:var(--sans);font-size:12px;line-height:1.7;color:var(--muted);margin-top:10px;padding-top:18px;border-top:1px solid var(--hairline-faint);max-width:none;columns:2;column-gap:44px}
@media (max-width:760px){.foot-disc{columns:1}}
.nowrap{white-space:nowrap}

/* 2. ornament cut: no noise, no ruler, no caps, no crop marks, no lifts */
.page::after,.illus-block::after,.hero-illus::after,.pa::after,.pillar::after,.principle::after{display:none!important;content:none!important}
.pa::before{content:none!important;display:none!important}
.btn:hover,.btn-ghost:hover,.pa:hover,.principle:hover,.pillar:hover{transform:none;box-shadow:none}
.pa{cursor:default}
.pa:hover{background:transparent}
.illus-block svg path[stroke="#F04A2C"][fill="none"],.hero-vis svg path[stroke="#F04A2C"][fill="none"],.hero-illus svg path[stroke="#F04A2C"][fill="none"]{filter:none}
[data-parallax]{transform:none!important}
.tt-photo::after{display:none}

/* 3. spine register node (kept) */
.page .frame{position:relative}
.page .frame::after{content:'';position:absolute;top:-4.5px;left:calc(var(--gutter) + 28px);width:9px;height:9px;transform:translateX(-50%);background:var(--cream);border:2px solid var(--orange);pointer-events:none;z-index:2}
section.section-slate .frame::after{background:var(--slate)}
section.section-cream-dark .frame::after{background:var(--cream-dark)}

/* 4. buttons: one primary (slate), one secondary (ghost); orange only as the arrow */
.btn{display:inline-flex;align-items:center;gap:12px;padding:14px 22px;background:var(--slate)!important;color:var(--cream)!important;border:none!important;font-size:14px;font-weight:500;letter-spacing:.005em;cursor:pointer;transition:background 160ms,color 160ms}
.btn:hover{background:var(--slate-deep)!important;color:var(--cream)!important}
.btn .arrow{transition:transform 180ms cubic-bezier(.22,.61,.36,1)}
.btn:hover .arrow{transform:translateX(3px)}
.btn-ghost,.btn.btn-ghost{background:transparent!important;color:var(--slate)!important;border:1px solid var(--hairline-strong)!important;padding:13px 21px}
.btn-ghost:hover,.btn.btn-ghost:hover{background:var(--slate)!important;color:var(--cream)!important;border-color:var(--slate)!important}
.btn-ghost .arrow{color:var(--orange);transition:transform 180ms cubic-bezier(.22,.61,.36,1)}
.btn-ghost:hover .arrow{color:var(--cream);transform:translateX(3px)}
.tail-cta .btn{background:var(--cream)!important;color:var(--slate)!important}
.tail-cta .btn:hover{background:var(--cream-dark)!important;color:var(--slate)!important}
.inline-cta{display:inline-flex;align-items:center;gap:8px;font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--orange);border-bottom:1px solid var(--hairline-strong);padding-bottom:6px;transition:border-color 160ms}
.inline-cta:hover{border-bottom-color:var(--orange)}
.inline-cta .arrow{transition:transform 180ms}
.inline-cta:hover .arrow{transform:translateX(3px)}
.rail-foot .rf-cta{background:var(--slate);color:var(--cream)}
.rail-foot .rf-cta:hover{background:var(--slate-deep)}
.rail-foot .rf-arrow{color:var(--orange)}

/* 5. fields: one underline field, one marker beside the label */
form.contact-form input,form.contact-form textarea,form.contact-form select,.field input,.field select,.field textarea,select.f-select{width:100%;background:transparent!important;border:none!important;border-bottom:1px solid var(--hairline-strong)!important;border-radius:0;padding:8px 0 10px!important;font-family:var(--sans)!important;font-size:1rem!important;color:var(--slate);outline:none;transition:border-color 160ms,box-shadow 160ms}
.field select,form.contact-form select,select.f-select{appearance:none;-webkit-appearance:none;padding-right:24px!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath fill='%23303A3A' d='M0 0h10L5 6z'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 2px center!important}
form.contact-form input:focus,form.contact-form textarea:focus,form.contact-form select:focus,.field input:focus,.field select:focus,.field textarea:focus,select.f-select:focus{border-bottom-color:var(--orange)!important;box-shadow:0 1px 0 0 var(--orange);background:transparent!important}
.field label{display:block!important;justify-content:flex-start!important;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.field label .req{color:var(--orange);font-size:7px;vertical-align:3px;margin-left:6px}
.field{gap:0}
form .row{gap:22px;margin-bottom:22px}
.submit-row .privacy{max-width:34ch}
.contact-info dl>div{grid-template-columns:96px 1fr}
.ci-steps{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid rgba(234,229,218,.18)}
.ci-steps li{display:grid;grid-template-columns:96px 1fr;gap:14px;padding:12px 0;border-bottom:1px solid rgba(234,229,218,.1);font-size:.92rem;color:var(--cream)}
.ci-steps li b{font-weight:500;color:rgba(234,229,218,.55);text-transform:uppercase;padding-top:2px}
.contact-info dl{margin-top:0;border-top:none}

/* 6. notices: hairline frame + mono label; the text is RPC copy and stays verbatim */
.intake-warning,.notice,.home-form-status,.submitted-banner,.form-notice{background:transparent!important;border:1px solid var(--hairline-strong)!important;border-left-width:1px!important;padding:16px 18px!important;font-size:.88rem;line-height:1.6;color:var(--slate)!important;position:relative;max-width:none}
.intake-warning::before,.notice::before,.form-notice::before{content:'Notice';display:block;font-family:var(--mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.intake-warning strong,.notice strong{font-weight:500;color:var(--slate)}
.home-form-status,.submitted-banner{margin-top:20px}
.submitted-banner{display:none}.submitted-banner.show{display:block}

/* 7. reveals: one quiet move, no stagger */
.reveal,.reveal-up,.reveal-fade{opacity:0}
.reveal-up{transform:translateY(8px)}
.reveal.is-visible,.reveal-up.is-visible,.reveal-fade.is-visible{opacity:1;transform:none;transition:opacity 450ms cubic-bezier(.22,.61,.36,1),transform 450ms cubic-bezier(.22,.61,.36,1)}
.illus-block[data-illus] svg circle,.illus-block[data-illus] svg rect[fill="#F04A2C"],.hero-vis[data-illus] svg circle,.hero-vis[data-illus] svg rect[fill="#F04A2C"],.hero-illus[data-illus] svg circle,.hero-illus[data-illus] svg rect[fill="#F04A2C"]{opacity:0;transition:opacity 320ms ease-out}
.illus-block[data-illus].is-drawn svg circle,.illus-block[data-illus].is-drawn svg rect[fill="#F04A2C"],.hero-vis[data-illus].is-drawn svg circle,.hero-vis[data-illus].is-drawn svg rect[fill="#F04A2C"],.hero-illus[data-illus].is-drawn svg circle,.hero-illus[data-illus].is-drawn svg rect[fill="#F04A2C"]{opacity:1}

/* 8. illustration frames: drawings cropped to content via viewBox; no height caps */
.hero-vis{margin:0!important}
.hero-vis svg,.illus-block svg,.hero-illus svg{max-height:none;width:100%;height:auto}
.illus-block{padding:28px 36px 24px}
.illus-block.has-img{padding:0;overflow:hidden;background:var(--cream)}
.illus-block.has-img img,.hero-vis.has-img img{display:block;width:100%;height:auto}
.hero-vis.has-img{margin:0 -24px 0 -8px!important}
section.section-slate .illus-block.has-img{background:var(--cream);border-color:rgba(234,229,218,.16)}

/* 9. section tones */
section.section-cream-dark{background:var(--cream-dark)}
section.section-slate{background:var(--slate);color:var(--cream);border-bottom:1px solid rgba(234,229,218,.08)}
section.section-slate h1,section.section-slate h2,section.section-slate h3,section.section-slate h4{color:var(--cream)}
section.section-slate p,section.section-slate .lede{color:rgba(234,229,218,.8)}
section.section-slate .eyebrow{color:rgba(234,229,218,.6)}
section.section-slate .sec-num .of{color:rgba(234,229,218,.45)}
section.section-slate .illus-block{background:rgba(234,229,218,.04);border-color:rgba(234,229,218,.16)}
section.section-slate .illus-block svg path[fill="#EAE5DA"],section.section-slate .hero-illus svg path[fill="#EAE5DA"]{fill:var(--slate)}
section.section-slate .illus-block svg path[stroke="#303A3A"][fill="#EAE5DA"],section.section-slate .hero-illus svg path[stroke="#303A3A"][fill="#EAE5DA"]{fill:rgba(234,229,218,.04);stroke:rgba(234,229,218,.55)}
section.section-slate .illus-block svg circle[fill="#EAE5DA"],section.section-slate .hero-illus svg circle[fill="#EAE5DA"]{fill:var(--slate)}
section.section-slate .illus-block svg line[stroke="#303A3A"],section.section-slate .hero-illus svg line[stroke="#303A3A"]{stroke:rgba(234,229,218,.35)}
section.section-slate .illus-caption{color:rgba(234,229,218,.6)}
section.section-slate .principle,section.section-slate .pa,section.section-slate .model,section.section-slate .pillar{border-color:rgba(234,229,218,.12);color:rgba(234,229,218,.85)}
section.section-slate .principle h4,section.section-slate .pa h4,section.section-slate .model h3,section.section-slate .pillar h4{color:var(--cream)}
section.section-slate .principle p,section.section-slate .pa p,section.section-slate .model p,section.section-slate .pillar p{color:rgba(234,229,218,.68)}
section.section-slate .principles,section.section-slate .practice{border-top-color:rgba(234,229,218,.16);border-left-color:rgba(234,229,218,.16)}
section.section-slate .models{border-color:rgba(234,229,218,.16)}
section.section-slate .model{border-right-color:rgba(234,229,218,.16)}
section.section-slate .model:last-child{background:transparent}
section.section-slate .model ul{border-top-color:rgba(234,229,218,.16)}
section.section-slate .model ul li{color:rgba(234,229,218,.78);border-bottom-color:rgba(234,229,218,.1)}
section.section-slate .model .m-sub{color:rgba(234,229,218,.5)}
section.section-slate .compare{background:var(--cream);color:var(--slate);border-color:rgba(234,229,218,.16)}
section.section-slate .compare tbody th{color:var(--muted)}
section.section-slate .compare tbody td{color:var(--slate-light)}
section.section-slate .inline-cta{color:var(--orange);border-bottom-color:rgba(234,229,218,.3)}
.compare-scroll{position:relative}
@media (max-width:960px){.compare-scroll::after{content:'';position:absolute;top:0;right:0;bottom:0;width:40px;background:linear-gradient(to right,rgba(234,229,218,0),var(--cream));pointer-events:none}}

/* 10. shared components used across pages */
.tail-cta{margin-top:48px;padding:32px 36px;background:var(--slate);color:var(--cream);display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap}
.tail-cta .t-text{max-width:48ch}
.tail-cta .t-eyebrow{color:rgba(234,229,218,.55);margin-bottom:8px;text-transform:uppercase}
.tail-cta h3{color:var(--cream);font-size:1.6rem}
.people-list{margin-top:40px;border-top:1px solid var(--hairline)}
.people-list .pl-row{display:grid;grid-template-columns:200px 1fr auto;gap:24px;align-items:baseline;padding:22px 0;border-bottom:1px solid var(--hairline);color:var(--slate);transition:color 160ms}
.people-list .pl-name{font-family:var(--serif);font-size:1.6rem;line-height:1.1}
.people-list .pl-line{font-size:.95rem;color:var(--slate-light)}
.people-list .pl-go{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--slate);white-space:nowrap}
.people-list .pl-go .arrow{display:inline-block;margin-left:8px;color:var(--orange);transition:transform 160ms}
.people-list .pl-row:hover .pl-go .arrow{transform:translateX(3px)}
.portrait img,.tt-photo img{filter:grayscale(1) contrast(1.04);object-position:50% 15%}
.portrait{aspect-ratio:4/5}
.att-id{display:none}
.hero-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:center}
.hero-portrait{max-width:380px;justify-self:end;width:100%}
.hero-grid .hero-portrait{align-self:start}
.pc-name{font-family:var(--serif);font-size:1.7rem;line-height:1.1;color:var(--slate)}
.pc-role{margin-top:6px;margin-bottom:14px;text-transform:uppercase;color:var(--orange)}
.person-card .pc-body{padding-top:24px}
.dir-links{display:flex;gap:6px 18px;flex-wrap:wrap;align-items:baseline;margin-top:24px;font-size:.9rem}
.dir-links .dir-label{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-right:4px}
.dir-links a{border:none!important;padding:0!important;font-family:var(--sans)!important;font-size:.9rem!important;letter-spacing:0!important;text-transform:none!important;color:var(--slate)!important;border-bottom:1px solid var(--hairline-strong)!important;transition:border-color 160ms,color 160ms}
.dir-links a:hover{background:transparent!important;color:var(--orange)!important;border-bottom-color:var(--orange)!important}
.brand-card .brand-mark{display:none}
.brand-card .brand-name{font-family:var(--serif);font-size:1.6rem;font-weight:400}
.model .m-sub{font-family:var(--mono);font-size:11px;letter-spacing:.16em}
.model .best-for{font-family:var(--sans);font-size:.92rem;letter-spacing:0;text-transform:none;color:var(--muted)}
.model .best-for .v{font-size:.95rem;letter-spacing:0;color:var(--slate);margin-top:4px}
.industry{display:flex;flex-direction:column;gap:6px}
.industry .ind-glyph{display:none}
.industry .ind-name{font-size:1rem}
.rail .nav-link.active .name{font-weight:500}

/* 11. rail outline + rail foot (built by JS) */
.rail-sub{list-style:none;margin:4px 0 10px 27px;padding:2px 0;border-left:1px solid var(--hairline)}
.rail-sub-link{display:grid;grid-template-columns:16px 1fr;column-gap:9px;align-items:baseline;padding:6px 16px;position:relative;color:var(--slate-light)}
.rail-sub-link::before{content:'';position:absolute;left:-1px;top:50%;width:6px;height:1px;background:var(--hairline-strong);transform:translateY(-50%);transition:width 160ms,height 160ms,background 160ms}
.rail-sub-link .rs-num{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--muted)}
.rail-sub-link .rs-name{font-size:11.5px;line-height:1.3;color:var(--slate-light)}
.rail-sub-link:hover .rs-name{color:var(--slate)}
.rail-sub-link:hover::before{width:9px;background:var(--orange)}
.rail-sub-link.current .rs-name{color:var(--slate);font-weight:500}
.rail-sub-link.current .rs-num{color:var(--orange)}
.rail-sub-link.current::before{width:11px;height:2px;background:var(--orange)}
.rail-foot{margin-top:auto;padding:20px 24px 24px;border-top:1px solid var(--hairline)}
.rail-foot .rf-cta{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 14px;font-size:12.5px;font-weight:500;transition:background 160ms}
.rail-foot .rf-arrow{transition:transform .2s ease}
.rail-foot .rf-cta:hover .rf-arrow{transform:translateX(3px)}

/* 12. focus */
a:focus-visible,.rail .nav-link:focus-visible,.rail-sub-link:focus-visible,footer .foot-r a:focus-visible,summary:focus-visible{outline:2px solid var(--orange);outline-offset:2px;border-radius:1px}
.btn:focus-visible,.btn-ghost:focus-visible,.mbar-toggle:focus-visible{outline:none;box-shadow:0 0 0 2px var(--cream),0 0 0 4px var(--orange)}
a:focus:not(:focus-visible),button:focus:not(:focus-visible){outline:none}

/* 13. responsive: hero stack ≤1100, stacked section marker + 2-col tier ≤960, phone ≤640 */
@media (max-width:1100px){.hero .hero-grid,.hero-grid{grid-template-columns:1fr!important;gap:36px!important}.hero-portrait{justify-self:start;max-width:340px}.hero-vis:not(.has-img) svg{max-height:340px}}
@media (min-width:961px){.mbar,.msheet,.msheet-scrim,.mcta{display:none!important}}
@media (max-width:960px){
:root{--mbar-h:54px}
.rail{display:none!important}
body{padding-top:calc(var(--mbar-h) + env(safe-area-inset-top,0px))}
body.msheet-open{overflow:hidden}
section[id]{scroll-margin-top:calc(var(--mbar-h) + env(safe-area-inset-top,0px) + 8px)}
.rail-sub,.page .frame::after,.page::before{display:none}
footer .foot-l{max-width:none}
.sec-grid{grid-template-columns:1fr!important;column-gap:0;row-gap:18px}
.sec-num{border-top:none;padding-top:0;display:inline-flex;align-items:center;gap:10px;width:max-content}
.sec-num::before{content:'';display:inline-block;width:28px;height:2px;background:var(--orange)}
.practice,.steps,.practice-grid,.people-grid{grid-template-columns:1fr 1fr!important}
.pillars,.principles{grid-template-columns:repeat(3,1fr)!important}
.industries{grid-template-columns:1fr 1fr!important}
.industry{border-right:1px solid var(--hairline-faint)!important;border-bottom:1px solid var(--hairline-faint)!important}
.industry:nth-child(2n){border-right:none!important}
.person-card{border-right:1px solid var(--hairline)!important;border-bottom:none!important}
.person-card:last-child{border-right:none!important}
.person-card .portrait{max-width:none}
.hero-portrait{max-width:340px}
.profile-split .portrait,.attorney .portrait{max-width:360px}
.mbar{display:flex;align-items:center;justify-content:space-between;position:fixed;top:0;left:0;right:0;height:calc(var(--mbar-h) + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 18px 0;background:var(--cream);border-bottom:1px solid var(--hairline);z-index:10001}
.mbar-logo{display:flex;align-items:center;height:100%}
.mbar-logo svg{height:22px;width:auto;display:block}
.mbar-toggle{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 2px 0 14px;margin-right:-2px;background:none;border:none;cursor:pointer;text-transform:uppercase;color:var(--slate);-webkit-tap-highlight-color:transparent}
.mbar-toggle-glyph{position:relative;width:20px;height:12px}
.mbar-toggle-glyph i{position:absolute;left:0;right:0;height:1.5px;background:var(--slate);transition:transform 240ms cubic-bezier(.22,.61,.36,1),opacity 160ms,background 160ms}
.mbar-toggle-glyph i:nth-child(1){top:1px}.mbar-toggle-glyph i:nth-child(2){top:5.5px}.mbar-toggle-glyph i:nth-child(3){top:10px}
body.msheet-open .mbar-toggle-glyph i:nth-child(1){transform:translateY(4.5px) rotate(45deg);background:var(--orange)}
body.msheet-open .mbar-toggle-glyph i:nth-child(2){opacity:0}
body.msheet-open .mbar-toggle-glyph i:nth-child(3){transform:translateY(-4.5px) rotate(-45deg);background:var(--orange)}
.mbar-progress{display:none}
.msheet-scrim{position:fixed;left:0;right:0;bottom:0;top:calc(var(--mbar-h) + env(safe-area-inset-top,0px));background:rgba(48,58,58,.34);opacity:0;transition:opacity 260ms ease;z-index:9999}
.msheet-scrim.show{opacity:1}
.msheet{position:fixed;left:0;right:0;top:calc(var(--mbar-h) + env(safe-area-inset-top,0px));max-height:calc(100vh - var(--mbar-h) - env(safe-area-inset-top,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;background:var(--cream);border-bottom:1px solid var(--hairline);z-index:10000;transform:translateY(-101%);transition:transform 320ms cubic-bezier(.22,.61,.36,1)}
.msheet.show{transform:translateY(0)}
.msheet-inner{padding:8px 22px calc(28px + env(safe-area-inset-bottom,0px))}
.msheet-sec-label{text-transform:uppercase;color:var(--muted);padding:18px 0 4px}
.msheet-pages,.msheet-sections{list-style:none;margin:0;padding:0}
.msheet-page{display:grid;grid-template-columns:30px 1fr;align-items:baseline;gap:12px;padding:16px 0;border-top:1px solid var(--hairline);-webkit-tap-highlight-color:transparent}
.msheet-pages li:last-child .msheet-page{border-bottom:1px solid var(--hairline)}
.mp-num{font-family:var(--mono);font-size:11px;letter-spacing:.16em;color:var(--muted)}
.mp-name{font-family:var(--serif);font-size:1.5rem;color:var(--slate)}
.msheet-page.active .mp-num,.msheet-page.active .mp-name{color:var(--orange)}
.msheet-sections{margin:4px 0 0 7px;padding-left:17px;border-left:1px solid var(--hairline)}
.msheet-section{display:grid;grid-template-columns:22px 1fr;align-items:baseline;gap:10px;padding:13px 0;position:relative;-webkit-tap-highlight-color:transparent}
.msheet-section::before{content:'';position:absolute;left:-18px;top:50%;width:7px;height:1px;background:var(--hairline-strong);transform:translateY(-50%);transition:width 160ms,height 160ms,background 160ms}
.ms-num{font-family:var(--mono);font-size:10px;letter-spacing:.14em;color:var(--muted)}
.ms-name{font-size:1rem;color:var(--slate-light)}
.msheet-section.current .ms-num{color:var(--orange)}
.msheet-section.current .ms-name{color:var(--slate);font-weight:500}
.msheet-section.current::before{width:11px;height:2px;background:var(--orange)}
.mcta{position:fixed;left:16px;right:16px;bottom:calc(14px + env(safe-area-inset-bottom,0px));display:flex;align-items:center;justify-content:center;gap:12px;height:52px;background:var(--slate);color:var(--cream);font-size:14px;font-weight:500;z-index:9990;box-shadow:0 8px 24px rgba(48,58,58,.18);transform:translateY(calc(100% + 26px));opacity:0;transition:transform 340ms cubic-bezier(.22,.61,.36,1),opacity 220ms ease;-webkit-tap-highlight-color:transparent}
.mcta.show{transform:translateY(0);opacity:1}
.mcta-arrow{width:16px;height:1px;background:var(--orange);position:relative}
.mcta-arrow::after{content:'';position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid var(--orange);border-right:1px solid var(--orange);transform:rotate(45deg) translateY(-1px)}
body.msheet-open .mcta{opacity:0!important;transform:translateY(calc(100% + 26px))!important}
.people-list .pl-row{grid-template-columns:1fr auto;row-gap:4px}
.people-list .pl-line{grid-column:1 / -1}
.tail-cta{flex-direction:column;align-items:flex-start;gap:20px}
}
@media (max-width:760px){.pillars,.principles{grid-template-columns:1fr!important}}
@media (max-width:640px){
:root{--gutter:20px}
.frame,footer{padding-left:var(--gutter);padding-right:var(--gutter)}
.hero h1{font-size:clamp(2.2rem,8.5vw,3rem)!important;max-width:none!important}
.hero .lede{font-size:1.05rem;margin-top:22px}
.cta-row{flex-direction:column;align-items:stretch;gap:12px}
.cta-row .btn,.cta-row .btn-ghost{width:100%;justify-content:center}
.hero-vis,.hero-illus{margin-top:28px!important;padding:14px 14px 10px}
.illus-block{padding:14px 14px 10px}
section{padding:48px 0 56px}
.hero{padding:40px 0 48px!important}
h2{font-size:1.7rem!important;line-height:1.1}
.hero + section h2{font-size:1.9rem!important}
h3{font-size:1.3rem}
p,.lede{max-width:none!important}
.pillars,.practice,.steps,.principles,.practice-grid,.people-grid,.industries{grid-template-columns:1fr!important}
.industry{border-right:none!important}
.person-card{border-right:none!important;border-bottom:1px solid var(--hairline)!important}
.person-card:last-child{border-bottom:none!important}
.info-row{grid-template-columns:1fr!important;row-gap:6px;padding:14px 0}
.form-side,.info-side{padding:24px 20px!important}
.field input,.field textarea,.field select,form.contact-form input,form.contact-form select,select.f-select{font-size:16px!important}
.attorney,.brand-card,.model,.principle{padding:24px 20px 28px!important}
.pa,.pillar{padding:22px 20px 26px!important;min-height:0!important}
.team-teaser .tt-head,.team-teaser .tt-person{padding:24px 20px!important}
.contact-info{padding:28px 20px!important}
.tail-cta{flex-direction:column;align-items:flex-start!important;gap:16px;padding:28px 22px}
footer .foot-r{gap:18px 22px}
.hero-portrait{max-width:none}
}
@media (max-width:380px){:root{--gutter:16px}.hero h1{font-size:clamp(1.9rem,9.5vw,2.4rem)!important}h2{font-size:1.5rem!important}}

/* 14. tap targets */
@media (pointer:coarse),(max-width:860px){footer a{display:inline-block;padding:12px 6px;margin:-12px -6px}.tt-link,.inline-cta{padding:12px 8px 12px 0;margin:-12px -8px -12px 0}}

/* 15. reduced motion */
@media (prefers-reduced-motion:reduce){
.reveal,.reveal-up,.reveal-fade{opacity:1!important;transform:none!important;transition:none!important}
.illus-block[data-illus] svg circle,.illus-block[data-illus] svg rect[fill="#F04A2C"],.hero-vis[data-illus] svg circle,.hero-vis[data-illus] svg rect[fill="#F04A2C"],.hero-illus[data-illus] svg circle,.hero-illus[data-illus] svg rect[fill="#F04A2C"]{opacity:1!important}
*{transition:none!important;animation:none!important}
}

/* 16. print */
@media print{
.rail,.mbar,.msheet,.msheet-scrim,.mcta,.rail-foot,.tail-cta,.team-teaser .tt-link{display:none!important}
.page,footer{margin-left:0!important;max-width:none}
.page::before,.page .frame::after{display:none}
body{background:#fff;color:#000;font-size:11pt;padding-top:0!important}
section{padding:28px 0;break-inside:avoid-page;border-bottom:1px solid #ccc}
section.section-slate,section.section-cream-dark{background:#fff;color:#000}
section.section-slate h2,section.section-slate p{color:#000}
.reveal,.reveal-up,.reveal-fade{opacity:1!important;transform:none!important}
.toc{position:static}
a{color:#000;border-bottom:none}
.doc-content a::after{content:' (' attr(href) ')';font-size:.85em;color:#555}
}

/* 17. motion: spine lays down on load, section rules draw in, hero copy arrives, rail tick glides */
@keyframes sl-spine{from{transform:scaleY(0)}to{transform:scaleY(1)}}
@keyframes sl-node{from{opacity:0;transform:translateX(-50%) scale(.4)}to{opacity:1;transform:translateX(-50%) scale(1)}}
@keyframes sl-rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes sl-fade{from{opacity:0}to{opacity:1}}
.page::before{transform-origin:top;animation:sl-spine var(--spine-dur,1400ms) linear both}
.page .frame::after{animation:sl-node 280ms cubic-bezier(.22,.61,.36,1) both;animation-delay:var(--node-delay,0ms)}
.sec-num{border-top-color:transparent;position:relative}
.sec-num::after{content:'';position:absolute;top:-2px;left:0;right:0;height:2px;background:var(--orange);transform:scaleX(0);transform-origin:left;transition:transform 640ms cubic-bezier(.22,.61,.36,1)}
.sec-num.is-on::after{transform:scaleX(1)}
.hero .eyebrow{animation:sl-rise 560ms cubic-bezier(.22,.61,.36,1) both}
.hero h1{animation:sl-rise 640ms cubic-bezier(.22,.61,.36,1) 80ms both}
.hero h1 .serif-accent{animation:sl-fade 560ms ease-out 360ms both}
.hero .lede{animation:sl-rise 640ms cubic-bezier(.22,.61,.36,1) 220ms both}
.hero .kicker,.hero .cta-row{animation:sl-rise 640ms cubic-bezier(.22,.61,.36,1) 340ms both}
.hero .hero-vis,.hero .hero-illus,.hero .hero-portrait{animation:sl-fade 760ms ease-out 380ms both}
.hero-vis.has-img{position:relative;padding:0!important}
.hero-vis .thread-overlay{position:absolute;inset:0;width:100%;height:100%;display:block}
.rail-sub{position:relative}
.rail-tick{position:absolute;left:-1px;top:0;width:11px;height:2px;background:var(--orange);transform:translateY(-50%);transition:top 380ms cubic-bezier(.22,.61,.36,1);pointer-events:none}
.rail-sub-link.current::before{width:6px;height:1px;background:var(--hairline-strong)}
@media (max-width:960px){.sec-num::after{display:none}.sec-num{border-top:none}}
@media (prefers-reduced-motion:reduce){.page::before,.page .frame::after,.hero .eyebrow,.hero h1,.hero h1 .serif-accent,.hero .lede,.hero .kicker,.hero .cta-row,.hero .hero-vis,.hero .hero-illus,.hero .hero-portrait{animation:none!important}.sec-num::after{transform:scaleX(1)!important;transition:none}}

/* 18. responsive pass */
.sec-num{white-space:nowrap}
.att-meta:first-child{margin-top:0;padding-top:0;border-top:none}
@media (max-width:1280px){
.team-teaser{grid-template-columns:1fr}
.team-teaser .tt-head{border-right:none;border-bottom:1px solid var(--hairline);min-width:0;flex-direction:row;align-items:center;justify-content:space-between;gap:24px;padding:18px 26px}
.team-teaser .tt-title{margin-top:6px;max-width:none}
.team-teaser .tt-link{margin-top:0;border-top:none;padding-top:0;white-space:nowrap}
}
@media (max-width:640px){.team-teaser .tt-head{flex-direction:column;align-items:flex-start;gap:14px}}
@media (max-width:1180px){
.contact-split{grid-template-columns:1fr!important}
.form-side{border-right:none!important;border-bottom:1px solid var(--hairline)}
.info-side dl{display:grid!important;grid-template-columns:1fr 1fr;column-gap:36px}
.info-row:last-child{border-bottom:none}
.info-side dl .info-row:nth-last-child(-n+2){border-bottom:1px solid var(--hairline)}
}
@media (max-width:640px){
.hero-vis.has-img{margin:20px 0 0!important}
.info-side dl{grid-template-columns:1fr}
}
