:root{--bg:#032b2e;--bg-warm:#04353a;--bg-deep:#021f22;--bg-panel:#053c41;--gold:#a89800;--gold-v:#ccc21c;--gold-b:#8a7c00;--gold-10:rgba(204, 194, 28, 0.1);--gold-20:rgba(204, 194, 28, 0.2);--gold-40:rgba(204, 194, 28, 0.4);--ink:#e3eef0;--ink-70:rgba(227, 238, 240, 0.7);--ink-40:rgba(227, 238, 240, 0.55);--ink-15:rgba(227, 238, 240, 0.15);--ink-label:rgba(227, 238, 240, 0.62);--ink-06:rgba(227, 238, 240, 0.06);--ink-03:rgba(227, 238, 240, 0.03);--serif:"Norsal","DM Sans",system-ui,sans-serif;--serif-c:"Norsal","DM Sans",system-ui,sans-serif;--sans:"IBM Plex Sans Arabic",system-ui,-apple-system,"Segoe UI",Tahoma,sans-serif;--display:"Norsal","DM Sans",system-ui,sans-serif;--e1:cubic-bezier(0.16, 1, 0.3, 1);--e2:cubic-bezier(0.4, 0, 0.2, 1);--e3:cubic-bezier(0.23, 1, 0.32, 1);--shadow-sm:0 1px 2px rgba(1,14,15,.4),0 2px 8px rgba(1,18,20,.22);--shadow-md:0 4px 12px rgba(1,14,15,.34),0 12px 30px rgba(1,18,20,.3);--shadow-lg:0 8px 24px rgba(1,14,15,.4),0 22px 55px rgba(1,18,20,.42);--shadow-xl:0 12px 32px rgba(1,14,15,.45),0 30px 70px rgba(1,18,20,.5);--glow-gold:0 0 24px rgba(204,194,28,.14),0 0 2px rgba(204,194,28,.2);--blur-sm:blur(8px);--blur-md:blur(12px);--blur-lg:blur(16px);--font-size-xs:10px;--font-size-sm:12px;--font-size-base:16px;--font-size-lg:20px;--font-size-xl:24px;--font-size-2xl:30px;--font-size-3xl:36px;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--space-20:80px;--space-24:96px;--duration-1:0.3s;--duration-2:0.5s;--duration-3:0.8s;--duration-4:1.2s;--ease-out:cubic-bezier(0.16, 1, 0.3, 1);--ease-in-out:cubic-bezier(0.23, 1, 0.32, 1);--ease-in:cubic-bezier(0.4, 0, 0.2, 1)}*,::after,::before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{background:var(--bg);color:var(--ink);font-family:var(--sans);font-weight:300;overflow-x:hidden;line-height:1.7;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;font-synthesis:none}a{color:inherit;text-decoration:none}ul{list-style:none}img{display:block;max-width:100%}::-webkit-scrollbar{width:3px}::-webkit-scrollbar-track{background:var(--bg-deep)}::-webkit-scrollbar-thumb{background:var(--gold-40);border-radius:2px}#cr{width:10px;height:10px;background:var(--gold-v);border-radius:50%;position:fixed;top:-20px;left:-20px;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:width .2s,height .2s}#crr{width:36px;height:36px;border:1.5px solid var(--gold-40);border-radius:50%;position:fixed;top:-20px;left:-20px;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:width .3s,height .3s,border-color .3s,top 80ms linear,left 80ms linear}#cr-trail-wrap{position:fixed;inset:0;pointer-events:none;z-index:9997}body:not(.cursor-ready) #cr,body:not(.cursor-ready) #crr{opacity:0}@media (max-width:768px){#cr,#cr-trail-wrap,#crr{display:none!important}body{cursor:auto}}#sp{position:fixed;top:0;left:0;height:2px;background:var(--gold-v);z-index:9996;transform-origin:left;transform:scaleX(0);pointer-events:none;transition:none}.pg{display:none;opacity:0;min-height:100vh}.pg.on{display:block;opacity:1}.pg.p-in{animation:pIn 480ms cubic-bezier(.16,1,.3,1) both}.pg.p-out{animation:pOut .2s cubic-bezier(.4,0,.2,1) both;pointer-events:none}@keyframes pIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes pOut{from{opacity:1;transform:none}to{opacity:0;transform:translateY(-12px)}}.approach-row,.cta-btns,.cta-h,.cta-sub,.cta-tag,.cult-card,.exp-cell,.pfl-item,.pj-row,.quote-card,.role-row,.rv,.stat-box,.stmt-big,.sv-card,.sv-full-card,.sv-step,.val-card{opacity:0;transform:translateY(36px);transition:opacity .8s cubic-bezier(.16, 1, .3, 1),transform .8s cubic-bezier(.16, 1, .3, 1)}.approach-row.vis,.cta-btns.vis,.cta-h.vis,.cta-sub.vis,.cta-tag.vis,.cult-card.vis,.exp-cell.vis,.pfl-item.vis,.pj-row.vis,.quote-card.vis,.role-row.vis,.rv.vis,.stat-box.vis,.stmt-big.vis,.sv-card.vis,.sv-full-card.vis,.sv-step.vis,.val-card.vis{opacity:1;transform:none}.rv.d1{transition-delay:80ms}.rv.d2{transition-delay:0.18s}.rv.d3{transition-delay:0.28s}.rv.d4{transition-delay:0.38s}.sv-card:nth-child(2),.sv-full-card:nth-child(2),.val-card:nth-child(2){transition-delay:0.1s}.sv-card:nth-child(3),.sv-full-card:nth-child(3),.val-card:nth-child(3){transition-delay:0.2s}.sv-card:nth-child(4),.sv-full-card:nth-child(4),.val-card:nth-child(4){transition-delay:0.3s}.exp-cell:nth-child(2){transition-delay:80ms}.exp-cell:nth-child(3){transition-delay:0.16s}.exp-cell:nth-child(4){transition-delay:0.24s}.exp-cell:nth-child(5){transition-delay:0.32s}.pfl-item:nth-child(2),.pj-row:nth-child(2){transition-delay:70ms}.pfl-item:nth-child(3),.pj-row:nth-child(3){transition-delay:0.14s}.pfl-item:nth-child(4),.pj-row:nth-child(4){transition-delay:0.21s}.pfl-item:nth-child(5),.pj-row:nth-child(5){transition-delay:0.28s}.pfl-item:nth-child(6),.pj-row:nth-child(6){transition-delay:0.35s}.pfl-item:nth-child(7),.pj-row:nth-child(7){transition-delay:0.42s}.sv-step:nth-child(2){transition-delay:0.1s}.sv-step:nth-child(3){transition-delay:0.2s}.sv-step:nth-child(4){transition-delay:0.3s}.sv-step:nth-child(5){transition-delay:0.4s}.stat-box:nth-child(2){transition-delay:80ms}.stat-box:nth-child(3){transition-delay:0.16s}.stat-box:nth-child(4){transition-delay:0.24s}.cult-card:nth-child(2){transition-delay:0.1s}.cult-card:nth-child(3){transition-delay:0.2s}.role-row:nth-child(2){transition-delay:70ms}.role-row:nth-child(3){transition-delay:0.14s}.role-row:nth-child(4){transition-delay:0.21s}.wrap{max-width:1440px;margin:0 auto;padding:0 72px}.sec-tag{display:inline-flex;align-items:center;gap:12px;font-size:10px;font-weight:500;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-v);margin-bottom:32px}.sec-tag::before{content:"";width:32px;height:1.5px;background:var(--gold-v)}.sec-h2{font-family:var(--serif);font-size:clamp(44px, 5vw, 72px);font-weight:700;line-height:1.05;color:var(--ink);margin-bottom:24px;text-wrap:balance}.sec-h2 em{font-style:italic;font-weight:400;color:var(--gold-v)}.body-p{font-size:16px;font-weight:300;line-height:1.9;color:var(--ink-70);margin-bottom:20px}.btn-primary{display:inline-flex;align-items:center;gap:12px;background:var(--gold-v);color:var(--bg-deep);font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.15em;text-transform:uppercase;padding:18px 48px;border-radius:4px;position:relative;overflow:hidden;box-shadow:0 4px 20px rgba(204,194,28,.15);transition:transform .4s cubic-bezier(.23, 1, .32, 1),box-shadow .4s ease}.btn-primary::before{content:"";position:absolute;inset:0;background:var(--gold-b);transform:translateX(-101%);transition:transform .6s cubic-bezier(.16, 1, .3, 1)}.btn-primary:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 10px 30px rgba(204,194,28,.3)}.btn-primary:hover::before{transform:none}.btn-primary span{position:relative;z-index:1;color:var(--bg-deep)}.btn-outline{font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-70);border-bottom:1px solid var(--ink-15);padding-bottom:4px;transition:color .3s,border-color .3s}.btn-outline:hover{color:var(--gold-v);border-color:var(--gold-40)}.link-teal{font-size:11px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-v);border-bottom:1.5px solid var(--gold-20);padding-bottom:3px;transition:border-color .3s}.link-teal:hover{border-color:var(--gold-v)}.divider{height:1px;background:var(--ink-06);width:100%}nav{position:fixed;top:0;left:0;right:0;z-index:300;padding:28px 0;transition:all .5s cubic-bezier(.4, 0, .2, 1);backdrop-filter:saturate(180%) brightness(120%)}nav.stuck{background:rgba(2,31,34,.96);backdrop-filter:blur(24px) saturate(180%) brightness(110%);-webkit-backdrop-filter:blur(24px) saturate(180%) brightness(110%);padding:16px 0;border-bottom:1px solid var(--ink-06);box-shadow:0 4px 20px rgba(0,0,0,.3)}.nav-in{max-width:1440px;margin:0 auto;padding:0 72px;display:flex;align-items:center;justify-content:space-between;gap:20px}.n-logo-wrap{display:flex;align-items:center;justify-content:center;height:100%}.n-logo{cursor:pointer;transition:all .4s cubic-bezier(.16, 1, .3, 1);display:flex;align-items:center;justify-content:center;padding:8px 20px;border:1px solid var(--gold-20);background:rgba(5,60,65,.5);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);position:relative;overflow:hidden;border-radius:6px;box-shadow:0 2px 12px rgba(0,0,0,.15)}.n-logo::before{content:"";position:absolute;inset:0;background:linear-gradient(45deg,transparent,var(--gold-10),transparent);transform:translateX(-100%);transition:transform .6s cubic-bezier(.16, 1, .3, 1)}.n-logo:hover{border-color:var(--gold-v);background:rgba(5,60,65,.7);box-shadow:0 8px 24px rgba(204,194,28,.15);transform:translateY(-2px)}.n-logo:hover::before{transform:translateX(100%)}.n-logo img{filter:brightness(1.1)}.n-logo b{color:var(--gold-v)}.n-links{display:flex;gap:40px;align-items:center}.n-links a{font-size:12px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-70);position:relative;transition:color .3s;white-space:nowrap}.n-links a.active,.n-links a:hover{color:var(--ink)}.n-links a::after{content:"";position:absolute;bottom:-4px;left:0;width:0;height:1.5px;background:var(--gold-v);transition:width .4s cubic-bezier(.16, 1, .3, 1)}.n-links a.active::after,.n-links a:hover::after{width:100%}.n-cta{background:var(--gold-v)!important;color:var(--bg-deep)!important;padding:10px 24px!important;font-size:10px!important;font-weight:600!important;letter-spacing:.22em!important;transition:background .3s!important}.n-cta:hover{background:var(--gold)!important}.n-cta::after{display:none!important}.nav-burger{display:none;flex-direction:column;gap:5px;cursor:pointer;padding:6px;z-index:310}.nav-burger span{display:block;width:26px;height:1.5px;background:var(--ink);transition:all .4s cubic-bezier(.4, 0, .2, 1)}.nav-burger.open span:first-child{transform:translateY(6.5px) rotate(45deg)}.nav-burger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.nav-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}@media (max-width:768px){.n-links{display:none}.nav-burger{display:flex}}.mob-overlay{position:fixed;inset:0;background:rgba(2,31,34,.7);z-index:290;opacity:0;pointer-events:none;transition:opacity .4s}.mob-overlay.open{opacity:1;pointer-events:all}.mob-drawer{position:fixed;top:0;right:0;bottom:0;width:min(340px,90vw);background:var(--bg-warm);z-index:295;transform:translateX(100%);visibility:hidden;transition:transform .5s cubic-bezier(.16, 1, .3, 1),visibility 0s linear .5s;border-left:1px solid var(--ink-06)}.mob-drawer.open{transform:none;visibility:visible;transition:transform .5s cubic-bezier(.16, 1, .3, 1),visibility 0s linear 0s}.mob-drawer-accent{position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--gold-v)}.mob-drawer-inner{padding:100px 48px 48px;display:flex;flex-direction:column;height:100%}.mob-links a{font-family:var(--serif);font-size:clamp(26px, 5vw, 36px);font-weight:700;color:var(--ink-40);display:block;padding:12px 0;border-bottom:1px solid var(--ink-06);transition:color .3s}.mob-links a:hover{color:var(--gold-v)}.mob-cta{margin-top:40px}.mob-cta a{display:block;text-align:center;padding:16px;background:var(--gold-v);color:var(--bg-deep);font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;transition:background .3s}.mob-cta a:hover{background:var(--gold)}#sec-dots{position:fixed;right:28px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:8px;z-index:190;pointer-events:none}.sd{width:5px;height:5px;border-radius:50%;background:var(--ink-15);transition:background .4s,transform .4s}.sd.active{background:var(--gold-v);transform:scale(1.6)}@media (max-width:768px){#sec-dots{display:none}}.bp{position:absolute;inset:0;background-image:url("../assets/images/image-1.png");background-size:180px 180px;background-repeat:repeat;background-position:center;opacity:.08;pointer-events:none;z-index:0}.bp-sm{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='1.5' fill='none' stroke='%23035156' stroke-width='.8' opacity='.4'/%3E%3C/svg%3E");background-size:32px 32px;pointer-events:none}#hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;position:relative;overflow:hidden;background:var(--bg)}.hero-3d-scene{position:absolute;inset:0;perspective:1200px;perspective-origin:50% 50%;pointer-events:none}.hero-3d-plane{position:absolute;inset:-20%;transform-style:preserve-3d;transform:rotateX(8deg) rotateY(-4deg);will-change:transform}.hero-grid-lines{position:absolute;inset:0}.hgl-h{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,rgba(227,238,240,.13) 20%,rgba(227,238,240,.13) 80%,transparent)}.hgl-v{position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(180deg,transparent,rgba(227,238,240,.13) 20%,rgba(227,238,240,.13) 80%,transparent)}.hero-float-box{position:absolute;border:1px solid rgba(204,194,28,.18);background:rgba(204,194,28,.03);backdrop-filter:blur(6px);transform-style:preserve-3d}.hfb-1{width:200px;height:200px;top:15%;right:18%;animation:flt1 8s ease-in-out infinite}.hfb-2{width:120px;height:120px;bottom:22%;right:32%;animation:flt2 11s ease-in-out infinite 2s}.hfb-3{width:80px;height:80px;top:32%;right:8%;animation:flt1 9s ease-in-out infinite 4s}@keyframes flt1{0%,100%{transform:rotateX(12deg) rotateY(-18deg) translateZ(40px) translateY(0)}50%{transform:rotateX(12deg) rotateY(-18deg) translateZ(40px) translateY(-18px)}}@keyframes flt2{0%,100%{transform:rotateX(-8deg) rotateY(12deg) translateZ(20px) translateY(0)}50%{transform:rotateX(-8deg) rotateY(12deg) translateZ(20px) translateY(-12px)}}.hero-num-3d{position:absolute;right:6%;top:50%;transform:translateY(-50%);font-family:var(--serif-c);font-size:clamp(200px, 26vw, 380px);font-weight:300;font-style:italic;color:transparent;-webkit-text-stroke:1px rgba(204,194,28,0.07);line-height:1;pointer-events:none;user-select:none;will-change:transform}.hero-content{position:relative;z-index:2;padding-top:100px}.hero-eyebrow{display:inline-flex;align-items:center;gap:14px;font-size:10px;font-weight:500;letter-spacing:.38em;text-transform:uppercase;color:var(--gold-v);margin-bottom:40px}.hero-eyebrow::before{content:"";width:36px;height:1.5px;background:var(--gold-v)}.hero-h1{font-family:var(--serif);line-height:.88;letter-spacing:-.03em;color:var(--ink);margin-bottom:0}.hero-h1-l1{font-size:clamp(80px, 11vw, 160px);font-weight:900;display:block}.hero-h1-l2{font-size:clamp(76px, 10.5vw, 152px);font-weight:400;font-style:italic;color:var(--gold-v);display:block;margin-bottom:56px}.hero-bottom{display:flex;align-items:flex-end;justify-content:space-between;gap:48px}.hero-sub{font-size:17px;font-weight:300;line-height:1.7;color:var(--ink-70);max-width:420px;text-wrap:balance}.hero-actions{display:flex;align-items:center;gap:24px;flex-shrink:0}.hero-scroll{position:absolute;bottom:36px;left:72px;display:flex;align-items:center;gap:14px;z-index:3;opacity:1;visibility:visible}.hero-scroll span{font-size:9px;letter-spacing:.35em;text-transform:uppercase;color:var(--ink-40);opacity:1}.scroll-track{width:48px;height:1px;background:var(--ink-15);position:relative;overflow:hidden;opacity:1}.scroll-track::after{content:"";position:absolute;left:0;top:0;height:100%;width:40%;background:var(--gold-v);animation:st 2s ease-in-out infinite}@keyframes st{0%{left:-40%}100%{left:140%}}.mq-strip{padding:12px 0;overflow:hidden;background:rgba(204,194,28,.07);border-top:1px solid var(--gold-40);border-bottom:1px solid var(--gold-40)}.mq-strip:hover .mq-track{animation-play-state:paused}.mq-track{display:flex;white-space:nowrap;animation:mq 26s linear infinite}.mq-item{display:inline-flex;align-items:center;gap:36px;padding:0 36px;font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-v);opacity:.65;flex-shrink:0}.mq-dot{width:4px;height:4px;background:var(--gold-v);border-radius:50%}@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}#about-prev{padding:140px 0;background:var(--bg)}.ap-grid{display:grid;grid-template-columns:1fr 1fr;gap:120px;align-items:start}.stats-grid{display:grid;grid-template-columns:1fr 1fr}.stat-box{padding:44px 36px;border:1px solid var(--ink-06);transition:border-color .4s,background .4s;cursor:default;position:relative;overflow:hidden}.stat-box:hover{border-color:var(--gold-40);background:var(--ink-03)}.stat-box:first-child{border-right:none;border-bottom:none}.stat-box:nth-child(2){border-bottom:none}.stat-box:nth-child(3){border-right:none}.stat-num{font-family:var(--serif);font-size:64px;font-weight:900;line-height:1;color:var(--ink);margin-bottom:8px}.stat-num .sv{display:inline}.stat-num .sfx{font-size:32px;color:var(--gold-v);font-weight:400;opacity:0;transition:opacity .3s}.stat-num .sfx.vis{opacity:1}.stat-lbl{font-size:11px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-40)}.quote-card{background:var(--bg-panel);padding:44px;margin-top:2px;position:relative;overflow:hidden;border:1px solid var(--ink-06)}.quote-card::before{position:absolute;top:-20px;right:20px;font-family:var(--serif-c);font-size:160px;font-weight:300;font-style:italic;color:rgba(204,194,28,.06);content:"\201C";line-height:1;pointer-events:none}.quote-text{font-family:var(--serif);font-size:20px;font-style:italic;font-weight:400;line-height:1.55;color:var(--ink-70);position:relative;z-index:1}.quote-src{font-size:10px;letter-spacing:.25em;text-transform:uppercase;color:var(--gold-v);margin-top:20px}#services{padding:140px 0;background:var(--bg)}.sv-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:72px;gap:40px}.sv-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;background:var(--ink-06)}.sv-card{background:var(--bg-warm);padding:52px 40px;position:relative;overflow:hidden;transition:transform .5s cubic-bezier(.16, 1, .3, 1),background .5s,box-shadow .5s;cursor:pointer;border-radius:8px;box-shadow:var(--shadow-md)}.sv-card:hover{background:var(--bg-panel);transform:translateY(-6px);box-shadow:var(--shadow-lg),0 0 0 1px var(--gold-20),0 18px 40px rgba(204,194,28,.1)}.sv-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--gold-v);clip-path:inset(0 100% 0 0);transition:clip-path .6s cubic-bezier(.4, 0, .2, 1)}.sv-card:nth-child(2) .sv-bar{transition-delay:50ms}.sv-card:nth-child(3) .sv-bar{transition-delay:0.1s}.sv-card:nth-child(4) .sv-bar{transition-delay:0.15s}.sv-card:hover .sv-bar{clip-path:inset(0 0% 0 0)}.sv-big-n{font-family:var(--serif-c);font-size:88px;font-weight:300;font-style:italic;color:transparent;-webkit-text-stroke:1px var(--ink-06);position:absolute;top:12px;right:16px;line-height:1;pointer-events:none;transition:-webkit-text-stroke-color .4s}.sv-card:hover .sv-big-n{-webkit-text-stroke-color:rgba(204,194,28,0.18)}.sv-icon{width:48px;height:48px;margin-bottom:32px;position:relative}.sv-icon-bg{position:absolute;inset:0;border-radius:50%;background:var(--gold-10);transition:background .4s}.sv-card:hover .sv-icon-bg{background:var(--gold-20)}.sv-icon svg{width:100%;height:100%;position:relative;z-index:1;color:var(--gold-v)}.sv-title{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ink);margin-bottom:14px;line-height:1.2;transition:color .3s}.sv-card:hover .sv-title{color:var(--gold-v)}.sv-desc{font-size:13px;font-weight:300;line-height:1.8;color:var(--ink-70)}.sv-more{display:inline-flex;align-items:center;gap:8px;font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-v);margin-top:24px;opacity:0;transform:translateX(-8px);transition:opacity .3s,transform .3s}.sv-card:hover .sv-more{opacity:1;transform:none}#statement{padding:120px 0;background:var(--bg);border-top:1px solid var(--ink-06);border-bottom:1px solid var(--ink-06);overflow:hidden;position:relative}.stmt-bg-word{position:absolute;font-family:var(--serif-c);font-size:clamp(200px, 25vw, 380px);font-weight:300;font-style:italic;color:transparent;-webkit-text-stroke:1px rgba(204,194,28,0.05);top:50%;right:-60px;transform:translateY(-50%);pointer-events:none;user-select:none;white-space:nowrap}.stmt-big{font-family:var(--serif);font-size:clamp(36px, 5.5vw, 76px);font-weight:400;font-style:italic;line-height:1.12;color:var(--ink);max-width:980px;text-wrap:balance;position:relative;z-index:1}.stmt-big strong{font-style:normal;font-weight:900;color:var(--gold-v)}.stmt-cols{display:grid;grid-template-columns:1fr 1fr 1fr;gap:56px;margin-top:80px;padding-top:60px;border-top:1px solid var(--ink-06)}.stmt-col-n{font-family:var(--serif-c);font-size:52px;font-weight:300;font-style:italic;color:var(--gold-v);opacity:.35;line-height:1;margin-bottom:12px}.stmt-col-title{font-family:var(--serif);font-size:20px;font-weight:700;color:var(--ink);margin-bottom:12px}.stmt-col-body{font-size:13px;font-weight:300;line-height:1.85;color:var(--ink-70)}#exp{padding:140px 0;background:var(--bg)}.exp-mosaic{display:grid;grid-template-columns:2fr 1fr 1fr;grid-template-rows:320px 220px;gap:3px;margin-top:64px}.exp-cell{background:var(--bg);border:1px solid var(--ink-06);position:relative;overflow:hidden;transition:border-color .4s,background .4s}.exp-cell:hover{border-color:var(--gold-40);background:rgba(204,194,28,.025)}.ec-span{grid-row:span 2}.ec-body{padding:32px;position:absolute;bottom:0;left:0;right:0}.ec-label{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-v);margin-bottom:8px}.ec-title{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--ink);line-height:1.1}.ec-text{font-size:12px;font-weight:300;line-height:1.7;color:var(--ink-70);margin-top:10px}#proj-prev{padding:140px 0;background:var(--bg);position:relative}.pj-head{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:72px;gap:40px}.pj-list{border-top:1px solid var(--ink-06)}.pj-row{display:grid;grid-template-columns:64px 1fr auto 52px;gap:32px;align-items:center;padding:36px 0;border-bottom:1px solid var(--ink-06);cursor:pointer;position:relative;overflow:hidden}.pj-row::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold-v);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16, 1, .3, 1)}.pj-row:hover::before{transform:scaleX(1)}.pj-content{transition:transform .4s cubic-bezier(.4, 0, .2, 1)}.pj-row:hover .pj-content{transform:translateX(18px)}.pj-n{font-family:var(--serif);font-size:16px;font-weight:400;color:var(--gold-v)}.pj-t{font-family:var(--serif);font-size:clamp(22px, 2.5vw, 36px);font-weight:700;color:var(--ink);line-height:1;margin-bottom:6px;transition:color .3s}.pj-row:hover .pj-t{color:var(--gold-v)}.pj-c{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-40)}.pj-stats{text-align:right}.pj-sv{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--ink-40)}.pj-sl{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-15)}.pj-arrow{width:44px;height:44px;border:1px solid var(--ink-15);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--ink-40);transition:all .3s;flex-shrink:0}.pj-row:hover .pj-arrow{border-color:var(--gold-v);color:var(--gold-v);background:var(--gold-10)}#proj-preview{position:fixed;pointer-events:none;z-index:9990;width:280px;height:180px;opacity:0;transform:scale(.88) translateY(12px);transition:opacity .35s cubic-bezier(.16, 1, .3, 1),transform .35s cubic-bezier(.16, 1, .3, 1);overflow:hidden;background:var(--bg-panel);border:1px solid var(--gold-v);background-size:cover;background-position:center;box-shadow:0 10px 40px rgba(0,0,0,.5)}#proj-preview::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(2,31,34,.9),rgba(2,31,34,.2));z-index:0}#proj-preview.vis{opacity:1;transform:scale(1) translateY(0)}.pp-inner{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;position:relative}.pp-label{font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-v);position:relative;z-index:1}.pp-title{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--ink-70);text-align:center;position:relative;z-index:1}#cta-banner{padding:160px 0;background:var(--bg);position:relative;overflow:hidden}.cta-3d-bg{position:absolute;inset:-10%;perspective:800px;pointer-events:none}.cta-3d-grid{position:absolute;inset:0;transform:rotateX(55deg) translateY(10%);background-image:linear-gradient(rgba(204,194,28,.1) 1px,transparent 1px),linear-gradient(90deg,rgba(204,194,28,.1) 1px,transparent 1px);background-size:80px 80px;animation:gridPan 20s linear infinite}@keyframes gridPan{from{background-position:0 0}to{background-position:0 80px}}.cta-glow{position:absolute;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,rgba(204,194,28,.13) 0,transparent 70%);top:50%;left:50%;transform:translate(-50%,-50%);pointer-events:none}.cta-inner{position:relative;z-index:1;text-align:center;max-width:1440px;margin:0 auto;padding:0 72px}.cta-tag{display:inline-flex;align-items:center;gap:14px;font-size:10px;letter-spacing:.35em;text-transform:uppercase;color:var(--gold-v);margin-bottom:48px}.cta-tag::after,.cta-tag::before{content:"";width:32px;height:1px;background:var(--gold-v)}.cta-h{font-family:var(--serif);font-size:clamp(52px, 8vw, 120px);font-weight:900;line-height:1.05;color:var(--ink);margin-bottom:20px;letter-spacing:-.03em;text-wrap:balance}.cta-h em{font-style:italic;font-weight:400;color:var(--gold-v)}.cta-sub{font-size:16px;font-weight:300;color:var(--ink-70);margin-bottom:56px;text-wrap:balance;max-width:560px;margin-left:auto;margin-right:auto}.cta-btns{display:flex;align-items:center;justify-content:center;gap:24px}.btn-cta{display:inline-flex;align-items:center;gap:12px;background:var(--gold-v);color:var(--bg-deep);font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;padding:18px 52px;position:relative;overflow:hidden;transition:transform .3s cubic-bezier(.23, 1, .32, 1)}.btn-cta::before{content:"";position:absolute;inset:0;background:rgba(255,255,255,.15);transform:translateX(-101%);transition:transform .5s cubic-bezier(.16, 1, .3, 1)}.btn-cta:hover{transform:translateY(-3px)}.btn-cta:hover::before{transform:none}.btn-cta-ghost{font-size:11px;font-weight:400;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-70);border-bottom:1px solid var(--ink-15);padding-bottom:4px;transition:color .3s,border-color .3s}.btn-cta-ghost:hover{color:var(--ink);border-color:var(--ink-40)}#about-pg{padding:160px 0 120px}.about-big-h{font-family:var(--serif);font-size:clamp(60px, 9vw, 120px);font-weight:900;line-height:.92;letter-spacing:-.03em;color:var(--ink);margin-bottom:0;text-wrap:balance}.about-big-h em{font-style:italic;font-weight:400;color:var(--gold-v)}.about-intro-row{display:grid;grid-template-columns:1fr 1fr;gap:100px;padding:80px 0;border-top:1px solid var(--ink-06);margin-top:60px}.about-big-p{font-family:var(--serif);font-size:clamp(20px, 2.2vw, 28px);font-weight:400;font-style:italic;line-height:1.45;color:var(--ink);margin-bottom:28px}.values-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--ink-06)}.val-card{background:var(--bg);padding:40px;transition:background .4s}.val-card:hover{background:var(--bg-warm)}.val-n{font-size:10px;color:var(--gold-v);letter-spacing:.22em;text-transform:uppercase;margin-bottom:16px}.val-title{font-family:var(--serif);font-size:22px;font-weight:700;color:var(--ink);margin-bottom:12px}.approach-section{padding:80px 0 0;border-top:1px solid var(--ink-06);margin-top:80px}.approach-row{display:grid;grid-template-columns:100px 1fr;gap:40px;padding:52px 0;border-bottom:1px solid var(--ink-06);align-items:start}.ap-n{font-family:var(--serif-c);font-size:56px;font-weight:300;font-style:italic;color:var(--gold-v);opacity:.4;line-height:1}.ap-title{font-family:var(--serif);font-size:28px;font-weight:700;color:var(--ink);margin-bottom:14px}#proj-pg{padding:160px 0 120px}.proj-big-h{font-family:var(--serif);font-size:clamp(60px, 9vw, 120px);font-weight:900;line-height:.92;color:var(--ink);margin-bottom:80px;letter-spacing:-.03em;text-wrap:balance}.proj-big-h em{font-style:italic;font-weight:400;color:var(--gold-v)}.proj-full-list{border-top:1px solid var(--ink-06)}.pfl-item{display:grid;grid-template-columns:72px 1fr 220px;gap:36px;padding:52px 0;border-bottom:1px solid var(--ink-06);cursor:pointer;position:relative;overflow:hidden}.pfl-item::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold-v);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16, 1, .3, 1)}.pfl-item:hover::before{transform:scaleX(1)}.pfl-content{transition:transform .4s cubic-bezier(.4, 0, .2, 1)}.pfl-item:hover .pfl-content{transform:translateX(18px)}.pfl-n{font-family:var(--serif);font-size:18px;color:var(--gold-v);padding-top:6px}.pfl-t{font-family:var(--serif);font-size:clamp(26px, 3vw, 44px);font-weight:700;color:var(--ink);margin-bottom:8px;transition:color .3s;line-height:1}.pfl-item:hover .pfl-t{color:var(--gold-v)}.pfl-cat{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-40)}.pfl-meta{text-align:right;display:flex;flex-direction:column;justify-content:center;gap:6px}.pfl-meta-v{font-family:var(--serif);font-size:18px;color:var(--ink-40)}.pfl-meta-l{font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-15)}#services-pg{padding:160px 0 0}.sv-page-big-h{font-family:var(--serif);font-size:clamp(60px, 9vw, 120px);font-weight:900;line-height:.92;letter-spacing:-.03em;color:var(--ink);margin-bottom:16px;text-wrap:balance}.sv-page-big-h em{font-style:italic;font-weight:400;color:var(--gold-v)}.sv-page-intro{font-size:18px;font-weight:300;line-height:1.7;color:var(--ink-70);max-width:560px;margin-bottom:72px;text-wrap:balance}.sv-full-grid{display:grid;grid-template-columns:1fr 1fr;gap:3px;background:var(--ink-06);margin-bottom:3px}.sv-full-card{background:var(--bg);padding:72px 60px;position:relative;overflow:hidden;transition:background .5s;cursor:pointer}.sv-full-card:hover{background:var(--bg-warm)}.sv-fc-pat{position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23CCC21C' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='M12 12 Q24 4 36 12 Q44 24 36 36 Q24 44 12 36 Q4 24 12 12Z'/%3E%3Cpath d='M16 16 Q24 10 32 16 Q38 24 32 32 Q24 38 16 32 Q10 24 16 16Z'/%3E%3C/g%3E%3C/svg%3E");background-size:48px 48px;opacity:0;transition:opacity .5s}.sv-full-card:hover .sv-fc-pat{opacity:.04}.sv-fc-num{font-family:var(--serif-c);font-size:120px;font-weight:300;font-style:italic;color:transparent;-webkit-text-stroke:1px var(--ink-06);position:absolute;top:-10px;right:20px;line-height:1;pointer-events:none;transition:-webkit-text-stroke-color .4s}.sv-full-card:hover .sv-fc-num{-webkit-text-stroke-color:rgba(204,194,28,0.14)}.sv-fc-icon{width:60px;height:60px;margin-bottom:36px;position:relative}.sv-fc-icon-bg{position:absolute;inset:0;border-radius:50%;background:var(--gold-10);transition:background .4s}.sv-full-card:hover .sv-fc-icon-bg{background:var(--gold-20)}.sv-fc-icon svg{width:100%;height:100%;position:relative;z-index:1;color:var(--gold-v)}.sv-fc-title{font-family:var(--serif);font-size:clamp(26px, 2.5vw, 36px);font-weight:700;color:var(--ink);margin-bottom:18px;line-height:1.1;transition:color .3s}.sv-full-card:hover .sv-fc-title{color:var(--gold-v)}.sv-fc-desc{font-size:14px;font-weight:300;line-height:1.85;color:var(--ink-70);margin-bottom:32px;max-width:440px}.sv-fc-list{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:36px}.sv-fc-list li{display:flex;align-items:flex-start;gap:12px;font-size:13px;font-weight:300;color:var(--ink-70);line-height:1.5}.sv-fc-list li::before{content:"";width:18px;height:1.5px;background:var(--gold-v);flex-shrink:0;margin-top:9px}.sv-fc-more{display:inline-flex;align-items:center;gap:10px;font-size:10px;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--gold-v);border-bottom:1px solid var(--gold-20);padding-bottom:3px;transition:gap .3s,border-color .3s}.sv-full-card:hover .sv-fc-more{gap:18px;border-color:var(--gold-40)}.sv-fc-bar{position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--gold-v);clip-path:inset(0 100% 0 0);transition:clip-path .7s cubic-bezier(.4, 0, .2, 1)}.sv-full-card:hover .sv-fc-bar{clip-path:inset(0 0% 0 0)}.sv-process{padding:120px 0;background:var(--bg-deep);position:relative;overflow:hidden}.sv-process-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:72px;position:relative}.sv-process-grid::before{content:"";position:absolute;top:28px;left:10%;right:10%;height:1px;background:linear-gradient(90deg,transparent,rgba(204,194,28,.3) 20%,rgba(204,194,28,.3) 80%,transparent)}.sv-step{padding:0 20px;text-align:center}.sv-step-num{width:56px;height:56px;border-radius:50%;border:1px solid rgba(204,194,28,.5);display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:18px;color:var(--gold-v);margin:0 auto 24px;background:var(--bg-deep);position:relative;z-index:1;transition:background .4s,transform .4s}.sv-step:hover .sv-step-num{background:rgba(204,194,28,.12);transform:scale(1.15)}.sv-step-title{font-family:var(--serif);font-size:16px;font-weight:700;color:var(--ink-70);margin-bottom:10px}.sv-step-body{font-size:12px;font-weight:300;line-height:1.7;color:var(--ink-40)}#career-pg{padding:160px 0 120px}.career-big-h{font-family:var(--serif);font-size:clamp(60px, 9vw, 120px);font-weight:900;line-height:.92;color:var(--ink);margin-bottom:80px;letter-spacing:-.03em;text-wrap:balance}.career-big-h em{font-style:italic;font-weight:400;color:var(--gold-v)}.culture-row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:3px;background:var(--ink-06);margin-bottom:100px}.cult-card{background:var(--bg);padding:52px 40px;transition:background .4s}.cult-card:hover{background:var(--bg-warm)}.cult-n{font-family:var(--serif-c);font-size:56px;font-weight:300;font-style:italic;color:var(--gold-v);opacity:.3;margin-bottom:24px}.cult-title{font-family:var(--serif);font-size:24px;font-weight:700;color:var(--ink);margin-bottom:12px}.roles-list{border-top:1px solid var(--ink-06)}.role-row{display:grid;grid-template-columns:1fr 200px 140px 120px;gap:32px;align-items:center;padding:36px 0;border-bottom:1px solid var(--ink-06);cursor:pointer;position:relative;overflow:hidden}.role-row::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold-v);transform:scaleX(0);transform-origin:left;transition:transform .5s cubic-bezier(.16, 1, .3, 1)}.role-row:hover::before{transform:scaleX(1)}.role-content{transition:transform .4s cubic-bezier(.4, 0, .2, 1)}.role-row:hover .role-content{transform:translateX(18px)}.role-t{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--ink);transition:color .3s}.role-row:hover .role-t{color:var(--gold-v)}.role-dept{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-40)}.role-type{font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold-v)}.role-apply{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-40);border-bottom:1px solid var(--ink-15);padding-bottom:3px;text-align:right;display:block;transition:color .3s,border-color .3s}.role-row:hover .role-apply{color:var(--gold-v);border-color:var(--gold-40)}.open-app{padding:80px 0;text-align:center;border-top:1px solid var(--ink-06);margin-top:60px}#contact-pg{padding:160px 0 120px}.contact-big-h{font-family:var(--serif);font-size:clamp(60px, 9vw, 120px);font-weight:900;line-height:.92;color:var(--ink);margin-bottom:80px;letter-spacing:-.03em;text-wrap:balance}.contact-big-h em{font-style:italic;font-weight:400;color:var(--gold-v)}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start;padding-top:56px;border-top:1px solid var(--ink-06)}.c-email-big{font-family:var(--serif);font-size:clamp(18px, 2vw, 26px);font-weight:400;color:var(--ink);margin:12px 0 40px}.c-email-big a:hover{color:var(--gold-v)}.form-progress{display:flex;align-items:center;gap:14px;margin-bottom:44px}.fp-step{display:flex;align-items:center;gap:8px;font-size:9px;letter-spacing:.25em;text-transform:uppercase}.fp-num{width:26px;height:26px;border-radius:50%;border:1px solid var(--ink-15);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;color:var(--ink-40);transition:all .4s}.fp-num.active{border-color:var(--gold-v);color:var(--gold-v);background:var(--gold-10)}.fp-num.done{border-color:var(--gold-v);background:var(--gold-v);color:var(--bg-deep)}.fp-label{color:var(--ink-label);transition:color .4s}.fp-label.active{color:var(--ink-70)}.fp-line{flex:1;height:1px;background:var(--ink-06);transition:background .4s}.fp-line.done{background:var(--gold-v)}.f-step{display:block}.f-step.active{display:block;animation:stepIn .4s cubic-bezier(.16,1,.3,1) both}@keyframes stepIn{from{opacity:0;transform:translateX(16px)}to{opacity:1;transform:none}}.c-field{position:relative;margin-bottom:36px}.c-float-label{position:absolute;top:14px;left:0;font-size:9px;letter-spacing:.28em;text-transform:uppercase;color:var(--ink-label);transition:all .3s cubic-bezier(.4, 0, .2, 1);pointer-events:none}.c-float-input{width:100%;background:0 0;border:none;border-bottom:1px solid var(--ink-15);padding:14px 0;color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:300;outline:0;transition:border-color .3s}.c-float-input::placeholder{color:transparent}.c-float-input:focus{border-color:var(--gold-v)}.c-float-input:focus~.c-float-label,.c-float-input:not(:placeholder-shown)~.c-float-label{top:-12px;font-size:9.5px;color:var(--gold-v);letter-spacing:.3em}.c-textarea-f{width:100%;background:0 0;border:none;border-bottom:1px solid var(--ink-15);padding:14px 0;color:var(--ink);font-family:var(--sans);font-size:15px;font-weight:300;outline:0;resize:none;min-height:130px;transition:border-color .3s}.c-textarea-f:focus{border-color:var(--gold-v)}.form-nav{display:flex;align-items:center;justify-content:space-between;margin-top:10px}.f-btn-next{background:var(--gold-v);color:var(--bg-deep);font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.22em;text-transform:uppercase;padding:16px 44px;border:none;cursor:pointer;transition:transform .3s cubic-bezier(.23, 1, .32, 1),background .3s}.f-btn-next:hover{transform:translateY(-2px);background:var(--gold)}.f-btn-back{font-size:10px;font-weight:400;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-40);border:none;background:0 0;cursor:pointer;border-bottom:1px solid var(--ink-15);padding-bottom:3px;transition:color .3s}.f-btn-back:hover{color:var(--ink)}footer{background:var(--bg-deep);border-top:1px solid var(--ink-06)}.ft-top{max-width:1440px;margin:0 auto;padding:80px 72px 60px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:72px;border-bottom:1px solid var(--ink-06);align-items:start}.ft-logo{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.5em;color:var(--ink);margin-bottom:18px}.ft-logo b{color:var(--gold-v)}.ft-tagline{font-size:13px;font-weight:300;line-height:1.7;color:var(--ink-40);max-width:260px;margin-bottom:28px}.ft-contact a{font-size:12px;font-weight:300;letter-spacing:.08em;color:var(--gold-v);display:block;margin-bottom:8px;transition:opacity .3s}.ft-contact a:hover{opacity:.65}.ft-col-title{font-size:9px;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--gold-v);margin-bottom:22px}.ft-col-links{display:flex;flex-direction:column;gap:12px}.ft-col-links a{font-size:13px;font-weight:300;color:var(--ink-40);transition:color .3s}.ft-col-links a:hover{color:var(--ink)}.ft-bottom{max-width:1440px;margin:0 auto;padding:22px 72px;display:flex;align-items:center;justify-content:space-between;gap:24px}.ft-copy{font-size:10px;color:var(--ink-label)}.ft-social{display:flex;gap:18px}.ft-social a{font-size:9px;letter-spacing:.22em;text-transform:uppercase;color:var(--ink-label);transition:color .3s}.ft-social a:hover{color:var(--gold-v)}@media (max-width:1100px){.about-intro-row,.ap-grid,.contact-grid{grid-template-columns:1fr}.sv-grid{grid-template-columns:1fr 1fr}.sv-full-grid{grid-template-columns:1fr}.exp-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:auto}.ec-span{grid-row:auto}.culture-row,.stmt-cols{grid-template-columns:1fr 1fr}.pj-row{grid-template-columns:56px 1fr 52px}.pj-stats{display:none}.pfl-item{grid-template-columns:56px 1fr}.pfl-meta{display:none}.role-row{grid-template-columns:1fr 120px}.role-dept,.role-type{display:none}.ft-top{grid-template-columns:1fr 1fr;gap:48px}.sv-process-grid{grid-template-columns:1fr 1fr 1fr;gap:40px}.sv-process-grid::before{display:none}}@media (max-width:768px){.nav-in,.wrap{padding-left:28px;padding-right:28px}.hero-scroll{left:28px}.ft-top{padding-left:28px;padding-right:28px}.ft-bottom{padding-left:28px;padding-right:28px}}@media (max-width:600px){.hero-num-3d,.hfb-2,.hfb-3{display:none}.culture-row,.stmt-cols,.sv-grid,.values-grid{grid-template-columns:1fr}.approach-row{grid-template-columns:1fr;gap:14px}.hero-bottom{flex-direction:column;align-items:flex-start;gap:28px}.hero-actions{flex-direction:column;align-items:flex-start}.exp-mosaic{display:flex;flex-direction:column}.exp-cell{min-height:200px}.cta-btns{flex-direction:column;align-items:center}.ft-top{grid-template-columns:1fr;gap:36px}.ft-bottom{flex-direction:column;gap:14px;text-align:center}.sv-process-grid{grid-template-columns:1fr 1fr}}#clients{padding:100px 0;background:var(--bg-deep);position:relative;overflow:hidden}#clients .bp{opacity:.06}.clients-head{text-align:center;margin-bottom:64px}.clients-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:24px;padding:24px;max-width:1400px;margin:0 auto}@media (max-width:1100px){.clients-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:20px}}@media (max-width:768px){.clients-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:16px}}@media (max-width:600px){.clients-grid{grid-template-columns:repeat(2,1fr);gap:12px;padding:16px}.client-item{padding:20px 12px;min-height:90px}.client-item img{height:56px!important}}.client-item{background:0 0;padding:32px 24px;display:flex;align-items:center;justify-content:center;position:relative;overflow:visible;min-height:120px;border-radius:8px}.client-item img{max-width:100%;height:auto;transform:scale(1)}.client-name{font-family:Norsal,"DM Sans",system-ui,sans-serif;font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-40);transition:color .4s;text-align:center;line-height:1.4}.form-h3{font-family:var(--serif);font-size:32px;font-weight:700;color:var(--ink);margin-bottom:24px}html[dir=rtl]{direction:rtl}html[dir=rtl] body{font-family:var(--sans);letter-spacing:0}html[dir=rtl] .about-big-h,html[dir=rtl] .career-big-h,html[dir=rtl] .contact-big-h,html[dir=rtl] .form-h3,html[dir=rtl] .hero-h1,html[dir=rtl] .proj-big-h,html[dir=rtl] .sec-h2,html[dir=rtl] .stmt-big,html[dir=rtl] .sv-page-big-h{font-family:Norsal,var(--serif);letter-spacing:0}html[dir=rtl] .ft-top,html[dir=rtl] .mob-drawer-inner,html[dir=rtl] .n-links,html[dir=rtl] .sv-fc-list li{text-align:right}html[dir=rtl] .sv-fc-list li::before{margin-left:12px;margin-right:0}html[dir=rtl] .pfl-content,html[dir=rtl] .pj-content,html[dir=rtl] .role-content{transform-origin:right}html[dir=rtl] .pfl-item:hover .pfl-content,html[dir=rtl] .pj-row:hover .pj-content,html[dir=rtl] .role-row:hover .role-content{transform:translateX(-18px)}html[dir=rtl] .btn-cta::before,html[dir=rtl] .btn-primary::before{transform:translateX(101%)}html[dir=rtl] .btn-cta:hover::before,html[dir=rtl] .btn-primary:hover::before{transform:none}html[dir=rtl] .sv-bar,html[dir=rtl] .sv-fc-bar{clip-path:inset(0 0 0 100%)}html[dir=rtl] .sv-card:hover .sv-bar,html[dir=rtl] .sv-full-card:hover .sv-fc-bar{clip-path:inset(0 0 0 0%)}html[dir=rtl] .c-float-label{left:auto;right:0}html[dir=rtl] .contact-grid{text-align:right}html[dir=rtl] .pj-stats{text-align:left}html[dir=rtl] .role-apply{text-align:left}html[dir=rtl] .pfl-meta{text-align:left}[dir=rtl]{text-align:right}[lang=ar] body{font-family:var(--sans);line-height:1.6}[dir=rtl] .mob-drawer{right:auto;left:0;transform:translateX(-100%);border-left:none;border-right:1px solid var(--ink-06)}[dir=rtl] .mob-drawer.open{transform:none}[dir=rtl] .mob-drawer-accent{left:auto;right:0}[dir=rtl] .btn-cta,[dir=rtl] .btn-outline,[dir=rtl] .btn-primary,[dir=rtl] .mob-links a,[dir=rtl] .n-links a,[dir=rtl] .sec-tag{letter-spacing:0!important}[dir=rtl] .hero-num-3d{right:auto;left:6%}[dir=rtl] .stat-num{flex-direction:row-reverse;justify-content:flex-end}[dir=rtl] .pj-row{flex-direction:row-reverse}[dir=rtl] .sd{right:auto;left:28px}[dir=rtl] .btn-primary::before{transform:translateX(101%)}[dir=rtl] .btn-primary:hover::before{transform:none}[dir=rtl] .pp-inner{text-align:right}@media (max-width:768px){[dir=rtl] .nav-in{flex-direction:row-reverse}}body{background:var(--bg)}@media (hover:hover) and (pointer:fine){body.cursor-ready{cursor:none}}main{display:block}.pg{contain:layout style}#about-pg,#about-prev,#career-pg,#clients,#contact-pg,#cta-banner,#exp,#hero,#proj-pg,#proj-prev,#services,#services-pg,#statement,.sv-process{content-visibility:auto;contain-intrinsic-size:1px 960px}#about-pg,#about-prev,#clients,#contact-pg,#cta-banner,#exp,#hero,#proj-pg,#proj-prev,#services,#services-pg,#statement,.sv-process{isolation:isolate}nav.hidden{transform:translateY(-110%)}nav::after{content:"";position:absolute;inset:auto 0 0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-20),transparent);opacity:0;transition:opacity .4s var(--e2)}nav.stuck::after{opacity:1}.approach-row,.btn-cta,.btn-cta-ghost,.btn-primary,.exp-cell,.faq-item,.n-logo,.pfl-item,.pj-row,.quote-card,.role-row,.stat-box,.sv-card,.sv-full-card,.val-card{will-change:transform}.btn-cta,.btn-primary{box-shadow:0 18px 40px rgba(0,0,0,.28),0 0 0 1px rgba(204,194,28,.08) inset}.btn-cta:hover,.btn-primary:hover{transform:translateY(-4px) scale(1.03)}.btn-cta-ghost,.btn-outline,.link-teal{transition:color .3s var(--e2),border-color .3s var(--e2),transform .3s var(--e2)}.btn-cta-ghost:hover,.btn-outline:hover,.link-teal:hover{transform:translateY(-2px)}#about-prev::before,#clients::before,#contact-pg::before,#cta-banner::before,#exp::before,#proj-prev::before,#services::before,#statement::before{content:"";position:absolute;inset:0;background:0 0;pointer-events:none;z-index:0}#hero::before{content:"";position:absolute;inset:0;background:0 0;pointer-events:none;z-index:0}.cta-inner,.wrap{position:relative;z-index:1}#hero{padding:140px 0 110px}.hero-content{padding-top:48px}.hero-h1{max-width:12ch;text-wrap:balance}.hero-bottom{max-width:1120px;padding:28px 32px;border:1px solid rgba(227,238,240,.12);background:linear-gradient(180deg,rgba(10,70,80,.28),rgba(5,50,60,.45));backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);box-shadow:0 24px 60px rgba(0,0,0,.18)}.hero-sub{max-width:520px;font-size:18px;line-height:1.8}.hero-actions{gap:18px}.mq-strip{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.clients-grid{gap:18px;padding:12px 0 0}.client-item{min-height:132px;border:1px solid transparent;background:linear-gradient(180deg,rgba(227,238,240,.02),rgba(227,238,240,.01));backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);box-shadow:inset 0 0 0 1px rgba(227,238,240,.03)}.approach-row,.exp-cell,.faq-item,.pfl-item,.pj-row,.quote-card,.role-row,.stat-box,.sv-card,.sv-full-card,.val-card{border-radius:18px}.exp-cell,.faq-item,.quote-card,.stat-box{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.stats-grid{gap:2px;background:var(--ink-06);padding:2px;border-radius:24px}.stat-box:first-child,.stat-box:nth-child(2),.stat-box:nth-child(3){border-right:none;border-bottom:none}.stat-box:nth-child(2),.stat-box:nth-child(4){border-right:1px solid var(--ink-06)}.quote-card{margin-top:18px;background:linear-gradient(180deg,rgba(5,60,65,.6),rgba(2,31,34,.84))}.sv-full-grid,.sv-grid{gap:18px;background:0 0}.sv-card{border:1px solid rgba(227,238,240,.06);background:linear-gradient(180deg,rgba(5,60,65,.64),rgba(4,53,58,.92))}.sv-card:hover{transform:translateY(-6px) scale(1.01)}.sv-full-card{border-radius:22px;background:linear-gradient(180deg,rgba(5,60,65,.5),rgba(2,31,34,.92));border:1px solid rgba(227,238,240,.06)}.stmt-cols{gap:42px}.exp-mosaic{gap:18px}.exp-cell{border:1px solid rgba(227,238,240,.07)}.ec-body{padding:30px;background:linear-gradient(180deg,transparent,rgba(2,31,34,.9))}.pj-list,.proj-full-list,.roles-list{display:grid;gap:16px;border-top:none}.pfl-item,.pj-row,.role-row{padding:30px 26px;border:1px solid rgba(227,238,240,.06);background:linear-gradient(180deg,rgba(227,238,240,.02),rgba(2,31,34,.4))}.pj-row::before,.role-row::before{top:14px;bottom:14px;border-radius:999px}#proj-preview{border-radius:18px;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}#cta-banner{padding:132px 0}.cta-inner{max-width:1080px}.cta-sub{font-size:17px;line-height:1.85}#contact-pg .contact-grid{margin-bottom:90px}.faq-block{padding-top:28px;border-top:1px solid var(--ink-06)}.faq-head{margin-bottom:32px}.faq-list{display:grid;gap:14px}.faq-item{border:1px solid rgba(227,238,240,.08);background:linear-gradient(180deg,rgba(5,60,65,.34),rgba(2,31,34,.62));overflow:hidden}.faq-item summary{list-style:none;cursor:pointer;padding:24px 28px;font-family:var(--serif);font-size:clamp(20px, 2vw, 28px);font-weight:700;color:var(--ink);display:flex;align-items:center;justify-content:space-between;gap:20px}.faq-item summary::-webkit-details-marker{display:none}.faq-item summary::after{content:"+";color:var(--gold-v);font-family:var(--sans);font-size:24px;line-height:1;transition:transform .3s var(--e2)}.faq-item[open] summary::after{transform:rotate(45deg)}.faq-item p{padding:0 28px 26px;font-size:15px;line-height:1.85;color:var(--ink-70);max-width:78ch}footer{background:linear-gradient(180deg,rgba(2,31,34,.92),#021f22),var(--bg-deep)}@media (max-width:1100px){.contact-grid,.hero-bottom{gap:40px}.pfl-item,.pj-row,.role-row{padding:24px 22px}}@media (max-width:768px){#hero{padding:128px 0 90px}.hero-bottom{padding:24px;flex-direction:column;align-items:flex-start}.hero-actions{width:100%;flex-direction:column;align-items:stretch}.btn-cta,.btn-primary{justify-content:center}.exp-mosaic,.faq-list,.pj-list,.proj-full-list,.roles-list,.sv-full-grid,.sv-grid{gap:14px}.faq-item p,.faq-item summary{padding-left:22px;padding-right:22px}}@media (max-width:600px){.stats-grid{grid-template-columns:1fr}.stat-box:first-child,.stat-box:nth-child(2),.stat-box:nth-child(3),.stat-box:nth-child(4){border-right:1px solid var(--ink-06);border-bottom:1px solid var(--ink-06)}.exp-cell,.faq-item,.pfl-item,.pj-row,.quote-card,.role-row,.stat-box,.sv-card,.sv-full-card{border-radius:16px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,::after,::before{animation-duration:0s!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}body{cursor:auto}#cr,#cr-trail-wrap,#crr,#proj-preview,#sec-dots{display:none!important}}.val-title{transition:color .3s var(--e2)}.val-card:hover .val-title{color:var(--gold-v)}.cult-title{transition:color .3s var(--e2)}.cult-card:hover .cult-title{color:var(--gold-v)}.ap-title{transition:color .3s var(--e2)}.approach-row:hover .ap-title{color:var(--gold-v)}.sv-step-title{transition:color .3s var(--e2)}.sv-step:hover .sv-step-title{color:var(--ink)}.sv-step-body{transition:color .3s var(--e2)}.sv-step:hover .sv-step-body{color:var(--ink-70)}.approach-row{transition:background .4s!important}.approach-row:hover{background:rgba(204,194,28,.025)}.val-card{border:1px solid transparent;transition:background .4s,border-color .4s!important}.val-card:hover{border-color:rgba(204,194,28,.18)}.cult-card{border:1px solid transparent;transition:background .4s,border-color .4s!important}.cult-card:hover{border-color:rgba(204,194,28,.18)}.stat-box{overflow:hidden}.stat-box::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent,var(--gold-v),transparent);transform:scaleX(0);transition:transform .55s var(--e1);pointer-events:none}.stat-box:hover::after{transform:scaleX(1)}.n-cta{border-radius:3px!important}.quote-card{border-top:1px solid var(--gold-20)!important}.faq-item{position:relative}.faq-item::before{content:"";position:absolute;left:0;right:0;bottom:-1px;height:2px;background:var(--gold-v);transform:scaleX(0);transform-origin:left;transition:transform .4s var(--e1);z-index:2}.faq-item[open]::before{transform:scaleX(1)}.c-email-big a{position:relative;display:inline-block;transition:color .3s}.c-email-big a::after{content:"";position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--gold-v);transition:width .45s var(--e1)}.c-email-big a:hover{color:var(--gold-v)}.c-email-big a:hover::after{width:100%}.ft-col-links a{position:relative;display:inline-block}.ft-col-links a::after{content:"";position:absolute;bottom:-1px;left:0;width:0;height:1px;background:var(--gold-v);transition:width .35s var(--e1)}.ft-col-links a:hover::after{width:100%}.c-float-input:focus{border-bottom-color:var(--gold-v);box-shadow:0 1px 0 0 var(--gold-v)}.c-textarea-f:focus{border-bottom-color:var(--gold-v);box-shadow:0 1px 0 0 var(--gold-v)}.role-apply{padding:8px 20px!important;border:1px solid var(--ink-15)!important;border-radius:3px!important;display:inline-block!important;text-align:center!important;transition:all .3s var(--e1)!important}.role-row:hover .role-apply{background:var(--gold-10)!important;border-color:var(--gold-40)!important;color:var(--gold-v)!important}.open-app{background:linear-gradient(180deg,transparent,rgba(227,238,240,.02))}@media (max-width:768px){.val-card{padding:32px}.cult-card{padding:40px 32px}.role-apply{padding:6px 14px!important}.c-email-big{font-size:18px}.form-h3{font-size:24px}.approach-row{padding:36px 0!important}.open-app{padding:60px 0 40px}}[dir=rtl] .c-email-big a::after,[dir=rtl] .ft-col-links a::after{left:auto;right:0}[dir=rtl] .faq-item::before{left:0;right:0;transform-origin:right}[dir=rtl] .stat-box::after{transform-origin:right}.sec-h2.rv{transform:translateY(52px) skewY(1.5deg);transition:opacity .95s cubic-bezier(.16, 1, .3, 1),transform .95s cubic-bezier(.16, 1, .3, 1)}.sec-h2.rv.vis{opacity:1;transform:none}@media (min-width:992px){.btn-primary[data-mag]{transition:box-shadow .4s ease}.btn-primary[data-mag]:hover{transform:none}}.hero-h1{perspective:800px}.hero-h1-l1,.hero-h1-l2{display:block;transform-style:preserve-3d;will-change:transform,opacity}.exp-cell[style*=background-image]{will-change:background-position}#hero .bp[style*=background-image]{will-change:transform;transform-origin:center center}.sec-tag{will-change:transform,opacity}.stmt-big{will-change:text-shadow}.pg.p-out{animation:pOut 220ms cubic-bezier(.55,0,1,.45) both}@keyframes pOut{from{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-16px) scale(.985)}}.n-logo{background:0 0!important;border:none!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;border-radius:0!important;overflow:visible!important}.n-logo::before{display:none!important}.n-logo:hover{background:0 0!important;border-color:transparent!important;box-shadow:none!important;transform:scale(1.03)!important}.n-logo img{filter:none!important}#clients{background:#fff;padding:120px 0}#clients .bp{display:none}#clients .sec-tag{color:#0a0a0a}#clients .sec-tag::before{background:#0a0a0a}#clients .sec-h2{color:#0a0a0a}#clients .sec-h2 em{color:#0a0a0a;font-weight:300}#clients .body-p{color:rgba(10,10,10,.55)}.clients-featured{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid rgba(10,10,10,.1);border-radius:16px 16px 0 0;overflow:hidden}.client-feat-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:44px 28px;border-right:1px solid rgba(10,10,10,.1);background:#fff;transition:background .3s;gap:16px}.client-feat-item:last-child{border-right:none}.client-feat-item:hover{background:#f8f8f8}.client-feat-item img{width:auto;height:88px;max-width:200px;object-fit:contain;display:block}.client-feat-name{font-size:10px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:#0a0a0a;text-align:center}.clients-supporting{display:flex;align-items:stretch;border:1px solid rgba(10,10,10,.1);border-top:none;border-radius:0 0 16px 16px;overflow:hidden}.client-supp-item{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:28px 16px;border-right:1px solid rgba(10,10,10,.08);flex:1;background:#fafafa;transition:background .3s;gap:10px}.client-supp-item:last-child{border-right:none}.client-supp-item:hover{background:#f3f3f3}.client-supp-item img{width:auto;height:68px;max-width:170px;object-fit:contain;display:block;opacity:.7;transition:opacity .3s}.client-supp-item:hover img{opacity:1}.client-supp-name{font-size:9px;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:rgba(10,10,10,.45);text-align:center}@media (max-width:900px){.clients-featured{grid-template-columns:repeat(2,1fr);border-radius:16px 16px 0 0}.client-feat-item:nth-child(2){border-right:none}.client-feat-item:first-child,.client-feat-item:nth-child(2){border-bottom:1px solid rgba(10,10,10,.1)}.clients-supporting{flex-wrap:wrap}.client-supp-item{flex:0 0 33.333%}.client-supp-item:nth-child(3n){border-right:none}.client-supp-item:first-child,.client-supp-item:nth-child(2),.client-supp-item:nth-child(3){border-bottom:1px solid rgba(10,10,10,.08)}}@media (max-width:600px){.client-feat-item{padding:32px 14px;gap:12px}.client-feat-item img{height:66px;max-width:150px}.clients-supporting{flex-wrap:wrap}.client-supp-item{flex:0 0 50%;padding:22px 10px}.client-supp-item img{height:52px;max-width:130px}.client-supp-item:nth-child(2n){border-right:none}.client-supp-item:nth-child(3n){border-right:revert}}#services{position:relative}#services::after{content:"";position:absolute;inset:0;background:0 0;pointer-events:none;z-index:0}#services .wrap{position:relative;z-index:1}#services .sv-head{position:relative;z-index:1}.ft-top .logo-premium{margin-bottom:20px}.ft-bottom{align-items:baseline}.ft-credit{margin-top:0!important}.wrap{box-sizing:border-box}.body-p,.sec-h2,.sec-tag{max-width:100%}.sv-head{align-items:flex-end}.pj-head,.sv-head{display:flex;justify-content:space-between;margin-bottom:56px;gap:40px}.clients-head,.pj-head>div,.sv-head>div{flex-shrink:0}.cta-inner{text-align:left}.cta-btns{display:flex;gap:16px;flex-wrap:wrap}.ft-bottom{display:flex;align-items:center;flex-wrap:wrap;gap:16px}.ft-copy{flex:1}.ft-social{display:flex;gap:16px}.ft-credit{flex-basis:100%;text-align:center;padding-bottom:4px}#clients{background:var(--bg-deep)!important;padding:120px 0}#clients .bp{display:block!important;opacity:.05}#clients .sec-tag{color:var(--gold-v)!important}#clients .sec-tag::before{background:var(--gold-v)!important}#clients .sec-h2{color:var(--ink)!important}#clients .sec-h2 em{color:var(--gold-v)!important;font-weight:400!important}#clients .body-p{color:var(--ink-70)!important}.clients-featured{border-color:var(--ink-06)!important}.client-feat-item{background:rgba(3,43,46,.55)!important;border-right-color:var(--ink-06)!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important}.client-feat-item:hover{background:rgba(5,60,65,.85)!important}.client-feat-name{color:var(--ink-40)!important}.client-feat-item img{filter:brightness(1.15)!important;opacity:.9}.client-feat-item:hover img{opacity:1}.clients-supporting{border-color:var(--ink-06)!important}.client-supp-item{background:rgba(2,31,34,.45)!important;border-right-color:var(--ink-06)!important}.client-supp-item:hover{background:rgba(5,60,65,.65)!important}.client-supp-item img{filter:brightness(1.1)!important;opacity:.55!important}.client-supp-item:hover img{opacity:1!important}.client-supp-name{color:var(--ink-40)!important}@media (max-width:900px){.client-feat-item:first-child,.client-feat-item:nth-child(2){border-bottom-color:var(--ink-06)!important}}#services .sv-card{background:var(--bg-panel)}.sec-h2{letter-spacing:-.01em}.about-big-h,.career-big-h,.contact-big-h,.proj-big-h,.sv-page-big-h{letter-spacing:-.03em}.body-p{line-height:1.85}.sec-tag{margin-bottom:28px}.sv-fc-desc{line-height:1.85}.cult-card .body-p,.val-card .body-p{line-height:1.75}[dir=rtl] .sec-tag{flex-direction:row-reverse}[dir=rtl] .hero-eyebrow{flex-direction:row-reverse}[dir=rtl] .pfl-item::before,[dir=rtl] .pj-row::before{left:auto;right:0}[dir=rtl] .pfl-item:hover .pfl-content,[dir=rtl] .pj-row:hover .pj-content{transform:translateX(-18px)}[dir=rtl] .mob-drawer{right:auto;left:0;transform:translateX(-100%)}[dir=rtl] .mob-drawer.open{transform:none}[dir=rtl] .mob-drawer-accent{left:auto;right:0}[dir=rtl] .footer-col-links,[dir=rtl] .ft-contact{text-align:right}[dir=rtl] .n-cta{margin-right:0;margin-left:16px}[dir=rtl] .pj-stats{text-align:left}[dir=rtl] .pfl-meta{text-align:left}[dir=rtl] .ap-n{text-align:right}[dir=rtl] .hero-scroll{left:auto;right:72px}[dir=rtl] .pj-arrow svg{transform:scaleX(-1)}.ft-top{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:56px}footer .logo-premium{margin-bottom:20px}footer .logo-premium img{height:72px!important;display:block}.ft-tagline{max-width:230px}.ft-bottom{flex-wrap:nowrap;gap:24px;padding:18px 72px}.ft-copy{flex:1;white-space:nowrap}.ft-credit{flex-basis:auto;white-space:nowrap;margin-top:0!important}.ft-social{gap:20px}#about-prev{padding:140px 0}#statement{padding:120px 0}#exp{padding:140px 0}#proj-prev{padding:140px 0}#cta-banner{padding:140px 0}.sv-head{margin-bottom:64px}.pj-head{margin-bottom:64px}.clients-head{margin-bottom:72px}.sv-card{padding:48px 36px}.sv-full-card{padding:64px 52px}.sv-full-card:hover{background:var(--bg-warm)}.val-card:hover{background:var(--bg-warm)}.cult-card:hover{background:var(--bg-warm)}@media (max-width:900px){.sv-full-grid{grid-template-columns:1fr}.about-intro-row{grid-template-columns:1fr;gap:48px}.contact-grid{grid-template-columns:1fr;gap:48px}}@media (max-width:768px){.ft-top{grid-template-columns:1fr 1fr;gap:40px;padding:48px 28px 40px}.ft-bottom{padding:16px 28px;flex-wrap:wrap;gap:12px}.ft-credit{flex-basis:100%;text-align:center}.ft-copy{flex:0 0 100%}[dir=rtl] .hero-scroll{left:auto;right:28px}}@media (max-width:480px){.stmt-cols{grid-template-columns:1fr;gap:32px}.values-grid{grid-template-columns:1fr}.sv-process-grid{grid-template-columns:1fr 1fr}.role-dept,.role-type{display:none}}.hero-content{display:flex;align-items:flex-end;gap:72px}.hero-left{flex:1;min-width:0}.hero-right{width:300px;flex-shrink:0;animation:heroRightIn .9s cubic-bezier(.16,1,.3,1) 1s both}@keyframes heroRightIn{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}[dir=rtl] .hero-right{animation-name:heroRightInRtl}@keyframes heroRightInRtl{from{opacity:0;transform:translateX(-40px)}to{opacity:1;transform:translateX(0)}}.hero-stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.hero-stat-card{padding:24px 20px;background:rgba(255,255,255,.05);border:1px solid rgba(227,238,240,.1);border-radius:14px;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);transition:background .3s,border-color .3s,transform .3s}.hero-stat-card:hover{background:rgba(255,255,255,.09);border-color:rgba(204,194,28,.28);transform:translateY(-3px)}.hero-stat-num{font-family:var(--serif);font-size:38px;font-weight:700;color:var(--gold-v);line-height:1;margin-bottom:10px;letter-spacing:-.02em}.hero-stat-lbl{font-size:10px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-40);line-height:1.4}.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;padding:8px 18px 8px 12px;border:1px solid rgba(204,194,28,.3);border-radius:100px;background:rgba(204,194,28,.06);font-size:10px;letter-spacing:.25em;margin-bottom:36px}.hero-eyebrow::before{display:none}.hero-eyebrow-dot{width:6px;height:6px;border-radius:50%;background:var(--gold-v);flex-shrink:0;animation:eyeDotPulse 2.4s ease-in-out infinite}@keyframes eyeDotPulse{0%,100%{opacity:1;box-shadow:0 0 0 0 rgba(204,194,28,.5)}60%{opacity:.7;box-shadow:0 0 0 5px rgba(204,194,28,0)}}.hero-bottom{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:28px;max-width:100%;background:0 0;border:none;backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:none;padding:0}.hero-sub{max-width:460px}.hero-num-3d{display:none}@media (max-width:960px){.hero-content{gap:48px}.hero-right{width:260px}.hero-stat-num{font-size:30px}}@media (max-width:768px){.hero-content{flex-direction:column;align-items:flex-start;gap:40px}.hero-right{width:100%}.hero-stat-grid{grid-template-columns:repeat(4,1fr);gap:8px}.hero-stat-num{font-size:26px}.hero-stat-card{padding:16px 12px}}@media (max-width:520px){.hero-stat-grid{grid-template-columns:1fr 1fr}.hero-stat-num{font-size:30px}}.client-supp-item{padding:36px 24px}.client-supp-item img{height:68px;max-width:180px}[dir=rtl] .role-row::before{left:auto;right:0}[dir=rtl] .quote-card{border-left:none!important;border-right:none!important}[dir=rtl] .quote-card::before{right:auto;left:20px;content:"\201D"}[dir=rtl] .sv-big-n{right:auto;left:16px}[dir=rtl] .sv-fc-num{right:auto;left:20px}[dir=rtl] .sv-more{transform:translateX(8px)}[dir=rtl] .sv-card:hover .sv-more{transform:none}[dir=rtl] .hero-stat-lbl{letter-spacing:0}.cta-inner{text-align:center!important}[dir=rtl] .cta-inner{text-align:center!important}.cta-btns{justify-content:center!important}[dir=rtl] .n-links a::after{left:auto;right:0;width:0}[dir=rtl] .n-links a.active::after,[dir=rtl] .n-links a:hover::after{width:100%}@keyframes stepInRtl{from{opacity:0;transform:translateX(-16px)}to{opacity:1;transform:none}}[dir=rtl] .f-step.active{animation-name:stepInRtl}[dir=rtl] .stmt-bg-word{right:auto;left:-60px}[dir=rtl] .hero-eyebrow{padding:8px 12px 8px 18px}[dir=rtl] .ft-col-links a::after{left:auto;right:0}[dir=rtl] .c-email-big a::after{left:auto;right:0}[dir=rtl] .faq-item::before{left:0;right:0;transform-origin:right}[dir=rtl] .stat-box::after{background:linear-gradient(270deg,transparent,var(--gold-v),transparent)}[dir=rtl] .pfl-item::before{left:auto;right:0}[dir=rtl] .hero-scroll{left:auto;right:72px}@media (max-width:768px){[dir=rtl] .hero-scroll{left:auto;right:28px}}#about-prev,#exp,#proj-prev,#services{padding:140px 0}#statement{padding:120px 0}#cta-banner{padding:140px 0}#clients{padding:120px 0}.ap-grid{gap:100px}@media (max-width:1100px){.ap-grid{gap:64px}}@media (max-width:768px){[dir=rtl] .cta-btns{flex-direction:column;align-items:center}}.stats-grid{border-radius:20px;overflow:hidden}[dir=rtl] .role-row:hover .role-content{transform:translateX(-18px)}[dir=rtl] .ft-copy{text-align:right}[dir=rtl] .ft-credit{text-align:right}[dir=rtl] .client-feat-item{border-right:none;border-left:1px solid rgba(227,238,240,.06)}[dir=rtl] .client-feat-item:first-child{border-left:1px solid rgba(227,238,240,.06)}[dir=rtl] .client-feat-item:last-child{border-left:none}[dir=rtl] .client-supp-item{border-right:none;border-left:1px solid rgba(227,238,240,.06)}[dir=rtl] .client-supp-item:last-child{border-left:none}.n-logo img{height:44px!important;width:auto!important;object-fit:contain!important;transition:height .3s var(--e2)}nav.stuck .n-logo img{height:38px!important}@media (max-width:768px){.n-logo img{height:40px!important}}.mob-drawer .logo-premium img{height:52px!important;width:auto!important}footer .logo-premium img{height:58px!important;width:auto!important}nav{min-height:72px}.premium-section{position:relative;overflow:hidden}:focus-visible{outline:2px solid var(--gold-v);outline-offset:3px;border-radius:3px}.c-float-input:focus-visible,.c-textarea-f:focus-visible{outline:0}.n-cta:focus-visible{outline:2px solid var(--bg-deep)!important;outline-offset:2px}.f-btn-back:focus-visible,.f-btn-next:focus-visible{outline:2px solid var(--gold-v);outline-offset:3px}.role-apply:focus-visible{outline:2px solid var(--gold-v);outline-offset:3px}.pfl-item:focus-visible,.pj-row:focus-visible{outline:2px solid var(--gold-40);outline-offset:-2px}.sv-grid{align-items:stretch}.sv-card{display:flex;flex-direction:column}.sv-card .sv-desc{flex:1}.sv-card .sv-more{margin-top:auto;padding-top:20px}@media (max-width:860px) and (min-width:521px){.hero-stat-grid{grid-template-columns:1fr 1fr!important;gap:10px}.hero-stat-num{font-size:30px!important}}@media (max-width:380px){.hero-h1-l1{font-size:clamp(48px, 13vw, 80px)!important}.hero-h1-l2{font-size:clamp(44px, 12vw, 76px)!important}.hero-sub{font-size:15px!important}}#hero{padding-top:140px!important}@media (max-width:768px){#hero{padding-top:110px!important}}@media (max-width:768px){#about-prev,#cta-banner,#exp,#proj-prev,#services{padding:80px 0!important}#statement{padding:72px 0!important}#clients{padding:80px 0!important}#about-pg,#career-pg,#contact-pg,#proj-pg{padding-top:120px!important;padding-bottom:72px!important}#services-pg{padding-top:120px!important;padding-bottom:0!important}.sv-process{padding:72px 0!important}}.cult-card,.val-card{border-radius:14px;overflow:hidden}.stmt-big{max-width:880px}@media (max-width:600px){.stmt-big{font-size:clamp(26px, 7vw, 48px)!important}}@media (max-width:480px){.mq-item{font-size:10px;padding:0 20px;gap:20px}}@media (min-width:769px){.ft-bottom{flex-wrap:nowrap;gap:24px}}@media (max-width:768px){.ft-bottom{flex-wrap:wrap;gap:10px}.ft-copy{flex:0 0 100%}}.sv-process{padding-bottom:120px}.approach-row .body-p{max-width:580px}@media (max-width:900px){.contact-grid{gap:56px!important}}[dir=rtl] #sp{left:auto;right:0;transform-origin:right}[dir=rtl] .sv-big-n{right:auto;left:16px}@media (max-width:1100px){.about-intro-row{gap:56px}}.open-app{text-align:center}.open-app .btn-primary{display:inline-flex!important}@media (max-width:360px){.nav-in,.wrap{padding-left:16px;padding-right:16px}.ft-bottom,.ft-top{padding-left:16px!important;padding-right:16px!important}}@media (pointer:coarse){body{cursor:auto!important}#cr,#cr-trail-wrap,#crr{display:none!important}}@media (max-width:960px){.hero-content{gap:40px}.hero-bottom{gap:20px}}.n-cta{border-radius:4px!important;padding:11px 26px!important}#proj-preview{z-index:299}.form-h3{letter-spacing:-.01em;margin-bottom:28px}.clients-head .sec-h2{margin-bottom:16px!important}.clients-head .body-p{margin-bottom:64px}[lang=en] .quote-card{border-left:none;border-right:none}[dir=rtl] .hero-content{flex-direction:row-reverse}.hero-scroll{pointer-events:none}img{height:auto}.client-feat-item img,.client-supp-item img{height:auto}nav{transition:background .4s var(--e2),padding .4s var(--e2),box-shadow .4s var(--e2),transform .4s var(--e2)}[lang=ar] *{letter-spacing:0!important}[lang=ar] .btn-cta,[lang=ar] .btn-primary,[lang=ar] .ec-label,[lang=ar] .mob-links a,[lang=ar] .n-links a,[lang=ar] .pfl-cat,[lang=ar] .pj-c,[lang=ar] .role-type,[lang=ar] .sec-tag,[lang=ar] .stat-lbl{letter-spacing:0!important}[dir=rtl] .pfl-item::before,[dir=rtl] .pj-row::before{left:auto;right:0}[dir=rtl] .hero-eyebrow-dot{order:1}[dir=rtl] .hero-eyebrow{flex-direction:row-reverse}@media (max-width:768px){.mob-links a{min-height:48px;display:flex;align-items:center}.mob-cta a{min-height:52px;display:flex;align-items:center;justify-content:center}.f-btn-back,.f-btn-next{min-height:44px}.role-apply{min-height:36px;display:flex!important;align-items:center;justify-content:center}}@media (max-width:1100px){.exp-cell:not(.ec-span){min-height:240px}}.sv-fc-img{border-radius:14px 14px 0 0!important}.ft-top{padding-bottom:56px}.c-email-big{margin-bottom:32px}@media (max-width:768px){.nav-in,.wrap{padding-left:20px;padding-right:20px}.cta-inner{padding-left:20px!important;padding-right:20px!important}}[dir=rtl] .mob-drawer{right:auto;left:0;border-left:none;border-right:1px solid var(--ink-06);transform:translateX(-100%)}[dir=rtl] .mob-drawer.open{transform:none}[dir=rtl] .mob-drawer-accent{left:auto;right:0}@media (max-width:768px){[dir=rtl] .about-big-p,[dir=rtl] .body-p,[dir=rtl] .hero-sub,[dir=rtl] .stmt-big,[dir=rtl] .stmt-col-body,[dir=rtl] .sv-desc,[dir=rtl] .sv-fc-desc,[dir=rtl] .sv-page-intro{text-align:right!important;word-spacing:0!important;line-height:1.75;hyphens:none}[dir=rtl] .about-big-h,[dir=rtl] .cta-h,[dir=rtl] .hero-h1-l1,[dir=rtl] .hero-h1-l2,[dir=rtl] .sec-h2,[dir=rtl] .stmt-big,[dir=rtl] .sv-page-big-h{text-wrap:auto}}@media (max-width:768px){.hero-content{align-items:flex-start!important}}[dir=rtl] .client-feat-item{border-right:none;border-left:1px solid rgba(10,10,10,.1)}[dir=rtl] .client-feat-item:last-child{border-left:none}[dir=rtl] .client-supp-item{border-right:none;border-left:1px solid rgba(10,10,10,.08)}[dir=rtl] .client-supp-item:last-child{border-left:none}#hero{display:block!important;padding-top:0!important;min-height:100vh;overflow:visible!important}#hero>.hero-3d-scene{z-index:0!important;overflow:hidden}.hgl-h{background:linear-gradient(90deg,transparent,rgba(227,238,240,.07) 20%,rgba(227,238,240,.07) 80%,transparent)!important}.hgl-v{background:linear-gradient(180deg,transparent,rgba(227,238,240,.07) 20%,rgba(227,238,240,.07) 80%,transparent)!important}.hero-content{display:grid!important;grid-template-columns:1fr 300px!important;gap:64px!important;align-items:start!important;padding-top:148px!important;padding-bottom:80px!important;position:relative;z-index:2}.hero-left{flex:unset!important;min-width:0;position:relative;z-index:2}.hero-right{width:auto!important;padding-top:clamp(240px,28vw,380px)!important;position:relative;z-index:2}.hero-h1-l1{font-size:clamp(64px, 9vw, 130px)!important}.hero-h1-l2{font-size:clamp(60px, 8.5vw, 124px)!important}@media (max-width:960px){.hero-content{grid-template-columns:1fr 240px!important;gap:48px!important;padding-top:130px!important}.hero-right{padding-top:clamp(200px,26vw,320px)!important}}@media (max-width:768px){.hero-content{display:flex!important;flex-direction:column!important;align-items:flex-start!important;padding-top:110px!important;padding-bottom:56px!important;gap:40px!important}.hero-right{padding-top:0!important;width:100%!important}#hero{overflow:hidden!important}}@media (max-width:380px){.hero-content{padding-top:96px!important}.hero-h1-l1{font-size:clamp(48px, 13vw, 64px)!important}.hero-h1-l2{font-size:clamp(44px, 12vw, 60px)!important}}
/* ================================================================
   UI/UX CONSISTENCY + RESPONSIVE REFINEMENT LAYER  (2026-06)
   Append-only. Overrides existing rules via cascade order; no
   prior rule removed. Goal: consistency, logos, cards, mobile.
   ================================================================ */

/* --- 1. Overflow / sizing guard (positive, not just hidden) --- */
html,body{max-width:100%}
*{min-width:0}
img,svg,video{max-width:100%}
.wrap,.nav-in,.cta-inner,.ft-top,.ft-bottom{box-sizing:border-box}

/* --- 2. Card radius consistency (unify the 14px outliers to 18) --- */
.val-card,.cult-card{border-radius:18px!important;overflow:hidden}

/* --- 3. Client logo normalization ---------------------------------
   Preserve aspect ratio (contain), standardize heights with clamp so
   featured/supporting read as one system, even toning across rows. */
.client-feat-item,.client-supp-item{align-items:center;justify-content:center}
.client-feat-item img,.client-supp-item img{width:auto;object-fit:contain;display:block}
.client-feat-item img{height:clamp(48px,7vw,72px)!important;max-width:84%}
.client-supp-item img{height:clamp(40px,5.5vw,56px)!important;max-width:80%;opacity:.78!important}
.client-supp-item:hover img{opacity:1!important}
@media (max-width:600px){
  .client-feat-item img{height:clamp(42px,11vw,60px)!important}
  .client-supp-item img{height:clamp(38px,9vw,50px)!important}
}

/* --- 4. Touch targets (>=44px) on mobile -------------------------- */
@media (max-width:768px){
  .n-cta{min-height:44px;display:inline-flex!important;align-items:center;justify-content:center}
  .lang-switch{min-height:44px;min-width:44px;display:inline-flex;align-items:center;justify-content:center;margin-left:8px!important}
  .nav-burger{padding:9px!important;min-width:44px;min-height:44px;align-items:center;justify-content:center}
  .link-teal,.btn-outline,.btn-cta-ghost,.sv-fc-more,.sv-more{min-height:40px;display:inline-flex;align-items:center}
  .ft-col-links a,.ft-contact a{padding:6px 0;display:inline-block}
}

/* --- 5. Forms: stop iOS focus-zoom (<16px), validation feedback --- */
@media (max-width:768px){
  .c-float-input,.c-textarea-f{font-size:16px}
}
.c-float-input:user-invalid,.c-textarea-f:user-invalid{border-bottom-color:#d97b6b}
.c-float-input:user-invalid~.c-float-label{color:#d97b6b}

/* --- 6. Unified button states: active / disabled / loading -------- */
.btn-primary:active,.btn-cta:active,.f-btn-next:active{transform:translateY(0) scale(.985)!important;transition-duration:.08s!important}
.btn-primary[disabled],.btn-cta[disabled],.f-btn-next:disabled,.btn-primary[aria-busy="true"],.f-btn-next[aria-busy="true"]{opacity:.6;cursor:not-allowed;transform:none!important;box-shadow:none!important;filter:saturate(.7)}
.f-btn-next:disabled:hover{transform:none!important;background:var(--gold-v)}

/* --- 7. sv-full-card: mobile padding + matching image bleed ------- */
@media (max-width:600px){
  .sv-full-card{padding:40px 24px!important}
  .sv-full-card .sv-fc-img{margin:-40px -24px 28px -24px!important;height:170px!important}
  .sv-fc-title{font-size:clamp(22px,6vw,28px)!important}
  .sv-fc-desc{font-size:13.5px!important}
}
@media (min-width:601px) and (max-width:900px){
  .sv-full-card{padding:52px 40px!important}
  .sv-full-card .sv-fc-img{margin:-52px -40px 32px -40px!important}
}

/* --- 8. Card text safety: never overflow / overlap inside cards --- */
.sv-title,.sv-fc-title,.val-title,.cult-title,.role-t,.pj-t,.pfl-t,.stat-num,.hero-stat-num,.ec-title{overflow-wrap:break-word;hyphens:none}
.sv-desc,.sv-fc-desc,.stat-lbl,.hero-stat-lbl,.cult-card .body-p,.val-card .body-p{overflow-wrap:break-word}
.pfl-t,.role-t{word-break:break-word}

/* --- 9. Spacing rhythm: tighten very small screens consistently --- */
@media (max-width:480px){
  .sec-h2{font-size:clamp(32px,8.5vw,44px)}
  .about-big-h,.career-big-h,.contact-big-h,.proj-big-h,.sv-page-big-h{font-size:clamp(44px,13vw,64px)}
  .body-p{font-size:15px}
  .stat-num{font-size:48px}
  .stat-box{padding:32px 24px}
}

/* --- 10. Nav logo: lock aspect ratio everywhere (no stretch) ------ */
.n-logo img,.mob-drawer .logo-premium img,footer .logo-premium img{width:auto!important;object-fit:contain!important}

/* ================================================================
   DESIGN UPGRADE LAYER v2  (2026-06) — premium / conversion pass
   New homepage order (hero-first, CTA-last) + new components.
   Append-only; palette unchanged (teal + gold).
   ================================================================ */

/* --- Hero: trust microline under the CTAs --- */
.hero-trust{margin-top:30px;font-size:15.5px;font-weight:500;letter-spacing:.01em;color:var(--ink-70);line-height:1.8;max-width:580px}
.hero-trust-lbl{display:inline-block;color:var(--gold-v);font-weight:700;letter-spacing:.18em;text-transform:uppercase;font-size:12px;margin-right:10px;white-space:nowrap}
[dir=rtl] .hero-trust-lbl{margin-right:0;margin-left:10px}
@media (max-width:768px){.hero-trust{margin-top:22px;font-size:14px}}

/* --- Clients: bigger logos + trust statement (stronger trust block) --- */
.clients-head .sec-h2{margin-bottom:14px!important}
.client-feat-item img{height:clamp(56px,7.5vw,92px)!important;max-width:86%}
.client-supp-item img{height:clamp(44px,6vw,64px)!important;max-width:82%;opacity:.85!important}
.client-supp-item:hover img{opacity:1!important}
.client-feat-item{padding:48px 30px!important}
.client-supp-item{padding:34px 22px!important}
.clients-trust{text-align:center;max-width:700px;margin:52px auto 0;font-size:15.5px;line-height:1.75;color:var(--ink-70);text-wrap:balance}
.clients-trust strong{color:var(--gold-v);font-weight:700}
@media (max-width:600px){.clients-trust{font-size:14px;margin-top:36px}}

/* --- Services: outcome/value line (sell the result, not the label) --- */
.sv-outcome{font-size:13px;font-weight:600;color:var(--gold-v);line-height:1.45;margin-bottom:12px;letter-spacing:.005em}
.sv-card .sv-title{margin-bottom:8px}
.sv-card{padding:46px 34px!important}
@media (max-width:600px){.sv-outcome{font-size:12.5px}}

/* --- Selected Work: image-backed case-study rows --- */
.pj-list{gap:18px!important}
.pj-row{grid-template-columns:auto 140px 1fr 44px!important;gap:30px!important;align-items:center!important;padding:24px 26px!important}
.pj-n{align-self:flex-start;padding-top:4px}
.pj-thumb{width:140px;height:90px;border-radius:12px;background-size:cover;background-position:center;border:1px solid var(--ink-15);position:relative;overflow:hidden;flex-shrink:0;transition:border-color .4s,transform .5s var(--e1)}
.pj-thumb::after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,rgba(2,31,34,.45),transparent 70%);opacity:.5;transition:opacity .4s}
.pj-row:hover .pj-thumb{border-color:var(--gold-40);transform:scale(1.03)}
.pj-row:hover .pj-thumb::after{opacity:0}
.pj-c{color:var(--gold-v)!important;font-size:10px!important;letter-spacing:.2em!important;margin-bottom:9px!important;font-weight:600}
.pj-t{margin-bottom:0!important}
.pj-result{font-size:14px;line-height:1.6;color:var(--ink-70);margin-top:9px;max-width:62ch}
@media (max-width:900px){.pj-row{grid-template-columns:auto 110px 1fr 36px!important;gap:20px!important}.pj-thumb{width:110px;height:72px}.pj-result{font-size:13px}}
@media (max-width:560px){.pj-row{grid-template-columns:44px 1fr!important;gap:14px!important;padding:20px 18px!important}.pj-thumb{grid-column:1 / -1;width:100%;height:150px;order:3;margin-top:6px}.pj-row .pj-arrow{display:none}.pj-n{font-size:13px}.pj-result{margin-top:8px}}

/* --- Section rhythm: break the flat-dark repetition (same palette) --- */
#services{background:radial-gradient(900px 480px at 82% 0,rgba(204,194,28,.06),transparent 60%),linear-gradient(180deg,var(--bg),var(--bg-warm) 55%,var(--bg))!important}
#statement{background:var(--bg-deep)!important}
#proj-prev{background:radial-gradient(800px 460px at 12% 100%,rgba(204,194,28,.05),transparent 60%),linear-gradient(180deg,var(--bg),var(--bg-deep))!important}
#about-prev{background:var(--bg)!important}
#exp{background:var(--bg)!important}
/* hairline gradient separators between bands */
#clients,#about-prev,#services,#statement,#exp,#proj-prev,#cta-banner{border-top:1px solid rgba(227,238,240,.05)}
#statement{border-top:1px solid var(--gold-20);border-bottom:1px solid var(--gold-20)}

/* --- Footer: clearer hierarchy, contact easy to find --- */
.ft-contact a:first-child{font-size:15px!important;font-weight:600!important;letter-spacing:.02em!important}
.ft-tagline{font-size:14px!important;color:var(--ink-70)!important;line-height:1.75!important}
.ft-col-title{color:var(--gold-v)!important;margin-bottom:20px!important}
footer{border-top:1px solid var(--gold-20)!important}
.ft-top{padding-top:72px!important}

/* ── impeccable: elevate pass ── */
.hero-h1,.sec-h2,.cta-h,.stmt-big,.sv-title,.ec-title,.pj-t,.stat-num{text-wrap:balance}
.body-p,.hero-sub,.sv-desc,.sv-outcome,.cta-sub,.stmt-col-body,.ec-text,.pj-result,.quote-text{text-wrap:pretty}
.body-p,.cta-sub,.stmt-col-body{max-width:68ch}
@media (hover:none),(pointer:coarse){body{cursor:auto}#cr,#crr,#cr-trail-wrap,#proj-preview{display:none!important}a,button,[onclick],.pj-row,.sv-card{cursor:pointer}}
@media (prefers-reduced-motion:reduce){.mq-track,.cta-3d-grid,#ctaGrid{animation:none!important}#cr,#crr,#cr-trail-wrap{display:none!important}body{cursor:auto}html{scroll-behavior:auto}}

/* ── impeccable: elevate pass 2 (components) ── */
.btn-primary:active,.btn-cta:active{transform:translateY(-1px) scale(.99);transition-duration:.12s}
.btn-outline:active,.btn-cta-ghost:active,.link-teal:active{opacity:.75}
.sv-card:active{transform:translateY(-3px)}
.pj-row:active,.pfl-item:active,.role-row:active{background:var(--ink-03)}
.stat-box{transition:border-color .4s,background .4s,box-shadow .4s}
.stat-box:hover{box-shadow:var(--shadow-sm)}

/* --- Accessibility: skip link (added for real per-route pages) --- */
.skip-link{position:fixed;top:-48px;left:12px;z-index:10000;background:var(--gold-v);color:var(--bg-deep);font-weight:600;font-size:14px;padding:10px 18px;border-radius:6px;transition:top .2s var(--ease-out);text-decoration:none}
.skip-link:focus{top:12px}

/* --- AEO: direct-answer summary paragraph --- */
.direct-answer{font-size:16px;font-weight:300;line-height:1.8;color:var(--ink-70);max-width:720px;margin:20px 0 28px;padding:18px 20px;border-left:2px solid var(--gold-40);background:var(--ink-03)}
[dir="rtl"] .direct-answer{border-left:none;border-right:2px solid var(--gold-40)}

/* --- Accessibility: visually-hidden utility (for programmatic labels) --- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* --- Accessibility: minimum touch target on mobile for compact link-buttons --- */
@media (max-width:768px){.role-apply{min-height:44px;display:inline-flex!important;align-items:center;justify-content:center}}

/* --- Fix: sv-card / sv-full-card / sv-fc-more become real links (were inert) --- */
a.sv-card,a.sv-full-card{display:block;text-decoration:none;color:inherit}
a.sv-fc-more{display:inline-block;text-decoration:none}

/* --- Blog: article + index layout (reuses existing tokens, no new visual language) --- */
.blog-post{padding:160px 0 120px}
.blog-meta{font-size:12px;letter-spacing:.08em;color:var(--ink-40);margin:14px 0 28px;text-transform:uppercase}
.blog-body{max-width:760px}
.blog-body h2{font-family:var(--display);font-weight:400;font-size:clamp(24px,3vw,32px);color:var(--ink);margin:44px 0 16px;line-height:1.3}
.blog-body h3{font-family:var(--sans);font-weight:600;font-size:18px;color:var(--ink);margin:28px 0 12px}
.blog-body ul,.blog-body ol{margin:0 0 20px;padding-left:22px;color:var(--ink-70);font-weight:300;line-height:1.9}
[dir="rtl"] .blog-body ul,[dir="rtl"] .blog-body ol{padding-left:0;padding-right:22px}
.blog-body li{margin-bottom:8px}
.blog-cta{margin:48px 0;padding:32px;background:var(--bg-warm);border-radius:8px;display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.blog-cta p{margin:0;color:var(--ink-70);font-weight:300;max-width:480px}
.blog-related{margin-top:56px;padding-top:32px;border-top:1px solid var(--ink-06)}
.blog-related-title{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-40);margin-bottom:16px}
.blog-related-links{display:flex;flex-direction:column;gap:10px}
.blog-index-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:24px;margin-top:48px}
a.blog-index-card{display:block;background:var(--bg-warm);border-radius:8px;padding:32px;text-decoration:none;color:inherit;box-shadow:var(--shadow-sm);transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s}
a.blog-index-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}
.blog-index-cat{font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--gold-v);margin-bottom:14px}
.blog-index-title{font-family:var(--display);font-size:22px;color:var(--ink);margin-bottom:10px;line-height:1.35}
.blog-index-desc{font-size:14px;font-weight:300;line-height:1.7;color:var(--ink-70)}
@media (max-width:768px){.blog-post{padding:120px 0 80px}.blog-cta{flex-direction:column;align-items:flex-start}}

/* ===================================================================
   Second-stage improvements (2026-07-28)
   =================================================================== */

/* --- Brand display font -------------------------------------------------
   The previous source (https://fonts.cdnfonts.com/css/norsal) returns HTTP
   500 in production, so every display heading was silently falling back to
   system-ui. That render-blocking third-party stylesheet has been removed
   from <head>.

   PRODUCTION DISPLAY FONT IS CURRENTLY **DM Sans** (SIL OFL, loaded from
   Google Fonts). It is the fallback this codebase already declared in
   --serif / --serif-c / --display; it is now actually loaded rather than
   named-but-absent. No unlicensed font is bundled or redistributed here.

   TO RESTORE NORSAL — no code change required:
     1. Obtain the licensed Norsal webfont files.
     2. Place them at exactly:
          /assets/fonts/norsal-400.woff2
          /assets/fonts/norsal-700.woff2
          /assets/fonts/norsal-900.woff2
        (any subset of the three is fine — only files that exist are used)
     3. Run: node build/generate-pages.mjs

   build/generate-pages.mjs probes that directory on every build and writes
   css/fonts.css accordingly. No @font-face rule — and therefore no font
   request — is ever emitted for a file that is not on disk, so a missing
   Norsal can never cost a 404. "Norsal" stays first in the font stacks
   above purely as a name; an unmatched family name costs nothing.
   ---------------------------------------------------------------------- */

/* --- Descriptive line inside the hero H1 -------------------------------
   The single H1 lives in #hero and must be descriptive, not just the brand
   statement. This renders as visible supporting copy (never hidden text).
   .hero-h1 carried a 12ch cap for the two brand lines; that cap moves onto
   the lines themselves so the descriptive sentence can wrap normally.
   ---------------------------------------------------------------------- */
.hero-h1 { max-width: none; }
.hero-h1-l1, .hero-h1-l2 { max-width: 12ch; }
.hero-h1-desc {
  display: block;
  font-family: var(--sans);
  font-size: clamp(15px, 1.45vw, 19px);
  font-weight: 400;
  font-style: normal;
  line-height: 1.6;
  letter-spacing: 0;
  color: var(--ink-70);
  max-width: 40ch;
  margin: -34px 0 0;
  text-wrap: pretty;
}
@media (max-width: 768px) {
  .hero-h1-desc { font-size: 15px; margin-top: -26px; max-width: 100%; }
}

/* --- Contact form: qualification fields, validation, success state ----- */
.c-field-label {
  display: block;
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-40);
  margin-bottom: 8px;
  font-family: var(--sans);
}
.c-select {
  width: 100%;
  background: var(--ink-03);
  border: 1px solid var(--ink-15);
  border-radius: 6px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 300;
  padding: 14px 16px;
  appearance: none;
  cursor: pointer;
  transition: border-color 0.3s var(--e2), background 0.3s var(--e2);
}
.c-select:focus-visible,
.c-float-input:focus-visible,
.c-textarea-f:focus-visible {
  outline: 2px solid var(--gold-v);
  outline-offset: 2px;
  border-color: var(--gold-40);
}
.c-select option { background: var(--bg-deep); color: var(--ink); }
.c-checks {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px 18px;
}
@media (max-width: 560px) { .c-checks { grid-template-columns: 1fr; } }
.c-check {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  line-height: 1.45;
  color: var(--ink-70);
  cursor: pointer;
  min-height: 44px;
  padding: 10px 0;
}
.c-check input {
  accent-color: var(--gold-v);
  width: 18px;
  height: 18px;
  margin-top: 1px;
  flex: 0 0 auto;
  cursor: pointer;
}
.c-check input:focus-visible { outline: 2px solid var(--gold-v); outline-offset: 2px; }
.c-err {
  display: none;
  font-size: 13px;
  color: #ff9a8b;
  margin-top: 6px;
  font-family: var(--sans);
}
.c-err.on { display: block; }
.c-field.invalid .c-float-input,
.c-field.invalid .c-select,
.c-field.invalid .c-textarea-f { border-color: #ff9a8b; }
.c-privacy {
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ink-40);
  margin: 18px 0 4px;
  max-width: 46ch;
}
.f-success {
  border: 1px solid var(--gold-40);
  border-radius: 12px;
  background: var(--ink-03);
  padding: 40px 36px;
}
.f-success-t {
  font-family: var(--serif);
  font-size: 28px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 14px;
  letter-spacing: -0.01em;
}
.f-success-b { font-size: 15px; line-height: 1.7; color: var(--ink-70); margin-bottom: 12px; }
.f-success-b a { color: var(--gold-v); }
.f-hp { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

/* --- Dedicated service landing pages ----------------------------------- */
.svc-detail { padding: 150px 0 90px; position: relative; }
.svc-block { padding: 90px 0; position: relative; }
.svc-block:nth-of-type(even) { background: var(--ink-03); }
.svc-crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 12.5px;
  color: var(--ink-40);
  margin-bottom: 28px;
  font-family: var(--sans);
}
.svc-crumbs a { color: var(--ink-70); text-decoration: none; }
.svc-crumbs a:hover { color: var(--gold-v); }
.svc-crumbs [aria-current="page"] { color: var(--gold-v); }

.svc-inc-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 36px;
  margin-top: 48px;
}
.svc-inc-title {
  font-family: var(--serif);
  font-size: 20px;
  font-weight: 700;
  color: var(--gold-v);
  margin-bottom: 16px;
  letter-spacing: -0.01em;
}

.svc-rel-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 22px;
  margin-top: 48px;
}
.svc-rel-card {
  display: block;
  border: 1px solid var(--ink-15);
  border-radius: 14px;
  padding: 30px 28px;
  background: var(--ink-03);
  text-decoration: none;
  transition: border-color 0.4s var(--e1), transform 0.4s var(--e1), background 0.4s var(--e1);
}
.svc-rel-card:hover { border-color: var(--gold-40); transform: translateY(-4px); background: var(--ink-06); }
.svc-rel-card:focus-visible { outline: 2px solid var(--gold-v); outline-offset: 3px; }
.svc-rel-name {
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 700;
  color: var(--ink);
  margin-bottom: 12px;
  letter-spacing: -0.01em;
}
.svc-rel-desc { font-size: 14px; line-height: 1.6; color: var(--ink-70); margin-bottom: 18px; }

.svc-two-col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 56px;
}
.svc-proj-list, .svc-read-list { list-style: none; margin: 26px 0 24px; padding: 0; }
.svc-proj-list li, .svc-read-list li {
  font-size: 15px;
  line-height: 1.65;
  color: var(--ink-70);
  padding: 14px 0;
  border-bottom: 1px solid var(--ink-06);
}
.svc-proj-list li strong { color: var(--ink); font-weight: 600; }

.svc-cta { padding: 110px 0 130px; background: var(--bg-deep); position: relative; }

@media (max-width: 768px) {
  .svc-detail { padding: 120px 0 70px; }
  .svc-block { padding: 70px 0; }
  .svc-cta { padding: 80px 0 100px; }
  .svc-inc-grid, .svc-two-col { gap: 32px; }
}

/* --- Scope-clarity block (sports events: direct / coordinated / outside) --- */
.scope-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(270px, 1fr));
  gap: 24px;
  margin-top: 46px;
}
.scope-col {
  border: 1px solid var(--ink-15);
  border-top-width: 3px;
  border-radius: 12px;
  padding: 28px 26px;
  background: var(--ink-03);
}
.scope-label {
  font-family: var(--sans);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 600;
  margin-bottom: 18px;
}
.scope-direct { border-top-color: var(--gold-v); }
.scope-direct .scope-label { color: var(--gold-v); }
.scope-coordinated { border-top-color: rgba(227, 238, 240, 0.45); }
.scope-coordinated .scope-label { color: var(--ink-70); }
.scope-outside { border-top-color: rgba(227, 238, 240, 0.18); }
.scope-outside .scope-label { color: var(--ink-40); }
.scope-outside .sv-fc-list li { color: var(--ink-40); }

/* --- Projects page: fact-led project cards ------------------------------
   The old markup was a title + one meta line. These cards carry sector,
   event type, location, year, a scope line, and links to the service pages
   that were actually delivered — all rendered from seo/projects.config.json,
   which is also what builds the ItemList/CreativeWork schema. */
.pfl-scope {
  font-size: 15.5px;
  line-height: 1.65;
  color: var(--ink-70);
  margin: 10px 0 22px;
  max-width: 62ch;
}
.pfl-meta-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, max-content));
  gap: 18px 40px;
  margin: 0 0 22px;
}
.pfl-meta-grid dt {
  font-family: var(--sans);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-40);
  margin-bottom: 5px;
}
.pfl-meta-grid dd { font-size: 14.5px; color: var(--ink); margin: 0; line-height: 1.5; }
.pfl-svc-row { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.pfl-svc-lbl {
  font-family: var(--sans);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink-40);
  margin-inline-end: 4px;
}
.pfl-svc {
  display: inline-block;
  font-size: 13px;
  line-height: 1;
  padding: 9px 14px;
  border: 1px solid var(--ink-15);
  border-radius: 999px;
  color: var(--ink-70);
  text-decoration: none;
  transition: border-color 0.3s var(--e2), color 0.3s var(--e2), background 0.3s var(--e2);
}
.pfl-svc:hover { border-color: var(--gold-40); color: var(--gold-v); background: var(--gold-10); }
.pfl-svc:focus-visible { outline: 2px solid var(--gold-v); outline-offset: 2px; }
.proj-note { margin-top: 72px; padding-top: 48px; border-top: 1px solid var(--ink-06); }
@media (max-width: 640px) {
  .pfl-meta-grid { grid-template-columns: 1fr 1fr; gap: 16px 24px; }
  .proj-note .link-teal { display: block; margin: 20px 0 0 !important; }
}

/* --- Client logo wall (#clients) ---------------------------------------
   Two rows, opposite directions, continuous CSS-only marquee. The build
   (build/generate-pages.mjs -> renderLogoWall) emits each track as two
   identical halves, so translating the track by exactly -50% returns it to
   its starting frame and the loop has no seam. That only holds while every
   card is the same width, which is why .lw-item is a fixed width with the
   spacing as margin-inline-end rather than a track `gap` (a gap would make
   the two halves unequal by one gap and the loop would jump).
   No JavaScript is involved: with JS off the wall still renders and still
   moves. Under prefers-reduced-motion it becomes a static wrapped grid. */
.logo-wall {
  --lw-card-w: clamp(158px, 18vw, 208px);
  --lw-card-gap: clamp(12px, 1.4vw, 20px);
  --lw-card-h: clamp(104px, 11vw, 132px);
  display: flex;
  flex-direction: column;
  gap: clamp(12px, 1.4vw, 20px);
  margin-top: 8px;
}
.lw-row {
  overflow: hidden;
  /* Fade the two edges so cards enter and leave instead of being clipped. */
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
  mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}
.lw-track {
  display: flex;
  flex-wrap: nowrap;
  width: max-content;
  margin: 0;
  padding: 0;
  list-style: none;
  /* Logo order is not language-dependent; keeping the track LTR means the
     same translate maths works in the RTL build. */
  direction: ltr;
  /* One composited layer per row — the transform animation then runs off the
     main thread and never repaints the 22 cards inside it. */
  will-change: transform;
  contain: paint;
  animation: lw-scroll var(--lw-duration, 60s) linear infinite;
}
.lw-row--reverse .lw-track { animation-direction: reverse; }
.lw-row:hover .lw-track,
.lw-row:focus-within .lw-track { animation-play-state: paused; }
@keyframes lw-scroll {
  from { transform: translate3d(0, 0, 0); }
  to { transform: translate3d(-50%, 0, 0); }
}
.lw-item {
  flex: 0 0 auto;
  width: var(--lw-card-w);
  /* Height is a floor, not a cap: flex stretch equalises every card in a row
     to the tallest one, so a two-line name can never be clipped by the row's
     overflow while the cards still read as one rhythm. */
  min-height: var(--lw-card-h);
  margin-inline-end: var(--lw-card-gap);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 20px 18px;
  border: 1px solid var(--ink-06);
  border-radius: 14px;
  background: linear-gradient(180deg, rgba(227, 238, 240, 0.035), rgba(227, 238, 240, 0.012));
  /* No backdrop-filter here on purpose: 44 blurred surfaces moving every frame
     is the most expensive thing this page could paint, and the cards sit on a
     flat section background where the blur is invisible anyway. */
  transition: border-color 0.4s var(--e2), background 0.4s var(--e2);
}
.lw-item:hover { border-color: var(--gold-40); background: rgba(204, 194, 28, 0.05); }
.lw-logo {
  width: auto;
  height: clamp(34px, 4.4vw, 50px);
  max-width: 84%;
  object-fit: contain;
  display: block;
  opacity: 0.88;
  filter: brightness(1.12);
  /* Several of the supplied marks ship with an opaque light or dark plate
     baked into the file. Rounding the image itself makes those read as a
     deliberate tile instead of a rectangle sitting on the card. */
  border-radius: 6px;
  transition: opacity 0.4s var(--e2);
}
/* Portrait and square marks need more height than a wordmark to carry the
   same optical weight. */
.lw-logo--tall { height: clamp(44px, 5.8vw, 68px); max-width: 62%; }
.lw-item:hover .lw-logo { opacity: 1; }
.lw-name {
  font-family: var(--sans);
  font-size: 9.5px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--ink-40);
  text-align: center;
  line-height: 1.4;
  width: 100%;
  /* Reserve two lines whether or not the name needs them, so logos sit on a
     common baseline across the row. */
  min-height: 2.7em;
  overflow-wrap: anywhere;
  /* Two lines max, so a long name can never push the card taller than its
     neighbours and break the equal-width/equal-height rhythm. */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
[dir="rtl"] .lw-name { letter-spacing: 0; font-size: 11px; }
@media (max-width: 1024px) {
  .logo-wall { --lw-card-w: clamp(152px, 25vw, 200px); }
}
@media (max-width: 768px) {
  .logo-wall { --lw-card-w: clamp(134px, 38vw, 168px); --lw-card-h: 112px; }
  .lw-logo { height: clamp(30px, 8vw, 40px); }
  .lw-logo--tall { height: clamp(38px, 10vw, 52px); }
  .lw-item { padding: 14px 10px; gap: 8px; border-radius: 12px; }
  .lw-name { font-size: 9px; letter-spacing: 0.1em; }
  .lw-row {
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent);
  }
}
@media (prefers-reduced-motion: reduce) {
  .lw-row { overflow: visible; -webkit-mask-image: none; mask-image: none; }
  .lw-track {
    animation: none;
    width: 100%;
    flex-wrap: wrap;
    justify-content: center;
    transform: none;
  }
  /* The duplicated half exists only to make the loop seamless — with the
     motion gone it would just show every logo twice. */
  .lw-track .lw-dup { display: none; }
  .lw-item { margin: 0 calc(var(--lw-card-gap) / 2) var(--lw-card-gap); }
}

/* --- Breadcrumb nav on service / landing pages -------------------------
   The site nav is styled off the bare `nav` element (position:fixed), which
   also caught the breadcrumb <nav> on every service and landing page and
   pinned it over the header. Breadcrumbs are a real <nav> landmark and stay
   one — they just sit in the flow. */
.svc-crumbs {
  position: static;
  z-index: auto;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: none;
}


/* --- Custom cursor: never hide the real one on trust ---------------------
   `cursor: none` used to be unconditional on <body>. If main.js failed to
   load, or JS was off, or the pointer was a stylus/touch, the visitor was
   left with no pointer at all. It is now scoped to `.cursor-ready`, which
   js/main.js only adds once the custom cursor is actually drawn — and only on
   devices with a fine pointer. Text fields keep a caret regardless, because
   an invisible cursor over an input makes the field feel dead. */
body:not(.cursor-ready) { cursor: auto; }
body.cursor-ready input,
body.cursor-ready textarea,
body.cursor-ready select,
body.cursor-ready [contenteditable] { cursor: text; }
body.cursor-ready select { cursor: pointer; }
@media (hover: none), (pointer: coarse) {
  body, body.cursor-ready { cursor: auto; }
  #cr, #crr { display: none; }
}

/* --- Accessibility: target size (WCAG 2.2 AA, 2.5.8) ---------------------
   Nav, footer, and language-switch links were 17-19 px tall hit areas. The
   text size is unchanged — only the clickable box grows, using padding and an
   inline-flex box so nothing shifts in the layout. Inline links inside running
   prose are exempt from the 24 px rule and are deliberately left alone. */
.n-links a,
.mob-links a,
.lang-switch,
footer a,
.svc-crumbs a {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}
.n-links > li > a { padding-block: 4px; }
.lang-switch { padding-inline: 6px; }
footer a { padding-block: 3px; }
/* The two social links render a 9 px "LI"/"IG" wordmark — 8-14 px wide, which
   met the height rule above and still failed 2.5.8 on width. Padding widens
   only the hit box; the mark itself is untouched. They also carry an
   aria-label now, because "LI" is not a link purpose (2.4.4). */
.ft-social a {
  justify-content: center;
  min-width: 24px;
  padding-inline: 4px;
}
/* Underlined text CTAs measured 23 px tall in the Arabic build (shorter line
   box than the Latin face) and exactly 24 px in English — no headroom either
   way. The floor is now explicit rather than incidental. */
.btn-cta-ghost,
.btn-outline {
  display: inline-flex;
  align-items: center;
  min-height: 24px;
}
/* The scroll-spy dots are decorative duplicates of the section nav; they were
   6 px targets. Hidden from pointers and assistive tech rather than pretending
   they are usable controls. */
#sec-dots { pointer-events: none; }


/* --- Accessibility: contrast -------------------------------------------
   `--ink-40` was rgba(227,238,240,0.4) = 3.2:1 against the section
   backgrounds, below the 4.5:1 WCAG AA minimum, and it is used for 29 text
   colours (logo-wall captions, project meta labels, breadcrumbs, section
   eyebrows). Raised to 0.55 = 4.8:1. The one border that uses it is
   unaffected in any meaningful way. */
.link-teal { display: inline-flex; align-items: center; min-height: 24px; }


/* --- Contact form: wizard is an enhancement, not the baseline -------------
   The form ships as one ordinary <form> that posts to contact-handler.php.
   With JavaScript off, every section and the submit button are visible and
   the enquiry still sends; the step chrome (progress bar, Back/Next) is
   hidden because nothing would drive it. js/main.js adds .js-wizard once it
   has bound the step handlers, and only then does the form collapse to one
   step at a time. Previously .f-step was display:none unconditionally, which
   left steps 2 and 3 — including the submit button — permanently unreachable
   without JavaScript. */
.form-progress { display: none; }
.form-nav { display: none; }
#fs3 .form-nav { display: flex; justify-content: flex-end; }
.js-wizard .form-progress { display: flex; }
.js-wizard .form-nav { display: flex; justify-content: space-between; }
.js-wizard .f-step { display: none; }
.js-wizard .f-step.active { display: block; }

/* --- Logo wall: marks that ship with a plate baked into the bitmap ---------
   Three of the supplied files (formula-1.png, tga.jpg, red-sea-festival.png)
   have no alpha channel — the border pixels are fully opaque, so the mark
   arrives sitting on a solid rectangle that cannot be removed in CSS without
   recolouring the artwork itself.

   Rather than filter or key out that rectangle (which would distort the
   trademark), the cell is given a tile of the SAME tone as the baked plate.
   The plate then continues seamlessly into the tile and reads as a deliberate
   logo tile instead of a bright or dark box floating on the card.

   `brightness()` is dropped for these: it blows out a white plate and lifts a
   dark one, which is what made the Red Sea mark look inconsistent.

   This is mitigation, not a fix. Remove the `plate` key from
   seo/site.config.json -> logoWall the moment transparent assets arrive. */
.lw-logo--plate {
  filter: none;
  opacity: 1;
  padding: 7px 9px;
  border-radius: 8px;
  /* The tile is part of the mark's box, so the reserved height must not grow. */
  box-sizing: border-box;
}
.lw-logo--plate-light { background: #fff; }
.lw-logo--plate-dark { background: #222; }
.lw-item:hover .lw-logo--plate { opacity: 1; }

/* --- LCP guard: the page's largest text must not wait for JavaScript -------
   Measured 2026-08-01 (local lab, no throttling): on every service, landing,
   contact and blog route the Largest Contentful Paint element is the <h1>,
   and it carries .rv — so it started at opacity:0 and only painted once
   main.js added .on. First Contentful Paint was ~40 ms; LCP was ~965 ms. The
   gap was entirely the reveal, on a connection with no latency at all; on a
   mid-tier phone it scales with JS parse and execute time.

   The reveal is kept — the element still slides up from 52 px — but it starts
   opaque, so the browser can count it as painted immediately. Only the
   above-the-fold LCP candidates are opted out; every other .rv element on the
   page still fades in exactly as before. */
h1.rv,
.direct-answer.rv,
.hero-h1.rv {
  opacity: 1;
}

/* --- Target size: .sv-fc-more was 21 px tall on desktop (WCAG 2.5.8) -------
   Measured 2026-08-04 on /services/ and /ar/services/: the six "what is
   included" links rendered 289×21 px in English and 126×20 px in Arabic.
   A 40 px floor already existed for this class — but only inside
   @media (max-width:768px), so it never applied to a mouse or trackpad, which
   2.5.8 also covers. The floor is restated here unconditionally at the 24 px
   minimum, and the padding is split so the extra height lands around the text
   instead of pushing the underline away from it. */
.link-teal,
.btn-outline,
.btn-cta-ghost,
.sv-fc-more,
.sv-more {
  min-height: 24px;
}
a.sv-fc-more {
  display: inline-flex;
  align-items: center;
  padding-top: 3px;
}

/* --- Form label legibility -------------------------------------------------
   Measured 2026-08-04: the contact form's field labels and step labels
   rendered at 9 px. These are not decorative eyebrows — a visitor has to read
   them to know what each field wants, and they are the only visible label
   (the inputs use a floated-label pattern). Raised to 11 px; letter-spacing is
   eased slightly so the longer labels do not grow wider than their field.
   The .ft-col-title footer headings are functional navigation headings for
   the same reason. Decorative section eyebrows (.sec-tag, .cta-tag,
   .hero-eyebrow) are deliberately left at 10 px. */
.c-float-label {
  font-size: 11px;
  letter-spacing: 0.2em;
}
.c-float-input:focus ~ .c-float-label,
.c-float-input:not(:placeholder-shown) ~ .c-float-label {
  font-size: 11px;
  letter-spacing: 0.22em;
}
.fp-label {
  font-size: 11px;
}
.ft-col-title {
  font-size: 11px;
}

/* --- Touch floor for text CTAs --------------------------------------------
   The 2026-08-01 pass added an unconditional 24 px floor for .btn-cta-ghost /
   .btn-outline to fix a 23 px Arabic measurement. Because it sits later in the
   file than the `@media (max-width:768px)` block that gave the same classes a
   40 px floor, it won on mobile too — so the phone build silently dropped from
   40 px to 24 px. Measured 2026-08-04 at 390 px: "Explore Our Services",
   "View Our Projects" and the inline .link-teal CTAs were all exactly 24 px.

   24 px stays as the pointer-agnostic WCAG 2.5.8 floor; touch input gets 44 px
   back. `pointer: coarse` is the correct signal — a 1280 px tablet needs the
   larger target and a 700 px desktop window does not. */
@media (pointer: coarse) {
  .link-teal,
  .btn-outline,
  .btn-cta-ghost,
  .sv-fc-more,
  .sv-more,
  a.sv-fc-more {
    min-height: 44px;
  }
}

/* --- The FAQ block was never inside the layout container ------------------
   Measured 2026-08-04 at 1440 and 2000 px on /, /ar/ and every service,
   landing and blog route: `.faq-block` sits outside `.wrap`, so it took the
   full viewport width with zero side padding — the heading and the accordion
   rows ran flush to x=0 while every neighbouring section stopped at the 1440
   px container. On a 2000 px display the section was 560 px wider than the
   rest of the page, and the answer text (capped at 702 px) floated in a card
   that was 2000 px wide.

   /contact/ is the exception — there the block genuinely is inside a `.wrap`
   already, so the `:not(.wrap *)` guard leaves it alone rather than padding
   it twice. Values mirror `.wrap` exactly, including both its breakpoints.

   The homepage also carried `style="padding: 120px 0"` inline, whose
   shorthand reset the horizontal padding at inline specificity; that is now
   `padding-top`/`padding-bottom` in pages/home.html and pages/home_ar.html so
   the container rule can apply. */
.faq-block:not(.wrap *) {
  box-sizing: border-box;
  max-width: 1440px;
  margin-inline: auto;
  padding-left: 72px;
  padding-right: 72px;
}
@media (max-width: 768px) {
  .faq-block:not(.wrap *) { padding-left: 20px; padding-right: 20px; }
}
@media (max-width: 360px) {
  .faq-block:not(.wrap *) { padding-left: 16px; padding-right: 16px; }
}

/* --- The CTA banner's trust line was not centred --------------------------
   `.hero-trust` is a block with `max-width: 580px` and no auto margins, so
   inside the centred `.cta-inner` it aligned to the inline-start edge instead
   of the centre — measured 178 px left of centre in English at every width,
   and 178 px right of centre in Arabic. Everything else in that banner (the
   eyebrow, the h2, the sub, the buttons) is centred, so the trust line read
   as misaligned.

   Scoped to #cta-banner: the same class also appears in #hero inside
   `.hero-bottom`, where hugging the start edge is correct and was verified
   flush in both directions. */
#cta-banner .hero-trust {
  margin-inline: auto;
}

/* --- The mobile drawer's links escaped the drawer when it opened ----------
   Two faults compounding, both visible the moment the burger was tapped.

   1. The site header is styled off the bare element selector
      `nav { position: fixed; top:0; left:0; right:0; z-index:300 }`. The
      drawer's link list is also a <nav> (`.mob-links`), so it inherited all
      of it. While the drawer was closed this was invisible: `.mob-drawer` has
      `transform: translateX(100%)`, and a transform makes the drawer the
      containing block for fixed descendants. `.mob-drawer.open` sets
      `transform: none` — the containing block disappears, and the link list
      snapped to the viewport at top:0 left:0 right:0, full width, on top of
      the header and the logo. Measured at 390 px: `.mob-links` x=0 w=390
      while the drawer itself was correctly at x=50 w=340.

      This is the same root cause already patched for `.svc-crumbs` further up
      this file — that fix treated the one symptom, not the bare selector, and
      `.mob-links` is the other <nav> on every page.

   2. The 2026-08-01 target-size rule set `display: inline-flex` on
      `.n-links a, .mob-links a, …`. That has the same specificity as the
      original `.mob-links a { display: block }` and sits later in the file,
      so it won — the drawer links became inline-level and flowed in a wrapped
      horizontal row instead of stacking. Restoring the column on the parent
      blockifies them again as flex items.

   The real fix is to scope the header rule to #nav, but that lifts its
   specificity from 0,0,1 to 1,0,0 across a 110 KB sheet with a lot riding on
   the current cascade. Resetting the two affected <nav>s is the contained
   change; the selector itself is flagged in docs/AUDIT-2026-08-04.md §3.3. */
.mob-links {
  position: static;
  top: auto;
  left: auto;
  right: auto;
  z-index: auto;
  padding: 0;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  transition: none;
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* --- The burger was painting the browser's default button chrome ----------
   `.nav-burger` is a <button> and nothing in this sheet ever set its
   background or border, so it inherited the UA defaults: `background:
   buttonface` (#efefef) and `border: outset`. On mobile that put a solid
   light-grey box behind the three white bars, top-right of a dark teal
   header, on all 48 routes in both languages — most obvious with the drawer
   open, where the box sits over the panel.

   Only this one control was affected; every other button on the site
   (.f-btn-next, .f-btn-prev, .faq summary triggers) already sets its own
   background. Verified by sweeping every <button> and submit input on eight
   routes at 390 px. */
.nav-burger {
  background: none;
  border: 0;
  -webkit-appearance: none;
  appearance: none;
  color: inherit;
}
