/* PrompTugal.news investor decks · investors@PrompTugal.dinis, 7 November 2026
   One slide is 1920 x 1080. Brand v2.0: paper, ink, the name's red and green; Newsreader, IBM Plex Sans and Mono.
   Screen: slides stacked and scaled to the window (deck.js). Print: one slide per PDF page. */
@font-face { font-family: "Newsreader"; src: url("../../../../assets/fonts/newsreader-variable.woff2") format("woff2"); font-weight: 200 800; }
@font-face { font-family: "Newsreader"; src: url("../../../../assets/fonts/newsreader-400-italic.woff2") format("woff2"); font-style: italic; }
@font-face { font-family: "IBM Plex Sans"; src: url("../../../../assets/fonts/plex-sans-variable.woff2") format("woff2"); font-weight: 100 700; }
@font-face { font-family: "IBM Plex Mono"; src: url("../../../../assets/fonts/plex-mono-400.woff2") format("woff2"); font-weight: 400; }
@font-face { font-family: "IBM Plex Mono"; src: url("../../../../assets/fonts/plex-mono-500.woff2") format("woff2"); font-weight: 500; }
:root { --paper:#f6f3ec; --paper-2:#ece7db; --panel:#fffdf8; --ink:#121317; --ink-2:#3f424a; --ink-3:#595c64; --hair:#d9d2c1; --rule-2:#9d9580;
  --red:#c52830; --green:#006600; --green-soft:#e2eedf; --red-soft:#f8e4df; --cobalt:#1f4fa8;
  --serif:"Newsreader",Georgia,serif; --sans:"IBM Plex Sans",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace; }
* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: #2a2b2f; }
body { font-family: var(--sans); color: var(--ink); -webkit-font-smoothing: antialiased; }
@page { size: 1920px 1080px; margin: 0; }
.slide { position: relative; width: 1920px; height: 1080px; overflow: hidden; background: var(--paper); padding: 96px 120px 120px; display: flex; flex-direction: column; break-after: page; page-break-after: always; }
@media screen { .deck { transform-origin: 0 0; } .slide { margin: 0 0 24px; box-shadow: 0 10px 40px rgba(0,0,0,.35); } }
@media print { html { background: none; } .slide { margin: 0; box-shadow: none; } }

/* frame: the running head and foot of every slide */
.slide .head { position: absolute; top: 44px; left: 120px; right: 120px; display: flex; justify-content: space-between; font: 500 20px/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--ink-3); }
.slide .head b { color: var(--green); font-weight: 500; }
.slide .foot { position: absolute; bottom: 40px; left: 120px; right: 120px; display: flex; justify-content: space-between; align-items: center; font: 400 18px/1 var(--mono); color: var(--ink-3); border-top: 1px solid var(--hair); padding-top: 18px; }
.wordmark { font: 600 30px/1 var(--serif); letter-spacing: -.01em; color: var(--ink); }
.wordmark .t { color: var(--red); } .wordmark .u { color: var(--green); } .wordmark i { font-weight: 400; font-size: .8em; }

/* type */
.kicker { font: 500 22px/1.2 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--green); margin-bottom: 26px; }
.kicker.red { color: var(--red); }
h1 { font: 600 112px/1.0 var(--serif); letter-spacing: -.025em; }
h2 { font: 600 76px/1.04 var(--serif); letter-spacing: -.02em; max-width: 1500px; }
h3 { font: 600 38px/1.15 var(--serif); letter-spacing: -.01em; }
.lead { font: 400 34px/1.42 var(--serif); color: var(--ink-2); max-width: 1380px; margin-top: 30px; }
.lead b, .lead strong { color: var(--ink); font-weight: 600; }
p.body { font: 400 26px/1.5 var(--sans); color: var(--ink-2); }
.rule { width: 120px; height: 8px; background: var(--green); margin: 34px 0; }
.rule.red { background: var(--red); }
.slide.v { justify-content: center; padding-top: 110px; }
.mt { margin-top: auto; } .grow { flex: 1; }
.src { font: 400 17px/1.4 var(--mono); color: var(--ink-3); margin-top: 18px; }
.hl { background: linear-gradient(transparent 62%, var(--green-soft) 62%); }
.hl-red { background: linear-gradient(transparent 62%, var(--red-soft) 62%); }

/* layouts */
.cols { display: grid; gap: 64px; grid-template-columns: 1fr 1fr; align-items: start; margin-top: 48px; }
.cols.c3 { grid-template-columns: repeat(3, 1fr); gap: 40px; } .cols.c4 { grid-template-columns: repeat(4, 1fr); gap: 32px; }
.cols.w60 { grid-template-columns: 1.25fr 1fr; } .cols.w40 { grid-template-columns: 1fr 1.25fr; }
.center { align-items: center; }
.card { background: var(--panel); border: 1px solid var(--hair); border-top: 8px solid var(--ink); padding: 36px 36px 40px; }
.card.g { border-top-color: var(--green); } .card.r { border-top-color: var(--red); } .card.c { border-top-color: var(--cobalt); }
.card .n { font: 500 20px/1 var(--mono); color: var(--ink-3); letter-spacing: .1em; margin-bottom: 18px; }
.card h3 { margin-bottom: 14px; } .card p { font: 400 26px/1.45 var(--sans); color: var(--ink-2); }
.stat { border-left: 8px solid var(--green); padding: 6px 0 6px 30px; }
.stat .v { font: 600 96px/1 var(--serif); letter-spacing: -.02em; } .stat .l { font: 400 24px/1.35 var(--sans); color: var(--ink-2); margin-top: 12px; }
.stat.r { border-left-color: var(--red); }
ul.ticks { list-style: none; margin-top: 10px; } ul.ticks li { position: relative; padding-left: 46px; font: 400 28px/1.45 var(--sans); color: var(--ink-2); margin: 0 0 18px; }
ul.ticks li::before { content: ""; position: absolute; left: 0; top: 14px; width: 18px; height: 18px; background: var(--green); }
ul.ticks.x li::before { background: var(--red); }
ul.ticks li b { color: var(--ink); }

/* flow: numbered steps joined by arrows */
.flow { display: flex; align-items: stretch; gap: 0; margin-top: 56px; }
.flow .step { flex: 1; background: var(--panel); border: 1px solid var(--hair); padding: 30px 28px; position: relative; }
.flow .step + .step { margin-left: 46px; }
.flow .step + .step::before { content: ""; position: absolute; left: -38px; top: 50%; border: 15px solid transparent; border-left: 22px solid var(--green); transform: translateY(-50%); }
.flow .step .n { font: 600 54px/1 var(--serif); color: var(--green); margin-bottom: 12px; }
.flow .step h3 { font-size: 30px; margin-bottom: 10px; } .flow .step p { font: 400 24px/1.42 var(--sans); color: var(--ink-2); }

/* timeline */
.tl { position: relative; margin-top: 70px; display: grid; gap: 0; }
.tl::before { content: ""; position: absolute; left: 0; right: 0; top: 33px; height: 4px; background: var(--ink); }
.tl .ev { position: relative; padding: 76px 26px 0 0; }
.tl .ev::before { content: ""; position: absolute; top: 20px; left: 0; width: 30px; height: 30px; border-radius: 50%; background: var(--paper); border: 6px solid var(--green); }
.tl .ev.r::before { border-color: var(--red); } .tl .ev.now::before { background: var(--green); }
.tl .ev .d { font: 500 20px/1.2 var(--mono); color: var(--green); letter-spacing: .06em; } .tl .ev.r .d { color: var(--red); }
.tl .ev h3 { font-size: 32px; margin: 10px 0 8px; } .tl .ev p { font: 400 22px/1.4 var(--sans); color: var(--ink-2); }

/* compare: before and after */
.vs { display: grid; grid-template-columns: 1fr 90px 1fr; margin-top: 50px; align-items: stretch; }
.vs .side { padding: 40px; } .vs .old { background: var(--paper-2); } .vs .new { background: var(--panel); border: 3px solid var(--green); }
.vs .mid { display: flex; align-items: center; justify-content: center; font: 600 60px/1 var(--serif); color: var(--green); }
.vs h3 { margin-bottom: 22px; } .vs .old h3 { color: var(--ink-3); }

/* screenshots in a browser frame */
.shot { background: var(--panel); border: 1px solid var(--rule-2); box-shadow: 0 30px 60px -20px rgba(18,19,23,.35); overflow: hidden; }
.shot .bar { height: 40px; background: var(--paper-2); border-bottom: 1px solid var(--hair); display: flex; align-items: center; gap: 10px; padding: 0 16px; font: 400 16px/1 var(--mono); color: var(--ink-3); }
.shot .bar i { width: 13px; height: 13px; border-radius: 50%; background: var(--hair); display: inline-block; }
.shot .bar span { margin-left: 18px; }
.shot img { display: block; width: 100%; }
.phone { width: 330px; border: 14px solid var(--ink); border-radius: 46px; overflow: hidden; box-shadow: 0 30px 60px -20px rgba(18,19,23,.45); background: var(--ink); }
.phone img { display: block; width: 100%; border-radius: 30px; }
.caption { font: 400 20px/1.4 var(--mono); color: var(--ink-3); margin-top: 16px; }

/* full-bleed picture slides */
.slide.pic { padding: 0; color: #fff; }
.slide.pic img.bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.slide.pic .veil { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(18,19,23,.9) 0%, rgba(18,19,23,.72) 42%, rgba(18,19,23,.05) 75%); }
.slide.pic .veil.light { background: linear-gradient(90deg, rgba(246,243,236,.97) 0%, rgba(246,243,236,.9) 40%, rgba(246,243,236,0) 70%); }
.slide.pic .inner { position: relative; padding: 140px 120px; max-width: 1150px; height: 100%; display: flex; flex-direction: column; justify-content: center; }
.slide.pic .kicker { color: #8fd18f; } .slide.pic .lead { color: #e6e2d8; } .slide.pic.lightpic { color: var(--ink); } .slide.pic.lightpic .kicker { color: var(--green); } .slide.pic.lightpic .lead { color: var(--ink-2); }
.slide.pic .head, .slide.pic .foot { color: rgba(255,255,255,.7); border-color: rgba(255,255,255,.25); } .slide.pic .head b { color: #8fd18f; }
.slide.pic.lightpic .head, .slide.pic.lightpic .foot { color: var(--ink-3); border-color: var(--hair); } .slide.pic.lightpic .head b { color: var(--green); }
.slide.pic .wordmark { color: #fff; } .slide.pic .wordmark .t { color: #ff7a7f; } .slide.pic .wordmark .u { color: #8fd18f; }
.slide.pic.lightpic .wordmark { color: var(--ink); } .slide.pic.lightpic .wordmark .t { color: var(--red); } .slide.pic.lightpic .wordmark .u { color: var(--green); }

/* ink slides: section openers and big statements */
.slide.ink { background: var(--ink); color: var(--paper); }
.slide.ink .kicker { color: #8fd18f; } .slide.ink .lead { color: #c8c4ba; } .slide.ink .lead b { color: var(--paper); }
.slide.ink .head, .slide.ink .foot { color: #9a978f; border-color: #3a3b40; } .slide.ink .head b { color: #8fd18f; }
.slide.ink .wordmark { color: var(--paper); } .slide.ink .wordmark .t { color: #ff7a7f; } .slide.ink .wordmark .u { color: #8fd18f; }
.slide.ink .card { background: #1d1e23; border-color: #3a3b40; } .slide.ink .card p { color: #c8c4ba; } .slide.ink .card.g { border-top-color: #4caf50; }
.slide.ink ul.ticks li { color: #c8c4ba; } .slide.ink ul.ticks li b { color: var(--paper); } .slide.ink ul.ticks li::before { background: #4caf50; }
.slide.ink .stat .l { color: #c8c4ba; } .slide.ink .stat { border-left-color: #4caf50; }
.bigquote { font: 400 italic 74px/1.18 var(--serif); letter-spacing: -.01em; max-width: 1560px; }
.bigquote .who { display: block; font: 500 22px/1 var(--mono); font-style: normal; letter-spacing: .14em; text-transform: uppercase; color: #8fd18f; margin-top: 46px; }

/* diagrams drawn in SVG take the brand's faces */
svg text { font-family: var(--sans); } svg .serif { font-family: var(--serif); } svg .mono { font-family: var(--mono); }
.tag { display: inline-block; font: 500 18px/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; padding: 9px 14px; border: 2px solid currentColor; color: var(--green); margin: 0 10px 10px 0; }
.tag.r { color: var(--red); } .tag.k { color: var(--ink); }
table.t { border-collapse: collapse; width: 100%; margin-top: 40px; font: 400 23px/1.35 var(--sans); }
table.t th { text-align: left; font: 500 18px/1.2 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--ink-3); border-bottom: 3px solid var(--ink); padding: 14px 18px; }
table.t td { border-bottom: 1px solid var(--hair); padding: 16px 18px; color: var(--ink-2); vertical-align: top; } table.t td:first-child { color: var(--ink); font-weight: 600; }
table.t tr.us td { background: var(--green-soft); color: var(--ink); }

.cols.tight .card { padding: 26px 28px 28px; } .cols.tight .card h3 { font-size: 34px; } .cols.tight .card p { font-size: 23px; }
