/* Bloom's visual system: calm studio layouts beneath the existing hero. */
@font-face{font-family:'Bodoni Moda';src:url('assets/bodoni-moda.ttf') format('truetype');font-style:normal;font-weight:400 900;font-display:swap}
@font-face{font-family:'Bodoni Moda';src:url('assets/bodoni-moda-italic.ttf') format('truetype');font-style:italic;font-weight:400 900;font-display:swap}
@font-face{font-family:'Hanken Grotesk';src:url('assets/hanken-grotesk.ttf') format('truetype');font-style:normal;font-weight:100 900;font-display:swap}
@font-face{font-family:'Hanken Grotesk';src:url('assets/hanken-grotesk-italic.ttf') format('truetype');font-style:italic;font-weight:100 900;font-display:swap}
:root{--paper:#faf8f4;--cream:#f3f0e8;--ink:#29271f;--olive:#3c402d;--sage:#85866a;--line:rgba(41,39,31,.2);--serif:'Bodoni Moda',Georgia,serif;--sans:'Hanken Grotesk',Arial,sans-serif;--content-width:1240px;--gutter:clamp(24px,6vw,96px)}
body{font-family:var(--sans);font-synthesis:none;background:var(--paper)}
h1,h2,h3,h4{font-weight:400;letter-spacing:-.025em}
em{font-family:var(--serif);font-style:italic;font-weight:400}
header nav,header button,.button,.text-button{font-family:var(--sans)}
header nav{font-weight:500;letter-spacing:.025em}
header nav a,.header-instagram,.header-cta,.language{transition:opacity .22s ease,border-color .22s ease}
header nav a:hover,.header-instagram:hover,.language:hover{opacity:.68}
.hero h1{font-size:clamp(68px,8vw,124px);line-height:.94;letter-spacing:-.045em;font-weight:400}
.hero-description{font-size:16px}
.hero .button,.hero .text-button{font-weight:500}
.journal-wrap{width:min(var(--content-width),calc(100% - 2 * var(--gutter)));margin-inline:auto}
.journal{font-size:17px;line-height:1.72;overflow-x:clip;--muted:#5f5e55}
.journal :where(section,article,div,figure){min-width:0}
.journal figure{margin:0}
.journal h2{font-size:clamp(46px,5vw,74px);line-height:1.09;letter-spacing:-.035em;text-wrap:balance}
.journal h3{font-size:clamp(31px,3.1vw,44px);line-height:1.13;text-wrap:balance}
.journal p{text-wrap:pretty}
.journal-label{font:600 11px/1.5 var(--sans);letter-spacing:.15em;text-transform:uppercase}
.journal-number{font:500 12px/1.5 var(--sans);letter-spacing:.08em;color:var(--muted);font-variant-numeric:tabular-nums}
.journal-meta{font-size:13px;color:var(--muted)}
.journal .button{padding:16px 22px;font-size:14px;font-weight:600;letter-spacing:.01em;gap:32px;transition:background .25s ease,color .25s ease}
.journal .button:hover{transform:none}
.journal .text-button{font-size:14px;font-weight:600;letter-spacing:.01em;gap:24px;transition:gap .25s ease,opacity .25s ease}
.journal .text-button:hover{opacity:.75}
 .button span,.text-button span{transition:transform .22s ease}
 .button:is(:hover,:focus-visible) span,.text-button:is(:hover,:focus-visible) span{transform:translate(3px,-2px)}
 @media(hover:none){.gallery-open:hover .project-image{transform:none}}
.journal figcaption,.journal-caption{display:flex;justify-content:space-between;gap:16px;margin-top:13px;font:500 11px/1.6 var(--sans);letter-spacing:.09em;color:var(--muted)}
.journal :is(.journal-intro,.journal-founder,.journal-process,.journal-services,.journal-projects,.journal-faq){scroll-margin-top:100px}

/* Philosophy: image and numbered principles form one quiet composition. */
#philosophie.journal-intro{display:block;padding:clamp(110px,10vw,144px) 0 96px;text-align:center}
#philosophie.journal-intro>.journal-label{padding:0;margin-bottom:30px}
#philosophie.journal-intro h2{max-width:1020px;margin-inline:auto;font-size:clamp(48px,5vw,72px);line-height:1.1;text-wrap:balance}
.journal-intro-copy{max-width:760px;margin:32px auto 0;text-align:center}
.journal-intro-copy p{font-size:17px;line-height:1.78;color:var(--muted);max-width:none}
.journal-intro-copy p+p{margin-top:18px}
.journal-values{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.85fr);gap:clamp(54px,7vw,112px);align-items:center;padding-bottom:108px}
.journal-value-image>img{width:100%;height:620px;object-fit:cover;object-position:center}
.journal-principles{border-top:1px solid var(--line)}
.journal-principles article{display:grid;grid-template-columns:32px 1fr;gap:18px;border-bottom:1px solid var(--line);padding:32px 0}
.journal-principles .journal-number{padding-top:6px}
.journal-principles h3{font-size:clamp(28px,2.6vw,37px);margin-bottom:13px}
.journal-principles p{font-size:16px;line-height:1.72;color:var(--muted);max-width:48ch}
.journal-audience{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:18px 34px;border-block:1px solid var(--line);padding:29px var(--gutter);font-size:11px;font-weight:600;letter-spacing:.13em;text-align:center}
.journal-audience i{font-style:normal;color:var(--sage)}

/* Founder and process share the same page grid. */
.journal-founder{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.88fr);gap:clamp(60px,10vw,150px);padding-block:138px 142px}
.journal-founder .journal-label{margin-bottom:36px}
.journal-founder h2{max-width:560px;font-size:clamp(50px,4.6vw,68px)}
.journal-prose{padding-top:54px;max-width:610px}
.journal-prose>p:not(.journal-signature):not(.journal-meta){font-size:17px;line-height:1.78;color:var(--muted);margin-bottom:21px}
.journal-prose>p:first-child{font-size:19px;color:var(--ink)}
.journal-signature{font:italic 36px/1.15 var(--serif);margin-top:36px}
.journal-prose .journal-meta{margin-top:9px}
.journal-process{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(60px,10vw,150px);border-top:1px solid var(--line);padding-block:110px 140px}
.journal-section-aside .journal-label{margin-bottom:35px}
.journal-section-aside h2{font-size:clamp(46px,4.3vw,64px)}
.journal-section-aside>p{font-size:17px;line-height:1.75;color:var(--muted);max-width:45ch;margin-top:34px}
.journal-process-list{border-top:1px solid var(--line)}
.journal-process-list article{display:grid;grid-template-columns:40px 1fr;gap:22px;border-bottom:1px solid var(--line);padding:30px 0}
.journal-process-list .journal-number{padding-top:5px}
.journal-process-list h3{font:600 18px/1.4 var(--sans);letter-spacing:0;margin-bottom:10px}
.journal-process-list p{font-size:16px;line-height:1.72;color:var(--muted);max-width:52ch}

/* Services: a light, measured introduction; the full concept is the focus. */
.journal-services{position:relative;padding-block:132px 140px}
.journal-services:before{content:"";position:absolute;inset:0 calc((100% - 100vw)/2);background:var(--cream);z-index:-1}
.journal-services-heading{max-width:810px;margin:0 auto 70px;text-align:center}
.journal-services-heading .journal-label{margin-bottom:30px}
.journal-services-heading>p:last-child{font-size:17px;line-height:1.75;max-width:660px;margin:28px auto 0;color:var(--muted)}
.journal-concept{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:24px 80px;align-items:start;padding:36px 0;border-block:1px solid var(--line);margin-bottom:124px}
.journal-concept .journal-label{margin-bottom:16px}
.journal-concept h3{font-size:clamp(34px,3vw,44px)}
.journal-concept-copy>p{font-size:16px;line-height:1.75;color:var(--muted)}
.journal-concept-copy details{margin-top:18px}
.journal-concept-copy summary{padding:10px 0;font-size:14px}
.journal-concept-copy .detail-copy{font-size:15px;line-height:1.75;color:var(--muted);padding:6px 0 16px}
.journal-concept-action{grid-column:2;margin-top:0}
.journal-concept-action>p{font-size:12px;line-height:1.5;color:var(--muted);margin-top:8px}
.journal-service-overview{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(48px,6vw,88px);align-items:center}
.journal-service-title{display:block;margin:0;padding-block:20px}
.journal-service-title>div+div{margin-top:38px}
.journal-service-title .journal-label{margin-bottom:31px}
.journal-service-title h3{font-size:clamp(54px,5.2vw,76px);line-height:1.07;letter-spacing:-.035em}
.journal-lead{font:400 clamp(25px,2.3vw,32px)/1.23 var(--serif);max-width:27ch;margin-bottom:23px}
.journal-service-title>div>p:last-child:not(.journal-label):not(.journal-lead){font-size:17px;line-height:1.7;color:var(--muted);max-width:48ch}
.journal-service-figure img{width:100%;height:640px;object-fit:cover;object-position:46% center}
.journal-service-figure figcaption{display:block;font-size:10px}
.journal-service-figure figcaption span{display:block}
.journal-service-figure figcaption span+span{margin-top:3px}
.journal-scope{margin-top:72px;border-top:1px solid var(--line)}
.journal-scope>section{display:grid;grid-template-columns:46px minmax(200px,.7fr) minmax(0,1.3fr);gap:22px 36px;align-items:start;padding:29px 0;border-bottom:1px solid var(--line)}
.journal-scope .journal-number{padding-top:6px}
.journal-scope h4{font-size:clamp(26px,2.3vw,34px);line-height:1.2}
.journal-scope p{font-size:16px;line-height:1.72;color:var(--muted);max-width:61ch}
.journal-handover{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:36px;padding:54px 0 48px;border-bottom:1px solid var(--line)}
.journal-handover .journal-label{padding-top:7px}
.journal-handover h4{font-size:clamp(30px,3vw,43px);line-height:1.16;margin-bottom:18px}
.journal-handover p:not(.journal-label){font-size:16px;line-height:1.72;color:var(--muted);max-width:65ch}
.journal-disclosure{border-top:1px solid var(--line)}
.journal-main-service>.journal-disclosure{border-top:0;border-bottom:1px solid var(--line)}
.journal-disclosure summary{font-size:15px;line-height:1.6;padding:23px 0}
.journal-disclosure summary>span:last-child{font-size:21px;flex:none}
.journal-disclosure>div{font-size:16px;line-height:1.75;padding:0 0 27px;color:var(--muted);max-width:80ch}
.journal-service-action{display:flex;align-items:center;gap:26px;border-top:0;padding-top:34px}
.journal-service-action p{font-size:13px;line-height:1.65;color:var(--muted)}
.journal-extras{display:grid;grid-template-columns:minmax(0,.72fr) minmax(0,1.28fr);gap:clamp(60px,9vw,130px);padding-top:132px}
.journal-extras-heading h3{font-size:clamp(39px,3.8vw,53px);line-height:1.12;max-width:15ch}
.journal-extras-heading>p{font-size:15px;line-height:1.7;margin-top:25px;color:var(--muted);max-width:36ch}
.journal-extra-list{border-bottom:1px solid var(--line)}
.journal-extra-list summary{display:grid;grid-template-columns:30px 1fr 20px;align-items:start;gap:17px;padding:27px 0}
.journal-extra-list summary strong{display:block;font:500 24px/1.25 var(--serif)}
.journal-extra-list summary small{display:block;font:400 13px/1.65 var(--sans);color:var(--muted);margin-top:7px}
.journal-extra-list summary>.journal-number{padding-top:4px}
.journal-extra-list .journal-disclosure>div{padding-left:47px}

/* Projects: the work, rather than layout tricks, carries the variation. */
.journal-projects{padding-block:145px 12px}
.journal-projects-heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.6fr);gap:72px;align-items:end;margin-bottom:70px}
.journal-projects-heading .journal-label{margin-bottom:28px}
.journal-projects-heading>p{font-size:17px;line-height:1.7;color:var(--muted);max-width:43ch}
.journal-project{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(300px,.75fr);gap:clamp(36px,6vw,90px);align-items:center;margin-bottom:138px}
.journal-project .gallery-frame{grid-column:1;order:0;align-self:start}
.journal-project .project-image{display:block;width:100%;height:clamp(450px,43vw,630px);object-fit:cover;transition:transform .7s ease,opacity .3s ease}
.journal-project .gallery-open:hover .project-image{transform:scale(1.025)}
.journal-project .gallery-controls{margin-top:15px}
.journal-project .gallery-controls button{border:0;border-radius:0;width:44px;height:44px;background:transparent}
.journal-project .gallery-controls button:hover{background:var(--cream)}
.journal-project-copy{display:block;align-self:center}
.journal-project-copy>.eyebrow{font-size:11px;line-height:1.6;letter-spacing:.1em;margin-bottom:27px}
.journal-project-copy h3{font-size:clamp(40px,3.6vw,56px);margin-bottom:16px}
.journal-project-copy h3 br{display:block}
.journal-project-copy h3 em{margin-left:0}
.journal-project-kind{font-size:12px;line-height:1.5;color:var(--muted);margin-bottom:24px}
.journal-project-copy>p:not(.eyebrow):not(.project-tags):not(.journal-project-kind){font-size:17px;line-height:1.74;color:var(--muted);max-width:48ch}
.journal-project-copy details{margin-top:27px;border-block:1px solid var(--line)}
.journal-project-copy summary{font-size:14px}
.journal-project-copy .detail-copy{font-size:15px;line-height:1.72;color:var(--muted)}
.journal-project-copy .project-tags{font-size:11px;line-height:1.5;letter-spacing:.08em;margin-top:25px}
.journal-project-detail{display:none}

/* FAQ and contact provide a calm close. */
.journal-faq{display:grid;grid-template-columns:minmax(0,.78fr) minmax(0,1.22fr);gap:clamp(60px,9vw,130px);border-top:1px solid var(--line);padding-block:96px 140px}
.journal-faq h2{font-size:clamp(44px,4.3vw,62px);margin:27px 0}
.journal-faq>div>p:not(.journal-label),.journal-faq .text-link{font-size:14px}
.journal-faq .text-link{display:inline-block;border-bottom:1px solid var(--line);margin-top:10px}
.journal-faq-list details{border-top:1px solid var(--line)}
.journal-faq-list details:last-child{border-bottom:1px solid var(--line)}
.journal-faq-list summary{font-size:16px;line-height:1.6;padding:25px 0}
.journal-faq-list .detail-copy{font-size:16px;line-height:1.72;color:var(--muted)}
.journal-contact{background:var(--olive);color:var(--paper);padding-block:115px 126px}
.journal-contact>.journal-wrap>.journal-label{margin-bottom:45px}
.journal-contact-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(60px,8vw,120px);align-items:center}
.journal-contact h2{font-size:clamp(52px,5.4vw,78px);line-height:1.07}
.journal-contact-grid>div>p{max-width:42ch;color:#e5e3d8;font-size:17px;line-height:1.72}
.journal-contact .button{margin-top:31px}
.journal-contact .contact-note{display:block;font-size:12px;margin-top:14px;color:#deded0}
.journal footer{background:var(--paper);padding-top:72px}
.journal .footer-top{padding-bottom:52px}
.journal .footer-top>div:first-child{justify-self:center;text-align:center}
.journal .footer-brand.footer-signet{margin-inline:auto}

/* The page remains complete and readable before JavaScript enters the view. */
.motion-ready .reveal{opacity:0;transform:translateY(12px);transition:opacity .48s ease,transform .48s cubic-bezier(.2,.7,.2,1);transition-delay:var(--reveal-delay,0ms)}
.motion-ready .reveal.is-visible{opacity:1;transform:none}
.gallery-fade{animation:bloom-gallery-fade .34s ease}
@keyframes bloom-gallery-fade{from{opacity:.52}to{opacity:1}}

@media(max-width:1100px){
 #philosophie.journal-intro{grid-template-columns:145px 1fr;gap:28px}
 .journal-values,.journal-founder,.journal-process,.journal-extras,.journal-faq{gap:52px}
 .journal-concept{gap:22px 42px}
 .journal-service-title{gap:50px}
 .journal-project{grid-template-columns:minmax(0,1.2fr) minmax(275px,.8fr);gap:48px}
 .journal-audience{gap:14px 24px}
 .journal-scope>section{grid-template-columns:35px minmax(170px,.7fr) minmax(0,1.3fr);gap:20px}
}
@media(max-width:800px){
 :root{--gutter:clamp(22px,6vw,45px)}
 #philosophie.journal-intro{padding-block:95px 75px}
 #philosophie.journal-intro>.journal-label{padding:0;margin-bottom:25px}
 #philosophie.journal-intro h2{font-size:clamp(48px,7vw,70px)}
 .journal-intro-copy{margin-top:28px}
 .journal-values{grid-template-columns:1fr;gap:42px;padding-bottom:86px}
 .journal-value-image>img{height:520px}
 .journal-principles article{padding:26px 0}
 .journal-founder,.journal-process,.journal-extras,.journal-faq{grid-template-columns:1fr;gap:40px}
 .journal-founder{padding-block:100px}
 .journal-prose{padding-top:0}
 .journal-process{padding-block:90px 105px}
 .journal-section-aside>p{margin-top:25px}
 .journal-services{padding-block:100px 110px}
 .journal-concept{margin-bottom:95px}
 .journal-service-overview{grid-template-columns:1fr;gap:36px}
 .journal-service-title{padding:0}
 .journal-service-figure img{height:440px}
 .journal-service-title h3{font-size:clamp(66px,8vw,90px)}
 .journal-scope>section{grid-template-columns:32px minmax(0,1fr);gap:10px 20px}
 .journal-scope p{grid-column:2}
 .journal-handover{grid-template-columns:1fr;gap:19px}
 .journal-extras{padding-top:100px}
 .journal-projects{padding-top:105px}
 .journal-projects-heading{grid-template-columns:1fr;gap:25px}
 .journal-project{grid-template-columns:1fr;gap:35px;margin-bottom:105px}
 .journal-project .project-image{height:clamp(370px,70vw,570px)}
 .journal-project-copy{max-width:650px}
 .journal-faq{padding-block:85px 105px}
 .journal-contact-grid{grid-template-columns:1fr;gap:38px}
}
@media(max-width:600px){
 :root{--gutter:24px}
 .hero h1{font-size:clamp(58px,11.5vw,82px);letter-spacing:-.047em}
 .hero-description{font-size:15px}
 .journal{font-size:16px}
 .journal h2{font-size:clamp(42px,10vw,54px)}
 .journal-label{font-size:10px;letter-spacing:.12em}
 #philosophie.journal-intro{padding-block:82px 58px}
 #philosophie.journal-intro h2{font-size:clamp(42px,10vw,56px)}
 .journal-intro-copy p{font-size:16px}
 .journal-values{gap:27px;padding-bottom:70px}
 .journal-value-image>img{height:360px}
 .journal-caption{font-size:10px}
 .journal-principles article{grid-template-columns:28px 1fr;gap:13px;padding:24px 0}
 .journal-principles h3{font-size:30px}
 .journal-principles p{font-size:15px}
 .journal-audience{display:grid;grid-template-columns:1fr 1fr;gap:15px;padding:24px;line-height:1.5;font-size:10px}
 .journal-audience i{display:none}
 .journal-founder{padding-block:82px;gap:30px}
 .journal-founder .journal-label{margin-bottom:23px}
 .journal-founder h2{font-size:clamp(44px,10vw,58px)}
 .journal-prose>p:not(.journal-signature):not(.journal-meta){font-size:16px}
 .journal-prose>p:first-child{font-size:17px}
 .journal-process{padding-block:78px 90px;gap:34px}
 .journal-section-aside h2{font-size:clamp(42px,9vw,52px)}
 .journal-section-aside>p{font-size:16px}
 .journal-process-list article{grid-template-columns:29px 1fr;gap:14px;padding:25px 0}
 .journal-process-list p{font-size:15px}
 .journal-services{padding-block:84px 91px}
 .journal-services-heading{margin-bottom:49px;text-align:left}
 .journal-services-heading .journal-label{margin-bottom:24px}
 .journal-services-heading>p:last-child{font-size:16px;margin:22px 0 0}
 .journal-concept{grid-template-columns:1fr;gap:18px;padding:28px 0;margin-bottom:80px}
 .journal-concept h3{font-size:39px}
 .journal-concept-copy>p{font-size:16px}
 .journal-concept-action{grid-column:1}
 .journal-service-title{margin:0}
 .journal-service-title>div+div{margin-top:27px}
 .journal-service-title .journal-label{margin-bottom:22px}
 .journal-service-title h3{font-size:clamp(43px,11.8vw,66px)}
 .journal-lead{font-size:26px}
 .journal-service-title>div>p:last-child:not(.journal-label):not(.journal-lead){font-size:16px}
 .journal-service-figure img{height:320px}
 .journal-service-figure figcaption{display:block;font-size:10px}
 .journal-service-figure figcaption span{display:block}
 .journal-service-figure figcaption span+span{margin-top:4px}
 .journal-scope{margin-top:42px}
 .journal-scope>section{gap:11px 15px;padding:24px 0}
 .journal-scope h4{font-size:26px}
 .journal-scope p{font-size:15px}
 .journal-handover{padding:40px 0}
 .journal-handover h4{font-size:33px}
 .journal-handover p:not(.journal-label){font-size:15px}
 .journal-disclosure>div{font-size:15px}
 .journal-service-action{align-items:flex-start;flex-direction:column;gap:15px}
 .journal-extras{padding-top:86px;gap:28px}
 .journal-extras-heading h3{font-size:43px}
 .journal-extras-heading>p{margin-top:19px}
 .journal-extra-list summary{grid-template-columns:25px 1fr 17px;gap:10px;padding:25px 0}
 .journal-extra-list summary strong{font-size:23px}
 .journal-extra-list .journal-disclosure>div{padding-left:35px}
 .journal-projects{padding-top:87px}
 .journal-projects-heading{margin-bottom:44px}
 .journal-projects-heading .journal-label{margin-bottom:24px}
 .journal-projects-heading>p{font-size:16px}
 .journal-project{gap:26px;margin-bottom:87px}
 .journal-project .project-image{height:340px}
 .journal-project-copy>.eyebrow{font-size:10px;margin-bottom:18px}
 .journal-project-copy h3{font-size:clamp(44px,10vw,57px)}
 .journal-project-copy h3 br{display:block}
 .journal-project-copy>p:not(.eyebrow):not(.project-tags):not(.journal-project-kind){font-size:16px}
 .journal-faq{padding-block:80px 92px;gap:30px}
 .journal-faq h2{font-size:45px;margin:20px 0}
 .journal-faq-list summary{font-size:15px}
 .journal-contact{padding-block:82px 92px}
 .journal-contact>.journal-wrap>.journal-label{margin-bottom:29px}
 .journal-contact h2{font-size:clamp(47px,11vw,65px)}
 .journal-contact-grid>div>p{font-size:16px}
 .journal footer{padding-top:60px}
}
@media(max-width:380px){.hero h1{font-size:54px}.journal-service-title h3{font-size:42px}.journal-project-copy h3{font-size:42px}}
@media(prefers-reduced-motion:reduce){.motion-ready .reveal{opacity:1;transform:none;transition:none}.gallery-fade{animation:none}}
