/* Selective artwork and editorial emphasis; no repeating image tiles. */
.homepage .header::after{content:"";position:absolute;bottom:0;left:0;width:100%;height:2px;transform:scaleX(var(--reading-progress,0));transform-origin:left;background:linear-gradient(90deg,#7745f5,#d475c0,#f47a3c);pointer-events:none}
.manifesto-art{--art-bleed:1px;position:absolute;width:min(62vw,760px);height:auto;left:calc((100% - 100vw)/2 - var(--art-bleed));top:-210px;z-index:-1;opacity:.48;pointer-events:none;mix-blend-mode:lighten;mask-image:radial-gradient(ellipse at 25% 55%,#000 20%,transparent 72%)}
.manifesto-copy{position:relative;z-index:1}
.manifesto::before{inset:-160px calc((100% - 100vw)/2) -90px;background:radial-gradient(ellipse at 15% 60%,#7232b51c,transparent 52%);mask-image:linear-gradient(180deg,transparent,#000 25%,#000 65%,transparent 90%)}
.audience{position:relative;isolation:isolate;padding-top:90px}
.audience::before{content:"";position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,#a174c14a,transparent)}
.audience-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.audience-grid article:first-child,.audience-grid article+article{padding:36px;border:1px solid #b99bce26;border-radius:22px;background:linear-gradient(145deg,#30243e55,#14101755);box-shadow:0 20px 60px #0002;transition:border-color .3s,background .3s}
.audience-grid article+article{background:linear-gradient(145deg,#32251f55,#14101755);border-color:#c69c7b26}
.audience-grid article:hover{border-color:#b99bce55}
.audience h3{font-size:clamp(26px,2.5vw,36px)}
.audience-label{margin-bottom:22px}
.audience li{border-bottom-color:#ffffff13}
.audience-action{margin-top:40px}
.case.featured{padding:26px;gap:40px;border:1px solid #d3b7e522;border-radius:26px;background:linear-gradient(120deg,#291e353b,#10101488);box-shadow:0 30px 100px #0003}
.case.featured .case-copy{padding-right:12px}
.case.featured .case-image img{height:470px}
.cases .section-head>.eyebrow,.solutions .section-head>.eyebrow{display:flex;gap:16px;align-items:center}
.cases .section-head>.eyebrow::before,.solutions .section-head>.eyebrow::before{content:"";width:32px;height:1px;background:var(--lavender)}
.solutions::before{content:"";position:absolute;pointer-events:none;inset:-140px 0 auto;height:460px;z-index:-1;background:radial-gradient(ellipse at 30% 75%,#6f2daf24,transparent 64%)}
.solutions .solution[open]{background:linear-gradient(90deg,#7b43af0d,transparent);border-top-color:#b98ade66}
.method-steps article{transition:background .45s,border-color .45s; border-radius:0 14px 14px 0}
.method-steps article>span{transition:color .45s,text-shadow .45s}
.method-steps article.is-current{background:linear-gradient(90deg,#7240ae15,transparent 90%);border-top-color:#a477cc66}
.method-steps article.is-current>span{color:#e5bfff;text-shadow:0 0 24px #9b60ef55}
.method-steps article.is-current h3{color:#fff}
.igaming figure{position:relative}
.igaming figure::before{content:"";position:absolute;inset:15% 0 0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#a45a2929,transparent 68%)}
.closing-flow{isolation:isolate;overflow:hidden}
.closing-art{position:absolute;left:50%;top:22%;transform:translateX(-50%);width:min(100%,1774px);height:auto;z-index:-1;opacity:.52;pointer-events:none;mix-blend-mode:lighten;mask-image:linear-gradient(to bottom,transparent,#000 20%,#000 75%,transparent)}
.closing-flow .people,.closing-flow .contact{background:transparent}
.team article{padding:24px 18px;background:linear-gradient(180deg,#17131d66,transparent);border-top:1px solid #ffffff0d;border-radius:12px}
.team{gap:24px}
.team article::before{width:32px;margin-bottom:20px}
.team h3{font-size:clamp(23px,2vw,28px)}
.contact{padding-top:130px}
.contact form{background:linear-gradient(145deg,#211a2bbf,#110e18e8);border-color:#ab84cb50;box-shadow:0 28px 100px #0005,inset 0 1px 0 #ffffff0b}
.contact h2{max-width:620px}
.contact h2>span{color:#dec2f4}
@media(max-width:1100px){
  .manifesto-art{width:64vw;top:-120px;opacity:.4}
  .audience-grid article:first-child,.audience-grid article+article{padding:28px}
  .case.featured{padding:20px;gap:26px}
  .case.featured .case-image img{height:400px}
  .closing-art{top:35%;opacity:.42}
}
@media(max-width:800px){
  .manifesto-art{--art-bleed:80px;width:min(80vw,620px);top:-100px;opacity:.3}
  .audience{padding-top:65px}.audience-grid{gap:18px}
  .audience-grid article:first-child,.audience-grid article+article{padding:24px}
  .case.featured{padding:18px;gap:0;border-radius:20px}
  .case.featured .case-copy{padding:6px 6px 16px}
  .case.featured .case-image img{height:auto;aspect-ratio:4/3}
  .closing-art{width:100%;top:auto;bottom:12%;opacity:.38}
  .team article{padding:20px 16px}.team{gap:20px}
  .contact{padding-top:85px}
}
@media(max-width:600px){
  .audience-grid{grid-template-columns:1fr}
  .manifesto-art{--art-bleed:190px;width:590px;max-width:none;top:-120px;opacity:.22}
  .audience-grid article:first-child,.audience-grid article+article{padding:26px 22px}
  .case.featured{padding:12px}.case.featured .case-copy{padding:8px 8px 15px}
  .closing-art{width:900px;max-width:none;left:25%;bottom:8%;opacity:.27}
  .team article{border-left:1px solid #a96cd244;padding:20px}
}
@media(prefers-reduced-motion:reduce){
  .method-steps article,.method-steps article>span,.audience-grid article{transition:none}
}

/* Mobile editorial layout: one reading axis and consistent page/card gutters. */
@media(max-width:800px){
  .homepage{--mobile-gutter:max(clamp(20px,6vw,28px),env(safe-area-inset-left),env(safe-area-inset-right));--mobile-section:56px}
  .homepage .wrap{width:calc(100% - 2 * var(--mobile-gutter))}
  .homepage .header{height:72px;padding-inline:var(--mobile-gutter)}
  .homepage .header nav{top:72px;padding:20px var(--mobile-gutter);max-height:calc(100svh - 72px)}
  .homepage .menu-toggle{min-width:44px;min-height:44px;padding:10px 0 10px 12px}
  .homepage section[id]{scroll-margin-top:0}
  .homepage h2,.homepage .section-head h2,.homepage .method-intro h2,.homepage .people-heading h2,.homepage .igaming h2,.homepage .contact h2{font-size:clamp(30px,8.2vw,42px);line-height:1.12;letter-spacing:-.04em;text-align:left;text-wrap:pretty;overflow-wrap:break-word}
  .homepage h2 br,.homepage .audience h3 br{display:none}
  .homepage p{text-wrap:pretty}
  .homepage .hero{height:auto;min-height:0;padding:108px 0 64px;justify-content:flex-start}
  .homepage .hero h1{font-size:clamp(32px,10.5vw,64px);line-height:1.02;letter-spacing:-.05em}
  .homepage .hero .eyebrow{font-size:12px;margin-bottom:18px}
  .homepage .hero-lead{font-size:15px;line-height:1.6;margin-top:36px;max-width:36em}
  .homepage .hero .actions{margin-top:36px;gap:16px}
  .homepage .hero-art{opacity:.48;object-position:72% center}
  .homepage .manifesto{min-height:0;padding-block:var(--mobile-section);display:block}
  .homepage .manifesto-copy{width:100%;max-width:560px;margin:0;text-align:left}
  .homepage .manifesto .eyebrow{justify-content:flex-start;margin-bottom:22px;gap:16px}
  .homepage .manifesto h2{margin-bottom:24px;max-width:14ch}
  .homepage .manifesto .large-copy{font-size:17px;line-height:1.6;max-width:32em;margin-left:0;text-align:left}
  .homepage .manifesto .signature{font-size:28px;line-height:1.12;margin-top:28px}
  .homepage .manifesto-art{opacity:.18;top:-100px}
  .homepage .audience,.homepage .cases,.homepage .solutions,.homepage .method,.homepage .igaming,.homepage .people,.homepage .contact{padding-block:var(--mobile-section)}
  .homepage .section-head,.homepage .audience .section-head{margin-bottom:32px}
  .homepage .section-head>.eyebrow{font-size:11px;line-height:1.5;margin-bottom:20px}
  .homepage .section-head h2{margin-top:0}
  .homepage .section-head>p:last-child{font-size:15px;line-height:1.65;margin-top:20px}
  .homepage .audience-grid{grid-template-columns:1fr;gap:20px}
  .homepage .audience-grid article:first-child,.homepage .audience-grid article+article{padding:24px;border-radius:18px}
  .homepage .audience-label{font-size:14px;line-height:1.5;gap:12px;margin-bottom:18px}
  .homepage .audience h3{font-size:26px;line-height:1.15;letter-spacing:-.035em;text-wrap:pretty;margin-bottom:16px}
  .homepage .audience article>p:not(.audience-label){font-size:15px;line-height:1.6;min-height:0}
  .homepage .audience ul{margin-top:22px}
  .homepage .audience li{gap:12px;padding-block:20px}
  .homepage .audience h4{font-size:17px;line-height:1.35}
  .homepage .audience li p{font-size:14px;line-height:1.65;margin-top:6px}
  .homepage .audience-action{margin-top:28px}
  .homepage .audience-action .button{font-size:14px;gap:12px}
  .homepage .audience-action>p{font-size:14px;max-width:28em;margin:22px auto 0}
  .homepage .button{min-height:52px;font-size:14px;line-height:1.4;padding:14px 18px;gap:16px}
  .homepage .text-link,.homepage .hero-link{min-height:44px;font-size:14px;line-height:1.5;gap:12px;padding-block:10px;align-items:center}
  .homepage .case.featured{padding:12px;margin-bottom:40px}
  .homepage .case.featured .case-copy{padding:4px 8px 14px}
  .homepage .case-copy h3,.homepage .case-grid .case-copy h3{font-size:28px;line-height:1.15;text-wrap:pretty}
  .homepage .case-copy>p:not(.eyebrow){font-size:15px;line-height:1.65}
  .homepage .case-grid{grid-template-columns:1fr;gap:40px}
  .homepage .case-copy .text-link{margin-top:18px}
  .homepage .solutions .section-head h2 .muted{display:block;margin-top:8px}
  .homepage .solutions-grid{gap:24px}
  .homepage .solution-visual{max-width:360px}
  .homepage .solution-visual img{height:240px;aspect-ratio:auto;mask-image:radial-gradient(ellipse,#000 48%,transparent 74%)}
  .homepage .solution-visual>span{left:20px;bottom:0;font-size:11px}
  .homepage .solution summary{grid-template-columns:22px minmax(0,1fr) 22px;gap:12px;font-size:32px;line-height:1.1;padding-block:22px}
  .homepage .solution summary small{font-size:12px;line-height:1.5}
  .homepage .solution-body{padding:0 0 24px 34px}
  .homepage .solution-body h3{font-size:17px;line-height:1.5}
  .homepage .solution-body p{font-size:15px;line-height:1.65}
  .homepage .solution-body .tags{font-size:12px;line-height:1.8;overflow-wrap:anywhere}
  .homepage .solution-body .text-link{font-size:14px}
  .homepage .method-grid{gap:32px}
  .homepage .method-intro h2{margin:20px 0 22px}
  .homepage .method-intro>p:not(.eyebrow){font-size:15px;line-height:1.65;margin-top:0}
  .homepage .method-steps article{padding:24px 0 24px 48px}
  .homepage .method-steps article:first-child{padding-top:0}
  .homepage .method-steps article>span{font-size:30px;top:22px}
  .homepage .method-steps article:first-child>span{top:0}
  .homepage .method-steps::before{left:15px}
  .homepage .method-steps h3{font-size:22px;line-height:1.25;margin-bottom:12px}
  .homepage .method-steps p{font-size:15px;line-height:1.65}
  .homepage .principles{font-size:12px;gap:12px 18px;margin-top:24px}
  .homepage .igaming-grid{gap:28px}
  .homepage .igaming h2{margin:20px 0 24px}
  .homepage .igaming p:not(.eyebrow){font-size:15px;line-height:1.65}
  .homepage .igaming .button{font-size:14px;margin-top:24px}
  .homepage .people-heading{gap:24px}
  .homepage .people-heading h2{margin-top:20px}
  .homepage .people-heading p:not(.eyebrow):not(.signature){font-size:15px;line-height:1.65}
  .homepage .team{grid-template-columns:1fr;gap:18px;margin-top:32px}
  .homepage .team article{padding:24px}
  .homepage .team article>span{font-size:13px;line-height:1.5;min-height:0}
  .homepage .team h3{font-size:27px;line-height:1.2;margin:12px 0 8px}
  .homepage .team .role{font-size:13px}
  .homepage .team p:last-child{font-size:15px;line-height:1.65;margin-top:18px;max-width:38em}
  .homepage .contact-grid{gap:32px}
  .homepage .contact h2{margin:20px 0 24px}
  .homepage .contact h2>span{display:block;margin-top:6px}
  .homepage .contact-grid>div>p:not(.eyebrow){font-size:15px;line-height:1.65}
  .homepage .contact .text-link{margin-top:24px}
  .homepage .contact form{padding:24px 20px;border-radius:18px}
  .homepage .contact input,.homepage .contact textarea{width:100%;font-size:16px;line-height:1.5;padding:12px;margin-bottom:20px}
  .homepage .contact input{min-height:48px}
  .homepage .contact textarea{min-height:144px;resize:vertical}
  .homepage .contact label{font-size:14px;line-height:1.5;margin-bottom:8px}
  .homepage .contact input::placeholder,.homepage .contact textarea::placeholder{font-size:13px}
  .homepage .form-note{font-size:12px;line-height:1.65}
  .homepage .contact form .button{width:fit-content;margin-inline:auto;justify-content:center;text-align:center}
  .homepage .footer{margin-inline:var(--mobile-gutter);padding:28px 0 24px;grid-template-columns:1fr;gap:18px}
  .homepage .footer>p{text-align:left;font-size:13px}
  .homepage .footer>div{gap:8px 20px;flex-wrap:wrap}
  .homepage .footer>div>a{display:inline-flex;align-items:center;gap:8px;min-height:44px;font-size:12px}
  .homepage .footer small{font-size:11px;line-height:1.6}
}
@media(max-width:600px){
  .homepage .hero .actions{align-items:center}
  .homepage .hero .button{width:fit-content;justify-content:center}
  .homepage .hero-link{align-self:center;justify-content:center;width:fit-content}
  .homepage .audience-action .button{width:fit-content;justify-content:center;margin-inline:auto;text-align:center}
  .homepage .igaming .button{width:fit-content;justify-content:center;margin-inline:auto;text-align:center}
}
@media(max-width:360px){
  .homepage .audience-grid article:first-child,.homepage .audience-grid article+article{padding:22px 18px}
  .homepage .team article{padding:22px 18px}
  .homepage .solution-body{padding-left:0}
  .homepage .hero h1{font-size:32px}
}
@media(max-width:600px) and (max-height:650px){
  .homepage .hero{padding-top:94px;padding-bottom:44px}
  .homepage .hero .eyebrow{margin-bottom:12px}
  .homepage .hero-lead{font-size:14px;line-height:1.5;margin-top:24px}
  .homepage .hero .actions{margin-top:26px;gap:10px}
}

/* Full initial viewport, transparent step labels and aligned contact details. */
.homepage .hero{min-height:100svh;justify-content:center}
.homepage .hero .eyebrow{margin-bottom:clamp(24px,4svh,40px)}
.homepage .hero-lead{margin-top:clamp(28px,5svh,56px)}
.homepage .hero .actions{margin-top:clamp(32px,5.5svh,64px)}
.homepage .hero-art{max-height:941px;bottom:auto}
.method-steps::before{content:none}
.method-steps article::after{content:"";position:absolute;left:24px;top:90px;bottom:12px;width:1px;background:linear-gradient(#a072cb55,#dd7b3522);pointer-events:none}
.method-steps article:first-child::after{top:64px}
.method-steps article:last-child::after{content:none}
.homepage .contact .contact-number{width:100%;max-width:none;margin-inline:auto;text-align:center}
.homepage .contact form .button{width:fit-content;max-width:100%;margin-inline:auto}
/* Fade the glow before its box ends, avoiding a horizontal seam. */
.solutions::before{mask-image:linear-gradient(180deg,transparent,#000 32%,#000 62%,transparent)}
/* Desktop rhythm: generous, consistent intervals without accumulating empty space. */
@media(min-width:801px){
  .homepage{--desktop-section:clamp(72px,5vw,96px)}
  .homepage .manifesto{min-height:0;padding-block:var(--desktop-section)}
  .homepage .audience,.homepage .cases,.homepage .solutions,.homepage .method,.homepage .igaming,.homepage .people,.homepage .contact{padding-block:var(--desktop-section)}
  .homepage .section-head,.homepage .audience .section-head{margin-bottom:clamp(40px,3.4vw,56px)}
  .homepage .case.featured{margin-bottom:64px}
  .homepage .solution-visual img{mask-image:radial-gradient(ellipse,#000 50%,transparent 74%)}
}
@media(max-width:800px){
  .homepage .hero{padding-bottom:48px}
  .method-steps article::after{left:15px;top:72px}
  .method-steps article:first-child::after{top:48px}
}
@media(max-width:600px) and (max-height:650px){
  .homepage .hero{padding-top:88px;padding-bottom:24px}
  .homepage .hero .eyebrow{margin-bottom:18px}
  .homepage .hero-lead{margin-top:24px}
  .homepage .hero .actions{margin-top:26px}
}

/* The artwork carries its own alpha, including the glow and gaps between ribbons. */
.homepage .solution-visual{mix-blend-mode:normal}
.homepage .solution-visual img{
  mix-blend-mode:normal;
  -webkit-mask-image:none;
  mask-image:none;
}
/* Give the numbered rows breathing room inside their surface, not outside it. */
.homepage .solution-list{margin-inline:-24px}
.homepage .solution{padding-inline:24px}
.homepage .solutions .solution[open]{background:radial-gradient(ellipse at 0 35%,#7b43af15,transparent 85%)}
@media(max-width:800px){
  .homepage .solution-list{margin-inline:calc(-1 * var(--mobile-gutter))}
  .homepage .solution{padding-inline:var(--mobile-gutter)}
}
