:root{
  --bg:#050507;
  --bg-2:#090a10;
  --panel:#0d0e15;
  --panel-2:#12131c;
  --text:#f4f3f7;
  --muted:#aaa8b4;
  --violet:#9f2cff;
  --violet-2:#d531ff;
  --cyan:#6fc8ff;
  --line:rgba(255,255,255,.12);
  --line-violet:rgba(184,70,255,.35);
  --shadow:0 24px 90px rgba(0,0,0,.45);
  --radius:18px;
  --shell:min(1180px,calc(100vw - 40px));
  --header:76px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--bg)}
body{margin:0;background:radial-gradient(circle at 70% 0,rgba(117,26,181,.12),transparent 30%),var(--bg);color:var(--text);font-size:16px;line-height:1.6;overflow-x:hidden}
body.nav-open{overflow:hidden}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%;height:auto}
button,input,textarea{font:inherit}
button{color:inherit}
::selection{background:var(--violet);color:#fff}
.shell{width:var(--shell);margin-inline:auto}
.screen-reader-text{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}
.site-main{min-height:70vh}
.site-header{position:fixed;z-index:60;top:0;left:0;width:100%;height:var(--header);border-bottom:1px solid rgba(255,255,255,.07);background:rgba(4,4,7,.78);backdrop-filter:blur(18px);transition:background .3s ease,transform .3s ease}
.site-header__inner{height:100%;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:14px;min-width:max-content}
.brand__mark{width:50px;height:46px;object-fit:contain;filter:drop-shadow(0 0 12px rgba(175,56,255,.65))}
.brand__name{text-transform:uppercase;letter-spacing:.34em;font-size:.8rem;font-weight:700;white-space:nowrap}
.custom-logo-link{display:inline-flex;align-items:center}.custom-logo{max-height:54px;width:auto}
.primary-nav{display:flex;align-items:center;gap:26px}
.primary-nav .menu{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
.primary-nav .menu a{font-size:.88rem;color:#dbd8e1;transition:color .2s ease}
.primary-nav .menu a:hover,.primary-nav .current-menu-item>a{color:#fff}
.nav-toggle{display:none;background:none;border:0;padding:10px;cursor:pointer}.nav-toggle>span:not(.screen-reader-text){display:block;width:24px;height:2px;background:#fff;margin:5px 0;transition:.2s ease}
.button{min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:11px 21px;border:1px solid var(--line);border-radius:3px;background:rgba(255,255,255,.02);color:#fff;font-weight:600;font-size:.9rem;cursor:pointer;transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease}
.button:hover{transform:translateY(-2px);border-color:rgba(195,69,255,.72)}
.button--primary{border-color:#ad34ff;background:linear-gradient(135deg,#7111d5,#b41df1 62%,#8a18d9);box-shadow:0 12px 34px rgba(147,30,233,.32)}
.button--primary:hover{box-shadow:0 16px 42px rgba(147,30,233,.52)}
.button--ghost{background:rgba(8,8,14,.7);border-color:rgba(188,78,255,.43)}
.button--header{min-height:40px;padding:8px 18px;border-color:rgba(188,61,255,.75);box-shadow:inset 0 0 15px rgba(130,20,200,.13)}
.play-icon{font-size:.7rem;width:22px;height:22px;border:1px solid rgba(255,255,255,.7);border-radius:50%;display:grid;place-items:center;padding-left:2px}
.eyebrow{display:block;margin-bottom:10px;color:#c94bff;text-transform:uppercase;letter-spacing:.17em;font-size:.72rem;font-weight:800}
h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.12;letter-spacing:-.025em}h1{font-size:clamp(2.9rem,6vw,5.9rem);font-weight:500}h2{font-size:clamp(2rem,3.5vw,3.5rem);font-weight:500}h3{font-size:1.28rem;font-weight:550}.section{position:relative;padding:var(--section-pad,92px) 0;border-top:1px solid rgba(255,255,255,var(--section-line-opacity,.075))}.section--compact{padding:58px 0}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:25px;margin-bottom:34px}.section-heading h2{margin-bottom:0}.text-link{color:#d890ff;font-size:.92rem}.prose{color:#c5c2cc}.prose p{margin-bottom:1.25em}.prose--page{max-width:900px}.prose--page h2,.prose--page h3{margin-top:1.5em}.prose a{color:#d15cff;text-decoration:underline}
.hero{position:relative;min-height:var(--hero-min,820px);padding-top:var(--header);display:flex;align-items:center;overflow:hidden}.hero__media{position:absolute;inset:0;background-position:center;background-size:cover}.hero__video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,3,7,.98) 0%,rgba(3,3,7,.82) 39%,rgba(4,4,8,.25) 70%,rgba(3,3,7,.38) 100%),linear-gradient(0deg,rgba(3,3,6,.9),transparent 45%),radial-gradient(circle at 73% 40%,rgba(160,38,255,.14),transparent 40%)}.hero__content{position:relative;z-index:2;padding-top:50px}.hero__content h1{max-width:700px;margin-bottom:20px}.hero__logo{width:170px;margin-bottom:18px}.hero__logo img{filter:drop-shadow(0 0 25px rgba(183,45,255,.52))}.hero__lead{max-width:620px;color:#bbb8c3;font-size:1.08rem}.hero__actions{display:flex;gap:14px;margin-top:33px;margin-bottom:var(--hero-actions-bottom,0);flex-wrap:wrap}
.section--projects{background:linear-gradient(180deg,#07080d,#050507)}.case-grid{display:grid;gap:18px}.case-grid--three{grid-template-columns:repeat(3,1fr)}.case-grid--four{grid-template-columns:repeat(4,1fr)}.case-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:linear-gradient(145deg,rgba(20,21,31,.92),rgba(10,10,15,.96));transition:transform .3s ease,border-color .3s ease,box-shadow .3s ease}.case-card:hover{transform:translateY(-6px);border-color:rgba(183,63,255,.45);box-shadow:0 20px 55px rgba(0,0,0,.35),0 0 30px rgba(142,31,226,.08)}.case-card__image{display:block;aspect-ratio:16/10;overflow:hidden;background:#0b0b12}.case-card__image img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.7,.2,1),filter .4s ease}.case-card:hover .case-card__image img{transform:scale(1.045);filter:saturate(1.12)}.case-card__body{position:relative;padding:20px 22px 25px;min-height:205px}.case-card__body h3{margin-bottom:10px}.case-card__body p{color:#a9a6b1;font-size:.9rem;margin:0;padding-right:30px}.case-card__arrow{position:absolute;right:20px;bottom:17px;color:#c944ff;font-size:1.35rem}
.section--services{background:radial-gradient(circle at 15% 50%,rgba(109,20,165,.1),transparent 35%),#07080c}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:24px}.service-card{position:relative;min-height:280px;padding:28px;border:1px solid var(--line);border-radius:12px;background:rgba(14,15,22,.72)}.service-card__icon{width:52px;height:52px;display:grid;place-items:center;border:1px solid #a637f2;border-radius:14px;color:#c34dff;font-size:1.7rem;box-shadow:inset 0 0 18px rgba(128,30,205,.12),0 0 16px rgba(133,24,222,.13)}.service-card h3{margin:28px 0 12px}.service-card p{color:#aaa7b2;font-size:.91rem}.service-card>span:last-child{position:absolute;right:22px;bottom:18px;color:#bf43ff}
.section--showreel{background:#06070b}.showreel-block{display:grid;grid-template-columns:1.5fr .9fr;gap:50px;align-items:center}.showreel-card{position:relative;aspect-ratio:16/9;border:1px solid var(--line-violet);border-radius:12px;background-position:center;background-size:cover;overflow:hidden;cursor:pointer;box-shadow:var(--shadow)}.showreel-card::after{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(1,1,5,.15),rgba(10,3,18,.48))}.showreel-card__play{position:absolute;z-index:2;left:50%;top:50%;transform:translate(-50%,-50%);width:86px;height:86px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.8);border-radius:50%;background:rgba(0,0,0,.32);font-size:1.4rem;padding-left:5px;backdrop-filter:blur(8px)}.showreel-copy p{color:#aaa7b1}.showreel-copy .button{margin-top:14px}
.section--about{background:linear-gradient(140deg,#08090e,#06060a)}.about-grid{display:grid;grid-template-columns:1.15fr 1fr;gap:55px;align-items:center}.about-copy p{color:#b3b0bb;max-width:630px}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.stat-card{min-height:190px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:20px;border:1px solid var(--line);border-radius:12px;background:rgba(16,17,25,.82)}.stat-card strong{font-size:2.8rem;font-weight:400}.stat-card span{font-size:.82rem;color:#b4b1bc;max-width:130px}
.section--contact{overflow:hidden;background:radial-gradient(circle at 0 60%,rgba(137,22,198,.25),transparent 25%),#07070b}.contact-grid{display:grid;grid-template-columns:.8fr 1.6fr;gap:70px}.contact-copy p{color:#b5b2bd}.contact-form{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.contact-form label{display:block}.contact-form label>span{display:block;font-size:.76rem;color:#9693a0;margin-bottom:6px}.contact-form input,.contact-form textarea{width:100%;border:1px solid rgba(255,255,255,.12);border-radius:3px;background:rgba(10,11,17,.86);color:#fff;padding:14px 15px;outline:0;transition:border-color .2s ease,box-shadow .2s ease}.contact-form input:focus,.contact-form textarea:focus{border-color:#9d2bea;box-shadow:0 0 0 3px rgba(158,44,237,.12)}.contact-form textarea{resize:vertical}.contact-form__wide{grid-column:1/-1}.contact-form__footer{display:flex!important;align-items:center;justify-content:space-between;gap:20px}.consent{display:flex!important;align-items:center;gap:10px}.consent input{width:auto}.consent span{margin:0!important}.hp-field{position:absolute!important;left:-9999px!important}.form-message{grid-column:1/-1;margin-bottom:14px;padding:14px;border-radius:5px}.form-message--success{background:rgba(55,190,120,.12);border:1px solid rgba(55,190,120,.4)}.form-message--error{background:rgba(255,70,100,.12);border:1px solid rgba(255,70,100,.4)}
.page-hero{position:relative;min-height:620px;padding-top:var(--header);display:flex;align-items:center;background-size:cover;background-position:center;overflow:hidden}.page-hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,3,7,.98),rgba(4,4,9,.72) 46%,rgba(4,4,9,.2)),linear-gradient(0deg,#050507 0,transparent 50%)}.page-hero__content{position:relative;z-index:2}.page-hero__content p{max-width:620px;color:#c4c1cb;font-size:1.08rem}.page-hero--simple{min-height:420px;background:radial-gradient(circle at 70% 30%,rgba(145,33,218,.2),transparent 28%),linear-gradient(145deg,#090a11,#050507)}.page-hero--simple .page-hero__content{padding-top:70px}.page-hero--simple h1{margin-bottom:20px}
.filter-bar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:35px}.filter-button{border:1px solid var(--line);border-radius:6px;background:#0b0c12;color:#d5d2dc;padding:10px 17px;cursor:pointer;transition:.2s ease}.filter-button:hover,.filter-button.is-active{background:linear-gradient(135deg,#7215d3,#a91ded);border-color:#a931ef;color:#fff;box-shadow:0 10px 28px rgba(126,23,205,.25)}.case-card.is-hidden{display:none}.pagination{margin-top:40px}.pagination .nav-links{display:flex;gap:8px;justify-content:center}.pagination a,.pagination span{min-width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px}.pagination .current{background:#8f1be2;border-color:#8f1be2}
.section--cta{padding:48px 0 80px;background:#050507}.cta-panel{position:relative;overflow:hidden;text-align:center;padding:72px 30px;border:1px solid rgba(175,54,255,.3);border-radius:12px;background:radial-gradient(circle at 70% 30%,rgba(204,69,255,.24),transparent 25%),radial-gradient(circle at 25% 70%,rgba(83,30,180,.2),transparent 27%),linear-gradient(135deg,#0b0814,#10091b 50%,#08060e)}.cta-panel::after{content:"";position:absolute;inset:-100px;background:repeating-radial-gradient(circle at 60% 50%,rgba(184,54,255,.08) 0 1px,transparent 1px 14px);opacity:.5;pointer-events:none}.cta-panel>*{position:relative;z-index:2}.cta-panel h2{max-width:820px;margin:0 auto 16px}.cta-panel p{color:#bbb8c2}.cta-panel .button{margin-top:14px}
.case-hero{position:relative;min-height:690px;padding-top:var(--header);display:flex;align-items:center;background-size:cover;background-position:center;border-bottom:1px solid rgba(183,58,255,.28)}.case-hero__veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,3,7,.96),rgba(4,4,8,.6) 43%,rgba(4,4,8,.12)),linear-gradient(0deg,rgba(3,3,7,.9),transparent 55%)}.case-hero__content{position:relative;z-index:2;padding-top:50px}.case-hero__content h1{max-width:760px;margin-bottom:15px}.case-hero__content p{max-width:530px;color:#c0bdc7}.case-meta{display:flex;gap:22px;margin-bottom:22px;color:#d5cedc;font-size:.9rem}.case-meta span+span::before{content:"/";margin-right:22px;color:#8e2dcc}.case-intro{display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:start}.metric-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line)}.metric-card{min-height:150px;display:flex;flex-direction:column;justify-content:center;padding:25px;background:#0d0e15}.metric-card strong{font-size:2.1rem;font-weight:400}.metric-card span{color:#aaa7b1;font-size:.84rem}.work-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:24px;margin-top:26px}.work-item>span{color:#c648ff;font-size:1.5rem}.work-item h3{font-size:1rem;margin:12px 0}.work-item p{font-size:.78rem;color:#9d99a5}.compare{position:relative;margin-top:24px;aspect-ratio:16/8.6;overflow:hidden;border:1px solid var(--line-violet);border-radius:12px;background:#111}.compare>img,.compare__after img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.compare__after{position:absolute;inset:0;clip-path:inset(0 0 0 50%);overflow:hidden}.compare input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:5}.compare__handle{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);width:54px;height:54px;display:grid;place-items:center;border:1px solid #fff;border-radius:50%;background:rgba(3,3,6,.75);box-shadow:0 0 0 1px rgba(0,0,0,.3)}.compare__handle::before{content:"";position:absolute;left:50%;top:-500px;width:1px;height:1000px;background:#fff;z-index:-1}.compare__label{position:absolute;z-index:3;top:15px;padding:6px 10px;border-radius:4px;font-size:.8rem;background:rgba(0,0,0,.6)}.compare__label--before{left:15px}.compare__label--after{right:15px;background:#8c21d8}.gallery-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;margin-top:24px}.gallery-item{aspect-ratio:16/10;border:1px solid var(--line);border-radius:8px;overflow:hidden}.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.gallery-item:hover img{transform:scale(1.05)}.facts-grid{display:grid;grid-template-columns:repeat(6,1fr);margin-top:25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.facts-grid>div{padding:22px 20px;border-right:1px solid var(--line)}.facts-grid>div:last-child{border-right:0}.facts-grid dt{color:#8f8b98;font-size:.72rem;text-transform:uppercase;letter-spacing:.08em}.facts-grid dd{margin:5px 0 0;font-size:.9rem}.project-nav{display:flex;justify-content:space-between;gap:14px}.project-nav a{flex:1;min-height:90px;display:flex;align-items:center;padding:22px 26px;border:1px solid var(--line);border-radius:10px;background:#0b0c12}.project-nav a:last-child{justify-content:flex-end;text-align:right}
.contact-page-grid{display:grid;grid-template-columns:.75fr 1.45fr;gap:70px}.contact-details{display:flex;flex-direction:column;align-items:flex-start;gap:14px}.contact-details h2{font-size:2rem}.contact-details a{color:#d577ff}.contact-details p{color:#b5b2bc}.video-page{max-width:1100px;margin:auto}.video-page video{width:100%;aspect-ratio:16/9;background:#000;border:1px solid var(--line-violet);border-radius:12px;box-shadow:var(--shadow)}.admin-hint{padding:14px;background:#15121e;border:1px solid var(--line-violet)}.error-page{min-height:78vh;display:grid;place-items:center;text-align:center;padding-top:var(--header)}.error-page h1{margin-bottom:18px}
.site-footer{padding:62px 0 22px;border-top:1px solid var(--line);background:#050507}.site-footer__grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:35px}.site-footer__brand p{max-width:260px;color:#96939f;font-size:.85rem;margin-top:18px}.site-footer h3{font-size:.78rem;color:#ddd9e2;margin-bottom:14px}.footer-links{list-style:none;padding:0;margin:0;color:#96939f;font-size:.82rem}.footer-links li{margin:5px 0}.footer-links a:hover{color:#fff}.socials{display:flex;gap:8px;flex-wrap:wrap}.social-link{width:38px;height:38px;display:grid;place-items:center;border:1px solid rgba(190,61,255,.38);border-radius:50%;font-size:.68rem;color:#d65cff}.social-link.is-disabled{opacity:.38;cursor:not-allowed}.site-footer__bottom{display:flex;justify-content:space-between;gap:20px;margin-top:38px;padding-top:18px;border-top:1px solid rgba(255,255,255,.06);color:#777480;font-size:.72rem}
.video-modal{position:fixed;z-index:100;inset:0;display:grid;place-items:center;padding:30px;background:rgba(0,0,0,.92);opacity:0;visibility:hidden;transition:.25s ease}.video-modal.is-open{opacity:1;visibility:visible}.video-modal__body{width:min(1280px,92vw)}.video-modal video{width:100%;max-height:82vh;background:#000;border:1px solid rgba(185,60,255,.5);box-shadow:0 0 80px rgba(115,20,180,.25)}.video-modal__close{position:absolute;right:26px;top:18px;border:0;background:none;font-size:2.5rem;cursor:pointer}.page-transition{position:fixed;z-index:200;inset:0;background:#030306;display:grid;place-items:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .28s ease,visibility .28s ease}.page-transition.is-active{opacity:1;visibility:visible}.page-transition img{width:105px;animation:pulseLogo 1.2s ease-in-out infinite}.cursor-glow{position:fixed;z-index:1;width:420px;height:420px;left:-210px;top:-210px;border-radius:50%;background:radial-gradient(circle,rgba(162,37,240,.08),transparent 65%);pointer-events:none;will-change:transform}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.7,.2,1)}.reveal.is-visible{opacity:1;transform:none}@keyframes pulseLogo{50%{filter:drop-shadow(0 0 28px rgba(190,50,255,.8));transform:scale(1.05)}}
@media(max-width:1100px){.case-grid--four{grid-template-columns:repeat(3,1fr)}.service-grid{grid-template-columns:repeat(2,1fr)}.work-grid{grid-template-columns:repeat(3,1fr)}.facts-grid{grid-template-columns:repeat(3,1fr)}.facts-grid>div:nth-child(3){border-right:0}.facts-grid>div:nth-child(-n+3){border-bottom:1px solid var(--line)}.site-footer__grid{grid-template-columns:1.3fr repeat(2,1fr)}.site-footer__grid>div:nth-child(n+4){margin-top:18px}.showreel-block,.about-grid,.contact-grid{gap:38px}}
@media(max-width:900px){:root{--header:68px;--shell:min(100% - 28px,760px)}.nav-toggle{display:block;z-index:2}.primary-nav{position:fixed;inset:0 0 0 auto;width:min(360px,88vw);padding:100px 30px 30px;background:rgba(5,5,9,.98);display:flex;flex-direction:column;align-items:stretch;transform:translateX(105%);transition:transform .3s ease;box-shadow:-20px 0 60px rgba(0,0,0,.45)}.nav-open .primary-nav{transform:none}.primary-nav .menu{display:flex;flex-direction:column;align-items:stretch;gap:0}.primary-nav .menu li{border-bottom:1px solid var(--line)}.primary-nav .menu a{display:block;padding:16px 0;font-size:1.05rem}.nav-open .nav-toggle>span:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-open .nav-toggle>span:nth-child(2){opacity:0}.nav-open .nav-toggle>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.hero{min-height:740px}.hero__veil{background:linear-gradient(90deg,rgba(3,3,7,.96),rgba(3,3,7,.74)),linear-gradient(0deg,#050507,transparent)}.hero__logo{width:130px}.case-grid--three,.case-grid--four{grid-template-columns:repeat(2,1fr)}.showreel-block,.about-grid,.contact-grid,.case-intro,.contact-page-grid{grid-template-columns:1fr}.showreel-copy{max-width:650px}.stats-grid{max-width:650px}.contact-copy{max-width:650px}.gallery-grid{grid-template-columns:repeat(3,1fr)}.site-footer__grid{grid-template-columns:repeat(2,1fr)}.site-footer__brand{grid-column:1/-1}.page-hero{min-height:520px}.case-hero{min-height:620px}}
@media(max-width:620px){body{font-size:15px}.section{padding:var(--section-pad-mobile,66px) 0}.section--compact{padding:44px 0}.brand__name{font-size:.68rem;letter-spacing:.23em}.brand__mark{width:42px;height:40px}.hero{min-height:var(--hero-min-mobile,690px)}.hero__content{padding-top:20px}.hero__logo{width:105px}.hero__lead{font-size:.98rem}.hero__actions{align-items:stretch}.hero__actions .button{flex:1}.section-heading{align-items:flex-start;flex-direction:column}.case-grid--three,.case-grid--four,.service-grid,.stats-grid{grid-template-columns:1fr}.service-card{min-height:230px}.showreel-card__play{width:66px;height:66px}.contact-form{grid-template-columns:1fr}.contact-form__wide{grid-column:auto}.contact-form__footer{align-items:stretch;flex-direction:column}.contact-form__footer .button{width:100%}.metric-grid{grid-template-columns:1fr}.work-grid{grid-template-columns:repeat(2,1fr);gap:18px}.compare{aspect-ratio:4/3}.gallery-grid{grid-template-columns:repeat(2,1fr)}.facts-grid{grid-template-columns:repeat(2,1fr)}.facts-grid>div{border-right:1px solid var(--line)!important;border-bottom:1px solid var(--line)}.facts-grid>div:nth-child(2n){border-right:0!important}.project-nav{flex-direction:column}.site-footer__grid{grid-template-columns:1fr}.site-footer__brand{grid-column:auto}.site-footer__bottom{flex-direction:column}.cursor-glow{display:none}.video-modal{padding:14px}.page-hero--simple{min-height:350px}.case-hero{min-height:590px}.case-hero__content{padding-top:35px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal{opacity:1;transform:none;transition:none}.page-transition,.cursor-glow{display:none!important}*{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}

/* Typography system — v1.1.3
   Fonts are assigned by WordPress Global Styles / Font Library.
   The default family registered in theme.json is Manrope.
   No remote font stylesheet and no hard-coded font family are used here. */
html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
body{font-weight:400;line-height:1.58;letter-spacing:-.006em}
button,input,textarea,select{font-family:inherit}
h1,h2,h3{font-synthesis:none;text-wrap:balance}
h1{font-size:clamp(2.9rem,4vw,4.2rem);font-weight:500;line-height:1.09;letter-spacing:-.038em}
h2{font-size:clamp(1.9rem,2.65vw,2.8rem);font-weight:500;line-height:1.12;letter-spacing:-.03em}
h3{font-weight:600;line-height:1.22;letter-spacing:-.018em}
.hero__content h1{max-width:660px;margin-bottom:24px;font-size:clamp(3rem,3.35vw,4rem);font-weight:500;line-height:1.1;letter-spacing:-.04em;text-wrap:normal}
.hero__lead{max-width:610px;font-size:.98rem;line-height:1.58;letter-spacing:-.006em}
.hero__actions{margin-top:30px}
.button{font-weight:650;letter-spacing:-.01em}
.eyebrow{font-weight:750;letter-spacing:.16em}
.primary-nav .menu a{font-weight:500;letter-spacing:-.006em}
.section-heading h2{max-width:780px}
.case-card__body p,.service-card p,.showreel-copy p,.about-copy p,.contact-copy p{line-height:1.62}

@media(max-width:1100px){
  .hero__content h1{max-width:640px;font-size:clamp(2.9rem,5.2vw,3.65rem)}
}
@media(max-width:900px){
  .hero__content h1{max-width:610px;font-size:clamp(2.65rem,7vw,3.35rem);line-height:1.09}
}
@media(max-width:620px){
  h1{font-size:clamp(2.2rem,10vw,3rem)}
  h2{font-size:clamp(1.7rem,7.8vw,2.35rem)}
  .hero__content h1{max-width:100%;font-size:clamp(2.3rem,10vw,2.95rem);line-height:1.075;letter-spacing:-.035em}
  .hero__lead{font-size:.94rem}
}

/* Content controls added in v1.2.0 */
.section--services>.shell>h2{max-width:780px;margin-bottom:0}
.about-copy p+ p,.contact-copy p+ p,.page-hero__content p+ p{margin-top:1em}

/* Homepage visibility/background/color controls — v1.3.0 */
.home-block{--mvfx-overlay:.72}
.section.home-block.has-custom-bg-color{background:var(--mvfx-bg-color)!important}
.section.home-block.has-custom-bg-image{isolation:isolate;background-color:var(--mvfx-bg-color,#050507)!important;background-image:var(--mvfx-bg-image)!important;background-position:center!important;background-size:cover!important;background-repeat:no-repeat!important}
.section.home-block.has-custom-bg-image::before{content:"";position:absolute;z-index:0;inset:0;background:var(--mvfx-bg-color,#050507);opacity:var(--mvfx-overlay,.72);pointer-events:none}
.section.home-block.has-custom-bg-image>.shell{position:relative;z-index:1}
.hero.home-block.has-custom-bg-color{background:var(--mvfx-bg-color)!important}
.hero.home-block.has-custom-bg-color .hero__media{background-color:var(--mvfx-bg-color)!important}
.hero.home-block .hero__veil{opacity:var(--mvfx-overlay,1)}
.home-block.has-custom-text-color h1,.home-block.has-custom-text-color h2,.home-block.has-custom-text-color h3,.home-block.has-custom-text-color p,.home-block.has-custom-text-color .hero__lead,.home-block.has-custom-text-color .stat-card span,.home-block.has-custom-text-color .contact-form label>span,.home-block.has-custom-text-color .consent span{color:var(--mvfx-text)!important}
.home-block.has-custom-accent .eyebrow,.home-block.has-custom-accent .text-link,.home-block.has-custom-accent .case-card__arrow,.home-block.has-custom-accent .service-card__icon,.home-block.has-custom-accent .service-card>span:last-child{color:var(--mvfx-accent)!important}
.home-block.has-custom-accent .service-card__icon,.home-block.has-custom-accent .button--ghost,.home-block.has-custom-accent .showreel-card,.home-block.has-custom-accent .contact-form input:focus,.home-block.has-custom-accent .contact-form textarea:focus{border-color:var(--mvfx-accent)!important}
.home-block.has-custom-accent .button--primary{background:var(--mvfx-accent)!important;border-color:var(--mvfx-accent)!important;box-shadow:0 12px 34px color-mix(in srgb,var(--mvfx-accent) 34%,transparent)}
.home-block.has-custom-accent .play-icon{border-color:currentColor}
.home-block.has-custom-panel-color .case-card,.home-block.has-custom-panel-color .service-card,.home-block.has-custom-panel-color .stat-card{background:var(--mvfx-panel)!important}
.home-block.has-custom-panel-color .showreel-card{background-color:var(--mvfx-panel)!important}
.home-block.has-custom-panel-color .contact-form input,.home-block.has-custom-panel-color .contact-form textarea{background:var(--mvfx-panel)!important}
@supports not (color:color-mix(in srgb,#fff 50%,transparent)){
  .home-block.has-custom-accent .button--primary{box-shadow:0 12px 34px rgba(147,30,233,.32)}
}
@media(max-width:900px){.section.home-block.has-custom-bg-image{background-attachment:scroll!important}}
.site-main--no-hero{padding-top:var(--header)}

/* Local heading font and independently adjustable title sizes — v1.4.0 */
:root{--mantra-heading-font:var(--wp--preset--font-family--manrope,"Manrope"),"Segoe UI",Arial,sans-serif}
h1,h2,h3,h4,h5,h6{font-family:var(--mantra-heading-font)!important;font-style:normal;font-weight:400!important;font-synthesis:none;text-wrap:balance}
.hero__content h1{font-size:var(--mvfx-hero-title-desktop,64px)!important}
.section--projects .section-heading h2{font-size:var(--mvfx-projects-title-desktop,44px)!important}
.section--services> .shell>h2,.section--services .section-heading h2{font-size:var(--mvfx-services-title-desktop,44px)!important}
.section--showreel .showreel-copy h2{font-size:var(--mvfx-showreel-title-desktop,44px)!important}
.section--about .about-copy h2{font-size:var(--mvfx-about-title-desktop,44px)!important}
.section--contact .contact-copy h2{font-size:var(--mvfx-contact-title-desktop,44px)!important}
.page-hero h1,.case-hero h1,.error-page h1{font-size:var(--mvfx-page-h1-desktop,64px)!important}
.section--cta h2,.contact-details h2,.prose h2{font-size:var(--mvfx-page-h2-desktop,44px)!important}
.case-card__body h3,.service-card h3,.work-item h3{font-size:var(--mvfx-card-title-desktop,20px)!important}

@media(max-width:900px) and (min-width:621px){
  .hero__content h1{font-size:clamp(var(--mvfx-hero-title-mobile,44px),7vw,var(--mvfx-hero-title-desktop,64px))!important}
  .section--projects .section-heading h2{font-size:clamp(var(--mvfx-projects-title-mobile,34px),5vw,var(--mvfx-projects-title-desktop,44px))!important}
  .section--services> .shell>h2,.section--services .section-heading h2{font-size:clamp(var(--mvfx-services-title-mobile,34px),5vw,var(--mvfx-services-title-desktop,44px))!important}
  .section--showreel .showreel-copy h2{font-size:clamp(var(--mvfx-showreel-title-mobile,34px),5vw,var(--mvfx-showreel-title-desktop,44px))!important}
  .section--about .about-copy h2{font-size:clamp(var(--mvfx-about-title-mobile,34px),5vw,var(--mvfx-about-title-desktop,44px))!important}
  .section--contact .contact-copy h2{font-size:clamp(var(--mvfx-contact-title-mobile,34px),5vw,var(--mvfx-contact-title-desktop,44px))!important}
  .page-hero h1,.case-hero h1,.error-page h1{font-size:clamp(var(--mvfx-page-h1-mobile,44px),7vw,var(--mvfx-page-h1-desktop,64px))!important}
  .section--cta h2,.contact-details h2,.prose h2{font-size:clamp(var(--mvfx-page-h2-mobile,34px),5vw,var(--mvfx-page-h2-desktop,44px))!important}
  .case-card__body h3,.service-card h3,.work-item h3{font-size:clamp(var(--mvfx-card-title-mobile,20px),2.6vw,var(--mvfx-card-title-desktop,20px))!important}
}
@media(max-width:620px){
  .hero__content h1{font-size:var(--mvfx-hero-title-mobile,44px)!important}
  .section--projects .section-heading h2{font-size:var(--mvfx-projects-title-mobile,34px)!important}
  .section--services> .shell>h2,.section--services .section-heading h2{font-size:var(--mvfx-services-title-mobile,34px)!important}
  .section--showreel .showreel-copy h2{font-size:var(--mvfx-showreel-title-mobile,34px)!important}
  .section--about .about-copy h2{font-size:var(--mvfx-about-title-mobile,34px)!important}
  .section--contact .contact-copy h2{font-size:var(--mvfx-contact-title-mobile,34px)!important}
  .page-hero h1,.case-hero h1,.error-page h1{font-size:var(--mvfx-page-h1-mobile,44px)!important}
  .section--cta h2,.contact-details h2,.prose h2{font-size:var(--mvfx-page-h2-mobile,34px)!important}
  .case-card__body h3,.service-card h3,.work-item h3{font-size:var(--mvfx-card-title-mobile,20px)!important}
}

/* Advanced showreel, services and heading interactions — v1.6.0 */
.showreel-layout--media-right .showreel-card{order:2}
.showreel-layout--media-right .showreel-copy{order:1}
.showreel-layout--stacked .showreel-block{grid-template-columns:1fr;gap:32px}
.showreel-layout--stacked .showreel-card{width:100%}
.showreel-layout--stacked .showreel-copy{max-width:820px}

.section--services .service-grid{
  grid-template-columns:repeat(var(--service-columns,4),minmax(0,1fr));
  gap:var(--service-gap,14px);
}
.section--services .service-card{
  min-height:var(--service-card-min-height,280px);
  padding:var(--service-card-padding,28px);
  border-radius:var(--service-card-radius,12px);
  transform-origin:center;
  transition:transform .42s cubic-bezier(.2,.72,.2,1),border-color .35s ease,box-shadow .42s ease,background .35s ease,filter .35s ease;
  will-change:transform,translate,filter;
}
.section--services .service-card__icon{
  width:var(--service-icon-size,52px);
  height:var(--service-icon-size,52px);
  flex:0 0 var(--service-icon-size,52px);
  transition:transform .35s ease,box-shadow .35s ease,border-color .35s ease,color .35s ease;
}
.services-layout--compact .service-card{min-height:auto}
.services-layout--compact .service-card h3{margin-top:20px}
.services-layout--rows .service-grid{grid-template-columns:1fr}
.services-layout--rows .service-card{
  min-height:0;
  display:grid;
  grid-template-columns:auto minmax(180px,.7fr) minmax(260px,1.4fr) auto;
  align-items:center;
  gap:24px;
}
.services-layout--rows .service-card h3,.services-layout--rows .service-card p{margin:0}
.services-layout--rows .service-card>span:last-child{position:static;font-size:1.5rem}
.services-style--glass .service-card{
  background:linear-gradient(145deg,rgba(255,255,255,.075),rgba(255,255,255,.018));
  border-color:rgba(255,255,255,.17);
  backdrop-filter:blur(18px) saturate(120%);
}
.services-style--outline .service-card{background:transparent;border-color:rgba(197,79,255,.34)}
.services-align--center .service-card{text-align:center}
.services-align--center .service-card__icon{margin-inline:auto}
.services-align--center .service-card>span:last-child{left:50%;right:auto;transform:translateX(-50%)}
.services-icon--circle .service-card__icon{border-radius:50%}
.services-icon--square .service-card__icon{border-radius:0}
.services-icon--none .service-card__icon{border:0;border-radius:0;box-shadow:none;background:transparent}
.services-hover-enabled .service-card:hover,
.services-hover-enabled .service-card:focus-within{
  transform:translateY(calc(-1 * var(--service-hover-lift,10px))) scale(var(--service-hover-scale,1.035));
  z-index:3;
  border-color:color-mix(in srgb,var(--mvfx-accent,#b83fff) 76%,#fff 8%);
  box-shadow:0 24px 64px rgba(0,0,0,.48),0 0 42px color-mix(in srgb,var(--mvfx-accent,#b83fff) var(--service-hover-glow-pct,42%),transparent);
  filter:saturate(1.08);
  animation-play-state:paused;
}
.services-hover-enabled .service-card:hover .service-card__icon,
.services-hover-enabled .service-card:focus-within .service-card__icon{
  transform:scale(1.09) rotate(-2deg);
  color:#fff;
  border-color:color-mix(in srgb,var(--mvfx-accent,#b83fff) 80%,#fff 20%);
  box-shadow:0 0 28px color-mix(in srgb,var(--mvfx-accent,#b83fff) 48%,transparent),inset 0 0 22px color-mix(in srgb,var(--mvfx-accent,#b83fff) 22%,transparent);
}
.services-float-enabled .service-card.is-visible{
  animation:mvfxServiceFloat var(--service-float-duration,7s) ease-in-out infinite;
  animation-delay:calc((var(--service-index,1) - 1) * -.65s);
}
.services-float-enabled .cinema-service-row.is-visible{
  animation:mvfxServiceFloat var(--service-float-duration,7s) ease-in-out infinite;
  animation-delay:calc((var(--service-index,1) - 1) * -.65s);
}
@keyframes mvfxServiceFloat{
  0%,100%{translate:0 0}
  50%{translate:0 calc(-1 * var(--service-float-distance,6px))}
}

/* The same hover language is used for Cinema service rows. */
.services-hover-enabled .cinema-service-row{
  transition:transform .42s cubic-bezier(.2,.72,.2,1),background .35s ease,box-shadow .42s ease,border-color .35s ease;
}
.services-hover-enabled .cinema-service-row:hover{
  transform:translateY(calc(-1 * var(--service-hover-lift,10px))) scale(var(--service-hover-scale,1.035));
  background:color-mix(in srgb,var(--mvfx-accent,#b83fff) 10%,transparent);
  box-shadow:0 0 48px color-mix(in srgb,var(--mvfx-accent,#b83fff) 24%,transparent);
}

/* Heading light interaction. Pointer coordinates are supplied by main.js. */
.mvfx-headings-interactive :is(h1,h2,h3,h4,h5,h6),
.mvfx-headings-interactive :is(.eyebrow,.cinema-label,.cinema-section-head>span){
  --mvfx-heading-shadow-x:0px;
  --mvfx-heading-shadow-y:0px;
  position:relative;
  transition:transform .32s cubic-bezier(.2,.72,.2,1),text-shadow .32s ease,filter .32s ease,color .32s ease;
  transform-origin:left center;
  will-change:transform,filter;
}
.mvfx-headings-interactive :is(h1,h2,h3,h4,h5,h6):hover,
.mvfx-headings-interactive :is(.eyebrow,.cinema-label,.cinema-section-head>span):hover,
.mvfx-headings-interactive :is(h1,h2,h3,h4,h5,h6).is-light-active,
.mvfx-headings-interactive :is(.eyebrow,.cinema-label,.cinema-section-head>span).is-light-active{
  transform:translateY(calc(-1 * var(--heading-hover-lift,2px))) scale(var(--heading-hover-scale,1.01));
  text-shadow:var(--mvfx-heading-shadow-x,0px) var(--mvfx-heading-shadow-y,0px) 13px color-mix(in srgb,var(--heading-glow-color,#b83fff) var(--heading-glow-pct,58%),transparent),0 0 24px color-mix(in srgb,var(--heading-glow-color,#b83fff) 34%,transparent);
  filter:drop-shadow(0 0 13px color-mix(in srgb,var(--heading-glow-color,#b83fff) 26%,transparent));
}
.services-align--center .service-card h3,.services-align--center .service-card__icon{transform-origin:center}

@supports not (color:color-mix(in srgb,#fff 50%,transparent)){
  .services-hover-enabled .service-card:hover,.services-hover-enabled .service-card:focus-within{border-color:#bd4cff;box-shadow:0 24px 64px rgba(0,0,0,.48),0 0 34px rgba(184,63,255,.32)}
  .mvfx-headings-interactive :is(h1,h2,h3,h4,h5,h6):hover{ text-shadow:0 0 18px rgba(184,63,255,.46) }
}
@media(max-width:1100px){
  .section--services .service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .services-layout--rows .service-grid{grid-template-columns:1fr}
}
@media(max-width:900px){
  .showreel-layout--media-right .showreel-card,.showreel-layout--media-right .showreel-copy{order:initial}
  .services-layout--rows .service-card{grid-template-columns:auto 1fr;align-items:start}
  .services-layout--rows .service-card p{grid-column:2}
  .services-layout--rows .service-card>span:last-child{grid-column:2}
}
@media(max-width:620px){
  .section--services .service-grid{grid-template-columns:1fr}
  .services-layout--rows .service-card{display:block}
  .services-layout--rows .service-card h3{margin:22px 0 12px}
  .services-layout--rows .service-card>span:last-child{position:absolute;right:22px;bottom:18px}
}
@media(prefers-reduced-motion:reduce){
  .services-float-enabled .service-card.is-visible,.services-float-enabled .cinema-service-row.is-visible{animation:none!important}
  .mvfx-headings-interactive :is(h1,h2,h3,h4,h5,h6),.mvfx-headings-interactive :is(.eyebrow,.cinema-label,.cinema-section-head>span){transform:none!important;filter:none!important;text-shadow:none!important}
}

/* 1.6.1 — optional small section labels on the homepage. */
.home-block--eyebrow-hidden :is(.eyebrow,.cinema-label,.cinema-section-head>span,.cinema-reel__copy>span){display:none!important}
.section--services.home-block--headingless .service-grid{margin-top:0}

/* 1.7.0 — restrained visitor session timer. */
.visitor-timer{
  position:fixed;
  z-index:880;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-width:84px;
  height:38px;
  margin:0;
  padding:0 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:999px;
  background:rgba(9,9,18,.74);
  background:color-mix(in srgb,var(--visitor-timer-bg,#090912) 78%,transparent);
  color:var(--visitor-timer-text,#f4f1f7);
  box-shadow:0 10px 32px rgba(0,0,0,.28),0 0 18px color-mix(in srgb,var(--visitor-timer-accent,#b83fff) 13%,transparent);
  backdrop-filter:blur(16px) saturate(120%);
  -webkit-backdrop-filter:blur(16px) saturate(120%);
  font-family:inherit;
  font-size:12px;
  font-weight:650;
  line-height:1;
  letter-spacing:.055em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
  appearance:none;
  opacity:0;
  visibility:hidden;
  transform:translateY(8px) scale(.98);
  transition:opacity .34s ease,visibility .34s ease,transform .34s cubic-bezier(.2,.72,.2,1),background .28s ease,border-color .28s ease,box-shadow .28s ease,width .28s ease,min-width .28s ease,padding .28s ease,gap .28s ease;
}
button.visitor-timer{cursor:pointer}
.visitor-timer.is-visible{
  opacity:var(--visitor-timer-opacity,.62);
  visibility:visible;
  transform:translateY(0) scale(1);
}
.visitor-timer.is-visible:hover,
.visitor-timer.is-visible:focus-visible{
  opacity:1;
  border-color:color-mix(in srgb,var(--visitor-timer-accent,#b83fff) 48%,rgba(255,255,255,.16));
  box-shadow:0 14px 38px rgba(0,0,0,.34),0 0 24px color-mix(in srgb,var(--visitor-timer-accent,#b83fff) 24%,transparent);
  outline:none;
}
.visitor-timer--bottom-right{right:var(--visitor-timer-offset,24px);bottom:var(--visitor-timer-offset,24px)}
.visitor-timer--bottom-left{left:var(--visitor-timer-offset,24px);bottom:var(--visitor-timer-offset,24px)}
.visitor-timer--top-right{right:var(--visitor-timer-offset,24px);top:calc(var(--visitor-timer-offset,24px) + 76px)}
.visitor-timer--top-left{left:var(--visitor-timer-offset,24px);top:calc(var(--visitor-timer-offset,24px) + 76px)}
.admin-bar .visitor-timer--top-right,.admin-bar .visitor-timer--top-left{top:calc(var(--visitor-timer-offset,24px) + 108px)}
.visitor-timer__icon{
  width:16px;
  height:16px;
  flex:0 0 16px;
  color:var(--visitor-timer-accent,#b83fff);
  filter:drop-shadow(0 0 6px color-mix(in srgb,var(--visitor-timer-accent,#b83fff) 46%,transparent));
}
.visitor-timer__icon svg{display:block;width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.visitor-timer__label{font-size:10px;font-weight:600;letter-spacing:.08em;color:color-mix(in srgb,var(--visitor-timer-text,#f4f1f7) 68%,transparent)}
.visitor-timer__time,.visitor-timer__label{max-width:150px;opacity:1;overflow:hidden;transition:max-width .28s ease,opacity .2s ease,margin .28s ease}
.visitor-timer.is-collapsed{width:38px;min-width:38px;padding-inline:0;gap:0}
.visitor-timer.is-collapsed .visitor-timer__time,.visitor-timer.is-collapsed .visitor-timer__label{max-width:0;opacity:0;margin:0}
.visitor-timer--floating.is-visible{animation:mvfxVisitorTimerFloat 6.4s ease-in-out infinite}
@keyframes mvfxVisitorTimerFloat{0%,100%{translate:0 0}50%{translate:0 -2px}}
@supports not (color:color-mix(in srgb,#fff 50%,transparent)){
  .visitor-timer{background:rgba(9,9,18,.78);box-shadow:0 10px 32px rgba(0,0,0,.28),0 0 16px rgba(184,63,255,.12)}
  .visitor-timer.is-visible:hover,.visitor-timer.is-visible:focus-visible{border-color:rgba(184,63,255,.48);box-shadow:0 14px 38px rgba(0,0,0,.34),0 0 22px rgba(184,63,255,.22)}
  .visitor-timer__label{color:rgba(244,241,247,.68)}
}
@media(max-width:620px){
  .visitor-timer{height:34px;min-width:76px;padding-inline:10px;font-size:11px}
  .visitor-timer.is-collapsed{width:34px;min-width:34px}
  .visitor-timer__icon{width:15px;height:15px;flex-basis:15px}
  .visitor-timer--bottom-right{right:12px;bottom:12px}
  .visitor-timer--bottom-left{left:12px;bottom:12px}
  .visitor-timer--top-right{right:12px;top:82px}
  .visitor-timer--top-left{left:12px;top:82px}
  .admin-bar .visitor-timer--top-right,.admin-bar .visitor-timer--top-left{top:128px}
}
@media(prefers-reduced-motion:reduce){.visitor-timer{transition:opacity .15s ease,visibility .15s ease}.visitor-timer--floating.is-visible{animation:none}}
@media print{.visitor-timer{display:none!important}}


/* 1.7.1 — optional introductions on internal pages. */
.internal-page--compact-start .section--page-start{
  padding-top:calc(var(--header) + var(--internal-page-gap-desktop,42px));
}
.internal-page--compact-start .section--page-start:first-child{
  border-top:0;
}
.internal-page--compact-start .filter-bar{
  margin-top:0;
}
.internal-page--compact-start.internal-page--showreel .video-page,
.internal-page--compact-start.internal-page--contacts .contact-page-grid{
  position:relative;
}
@media(max-width:620px){
  .internal-page--compact-start .section--page-start{
    padding-top:calc(var(--header) + var(--internal-page-gap-mobile,24px));
  }
}

/* 1.8.0 — stylized contacts map and configurable footer. */
.section--contact-map{padding-top:0;border-top:0}
.contact-map__title{margin:0 0 28px;font-size:clamp(1.8rem,3vw,3rem)}
.contact-map{position:relative;width:100%;height:var(--contacts-map-height-desktop,480px);overflow:hidden;border:1px solid color-mix(in srgb,var(--footer-accent,#d65cff) 48%,rgba(255,255,255,.12));border-radius:var(--contacts-map-radius,36px);background:#090611;box-shadow:0 24px 70px rgba(0,0,0,.42),0 0 44px color-mix(in srgb,var(--footer-accent,#d65cff) 18%,transparent);isolation:isolate}
.contact-map::before{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 0 1px rgba(255,255,255,.045),inset 0 -60px 90px rgba(5,2,10,.28);pointer-events:none;z-index:3}
.contact-map__frame{display:block;width:100%;height:100%;border:0;filter:grayscale(.72) saturate(.8) contrast(1.08) brightness(.72) hue-rotate(232deg);transition:filter .45s ease,transform .7s cubic-bezier(.2,.7,.2,1);transform:scale(1.006)}
.contact-map:hover .contact-map__frame{filter:grayscale(.48) saturate(.98) contrast(1.06) brightness(.82) hue-rotate(232deg);transform:scale(1.012)}
.contact-map__tint{position:absolute;inset:0;z-index:2;pointer-events:none;background:linear-gradient(120deg,rgba(7,4,14,.22),color-mix(in srgb,var(--footer-accent,#d65cff) var(--contacts-map-tint-pct,22%),transparent));mix-blend-mode:color}
.contact-map__open{position:absolute;right:20px;bottom:18px;z-index:4;display:inline-flex;align-items:center;gap:8px;padding:10px 15px;border:1px solid color-mix(in srgb,var(--footer-accent,#d65cff) 55%,rgba(255,255,255,.15));border-radius:999px;background:rgba(6,4,10,.76);backdrop-filter:blur(10px);color:#fff;font-size:.78rem;font-weight:700;letter-spacing:.02em;box-shadow:0 10px 28px rgba(0,0,0,.34),0 0 18px color-mix(in srgb,var(--footer-accent,#d65cff) 22%,transparent);transition:transform .25s ease,border-color .25s ease,box-shadow .25s ease}
.contact-map__open:hover{transform:translateY(-2px);border-color:var(--footer-accent,#d65cff);box-shadow:0 12px 34px rgba(0,0,0,.38),0 0 26px color-mix(in srgb,var(--footer-accent,#d65cff) 38%,transparent)}

.site-footer{background:var(--footer-bg,#050507);color:var(--footer-text,#a7a3ae)}
.site-footer__grid{grid-template-columns:minmax(220px,1.35fr) repeat(auto-fit,minmax(145px,1fr));align-items:start}
.site-footer__brand{grid-column:auto}
.site-footer__brand p,.footer-links{color:var(--footer-text,#a7a3ae)}
.site-footer h3{color:var(--footer-heading,#f4f1f7)}
.footer-links a{color:inherit;transition:color .22s ease,text-shadow .22s ease}
.footer-links a:hover{color:#fff;text-shadow:0 0 14px color-mix(in srgb,var(--footer-accent,#d65cff) 36%,transparent)}
.site-footer__bottom{color:color-mix(in srgb,var(--footer-text,#a7a3ae) 70%,transparent)}
.site-footer__bottom a:hover{color:var(--footer-heading,#f4f1f7)}
.socials{gap:10px}
.social-link{width:var(--footer-icon-size,42px);height:var(--footer-icon-size,42px);border-color:color-mix(in srgb,var(--footer-accent,#d65cff) 64%,rgba(255,255,255,.12));background:radial-gradient(circle at 35% 28%,color-mix(in srgb,var(--footer-accent,#d65cff) 22%,transparent),var(--footer-icon-bg,#13091c) 68%);color:var(--footer-accent,#d65cff);box-shadow:0 0 18px color-mix(in srgb,var(--footer-accent,#d65cff) var(--footer-icon-glow-pct,62%),transparent),inset 0 0 14px color-mix(in srgb,var(--footer-accent,#d65cff) 16%,transparent);transition:transform .25s ease,color .25s ease,border-color .25s ease,box-shadow .25s ease,background .25s ease}
.social-link svg{width:47%;height:47%;display:block;overflow:visible}
.social-link svg rect,.social-link svg circle{fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.social-link svg path{fill:currentColor;stroke:none}
.social-link:not(.is-disabled):hover{transform:translateY(-3px) scale(1.07);color:#fff;border-color:var(--footer-accent,#d65cff);box-shadow:0 8px 25px rgba(0,0,0,.3),0 0 30px color-mix(in srgb,var(--footer-accent,#d65cff) 78%,transparent),inset 0 0 18px color-mix(in srgb,var(--footer-accent,#d65cff) 25%,transparent)}
.social-link.is-disabled{opacity:var(--footer-disabled-opacity,.62);filter:saturate(.9);cursor:default}
@supports not (color:color-mix(in srgb,#fff 50%,transparent)){
  .contact-map{border-color:rgba(214,92,255,.5);box-shadow:0 24px 70px rgba(0,0,0,.42),0 0 36px rgba(214,92,255,.16)}
  .contact-map__tint{background:rgba(92,26,125,.22);mix-blend-mode:color}
  .social-link{border-color:rgba(214,92,255,.65);background:#13091c;box-shadow:0 0 22px rgba(214,92,255,.38)}
}
@media(max-width:900px){.site-footer__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.site-footer__brand{grid-column:1/-1}}
@media(max-width:620px){.contact-map{height:var(--contacts-map-height-mobile,360px);border-radius:min(var(--contacts-map-radius,36px),28px)}.contact-map__open{right:12px;bottom:12px}.site-footer__grid{grid-template-columns:1fr}.site-footer__brand{grid-column:auto}}
/* ===== ШОУРИЛ НА ГЛАВНОЙ — БЕЗ КРОПА ===== */
.section--showreel .showreel-bg-video {
    object-fit: contain !important;
    min-width: 100% !important;
    min-height: 100% !important;
    width: auto !important;
    height: auto !important;
    max-width: none !important;
    max-height: none !important;
}

/* Скрываем лишнее */
.section--showreel .showreel-copy,
.section--showreel .showreel-card__play {
    display: none !important;
}

.section--showreel .showreel-card {
    background-image: none !important;
    background: transparent !important;
}

/* Модальное окно */
.video-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 999999;
    background: rgba(0, 0, 0, 0.95);
    display: none !important;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
}

.video-modal.is-open {
    display: flex !important;
}

.video-modal__body {
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    margin: 0;
}

.video-modal__body video {
    width: auto;
    height: auto;
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
    border: none;
    box-shadow: none;
    display: block;
}

.video-modal__close {
    position: absolute;
    top: 30px;
    right: 30px;
    z-index: 10;
    color: #fff;
    font-size: 40px;
    background: rgba(255, 255, 255, 0.1);
    border: 1px solid rgba(255, 255, 255, 0.2);
    border-radius: 50%;
    width: 56px;
    height: 56px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.3s ease;
}

.video-modal__close:hover {
    background: rgba(255, 255, 255, 0.25);
}

/* Плавное появление блока */
.section--showreel {
    opacity: 0;
    animation: showreelFadeIn 0.01s ease 0.1s forwards;
}

@keyframes showreelFadeIn {
    to { opacity: 1; }
}
/* ============================================
   СТАТИСТИКА В БЛОКЕ "О НАС" (как у service-card)
   ============================================ */

.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--service-gap, 14px);
    margin-top: 24px;
}

.stat-card {
    position: relative;
    min-height: var(--service-card-min-height, 280px);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    text-align: center;
    padding: var(--service-card-padding, 28px);
    border: 1px solid var(--line, rgba(255,255,255,.12));
    border-radius: var(--service-card-radius, 12px);
    background: rgba(14, 15, 22, 0.72);
    transform-origin: center;
    transition: transform 0.42s cubic-bezier(.2,.72,.2,1),
                border-color 0.35s ease,
                box-shadow 0.42s ease,
                background 0.35s ease,
                filter 0.35s ease;
    will-change: transform, translate, filter;
}

/* Эффект при наведении (как у service-card) */
.stat-card:hover {
    transform: translateY(calc(-1 * var(--service-hover-lift, 10px))) scale(var(--service-hover-scale, 1.035)) !important;
    z-index: 3 !important;
    border-color: color-mix(in srgb, var(--mvfx-accent, #b83fff) 76%, #fff 8%) !important;
    box-shadow: 0 24px 64px rgba(0, 0, 0, 0.48),
                0 0 42px color-mix(in srgb, var(--mvfx-accent, #b83fff) var(--service-hover-glow-pct, 42%), transparent) !important;
    filter: saturate(1.08) !important;
}

/* Свечение поверх карточки (как у service-card) */
.stat-card::after {
    content: '';
    position: absolute;
    inset: -1px;
    border-radius: inherit;
    background: radial-gradient(circle at 50% 0%, color-mix(in srgb, var(--mvfx-accent, #b83fff) 15%, transparent), transparent 70%);
    opacity: 0;
    transition: opacity 0.4s ease;
    pointer-events: none;
    z-index: 0;
}

.stat-card:hover::after {
    opacity: 1;
}

/* Контент внутри карточки — поверх псевдоэлемента */
.stat-card .stat-number,
.stat-card .stat-label,
.stat-card span {
    position: relative;
    z-index: 1;
}

/* Цифра */
.stat-card .stat-number {
    font-size: var(--service-icon-size, 52px) !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    font-family: var(--mantra-heading-font, 'Manrope', sans-serif) !important;
    background: linear-gradient(135deg, #f4f3f7 0%, #c94bff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

/* Текст под цифрой — как в карточках услуг (усиленный селектор) */
.stat-card .stat-label,
.stat-card span:last-child,
.about-grid .stat-card .stat-label,
.about-grid .stat-card span:last-child {
    font-size: 0.91rem !important;
    font-weight: 400 !important;
    color: #aaa7b2 !important;
    margin-top: 12px !important;
    font-family: 'Manrope', sans-serif !important;
    max-width: 160px !important;
    line-height: 1.5 !important;
}

/* Анимация появления (как у service-card) */
.animated-stat {
    opacity: 0;
    transform: translateY(24px);
    transition: opacity 0.7s ease, transform 0.7s cubic-bezier(.2,.7,.2,1);
}

.animated-stat.is-visible {
    opacity: 1;
    transform: none;
}

/* Плавающая анимация (как у service-card) */
.stat-card.is-visible {
    animation: mvfxServiceFloat var(--service-float-duration, 7s) ease-in-out infinite;
    animation-delay: calc((var(--service-index, 1) - 1) * -0.65s);
}

/* ===== АДАПТИВНОСТЬ ===== */

/* Планшеты */
@media (max-width: 1100px) {
    .stats-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

/* Телефоны */
@media (max-width: 620px) {
    .stats-grid {
        grid-template-columns: 1fr;
        max-width: 400px;
        margin: 0 auto;
    }
    
    .stat-card {
        min-height: 180px;
        padding: 20px;
    }
    
    .stat-card .stat-number {
        font-size: 2.8rem !important;
    }
    
    .stat-card .stat-label {
        font-size: 0.9rem !important;
    }
}

/* Если нет поддержки color-mix */
@supports not (color: color-mix(in srgb, #fff 50%, transparent)) {
    .stat-card:hover {
        border-color: #bd4cff;
        box-shadow: 0 24px 64px rgba(0, 0, 0, 0.48), 0 0 34px rgba(184, 63, 255, 0.32);
    }
}

/* Отключаем анимацию при reduced motion */
@media (prefers-reduced-motion: reduce) {
    .stat-card.is-visible {
        animation: none !important;
    }
    .animated-stat {
        opacity: 1;
        transform: none;
        transition: none;
    }
}
/* ===== ВЫРАВНИВАНИЕ КНОПКИ "ПОДРОБНЕЕ" ПО ЦЕНТРУ НА СМАРТФОНАХ ===== */
@media (max-width: 620px) {
    /* Блок "О нас" — кнопка по центру */
    .section--about .about-copy .button {
        display: flex !important;
        justify-content: center !important;
        align-items: center !important;
        width: 100% !important;
        max-width: 280px !important;
        margin: 16px auto 0 !important;
        text-align: center !important;
    }
    
    /* Если кнопка обёрнута в контейнер — центрируем контейнер */
    .section--about .about-copy {
        display: flex;
        flex-direction: column;
        align-items: center;
    }
    
    .section--about .about-copy p {
        text-align: center;
        max-width: 100%;
    }
    
    .section--about .about-copy h2 {
        text-align: center;
    }
    
    .section--about .about-copy .eyebrow {
        text-align: center;
    }
}
/* Скрываем стрелочку в карточках услуг */
.service-card span:last-child {
    display: none !important;
}
/* Уравниваем размер шрифта на кнопках */
.section--about .button,
.section--contact .button {
    font-size: 16px !important;
}
/* Уравниваем стрелочки у обеих кнопок */
.button--ghost .button__arrow,
.button--ghost span:last-child,
.button--primary span:last-child {
    font-size: 1.2em !important;
    line-height: 1 !important;
}

/* Или через псевдоэлементы */
.button--ghost::after,
.button--primary::after {
    font-size: 1.2em !important;
    line-height: 1 !important;
}
/* Черный фон для мобильного меню (телефоны и планшеты) */
@media (max-width: 1024px) {
    /* Основной контейнер меню */
    .site-header .menu-container,
    .site-header .main-navigation,
    .site-header .nav-menu,
    .site-header .menu-main-container,
    .mobile-menu,
    .navigation-menu,
    .primary-nav {
        background-color: #000000 !important;
        background: #000000 !important;
    }

    /* Само меню (список) */
    .site-header .menu,
    .site-header .main-menu,
    .site-header .primary-menu,
    .site-header .nav-menu ul,
    .mobile-menu ul,
    .navigation-menu ul {
        background-color: #000000 !important;
        background: #000000 !important;
        padding: 20px !important;
    }

    /* Каждый пункт меню */
    .site-header .menu li,
    .site-header .main-menu li,
    .site-header .primary-menu li,
    .mobile-menu li,
    .navigation-menu li {
        background-color: #000000 !important;
        border-bottom: 1px solid rgba(255, 255, 255, 0.06) !important;
    }

    /* Ссылки в меню */
    .site-header .menu a,
    .site-header .main-menu a,
    .site-header .primary-menu a,
    .mobile-menu a,
    .navigation-menu a {
        color: #ffffff !important;
        padding: 14px 20px !important;
        display: block !important;
        font-size: 1.05rem !important;
    }

    /* Затемнение фона (оверлей) */
    .menu-overlay,
    .nav-overlay,
    .mobile-menu-overlay {
        background-color: rgba(0, 0, 0, 0.95) !important;
        backdrop-filter: blur(4px) !important;
    }

    /* Кнопка "Обсудить проект" в меню на планшетах */
    .primary-nav .button--header {
        background-color: #000000 !important;
        border-color: rgba(188, 61, 255, 0.75) !important;
        margin-top: 12px !important;
        width: 100% !important;
        justify-content: center !important;
    }
}
/* ===== ФОРСИРОВАННЫЙ РАЗМЕР ДЛЯ ЦИФР В СТАТИСТИКЕ ===== */
.section--about .stats-grid .stat-card .stat-number,
.section--about .stats-grid .stat-card strong,
.section--about .stats-grid .stat-card .stat-text,
.section--about .stats-grid .stat-card .number,
.section--about .stats-grid .stat-card .count,
.section--about .stats-grid .stat-card .stat-value {
    font-size: 3.6rem !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    font-family: var(--mantra-heading-font, 'Manrope', sans-serif) !important;
    background: linear-gradient(135deg, #f4f3f7 0%, #c94bff 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    letter-spacing: -0.02em !important;
}

/* Если цифра внутри span или другого тега */
.section--about .stats-grid .stat-card span:first-child,
.section--about .stats-grid .stat-card span.stat-number,
.section--about .stats-grid .stat-card .stat-number {
    font-size: 3.6rem !important;
    font-weight: 600 !important;
    line-height: 1.1 !important;
    font-family: var(--mantra-heading-font, 'Manrope', sans-serif) !important;
    background: linear-gradient(135deg, #f4f3f7 0%, #c94bff 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
    letter-spacing: -0.02em !important;
}

/* Символ "+" рядом с цифрой — делаем его меньше */
.section--about .stats-grid .stat-card .plus,
.section--about .stats-grid .stat-card .suffix {
    font-size: 0.5em !important;
    font-weight: 400 !important;
    -webkit-text-fill-color: #c94bff !important;
    background: none !important;
    -webkit-background-clip: unset !important;
    background-clip: unset !important;
    color: #c94bff !important;
    margin-left: 2px !important;
}
/* ===== ПРОСТЫЕ АНИМИРОВАННЫЕ ПЕРЕХОДЫ МЕЖДУ БЛОКАМИ ===== */

/* Все блоки на главной (кроме hero) изначально скрыты */
.home .home-block:not(.hero) {
    opacity: 0;
    transform: translateY(50px);
    transition: opacity 0.8s ease, transform 0.8s ease;
}

/* Когда блок виден — показываем */
.home .home-block:not(.hero).block-visible {
    opacity: 1;
    transform: translateY(0);
}

/* Герой виден всегда */
.home .hero {
    opacity: 1;
    transform: none;
}

/* Добавляем красивую линию-разделитель */
.home-block {
    position: relative;
}

.home-block::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 1px;
    background: linear-gradient(90deg, transparent, #c94bff, transparent);
    transition: width 0.8s ease;
}

.home-block.block-visible::before {
    width: 60%;
}
/* ===== ИСПРАВЛЕНИЕ ДЛЯ КНОПКИ "СМОТРЕТЬ ШОУРИЛ" НА СМАРТФОНАХ ===== */
@media (max-width: 620px) {
    /* Убеждаемся, что иконка Play видна на смартфонах */
    .button .play-icon {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        flex-shrink: 0 !important;
        width: 32px !important;
        height: 32px !important;
        border: 1.5px solid rgba(255, 255, 255, 0.7) !important;
        border-radius: 50% !important;
        background: rgba(255, 255, 255, 0.08) !important;
        backdrop-filter: blur(4px) !important;
        padding: 0 !important;
        margin-right: 8px !important;
    }

    .button .play-icon svg {
        display: block !important;
        width: 16px !important;
        height: 16px !important;
        fill: none !important;
        stroke: currentColor !important;
        stroke-width: 2.5 !important;
        stroke-linecap: round !important;
        stroke-linejoin: round !important;
    }

    /* Исправляем кнопку в hero на смартфонах */
    .hero__actions .button--primary {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        padding: 12px 24px !important;
        width: auto !important;
        min-width: 180px !important;
        font-size: 0.95rem !important;
    }

    /* Исправляем кнопку в блоке шоурила на смартфонах */
    .showreel-copy .button--ghost {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        gap: 8px !important;
        padding: 12px 24px !important;
        width: auto !important;
        min-width: 180px !important;
        font-size: 0.95rem !important;
    }

    /* Убираем растягивание кнопок в hero на смартфонах (чтобы они были компактными) */
    .hero__actions {
        align-items: center !important;
        justify-content: center !important;
        flex-wrap: wrap !important;
    }
    
    .hero__actions .button {
        flex: 0 1 auto !important;
        width: auto !important;
    }
}
/* ===== ПРЕЛОАДЕР ДЛЯ ГЛАВНОЙ СТРАНИЦЫ ===== */
.home-preloader {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 999999;
    background: #030306;
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 1;
    visibility: visible;
    transition: opacity 0.3s ease, visibility 0.3s ease;
}

.home-preloader.hidden {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
}

/* Размеры логотипа уже заданы в HTML, здесь оставляем только анимацию */
.home-preloader img {
    object-fit: contain;
    animation: pulseLogo 1.2s ease-in-out infinite;
}

/* Дополнительная страховка для мобильных */
@media (max-width: 480px) {
    .home-preloader img {
        max-width: 25vw !important;
        max-height: 25vh !important;
    }
}
/* Форсируем размер логотипа в прелоадере */
.home-preloader img {
    width: 120px !important;
    height: 120px !important;
    max-width: 30vw !important;
    max-height: 30vh !important;
}

@media (max-width: 480px) {
    .home-preloader img {
        max-width: 25vw !important;
        max-height: 25vh !important;
    }
}
/* Плавный скролл для якорных ссылок */
html {
    scroll-behavior: smooth;
}