@charset "UTF-8";
:root{--paper:#f4f2e9;--ink:#192b25;--muted:#58645d;--green:#244d3c;--lime:#dbeb89;--line:#cdd2c5;--serif:Georgia,'Times New Roman',serif;--sans:'Helvetica Neue',Helvetica,Arial,sans-serif;--radius:18px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:32px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:18px;line-height:1.6;-webkit-font-smoothing:antialiased}img{display:block;max-width:100%;height:auto}a{color:inherit;text-underline-offset:5px}button{font:inherit;color:inherit;cursor:pointer}a,button{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:3px solid #48672a;outline-offset:5px}::selection{background:var(--lime);color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2,h3{line-height:1.07;letter-spacing:-.045em;font-weight:500}h1{font-size:clamp(54px,6.2vw,92px)}h2{font-size:clamp(34px,3.6vw,52px)}h3{font-size:30px}p{max-width:70ch}em{font-family:var(--serif);font-weight:400}small{font-size:12px}.wrap{width:min(1240px,calc(100% - 96px));margin-inline:auto}.eyebrow{font-size:11px;font-weight:600;letter-spacing:.15em;line-height:1.6;text-transform:uppercase}.skip-link{position:absolute;top:-100px;left:24px;z-index:100;background:var(--ink);color:white;padding:12px 20px}.skip-link:focus{top:8px}.site-header{display:flex;justify-content:space-between;align-items:center;min-height:100px;gap:32px}.wordmark{font-size:26px;font-weight:600;letter-spacing:-.075em;text-decoration:none;white-space:nowrap}.brand-dot{color:#607d3d}.main-nav{display:flex;gap:30px;align-items:center;font-size:14px}.main-nav a{text-decoration:none;padding:10px 0}.main-nav a:hover{text-decoration:underline}.main-nav .nav-contact{border-bottom:1px solid var(--ink)}.nav-contact span{margin-left:14px}.edition-bar{border-top:1px solid var(--line);padding-top:15px;display:flex;justify-content:space-between;font-size:11px;color:var(--muted)}.edition-bar nav{display:flex;gap:20px}.edition-bar a{text-decoration:none}.edition-bar a[aria-current]{color:var(--ink);font-weight:600;text-decoration:underline}.hero{display:grid;grid-template-columns:1.07fr 1fr;align-items:center;gap:44px;padding:66px 0 64px}.hero-copy .eyebrow{display:flex;align-items:center;gap:10px;margin-bottom:24px}.status-dot{height:7px;width:7px;border-radius:100%;background:var(--green)}.hero h1{margin-bottom:28px;font-size:clamp(49px,5.35vw,77px)}.hero-intro{font-size:18px;line-height:1.6;max-width:48ch;color:#47564d}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:32px}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;min-height:50px;padding:12px 22px;font-size:13px;text-decoration:none;border:1px solid var(--ink);border-radius:4px;transition:background .2s,color .2s}.button.primary{color:var(--paper);background:var(--ink)}.button.primary:hover{background:var(--green)}.button.secondary:hover{background:#e6eadc}.hero-note{font-size:11px;letter-spacing:.04em;margin-top:30px;color:var(--muted)}.hero-project{text-decoration:none;min-width:0}.project-visual{position:relative;border-radius:var(--radius);height:450px;overflow:hidden;background:#dce8e1;isolation:isolate}.project-visual.flint{background:#dce6e5}.project-visual.insights{background:#e6e0ce}.project-visual.oak{background:#d5e2cd}.visual-caption{position:absolute;left:28px;right:28px;top:24px;display:flex;justify-content:space-between;font-size:12px;font-weight:500;z-index:2}.visual-caption>span{font-size:20px;line-height:1}.visual-footnote{position:absolute;bottom:20px;left:28px;font-size:8px;letter-spacing:.13em;z-index:3}.screens{height:100%;position:relative}.screens img{position:absolute;object-fit:cover;object-position:top;box-shadow:0 12px 26px #142c2920;border:5px solid #fafafa;border-radius:17px;background:white}.screens .primary-screen{width:37%;top:80px;left:10%;max-height:none}.screens .secondary-screen{width:37%;top:150px;right:10%;max-height:none}.hero-visual{height:470px}.hero-visual .primary-screen{top:90px;left:9%;width:40%;transform:rotate(-5deg)}.hero-visual .secondary-screen{top:142px;right:9%;width:40%;transform:rotate(5deg)}.hero-project-label{display:flex;gap:12px;align-items:center;font-size:11px;margin-top:15px}.hero-project-label>span:first-child{text-transform:uppercase;letter-spacing:.1em;font-size:8px;white-space:nowrap;color:var(--muted)}.hero-project-label>span:last-child{margin-left:auto}.insights .screens .primary-screen{width:39%;left:12%;top:70px}.insights .screens .secondary-screen{width:48%;right:6%;top:218px;border-width:0;border-radius:10px}.oak .screens .primary-screen{width:90%;left:5%;top:88px;border-width:0;border-radius:7px;transform:rotate(-3deg)}.oak .screens .secondary-screen{width:43%;right:6%;top:220px;transform:rotate(5deg);border-width:3px;border-radius:6px}.experience-strip{display:flex;align-items:center;justify-content:space-between;gap:26px;border-block:1px solid var(--line);padding:27px 0}.experience-strip>span{font-size:8px;letter-spacing:.13em;color:var(--muted);max-width:70px}.experience-strip p{font-size:17px;font-weight:500;letter-spacing:-.025em}.experience-strip small{display:block;font-size:9px;font-weight:400;letter-spacing:.03em;color:var(--muted)}.selected-work{padding:104px 0 112px}.section-heading{display:grid;grid-template-columns:1fr 1fr;gap:18px 48px;margin-bottom:50px}.section-heading .eyebrow{grid-column:1/-1}.section-heading h2{max-width:17ch;font-size:46px}.section-heading>p:last-child{align-self:end;max-width:32ch;justify-self:end;color:var(--muted);font-size:15px}.project-row{display:grid;grid-template-columns:1.17fr 1fr;gap:70px;align-items:center;margin-top:64px}.project-row:first-of-type{margin-top:0}.project-copy{max-width:450px}.project-index{display:flex;align-items:center;gap:20px;font-family:var(--serif);font-size:21px;margin-bottom:24px;color:var(--muted)}.project-index span{font-family:var(--sans);font-size:9px;letter-spacing:.12em}.project-copy h3{font-size:38px;max-width:17ch;margin-bottom:20px}.project-copy h3 a{text-decoration:none}.project-copy h3 a:hover{text-decoration:underline;text-decoration-thickness:1px}.project-copy>p:not(.project-index):not(.project-role){font-size:16px;color:var(--muted)}.project-role{font-size:11px;color:var(--muted);margin:25px 0}.text-link{font-size:13px;font-weight:500;text-decoration:none;border-bottom:1px solid var(--ink);display:inline-flex;gap:36px;padding:8px 0}.project-image-link{display:block;border-radius:var(--radius);text-decoration:none}.project-image-link:hover .primary-screen{translate:0 -5px;transition:translate .25s}.story{background:#e5e9dd;position:relative;overflow:hidden;padding:100px 0 310px}.story-grid{position:relative;z-index:1;display:grid;grid-template-columns:1fr 1fr;gap:100px}.story-title h2{font-size:49px;margin:24px 0 38px}.serif-note{font-family:var(--serif);font-style:italic;font-size:25px;line-height:1.25}.story-copy{font-size:16px;line-height:1.75}.story-copy>p+p{margin-top:22px}.education{display:flex;flex-direction:column;gap:4px;border-top:1px solid #8a99854a;padding-top:24px;margin-top:30px;font-size:12px;line-height:1.6}.education>span:last-child{margin-top:8px;color:var(--muted)}.capabilities{padding:96px 0}.capabilities>h2{max-width:18ch}.capability-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:44px;margin-top:46px}.capability-grid>div{border-top:1px solid var(--line);padding-top:22px}.capability-grid span{font-family:var(--serif);font-style:italic;color:var(--muted);font-size:20px}.capability-grid h3{font-size:25px;margin:24px 0 14px}.capability-grid p{font-size:15px;color:var(--muted)}.downloads{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:66px 0 96px}.downloads h2{font-size:42px;margin:20px 0}.downloads p:not(.eyebrow){font-size:16px;color:var(--muted);max-width:35ch}.download-list>a{display:flex;align-items:center;justify-content:space-between;padding:22px 0;border-bottom:1px solid var(--line);text-decoration:none;min-height:86px}.download-list>a:first-child{padding-top:0}.download-list strong{display:block;font-size:19px;font-weight:500}.download-list small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.download-list>a>span:last-child{font-size:28px}.download-list>a:hover strong{text-decoration:underline}.editable-links{display:flex;gap:28px;margin-top:20px;font-size:11px}.contact{padding:76px 72px;background:var(--ink);color:var(--paper);border-radius:20px}.contact h2{max-width:18ch;margin:22px 0;font-size:54px}.contact>p:not(.eyebrow){color:#c4cfc7;font-size:15px}.email-link{display:inline-block;max-width:100%;overflow-wrap:anywhere;font-size:clamp(17px,2.5vw,30px);margin-top:30px;letter-spacing:-.025em;text-decoration:none;border-bottom:1px solid #93a798;padding-bottom:10px}.email-link span{margin-left:25px}.contact-meta{display:flex;gap:24px;flex-wrap:wrap;margin-top:44px;font-size:11px;color:#c4cfc7}.contact-meta>span{margin-right:auto}.site-footer{padding:34px 0;display:flex;gap:24px;justify-content:space-between;font-size:9px;color:var(--muted)}.site-footer a{white-space:nowrap}.case-header{padding-top:34px}.back-link{font-size:12px;display:inline-block;margin-bottom:48px;text-decoration:none}.case-header>.eyebrow{margin-bottom:22px}.case-header h1{font-size:clamp(50px,5.8vw,82px);max-width:19ch}.case-deck{font-size:20px;color:var(--muted);max-width:55ch;margin-top:26px}.case-facts{display:grid;grid-template-columns:1fr .55fr 1.2fr;gap:50px;border-top:1px solid var(--line);padding-top:25px;margin:44px 0 0}.case-facts dt{font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.case-facts dd{margin:8px 0 0;font-size:14px}.work-stage{display:flex;align-items:baseline;gap:18px;font-size:12px;color:var(--muted);margin:28px 0 34px}.work-stage strong{font-size:10px;text-transform:uppercase;letter-spacing:.08em;font-weight:500;color:var(--ink);white-space:nowrap}.case-feature .project-visual{height:610px}.case-feature .primary-screen{width:26%;left:23%;top:65px}.case-feature .secondary-screen{width:24%;right:23%;top:165px}.case-feature .insights .primary-screen{width:27%;left:23%}.case-feature .insights .secondary-screen{width:38%;top:220px;right:13%}.case-feature .oak .primary-screen{width:73%;left:10%;top:105px}.case-feature .oak .secondary-screen{width:31%;top:255px;right:8%}.case-context{padding:88px 0;display:grid;grid-template-columns:1fr 1fr;gap:100px}.case-context h2{font-size:32px;max-width:23ch;margin:20px 0}.case-context p:not(.eyebrow){font-size:16px;color:var(--muted)}.case-body{display:grid;grid-template-columns:220px 1fr;gap:90px;align-items:start}.case-nav{position:sticky;top:30px;padding-top:16px;border-top:1px solid var(--line)}.case-nav nav{display:flex;flex-direction:column;gap:20px;margin-top:25px}.case-nav a{font-size:12px;text-decoration:none;line-height:1.5;color:var(--muted)}.case-nav a:hover{text-decoration:underline;color:var(--ink)}.decision{border-top:1px solid var(--line);padding-top:28px;margin-bottom:70px}.decision h2{font-size:39px;max-width:24ch;margin:18px 0}.decision-copy>p:not(.eyebrow){color:var(--muted);font-size:17px;max-width:65ch}.evidence-figure{margin:32px 0 0}.evidence-images{border-radius:14px;background:#e0e7df;display:flex;justify-content:center;align-items:start;gap:24px;padding:40px;overflow:hidden}.evidence-images img{object-fit:contain;height:auto;max-width:100%;box-shadow:0 8px 22px #132b2420}.phone .evidence-images img,.phone-crop .evidence-images img{width:285px}.phone-crop .evidence-images{height:760px;align-items:flex-start}.pair .evidence-images img{width:calc(50% - 12px);max-width:300px}.detail .evidence-images{padding:70px 50px}.detail .evidence-images img{width:100%;max-width:540px}.wide .evidence-images{padding:28px}.wide .evidence-images img{width:100%}figcaption{font-size:11px;color:var(--muted);display:flex;gap:20px;justify-content:space-between;align-items:baseline;margin-top:14px}.expand-image{border:0;background:none;padding:10px 0;font-size:11px;text-decoration:underline;white-space:nowrap;min-height:44px}.case-outcome{padding:36px 0 70px;border-top:1px solid var(--line)}.case-outcome h2{font-size:42px;margin:20px 0}.case-outcome>p:not(.eyebrow){font-size:17px;color:var(--muted)}.case-outcome blockquote{font-family:var(--serif);font-size:27px;font-style:italic;line-height:1.35;letter-spacing:-.02em;margin:40px 0;padding-left:26px;border-left:3px solid #99ac83}.case-outcome h3{font-size:22px;margin-bottom:16px}.case-outcome .source-note{font-size:11px!important;padding-top:26px;margin-top:28px;border-top:1px solid var(--line)}.next-cases{padding:40px 0 90px;border-top:1px solid var(--line)}.next-cases>div{display:grid;grid-template-columns:1fr 1fr;gap:80px;margin-top:30px}.next-cases>div>a{text-decoration:none;display:block}.next-cases a>span:first-child{font-size:11px;color:var(--muted)}.next-cases h3{font-size:30px;max-width:24ch;margin:18px 0}.image-dialog{width:min(1000px,95vw);max-width:95vw;max-height:94vh;border:0;padding:68px 24px 28px;background:var(--paper);color:var(--ink);border-radius:12px}.image-dialog::backdrop{background:#14251fea}.image-dialog>img{margin:0 auto;max-width:100%;height:auto}.dialog-close{position:fixed;right:max(4vw,calc((100vw - 950px)/2));top:5vh;border:1px solid var(--ink);border-radius:6px;background:var(--paper);font-size:13px;padding:10px 20px;min-height:44px;box-shadow:0 2px 10px #0002}.image-dialog>p{font-size:12px;margin-top:20px}
@media(min-width:1500px){.hero{padding-block:85px}.hero-visual{height:530px}}
@media(max-width:1050px){.wrap{width:calc(100% - 64px)}.hero{gap:30px}.hero h1{font-size:57px}.hero-intro{font-size:16px}.hero-visual{height:425px}.project-row{gap:38px}.project-copy h3{font-size:32px}.project-visual{height:405px}.story-grid{gap:55px}.story-title h2{font-size:41px}.case-body{grid-template-columns:170px 1fr;gap:40px}.contact{padding:58px}.downloads{gap:60px}.case-context{gap:60px}.case-feature .project-visual{height:510px}}
@media(max-width:760px){.wrap{width:calc(100% - 40px)}.site-header{min-height:86px;gap:15px;align-items:flex-start;padding-top:23px}.wordmark{font-size:23px}.main-nav{gap:17px;font-size:12px;flex-wrap:wrap;justify-content:flex-end}.main-nav a{padding:3px 0;min-height:32px}.main-nav .nav-contact{display:inline-flex;gap:6px}.edition-bar{font-size:10px;padding-top:12px;gap:15px}.edition-bar nav{gap:13px}.hero{grid-template-columns:1fr;gap:35px;padding:47px 0 42px}.hero h1{font-size:clamp(48px,11.5vw,72px);line-height:1.04;margin-bottom:22px}.hero-copy .eyebrow{font-size:9px;margin-bottom:21px}.hero-intro{font-size:17px;max-width:50ch}.actions{margin-top:24px;gap:10px}.button{font-size:12px;gap:24px;padding-inline:18px;min-height:49px}.hero-note{margin-top:22px;font-size:10px}.hero-visual{height:450px}.hero-visual .primary-screen{width:38%;left:11%;top:68px}.hero-visual .secondary-screen{width:38%;right:11%;top:107px}.hero-project-label{font-size:10px;gap:8px}.experience-strip{display:grid;grid-template-columns:1fr 1fr;gap:18px 15px;padding:24px 0}.experience-strip>span{grid-column:1/-1;max-width:none;font-size:8px}.experience-strip p{font-size:15px}.experience-strip small{display:inline;margin-left:8px}.selected-work{padding:64px 0}.section-heading{display:block;margin-bottom:32px}.section-heading h2{font-size:37px;max-width:18ch;margin-top:16px}.section-heading>p:last-child{margin-top:18px;font-size:15px;max-width:40ch}.project-row{grid-template-columns:1fr;gap:25px;margin-top:52px}.project-visual{height:380px}.project-copy{max-width:100%}.project-index{margin-bottom:15px;font-size:19px;gap:18px}.project-index span{font-size:8px}.project-copy h3{font-size:32px;max-width:23ch;margin-bottom:15px}.project-copy>p:not(.project-index):not(.project-role){font-size:16px}.project-role{margin:18px 0 12px}.text-link{font-size:12px;min-height:44px}.story{padding:60px 0 230px}.story-grid{grid-template-columns:1fr;gap:32px}.story-title h2{font-size:40px;margin:18px 0 20px}.serif-note{font-size:23px}.story-copy{font-size:16px}.capabilities{padding:64px 0}.capabilities>h2{font-size:37px}.capability-grid{grid-template-columns:1fr;gap:28px;margin-top:30px}.capability-grid>div{display:grid;grid-template-columns:30px 1fr;gap:0 20px;padding-top:18px}.capability-grid h3{font-size:24px;margin:2px 0 12px}.capability-grid p{grid-column:2;font-size:15px}.downloads{grid-template-columns:1fr;gap:34px;padding:50px 0 60px}.downloads h2{font-size:36px}.download-list>a{padding:20px 0}.editable-links{gap:30px}.editable-links>a{min-height:44px;display:flex;align-items:center}.contact{padding:40px 26px;border-radius:14px}.contact h2{font-size:39px}.contact .eyebrow{font-size:9px}.contact>p:not(.eyebrow){font-size:15px}.email-link{font-size:17px;margin-top:25px;letter-spacing:-.035em}.email-link span{margin-left:8px}.contact-meta{gap:18px;margin-top:28px;font-size:10px}.contact-meta>span{width:100%}.contact-meta>a{min-height:44px;display:flex;align-items:center}.site-footer{flex-wrap:wrap;font-size:9px;gap:12px;padding:26px 0}.site-footer>span:nth-child(2){order:3;width:100%}.site-footer>a{margin-left:auto}.case-header{padding-top:24px}.back-link{margin-bottom:30px;min-height:44px;display:flex;align-items:center}.case-header>.eyebrow{font-size:9px;max-width:45ch}.case-header h1{font-size:45px}.case-deck{font-size:17px;margin-top:20px}.case-facts{grid-template-columns:1fr 1fr;gap:20px;margin-top:30px;padding-top:22px}.case-facts>div:last-child{grid-column:1/-1}.case-facts dd{font-size:13px}.case-facts dt{font-size:9px}.work-stage{display:block;font-size:11px;margin:24px 0}.work-stage strong{display:block;margin-bottom:5px}.case-feature .project-visual{height:385px}.case-feature .primary-screen{width:37%;left:12%;top:56px}.case-feature .secondary-screen{width:37%;right:10%;top:115px}.case-feature .insights .primary-screen{width:39%;left:10%;top:65px}.case-feature .insights .secondary-screen{width:49%;right:5%;top:185px}.case-feature .oak .primary-screen{width:90%;left:5%;top:82px}.case-feature .oak .secondary-screen{width:43%;right:5%;top:197px}.case-context{grid-template-columns:1fr;gap:36px;padding:50px 0}.case-context h2{font-size:30px;margin:15px 0}.case-body{grid-template-columns:1fr;gap:30px}.case-nav{position:static}.case-nav nav{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0 8px}.case-nav a{font-size:11px;min-height:44px}.decision{padding-top:24px;margin-bottom:48px}.decision h2{font-size:32px;margin:17px 0}.decision-copy>p:not(.eyebrow){font-size:16px}.evidence-images{padding:22px;gap:13px;border-radius:9px}.phone .evidence-images img,.phone-crop .evidence-images img{width:250px}.phone-crop .evidence-images{height:640px}.pair .evidence-images{padding:20px 12px}.pair .evidence-images img{width:calc(50% - 6px)}.detail .evidence-images{padding:32px 18px}.wide .evidence-images{padding:12px}figcaption{display:block;font-size:10px;margin-top:11px}.expand-image{display:block;font-size:11px}.case-outcome{padding:26px 0 50px}.case-outcome h2{font-size:34px}.case-outcome>p:not(.eyebrow){font-size:16px}.case-outcome blockquote{font-size:24px;margin:28px 0;padding-left:18px}.next-cases{padding:30px 0 55px}.next-cases>div{grid-template-columns:1fr;gap:30px}.next-cases h3{font-size:28px}.image-dialog{padding:65px 12px 22px}.dialog-close{right:5vw;top:4vh}}
@media(max-width:380px){.wrap{width:calc(100% - 32px)}.wordmark{font-size:21px}.main-nav{gap:12px;font-size:11px}.hero h1{font-size:44px}.hero-visual{height:380px}.hero-project-label>span:first-child{display:none}.hero-intro{font-size:16px}.button{padding-inline:15px;gap:16px}.email-link{font-size:15px}.contact{padding:34px 22px}.project-visual{height:345px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{body{background:white;font-size:11pt}.site-header,.edition-bar,.site-footer,.case-nav,.contact,.image-dialog,.skip-link,.expand-image{display:none!important}.wrap{width:100%}.case-body{display:block}.decision{break-inside:avoid}.case-feature{display:none}.case-context{padding:25px 0}.evidence-images{max-height:600px}.case-header h1{font-size:38pt}a{color:inherit}.source-note{font-size:9pt!important}}

.portrait-note{display:flex;align-items:center;gap:22px}.portrait-note img{width:104px;height:125px;object-fit:cover;border-radius:6px}.portrait-note .serif-note{font-size:22px}

/* Keep the editorial illustration outside the reading area. */
.story{padding-bottom:360px;background:#eeeee3}
@media(max-width:760px){.hero{gap:22px}.hero-copy{display:contents}.hero-copy .eyebrow{order:1;margin:0}.hero h1{order:2;margin:0}.hero .actions{order:3;margin:0 0 6px}.hero-project{order:4}.hero-intro{order:5;margin-top:6px}.hero-note{order:6;margin:0}.hero-visual{height:390px}.story{padding-bottom:260px}}
.visual-footnote{display:none}.image-controls{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end}@media(max-width:760px){.image-controls{justify-content:flex-start}}
/* Put meaningful case evidence in the opening view. */
.case-opening{display:grid;grid-template-columns:1.06fr 1fr;gap:58px;align-items:center;padding-top:30px}.case-opening .case-header{padding-top:0}.case-opening .back-link{margin-bottom:28px}.case-opening .case-header h1{font-size:clamp(46px,4.5vw,64px);max-width:20ch}.case-opening .case-deck{font-size:17px;margin-top:22px}.case-opening .case-feature{padding-top:32px}.case-opening .case-feature .project-visual{height:465px}.case-opening .case-feature .primary-screen{width:39%;left:10%;top:78px}.case-opening .case-feature .secondary-screen{width:37%;right:8%;top:158px}.case-opening .case-feature .insights .secondary-screen{width:49%;right:6%;top:230px}.case-opening .case-feature .oak .primary-screen{width:84%;left:6%;top:76px}.case-opening .case-feature .oak .secondary-screen{width:30%;right:5%;top:238px}.case-meta .case-facts{margin-top:35px}.case-meta .work-stage{margin-bottom:0}.case-context{padding-top:65px}
@media(max-width:760px){.case-opening{display:grid;grid-template-columns:1fr;gap:19px;padding-top:22px}.case-opening .case-header{display:contents}.case-opening .back-link{order:1;margin:0}.case-opening .case-header>.eyebrow{order:2;margin:0}.case-opening .case-header h1{order:3;font-size:42px;margin:0}.case-opening .case-feature{order:4;padding:0;margin-top:10px}.case-opening .case-deck{order:5;margin-top:8px;font-size:17px}.case-opening .case-feature .project-visual{height:370px}.case-meta .case-facts{margin-top:30px}.case-opening .case-feature .primary-screen{top:58px}.case-opening .case-feature .secondary-screen{top:115px}.case-opening .case-feature .insights .secondary-screen{top:188px}.case-opening .case-feature .oak .secondary-screen{top:180px}}
@media(min-width:761px){.phone .evidence-images img,.phone-crop .evidence-images img{width:340px}}
@media(max-width:760px){.main-nav a{min-height:44px}.site-header{min-height:90px}}

/* Research: documentary evidence on an ink-and-paper canvas. */
.edition-research{--ink:#202f3c;--muted:#53616b;--green:#354f64;--lime:#efcd83;--line:#ccd1d3;--paper:#f3f2eb}
.edition-research .hero-intro{color:var(--muted)}
.edition-research .brand-dot{color:#997028}
.edition-research .story{background:#e9edf0}
.edition-research .evidence-images{background:#e3e8eb}
.edition-research .case-outcome blockquote{border-color:#ba9149}
.project-visual.survey{background:#dbe4e9}
.project-visual.qualitative{background:#e4e0d4}
.project-visual.evaluation{background:#dce4df}
.project-visual:is(.survey,.qualitative,.evaluation) .primary-screen{width:89%;left:5.5%;top:85px;border:0;border-radius:4px;transform:none;z-index:1}
.project-visual:is(.survey,.qualitative,.evaluation) .secondary-screen{width:45%;right:5%;top:285px;border:4px solid var(--paper);border-radius:4px;transform:rotate(3deg);z-index:2}
.project-visual.qualitative .secondary-screen{top:265px;width:52%}
.project-visual.evaluation .primary-screen{top:90px}
.case-opening .case-feature .project-visual:is(.survey,.qualitative,.evaluation) .primary-screen{width:89%;left:5.5%;top:80px}
.case-opening .case-feature .project-visual:is(.survey,.qualitative,.evaluation) .secondary-screen{width:47%;right:5%;top:290px}
.edition-research .hero h1{font-size:clamp(49px,5.05vw,73px)}
.edition-research a:focus-visible,.edition-research button:focus-visible{outline-color:#976718}
@media(max-width:1050px) and (min-width:761px){.project-visual:is(.survey,.qualitative,.evaluation) .secondary-screen{top:255px}.edition-research .hero h1{font-size:54px}}
@media(max-width:760px){.edition-bar{flex-wrap:wrap;row-gap:8px}.edition-bar nav{gap:20px;min-height:36px;align-items:center}.edition-bar nav a{min-height:36px;display:flex;align-items:center}.edition-research .hero h1{font-size:clamp(44px,11vw,65px)}.project-visual:is(.survey,.qualitative,.evaluation) .primary-screen,.case-opening .case-feature .project-visual:is(.survey,.qualitative,.evaluation) .primary-screen{top:70px;width:91%;left:4.5%}.project-visual:is(.survey,.qualitative,.evaluation) .secondary-screen,.case-opening .case-feature .project-visual:is(.survey,.qualitative,.evaluation) .secondary-screen{top:247px;width:47%}.project-visual.qualitative .secondary-screen{width:53%;top:235px}.edition-research .project-visual{height:350px}.edition-research .hero-visual{height:350px}}
.suite-intro{padding:65px 0 85px;max-width:950px}.suite-intro h1{margin:22px 0 30px;font-size:clamp(52px,6.2vw,88px)}.suite-intro>p:last-child{font-size:20px;color:var(--muted);max-width:56ch}.suite-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;padding-bottom:90px}.suite-edition{border-top:1px solid var(--line);padding-top:22px}.suite-image{display:block;text-decoration:none;margin-bottom:28px}.suite-edition .project-visual{height:285px;border-radius:10px}.suite-edition .visual-caption{left:18px;right:18px;top:17px;font-size:9px}.suite-edition .primary-screen{top:57px!important}.suite-edition .secondary-screen{top:174px!important}.suite-edition h2{font-size:34px;margin:17px 0 20px}.suite-edition h2 a{text-decoration:none}.suite-edition>p:not(.eyebrow){font-size:15px;color:var(--muted)}.suite-edition>.text-link{margin-top:22px}.suite-edition .eyebrow{font-size:9px}
@media(max-width:1000px){.suite-grid{grid-template-columns:1fr;gap:50px;max-width:720px}.suite-edition .project-visual{height:400px}.suite-edition .primary-screen{top:72px!important}.suite-edition .secondary-screen{top:250px!important}.suite-edition h2{max-width:25ch}}
@media(max-width:760px){.suite-intro{padding:35px 0 50px}.suite-intro h1{font-size:49px}.suite-intro>p:last-child{font-size:17px}.suite-edition .project-visual{height:320px}.suite-edition .secondary-screen{top:210px!important}.suite-grid{padding-bottom:55px}}
/* Keep every evidence label visible; the original companion belongs in the case. */
.project-visual:is(.survey,.qualitative,.evaluation) .secondary-screen{display:none}
.project-visual:is(.survey,.qualitative,.evaluation) .primary-screen,.case-opening .case-feature .project-visual:is(.survey,.qualitative,.evaluation) .primary-screen{width:90%;height:calc(100% - 105px);left:5%;top:75px;object-fit:contain;object-position:center;background:transparent;box-shadow:none}
@media(max-width:760px){.project-visual:is(.survey,.qualitative,.evaluation) .primary-screen,.case-opening .case-feature .project-visual:is(.survey,.qualitative,.evaluation) .primary-screen{top:66px;height:calc(100% - 90px)}}
.image-dialog{padding:0 24px 24px;overscroll-behavior:contain}.dialog-toolbar{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:18px;padding:14px 0;background:var(--paper)}.dialog-toolbar button,.dialog-toolbar a{font-size:12px;min-height:44px;display:inline-flex;align-items:center;padding:8px 12px;border:1px solid var(--line);background:var(--paper);border-radius:4px;text-decoration:none;white-space:nowrap}.dialog-toolbar .dialog-close{position:static;margin-left:auto;box-shadow:none;border-color:var(--ink)}.image-dialog.zoomed>img{max-width:none;width:auto}.image-dialog>img{margin-top:8px}.image-dialog.zoomed .dialog-toolbar{position:sticky;left:0;width:100%}
@media(max-width:760px){.image-dialog{padding:0 12px 18px}.dialog-toolbar{gap:7px;padding-block:10px}.dialog-toolbar button,.dialog-toolbar a{font-size:11px;padding-inline:9px}}
.visual-state{position:absolute;bottom:16px;left:24px;right:24px;font-size:10px;line-height:1.5;color:var(--ink)}
@media(max-width:760px){.visual-state{left:20px;right:20px;bottom:14px;font-size:9px}}

/* Applied AI: warm clay, precise diagrams, and original teaching material. */
.edition-ai{--ink:#332c2a;--muted:#685b55;--green:#8b4934;--lime:#ecd09b;--line:#d7cec7;--paper:#f4f2e9}
.edition-ai .hero h1{font-size:clamp(48px,4.65vw,67px)}
.edition-ai .hero-intro{color:var(--muted)}
.edition-ai .brand-dot{color:#9b4e35}
.edition-ai .story{background:#ebe5da}
.edition-ai .evidence-images{background:#e9dfd6}
.edition-ai .case-outcome blockquote{border-color:#ac735a}
.edition-ai a:focus-visible,.edition-ai button:focus-visible{outline-color:#9b4e35}
.project-visual.prompt{background:#e8d8cf}
.project-visual.evidence-tool{background:#dfe3d9}
.project-visual.teaching{background:#e5e1ef}
.project-visual:is(.prompt,.evidence-tool,.teaching) .primary-screen,.case-opening .case-feature .project-visual:is(.prompt,.evidence-tool,.teaching) .primary-screen{width:90%;height:calc(100% - 120px);left:5%;top:73px;object-fit:contain;object-position:center;background:transparent;border:0;border-radius:0;box-shadow:none;transform:none}
.project-visual:is(.prompt,.evidence-tool,.teaching) .secondary-screen{display:none}
.case-external{display:flex;gap:30px;flex-wrap:wrap;padding-top:24px}.case-external .text-link{font-size:12px}
.practice-spotlight{padding:54px 0 85px;border-top:1px solid var(--line)}.practice-spotlight>div:first-child{display:grid;grid-template-columns:1fr 1fr;gap:22px 70px}.practice-spotlight .eyebrow{grid-column:1/-1}.practice-spotlight h2{max-width:21ch;font-size:43px}.practice-spotlight>div>p:last-child{font-size:17px;color:var(--muted)}.practice-spotlight .evidence-figure{margin-top:38px}.practice-spotlight .evidence-images{padding:28px;background:#e9dfd6}
@media(max-width:760px){.edition-ai .hero h1{font-size:clamp(43px,10.6vw,62px)}.edition-ai .hero-visual{height:355px}.project-visual:is(.prompt,.evidence-tool,.teaching) .primary-screen,.case-opening .case-feature .project-visual:is(.prompt,.evidence-tool,.teaching) .primary-screen{top:63px;height:calc(100% - 113px)}.practice-spotlight{padding:36px 0 58px}.practice-spotlight>div:first-child{grid-template-columns:1fr;gap:18px}.practice-spotlight h2{font-size:34px}.practice-spotlight>div>p:last-child{font-size:16px}.practice-spotlight .evidence-images{padding:12px}.case-external{gap:16px}}
.suite-shortcuts{display:flex;flex-wrap:wrap;gap:12px;margin-top:30px}.suite-intro>p:not(.eyebrow){font-size:20px;color:var(--muted);max-width:56ch}
@media(max-width:760px){.suite-intro>p:not(.eyebrow){font-size:17px}.suite-shortcuts{gap:10px;margin-top:24px}.suite-shortcuts .button{padding-inline:14px;gap:14px}}

/* Throughline: a small bespoke raster identity and a calmer evidence-first rhythm. */
:root { --radius: 24px; --shadow-soft: 0 16px 42px #192b2510; }
body { overflow-wrap:anywhere; }
:where(.hero,.case-opening,.case-facts,.case-context-detail,.case-body,.case-brief>dl,.download-grid,.download-card,.detail-tradeoffs,.native-facts,.interaction-flow)>* { min-width:0; }
.ui-icon { display:inline-block; width:24px; height:24px; flex:0 0 24px; object-fit:contain; vertical-align:middle; }
.ui-icon.direction-ne { transform:rotate(-45deg); }
.ui-icon.direction-down { transform:rotate(90deg); }
.ui-icon.direction-up { transform:rotate(-90deg); }
.ui-icon.direction-back { transform:rotate(180deg); }
.wordmark { display:inline-flex; align-items:center; gap:10px; min-height:44px; max-width:100%; letter-spacing:-.055em; white-space:normal; }
.brand-mark { width:37px; height:37px; flex-shrink:0; object-fit:contain; }
.wordmark-text { display:inline-block; min-width:0; line-height:1.15; }
.text-link,.button,.back-link,.nav-contact { align-items:center; }
.button { border-radius:100px; min-height:52px; }
.button .ui-icon,.text-link .ui-icon { width:21px; height:21px; flex-basis:21px; }
.button.primary .ui-icon,.contact .ui-icon { filter:brightness(0) invert(96%) sepia(8%) saturate(265%); }
.contact :focus-visible { outline:3px solid var(--lime); outline-offset:5px; }
.edition-bar nav a { min-height:44px; display:inline-flex; align-items:center; position:relative; }
.edition-bar { padding-top:6px; padding-bottom:4px; }
.edition-bar nav { align-items:center; }
.edition-bar nav a[aria-current] { color:var(--ink); font-weight:600; }
.edition-bar nav a[aria-current]::after { content:''; position:absolute; bottom:4px; left:0; width:100%; height:2px; background:currentColor; border-radius:2px; }
.hero { padding-top:70px; padding-bottom:65px; }
.hero h1 { letter-spacing:-.055em; }
.hero-intro { line-height:1.65; }
.hero-note { font-size:12px; line-height:1.7; }
.hero-project,.project-image-link,.suite-image { isolation:isolate; }
.project-visual { border:1px solid #192b250b; border-radius:28px 28px 70px 28px; box-shadow:var(--shadow-soft); }
.visual-caption { display:flex; align-items:center; font-size:12px; }
.visual-caption .ui-icon { margin-left:auto; width:22px; height:22px; }
.visual-state { font-size:11px; line-height:1.6; }
.project-visual .screens img { transition:transform .32s ease,translate .32s ease; }
.project-image-link:hover .primary-screen,.hero-project:hover .primary-screen { translate:0 -4px; }
.hero-project-label { min-height:44px; font-size:12px; }
.hero-project-label .ui-icon { margin-left:auto; }
.project-row { padding:24px 0; gap:clamp(38px,5vw,78px); }
.project-row + .project-row { border-top:1px solid var(--line); padding-top:64px; }
.project-index span,.project-role { font-size:12px; line-height:1.65; }
.project-copy>p:not(.project-index):not(.project-role) { line-height:1.7; }
.project-copy .text-link { font-size:14px; }
.experience-strip>span { font-size:10px; max-width:105px; flex-shrink:0; }
.experience-strip small { font-size:11px; }
.section-heading>p:last-child { font-size:17px; line-height:1.7; }
.story { padding:90px 0 330px; background:#f0eee5; }
.story-title h2 { max-width:15ch; }
.story-copy { font-size:17px; line-height:1.8; }
.portrait-note { align-items:center; margin-top:34px; }
.portrait-note img { width:124px; height:151px; border-radius:50% 50% 36% 36%; }
.portrait-note .serif-note { font-size:23px; line-height:1.3; }
.education { font-size:13px; }
.capability-grid p { font-size:16px; line-height:1.7; }
.downloads { display:block; padding:72px 0 90px; }
.downloads-intro { max-width:710px; margin-bottom:36px; }
.downloads h2 { max-width:none; }
.downloads-intro>p:not(.eyebrow) { max-width:56ch; }
.download-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.download-card { display:grid; grid-template-columns:38% 1fr; min-width:0; background:#fffdf7; border:1px solid var(--line); border-radius:22px; overflow:hidden; box-shadow:0 8px 24px #192b2506; }
.download-preview { display:flex; align-items:center; justify-content:center; min-width:0; padding:24px; background:#e8ebdf; text-decoration:none; overflow:hidden; }
.download-preview img { width:100%; object-fit:contain; box-shadow:0 5px 16px #192b251a; transition:transform .25s; }
.download-preview:hover img { transform:translateY(-3px); }
.download-preview--deck { background:#e9e3d8; }
.download-card-body { align-self:center; padding:28px 22px; min-width:0; }
.download-card h3 { font-size:25px; line-height:1.2; }
.download-meta { font-size:12px!important; line-height:1.7; margin:12px 0 15px; }
.download-actions { display:flex; flex-wrap:wrap; gap:12px; }
.download-actions a { min-height:44px; display:inline-flex; align-items:center; gap:12px; font-size:14px; }
.download-editable { display:inline-flex; align-items:center; gap:10px; min-height:44px; font-size:12px; margin-top:8px; }
.download-editable .ui-icon { width:20px; height:20px; }
.contact { border-radius:32px 32px 72px 32px; }
.contact>p:not(.eyebrow) { font-size:17px; line-height:1.7; }
.contact .eyebrow { color:#d7e2d7; }
.email-link { display:inline-flex; align-items:center; gap:24px; }
.email-link .ui-icon { flex-shrink:0; }
.contact-meta { font-size:13px; }
.contact-meta a { display:inline-flex; align-items:center; gap:8px; min-height:44px; }
.site-footer { font-size:12px; align-items:center; }
.site-footer a { display:inline-flex; gap:8px; min-height:44px; align-items:center; }
.case-opening { gap:44px; padding-top:25px; }
.case-opening .case-header h1 { font-size:clamp(42px,4.5vw,65px); }
.back-link { display:inline-flex; gap:8px; font-size:13px; }
.case-reading-time { font-size:12px; color:var(--muted); margin-top:18px; }
.case-facts dt,.work-stage strong { font-size:11px; }
.case-facts dd { font-size:15px; line-height:1.6; }
.work-stage { font-size:13px; line-height:1.7; }
.case-brief { padding-top:34px; }
.case-brief>dl { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:26px; margin:0; padding:30px; border:1px solid var(--line); border-radius:20px; background:#fffdf77a; }
.brief-item { min-width:0; }
.brief-item dt { font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.09em; margin-bottom:12px; }
.brief-item dd { margin:0; font-size:15px; line-height:1.7; }
.case-context { padding:64px 0 38px; }
.case-context p:not(.eyebrow),.case-context-detail p { font-size:17px; line-height:1.75; }
.case-context-detail { display:grid; grid-template-columns:1.2fr 1fr; gap:64px; padding-top:54px; margin-bottom:52px; }
.detail-contribution { padding-top:4px; }
.detail-contribution>.eyebrow { margin-bottom:22px; }
.detail-contribution>p:not(.eyebrow) { font-size:16px; }
.case-context-detail h2 { max-width:27ch; font-size:36px; margin-bottom:24px; }
.case-context-detail p+p { margin-top:18px; }
.case-context-detail>.case-disclosure { max-width:85ch; }
.case-body { grid-template-columns:190px minmax(0,1fr); gap:64px; }
.case-nav { top:28px; }
.case-nav a { min-height:44px; display:flex; align-items:center; padding:8px 12px; border-left:2px solid transparent; font-size:13px; }
.case-nav nav { gap:8px; margin-top:16px; }
.case-nav a[aria-current=location] { background:#e5e9dd; border-left-color:var(--green); color:var(--ink); border-radius:0 8px 8px 0; }
.decision { padding-top:34px; margin-bottom:74px; }
.decision h2 { line-height:1.16; max-width:28ch; }
.decision-copy>p:not(.eyebrow) { font-size:18px; line-height:1.75; }
.decision-detail { margin-top:26px; }
.decision-detail p { font-size:16px; color:var(--muted); line-height:1.75; }
.case-disclosure { margin:24px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.case-disclosure summary { cursor:pointer; font-size:15px; font-weight:500; padding:19px 3px; min-height:56px; line-height:1.6; }
.case-disclosure summary:focus-visible { outline:3px solid var(--green); outline-offset:4px; }
.case-disclosure .detail-body { padding:2px 0 24px; }
.detail-body p+p { margin-top:20px; }
.detail-body h3 { font-size:20px; line-height:1.3; margin:20px 0 10px; }
.detail-body ul { padding-left:22px; }
.detail-body li { font-size:16px; line-height:1.75; color:var(--muted); margin-top:10px; }
.detail-tradeoffs { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.detail-tradeoffs dt { font-size:13px; font-weight:600; margin-bottom:10px; }
.detail-tradeoffs dd { margin:0; font-size:16px; line-height:1.75; color:var(--muted); }
.case-context-detail .case-disclosure { max-width:85ch; }
.case-disclosure summary { display:flex; align-items:center; justify-content:space-between; gap:18px; list-style:none; }
.case-disclosure summary::-webkit-details-marker { display:none; }
.case-disclosure[open]>summary .ui-icon { transform:rotate(-90deg); }
.state-table-wrap:focus-visible { outline:3px solid var(--green); outline-offset:4px; }
.native-evidence { margin:30px 0; }
.native-evidence h3 { font-size:23px; line-height:1.3; margin-bottom:20px; }
.native-evidence>p { font-size:13px; line-height:1.75; margin-top:14px; }
.prompt-quote { margin:24px 0; padding:24px; background:#eee5d9; border-left:3px solid var(--green); border-radius:0 18px 18px 0; }
.prompt-quote p { font-size:17px; line-height:1.75; color:var(--ink); }
.evidence-code { padding:22px; background:#e8e9df; border:1px solid var(--line); border-radius:14px; font-size:13px; line-height:1.8; white-space:pre-wrap; overflow-wrap:anywhere; word-break:break-word; }
.evidence-code:focus-visible { outline:3px solid var(--green); outline-offset:4px; }
.evidence-checklist { padding-left:22px; font-size:16px; line-height:1.75; }
.evidence-checklist li { margin-bottom:14px; }
.stack .evidence-images { flex-direction:column; align-items:center; gap:28px; }
.stack .evidence-images img { width:100%; max-width:805px; border-radius:5px; }
.wide .evidence-images img,.stack .evidence-images img,.detail .evidence-images img { max-width:min(100%,var(--source-width)); }
.native-evidence dl { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; padding:24px; background:#e8ebdf; border-radius:18px; }
.native-evidence dt { font-size:12px; color:var(--muted); }
.native-evidence dd { margin:6px 0 0; font-size:24px; line-height:1.3; letter-spacing:-.03em; }
.detail-callout { margin:26px 0; padding:24px 28px; border-left:3px solid var(--green); background:#e7eadf80; border-radius:0 18px 18px 0; }
.detail-callout strong,.detail-callout h3 { display:block; font-size:12px; line-height:1.6; letter-spacing:.06em; text-transform:uppercase; margin-bottom:12px; }
.detail-callout p { color:var(--ink); font-size:18px; line-height:1.65; }
.detail-flow h3 { font-size:25px; line-height:1.3; margin:28px 0 18px; }
.detail-flow p+p { margin-top:18px; }
.interaction-flow { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); list-style:none; padding:0; margin:30px 0; gap:14px; counter-reset:flow; }
.interaction-flow li { padding:20px 16px; background:#e8ebdf; border-radius:18px; counter-increment:flow; }
.interaction-flow .flow-step-number { display:block; font-family:var(--serif); font-size:23px; color:var(--green); margin-bottom:16px; }
.interaction-flow h4,.interaction-flow h3 { font-size:17px; line-height:1.3; margin:0 0 12px; letter-spacing:-.02em; }
.interaction-flow p { font-size:14px; line-height:1.65; }
.state-table-wrap { margin:28px 0; max-width:100%; }
.state-table { width:100%; table-layout:fixed; border-collapse:collapse; font-size:14px; line-height:1.65; text-align:left; overflow-wrap:anywhere; }
.state-table caption { text-align:left; font-weight:500; font-size:17px; margin-bottom:16px; }
.state-table th { font-size:12px; font-weight:600; background:#e7eadf; }
.state-table th,.state-table td { padding:17px 16px; border-bottom:1px solid var(--line); vertical-align:top; }
.state-table td:first-child { font-weight:500; width:27%; }
.state-table td:last-child { color:var(--muted); width:24%; }
.evidence-images { border-radius:22px; padding:36px; background:#e5e9df; }
.evidence-images img { box-shadow:0 10px 30px #192b2514; }
figcaption { font-size:13px; line-height:1.75; align-items:flex-start; gap:24px; }
figcaption>span { flex:1; }
.image-controls { gap:4px; flex-shrink:0; max-width:210px; }
.expand-image { display:inline-flex; align-items:center; gap:7px; font-size:13px; line-height:1.5; text-decoration:underline; white-space:normal; min-height:44px; }
.expand-image .ui-icon { width:19px; height:19px; flex-basis:19px; }
.case-timeline { padding:35px 0 50px; border-top:1px solid var(--line); }
.case-timeline h2 { font-size:31px; margin-bottom:27px; }
.timeline-list { list-style:none; margin:0; padding:0 0 0 22px; border-left:2px solid var(--line); }
.timeline-list li { position:relative; padding:0 0 28px 12px; }
.timeline-list li:last-child { padding-bottom:0; }
.timeline-list li::before { content:''; position:absolute; width:10px; height:10px; top:8px; left:-28px; background:var(--paper); border:2px solid var(--green); border-radius:50%; }
.timeline-list h3 { font-size:21px; line-height:1.35; margin:5px 0 10px; }
.timeline-list time,.timeline-date { font-size:12px; color:var(--muted); }
.timeline-list p { font-size:16px; line-height:1.7; color:var(--muted); }
.case-reflection { margin-top:32px; }
.case-reflection h3 { font-size:26px; line-height:1.25; margin:20px 0; }
.case-outcome .source-note { font-size:13px!important; line-height:1.75; }
.next-cases>div { gap:30px; }
.next-cases>div>a { padding:27px; border:1px solid var(--line); border-radius:20px; background:#fffdf750; }
.next-cases>div>a:hover { background:#fffdf7; }
.image-dialog { border-radius:18px; }
.dialog-toolbar { flex-wrap:wrap; }
.dialog-toolbar button,.dialog-toolbar a { font-size:13px; }
.not-found { padding:90px 0 140px; }
.not-found h1 { max-width:16ch; margin:20px 0 30px; }
.not-found p { color:var(--muted); margin-bottom:30px; }
.not-found-routes { display:flex; flex-wrap:wrap; gap:14px; }
@media (min-width:761px) {
  .project-row:nth-of-type(2) { grid-template-columns:1fr 1.17fr; }
  .project-row:nth-of-type(2) .project-image-link { order:2; }
  .project-row:nth-of-type(2) .project-copy { order:1; }
}
@media (max-width:1100px) {
  .download-card { grid-template-columns:1fr; }
  .download-preview { height:220px; }
  .download-preview--resume img { width:auto; height:100%; }
  .download-preview--deck img { max-width:300px; }
  .download-card-body { padding:25px; }
  .case-body { gap:36px; grid-template-columns:165px minmax(0,1fr); }
  .case-brief>dl { gap:20px; padding:25px; }
}
@media (max-width:760px) {
  .interaction-flow { grid-template-columns:1fr 1fr; }
  .native-evidence.is-trace table,.native-evidence.is-trace tbody,.native-evidence.is-trace tr,.native-evidence.is-trace td { display:block; width:100%; }
  .native-evidence.is-trace caption { display:block; width:100%; font-size:13px; font-weight:400; line-height:1.75; margin-bottom:22px; }
  .native-evidence.is-trace thead { position:absolute; width:1px; height:1px; overflow:hidden; clip-path:inset(50%); }
  .native-evidence.is-trace tr { padding:18px 20px; border:1px solid var(--line); border-radius:16px; margin-bottom:16px; background:#fffdf760; }
  .native-evidence.is-trace td,.native-evidence.is-trace td:first-child,.native-evidence.is-trace td:last-child { width:100%; border:0; padding:0 0 16px; font-size:15px; }
  .native-evidence.is-trace td:last-child { padding-bottom:0; }
  .native-evidence.is-trace td::before { content:attr(data-label); display:block; font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.06em; margin-bottom:6px; color:var(--ink); }
  .native-evidence dl { padding:20px; gap:24px 16px; }
  .native-evidence dd { font-size:21px; }
  .wrap { width:calc(100% - 40px); }
  .site-header { align-items:center; flex-wrap:wrap; padding:15px 0 10px; gap:6px 18px; }
  .wordmark { font-size:24px; }
  .brand-mark { width:32px; height:32px; }
  .main-nav { font-size:12px; gap:20px; justify-content:flex-start; }
  .main-nav a { min-height:44px; }
  .edition-bar { row-gap:0; }
  .edition-bar nav { gap:24px; }
  .edition-bar nav a { min-height:44px; }
  .hero { padding:38px 0 42px; gap:28px; }
  .hero-copy { display:block; }
  .hero h1 { margin:20px 0 24px; }
  .hero .actions { margin:24px 0 0; }
  .hero-intro { margin:0; }
  .hero-note { margin-top:18px; }
  .hero-project { order:initial; }
  .hero-copy .eyebrow { font-size:10px; }
  .button { font-size:13px; padding-inline:19px; gap:16px; }
  .hero .actions { display:flex; flex-wrap:wrap; gap:10px; }
  .hero .actions .button { padding-inline:14px; gap:10px; font-size:12px; }
  .hero-visual { height:380px; }
  .hero-project-label { font-size:11px; }
  .project-visual { border-radius:22px 22px 50px 22px; }
  .visual-state { font-size:10px; }
  .section-heading h2 { max-width:19ch; }
  .project-row { padding:0; margin-top:42px; }
  .project-row+.project-row { padding-top:42px; }
  .project-copy h3 { font-size:34px; }
  .story { padding:62px 0 270px; }
  .story-grid { gap:35px; }
  .story-title h2 { font-size:42px; max-width:16ch; }
  .story-copy { font-size:17px; }
  .portrait-note img { width:108px; height:130px; }
  .downloads { padding:55px 0 65px; }
  .download-grid { gap:20px; }
  .download-card h3 { font-size:24px; }
  .download-card-body { padding:22px; }
  .download-preview { height:190px; padding:20px; }
  .contact { padding:38px 26px; border-radius:26px 26px 52px 26px; }
  .contact h2 { font-size:38px; }
  .contact-meta { font-size:12px; }
  .email-link { font-size:clamp(15px,4.1vw,22px); gap:10px; }
  .email-link .ui-icon { width:18px; flex-basis:18px; }
  .site-footer { font-size:11px; }
  .case-opening { grid-template-columns:1fr; gap:24px; }
  .case-opening .case-header { display:block; }
  .case-opening .case-header>.eyebrow { margin-top:20px; }
  .case-opening .case-header h1 { margin-top:16px; font-size:42px; }
  .case-opening .case-deck { margin-top:22px; }
  .case-opening .case-feature { order:initial; margin:0; }
  .case-brief>dl { grid-template-columns:1fr; padding:24px; gap:22px; }
  .brief-item+.brief-item { border-top:1px solid var(--line); padding-top:20px; }
  .brief-item dt { margin-bottom:7px; }
  .case-context { padding:45px 0 25px; }
  .case-context-detail { grid-template-columns:1fr; gap:24px; padding-top:40px; }
  .case-context-detail h2 { font-size:30px; }
  .case-body { grid-template-columns:1fr; gap:30px; }
  .case-nav nav { display:grid; grid-template-columns:1fr 1fr; gap:5px 10px; }
  .case-nav a { font-size:12px; }
  .decision-copy>p:not(.eyebrow) { font-size:17px; }
  .detail-tradeoffs { grid-template-columns:1fr; gap:18px; }
  .detail-callout { padding:21px 23px; }
  .detail-callout p { font-size:17px; }
  .state-table { font-size:13px; }
  .state-table th,.state-table td { padding:12px 9px; }
  .evidence-images { padding:22px; }
  figcaption { font-size:12px; }
  .image-controls { max-width:none; }
  .case-timeline h2 { font-size:29px; }
}
@media (max-width:520px) {
  .main-nav { width:100%; justify-content:space-between; }
  .download-grid { grid-template-columns:1fr; }
  .download-card { grid-template-columns:35% 1fr; }
  .download-preview { height:auto; min-height:235px; padding:15px; }
  .download-preview--resume img { width:100%; height:auto; }
  .download-card-body { padding:24px 19px; }
  .download-card h3 { font-size:23px; }
  .download-preview--deck img { width:150%; max-width:none; }
  .state-table { font-size:12px; }
  .state-table th,.state-table td { padding:12px 6px; overflow-wrap:anywhere; }
  .state-table td:first-child { width:29%; }
  .state-table td:nth-child(2) { color:var(--ink); width:auto; }
  .email-link { align-items:flex-start; }
  .case-opening .case-header h1 { font-size:38px; }
}
@media (max-width:359px) {
  .wrap { width:calc(100% - 32px); }
  .hero h1 { font-size:41px; }
  .edition-bar nav { gap:18px; }
  .button { padding-inline:15px; gap:10px; }
  .contact { padding-inline:20px; }
  .download-card { grid-template-columns:1fr; }
  .download-preview { min-height:0; height:180px; }
  .download-preview--resume img { width:auto; height:100%; }
  .download-preview--deck img { width:100%; max-width:245px; }
}
@media (prefers-reduced-motion:reduce) {
  .project-image-link:hover .primary-screen,.hero-project:hover .primary-screen,.download-preview:hover img { translate:none; transform:none; }
}
@media print {
  .case-disclosure .detail-body { display:block!important; }
  .download-grid { display:block; }
  .state-table th:nth-child(3),.state-table td:nth-child(3) { display:table-cell; }
}

/* Keep the four portfolio editions readable on the first scan. */
.edition-bar nav a { font-size:13px; }
.practice-spotlight .text-link { margin-top:22px; min-height:44px; }

@media(min-width:761px) {
  .practice-spotlight--compact { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.1fr); gap:60px; align-items:center; }
  .practice-spotlight--compact > div:first-child { display:block; }
  .practice-spotlight--compact > div > p:not(.eyebrow) { font-size:17px; color:var(--muted); line-height:1.75; }
  .practice-spotlight--compact h2 { margin-top:22px; margin-bottom:24px; }
  .practice-spotlight--compact .evidence-figure { margin:0; }
}

/* Role labels stack under the organization on small screens, as on desktop. */
@media (max-width:760px) { .experience-strip small { display:block; margin:2px 0 0; } }

/* Original evidence pairs. Every selector is scoped to this optional module. */
.source-comparison { margin:32px 0 24px; }
.source-comparison-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:26px; align-items:start; }
.source-comparison-panel { min-width:0; margin:0; }
.source-comparison-label { display:flex; align-items:baseline; gap:12px; margin:0 0 16px; color:var(--ink); }
.source-comparison-label h3 { font-size:21px; line-height:1.35; letter-spacing:-.025em; margin:0; }
.source-comparison-number { flex:0 0 auto; font-size:12px; font-weight:600; letter-spacing:.08em; color:var(--muted); }
.source-comparison-overview { overflow:hidden; border:1px solid var(--line); border-radius:12px; background:#eaf5ef; }
.source-comparison-overview img { display:block; width:100%; max-width:100%; height:auto; margin:0; }
.source-comparison-detail { margin-top:22px; padding-top:16px; border-top:1px solid var(--line); }
.source-comparison-detail-label { margin:0 0 10px; font-size:12px; font-weight:500; color:var(--muted); line-height:1.6; }
.source-comparison-detail-image { display:flex; align-items:center; justify-content:flex-start; min-height:98px; }
.source-comparison-detail-image img { display:block; width:auto; max-width:min(100%,var(--source-width)); height:auto; border:1px solid var(--line); }
.source-comparison-annotation { font-size:15px; line-height:1.7; color:var(--ink); margin:15px 0 0; }
.source-comparison-provenance { font-size:12px; line-height:1.75; color:var(--muted); margin:24px 0 0; max-width:none!important; }
.source-comparison-crop { position:relative; overflow:hidden; width:100%; max-width:var(--crop-width); background:#fff; }
.source-comparison-crop img { position:absolute; display:block; width:var(--image-width); max-width:none; height:auto; left:var(--image-left); top:var(--image-top); }
.source-comparison-original { margin-top:18px; }
@media (max-width:760px) {
  .source-comparison-grid { grid-template-columns:minmax(0,1fr); gap:34px; }
  .source-comparison-label h3 { font-size:22px; }
  .source-comparison-detail-image { min-height:0; }
  .source-comparison-annotation { font-size:16px; }
}
@media print {
  .source-comparison-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .source-comparison-panel { break-inside:avoid; }
}

/* Source-led case sequences; original pixels remain unchanged. */
.evidence-sequence { margin:32px 0; }
.evidence-sequence-list { list-style:none; padding:0; margin:0; }
.evidence-sequence-step { display:grid; grid-template-columns:210px minmax(0,1fr); gap:26px; padding:30px 0; border-top:1px solid var(--line); }
.evidence-sequence-copy, .evidence-sequence-proof { min-width:0; }
.evidence-sequence-copy .sequence-stage { margin:0 0 12px; color:var(--muted); font-size:12px; font-weight:600; line-height:1.6; }
.sequence-stage span { margin-right:8px; font-variant-numeric:tabular-nums; }
.evidence-sequence-copy h3 { margin:0 0 14px; font-size:24px; line-height:1.2; letter-spacing:-.025em; }
.evidence-sequence-copy > p:last-child { margin:0; font-size:16px; line-height:1.7; }
.sequence-figure { margin:0; }
.sequence-image { padding:12px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.sequence-image img { display:block; margin:0; width:100%; max-width:var(--source-width); height:auto; }
.sequence-figure > figcaption { display:block; padding:14px 0 0; font-size:12px; line-height:1.7; color:var(--muted); }
.sequence-figure > figcaption p { margin:0 0 9px; }
.sequence-figure .expand-image { justify-content:flex-start; }
.sequence-source-note { margin:22px 0 0; font-size:13px; line-height:1.7; color:var(--muted); max-width:75ch; }
.sequence-proposal { padding:22px 28px; border-left:3px solid var(--line); }
.sequence-proposal ol { margin:0; padding-left:22px; }
.sequence-proposal li { margin:0 0 14px; line-height:1.7; }
.sequence-proposal li:last-child { margin-bottom:0; }
@media (max-width:1100px) {
 .evidence-sequence-step { grid-template-columns:minmax(0,1fr); gap:20px; }
 .evidence-sequence-copy h3 { max-width:24ch; }
 .evidence-sequence-copy > p:last-child { max-width:65ch; }
}
@media (max-width:760px) {
 .evidence-sequence { margin:24px 0; }
 .evidence-sequence-step { padding:26px 0; }
 .sequence-image { padding:7px; border-radius:8px; }
 .sequence-figure > figcaption { font-size:13px; }
 .sequence-proposal { padding:12px 0 12px 18px; }
}
@media print {
 .evidence-sequence-step { grid-template-columns:180px minmax(0,1fr); break-inside:avoid; }
}

/* Shared, progressively enhanced contact form. */
.contact-layout { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:64px; }
.contact-intro,.contact-form { min-width:0; }
.contact-intro>p:not(.eyebrow) { font-size:17px; line-height:1.7; color:#e0e7df; }
.contact-intro h2 { margin:18px 0 24px; }
.contact-direct { margin-top:30px; }
.contact-direct>p { font-size:13px; color:#d7e2d7; }
.contact-direct .email-link { margin-top:6px; display:inline-flex; align-items:center; gap:8px; font-size:16px; letter-spacing:0; overflow-wrap:anywhere; max-width:100%; min-height:44px; }
.contact-meta { flex-wrap:wrap; gap:12px 24px; }
.contact-meta>span { width:100%; }
.contact-form[hidden] { display:none; }
.contact-form fieldset { border:0; margin:0; padding:0; min-width:0; }
.contact-form legend { font-size:23px; line-height:1.3; font-weight:500; padding:0; margin:0 0 10px; letter-spacing:-.02em; }
.form-required,.field-hint,.contact-privacy { font-size:13px; line-height:1.6; color:#d7e2d7; }
.form-required { margin:0 0 24px; }
.contact-fields { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.contact-field { min-width:0; margin-bottom:22px; }
.contact-field label { display:block; font-size:14px; font-weight:600; margin-bottom:8px; }
.field-hint { margin:-3px 0 9px; }
.contact-field input,.contact-field textarea { width:100%; border:1px solid #bac6bb; border-radius:8px; background:#fbfaf6; color:#1c3028; font:inherit; font-size:16px; line-height:1.5; padding:12px 14px; min-height:48px; }
.contact-field textarea { min-height:150px; resize:vertical; }
.contact-field [aria-invalid="true"] { border:2px solid #ffcfbd; box-shadow:0 0 0 1px #80381d; }
.contact-form .field-error { font-size:13px; line-height:1.6; color:#ffcfbd; margin:7px 0 0; }
.contact-form [hidden] { display:none; }
.contact-privacy { margin:0 0 20px; max-width:56ch; }
.contact-submit { background:var(--paper); color:#1c3028; border-color:var(--paper); font-weight:600; min-height:50px; gap:26px; }
.contact-submit:hover { background:#e0e9d6; }
.contact .contact-submit .ui-icon { filter:none; }
.contact-submit:disabled { opacity:.7; cursor:wait; }
.contact-status { font-size:15px; line-height:1.65; margin-top:18px; min-height:1.65em; color:#e3eddf; }
.contact-status[data-state="error"],.contact-status[data-state="uncertain"] { color:#ffcfbd; }
.contact-status a { display:inline-flex; min-height:44px; align-items:center; text-decoration:underline; }
.contact-trap { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }
.contact-nojs { font-size:16px; line-height:1.7; }
@media(max-width:1100px) { .contact-layout { gap:36px; grid-template-columns:1fr; } .contact-intro h2 { max-width:20ch; } }
@media(max-width:760px) { .contact-fields { grid-template-columns:1fr; gap:0; } .contact-layout { gap:34px; } .contact-form legend { font-size:22px; } .contact-submit { width:100%; } .contact-direct .email-link { font-size:14px; } }
@media print { .contact { display:none!important; } }

/* Fourth edition: the same visual family, with teaching evidence close to the work. */
.edition-bar nav{flex-wrap:wrap}
.teaching-media{display:grid;grid-template-columns:0.85fr 1.15fr;gap:56px;align-items:start;padding-top:44px;padding-bottom:80px}
.teaching-copy h2{font-size:clamp(32px,3.4vw,48px);line-height:1.1;margin:18px 0 24px}
.teaching-copy>p:not(.eyebrow){max-width:43ch;color:var(--muted)}
.teaching-copy .text-link{margin-top:22px}
.teaching-player{position:relative;aspect-ratio:16/9;background:#dce6e3;border:1px solid var(--line);border-radius:12px;overflow:hidden}
.teaching-player>img{width:100%;height:100%;object-fit:contain;display:block}
.teaching-player iframe{width:100%;height:100%;border:0;display:block}
.video-load{position:absolute;bottom:18px;left:18px;max-width:calc(100% - 36px);box-shadow:0 3px 14px #192b2525}
.media-caption{font-size:13px;line-height:1.55;color:var(--muted);margin:12px 0 18px}
.media-chapters{list-style:none;padding:0 4px;margin:20px 0}
.media-chapters li{display:grid;grid-template-columns:110px 1fr;gap:16px;margin:18px 0;font-size:15px}
.media-chapters strong{font-size:13px;color:var(--accent)}
.edition-learning .project-visual.teaching{background:#dce5de}
.suite-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:1000px){.suite-grid{grid-template-columns:1fr}}
@media(max-width:760px){.teaching-media{grid-template-columns:1fr;gap:28px;padding-top:32px;padding-bottom:48px}.teaching-copy .text-link{font-size:14px}.media-chapters li{grid-template-columns:1fr;gap:5px}.edition-bar nav{gap:8px 20px}.edition-bar nav a{min-height:44px}.edition-learning .hero h1{font-size:clamp(42px,10.6vw,62px)}.agenda-cover{inset:64px 8% 65px}.teaching-copy h2{max-width:18ch}.video-load{font-size:13px;padding:12px 16px}.media-caption{font-size:12px}}
@media(prefers-reduced-motion:reduce){.teaching-player{scroll-behavior:auto}}

.video-load[hidden]{display:none}
@media(max-width:520px){
 .edition-learning .download-card{grid-template-columns:1fr}
 .edition-learning .download-preview{height:180px;min-height:0;padding:20px}
 .edition-learning .download-preview--resume img{height:100%;width:auto}
 .edition-learning .download-preview--deck img{width:100%;max-width:285px}
 .edition-learning .editable-size{white-space:nowrap}
}
/* Preserve complete phone artifacts when overview cards have wider columns. */
.suite-edition .project-visual:is(.flint,.insights) .primary-screen{height:calc(100% - 80px);width:auto;max-width:42%;object-fit:contain;left:16%;top:54px!important}
.suite-edition .project-visual:is(.flint,.insights) .secondary-screen{height:calc(100% - 125px);width:auto;max-width:40%;object-fit:contain;right:14%;top:96px!important}

/* Keep the personal introduction focused on portrait and story. */
.story { padding:90px 0; }
.story-grid { align-items:start; }
.portrait-note { align-items:center; gap:26px; }
.portrait-note > .portrait-photo { flex-shrink:0; width:144px; height:176px; }
.portrait-note .serif-note { max-width:250px; }
@media(max-width:1100px) and (min-width:761px) {
  .portrait-note { gap:14px; }
  .portrait-note > .portrait-photo { width:124px; height:151px; }
  .portrait-note .serif-note { font-size:21px; }
}
@media(max-width:760px) {
  .story { padding:62px 0; }
  .portrait-note { margin-top:30px; gap:20px; }
  .portrait-note > .portrait-photo { width:118px; height:144px; }
  .portrait-note .serif-note { font-size:22px; max-width:220px; }
  .story-grid { gap:38px; }
}
@media(max-width:360px) {
  .portrait-note { gap:14px; }
  .portrait-note .serif-note { font-size:20px; }
}

.working-style {
  border-top:1px solid var(--line);
  display:grid;
  grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);
  gap:clamp(48px,7vw,100px);
  padding:76px 0 88px;
}
.working-style-heading h2 { max-width:15ch; }
.working-style-heading p {
  color:var(--muted);
  font-size:16px;
  line-height:1.75;
  margin-top:24px;
  max-width:42ch;
}
.working-style-questions { border-top:1px solid var(--line); }
.working-style-item { border-bottom:1px solid var(--line); }
.working-style-item summary {
  align-items:center;
  cursor:pointer;
  display:grid;
  font-size:20px;
  font-weight:500;
  gap:20px;
  grid-template-columns:32px minmax(0,1fr) 24px;
  line-height:1.35;
  min-height:64px;
  padding:15px 2px;
}
.working-style-item summary .ui-icon {
  transition:transform .2s ease;
}
.working-style-item[open] summary .ui-icon {
  transform:rotate(-90deg);
}
.working-style-item summary:focus-visible {
  outline:3px solid var(--green);
  outline-offset:4px;
}
.working-style-index {
  color:var(--muted);
  font-family:var(--serif);
  font-size:17px;
  font-style:italic;
}
.working-style-answer { padding:0 0 28px 52px; }
.working-style-answer p {
  color:var(--muted);
  font-size:16px;
  line-height:1.75;
}
.working-style-link {
  display:inline-flex;
  align-items:center;
  font-size:13px;
  font-weight:500;
  min-height:44px;
  margin-top:12px;
  text-underline-offset:5px;
}
.research-index {
  border-block:1px solid var(--line);
  margin-bottom:68px;
  padding:0;
}
.research-index ul { list-style:none; margin:0; padding:0; }
.research-index li { border-top:1px solid var(--line); }
.research-index-row {
  align-items:start;
  display:grid;
  gap:22px;
  grid-template-columns:minmax(150px,1.1fr) repeat(3,minmax(125px,1fr));
  min-height:76px;
  padding:18px 2px;
  text-decoration:none;
}
.research-index-row:hover strong { text-decoration:underline; text-decoration-thickness:1px; }
.research-index-row:focus-visible {
  outline:3px solid var(--green);
  outline-offset:4px;
}
.research-index-row strong { font-size:16px; font-weight:500; line-height:1.45; }
.research-index-row span { color:var(--muted); font-size:13px; line-height:1.55; }
.research-index-row small {
  color:var(--ink);
  display:block;
  font-size:9px;
  font-weight:600;
  letter-spacing:.1em;
  margin-bottom:4px;
  text-transform:uppercase;
}
@media(max-width:900px) {
  .research-index-row { grid-template-columns:minmax(150px,.8fr) repeat(3,minmax(110px,1fr)); gap:16px; }
}
@media(max-width:760px) {
  .working-style { grid-template-columns:1fr; gap:34px; padding:58px 0 64px; }
  .working-style-heading h2 { font-size:37px; }
  .working-style-heading p { font-size:15px; margin-top:18px; }
  .working-style-item summary { font-size:18px; min-height:60px; }
  .working-style-answer { padding-left:52px; }
  .research-index { margin-bottom:50px; }
  .research-index-row { display:block; min-height:44px; padding:22px 2px; }
  .research-index-row strong,.research-index-row span { display:block; }
  .research-index-row span { margin-top:14px; }
}
@media(prefers-reduced-motion:reduce) {
  .working-style-item summary .ui-icon { transition:none; }
}

/* Keep the study comparison available without delaying the first visual case. */
.research-index-heading { display:flex; align-items:center; justify-content:space-between; cursor:pointer; min-height:80px; margin:0; padding:20px 2px; list-style:none; }
.research-index-heading::-webkit-details-marker { display:none; }
.research-index-heading > span { display:block; }
.research-index-heading strong { display:block; font-size:22px; line-height:1.35; font-weight:500; }
.research-index-heading span span { display:block; color:var(--muted); font-size:14px; line-height:1.6; margin-top:6px; }
.research-index-heading .ui-icon { flex-shrink:0; width:24px; height:24px; }
.research-index[open] > summary .ui-icon { transform:rotate(-90deg); }
.research-index-heading:focus-visible { outline:3px solid var(--green); outline-offset:4px; }

.selected-projects { border-top:1px solid var(--line); padding:68px 0 96px; }
.selected-projects-heading { max-width:650px; margin-bottom:44px; }
.selected-projects-heading p { color:var(--muted); font-size:18px; margin-top:18px; line-height:1.65; }
.selected-project { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); align-items:center; gap:clamp(32px,5vw,72px); }
.selected-project + .selected-project { margin-top:60px; }
.selected-project-image { display:block; border:1px solid var(--line); border-radius:24px; overflow:hidden; background:#fff; box-shadow:var(--shadow-soft); }
.selected-project-image img { display:block; width:100%; height:auto; }
.selected-project h3 { font-size:clamp(30px,3vw,42px); line-height:1.2; margin:18px 0; }
.selected-project h3 a { text-decoration:none; }
.selected-project h3 a:hover { text-decoration:underline; text-underline-offset:6px; }
.selected-project p:not(.eyebrow) { color:var(--muted); line-height:1.7; }
.selected-project .selected-project-role { font-size:14px; margin-top:22px; color:var(--ink); }
.selected-project .selected-project-status { font-size:13px; margin-top:8px; }
.selected-project .text-link { margin-top:24px; min-height:44px; }
.projects-crosslink { padding-bottom:42px; }
.projects-crosslink .text-link { min-height:44px; }
@media(max-width:760px) {
  .selected-projects { padding:48px 0 62px; }
  .selected-project { grid-template-columns:1fr; gap:30px; }
  .selected-projects-heading p { font-size:16px; }
  .selected-project-image { border-radius:18px; }
}

/* One navigation family for the overview, role pages and case studies. */
.portfolio-header {
  --nav-ink: #192b25;
  --nav-muted: #58645d;
  --nav-line: #cdd1c4;
  color: var(--nav-ink);
}

.portfolio-masthead {
  min-height: 84px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 32px;
}

.portfolio-header .wordmark { font-size: 26px; }
.portfolio-header .brand-dot { color: var(--nav-ink); }
.portfolio-actions { display: flex; align-items: center; gap: 32px; }
.portfolio-actions a,
.portfolio-routes a,
.portfolio-mobile-menu a {
  display: inline-flex;
  align-items: center;
  min-height: 44px;
  font-size: 14px;
  text-decoration: none;
}
.portfolio-header .nav-contact { gap: 18px; border-bottom: 1px solid var(--nav-ink); }
.portfolio-header a:hover { text-decoration: underline; text-underline-offset: 5px; }
.portfolio-routes {
  border-top: 1px solid var(--nav-line);
  border-bottom: 1px solid var(--nav-line);
  display: flex;
  align-items: center;
  gap: 32px;
  padding: 6px 0;
}
.portfolio-routes a { color: var(--nav-muted); position: relative; }
.portfolio-routes a[aria-current] { color: var(--nav-ink); font-weight: 600; }
.portfolio-routes a[aria-current]::after {
  content: '';
  position: absolute;
  bottom: -7px;
  left: 0;
  right: 0;
  height: 2px;
  background: currentColor;
}
.portfolio-header a:focus-visible,
.portfolio-mobile-menu summary:focus-visible {
  outline: 2px solid var(--nav-ink);
  outline-offset: 4px;
  border-radius: 2px;
}
.portfolio-mobile-menu { display: none; }

@media (max-width: 760px) {
  .portfolio-header { border-bottom: 1px solid var(--nav-line); }
  .portfolio-masthead {
    min-height: 84px;
    gap: 12px;
    position: relative;
    flex-wrap: wrap;
    padding: 14px 0;
  }
  .portfolio-header .wordmark { font-size: 24px; }
  .portfolio-actions, .portfolio-routes { display: none; }
  .portfolio-mobile-menu { display: block; }
  .portfolio-mobile-menu summary {
    display: flex;
    min-height: 44px;
    align-items: center;
    gap: 10px;
    padding: 0 2px;
    font-size: 14px;
    cursor: pointer;
    list-style: none;
  }
  .portfolio-mobile-menu summary::-webkit-details-marker { display: none; }
  .portfolio-mobile-menu summary .ui-icon { width: 16px; height: 16px; }
  .portfolio-mobile-menu[open] summary .ui-icon { transform: rotate(-90deg); }
  .portfolio-mobile-menu[open] { width: 100%; }
  .portfolio-mobile-menu[open] summary { position: absolute; right: 0; top: 14px; }
  .portfolio-mobile-menu nav {
    border-top: 1px solid var(--nav-line);
    padding-top: 10px;
    margin-top: 4px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    column-gap: 16px;
    row-gap: 4px;
  }
  .portfolio-mobile-menu a { font-size: 13px; padding: 8px 0; }
  .portfolio-mobile-menu a[aria-current] {
    font-weight: 600;
    text-decoration: underline;
    text-underline-offset: 5px;
  }
  .portfolio-mobile-menu a:nth-child(5) { grid-column: 1 / -1; }
  .portfolio-mobile-menu .nav-contact { justify-self: end; }
}

@media (max-width: 360px) {
  .portfolio-header .wordmark { font-size: 22px; gap: 8px; }
  .portfolio-header .brand-mark { width: 28px; height: 28px; }
  .portfolio-mobile-menu summary { gap: 6px; }
}

/* Context-only network bar: the wordmark below is the single identity; All spaces stays sticky. */
body:has(.kh-network--context) { --kh-bar-height: 44px; }
.kh-network.kh-network--context .kh-inner { min-height: 43px; gap: 16px; }
.kh-network.kh-network--context .kh-current { border-left: 0; padding-left: 0; font-size: 13px; }
.kh-network.kh-network--context .kh-menu > summary { font-size: 13px; }
@media (max-width: 640px) {
  .kh-network.kh-network--context .kh-inner { display: flex; grid-template-rows: none; padding: 0 16px; }
  .kh-network.kh-network--context .kh-current { padding: 0; font-size: 12px; }
}

@media print { .portfolio-header { display: none !important; } }

/* Readable evidence and unobscured navigation across the portfolio. */
html { scroll-padding-top:calc(var(--kh-bar-height, 80px) + 24px); }
.case-nav { top:calc(var(--kh-bar-height, 80px) + 24px); }
:where(a,button,input,textarea,summary,[tabindex]) { scroll-margin-top:calc(var(--kh-bar-height, 80px) + 24px); }
.project-proof { min-width:0; }
.project-proof > .visual-state {
  display:block; position:static; margin:14px 0 0; padding:0;
  font-size:16px; line-height:1.5; letter-spacing:normal;
  color:var(--ink); background:var(--paper); max-width:none;
}
.visual-caption { font-size:14px; line-height:1.5; }
.suite-edition .visual-caption { font-size:14px; }
.hero-project-label { font-size:14px; line-height:1.6; flex-wrap:wrap; gap:8px 12px; }
.hero-project-label > span:first-child { font-size:12px; }
.hero-note,.project-role,.case-reading-time,.work-stage,
.download-meta,.download-editable,.contact-meta,.education,
figcaption,.expand-image,.case-outcome .source-note,
.next-cases a>span:first-child { font-size:16px!important; line-height:1.6; }
.project-index span,.case-facts dt,.work-stage strong,.brief-item dt { font-size:13px; line-height:1.6; }
.case-facts dd,.brief-item dd { font-size:16px; }
.project-index { flex-wrap:wrap; gap:8px 16px; }
.back-link,.text-link,.case-nav a { min-height:44px; }
.case-nav a { font-size:14px; }
.site-footer { font-size:14px; }
@media(max-width:760px) {
  .project-proof > .visual-state { margin-top:12px; }
  .visual-caption { left:20px; right:20px; }
  .hero-project-label { align-items:flex-start; }
  .hero-project-label > .ui-icon { align-self:center; }
}
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
}
.image-dialog > .image-caption { font-size:16px; line-height:1.6; }
.contact-form :is(.field-error,.field-hint,.form-required,.contact-privacy) { font-size:14px; line-height:1.6; }
/* Let a mobile reviewer understand a case before scrolling through its art. */
@media(min-width:761px) {
  .project-row:nth-of-type(odd) .project-image-link { order:-1; }
  .project-row:nth-of-type(even) .project-image-link { order:1; }
  .project-row:nth-of-type(odd) { grid-template-columns:1.17fr 1fr; }
  .project-row:nth-of-type(even) { grid-template-columns:1fr 1.17fr; }
  .project-row .project-copy { order:0; }
}

/* Design cases: one decision, its visual evidence, then optional depth. */
.visual-story { margin-top:48px; }
.story-anchor { display:block; height:0; scroll-margin-top:calc(var(--kh-bar-height,80px) + 20px); }
.story-brief { display:grid; grid-template-columns:1fr 1fr; gap:48px; padding:28px 0 36px; border-top:1px solid var(--line); }
.story-brief p:not(.eyebrow) { font-size:18px; line-height:1.65; max-width:53ch; margin:10px 0 0; }
.story-jump { display:flex; flex-wrap:wrap; gap:8px; padding:18px 0 36px; }
.story-jump a { display:flex; align-items:center; gap:10px; padding:10px 16px; border:1px solid #bcc8ba; border-radius:6px; font-size:15px; text-decoration:none; min-height:44px; }
.story-jump a span { color:#456b50; font-size:13px; }
.story-jump a:hover,.story-jump a:focus-visible { background:#dfe9d6; }
.story-chapter { margin:0 0 64px; padding:40px; background:#e8ece2; border:1px solid #ccd5c6; border-radius:18px; scroll-margin-top:calc(var(--kh-bar-height,80px) + 20px); }
.story-chapter:nth-of-type(odd) { background:#edeae0; border-color:#d8d1c3; }
.chapter-heading { max-width:850px; margin:0 auto 32px; }
.chapter-number { font-size:13px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:#45634e; margin:0 0 14px; }
.chapter-heading h2 { font-size:clamp(30px,3.4vw,44px); line-height:1.12; letter-spacing:-.035em; max-width:29ch; margin:0 0 18px; }
.chapter-intro { font-size:18px; line-height:1.65; max-width:68ch; margin:0; }
.flow-gallery { display:grid; grid-template-columns:repeat(var(--frame-count),minmax(0,1fr)); align-items:start; gap:24px; }
.flow-frame { margin:0; min-width:0; background:#f9f8f2; border:1px solid #cad0c4; border-radius:12px; padding:20px; }
.frame-heading { display:flex; gap:10px; align-items:baseline; min-height:54px; }
.frame-heading span { font-size:13px; color:var(--muted); }
.frame-heading h3 { font-size:18px; line-height:1.3; margin:0; }
.flow-art { display:flex; justify-content:center; align-items:flex-start; padding:14px 0; min-width:0; }
.flow-art img { width:100%; height:520px; max-width:var(--source-width,100%); object-fit:contain; filter:none; }
.flow-gallery--wide .flow-art img { height:auto; max-height:none; width:100%; }
.flow-frame figcaption { display:block; margin-top:8px; }
.flow-frame figcaption p { font-size:15px; line-height:1.55; margin:0 0 8px; color:var(--muted); }
.flow-frame .expand-image { white-space:normal; font-size:14px!important; }
.chapter-takeaway { margin:28px auto 0; max-width:850px; padding:18px 22px; border-left:3px solid #456b50; background:#ffffff85; }
.chapter-takeaway strong { font-size:13px; text-transform:uppercase; letter-spacing:.06em; }
.chapter-takeaway p { margin:8px 0 0; font-size:17px; line-height:1.6; }
.chapter-notes { margin:24px auto 0; max-width:850px; padding-top:14px; border-top:1px solid #bac7b5; }
.chapter-notes>summary,.result-notes>summary { display:flex; justify-content:space-between; gap:20px; align-items:center; cursor:pointer; min-height:44px; font-size:16px; }
.chapter-notes>div { padding:12px 0; }
.chapter-notes .native-evidence { padding:24px; background:#fff9; border:1px solid var(--line); border-radius:8px; }
.visual-story .source-comparison { margin-top:0; }
.visual-story .evidence-figure { max-width:900px; margin:0 auto; }
.visual-story .evidence-images { background:#f9f8f2; border:1px solid #c7d1c0; }
.visual-story .phone .evidence-images img { max-height:600px; width:auto; max-width:100%; }
.visual-story .phone-crop .evidence-images { height:auto; }
.visual-story .phone-crop .evidence-images img { max-height:720px; width:auto; }
.story-result { max-width:900px; margin:0 auto 70px; padding:36px; background:#1d392e; color:#f4f2e9; border-radius:16px; }
.story-result .eyebrow { color:#dae7b1; }
.story-result h2 { font-size:36px; line-height:1.15; margin:20px 0; }
.story-result>p:not(.eyebrow) { font-size:18px; line-height:1.7; }
.story-result .source-note { font-size:15px!important; color:#d0dace; border-top:1px solid #75927a; padding-top:22px; margin-top:24px; }
.result-notes { border-top:1px solid #75927a; margin-top:22px; padding-top:14px; }
.result-notes p { font-size:17px; line-height:1.7; }
.result-notes .ui-icon { filter:brightness(0) invert(1); }
.story-chapter--single { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:24px 40px; align-items:start; }
.story-chapter--single .chapter-heading { grid-column:1; grid-row:1; margin:16px 0 0; }
.story-chapter--single .flow-gallery { grid-column:2; grid-row:1 / span 3; }
.story-chapter--single .chapter-takeaway { grid-column:1; grid-row:2; margin:0; }
.story-chapter--single .chapter-notes { grid-column:1 / -1; grid-row:4; width:100%; margin:0; }
.story-chapter--single .flow-art img { height:620px; }
@media(max-width:1000px) { .story-chapter { padding:28px; } .flow-gallery { gap:14px; } .flow-frame { padding:14px; } }
@media(max-width:760px) {
 .story-chapter--single { display:block; }
 .story-chapter--single .chapter-heading { margin:0 0 22px; }
 .story-chapter--single .chapter-takeaway,.story-chapter--single .chapter-notes { margin-top:22px; }
 .visual-story { margin-top:26px; } .story-brief { grid-template-columns:1fr; gap:22px; padding:22px 0; }
 .story-brief p:not(.eyebrow),.chapter-intro { font-size:17px; }
 .story-jump { gap:6px; padding-bottom:24px; } .story-jump a { padding:8px 10px; font-size:14px; }
 .story-chapter { padding:22px 16px; margin-bottom:32px; border-radius:12px; }
 .chapter-heading { margin-bottom:22px; } .chapter-heading h2 { font-size:30px; }
 .flow-gallery { grid-template-columns:1fr; gap:20px; } .flow-frame { padding:18px; }
 .frame-heading { min-height:0; } .flow-art img { height:520px; }
 .story-result { padding:24px; margin-bottom:40px; } .story-result h2 { font-size:30px; }
 .chapter-takeaway { padding:14px; } .visual-story .source-comparison-grid { gap:20px; }
}

/* Supporting AI case visuals; the homepage uses the shared portfolio layout. */
.project-visual.ai-work { background:#dde7dc; padding:24px; min-height:0; }
.project-visual.ai-work .screens { display:block; margin-top:20px; min-height:0; }
.project-visual.ai-work .primary-screen { position:static; width:100%; max-width:100%; height:auto; transform:none; object-fit:contain; box-shadow:none; border-radius:7px; filter:none; }
.project-visual.ai-work .secondary-screen { display:none; }
.ai-process { margin:24px 0; padding:30px; background:#f9f8f2; border:1px solid #cbd2c5; border-radius:12px; }
.ai-process ol { list-style:none; margin:20px 0 0; padding:0; display:grid; grid-template-columns:repeat(var(--steps),minmax(0,1fr)); gap:0; }
.ai-process li { padding:0 20px; border-left:1px solid #bcc9b6; }
.ai-process li:first-child { padding-left:0; border:0; }
.process-step { display:block; color:#426247; font-size:13px; margin:0 0 24px; }
.ai-process h3 { font-size:22px; line-height:1.2; letter-spacing:-.03em; margin:0 0 12px; }
.ai-process li p { font-size:16px; line-height:1.6; color:#52614f; margin:0; }
.ai-asu { padding:60px 0 90px; }
.ai-asu>h2 { font-size:clamp(32px,4vw,48px); line-height:1.12; max-width:24ch; margin:16px 0; }
.ai-asu>p:not(.eyebrow) { max-width:70ch; font-size:18px; line-height:1.7; }
.ai-asu .chapter-notes { max-width:none; }

.project-visual.ai-work,.case-opening .case-feature .project-visual.ai-work,.suite-edition .project-visual.ai-work { height:auto; }
.project-visual.ai-work .visual-caption { position:static; display:flex; min-height:24px; }
.project-visual.ai-work .screens { height:auto; }
.project-visual.ai-work .primary-screen { border:0; }

/* Readable at card size: the explanation is HTML, never text baked into an image. */
.project-visual.native-cover,.case-opening .case-feature .project-visual.native-cover,.suite-edition .project-visual.native-cover { height:auto; min-height:0; padding:28px; }
.native-cover .visual-caption { position:static; display:flex; font-size:15px; margin:0 0 28px; }
.native-proof { color:#26352e; text-align:left; }
.proof-kicker { font-size:12px; text-transform:uppercase; letter-spacing:.12em; margin:0 0 12px; }
.proof-question { font:400 clamp(26px,2.6vw,36px)/1.15 var(--serif,Georgia,serif); letter-spacing:-.035em; margin:0 0 24px; max-width:23ch; }
.proof-rows { border-top:1px solid #23382d3d; }
.proof-row { display:grid; grid-template-columns:86px 1fr; align-items:baseline; gap:16px; padding:17px 0; border-bottom:1px solid #23382d3d; }
.proof-row>span { font-size:14px; color:#506052; }
.proof-row>strong { font-size:20px; line-height:1.25; font-weight:500; letter-spacing:-.02em; }
.proof-foot { font-size:14px; line-height:1.5; margin:20px 0 0; color:#4b5c50; }
.native-cover.clare { background:#e1e7dc; }
.native-cover.compasses { background:#e6ddce; }
.ai-comparison { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.ai-comparison>section { background:#f8f7f1; border:1px solid #c2cbbb; padding:28px; border-radius:12px; }
.ai-comparison>section:last-child { background:#e1e8d8; }
.ai-comparison--requirements>section:first-child { background:#e1e8d8; }
.ai-comparison--requirements>section:last-child { background:#eddbd1; }
.ai-comparison h3 { font-size:27px; line-height:1.2; margin:18px 0; }
.ai-comparison ul { margin:0; padding-left:22px; font-size:18px; line-height:1.65; }
.proof-context { font-size:15px; margin:18px 0 0; color:#4f6050; }
.ai-tool-shelf { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.ai-tool-shelf article { background:#f9f8f2; border:1px solid #c8d0c1; border-radius:12px; padding:24px; }
.ai-tool-shelf h3 { font-size:26px; margin:15px 0; }
.ai-tool-shelf p:not(.eyebrow),.ai-tool-shelf a { font-size:17px; line-height:1.55; }
.ai-tool-shelf a { display:inline-block; padding:12px 0 0; }
.edition-ai .flow-gallery--wide { grid-template-columns:1fr; }
.edition-ai .flow-gallery--wide .flow-frame { max-width:100%; }
.edition-ai .flow-gallery--wide .frame-heading { min-height:0; }
.edition-ai .flow-gallery--wide .flow-art { padding:18px 0; }
.edition-ai .flow-gallery--wide .flow-art img { width:100%; max-width:min(100%,var(--source-width,100%)); }
.edition-ai .case-external { padding-block:14px; }


@media(max-width:760px) {
 .ai-process { padding:24px; }
 .ai-process ol { grid-template-columns:1fr; gap:22px; }
 .ai-process li,.ai-process li:first-child { border:0; border-top:1px solid #bcc9b6; padding:18px 0 0; }
 .process-step { margin-bottom:9px; }
 .project-visual.ai-work { padding:16px; }
 .project-visual.native-cover,.case-opening .case-feature .project-visual.native-cover,.suite-edition .project-visual.native-cover { padding:22px; }
 .native-cover .visual-caption { margin-bottom:24px; }
 .proof-row { grid-template-columns:66px 1fr; gap:12px; }
 .proof-row>strong { font-size:18px; }
 .proof-row>span { font-size:13px; }
 .proof-question { font-size:29px; }
 .ai-comparison,.ai-tool-shelf { grid-template-columns:1fr; }
 .ai-comparison>section { padding:22px; }
}
