/* Mobile-first. 8pt grid. Thumb-zone CTA. Glass cards on grain + drifting blobs. */
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ib-bg);color:var(--ib-ink);font-family:var(--ib-font-body);
  font-size:16px;line-height:1.5;min-height:100dvh;transition:background var(--ib-dur-std),color var(--ib-dur-std)}
img,video{max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:3px solid var(--ib-cta);outline-offset:2px;border-radius:4px}

.ib-grain{position:fixed;inset:0;pointer-events:none;opacity:var(--ib-grain-o,.06);
  background-image:url("../img/grain.png");background-size:280px;z-index:1}
.ib-blob{position:fixed;border-radius:50%;filter:blur(90px);opacity:var(--ib-blob-o,.35);z-index:0;
  animation:ib-drift 26s ease-in-out infinite alternate}
.ib-blob--a{width:46vw;height:46vw;left:-12vw;top:-10vh;background:var(--ib-ember-warm)}
.ib-blob--b{width:40vw;height:40vw;right:-14vw;bottom:-8vh;background:var(--ib-ember-soft);animation-delay:-9s}
@keyframes ib-drift{from{transform:translate(0,0) scale(1)}to{transform:translate(6vw,4vh) scale(1.12)}}

.ib-wrap{position:relative;z-index:2;max-width:680px;margin:0 auto;padding:var(--ib-s4)}
.ib-topbar{display:flex;align-items:center;justify-content:space-between;padding:var(--ib-s4) 0}



body.ib-dark 
.ib-logo img,.ib-logo-img{width:var(--ib-logo-w,140px);height:auto;display:block}
.ib-logo--dark{display:none}
body.ib-dark .ib-logo--light{display:none}
body.ib-dark .ib-logo--dark{display:block}
.ib-brandname{font-family:var(--ib-font-display);font-size:22px;font-weight:600}
.ib-mode{border:1px solid var(--ib-line);background:var(--ib-card);backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);border-radius:999px;padding:10px 14px;font:inherit;color:inherit;
  cursor:pointer;min-width:48px;min-height:48px}

.ib-hero{padding:var(--ib-s12) 0 var(--ib-s8)}
.ib-hero h1{font-family:var(--ib-font-display);font-weight:600;font-size:clamp(38px,10vw,76px);letter-spacing:-0.02em;
  line-height:1.15;margin:0 0 var(--ib-s3)}
.ib-hero h1 em{font-style:italic;background:linear-gradient(100deg,var(--ib-ember-deep),var(--ib-ember-warm));-webkit-background-clip:text;background-clip:text;color:transparent}
.ib-hero p{font-size:18px;max-width:46ch;margin:0 0 var(--ib-s6);color:var(--ib-ink-soft)}
.ib-hero-media{position:relative;border-radius:var(--ib-radius-lg);overflow:hidden;margin-bottom:var(--ib-s6)}
.ib-hero-media .ib-overlay{position:absolute;inset:0;background:var(--ib-ink);opacity:var(--ib-hero-overlay,0)}

.ib-card{background:var(--ib-card);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border:1px solid var(--ib-line);border-radius:var(--ib-radius-lg);padding:var(--ib-s6)}
@supports not (backdrop-filter:blur(1px)){.ib-card{background:var(--ib-bg-raised)}}
.ib-field{margin-bottom:var(--ib-s4)}
.ib-field label{display:block;font-size:14px;margin-bottom:var(--ib-s1);color:var(--ib-ink-soft)}
.ib-field .ib-opt{font-style:italic;opacity:.7}
.ib-field input,.ib-field textarea,.ib-field select{width:100%;min-height:48px;padding:12px 14px;
  font:inherit;color:var(--ib-ink);background:var(--ib-bg-raised);
  border:1px solid var(--ib-line);border-radius:var(--ib-radius)}
.ib-field textarea{min-height:96px;resize:vertical}
.ib-hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}
.ib-cta{display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:56px;
  border:0;border-radius:999px;background:var(--ib-cta);color:#fff;font:600 18px var(--ib-font-body);
  cursor:pointer;transition:background var(--ib-dur-micro),transform var(--ib-dur-micro)}
.ib-cta:hover{background:var(--ib-cta-hover)}
.ib-cta:active{transform:scale(.98)}
.ib-cta[disabled]{opacity:.6;cursor:default}
.ib-msg{margin-top:var(--ib-s4);padding:var(--ib-s4);border-radius:var(--ib-radius);display:none}
.ib-msg.ok{display:block;background:rgba(224,98,42,.12);border:1px solid var(--ib-cta)}
.ib-msg.err{display:block;background:rgba(194,65,12,.10);border:1px solid var(--ib-ember-deep)}

.ib-gathering{display:flex;gap:var(--ib-s6);flex-wrap:wrap;margin:var(--ib-s8) 0;color:var(--ib-ink-soft)}
.ib-gathering strong{display:block;font-family:var(--ib-font-display);font-size:28px;color:var(--ib-ink);
  font-variant-numeric:tabular-nums}

.ib-footer{margin:var(--ib-s16) 0 var(--ib-s8);font-size:14px;color:var(--ib-ink-soft)}
.ib-footer nav a{margin-right:var(--ib-s4)}

.ib-intro>*{opacity:0;transform:translateY(14px);
  animation:ib-in var(--ib-dur-cere) cubic-bezier(.2,.8,.2,1) forwards}
.ib-intro>*:nth-child(2){animation-delay:.08s}
.ib-intro>*:nth-child(3){animation-delay:.16s}
@keyframes ib-in{to{opacity:1;transform:none}}

@media(min-width:768px){
  .ib-wrap{max-width:960px;padding:var(--ib-s6)}
  .ib-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:var(--ib-s8);align-items:start}
}

.ib-eyebrow{letter-spacing:.14em;text-transform:uppercase;font-size:13px;color:var(--ib-cta);margin:0 0 var(--ib-s2)}
.ib-story{margin:var(--ib-s12) 0}
.ib-story-h{font-family:var(--ib-font-display);font-size:26px;margin:0 0 var(--ib-s4)}
.ib-story-grid{display:grid;gap:var(--ib-s4)}
.ib-story-card h3{font-family:var(--ib-font-display);margin:0 0 var(--ib-s2);font-size:20px}
.ib-story-card p{margin:0;color:var(--ib-ink-soft)}
@media(min-width:768px){.ib-story-grid{grid-template-columns:repeat(3,1fr)}}
.ib-apps{margin:var(--ib-s8) 0}
.ib-badges{display:flex;gap:var(--ib-s3);flex-wrap:wrap;margin-top:var(--ib-s4)}
.ib-badge{border:1px solid var(--ib-line);background:var(--ib-bg-raised);border-radius:12px;
  padding:0;cursor:pointer;width:var(--ib-badge-w,168px);min-height:56px;overflow:hidden}
.ib-badge img{display:block;width:100%;height:auto}
.ib-badge-ph{display:flex;flex-direction:column;justify-content:center;min-height:56px;padding:8px 14px;
  font:600 15px var(--ib-font-body);color:var(--ib-ink);text-align:left}
.ib-badge-ph small{font-weight:400;color:var(--ib-ink-soft)}

/* scroll reveal */
.ib-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s cubic-bezier(.2,.8,.2,1),transform .6s cubic-bezier(.2,.8,.2,1)}
.ib-reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.ib-reveal{opacity:1;transform:none;transition:none}}
/* headline: ember gradient ink on the em */
.ib-hero h1 em{background:linear-gradient(100deg,var(--ib-ember-deep),var(--ib-ember-warm));
  -webkit-background-clip:text;background-clip:text;color:transparent;font-style:italic}
/* magnetic-feel CTA */
.ib-cta{position:relative;overflow:hidden}
.ib-cta::after{content:"";position:absolute;inset:0;background:linear-gradient(100deg,transparent,rgba(255,255,255,.25),transparent);
  transform:translateX(-120%);transition:transform .6s}
.ib-cta:hover::after{transform:translateX(120%)}
/* story cards: hover lift + ember hairline */
.ib-story-card{transition:transform var(--ib-dur-std),box-shadow var(--ib-dur-std);border-top:2px solid transparent}
.ib-story-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px -20px rgba(20,24,26,.35);border-top-color:var(--ib-cta)}

/* award-tier motion layer */
.ib-split .ib-w{display:inline-block;overflow:hidden;vertical-align:bottom}
.ib-split .ib-w>span{display:inline-block;transform:translateY(110%);animation:ib-rise .7s cubic-bezier(.2,.8,.2,1) forwards}
.ib-split .ib-w:nth-child(2)>span{animation-delay:.06s}.ib-split .ib-w:nth-child(3)>span{animation-delay:.12s}
.ib-split .ib-w:nth-child(4)>span{animation-delay:.18s}.ib-split .ib-w:nth-child(5)>span{animation-delay:.24s}
.ib-split .ib-w:nth-child(n+6)>span{animation-delay:.3s}
@keyframes ib-rise{to{transform:translateY(0)}}
.ib-reveal{opacity:0;transform:translateY(22px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
.ib-reveal.is-in{opacity:1;transform:none}
.ib-card{transition:transform var(--ib-dur-std),box-shadow var(--ib-dur-std)}
.ib-story-card:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(20,24,26,.10)}
.ib-cta{will-change:transform}
select{appearance:none;background-image:linear-gradient(45deg,transparent 49%,currentColor 51%),linear-gradient(135deg,currentColor 49%,transparent 51%);background-position:calc(100% - 20px) 55%,calc(100% - 14px) 55%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
@media (prefers-reduced-motion: reduce){.ib-split .ib-w>span{animation:none;transform:none}.ib-reveal{opacity:1;transform:none;transition:none}}

/* v2 sections */
.ib-h2{font-family:var(--ib-font-display);font-size:clamp(24px,5vw,34px);margin:0 0 var(--ib-s3);letter-spacing:-0.01em}
.ib-marquee{overflow:hidden;border-block:1px solid var(--ib-line);margin:var(--ib-s8) calc(-1*var(--ib-s4));padding:var(--ib-s3) 0}
.ib-marquee-track{display:inline-flex;white-space:nowrap;gap:var(--ib-s6);font-family:var(--ib-font-display);font-style:italic;font-size:22px;color:var(--ib-ink-soft);animation:ib-marq 36s linear infinite;will-change:transform}
.ib-marquee-track i{color:var(--ib-cta);font-style:normal}
.ib-marquee:hover .ib-marquee-track{animation-play-state:paused}
@keyframes ib-marq{to{transform:translateX(-50%)}}
.ib-philosophy{margin:var(--ib-s16) 0;max-width:760px}
.ib-quote{margin:0;font-family:var(--ib-font-display);font-size:clamp(26px,5.5vw,42px);line-height:1.25;border-left:3px solid var(--ib-cta);padding-left:var(--ib-s6)}
.ib-process{margin:var(--ib-s16) 0}
.ib-steps{list-style:none;display:grid;gap:var(--ib-s6);padding:0;margin:var(--ib-s6) 0 0;grid-template-columns:repeat(auto-fit,minmax(130px,1fr))}
.ib-steps li{border-top:1px solid var(--ib-line);padding-top:var(--ib-s3);font-size:17px}
.ib-step-n{display:block;font-family:var(--ib-font-display);font-style:italic;font-size:40px;color:transparent;-webkit-text-stroke:1px var(--ib-cta);margin-bottom:var(--ib-s2)}
.ib-perks{list-style:none;padding:0;margin:0 0 var(--ib-s4);display:grid;gap:var(--ib-s2)}
.ib-perks li{padding-left:22px;position:relative;color:var(--ib-ink-soft)}
.ib-perks li::before{content:"";position:absolute;left:0;top:.55em;width:9px;height:9px;border-radius:50%;background:var(--ib-cta)}
.ib-consent{display:flex;gap:10px;align-items:flex-start;margin:var(--ib-s4) 0;font-size:14px;color:var(--ib-ink-soft)}
.ib-consent input{width:20px;height:20px;min-height:20px;margin-top:2px;accent-color:var(--ib-cta)}
@media (prefers-reduced-motion: reduce){.ib-marquee-track{animation:none}}

/* v3: progress, dots, spotlight, inside, sticky header */
.ib-progress{position:fixed;top:0;left:0;right:0;height:2px;z-index:60;background:transparent}
.ib-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--ib-ember-deep),var(--ib-ember-warm))}
.ib-dots{position:fixed;right:14px;top:50%;translate:0 -50%;display:flex;flex-direction:column;gap:12px;z-index:50}
.ib-dots a{width:9px;height:9px;border-radius:50%;background:var(--ib-line);transition:background var(--ib-dur-micro),transform var(--ib-dur-micro)}
.ib-dots a.is-on{background:var(--ib-cta);transform:scale(1.5)}
@media(max-width:767px){.ib-dots{display:none}}
.ib-spot{position:fixed;inset:0;pointer-events:none;z-index:1;
  background:radial-gradient(360px at var(--sx,50%) var(--sy,30%),rgba(224,98,42,.10),transparent 70%)}
body.ib-dark .ib-spot{background:radial-gradient(360px at var(--sx,50%) var(--sy,30%),rgba(232,147,90,.12),transparent 70%)}
.ib-topbar{position:sticky;top:0;z-index:40;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  transition:padding var(--ib-dur-std)}
.ib-topbar.is-shrunk{padding:var(--ib-s2) 0;border-bottom:1px solid var(--ib-line)}
.ib-inside{margin:var(--ib-s16) 0}
.ib-inside-grid{display:grid;gap:var(--ib-s4);margin-top:var(--ib-s6)}
@media(min-width:768px){.ib-inside-grid{grid-template-columns:repeat(3,1fr)}}
.ib-inside-card h3{font-family:var(--ib-font-display);font-size:22px;margin:var(--ib-s2) 0}
.ib-inside-card p{margin:0;color:var(--ib-ink-soft)}
.ib-inside-n{font-family:var(--ib-font-display);font-style:italic;font-size:15px;color:var(--ib-cta)}
.ib-freeline{margin-top:var(--ib-s6);font-family:var(--ib-font-display);font-style:italic;font-size:clamp(19px,3.4vw,24px);color:var(--ib-cta)}
