@font-face{font-family:Transat;src:local("Transat");font-display:swap}
:root{--ink:#252b25;--gold:#caaf5e;--cream:#e7e4d7;--quiet:#a6a595;font-family:Transat,"Avenir Next",Avenir,Futura,Arial,sans-serif;color:var(--cream);background:var(--ink)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;min-width:320px}a{color:inherit;text-decoration:none}a:focus-visible{outline:2px solid var(--gold);outline-offset:6px}img{display:block;max-width:100%}.skip{position:absolute;z-index:30;top:-100px;left:12px;background:var(--cream);color:var(--ink);padding:12px}.skip:focus{top:12px}
.hero{position:relative;height:clamp(420px,38vw,560px);overflow:hidden;background:#353b32 url('/assets/FondRoseaux.jpg') center 52%/cover no-repeat;isolation:isolate}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(26,34,29,.31),transparent 55%),linear-gradient(180deg,rgba(12,20,17,.23),transparent 42%,rgba(22,28,23,.28));z-index:-1}
.side-nav{position:absolute;z-index:5;top:6.5%;left:clamp(21px,2.4vw,44px);display:flex;flex-direction:column;align-items:center;gap:clamp(26px,3.2vw,52px)}.side-nav a{display:block;writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;text-transform:uppercase;font-weight:500;letter-spacing:.08em;font-size:clamp(12px,.85vw,15px);line-height:1;opacity:.67;transition:color .25s,opacity .25s}.side-nav a:hover,.side-nav a[aria-current]{color:var(--gold);opacity:1}
.hero-identity{position:absolute;z-index:2;right:clamp(28px,3.7vw,76px);top:7.2%;text-align:right;text-transform:uppercase;color:#ad8d5d}.hero-identity h1{font-weight:300;letter-spacing:-.05em;line-height:1.05;font-size:clamp(22px,2.3vw,39px);margin:0}.hero-identity p{font-weight:800;color:#fff;letter-spacing:.39em;font-size:clamp(10px,1vw,17px);margin:15px 0 0}
.hero-art{position:absolute;left:clamp(70px,6.2vw,130px);top:3%;width:min(59vw,850px);display:flex;flex-direction:column;align-items:center;pointer-events:none}.hero-eye{width:26%;height:auto;filter:drop-shadow(0 1px 1px rgba(35,33,23,.14))}.hero-yaka{width:100%;height:auto;margin-top:-3.2%;opacity:.31}.scroll-cue{position:absolute;right:4%;bottom:5%;display:flex;align-items:center;gap:15px;text-transform:uppercase;letter-spacing:.22em;font-size:11px;font-weight:700}.scroll-line{width:42px;height:1px;background:currentColor}
.work{padding:clamp(74px,9vw,148px) clamp(24px,5.5vw,112px) clamp(90px,10vw,160px);background:#e5e0d2;color:#292e29}.section-heading{display:grid;grid-template-columns:1.4fr .55fr;gap:4vw;align-items:end;margin-bottom:clamp(56px,7vw,110px)}.eyebrow{text-transform:uppercase;letter-spacing:.25em;font-size:12px;font-weight:800;margin:0 0 35px;color:#97733f}.section-heading .eyebrow{grid-column:1/-1;margin:0}.section-heading h2,.about h2{font-size:clamp(48px,6.9vw,118px);font-weight:400;line-height:.93;letter-spacing:-.075em;margin:0}.section-heading em,.about em{font-family:Georgia,serif;font-weight:400;letter-spacing:-.075em}.section-lead{font-size:clamp(16px,1.22vw,21px);line-height:1.45;max-width:340px;margin:0 0 .3em}
.origin-note{background:#e5e0d2;color:#68675e;padding:23px clamp(24px,5.5vw,112px) 0}.origin-copy{font-size:clamp(15px,1.12vw,18px);line-height:1.45;max-width:760px;margin:0 0 9px;letter-spacing:0}.origin-more{display:inline-flex;align-items:center;gap:9px;border-bottom:1px solid #8b7859;padding-bottom:3px;text-transform:uppercase;letter-spacing:.12em;font-size:12px;font-weight:600;color:#796441}.origin-more:hover{color:#292e29}
.portfolio-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.project-card{min-height:clamp(390px,42vw,670px);padding:clamp(27px,3.3vw,58px);display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;transition:filter .35s,transform .35s}.project-card:hover{filter:brightness(1.12)}.project-card:focus-visible{outline-offset:-7px}.card-top,.card-bottom{display:flex;justify-content:space-between;align-items:center;text-transform:uppercase;letter-spacing:.2em;font-weight:700;font-size:clamp(11px,.86vw,14px);gap:15px}.card-eye{width:30px;height:30px;object-fit:contain;flex:none;opacity:.9;transition:transform .4s ease,opacity .4s ease}.card-body{display:flex;flex-direction:column;gap:24px;position:relative;z-index:1}.card-body strong{font-size:clamp(45px,5.2vw,94px);letter-spacing:-.075em;line-height:.93;font-weight:400}.card-body>span{max-width:360px;font-size:clamp(16px,1.15vw,20px);line-height:1.35}.card-bottom{border-top:1px solid currentColor;padding-top:17px;max-width:215px}.card-campaign{grid-column:1/-1;min-height:clamp(470px,56vw,760px);background:#333b34;color:#eadfc3}.card-campaign .card-body strong{font-size:clamp(58px,8.1vw,150px)}.card-campaign::after{content:"03";position:absolute;right:2%;bottom:-20%;font:400 clamp(370px,51vw,900px)/1 Georgia,serif;color:rgba(223,214,185,.055);pointer-events:none}.card-identity{background:#ae8b58;color:#282d27}.card-motion{background:#313633;color:#e6dfcf}.card-photo{background:#b9ad96;color:#292d27}.card-web{background:#525950;color:#f1e9d7}.card-packaging{background:#dad0bb;color:#34382f}.card-design{background:#777d70;color:#f0eadc}

.clients{margin-top:clamp(70px,9vw,140px);border-top:1px solid #b7b1a2;padding-top:25px;color:#55594f}.clients-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:clamp(35px,5vw,70px)}.clients h2{text-transform:uppercase;letter-spacing:.23em;font-weight:700;font-size:12px;margin:0}.marquee-toggle{border:0;border-bottom:1px solid currentColor;background:transparent;padding:0 0 3px;color:#666b61;text-transform:uppercase;letter-spacing:.13em;font:600 12px Transat,"Avenir Next",Avenir,Futura,Arial,sans-serif;cursor:pointer}.marquee-toggle:hover{color:#292e29}.marquee-toggle:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.client-marquee{overflow:hidden;margin-left:calc(-1 * clamp(24px,5.5vw,112px));margin-right:calc(-1 * clamp(24px,5.5vw,112px));mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}.logo-track{display:flex;width:max-content;animation:logos-scroll 250s linear infinite}.logo-group{display:flex;align-items:center;flex:none}.logo-unit{width:auto;height:100px;padding:0 clamp(32px,3vw,45px);display:flex;align-items:center;justify-content:center;flex:none}.logo-unit img{display:block;width:var(--logo-width);height:auto;max-height:82px;object-fit:contain;opacity:.8;mix-blend-mode:multiply}@keyframes logos-scroll{to{transform:translateX(-50%)}}.client-marquee:hover .logo-track,.clients[data-paused="true"] .logo-track{animation-play-state:paused}
.about{background:#303831;padding:clamp(100px,12vw,190px) clamp(24px,7vw,140px);display:grid;grid-template-columns:1fr 2fr;gap:30px}.about .eyebrow{margin:12px 0}.about h2{font-size:clamp(52px,6vw,112px)}.about>p:last-child{grid-column:2;max-width:780px;font-size:clamp(18px,1.7vw,27px);line-height:1.5;margin:40px 0 0;color:#c8c8ba}footer{background:#b59661;color:#293128;padding:clamp(70px,8vw,140px) clamp(24px,7vw,140px) 35px;display:grid;grid-template-columns:2fr 1fr;gap:30px;align-items:end}footer .eyebrow{color:#30382f}footer h2{font-size:clamp(65px,9vw,170px);font-weight:400;letter-spacing:-.09em;line-height:.87;margin:0}footer p:not(.eyebrow){font-size:18px;line-height:1.5}footer small{display:block;margin-top:30px;font-size:13px}.back-top{grid-column:1/-1;text-align:right;text-transform:uppercase;letter-spacing:.2em;font-size:12px;font-weight:700;margin-top:50px}
@media(max-width:900px){.hero{height:clamp(400px,48vw,480px)}.hero-identity{top:7%;right:5%;left:100px}.hero-identity h1{font-size:clamp(21px,3vw,30px)}.hero-art{left:8%;width:64%;top:14%}.section-heading{grid-template-columns:1fr;gap:25px}.section-heading .eyebrow{grid-column:auto}.section-lead{max-width:550px}.card-body strong{font-size:clamp(45px,6vw,70px)}}
@media(max-width:600px){.hero{height:clamp(320px,72vw,420px);background-position:61% center}.hero::before{background:linear-gradient(180deg,rgba(18,26,22,.45),rgba(18,26,22,.05) 45%,rgba(18,26,22,.4))}.side-nav{left:19px;top:30px;gap:27px}.side-nav a{font-size:12px}.hero-identity{left:72px;right:19px;top:32px}.hero-identity h1{font-size:clamp(19px,5.1vw,28px);line-height:1.1}.hero-identity p{font-size:10px;letter-spacing:.18em;line-height:1.5;margin-top:10px}.hero-art{left:58px;right:10px;width:calc(100% - 68px);top:48%;display:flex;flex-direction:row-reverse;align-items:center;justify-content:space-between;gap:6%}.hero-eye{width:29%;flex:0 0 29%}.hero-yaka{width:65%;flex:0 0 65%;opacity:.72;margin-top:0}.scroll-cue{right:24px;bottom:27px}.work{padding:75px 17px 85px 65px}.section-heading{margin-bottom:55px}.section-heading h2{font-size:clamp(45px,11vw,68px)}.section-lead{font-size:16px}.portfolio-grid{grid-template-columns:1fr;gap:10px}.project-card,.card-campaign,.card-design{grid-column:auto;min-height:420px;padding:26px}.card-campaign{min-height:500px}.card-body strong,.card-campaign .card-body strong,.card-design .card-body strong{font-size:clamp(47px,11vw,66px)}.card-body>span{font-size:16px}.about{display:block;padding:90px 26px 100px 65px}.about h2{font-size:clamp(45px,11vw,70px)}.about>p:last-child{font-size:18px;margin-top:36px}footer{display:block;padding:80px 24px 30px 65px}footer h2{font-size:clamp(67px,15vw,100px)}footer p:not(.eyebrow){margin-top:55px}.back-top{display:block;margin-top:70px}}
@media(max-width:600px){.origin-note{padding:18px 17px 0 65px}.origin-copy{font-size:15px;line-height:1.4;margin-bottom:8px}.origin-more{font-size:12px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.project-card,.card-eye{transition:none}.logo-track{animation:none;width:100%}.client-marquee{overflow:visible;mask-image:none}.logo-group:first-child{width:100%;flex-wrap:wrap;justify-content:center}.logo-group:last-child{display:none}.logo-unit{width:auto}.marquee-toggle{display:none}}

@media(max-width:600px){.logo-unit{height:95px;padding:0 27px}.logo-track{animation-duration:195s}}

/* Home: progressive entrances and more tactile portfolio cards. */
.home-reveal-ready .reveal-item{opacity:0;transform:translateY(54px) scale(.965);filter:blur(5px);transition:opacity .9s ease,transform 1s cubic-bezier(.18,.75,.2,1),filter .9s ease,box-shadow .5s ease}
.home-reveal-ready .reveal-item.is-visible{opacity:1;transform:none;filter:none}
.home-reveal-ready .portfolio-grid .reveal-item:nth-child(even){transition-delay:110ms}
.project-card{isolation:isolate;transition:transform .55s cubic-bezier(.18,.75,.2,1),filter .45s ease,box-shadow .55s ease}
.project-card::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(135deg,rgba(255,255,255,.23),transparent 49%,rgba(0,0,0,.06));opacity:0;transition:opacity .5s ease}
.card-top,.card-bottom{position:relative;z-index:1}
.card-body strong,.card-body>span,.card-bottom span{transition:transform .55s cubic-bezier(.18,.75,.2,1)}
@media(hover:hover) and (pointer:fine){
  .home-reveal-ready .project-card.is-visible:hover,.project-card:hover{transform:translateY(-12px) scale(1.015);filter:brightness(1.08) saturate(1.06);box-shadow:0 24px 50px rgba(28,34,29,.23);z-index:2}
  .project-card:hover::before{opacity:1}
  .project-card:hover .card-body strong{transform:translateY(-8px)}
  .project-card:hover .card-body>span{transform:translateY(-4px)}
  .project-card:hover .card-eye{transform:translate(3px,-3px) scale(1.32) rotate(8deg);opacity:1}
  .project-card:hover .card-bottom span{transform:translateX(9px)}
}
.home-reveal-ready .project-card.is-visible:focus-visible,.project-card:focus-visible{transform:translateY(-8px) scale(1.01);filter:brightness(1.08);box-shadow:0 20px 42px rgba(28,34,29,.22);z-index:2}
.project-card:focus-visible::before{opacity:1}
@media(prefers-reduced-motion:reduce){.home-reveal-ready .reveal-item{opacity:1;transform:none;filter:none;transition:none}.project-card,.project-card::before,.card-body strong,.card-body>span,.card-bottom span{transition:none}.project-card:hover,.project-card:focus-visible{transform:none}}

/* The sixth portfolio card joins design and packaging. */
.card-packaging{grid-column:1/-1;min-height:clamp(390px,37vw,570px)}
.card-packaging .card-body strong{font-size:clamp(56px,6.5vw,116px)}
@media(max-width:600px){.card-packaging{min-height:420px}.card-packaging .card-body strong{font-size:clamp(47px,11vw,66px)}}

/* Keep the horizontal eye/title pair immediately below the identity line. */
@media(min-width:601px) and (max-width:900px){
  .hero{height:clamp(350px,43vw,390px);padding-top:clamp(25px,3vw,35px);background-size:auto 145%;background-position:12% bottom}
  .hero-identity{position:relative;top:auto;left:auto;right:auto;margin:0 5% 0 100px}
  .hero-art{position:relative;top:auto;left:auto;right:auto;width:84%;margin:16px auto 0;flex-direction:row;justify-content:space-between;gap:4%}
  .hero-eye{width:28%;flex:0 0 28%}
  .hero-yaka{width:68%;flex:0 0 68%;margin-top:0;opacity:.31}
  .scroll-cue{display:none}
}
@media(max-width:600px){
  .hero{height:clamp(250px,50vw,310px);padding-top:14px;background-size:auto 145%;background-position:25% bottom}
  .hero-identity{position:relative;top:auto;left:auto;right:auto;margin:0 19px 0 72px}
  .hero-identity h1{font-size:clamp(11.5px,calc(4.9vw - 4px),24.5px);white-space:nowrap}
  .hero-identity p{margin-top:18px}
  .hero-art{position:relative;top:auto;left:auto;right:auto;margin:14px 10px 0 58px;flex-direction:row;gap:4%}
  .hero-yaka{width:67%;flex-basis:67%;opacity:.31}
  .scroll-cue{display:none}
}
.card-identity .card-eye,.card-photo .card-eye,.card-packaging .card-eye{filter:brightness(.43) saturate(.8)}
.project-card:focus-visible .card-eye{transform:scale(1.23);opacity:1}
@media(prefers-reduced-motion:reduce){.project-card:hover .card-eye,.project-card:focus-visible .card-eye{transform:none}}

/* Home introduction: compact editorial transition and an inline about link. */
.origin-note{display:flex;align-items:baseline;justify-content:space-between;gap:28px}
.origin-copy{max-width:none;margin:0;flex:1}
.origin-more{flex:none;white-space:nowrap}
.work{padding-top:clamp(44px,3.4vw,58px)}
.section-heading{margin-bottom:clamp(48px,5vw,72px)}
.card-eye{width:clamp(52px,4.5vw,80px);height:clamp(52px,4.5vw,80px)}
@media(max-width:750px){.origin-note{display:block}.origin-copy{margin-bottom:10px}}
@media(max-width:600px){.work{padding-top:54px}.section-heading{margin-bottom:55px}.card-eye{width:46px;height:46px}}

#contact .eyebrow,#contact h2{color:#fff}
#contact .contact-details{display:grid;align-self:end;gap:24px;min-width:0}
#contact .contact-details>div{display:grid;gap:7px;min-width:0}
#contact .contact-details span{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:700;opacity:.75}
#contact .contact-details a{width:fit-content;max-width:100%;border-bottom:1px solid rgba(41,49,40,.45);font-size:clamp(16px,1.4vw,22px);line-height:1.35;letter-spacing:-.025em;overflow-wrap:anywhere}
#contact .contact-details a:hover{border-bottom-color:currentColor}
#contact .contact-details small{margin-top:8px}
@media(max-width:600px){#contact .contact-details{margin-top:48px;gap:22px}}

/* Compact the final portfolio, client strip and contact transition. */
.clients{margin-top:clamp(42px,3.5vw,58px)}
.clients-heading{margin-bottom:clamp(25px,2vw,38px)}
.logo-unit{height:47px;padding:0 clamp(14px,1.5vw,23px)}
.logo-unit img{width:calc(var(--logo-width) * .492);max-height:41px}
.work{padding-bottom:clamp(44px,3vw,54px)}
#contact{padding-top:clamp(60px,3.6vw,78px)}
@media(max-width:600px){.clients{margin-top:46px}.clients-heading{margin-bottom:27px}.logo-unit{height:41px;padding:0 11px}.logo-unit img{max-height:32px}.work{padding-bottom:50px}#contact{padding-top:60px}}

.logo-track{animation-duration:150s}
@media(max-width:600px){.logo-track{animation-duration:115s}}

/* Keep the complete vertical menu inside the short phone hero. */
@media(max-width:600px){
  .side-nav{top:18px;left:18px;gap:17px}
  .side-nav a{font-size:11px;letter-spacing:.065em}
}

/* Equal gutters below the hero on portrait phones. */
@media(max-width:600px) and (orientation:portrait){
  .origin-note,.work,#contact{padding-left:clamp(20px,5.5vw,28px);padding-right:clamp(20px,5.5vw,28px)}
}

#contact .contact-socials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 24px;padding-top:8px}
#contact .contact-socials a{display:flex;align-items:center;gap:10px;width:fit-content;border:0;line-height:1.4;color:inherit;transition:opacity .2s}
#contact .contact-socials svg{width:22px;height:22px;flex:none}
#contact .contact-socials span{font-size:13px;letter-spacing:.035em;opacity:1;text-transform:none;font-weight:500}
#contact .contact-socials a:hover{opacity:.65}
@media(max-width:900px){#contact .contact-socials{grid-template-columns:1fr}}

#contact .contact-music-block{padding-top:8px}#contact .contact-music{padding-top:9px}#contact .contact-music-label{font-size:12px}
