/* Shared reading rhythm and hierarchy across the portfolio. */
:root{--page-inset:clamp(20px,4.5vw,64px);--reading-size:16px;--reading-leading:1.6;--section-space:clamp(28px,3vw,44px);--label-tracking:.08em}
body{line-height:var(--reading-leading)}
main h1,main h2,main h3{text-wrap:balance}
main p{letter-spacing:normal}
button,a{-webkit-tap-highlight-color:#a98b5b26}
.shell>header,.shell.home-page>header{padding-left:var(--page-inset);padding-right:var(--page-inset)}
.shell>header .brand,.shell.home-page>header .brand{font-size:16px;font-weight:500;letter-spacing:.015em}
.shell>header nav a,.shell>header nav a.active,.shell.home-page>header nav a,.shell.home-page>header nav a.active{font-size:13px;font-weight:500;letter-spacing:.025em}
/* Hero copy is one flowing block, so long lines never collide. */
.home-luxe{padding-left:var(--page-inset);padding-right:var(--page-inset)}
.luxe-interests{top:82px;font-size:11px;line-height:1.55;letter-spacing:.035em}
.luxe-heading-block{position:absolute;left:0;bottom:38px;max-width:67%}
.luxe-intro .luxe-heading-block h1{position:static;margin:0;font-size:clamp(44px,5vw,70px);line-height:1.06;letter-spacing:-.02em;text-wrap:nowrap}
.luxe-heading-block h1 .luxe-heading-second{font-size:.85em;margin-top:2px}
.luxe-heading-block .luxe-description{position:static;margin:16px 0 0;font-size:16px;line-height:1.5;max-width:44ch;text-shadow:0 1px 7px #17354b70}
.luxe-description br{display:none}
.luxe-postcard{right:0;top:120px;width:20%}
.luxe-postcard>p{font-size:clamp(21px,2vw,28px);line-height:1.35}
.home-work-preview{padding:var(--section-space) var(--page-inset) 16px}
.redo-work-intro{grid-template-columns:13% 41% 46%;margin-bottom:22px}
.redo-work-intro h2{font-size:14px;letter-spacing:.15em;line-height:1.5}
.redo-work-intro>p{font-size:16px;line-height:1.55;max-width:52ch}
.home-work-preview .luxe-categories{margin-left:13%;margin-bottom:24px;gap:10px 24px}
.home-work-preview .luxe-categories button{letter-spacing:.09em;font-size:11px}
.home-work-preview .luxe-project{padding:28px 0}
.redo-row-copy h3{font-size:clamp(32px,3vw,42px);line-height:1.12;letter-spacing:-.025em;margin-bottom:7px}
.redo-row-subtitle{font-size:17px;line-height:1.45;margin-bottom:10px}
.redo-row-description{font-size:16px;line-height:1.55;max-width:43ch}
.redo-row-link{margin-top:12px;letter-spacing:.08em}
.redo-row-index>p{font-size:11px;line-height:1.55;letter-spacing:.06em}
.redo-row-hint{font-size:16px}
.home-section-title h2{font-size:clamp(34px,3.4vw,48px);line-height:1.08;letter-spacing:-.025em}
.home-bio{font-size:16px;line-height:1.65}.home-bio p{line-height:1.65;max-width:45ch}
.home-background ul,.home-contact-details{font-size:14px;line-height:1.6}
.home-contact .home-section-title p{font-size:15px;line-height:1.6}
.home-note h3{font-size:23px;line-height:1.2;letter-spacing:-.015em;margin:8px 0}
.home-note-excerpt{font-size:14px;line-height:1.55}
.home-note time{font-size:11px;letter-spacing:.06em;line-height:1.5}
/* Category indexes and individual projects. */
.filtered .display,.detail h1,.article h1,.journal-article h1{font-size:clamp(36px,4.2vw,58px);line-height:1.1;letter-spacing:-.025em}
.filtered .count{font-size:30px;line-height:1.15;margin-top:16px}
.filters button,.filters button:first-child{font-size:13px;line-height:1.4;letter-spacing:.015em}
.caption{font-size:15px;line-height:1.5;padding-top:10px}
.work-category-heading h2{font-size:clamp(24px,2.5vw,32px);line-height:1.2}
.work-category-description,.work-card-description{font-size:14px;line-height:1.6}
.work-introduction{padding:24px;gap:24px}.work-introduction>div{font-size:14px;line-height:1.6}
.detail .description,.article p{font-size:17px;line-height:1.65;max-width:65ch}
.detail .subtitle{font-size:clamp(21px,2.2vw,28px);line-height:1.35;margin-top:16px}
.metadata{font-size:15px;line-height:1.6}.metadata small{font-size:11px;letter-spacing:.08em}
/* About and case studies. */
.ae-intro h1{font-size:clamp(48px,5vw,68px);line-height:1.08;letter-spacing:-.025em;margin:24px 0}
.ae-intro-text{font-size:17px;line-height:1.65;max-width:42ch}
.ae-story h2{font-size:clamp(28px,2.7vw,38px);line-height:1.18;letter-spacing:-.025em}
.ae-story>p:not(.ae-kicker){font-size:16px;line-height:1.65}
.ae-background-heading>p,.ae-outside-copy{font-size:16px;line-height:1.65}
.ae-field ul,.ae-facts p{font-size:14px;line-height:1.65}
.ae-field h3{font-size:12px;line-height:1.5;letter-spacing:.025em}
.ae-exploring ul{font-size:13px;line-height:1.9;letter-spacing:.05em}
.roami-case{font-size:16px;line-height:1.6}
.roami-case h1{font-size:clamp(58px,6.5vw,84px);line-height:1.05;letter-spacing:-.03em}
.roami-case h2{font-size:clamp(30px,3vw,42px);line-height:1.15;letter-spacing:-.025em;margin:16px 0}
.rp-feature p,.rp-steps p,.rp-next ul{font-size:14px;line-height:1.55}
.rp-feature h3,.rp-steps h4{font-size:19px;line-height:1.25}
.rp-meta{font-size:13px;line-height:1.6}.rp-label p{font-size:11px;letter-spacing:.08em}
/* Journal and reading pages. */
.journal{padding-left:var(--page-inset);padding-right:var(--page-inset)}
.journal h1{font-size:clamp(38px,4.4vw,60px);line-height:1.08;letter-spacing:-.025em}
.journal-intro>p:last-child{font-size:16px;line-height:1.6}
.journal-card h2{font-size:23px;line-height:1.2;letter-spacing:-.02em;margin:8px 0}
.journal-excerpt{font-size:15px;line-height:1.55}
.journal-meta{font-size:11px;letter-spacing:.06em;line-height:1.5}
.journal-read{font-size:13px}.journal-search input{font-size:16px}
.journal-article-copy{font-size:19px;line-height:1.7;max-width:62ch}
.water-note{font-size:18px;line-height:1.6}
.water-note h2{font-size:clamp(27px,2.5vw,34px);line-height:1.2;letter-spacing:-.015em;margin-bottom:16px}
.wn-hero h1{font-size:clamp(36px,4.1vw,56px);line-height:1.1;letter-spacing:-.025em}
.wn-deck{font-size:21px;line-height:1.45}
.wn-types p,.wn-comparison aside,.wn-ending>div{font-size:16px;line-height:1.6}
.wn-references a{font-size:14px;line-height:1.5}.wn-meta{font-size:11px;letter-spacing:.1em}
/* Contact and shared footer. */
.contact-editorial{font-size:16px;line-height:1.6}
.contact-editorial h1{font-size:clamp(48px,5.2vw,70px);line-height:1.03;letter-spacing:-.025em}
.cp-lead{font-size:16px;line-height:1.6}
.cp-links>a{padding:20px 0}.cp-links h2{font-size:19px;line-height:1.35;margin:6px 0}
.cp-links p,.cp-topics p,.cp-response p,.cp-travel-copy>p,.cp-availability ul{font-size:14px;line-height:1.6}
.cp-label p,.cp-kicker{font-size:11px;letter-spacing:.09em}
.site-footer{padding-left:var(--page-inset);padding-right:var(--page-inset)}
.nf-main h2{font:500 12px/1.5 var(--font-body);letter-spacing:.1em}
.nf-nav a{font-size:18px;line-height:1.5}.nf-contact p{font-size:16px;line-height:1.6}
.nf-intro{font-size:11px;line-height:1.8;letter-spacing:.1em}.nf-bottom small,.nf-bottom p{font-size:13px;line-height:1.6}
@media(max-width:1100px){.nf-main{gap:22px}.nf-brand>a{font-size:20px}.journal-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ae-fields{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){
 .shell>header,.shell.home-page>header{padding-left:24px;padding-right:24px}
 .luxe-interests{top:120px}.luxe-heading-block{max-width:76%;bottom:32px}
 .luxe-intro .luxe-heading-block h1{font-size:52px}.luxe-heading-block .luxe-description{font-size:15px}
 .luxe-postcard{top:132px}
 .redo-row-copy h3{font-size:34px}.redo-row-description{font-size:15px}
 .home-bio{font-size:16px}.home-background ul{font-size:14px}
 .rp-hero{grid-template-columns:1fr}.rp-intro{padding:28px}.rp-title{max-width:60ch}.rp-hero-image{width:100%;max-height:420px;object-fit:contain}
 .rp-idea-copy{display:block}.rp-postcard{max-width:320px;margin-top:20px}
 .wn-story{grid-template-columns:1fr 1fr}.wn-story>section{padding-right:24px}
 .nf-bottom p{justify-content:flex-start}
}
@media(max-width:700px){
 .redo-work-intro{grid-template-columns:40px 1fr;gap:14px 12px}.redo-work-intro>p{grid-column:1/-1}
 .home-work-preview .luxe-categories{margin-left:0;gap:6px}.home-work-preview .luxe-project{padding:28px 0}
 .redo-row-description{font-size:16px}.redo-row-copy h3{font-size:36px}
 .journal h1{font-size:42px}.journal-hero{gap:24px}
 .wn-story{grid-template-columns:1fr}.wn-story>section{padding-right:0}
 .ae-fields{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:600px){
 :root{--page-inset:20px}
 .shell>header,.shell.home-page>header{padding-left:16px;padding-right:16px}
 .shell>header .brand,.shell.home-page>header .brand{font-size:15px}
 .shell>header nav a,.shell>header nav a.active,.shell.home-page>header nav a,.shell.home-page>header nav a.active{font-size:12px;letter-spacing:0}
 .home-luxe{height:560px}.luxe-interests{top:118px;font-size:10px;line-height:1.6}
 .luxe-heading-block{max-width:100%;bottom:34px;right:0}
 .luxe-intro .luxe-heading-block h1{font-size:clamp(39px,10vw,54px);line-height:1.08}
 .luxe-heading-block h1 .luxe-heading-second{font-size:.68em}
 .luxe-heading-block .luxe-description{font-size:15px;line-height:1.55;max-width:32ch;margin-top:16px}
 .luxe-postcard{top:130px;width:37%}.luxe-postcard>p{font-size:19px}
 .redo-work-intro h2{font-size:14px}.redo-work-intro>p{font-size:16px}
 .home-section-title h2{font-size:38px}.home-contact-details{font-size:15px}
 .filtered .display,.detail h1,.article h1,.journal-article h1{font-size:clamp(32px,8.5vw,42px)}
 .filters button,.filters button:first-child{font-size:12px}
 .all-work .work-category{padding:18px}.work-category-heading h2{font-size:24px}
 .ae-intro-text{font-size:16px}.ae-background-heading>p,.ae-outside-copy{font-size:16px}
 .ae-story h2{font-size:30px}.ae-facts p{font-size:14px}
 .roami-case h1{font-size:62px}.roami-case h2{font-size:33px}
 .rp-features{grid-template-columns:1fr 1fr}.rp-feature{padding:16px 12px}
 .journal-card h2{font-size:23px}.journal-excerpt{font-size:15px}
 .contact-editorial h1{font-size:clamp(44px,11vw,58px)}
 .cp-links h2{font-size:18px}.cp-lead{font-size:16px}
 .nf-main{gap:24px 18px}.nf-brand>a{font-size:23px}.nf-contact p{margin-left:0}
 .nf-intro{font-size:11px}.nf-bottom small,.nf-bottom p{font-size:12px}
}
@media(max-width:400px){.journal-grid,.ae-fields{grid-template-columns:1fr}.ae-facts{grid-template-columns:1fr}.rp-features{grid-template-columns:1fr}.rp-feature:nth-child(even){border-left:0}.rp-feature{border-top:1px solid var(--rp-line)}.nf-brand>a{font-size:21px}}
/* Unpublished Roami note: preview only, with an accessible availability label. */
.note-upcoming{position:relative;cursor:default;align-self:stretch}
.note-upcoming .upcoming-content{opacity:.36;transition:opacity .2s ease}
.upcoming-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:500 14px/1.5 var(--font-body);text-transform:uppercase;letter-spacing:.1em;color:#493c2c;background:#f2ece35c;opacity:0;transition:opacity .2s ease;pointer-events:none}
.note-upcoming:hover .upcoming-overlay,.note-upcoming:focus-visible .upcoming-overlay{opacity:1}
.note-upcoming:focus-visible{outline:2px solid #846849;outline-offset:5px}
@media(hover:none){.note-upcoming .upcoming-overlay{opacity:1}}
@media(prefers-reduced-motion:reduce){.note-upcoming .upcoming-content,.upcoming-overlay{transition:none}}

/* Focus the contact hero on the laptop and tabletop, with the sea behind them. */
.cp-hero-image{object-fit:cover;object-position:53% 65%;min-height:0}
@media(max-width:700px){.cp-hero-image{height:auto;max-height:550px;aspect-ratio:1.15;object-position:53% 75%}}

.cp-travel-image{object-position:65% 65%}

/* Keep the homepage contact photo within its compact landscape slot. */
.home-contact-photo{width:100%;height:clamp(250px,22vw,310px);min-height:0;object-fit:cover;object-position:53% 65%;align-self:center}
@media(max-width:900px){.home-contact-photo{height:auto;aspect-ratio:2.5;max-height:310px}}
@media(max-width:600px){.home-contact-photo{aspect-ratio:1.8;object-position:53% 75%}}

/* Consistent numbering in each homepage section's original label position. */
.home-section-number,.home-section-title>.home-section-number{font:400 18px/1.3 var(--font-body);letter-spacing:0;color:#000}

/* Unreleased concepts retain their place in the product collection. */
.product-upcoming{position:relative;min-width:0;cursor:default}
.product-grid>.product-upcoming>img{width:100%;height:auto;aspect-ratio:25/16;object-fit:cover}
.product-upcoming>img,.product-upcoming>.caption{opacity:.36}
.product-upcoming:hover>.upcoming-overlay,.product-upcoming:focus-visible>.upcoming-overlay{opacity:1}
.product-upcoming:focus-visible{outline:2px solid #846849;outline-offset:5px}
@media(hover:none){.product-upcoming>.upcoming-overlay{opacity:1}}

.product-upcoming>.work-card-description{opacity:.36}

/* Quiet, smoky placeholders behind the Creative cover. */
.home-work-preview .redo-row-art .redo-blank-slide{position:absolute;border-radius:6px;border:3px solid #eee7de;box-shadow:0 8px 18px #35261322;background:#555960;transition:transform .35s ease}
.home-work-preview .redo-row-art .redo-blank-slide.redo-layer-side{background:#77797e}
@media(prefers-reduced-motion:reduce){.home-work-preview .redo-row-art .redo-blank-slide{transition:none}}

/* Match the homepage image surround to the current coastal palette. */
.home-page .projects{background:#b8cbd5}

/* Coastal colour brings the Projects overview into the homepage palette. */
.all-work{--line:#c7d5da;--muted:#536d7b}
.all-work .display{color:#233f50}
.all-work>.filtered>.count{color:#7595a6}
.all-work .work-introduction{background:linear-gradient(115deg,#243f50,#466b7c);border-color:#476979;color:#f4f7f8;padding:30px;box-shadow:0 8px 24px #233f500d}
.all-work .work-introduction strong{color:#fff}
.all-work .work-introduction span{color:#d7e5eb}
.all-work .work-category{background:#eef4f5;border-color:#cedde2;border-top:3px solid #8daab8}
.all-work .work-category:nth-child(even){background:#dce8ed;border-color:#c0d3dc;border-top-color:#668b9e}
.all-work .work-category-business{background:#e9eff2;border-top-color:#7293a3}
.all-work .work-category-creative{background:#d4e1e7;border-top-color:#536f80}
.all-work .work-category-heading h2{color:#203f51}
.all-work .work-category-heading h2 a:hover{color:#517b91}
.all-work .work-category-heading>span,.all-work-grid .number{color:#436a80}
.all-work .work-chapter{color:#527181}
.all-work .work-category-description,.all-work .work-card-description{color:#4e6571}
.all-work .all-work-grid img{background:#d6e2e7}
.all-work .filters button.active{color:#234e66}
.all-work .filters button.active:before{color:#5b8aa1}
.all-work .upcoming-overlay{background:#dce8ed5c;color:#294958}
@media(max-width:600px){.all-work .work-introduction{padding:22px}}
