/* =====================================================================
   Canvas layout, 15.09.2026. Each slide is drawn on a 1600x900 stage
   scaled into the 1280x720 reveal slide, using the coordinates of the
   pptx v26 slide export, so the online deck matches the pptx slide for
   slide. Loaded after theme.proxeno.css and overrides its frame.
   ===================================================================== */
:root{
  --cv-ground:#F6F1E7; --cv-card:#FCFAF4; --cv-line:#E4DCCB;
  --cv-ink:#0B1620; --cv-text:#22303B; --cv-muted:#55636E;
  --cv-teal:#1E6F6A; --cv-teal-pale:#E8F0ED; --cv-teal-bright:#4FA8A1;
  --cv-bronze:#B08D57; --cv-bronze-text:#75592F; --cv-bronze-light:#E2C48C;
  --cv-slate:#2E3A45; --cv-parch:#F6F1E7;
}

/* ---------- frame ---------- */
.reveal .backgrounds .slide-background{ background-image:none !important; }
.reveal .slides section::before{ display:none !important; }
.reveal .slides section.cv{ padding:0; display:block; background:var(--cv-ground); background-image:none; overflow:hidden; }
.reveal .slides section.cv.dark{ background:var(--cv-ink); }
.reveal .slides section.cv > .stage{
  position:absolute; left:0; top:0; width:1600px; height:900px;
  transform:scale(.8); transform-origin:0 0; z-index:2;
}
.stage{ font-family:var(--font-sans); color:var(--cv-text); line-height:1.4; font-size:18px; }
.stage p, .stage h1, .stage h2, .stage h3{ margin:0; text-transform:none; }
.stage ul{ list-style:none; margin:0; padding:0; display:block; }
.stage li{ margin:0; }
.stage img{ max-width:none; max-height:none; margin:0; border:0; box-shadow:none; display:block; }
.stage b{ font-weight:600; color:var(--cv-ink); }
.stage .a{ position:absolute; }
.stage .serif{ font-family:var(--font-serif); }

/* ---------- shared text ---------- */
.stage .eb{ left:78px; top:40px; font-family:var(--font-serif); font-style:italic; font-size:25px; line-height:1.2; color:var(--cv-bronze-text); }
.stage .hd{ left:78px; width:1444px; font-family:var(--font-serif); font-weight:400; font-size:48px; line-height:1.14; letter-spacing:-.5px; color:var(--cv-ink); }
.stage .sub{ font-family:var(--font-serif); font-size:27px; line-height:1.3; color:var(--cv-ink); }
.stage .body{ font-size:19px; line-height:1.5; color:var(--cv-text); }
.stage .body + .body{ margin-top:14px; }
.stage .small{ font-size:17px; line-height:1.5; color:var(--cv-text); }
.stage .ital{ font-style:italic; color:var(--cv-muted); }

/* ---------- cards and callouts ---------- */
.stage .pc{ box-sizing:border-box; background:var(--cv-card); border:1px solid var(--cv-line); border-radius:10px; box-shadow:0 1px 2px rgba(11,22,32,.04), 0 6px 18px rgba(11,22,32,.05); }
.stage .pc.pad{ padding:26px 34px; }
.stage .pc-t{ font-weight:600; font-size:21px; line-height:1.25; color:var(--cv-ink); }
.stage .pc-b{ font-size:15.5px; line-height:1.48; color:var(--cv-muted); margin-top:14px; }
.stage .pc.top-t{ border-top:10px solid var(--cv-teal); border-radius:0 0 10px 10px; }
.stage .pc.top-b{ border-top:10px solid var(--cv-bronze); border-radius:0 0 10px 10px; }
.stage .pc.top-s{ border-top:10px solid var(--cv-slate); border-radius:0 0 10px 10px; }
.stage .call{ box-sizing:border-box; background:var(--cv-ink); color:var(--cv-parch); border-radius:8px; padding:14px 42px; display:flex; flex-direction:column; justify-content:center; font-size:21px; line-height:1.38; }
.stage .call .hi{ color:var(--cv-teal-bright); }
.stage .g3{ display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.stage .rule-b{ height:0; border-top:1.5px solid var(--cv-bronze); }
.stage .rule-l{ height:0; border-top:1px solid var(--cv-line); }

/* ---------- slide 1 and close ---------- */
.stage .s1-brief{ font-family:var(--font-serif); font-style:italic; font-size:25px; color:var(--cv-bronze-light); }
.stage .s1-title{ font-family:var(--font-serif); font-weight:400; font-size:128px; line-height:1; letter-spacing:-1px; color:var(--cv-parch); }
.stage .s1-tag{ font-family:var(--font-serif); font-size:34px; line-height:1.3; color:var(--cv-parch); }
.stage .s1-pill{ box-sizing:border-box; width:368px; height:63px; background:var(--cv-teal); color:#fff; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:22px; font-weight:500; }
.stage .s1-who{ font-size:19px; color:#B9C2C9; }
.stage .close-q{ font-family:var(--font-serif); font-size:48px; line-height:1.45; color:var(--cv-parch); }
.stage .close-n{ font-size:13px; line-height:1.5; color:#9FB0BD; }

/* ---------- svg diagrams ---------- */
.stage svg text{ font-family:var(--font-sans); }
.stage .sv-l{ font-weight:600; font-size:17px; fill:var(--cv-ink); }
.stage .sv-t{ fill:var(--cv-teal); }
.stage .sv-v{ font-family:var(--font-serif); font-size:28px; fill:var(--cv-ink); }
.stage .sv-n{ font-size:15px; fill:var(--cv-muted); }
.stage .sv-ax{ font-size:14px; fill:var(--cv-muted); }
.stage .sv-px{ font-size:16px; font-weight:700; fill:var(--cv-teal); }
.stage .sv-lp{ font-size:15px; fill:var(--cv-muted); }
.stage .sv-br{ font-size:15px; fill:var(--cv-bronze-text); }

/* ---------- stat cards ---------- */
.stage .stat-c{ display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:0 18px; }
.stage .stat-n{ font-family:var(--font-serif); font-weight:400; font-size:54px; line-height:1.05; color:var(--cv-ink); }
.stage .stat-n.teal{ color:var(--cv-teal); }
.stage .stat-l{ font-size:16.5px; line-height:1.35; color:var(--cv-muted); margin-top:14px; }
.stage .img-cap{ font-size:15.5px; line-height:1.3; color:var(--cv-muted); text-align:center; }

/* ---------- slide 7 platform ---------- */
.stage .phase{ font-family:var(--font-serif); font-weight:500; font-size:31px; letter-spacing:1.5px; color:var(--cv-slate); text-align:center; }
.stage .lane{ font-size:14px; font-weight:600; letter-spacing:.24em; text-transform:uppercase; color:var(--cv-bronze-text); }
.stage .bx{ position:absolute; box-sizing:border-box; background:var(--cv-card); border:2px solid var(--cv-bronze); border-radius:6px; padding:12px 8px 8px; }
.stage .bx.tl{ border-color:var(--cv-teal); }
.stage .bx.dash{ border:2px dashed var(--cv-teal); background:var(--cv-teal-pale); padding:12px 14px; }
.stage .bx.dk{ background:var(--cv-ink); border:0; padding:16px 14px; }
.stage .bx .bt{ font-family:var(--font-serif); font-weight:600; font-size:19px; line-height:1.12; text-align:center; color:var(--cv-ink); margin-bottom:8px; }
.stage .bx .bb{ font-size:12.5px; line-height:1.36; color:#3A4650; }
.stage .bx.dash .bt{ color:var(--cv-teal); font-size:22px; }
.stage .bx.dash .bb{ color:var(--cv-teal); font-size:13.5px; }
.stage .bx.dk .bt{ color:var(--cv-parch); font-size:22px; }
.stage .bx.dk .bb{ color:#C4CCD2; font-size:13px; }
.stage .ai{ position:absolute; right:10px; bottom:9px; background:var(--cv-teal); color:#fff; font-size:11px; font-weight:700; border-radius:10px; padding:2px 9px; line-height:1.4; }

/* ---------- slide 8 comparison table ---------- */
.stage table.xt{ border-collapse:collapse; table-layout:fixed; width:1444px; font-size:16.5px; }
.stage .xt th, .stage .xt td{ border:0; padding:0; }
.stage .xt th{ vertical-align:middle; background:var(--cv-ink); color:#fff; font-family:var(--font-serif); font-weight:600; font-size:22px; height:56px; text-align:center; }
.stage .xt th.px{ background:var(--cv-teal); }
.stage .xt td{ height:62px; text-align:center; vertical-align:middle; background:var(--cv-card); color:var(--cv-text); }
.stage .xt td:first-child{ text-align:left; padding-left:12px; }
.stage .xt td.px{ background:var(--cv-teal-pale); }
.stage .xt .y{ color:var(--cv-teal); font-size:26px; line-height:1; }
.stage .xt .n{ color:#B3AA9C; font-size:24px; line-height:1; }
.stage .xt .s{ display:block; font-style:italic; font-size:13.5px; line-height:1.2; color:var(--cv-muted); margin-top:3px; }
.stage .xt td.px .s{ color:var(--cv-teal); }

/* ---------- slide 9 fee table ---------- */
.stage table.ft{ border-collapse:collapse; table-layout:fixed; width:1390px; font-size:16px; line-height:1.36; background:var(--cv-card); }
.stage .ft th, .stage .ft td{ border:1px solid var(--cv-line); padding:7px 12px; vertical-align:middle; text-align:left; color:var(--cv-text); }
.stage .ft th{ font-weight:600; font-size:17.5px; text-align:center; color:var(--cv-ink); }
.stage .ft td:first-child{ font-weight:600; color:var(--cv-ink); }

/* ---------- slide 10 bars ---------- */
.stage .bar-l{ font-family:var(--font-serif); font-weight:600; font-size:28px; color:var(--cv-ink); }
.stage .bar-v{ font-family:var(--font-serif); font-weight:600; font-size:36px; }
.stage .bar-n{ font-style:italic; font-size:16px; color:var(--cv-text); }

/* ---------- slide 11 revenue ---------- */
.stage .rev-bar{ display:flex; height:60px; color:#fff; font-weight:600; }
.stage .rev-bar > div{ display:flex; align-items:center; justify-content:center; white-space:nowrap; }
.stage .rv-t{ font-family:var(--font-serif); font-weight:600; font-size:27px; line-height:1.15; color:var(--cv-ink); }
.stage .rv-a{ font-family:var(--font-serif); font-weight:600; font-size:23px; }
.stage .rv-d{ font-style:italic; font-size:15.5px; line-height:1.3; color:var(--cv-muted); }
.stage .rv-i{ font-size:16px; line-height:1.45; color:var(--cv-text); }
.stage .rv-i + .rv-i{ margin-top:14px; }
.stage .rv-i .tg{ font-size:14px; margin-left:8px; }
.stage .tg.it-t{ font-style:italic; color:var(--cv-teal); }
.stage .tg.it-b{ font-style:italic; color:var(--cv-bronze-text); }
.stage .tg.it-m{ font-style:italic; color:var(--cv-muted); }
.stage .tg.bd{ font-weight:600; font-size:16px; color:var(--cv-ink); }

/* ---------- slide 12 model table ---------- */
.stage table.mt{ border-collapse:collapse; table-layout:fixed; width:1444px; font-size:18px; }
.stage .mt th, .stage .mt td{ border:0; padding:0; }
.stage .mt th{ vertical-align:middle; text-align:center; background:var(--cv-ink); color:#fff; font-family:var(--font-serif); font-weight:600; font-size:22px; height:60px; }
.stage .mt th.b{ background:var(--cv-teal); }
.stage .mt td{ height:52px; border-bottom:1px solid var(--cv-line); background:var(--cv-card); color:var(--cv-text); vertical-align:middle; }
.stage .mt td:first-child{ padding-left:24px; text-align:left; }
.stage .mt .r{ text-align:right; padding-right:20px; }
.stage .mt .c{ text-align:center; }
.stage .mt td.b{ background:var(--cv-teal-pale); font-weight:600; color:var(--cv-ink); }
.stage .mt tr.tot td{ border-top:2px solid var(--cv-ink); font-weight:600; color:var(--cv-ink); }
.stage .mt tr.pro td{ font-weight:600; color:var(--cv-ink); }
.stage .mt tr.pro td.b{ color:var(--cv-teal); }

/* ---------- slide 14 status ---------- */
.stage .st-h{ font-family:var(--font-serif); font-weight:600; font-size:29px; }
.stage .st-list li + li{ margin-top:14px; }
.stage .st-list b{ display:block; font-size:17px; }
.stage .st-list span{ display:block; font-style:italic; font-size:14px; line-height:1.35; color:var(--cv-muted); margin-top:3px; }

/* ---------- slide 16 channels ---------- */
.stage .ch-h{ font-family:var(--font-serif); font-size:24px; color:var(--cv-bronze-text); }
.stage .tile{ position:absolute; box-sizing:border-box; background:var(--cv-card); border-left:4px solid var(--cv-bronze); border-radius:0 4px 4px 0; padding:15px 22px; }
.stage .reach{ display:grid; grid-template-columns:repeat(4,1fr); gap:17px; }
.stage .tile.plain{ position:static; border-left:0; border-radius:4px; padding:14px 15px; min-height:75px; }
.stage .tile.plain b{ font-size:15px; }
.stage .tile b{ display:block; font-weight:500; font-size:16px; color:var(--cv-ink); }
.stage .tile span{ display:block; font-size:13px; color:var(--cv-muted); margin-top:6px; }
.stage .crm{ box-sizing:border-box; background:var(--cv-teal); color:#fff; border-radius:6px; padding:20px 30px; }
.stage .crm .t{ font-family:var(--font-serif); font-size:28px; }
.stage .crm .d{ font-size:15.5px; margin-top:6px; }

/* ---------- slide 17 ask ---------- */
.stage .ask-a{ font-family:var(--font-serif); font-size:40px; color:var(--cv-teal); line-height:1.1; }
.stage .ask-t{ font-family:var(--font-serif); font-size:23px; color:var(--cv-ink); margin-top:14px; }
.stage .ask-l{ margin-top:24px; }
.stage .ask-l li{ font-size:14.5px; line-height:1.4; color:var(--cv-text); }
.stage .ask-l li + li{ margin-top:10px; }

/* ---------- footer: small controls cluster, no band ---------- */
.deck-footer{ left:auto !important; right:0; bottom:0; height:44px; background:transparent !important; box-shadow:none !important; padding:0 12px 0 0; }
.deck-footer .foot-left, .deck-footer .foot-label{ display:none; }
.deck-footer .foot-right{ margin-right:74px; gap:10px; }
.deck-footer a.foot-dl, .deck-footer .foot-num{ color:var(--cv-ink); background:rgba(11,22,32,.06); border:1px solid rgba(11,22,32,.16); }
body.on-dark .deck-footer a.foot-dl, body.on-dark .deck-footer .foot-num{ color:var(--cv-parch); background:rgba(255,255,255,.10); border-color:rgba(246,241,231,.28); }
.reveal .controls{ bottom:4px; }
body:not(.on-dark) .reveal .controls .navigate-left{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1620' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 18l-6-6 6-6'/%3E%3C/svg%3E"); }
body:not(.on-dark) .reveal .controls .navigate-right{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B1620' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 6l6 6-6 6'/%3E%3C/svg%3E"); }
.reveal .progress{ background:rgba(11,22,32,.08); }

/* ?shots=1 hides the controls so each slide can be captured clean;
   deck.pdf is assembled from those captures. */
html.shots .deck-footer, html.shots .reveal .controls, html.shots .reveal .progress{ display:none !important; }
