/* invent.sale — Rishtan glaze palette on mineral paper */
:root{
  --paper:#eef0ee;--paper2:#e4e8e5;--ink:#0d1110;--graph:#59605d;--line:rgba(13,17,16,.13);
  --saffron:#e0a321;--turq:#2f8f8a;--lapis:#2c4da0;--clay:#b4532f;--pom:#9b2f45;
  --sans:'Commissioner',system-ui,sans-serif;--mono:'IBM Plex Mono',ui-monospace,monospace;
  --pad:clamp(20px,4vw,64px);--ease:cubic-bezier(.22,1,.36,1);
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
html.lenis,html.lenis body{height:auto}
body{font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.5;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;overflow-x:hidden}
a{color:inherit;text-decoration:none}
img,svg,canvas{display:block}
.skip{position:absolute;left:-999px;top:8px;background:var(--ink);color:#fff;padding:8px 14px;z-index:200}.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--saffron);outline-offset:3px}

/* cursor dot */
.dot{position:fixed;left:0;top:0;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:50%;background:var(--ink);z-index:150;pointer-events:none;transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),background .3s;mix-blend-mode:normal}
.dot.big{width:44px;height:44px;margin:-22px 0 0 -22px;background:rgba(224,163,33,.35)}
@media (hover:none),(prefers-reduced-motion:reduce){.dot{display:none}}

/* header */
.hd{position:fixed;inset:0 0 auto;z-index:100;display:flex;align-items:center;gap:28px;padding:20px var(--pad);transition:background .4s,padding .4s}
.hd.solid{background:rgba(238,240,238,.82);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding-top:14px;padding-bottom:14px}
.logo{display:flex;align-items:center;gap:10px}
.logo svg{width:30px;height:30px;color:var(--ink)}
.logo span{font-size:21px;font-weight:500;letter-spacing:-.03em}.logo i{font-style:normal;font-weight:300;opacity:.5}
.hd-nav{display:flex;gap:26px;margin-left:auto;font-size:13px;font-family:var(--mono);text-transform:uppercase;letter-spacing:.06em}
.hd-nav a{opacity:.7;transition:opacity .3s}.hd-nav a:hover{opacity:1}
.hd-cta{font-size:14px;font-weight:500;padding:9px 18px;border-radius:99px;border:1px solid var(--ink);transition:background .3s,color .3s}
.hd-cta:hover{background:var(--ink);color:var(--paper)}
.hero-dark .hd:not(.solid){color:#fff}.hero-dark .hd:not(.solid) .logo svg{color:#fff}.hero-dark .hd:not(.solid) .hd-cta{border-color:#fff}

/* hero: ridgeline field that shrinks into a card on scroll */
.hero{height:170vh;position:relative}
.hero-stage{position:sticky;top:0;height:100vh;overflow:hidden;background:var(--ink);transform-origin:50% 40%;will-change:transform,filter}
#ridges{position:absolute;inset:0;width:100%;height:100%}
.hero-t{position:absolute;left:var(--pad);bottom:clamp(40px,8vh,90px);display:flex;flex-direction:column;color:#fff;font-weight:300;font-size:clamp(34px,4.4vw,68px);line-height:1.05;letter-spacing:-.035em}
.hero-t span:last-child{color:rgba(255,255,255,.55)}
.hero-scroll{position:absolute;right:var(--pad);bottom:clamp(40px,8vh,90px);font-family:var(--mono);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.6)}
.hero-scroll::after{content:"";display:block;width:1px;height:46px;margin:12px auto 0;background:rgba(255,255,255,.4);animation:drip 2.2s var(--ease) infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}

.eyebrow{font-family:var(--mono);font-size:12.5px;letter-spacing:.2em;text-transform:uppercase;text-align:center;color:var(--graph)}
main>.eyebrow{margin:clamp(30px,6vh,70px) var(--pad) clamp(50px,8vh,100px)}

/* glazed ceramic cards */
.glaze{position:relative;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:var(--paper2);isolation:isolate}
.glaze::after{content:"";position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.35'/%3E%3C/svg%3E");mix-blend-mode:multiply;opacity:.5}
.glaze i{position:absolute;border-radius:50%;filter:blur(30px);animation:float 14s ease-in-out infinite alternate}
.glaze i:first-child{width:62%;height:82%;left:10%;top:8%;background:var(--a)}
.glaze i:last-child{width:46%;height:60%;right:6%;bottom:-6%;background:var(--b);animation-duration:18s;animation-direction:alternate-reverse}
@keyframes float{to{transform:translate(12%,-8%) scale(1.12)}}
.g-saffron{--a:#f2c45a;--b:#b4532f}.g-lapis{--a:#5f86e0;--b:#2f8f8a}.g-turq{--a:#58c2b6;--b:#e0a321}.g-clay{--a:#e08a62;--b:#9b2f45}
.glaze.sm{aspect-ratio:16/9;border-radius:16px;margin-bottom:24px}

.row{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,110px);align-items:center;padding:clamp(40px,6vh,80px) var(--pad);max-width:1320px;margin:0 auto}
.row-t h2,.pair h3,.eco-h h2,.flow h2{font-weight:300;letter-spacing:-.03em;line-height:1.08}
.row-t h2{font-size:clamp(30px,3vw,46px);margin-bottom:20px}
.row-t p{color:var(--graph);max-width:520px;margin-bottom:28px}
.pill,.pill-o{display:inline-flex;align-items:center;justify-content:center;font-size:14.5px;font-weight:500;padding:12px 24px;border-radius:99px;transition:background .3s,color .3s,transform .4s var(--ease)}
.pill{background:var(--ink);color:var(--paper)}.pill:hover{transform:translateY(-2px)}
.pill-o{border:1px solid currentColor}.pill-o:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* introducing: notch tab + product object */
.intro{position:relative;margin-top:clamp(70px,10vh,130px);padding:clamp(120px,14vh,170px) var(--pad) clamp(90px,12vh,140px);display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,6vw,100px);align-items:center;overflow:hidden}
.intro-bg{position:absolute;inset:0;z-index:-1;background:radial-gradient(40% 50% at 20% 30%,rgba(242,196,90,.55),transparent 70%),radial-gradient(45% 55% at 85% 70%,rgba(47,143,138,.35),transparent 70%),radial-gradient(60% 60% at 60% 20%,rgba(95,134,224,.25),transparent 70%),#dfe3e0}
.notch{position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--paper);padding:14px 56px 18px;border-radius:0 0 28px 28px;font-family:var(--mono);font-size:12.5px;letter-spacing:.24em;text-transform:uppercase;z-index:2}
.notch::before,.notch::after{content:"";position:absolute;top:0;width:28px;height:28px;background:radial-gradient(circle at 0 100%,transparent 27px,var(--paper) 28px)}
.notch::before{left:-28px;background:radial-gradient(circle at 0 100%,transparent 27.5px,var(--paper) 28px)}
.notch::after{right:-28px;background:radial-gradient(circle at 100% 100%,transparent 27.5px,var(--paper) 28px)}
.cycle{justify-self:center;width:min(460px,100%);background:rgba(255,255,255,.72);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);border-radius:26px;padding:26px 26px 18px;box-shadow:0 40px 90px rgba(13,17,16,.16),inset 0 0 0 1px rgba(255,255,255,.6)}
.cy-h{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}.cy-h b{font-weight:500;font-size:20px}.cy-h span{font-family:var(--mono);font-size:12.5px;color:var(--graph)}
.cycle ol{list-style:none;display:grid}
.cycle li{display:grid;grid-template-columns:120px auto 1fr;gap:4px 14px;align-items:baseline;padding:11px 0;border-top:1px solid var(--line);opacity:.25;transition:opacity .5s ease}
.cycle li.lit{opacity:1}
.cycle li span{font-size:13px;color:var(--graph)}
.cycle li b{font-family:var(--mono);font-weight:500;font-size:17px}
.cycle li em{font-style:normal;font-size:12.5px;color:var(--graph);text-align:right}
.cycle li.warn b{color:var(--clay)}.cycle li.ok b{color:var(--turq)}
.intro-t h2{font-size:clamp(46px,6vw,96px);font-weight:300;letter-spacing:-.045em;line-height:.95;margin-bottom:24px}
.intro-t p{font-size:clamp(16px,1.25vw,19px);max-width:520px;margin-bottom:30px;color:#2b3230}

.pair{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,80px);padding:clamp(90px,12vh,140px) var(--pad);max-width:1320px;margin:0 auto}
.pair h3{font-size:clamp(24px,2.2vw,32px);margin-bottom:12px}.pair p{color:var(--graph);max-width:520px}

/* signal words: scrubbed highlight */
.words{padding:clamp(60px,10vh,120px) var(--pad);background:var(--ink);color:#fff}
.words .eyebrow{color:rgba(255,255,255,.5);margin-bottom:40px}
.wl{list-style:none;display:flex;flex-direction:column;align-items:center;gap:4px}
.wl li{font-size:clamp(38px,6.4vw,104px);font-weight:300;letter-spacing:-.045em;line-height:1.02;color:rgba(255,255,255,.12);transition:color .5s ease}
.wl li.on{color:#fff}.wl li.on:nth-child(odd){color:var(--saffron)}

/* ecosystem */
.eco{padding:clamp(100px,14vh,160px) var(--pad);max-width:1320px;margin:0 auto}
.eco-h{text-align:center;max-width:760px;margin:0 auto clamp(50px,7vh,80px)}
.eco-h h2{font-size:clamp(34px,4vw,62px);margin:16px 0 18px}.eco-h>p:last-child{color:var(--graph)}
.pr{border-top:1px solid var(--line)}.pr:last-child{border-bottom:1px solid var(--line)}
.pr summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:44px 170px 1fr auto;gap:20px;align-items:center;padding:26px 0}
.pr summary::-webkit-details-marker{display:none}
.pr-sw{width:34px;height:34px;border-radius:50%;background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.7),transparent 45%),var(--c);box-shadow:inset 0 -4px 8px rgba(0,0,0,.18);transition:transform .5s var(--ease)}
.pr[open] .pr-sw,.pr summary:hover .pr-sw{transform:scale(1.18)}
.pr b{font-size:clamp(26px,2.4vw,36px);font-weight:400;letter-spacing:-.03em}
.pr-d{color:var(--graph);font-size:16px}
.st{font-style:normal;font-family:var(--mono);font-size:12px;letter-spacing:.06em;text-transform:uppercase;padding:5px 11px;border-radius:99px;border:1px solid var(--line);color:var(--graph);white-space:nowrap}
.st-on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.st-soon{border-style:dashed}
.pr-b{display:grid;grid-template-columns:1fr 1fr;gap:30px;padding:0 0 30px 234px;overflow:hidden}
.pr-b p{color:#2b3230}
.pr-b ul{list-style:none;display:grid;gap:8px}
.pr-b li{font-size:15px;color:var(--graph);padding-left:18px;position:relative}
.pr-b li::before{content:"";position:absolute;left:0;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--c)}

/* workflow */
.flow{padding:clamp(80px,12vh,140px) var(--pad);background:var(--paper2)}
.flow h2{text-align:center;font-size:clamp(32px,3.6vw,56px);margin:16px auto clamp(50px,7vh,80px);max-width:820px}
.fl{list-style:none;display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,48px);max-width:1200px;margin:0 auto;counter-reset:s}
.fl li{position:relative;padding-top:26px;border-top:1px solid var(--ink)}
.fl span{font-family:var(--mono);font-size:13px;color:var(--graph)}
.fl h3{font-size:clamp(24px,2vw,30px);font-weight:400;letter-spacing:-.02em;margin:12px 0 10px}
.fl p{color:var(--graph)}

/* caps list */
.caps{padding:clamp(90px,12vh,140px) var(--pad);max-width:1100px;margin:0 auto}
.caps .eyebrow{margin-bottom:34px}
.cl{list-style:none}
.cl li{font-family:var(--mono);font-size:clamp(13px,1.05vw,15px);text-transform:uppercase;letter-spacing:.06em;padding:16px 0;border-top:1px solid var(--line);text-align:center}
.cl li:last-child{border-bottom:1px solid var(--line)}
.cl span{color:var(--graph)}

/* proof */
.proof{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(30px,5vw,80px);padding:0 var(--pad) clamp(100px,14vh,160px);max-width:1320px;margin:0 auto;align-items:end}
.pf-n{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.pf-n p{display:flex;flex-direction:column;gap:10px;padding-top:18px;border-top:1px solid var(--line)}
.pf-n b{font-size:clamp(40px,4.4vw,68px);font-weight:300;letter-spacing:-.045em;line-height:1}
.pf-n span{font-size:14px;color:var(--graph)}
.pf-q{background:#fff;border-radius:22px;padding:28px}
.pf-q p{font-size:clamp(19px,1.6vw,24px);line-height:1.3;letter-spacing:-.015em;margin-bottom:22px}
.pf-q footer{display:flex;gap:24px;flex-wrap:wrap;font-size:14px;color:var(--graph)}
.pf-q footer b{font-family:var(--mono);font-weight:500;color:var(--ink);font-size:18px;margin-right:4px}

/* end */
.end{position:relative;overflow:hidden;padding:clamp(120px,18vh,200px) var(--pad);text-align:center;color:#fff;background:var(--ink)}
.end-bg{position:absolute;inset:-20%;z-index:0;background:radial-gradient(30% 40% at 25% 40%,rgba(224,163,33,.35),transparent 70%),radial-gradient(35% 45% at 75% 60%,rgba(44,77,160,.45),transparent 70%),radial-gradient(30% 40% at 55% 20%,rgba(47,143,138,.3),transparent 70%);filter:blur(10px);animation:float 20s ease-in-out infinite alternate}
.end>*:not(.end-bg){position:relative}
.end .eyebrow{color:rgba(255,255,255,.55)}
.end h2{font-size:clamp(36px,5vw,80px);font-weight:300;letter-spacing:-.04em;line-height:1.02;max-width:980px;margin:22px auto 40px;text-wrap:balance}
.end-cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.end .pill{background:#fff;color:var(--ink)}.end .pill-o:hover{background:#fff;color:var(--ink);border-color:#fff}

.ft{display:flex;align-items:center;gap:30px;flex-wrap:wrap;padding:34px var(--pad);background:var(--ink);color:rgba(255,255,255,.7);border-top:1px solid rgba(255,255,255,.08);font-size:14px}
.ft .logo svg{color:#fff}.ft .logo span{color:#fff}
.ft nav{display:flex;gap:20px;margin-left:auto}.ft nav a:hover,.ft p a:hover{color:#fff}

/* reveal */
.js .fu{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform 1.1s var(--ease)}
.js .fu.in{opacity:1;transform:none}

@media (max-width:900px){
  .hd-nav{display:none}.hd{gap:12px}.hd-cta{margin-left:auto;font-size:13px;padding:8px 14px}
  .hero{height:150vh}
  .row,.intro,.pair,.proof{grid-template-columns:1fr}
  .row-r .glaze{order:-1}
  .intro{padding-top:110px}
  .cycle li{grid-template-columns:100px auto;}.cycle li em{grid-column:1/-1;text-align:left}
  .pr summary{grid-template-columns:34px 1fr auto;gap:12px}.pr-d{grid-column:2/-1;grid-row:2;font-size:14.5px}
  .pr-sw{width:26px;height:26px}
  .pr-b{grid-template-columns:1fr;padding-left:46px;gap:14px}
  .fl,.pf-n{grid-template-columns:1fr}
  .notch{padding:12px 30px 14px}
  .ft nav{margin-left:0}
}
@media (prefers-reduced-motion:reduce){.js .fu{opacity:1;transform:none;transition:none}.glaze i,.end-bg,.hero-scroll::after{animation:none}}
.proof{grid-template-columns:1fr;gap:28px}
.pf-n b{font-size:clamp(40px,4vw,64px);white-space:nowrap}
.pf-q{max-width:760px}
@media (max-width:900px){.hero-scroll{display:none}.hero-t{right:var(--pad)}}
.logo .wm{height:30px;width:auto;color:var(--ink)}
.hero-dark .hd:not(.solid) .logo .wm,.ft .logo .wm{color:#fff}
/* ecosystem stage with glazed objects */
.eco-b{display:grid;grid-template-columns:1fr minmax(280px,440px);gap:clamp(30px,5vw,80px);align-items:start}
.eco-st{position:sticky;top:110px;aspect-ratio:1;border-radius:28px;background:radial-gradient(60% 60% at 50% 55%,#fff,var(--paper2) 75%)}
.eo{position:absolute;inset:8%;width:84%;height:84%;object-fit:contain;opacity:0;transform:translateY(24px) scale(.94) rotate(-3deg);transition:opacity .6s ease,transform 1s var(--ease);filter:drop-shadow(0 30px 40px rgba(13,17,16,.18))}
.eo.on{opacity:1;transform:none}
.pr-img{display:none}
.pr-b{padding-left:234px;grid-template-columns:1fr}
@media (min-width:901px){.pr-b{padding-left:234px}}
@media (max-width:900px){.eco-b{grid-template-columns:1fr}.eco-st{display:none}.pr-img{display:block;width:min(220px,60vw);height:auto;margin:0 auto 6px;filter:drop-shadow(0 20px 30px rgba(13,17,16,.16))}.pr-b{padding-left:46px}}
.cycle-w{position:relative;justify-self:center;width:min(460px,100%)}
.cy-obj{position:absolute;right:-22%;top:-26%;width:56%;height:auto;z-index:2;filter:drop-shadow(0 30px 40px rgba(13,17,16,.25));pointer-events:none}
.cycle-w .cycle{width:100%}
@media (max-width:900px){.cy-obj{right:-6%;top:-18%;width:40%}}
.cy-obj{right:-24%;top:-34%;width:46%}
@media (max-width:900px){.cy-obj{right:-4%;top:-20%;width:34%}}

/* Paymo — also an invent.sale product */
.pm{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,5vw,90px);align-items:center;padding:clamp(100px,13vh,150px) var(--pad);background:#0f2f2a;color:#fff;position:relative;overflow:hidden}
.pm::before{content:"";position:absolute;inset:0;background:radial-gradient(45% 55% at 80% 50%,rgba(60,207,154,.22),transparent 70%);pointer-events:none}
.pm>*{position:relative}
.pm .eyebrow{text-align:left;color:#7fe0bd;margin-bottom:18px}
.pm h2{font-size:clamp(34px,4vw,62px);font-weight:300;letter-spacing:-.04em;line-height:1.02;margin-bottom:20px;max-width:720px}
.pm-t>p:not(.eyebrow){color:rgba(255,255,255,.75);max-width:600px;margin-bottom:30px}
.pm-l{list-style:none;display:grid;gap:0;margin-bottom:34px;max-width:620px}
.pm-l li{display:grid;grid-template-columns:170px 1fr;gap:16px;padding:16px 0;border-top:1px solid rgba(255,255,255,.14)}
.pm-l li:last-child{border-bottom:1px solid rgba(255,255,255,.14)}
.pm-l b{font-weight:500}.pm-l span{color:rgba(255,255,255,.7);font-size:15.5px}
.pm .pill{background:#fff;color:#0f2f2a}
.pm-v img{width:min(480px,100%);height:auto;margin:0 auto;filter:drop-shadow(0 40px 60px rgba(0,0,0,.45))}
.pr-b a{text-decoration:underline;text-underline-offset:3px}

/* lead form */
.end-s{color:rgba(255,255,255,.7);max-width:560px;margin:-20px auto 36px}
.lead{max-width:920px;margin:0 auto;text-align:left}
.lf-g{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.lead label{display:flex;flex-direction:column;gap:7px;font-size:13px;color:rgba(255,255,255,.65)}
.lead .lf-w{grid-column:1/-1}
.lead input,.lead select,.lead textarea{font:inherit;font-size:16px;font-weight:400;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:13px 15px;outline:none;transition:border-color .3s,background .3s;resize:vertical}
.lead select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:36px}
.lead select option{color:#0d1110}
.lead input::placeholder,.lead textarea::placeholder{color:rgba(255,255,255,.35)}
.lead input:focus,.lead select:focus,.lead textarea:focus{border-color:var(--saffron);background:rgba(255,255,255,.1)}
.lead .err input{border-color:#ff8a6b}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.lf-f{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:20px}
.lf-f--c{justify-content:center}
.lf-f button{border:0;cursor:pointer;font:inherit;font-size:14.5px;font-weight:500}
.lf-msg{font-size:15px;color:rgba(255,255,255,.8);margin-left:6px}
.lf-msg.ok{color:#7fe0bd}.lf-msg.bad{color:#ff8a6b}
.lead.sent .lf-g{opacity:.4;pointer-events:none}
@media (max-width:900px){.pm{grid-template-columns:1fr}.pm-v{order:-1}.pm-v img{width:min(300px,70vw)}.pm-l li{grid-template-columns:1fr;gap:4px}.lf-g{grid-template-columns:1fr}}
/* stricter type: IBM Plex Sans */
:root{--sans:'IBM Plex Sans',system-ui,sans-serif}
body{font-weight:400;font-size:16.5px;line-height:1.55}
.hero-t,.row-t h2,.pair h3,.eco-h h2,.flow h2,.intro-t h2,.wl li,.pf-n b,.end h2,.pm h2{font-weight:300;letter-spacing:-.025em}
.intro-t h2{letter-spacing:-.035em}
.pr b{font-weight:400;letter-spacing:-.02em}
.pill,.pill-o,.hd-cta{font-weight:500}
/* object above the product name, floating */
.intro-obj{width:clamp(180px,17vw,260px);height:auto;margin:0 0 10px -10px;filter:drop-shadow(0 30px 40px rgba(13,17,16,.22));animation:bob 6s ease-in-out infinite}
@keyframes bob{50%{transform:translateY(-12px) rotate(-1.5deg)}}
@media (prefers-reduced-motion:reduce){.intro-obj{animation:none}}
/* scene renders instead of blurred blobs */
.shot{margin:0;aspect-ratio:4/3;border-radius:24px;display:grid;place-items:center;background:radial-gradient(70% 70% at 50% 50%,#fff 0,#e6eae7 70%);overflow:hidden}
.shot img{width:88%;height:auto;filter:drop-shadow(0 24px 30px rgba(13,17,16,.16))}
.pm{padding-top:clamp(130px,15vh,180px)}
.pm .notch{background:var(--paper);color:var(--ink)}
/* custom dropdown */
.lead .lfx{display:flex;flex-direction:column;gap:7px;font-size:13px;color:rgba(255,255,255,.65)}
.dd{position:relative}
.dd-b{width:100%;text-align:left;font:inherit;font-size:16px;color:#fff;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:13px 40px 13px 15px;cursor:pointer;position:relative;transition:border-color .3s,background .3s}
.dd-b::after{content:"";position:absolute;right:16px;top:50%;width:8px;height:8px;border-right:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:translateY(-70%) rotate(45deg);transition:transform .35s var(--ease)}
.dd.open .dd-b{border-color:var(--saffron);background:rgba(255,255,255,.1)}
.dd.open .dd-b::after{transform:translateY(-25%) rotate(225deg)}
.dd-b span{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dd-l{list-style:none;position:absolute;left:0;right:0;top:calc(100% + 8px);z-index:20;background:#1a201e;border:1px solid rgba(255,255,255,.14);border-radius:16px;padding:6px;box-shadow:0 30px 60px rgba(0,0,0,.45);max-height:280px;overflow:auto;opacity:0;transform:translateY(-6px) scale(.98);transform-origin:top;pointer-events:none;transition:opacity .25s ease,transform .35s var(--ease);outline:none}
.dd.open .dd-l{opacity:1;transform:none;pointer-events:auto}
.dd-l li{padding:10px 12px;border-radius:10px;font-size:15px;color:rgba(255,255,255,.85);cursor:pointer;display:flex;justify-content:space-between;gap:10px}
.dd-l li.act{background:rgba(255,255,255,.08);color:#fff}
.dd-l li[aria-selected="true"]{color:var(--saffron)}
.dd-l li[aria-selected="true"]::after{content:"✓"}
.lang{display:flex;gap:2px;font-family:var(--mono);font-size:12.5px;letter-spacing:.06em}
.lang a{padding:6px 8px;border-radius:8px;opacity:.55;transition:opacity .3s}
.lang a:hover{opacity:1}.lang a[aria-current]{opacity:1;text-decoration:underline;text-underline-offset:4px}
@media (max-width:900px){.lang{margin-left:auto}.hd-cta{margin-left:0}}
/* fixes: notch position, product names, mobile header */
.pm>.notch{position:absolute;top:0;left:50%;transform:translateX(-50%)}
.pr summary{grid-template-columns:44px 230px 1fr auto}
.pr b{white-space:nowrap}
.pr-b{padding-left:294px}
@media (max-width:900px){
  .pr summary{grid-template-columns:34px 1fr auto}
  .pr-b{padding-left:46px}
  .wl li{font-size:clamp(30px,9vw,44px)}
  .pm{padding-top:120px}
}
@media (max-width:560px){
  .hd-cta{display:none}
  .lang{margin-left:auto}
  .hero-t{font-size:clamp(30px,8.4vw,40px)}
}
.pr summary{grid-template-columns:44px 230px 1fr}
@media (max-width:900px){.pr summary{grid-template-columns:34px 1fr}}

/* how it works: four steps right after the hero */
.how4{padding:clamp(40px,7vh,80px) var(--pad) clamp(90px,12vh,140px);max-width:1440px;margin:0 auto}
.how4 .eyebrow{margin-bottom:16px}
.how4 h2{text-align:center;font-size:clamp(32px,3.6vw,56px);font-weight:300;letter-spacing:-.03em;line-height:1.05;margin-bottom:clamp(40px,6vh,70px)}
.h4{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:clamp(14px,1.6vw,24px);counter-reset:none}
.h4>li{display:flex;flex-direction:column;gap:10px}
.h4-i{margin:0 0 8px;aspect-ratio:4/3;border-radius:20px;display:grid;place-items:center;background:radial-gradient(70% 70% at 50% 50%,#fff 0,#e6eae7 72%);overflow:hidden}
.h4-i img{width:86%;height:auto;filter:drop-shadow(0 18px 24px rgba(13,17,16,.15));transition:transform .8s var(--ease)}
.h4>li:hover .h4-i img{transform:translateY(-6px) scale(1.03)}
.h4>li>span{font-family:var(--mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--graph)}
.h4 h3{font-size:clamp(19px,1.5vw,23px);font-weight:400;letter-spacing:-.015em;line-height:1.25}
.h4 ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}
.h4 ul li{font-size:13.5px;padding:4px 10px;border-radius:99px;background:#fff;color:#3d4a47;box-shadow:inset 0 0 0 1px var(--line)}
@media (max-width:1000px){
  .h4{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 calc(-1 * var(--pad));padding:0 var(--pad) 8px;scrollbar-width:none}
  .h4::-webkit-scrollbar{display:none}
  .h4>li{flex:0 0 min(300px,78vw);scroll-snap-align:start}
}
/* notch matches the dark block above it */
.pm .notch{background:var(--ink);color:rgba(255,255,255,.75)}
.pm .notch::before{background:radial-gradient(circle at 0 100%,transparent 27.5px,var(--ink) 28px)}
.pm .notch::after{background:radial-gradient(circle at 100% 100%,transparent 27.5px,var(--ink) 28px)}
/* bigger Paymo object */
.pm-v img{width:min(640px,118%);max-width:none;margin:-40px auto}
@media (max-width:900px){.pm-v img{width:min(360px,86vw);margin:0 auto}}
/* how4 on phones: vertical list, image left, text right */
.how4{padding-top:clamp(70px,10vh,110px)}
@media (max-width:1000px){
  .h4{display:grid;grid-template-columns:1fr;gap:0;overflow:visible;margin:0;padding:0}
  .h4>li{display:grid;grid-template-columns:clamp(104px,30vw,170px) 1fr;grid-template-rows:auto auto 1fr;column-gap:16px;row-gap:6px;padding:18px 0;border-top:1px solid var(--line);flex:none}
  .h4>li:last-child{border-bottom:1px solid var(--line)}
  .h4-i{grid-row:1/4;margin:0;align-self:start;border-radius:16px}
  .h4-i img{width:94%}
  .h4 h3{font-size:18px}
  .h4 ul li{font-size:12.5px;padding:3px 9px}
  .how4 h2{margin-bottom:28px}
}

/* manifesto: words fill in as you scroll */
.mani{padding:clamp(90px,16vh,180px) var(--pad) clamp(60px,10vh,120px);max-width:1320px;margin:0 auto}
.mani-t{font-size:clamp(30px,4.2vw,64px);font-weight:300;letter-spacing:-.035em;line-height:1.12;text-wrap:balance}
.mani-t .w{color:rgba(13,17,16,.16);transition:color .25s linear}
.mani-t .w.on{color:var(--ink)}
.mani-t .w.k{font-weight:400}
.mani-t .w.k.on{color:var(--ink);background:linear-gradient(90deg,#e0a321,#e0a321) 0 88%/100% .1em no-repeat}

/* pinned four-step scene (desktop) */
.fx{position:relative;height:340vh;padding:0 var(--pad)}
.fx-pin{position:sticky;top:0;height:100vh;display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(30px,5vw,90px);align-items:center;max-width:1440px;margin:0 auto}
.fx-w{list-style:none;display:flex;flex-direction:column;gap:2px}
.fx-w li{cursor:default}
.fx-w b{display:block;font-size:clamp(46px,6.6vw,108px);font-weight:300;letter-spacing:-.05em;line-height:1.02;color:rgba(13,17,16,.13);transition:color .5s ease}
.fx-w li.on b{color:var(--ink)}
.fx-w p{max-height:0;overflow:hidden;opacity:0;font-size:clamp(17px,1.3vw,20px);line-height:1.45;color:var(--ink);max-width:460px;transition:max-height .7s var(--ease),opacity .5s ease,margin .7s var(--ease)}
.fx-w p span{display:block;color:var(--graph);font-size:.88em;margin-top:6px}
.fx-w li.on p{max-height:160px;opacity:1;margin:8px 0 18px}
.fx-st{position:relative;aspect-ratio:1.18;border-radius:32px;background:radial-gradient(70% 70% at 50% 45%,#fff 0,#e3e7e4 72%);overflow:hidden;box-shadow:inset 0 0 0 1px rgba(13,17,16,.05)}
.fx-im{position:absolute;inset:8%;width:84%;height:84%;object-fit:contain;opacity:0;transform:translateY(30px) scale(.94);filter:blur(6px) drop-shadow(0 30px 40px rgba(13,17,16,.18));transition:opacity .6s ease,transform 1s var(--ease),filter .6s ease}
.fx-im.on{opacity:1;transform:none;filter:blur(0) drop-shadow(0 30px 40px rgba(13,17,16,.18))}
.fx-n{position:absolute;left:24px;bottom:22px;font-family:var(--mono);font-size:13px;letter-spacing:.08em;color:var(--graph)}
.fx-n b{color:var(--ink);font-weight:500}
.fx-bar{position:absolute;left:24px;right:24px;bottom:12px;height:2px;background:rgba(13,17,16,.08);border-radius:2px;overflow:hidden}
.fx-bar b{position:absolute;inset:0 auto 0 0;width:25%;background:var(--ink);transition:width .6s var(--ease)}
.fx-cards{display:none}

/* phones: stacked sticky cards */
@media (max-width:900px){
  .mani{padding-top:80px}
  .mani-t{font-size:clamp(26px,7.4vw,34px)}
  .fx{height:auto;padding:0 var(--pad) 40px}
  .fx-pin{display:none}
  .fx-cards{display:block}
  .fx-c{position:sticky;top:calc(76px + var(--k) * 14px);margin-bottom:22px;background:#fff;border-radius:28px;padding:16px 16px 22px;box-shadow:0 -8px 30px rgba(13,17,16,.06),0 1px 0 rgba(13,17,16,.05)}
  .fx-c figure{margin:0 0 16px;aspect-ratio:1.5;border-radius:20px;display:grid;place-items:center;background:radial-gradient(70% 70% at 50% 45%,#fff 0,#e6eae7 75%)}
  .fx-c figure img{width:86%;height:auto;filter:drop-shadow(0 18px 24px rgba(13,17,16,.16))}
  .fx-c span{font-family:var(--mono);font-size:12px;letter-spacing:.08em;color:var(--graph)}
  .fx-c h3{font-size:40px;font-weight:300;letter-spacing:-.045em;line-height:1;margin:6px 0 10px}
  .fx-c p{font-size:17px;line-height:1.4}
  .fx-c small{display:block;font-size:14.5px;color:var(--graph);margin-top:6px;line-height:1.45}
}
@media (prefers-reduced-motion:reduce){.fx{height:auto}.fx-pin{position:relative;height:auto;padding:60px 0}.fx-w p{max-height:none;opacity:1}.fx-w b{color:var(--ink)}}
/* one cursor: the dot replaces the system pointer on mouse devices */
html.cur, html.cur *{cursor:none!important}
html.cur input, html.cur textarea{cursor:text!important}
.dot{width:12px;height:12px;margin:-6px 0 0 -6px;background:#fff;mix-blend-mode:difference;z-index:300;opacity:0;transition:width .3s var(--ease),height .3s var(--ease),margin .3s var(--ease),opacity .3s}
html.cur .dot{opacity:1}
.dot.big{width:46px;height:46px;margin:-23px 0 0 -23px;background:#fff}
.dot.txt{opacity:0}
