/* FanLife - The Fandom Ledger web system v1.0. Source of truth for all pages. */
:root{
  --orange:#FF5C35; --lit:#FF7D5C; --night:#0D0F1A; --plate:#07080F; --ink:#1A1D2E;
  --passcard:#20243C; --mist:#8B94B8; --paper:#F5E9D4; --line:rgba(255,255,255,.13);
  --body:#DCE1F0; --amber:#FFB347;
  --fd:'Bebas Neue',sans-serif; --fh:'DM Serif Display',Georgia,serif;
  --fb:'DM Sans',system-ui,sans-serif; --fm:'DM Mono',monospace; --fled:'Doto',monospace;
  --grunge:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" width="240" height="240"><filter id="g"><feTurbulence type="fractalNoise" baseFrequency="0.9" numOctaves="2" seed="7"/><feColorMatrix type="matrix" values="0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0.45 0.45 0.45 0 0.1"/></filter><rect width="240" height="240" filter="url(%23g)"/></svg>');
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:radial-gradient(ellipse at 8% 0,rgba(255,92,53,.16),transparent 34%),var(--night);color:var(--body);font:17.5px/1.7 var(--fb);font-weight:300;-webkit-font-smoothing:antialiased;overflow-x:hidden}
b,strong{font-weight:600}
.wrap{width:min(1140px,calc(100% - 40px));margin:auto}

/* LED TYPE (reusable) */
.ledtext{font-family:var(--fled);font-weight:900;color:var(--amber);text-shadow:0 0 7px rgba(255,140,40,.8),0 0 22px rgba(255,120,30,.35);letter-spacing:.12em}
.ledgreen{font-family:var(--fled);font-weight:900;color:#3BE8A8;text-shadow:0 0 8px rgba(0,220,150,.75);letter-spacing:.1em}

/* RUBBER STAMPS (reusable) */
.stamp{display:inline-block;border:3px solid currentColor;border-radius:10px;padding:14px 20px;text-align:center;font:500 12px var(--fm);letter-spacing:.16em;text-transform:uppercase;line-height:1.8;color:var(--lit);position:relative;
  -webkit-mask-image:var(--grunge);mask-image:var(--grunge);-webkit-mask-size:240px;mask-size:240px}
.stamp::before{content:'';position:absolute;inset:4px;border:1px solid currentColor;border-radius:6px;opacity:.75}
.stamp b{display:block;font:24px/1.1 var(--fd);letter-spacing:.1em;font-weight:400;margin:3px 0}
.stamp-green{color:#35E0B2}
.stamp-tilt-l{transform:rotate(-6deg)}
.stamp-tilt-r{transform:rotate(4deg)}
.stamp-ip{width:100%;max-width:290px;justify-self:center;mix-blend-mode:screen}
.stamp-foundation{position:absolute;top:-52px;right:8px;width:260px;z-index:2;mix-blend-mode:screen}

/* TOP STRIP + MASTHEAD */
.topstrip{padding:11px 0;border-bottom:1px solid var(--line);color:var(--mist);font:11px var(--fm);letter-spacing:.12em;text-transform:uppercase}
.topstrip .wrap{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}
.topstrip b{color:var(--lit);font-weight:500}
.mast{padding:26px 0 0}
.mast .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding-bottom:16px;border-bottom:2px solid var(--orange)}
.neon-nav{height:44px;width:auto;mix-blend-mode:screen;animation:buzz 6s linear infinite}
.issue{font:11px/1.6 var(--fm);color:var(--mist);text-align:right;letter-spacing:.08em;text-transform:uppercase}
@keyframes buzz{0%,100%{opacity:1}3%{opacity:.35}5%{opacity:1}7%{opacity:.5}8%,44%{opacity:1}46%{opacity:.6}47%,78%{opacity:1}80%{opacity:.8}82%{opacity:1}}
@media (prefers-reduced-motion:reduce){.neon-nav,.motionbox img{animation:none}}

/* ROUTE (tear-off strip nav) */
.route{display:flex;overflow:auto;border-bottom:1px solid var(--line)}
.route a{min-width:150px;flex:1;padding:12px 16px;border-right:1px dashed var(--line);color:var(--mist);text-decoration:none;font:11px var(--fm);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}
.route a:first-child{border-left:1px dashed var(--line)}
.route a:hover{color:#fff;background:rgba(255,92,53,.08)}

/* HERO */
.cover{padding:78px 0 86px;overflow:hidden;position:relative}
.cover::after{content:var(--ghost,"");position:absolute;right:-24px;bottom:-.32em;color:rgba(255,92,53,.05);font:clamp(140px,24vw,380px)/1 var(--fd);white-space:nowrap;letter-spacing:.02em;pointer-events:none}
.cover-grid{position:relative;z-index:1}
.kicker{color:var(--lit);font:12px var(--fm);letter-spacing:.16em;text-transform:uppercase}
.cover h1{margin:20px 0 0;font-family:var(--fh);font-weight:400;font-size:clamp(42px,5.8vw,74px);line-height:1.06;color:#fff;max-width:960px;letter-spacing:-.01em}
.cover h1 .glowline{display:block;font-style:italic;color:var(--lit);text-shadow:0 0 5px rgba(255,92,53,.55),0 0 20px rgba(255,92,53,.42),0 0 48px rgba(255,92,53,.25)}
.cover .standfirst{max-width:720px;margin:30px 0 0;color:var(--body);font-size:20px;line-height:1.6}
.cover-cta{display:inline-block;margin-top:40px;padding:15px 34px;background:var(--orange);color:#2A0D05;font:600 15px var(--fb);letter-spacing:.03em;text-decoration:none;border-radius:3px;transition:transform .18s,box-shadow .18s}
.cover-cta:hover{transform:translateY(-2px);box-shadow:0 0 26px rgba(255,92,53,.45)}
.cover-cta small{display:block;font:10px var(--fm);letter-spacing:.14em;text-transform:uppercase;opacity:.75;margin-top:2px}

/* ARENA LED BOARD */
.ledboard{background:linear-gradient(180deg,#101321 0%,#05060B 12%,#05060B 88%,#101321 100%);border-top:2px solid #232739;border-bottom:2px solid #232739;box-shadow:inset 0 6px 18px rgba(0,0,0,.85),inset 0 -6px 18px rgba(0,0,0,.85);overflow:hidden;position:relative}
.ledboard::before{content:'';position:absolute;inset:0;background:radial-gradient(rgba(255,255,255,.045) 1px,transparent 1.4px) 0 0/6px 6px;pointer-events:none;z-index:2}
.ledboard::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent 30%,transparent 70%,rgba(0,0,0,.35));pointer-events:none;z-index:3}
.led-track{display:inline-flex;align-items:center;white-space:nowrap;width:max-content;animation:tick 48s linear infinite;padding:16px 0}
.ledboard:hover .led-track{animation-play-state:paused}
.led-item{font-family:var(--fled);font-weight:900;font-size:21px;letter-spacing:.14em;color:var(--amber);text-shadow:0 0 7px rgba(255,140,40,.85),0 0 22px rgba(255,120,30,.4);filter:saturate(1.15)}
.led-sep{font-family:var(--fled);font-weight:900;color:var(--orange);text-shadow:0 0 8px rgba(255,92,53,.9);padding:0 34px;font-size:18px}
@keyframes tick{to{transform:translateX(-50%)}}
@media (prefers-reduced-motion:reduce){.led-track{animation:none;white-space:normal;width:100%;flex-wrap:wrap;justify-content:center;row-gap:6px}}

/* SECTION FRAME */
section{padding:82px 0;border-top:1px solid var(--line);position:relative;z-index:1}
.lead{display:block;margin-bottom:38px}
.section-stamp{display:flex;align-items:baseline;gap:14px;color:var(--lit);font:12px var(--fm);letter-spacing:.16em;text-transform:uppercase;margin-bottom:16px}
.section-stamp span{font-family:var(--fled);font-weight:900;font-size:30px;line-height:1;color:var(--amber);text-shadow:0 0 8px rgba(255,140,40,.7),0 0 24px rgba(255,120,30,.3);letter-spacing:.08em}
.lead h2{font-family:var(--fh);font-weight:400;font-size:clamp(32px,4.4vw,52px);line-height:1.05;color:#fff;letter-spacing:-.02em}
.lead p{max-width:720px;margin:16px 0 0;color:var(--body);font-size:18px}

/* TICKETS (staggered, like three different events on a table) */
.ticket-row{display:flex;flex-direction:column;gap:30px;align-items:flex-start}
.tkt{width:min(720px,100%);filter:drop-shadow(0 0 1.5px rgba(160,168,200,.6)) drop-shadow(0 16px 26px rgba(0,0,0,.5));transition:transform .2s}
.tkt:hover{transform:translateY(-4px) rotate(0)}
.tkt:nth-child(odd){transform:rotate(-.4deg)}
.tkt:nth-child(even){transform:rotate(.4deg)}
.tkt:hover{transform:translateY(-4px) rotate(0) !important}
.ticket{position:relative;color:#171826;background-repeat:no-repeat;background-size:100% 100%}
.ticket .serial{color:#7c3a2b;font:10px var(--fm);letter-spacing:.13em;text-transform:uppercase}
.ticket h3{margin:14px 34% 10px 0;font:29px/.98 var(--fd);letter-spacing:.04em;font-weight:400}
.ticket p{margin:0 34% 0 0;color:#424556;font-size:13.5px;line-height:1.55}
.ticket .stub{position:absolute;right:5.5%;top:41%;width:27%;color:#686772;font:9.5px/1.9 var(--fm);letter-spacing:.07em;text-align:center;text-transform:uppercase;white-space:normal}
.ticket .stub::before{content:var(--stubhead,"Admit one");display:block;font-family:var(--fd);font-size:1.9em;letter-spacing:.09em;line-height:1.1;margin-bottom:3px}
/* contemporary ticket colourways: signal, off-white (art), amber (crm-art), midnight, teal */
.ticket.sig-art{background-image:url('../assets/fanlife-ticket-signal-orange.webp');aspect-ratio:2/1;padding:10.5% 6% 10% 6.5%}
.ticket.sig-art .serial{color:#7A2308}
.ticket.sig-art .tmeta{color:#5A1808}
.ticket.sig-art h3{color:#2A0D05}
.ticket.sig-art p{color:#5A1808}
.ticket.sig-art .stub{color:#7A2308}
.ticket.crm-art{background-image:url('../assets/fanlife-ticket-led-amber.webp');aspect-ratio:2/1;padding:9% 6% 8% 7%}
.ticket.crm-art .serial{color:#8A6200}
.ticket.crm-art h3{color:#2E2102}
.ticket.crm-art p{color:#5A4200}
.ticket.crm-art .stub{color:#8A6A20}
.ticket.art{background:url('../assets/fanlife-ticket-off-white.webp') center/100% 100% no-repeat;clip-path:none;aspect-ratio:2/1;min-height:0;padding:9% 6% 8% 7%;color:#2C3050}
.ticket.art::before{display:none}
.ticket.art .serial{color:#6B6F8A}
.ticket.art h3{color:#1A1D2E}
.ticket.art p{color:#42465C}
.ticket.art .stub{color:#8A8FA8}
.ticket.art .facevalue{border-top-color:rgba(26,29,46,.25);color:#6B6F8A}
.ticket.art .facevalue b{color:#1A1D2E}
.ticket.mid-art{background-image:url('../assets/fanlife-ticket-midnight-navy.webp');aspect-ratio:2/1;padding:9% 6% 8% 6.5%;color:#DCE1F0}
.ticket.mid-art .serial{color:#FF7D5C}
.ticket.mid-art h3{color:#fff}
.ticket.mid-art p{color:#C7CDE4}
.ticket.mid-art .stub{color:#8B94B8}
.ticket.mid-art .facevalue{border-top-color:rgba(255,255,255,.2);color:#8B94B8}
.ticket.mid-art .facevalue b{color:#fff}
.ticket.teal-art{background-image:url('../assets/fanlife-ticket-teal.webp');aspect-ratio:2/1;padding:9% 6% 8% 6.5%}
.ticket.teal-art .serial{color:#0A3527}
.ticket.teal-art h3{color:#08281D}
.ticket.teal-art p{color:#0E3D2E}
.ticket.teal-art .stub{color:#11543F}
.ticket.pt-mid{background-image:url('../assets/fanlife-ticket-portrait-midnight-navy.webp');aspect-ratio:2/3;padding:9% 10% 34%;color:#DCE1F0}
.ticket.pt-mid .serial{color:#FF7D5C}
.ticket.pt-mid h3{color:#fff;margin-right:0}
.ticket.pt-mid p{color:#C7CDE4;margin-right:0}
.ticket.pt-sig{background-image:url('../assets/fanlife-ticket-portrait-signal-orange.webp');aspect-ratio:2/3;padding:9% 10% 34%}
.ticket.pt-sig .serial{color:#7A2308}
.ticket.pt-sig h3{color:#2A0D05;margin-right:0}
.ticket.pt-sig p{color:#5A1808;margin-right:0}

/* PLATFORM STAMP SCENE */
.stamp-scene{margin-top:54px;background:var(--plate);border:1px solid var(--line);padding:44px 46px;display:grid;grid-template-columns:1fr 260px;gap:44px;align-items:center}
.stamp-scene p{max-width:640px;font-size:16.5px;color:var(--body)}

/* ACCREDITATION PASSES (artwork cards, live text in the white panel) */
.pass-row{display:grid;grid-template-columns:1fr 1fr;gap:30px;max-width:880px;margin:0}
.pass{position:relative;aspect-ratio:2/3;background-repeat:no-repeat;background-size:100% 100%;filter:drop-shadow(0 18px 30px rgba(0,0,0,.5));transition:transform .2s}
.pass:hover{transform:translateY(-4px) rotate(0)}
.pass.p-media{background-image:url('../assets/fanlife-pass-media.webp')}
.pass.p-athlete{background-image:url('../assets/fanlife-pass-athlete.webp')}
.pass.p-vendor{background-image:url('../assets/fanlife-pass-vendor.webp')}
.pass.p-allzones{background-image:url('../assets/fanlife-pass-allzones.webp')}
.pass-panel{position:absolute;left:17.5%;right:17.5%;top:35.5%;height:32.5%;padding:4.5% 5%;overflow:hidden;display:flex;flex-direction:column}
.pass-panel .serial{font:10px var(--fm);letter-spacing:.13em;text-transform:uppercase;color:#C24A24}
.pass.p-athlete .pass-panel .serial{color:#8A6A00}
.pass.p-vendor .pass-panel .serial{color:#5A5E78}
.pass.p-allzones .pass-panel .serial{color:#0E8A66}
.pass-panel h3{margin:8px 0 7px;font:22px/1 var(--fd);letter-spacing:.05em;color:#1A1D2E;font-weight:400}
.pass-panel p{font-size:13px;color:#42465C;line-height:1.55}
.pass-panel .pmeta{margin-top:auto;padding-top:8px;border-top:1px dashed rgba(26,29,46,.25);display:flex;justify-content:space-between;font:9.5px var(--fm);letter-spacing:.1em;text-transform:uppercase;color:#5A5E78}
.pass-panel .pmeta b{color:#1A1D2E;font-weight:500}
.pass-bars{height:16px;background:repeating-linear-gradient(90deg,#14161F 0 2px,transparent 2px 4px,#14161F 4px 7px,transparent 7px 9px,#14161F 9px 10px,transparent 10px 14px,#14161F 14px 15px,transparent 15px 17px,#14161F 17px 21px,transparent 21px 23px)}

/* FIXTURE LEDGER */
.ledger{border-top:1px solid var(--line)}
.ledger-row{display:grid;grid-template-columns:230px 1fr;gap:30px;padding:26px 0;border-bottom:1px dashed var(--line);align-items:baseline}
.ledger-row:last-child{border-bottom:1px solid var(--line)}
.ledger-tag{font-family:var(--fled);font-weight:900;font-size:19px;letter-spacing:.1em;color:var(--amber);text-shadow:0 0 7px rgba(255,140,40,.7),0 0 20px rgba(255,120,30,.3)}
.ledger-tag small{display:block;font:10px var(--fm);font-weight:400;letter-spacing:.14em;color:var(--mist);margin-top:7px;text-shadow:none;text-transform:uppercase}
.ledger-row p{font-size:15.5px;color:var(--body);max-width:720px}

/* PLAYS + BOARD */
.how-layout{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.plays{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.play{padding:20px 0;border-top:3px solid var(--orange)}
.play .num{font-family:var(--fled);font-weight:900;font-size:30px;color:var(--amber);text-shadow:0 0 7px rgba(255,140,40,.7);letter-spacing:.08em}
.play h3{margin:10px 0 7px;font:21px var(--fd);letter-spacing:.04em;color:#fff;font-weight:400}
.play p{font-size:14px;color:var(--body);line-height:1.6}
.board{background:var(--plate);border:1px solid #232739;border-radius:8px;padding:30px 32px;box-shadow:inset 0 3px 20px rgba(0,0,0,.75)}
.board-head{display:flex;justify-content:space-between;align-items:center;padding-bottom:14px;border-bottom:1px solid var(--line)}
.board-title{font-family:var(--fled);font-weight:900;font-size:17px;letter-spacing:.14em;color:var(--amber);text-shadow:0 0 7px rgba(255,140,40,.8)}
.board-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:15px 0;border-bottom:1px dashed rgba(255,255,255,.09)}
.board-who{font:500 13px var(--fm);letter-spacing:.06em;text-transform:uppercase;color:#fff;white-space:nowrap}
.board-what{flex:1;font-size:13.5px;color:var(--mist);text-align:right}
.board-live{font-family:var(--fled);font-weight:900;font-size:13px;letter-spacing:.1em;color:#3BE8A8;text-shadow:0 0 8px rgba(0,220,150,.75);white-space:nowrap}
.board-note{font-size:13px;color:var(--mist);margin-top:18px;line-height:1.65}

/* VIDEO */
.video-layout{display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:center}
.vlist{margin-top:24px;border-top:1px solid var(--line)}
.vitem{display:grid;grid-template-columns:64px 1fr;gap:18px;padding:13px 0;border-bottom:1px dashed var(--line);font-size:15px;color:var(--body);line-height:1.55}
.vitem .vm{font:10px/2 var(--fm);letter-spacing:.12em;color:var(--lit);text-transform:uppercase}
.bigscreen{max-width:330px;margin:0 auto;width:100%;position:relative}
.bigscreen-inner{position:relative;width:100%;aspect-ratio:9/16;background:var(--plate);border-radius:10px;overflow:hidden;border:6px solid #14161f;outline:1px solid #2a2e42;box-shadow:0 30px 70px rgba(0,0,0,.55)}
.bigscreen-inner iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.bigscreen .stamp{position:absolute;top:-18px;right:-26px;z-index:2;background:rgba(13,15,26,.55);padding:10px 14px;font-size:10px}
.bigscreen .stamp b{font-size:17px}
.bigscreen-cap{margin-top:14px;text-align:center;font:11px/1.7 var(--fm);letter-spacing:.08em;text-transform:uppercase;color:var(--mist)}

/* TERMS */
.terms-scene{position:relative}
.terms-scene>.stamp{position:absolute;top:-34px;right:8px;z-index:2}
.terms{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.term{padding:28px 32px 24px 0}
.term:nth-child(even){padding-left:32px;border-left:1px dashed var(--line)}
.term:nth-child(n+3){border-top:1px dashed var(--line)}
.term .serial{font:10px var(--fm);letter-spacing:.13em;text-transform:uppercase;color:var(--lit)}
.term h3{margin:10px 0 8px;font:24px var(--fd);letter-spacing:.05em;color:#fff;font-weight:400}
.term p{font-size:14.5px;color:var(--body);line-height:1.65}

/* CTA */
.motionbox{background:var(--plate);border:1px solid rgba(255,92,53,.65);box-shadow:0 0 40px rgba(255,92,53,.13),inset 0 0 40px rgba(255,92,53,.05);padding:56px 40px;text-align:center}
.motionbox img{height:72px;width:auto;mix-blend-mode:screen;animation:buzz 6s linear infinite}
.motionbox h2{font-family:var(--fh);font-weight:400;font-size:clamp(28px,3.4vw,42px);color:#fff;margin:28px auto 16px;max-width:640px;line-height:1.2}
.motionbox .cta-sub{font-size:17px;color:var(--body);max-width:560px;margin:0 auto 38px}
.contact-card{display:inline-block;text-align:left;background:var(--ink);border:1px solid rgba(255,255,255,.14);border-radius:10px;padding:30px 38px;transition:transform .18s,border-color .18s}
.contact-card:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.3)}
.contact-card .serial{font:10px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--lit)}
.contact-name{font-family:var(--fh);font-size:26px;color:#fff;margin:8px 0 2px}
.contact-role{font-size:13.5px;color:var(--mist);margin-bottom:14px;line-height:1.55;max-width:380px}
.contact-line{font-size:17px;font-weight:600}
.contact-line a{color:var(--lit);text-decoration:none}
.contact-line a:hover{text-decoration:underline}
.contact-phone{font-size:15px;color:var(--body);margin-top:2px}

/* FOOTER */
.footer{padding:34px 0;color:var(--mist);font:11px var(--fm);letter-spacing:.08em;text-transform:uppercase}
.footer-line{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line)}

/* RESPONSIVE */
@media(max-width:920px){
  .section-stamp span{font-size:24px}
  .ticket-row{grid-template-columns:1fr}
  .pass-row{grid-template-columns:1fr 1fr}
  .pass{min-height:0}
  .how-layout,.video-layout{grid-template-columns:1fr;gap:44px}
  .stamp-scene{grid-template-columns:1fr;gap:30px}
  .stamp-scene .stamp{justify-self:start}
  .ledger-row{grid-template-columns:1fr;gap:8px}
  .terms{grid-template-columns:1fr}
  .terms-scene>.stamp-foundation{position:static;display:inline-block;margin-bottom:22px}
  .term:nth-child(even){padding-left:0;border-left:none}
  .term:nth-child(n+2){border-top:1px dashed var(--line)}
  .bigscreen .stamp-img{right:-6px !important}
}
@media(max-width:560px){
  .pass-row{grid-template-columns:1fr}
  .plays{grid-template-columns:1fr}
  .ticket.art,.ticket.crm-art,.ticket.mid-art,.ticket.teal-art{aspect-ratio:auto;min-height:0;padding:13% 34% 13% 9%}
  .ticket.sig-art{aspect-ratio:auto;min-height:0;padding:16% 34% 17% 9%}
  .ticket h3,.ticket p,.ticket.art h3,.ticket.art p{margin-right:0}
  .tmeta,.facevalue,.tbar,.ticket.art .facevalue{margin-right:0;max-width:none}
  .ticket .stub{right:4.5%;width:28%;font-size:8px}
  .ticket .stub::before{font-size:1.5em}
  .punch,.ticket.art .punch{right:11%;top:9%}
}

/* ===== additional shared components ===== */
/* data / rate tables */
.datatable{width:100%;border-collapse:collapse;margin-top:34px;font-size:14px}
.datatable th{background:var(--plate);padding:13px 18px;text-align:left;font:500 11px var(--fm);letter-spacing:.14em;text-transform:uppercase;color:var(--amber);border-bottom:1px solid #232739}
.datatable td{padding:14px 18px;border-bottom:1px dashed rgba(255,255,255,.09);color:var(--body);vertical-align:top}
.datatable td:first-child{color:#fff;font-weight:500}
.datatable tr:last-child td{border-bottom:1px solid var(--line)}
.dt-hi{color:#3BE8A8 !important;font-weight:600 !important}
/* wide screen frame for 16:9 video or figma embeds */
.widescreen{position:relative;width:100%;aspect-ratio:16/9;background:var(--plate);border-radius:10px;overflow:hidden;border:6px solid #14161f;outline:1px solid #2a2e42;box-shadow:0 30px 70px rgba(0,0,0,.55)}
.widescreen iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* pull quote */
.quoteblock{background:var(--plate);border:1px solid var(--line);border-left:3px solid var(--orange);padding:30px 34px;max-width:760px}
.quoteblock .q{font-family:var(--fh);font-style:italic;font-size:20px;color:#fff;line-height:1.5;margin-bottom:12px}
.quoteblock .src{font:11px var(--fm);letter-spacing:.1em;text-transform:uppercase;color:var(--mist)}
/* logo / integration chips */
.chiprow{display:flex;gap:12px;flex-wrap:wrap}
.chiprow span{background:rgba(255,255,255,.06);border:1px solid var(--line);border-radius:4px;padding:7px 14px;font:500 12px var(--fm);letter-spacing:.06em;color:var(--body)}
/* generic content card grid (fallback where tickets/passes do not fit) */
.cardgrid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.lcard{background:var(--ink);border:1px solid rgba(255,255,255,.12);border-radius:10px;padding:26px 28px;transition:transform .2s,border-color .2s}
.lcard:hover{transform:translateY(-2px);border-color:rgba(255,255,255,.26)}
.lcard .serial{font:10px var(--fm);letter-spacing:.13em;text-transform:uppercase;color:var(--lit)}
.lcard h3{margin:10px 0 8px;font:22px var(--fd);letter-spacing:.05em;color:#fff;font-weight:400}
.lcard p{font-size:14.5px;color:var(--body);line-height:1.65}
@media(max-width:920px){.cardgrid{grid-template-columns:1fr}}

/* season calendar strip: 12-month overlap grid */
.cal{border:1px solid var(--line);border-radius:10px;background:var(--plate);padding:26px 28px 22px;margin-top:8px;overflow-x:auto;box-shadow:inset 0 3px 20px rgba(0,0,0,.5)}
.cal-grid{display:grid;grid-template-columns:170px repeat(12,1fr);gap:4px;align-items:center;min-width:680px}
.cal-grid .m{font:9.5px var(--fm);letter-spacing:.08em;color:var(--mist);text-align:center;text-transform:uppercase;padding-bottom:6px}
.cal-grid .lbl{font:500 11px var(--fm);letter-spacing:.04em;color:#fff;text-align:right;padding-right:14px;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cal-grid .c{height:24px;border-radius:3px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.05)}
.cal-grid .on{display:flex;align-items:center;justify-content:center;font:600 8.5px var(--fb);letter-spacing:.05em;border:none;text-transform:uppercase}
.cal-grid .on.c1{background:var(--orange);color:#2A0D05}
.cal-grid .on.c2{background:#2BC79A;color:#0E3D2E}
.cal-grid .on.c3{background:#FFB347;color:#2E2102}
.cal-grid .on.c4{background:#8B94B8;color:#14161F}
@media(max-width:700px){.cal{padding:18px 16px 14px}.cal-grid{grid-template-columns:110px repeat(12,1fr)}}

/* responsive artwork: overlay text scales with its container */
img{max-width:100%;height:auto}
@supports (container-type:inline-size){
  .tkt,.pass{container-type:inline-size}
  .ticket .serial{font-size:clamp(8.5px,1.4cqw,10px)}
  .ticket h3{font-size:clamp(19px,4cqw,29px)}
  .ticket p{font-size:clamp(11px,1.9cqw,13.5px)}
  .ticket .stub{font-size:clamp(8px,1.4cqw,10px)}
  .tmeta span{font-size:clamp(7.5px,1.25cqw,9px)}
  .tmeta span b{font-size:clamp(11px,2.1cqw,15px)}
  .facevalue{font-size:clamp(9px,1.5cqw,11px)}
  .tbar small{font-size:clamp(6.5px,1.1cqw,8px)}
  .pass-panel .serial{font-size:clamp(8px,2.4cqw,10px)}
  .pass-panel h3{font-size:clamp(15px,5.4cqw,22px)}
  .pass-panel p{font-size:clamp(10.5px,3.2cqw,13px)}
  .pass-panel .pmeta{font-size:clamp(7.5px,2.3cqw,9.5px)}
}
@media(max-width:600px){.stamp-img{width:min(48vw,220px) !important}}

/* mobile fit: no component may set the page's minimum width */
@media(max-width:700px){
  table{display:block;overflow-x:auto;max-width:100%;-webkit-overflow-scrolling:touch}
  .board{padding:20px 16px;min-width:0}
  .board-row{flex-wrap:wrap;row-gap:2px}
  .board-who{white-space:normal}
  .board-what{flex-basis:100%;text-align:left;order:3}
  .motionbox{padding:40px 16px}
  .contact-card{display:block;max-width:100%;padding:24px 18px}
  .contact-line,.contact-card .serial{overflow-wrap:anywhere}
  .contact-line{font-size:15px}
  .contact-role{max-width:100%}
  .mast .wrap{flex-direction:column;align-items:flex-start;gap:6px}
  .issue{text-align:left}
  .lcard,.term,.play,.quoteblock,.callout{min-width:0}
  .lcard h3,.lcard p,.lcard a,.term p,.play p,.quoteblock .q,.callout{overflow-wrap:anywhere}
  .cardgrid{grid-template-columns:1fr}
  .stamp-img{max-width:44vw}
  .footer-line span{overflow-wrap:anywhere}
}
