:root{
  --oat:#EDE9DC; --oat2:#E4DFCE; --paper:#F5F2E8;
  --sage:#DDE6C4; --sage2:#D1DEB2; --moss:#C6DE93; --leaf:#9DB86E;
  --fern:#55703A; --forest:#1D2A1B; --ink2:#5C6655; --rule:#CFC9B6;
  --f:"Helvetica Neue",Helvetica,Arimo,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%;background:#D9D4C4;overflow:hidden}
body{font-family:var(--f);color:var(--forest);-webkit-font-smoothing:antialiased}
a{color:inherit}

/* Stage: every slide is designed at 1920x1080 and scaled to fit */
#deck{position:absolute;left:0;top:0;width:1920px;height:1080px;transform-origin:0 0;background:var(--oat);overflow:hidden;box-shadow:0 30px 80px rgba(29,42,27,.18)}
.slide{position:absolute;inset:0;background:var(--oat);opacity:0;visibility:hidden;transition:opacity .45s ease,visibility 0s linear .45s}
.slide.active{opacity:1;visibility:visible;transition:opacity .45s ease}
.slide.sage{background:var(--sage)}

.a{position:absolute}
.h{font-weight:700;letter-spacing:-.035em;line-height:1;margin:0;color:var(--forest)}
.lbl{font-weight:700;font-size:15px;line-height:1.3;letter-spacing:.1em;text-transform:uppercase;color:var(--fern)}
.p{font-size:26px;line-height:1.5;margin:0}
.p + .p{margin-top:22px}
.muted{color:var(--ink2)}
.fern{color:var(--fern)}
.oat{color:var(--oat)}
.r{text-align:right}
.c{text-align:center}
svg.layer{position:absolute;left:0;top:0;width:1920px;height:1080px;pointer-events:none;overflow:visible}

/* Signature pieces */
.chip{display:inline-flex;align-items:center;padding:13px 22px;background:var(--moss);box-shadow:5px 5px 0 var(--fern);border-radius:2px;font-weight:700;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--forest);white-space:nowrap}
.chip.paper{background:var(--paper)}
.chip.dark{background:var(--fern);color:var(--oat)}
.tile{position:absolute;padding:40px 36px}
.tile .v{font-weight:700;font-size:88px;letter-spacing:-.04em;line-height:1}
.tile .lbl{position:absolute;left:36px;bottom:36px;right:30px}
.frame{position:absolute;border:2px dashed var(--rule);background:var(--oat2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:var(--ink2);text-align:center}
.frame .t{font-size:22px}

/* Chrome: header, next-page hint, progress */
.chrome-h{position:absolute;left:120px;right:120px;top:44px;display:flex;justify-content:space-between;font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink2)}
.chrome-f{position:absolute;left:120px;right:120px;top:1018px;display:flex;justify-content:space-between;align-items:center;font-size:18px;color:var(--forest)}
.chrome-f .next{text-decoration:none;display:flex;gap:14px;align-items:baseline}
.chrome-f .next b{font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--fern)}
.chrome-f .next:hover span{text-decoration:underline}
.nav{display:flex;gap:10px}
.nav button{width:44px;height:44px;border:1.5px solid var(--forest);background:transparent;color:var(--forest);font:700 20px var(--f);cursor:pointer;border-radius:2px}
.nav button:hover{background:var(--forest);color:var(--oat)}
.nav button:focus-visible,.chrome-f .next:focus-visible,a:focus-visible{outline:3px solid var(--fern);outline-offset:4px}
.slide[data-nav="light"] .nav button{border-color:var(--oat);color:var(--oat)}
.slide[data-nav="light"] .nav button:hover{background:var(--oat);color:var(--forest)}
#progress{position:absolute;left:0;bottom:0;height:6px;background:var(--fern);width:0;transition:width .5s ease;z-index:5}

/* Entrance motion */
.an{opacity:0;translate:0 28px;transition:opacity .7s ease var(--d,0ms),translate .8s cubic-bezier(.2,.7,.2,1) var(--d,0ms)}
.slide.active .an{opacity:1;translate:0 0}
.draw{stroke-dasharray:var(--len);stroke-dashoffset:var(--len);transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1) var(--d,0ms)}
.slide.active .draw{stroke-dashoffset:0}
.grow{transform-box:fill-box;transform-origin:50% 100%;transform:scaleY(.2);opacity:0;transition:transform 1s cubic-bezier(.2,.7,.2,1) var(--d,0ms),opacity .6s ease var(--d,0ms)}
.slide.active .grow{transform:none;opacity:1}

/* Contents + chapter openers */
.toc-col{position:absolute;top:330px;width:520px}
.toc-block + .toc-block{margin-top:44px}
.toc-ch{display:flex;align-items:baseline;gap:16px;padding-bottom:14px;border-bottom:2px solid var(--forest)}
.toc-ch .n{font-weight:700;font-size:44px;letter-spacing:-.04em;line-height:1;color:var(--fern)}
.toc-ch .t{font-weight:700;font-size:28px;letter-spacing:-.02em}
.toc-ch .c{margin-left:auto;font-weight:700;font-size:13px;letter-spacing:.1em;color:var(--ink2)}
.toc-ch .c::after{content:" pages"}
.toc-row{display:grid;grid-template-columns:80px 1fr;align-items:baseline;padding:11px 0 10px;text-decoration:none;border-bottom:1px solid var(--rule)}
.toc-row .pn{font-weight:700;font-size:19px;color:var(--fern);font-variant-numeric:tabular-nums}
.toc-row .pn small{font-size:.7em;margin-left:1px}
.toc-row .tt{font-weight:400;font-size:23px;letter-spacing:-.01em;line-height:1.1}
.toc-row .hh{grid-column:2;font-size:15px;line-height:1.3;color:var(--ink2);margin-top:3px}
.toc-row:hover{background:var(--oat2)}
.toc-row:hover .tt{text-decoration:underline}
.op-list{position:absolute;left:1080px;top:170px;width:720px}
.op-row{display:grid;grid-template-columns:130px 1fr;padding:16px 0;border-top:2px solid var(--forest);text-decoration:none}
.op-row .pn{font-weight:700;font-size:40px;letter-spacing:-.03em;color:var(--fern);font-variant-numeric:tabular-nums}
.op-row .pn small{font-size:.62em;margin-left:1px}
.op-row .tt{font-weight:700;font-size:32px;letter-spacing:-.02em}
.op-row .hh{grid-column:2;font-size:19px;color:var(--ink2);margin-top:4px}
.op-row:hover .tt{text-decoration:underline}

/* Case navigator */
.case-strip{position:absolute;left:1000px;top:88px;width:800px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px;z-index:3}
.case-strip a{display:flex;flex-direction:column;gap:3px;min-width:0;text-decoration:none;padding:7px 10px 8px;border:1.5px solid var(--rule);font-weight:700;font-size:13px;line-height:1.15;letter-spacing:-.005em;color:var(--ink2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.case-strip a b{color:var(--fern);font-size:11px;letter-spacing:.1em}
.case-strip a.on{background:var(--moss);border-color:var(--moss);color:var(--forest);box-shadow:4px 4px 0 var(--fern)}
.case-strip a:hover{border-color:var(--forest);color:var(--forest)}

/* Real screenshots */
.shot{position:absolute;display:block;max-width:none;border:1px solid var(--rule);box-shadow:8px 8px 0 var(--fern)}
.cap{font-size:15px;line-height:1.4;color:var(--ink2)}
.kpi .v{font-weight:700;letter-spacing:-.045em;line-height:.95;color:var(--forest)}
.kpi .d{font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--fern);margin-top:12px}
.tool{display:inline-block;font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fern)}

/* Credentials */
.cert{position:relative;flex:0 0 300px;width:300px;padding:0;border:0;background:none;text-align:left;cursor:zoom-in;font-family:var(--f);color:var(--forest)}
.cert img{display:block;width:300px;height:232px;object-fit:cover;border:1px solid var(--rule);transition:translate .25s ease,box-shadow .25s ease}
.cert:hover img,.cert:focus-visible img{translate:-3px -3px;box-shadow:6px 6px 0 var(--fern)}
.cert:focus-visible{outline:3px solid var(--fern);outline-offset:4px}
.cert .ct{display:block;font-weight:700;font-size:17px;line-height:1.25;margin-top:10px;letter-spacing:-.005em}
.cert .ci{display:block;font-weight:700;font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--fern);margin-top:4px}
.logo-cell{flex:0 0 340px;height:130px;display:flex;align-items:center;justify-content:center}

.logo-cell img{display:block;max-width:230px;object-fit:contain}
.lightbox{position:absolute;inset:0;z-index:20;background:rgba(29,42,27,.82);display:flex;align-items:center;justify-content:center;cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox figure{margin:0;text-align:center}
.lightbox img{max-width:1400px;max-height:860px;box-shadow:12px 12px 0 var(--moss);background:var(--paper)}
.lightbox figcaption{color:var(--oat);font-size:22px;font-weight:700;margin-top:26px}
.lightbox button{position:absolute;right:60px;top:40px;border:1.5px solid var(--oat);background:transparent;color:var(--oat);font:700 18px var(--f);padding:10px 18px;cursor:pointer}

/* Scrolling rows: the list can grow without running out of room */
.marquee{position:absolute;left:0;width:1920px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 120px,#000 1800px,transparent 1920px);mask-image:linear-gradient(90deg,transparent 0,#000 120px,#000 1800px,transparent 1920px)}
.marquee-track{display:flex;gap:36px;width:max-content;padding:6px 0 0 120px;animation:marquee 40s linear infinite}
.marquee-track[data-logo-track]{gap:0}
.marquee-track.reverse{animation-direction:reverse}
.marquee:hover .marquee-track,.marquee:focus-within .marquee-track{animation-play-state:paused}
@keyframes spin{to{transform:rotate(360deg)}}
@keyframes marquee{to{transform:translateX(var(--loop,-50%))}}

/* Half-page number tiles (About) */
.tile-q{position:absolute;width:480px;height:540px;padding:0 56px;display:flex;flex-direction:column;justify-content:center;gap:22px;color:var(--forest)}
.tile-q .v{font-weight:700;font-size:130px;letter-spacing:-.05em;line-height:.9}
.tile-q .lbl{color:var(--forest);font-size:16px}

/* Expandable agent cards (page 10) */
.agent-card{font-family:var(--f);color:var(--forest);cursor:pointer;display:block;transition:translate .25s ease,box-shadow .25s ease}
.agent-card:hover{translate:-3px -3px;box-shadow:8px 8px 0 var(--fern)!important}
.agent-card:focus-visible{outline:3px solid var(--forest);outline-offset:4px}
.agent-card::after{content:"Open ↗";position:absolute;right:30px;top:34px;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;opacity:.7}
.agent-panel{position:absolute;z-index:15;overflow:hidden;color:var(--forest);box-shadow:10px 10px 0 var(--fern);transition:left .42s cubic-bezier(.2,.7,.2,1),top .42s cubic-bezier(.2,.7,.2,1),width .42s cubic-bezier(.2,.7,.2,1),height .42s cubic-bezier(.2,.7,.2,1)}
.agent-panel.dark{color:var(--oat);box-shadow:10px 10px 0 var(--moss)}
.ap-inner{position:absolute;left:0;top:0;width:920px;height:840px;opacity:0;transition:opacity .25s ease}
.agent-panel.open .ap-inner{opacity:1;transition-delay:.22s}
.ap-close{position:absolute;right:40px;top:36px;border:1.5px solid currentColor;background:transparent;color:inherit;font:700 16px var(--f);padding:9px 16px;cursor:pointer}
.ap-body .ap-num{position:absolute;left:48px;top:36px;font-weight:700;font-size:44px;letter-spacing:-.03em;color:var(--fern)}
.agent-panel.dark .ap-num,.agent-panel.dark .ap-lbl{color:var(--moss)}
.ap-body .ap-name{position:absolute;left:48px;top:92px;margin:0;font-weight:700;font-size:48px;letter-spacing:-.035em;line-height:1}
.ap-body .ap-desc{position:absolute;left:48px;top:158px;width:800px;margin:0;font-size:23px;line-height:1.45}
.ap-body .ap-mid{position:absolute;left:48px;top:250px;width:824px;display:grid;grid-template-columns:450px 1fr;gap:40px}
.ap-list{list-style:none;margin:14px 0 0;padding:0;display:grid;gap:12px}
.ap-list li{position:relative;padding-left:26px;font-size:19px;line-height:1.35}
.ap-list li::before{content:"";position:absolute;left:0;top:6px;width:12px;height:12px;background:var(--fern)}
.agent-panel.dark .ap-list li::before{background:var(--moss)}
.ap-out{margin:14px 0 18px;font-size:19px;line-height:1.35;font-weight:700}
.ap-kpi span{display:block;font-weight:700;font-size:60px;letter-spacing:-.045em;line-height:.95}
.ap-kpi small{display:block;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-top:8px;opacity:.8}
.ap-glimpse{position:absolute;left:48px;top:474px}
.ap-frame{position:relative;margin-top:12px;width:538px;height:302px;overflow:hidden;border:1.5px solid currentColor;background:var(--oat)}
.ap-mini{position:absolute!important;left:0;top:0;width:1920px;height:1080px;transform:scale(.28);transform-origin:0 0;pointer-events:none}
.ap-open{position:absolute;left:626px;top:506px;width:246px;padding:18px 20px;border:0;background:var(--forest);color:var(--oat);font:700 20px var(--f);text-align:left;line-height:1.3;cursor:pointer;box-shadow:5px 5px 0 var(--fern)}
.agent-panel.dark .ap-open{background:var(--moss);color:var(--forest);box-shadow:5px 5px 0 var(--forest)}
.ap-open:hover{translate:-2px -2px}

/* Typewriter note (page 12) */
[data-tw]:empty{display:none}
.tw-caret{display:inline-block;width:3px;height:1em;margin-left:4px;vertical-align:-.12em;background:var(--forest);animation:caret 1s steps(1) infinite}
@keyframes caret{50%{opacity:0}}

/* Skill-command tags (page 12) */
.cmd{display:inline-block;margin-bottom:6px;padding:0;background:none;color:var(--fern);font:600 15px/1.2 ui-monospace,"SF Mono",Menlo,Consolas,monospace;letter-spacing:0}

/* Hover to enlarge a screenshot */
.zoomable{cursor:zoom-in;transform-origin:100% 0;transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s ease}
.zoomable:hover,.zoomable:focus-visible{transform:scale(2.2);z-index:12;box-shadow:14px 14px 0 var(--fern)}

/* Page 16 gallery panel */
.media-panel{position:absolute;z-index:15;overflow:hidden;background:var(--paper);color:var(--forest);box-shadow:10px 10px 0 var(--fern);transition:left .42s cubic-bezier(.2,.7,.2,1),top .42s cubic-bezier(.2,.7,.2,1),width .42s cubic-bezier(.2,.7,.2,1),height .42s cubic-bezier(.2,.7,.2,1)}
.media-panel.dark{background:var(--fern);color:var(--oat);box-shadow:10px 10px 0 var(--forest)}
.media-panel.dark .mp-lbl{color:var(--moss)}
.mp-inner{position:absolute;left:0;top:0;width:1680px;height:840px;padding:44px 56px;opacity:0;transition:opacity .25s ease}
.media-panel.open .mp-inner{opacity:1;transition-delay:.22s}
.mp-close{position:absolute;right:48px;top:44px;border:1.5px solid currentColor;background:transparent;color:inherit;font:700 16px var(--f);padding:10px 18px;cursor:pointer}
.mp-title{margin:8px 0 28px;font-weight:700;font-size:64px;letter-spacing:-.04em;line-height:1}
.mp-photos{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.mp-photos .gal-item img{width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;background:var(--oat2);border:0;cursor:zoom-in}
.mp-videos{display:grid;grid-template-columns:1fr 1fr;gap:40px}
.mp-videos{grid-template-columns:repeat(2,338px);justify-content:center;gap:48px}
.mp-videos .gal-video video{width:338px;height:600px;object-fit:cover;background:var(--forest);border:1px solid rgba(237,233,220,.25)}
.mp-videos .gal-empty{height:600px}

/* Page 16 gallery */
.gal-tile{position:relative;height:700px;padding:38px 40px;border:1px solid var(--rule);background:var(--sage);font-family:var(--f);color:var(--forest);text-align:left;cursor:pointer;display:flex;flex-direction:column;transition:translate .25s ease,box-shadow .25s ease}
.gal-tile.dark{background:var(--fern);color:var(--oat);border-color:var(--fern)}
.gal-tile.dark .lbl,.gal-tile.dark .gal-go{color:var(--moss)}
.gal-tile:hover{translate:-3px -3px;box-shadow:8px 8px 0 var(--fern)}
.gal-tile.dark:hover{box-shadow:8px 8px 0 var(--forest)}
.gal-h{font-weight:700;font-size:64px;letter-spacing:-.035em;margin-top:14px}
.gal-n{font-weight:700;font-size:200px;letter-spacing:-.05em;line-height:1;margin-top:auto}
.gal-go{position:absolute;right:30px;top:32px;font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--fern)}
.gal-bar{display:flex;align-items:center;gap:20px;margin-bottom:18px}
.gal-back{border:1.5px solid var(--forest);background:transparent;color:var(--forest);font:700 15px var(--f);padding:8px 14px;cursor:pointer}
.gal-back:hover{background:var(--forest);color:var(--oat)}
.gal-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.gal-item{padding:0;border:0;background:none;cursor:zoom-in;font-family:var(--f);color:var(--forest);text-align:left}
.gal-item img{display:block;width:100%;height:300px;object-fit:cover;border:1px solid var(--rule);transition:translate .25s ease,box-shadow .25s ease}
.gal-item:hover img{translate:-3px -3px;box-shadow:6px 6px 0 var(--fern)}
.gal-item span{display:block;font-size:15px;margin-top:8px}
.gal-videos{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.gal-video{margin:0}
.gal-video video{display:block;width:100%;height:340px;object-fit:cover;background:var(--forest);border:1px solid var(--rule)}
.gal-video figcaption{font-size:15px;margin-top:8px}
.gal-empty{height:340px;border:2px dashed var(--rule);background:var(--oat2);display:flex;align-items:center;justify-content:center;text-align:center;padding:20px;color:var(--ink2);font-size:18px}

/* Social links (contact page) */
.soc{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;transition:translate .2s ease}
.soc svg{width:34px;height:34px;fill:var(--forest)}
.soc:hover{translate:0 -4px}
.soc:hover svg{fill:var(--fern)}

/* Contents hover preview */
.toc-preview{position:absolute;width:500px;height:281px;overflow:hidden;background:var(--oat);border:1.5px solid var(--forest);box-shadow:8px 8px 0 var(--fern);z-index:18;opacity:0;visibility:hidden;translate:0 10px;transition:opacity .18s ease,translate .18s ease,visibility 0s linear .18s;pointer-events:none}
.toc-preview.on{opacity:1;visibility:visible;translate:0 0;transition:opacity .18s ease,translate .18s ease}
.toc-preview .slide{transform:scale(.26);transform-origin:0 0;opacity:1!important;visibility:visible!important;width:1920px;height:1080px}
.toc-preview .tp-tag{position:absolute;left:0;bottom:0;background:var(--forest);color:var(--oat);font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;padding:6px 10px;z-index:2}

/* Testimonials */
.q-stage{position:absolute;left:0;top:0;width:940px;height:440px}
.q{position:absolute;left:0;top:0;width:940px;margin:0;opacity:0;translate:0 24px;transition:opacity .5s ease,translate .5s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.q.on{opacity:1;translate:0 0;pointer-events:auto}
.q blockquote{margin:0;font-weight:700;font-size:46px;line-height:1.22;letter-spacing:-.025em;color:var(--forest)}
.q figcaption{display:flex;flex-direction:column;gap:6px;margin-top:38px;padding-top:22px;border-top:2px solid var(--forest)}
.q .q-name{font-weight:700;font-size:24px}
.q .q-role{font-size:18px;color:var(--ink2)}
.q-dots{position:absolute;left:0;top:480px;display:flex;gap:12px}
.q-dot{width:44px;height:8px;border:0;padding:0;background:var(--rule);cursor:pointer;transition:background .25s ease}
.q-dot.on{background:var(--fern)}
.q-dot:hover{background:var(--leaf)}
.clips{position:absolute;right:0;top:0;width:700px;display:grid;grid-template-columns:1fr 1fr;gap:30px}
.clip{margin:0}
.clip video{display:block;width:100%;height:560px;object-fit:cover;background:var(--forest);border:1px solid var(--rule)}
.clip figcaption{margin-top:12px;display:flex;flex-direction:column;gap:4px;font-size:17px}
.clip figcaption b{font-size:20px}
.clip-empty{height:560px;border:2px dashed var(--rule);background:var(--oat2);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;padding:26px;color:var(--ink2);font-size:16px;line-height:1.4}

/* Platform wall (page 7): slow scrolling logos */
.pwall{left:90px;top:60px;width:520px;height:960px;display:grid;grid-template-columns:repeat(4,1fr);gap:0 14px;overflow:hidden;-webkit-mask-image:linear-gradient(180deg,transparent 0,#000 90px,#000 870px,transparent 960px);mask-image:linear-gradient(180deg,transparent 0,#000 90px,#000 870px,transparent 960px)}
.pcol{display:flex;flex-direction:column;align-items:center;gap:46px;animation:pscroll 30s linear infinite;will-change:transform}
.pcol.down{animation-direction:reverse}
.pwall:hover .pcol{animation-play-state:paused}
@keyframes pscroll{to{transform:translateY(-50%)}}
.plat{height:44px;display:flex;align-items:center;justify-content:center}
.plat img{width:38px;height:38px;filter:brightness(0) saturate(100%) invert(13%) sepia(18%) saturate(1100%) hue-rotate(63deg) brightness(95%) contrast(92%)}
.plat-text{font-weight:700;font-size:15px;letter-spacing:-.01em;color:var(--forest)}
@media (prefers-reduced-motion: reduce){.pcol{animation:none}}

/* Agent cards */
.card{position:absolute;width:330px;height:250px;background:var(--paper);border:1px solid var(--rule);padding:26px 28px;transition:translate .25s ease,box-shadow .25s ease}
.card:hover{translate:-3px -3px;box-shadow:6px 6px 0 var(--fern)}
.card.hi{background:var(--moss);border-color:var(--moss)}
.card .nm{font-weight:700;font-size:34px;letter-spacing:-.03em;margin:8px 0 8px}
.card .ds{font-size:19px;line-height:1.4}
.card .sk{position:absolute;left:28px;right:24px;bottom:22px;font-weight:700;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fern)}

@media (prefers-reduced-motion: reduce){
  .slide,.an,.draw,.grow{transition:none!important}
  .an{opacity:1;translate:0 0}
  .draw{stroke-dashoffset:0}
  .grow{transform:none;opacity:1}
  .motion{display:none}
  .marquee-track{animation:none}
  .marquee{overflow-x:auto}
  .tw-caret{display:none}
}

/* PDF export: File > Print > Save as PDF */
@media print{
  @page{size:1920px 1080px;margin:0}
  html,body{overflow:visible;background:var(--oat);height:auto}
  #deck{position:relative;transform:none!important;height:auto;box-shadow:none;overflow:visible}
  .slide{position:relative;width:1920px;height:1080px;opacity:1!important;visibility:visible!important;page-break-after:always;break-after:page;overflow:hidden}
  .an{opacity:1!important;translate:0 0!important;transition:none!important}
  .draw{stroke-dashoffset:0!important;transition:none!important}
  .grow{transform:none!important;opacity:1!important}
  .motion,.nav,#progress{display:none!important}
  .marquee-track{animation:none!important}
}


/* Mobile page controls -----------------------------------------------------
   The in-stage arrows are 44px at a 1920px design width. A 390px phone scales
   the stage to about 0.20, which renders them at roughly 9px: below any usable
   touch target. These sit outside the stage so they stay at their real size,
   and they are 64px, comfortably above the 44px minimum. */
.mnav { display: none; }
@media (max-width: 900px), (hover: none) {
  .mnav {
    display: flex; position: fixed; z-index: 60;
    left: 0; right: 0; bottom: calc(18px + env(safe-area-inset-bottom, 0px));
    justify-content: center; gap: 16px; pointer-events: none;
  }
  .mnav button {
    pointer-events: auto;
    width: 64px; height: 64px; border-radius: 50%;
    border: 1.5px solid rgba(29,42,27,.22);
    background: rgba(245,242,232,.94); color: var(--forest);
    font: 700 26px var(--f); line-height: 1;
    box-shadow: 0 6px 20px rgba(29,42,27,.20);
    -webkit-tap-highlight-color: transparent;
  }
  .mnav button:active { background: var(--forest); color: var(--oat); }
  .mnav button:disabled { opacity: .35; }
}
@media print { .mnav { display: none !important; } }


/* Back to the site ---------------------------------------------------------
   The deck is a cul-de-sac: it links out to Calendly, email and six social
   accounts, but nothing returns to the website it lives on. This sits outside
   the stage so it is not multiplied by the fit scale, and it is present at
   every size rather than being a mobile afterthought. */
.backsite {
  position: fixed; z-index: 60;
  top: calc(14px + env(safe-area-inset-top, 0px));
  left: calc(14px + env(safe-area-inset-left, 0px));
  display: inline-flex; align-items: center; gap: 9px;
  padding: 10px 16px 10px 13px;
  background: rgba(245, 242, 232, .94);
  border: 1px solid rgba(29, 42, 27, .18);
  border-radius: 999px;
  color: var(--forest); text-decoration: none;
  font: 700 12px var(--f); letter-spacing: .085em; text-transform: uppercase;
  box-shadow: 0 4px 14px rgba(29, 42, 27, .14);
  -webkit-tap-highlight-color: transparent;
  transition: background .2s ease, color .2s ease;
}
.backsite:hover { background: var(--forest); color: var(--oat); }
.backsite:active { background: var(--forest); color: var(--oat); }
.backsite:focus-visible { outline: 3px solid var(--fern); outline-offset: 3px; }
/* Comfortable thumb target, and the label costs too much width on a phone. */
@media (max-width: 700px) {
  .backsite { padding: 0; width: 46px; height: 46px; justify-content: center; gap: 0; }
  .backsite span { display: none; }
}
@media print { .backsite { display: none !important; } }
