/* Personality layer: first-visit splash, page transitions, micro-interactions, Thinking pages. */
@font-face{font-family:'Bangers';src:url('/assets/bangers.woff2') format('woff2');font-display:block}

/* ---------- First-visit splash: cherry bomb -> BOOOOM! ---------- */
.splash{display:none}
html.splash-on .splash{display:block;position:fixed;inset:0;z-index:10000;overflow:hidden;cursor:pointer;--sd:1.3s;animation:splash-failsafe .4s 7s forwards}
.sp-paper{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 46%,#fffaf1 0%,#f8efdf 50%,#efdcc0 100%)}
.splash::after{content:'';position:absolute;inset:0;background:#fffdf6;opacity:0;pointer-events:none;animation:sp-flash .5s 1.12s ease-out}
.splash-scene{position:absolute;left:50%;top:50%;width:min(96vw,130vh);height:auto;overflow:visible;transform:translate(-50%,-50%);animation:sp-quake .42s 1.12s linear}
.splash-skip{position:absolute;bottom:max(26px,calc(env(safe-area-inset-bottom) + 14px));left:50%;z-index:2;padding:9px 16px 7px;background:#ffd23f;color:#201a16;border:3px solid #201a16;box-shadow:5px 5px 0 #201a16;font-family:'Bangers',Impact,'Arial Black',sans-serif;font-size:19px;line-height:1;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap;transform:translateX(-50%) rotate(-2.5deg);opacity:0;animation:sp-caption .45s .6s cubic-bezier(.34,1.56,.64,1) forwards}
.splash-skip .skip-mouse{display:none}
@media (hover:hover) and (pointer:fine){.splash-skip .skip-touch{display:none}.splash-skip .skip-mouse{display:inline}}
@keyframes sp-caption{from{opacity:0;transform:translateX(-50%) rotate(-8deg) scale(.6)}to{opacity:1;transform:translateX(-50%) rotate(-2.5deg) scale(1)}}
/* premium halftone: dot size grows towards the edges (contrast-filter halftone), tinted cherry red */
.sp-halftone{position:absolute;inset:0;overflow:hidden;opacity:.62;mix-blend-mode:multiply;isolation:isolate;pointer-events:none}
.sp-halftone::before{content:'';position:absolute;inset:-25%;background:radial-gradient(closest-side,#8a8a8a,#fff) 0 0/14px 14px,radial-gradient(circle at 50% 46%,#fff 30%,#1c1c1c 100%);background-blend-mode:multiply;filter:contrast(22);transform:rotate(15deg)}
.sp-halftone::after{content:'';position:absolute;inset:0;background:#c81f35;mix-blend-mode:lighten}
.sp-bomb,.sp-bomb-body,.sp-burst,.sp-rays,.sp-bubble,.sp-word-wrap,.sp-spark{transform-box:view-box}
.sp-bomb{--bs:1;transform-origin:400px 320px;transform:scale(var(--bs));animation:sp-pop .22s 1.1s cubic-bezier(.3,0,.8,.2) forwards}
@media (max-aspect-ratio:4/5){.sp-bomb{--bs:1.4}}
.sp-bomb-body{transform-origin:400px 388px;animation:sp-drop .55s cubic-bezier(.34,1.56,.64,1) both,sp-wobble .11s .55s linear 5 alternate}
.sp-shadow{transform-box:fill-box;transform-origin:center;animation:sp-grow .55s both}
.sp-ball{fill:#e0263b;stroke:#201a16;stroke-width:7}
.sp-shade{fill:#a8142a}
.sp-shine{fill:#fff;opacity:.85}
.sp-collar{fill:#201a16}
.sp-fuse-ink,.sp-fuse{fill:none;stroke-linecap:round;stroke-dasharray:100 100;animation:sp-burn .78s .34s linear forwards}
.sp-fuse-ink{stroke:#201a16;stroke-width:11.5}
.sp-fuse{stroke:#d6a76c;stroke-width:6}
.sp-spark{animation:sp-spark .78s .34s linear both}
.sp-spark polygon{fill:#ffd23f;stroke:#ff8c1a;stroke-width:3;transform-box:fill-box;transform-origin:center;animation:sp-flicker .08s linear infinite alternate}
.sp-burst{transform-origin:400px 300px;transform:scale(0);animation:sp-burst .45s 1.12s cubic-bezier(.2,1.4,.4,1) forwards}
.sp-burst-a{fill:#ff8c1a;stroke:#201a16;stroke-width:6;stroke-linejoin:miter}
.sp-burst-b{fill:#ffd23f}
.sp-rays{transform-origin:400px 300px;opacity:0;animation:sp-rays .6s 1.12s ease-out forwards}
.sp-rays line{stroke:#201a16;stroke-width:6;stroke-linecap:round}
.sp-debris circle{fill:#201a16;opacity:0;animation:sp-debris .75s 1.12s cubic-bezier(.1,.8,.3,1) forwards}
.sp-bubble{transform-origin:400px 300px;transform:scale(0);animation:sp-bubble .55s 1.24s cubic-bezier(.34,1.56,.64,1) forwards}
.sp-bubble-shadow{fill:#201a16;transform:translate(14px,16px)}
.sp-bubble-shape{fill:#ffd23f;stroke:#201a16;stroke-width:8;stroke-linejoin:miter}
.sp-word-wrap{transform-origin:400px 300px;transform:scale(0);animation:sp-word .5s 1.36s cubic-bezier(.34,1.8,.64,1) forwards,sp-shake .07s 1.86s linear 6 alternate}
.sp-word{font-family:'Bangers',Impact,'Arial Black',sans-serif;font-size:168px;letter-spacing:6px;fill:#e0263b;stroke:#201a16;stroke-width:12;stroke-linejoin:round;paint-order:stroke}
.sp-word-depth{fill:#201a16;transform:translate(8px,9px)}
/* exit: white explosion smoke billows out, the comic scene dissolves into it, then the smoke clears to the page */
html.splash-on .splash.is-out{cursor:default;pointer-events:none}
.splash.is-out :is(.sp-paper,.sp-halftone,.splash-skip){animation:sp-dissolve calc(var(--sd) * .32) calc(var(--sd) * .14) ease-in forwards}
.splash.is-out .splash-scene{animation:sp-scene-out calc(var(--sd) * .36) calc(var(--sd) * .06) ease-in forwards}
.splash.is-out .sp-bubble{animation:sp-bubble-out calc(var(--sd) * .36) ease-in forwards}
.sp-smoke{position:absolute;inset:0;pointer-events:none;z-index:3}
.sp-smoke i{position:absolute;left:50%;top:48%;width:var(--w);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--t) 0%,color-mix(in srgb,var(--t) 82%,transparent) 32%,color-mix(in srgb,var(--t) 38%,transparent) 55%,transparent 71%);opacity:0;transform:translate(-50%,-50%) translate(var(--x),var(--y)) scale(.15)}
.splash.is-out .sp-smoke i{animation:sp-smoke var(--sd) var(--d) cubic-bezier(.16,.7,.3,1) forwards}
@keyframes sp-dissolve{to{opacity:0}}
@keyframes sp-scene-out{to{opacity:0;filter:blur(6px)}}
@keyframes sp-smoke{0%{opacity:0;transform:translate(-50%,-50%) translate(var(--x),var(--y)) scale(.15)}18%{opacity:1}42%{opacity:.95;transform:translate(-50%,-50%) translate(calc(var(--x) + var(--dx) * .35),calc(var(--y) + var(--dy) * .35)) scale(calc(var(--s) * .62))}100%{opacity:0;transform:translate(-50%,-50%) translate(calc(var(--x) + var(--dx)),calc(var(--y) + var(--dy))) scale(var(--s))}}
@keyframes splash-failsafe{to{opacity:0;visibility:hidden}}
@keyframes sp-bubble-out{from{transform:scale(1) rotate(-3deg)}to{transform:scale(1.5) rotate(2deg);opacity:0}}
@keyframes sp-fade{to{opacity:1}}
@keyframes sp-flash{0%{opacity:0}15%{opacity:.85}100%{opacity:0}}
@keyframes sp-quake{0%,100%{transform:translate(-50%,-50%)}20%{transform:translate(calc(-50% - 10px),calc(-50% + 6px))}40%{transform:translate(calc(-50% + 8px),calc(-50% - 8px))}60%{transform:translate(calc(-50% - 6px),calc(-50% + 4px))}80%{transform:translate(calc(-50% + 4px),calc(-50% - 3px))}}
@keyframes sp-drop{from{transform:translateY(-140px) scale(.7);opacity:0}to{transform:none;opacity:1}}
@keyframes sp-wobble{from{transform:rotate(-2deg)}to{transform:rotate(2deg)}}
@keyframes sp-grow{from{transform:scale(.3);opacity:0}}
@keyframes sp-burn{to{stroke-dashoffset:96}}
@keyframes sp-spark{0%{transform:translate(436px,214px)}19%{transform:translate(427.8px,225.8px)}40%{transform:translate(418.7px,235.6px)}60%{transform:translate(410.1px,245px)}80%{transform:translate(403.4px,255.3px)}100%{transform:translate(400px,268px)}}
@keyframes sp-flicker{from{transform:scale(.75) rotate(0)}to{transform:scale(1.15) rotate(25deg)}}
@keyframes sp-pop{40%{transform:scale(calc(var(--bs) * 1.2))}100%{transform:scale(0);opacity:0}}
@keyframes sp-burst{from{transform:scale(0) rotate(-20deg)}to{transform:scale(1) rotate(0)}}
@keyframes sp-rays{0%{opacity:1;transform:scale(.5)}100%{opacity:0;transform:scale(1.25)}}
@keyframes sp-debris{0%{opacity:1;transform:translate(0,0)}80%{opacity:1}100%{opacity:0;transform:translate(var(--dx),var(--dy))}}
@keyframes sp-bubble{0%{transform:scale(0) rotate(-12deg)}100%{transform:scale(1) rotate(-3deg)}}
@keyframes sp-word{0%{transform:scale(.2) rotate(-16deg)}100%{transform:scale(1) rotate(-6deg)}}
@keyframes sp-shake{from{transform:scale(1) rotate(-6deg) translate(-2px,1px)}to{transform:scale(1.02) rotate(-5deg) translate(2px,-1px)}}

/* ---------- Page transition: two-layer curtain (brand red, then ink) ---------- */
.page-transition{position:fixed;inset:0;z-index:9999;pointer-events:none;visibility:hidden}
.pt-layer{position:absolute;inset:0;transform:translateY(100%)}
.pt-accent{background:#b33220}
.pt-ink{display:grid;place-items:center;background:#201a16;color:#f8f1e5}
html:is(.is-leaving,.is-arriving) .page-transition{visibility:visible}
html.is-leaving .pt-layer{transform:translateY(0);transition:transform .58s cubic-bezier(.76,0,.24,1)}
html.is-leaving .pt-ink{transition-delay:.07s}
html.is-arriving .pt-layer{transform:translateY(0)}
html.is-arriving .page-transition{animation:pt-failsafe .3s 4s forwards}
html.is-arriving.is-arrived .pt-layer{transform:translateY(-100%);transition:transform .82s cubic-bezier(.76,0,.24,1)}
html.is-arriving.is-arrived .pt-accent{transition-delay:.08s}
.pt-inner{display:grid;justify-items:center;gap:22px}
.pt-mark{position:relative;font-family:var(--display);font-size:clamp(64px,10vw,124px);line-height:1;letter-spacing:-.15em;padding-right:.2em}
.pt-mark>span{position:absolute;right:-.12em;top:0;display:block;font-size:.26em;letter-spacing:0;color:#e85032}
html.is-leaving .pt-mark{animation:pt-rise .8s .2s cubic-bezier(.22,1,.36,1) both}
html.is-arriving.is-arrived .pt-inner{opacity:0;transform:translateY(-16px);transition:opacity .3s ease,transform .6s cubic-bezier(.22,1,.36,1)}
.pt-line{display:block;width:120px;height:1px;background:#f8f1e526;position:relative;overflow:hidden}
.pt-line::after{content:'';position:absolute;inset:0;background:#f8f1e5;transform:scaleX(0);transform-origin:left}
html.is-leaving .pt-line::after{animation:pt-load 1s .28s cubic-bezier(.22,1,.36,1) forwards}
html.is-arriving .pt-line::after{transform:scaleX(.85)}
html.is-arriving.is-arrived #main{animation:pt-content-in .95s .32s cubic-bezier(.22,1,.36,1) both}
@keyframes pt-failsafe{to{visibility:hidden;opacity:0}}
@keyframes pt-rise{from{opacity:0;transform:translateY(16px);filter:blur(8px)}}
@keyframes pt-load{to{transform:scaleX(.85)}}
@keyframes pt-content-in{from{opacity:0;transform:translateY(24px)}}
@media (prefers-reduced-motion:reduce){html.splash-on .splash,.page-transition{display:none}}
@media print{.splash,.page-transition{display:none!important}}

/* ---------- Micro-interactions ---------- */
@media (prefers-reduced-motion:no-preference){
 .name-logo .grn-mark>span{display:inline-block;transition:transform 1s cubic-bezier(.22,1,.36,1)}
 .name-logo:hover .grn-mark>span,.name-logo:focus-visible .grn-mark>span{transform:rotate(90deg) scale(1.15)}
 :is(.button,.nav-contact,.circle-cta,.filter-group>button,.hero-switcher>button,.back-to-top,.thinking-jump a,.text-link,.lens-picker summary,.menu-toggle):active{transform:scale(.97)}
 :is(.project-cover,.thinking-card-link,.next-project,.next-article,.case-related):active{transform:scale(.985);transition:transform .12s}
 :is(.footer-lower a,.footer-perspectives a,.email-link,.article-back){background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .4s var(--ease),color .2s}
 :is(.footer-lower a,.footer-perspectives a,.email-link,.article-back):hover{background-size:100% 1px}
 .lens-picker .chevron,.footer-perspectives summary>span{display:inline-block;transition:transform .3s var(--ease)}
 .lens-picker[open] .chevron{transform:rotate(180deg)}
 .footer-perspectives[open] summary>span{transform:rotate(45deg)}
 .thinking-card-media img{transition:transform .9s var(--ease)}
 .thinking-card-link:hover .thinking-card-media img{transform:scale(1.045)}
 :is(.thinking-card h3,.next-article h2) svg{transition:transform .3s var(--ease)}
 :is(.thinking-card-link:hover h3,.next-article:hover h2) svg{transform:translate(4px,-4px)}
 .thinking-jump a span{display:inline-block;transition:transform .3s var(--ease)}
 .thinking-jump a:hover span{transform:translateY(3px)}
 .article-back span{display:inline-block;transition:transform .3s var(--ease)}
 .article-back:hover span{transform:translateX(-4px)}
}

/* ---------- Thinking ---------- */
.thinking-hero{padding-top:clamp(64px,9vw,140px);padding-bottom:clamp(48px,6vw,96px);border-bottom:1px solid var(--line)}
.thinking-hero h1{font-size:clamp(68px,13vw,210px);line-height:.86;letter-spacing:-.06em;margin:18px 0 30px}
.thinking-lede{max-width:560px;margin:0;font-size:clamp(17px,1.6vw,21px);line-height:1.55;color:var(--muted)}
.thinking-jump{display:flex;flex-wrap:wrap;gap:12px;margin-top:34px}
.thinking-jump a{display:inline-flex;gap:8px;align-items:center;border:1px solid var(--ink);border-radius:999px;padding:12px 20px;font-size:13px;transition:background-color .25s,color .25s}
.thinking-jump a:hover{background:var(--ink);color:var(--paper)}
.philosophy{background:var(--ink);color:var(--paper);padding-top:clamp(70px,9vw,140px);padding-bottom:clamp(70px,9vw,140px)}
.philosophy .eyebrow{color:#f8f1e5a6}
.philosophy h2{font-size:clamp(44px,7.5vw,118px);line-height:.95;letter-spacing:-.045em;max-width:12ch;margin:22px 0 34px;font-weight:inherit}
.philosophy-intro{max-width:620px;margin:0;font-size:clamp(16px,1.4vw,19px);line-height:1.65;color:#f8f1e5cc}
.philosophy-list{list-style:none;margin:clamp(50px,7vw,100px) 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #f8f1e533}
.philosophy-list li{padding:28px 26px 8px 0}
.philosophy-list li+li{padding-left:26px;border-left:1px solid #f8f1e533}
.philosophy-list span{font-size:12px;color:#e85032}
.philosophy-list h3{font-size:clamp(19px,1.7vw,24px);line-height:1.2;letter-spacing:-.01em;margin:18px 0 12px}
.philosophy-list p{margin:0;font-size:14px;line-height:1.6;color:#f8f1e5b3}
.think-pieces{padding-top:clamp(70px,9vw,140px);padding-bottom:clamp(40px,6vw,90px)}
.think-head h2{font-size:clamp(38px,5.5vw,84px);line-height:1;letter-spacing:-.04em;margin:18px 0 clamp(36px,5vw,70px)}
.thinking-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(22px,2.6vw,42px)}
.thinking-card-link{display:block}
.thinking-card-media{aspect-ratio:4/3;overflow:hidden;background:var(--wash)}
.thinking-card-media img{display:block;width:100%;height:100%;object-fit:cover}
.thinking-card-text{padding-top:20px}
.thinking-card h3{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin:12px 0 10px;font-size:clamp(22px,2vw,28px);line-height:1.15;letter-spacing:-.02em}
.thinking-card h3 svg{flex:none;width:20px;height:20px;margin-top:5px}
.thinking-card p{margin:0;font-size:15px;line-height:1.55;color:var(--muted)}
.article{padding-top:clamp(40px,6vw,100px)}
.article-head{max-width:1000px}
.article-back{display:inline-flex;gap:8px;margin-bottom:clamp(30px,5vw,64px);font-size:13px}
.article-head h1{max-width:14ch;margin:18px 0 26px;font-size:clamp(46px,7.6vw,122px);line-height:.94;letter-spacing:-.05em}
.article-standfirst{max-width:760px;margin:0;font-size:clamp(19px,2vw,26px);line-height:1.45;color:var(--muted)}
.article-lead{margin:clamp(40px,6vw,80px) 0 0}
.article-lead img{display:block;width:100%;height:auto;max-height:78vh;object-fit:cover}
.article-body{max-width:700px;margin:clamp(44px,6vw,90px) auto 0}
.article-body>p{margin:0 0 1.35em;font-size:clamp(17px,1.35vw,19.5px);line-height:1.75}
.article-body>p:first-child::first-letter{float:left;padding:.08em .1em 0 0;font-size:4.4em;line-height:.8;color:var(--accent)}
.pull-quote{margin:clamp(40px,5vw,64px) 0;padding:0 0 0 clamp(20px,3vw,34px);border-left:3px solid var(--accent)}
.pull-quote p{margin:0;font-size:clamp(26px,3vw,40px);line-height:1.15;letter-spacing:-.025em}
.article-figure{margin:clamp(40px,5vw,64px) calc(-1 * min(12vw,180px))}
.article-figure img{display:block;width:100%;height:auto}
.article-figure figcaption{margin-top:12px;font-size:12px;color:var(--muted)}
.article-related{margin-top:clamp(36px,4vw,56px)}
.next-article{display:block;margin-top:clamp(60px,8vw,120px);padding-top:clamp(50px,7vw,100px);padding-bottom:clamp(50px,7vw,100px);border-top:1px solid var(--line)}
.next-article h2{display:flex;align-items:center;gap:16px;margin:16px 0 14px;font-size:clamp(34px,5vw,72px);line-height:1;letter-spacing:-.04em}
.next-article h2 svg{flex:none;width:clamp(26px,3vw,44px);height:auto}
.next-article p{max-width:620px;margin:0;color:var(--muted)}
@media (max-width:900px){.thinking-grid{grid-template-columns:1fr 1fr}.philosophy-list{grid-template-columns:1fr 1fr}.philosophy-list li:nth-child(3){padding-left:0;border-left:0}.philosophy-list li:nth-child(n+3){border-top:1px solid #f8f1e533}.article-figure{margin-left:0;margin-right:0}}
@media (max-width:620px){.thinking-grid,.philosophy-list{grid-template-columns:1fr}.philosophy-list li,.philosophy-list li+li{padding:26px 0;border-left:0}.philosophy-list li+li{border-top:1px solid #f8f1e533}}

/* Screen-reader-only text */
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Readability floor (owner request, 7 Nov 2026) ----------
   The original type scale used 6-11px labels on small screens. These rules only raise sizes:
   phones/tablets get labels >= 12px, meta >= 13px, controls >= 14px and small body >= 15px;
   desktop lifts anything below 10px to 11-12px. !important is deliberate: it is a final floor
   over many earlier, more specific rules. */
@media (max-width:900px){
 /* labels and counters */
 :is(.eyebrow,.eyebrow *,.feature-top,.upcoming-label,.project-tags>span,.cv-label,.experience-entry>span,.archive-status>span,.lens-note,.lens-note b,.story-journey>span,.project-number,.project-facts dt,.palette-value,.palette-buttons>button>span:last-child,.recipe-match,.project-status,.hero-switcher>button>span,.practice-section article>span,.case-principles article>span,.strategy-chain article>span,.foundation-map article>span,.position-comparison article>span,.naming-branches article>span,.activation-ledger article>span,.language-links article>span,.storyboard-sequence li>span,.voice-dimensions article span,.proposition-loop b,.archetype-donut small,.case-outline li>a>span:first-child,.chapter-picker li>a>span:first-child,.archive-total>span,.hero-kicker .location){font-size:12px!important}
 /* captions, notes and meta */
 :is(.editorial-figure figcaption,.project-lead figcaption span,.footer-lower>span,.source-footnote,.contact-privacy,.prototype-disclosure,.strategy-source-note,.voice-example footer,.recipe-card-body p,.project-end>p,.case-outline p,.project-title p>span,.pantry-panel>p,.experience-strip span,.cv-section article span,.recipe-count,.role-case-note){font-size:13px!important;line-height:1.55}
 /* controls and links */
 :is(.text-link,.button,.filter-group>button,.hero-switcher>button,.chapter-picker>summary,.case-toolbar>a,.copy-email,.recipe-card-actions>button,.reset-pantry,.recipe-toolbar label,.ingredient-choices>button,.translation-tabs>button,.back-link,.lens-popover a,.lens-popover a>span,.footer-perspectives>summary,.footer-perspectives a,.contact-social a,.contact-composer label,.contact-composer>p,.hero-work-link,.project-open,.article-back,.thinking-jump a){font-size:14px!important}
 .contact-strip>p{font-size:15px!important;line-height:1.55}
 .name-signature{font-size:11px!important;line-height:1.15}
 .lens-picker summary span[data-role-short]{font-size:12px!important}
 :is(.main-nav,.filter-group) sup{font-size:9px!important}
 /* comfortable tap targets */
 .menu-toggle{min-width:44px;min-height:44px}
 .footer-lower>span a,.article-back,.print-cv{display:inline-block;padding:10px 0}
 .project-end p>a,.footer-top .email-link{padding-block:8px}
}
@media (max-width:650px){
 :is(.measurement-table th,.measurement-table td,.project-credits summary span){font-size:13px!important}
 /* footer: stacked, readable and easy to tap */
 .site-footer .footer-top .email-link{font-size:17px!important}
 .site-footer .footer-lower{flex-direction:column;gap:26px;font-size:14px!important;line-height:1.6}
 .site-footer .footer-lower>span{font-size:14px!important}
 .site-footer .footer-lower>span:last-child{font-size:13px!important}
 .site-footer .footer-lower>div{flex-direction:column;align-items:stretch;gap:0;width:100%;border-top:1px solid #f8f1e526}
 .site-footer .footer-lower>div>a{display:flex;justify-content:space-between;align-items:center;min-height:52px;font-size:16px!important;border-bottom:1px solid #f8f1e526}
 .site-footer .footer-lower svg{width:14px;height:14px}
 .site-footer .footer-perspectives>summary{min-height:56px;padding-top:0;font-size:14px!important}
 .site-footer .footer-perspectives>div{grid-template-columns:1fr;gap:0;margin-top:0}
 .site-footer .footer-perspectives>div>a{align-items:center;min-height:48px;font-size:15px!important;border-bottom:1px solid #f8f1e51a}
}
@media (min-width:901px){
 :is(.main-nav,.filter-group) sup{font-size:9px}
 :is(.archive-status>span,.lens-popover .eyebrow,.hero-switcher>button>span,.recipe-card-body p,.recipe-card-actions>button,.practice-section article>span,.contact-composer>.eyebrow,.hero-kicker .location,.archive-total>span,.lens-note,.lens-note b,.upcoming-label,.archetype-donut small,.reset-pantry,.recipe-toolbar label,.recipe-match,.prototype-disclosure,.role-case-note .eyebrow,.eyebrow>span,.experience-entry>span,.cv-label,.cv-section article span,.source-footnote,.contact-privacy){font-size:11px!important}
 :is(.footer-lower,.footer-lower>span,.footer-lower a,.footer-perspectives>summary){font-size:12px!important}
 .footer-perspectives>div>a{font-size:13px!important}
}
@media (max-width:900px){
 .site-footer .footer-lower>div>a{font-size:14px!important}
 .case-toolbar .chapter-current,.cv-section>h3{font-size:12px!important}
}
@media (max-width:650px){.chapter-picker li>a>span:not(:first-child){font-size:14px!important}}
@media (min-width:651px) and (max-width:900px){
 :is(.section-heading>p,.experience-entry p,.cv-section article p,.cv-section article li,.capability-grid p,.cv-section>p,.cv-section>p a,.contact-page-grid>div>p){font-size:14px!important;line-height:1.55}
}
@media (max-width:650px){.filter-group{flex-wrap:wrap;row-gap:6px}}
@media (max-width:650px){.measurement-table th,.measurement-table td{padding:11px 7px;overflow-wrap:break-word;-webkit-hyphens:auto;hyphens:auto}}

/* ---------- Calmer, more premium motion (owner request) ---------- */
@media (prefers-reduced-motion:no-preference){
 .reveal-ready{transform:translateY(28px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1)}
 .motion-enter{transform:translateY(28px);transition:opacity 1s cubic-bezier(.22,1,.36,1),transform 1.2s cubic-bezier(.22,1,.36,1);transition-delay:var(--motion-delay,0ms)}
}
/* Project presentations: images appear immediately, no entrance fades */
.editorial-case .lead-zoom,.editorial-case .editorial-arrived>.work-zoom{animation:none!important}

/* ---------- Full-screen menu on phones ---------- */
@media (max-width:650px){
 .site-header .main-nav{display:flex!important;position:fixed!important;inset:0!important;top:0!important;z-index:39;height:100dvh;margin:0;padding:120px var(--pad) max(32px,env(safe-area-inset-bottom));overflow-y:auto;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:0;background:#b33220!important;color:#f8f1e5!important;border:0;box-shadow:none;visibility:hidden;clip-path:inset(0 0 100% 0);transition:clip-path .7s cubic-bezier(.76,0,.24,1),visibility 0s linear .7s}
 .site-header .main-nav.is-open{visibility:visible;clip-path:inset(0 0 0 0);transition:clip-path .7s cubic-bezier(.76,0,.24,1),visibility 0s}
 .site-header .main-nav>a{font-size:clamp(40px,12vw,58px)!important;line-height:1.05;letter-spacing:-.045em;padding:16px 0;color:#f8f1e5;border-bottom:1px solid #f8f1e533;opacity:0;transform:translateY(28px);transition:opacity .35s ease,transform .6s cubic-bezier(.22,1,.36,1)}
 .site-header .main-nav>a>svg{width:30px;height:30px}
 .site-header .main-nav.is-open>a{opacity:1;transform:none}
 .site-header .main-nav.is-open>a:nth-child(1){transition-delay:.22s}
 .site-header .main-nav.is-open>a:nth-child(2){transition-delay:.28s}
 .site-header .main-nav.is-open>a:nth-child(3){transition-delay:.34s}
 .site-header .main-nav.is-open>a:nth-child(4){transition-delay:.4s}
 .site-header .main-nav.is-open>a:nth-child(5){transition-delay:.46s}
 .site-header .main-nav .nav-contact{margin-top:36px;padding:20px 22px;justify-content:space-between;font-size:16px!important;letter-spacing:0;background:#f8f1e5!important;color:#b33220!important;border:0;border-radius:0}
 .site-header .main-nav .nav-contact svg{width:16px;height:16px}
 .site-header :is(.name-logo,.header-controls){position:relative;z-index:41;transition:color .4s ease}
 .site-header:has(.main-nav.is-open) :is(.name-logo,.header-controls){color:#f8f1e5}
 .site-header:has(.main-nav.is-open) .menu-toggle>span{background:#f8f1e5}
 html:has(.main-nav.is-open){overflow:hidden}
}
@media (max-width:650px) and (prefers-reduced-motion:reduce){.site-header .main-nav,.site-header .main-nav>a{transition:none!important}}
