Zentix Case Study
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');
:root {
--bg: #0a0a0a;
--panel: #141414;
--panel-2: #161616;
--rule: #23252a;
--rule-2: #3d3e42;
--ink: #f7f8f8;
--ink-dim: #9aa0a6;
--ink-faint: #5f6368;
--yellow: #e4f223;
--green: #3ecf8e;
--font-head: 'Manrope', system-ui, -apple-system, sans-serif;
--font-body: 'Inter', system-ui, -apple-system, sans-serif;
--font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: transparent; scroll-behavior: smooth; }
body {
background: transparent;
color: var(--ink);
font-family: var(--font-body);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
.wrap { max-width: 940px; margin: 0 auto; padding: 0 20px; }
/* ============ HERO ============ */
header { padding: 50px 0 8px; }
h1 {
font-family: var(--font-head); font-weight: 800;
font-size: clamp(40px, 11vw, 76px); line-height: 0.95; letter-spacing: -0.045em;
}
h1 .accent { color: var(--yellow); }
.sub {
margin-top: 18px; font-size: clamp(16px, 4.4vw, 20px); font-weight: 500;
color: var(--ink); letter-spacing: -0.01em;
}
.client {
margin-top: 10px; font-family: var(--font-mono);
font-size: 12.5px; color: var(--ink-dim); letter-spacing: 0.02em;
}
.client b { color: var(--yellow); font-weight: 500; }
/* ============ INTRO / OUTRO PROSE ============ */
.intro {
margin-top: 28px; font-size: 16.5px; color: var(--ink-dim);
max-width: 680px; line-height: 1.72;
}
/* ============ SECTION LABEL ============ */
.sec-label {
font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.22em;
text-transform: uppercase; color: var(--ink-faint);
margin: 44px 0 18px; display: flex; align-items: center; gap: 14px;
}
.sec-label::after { content:""; flex:1; height:1px; background: var(--rule); }
/* ============ GRID (mobile-first: single column) ============ */
.grid { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
.card {
border: 1px solid var(--rule); border-radius: 14px; background: var(--panel);
padding: 26px 24px; position: relative; overflow: hidden;
transition: border-color .35s, background .35s;
}
.card:hover { border-color: var(--rule-2); background: var(--panel-2); }
.card .idx { font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-faint); letter-spacing: 0.1em; }
.card .stat {
font-family: var(--font-head); font-weight: 800;
font-size: clamp(46px, 13vw, 58px); letter-spacing: -0.05em; line-height: 1;
margin: 14px 0 4px;
}
.card .stat .sup { font-size: 0.4em; vertical-align: super; font-weight: 700; }
.card .stat .x { font-size: 1em; font-weight: inherit; letter-spacing: -0.04em; }
.card.c-yellow .stat { color: var(--yellow); }
.card.c-green .stat { color: var(--green); }
.card .stat-name { font-family: var(--font-head); font-weight: 600; font-size: 16px; color: var(--ink); margin-bottom: 10px; }
.card p { font-size: 14.5px; color: var(--ink-dim); }
/* expandable detail (checkbox — no scripts in blog iframe) */
.more { margin-top: 18px; border-top: 1px solid var(--rule); padding-top: 14px; position: relative; }
.more-check {
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.more-toggle {
cursor: pointer; user-select: none;
font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em;
text-transform: uppercase; color: var(--yellow);
display: inline-flex; align-items: center; gap: 9px;
transition: opacity .2s;
}
.more-toggle:hover { opacity: 0.78; }
.more-toggle .pm {
display: inline-grid; place-items: center;
width: 16px; height: 16px; border: 1px solid var(--yellow); border-radius: 5px;
font-size: 13px; line-height: 1; transition: transform .28s ease;
}
.more-check:checked + .more-toggle .pm { transform: rotate(45deg); }
.more-check:not(:checked) ~ .more-body,
.more-check:not(:checked) ~ .more-label { display: none; }
.more .more-body { margin-top: 13px; font-size: 13.5px; color: var(--ink-dim); line-height: 1.64; }
.more .more-body p + p { margin-top: 11px; }
/* callout card */
.card.callout {
border-left: 3px solid var(--yellow);
background: linear-gradient(180deg, rgba(228,242,35,0.05), transparent 70%), var(--panel);
}
.card.callout .nl {
font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em;
text-transform: uppercase; color: var(--yellow); margin-bottom: 10px;
}
.card.callout p { color: var(--ink); font-size: 15px; }
/* ============ CLOSE ============ */
.close { margin: 54px 0 72px; border-top: 1px solid var(--rule); padding-top: 38px; }
.close .summary {
font-size: 16.5px; color: var(--ink-dim); max-width: 680px; line-height: 1.72;
margin-bottom: 30px;
}
.close .cta {
display: inline-flex; align-items: center; gap: 12px;
font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em;
color: var(--bg); background: var(--yellow); padding: 14px 22px; border-radius: 100px;
text-decoration: none; font-weight: 700; transition: transform .25s, box-shadow .25s;
}
.close .cta:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(228,242,35,0.22); }
.reveal { opacity: 0; transform: translateY(20px); }
.reveal.in { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
/* card with expandable detail — desktop two-column */
.card.has-more { display: flex; flex-direction: column; }
.card-primary { min-width: 0; }
@media (min-width: 720px) {
.card.has-more {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(210px, 34%);
gap: 0 28px;
align-items: start;
}
.grid .card.has-more {
grid-column: 1 / -1;
}
.card.has-more .more {
margin-top: 0;
border-top: none;
padding-top: 0;
border-left: 1px solid var(--rule);
padding-left: 22px;
align-self: stretch;
}
.card.has-more .more-toggle { display: none; }
.card.has-more .more .more-body,
.card.has-more .more .more-label { display: block !important; }
.card.has-more .more .more-body {
display: block !important;
margin-top: 0;
}
.card.has-more .more .more-label {
display: block;
font-family: var(--font-mono);
font-size: 10px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--yellow);
margin-bottom: 10px;
}
}
.more .more-label { display: none; }
/* ============ TABLET / DESKTOP ============ */
@media (min-width: 720px) {
.wrap { padding: 0 24px; }
header { padding: 70px 0 8px; }
.grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
.grid .card.callout { grid-column: 1 / -1; }
.card { padding: 30px 28px; }
.card .stat { font-size: clamp(44px, 5vw, 56px); }
}
Zentix Case Study
Halfway to Halloween 2026 · 6 major US markets
Client · Thirteenth Floor Entertainment Group
Over Halfway to Halloween weekend, Thirteenth Floor Entertainment Group ran six major US markets on Zentix. Every step from the ad click through the ticket sale and into the gate ran on one system, so everything below comes from a single connected dataset. Here is what the weekend looked like across pricing, support, the gate, marketing, and payments.
The Numbers
01 / PRICING
+10%
Higher average ticket price
The price engine moved tickets up while the intelligence
@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800;900&family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');
:root {
--bg: #0a0a0a;
--panel: #141414;
--panel-2: #161616;
--rule: #23252a;
--rule-2: #3d3e42;
--ink: #f7f8f8;
--ink-dim: #9aa0a6;
--ink-faint: #5f6368;
--yellow: #e4f223;
--green: #3ecf8e;
--font-head: 'Manrope', system-ui, -apple-system, sans-serif;
--font-body: 'Inter', system-ui, -apple-system, sans-serif;
--font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
html { background: transparent; scroll-behavior: smooth; }
body {
background: transparent;
color: var(--ink);
font-family: var(--font-body);
line-height: 1.6;
-webkit-font-smoothing: antialiased;
overflow-x: hidden;
}
.wrap { max-width: 940px; margin: 0 auto; padding: 0 20px; }
/* ============ HERO ============ */
header { padding: 50px 0 8px; }
h1 {
font-family: var(--font-head); font-weight: 800;
font-size: clamp(40px, 11vw, 76px); line-height: 0.95; letter-spacing: -0.045em;
}
h1 .accent { color: var(--yellow); }
.sub {
margin-top: 18px; font-size: clamp(16px, 4.4vw, 20px); font-weight: 500;
color: var(--ink); letter-spacing: -0.01em;
}
.client {
margin-top: 10px; font-family: var(--font-mono);
font-size: 12.5px; color: var(--ink-dim); letter-spacing: 0.02em;
}
.client b { color: var(--yellow); font-weight: 500; }
/* ============ INTRO / OUTRO PROSE ============ */
.intro {
margin-top: 28px; font-size: 16.5px; color: var(--ink-dim);
max-width: 680px; line-height: 1.72;
}
/* ============ SECTION LABEL ============ */
.sec-label {
font-family: var(--font-mono); font-size: 11px; letter-spacing: 0.22em;
text-transform: uppercase; color: var(--ink-faint);
margin: 44px 0 18px; display: flex; align-items: center; gap: 14px;
}
.sec-label::after { content:""; flex:1; height:1px; background: var(--rule); }
/* ============ GRID (mobile-first: single column) ============ */
.grid { display: grid; grid-template-columns: 1fr; gap: 14px; align-items: start; }
.card {
border: 1px solid var(--rule); border-radius: 14px; background: var(--panel);
padding: 26px 24px; position: relative; overflow: hidden;
transition: border-color .35s, background .35s;
}
.card:hover { border-color: var(--rule-2); background: var(--panel-2); }
.card .idx { font-family: var(--font-mono); font-size: 10.5px; color: var(--ink-faint); letter-spacing: 0.1em; }
.card .stat {
font-family: var(--font-head); font-weight: 800;
font-size: clamp(46px, 13vw, 58px); letter-spacing: -0.05em; line-height: 1;
margin: 14px 0 4px;
}
.card .stat .sup { font-size: 0.4em; vertical-align: super; font-weight: 700; }
.card .stat .x { font-size: 1em; font-weight: inherit; letter-spacing: -0.04em; }
.card.c-yellow .stat { color: var(--yellow); }
.card.c-green .stat { color: var(--green); }
.card .stat-name { font-family: var(--font-head); font-weight: 600; font-size: 16px; color: var(--ink); margin-bottom: 10px; }
.card p { font-size: 14.5px; color: var(--ink-dim); }
/* expandable detail (checkbox — no scripts in blog iframe) */
.more { margin-top: 18px; border-top: 1px solid var(--rule); padding-top: 14px; position: relative; }
.more-check {
position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0;
}
.more-toggle {
cursor: pointer; user-select: none;
font-family: var(--font-mono); font-size: 10.5px; letter-spacing: 0.14em;
text-transform: uppercase; color: var(--yellow);
display: inline-flex; align-items: center; gap: 9px;
transition: opacity .2s;
}
.more-toggle:hover { opacity: 0.78; }
.more-toggle .pm {
display: inline-grid; place-items: center;
width: 16px; height: 16px; border: 1px solid var(--yellow); border-radius: 5px;
font-size: 13px; line-height: 1; transition: transform .28s ease;
}
.more-check:checked + .more-toggle .pm { transform: rotate(45deg); }
.more-check:not(:checked) ~ .more-body,
.more-check:not(:checked) ~ .more-label { display: none; }
.more .more-body { margin-top: 13px; font-size: 13.5px; color: var(--ink-dim); line-height: 1.64; }
.more .more-body p + p { margin-top: 11px; }
/* callout card */
.card.callout {
border-left: 3px solid var(--yellow);
background: linear-gradient(180deg, rgba(228,242,35,0.05), transparent 70%), var(--panel);
}
.card.callout .nl {
font-family: var(--font-mono); font-size: 10px; letter-spacing: 0.18em;
text-transform: uppercase; color: var(--yellow); margin-bottom: 10px;
}
.card.callout p { color: var(--ink); font-size: 15px; }
/* ============ CLOSE ============ */
.close { margin: 54px 0 72px; border-top: 1px solid var(--rule); padding-top: 38px; }
.close .summary {
font-size: 16.5px; color: var(--ink-dim); max-width: 680px; line-height: 1.72;
margin-bottom: 30px;
}
.close .cta {
display: inline-flex; align-items: center; gap: 12px;
font-family: var(--font-mono); font-size: 13px; letter-spacing: 0.04em;
color: var(--bg); background: var(--yellow); padding: 14px 22px; border-radius: 100px;
text-decoration: none; font-weight: 700; transition: transform .25s, box-shadow .25s;
}
.close .cta:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(228,242,35,0.22); }
.reveal { opacity: 0; transform: translateY(20px); }
.reveal.in { opacity: 1; transform: none; transition: opacity .6s ease, transform .6s cubic-bezier(.2,.7,.2,1); }
/* card with expandable detail — desktop two-column */
.card.has-more { display: flex; flex-direction: column; }
.card-primary { min-width: 0; }
@media (min-width: 720px) {
.card.has-more {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(210px, 34%);
gap: 0 28px;
align-items: start;
}
.grid .card.has-more {
grid-column: 1 / -1;
}
.card.has-more .more {
margin-top: 0;
border-top: none;
padding-top: 0;
border-left: 1px solid var(--rule);
padding-left: 22px;
align-self: stretch;
}
.card.has-more .more-toggle { display: none; }
.card.has-more .more .more-body,
.card.has-more .more .more-label { display: block !important; }
.card.has-more .more .more-body {
display: block !important;
margin-top: 0;
}
.card.has-more .more .more-label {
display: block;
font-family: var(--font-mono);
font-size: 10px;
letter-spacing: 0.18em;
text-transform: uppercase;
color: var(--yellow);
margin-bottom: 10px;
}
}
.more .more-label { display: none; }
/* ============ TABLET / DESKTOP ============ */
@media (min-width: 720px) {
.wrap { padding: 0 24px; }
header { padding: 70px 0 8px; }
.grid { grid-template-columns: repeat(2, 1fr); gap: 16px; }
.grid .card.callout { grid-column: 1 / -1; }
.card { padding: 30px 28px; }
.card .stat { font-size: clamp(44px, 5vw, 56px); }
}
Zentix Case Study
Halfway to Halloween 2026 · 6 major US markets
Client · Thirteenth Floor Entertainment Group
Over Halfway to Halloween weekend, Thirteenth Floor Entertainment Group ran six major US markets on Zentix. Every step from the ad click through the ticket sale and into the gate ran on one system, so everything below comes from a single connected dataset. Here is what the weekend looked like across pricing, support, the gate, marketing, and payments.
The Numbers
01 / PRICING
+10%
Higher average ticket price
The price engine moved tickets up while the intelligence