/* ==========================================================================
   Caferia theme styles
   Fonts are bundled with the theme under the SIL Open Font License
   (see assets/fonts/OFL-*.txt): Anton, DM Sans, Fraunces, Mrs Saint Delafield.
   ========================================================================== */
@font-face{font-family:'Anton';src:url(../fonts/anton-regular.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url(../fonts/dmsans.woff2) format('woff2');font-weight:100 1000;font-style:normal;font-display:swap}
@font-face{font-family:'DM Sans';src:url(../fonts/dmsans-italic.woff2) format('woff2');font-weight:100 1000;font-style:italic;font-display:swap}
@font-face{font-family:'Fraunces';src:url(../fonts/fraunces.woff2) format('woff2');font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url(../fonts/fraunces-italic.woff2) format('woff2');font-weight:100 900;font-style:italic;font-display:swap}
@font-face{font-family:'Mrs Saint Delafield';src:url(../fonts/mrssaintdelafield.woff2) format('woff2');font-weight:400;font-style:normal;font-display:swap}



:root{
  --ink:#16110E; --ink-2:#3A2F28; --paper:#FFF9F1; --cream:#F6ECDF;
  --peach:#F5BBA5; --clay:#E2583A; --clay-2:#C23F25; --butter:#F6C744;
  --pistachio:#C5DC6E; --blush:#F7D3CB; --sky:#A9CBE8; --muted:#74665D;
  --line:rgba(22,17,14,.14); --line-light:rgba(246,236,223,.18);
  --hdr:72px; --ease:cubic-bezier(.2,.7,.1,1);
  --f-display:'Anton', Impact, 'Arial Narrow', 'Helvetica Neue', sans-serif;
  --f-serif:'Fraunces', Georgia, 'Times New Roman', serif;
  --f-sans:'DM Sans', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;
  --f-script:'Mrs Saint Delafield', 'Brush Script MT', cursive;
  --brush:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 600 140' preserveAspectRatio='none'%3E%3Cpath fill-rule='evenodd' d='M46.0 35.3 C51.9 35.6 69.7 36.2 81.6 36.8 C93.4 37.4 105.3 38.7 117.1 38.9 C129.0 39.2 140.9 38.2 152.7 38.2 C164.6 38.2 176.4 38.6 188.3 38.8 C200.1 39.0 212.0 39.4 223.9 39.3 C235.7 39.1 247.6 38.0 259.4 37.9 C271.3 37.8 283.1 38.5 295.0 38.5 C306.9 38.6 318.7 38.3 330.6 38.2 C342.4 38.1 354.3 38.5 366.1 37.8 C378.0 37.2 389.9 35.2 401.7 34.5 C413.6 33.9 425.4 34.4 437.3 34.0 C449.1 33.6 461.0 32.2 472.9 32.1 C484.7 32.0 496.6 33.3 508.4 33.2 C520.3 33.1 535.7 28.6 544.0 31.7 C552.3 34.9 557.0 45.6 558.0 52.0 C559.0 58.4 549.7 63.7 550.0 70.0 C550.3 76.3 559.3 83.4 560.0 90.0 C560.7 96.6 561.1 106.0 554.0 109.8 C546.9 113.6 529.4 112.3 517.1 112.6 C504.9 112.9 492.6 112.2 480.3 111.8 C468.0 111.3 455.7 110.3 443.4 109.7 C431.1 109.2 418.9 109.3 406.6 108.6 C394.3 108.0 382.0 106.7 369.7 106.0 C357.4 105.3 345.1 104.6 332.9 104.6 C320.6 104.5 308.3 105.8 296.0 105.6 C283.7 105.3 271.4 103.6 259.1 103.2 C246.9 102.8 234.6 103.2 222.3 103.2 C210.0 103.2 197.7 103.3 185.4 103.1 C173.1 103.0 160.9 102.2 148.6 102.3 C136.3 102.5 124.0 103.8 111.7 104.1 C99.4 104.5 87.1 104.1 74.9 104.5 C62.6 104.9 45.1 108.7 38.0 106.6 C30.9 104.5 31.3 98.1 32.0 92.0 C32.7 85.9 41.7 77.3 42.0 70.0 C42.3 62.7 33.3 53.8 34.0 48.0 C34.7 42.2 44.0 37.4 46.0 35.3 Z M162.3 88.2 Q190.8 87.2 219.4 88.6 L215.4 89.7 Q190.8 90.0 165.3 89.7 Z M140.6 94.8 Q203.4 93.8 266.1 95.2 L262.1 96.5 Q203.4 96.8 143.6 96.5 Z M232.8 76.6 Q257.5 75.6 282.1 77.0 L278.1 77.4 Q257.5 77.7 235.8 77.4 Z M157.7 96.0 Q209.5 95.0 261.2 96.4 L257.2 97.0 Q209.5 97.3 160.7 97.0 Z M304.6 88.5 Q337.8 87.5 371.0 88.9 L367.0 89.5 Q337.8 89.8 307.6 89.5 Z M88.2 82.9 Q118.5 81.9 148.8 83.3 L144.8 84.3 Q118.5 84.6 91.2 84.3 Z'/%3E%3Cpath d='M528.0 73.2 L566.5 74.9 L528.0 77.0 Z M528.0 82.4 L560.5 83.8 L528.0 85.5 Z M528.0 103.8 L575.7 106.1 L528.0 108.8 Z M528.0 85.3 L559.2 86.5 L528.0 87.9 Z M528.0 58.5 L573.7 59.3 L528.0 60.2 Z M528.0 65.6 L563.4 67.6 L528.0 70.1 Z M528.0 101.3 L553.0 103.3 L528.0 105.8 Z M60.0 53.4 L22.3 55.5 L60.0 58.1 Z M60.0 102.7 L33.0 104.0 L60.0 105.6 Z M60.0 80.3 L27.7 82.2 L60.0 84.5 Z M60.0 45.6 L9.0 46.8 L60.0 48.2 Z M60.0 88.5 L28.3 89.4 L60.0 90.4 Z M60.0 46.5 L13.5 47.2 L60.0 48.2 Z M60.0 51.4 L22.9 52.9 L60.0 54.8 Z M191.6 27.3 Q257.7 25.8 323.8 27.9 L315.8 29.1 Q257.7 29.6 197.6 29.1 Z M359.4 110.0 Q405.5 108.5 451.6 110.6 L443.6 111.5 Q405.5 112.0 365.4 111.5 Z M82.2 33.0 Q135.3 31.5 188.3 33.6 L180.3 34.8 Q135.3 35.3 88.2 34.8 Z M182.0 114.3 Q231.1 112.8 280.2 114.9 L272.2 115.8 Q231.1 116.3 188.0 115.8 Z M177.8 110.1 Q247.7 108.6 317.6 110.7 L309.6 112.7 Q247.7 113.2 183.8 112.7 Z M123.0 114.0 Q176.5 112.5 230.0 114.6 L222.0 116.5 Q176.5 117.0 129.0 116.5 Z'/%3E%3C/svg%3E");
}
@media (max-width:960px){ :root{ --hdr:64px } }

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--f-sans);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
body.menu-open{overflow:hidden}
body::before{content:"";position:fixed;inset:0;z-index:150;pointer-events:none;opacity:.05;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;cursor:pointer}
h1,h2,h3{text-wrap:balance}
p{text-wrap:pretty}
::selection{background:var(--clay);color:var(--paper)}
:focus-visible{outline:2.5px solid var(--clay);outline-offset:3px}
[id]{scroll-margin-top:calc(var(--hdr) + 12px)}
.wrap{width:100%;max-width:1360px;margin:0 auto;padding:0 clamp(16px,4vw,56px)}
.sec-head>*,.faq-grid>*,.case-hero-in>*,.founder-grid>*,.about-grid>*,.enq>*,.cta-in>*,.next-in>*,.hero-foot>*,.ig-solo>*{min-width:0}
.skip{position:absolute;left:-9999px;top:0}
.skip:focus{left:16px;top:16px;z-index:400;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ---------- type ---------- */
.eyebrow{font:700 12px/1.3 var(--f-sans);letter-spacing:.18em;text-transform:uppercase;margin:0}
.title{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144,"SOFT" 30;text-transform:uppercase;font-size:clamp(40px,6.2vw,92px);line-height:.95;letter-spacing:-.012em;margin:0}
.title.light{color:var(--paper)}
.brush{position:relative;display:inline-block;isolation:isolate;padding:0 .04em}
.brush::before{content:"";position:absolute;z-index:-1;left:-.3em;right:-.3em;top:-.13em;bottom:-.19em;background:var(--b,var(--butter));-webkit-mask:var(--brush) center/100% 100% no-repeat;mask:var(--brush) center/100% 100% no-repeat;transform:rotate(-1.4deg);transform-origin:left center;transition:transform 1s var(--ease) .2s}
.brush.bc{color:var(--ci)}
.us{display:inline-block;color:var(--clay);animation:blink 1.1s steps(1) infinite;margin-left:.02em}
@keyframes blink{50%{opacity:0}}
.lead{font-size:clamp(19px,1.6vw,23px);line-height:1.5}
.sec{padding:clamp(80px,10vw,150px) 0}
.sec.pt-sm{padding-top:clamp(36px,4vw,56px)}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 48px;margin-bottom:clamp(40px,5vw,72px);flex-wrap:wrap}
.sec-sub{max-width:440px;color:var(--muted);font-size:18px;margin:0}
.sec-sub.light{color:rgba(246,236,223,.75)}
.sec-sub a{color:var(--clay-2);font-weight:700;border-bottom:1.5px solid currentColor}
.link-arrow{display:inline-flex;align-items:center;gap:10px;margin-top:18px;font:800 14px var(--f-sans);letter-spacing:.12em;text-transform:uppercase;border-bottom:2px solid var(--ink);padding-bottom:4px}
.link-arrow span{transition:transform .3s var(--ease)}
.link-arrow:hover span{transform:translateX(5px)}

/* ---------- buttons ---------- */
.btn{--bg:var(--ink);--fg:var(--paper);display:inline-flex;align-items:center;justify-content:center;gap:.6em;padding:16px 26px;border-radius:999px;background:var(--bg);color:var(--fg);font:700 15px/1.1 var(--f-sans);letter-spacing:.02em;border:2px solid var(--bg);transition:transform .35s var(--ease),background .3s,color .3s,border-color .3s,box-shadow .35s;white-space:nowrap}
.btn:hover{transform:translateY(-2px);box-shadow:0 14px 28px -14px rgba(22,17,14,.55)}
.btn .arr{display:inline-block;transition:transform .3s var(--ease)}
.btn:hover .arr{transform:translateX(4px)}
.btn-clay{--bg:var(--clay-2);--fg:var(--paper)}
.btn-light{--bg:var(--paper);--fg:var(--ink)}
.btn-line{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn-line:hover{background:var(--ink);color:var(--paper)}
.btn-sm{padding:12px 18px;font-size:14px}
.btn-lg{padding:20px 32px;font-size:17px}

/* ---------- loader, curtain, cursor ---------- */
.loader{position:fixed;inset:0;z-index:300;background:var(--ink);color:var(--paper);display:grid;place-items:center;transition:transform 1s cubic-bezier(.75,0,.2,1)}
.loader.done{transform:translateY(-101%)}
.loader-in{text-align:center;padding:0 24px}
.loader-word{font-family:var(--f-serif);font-weight:800;font-variation-settings:"opsz" 144,"SOFT" 100;font-size:clamp(46px,9vw,108px);letter-spacing:-.035em;line-height:1}
.loader-word b{color:var(--clay);font-weight:800}
.loader-script{font-family:var(--f-script);color:var(--peach);font-size:clamp(38px,5.4vw,62px);line-height:1.1;margin:6px 0 0}
.loader-bar{width:170px;height:2px;background:var(--line-light);margin:26px auto 0;overflow:hidden;border-radius:2px}
.loader-bar i{display:block;height:100%;background:var(--clay);animation:load 1s var(--ease) forwards;transform:translateX(-100%)}
@keyframes load{to{transform:none}}
.curtain{position:fixed;inset:0;z-index:95;background:var(--clay);transform:scaleY(0);pointer-events:none}
.cursor{position:fixed;left:0;top:0;z-index:250;pointer-events:none;display:none;will-change:transform}
.cursor::before{content:"";position:absolute;left:-6px;top:-6px;width:12px;height:12px;border-radius:50%;background:var(--clay);transition:transform .4s var(--ease),background .3s,opacity .3s}
.cursor.link::before{transform:scale(2.4);background:rgba(226,88,58,.3)}
.cursor.view::before{transform:scale(7.4);background:var(--ink)}
.cursor::after{content:"View";position:absolute;left:0;top:0;transform:translate(-50%,-50%) scale(.5);opacity:0;color:var(--paper);font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;transition:opacity .3s,transform .4s var(--ease)}
.cursor.view::after{opacity:1;transform:translate(-50%,-50%) scale(1)}
.cursor.hide::before,.cursor.hide::after{opacity:0}

/* ---------- header & menu ---------- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:80;height:var(--hdr);background:var(--ink);color:var(--paper);transition:box-shadow .35s}
.hdr.scrolled{box-shadow:0 12px 34px -14px rgba(0,0,0,.6)}
.hdr-in{height:100%;display:flex;align-items:center;gap:28px}
.logo{display:inline-flex;align-items:center;gap:10px;font-family:var(--f-serif);font-weight:800;font-variation-settings:"opsz" 72,"SOFT" 100;font-size:26px;letter-spacing:-.03em;line-height:1}
.logo svg{width:36px;height:36px;flex:none;transition:transform .6s var(--ease)}
.logo:hover svg{transform:rotate(-12deg)}
.logo b{color:var(--clay);font-weight:800}
.nav{display:flex;gap:30px;margin-left:auto}
.nav a{position:relative;font:700 13px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;opacity:.8;padding:8px 0;transition:opacity .25s}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--clay);transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.nav a:hover,.nav a.active{opacity:1}
.nav a:hover::after,.nav a.active::after{transform:scaleX(1);transform-origin:left}
.hdr-cta{margin-left:6px}
.burger{display:none;width:46px;height:46px;border-radius:50%;border:1.5px solid var(--line-light);background:transparent;flex-direction:column;align-items:center;justify-content:center;gap:6px;margin-left:auto}
.burger span{display:block;width:18px;height:2px;background:var(--paper);border-radius:2px;transition:transform .4s var(--ease)}
.menu-open .burger span:first-child{transform:translateY(4px) rotate(45deg)}
.menu-open .burger span:last-child{transform:translateY(-4px) rotate(-45deg)}
.menu{position:fixed;inset:0;z-index:70;background:var(--ink);color:var(--paper);padding:calc(var(--hdr) + 28px) 0 28px;display:flex;flex-direction:column;overflow-y:auto;clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path .7s var(--ease),visibility 0s linear .7s}
.menu-open .menu{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .7s var(--ease),visibility 0s}
.menu .wrap{display:flex;flex-direction:column;flex:1}
.menu-links a{display:flex;align-items:baseline;gap:14px;font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(40px,11vw,76px);line-height:1.08;letter-spacing:-.01em;transition:color .25s,transform .4s var(--ease)}
.menu-links a small{font:700 12px var(--f-sans);letter-spacing:.14em;color:var(--peach)}
.menu-links a:hover{color:var(--peach);transform:translateX(8px)}
.menu-foot{margin-top:auto;padding-top:36px;display:grid;gap:6px;color:rgba(246,236,223,.75);font-size:15px}
.menu-foot a{color:var(--paper);font-weight:700}
@media (max-width:960px){.nav,.hdr-cta{display:none}.burger{display:flex}}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--peach);min-height:100vh;min-height:100svh;padding:calc(var(--hdr) + clamp(28px,4vw,48px)) 0 clamp(28px,4vw,48px);overflow:hidden;display:flex;flex-direction:column;isolation:isolate}
.hero::before{content:"";position:absolute;inset:-20% -10% auto auto;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(closest-side,rgba(255,249,241,.55),rgba(255,249,241,0));z-index:-1}
.hero-in{position:relative;z-index:2;display:flex;flex-direction:column;flex:1}
.hero-eyebrow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.hero-eyebrow .dot{color:var(--clay);font-size:9px}
.hero-head{position:relative;margin-top:auto;padding-top:clamp(40px,7vw,90px)}
.hero-title{font-family:var(--f-display);font-weight:400;text-transform:uppercase;font-size:clamp(64px,16.4vw,252px);line-height:.86;letter-spacing:.004em;margin:0;color:var(--ink)}
.hero-title .ln{display:block}
.hero-script{position:absolute;z-index:3;left:clamp(0px,17%,300px);top:46%;margin:0;font-family:var(--f-script);color:var(--paper);font-size:clamp(54px,9.6vw,160px);line-height:1;white-space:nowrap;padding:.15em .35em;transform:rotate(-7deg);pointer-events:none;text-shadow:0 3px 18px rgba(120,40,20,.18);animation:write 1.6s var(--ease) 1.1s both}
@keyframes write{from{clip-path:inset(-30% 100% -30% -10%)}to{clip-path:inset(-30% -10% -30% -10%)}}
.hero-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:24px 40px;margin-top:clamp(28px,4vw,52px);flex-wrap:wrap}
.hero-lede{max-width:540px;font-size:clamp(17px,1.4vw,20px);line-height:1.55;margin:0}
.hero-ctas{display:flex;gap:12px;flex-wrap:wrap}
.pol{position:absolute;z-index:1;margin:0;background:#fff;padding:8px 8px 34px;width:var(--w);box-shadow:0 30px 60px -22px rgba(90,30,15,.5);rotate:var(--r);translate:var(--x,0px) var(--y,0px);transition:translate .7s var(--ease);animation:polin 1.1s var(--ease) var(--d,.5s) both}
@keyframes polin{from{opacity:0;scale:.6}to{opacity:1;scale:1}}
.pol img{width:100%;aspect-ratio:4/5;object-fit:cover;background:var(--cream)}
.pol figcaption{position:absolute;left:0;right:0;bottom:9px;text-align:center;font:700 10.5px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.p1{--w:clamp(112px,13vw,200px);--r:7deg;top:calc(var(--hdr) + 3%);right:5%}
.p2{--w:clamp(100px,10.5vw,168px);--r:-8deg;top:calc(var(--hdr) + 7%);right:25%}
.p3{--w:clamp(112px,12vw,196px);--r:-5deg;bottom:24%;right:3%}
.p4{--w:clamp(100px,10vw,160px);--r:6deg;top:calc(var(--hdr) + 12%);left:44%}
@media (max-width:1100px){.p4{display:none}}
@media (max-width:760px){.p2{display:none}.p1{--w:118px;top:calc(var(--hdr) + 58px);right:14px}.p3{--w:104px;--r:-9deg;bottom:auto;top:calc(var(--hdr) + 150px);right:122px}.hero-title{font-size:24vw}.hero-script{top:40%;left:2%}}
.hero-p{background:var(--pistachio);min-height:auto}
.hero-p .hero-title{font-size:clamp(60px,15vw,230px)}
@media (max-width:760px){.hero-p .hero-title{font-size:19vw}}
.hero-p .hero-script{left:auto;right:4%;top:auto;bottom:-6%;color:var(--clay-2);text-shadow:none}

/* ---------- marquee ---------- */
.marquee{overflow:hidden;background:var(--ink);color:var(--paper);padding:20px 0;user-select:none}
.marquee .mq-track{display:flex;width:max-content;animation:mq 34s linear infinite}
.marquee .item{display:flex;align-items:center;gap:.55em;padding-right:.55em;font-family:var(--f-display);font-size:clamp(28px,3.4vw,52px);line-height:1.1;text-transform:uppercase;letter-spacing:.02em;white-space:nowrap}
.marquee .star{width:.62em;height:.62em;fill:var(--clay);flex:none;animation:spin 6s linear infinite}
@keyframes mq{to{transform:translateX(-50%)}}
@keyframes spin{to{transform:rotate(360deg)}}
.marquee.outline{background:transparent;color:var(--ink);padding:0}
.marquee.outline .mq-track{animation-duration:46s}
.marquee.outline .item{font-size:clamp(68px,11vw,170px);line-height:1}
.marquee.outline .item:nth-child(even){color:transparent;-webkit-text-stroke:2px var(--ink)}

/* ---------- services ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1.5px solid var(--ink)}
.svc{position:relative;padding:38px clamp(22px,2.4vw,36px) 44px;border-bottom:1.5px solid var(--ink);border-right:1.5px solid var(--ink);overflow:hidden;isolation:isolate}
.svc:nth-child(3n){border-right:0}
.svc::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--sb,var(--peach));transform:translateY(101%);transition:transform .6s var(--ease)}
.svc:hover::before{transform:none}
.svc-top{display:flex;justify-content:space-between;align-items:flex-start}
.svc-num{font:700 13px var(--f-sans);letter-spacing:.16em;opacity:.55}
.svc-ico{width:62px;height:62px;color:var(--ink);transition:transform .6s var(--ease)}
.svc:hover .svc-ico{transform:rotate(-10deg) scale(1.08)}
.svc h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 72;text-transform:uppercase;font-size:clamp(23px,2.1vw,29px);line-height:1.02;margin:34px 0 12px}
.svc p{margin:0;color:var(--ink-2);max-width:36ch;font-size:16.5px}
@media (max-width:960px){.svc-grid{grid-template-columns:1fr 1fr}.svc:nth-child(3n){border-right:1.5px solid var(--ink)}.svc:nth-child(2n){border-right:0}}
@media (max-width:620px){.svc-grid{grid-template-columns:1fr}.svc{border-right:0!important}}

/* ---------- work tiles (home) ---------- */
.wgrid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,3.2vw,48px);align-items:start}
.wcol{display:grid;gap:clamp(36px,5vw,72px)}
.wcol-2{padding-top:clamp(0px,10vw,150px)}
.tile{display:block}
.tile-media{position:relative;overflow:hidden;border-radius:8px;background:var(--c,var(--cream))}
.tile-media img{width:100%;aspect-ratio:var(--ar,4/5);object-fit:cover;transition:transform 1.2s var(--ease)}
.tile:hover .tile-media img{transform:scale(1.06)}
.tile-tag{position:absolute;left:16px;top:16px;background:var(--paper);color:var(--ink);font:800 11px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border-radius:999px}
.tile-meta{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:18px 0 14px;border-bottom:1.5px solid var(--ink)}
.tile-meta h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(25px,2.9vw,42px);line-height:1;margin:0;transition:color .3s}
.tile:hover .tile-meta h3{color:var(--clay-2)}
.tile-meta span{font:700 13px var(--f-sans);letter-spacing:.12em;color:var(--muted);white-space:nowrap}
@media (max-width:700px){.wgrid{grid-template-columns:1fr}.wcol-2{padding-top:0}}

/* ---------- about ---------- */
.about{background:var(--cream)}
.about-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(44px,6vw,100px);align-items:center}
.about-media{position:relative;padding-bottom:14%}
.about-media .a1{width:80%;aspect-ratio:4/5;object-fit:cover;border-radius:8px;background:var(--peach)}
.about-media .a2{position:absolute;right:0;bottom:0;width:46%;aspect-ratio:3/4;object-fit:cover;border:10px solid var(--cream);border-radius:10px;background:var(--ink)}
.seal{position:absolute;top:-34px;right:8%;width:clamp(104px,10vw,136px);aspect-ratio:1;transform:rotate(10deg)}
.seal svg{width:100%;height:100%}
.seal-spin{transform-origin:60px 60px;animation:spin 20s linear infinite}
.about-copy p{margin:22px 0 0}
.about-copy .title{margin-top:16px}
.quote{margin:30px 0 0;padding:4px 0 4px 22px;border-left:3px solid var(--clay);font-family:var(--f-serif);font-style:italic;font-weight:500;font-size:clamp(21px,1.9vw,27px);line-height:1.3}
.quote cite{display:block;margin-top:8px;font:700 12px var(--f-sans);font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
@media (max-width:900px){.about-grid{grid-template-columns:1fr}.seal{top:-24px}}

/* ---------- brand wall ---------- */
.wall{display:grid;grid-template-columns:repeat(5,1fr);border-top:1.5px solid var(--ink);border-left:1.5px solid var(--ink)}
.wm{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;min-height:clamp(120px,12vw,168px);padding:18px 12px;border-right:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);color:var(--ink);line-height:.95;transition:background .35s,color .35s}
.wm:hover{background:var(--ink);color:var(--paper)}
.wm small{display:block;font:800 9.5px var(--f-sans);letter-spacing:.3em;margin-top:8px}
.wm-anton{font-family:var(--f-display);font-size:clamp(30px,3vw,44px);letter-spacing:.06em}
.wm-anton.wide{letter-spacing:.22em;font-size:clamp(22px,2.2vw,30px)}
.wm-serif-i{font-family:var(--f-serif);font-style:italic;font-weight:600;font-size:clamp(23px,2.3vw,33px);letter-spacing:-.02em}
.wm-serif-i.heavy{font-weight:900;font-variation-settings:"SOFT" 100,"WONK" 1}
.wm-sans{font-family:var(--f-sans);font-weight:800;font-size:clamp(17px,1.6vw,22px);letter-spacing:.16em}
.wm-round{font-family:var(--f-sans);font-weight:800;font-size:clamp(22px,2.2vw,30px);letter-spacing:.04em}
.wm-script{font-family:var(--f-script);font-size:clamp(46px,4.6vw,66px);line-height:.8}
.wm-wide{font-family:var(--f-serif);font-weight:400;font-size:clamp(15px,1.4vw,19px);letter-spacing:.38em;line-height:1.35}
.wm-heavy{font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144,"SOFT" 100;font-size:clamp(44px,4.4vw,62px)}
.wm-sans-i{font-family:var(--f-sans);font-style:italic;font-weight:800;font-size:clamp(19px,1.9vw,25px);letter-spacing:-.03em;line-height:1.05}
@media (max-width:900px){.wall{grid-template-columns:repeat(2,1fr)}}

/* ---------- stats ---------- */
.stats{background:var(--clay);color:var(--paper);padding:clamp(64px,8vw,112px) 0}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.stat b{display:block;font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144,"SOFT" 60;font-size:clamp(62px,8vw,128px);line-height:.88;letter-spacing:-.035em}
.stat > span{display:block;margin-top:14px;font:800 12.5px var(--f-sans);letter-spacing:.15em;text-transform:uppercase;max-width:17ch}
@media (max-width:800px){.stats-grid{grid-template-columns:1fr 1fr;row-gap:48px}}

/* ---------- values ---------- */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.6vw,40px)}
.val{border-radius:24px;padding:40px clamp(26px,2.6vw,38px) 44px;background:var(--vb);transition:transform .6s var(--ease)}
.val:hover{transform:translateY(-8px) rotate(-.8deg)}
.val-ico{width:76px;height:76px;margin-bottom:34px}
.val h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(27px,2.5vw,36px);line-height:1;margin:0 0 14px}
.val p{margin:0;color:var(--ink-2)}
@media (max-width:900px){.values-grid{grid-template-columns:1fr}}

/* ---------- community ---------- */
.community{padding:clamp(70px,8vw,120px) 0 clamp(80px,9vw,130px);overflow:hidden;border-top:1.5px solid var(--ink)}
.community-in{display:flex;justify-content:space-between;align-items:center;gap:20px 40px;margin-top:clamp(28px,4vw,48px);flex-wrap:wrap}
.community-in p{margin:0;font-size:clamp(19px,1.7vw,24px);max-width:560px}

/* ---------- page heros ---------- */
.page-hero{background:var(--cream);padding:calc(var(--hdr) + clamp(56px,8vw,110px)) 0 clamp(48px,6vw,84px)}
.page-title{font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144,"SOFT" 30;text-transform:uppercase;font-size:clamp(66px,12.4vw,196px);line-height:.86;letter-spacing:-.025em;margin:20px 0 30px}
.page-lede{font-size:clamp(18px,1.6vw,22px);max-width:600px;margin:0}
.page-hero-row{display:flex;justify-content:space-between;align-items:flex-end;gap:28px 48px;flex-wrap:wrap}
.filters{display:flex;flex-wrap:wrap;gap:10px}
.chip{border:1.5px solid var(--ink);background:transparent;border-radius:999px;padding:10px 16px;font:800 12.5px var(--f-sans);letter-spacing:.1em;text-transform:uppercase;transition:background .25s,color .25s}
.chip sup{font-size:10px;margin-left:5px;opacity:.65}
.chip[aria-pressed="true"],.chip:hover{background:var(--ink);color:var(--paper)}

/* ---------- brand cards (work page) ---------- */
.bgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(30px,3.4vw,52px) clamp(16px,2.2vw,32px)}
.bcard{display:block}
.bcard[hidden]{display:none}
.bcard-media{position:relative;overflow:hidden;border-radius:8px;background:var(--c)}
.bcard-media img{width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform 1.2s var(--ease)}
.bcard:hover .bcard-media img{transform:scale(1.06)}
.bcard-badge{position:absolute;left:14px;bottom:14px;background:var(--c);color:var(--ci);font:800 11px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;padding:8px 12px;border-radius:999px}
.bcard-body{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding-top:16px}
.bcard h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(23px,2.1vw,30px);line-height:1;margin:0;transition:color .3s}
.bcard:hover h3{color:var(--clay-2)}
.bcard-arrow{font-size:22px;line-height:1;transition:transform .4s var(--ease)}
.bcard:hover .bcard-arrow{transform:translate(3px,-3px)}
.bcard .handle{margin:4px 0 0;color:var(--muted);font-size:15px;grid-column:1/-1}
.bcard .meta{margin:10px 0 0;font:800 11.5px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;grid-column:1/-1;padding-top:10px;border-top:1.5px solid var(--ink)}
@media (max-width:1000px){.bgrid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.bgrid{grid-template-columns:1fr}}

/* ---------- case study ---------- */
.case-hero{background:var(--c);color:var(--ci);padding:calc(var(--hdr) + clamp(30px,4vw,60px)) 0 clamp(64px,8vw,110px);overflow:hidden}
.case-hero-in{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(36px,6vw,96px);align-items:center}
.back{display:inline-flex;align-items:center;gap:10px;font:800 12.5px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:clamp(32px,5vw,64px);padding:10px 16px;border:1.5px solid currentColor;border-radius:999px;transition:background .3s,color .3s}
.back:hover{background:var(--ci);color:var(--c)}
.case-title{font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144,"SOFT" 30;text-transform:uppercase;font-size:clamp(44px,7vw,116px);line-height:.87;letter-spacing:-.025em;margin:16px 0 22px}
.case-handle{display:inline-block;font:700 16px var(--f-sans);border-bottom:1.5px solid currentColor;padding-bottom:2px}
.case-lede{font-size:clamp(18px,1.5vw,21px);line-height:1.55;max-width:52ch;margin:26px 0 28px}
.tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;padding:0;margin:0}
.tags li{border:1.5px solid currentColor;border-radius:999px;padding:7px 14px;font:800 11.5px var(--f-sans);letter-spacing:.12em;text-transform:uppercase}
.case-media{position:relative;padding:0 0 10% 12%}
.case-media .m1{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px;box-shadow:0 40px 80px -34px rgba(0,0,0,.55);background:rgba(0,0,0,.1)}
.case-media .m2{position:absolute;left:0;bottom:0;width:44%;aspect-ratio:1;object-fit:cover;border:8px solid var(--c);border-radius:10px;background:rgba(0,0,0,.1)}
.case-meta{display:grid;grid-template-columns:repeat(4,1fr);margin:0;border-bottom:1.5px solid var(--ink)}
.case-meta div{padding:24px 18px 24px 0}
.case-meta dt{font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.case-meta dd{margin:0;font-family:var(--f-serif);font-weight:700;font-size:clamp(17px,1.5vw,21px);line-height:1.2}
.notes{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px}
.note{border:1.5px solid var(--ink);border-radius:20px;padding:24px 24px 26px;display:flex;flex-direction:column;justify-content:space-between;gap:30px;min-height:190px;transition:background .35s,color .35s,transform .5s var(--ease)}
.note:hover{transform:translateY(-4px)}
.note .k{font:800 12.5px var(--f-sans);letter-spacing:.1em;text-transform:uppercase;line-height:1.35}
.note .v{font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144,"SOFT" 50;font-size:clamp(40px,4.4vw,68px);line-height:.9;letter-spacing:-.03em}
.note .v.sm{font-size:clamp(28px,2.6vw,38px)}
@media (max-width:600px){.note{min-height:0;gap:22px;padding:20px 20px 22px}}
.note.hl{background:var(--c);color:var(--ci);border-color:var(--c)}
.case-work{background:var(--cream)}
.ig-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,330px),1fr));gap:clamp(18px,2.4vw,32px);align-items:start}
.ig{margin:0;background:var(--paper);border-radius:22px;padding:12px;box-shadow:0 22px 50px -32px rgba(22,17,14,.45)}
.ig-frame{position:relative;border-radius:14px;overflow:hidden;background:#fff;min-height:200px}
.ig iframe{position:relative;z-index:1;display:block;width:100%;height:540px;border:0;background:transparent}
.ig-skel{position:absolute;inset:0;display:grid;place-items:center;font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted);background:linear-gradient(110deg,#f4ece2 30%,#fdf8f2 50%,#f4ece2 70%);background-size:200% 100%;animation:shimmer 1.4s linear infinite}
@keyframes shimmer{to{background-position:-200% 0}}
.ig figcaption{display:grid;gap:6px;padding:14px 8px 6px;font-size:15.5px;line-height:1.45}
.ig .d{font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.ig figcaption a{font-weight:800;color:var(--clay-2);justify-self:start}
.ig-solo{display:grid;grid-template-columns:minmax(0,440px) 1fr;gap:clamp(32px,6vw,96px);align-items:center}
.ig-quote{font-family:var(--f-serif);font-style:italic;font-weight:500;font-size:clamp(26px,3vw,44px);line-height:1.18;letter-spacing:-.01em;margin:18px 0 30px;max-width:22ch}
@media (max-width:820px){.ig-solo{grid-template-columns:1fr}}
.next{display:block;position:relative;background:var(--c);color:var(--ci);padding:clamp(64px,8vw,120px) 0;overflow:hidden}
.next-in{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:24px}
.next .eyebrow{display:block;margin-bottom:14px}
.next-name{display:block;font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(44px,8.4vw,140px);line-height:.88;letter-spacing:-.025em}
.next-arrow{font-size:clamp(46px,7vw,110px);line-height:1;transition:transform .6s var(--ease)}
.next:hover .next-arrow{transform:translateX(16px)}
.next img{position:absolute;z-index:1;right:16%;top:50%;width:min(24vw,300px);aspect-ratio:4/5;object-fit:cover;border-radius:8px;opacity:0;transform:translateY(-50%) rotate(7deg) scale(.85);transition:opacity .5s,transform .7s var(--ease);pointer-events:none}
.next:hover img{opacity:1;transform:translateY(-50%) rotate(7deg) scale(1)}
@media (max-width:900px){.case-hero-in{grid-template-columns:1fr}.case-media{max-width:520px}.case-meta{grid-template-columns:1fr 1fr}.next img{display:none}}

/* ---------- CTA band ---------- */
.cta-band{background:var(--bg,var(--butter));padding:clamp(64px,8vw,110px) 0}
.cta-in{display:flex;justify-content:space-between;align-items:center;gap:28px 48px;flex-wrap:wrap}
.cta-in .title{font-size:clamp(36px,5vw,72px)}
.cta-in p{margin:14px 0 0;font-size:19px;max-width:520px}

/* ---------- team ---------- */
.founder-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,100px);align-items:center}
.founder-art{position:relative;border-radius:32px;overflow:hidden;aspect-ratio:1;background:var(--peach)}
.founder-art svg{width:100%;height:100%;display:block}
.founder-tag{position:absolute;left:20px;top:20px;background:var(--ink);color:var(--paper);font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;padding:9px 14px;border-radius:999px}
.founder-copy .title{font-size:clamp(38px,4.8vw,70px);margin-top:16px}
.founder-copy blockquote{margin:28px 0 0;font-family:var(--f-serif);font-style:italic;font-weight:500;font-size:clamp(24px,2.5vw,36px);line-height:1.2;letter-spacing:-.01em}
.founder-copy p{margin:22px 0 0;color:var(--ink-2)}
.team-sec{background:var(--cream)}
.team-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(30px,3vw,48px) clamp(14px,2vw,28px)}
.tcard{outline-offset:6px;border-radius:20px}
.tcard-art{position:relative;border-radius:20px;overflow:hidden;aspect-ratio:1}
.tcard-art svg{width:100%;height:100%;display:block;transition:transform .9s var(--ease)}
.tcard:hover .tcard-art svg{transform:scale(1.06)}
.tcard-flip{position:absolute;left:10px;right:10px;bottom:10px;background:var(--ink);color:var(--paper);border-radius:14px;padding:11px 14px;transform:translateY(140%);transition:transform .55s var(--ease)}
.tcard:hover .tcard-flip,.tcard:focus .tcard-flip,.tcard:focus-within .tcard-flip{transform:none}
.tcard-flip span{display:block;font:800 9.5px var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--peach)}
.tcard-flip b{display:block;font-family:var(--f-serif);font-weight:700;font-size:16.5px;line-height:1.25;margin-top:2px}
.tcard .nm{margin:18px 0 0;font:800 12px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--clay-2)}
.tcard h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 72;text-transform:uppercase;font-size:clamp(19px,1.7vw,23px);line-height:1.05;margin:18px 0 8px}
.tcard .nm + h3{margin-top:6px}
.tcard p{margin:0;color:var(--ink-2);font-size:15.5px;line-height:1.5}
@media (hover:none){.tcard-flip{transform:none}}
@media (max-width:1000px){.team-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:900px){.founder-grid{grid-template-columns:1fr}.founder-art{max-width:520px}}
.join{background:var(--butter);padding:clamp(80px,10vw,140px) 0;text-align:center}
.join .title{max-width:15ch;margin:0 auto}
.join p{max-width:520px;margin:22px auto 34px;font-size:19px}
.script-kicker{font-family:var(--f-script);color:var(--clay-2);font-size:clamp(48px,6vw,84px);line-height:.9;margin:0 0 6px}

/* ---------- partnerships ---------- */
.tracks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(18px,2.4vw,32px)}
.track{background:var(--cream);border-radius:24px;overflow:hidden;display:flex;flex-direction:column;transition:transform .6s var(--ease)}
.track:hover{transform:translateY(-6px)}
.track-media{position:relative;overflow:hidden}
.track-media img{width:100%;aspect-ratio:16/11;object-fit:cover;background:var(--peach);transition:transform 1.2s var(--ease)}
.track:hover .track-media img{transform:scale(1.05)}
.track-no{position:absolute;right:16px;top:12px;font-family:var(--f-display);font-size:56px;line-height:1;color:var(--paper);text-shadow:0 4px 20px rgba(0,0,0,.35)}
.track-body{padding:28px clamp(22px,2.4vw,32px) 32px;display:flex;flex-direction:column;flex:1}
.track h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(26px,2.4vw,34px);line-height:1;margin:10px 0 12px}
.track-body > p{margin:0;color:var(--ink-2)}
.track ul{padding:0;margin:20px 0 28px;list-style:none;display:grid;gap:10px}
.track li{display:flex;gap:10px;align-items:baseline;font-weight:600}
.track li::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;background:var(--clay);transform:translateY(-1px)}
.track .btn{margin-top:auto;align-self:flex-start}
@media (max-width:960px){.tracks-grid{grid-template-columns:1fr}}
.board{background:var(--ink);color:var(--paper);padding:clamp(84px,10vw,150px) 0;position:relative;overflow:hidden}
.board-script{font-family:var(--f-script);color:var(--peach);font-size:clamp(54px,6.4vw,96px);line-height:.85;margin:0 0 4px}
.board-list{display:grid;grid-template-columns:1fr 1fr;gap:clamp(44px,5vw,72px) clamp(40px,6vw,100px)}
.mi-top{display:flex;align-items:baseline;gap:14px}
.mi h3{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;font-size:clamp(24px,2.4vw,34px);line-height:1.05;margin:0}
.mi .dots{flex:1;min-width:30px;border-bottom:2px dotted rgba(246,236,223,.38);transform:translateY(-7px)}
.mi-price{font:800 12px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--peach);white-space:nowrap}
.mi p{margin:14px 0 14px;color:rgba(246,236,223,.82);max-width:48ch}
.mi ul{display:flex;flex-wrap:wrap;gap:8px;padding:0;margin:0;list-style:none}
.mi li{font:700 11.5px var(--f-sans);letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--line-light);border-radius:999px;padding:7px 12px}
@media (max-width:860px){.board-list{grid-template-columns:1fr}}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:40px 28px;padding:0;margin:0;list-style:none}
.step{border-top:1.5px solid var(--ink);padding-top:24px}
.step-n{display:block;font-family:var(--f-display);font-size:clamp(78px,8.4vw,128px);line-height:.9;color:transparent;-webkit-text-stroke:2px var(--ink);transition:color .4s,-webkit-text-stroke-color .4s}
.step:hover .step-n{color:var(--clay);-webkit-text-stroke-color:var(--clay)}
.step h3{font-family:var(--f-serif);font-weight:850;text-transform:uppercase;font-size:clamp(24px,2.2vw,30px);margin:18px 0 10px;line-height:1}
.step p{margin:0;color:var(--ink-2)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.steps{grid-template-columns:1fr}}
.faq{background:var(--cream)}
.faq-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,90px);align-items:start}
.faq-grid .sec-sub{margin-top:22px}
.faq-grid .title{font-size:clamp(40px,5vw,76px)}
.faq-list{border-top:1.5px solid var(--ink)}
.faq-list details{border-bottom:1.5px solid var(--ink)}
.faq-list summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;padding:24px 0;font-family:var(--f-serif);font-weight:700;font-size:clamp(19px,1.8vw,25px);line-height:1.25}
.faq-list summary::-webkit-details-marker{display:none}
.pm{width:40px;height:40px;flex:none;border-radius:50%;border:1.5px solid var(--ink);display:grid;place-items:center;font:500 22px/1 var(--f-sans);transition:transform .4s var(--ease),background .3s,color .3s}
.faq-list details[open] .pm{transform:rotate(45deg);background:var(--ink);color:var(--paper)}
.faq-list details p{margin:0 0 26px;max-width:62ch;color:var(--ink-2)}
@media (max-width:900px){.faq-grid{grid-template-columns:1fr}}
.enq{background:var(--peach);border-radius:clamp(22px,3vw,36px);padding:clamp(26px,5vw,72px);display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(36px,5vw,80px)}
.enq-copy .title{font-size:clamp(38px,4.8vw,68px);margin-top:16px}
.enq-copy > p{margin:20px 0 0;font-size:18px;max-width:42ch}
.enq-contact{list-style:none;padding:0;margin:34px 0 0;display:grid;gap:14px}
.enq-contact li{display:grid;gap:2px;font-weight:700;font-size:17px}
.enq-contact span{font:800 11px var(--f-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.enq-contact a{border-bottom:1.5px solid transparent;justify-self:start;transition:border-color .25s}
.enq-contact a:hover{border-color:currentColor}
.form{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.field{display:grid;gap:8px;align-content:start;min-width:0;border:0;padding:0;margin:0}
.field.full{grid-column:1/-1}
.field label,.legend{font:800 11.5px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;padding:0;margin:0 0 8px}
.field input,.field select,.field textarea{font:500 16px var(--f-sans);color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:14px;padding:14px 16px;width:100%;transition:box-shadow .2s,border-color .2s}
.field input:focus,.field select:focus,.field textarea:focus{outline:none;box-shadow:0 0 0 4px rgba(22,17,14,.16)}
.field textarea{min-height:130px;resize:vertical}
.field .err{display:none;color:#8E1B0C;font-size:13.5px;font-weight:700}
.field.bad input,.field.bad textarea{border-color:#B3261E;box-shadow:0 0 0 3px rgba(179,38,30,.16)}
.field.bad .err{display:block}
.opts{display:flex;flex-wrap:wrap;gap:8px}
.opt{position:relative}
.opt input{position:absolute;opacity:0;width:1px;height:1px}
.opt span{display:inline-block;border:1.5px solid var(--ink);border-radius:999px;padding:9px 15px;font:700 13.5px var(--f-sans);cursor:pointer;background:var(--paper);transition:background .2s,color .2s}
.opt input:checked + span{background:var(--ink);color:var(--paper)}
.opt input:focus-visible + span{outline:2.5px solid var(--clay-2);outline-offset:2px}
.form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:6px}
.form-foot small{color:var(--ink-2);font-size:13.5px}
.success{background:var(--paper);border-radius:24px;padding:clamp(28px,4vw,48px);text-align:left}
.success .title{font-size:clamp(34px,4vw,56px)}
.success p{margin:16px 0 0;font-size:18px}
@media (max-width:900px){.enq{grid-template-columns:1fr}}
@media (max-width:560px){.form{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.ftr{background:var(--ink);color:var(--paper);padding-top:clamp(80px,10vw,140px);overflow:hidden}
.ftr-cta{text-align:center;padding-bottom:clamp(64px,8vw,110px);border-bottom:1px solid var(--line-light)}
.ftr-cta .eyebrow{color:var(--peach)}
.ftr-title{font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144,"SOFT" 30;text-transform:uppercase;font-size:clamp(44px,7vw,112px);line-height:.95;letter-spacing:-.015em;margin:20px auto 44px;max-width:15ch}
.script-inline{font-family:var(--f-script);text-transform:none;font-weight:400;color:var(--peach);font-size:1.35em;line-height:0;display:inline-block;transform:translateY(.12em);letter-spacing:0}
.ftr-grid{display:grid;grid-template-columns:1.6fr 1fr 1.2fr 1.2fr;gap:40px;padding:64px 0}
.ftr-about p{color:rgba(246,236,223,.72);margin:20px 0 0;max-width:36ch;font-size:16px}
.ftr h4{font:800 11.5px var(--f-sans);letter-spacing:.18em;text-transform:uppercase;color:var(--peach);margin:6px 0 18px}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:16px}
.ftr ul a{color:rgba(246,236,223,.88);transition:color .25s}
.ftr ul a:hover{color:var(--peach)}
.ftr-bottom{display:flex;justify-content:space-between;gap:12px 24px;flex-wrap:wrap;padding:24px 0;border-top:1px solid var(--line-light);font-size:14px;color:rgba(246,236,223,.6)}
.ftr-giant{font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144,"SOFT" 100;font-size:20.5vw;line-height:.78;letter-spacing:-.055em;text-align:center;color:transparent;-webkit-text-stroke:1.2px rgba(246,236,223,.2);white-space:nowrap;margin:8px 0 -.05em;user-select:none}
@media (max-width:900px){.ftr-grid{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.ftr-grid{grid-template-columns:1fr}}

/* ---------- floating chat ---------- */
.fab{position:fixed;right:clamp(14px,2vw,24px);bottom:clamp(14px,2vw,24px);z-index:60;width:58px;height:58px;border-radius:50%;background:#25D366;color:#fff;display:grid;place-items:center;box-shadow:0 14px 30px -10px rgba(0,0,0,.45);transition:transform .35s var(--ease)}
.fab:hover{transform:scale(1.08)}
.fab svg{width:28px;height:28px}
.fab-label{position:absolute;right:70px;background:var(--ink);color:var(--paper);font:700 13px var(--f-sans);padding:9px 13px;border-radius:999px;white-space:nowrap;opacity:0;transform:translateX(8px);transition:.3s var(--ease);pointer-events:none}
.fab:hover .fab-label{opacity:1;transform:none}

/* ---------- reveal ---------- */
.nf{min-height:80vh;display:flex;align-items:center}
#app:focus{outline:none}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  .js [data-r]{opacity:1;transform:none}
  .marquee .mq-track{animation:none}
}

/* a photo that can't load leaves its coloured block instead of a broken icon */
img.img-x{visibility:hidden}

/* footer headline: the script word sits on its own line */
.ftr-title .script-inline{display:block;line-height:.82;transform:none;margin:.04em 0 .02em}
/* phones: keep the longest hero word inside the screen even before fitting runs */
@media (max-width:760px){.hero-title{font-size:21.5vw}}
/* if a photo can't load (offline, blocked), don't print its description over the colour block */
.pol img,.tile-media img,.bcard-media img,.case-media img,.track-media img,.about-media img,.next img{color:transparent}
/* the small script kickers read better a touch larger */
.script-kicker{font-size:clamp(60px,7.4vw,104px)}

/* ==========================================================================
   WordPress additions
   ========================================================================== */

/* ---------- reveal on scroll (only while the theme script runs) ----------
   html.js is set in <head>; main.js adds .cf-ready. If the script never
   runs, everything is shown after a moment. */
.js [data-r]{opacity:0;transform:translateY(30px);transition:opacity .9s var(--ease),transform 1s var(--ease);transition-delay:var(--d,0s)}
.js [data-r].in{opacity:1;transform:none}
.js [data-r]:not(.in) .brush::before{transform:rotate(-1.4deg) scaleX(0)}
.js:not(.cf-ready) [data-r]{animation:cfShow .01s linear 2.5s forwards}
.js:not(.cf-ready) [data-r] .brush::before{animation:cfBrush .01s linear 2.5s forwards}
@keyframes cfShow{to{opacity:1;transform:none}}
@keyframes cfBrush{to{transform:rotate(-1.4deg)}}

/* ---------- intro screen: first page of a visit only ---------- */
.loader{display:none}
.cf-first .loader{display:grid;animation:loaderSafety .01s linear 4.5s forwards}
@keyframes loaderSafety{to{transform:translateY(-101%);visibility:hidden}}

/* ---------- page curtain ---------- */
.cf-arrive .curtain{transform:scaleY(1);transform-origin:50% 0%}
.cf-arrive:not(.cf-ready) .curtain{animation:curtainSafety .01s linear 2s forwards}
@keyframes curtainSafety{to{transform:scaleY(0)}}

/* the mobile menu also opens without scripts (the burger links to #menu) */
html:not(.cf-ready) .menu:target{clip-path:inset(0 0 0 0);visibility:visible;transition:clip-path .7s var(--ease),visibility 0s}

[hidden]{display:none!important}

/* ---------- admin bar ---------- */
.admin-bar .hdr{top:32px}
.admin-bar .menu{padding-top:calc(var(--hdr) + 60px)}
.admin-bar [id]{scroll-margin-top:calc(var(--hdr) + 44px)}
@media screen and (max-width:782px){
  .admin-bar .hdr{top:46px}
  .admin-bar .menu{padding-top:calc(var(--hdr) + 74px)}
}
@media screen and (max-width:600px){
  .admin-bar .hdr{top:0}
}

/* ---------- logo ---------- */
.logo--custom img{display:block;max-height:46px;width:auto}
@media (max-width:960px){.logo--custom img{max-height:40px}}
.ftr .logo--custom img{max-height:52px}

/* ---------- filters as links ---------- */
.chip{display:inline-flex;align-items:center;cursor:pointer;color:var(--ink)}
.chip.is-active{background:var(--ink);color:var(--paper)}

/* ---------- team photos ---------- */
.tcard-art img,.founder-art img{display:block;width:100%;height:100%;object-fit:cover}

/* ---------- enquiry form ---------- */
.hp-field{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-alert{grid-column:1/-1;margin:0;border-radius:14px;padding:14px 16px;font-weight:700;font-size:15px;background:var(--paper);border:1.5px solid #B3261E;color:#8E1B0C}
.form .btn[disabled]{opacity:.65;cursor:progress;transform:none;box-shadow:none}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='none' stroke='%2316110E' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round' d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;background-size:20px;padding-right:44px}
.success [data-name]:not(:empty)::before{content:", "}

/* ---------- empty states ---------- */
.empty-note{font-size:19px;max-width:620px}
.empty-note a{color:var(--clay-2);font-weight:700;border-bottom:1.5px solid currentColor}
.empty-note .search-form{margin-top:22px}

/* ---------- generic pages and posts ---------- */
.page-hero--sm{padding-bottom:clamp(36px,4vw,56px)}
.page-title.sm{font-size:clamp(44px,7vw,112px);line-height:.92;margin:16px 0 22px}
.page-hero .page-lede a{color:var(--clay-2);font-weight:700}
.entry-cover{margin:0 0 clamp(32px,4vw,56px)}
.entry-cover img{display:block;width:100%;height:auto;max-height:640px;object-fit:cover;border-radius:8px}
.fullwidth-content{padding-top:var(--hdr)}
.page-extra{padding-top:0}
.case-story{padding-bottom:0}
.case-story .sec-head{margin-bottom:clamp(24px,3vw,40px)}

.prose{max-width:720px;font-size:18px;line-height:1.7;color:var(--ink-2)}
.prose.center{margin-left:auto;margin-right:auto}
.prose>*{margin-top:0;margin-bottom:0}
.prose>*+*{margin-top:1.15em}
.prose h2,.prose h3,.prose h4{color:var(--ink);font-family:var(--f-serif);font-weight:850;font-variation-settings:"opsz" 144;text-transform:uppercase;line-height:1.02;letter-spacing:-.01em;margin-top:1.7em}
.prose h2{font-size:clamp(30px,3.4vw,46px)}
.prose h3{font-size:clamp(23px,2.4vw,31px)}
.prose h4{font-size:20px}
.prose a{color:var(--clay-2);font-weight:700;text-decoration:none;border-bottom:1.5px solid currentColor}
.prose strong{color:var(--ink)}
.prose ul,.prose ol{padding-left:1.25em}
.prose li+li{margin-top:.4em}
.prose blockquote{margin-left:0;margin-right:0;padding:4px 0 4px 22px;border-left:3px solid var(--clay);font-family:var(--f-serif);font-style:italic;font-weight:500;font-size:clamp(21px,1.9vw,27px);line-height:1.3;color:var(--ink)}
.prose blockquote p{margin:0}
.prose blockquote cite{display:block;margin-top:8px;font:700 12px var(--f-sans);font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.prose img{max-width:100%;height:auto;border-radius:8px}
.prose figure{margin-left:0;margin-right:0}
.prose figcaption,.wp-caption-text{font-size:14px;color:var(--muted);margin-top:8px}
.prose hr{border:0;border-top:1.5px solid var(--ink);margin:2.4em 0}
.prose table{width:100%;border-collapse:collapse;font-size:16px}
.prose th,.prose td{border-bottom:1px solid var(--line);padding:10px 8px;text-align:left;vertical-align:top}
.prose pre{overflow:auto;background:var(--cream);padding:16px 18px;border-radius:12px;font-size:15px;line-height:1.55}
.prose code{background:var(--cream);padding:.1em .35em;border-radius:5px;font-size:.92em}
.prose pre code{background:none;padding:0}
.prose .wp-block-button__link,.prose .wp-element-button{display:inline-flex;align-items:center;gap:.6em;padding:16px 26px;border-radius:999px;background:var(--ink);color:var(--paper);border:0;font:700 15px/1.1 var(--f-sans);text-decoration:none}
.prose .wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:var(--ink);border:2px solid var(--ink)}
.prose .alignwide{width:min(1240px,calc(100vw - 2*clamp(16px,4vw,56px)));max-width:none;margin-left:50%;translate:-50% 0}
.prose .alignfull{width:100vw;max-width:100vw;margin-left:50%;translate:-50% 0}
.prose .alignfull img,.prose .alignwide img{width:100%;border-radius:0}
.prose iframe,.prose video,.prose embed{max-width:100%}
.prose .wp-block-embed__wrapper{position:relative}
.alignleft{float:left;margin:.3em 1.4em 1em 0}
.alignright{float:right;margin:.3em 0 1em 1.4em}
.aligncenter{display:block;margin-left:auto;margin-right:auto}
.wp-caption{max-width:100%}
.gallery-caption,.bypostauthor,.sticky{display:block}
.has-ink-color{color:#16110E}.has-paper-color{color:#FFF9F1}.has-cream-color{color:#F6ECDF}.has-peach-color{color:#F5BBA5}.has-clay-color{color:#C23F25}.has-butter-color{color:#F6C744}.has-pistachio-color{color:#C5DC6E}.has-blush-color{color:#F7D3CB}.has-sky-color{color:#A9CBE8}
.has-ink-background-color{background-color:#16110E}.has-paper-background-color{background-color:#FFF9F1}.has-cream-background-color{background-color:#F6ECDF}.has-peach-background-color{background-color:#F5BBA5}.has-clay-background-color{background-color:#C23F25}.has-butter-background-color{background-color:#F6C744}.has-pistachio-background-color{background-color:#C5DC6E}.has-blush-background-color{background-color:#F7D3CB}.has-sky-background-color{background-color:#A9CBE8}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.screen-reader-text:focus{clip:auto;width:auto;height:auto;margin:0;z-index:400;background:var(--ink);color:var(--paper);padding:10px 14px;border-radius:8px;left:16px;top:16px}

.page-links{margin-top:2em;font-weight:700;display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.entry-tags{display:flex;flex-wrap:wrap;gap:8px}
.entry-tags a{border:1.5px solid var(--ink);border-radius:999px;padding:6px 13px;font:800 11.5px var(--f-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink)}

/* post cards reuse the brand cards */
.pcard .bcard-media.no-img{aspect-ratio:4/5;display:grid;place-items:center;background:var(--peach)}
.bcard-ph{font-family:var(--f-serif);font-weight:900;font-variation-settings:"opsz" 144;font-size:clamp(96px,12vw,170px);line-height:1;color:var(--ink);opacity:.9;text-transform:uppercase}
.pcard .handle{color:var(--ink-2)}

/* pagination and post navigation */
.pagination,.post-navigation,.comments-pagination{margin-top:clamp(40px,5vw,72px)}
.nav-links{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.pagination .page-numbers{display:inline-grid;place-items:center;min-width:46px;height:46px;padding:0 14px;border:1.5px solid var(--ink);border-radius:999px;font:800 14px var(--f-sans)}
.pagination .page-numbers.current,.pagination a.page-numbers:hover{background:var(--ink);color:var(--paper)}
.pagination .dots{border:0}
.post-navigation .nav-links{justify-content:space-between;border-top:1.5px solid var(--ink);padding-top:24px;gap:24px}
.post-navigation a{display:grid;gap:6px;max-width:420px}
.post-navigation .nav-next{margin-left:auto;text-align:right}
.post-navigation .nav-title{font-family:var(--f-serif);font-weight:850;text-transform:uppercase;font-size:clamp(20px,2vw,26px);line-height:1.05}

/* search form */
.search-form{display:flex;gap:10px;max-width:520px}
.search-form input[type=search]{flex:1;min-width:0;font:500 16px var(--f-sans);color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:999px;padding:12px 18px}

/* comments */
.comments-sec{padding-top:0}
.comments-title,.comment-reply-title{font-family:var(--f-serif);font-weight:850;text-transform:uppercase;font-size:clamp(26px,2.8vw,38px);line-height:1;color:var(--ink)}
.comment-list{list-style:none;padding:0}
.comment-list .children{list-style:none;padding-left:clamp(16px,4vw,48px)}
.comment-body{border-top:1.5px solid var(--line);padding:22px 0}
.comment-meta{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;font-size:14px}
.comment-meta img{border-radius:50%}
.comment-author .fn{font-weight:800;color:var(--ink)}
.comment-metadata a{color:var(--muted);border:0;font-weight:500}
.comment-content{margin-top:10px}
.reply a{font:800 12px var(--f-sans);letter-spacing:.12em;text-transform:uppercase}
.comment-form{display:grid;gap:14px}
.comment-form label{display:block;font:800 11.5px var(--f-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink);margin-bottom:6px}
.comment-form input[type=text],.comment-form input[type=email],.comment-form input[type=url],.comment-form textarea{width:100%;font:500 16px var(--f-sans);color:var(--ink);background:var(--paper);border:1.5px solid var(--ink);border-radius:14px;padding:14px 16px}
.comment-form .comment-form-cookies-consent{display:flex;gap:10px;align-items:flex-start}
.comment-form .comment-form-cookies-consent label{text-transform:none;letter-spacing:0;font:500 15px var(--f-sans)}

@media (max-width:760px){
  .search-form{flex-direction:column}
}

/* brands without a photo yet: a colour block with the first letter */
.bcard-media.no-img,.tile-media.no-img{display:grid;place-items:center}
.bcard-media.no-img{aspect-ratio:4/5}
.tile-media.no-img{aspect-ratio:var(--ar,4/5)}
.bcard-media.no-img .bcard-ph,.tile-media.no-img .bcard-ph{color:var(--ci,var(--ink))}
.tile-media.no-img .bcard-ph{color:var(--ink)}
