/* the frame every page sits in: 16:9, and a container so --u can measure it */
.deck-frame{position:relative;aspect-ratio:16/9;container-type:inline-size;width:100%}

/* Six real brands, each in its own language, made only from figures the companies published.
   Every page lives in a 1920 × 1080 space; --u is one 1920th of the frame. */
.bx{--u:calc(100cqw / 1920);position:absolute;inset:0;overflow:hidden;font-feature-settings:normal;-webkit-font-smoothing:antialiased;letter-spacing:0;line-height:1.3;text-align:left}
.bx *{box-sizing:border-box;margin:0}
.bx .a{position:absolute}
.bx .top{position:absolute;left:calc(120 * var(--u));right:calc(120 * var(--u));top:calc(84 * var(--u));height:calc(64 * var(--u));display:flex;align-items:center;justify-content:space-between;font-size:calc(26 * var(--u))}
.bx .top .lg{height:100%;display:flex;align-items:center;gap:calc(16 * var(--u))}
.bx .top .lg svg{display:block;height:100%;width:auto}
.bx .top .ctx{opacity:.6}
.bx .n{font-variant-numeric:lining-nums}

/* ---- Spotify ------------------------------------------------------------------------------------- */
.bx.spotify{background:#121212;color:#fff;font-family:'Figtree',sans-serif}
.bx.spotify .top .lg{color:#1ed760;height:calc(60 * var(--u))}
.bx.spotify .top .lg b{font-weight:800;font-size:calc(30 * var(--u));letter-spacing:-.02em;color:#fff}
.bx.spotify .h{position:absolute;left:calc(116 * var(--u));top:calc(228 * var(--u));width:calc(1500 * var(--u));font-weight:800;font-size:calc(108 * var(--u));line-height:.96;letter-spacing:-.045em}
.bx.spotify .h em{font-style:normal;color:#1ed760}
.bx.spotify .big{position:absolute;left:calc(108 * var(--u));top:calc(240 * var(--u));font-weight:800;font-size:calc(250 * var(--u));line-height:.84;letter-spacing:-.06em;color:#1ed760;white-space:nowrap}
.bx.spotify .big-sub{position:absolute;left:calc(120 * var(--u));top:calc(482 * var(--u));width:calc(1000 * var(--u));font-weight:800;font-size:calc(84 * var(--u));line-height:1;letter-spacing:-.04em}
.bx.spotify svg.disc{position:absolute;right:calc(-300 * var(--u));bottom:calc(-280 * var(--u));width:calc(1040 * var(--u));height:calc(1040 * var(--u));color:#1ed760}
.bx.spotify .krow{position:absolute;left:calc(120 * var(--u));bottom:calc(96 * var(--u));display:grid;grid-template-columns:repeat(3,calc(300 * var(--u)));gap:calc(40 * var(--u))}
.bx.spotify .krow>div{border-top:calc(3 * var(--u)) solid #2e2e2e;padding-top:calc(24 * var(--u))}
.bx.spotify .krow b{display:block;font-weight:800;font-size:calc(76 * var(--u));letter-spacing:-.045em;line-height:1}
.bx.spotify .krow span{display:block;margin-top:calc(12 * var(--u));font-size:calc(27 * var(--u));color:#b3b3b3;line-height:1.25}
.bx.spotify .krow i{font-style:normal;color:#1ed760;font-weight:700}
.bx.spotify.light{background:#fff;color:#121212}
.bx.spotify.light .top .lg b{color:#121212}
.bx.spotify.light .big{color:#121212}
.bx.spotify.light .krow>div{border-top-color:#e4e4e4}
.bx.spotify.light .krow span{color:#6a6a6a}
.bx.spotify.light .krow i{color:#1a9e4b}
/* users */
.bx.spotify .cols{position:absolute;left:calc(120 * var(--u));right:calc(120 * var(--u));top:calc(520 * var(--u));display:grid;grid-template-columns:1fr 1fr;gap:calc(120 * var(--u))}
.bx.spotify .stat .lab{font-size:calc(30 * var(--u));color:#b3b3b3;font-weight:600}
.bx.spotify .stat .num{margin-top:calc(10 * var(--u));font-weight:800;font-size:calc(150 * var(--u));letter-spacing:-.055em;line-height:.9}
.bx.spotify .stat .num i{font-style:normal;font-size:calc(40 * var(--u));letter-spacing:-.01em;color:#1ed760;margin-left:calc(18 * var(--u));vertical-align:calc(60 * var(--u))}
.bx.spotify .hb{margin-top:calc(48 * var(--u));display:flex;flex-direction:column;gap:calc(16 * var(--u))}
.bx.spotify .hb div{position:relative;height:calc(64 * var(--u))}
.bx.spotify .hb s{position:absolute;left:0;top:0;bottom:0;border-radius:calc(32 * var(--u));text-decoration:none;display:flex;align-items:center;padding-left:calc(26 * var(--u));font-size:calc(28 * var(--u));font-weight:700;white-space:nowrap;color:#fff}
.bx.spotify .hb s.now{color:#121212}
/* revenue */
.bx.spotify .split{position:absolute;left:calc(120 * var(--u));width:calc(1680 * var(--u));top:calc(520 * var(--u));height:calc(150 * var(--u));display:flex;gap:calc(8 * var(--u))}
.bx.spotify .split>div{height:100%;border-radius:calc(24 * var(--u));display:flex;align-items:center;padding:0 calc(40 * var(--u));font-weight:800;font-size:calc(48 * var(--u));letter-spacing:-.02em;color:#121212;white-space:nowrap;overflow:hidden}
.bx.spotify .split small{font-weight:700;font-size:calc(36 * var(--u));margin-left:calc(16 * var(--u));opacity:.7}
.bx.spotify .ads{position:absolute;right:calc(120 * var(--u));top:calc(690 * var(--u));text-align:right;font-size:calc(34 * var(--u));color:#b3b3b3}
.bx.spotify .ads b{color:#fff;font-weight:800}
/* outlook */
.bx.spotify .cards{position:absolute;left:calc(120 * var(--u));right:calc(120 * var(--u));top:calc(500 * var(--u));height:calc(470 * var(--u));display:grid;grid-template-columns:repeat(4,1fr);gap:calc(24 * var(--u))}
.bx.spotify .cards>div{border-radius:calc(30 * var(--u));padding:calc(40 * var(--u));display:flex;flex-direction:column;justify-content:space-between;color:#121212}
.bx.spotify .cards b{font-weight:800;font-size:calc(104 * var(--u));letter-spacing:-.055em;line-height:.95}
.bx.spotify .cards span{font-size:calc(32 * var(--u));font-weight:700;line-height:1.15}

/* ---- IKEA ---------------------------------------------------------------------------------------- */
.bx.ikea{background:#fff;color:#111;font-family:'Noto Sans',sans-serif}
.bx.ikea .top .lg{height:calc(64 * var(--u))}
.bx.ikea .top .ctx{font-weight:700;opacity:1}
.bx.ikea.blue{background:#0058a3;color:#fff}
.bx.ikea .big{position:absolute;left:calc(104 * var(--u));top:calc(210 * var(--u));font-weight:800;font-size:calc(360 * var(--u));line-height:.8;letter-spacing:-.06em;color:#ffdb00}
.bx.ikea .h{position:absolute;left:calc(120 * var(--u));font-weight:800;letter-spacing:-.035em;line-height:1}
.bx.ikea .fnote{position:absolute;left:calc(120 * var(--u));bottom:calc(92 * var(--u));font-size:calc(26 * var(--u));opacity:.72}
.bx.ikea .tag{position:absolute;width:calc(600 * var(--u));height:calc(440 * var(--u));background:#ffdb00;color:#111;border-radius:calc(30 * var(--u));padding:calc(54 * var(--u)) calc(60 * var(--u)) 0 calc(150 * var(--u));box-shadow:0 calc(30 * var(--u)) calc(60 * var(--u)) calc(-20 * var(--u)) rgba(0,0,0,.35)}
.bx.ikea .tag::before{content:"";position:absolute;left:calc(56 * var(--u));top:50%;width:calc(44 * var(--u));height:calc(44 * var(--u));margin-top:calc(-22 * var(--u));border-radius:50%;background:#0058a3;box-shadow:inset 0 calc(3 * var(--u)) calc(6 * var(--u)) rgba(0,0,0,.35)}
.bx.ikea .tag b{display:block;font-weight:800;font-size:calc(170 * var(--u));letter-spacing:-.06em;line-height:.95}
.bx.ikea .tag span{display:block;margin-top:calc(18 * var(--u));font-weight:700;font-size:calc(38 * var(--u));line-height:1.15}
.bx.ikea .dot{position:absolute;top:calc(500 * var(--u));width:calc(440 * var(--u));height:calc(440 * var(--u));background:#ffdb00;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.bx.ikea .dot b{font-weight:800;font-size:calc(124 * var(--u));letter-spacing:-.05em;color:#0058a3;line-height:1}
.bx.ikea .dot span{margin-top:calc(14 * var(--u));font-weight:700;font-size:calc(34 * var(--u));line-height:1.15;width:calc(330 * var(--u))}
.bx.ikea .pan{position:absolute;top:calc(420 * var(--u));width:calc(780 * var(--u));height:calc(560 * var(--u))}
.bx.ikea .pan .pl{font-weight:800;font-size:calc(38 * var(--u))}
.bx.ikea .pan .pd{margin-top:calc(6 * var(--u));font-weight:800;font-size:calc(96 * var(--u));letter-spacing:-.05em;line-height:1}
.bx.ikea .pan .bars{position:absolute;left:0;right:calc(140 * var(--u));bottom:0;height:calc(300 * var(--u));display:flex;gap:calc(30 * var(--u));align-items:flex-end;border-bottom:calc(3 * var(--u)) solid #111}
.bx.ikea .pan .bars div{flex:1;position:relative}
.bx.ikea .pan .bars i{display:block;width:100%;height:100%}
.bx.ikea .pan .bars em{position:absolute;left:0;bottom:calc(100% + 14 * var(--u));font-style:normal;font-weight:800;font-size:calc(34 * var(--u));white-space:nowrap}
.bx.ikea .pan .bars small{position:absolute;left:0;top:calc(100% + 14 * var(--u));font-size:calc(26 * var(--u));color:#555}

/* ---- LEGO ---------------------------------------------------------------------------------------- */
.bx.lego{background:#ffcf00;color:#141414;font-family:'Nunito',sans-serif}
.bx.lego .top{height:calc(110 * var(--u));top:calc(72 * var(--u))}
.bx.lego .top .lg{height:100%}
.bx.lego .top .ctx{font-weight:800;opacity:.8}
.bx.lego.white{background:#fff}
.bx.lego.red{background:#e3000b;color:#fff}
.bx.lego .big{position:absolute;left:calc(100 * var(--u));top:calc(290 * var(--u));font-weight:900;font-size:calc(340 * var(--u));line-height:.8;letter-spacing:-.05em;color:#e3000b}
.bx.lego .h{position:absolute;left:calc(120 * var(--u));font-weight:900;letter-spacing:-.03em;line-height:1}
.bx.lego .fig{position:absolute;top:calc(560 * var(--u));width:calc(520 * var(--u))}
.bx.lego .fig b{display:block;font-weight:900;font-size:calc(170 * var(--u));letter-spacing:-.05em;line-height:.9}
.bx.lego .fig span{display:block;margin-top:calc(14 * var(--u));font-weight:800;font-size:calc(34 * var(--u))}
.bx.lego .fig svg{display:block;margin-top:calc(26 * var(--u));width:calc(210 * var(--u));height:calc(110 * var(--u));overflow:visible}

/* ---- Škoda --------------------------------------------------------------------------------------- */
.bx.skoda{background:#0e3a2f;color:#fff;font-family:'Sora',sans-serif}
.bx.skoda .top .lg{height:calc(30 * var(--u))}
.bx.skoda .top .lg svg path{fill:#fff}
.bx.skoda.white{background:#fff;color:#0e3a2f}
.bx.skoda.white .top .lg svg path{fill:#0e3a2f}
.bx.skoda .big{position:absolute;left:calc(104 * var(--u));top:calc(250 * var(--u));font-weight:700;font-size:calc(320 * var(--u));line-height:.82;letter-spacing:-.06em;color:#78faae}
.bx.skoda .h{position:absolute;left:calc(120 * var(--u));font-weight:700;letter-spacing:-.04em;line-height:1}
.bx.skoda .grid4{position:absolute;left:calc(120 * var(--u));right:calc(120 * var(--u));top:calc(470 * var(--u));bottom:calc(96 * var(--u));display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr}
.bx.skoda .grid4>div{padding:calc(30 * var(--u)) calc(40 * var(--u)) 0 0;border-top:calc(2 * var(--u)) solid rgba(120,250,174,.3)}
.bx.skoda .grid4>div:nth-child(even){padding-left:calc(40 * var(--u));border-left:calc(2 * var(--u)) solid rgba(120,250,174,.3)}
.bx.skoda .grid4 b{display:block;font-weight:700;font-size:calc(116 * var(--u));letter-spacing:-.05em;line-height:1;color:#78faae}
.bx.skoda .grid4 span{display:block;margin-top:calc(12 * var(--u));font-size:calc(30 * var(--u));color:rgba(255,255,255,.82)}

/* ---- Mistral AI ---------------------------------------------------------------------------------- */
.bx.mistral{background:#fffaeb;color:#000;font-family:'Archivo',sans-serif}
.bx.mistral .top .lg{height:calc(64 * var(--u))}
.bx.mistral .top .lg b{font-weight:700;font-size:calc(34 * var(--u));letter-spacing:-.02em}
.bx.mistral .kick{position:absolute;left:calc(120 * var(--u));top:calc(250 * var(--u));font-size:calc(36 * var(--u));font-weight:600}
.bx.mistral .big{position:absolute;left:calc(104 * var(--u));top:calc(310 * var(--u));font-weight:800;font-size:calc(290 * var(--u));line-height:.86;letter-spacing:-.06em}
.bx.mistral .h{position:absolute;left:calc(120 * var(--u));font-weight:800;letter-spacing:-.04em;line-height:1}
.bx.mistral.dark{background:#000;color:#fffaeb}
.bx.mistral svg.px{position:absolute;left:0;width:100%}
.bx.mistral .inv{position:absolute;left:calc(120 * var(--u));right:calc(120 * var(--u));top:calc(560 * var(--u));display:grid;grid-template-columns:repeat(3,1fr);gap:calc(40 * var(--u))}
.bx.mistral .inv>div{border-top:calc(3 * var(--u)) solid #fffaeb;padding-top:calc(26 * var(--u))}
.bx.mistral .inv b{display:block;font-weight:800;font-size:calc(52 * var(--u));letter-spacing:-.03em;line-height:1.05}
.bx.mistral .inv span{display:block;margin-top:calc(12 * var(--u));font-size:calc(28 * var(--u));color:#c9c2b0}

/* ---- Lovable ------------------------------------------------------------------------------------- */
.bx.lovable{background:#0b0b0d;color:#fff;font-family:'Onest',sans-serif}
.bx.lovable .glow{position:absolute;inset:0;background:radial-gradient(42% 60% at 78% 68%,rgba(255,102,244,.55),transparent 70%),radial-gradient(40% 55% at 92% 30%,rgba(75,115,255,.6),transparent 70%),radial-gradient(36% 50% at 62% 92%,rgba(254,123,2,.55),transparent 72%),radial-gradient(30% 40% at 70% 45%,rgba(255,1,5,.35),transparent 70%);filter:blur(calc(30 * var(--u)))}
.bx.lovable .top .lg{height:calc(62 * var(--u))}
.bx.lovable .top .lg b{font-weight:600;font-size:calc(36 * var(--u));letter-spacing:-.03em}
.bx.lovable .kick{position:absolute;left:calc(120 * var(--u));top:calc(330 * var(--u));font-size:calc(36 * var(--u));color:rgba(255,255,255,.72)}
.bx.lovable .big{position:absolute;left:calc(108 * var(--u));top:calc(404 * var(--u));font-weight:600;font-size:calc(230 * var(--u));line-height:.9;letter-spacing:-.06em}
.bx.lovable .big-sub{position:absolute;left:calc(118 * var(--u));top:calc(640 * var(--u));font-weight:500;font-size:calc(76 * var(--u));letter-spacing:-.035em}
.bx.lovable .h{position:absolute;left:calc(120 * var(--u));font-weight:600;letter-spacing:-.04em;line-height:1}
.bx.lovable.paper{background:#f7f4f2;color:#141414}
.bx.lovable .blob{position:absolute;right:calc(-240 * var(--u));top:calc(-260 * var(--u));width:calc(900 * var(--u));height:calc(900 * var(--u));border-radius:50%;background:conic-gradient(from 210deg,#4b73ff,#ff66f4,#ff0105,#fe7b02,#4b73ff);filter:blur(calc(90 * var(--u)));opacity:.55}
.bx.lovable .names{position:absolute;left:calc(120 * var(--u));right:calc(120 * var(--u));top:calc(600 * var(--u));display:grid;grid-template-columns:repeat(4,1fr);gap:calc(26 * var(--u)) calc(40 * var(--u))}
.bx.lovable .names div{border-top:calc(2 * var(--u)) solid #141414;padding-top:calc(16 * var(--u));font-size:calc(34 * var(--u));font-weight:500;letter-spacing:-.01em}

/* ---- the IKEA annual summary page, A4 (1240 × 1754) ------------------------------------------------- */
.bxa4{--u:calc(100cqw / 1240);position:absolute;inset:0;overflow:hidden;background:#fff;color:#111;font-family:'Noto Sans',sans-serif;font-feature-settings:normal;-webkit-font-smoothing:antialiased}
.bxa4 *{box-sizing:border-box;margin:0}
.bxa4 .top{position:absolute;left:0;right:0;top:0;height:calc(600 * var(--u));background:#0058a3}
.bxa4 .lg{position:absolute;left:calc(90 * var(--u));top:calc(80 * var(--u));height:calc(56 * var(--u))}
.bxa4 .lg svg{height:100%;width:auto}
.bxa4 h2{position:absolute;left:calc(86 * var(--u));top:calc(230 * var(--u));width:calc(1000 * var(--u));font-weight:800;font-size:calc(130 * var(--u));line-height:.95;letter-spacing:-.045em;color:#ffdb00}
.bxa4 .k{position:absolute;left:calc(90 * var(--u));right:calc(90 * var(--u));top:calc(680 * var(--u));display:grid;grid-template-columns:repeat(3,1fr);gap:calc(30 * var(--u))}
.bxa4 .k>div{border-top:calc(3 * var(--u)) solid #111;padding-top:calc(20 * var(--u))}
.bxa4 .k b{display:block;font-weight:800;font-size:calc(80 * var(--u));letter-spacing:-.045em;color:#0058a3;line-height:1}
.bxa4 .k span{display:block;margin-top:calc(10 * var(--u));font-size:calc(24 * var(--u));line-height:1.3}
.bxa4 .tx{position:absolute;left:calc(90 * var(--u));right:calc(90 * var(--u));top:calc(960 * var(--u));display:grid;grid-template-columns:1fr 1fr;gap:calc(50 * var(--u));font-size:calc(24 * var(--u));line-height:1.6;color:#333}
.bxa4 .tx p+p{margin-top:calc(14 * var(--u))}
.bxa4 .bar{position:absolute;left:calc(90 * var(--u));right:calc(90 * var(--u));top:calc(1380 * var(--u))}
.bxa4 .bar b{display:block;font-weight:800;font-size:calc(30 * var(--u));margin-bottom:calc(18 * var(--u))}
.bxa4 .ft{position:absolute;left:calc(90 * var(--u));right:calc(90 * var(--u));bottom:calc(70 * var(--u));display:flex;justify-content:space-between;font-size:calc(19 * var(--u));color:#777}
