/* Ester investor deck shell. Vanilla CSS, no build step, no network requests.
   Values mirror packages/brand (generated/web.css) and apps/www/src/styles/global.css.
   Builders: do not edit this file. Slide-specific CSS goes in the slide fragment, scoped to #sNN. */

/* ---------- Fonts (the six files the splash site loads) ---------- */
@font-face{font-family:"Azeret SemiMono";src:url(assets/fonts/azeret-semimono-100-250.woff2) format("woff2");font-weight:100 250;font-style:normal;font-display:swap}
@font-face{font-family:"Azeret SemiMono";src:url(assets/fonts/azeret-semimono-251-900.woff2) format("woff2");font-weight:251 900;font-style:normal;font-display:swap}
@font-face{font-family:"ABC Gramercy";src:url(assets/fonts/abc-gramercy-100-349.woff2) format("woff2");font-weight:100 349;font-style:normal;font-display:swap}
@font-face{font-family:"ABC Gramercy";src:url(assets/fonts/abc-gramercy-350-900.woff2) format("woff2");font-weight:350 900;font-style:normal;font-display:swap}
@font-face{font-family:"Beausite Classic";src:url(assets/fonts/beausite-classic-100-549.woff2) format("woff2");font-weight:100 549;font-style:normal;font-display:swap}
@font-face{font-family:"Beausite Classic";src:url(assets/fonts/beausite-classic-550-900.woff2) format("woff2");font-weight:550 900;font-style:normal;font-display:swap}

/* ---------- Tokens ---------- */
:root{
  /* brand palette (Outset guide) */
  --mist:#F3F7ED; --frost:#E1E8DD; --sage:#CAD6C6; --celadon:#B7CFC0; --malachite:#548770;
  --night:#090B0A; --white:#FFFFFF;
  /* web surfaces from the splash page */
  --green:#46735E;            /* color.web.green: deepened malachite, white labels pass AA */
  --slate:#54675C;            /* color.web.g3-bg */
  --slate-ov:#A5C2B3;         /* color.web.g3-ov */
  --green-bg:#45735E;         /* color.web.g4-bg */
  --ground-deep:#22352D;      /* color.web.ground-deep */
  --ground-mid:#385849;       /* color.web.ground-mid */
  --mute-light:#416856;       /* color.web.mute: secondary text on light grounds */
  --bordeaux:#5B1D23;
  /* faces */
  --head:"Azeret SemiMono",ui-monospace,"Menlo",monospace;
  --detail:"ABC Gramercy","Georgia",serif;
  --sans:"Beausite Classic","Helvetica Neue","Helvetica","Arial",sans-serif;
  --num:var(--head);
  /* motion */
  --ease:cubic-bezier(.2,.7,.1,1);      /* entrances (site --ease) */
  --ease-shift:cubic-bezier(.4,0,.2,1); /* color and chrome changes (site --shift-ease) */
  --ease-wd:cubic-bezier(.5,1,.89,1);   /* hover on buttons and links (site --wd) */
  --dur:900ms; --dur-fade:700ms; --dur-scale:1200ms; --dur-draw:1100ms; --dur-count:1200ms; --stagger:90ms;
  /* canvas */
  --cw:1280px; --ch:720px; --k:1;
  --pad-x:80px; --pad-top:60px; --pad-bottom:52px; --gutter:24px;
  --grain-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  --halo-img:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 766 999'%3E%3Cfilter id='b' x='-20%25' y='-20%25' width='140%25' height='140%25'%3E%3CfeGaussianBlur stdDeviation='30'/%3E%3C/filter%3E%3Cpath filter='url(%23b)' d='M382.8 95.3c159.5 0 288.7 129.6 287.5 287.7v232.3c0 158.4-129.4 287.9-287.5 287.9-158.2 0-287.5-128.3-287.5-287.9V383.2c0-158.4 129.4-287.9 287.5-287.9z' fill='none' stroke='%23B7CFC0' stroke-width='62'/%3E%3C/svg%3E");
  --logo-w:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20314%20122%22%3E%3Cpath%20fill%3D%22%23FFFFFF%22%20d%3D%22M281.15%2C33.75c-2.33-.61-4.62-.91-6.85-.91-4.16%2C0-7.97%2C1.07-11.41%2C3.2-3.45%2C2.13-6.34%2C4.92-8.67%2C8.37-2.23%2C3.45-3.66%2C7.3-4.26%2C11.57v-21.31h-6.69v24.09c-.18-.68-.38-1.36-.6-2.02-1.42-4.77-3.6-8.93-6.54-12.48-2.84-3.55-6.34-6.29-10.5-8.22-4.16-2.03-9.4-3.05-14.67-3.05v.02h-55.74V10.78h-6.69v22.23h-31.31s0%2C0%2C0%2C0c-3.68.03-7.03.48-10.05%2C1.36-3.05.81-5.73%2C2.08-8.06%2C3.81-2.23%2C1.62-3.96%2C3.65-5.18%2C6.08-1.09%2C2.18-1.69%2C4.63-1.81%2C7.38%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0-1.24-2.7-2.79-5.16-4.63-7.38-2.84-3.55-6.34-6.29-10.5-8.22-4.16-2.03-8.93-3.05-14.31-3.05s-10.09.97-14.45%2C2.89c-4.36%2C1.83-8.12%2C4.52-11.26%2C8.06-3.15%2C3.45-5.58%2C7.55-7.3%2C12.33-1.73%2C4.77-2.59%2C10.04-2.59%2C15.82%2C0%2C7.71%2C1.62%2C14.51%2C4.87%2C20.39%2C3.25%2C5.89%2C7.71%2C10.5%2C13.39%2C13.85%2C5.68%2C3.25%2C12.22%2C4.87%2C19.63%2C4.87%2C6.59%2C0%2C12.53-1.17%2C17.8-3.5%2C3.61-1.67%2C6.65-3.57%2C9.12-5.71%2C0%2C0%2C0%2C0%2C0%2C0%2C2.14%2C1.63%2C4.44%2C3.12%2C6.91%2C4.49%2C2.84%2C1.42%2C5.83%2C2.54%2C8.98%2C3.35%2C3.15.91%2C6.24%2C1.37%2C9.28%2C1.37%2C5.68%2C0%2C10.5-.86%2C14.45-2.59%2C4.06-1.83%2C7.15-4.36%2C9.28-7.61%2C2.13-3.24%2C3.2-7%2C3.2-11.26%2C0-5.38-1.62-9.79-4.87-13.24-3.15-3.44-8.32-6.08-15.52-7.91l-9.89-2.58c-5.38-1.42-9.18-3.25-11.41-5.48-2.13-2.23-3.19-4.97-3.19-8.22%2C0-2.74.71-5.07%2C2.13-7%2C1.42-2.03%2C3.56-3.55%2C6.4-4.57%2C2.84-1.01%2C6.18-1.52%2C10.04-1.52h20.69s0%2C0%2C0%2C0h10.16v44.14c0%2C5.88.96%2C10.9%2C2.89%2C15.06%2C2.03%2C4.06%2C4.82%2C7.2%2C8.38%2C9.44%2C3.05%2C1.86%2C6.56%2C2.94%2C10.53%2C3.25h-.02c.15.02.31.03.47.04.06%2C0%2C.12%2C0%2C.19.01.42.03.86.04%2C1.32.04.15%2C0%2C.29.01.44.01%2C2.23%2C0%2C4.46-.3%2C6.7-.91.08-.02.16-.05.24-.07%2C4-1.02%2C8.14-2.91%2C11.18-5.98%2C1%2C.74%2C2.04%2C1.45%2C3.14%2C2.09%2C5.68%2C3.24%2C12.22%2C4.87%2C19.63%2C4.87%2C6.59%2C0%2C12.53-1.17%2C17.8-3.5%2C5.09-2.35%2C9.03-5.17%2C11.86-8.46v10.14h6.69v-38.65c.11-6.49%2C1.22-12.07%2C3.35-16.74%2C2.23-4.77%2C5.17-8.42%2C8.83-10.96%2C3.65-2.54%2C7.61-3.81%2C11.87-3.81%2C2.33%2C0%2C4.71.36%2C7.15%2C1.07%2C2.54.72%2C4.46%2C1.68%2C5.78%2C2.89v-6.85c-1.52-1.12-3.45-1.98-5.78-2.59ZM36.03%2C58.56c1.32-4.06%2C3.2-7.5%2C5.63-10.35%2C2.54-2.94%2C5.54-5.17%2C8.98-6.69%2C3.56-1.52%2C7.51-2.28%2C11.87-2.28%2C5.07%2C0%2C9.54%2C1.22%2C13.39%2C3.65%2C3.95%2C2.33%2C7.05%2C5.58%2C9.28%2C9.74%2C2.33%2C4.06%2C3.6%2C8.62%2C3.8%2C13.7h-54.63c.32-2.79.87-5.38%2C1.67-7.77ZM100.15%2C67.39c2.95%2C1.73%2C6.8%2C3.2%2C11.57%2C4.42l9.44%2C2.44c5.68%2C1.52%2C9.74%2C3.5%2C12.18%2C5.93%2C2.44%2C2.44%2C3.66%2C5.63%2C3.66%2C9.59%2C0%2C3.05-.81%2C5.73-2.44%2C8.07-1.52%2C2.23-3.81%2C3.96-6.85%2C5.18-2.95%2C1.22-6.29%2C1.83-10.65%2C1.83s-8.88-.91-13.55-2.74c-3.09-1.3-5.94-2.91-8.57-4.82-1.11-.8-2.17-1.66-3.2-2.57-.14.15-.28.29-.43.42h0s0%2C0%2C0%2C0c-2.22%2C2.17-4.97%2C4.08-8.24%2C5.75-5.28%2C2.74-11.06%2C4.11-17.35%2C4.11s-12.12-1.36-16.89-4.11c-4.67-2.84-8.32-6.69-10.96-11.57-2.54-4.97-3.81-10.7-3.81-17.2h62.09c.05-3.01-.13-5.89-.54-8.63%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1.2%2C1.43%2C2.71%2C2.73%2C4.54%2C3.91ZM199.28%2C41.51c3.56-1.52%2C7.51-2.28%2C11.87-2.28%2C5.08%2C0%2C9.54%2C1.22%2C13.4%2C3.65%2C3.96%2C2.33%2C7.05%2C5.58%2C9.28%2C9.74%2C2.34%2C4.06%2C3.6%2C8.63%2C3.81%2C13.7h-54.63c.32-2.79.87-5.38%2C1.66-7.77%2C1.32-4.06%2C3.19-7.51%2C5.63-10.35%2C2.54-2.94%2C5.53-5.17%2C8.98-6.69ZM157.33%2C94.94c-1.42-3.35-2.13-7.31-2.13-11.87v-43.83h35.61c-1.9%2C1.35-3.64%2C2.92-5.23%2C4.71-3.15%2C3.45-5.58%2C7.56-7.3%2C12.33-1.73%2C4.77-2.59%2C10.04-2.59%2C15.82%2C0%2C7.71%2C1.62%2C14.51%2C4.87%2C20.39%2C1.74%2C3.15%2C3.84%2C5.93%2C6.28%2C8.35-2.65%2C1.57-5.03%2C2.65-7.14%2C3.22-2.23.6-4.51.91-6.85.91-3.55%2C0-6.69-.86-9.44-2.58-2.64-1.73-4.67-4.21-6.09-7.46ZM243.25%2C91.13c-2.54%2C3.85-6.39%2C7.1-11.55%2C9.73-5.28%2C2.74-10.86%2C4.11-17.35%2C4.11s-12.12-1.37-16.89-4.11c-4.67-2.84-8.32-6.69-10.96-11.57-2.54-4.97-3.81-10.7-3.81-17.2h60.56v19.03Z%22%2F%3E%3C%2Fsvg%3E");
  --logo-k:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%20314%20122%22%3E%3Cpath%20fill%3D%22%23090B0A%22%20d%3D%22M281.15%2C33.75c-2.33-.61-4.62-.91-6.85-.91-4.16%2C0-7.97%2C1.07-11.41%2C3.2-3.45%2C2.13-6.34%2C4.92-8.67%2C8.37-2.23%2C3.45-3.66%2C7.3-4.26%2C11.57v-21.31h-6.69v24.09c-.18-.68-.38-1.36-.6-2.02-1.42-4.77-3.6-8.93-6.54-12.48-2.84-3.55-6.34-6.29-10.5-8.22-4.16-2.03-9.4-3.05-14.67-3.05v.02h-55.74V10.78h-6.69v22.23h-31.31s0%2C0%2C0%2C0c-3.68.03-7.03.48-10.05%2C1.36-3.05.81-5.73%2C2.08-8.06%2C3.81-2.23%2C1.62-3.96%2C3.65-5.18%2C6.08-1.09%2C2.18-1.69%2C4.63-1.81%2C7.38%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0-1.24-2.7-2.79-5.16-4.63-7.38-2.84-3.55-6.34-6.29-10.5-8.22-4.16-2.03-8.93-3.05-14.31-3.05s-10.09.97-14.45%2C2.89c-4.36%2C1.83-8.12%2C4.52-11.26%2C8.06-3.15%2C3.45-5.58%2C7.55-7.3%2C12.33-1.73%2C4.77-2.59%2C10.04-2.59%2C15.82%2C0%2C7.71%2C1.62%2C14.51%2C4.87%2C20.39%2C3.25%2C5.89%2C7.71%2C10.5%2C13.39%2C13.85%2C5.68%2C3.25%2C12.22%2C4.87%2C19.63%2C4.87%2C6.59%2C0%2C12.53-1.17%2C17.8-3.5%2C3.61-1.67%2C6.65-3.57%2C9.12-5.71%2C0%2C0%2C0%2C0%2C0%2C0%2C2.14%2C1.63%2C4.44%2C3.12%2C6.91%2C4.49%2C2.84%2C1.42%2C5.83%2C2.54%2C8.98%2C3.35%2C3.15.91%2C6.24%2C1.37%2C9.28%2C1.37%2C5.68%2C0%2C10.5-.86%2C14.45-2.59%2C4.06-1.83%2C7.15-4.36%2C9.28-7.61%2C2.13-3.24%2C3.2-7%2C3.2-11.26%2C0-5.38-1.62-9.79-4.87-13.24-3.15-3.44-8.32-6.08-15.52-7.91l-9.89-2.58c-5.38-1.42-9.18-3.25-11.41-5.48-2.13-2.23-3.19-4.97-3.19-8.22%2C0-2.74.71-5.07%2C2.13-7%2C1.42-2.03%2C3.56-3.55%2C6.4-4.57%2C2.84-1.01%2C6.18-1.52%2C10.04-1.52h20.69s0%2C0%2C0%2C0h10.16v44.14c0%2C5.88.96%2C10.9%2C2.89%2C15.06%2C2.03%2C4.06%2C4.82%2C7.2%2C8.38%2C9.44%2C3.05%2C1.86%2C6.56%2C2.94%2C10.53%2C3.25h-.02c.15.02.31.03.47.04.06%2C0%2C.12%2C0%2C.19.01.42.03.86.04%2C1.32.04.15%2C0%2C.29.01.44.01%2C2.23%2C0%2C4.46-.3%2C6.7-.91.08-.02.16-.05.24-.07%2C4-1.02%2C8.14-2.91%2C11.18-5.98%2C1%2C.74%2C2.04%2C1.45%2C3.14%2C2.09%2C5.68%2C3.24%2C12.22%2C4.87%2C19.63%2C4.87%2C6.59%2C0%2C12.53-1.17%2C17.8-3.5%2C5.09-2.35%2C9.03-5.17%2C11.86-8.46v10.14h6.69v-38.65c.11-6.49%2C1.22-12.07%2C3.35-16.74%2C2.23-4.77%2C5.17-8.42%2C8.83-10.96%2C3.65-2.54%2C7.61-3.81%2C11.87-3.81%2C2.33%2C0%2C4.71.36%2C7.15%2C1.07%2C2.54.72%2C4.46%2C1.68%2C5.78%2C2.89v-6.85c-1.52-1.12-3.45-1.98-5.78-2.59ZM36.03%2C58.56c1.32-4.06%2C3.2-7.5%2C5.63-10.35%2C2.54-2.94%2C5.54-5.17%2C8.98-6.69%2C3.56-1.52%2C7.51-2.28%2C11.87-2.28%2C5.07%2C0%2C9.54%2C1.22%2C13.39%2C3.65%2C3.95%2C2.33%2C7.05%2C5.58%2C9.28%2C9.74%2C2.33%2C4.06%2C3.6%2C8.62%2C3.8%2C13.7h-54.63c.32-2.79.87-5.38%2C1.67-7.77ZM100.15%2C67.39c2.95%2C1.73%2C6.8%2C3.2%2C11.57%2C4.42l9.44%2C2.44c5.68%2C1.52%2C9.74%2C3.5%2C12.18%2C5.93%2C2.44%2C2.44%2C3.66%2C5.63%2C3.66%2C9.59%2C0%2C3.05-.81%2C5.73-2.44%2C8.07-1.52%2C2.23-3.81%2C3.96-6.85%2C5.18-2.95%2C1.22-6.29%2C1.83-10.65%2C1.83s-8.88-.91-13.55-2.74c-3.09-1.3-5.94-2.91-8.57-4.82-1.11-.8-2.17-1.66-3.2-2.57-.14.15-.28.29-.43.42h0s0%2C0%2C0%2C0c-2.22%2C2.17-4.97%2C4.08-8.24%2C5.75-5.28%2C2.74-11.06%2C4.11-17.35%2C4.11s-12.12-1.36-16.89-4.11c-4.67-2.84-8.32-6.69-10.96-11.57-2.54-4.97-3.81-10.7-3.81-17.2h62.09c.05-3.01-.13-5.89-.54-8.63%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C0%2C1.2%2C1.43%2C2.71%2C2.73%2C4.54%2C3.91ZM199.28%2C41.51c3.56-1.52%2C7.51-2.28%2C11.87-2.28%2C5.08%2C0%2C9.54%2C1.22%2C13.4%2C3.65%2C3.96%2C2.33%2C7.05%2C5.58%2C9.28%2C9.74%2C2.34%2C4.06%2C3.6%2C8.63%2C3.81%2C13.7h-54.63c.32-2.79.87-5.38%2C1.66-7.77%2C1.32-4.06%2C3.19-7.51%2C5.63-10.35%2C2.54-2.94%2C5.53-5.17%2C8.98-6.69ZM157.33%2C94.94c-1.42-3.35-2.13-7.31-2.13-11.87v-43.83h35.61c-1.9%2C1.35-3.64%2C2.92-5.23%2C4.71-3.15%2C3.45-5.58%2C7.56-7.3%2C12.33-1.73%2C4.77-2.59%2C10.04-2.59%2C15.82%2C0%2C7.71%2C1.62%2C14.51%2C4.87%2C20.39%2C1.74%2C3.15%2C3.84%2C5.93%2C6.28%2C8.35-2.65%2C1.57-5.03%2C2.65-7.14%2C3.22-2.23.6-4.51.91-6.85.91-3.55%2C0-6.69-.86-9.44-2.58-2.64-1.73-4.67-4.21-6.09-7.46ZM243.25%2C91.13c-2.54%2C3.85-6.39%2C7.1-11.55%2C9.73-5.28%2C2.74-10.86%2C4.11-17.35%2C4.11s-12.12-1.37-16.89-4.11c-4.67-2.84-8.32-6.69-10.96-11.57-2.54-4.97-3.81-10.7-3.81-17.2h60.56v19.03Z%22%2F%3E%3C%2Fsvg%3E");
  box-sizing:border-box;
}
*,*::before,*::after{box-sizing:inherit}
html{-webkit-text-size-adjust:100%;scroll-snap-type:y mandatory;scroll-behavior:auto;background:var(--night)}
body{margin:0;background:var(--night);color:var(--white);font-family:var(--sans);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,figure,blockquote,dl,dd{margin:0;padding:0}
ul,ol{list-style:none}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}

/* ---------- Slides ---------- */
#deck{display:block}
.slide{
  /* per-ground variables; night is the default */
  --bg:var(--night); --ink:var(--white); --mute:#E8EDE5; --line:rgb(255 255 255 / .18); --surface:#16201B;
  --accent:var(--celadon); --focus:var(--celadon); --grain:.06; --grain-blend:screen; --logo-bg:var(--logo-w);
  position:relative;isolation:isolate;overflow:hidden;
  height:100vh;height:100svh;min-height:0;
  scroll-snap-align:start;scroll-snap-stop:always;
  background-color:var(--bg);color:var(--ink);
}
/* Grounds, taken from the splash page. Set with data-ground on the section. */
.slide[data-ground="night"]{background-image:radial-gradient(var(--glow-w,55%) var(--glow-h,40%) at var(--glow-x,50%) var(--glow-y,45%),color-mix(in srgb,var(--celadon) 5.2%,transparent),transparent)}
.slide[data-ground="deep"]{--bg:var(--ground-deep);--surface:#2B4439;background-image:radial-gradient(var(--glow-w,70%) var(--glow-h,62%) at var(--glow-x,50%) var(--glow-y,46%),var(--ground-mid),transparent 78%)}
.slide[data-ground="slate"]{--bg:var(--slate);--surface:#4B5D53;--grain:.16;--grain-blend:overlay;--ov:var(--slate-ov)}
.slide[data-ground="green"]{--bg:var(--green-bg);--surface:#3C6552;--grain:.16;--grain-blend:overlay;--ov:var(--celadon)}
.slide[data-ground="frost"]{--bg:var(--frost);--ink:var(--night);--mute:var(--mute-light);--line:rgb(9 11 10 / .14);--surface:var(--mist);--accent:var(--green);--focus:var(--malachite);--grain:0;--ov:var(--celadon);--logo-bg:var(--logo-k)}
.slide[data-ground="mist"]{--bg:var(--mist);--ink:var(--night);--mute:var(--mute-light);--line:rgb(9 11 10 / .14);--surface:var(--frost);--accent:var(--green);--focus:var(--malachite);--grain:0;--logo-bg:var(--logo-k)}
/* grain, one texture for every dark slide */
.slide::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:var(--grain);mix-blend-mode:var(--grain-blend);background-image:var(--grain-img)}

/* Background layer: optional, first child of the slide, fills the whole viewport behind the canvas. */
.slide-bg{position:absolute;inset:0;z-index:-2;pointer-events:none;overflow:hidden}
/* soft color blob (the site's .grad > .ov) */
.bg-ov{position:absolute;left:var(--ox,50%);top:var(--oy,50%);width:var(--ow,42%);aspect-ratio:.8;translate:-50% -50%;border-radius:50%;background:var(--ov,var(--celadon));filter:blur(80px);opacity:var(--oo,1)}
/* blurred celadon stadium ring (the manifesto halo) */
.bg-halo{position:absolute;left:var(--hx,50%);top:var(--hy,50%);height:var(--hh,118%);aspect-ratio:766/999;translate:-50% -50%;background:var(--halo-img) center/contain no-repeat;opacity:var(--ho,.5)}
/* full-bleed photo with a scrim; --dim 0..1 sets how far it sinks into the ground */
.bg-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.bg-photo+.bg-scrim,.bg-scrim{position:absolute;inset:0;background:linear-gradient(var(--scrim-dir,90deg),var(--bg) var(--scrim-a,30%),color-mix(in srgb,var(--bg) 0%,transparent) var(--scrim-b,75%))}
/* half-bleed photo: fills one side of the viewport and dissolves into the ground on its inner edge */
.bg-half{position:absolute;top:0;bottom:0;right:0;width:var(--w,50%);object-fit:cover;object-position:var(--pos,50% 50%);height:100%;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 var(--fade,28%));mask-image:linear-gradient(90deg,transparent,#000 var(--fade,28%))}
.bg-half.is-left{right:auto;left:0;-webkit-mask-image:linear-gradient(270deg,transparent,#000 var(--fade,28%));mask-image:linear-gradient(270deg,transparent,#000 var(--fade,28%))}

/* Canvas: a fixed 1280 x 720 stage, scaled to fit by --k (set in shell.js). Design in px at 1280 x 720. */
.canvas{
  position:absolute;left:50%;top:50%;width:var(--cw);height:var(--ch);
  margin:calc(var(--ch) / -2) 0 0 calc(var(--cw) / -2);
  transform:scale(var(--k));transform-origin:50% 50%;
  display:flex;flex-direction:column;
  padding:var(--pad-top) var(--pad-x) var(--pad-bottom);
}
.slide-head{flex:none;display:flex;flex-direction:column;gap:14px;max-width:960px}
.slide-head .kicker{margin-bottom:4px}
.slide-body{flex:1 1 auto;min-height:0;margin-top:36px;position:relative}
.slide-head:empty+.slide-body,.canvas>.slide-body:first-child{margin-top:0}
.slide-foot{flex:none;min-height:24px;margin-top:20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding-right:120px}
.slide-foot .foot-note{color:var(--mute);margin-right:6px}
/* small wordmark, top right of every canvas; data-mark="off" on the slide removes it */
.canvas::before{content:"";position:absolute;right:var(--pad-x);top:calc(var(--pad-top) - 2px);height:17px;aspect-ratio:314/122;background:var(--logo-bg) center/contain no-repeat;opacity:.9}
.slide[data-mark="off"] .canvas::before{display:none}
/* slide number: printed pages, the overview and the phone stack use this; on screen the fixed counter does */
.slide::before{content:attr(data-n);position:absolute;right:20px;bottom:14px;z-index:2;font-family:var(--num);font-weight:300;font-size:11px;letter-spacing:.08em;color:var(--mute);display:none}

/* ---------- Type roles (deck sizes for the 1280 x 720 canvas) ---------- */
.t-display{font-family:var(--head);font-weight:200;font-size:56px;line-height:1.06;letter-spacing:.01em;text-transform:uppercase;text-wrap:balance}
.t-headline{font-family:var(--head);font-weight:200;font-size:38px;line-height:1.1;letter-spacing:.01em;text-transform:uppercase;text-wrap:balance}
.t-statement{font-family:var(--head);font-weight:200;font-size:32px;line-height:1.25;letter-spacing:-.01em;text-wrap:balance}
.t-title{font-family:var(--head);font-weight:200;font-size:22px;line-height:1.15;letter-spacing:.03em;text-transform:uppercase}
.t-small-title{font-family:var(--sans);font-weight:600;font-size:18px;line-height:1.3;letter-spacing:-.01em}
.t-lede{font-family:var(--sans);font-weight:400;font-size:20px;line-height:1.45;text-wrap:pretty}
.t-body{font-family:var(--sans);font-weight:400;font-size:16px;line-height:1.5;text-wrap:pretty}
.t-support{font-family:var(--sans);font-weight:400;font-size:14px;line-height:1.45;text-wrap:pretty}
.t-label{font-family:var(--sans);font-weight:400;font-size:12px;line-height:1.35}
.t-caps{font-family:var(--sans);font-weight:400;font-size:12px;line-height:1.35;letter-spacing:2px;text-transform:uppercase}
.kicker{font-family:var(--detail);font-weight:400;font-size:12px;line-height:1.55;letter-spacing:.5em;text-transform:uppercase;color:var(--mute)}
.t-num{font-family:var(--num);font-weight:200;font-size:72px;line-height:1;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.t-num-m{font-family:var(--num);font-weight:200;font-size:44px;line-height:1;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.t-num-s{font-family:var(--num);font-weight:300;font-size:18px;line-height:1.2;font-variant-numeric:tabular-nums}
.mute{color:var(--mute)} .accent{color:var(--accent)}
.measure{max-width:46ch} .measure-s{max-width:34ch} .measure-l{max-width:60ch}
strong,b{font-weight:600}
.nowrap{white-space:nowrap}

/* ---------- Layout ---------- */
.cols{display:grid;gap:var(--gutter);grid-template-columns:repeat(var(--n,2),minmax(0,1fr));align-items:start}
.cols-2{--n:2} .cols-3{--n:3} .cols-4{--n:4} .cols-5{--n:5} .cols-6{--n:6}
.cols-5-7{grid-template-columns:minmax(0,5fr) minmax(0,7fr)}
.cols-7-5{grid-template-columns:minmax(0,7fr) minmax(0,5fr)}
.cols-4-8{grid-template-columns:minmax(0,4fr) minmax(0,8fr)}
.cols-8-4{grid-template-columns:minmax(0,8fr) minmax(0,4fr)}
.cols-6-6{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.gap-0{gap:0} .gap-s{gap:12px} .gap-l{gap:48px} .gap-xl{gap:72px}
.fill{height:100%} .stretch{align-items:stretch} .middle{align-items:center} .bottom{align-items:end}
.stack{display:flex;flex-direction:column;gap:16px} .stack-xs{gap:6px} .stack-s{gap:10px} .stack-l{gap:28px} .stack-xl{gap:44px}
.row{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.center{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.vcenter{display:flex;flex-direction:column;justify-content:center}
.push{margin-top:auto}
.span-2{grid-column:span 2} .span-3{grid-column:span 3}

/* ---------- Components ---------- */
.rule{height:1px;background:var(--line);border:0;width:100%;transform-origin:0 50%}
/* cell: an editorial block under a hairline (default container for a point) */
.cell{border-top:1px solid var(--line);padding-top:16px;display:flex;flex-direction:column;gap:8px}
/* card: a solid panel (never translucent) */
.card{background:var(--surface);border-radius:14px;padding:22px 24px;display:flex;flex-direction:column;gap:10px}
.card-line{border:1px solid var(--line);border-radius:14px;padding:22px 24px;display:flex;flex-direction:column;gap:10px}
/* list with the 6px square marker (the square from the site's buttons and links) */
.list{display:flex;flex-direction:column;gap:9px}
.list>li{position:relative;padding-left:20px}
.list>li::before{content:"";position:absolute;left:0;top:.58em;width:6px;height:6px;background:var(--accent)}
/* index numeral: 01, 02 */
.idx{font-family:var(--num);font-weight:300;font-size:13px;letter-spacing:.12em;color:var(--accent)}
.idx-ring{display:inline-grid;place-items:center;width:34px;height:34px;border-radius:50%;box-shadow:inset 0 0 0 1px var(--line);font-family:var(--num);font-weight:300;font-size:13px;color:var(--ink);flex:none}
/* stat: number, label, note */
.stat{display:flex;flex-direction:column;gap:10px}
.stat .stat-label{font-family:var(--sans);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mute)}
.stat .stat-note{font-size:14px;line-height:1.45;color:var(--mute);max-width:30ch}
/* tag: outline pill label */
.tag{display:inline-flex;align-items:center;height:26px;padding:0 12px;border-radius:999px;box-shadow:inset 0 0 0 1px var(--line);font-family:var(--head);font-weight:400;font-size:11px;letter-spacing:.16em;text-transform:uppercase;white-space:nowrap}
.tag-solid{background:var(--green);color:var(--white);box-shadow:inset 0 0 0 1px rgb(255 255 255 / .28)}
/* callout: one line that needs weight */
.callout{border-left:1px solid var(--accent);padding:4px 0 4px 18px}
/* table */
.table{width:100%;border-collapse:collapse;font-size:14px}
.table th{font-family:var(--sans);font-weight:400;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mute);text-align:left;padding:0 0 10px}
.table td{border-top:1px solid var(--line);padding:12px 0}
.table td:last-child,.table th:last-child{text-align:right}
/* figures */
.fig{position:relative;overflow:hidden;border-radius:14px;background:var(--surface)}
.fig>img,.fig>video{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.fig-oval{border-radius:50%/41%;aspect-ratio:.82}                     /* the lens shape from the site's imaging section */
.fig-product{background:none;border-radius:0;overflow:visible}
.fig-product>img{object-fit:contain;object-position:50% 100%}
.fig-phone{border-radius:26px;box-shadow:0 0 0 1px var(--line)}
.fig-cap{font-family:var(--sans);font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--mute);margin-top:10px;text-align:center}
.avatar{display:grid;place-items:center;width:72px;aspect-ratio:.82;border-radius:50%/41%;box-shadow:inset 0 0 0 1px var(--accent);font-family:var(--head);font-weight:200;font-size:18px;letter-spacing:.06em;flex:none}
/* wordmark */
.logo{--logo-h:1em;display:inline-block;flex:none;align-self:flex-start;aspect-ratio:314/122;height:var(--logo-h);background:var(--logo-bg) center/contain no-repeat;vertical-align:middle}
/* text link (site .lnk, simplified) */
.lnk{text-decoration:none;background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat;padding-bottom:3px}
.lnk:hover{background-size:0 1px;background-position:100% 100%;transition:background-size .4s var(--ease-wd)}

/* Evidence link: a claim's link to its data room document.
   <a class="ev" href="#" data-doc="visia-validation">VISIA validation summary</a> */
.ev{position:relative;display:inline-flex;align-items:center;gap:8px;height:24px;padding:0 11px 0 10px;border-radius:999px;
  box-shadow:inset 0 0 0 1px var(--line);color:var(--ink);text-decoration:none;white-space:nowrap;cursor:pointer;
  font-family:var(--head);font-weight:400;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;line-height:1;
  transition:background-color .3s var(--ease-wd),color .3s var(--ease-wd),box-shadow .3s var(--ease-wd)}
.ev::before{content:"";width:6px;height:6px;background:var(--accent);flex:none;transition:background-color .3s var(--ease-wd)}
.ev::after{content:"\2197";font-family:var(--sans);font-size:11px;letter-spacing:0;opacity:.7;transform:translateY(-.5px)}
.ev:hover,.ev:focus-visible{background:var(--green);color:var(--white);box-shadow:inset 0 0 0 1px rgb(255 255 255 / .28)}
.ev:hover::before,.ev:focus-visible::before{background:var(--white)}
.ev[data-pending]::after{content:"";display:none}       /* no document linked yet: no arrow */
.ev-inline{height:20px;padding:0 9px 0 8px;font-size:9.5px;vertical-align:.15em;margin-left:6px}
.ev-toast{position:fixed;left:50%;bottom:36px;translate:-50% 0;z-index:80;padding:9px 16px;border-radius:999px;background:var(--mist);color:var(--night);font-family:var(--sans);font-size:13px;opacity:0;pointer-events:none;transition:opacity .3s var(--ease-shift)}
.ev-toast.on{opacity:1}

/* ---------- Entrance animations ---------- */
/* Final state is the default. Hidden states apply only when JS is running, the slide has not been seen,
   and motion is allowed. shell.js adds .in to a slide when it becomes active. */
@media (prefers-reduced-motion:no-preference){
  html.js .slide:not(.in) [data-anim="fade-up"],
  html.js .slide:not(.in) [data-anim="stagger"]>*{opacity:0;transform:translateY(10px)}
  html.js .slide:not(.in) [data-anim="fade"]{opacity:0}
  html.js .slide:not(.in) [data-anim="scale"]{opacity:0;transform:scale(.975)}
  html.js .slide:not(.in) [data-anim="draw"]:not(svg):not(g){transform:scaleX(0)}
  html.js .slide:not(.in) [data-anim="count"]{opacity:0}
  html.js .slide:not(.in) .draw-path{stroke-dashoffset:1}
  html.js .slide [data-anim="fade-up"],
  html.js .slide [data-anim="stagger"]>*{transition:opacity var(--dur) var(--ease) var(--d,0ms),transform var(--dur) var(--ease) var(--d,0ms)}
  html.js .slide [data-anim="fade"]{transition:opacity var(--dur-fade) var(--ease) var(--d,0ms)}
  html.js .slide [data-anim="scale"]{transition:opacity var(--dur-scale) var(--ease) var(--d,0ms),transform var(--dur-scale) var(--ease) var(--d,0ms)}
  html.js .slide [data-anim="draw"]:not(svg):not(g){transform-origin:0 50%;transition:transform var(--dur-draw) var(--ease) var(--d,0ms)}
  html.js .slide [data-anim="count"]{transition:opacity var(--dur-fade) var(--ease) var(--d,0ms)}
  html.js .slide .draw-path{stroke-dasharray:1;transition:stroke-dashoffset var(--dur-draw) var(--ease) var(--d,0ms)}
}
.draw-path{stroke-dasharray:1;stroke-dashoffset:0}

/* ---------- Chrome: progress, counter, hint ---------- */
.deck-progress{position:fixed;left:0;right:0;bottom:0;height:2px;z-index:60;background:rgb(255 255 255 / .1);pointer-events:none}
.deck-progress>i{display:block;height:100%;width:100%;background:var(--celadon);transform:scaleX(var(--p,0));transform-origin:0 50%;transition:transform .6s var(--ease-shift),background-color .6s var(--ease-shift)}
.deck-counter{position:fixed;right:20px;bottom:14px;z-index:60;font-family:var(--num);font-weight:300;font-size:11px;letter-spacing:.08em;color:var(--white);opacity:.75;pointer-events:none;transition:color .6s var(--ease-shift)}
.deck-jump{position:fixed;right:20px;bottom:36px;z-index:60;font-family:var(--num);font-weight:300;font-size:13px;letter-spacing:.08em;padding:6px 12px;border-radius:999px;background:var(--mist);color:var(--night);opacity:0;pointer-events:none;transition:opacity .2s}
.deck-jump.on{opacity:1}
html[data-tone="light"] .deck-progress{background:rgb(9 11 10 / .1)}
html[data-tone="light"] .deck-progress>i{background:var(--green)}
html[data-tone="light"] .deck-counter{color:var(--night)}
.sr-only{position:fixed;left:0;top:0;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}

/* ---------- Overview grid (O or Escape) ---------- */
html.overview{scroll-snap-type:none}
html.overview body{background:var(--night)}
html.overview #deck{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;padding:56px 40px 72px;max-width:1680px;margin:0 auto}
html.overview .slide{height:auto;aspect-ratio:16/9;border-radius:8px;cursor:pointer;scroll-snap-align:none;box-shadow:0 0 0 1px rgb(255 255 255 / .14);container-type:inline-size}
html.overview .slide .canvas{transform:scale(var(--kt,.2));pointer-events:none}
html.overview .slide.is-current{box-shadow:0 0 0 2px var(--celadon)}
html.overview .slide:hover{box-shadow:0 0 0 2px var(--white)}
html.overview .slide::before{display:block;right:10px;bottom:8px;font-size:10px}
html.overview .deck-progress,html.overview .deck-counter{display:none}
html.overview [data-anim],html.overview [data-anim]>*{opacity:1!important;transform:none!important;transition:none!important}
html.overview .draw-path{stroke-dashoffset:0!important;transition:none!important}

/* ---------- Phones: stacked scroll, no scaling ---------- */
@media (max-width:760px){
  html{scroll-snap-type:none}
  .slide{height:auto;min-height:0;scroll-snap-align:none}
  .slide::before{display:block}
  .canvas{position:relative;left:auto;top:auto;width:100%;height:auto;margin:0;transform:none;padding:64px 20px 56px}
  .canvas::before{right:20px;top:24px;height:14px}
  .slide-head{gap:12px;max-width:none}
  .slide-body{margin-top:28px}
  .slide-foot{padding-right:0;margin-top:28px}
  .cols,.cols[class]{grid-template-columns:minmax(0,1fr);gap:28px}
  .cols.keep-2{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
  .span-2,.span-3{grid-column:auto}
  .fill{height:auto}
  .t-display{font-size:32px} .t-headline{font-size:26px} .t-statement{font-size:22px} .t-title{font-size:20px}
  .t-lede{font-size:17px} .t-num{font-size:52px} .t-num-m{font-size:34px}
  .measure,.measure-s,.measure-l{max-width:none}
  .bg-half{position:relative;width:100%;height:56vw;-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
  .slide-bg:has(.bg-half){position:relative;z-index:0}
  .fig{max-height:70vh}
  .hide-phone{display:none!important}
  .deck-counter{display:none}
}
@media (min-width:761px){.only-phone{display:none!important}}

/* ---------- Print: one slide per landscape page, everything in its final state ---------- */
@page{size:13.333in 7.5in;margin:0}
@media print{
  html,body{background:none;scroll-snap-type:none;width:1280px}
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}
  #deck{display:block!important;padding:0!important;max-width:none!important}
  .slide{width:1280px;height:720px!important;aspect-ratio:auto!important;border-radius:0!important;box-shadow:none!important;break-after:page;page-break-after:always;break-inside:avoid;overflow:hidden}
  .slide:last-child{break-after:auto;page-break-after:auto}
  .slide::before{display:block!important;right:28px;bottom:20px;font-size:10px}
  .slide::after{mix-blend-mode:normal;opacity:calc(var(--grain) * .5)}
  .canvas{position:absolute!important;left:0!important;top:0!important;margin:0!important;width:1280px!important;height:720px!important;transform:none!important;padding:var(--pad-top) var(--pad-x) var(--pad-bottom)!important}
  .bg-ov{filter:blur(60px)}
  [data-anim],[data-anim]>*{opacity:1!important;transform:none!important;transition:none!important}
  .draw-path{stroke-dashoffset:0!important;transition:none!important}
  .deck-progress,.deck-counter,.deck-jump,.ev-toast,.sr-only{display:none!important}
  video{display:none} video+img.print-poster{display:block!important}
  /* evidence links print as a small footnote label; a real href stays clickable in the PDF */
  .ev{height:auto;padding:0;border-radius:0;box-shadow:none;background:none!important;color:var(--mute)!important;font-family:var(--sans);font-size:9.5px;letter-spacing:.04em;text-transform:none;gap:5px}
  .ev::before{width:4px;height:4px;background:var(--accent)!important}
  .ev::after{content:""!important;display:none}
  .slide-foot{gap:6px 16px}
  .slide-foot:has(.ev)::before{content:"Data room";font-family:var(--sans);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
}
img.print-poster{display:none}
