/* ENG Yachting v2 */
@font-face{font-family:"Playfair";font-style:normal;font-display:swap;font-weight:400 900;src:url(https://cdn.jsdelivr.net/npm/@fontsource-variable/playfair-display@5.2.5/files/playfair-display-latin-wght-normal.woff2) format("woff2-variations");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:"Playfair";font-style:normal;font-display:swap;font-weight:400 900;src:url(https://cdn.jsdelivr.net/npm/@fontsource-variable/playfair-display@5.2.5/files/playfair-display-latin-ext-wght-normal.woff2) format("woff2-variations");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:"Hanken";font-style:normal;font-display:swap;font-weight:100 900;src:url(https://cdn.jsdelivr.net/npm/@fontsource-variable/hanken-grotesk@5.3.0/files/hanken-grotesk-latin-wght-normal.woff2) format("woff2-variations");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:"Hanken";font-style:normal;font-display:swap;font-weight:100 900;src:url(https://cdn.jsdelivr.net/npm/@fontsource-variable/hanken-grotesk@5.3.0/files/hanken-grotesk-latin-ext-wght-normal.woff2) format("woff2-variations");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}

:root{
  --abyss:#0D1B26; --hull:#13293A; --mist:#AEBBC2; --sail:#ECEDE8; --slate:#4A5A64; --teak:#B5835A;
  --bg:var(--abyss); --fg:var(--sail); --muted:var(--mist); --line:rgba(236,237,232,.16); --panel:var(--hull);
  --serif:"Playfair","Playfair Display",Georgia,"Times New Roman",serif;
  --sans:"Hanken",system-ui,-apple-system,"Segoe UI",sans-serif;
  --s-1:.8125rem; --s0:1.0625rem; --s1:1.3125rem;
  --s2:clamp(1.55rem,1.1rem + 1.8vw,2.4rem);
  --s3:clamp(2.2rem,1.2rem + 4vw,4.6rem);
  --s4:clamp(3.1rem,1rem + 8vw,9rem);
  --gutter:clamp(1rem,.4rem + 3vw,3rem);
  --max:1440px;
  --ease-out:cubic-bezier(.19,1,.22,1);
  --header-h:72px;
}
html[data-theme="light"]{--bg:var(--sail);--fg:var(--abyss);--muted:var(--slate);--line:rgba(13,27,38,.16);--panel:#DDE0DA}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
.lenis.lenis-smooth [data-lenis-prevent]{overscroll-behavior:contain}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--sans);font-size:var(--s0);line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background-color .9s var(--ease-out),color .9s var(--ease-out)}
img,canvas,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration-thickness:1px;text-underline-offset:.22em}
h1,h2,h3{font-family:var(--serif);font-weight:400;font-optical-sizing:auto;margin:0;letter-spacing:-.02em;text-wrap:balance}
p{margin:0;text-wrap:pretty}
:focus-visible{outline:2px solid var(--teak);outline-offset:3px;border-radius:2px}
.skip{position:absolute;left:var(--gutter);top:-100px;z-index:100;background:var(--sail);color:var(--abyss);padding:.6rem 1rem;border-radius:2px}
.skip:focus{top:12px}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--gutter)}
/* no-JS fallback: sections paint their own ground */
html:not(.js) [data-theme="light"]{background:var(--sail);color:var(--abyss);--muted:var(--slate);--line:rgba(13,27,38,.16)}

/* film grain, fixed and static */
.grain{position:fixed;inset:-50%;z-index:90;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}

/* buttons */
.btn{position:relative;display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:0 1.6rem;border-radius:999px;font:500 .9375rem/1 var(--sans);letter-spacing:.01em;text-decoration:none;border:1px solid transparent;cursor:pointer;overflow:hidden;isolation:isolate;-webkit-tap-highlight-color:transparent;transition:color .45s var(--ease-out),border-color .3s ease}
.btn::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;transform:translateY(101%);transition:transform .55s var(--ease-out)}
.btn:active{scale:.97}
.btn--solid{background:var(--sail);color:var(--abyss)}
.btn--solid::before{background:var(--teak)}
.btn--ghost{border-color:rgba(236,237,232,.3);color:var(--sail)}
.btn--ghost::before{background:var(--sail)}
@media (hover:hover) and (pointer:fine){
  .btn:hover::before{transform:translateY(0)}
  .btn--ghost:hover{color:var(--abyss);border-color:var(--sail)}
}

/* header */
.hdr{position:fixed;inset:0 0 auto;z-index:50;height:var(--header-h);display:flex;align-items:center;color:var(--sail);transition:transform .6s var(--ease-out),background-color .5s ease,color .5s ease,border-color .5s ease;border-bottom:1px solid transparent}
.hdr.is-solid{background:color-mix(in srgb,var(--bg) 82%,transparent);color:var(--fg);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-color:var(--line)}
.hdr.is-hidden{transform:translateY(-100%)}
.hdr .wrap{display:flex;align-items:center;gap:2rem}
.brand{display:flex;align-items:center;gap:.75rem;text-decoration:none;margin-right:auto}
.brand__mark{width:54px;height:27px;flex:none;overflow:visible}
.brand__txt{display:block}
.brand__txt b{display:block;font:500 1.65rem/1 var(--serif);letter-spacing:.2em;margin-right:-.2em}
.brand__txt i{display:block;font:500 .5625rem/1 var(--sans);font-style:normal;letter-spacing:.62em;margin-top:.4rem;opacity:.8}
.nav{display:flex;gap:1.9rem}
.nav a{position:relative;font-size:.9375rem;text-decoration:none;opacity:.72;transition:opacity .25s ease}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out)}
.nav a:hover{opacity:1}
.nav a:hover::after{transform:scaleX(1);transform-origin:left}
.lang{display:flex;gap:.25rem;font-size:.875rem}
.lang a{padding:.35rem .45rem;text-decoration:none;opacity:.8;border-radius:2px}
.lang a[aria-current="page"]{opacity:1}
.hdr .btn{min-height:42px;padding:0 1.2rem}
.hdr.is-solid .btn--solid{background:var(--fg);color:var(--bg)}
.menu-btn{display:none;background:none;border:0;color:inherit;width:44px;height:44px;margin-right:-10px;cursor:pointer}
.menu-btn svg{width:22px;height:22px}
@media (max-width:960px){
  .nav,.hdr .lang{display:none}
  .menu-btn{display:inline-flex;align-items:center;justify-content:center}
  .hdr .wrap{gap:.75rem}
}
.drawer{position:fixed;inset:0;z-index:60;background:var(--abyss);color:var(--sail);display:flex;flex-direction:column;padding:calc(var(--header-h) + 1rem) var(--gutter) 2rem;visibility:hidden;opacity:0;transition:opacity .35s var(--ease-out),visibility 0s linear .35s}
.drawer.is-open{visibility:visible;opacity:1;transition:opacity .35s var(--ease-out)}
.drawer nav{display:flex;flex-direction:column}
.drawer nav a{font:400 clamp(2rem,9vw,2.6rem)/1.25 var(--serif);text-decoration:none;padding:.3rem 0}
.drawer .lang{margin-top:auto;font-size:1rem}
.drawer-close{position:absolute;top:14px;right:calc(var(--gutter) - 10px);width:44px;height:44px;background:none;border:0;color:var(--sail);cursor:pointer}

/* ---------- hero + journey (one pinned scene) ---------- */
.hero{position:relative;height:100svh;min-height:560px;overflow:hidden;isolation:isolate;color:var(--sail);background:var(--abyss)}
.hero__media,.hero__inside{position:absolute;inset:0}
.hero__media{z-index:-3}
.hero__media img,.hero__inside img{width:100%;height:100%;object-fit:cover}
.hero__media img{object-position:62% 55%;transform-origin:72% 52%}
.hero__media picture{display:block;width:100%;height:100%}
@media (max-aspect-ratio:4/5){.hero__media img{object-position:50% 50%;transform-origin:50% 55%}}
.hero__inside{z-index:-2;opacity:0}
.hero__inside img{width:100%;height:100%;object-fit:cover;object-position:50% 50%}
.hero__film{position:absolute;inset:0;width:100%;height:100%;opacity:0}
.hero__veil{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:0;background:radial-gradient(120% 90% at 50% 50%,rgba(9,19,27,.62) 0%,rgba(9,19,27,.38) 55%,rgba(9,19,27,.18) 100%)}
.hero__shade{position:absolute;inset:0;z-index:-1;pointer-events:none;background:linear-gradient(180deg,rgba(13,27,38,.55) 0%,rgba(13,27,38,0) 26%,rgba(13,27,38,.12) 55%,rgba(13,27,38,.92) 100%)}
.hero__draw{position:absolute;inset:0;z-index:0;display:flex;align-items:center;justify-content:center;pointer-events:none}
.hero__draw svg{width:min(1500px,96vw);height:auto;overflow:visible}
.hero__draw path,.hero__draw line{fill:none;stroke:var(--sail);stroke-width:1.1;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.hero__draw .station{stroke:var(--mist);stroke-width:.6;stroke-dasharray:2 6;opacity:.5}
.hero__copy{position:absolute;inset:auto 0 0;z-index:1;padding-bottom:clamp(2.5rem,6vh,5rem)}
.hero h1{font-size:var(--s4);line-height:.92;max-width:10.5ch;font-weight:400}
.hero__row{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:2rem 4rem;margin-top:clamp(1.5rem,3vh,2.5rem)}
.hero__lead{max-width:44ch;color:var(--mist)}
.hero__cta{display:flex;flex-wrap:wrap;gap:.75rem}
.hero__cap{position:absolute;z-index:1;text-shadow:0 2px 28px rgba(9,19,27,.45);left:var(--gutter);right:var(--gutter);top:50%;translate:0 -50%;max-width:var(--max);margin-inline:auto;font:400 var(--s3)/1.08 var(--serif);letter-spacing:-.02em;opacity:0;pointer-events:none;text-wrap:balance}
.hero__cap span{display:block;max-width:16ch}
.hero__cap--2{text-align:right}
.hero__cap--2 span{margin-left:auto}
.scroll-cue{position:absolute;z-index:1;right:var(--gutter);bottom:clamp(2.5rem,6vh,5rem);width:1px;height:64px;background:rgba(236,237,232,.25);overflow:hidden}
.scroll-cue::after{content:"";position:absolute;inset:0;background:var(--sail);transform:translateY(-100%);animation:cue 2.4s var(--ease-out) infinite}
@keyframes cue{to{transform:translateY(100%)}}
@media (max-width:860px){
  .scroll-cue{display:none}
  .hero__copy{top:calc(var(--header-h) + 1.5rem);padding-bottom:clamp(1.75rem,4vh,3rem)}
  .hero__copy .wrap{height:100%;display:flex;flex-direction:column;justify-content:space-between}
  .hero__row{margin-top:0}
}

.intro .hero__media{clip-path:inset(50% 0 50% 0)}
.intro .hero__copy,.intro .hdr,.intro .scroll-cue{opacity:0}

/* soft images: rounded and feathered at the edges so they sit in the page */
.soft{--r:clamp(14px,1.6vw,26px);--f:clamp(10px,1.4vw,22px);border-radius:var(--r);overflow:hidden;isolation:isolate;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--f),#000 calc(100% - var(--f)),transparent),linear-gradient(180deg,transparent,#000 var(--f),#000 calc(100% - var(--f)),transparent);
  -webkit-mask-composite:source-in;
  mask-image:linear-gradient(90deg,transparent,#000 var(--f),#000 calc(100% - var(--f)),transparent),linear-gradient(180deg,transparent,#000 var(--f),#000 calc(100% - var(--f)),transparent);
  mask-composite:intersect}

/* line-mask reveals (SplitText) */
.ln-mask{overflow:clip;padding-bottom:.08em;margin-bottom:-.08em}

/* sections */
.sec{position:relative;padding-block:clamp(6rem,14vw,12rem)}
.kicker{display:flex;align-items:center;gap:.8rem;font-size:var(--s-1);letter-spacing:.04em;color:var(--muted);margin-bottom:1.5rem}
.kicker::before{content:"";width:28px;height:1px;background:currentColor;opacity:.6}
.h2{font-size:var(--s3);line-height:1.02;max-width:16ch}
.muted{color:var(--muted)}

/* manifesto: words fill as you scroll */
.manifesto p{font:400 clamp(1.9rem,1rem + 3.4vw,4.2rem)/1.14 var(--serif);letter-spacing:-.02em;max-width:22ch}
.manifesto .sub{margin-top:clamp(2rem,4vw,3rem);font:400 var(--s0)/1.6 var(--sans);letter-spacing:0;color:var(--muted);max-width:52ch}

/* services: one frame, exterior wipes across interior */
.svc{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,7rem);align-items:center;margin-top:clamp(3rem,6vw,5rem)}
.svc__text{position:relative;min-height:22rem}
.svc__panel{position:absolute;inset:0 0 auto}
.svc__panel + .svc__panel{opacity:0;visibility:hidden}
.svc__panel h3{font-size:var(--s3);line-height:1}
.svc__panel p{margin-top:1.25rem;color:var(--muted);max-width:44ch}
.svc__panel ul{list-style:none;padding:0;margin:1.75rem 0 0;border-top:1px solid var(--line)}
.svc__panel li{padding:.85rem 0;border-bottom:1px solid var(--line);font-size:.96875rem}
.svc__frame{position:relative;aspect-ratio:4/5;max-height:82svh;width:100%;margin-left:auto;background:var(--panel)}
.svc__frame figure{position:absolute;inset:0;margin:0}
.svc__frame img{width:100%;height:100%;object-fit:cover}
.svc__ext{clip-path:inset(0 0 0 100%)}
.svc__edge{position:absolute;top:0;bottom:0;left:100%;width:1px;background:var(--sail);opacity:.9;z-index:2;pointer-events:none}
.svc__frame::after{content:"";position:absolute;inset:auto 0 0;height:30%;z-index:1;pointer-events:none;background:linear-gradient(180deg,rgba(9,19,27,0),rgba(9,19,27,.55))}
.svc__tag{position:absolute;z-index:2;left:1.6rem;bottom:1.5rem;color:var(--sail);font-size:var(--s-1);letter-spacing:.04em}
.svc__tag--ext{left:auto;right:1.6rem;opacity:0}
@media (max-width:860px){
  .svc{grid-template-columns:1fr}
  .svc__text{min-height:0;display:grid;gap:3rem}
  .svc__panel,.svc__panel + .svc__panel{position:static;opacity:1;visibility:visible}
  .svc__frame{order:-1}
}

/* more services: rows beside a frame that follows the active row */
.more{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:clamp(2rem,6vw,7rem);align-items:start;margin-top:clamp(5rem,10vw,8rem)}
.rows{list-style:none;padding:0;margin:0;border-top:1px solid var(--line)}
.rows li{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:2rem;align-items:baseline;padding:clamp(1.6rem,3vw,2.6rem) 0;border-bottom:1px solid var(--line);transition:opacity .5s ease}
.rows h3{font-size:var(--s2);transition:translate .6s var(--ease-out)}
.rows p{color:var(--muted);max-width:46ch}
.more__frame{position:sticky;top:calc(var(--header-h) + 6vh);aspect-ratio:4/5;background:var(--panel)}
.more__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;scale:1.06;transition:opacity .7s var(--ease-out),scale 1.4s var(--ease-out)}
.more__frame img.on{opacity:1;scale:1}
@media (min-width:861px){
  .js:not(.no-motion) .rows li{opacity:.42}
  .js:not(.no-motion) .rows li.on{opacity:1}
  .rows li.on h3{translate:.6rem 0}
}
@media (max-width:1100px){.rows li{grid-template-columns:1fr;gap:.6rem}}
@media (max-width:860px){.more{grid-template-columns:1fr}.more__frame{display:none}}

/* process: wireframe yacht builds up */
.proc{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,5vw,5rem);align-items:center;min-height:100svh;padding-block:calc(var(--header-h) + 2rem) 3rem}
.proc__canvas{position:relative;aspect-ratio:16/10;width:100%}
.proc__canvas canvas{position:absolute;inset:0;width:100%;height:100%}
.steps{list-style:none;padding:0;margin:2.5rem 0 0;counter-reset:step}
.steps li{counter-increment:step;display:grid;grid-template-columns:3rem 1fr;gap:0 1rem;padding:1.1rem 0;border-top:1px solid var(--line);opacity:.35;transition:opacity .5s ease}
.steps li:last-child{border-bottom:1px solid var(--line)}
.steps li.on{opacity:1}
.steps li::before{content:counter(step,decimal-leading-zero);grid-row:span 2;font-size:var(--s-1);color:var(--muted);font-variant-numeric:tabular-nums;padding-top:.35rem}
.steps h3{font-size:var(--s1)}
.steps p{margin-top:.35rem;color:var(--muted);font-size:.9375rem;max-width:40ch}
.no-motion .steps li{opacity:1}
@media (max-width:860px){
  .proc{grid-template-columns:1fr;min-height:0;padding-block:clamp(6rem,14vw,12rem)}
  .proc__canvas{order:-1}
  .steps li{opacity:1}
}

/* concepts: pinned horizontal track */
.work{overflow:hidden}
.work__head{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;flex-wrap:wrap}
.work__note{color:var(--muted);font-size:.9375rem;max-width:36ch}
.track{display:flex;gap:clamp(1rem,2.5vw,2.5rem);padding-inline:var(--gutter);will-change:transform}
.work__pin{padding-block:clamp(2.5rem,5vw,4rem) 1rem}
.card{flex:0 0 clamp(280px,min(36vw,calc((100svh - 16rem) * .8)),580px);margin:0}
.card:nth-child(even){margin-top:clamp(1.5rem,4vw,3.5rem)}
.card__img{position:relative;aspect-ratio:4/5;background:var(--panel)}
.card__img img{position:absolute;inset:-6% -10%;width:120%;max-width:none;height:112%;object-fit:cover;transition:scale 1.2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.card:hover .card__img img{scale:1.05}}
.card{display:block;text-decoration:none;color:inherit}
.card__cap{display:flex;justify-content:space-between;gap:1rem;margin-top:1.1rem;align-items:baseline}
.card h3{font-size:var(--s2)}
.card span{color:var(--muted);font-size:.875rem;text-align:right}
.card__end{flex:0 0 clamp(260px,26vw,380px);display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:1.5rem}
.card__end p{font:400 var(--s2)/1.2 var(--serif)}
@media (max-width:860px){
  .card{flex-basis:78vw}
  .card:nth-child(even){margin-top:0}
  .card__end{flex-basis:72vw;padding-right:var(--gutter)}
  .proc__canvas{z-index:3;background:var(--bg);box-shadow:0 18px 22px -6px var(--bg)}
}

/* studio */
.studio__grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2rem,6vw,7rem);align-items:center}
.studio figure{margin:0;aspect-ratio:4/5;background:var(--panel)}
.studio figure img{width:100%;height:100%;object-fit:cover}
.studio p{color:var(--muted);margin-top:1.5rem;max-width:50ch}
.studio .h2 + p{margin-top:2rem}
@media (max-width:860px){.studio__grid{grid-template-columns:1fr}}
.reveal{clip-path:inset(0 0 0 0)}
.js:not(.no-motion) .reveal{clip-path:inset(0 0 100% 0)}

/* faq */
.faq__grid{display:grid;grid-template-columns:4fr 7fr;gap:clamp(2rem,6vw,7rem)}
.faq details{border-top:1px solid var(--line)}
.faq details:last-child{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;gap:1.5rem;align-items:center;padding:1.5rem 0;font:400 var(--s1)/1.3 var(--serif)}
.faq summary::-webkit-details-marker{display:none}
.faq summary i{flex:none;position:relative;width:14px;height:14px}
.faq summary i::before,.faq summary i::after{content:"";position:absolute;left:0;top:6.5px;width:14px;height:1px;background:currentColor;transition:transform .4s var(--ease-out)}
.faq summary i::after{transform:rotate(90deg)}
.faq details[open] summary i::after{transform:rotate(0)}
.faq details p{padding:0 0 1.6rem;color:var(--muted);max-width:60ch}
@media (max-width:860px){.faq__grid{grid-template-columns:1fr}}

/* contact */
.contact{isolation:isolate;overflow:hidden}
.contact__bg{position:absolute;inset:0;z-index:-1}
.contact__bg img{width:100%;height:100%;object-fit:cover;opacity:.4}
.contact__bg::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--abyss) 30%,rgba(13,27,38,.65))}
.contact__grid{display:grid;grid-template-columns:5fr 6fr;gap:clamp(2.5rem,6vw,7rem)}
.contact__intro p{color:var(--muted);margin-top:1.5rem;max-width:40ch}
.mail{display:inline-block;margin-top:2rem;font:400 var(--s2)/1.2 var(--serif);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:.3rem;transition:border-color .3s ease}
.mail:hover{border-color:var(--teak)}
@media (max-width:860px){.contact__grid{grid-template-columns:1fr}}

/* form (rendered from the Wix Forms schema) */
.form{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem 1.25rem}
.form .f{position:relative;display:flex;flex-direction:column;gap:.45rem;min-width:0}
.form .f--wide{grid-column:1/-1}
.form label{font-size:.875rem;color:var(--muted)}
.form input:not([type=checkbox]),.form select,.form textarea{width:100%;font:inherit;font-size:1rem;color:var(--fg);background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:.7rem 0;min-height:48px;transition:border-color .3s ease;appearance:none;-webkit-appearance:none}
.form select{background-image:linear-gradient(45deg,transparent 50%,var(--muted) 50%),linear-gradient(135deg,var(--muted) 50%,transparent 50%);background-position:calc(100% - 10px) 55%,calc(100% - 5px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:1.75rem}
.form select option{color:#000}
.form textarea{min-height:110px;resize:vertical}
.form input:focus,.form select:focus,.form textarea:focus{outline:none;border-color:var(--fg)}
.form [aria-invalid="true"]{border-color:#E39A86!important}
.form .err{color:#F0B3A3;font-size:.8125rem}
.form .help{color:var(--muted);font-size:.8125rem}
.form .chk{flex-direction:row;align-items:flex-start;gap:.75rem}
.form .chk input{flex:none;width:20px;height:20px;margin:.15rem 0 0;accent-color:var(--teak)}
.form .chk label{font-size:.875rem;line-height:1.5}
.form .chk label a{color:var(--fg)}
.form .actions{grid-column:1/-1;display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;margin-top:.75rem}
.form .actions .btn[aria-busy="true"]{opacity:.6;pointer-events:none}
.form .form-err{grid-column:1/-1;color:#F0B3A3}
.form-status{color:var(--muted)}
.thanks{padding:2rem 0}
.thanks p{font:400 var(--s2)/1.3 var(--serif)}
@media (max-width:560px){.form{grid-template-columns:1fr}}

/* footer with a full-width wordmark */
.ftr{position:relative;border-top:1px solid var(--line);padding-top:3rem;color:var(--muted);font-size:.9375rem;overflow:hidden}
.ftr__grid{display:flex;flex-wrap:wrap;gap:2rem 4rem;justify-content:space-between;align-items:flex-start}
.ftr nav{display:flex;flex-wrap:wrap;gap:.5rem 1.75rem}
.ftr a{text-decoration:none}
.ftr a:hover{color:var(--fg)}
.ftr__base{display:flex;flex-wrap:wrap;gap:1rem 2rem;justify-content:space-between;align-items:center;margin-top:3rem;font-size:.8125rem}
.ftr__legal{display:flex;align-items:center;gap:1.25rem}
.ftr__markwrap{padding:clamp(2.5rem,6vw,5rem) var(--gutter) clamp(1.5rem,3vw,2.5rem);overflow:hidden}
.ftr__mark{display:block;width:max-content;margin-inline:auto;font:400 13.5vw/1 var(--serif);letter-spacing:-.035em;color:var(--fg);white-space:nowrap;padding-bottom:.06em}

/* cursor (fine pointers only) */
.cursor{position:fixed;left:0;top:0;z-index:95;pointer-events:none;display:none}
.cursor__dot{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;background:var(--sail);mix-blend-mode:difference;transition:scale .4s var(--ease-out)}
.cursor__label{position:absolute;margin:-44px 0 0 -44px;width:88px;height:88px;border-radius:50%;background:var(--sail);color:var(--abyss);display:flex;align-items:center;justify-content:center;font-size:.8125rem;letter-spacing:.02em;scale:0;transition:scale .5s var(--ease-out)}
.has-cursor .cursor{display:block}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor summary,.has-cursor label,.has-cursor [role="button"]{cursor:none}
.has-cursor input,.has-cursor textarea,.has-cursor select{cursor:auto}
.cursor.is-text .cursor__dot{scale:0}
.cursor.is-link .cursor__dot{scale:5}
.cursor.is-label .cursor__dot{scale:0}
.cursor.is-label .cursor__label{scale:1}

@media (prefers-reduced-motion:reduce){
  body,.btn,.btn::before,.hdr,.drawer,.nav a::after,.rows h3,.rows li,.more__frame img,.proj-hero__video,.proj-next__name,.proj-next__img img,.card__img img,.faq summary i::before,.faq summary i::after,.steps li{transition:none}
  .scroll-cue::after{animation:none}
  .intro .hero__media{clip-path:none}
  .intro .hero__copy,.intro .hdr,.intro .scroll-cue{opacity:1}
  .hero__draw{display:none}
}

/* ---------- concept project pages ---------- */
.proj-hero{position:relative;height:100svh;min-height:600px;overflow:hidden;isolation:isolate;color:var(--sail);background:var(--abyss)}
.proj-hero__media{position:absolute;inset:0;z-index:-2;transform-origin:50% 40%}
.proj-hero__media img,.proj-hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proj-hero__video{z-index:1;opacity:0;transition:opacity 1.2s ease}
.proj-hero__video.is-playing{opacity:1}
.proj-hero__shade{position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(9,19,27,.5) 0%,rgba(9,19,27,0) 28%,rgba(9,19,27,.15) 55%,rgba(9,19,27,.88) 100%)}
.proj-hero__copy{position:absolute;inset:auto 0 0;padding-bottom:clamp(2rem,5vh,4rem)}
.proj-back{display:inline-flex;align-items:center;gap:.6rem;font-size:.9375rem;color:var(--mist);text-decoration:none;margin-bottom:1.5rem}
.proj-back::before{content:"";width:22px;height:1px;background:currentColor;transition:width .5s var(--ease-out)}
.proj-back:hover{color:var(--sail)}
.proj-back:hover::before{width:34px}
.proj-hero h1{font-size:clamp(3.4rem,1rem + 10vw,11rem);line-height:.9}
.proj-hero__meta{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem 2rem;margin:clamp(1.75rem,4vh,3rem) 0 0;padding-top:1.25rem;border-top:1px solid rgba(236,237,232,.22)}
.proj-hero__meta dt{font-size:var(--s-1);color:var(--mist)}
.proj-hero__meta dd{margin:.3rem 0 0;font-size:1rem}
@media (max-width:700px){.proj-hero__meta{grid-template-columns:1fr 1fr}}
.proj-intro__lead{font:400 clamp(1.7rem,1rem + 2.6vw,3.4rem)/1.18 var(--serif);letter-spacing:-.015em;max-width:24ch}
.proj-intro__note{margin-top:clamp(1.75rem,3vw,2.5rem);color:var(--muted);font-size:.9375rem;max-width:58ch}
.pg{padding-top:0}
.pg__fig{position:relative;margin:0;background:var(--panel)}
.pg__fig img{position:absolute;inset:-7% 0;width:100%;height:114%;max-width:none;object-fit:cover}
.pg__fig--wide{aspect-ratio:16/9;width:100%}
.pg__fig--tall{aspect-ratio:4/5;width:min(620px,100%)}
.pg__fig--a.pg__fig--tall{margin-left:auto;margin-right:clamp(0rem,6vw,6rem)}
.pg__text{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:1.5rem clamp(2rem,6vw,7rem);margin-block:clamp(4rem,10vw,9rem);align-items:start}
.pg__text h2{font-size:var(--s3);line-height:1.02;max-width:12ch}
.pg__text p{color:var(--muted);max-width:52ch;font-size:1.0625rem}
.pg__pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,4vw,4rem);align-items:start}
.pg__pair .pg__fig{width:100%}
.pg__pair .pg__fig:nth-child(2){margin-top:clamp(3rem,12vw,11rem)}
.pg__pair--one{grid-template-columns:minmax(0,620px);justify-content:center}
.pg__pal-h{margin-top:2.5rem;font:500 var(--s-1)/1.4 var(--sans);letter-spacing:.02em;color:var(--muted)}
.pg__pal{list-style:none;padding:0;margin:1rem 0 0;border-top:1px solid var(--line)}
.pg__pal li{padding:.8rem 0;border-bottom:1px solid var(--line)}
.pg__text--last{margin-bottom:0}
@media (max-width:860px){
  .pg__text{grid-template-columns:1fr}
  .pg__fig--a.pg__fig--tall{margin-right:0}
  .pg__pair{grid-template-columns:1fr}
  .pg__pair .pg__fig:nth-child(2){margin-top:0;width:82%;margin-left:auto}
}
.proj-next__link{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:1rem 3rem;text-decoration:none;color:inherit;padding-bottom:clamp(2rem,4vw,3rem);border-bottom:1px solid var(--line)}
.proj-next__link .kicker{grid-column:1/-1;margin-bottom:0}
.proj-next__name{font:400 clamp(3rem,1rem + 9vw,10rem)/.9 var(--serif);letter-spacing:-.03em;transition:translate .8s var(--ease-out)}
.proj-next__meta{grid-column:1;color:var(--muted)}
.proj-next__img{grid-column:2;grid-row:2/span 2;position:relative;width:clamp(150px,20vw,300px);aspect-ratio:4/5;background:var(--panel)}
.proj-next__img img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:scale 1.2s var(--ease-out)}
@media (hover:hover) and (pointer:fine){.proj-next__link:hover .proj-next__name{translate:1rem 0}.proj-next__link:hover .proj-next__img img{scale:1.06}}
@media (max-width:640px){.proj-next__link{grid-template-columns:1fr}.proj-next__img{grid-column:1;grid-row:auto;width:60%}}
.proj-cta{margin-top:clamp(5rem,10vw,9rem);display:grid;gap:1.5rem;justify-items:start}
.proj-cta p{color:var(--muted);max-width:46ch}

/* legal pages */
.legal__hdr{display:flex;justify-content:space-between;align-items:center;height:var(--header-h)}
.legal__hdr > a:last-child{font-size:.9375rem;color:var(--muted)}
.legal__main{max-width:820px;padding-block:clamp(3rem,8vw,6rem)}
.legal__main h1{font-size:var(--s3);line-height:1.05}
.legal__date{color:var(--muted);margin-top:1rem;font-size:.875rem}
.legal__main section{margin-top:2.5rem;padding-top:2rem;border-top:1px solid var(--line)}
.legal__main h2{font-size:var(--s1)}
.legal__main section p{margin-top:.75rem;color:var(--muted);max-width:68ch}
/* floating WhatsApp button */
.wa{position:fixed;z-index:55;right:max(1rem,env(safe-area-inset-right));bottom:max(1rem,env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#1FA855;color:#fff;text-decoration:none;box-shadow:0 8px 24px rgba(5,12,18,.35);transition:transform .5s var(--ease-out),opacity .4s ease,visibility 0s,background-color .3s ease;-webkit-tap-highlight-color:transparent}
.wa:active{scale:.95}
.wa__tip{position:absolute;right:calc(100% + .75rem);top:50%;translate:0 -50%;white-space:nowrap;background:var(--sail);color:var(--abyss);font-size:.8125rem;line-height:1;padding:.55rem .8rem;border-radius:999px;opacity:0;pointer-events:none;transition:opacity .3s ease}
@media (hover:hover) and (pointer:fine){.wa:hover{transform:translateY(-3px);background:#25D366}.wa:hover .wa__tip{opacity:1}}
.intro .wa,.menu-open .wa{opacity:0;visibility:hidden;pointer-events:none}
@media (max-width:560px){.wa{width:52px;height:52px}.wa svg{width:26px;height:26px}.wa__tip{display:none}}
@media (prefers-reduced-motion:reduce){.wa{transition:none}}

.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

.svc__panel h3 a,.rows h3 a{color:inherit;text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/0 1px no-repeat;transition:background-size .3s}
.svc__panel h3 a:hover,.rows h3 a:hover,.svc__panel h3 a:focus-visible,.rows h3 a:focus-visible{background-size:100% 1px}
.svc-others{display:flex;flex-wrap:wrap;gap:.75rem 1.5rem;align-items:baseline;margin-top:clamp(2.5rem,6vw,4.5rem);padding-top:1.5rem;border-top:1px solid rgba(236,237,232,.18)}
.svc-others a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(236,237,232,.4)}
.svc-others a:hover{border-color:currentColor}
