@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-italic-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-italic-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(assets/fonts/cormorant-garamond-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/dm-sans-normal-latin-ext.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

@font-face {
  font-family: 'DM Sans';
  font-style: normal;
  font-weight: 400 700;
  font-display: swap;
  src: url(assets/fonts/dm-sans-normal-latin.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}


:root {
  --sky:#b9def4; --clients:#ffffff; --ink:#173e56; --paper:#f0eee5; --orange:#ed8656;
  --accent:#a33d1a; --line:#173e5638; --muted:#42657a;
  --serif:'Cormorant Garamond',Georgia,serif; --sans:'DM Sans',Arial,sans-serif;
  --gutter:clamp(24px,5vw,86px); --ease:cubic-bezier(.22,.68,0,1.01);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:28px}
body{margin:0;background:var(--sky);color:var(--ink);font:16px/1.75 var(--sans);-webkit-font-smoothing:antialiased}
body::after{content:'';position:fixed;inset:0;pointer-events:none;z-index:20;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='grain'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath filter='url(%23grain)' opacity='.65' d='M0 0h160v160H0z'/%3E%3C/svg%3E")}
::selection{background:#eea179;color:#163b53}
a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;border:0;background:none}button:disabled{cursor:default}button,a,summary{-webkit-tap-highlight-color:transparent}img{max-width:100%;display:block}h1,h2,h3,p,figure,blockquote{margin:0}h1,h2,h3{font:400 1em/1 var(--serif)}h1,h2{letter-spacing:-.05em}em{font-weight:400}[hidden]{display:none!important}
a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid currentColor;outline-offset:6px}
.wrap{width:min(100%,1600px);margin-inline:auto;padding-inline:var(--gutter)}
.section-space{padding-block:clamp(70px,7vw,112px)}
.eyebrow,.section-kicker{font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.09em}
.accent{color:var(--accent)}.small-dot{height:8px;width:8px;display:inline-block;border-radius:50%;background:var(--accent);flex-shrink:0}
.skip-link{position:fixed;top:12px;left:12px;padding:10px 18px;background:var(--paper);z-index:60;transform:translateY(-160%)}.skip-link:focus{transform:none}
.reading-progress{position:fixed;inset:0 auto auto 0;height:3px;background:var(--ink);width:100%;transform:scaleX(var(--reading,0));transform-origin:left;z-index:50;pointer-events:none}
.masthead{min-height:104px;display:flex;align-items:center;gap:30px;position:relative;z-index:3}
.masthead::after{content:'';position:absolute;bottom:0;left:var(--gutter);right:var(--gutter);border-bottom:1px solid var(--line)}
.wordmark{display:block;flex-shrink:0}.wordmark-image{width:194px;height:auto;filter:brightness(0) saturate(100%) invert(20%) sepia(14%) saturate(1977%) hue-rotate(159deg) brightness(90%)}
.masthead nav{display:flex;gap:30px;margin-left:auto;align-items:center;font-size:14px}
.masthead nav>a{padding-block:10px}.masthead nav>a:hover{text-decoration:underline;text-underline-offset:6px}
.masthead nav>.nav-contact{display:flex;gap:20px;padding:8px 18px;border:1px solid currentColor;border-radius:40px}.nav-contact:hover{background:var(--ink);color:var(--paper)}.menu-toggle{display:none}
.language-switch{display:flex;align-items:center;gap:2px;border:1px solid var(--line);border-radius:30px;padding:3px;flex-shrink:0;line-height:1.2}
.language-switch a{display:grid;place-items:center;min-width:38px;min-height:36px;padding:6px 8px;border-radius:24px;font-size:14px;font-weight:500}
.language-switch a[aria-current=page]{background:var(--ink);color:var(--paper)}.language-switch a:not([aria-current]):hover{background:#173e5612}
.hero{position:relative;isolation:isolate;padding-top:25px}
.hero::before{content:'';position:absolute;z-index:-1;inset:0 min(0px,calc((1600px - 100vw)/2)) 0 15%;background:url('assets/images/sky-clouds.webp') right top / auto calc(92% + max(0px,(100vw - 1600px)*.22)) no-repeat;opacity:calc(.65 - var(--hero-scroll,0)*.6);mask-image:linear-gradient(to bottom,#000 40%,transparent 87%);transform:translateY(calc(var(--hero-scroll,0)*-40px));pointer-events:none}
.hero-eyebrow{display:flex;align-items:center;gap:10px}.location{margin-left:auto;font-weight:400;letter-spacing:.025em}
.hero-grid{position:relative;padding-block:70px 62px;min-height:560px;display:flex;align-items:center}
.hero-copy{position:relative;z-index:1;width:100%}
h1{font-size:clamp(84px,10.5vw,168px);line-height:.88;margin-left:-5px}
h1 em{letter-spacing:-.045em}.hero-support{display:flex;align-items:flex-end;gap:clamp(35px,7vw,100px);margin-top:40px}.hero-intro{max-width:410px;font-size:16px;line-height:1.8}
.hero-asterisk{position:absolute;right:4%;bottom:24%;font:100px/1 var(--serif);color:var(--accent);transform:rotate(calc(-12deg + var(--hero-scroll,0)*65deg));pointer-events:none}
.button{display:inline-flex;align-items:center;gap:32px;font-size:14px;min-height:50px;padding:12px 24px;border:1px solid var(--ink);border-radius:40px;transition:background .25s,color .25s,transform .35s var(--ease);white-space:nowrap}.button-ink{background:var(--ink);color:var(--paper)}.button span{font-size:24px;line-height:1}.button:hover{background:var(--orange);color:#173e56;transform:translateY(-3px)}
.hero-bottom{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr auto;align-items:center;gap:35px;padding-block:28px 36px}.hero-bottom>p:first-child{font:29px/1.1 var(--serif);letter-spacing:-.025em}.hero-bottom>p:nth-child(2){font-size:14px;line-height:1.65}
.scroll-link{display:flex;align-items:center;gap:22px;font-size:14px}.circle-arrow{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid currentColor;border-radius:50%;font-size:22px;line-height:1;transition:background .25s,color .25s,transform .35s var(--ease)}.scroll-link:hover>.circle-arrow{background:var(--ink);color:var(--paper);transform:translateY(3px)}
.section-kicker{display:flex;justify-content:space-between;gap:24px;align-items:center;padding-bottom:18px;border-bottom:1px solid var(--line)}.section-kicker>span+span:last-child{letter-spacing:.02em;text-transform:none;font-weight:400}
.section-heading{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(35px,6vw,90px);align-items:end;margin:42px 0 55px}
h2{font-size:clamp(56px,5.7vw,90px);line-height:.98}.section-heading>p,.section-heading>div>p{max-width:430px;font-size:16px;line-height:1.8}
.services{background-color:var(--paper);--surface-entry:color-mix(in srgb,var(--sky) calc((1 - var(--surface-progress,1))*100%),var(--paper));background-color:color-mix(in srgb,var(--surface-entry) calc((1 - var(--surface-exit,0))*100%),var(--clients));transition:background-color .16s linear}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:38px}.service{min-width:0}.service-top{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:15px}.service-top>span:last-child{font-size:23px}
.service-art{position:relative;aspect-ratio:1;display:grid;place-items:center;margin-bottom:18px;isolation:isolate}.service-art img{width:100%;height:100%;object-fit:contain;transform:translateY(calc((var(--service-progress,.5) - .5)*-20px));mask-image:linear-gradient(to right,transparent,#000 7%,#000 93%,transparent),linear-gradient(to bottom,transparent,#000 5%,#000 94%,transparent);mask-composite:intersect;-webkit-mask-composite:source-in}.service-shape{display:none}
.service h3{font-size:clamp(32px,3.3vw,53px);line-height:1;letter-spacing:-.035em;margin-bottom:22px}.service>p{font-size:16px;line-height:1.8;min-height:144px}.service-details{font-size:14px;margin-top:22px;border-bottom:1px solid var(--line)}summary{cursor:pointer;list-style:none;display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:50px}summary::-webkit-details-marker{display:none}summary>span{font-size:24px;line-height:1;transition:rotate .25s}details[open]>summary>span{rotate:45deg}.service-details summary{padding-bottom:9px}.service-details>div{padding:10px 0 23px;font-size:16px}.service-details ul{padding-left:18px;line-height:1.9;margin-block:14px}.service-details a{display:block;text-decoration:underline;text-underline-offset:4px}
.thread-line{height:46px;margin-top:28px;position:relative;display:flex;justify-content:space-around;align-items:center}.thread-line::before,.thread-line>span{content:'';position:absolute;height:1px;left:16.66%;right:16.66%;background:var(--line);top:50%}.thread-line>span{background:var(--accent);transform:scaleX(var(--thread-progress,1));transform-origin:left;z-index:1}.thread-line i{width:9px;height:9px;background:var(--paper);border:1px solid var(--accent);border-radius:50%;z-index:2}.services-footnote{font:27px/1.3 var(--serif);text-align:center;margin-top:18px}
.clients{background:var(--clients);overflow:hidden}.client-marquee{border-block:1px solid var(--line);overflow:hidden;padding-block:30px;margin-top:5px}.client-track{width:100%}.client-set{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:30px 60px;padding-inline:var(--gutter)}.client-set>span{font:38px/1.2 var(--serif);white-space:nowrap}.client-set>.client-heavy{font:500 30px/1.2 var(--sans);letter-spacing:.02em}
.marquee-ready .client-track{width:max-content;display:flex}.marquee-ready .client-set{flex-shrink:0;flex-wrap:nowrap;gap:80px;padding:0 80px 0 0}.client-marquee.marquee-ready{mask-image:linear-gradient(to right,transparent,#000 4%,#000 96%,transparent)}
.all-clients{font-size:14px;border-bottom:1px solid var(--line);margin-top:10px}.all-clients summary{justify-content:flex-end;gap:18px;min-height:54px}.all-clients>p{padding-block:14px 30px;font-size:15px;line-height:2.1;columns:3;column-gap:34px}
.testimonials{padding-top:60px;display:grid;grid-template-columns:1fr 2.35fr;gap:20px 55px}.quote-label{display:flex;flex-direction:column;gap:22px}.quote-mark{font:100px/1 var(--serif);color:#5988a2}.quote blockquote{font:clamp(30px,2.55vw,42px)/1.18 var(--serif);letter-spacing:-.015em}.quote+.quote{margin-top:40px}.quotes-ready .quote{margin-top:0;min-height:270px}.quote figcaption{display:flex;align-items:center;gap:14px;margin-top:30px;font-size:13px;line-height:1.6}.quote figcaption strong,.quote figcaption>span>span{display:block}.quote figcaption strong{font-size:14px;font-weight:500}.quote-initials{display:grid;place-items:center;background:#bbd5e1;border-radius:50%;width:42px;height:42px;font:21px var(--serif)}.quote-controls{grid-column:2;display:flex;align-items:center;justify-content:flex-end;gap:10px}.quote-count{font-size:13px;margin-right:14px}.quote-controls button:hover{background:var(--ink);color:var(--paper)}.quote-translation-note{display:block;font-size:12px;margin-top:8px;color:var(--muted)}
.collective{background:#bddced}.collective-grid{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,8vw,120px)}.collective h2{font-size:clamp(55px,5vw,79px);margin-top:34px}.collective .text-link{margin-top:40px}.collective-copy p+p{margin-top:22px}.collective-copy a,.support-links a{text-decoration:underline;text-underline-offset:3px}.collective-flower{display:block;color:var(--accent);font:77px/1 var(--serif);margin-bottom:24px;transform:rotate(calc(var(--collective-progress,.5)*-95deg));transform-origin:35px 36px}.collective-copy blockquote{border-top:1px solid var(--line);padding-top:22px;margin-top:28px;font:italic 28px/1.22 var(--serif)}
.text-link{display:inline-flex;gap:30px;align-items:center;border-bottom:1px solid currentColor;padding:11px 0 8px;font-size:14px;line-height:1.5}.text-link>span{font-size:24px;transition:transform .3s var(--ease)}.text-link:hover>span{transform:translate(3px,-3px)}
.journal{background:#83b4d1}.journal .section-heading .text-link{margin-top:16px}.journal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 48px}.journal-entry{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr auto;gap:18px 20px;padding:25px 0 26px;border-top:1px solid var(--line);min-height:218px;transition:background .3s;color:var(--ink)}.journal-entry time{font-size:13px;color:var(--muted)}.journal-entry h3{grid-row:2;grid-column:1/-1;font-size:35px;line-height:1.05;letter-spacing:-.025em;max-width:490px}.journal-type{font-size:13px;grid-row:3;align-self:end}.journal-entry .circle-arrow{grid-row:3;grid-column:2}.journal-entry:hover .circle-arrow{transform:rotate(45deg)}.journal-entry .circle-arrow:hover,.journal-entry:focus-visible .circle-arrow{background:#173e56;color:#fff;border-color:#173e56}.journal-entry:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}.journal-entry:target{outline:2px solid var(--accent);outline-offset:8px}.journal-more{border-top:1px solid var(--line);padding-top:26px;display:flex;align-items:center;justify-content:space-between;gap:22px}.journal-status{font-size:13px;color:var(--muted)}.load-more{min-width:175px;justify-content:space-between}.load-more[aria-disabled=true]{opacity:.55;cursor:wait}
.open-source{display:grid;grid-template-columns:1fr 2.35fr;gap:55px;border-top:1px solid var(--line);padding-top:54px;margin-top:75px}.open-source-mark{display:flex;align-items:center;justify-content:center;gap:18px;font:150px/1 var(--serif);color:#367596}.open-source-mark>span{font-size:65px;color:var(--accent)}.open-source h3{font-size:41px;letter-spacing:-.025em;margin:20px 0 18px}.open-source p{max-width:680px}.open-source-links{display:flex;gap:38px;flex-wrap:wrap;margin-top:20px}.support-links{font-size:14px;margin-top:24px}
.contact{position:relative;background:#214d68;color:#f1f5f5;padding-bottom:95px}.contact::before{content:'';position:absolute;inset:0 0 auto;height:1px;background:#d7e8ee}.contact-grid{display:grid;grid-template-columns:2.3fr 1fr;gap:75px;margin-top:50px}.contact h2{font-size:clamp(76px,7.7vw,123px);line-height:.92;position:relative;max-width:760px}.contact h2>span{position:absolute;right:-30px;top:4px;font-size:80px;color:#b54620}.contact-grid>div>p{max-width:500px;margin-top:32px}.contact-email{display:inline-flex;align-items:center;gap:30px;font:36px/1.15 var(--serif);letter-spacing:-.015em;padding:0 0 10px;margin-top:35px;border-bottom:1px solid currentColor;text-align:left}.contact-email>span{font:26px var(--sans)}.revealed-email a{font:clamp(27px,3vw,43px)/1.25 var(--serif);text-decoration:underline;text-underline-offset:6px;overflow-wrap:anywhere}.contact-aside{padding-top:12px}.contact-aside>.eyebrow{display:block;margin-bottom:28px}.contact-aside>a:not(.text-link){font-size:20px;white-space:nowrap}.contact-aside>p{font-size:16px!important;margin-block:25px!important}.contact-fallback{margin-top:28px}
.footer{width:100%;max-width:none;background:#102f44;color:#f1f5f5;display:flex;flex-wrap:wrap;align-items:center;gap:28px;padding-block:42px;--line:#d9edf550;--ink:#d9edf5;--paper:#123d59}.footer .wordmark-image{width:158px;filter:none;opacity:.9}.copyright{font-size:13px}.footer nav{display:flex;gap:23px;font-size:13px;margin-left:auto;flex-wrap:wrap}.footer nav>a:hover{text-decoration:underline;text-underline-offset:4px}.footer .language-switch{margin-left:auto}.footer .language-switch a:not([aria-current]):hover{background:#ffffff16}.back-top{font-size:27px;min-width:35px;text-align:center}.motion-toggle{display:flex;align-items:center;gap:8px;font-size:13px;border:1px solid var(--line);padding:8px 14px;border-radius:30px}.motion-icon{font-size:16px}
.archive{background:linear-gradient(var(--sky),#e6eef0 650px);min-height:80vh;padding-block:60px 90px}.archive h1{font-size:clamp(65px,7vw,112px);line-height:.95;margin-top:35px}.archive-intro{max-width:600px;margin-top:30px}.archive .journal-list{margin-top:55px}.archive .text-link{margin-top:25px}
html.is-changing{scroll-behavior:auto}
html.is-changing:not(.swup-native) .transition-page{transition:opacity .24s ease,transform .35s var(--ease);opacity:1;transform:translateY(0)}
html.is-animating:not(.swup-native) .transition-page{opacity:0;transform:translateY(10px)}
html.to-language.is-animating:not(.swup-native) .transition-page{transform:none}
::view-transition-old(root){animation:page-out .35s ease both}
::view-transition-new(root){animation:page-in .5s var(--ease) both}
html.to-language::view-transition-old(root){animation:language-out .28s ease both}
html.to-language::view-transition-new(root){animation:language-in .38s ease both}
@keyframes page-out{to{opacity:0;transform:translateY(-8px)}}
@keyframes page-in{from{opacity:0;transform:translateY(12px)}}
@keyframes language-out{to{opacity:0}}
@keyframes language-in{from{opacity:0}}
html[data-motion=paused] .transition-page{transition:none!important;transform:none!important}
html[data-motion=paused]::view-transition-old(root),html[data-motion=paused]::view-transition-new(root){animation:none!important}
.motion-paused .hero::before,.motion-paused .hero-asterisk,.motion-paused .service-art img,.motion-paused .collective-flower{transform:none}
@media(max-width:1100px){.masthead{gap:20px}.masthead nav{gap:20px}.wordmark-image{width:170px}.hero-asterisk{right:1%;font-size:78px}.service-grid{gap:25px}.service>p{min-height:174px}.contact-grid{gap:40px}.contact h2>span{font-size:60px;right:0}.footer nav{margin-left:0}.all-clients>p{columns:2}}
@media(max-width:920px){
  .masthead{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:0 16px;min-height:86px;padding-block:18px}
  .masthead>.wordmark{grid-column:1;grid-row:1}.masthead>.language-switch{grid-column:2;grid-row:1}
  .menu-ready .masthead>.menu-toggle{display:flex;align-items:center;gap:9px;grid-column:3;grid-row:1;padding:0;min-height:43px;font-size:14px}.menu-toggle>span{font-size:25px}.menu-toggle[aria-expanded=true]>span{rotate:45deg}
  .masthead nav{grid-column:1/-1;width:100%;margin:16px 0 0;flex-wrap:wrap;gap:10px 25px;font-size:14px}.menu-ready .masthead nav:not(.menu-open){display:none}.masthead nav>.nav-contact{padding:0;border:0}
  .hero-grid{padding-block:60px 50px;min-height:490px}h1{font-size:11.4vw}.hero-support{display:block;margin-top:30px}.hero-support .button{margin-top:26px}.hero-asterisk{bottom:23%;right:10%}.hero-intro{max-width:440px}.hero-bottom{gap:22px}.hero-bottom>p:first-child{font-size:25px}
  .section-heading{gap:35px}h2{font-size:58px}.service>p{min-height:228px}.service h3{font-size:32px}.service-details summary{font-size:14px;line-height:1.5;min-height:64px}.service-top .eyebrow{font-size:12px}.testimonials{gap:25px}.quotes-ready .quote{min-height:310px}.collective-grid{gap:38px}.collective h2{font-size:56px}.journal-list{column-gap:30px}.journal-entry h3{font-size:31px}.open-source{gap:32px;grid-template-columns:1fr 2.5fr}.contact h2{font-size:77px}.contact h2>span{display:none}.contact-email{font-size:31px}.contact-aside>a:not(.text-link){font-size:17px}
}
@media(max-width:620px){
  :root{--gutter:24px}.section-space{padding-block:65px}.wordmark-image{width:145px}.masthead{gap:0 10px;min-height:80px}.language-switch a{width:40px;height:40px;min-width:40px;min-height:40px;padding:0;font-size:13px;flex:0 0 40px}.menu-ready .masthead>.menu-toggle{font-size:13px;gap:5px}
  .hero{padding-top:21px}.hero-eyebrow{font-size:12px;letter-spacing:.045em;gap:8px}.location{display:none}.hero::before{inset:0 0 15% 0;background-size:auto 75%;opacity:.5}.hero-grid{padding-block:56px 40px;min-height:450px}h1{font-size:clamp(58px,12.5vw,78px);line-height:.93;margin-left:-2px}.hero-intro{max-width:360px}.hero-support{margin-top:32px}.hero-support .button{margin-top:25px}.hero-asterisk{right:3%;bottom:8%;font-size:50px;opacity:.8}.button{font-size:14px;gap:22px;padding:11px 19px}.hero-bottom{grid-template-columns:1fr auto;gap:16px;padding-block:25px 30px}.hero-bottom>p:first-child{font-size:24px}.hero-bottom>p:nth-child(2){display:none}.scroll-link{font-size:13px;gap:10px;max-width:132px;line-height:1.4}.circle-arrow{width:39px;height:39px;font-size:21px}
  .section-kicker{font-size:12px;letter-spacing:.06em;align-items:start;gap:16px}.section-kicker>span+span:last-child{max-width:140px;text-align:right;font-size:12px}.section-heading{display:block;margin-block:32px 35px}h2{font-size:clamp(49px,10.5vw,64px)}.section-heading>p,.section-heading>div{margin-top:25px}.service-grid{display:block}.service+.service{margin-top:44px}.service-art{max-width:410px;margin-inline:auto}.service h3{font-size:47px}.service>p{min-height:0}.service-details summary{min-height:52px}.thread-line{display:none}.services-footnote{font-size:25px;text-align:left;padding-top:28px;margin-top:40px;border-top:1px solid var(--line)}
  .client-marquee{padding-block:24px}.client-set>span{font-size:33px}.client-set>.client-heavy{font-size:26px}.marquee-ready .client-set{gap:55px;padding-right:55px}.all-clients>p{columns:1}.testimonials{display:block;padding-top:40px}.quote-label{flex-direction:row;justify-content:space-between;align-items:center;margin-bottom:20px;gap:0}.quote-mark{font-size:66px;height:42px}.quote blockquote{font-size:32px;line-height:1.2}.quotes-ready .quote{min-height:365px}.quote-controls{margin-top:16px;justify-content:flex-start}.quote-count{margin-right:auto}.quote figcaption{margin-top:25px}
  .collective-grid{display:block}.collective h2{font-size:56px;margin-top:25px}.collective .text-link{margin-top:25px}.collective-copy{padding-top:35px}.collective-flower{font-size:65px}.collective-copy blockquote{font-size:27px}
  .journal-list{grid-template-columns:1fr}.journal-entry{min-height:185px;gap:16px}.journal-entry h3{font-size:33px}.journal-more{align-items:flex-start;flex-direction:column}.open-source{display:block;padding-top:30px;margin-top:52px}.open-source-mark{justify-content:flex-start;font-size:95px;gap:14px;margin-bottom:25px}.open-source-mark>span{font-size:42px}.open-source h3{font-size:37px}.open-source-links{gap:12px;flex-direction:column;align-items:flex-start}.support-links{font-size:14px}
  .contact-grid{display:block;margin-top:35px}.contact h2{font-size:clamp(68px,14.2vw,90px)}.contact-grid>div>p{margin-top:28px}.contact-email{font-size:32px;gap:18px}.contact-aside{margin-top:40px;padding-top:26px;border-top:1px solid var(--line)}.contact-aside>.eyebrow{margin-bottom:16px}.contact-aside>a:not(.text-link){font-size:19px}.contact-aside>p{margin-block:18px!important}.footer{gap:24px 16px;padding-block:32px}.footer .wordmark-image{width:148px}.copyright{width:100%;order:2}.footer nav{order:3;width:100%;gap:12px 22px}.motion-toggle{order:4;font-size:12px}.footer .language-switch{order:4}.back-top{margin-left:auto}.archive{padding-top:40px}.archive h1{font-size:clamp(52px,11.2vw,70px)}
}
@media(max-width:360px){:root{--gutter:18px}.wordmark-image{width:124px}.masthead{gap:0 8px}.hero-eyebrow{font-size:11px}h1{font-size:12.5vw}.hero-asterisk{display:none}.hero-bottom>p:first-child{font-size:22px}.hero-bottom .scroll-link{max-width:112px}.contact h2{font-size:17vw}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}
  .hero::before,.hero-asterisk,.service-art img,.collective-flower,.client-track{transform:none!important}.reading-progress{display:none}
  .client-marquee.marquee-ready{overflow:visible;mask-image:none}.marquee-ready .client-track{width:100%;display:block}.marquee-ready .client-set{width:100%;padding:0 var(--gutter);flex-wrap:wrap;justify-content:center;gap:25px 40px}.client-set[aria-hidden=true]{display:none}
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}

.motion-paused .hero::before{opacity:.65}.motion-paused .services{transition:none}
@media(prefers-reduced-motion:reduce){.services{background:var(--paper)}.hero::before{opacity:.65}}

.quotes-ready .quote-deck{display:grid;align-items:start}.quotes-ready .quote{grid-area:1/1;will-change:opacity,transform}

/* Stable contact slot: both states share type, baseline and the same fine rule. */
.email-reveal{display:grid;align-items:start;min-height:2.5em;margin-top:32px;font:clamp(26px,2.8vw,38px)/1.25 var(--serif);letter-spacing:-.015em}
.email-reveal>*{grid-area:1/1;justify-self:start;margin:0!important}
.email-reveal .contact-email,.email-reveal .revealed-email a{display:inline-flex;align-items:center;gap:22px;font:inherit;letter-spacing:inherit;line-height:1.25;padding:0 0 10px;border:0;border-bottom:1px solid currentColor;text-decoration:none;white-space:nowrap}
.email-reveal .contact-email>span,.email-reveal .revealed-email a>span{font:24px/1 var(--sans)}
.email-reveal .contact-fallback{margin-top:0}.revealed-email{font:inherit}
@media(max-width:620px){.email-reveal{font-size:clamp(25px,6.7vw,35px)}.email-reveal .contact-email,.email-reveal .revealed-email a{gap:14px}}

/* One continuous canvas; the section in view sets the color for the whole page. */
body.scene-colors{background-color:var(--scene-color,var(--sky));color:var(--scene-ink,#173e56);--ink:var(--scene-ink,#173e56);--line:color-mix(in srgb,var(--ink) 24%,transparent);transition:none}
.scene-colors .services,.scene-colors .clients,.scene-colors .collective,.scene-colors .journal,.scene-colors .contact,.scene-colors .footer{background:transparent;transition:none}
.scene-colors .contact,.scene-colors .footer{color:inherit}
.scene-colors .contact::before{display:none}
.scene-colors .footer{--ink:inherit;--line:inherit;--paper:#f0eee5}
.scene-colors .wordmark-image{filter:brightness(0) saturate(100%) invert(20%) sepia(14%) saturate(1977%) hue-rotate(159deg) brightness(90%);transition:filter .4s ease}
html[data-scene-tone=dark] .scene-colors .wordmark-image{filter:brightness(0) invert(1)}
html[data-scene-tone=dark] .scene-colors .language-switch a[aria-current=page]{color:#123d59}
.open-source{grid-template-columns:minmax(0,1fr) minmax(0,1.35fr);align-items:center;gap:clamp(35px,5vw,75px);padding-block:65px 20px}
.open-source-art{width:100%;max-width:450px;justify-self:center}
.open-source-art img{width:100%;height:auto}
@media(max-width:620px){.open-source{display:flex;flex-direction:column;align-items:stretch;gap:25px;padding-top:35px}.open-source-art{max-width:380px;align-self:center}}
@media(prefers-reduced-motion:reduce){.open-source-art img{transform:none!important}}
.motion-paused .open-source-art img{transform:none}

/* Descend from a white client section into progressively deeper blue. */
body.scene-colors{--muted:color-mix(in srgb,var(--ink) 85%,transparent);--accent:var(--scene-accent,#a33d1a)}
.scene-colors .contact h2>span{color:var(--accent)}
.contact{padding-bottom:clamp(250px,23vw,350px);overflow:hidden;--line:#f1f5f540}
.contact>.wrap{position:relative;z-index:2}
.sea-life{position:absolute;bottom:0;left:0;right:0;height:clamp(230px,22vw,330px);pointer-events:none;overflow:hidden;z-index:1}
.ocean-floor{display:none;position:absolute;bottom:0;left:0;right:0;height:max(260px,50vw);background-image:url('assets/images/sea-floor.webp');background-repeat:no-repeat;background-position:center bottom;background-size:100% auto;opacity:.55;pointer-events:none;z-index:1}
.fish{position:absolute;left:0;top:28%;width:105px;aspect-ratio:2;animation:fish-swim 44s linear infinite;animation-delay:-8s;animation-play-state:paused;opacity:.65}
.fish::before{content:'';position:absolute;inset:0;background:url('assets/images/fish.webp') center/100% auto no-repeat}
.fish--two{top:54%;width:65px;animation-duration:58s;animation-delay:-26s;animation-direction:reverse;opacity:.5}
.fish--two::before{scale:-1 1}
.fish--three{top:10%;width:80px;animation-duration:51s;animation-delay:-37s;opacity:.4}
.is-swimming .fish{animation-play-state:running}
@keyframes fish-swim{0%{transform:translate(-130px,8px)}50%{transform:translate(50vw,-9px)}100%{transform:translate(calc(100vw + 130px),8px)}}
.motion-paused .fish{animation-play-state:paused!important}
@media(max-width:620px){.fish{width:80px}.fish--two{width:52px}.fish--three{width:65px}.ocean-floor{height:50vw;background-size:100% auto}}
@media(prefers-reduced-motion:reduce){.fish{animation:none!important;left:18%}.fish--two{left:64%}.fish--three{left:82%}}

#swup{position:relative}.transition-page[data-page=home]>.ocean-floor{display:block}.footer{position:relative;z-index:2}.contact{--accent:#efb088}.contact h2>span{color:var(--accent)}

/* The diver breaks the rule above the tools, while the text stays in its column. */
.open-source{grid-template-columns:minmax(0,1.15fr) minmax(0,1.25fr);margin-top:155px;padding-top:65px;gap:clamp(25px,4vw,60px)}
.open-source-art{position:relative;width:140%;max-width:690px;margin-top:-185px;margin-bottom:-35px;pointer-events:none;z-index:1}
.open-source-art img{filter:grayscale(1);display:block}
.open-source>div{position:relative;z-index:2}
.open-source-art img{position:relative;z-index:1}
/* Match C's opaque silhouette and tonal range to the original, without changing either asset. */
.open-source-art img[src$="max-diver-hype-js-c.webp"]{scale:.938;translate:4.45% 1.7%;transform-origin:0 0;filter:grayscale(1) contrast(.9) brightness(.92)}
.diver-bubbles{position:absolute;left:44%;top:17%;width:32px;height:20px;z-index:0;--bubble-height:clamp(420px,50vw,650px)}
.bubble{position:absolute;bottom:0;left:12px;width:10px;height:12px;border:1px solid #e8f4f6b3;border-radius:50%;box-shadow:inset 2px 1px 2px #ffffff26;opacity:0;--sway:12px;animation:bubble-rise 12s linear infinite;animation-play-state:paused}
.bubble:nth-child(4n+2){left:22px;width:6px;height:7px;--sway:-18px}
.bubble:nth-child(4n+3){left:4px;width:14px;height:16px;--sway:25px}
.bubble:nth-child(4n){left:17px;width:5px;height:6px;--sway:-9px}
.bubble:nth-child(2){animation-delay:-.22s}.bubble:nth-child(3){animation-delay:-.5s}.bubble:nth-child(4){animation-delay:-.8s}
.bubble:nth-child(5){animation-delay:-4s}.bubble:nth-child(6){animation-delay:-4.22s}.bubble:nth-child(7){animation-delay:-4.5s}.bubble:nth-child(8){animation-delay:-4.8s}
.bubble:nth-child(9){animation-delay:-8s}.bubble:nth-child(10){animation-delay:-8.22s}.bubble:nth-child(11){animation-delay:-8.5s}.bubble:nth-child(12){animation-delay:-8.8s}
.is-swimming .bubble{animation-play-state:running}
@keyframes bubble-rise{0%{transform:translate(0,0) scale(.65);opacity:0}8%{opacity:.65}40%{transform:translate(calc(var(--sway)*-1),calc(var(--bubble-height)*-.4)) scale(.85);opacity:.6}75%{transform:translate(var(--sway),calc(var(--bubble-height)*-.75)) scale(1.05);opacity:.4}100%{transform:translate(calc(var(--sway)*.4),calc(var(--bubble-height)*-1)) scale(1.2);opacity:0}}
.motion-paused .bubble{animation-play-state:paused!important}
@media(max-width:920px){.open-source-art{width:145%;margin-top:-155px}.open-source{margin-top:135px}}
@media(max-width:620px){.open-source{margin-top:125px;padding-top:20px;gap:24px}.open-source-art{width:120%;max-width:min(480px,calc(100vw - 2px));margin-top:-115px;margin-bottom:-10px}.diver-bubbles{left:44%}}
@media(prefers-reduced-motion:reduce){.bubble{animation:none!important;opacity:0}}

/* An opening cloud curtain, with gentle drift on a separate transform layer. */
.hero::before{animation:sky-drift 26s ease-in-out infinite alternate;animation-play-state:paused}
.hero.is-swimming::before{animation-play-state:running}
@keyframes sky-drift{from{background-position:right top}to{background-position:right -14px top -9px}}
.cloud-gate{display:none;position:absolute;top:var(--cloud-top,calc(100svh - 280px));left:0;right:0;height:clamp(380px,43vw,700px);z-index:4;pointer-events:none;overflow:clip}
.clouds-ready .cloud-gate{display:block}
.cloud-bank{position:absolute;top:0;width:98vw;height:100%;max-width:1500px;will-change:transform;opacity:calc(1 - var(--cloud-open,0)*.25)}
.cloud-bank::before{content:'';position:absolute;inset:0;background:url('assets/images/cloud-bank.webp') center top/100% auto no-repeat;animation:cloud-drift 19s ease-in-out infinite alternate;animation-play-state:paused}
.cloud-bank--left{left:-38vw;transform:translate3d(calc(var(--cloud-open,0)*-100vw),calc(var(--cloud-open,0)*-50px),0) rotate(calc(var(--cloud-open,0)*-7deg))}
.cloud-bank--right{right:-4vw;top:25px;width:92vw;transform:translate3d(calc(var(--cloud-open,0)*100vw),calc(var(--cloud-open,0)*35px),0) rotate(calc(var(--cloud-open,0)*5deg))}
.cloud-bank--right::before{background-image:url('assets/images/cloud-bank-right.webp');animation-duration:25s;animation-delay:-11s}
.cloud-gate.is-swimming .cloud-bank::before{animation-play-state:running}
@keyframes cloud-drift{from{translate:0 -5px}to{translate:9px 7px}}
.motion-paused .cloud-gate{display:none}
.motion-paused .hero::before{animation-play-state:paused}
@media(max-width:920px){.cloud-bank--left{width:115vw;left:-52vw}.cloud-bank--right{width:105vw;right:-10vw}}
@media(max-width:620px){.cloud-gate{height:450px}.cloud-bank--left{width:165vw;left:-88vw}.cloud-bank--right{width:140vw;right:-12vw;top:28px}}
@media(prefers-reduced-motion:reduce){.cloud-gate{display:none!important}.hero::before{animation:none!important}}

.journal-more .load-more{font-size:12px;min-width:132px;min-height:34px;padding:6px 13px;gap:17px;line-height:1.4}
.journal-more .load-more>span:last-child{font-size:16px}
.coral-bubbles{position:absolute;left:0;bottom:0;width:100%;height:1px;--seabed-width:100vw;--seabed-height:50vw}
.coral-bubble{position:absolute;bottom:calc(var(--seabed-height)*.19);left:calc(var(--seabed-width)*.082);width:4px;height:5px;border:1px solid #eaf8ff;border-radius:50%;opacity:0;animation:coral-rise 9s linear infinite;animation-play-state:paused}
.coral-bubble:nth-child(3n+2){left:calc(var(--seabed-width)*.095);bottom:calc(var(--seabed-height)*.20);width:3px;height:4px}
.coral-bubble:nth-child(3n){left:calc(var(--seabed-width)*.102);bottom:calc(var(--seabed-height)*.18);width:3px;height:4px}
.coral-bubble:nth-child(2){animation-delay:-.6s}.coral-bubble:nth-child(3){animation-delay:-1.3s}.coral-bubble:nth-child(4){animation-delay:-4.5s}.coral-bubble:nth-child(5){animation-delay:-5.1s}.coral-bubble:nth-child(6){animation-delay:-5.8s}
.is-swimming .coral-bubble{animation-play-state:running}
@keyframes coral-rise{0%{transform:translate(0,0);opacity:0}12%{opacity:1}60%{transform:translate(-6px,-135px);opacity:.75}100%{transform:translate(7px,-240px);opacity:0}}
.motion-paused .coral-bubble{animation-play-state:paused!important}
@media(max-width:620px){.ocean-floor{background-position:center bottom}.coral-bubbles{--seabed-height:50vw;--seabed-width:100vw}}
@media(prefers-reduced-motion:reduce){.coral-bubble{animation:none!important;opacity:0}}

.diver-spiral{position:absolute;left:50%;bottom:-45%;width:min(145%,calc(100vw - 4px));height:100%;transform:translateX(-50%);z-index:0;pointer-events:none}

.journal-more .load-more [data-more-label]{font-size:inherit;line-height:inherit}

/* The diver's copy stays white while the rest of the page can fade. */
.open-source{
  --ink:#fff;
  --muted:#ffffffd9;
  --line:#ffffff3d;
  --accent:#efb088;
  color:var(--ink);
}
body:not(.scene-colors) .open-source{background:#3b708c}
:root{--art-orange:#dd8b62;--art-yellow:#daab59;--art-blue:#92b4cf}
.hero-asterisk{color:var(--art-blue)}
#konzeption h3 .accent,.hero .small-dot{color:var(--art-orange)}
.hero .small-dot{background:var(--art-orange)}
.hero h1 .accent{color:var(--art-yellow)}
.hero .button:hover{background:var(--art-yellow);color:#173e56}
.journal-more .load-more:hover{background:var(--art-blue);color:#173e56}
html[data-scene-tone=dark] .journal-more .load-more:hover{background:#173e56;color:#fff}
.hype-workshop-invite{display:grid;grid-template-columns:62px minmax(0,1fr) 30px;align-items:center;gap:19px;margin-top:30px;padding:23px 0;border-block:1px solid #ffffff50;color:#fff;transition:border-color .25s}
.hype-workshop-invite>img{width:62px;height:62px;object-fit:contain;filter:grayscale(1);transition:transform .35s}
.hype-workshop-invite small{display:block;font-size:11px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:10px}.hype-workshop-invite strong{display:block;font:clamp(25px,2.4vw,35px)/1.1 var(--serif)}.hype-workshop-invite>span>span{display:block;font-size:12px;line-height:1.5;margin-top:9px;color:#ffffffb8}.hype-workshop-invite .invite-arrow{font-size:29px;transition:transform .3s}.hype-workshop-invite:hover,.hype-workshop-invite:focus-visible{border-color:#fff}.hype-workshop-invite:hover>img{transform:rotate(-5deg)}.hype-workshop-invite:hover .invite-arrow{transform:translate(3px,-3px)}
@media(min-width:921px) and (max-width:1100px){.masthead{gap:18px}.masthead nav{gap:18px}.wordmark-image{width:170px}}
@media(max-width:620px){.hype-workshop-invite{grid-template-columns:48px minmax(0,1fr) 20px;gap:13px}.hype-workshop-invite>img{width:48px;height:48px}.hype-workshop-invite strong{font-size:27px}}
@media(prefers-reduced-motion:reduce){.hype-workshop-invite img,.hype-workshop-invite .invite-arrow{transition:none;transform:none!important}}

/* One engraved water illustration; its motion shares the existing scroll sampler. */
.collective{position:relative;padding-top:clamp(250px,23vw,370px)}
.collective-grid{position:relative;z-index:1}
.waterline-illustrated{position:absolute;top:-75px;left:0;width:100%;height:clamp(270px,26vw,420px);z-index:0;pointer-events:none;overflow:hidden;mix-blend-mode:multiply;opacity:.83;transform:translateY(calc((var(--collective-progress,.5) - .5)*-100px));mask-image:linear-gradient(to bottom,transparent,#000 12%,#000 78%,transparent)}
.waterline-illustrated img,.waterline-illustrated .wave-art-canvas{position:absolute;left:50%;top:50%;width:max(100%,700px);max-width:none;height:auto;transform:translate(-50%,-53%);filter:grayscale(1)}
@media(max-width:620px){.collective{padding-top:220px}.waterline-illustrated{top:-30px;height:250px;transform:translateY(calc((var(--collective-progress,.5) - .5)*-65px))}}
.motion-paused .waterline-illustrated{transform:none}
@media(prefers-reduced-motion:reduce){.waterline-illustrated{transform:none}}

/* The client strip owns its warm paper colour independently of the scroll palette. */
.client-marquee{background:linear-gradient(90deg,transparent,#faf9f4 9%,#faf9f4 91%,transparent);color:#173e56}

/* Ink is already tweened by the scene; do not tween the arrow a second time. */
.journal-entry .circle-arrow{transition:background .25s,transform .35s var(--ease)}

.waterline-illustrated .wave-art-canvas{aspect-ratio:2/1}
.wave-art-ready>img{visibility:hidden}

/* The underwater light field scrolls with the document and dissolves into its blue. */
.underwater-caustics{position:absolute;top:100px;left:0;width:100%;pointer-events:none;z-index:0;mix-blend-mode:screen;opacity:.5}
.journal,.contact{position:relative;z-index:1}
.waterline-illustrated{opacity:.52}

/* Footer controls stay legible over the seabed, independently of scene ink. */
.footer .motion-toggle,.footer .language-switch,.footer .back-top{color:#f1f6fa;background:#15384de8;border-color:#e3f0f780}
.footer .language-switch a[aria-current=page]{background:#e3f0f7;color:#15384d}
.footer .motion-toggle:hover,.footer .back-top:hover{background:#26536c}
.footer .language-switch a:not([aria-current]):hover{background:#ffffff24}

.waterline-drawn{mix-blend-mode:normal;opacity:1;mask-image:none;overflow-x:clip;overflow-y:visible;height:clamp(280px,26vw,420px)}
.wave-lines-canvas{display:block;width:100%;height:100%}
@media(max-width:620px){.waterline-drawn{height:250px}}

.water-depth-overlay{position:absolute;top:calc(100% - 24px);left:0;width:100%;pointer-events:none;mask-image:linear-gradient(to bottom,transparent,#000 24px)}
.waterline-drawn .wave-lines-canvas{mask-image:linear-gradient(to bottom,#000 calc(100% - 24px),transparent)}

.collective-school{position:relative;width:100%;height:180px;margin-top:-64px;margin-bottom:16px;pointer-events:none;overflow:hidden}
.collective-school img{position:absolute;left:0;top:0;height:auto;max-width:none;filter:grayscale(1);will-change:transform}
@media(max-width:620px){.collective-school{margin-top:-12px;margin-bottom:8px}}

/* A quieter hero with its invitation directly beneath the introduction. */
.hero-support{display:flex;flex-direction:column;align-items:flex-start;gap:24px}
.hero-support .button{margin-top:0}
.hero-pigeon{position:absolute;width:clamp(125px,15vw,215px);height:auto;right:15%;bottom:50px;pointer-events:none;z-index:1}
.collective .collective-wordmark{font-size:clamp(27px,2.6vw,38px);font-weight:700;letter-spacing:-.055em;gap:26px;text-decoration:none}
.collective-wordmark>span{font-size:25px;font-weight:400;letter-spacing:0}
@media(min-width:921px){.collective-school{width:calc(160% + 40px);margin-left:calc(-60% - 40px)}.collective-copy blockquote{width:125%;margin-left:-25%;font-size:32px;line-height:1.25}}
@media(max-width:920px){.hero-pigeon{right:8%;width:150px;bottom:55px}}
@media(max-width:620px){.hero-pigeon{width:90px;right:0;bottom:30px}.hero-support{gap:24px}.hero-intro{max-width:calc(100% - 65px)}}
@media(max-width:380px){.hero-pigeon{width:72px;bottom:95px}.hero-intro{max-width:100%}}
/* Keep the cloud's natural aspect ratio; its lower edge must not hit the gate box. */
.cloud-gate{overflow-x:clip;overflow-y:visible}
.cloud-bank{height:auto;aspect-ratio:2/1}
.cloud-bank::before{mask-image:linear-gradient(to bottom,#000 78%,transparent 100%)}

.hero-dove{width:clamp(360px,39vw,570px);right:-1%;top:23%;bottom:auto;filter:url(#dove-cutout) grayscale(1)}
@media(max-width:920px){.hero-dove{width:310px;right:-2%;top:40%;bottom:auto}}
@media(max-width:620px){.hero-dove{width:145px;right:-8px;top:auto;bottom:105px}.hero-intro{max-width:calc(100% - 100px)}}
@media(max-width:380px){.hero-dove{width:115px;bottom:102px}.hero-intro{max-width:calc(100% - 78px)}}

/* Entrance uses transform; scroll depth uses translate so the motions compose. */
.hero-dove{translate:0 calc(var(--hero-scroll,0)*-72px);will-change:translate}
.hero-dove.dove-awaiting{opacity:0}
.motion-paused .hero-dove{translate:none;opacity:1}
@media(prefers-reduced-motion:reduce){.hero-dove{translate:none;opacity:1}}

/* Engraved hull settles slightly below the blue waterline. */
.wave-sailboat{position:absolute;left:0;top:0;width:clamp(224px,22.5vw,330px);aspect-ratio:1358/1159;pointer-events:none;transform-origin:50% 88%;will-change:transform}
.wave-sailboat svg{display:block;width:100%;height:auto;overflow:visible;filter:grayscale(1)}

/* Stable hero colours before and after the scroll palette initializes. */
.hero .button-ink{background:#173e56;color:#f0eee5;border-color:#173e56}
.hero .button-ink:hover{background:var(--art-yellow);color:#173e56}



/* Larger jellyfish to the left of the unchanged contact information. */
.contact-aside{position:relative;padding-top:12px;padding-right:0}
.contact-jellyfish{position:absolute;top:-45px;left:-245px;right:auto;width:260px;height:auto;pointer-events:none;opacity:.85;filter:url(#dove-cutout) grayscale(1)}
@media(max-width:1100px) and (min-width:921px){.contact-jellyfish{left:-190px;width:210px}}
@media(max-width:920px){.contact-grid{display:block}.contact-aside{margin-top:40px;padding-top:25px;padding-left:190px;min-height:340px}.contact-jellyfish{left:-20px;top:0;width:220px}}
@media(max-width:620px){.contact-aside{padding-left:135px;min-height:285px}.contact-jellyfish{left:-30px;top:5px;width:185px}.contact-aside>a:not(.text-link){font-size:16px}}

.hero-bottom .scroll-link{grid-column:-2 / -1}
.media-banner[hidden]{display:none!important}
.media-banner{position:fixed;z-index:1000;inset:auto 20px 20px;display:flex;align-items:center;gap:28px;padding:20px 24px;background:#ecece8;color:#173e56;border:1px solid #173e5640;border-radius:8px;box-shadow:0 8px 35px #0002;text-align:left;font:14px/1.5 var(--sans,sans-serif)}
.media-banner p{font:12px/1.6 var(--sans,sans-serif);max-width:85ch;margin:5px 0 0}.media-banner a{color:inherit}.media-banner-actions{display:flex;gap:10px;flex-shrink:0}.media-banner button,[data-media-settings]{font:inherit;color:inherit;background:transparent;border:1px solid currentColor;border-radius:24px;padding:9px 16px;cursor:pointer}.media-banner button:focus-visible{outline:3px solid #b1721c;outline-offset:3px}[data-media-settings]{font-size:12px}
@media(max-width:760px){.media-banner{inset:auto 10px 10px;padding:16px;display:block}.media-banner-actions{margin-top:12px;flex-wrap:wrap}.media-banner-actions button{font-size:12px}}
/* Two quiet footer rows, with utility controls kept together. */
.footer{display:block}
.footer-main,.footer-meta{display:flex;align-items:center;justify-content:space-between;gap:20px 32px;flex-wrap:wrap;width:100%}
.footer-meta{border-top:1px solid #d9edf530;margin-top:24px;padding-top:20px}
.footer .footer-main nav,.footer .footer-meta nav{width:auto;order:0;margin:0;gap:14px 22px;align-items:center}
.footer .footer-main .copyright{width:auto;order:0;margin-right:auto}
.footer-controls{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.footer-controls .language-switch{margin:0;flex-shrink:0}.footer-controls .back-top{margin:0}
.footer [data-media-settings]{border:0;border-radius:0;padding:0;font-size:13px;background:none;text-decoration:underline;text-underline-offset:4px;color:inherit}
@media(max-width:620px){.footer-main,.footer-meta{gap:18px}.footer .footer-main .copyright{width:100%;font-size:12px}.footer .footer-meta nav{gap:12px 18px;font-size:12px}.footer [data-media-settings]{font-size:12px}.footer-controls{width:100%;justify-content:space-between;gap:10px}.footer .motion-toggle{order:0}.footer .language-switch{order:0}}
.footer .footer-controls .language-switch a{color:#f1f6fa}
.footer .footer-controls .language-switch a[aria-current=page]{color:#15384d;background:#e3f0f7}
.footer-controls .back-top{display:grid;place-items:center;width:42px;height:42px;border:1px solid #e3f0f780;border-radius:50%}

/* Compact homepage discoveries; keep the collection page independent. */
.journal .journal-entry{grid-template-columns:minmax(0,max-content) 34px;grid-template-rows:auto auto auto;align-content:center;column-gap:14px;row-gap:8px;min-height:146px;padding-block:18px}
.journal .journal-entry time{grid-column:1/-1}
.journal .journal-entry h3{grid-column:1;grid-row:2;font-size:clamp(27px,2.5vw,35px);align-self:center}
.journal .journal-entry .circle-arrow{grid-column:2;grid-row:2;width:34px;height:34px;font-size:19px;align-self:center}
.journal .journal-type{grid-column:1/-1;grid-row:3}
.journal .section-heading{margin-bottom:34px}
.journal .journal-more{padding-top:18px}
@media(max-width:700px){.journal .journal-entry{min-height:130px;padding-block:16px}.journal .journal-entry h3{font-size:29px}}
