/* Fonts: DM Sans and Libre Caslon Display are linked from each page head (Google Fonts) with local fallbacks. */
:root{--ink:#13253b;--lime:#d6ee79;--paper:#fafbf8;--muted:#586374;--line:#d6dce0}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:95px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button{font:inherit;cursor:pointer}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{font-weight:500;line-height:1.08;letter-spacing:-.045em}em{font-family:'Libre Caslon Display',Georgia,serif;font-weight:400}header{height:100px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:24px}.brand{font-size:29px;font-weight:650;letter-spacing:-1.5px;line-height:1}.brand span{font-weight:400}.brand small{display:block;font-size:9px;letter-spacing:1.6px;margin-top:11px}nav{display:flex;gap:32px;font-size:14px}nav a:hover,.text-link:hover{text-decoration:underline;text-underline-offset:5px}.button{display:inline-flex;justify-content:space-between;align-items:center;gap:40px;background:var(--ink);color:white;padding:17px 23px;border:1px solid var(--ink);font-size:15px;font-weight:500;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px);background:#28415e}.button.lime{background:var(--lime);color:var(--ink);border-color:var(--lime)}.button.lime:hover{background:#e4f6a8}.button.small{padding:12px 20px}.hero{padding:38px 5.5% 0}.hero-top{display:flex;justify-content:space-between;align-items:center}.eyebrow{font-size:12px;font-weight:600;letter-spacing:1.7px}.location{font-size:13px;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:7%;padding:54px 0 62px;align-items:center}h1{font-size:clamp(55px,6.2vw,98px);letter-spacing:-.055em;line-height:.99}h1 em{letter-spacing:-.035em}.intro{max-width:480px;margin-top:30px;font-size:19px;line-height:1.55;color:var(--muted)}.actions{display:flex;gap:28px;align-items:center;margin-top:32px}.text-link{font-size:14px}.hero-panel{background:var(--ink);color:white;padding:30px 34px 0;min-height:473px}.panel-top{display:flex;justify-content:space-between;font-size:10px;letter-spacing:1px;color:#bdcbd7;margin-bottom:36px}.hero-panel h2{font-size:38px;letter-spacing:-1px}.hero-panel>p{font-size:14px;color:#bcc7d3;max-width:240px;margin-top:14px}.process{margin-top:28px}.process>div{display:grid;grid-template-columns:36px 1fr;border-top:1px solid #3a4859;padding:13px 0;align-items:center}.process>div>span{grid-row:span 2;color:var(--lime);font-size:12px}.process strong{font-size:15px;font-weight:500}.process small{font-size:12px;color:#bcc7d3}.panel-bottom{background:var(--lime);color:var(--ink);margin:24px -34px 0;padding:17px 25px;display:flex;justify-content:space-between;font-size:13px}.hero-bottom{display:flex;align-items:center;gap:32px;padding:24px 0;border-top:1px solid var(--line)}.hero-bottom>span:first-child{font-size:10px;letter-spacing:1.4px;margin-right:auto}.hero-bottom p{font-size:14px}.divider{height:17px;width:1px;background:var(--line)}.section{padding:100px 5.5%}.opening{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 2fr;gap:9%;background:#edf0ed}.opening .eyebrow{margin-top:15px}h2{font-size:clamp(42px,4.1vw,64px)}.opening p:not(.eyebrow){max-width:650px;margin-top:23px;color:var(--muted);font-size:17px}.section-head{display:flex;justify-content:space-between;gap:50px;align-items:end;margin-bottom:48px}.section-head .eyebrow{margin-bottom:24px}.section-head>p{max-width:330px;color:var(--muted)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line)}.service{padding:30px 32px 0 0}.service+.service{border-left:1px solid var(--line);padding-left:32px}.service-no{font-size:13px;color:var(--muted)}.service h3{font-size:35px;margin:30px 0 20px}.service>p{color:var(--muted)}.service ul{padding-left:18px;font-size:14px;line-height:2;margin:25px 0}.service .boundary{font-size:13px;min-height:68px;line-height:1.6;border-top:1px solid var(--line);padding-top:16px}.service a{display:block;margin-top:25px;font-size:14px;font-weight:600}.approach{background:var(--ink);color:white}.approach .section-head>p{color:#bdc8d5}.approach .eyebrow{color:var(--lime)}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:45px}.steps article{border-top:1px solid #516070;padding-top:22px}.steps span{font-size:13px;color:var(--lime)}.steps h3{font-size:24px;letter-spacing:-.025em;margin:22px 0 15px}.steps p{color:#bdc8d5;font-size:15px}.models{display:grid;grid-template-columns:1fr 2fr;gap:7%;border-top:1px solid #516070;margin-top:70px;padding-top:50px}.models h3{font-size:30px;margin-top:20px}.models .eyebrow{font-size:10px} [role=tablist]{display:flex;border-bottom:1px solid #516070;gap:20px}[role=tab]{background:none;color:#c0cad4;border:0;border-bottom:2px solid transparent;padding:0 0 13px;text-align:left;font-size:13px}[role=tab][aria-selected=true]{color:var(--lime);border-bottom-color:var(--lime)}[role=tabpanel]{padding-top:25px}[role=tabpanel] h4{font-size:24px;letter-spacing:-.025em}[role=tabpanel] p{font-size:15px;color:#bdc8d5;margin:15px 0}[role=tabpanel]>span{font-size:13px;color:var(--lime)}.case-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.case{text-align:left;border:1px solid var(--line);color:var(--ink);background:#eef1ec;padding:32px;transition:transform .2s}.case:hover{transform:translateY(-5px)}.case:nth-child(2){background:#e4e9f0}.case:nth-child(3){background:#e7edca}.case>span:first-child{font-size:11px;letter-spacing:1.4px}.case h3{font-size:35px;margin:42px 0 18px}.case p{font-size:14px;color:var(--muted)}.case .case-link{display:block;border-top:1px solid #bdc6c9;margin-top:40px;padding-top:19px;font-size:14px}.founder{display:grid;grid-template-columns:1fr 1.55fr;gap:10%;background:#eef1ec;align-items:center}.founder-card{background:var(--lime);padding:32px 38px}.founder-card>span{font-size:10px;letter-spacing:1.4px}.monogram{font-family:'Libre Caslon Display',Georgia,serif;font-size:150px;line-height:1.1;margin:35px 0 20px;letter-spacing:-12px}.monogram span{color:#748638}.founder-card h3{font-size:28px}.founder-card p{font-size:14px;margin-top:12px}.founder-rule{height:1px;background:#abbf63;margin:25px 0}.founder-copy h2{margin:25px 0 30px}.founder-copy>p:not(.eyebrow){color:var(--muted);margin-top:19px}.credentials{display:flex;flex-direction:column;gap:10px;font-size:13px;border-top:1px solid #cbd1c8;padding-top:25px;margin-top:30px}.trust{display:grid;grid-template-columns:1fr 1fr;gap:10%}.trust h2{font-size:43px;margin:24px 0}.trust>div>p:not(.eyebrow){max-width:390px;color:var(--muted)}.trust-list article{display:flex;gap:22px;padding:25px 0;border-bottom:1px solid var(--line)}.trust-list article:first-child{padding-top:0}.trust-list article>span{font-size:12px;color:var(--muted)}.trust-list h3{font-size:21px;letter-spacing:-.025em}.trust-list p{font-size:14px;color:var(--muted);margin-top:12px}.faq{display:grid;grid-template-columns:1fr 1.5fr;gap:9%;border-top:1px solid var(--line);padding-top:70px}.faq h2{margin-top:24px}details{border-bottom:1px solid var(--line);padding:22px 0}details:first-child{padding-top:0}summary{font-size:16px;font-weight:500;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:20px}summary:after{content:'+';font-size:21px}details[open] summary:after{content:'−'}details p{font-size:15px;color:var(--muted);padding-top:18px}.contact{background:var(--ink);color:white;padding:70px 5.5% 85px;display:grid;grid-template-columns:1.5fr 1fr;gap:40px}.contact>.eyebrow{grid-column:1/-1;color:var(--lime)}.contact h2{font-size:clamp(46px,5.6vw,85px)}.contact>div{align-self:end;justify-self:end}.contact>div>p{color:#bec9d5;margin-bottom:30px}.phone{display:block;font-size:15px;margin-top:18px}footer{padding:40px 5.5% 28px}.footer-top{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer-top p{font-size:14px}.footer-top>a:last-child{font-size:13px}.footer-bottom{border-top:1px solid var(--line);display:flex;justify-content:space-between;margin-top:35px;padding-top:22px;font-size:12px;color:var(--muted)}.disclaimer{font-size:12px;color:var(--muted);max-width:850px;margin-top:18px}dialog{color:var(--ink);border:0;padding:42px;max-width:650px;width:calc(100% - 32px);max-height:90vh;overflow:auto}dialog::backdrop{background:#13253bbb;backdrop-filter:blur(5px)}dialog h2{font-size:38px;margin:25px 0}dialog h3{font-size:19px;margin:25px 0 10px}dialog p,dialog li{font-size:15px;color:var(--muted)}dialog .eyebrow{font-size:11px}dialog .button{margin-top:30px}dialog .close{float:right;background:none;border:0;font-size:28px;color:var(--ink)}.skip{position:absolute;top:-100px;left:10px;padding:10px;background:var(--lime);z-index:100}.skip:focus{top:10px}:focus-visible{outline:3px solid var(--ink);outline-offset:4px}.approach :focus-visible,.contact :focus-visible,.hero-panel :focus-visible,.consulting-fund :focus-visible,dialog::backdrop{outline-color:var(--lime)}.panel-bottom:focus-visible{outline-color:var(--ink);outline-offset:-6px}@media(min-width:1600px){header,.hero,.section,.contact,footer{padding-left:max(5.5%,calc((100% - 1440px)/2));padding-right:max(5.5%,calc((100% - 1440px)/2))}}@media(max-width:900px){nav{gap:16px}.hero-grid{gap:4%;grid-template-columns:1.15fr 1fr}h1{font-size:64px}.hero-panel{padding:26px 24px 0}.panel-bottom{margin-left:-24px;margin-right:-24px}.actions{flex-wrap:wrap;gap:20px}.hero-bottom{gap:18px}.hero-bottom>span:first-child{max-width:100px}.section{padding-top:70px;padding-bottom:70px}.service{padding-right:20px}.service+.service{padding-left:20px}.service h3{font-size:29px}.case{padding:24px}.case h3{font-size:29px}.founder{gap:6%}.founder-card{padding:28px}.trust{gap:6%}}@media(max-width:650px){header{height:83px;padding:0 6%;gap:10px}.brand{font-size:25px}.brand small{font-size:8px}nav{display:none}.button.small{padding:10px 14px;gap:15px;font-size:13px}.hero{padding:25px 6% 0}.hero-top .eyebrow{font-size:9px;letter-spacing:1px}.location{font-size:10px}.hero-grid{grid-template-columns:1fr;padding:40px 0;gap:40px}h1{font-size:clamp(52px,12vw,76px)}.intro{font-size:17px;max-width:350px}.actions{gap:24px}.hero-panel{min-height:0}.hero-panel h2{font-size:36px}.hero-bottom{flex-wrap:wrap;gap:12px 20px;padding:22px 0}.hero-bottom>span:first-child{max-width:none;width:100%}.hero-bottom p{font-size:12px}.hero-bottom .divider{display:none}.section{padding:60px 6%}.opening{grid-template-columns:1fr;gap:28px}.opening .eyebrow{margin:0}h2{font-size:42px}.section-head{display:block;margin-bottom:30px}.section-head>p{margin-top:25px}.service-grid,.case-grid,.steps{grid-template-columns:1fr}.service,.service+.service{padding:28px 0 32px;border-left:0;border-bottom:1px solid var(--line)}.service h3{font-size:35px;margin:20px 0}.service h3 br{display:none}.service .boundary{min-height:0}.steps{gap:30px}.models{grid-template-columns:1fr;gap:30px;margin-top:45px;padding-top:35px}[role=tablist]{gap:16px}[role=tab]{font-size:12px;flex:1}.case h3{font-size:36px;margin-top:28px}.case{padding:28px}.case .case-link{margin-top:28px}.founder,.trust,.faq{grid-template-columns:1fr;gap:40px}.founder-card{max-width:none}.monogram{font-size:125px;margin:15px 0}.founder-copy h2{font-size:44px}.trust h2{font-size:38px}.contact{padding:50px 6% 60px;grid-template-columns:1fr;gap:30px}.contact h2{font-size:53px}.contact>div{justify-self:start}.footer-top{flex-wrap:wrap}.footer-top p{display:none}.footer-bottom{display:block}.footer-bottom p+p{margin-top:8px}dialog{padding:28px}dialog h2{font-size:32px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.opening{align-items:center}.opening .eyebrow{margin-bottom:25px}.city{margin:0}.city img{display:block;width:100%;height:340px;object-fit:cover}.city figcaption{font-size:12px;margin-top:12px;color:var(--muted)}.photo-credit{font-size:12px;color:var(--muted);margin-top:14px}.photo-credit a{text-decoration:underline}@media(max-width:650px){.city img{height:270px;object-position:center 60%}}

.hero-grid{grid-template-columns:1.35fr 1fr}h1{font-size:clamp(64px,7.6vw,118px);line-height:1.02}.hero-panel h2{font-size:36px}.hero-bottom{gap:22px}.hero-bottom>span:first-child{max-width:230px}.service li{line-height:1.65;margin-bottom:9px}.service .boundary{min-height:89px}.faq details a{text-decoration:underline}@media(max-width:900px){h1{font-size:76px}.hero-bottom{flex-wrap:wrap}.hero-bottom>span:first-child{max-width:none;width:100%}.service h3{font-size:29px}}@media(max-width:650px){.hero-grid{grid-template-columns:1fr}h1{font-size:clamp(65px,15vw,95px)}.hero-panel h2{font-size:34px}.service .boundary{min-height:0}.service h3{font-size:35px}.hero-bottom{gap:12px 18px}}

.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.service{padding:32px 36px 38px 0}.service+.service{padding:32px 36px 38px}.service:nth-child(3){border-left:0;padding-left:0}.service:nth-child(n+3){border-top:1px solid var(--line)}.service h3 br{display:none}.service .boundary{min-height:68px}.fund-consulting{background:#e9eddf;display:grid;grid-template-columns:1fr 1.2fr;gap:9%}.fund-consulting h2{margin:24px 0}.fund-intro{color:var(--muted);margin:0 0 28px;max-width:440px}.fund-consulting>div>p:not(.eyebrow){color:var(--muted)}.fund-scope{list-style:none;padding:0;margin:28px 0}.fund-scope li{border-top:1px solid #c3cbb6;padding:18px 0}.fund-scope strong{display:block;font-weight:500;margin-bottom:6px}.fund-scope span{font-size:15px;color:var(--muted)}.experience-note{background:var(--paper);padding:24px}.experience-note h3{font-size:26px;margin:15px 0}.experience-note>p:last-child{font-size:14px;color:var(--muted)}.fund-boundary{font-size:13px;margin-top:22px}@media(max-width:650px){.service-grid,.fund-consulting{grid-template-columns:1fr}.service,.service+.service{padding:28px 0 32px;border-left:0}.service .boundary{min-height:0}.fund-consulting{gap:35px}.fund-consulting h2{font-size:42px}.service h3{font-size:32px}}

.hero-grid h1{font-size:clamp(58px,6.8vw,104px)}.page-hero{padding:75px 5.5% 70px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(50px,6vw,92px);margin:28px 0}.page-hero>p:last-child{max-width:650px;font-size:20px;color:var(--muted)}.detail-section>.eyebrow{margin-bottom:24px}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:45px}.detail-grid article{border-top:1px solid var(--line);padding-top:22px}.detail-grid h3{font-size:27px;margin:20px 0 16px}.detail-grid p{color:var(--muted)}.consulting-fund{background:var(--ink);color:white}.consulting-fund .eyebrow{color:var(--lime)}.consulting-fund h2{margin:25px 0}.consulting-fund>p:not(.eyebrow){max-width:620px;margin:20px 0 28px;color:#bdc8d5}.consulting-fund .button{border-color:#bdc8d5}.single-example{display:grid;grid-template-columns:1fr 1fr;gap:12%;background:#edf0ed;align-items:center}.single-example h2{margin:24px 0}.single-example>div>p:last-child{color:var(--muted);font-size:14px}.single-example .case{width:100%}.footer-nav{display:flex;flex-wrap:wrap;gap:15px 25px;border-top:1px solid var(--line);padding-top:26px;margin-top:30px;font-size:13px}.footer-bottom{margin-top:25px}.contact-details{display:grid;grid-template-columns:1fr 1fr;gap:12%}.contact-details h2{margin:24px 0}.contact-number{display:block;font-size:32px;margin:26px 0}.contact-details p{color:var(--muted);margin-top:25px}.contact-details h3{font-size:28px}.contact-details ul{padding-left:20px;line-height:2.2;margin-top:24px}.mobile-menu{display:none}nav a[aria-current=page]{text-decoration:underline;text-underline-offset:6px}@media(max-width:650px){.hero-grid h1{font-size:clamp(52px,12vw,76px)}header{height:auto;min-height:90px;flex-wrap:wrap;padding-top:16px;padding-bottom:14px}.mobile-menu{display:block;width:100%;padding:0;border:0}.mobile-menu summary{font-size:14px}.mobile-menu nav{display:flex;flex-direction:column;gap:0;padding-top:15px}.mobile-menu nav a{padding:10px 0;border-top:1px solid var(--line)}.page-hero{padding:48px 6%}.page-hero h1{font-size:48px}.page-hero>p:last-child{font-size:18px}.detail-grid,.single-example,.contact-details{grid-template-columns:1fr;gap:35px}.footer-nav{display:flex}.detail-grid h3{font-size:27px}.fund-consulting{padding-top:50px}}

/* Review fixes: single h1 per page, founder name as text, example cards without nested headings, larger dialog close target, hero panel link */
.fund-consulting h1,.founder-copy h1{font-size:clamp(42px,4.1vw,64px);letter-spacing:-.045em;line-height:1.08}.fund-consulting h1{margin:24px 0}.founder-copy h1{margin:25px 0 30px}.founder-card p.founder-name{font-size:28px;font-weight:500;line-height:1.08;letter-spacing:-.045em;margin:0}.case-title{display:block;font-size:35px;font-weight:500;line-height:1.08;letter-spacing:-.045em;margin:42px 0 18px}.case-desc{display:block;font-size:14px;color:var(--muted)}a.panel-bottom{cursor:pointer}a.panel-bottom:hover{background:#e4f6a8}dialog .close{width:44px;height:44px;margin:-12px -12px 0 0;display:grid;place-items:center;line-height:1}.mobile-menu summary{cursor:pointer;padding:6px 0}@media(max-width:900px){.case-title{font-size:29px}nav{gap:14px}}@media(max-width:650px){.fund-consulting h1{font-size:42px}.founder-copy h1{font-size:44px}.case-title{font-size:36px;margin-top:28px}}

/* Service finder (homepage) */
.finder{margin-top:34px;border-top:1px solid #cbd1c8;padding-top:26px}.finder .eyebrow{margin:0}.finder h3{font-size:22px;letter-spacing:-.025em;margin:10px 0 16px}.finder-options{display:flex;flex-wrap:wrap;gap:8px}.finder-options button{background:#fff;border:1px solid var(--line);padding:10px 14px;font-size:14px;color:var(--ink);text-align:left;transition:background .2s,color .2s}.finder-options button:hover{border-color:var(--ink)}.finder-options button[aria-pressed=true]{background:var(--ink);color:#fff;border-color:var(--ink)}.finder-result{margin-top:18px;background:var(--paper);padding:22px;border:1px solid var(--line)}.finder-result:empty{display:none}.finder-result strong{font-size:17px;font-weight:600}.opening .finder-result p{margin:8px 0 16px;font-size:15px;max-width:none}
/* Enquiry form (contact page) */
.contact-details h3{margin-top:30px}.contact-details>div>h3:first-child{margin-top:0}.enquiry{display:grid;gap:18px;margin-top:22px}.field{display:grid;gap:6px}.field label,.field legend{font-size:13px;font-weight:600;letter-spacing:.2px}.field label span{font-weight:400;color:var(--muted)}.field input,.field textarea{font:inherit;padding:13px 14px;border:1px solid #b9c1c7;background:#fff;color:var(--ink);width:100%;border-radius:0}.field textarea{resize:vertical;min-height:120px}.field input:focus,.field textarea:focus{outline:3px solid var(--ink);outline-offset:2px;border-color:var(--ink)}.field [aria-invalid=true]{border-color:#a0261c}.field .error{font-size:13px;color:#a0261c;min-height:0}.field .error:empty{display:none}fieldset.field{border:0;padding:0;margin:0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.chips label{border:1px solid #b9c1c7;padding:9px 13px;font-size:14px;cursor:pointer;display:inline-flex;gap:8px;align-items:center;background:#fff;white-space:nowrap}.chips label:has(:checked){background:var(--ink);color:#fff;border-color:var(--ink)}.chips input{accent-color:var(--ink);margin:0;width:18px;height:18px;padding:0;border:0;flex:none}.hp{position:absolute;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden}.form-note{font-size:13px;color:var(--muted)}.form-status{font-size:14px;color:var(--ink)}.form-status:empty{display:none}.form-status a{text-decoration:underline;text-underline-offset:4px}.form-done{background:#e7edca;padding:26px;margin-top:22px}.form-done h3{margin-bottom:10px}.form-done p{color:var(--muted)}.contact-details .contact-number{margin-bottom:18px}.contact-details ul{margin-top:14px}
/* Scroll reveal, added by app.js only when motion is allowed */
.reveal{opacity:0;transform:translateY(16px);transition:opacity .6s ease,transform .6s ease}.reveal.in{opacity:1;transform:none}
/* Simple pages: thanks, 404 */
.simple{padding:90px 5.5% 110px;min-height:50vh}.simple h1{font-size:clamp(46px,5.6vw,84px);margin:24px 0}.simple p{max-width:560px;color:var(--muted);font-size:18px}.simple .actions{margin-top:30px}@media(max-width:650px){.simple{padding:60px 6% 70px}}

/* Who we work with (home) and entry offers (services) */
.four-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}.four-grid article{border-top:1px solid var(--line);padding-top:22px}.four-grid h3{font-size:23px;letter-spacing:-.025em;margin:18px 0 14px}.four-grid p{color:var(--muted);font-size:15px}.four-grid a{display:block;margin-top:18px;font-size:14px;font-weight:600}.four-grid .then{display:block;margin-top:18px;font-size:13px;color:var(--muted);border-top:1px solid var(--line);padding-top:12px}.offers{background:#edf0ed}.offers .four-grid article{border-top-color:#c3cbb6}.offers .four-grid .then{border-top-color:#c3cbb6}@media(max-width:900px){.four-grid{grid-template-columns:1fr 1fr;gap:28px}}@media(max-width:650px){.four-grid{grid-template-columns:1fr;gap:24px}.four-grid h3{font-size:24px}}
@media(max-width:650px){.chips label{width:100%;white-space:normal}}
@media print{.reveal{opacity:1;transform:none}.mobile-menu,.skip,dialog{display:none}}


/* ===== Work page (/work/) and homepage "Recent work" section. Append to style.css. ===== */

/* Project sections */
.project-alt{background:#edf0ed}
.project-head>p{max-width:470px;font-size:17px}

/* Diamond Valley Taxi: device presentation (CSS only) */
.device-stage{position:relative;padding-bottom:56px}
.device{border:1px solid var(--line);background:#fff;overflow:hidden}
.device img{display:block;width:100%;height:auto}
.device-desktop{width:82%}
.device-bar{display:flex;align-items:center;gap:6px;height:26px;padding:0 12px;border-bottom:1px solid var(--line);background:#f4f6f3}
.device-bar span{width:8px;height:8px;border-radius:50%;background:var(--line)}
.device-mobile{position:absolute;right:0;bottom:0;width:22%;border:4px solid var(--ink);border-radius:18px;background:var(--ink);box-shadow:0 12px 32px rgba(19,37,59,.14)}
.device-mobile img{border-radius:13px}
.device-caption{font-size:12px;color:var(--muted);margin-top:18px}

/* Facts grid (extends .detail-grid) */
.project-facts{margin-top:56px}
.project-facts h3{font-size:24px;margin-top:0}
.project-facts ul{padding-left:18px;margin:0;color:var(--muted);font-size:15px;line-height:1.6}
.project-facts li{margin-bottom:10px}
.project-facts li:last-child{margin-bottom:0}
.project-facts strong{display:block;font-size:12px;font-weight:600;letter-spacing:1.2px;text-transform:uppercase;color:var(--ink);margin-bottom:10px}
.project-facts ul+strong{margin-top:22px}
.project-facts p+p{margin-top:14px}
.project-cta{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px;margin-top:48px}

/* Black Art: product tour */
.tour{margin-top:48px}
.tour-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px 32px;flex-wrap:wrap;margin-bottom:22px}
.tour-lead{color:var(--muted);margin-top:10px;max-width:520px}
.tour-tools{display:flex;align-items:center;flex-wrap:wrap;gap:12px 18px}
.tour-flag{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase}
.tour-flag:before{content:'';width:9px;height:9px;background:var(--lime);border:1px solid var(--ink);flex:none}
.tour-play{background:none;color:var(--ink);border:1px solid var(--ink);padding:9px 14px;font-size:13px;font-weight:500;transition:background .2s,color .2s}
.tour-play:hover{background:var(--ink);color:#fff}
.tour [role=tablist]{display:flex;flex-wrap:wrap;gap:8px;border-bottom:0;margin-bottom:24px}
.tour [role=tab]{flex:0 0 auto;background:#fff;color:var(--ink);border:1px solid var(--line);padding:10px 14px;font-size:13px;font-weight:500;line-height:1.2;text-align:center;transition:background .2s,border-color .2s,color .2s}
.tour [role=tab]:hover{border-color:var(--ink)}
.tour [role=tab][aria-selected=true]{background:var(--ink);color:#fff;border-color:var(--ink)}
.tour [role=tabpanel]{padding-top:0;display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);gap:40px;align-items:start}
.tour [role=tabpanel] p{font-size:16px;color:var(--muted);margin:0}
.tour [role=tabpanel] .eyebrow{font-size:11px;color:var(--ink)}
.tour-note h3{font-size:30px;letter-spacing:-.03em;margin:18px 0 14px}

/* Mock application screens (all placeholder content) */
.mock{background:#fff;border:1px solid var(--line);color:var(--ink);font-size:12px;line-height:1.4;overflow:hidden}
@keyframes mock-in{from{opacity:.35;transform:translateY(5px)}to{opacity:1;transform:none}}
.mock.is-entering{animation:mock-in .25s ease-out}
.mk-top{display:flex;align-items:center;gap:12px;padding:10px 14px;border-bottom:1px solid var(--line)}
.mk-brand{display:inline-flex;align-items:center;gap:7px;font-weight:650;letter-spacing:-.3px}
.mk-brand:before{content:'';width:9px;height:9px;background:var(--lime);border:1px solid var(--ink)}
.mk-crumb{color:var(--muted)}
.mk-sample{margin-left:auto;font-size:10px;letter-spacing:1px;text-transform:uppercase;border:1px solid var(--line);padding:2px 7px;white-space:nowrap}
.mk-avatar{width:20px;height:20px;border-radius:50%;background:#e4e9f0;flex:none}
.mk-body{display:grid;grid-template-columns:132px minmax(0,1fr);min-height:400px}
.mk-side{background:#f4f6f3;border-right:1px solid var(--line);padding:12px 0}
.mk-nav{display:block;padding:6px 14px;color:var(--muted);border-left:3px solid transparent}
.mk-nav.is-active{color:var(--ink);font-weight:550;background:#fff;border-left-color:var(--lime)}
.mk-main{padding:14px;display:grid;gap:12px;align-content:start;min-width:0}
.mk-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.mk-tiles-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.mk-tile{border:1px solid var(--line);padding:10px 12px;min-width:0}
.mk-label{display:block;color:var(--muted);font-size:11px;margin-bottom:8px}
.mk-bar{display:block;height:10px;max-width:100%;background:#e4e9f0}
.mk-w1{width:25%}.mk-w2{width:38%}.mk-w3{width:50%}.mk-w4{width:62%}.mk-w5{width:75%}
.mk-hint{display:block;font-size:10px;letter-spacing:.6px;text-transform:uppercase;color:var(--muted);margin-top:7px}
.mk-cols{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.mk-card{border:1px solid var(--line);padding:12px;min-width:0}
.mk-card-title{display:block;font-weight:550;margin-bottom:6px}
.mk-item{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.mk-item>span:first-child{min-width:0}
.mk-chip{font-size:10px;letter-spacing:.6px;text-transform:uppercase;border:1px solid var(--line);padding:2px 7px;white-space:nowrap;flex:none}
.mk-on{background:var(--lime);border-color:var(--lime)}
.mk-off{background:#e4e9f0;border-color:#e4e9f0;color:var(--muted)}
.mk-toolbar{display:flex;align-items:center;gap:8px}
.mk-search{flex:1;min-width:0;border:1px solid var(--line);padding:7px 10px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-btn{display:inline-block;background:var(--ink);color:#fff;padding:7px 11px;font-weight:500;white-space:nowrap}
.mk-ghost{background:none;color:var(--ink);border:1px solid var(--ink);padding:6px 10px}
.mk-row{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:10px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.mk-row>span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mk-head{border-top:0;color:var(--muted);font-size:11px}
.mk-field{display:grid;grid-template-columns:96px minmax(0,1fr);gap:8px;align-items:center;padding:5px 0}
.mk-field .mk-label{margin:0}
.mk-input{display:block;border:1px solid var(--line);padding:6px 10px;color:var(--muted);min-height:29px}
.mk-textarea{min-height:64px}
.mk-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.mk-thread{display:flex;flex-direction:column;gap:8px;padding:6px 0}
.mk-bubble{max-width:88%;padding:7px 10px;border:1px solid var(--line)}
.mk-out{align-self:flex-end;background:var(--ink);color:#fff;border-color:var(--ink)}
.mk-qr{display:grid;grid-template-columns:repeat(7,8px);gap:2px;width:max-content;padding:8px;border:1px solid var(--line);margin:4px 0 10px}
.mk-qr span{width:8px;height:8px;background:#eef1ec}
.mk-qr span.on{background:var(--ink)}
.mk-note{display:block;font-size:11px;color:var(--muted)}
.mk-check{display:flex;align-items:center;gap:8px;padding:6px 0;color:var(--muted)}
.mk-box{width:14px;height:14px;border:1px solid var(--ink);flex:none}
.mk-box.on{background:var(--lime)}
.mk-drop{border:1px dashed #8d98a5;padding:24px 12px;text-align:center;color:var(--muted)}
.mk-toggle{position:relative;width:28px;height:16px;background:var(--line);flex:none}
.mk-toggle:after{content:'';position:absolute;top:2px;left:2px;width:12px;height:12px;background:#fff}
.mk-toggle.on{background:var(--ink)}
.mk-toggle.on:after{left:14px}

/* Worked examples note */
.examples-note{display:grid;grid-template-columns:1fr 1.5fr;gap:9%;border-top:1px solid var(--line)}
.examples-note h2{margin-top:24px}
.note-copy{color:var(--muted);max-width:560px}
.examples-links{display:flex;flex-wrap:wrap;gap:12px 28px;margin-top:26px}
.examples-links a{font-weight:600}
.project-cta .text-link,.examples-links a,.work-more a{display:inline-block;padding:4px 0}

/* Homepage: recent work */
.recent-work{border-top:1px solid var(--line)}
.work-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.work-card{display:flex;flex-direction:column;border:1px solid var(--line);background:#eef1ec;color:var(--ink);padding:32px;transition:transform .2s}
.work-card:nth-child(2){background:#e4e9f0}
.work-card:hover{transform:translateY(-5px)}
.work-label{font-size:11px;letter-spacing:1.4px}
.work-thumb{display:block;margin-top:26px;border:1px solid var(--line);background:#fff;aspect-ratio:16/9;overflow:hidden}
.work-thumb img{display:block;width:100%;height:100%;object-fit:cover;object-position:top}
.work-thumb-mock{display:grid;grid-template-columns:28% minmax(0,1fr)}
.wm-side{display:flex;flex-direction:column;gap:9px;padding:16px 12px;background:#f4f6f3;border-right:1px solid var(--line)}
.wm-side span{display:block;height:8px;width:78%;background:#d6dce0}
.wm-side span:first-child{width:58%;background:var(--lime)}
.wm-main{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;align-content:start;padding:16px}
.wm-main span{display:block;height:36px;border:1px solid var(--line)}
.wm-main .wm-wide{grid-column:1/-1;height:70px}
.work-title{display:block;font-size:35px;font-weight:500;line-height:1.08;letter-spacing:-.045em;margin:30px 0 16px}
.work-desc{display:block;font-size:14px;color:var(--muted);max-width:440px;margin-bottom:40px}
.work-link{display:block;margin-top:auto;border-top:1px solid #bdc6c9;padding-top:19px;font-size:14px}
.work-card:hover .work-link{text-decoration:underline;text-underline-offset:5px}
.work-more{margin-top:36px;font-size:14px}

@media(max-width:900px){
.tour [role=tabpanel]{grid-template-columns:1fr;gap:28px}
.project-facts{grid-template-columns:1fr 1fr}
.project-facts article:last-child{grid-column:1/-1}
.device-desktop{width:88%}
.device-mobile{width:26%}
.work-card{padding:24px}
.work-title{font-size:29px}
}
@media(max-width:650px){
.project-head>p{font-size:16px}
.device-stage{padding-bottom:44px}
.device-desktop{width:100%}
.device-mobile{width:36%;border-width:3px;border-radius:14px}
.device-mobile img{aspect-ratio:9/16;object-fit:cover;object-position:top;border-radius:10px}
.project-facts{grid-template-columns:1fr;margin-top:40px}
.project-cta{margin-top:36px}
.tour{margin-top:36px}
.tour [role=tablist]{gap:6px}
.tour [role=tab]{flex:0 0 auto;font-size:12px;padding:9px 11px}
.tour-note h3{font-size:26px}
.mk-body{grid-template-columns:1fr;min-height:0}
.mk-side{display:none}
.mk-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}
.mk-cols{grid-template-columns:1fr}
.mk-row{grid-template-columns:1.4fr 1fr}
.mk-row>span:nth-child(n+3){display:none}
.mk-field{grid-template-columns:1fr;gap:4px}
.examples-note{grid-template-columns:1fr;gap:30px}
.work-grid{grid-template-columns:1fr}
.work-card{padding:28px}
.work-title{font-size:36px;margin-top:26px}
}
@media(prefers-reduced-motion:reduce){
.mock.is-entering{animation:none}
.work-card:hover{transform:none}
}
@media(max-width:900px){.device-caption{max-width:68%}}@media(max-width:650px){.device-caption{max-width:58%;margin-top:14px}}
.experience-note .note-title{font-size:26px;font-weight:500;line-height:1.08;letter-spacing:-.045em;margin:15px 0;color:var(--ink)}.enquiry{display:none}.js .enquiry{display:grid}html:not(.js) .tour [role=tablist]{display:none}
/* Tap targets: give small text links some height on touch screens */
.footer-nav a,.footer-top>a:last-child,.service a,.four-grid a,.text-link,.photo-credit a,.faq details a{display:inline-block;padding:4px 0}.service a,.four-grid a{display:block}.footer-nav{gap:8px 25px}
.project-facts.two{grid-template-columns:repeat(2,1fr)}.work-card:nth-child(3){background:#e7edca}.work-card:nth-child(4){background:#edf0ed}@media(max-width:650px){.project-facts.two{grid-template-columns:1fr}}

/* ===== Personality layer =====
   Added 28 September 2026 from the founder's five references. Seven numbered blocks (P1-P7); delete a block to remove that element.
   Notes and removal steps: scratchpad/design/NOTES.md. Colours are the existing tokens and tints already used above
   (#748638, #abbf63, #e4f6a8 lime tints; #28415e, #bdc8d5 navy tints). DM Mono is linked from each page head with local fallbacks. */

/* P1. Mono micro-labels (reference 1). Eyebrows, numbers, panel labels, captions and the brand line in a monospaced face. */
:root{--mono:'DM Mono','SFMono-Regular',Menlo,Consolas,'Liberation Mono',monospace}
.eyebrow,.brand small,.service-no,.panel-top,.process>div>span,.hero-bottom>span:first-child,.steps span,.trust-list article>span,.case>span:first-child,.founder-card>span,.work-label,.project-facts strong,.tour-flag,.location,.city figcaption,.device-caption,.footer-top p{font-family:var(--mono);font-weight:500;letter-spacing:.12em}
.eyebrow{font-size:11px;letter-spacing:.14em}
.brand small{font-size:8.5px;letter-spacing:.2em;margin-top:10px}
.service-no,.steps span,.trust-list article>span,.process>div>span{font-size:11px}
.panel-top,.hero-bottom>span:first-child,.founder-card>span,.case>span:first-child,.work-label{font-size:10px}
.project-facts strong,.tour-flag{font-size:11px;letter-spacing:.12em}
.location,.city figcaption,.device-caption{font-size:11px;font-weight:400;letter-spacing:.04em}
.footer-top p{font-size:11px;text-transform:uppercase;letter-spacing:.18em}
.models .eyebrow,dialog .eyebrow,.tour [role=tabpanel] .eyebrow{font-size:10px}
@media(max-width:650px){.hero-top .eyebrow{font-size:10px;letter-spacing:.1em}.brand small{font-size:8px}}

/* P2. Monogram (reference 1): a fine-line open P with a square full stop. Inline SVG (.mark) in the footer signature; the favicon in each head is the same drawing on navy. */
.mark{width:28px;height:28px;display:inline-block;vertical-align:-5px;margin-right:10px;color:var(--ink)}
.mark path{stroke-width:1.6}
@media(max-width:650px){.mark{width:24px;height:24px;vertical-align:-4px;margin-right:8px}}

/* P3. Inscription band (reference 2): one line in Caslon capitals running slowly across the homepage between the hero and the opening section.
   Pauses on hover and on keyboard focus (the band is a tab stop); static and centred under prefers-reduced-motion. */
.inscription{overflow:hidden;border-top:1px solid var(--line);padding:18px 0;font-family:'Libre Caslon Display',Georgia,serif;font-size:16px;letter-spacing:.11em;text-transform:uppercase;line-height:1.4;color:var(--ink)}
.inscription-track{display:flex;width:max-content;animation:inscription 52s linear infinite}
.inscription-track p{flex:none;white-space:nowrap}
.inscription-sep{display:inline-block;width:8px;height:8px;background:var(--lime);border:1px solid var(--ink);margin:0 1.7em;vertical-align:.12em}
.inscription:hover .inscription-track,.inscription:focus .inscription-track,.inscription:focus-within .inscription-track{animation-play-state:paused}
@keyframes inscription{to{transform:translateX(-50%)}}
@media(max-width:650px){.inscription{font-size:14px;padding:15px 0}}

/* P4. Striped band (reference 4): four lime tones stacked as the top edge of every navy contact block. */
.contact{position:relative}
.contact::before{content:'';position:absolute;top:0;left:0;right:0;height:12px;background:linear-gradient(#e4f6a8 0 25%,#abbf63 25% 50%,#d6ee79 50% 75%,#748638 75% 100%)}

/* P5. One big word (reference 5): a low-contrast word behind a page hero. Used once: <section class="page-hero" data-word="WORK."> on /work/. */
.page-hero[data-word]{position:relative;overflow:hidden}
.page-hero[data-word]>*{position:relative;z-index:1}
.page-hero[data-word]::after{content:attr(data-word);position:absolute;right:3.5%;bottom:-.14em;z-index:0;font-size:min(21vw,300px);font-weight:650;letter-spacing:-.06em;line-height:1;color:var(--ink);opacity:.05;pointer-events:none;-webkit-user-select:none;user-select:none}

/* P6. Confident colour (reference 3): a lime rule under the serif word of every h1, drawn in once on load. */
h1 em{background-image:linear-gradient(var(--lime),var(--lime));background-repeat:no-repeat;background-position:0 87%;background-size:100% .13em;-webkit-box-decoration-break:clone;box-decoration-break:clone;animation:rule-in .8s cubic-bezier(.2,.7,.2,1) .3s both}
@keyframes rule-in{from{background-size:0 .13em}to{background-size:100% .13em}}

/* P7. Small motion (reference 4) and a fine-line frame (references 1 and 2): underlines draw in, arrows nudge, the founder card gets an inner hairline. */
header>nav a:not([aria-current=page]),.footer-nav a:not([aria-current=page]),.text-link,.footer-top>a:last-child{text-decoration:none;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-size:0 1px;background-position:0 calc(100% - 2px);transition:background-size .3s cubic-bezier(.2,.7,.2,1)}
header>nav a:not([aria-current=page]){background-position:0 100%}
header>nav a:not([aria-current=page]):hover,.footer-nav a:not([aria-current=page]):hover,.text-link:hover,.footer-top>a:last-child:hover{text-decoration:none;background-size:100% 1px}
.button span[aria-hidden],.text-link span[aria-hidden],.service a span[aria-hidden],.four-grid a span[aria-hidden],.work-link span[aria-hidden],.panel-bottom span[aria-hidden],.footer-top>a:last-child span[aria-hidden]{display:inline-block;transition:transform .25s cubic-bezier(.2,.7,.2,1)}
.button:hover span[aria-hidden],.text-link:hover span[aria-hidden],.service a:hover span[aria-hidden],.four-grid a:hover span[aria-hidden],.work-card:hover .work-link span[aria-hidden],.panel-bottom:hover span[aria-hidden]{transform:translate(2px,-2px)}
a[href="#services"]:hover span[aria-hidden]{transform:translateY(3px)}
.footer-top>a:last-child:hover span[aria-hidden]{transform:translateY(-3px)}
.founder-card{position:relative}
.founder-card::after{content:'';position:absolute;inset:10px;border:1px solid #abbf63;pointer-events:none}

/* Personality layer: reduced motion and print. */
@media(prefers-reduced-motion:reduce){
.inscription-track{animation:none;display:block;width:auto;padding:0 5.5%;text-align:center}
.inscription-track p{white-space:normal}
.inscription-track p+p{display:none}
.inscription-track p .inscription-sep:last-child{display:none}
h1 em{animation:none}
.button:hover span[aria-hidden],.text-link:hover span[aria-hidden],.service a:hover span[aria-hidden],.four-grid a:hover span[aria-hidden],.work-card:hover .work-link span[aria-hidden],.panel-bottom:hover span[aria-hidden],a[href="#services"]:hover span[aria-hidden],.footer-top>a:last-child:hover span[aria-hidden]{transform:none}
}
@media print{.inscription,.page-hero[data-word]::after{display:none}h1 em{animation:none}}
/* ===== End personality layer ===== */

/* Stepped enquiry form and five-card work grid (28 September 2026) */
.progress{display:flex;gap:6px;list-style:none;padding:0;margin:0 0 22px}.progress li{flex:1;font-family:var(--mono,'DM Mono',ui-monospace,monospace);font-size:11px;letter-spacing:1px;text-transform:uppercase;padding:10px 0 0;border-top:2px solid var(--line);color:var(--muted)}.progress li[aria-current=step]{border-top-color:var(--ink);color:var(--ink)}.progress li.done{border-top-color:#748638;color:var(--ink)}.step{border:0;padding:0;margin:0;display:grid;gap:18px}.step[hidden]{display:none}.step legend{font-size:22px;font-weight:500;letter-spacing:-.025em;padding:0;margin-bottom:4px}.step legend:focus{outline:none}.field-help{font-size:14px;color:var(--muted);margin-top:-10px}.follow{padding-top:16px;border-top:1px dashed var(--line)}.follow[hidden]{display:none}.step-nav{display:flex;gap:12px;flex-wrap:wrap;align-items:center}.button.ghost{background:none;color:var(--ink);border-color:var(--ink)}.button.ghost:hover{background:#e4e9f0}.summary{display:grid;grid-template-columns:auto 1fr;gap:10px 18px;font-size:15px;margin:0}.summary dt{color:var(--muted)}.summary dd{margin:0;overflow-wrap:anywhere}.summary button{background:none;border:0;color:var(--ink);text-decoration:underline;text-underline-offset:4px;font-size:13px;padding:0 2px;margin-left:6px;cursor:pointer}.count{font-size:12px;color:var(--muted);text-align:right;min-height:0}.count:empty{display:none}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.work-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.work-card{padding:26px}.work-title{font-size:30px}.work-card:nth-child(5){background:#eef1ec}@media(max-width:900px){.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.work-card:last-child:nth-child(odd){grid-column:1/-1}}@media(max-width:650px){.work-grid{grid-template-columns:1fr}.summary{grid-template-columns:1fr}.summary dt{margin-top:6px}}
[hidden]{display:none!important}
@media(min-width:651px) and (max-width:900px){.work-card:last-child:nth-child(odd) .work-thumb{aspect-ratio:auto;height:220px}}
