:root{--purple:#7427f5;--violet:#a776ff;--ink:#141118;--soft:#f2eff6;--white:#fff;--line:#ded8e6}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--soft);color:var(--ink);font-family:"DM Sans",sans-serif}img{display:block;width:100%}a{color:inherit;text-decoration:none}.site-header{position:fixed;z-index:20;top:0;left:0;right:0;height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:rgba(20,17,24,.92);backdrop-filter:blur(14px);color:white}.brand{display:flex;align-items:center;gap:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.brand img{width:50px;height:42px;object-fit:contain}.site-header nav{display:flex;align-items:center;gap:29px;font-size:14px;font-weight:600}.site-header nav a:not(.nav-cta):hover{color:var(--violet)}.nav-cta,.button{display:inline-flex;justify-content:center;align-items:center;padding:14px 22px;border-radius:999px;font-weight:700;transition:.25s}.nav-cta{padding:11px 18px;background:var(--purple)}.menu{display:none;border:0;background:none}.hero{position:relative;min-height:100vh;padding:150px 5vw 90px;display:grid;grid-template-columns:.8fr 1.2fr;align-items:center;gap:5vw;background:var(--ink);color:#fff;overflow:hidden}.hero:before{content:"";position:absolute;width:520px;height:520px;border-radius:50%;background:var(--purple);filter:blur(170px);opacity:.35;left:-180px;top:120px}.hero-copy,.hero-visual{position:relative;z-index:1}.eyebrow{text-transform:uppercase;letter-spacing:.18em;font-size:12px;font-weight:700;color:var(--purple)}.hero .eyebrow,.contact .eyebrow{color:var(--violet)}h1,h2,h3{font-family:"Oswald",sans-serif;margin:0;text-transform:uppercase}h1{font-size:clamp(68px,8vw,134px);line-height:.86;letter-spacing:-.045em}h1 em,h2 span{color:var(--purple);font-style:normal}.lead{max-width:560px;font-size:clamp(17px,2vw,22px);line-height:1.55;color:#c9c3cf;margin:32px 0}.actions{display:flex;gap:12px;flex-wrap:wrap}.primary{background:var(--purple);color:white}.ghost{border:1px solid #5b5361}.button:hover{transform:translateY(-2px)}.hero-visual{height:68vh;min-height:480px;border-radius:30px;overflow:hidden}.hero-visual:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 55%,#141118cc)}.hero-visual>img{height:100%;object-fit:cover}.stamp{position:absolute;z-index:2;right:24px;bottom:24px;width:150px;height:150px;border-radius:50%;background:var(--purple);display:flex;flex-direction:column;align-items:center;justify-content:center;text-transform:uppercase}.stamp strong,.stamp span{font-size:10px;letter-spacing:.12em}.stamp b{font:700 34px "Oswald"}.marquee{position:absolute;bottom:0;left:0;right:0;overflow:hidden;padding:16px;background:var(--purple);white-space:nowrap;font:600 16px "Oswald";letter-spacing:.1em}.marquee div{width:max-content;animation:scroll 24s linear infinite}@keyframes scroll{to{transform:translateX(-50%)}}.section{padding:110px 6vw}.section-head{display:grid;grid-template-columns:1fr 1fr;column-gap:5vw;margin-bottom:58px}.section-head .eyebrow{grid-column:1/-1}.section-head h2,.about h2,.contact h2{font-size:clamp(49px,6vw,88px);line-height:.95;letter-spacing:-.035em}.section-head>p:last-child{align-self:end;max-width:540px;color:#6b6470;line-height:1.7}.service-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.service-card{position:relative;min-height:330px;padding:38px;border:1px solid var(--line);background:white;overflow:hidden}.service-card.purple{background:var(--purple);color:white;border-color:var(--purple)}.service-card>span{font:500 42px "Oswald"}.service-card h3{font-size:31px;max-width:440px;margin:28px 0 17px}.service-card p{max-width:430px;line-height:1.7;color:#716a76}.service-card.purple p{color:#e5d9fa}.service-card>b{position:absolute;right:24px;bottom:-18px;font:700 86px "Oswald";opacity:.08}.work{background:#18151b;color:white}.work .section-head>p:last-child{display:none}.project-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.project{position:relative;min-height:460px;overflow:hidden}.project-wide{grid-column:1/-1;min-height:620px}.project img{height:100%;position:absolute;object-fit:cover;transition:.7s}.project:hover img{transform:scale(1.035)}.project:after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,#120d18ee 2%,transparent 70%)}.project div{position:absolute;z-index:2;left:32px;bottom:30px;right:32px}.project small{text-transform:uppercase;color:#c8a9ff;font-weight:700;letter-spacing:.12em}.project h3{font-size:clamp(28px,4vw,52px);max-width:820px;margin-top:10px}.about{display:grid;grid-template-columns:1.08fr .92fr;gap:6vw;align-items:center}.about-photo{height:720px;position:relative}.about-photo img{height:100%;object-fit:cover}.about-photo span{position:absolute;left:20px;bottom:20px;background:var(--purple);color:white;padding:12px 16px;text-transform:uppercase;font-weight:700}.about-copy>p:not(.eyebrow){line-height:1.8;color:#625b66;font-size:17px}.about-copy ul{list-style:none;padding:0;margin:30px 0}.about-copy li{padding:14px 0;border-bottom:1px solid var(--line);font-weight:600}.about-copy li:before{content:"↗";color:var(--purple);margin-right:12px}.credentials{display:flex;gap:8px;flex-wrap:wrap}.credentials>*{padding:9px 13px;background:white}.credentials strong{background:var(--ink);color:white}.catalogues{background:#e9e3ef}.catalogue-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.catalogue-card{padding:18px;background:white}.catalogue-art{height:470px;overflow:hidden;background:#ddd}.catalogue-art img{height:100%;object-fit:cover;transition:.5s}.catalogue-card:hover img{transform:scale(1.04)}.catalogue-card>span{display:block;margin:20px 0 8px;color:var(--purple);font-size:12px;text-transform:uppercase;font-weight:700;letter-spacing:.1em}.catalogue-card h3{font-size:32px}.catalogue-card>p{font-weight:700}.trusted{text-align:center}.logo-row{display:grid;grid-template-columns:repeat(6,1fr);align-items:center;gap:20px;margin-top:40px}.logo-row img,.logo-row strong{height:85px;padding:20px;background:white;object-fit:contain}.logo-row strong{display:grid;place-items:center;text-transform:uppercase;color:#746d78}.contact{display:grid;grid-template-columns:1fr 1fr;gap:7vw;background:var(--purple);color:white}.contact h2 span{color:#c7a8ff}.contact-info{align-self:end;display:flex;flex-direction:column;align-items:flex-start;gap:15px}.contact-info p{max-width:560px;font-size:18px;line-height:1.6;color:#e5d9fa}.light{background:white;color:var(--purple);margin:10px 0}.contact-info>a:not(.button){font-weight:700}footer{padding:55px 6vw;background:var(--ink);color:#aaa;display:grid;grid-template-columns:180px 1fr auto;gap:40px;align-items:center;font-size:13px}footer img{width:150px}.reveal{opacity:0;transform:translateY(24px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:850px){.site-header{height:68px}.brand span{display:none}.menu{display:grid;gap:6px;padding:10px}.menu span{display:block;width:24px;height:2px;background:white}.site-header nav{display:none;position:absolute;top:68px;left:0;right:0;padding:24px;background:var(--ink);flex-direction:column;align-items:stretch}.site-header nav.open{display:flex}.hero{padding-top:105px;grid-template-columns:1fr}.hero-visual{height:48vh;min-height:350px}.section{padding:78px 22px}.section-head,.about,.contact{grid-template-columns:1fr}.section-head{gap:18px}.service-grid,.project-grid,.catalogue-grid{grid-template-columns:1fr}.project-wide{grid-column:auto;min-height:480px}.project{min-height:420px}.about-photo{height:480px}.logo-row{grid-template-columns:repeat(2,1fr)}footer{grid-template-columns:1fr;text-align:left}.stamp{width:110px;height:110px}.catalogue-art{height:390px}}

.hero-discipline{font-size:14px;word-spacing:.34em;color:#fff!important}
.hero-products{display:grid;grid-template-columns:1.34fr .86fr;grid-template-rows:1fr 1fr;gap:8px;background:#211b28;padding:8px}
.hero-products:after{pointer-events:none}
.hero-products>img{position:relative;height:100%;min-height:0;object-fit:cover}
.hero-product-main{grid-row:1/3}
.hero-product-top,.hero-product-bottom{grid-column:2}
.hero-project{position:absolute;z-index:2;left:28px;bottom:26px;display:flex;max-width:390px;flex-direction:column;align-items:flex-start;text-shadow:0 2px 18px #000}
.hero-project span,.hero-project small{text-transform:uppercase;letter-spacing:.13em;font-size:10px;font-weight:700;color:#d8c0ff}
.hero-project strong{margin:5px 0 3px;font:700 clamp(25px,3vw,43px) "Oswald",sans-serif;text-transform:uppercase;line-height:1}
@media(max-width:850px){.hero-products{grid-template-columns:1.25fr .75fr}.hero-project{left:20px;bottom:22px;right:120px}.hero-project strong{font-size:23px}.hero-project small{line-height:1.4}}

.hero-visual .stamp{right:20px;bottom:20px;width:auto;height:auto;min-width:138px;padding:14px 18px;border:1px solid rgba(255,255,255,.34);border-radius:14px;background:rgba(20,17,24,.8);backdrop-filter:blur(12px);box-shadow:0 12px 32px rgba(0,0,0,.28);align-items:flex-start}
.hero-visual .stamp strong{font-size:9px;letter-spacing:.2em;color:#cdb4ff}
.hero-visual .stamp b{margin:2px 0;font-size:30px;line-height:1}
.hero-visual .stamp span{font-size:9px;letter-spacing:.1em;color:#fff}
@media(max-width:850px){.hero-visual .stamp{right:14px;bottom:14px;min-width:120px;padding:11px 14px}.hero-visual .stamp b{font-size:25px}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto}.reveal{opacity:1;transform:none}.marquee div{animation:none}}

/* Client wall */
.trusted{background:#fff;text-align:left}
.trusted-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:7vw;align-items:end}
.trusted-heading h2{font-size:clamp(46px,5.5vw,80px);line-height:.96;letter-spacing:-.035em}
.trusted-heading>p{margin:0;color:#69616e;line-height:1.75}
.featured-clients{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:48px}
.featured-clients-primary{grid-template-columns:repeat(4,minmax(0,1fr))}
.client-logo{height:180px;margin:0;padding:30px;display:grid;place-items:center;border:1px solid #e7e0eb;border-radius:18px;background:#fff;box-shadow:0 12px 35px rgba(24,15,31,.07);transition:transform .25s ease,box-shadow .25s ease}
.client-logo:hover{transform:translateY(-4px);box-shadow:0 20px 45px rgba(83,31,128,.14)}
.client-logo img{display:block;max-width:82%;max-height:105px;width:auto;height:auto;object-fit:contain;filter:saturate(.96)}
.client-logo-wide img{max-width:90%;max-height:92px}
.client-directory{display:grid;grid-template-columns:1.15fr .9fr 1fr;gap:12px;margin-top:12px}
.client-directory article{padding:30px;background:#19161d;color:#fff}
.client-directory article:nth-child(2){background:#28232d}
.client-directory article:nth-child(3){background:var(--purple)}
.client-directory article>span{display:block;margin-bottom:20px;color:#c5a3ff;font:600 19px "Oswald",sans-serif;text-transform:uppercase;letter-spacing:.045em}
.client-directory article:nth-child(3)>span{color:#fff}
.client-directory ul{list-style:none;margin:0;padding:0}
.client-directory li{padding:9px 0;border-bottom:1px solid rgba(255,255,255,.12);font-size:14px;line-height:1.35}
.client-directory li:last-child{border-bottom:0}
.client-note{margin:16px 0 0;color:#8a818d;font-size:12px;text-align:right}
.client-wall{margin:48px 0 0;padding:0;overflow:hidden;border:1px solid #ded8e6;border-radius:24px;background:#fff;box-shadow:0 28px 70px rgba(25,15,34,.18)}
.client-wall img{width:100%;height:auto}
.client-name-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:48px;border-top:1px solid #dcd5e1}
.client-name-list span{padding:19px 4px;border-bottom:1px solid #dcd5e1;color:#3f3943;font-size:clamp(14px,1.25vw,18px);font-weight:400;line-height:1.45;letter-spacing:0}
.client-name-list span:nth-child(odd){padding-right:28px;border-right:1px solid #dcd5e1}
.client-name-list span:nth-child(even){padding-left:28px}
.client-name-list-compact{margin-top:18px}
.client-more{margin:22px 0 0;color:var(--purple);font-size:16px;font-weight:500;letter-spacing:.04em;text-align:center}
.catalogue-art-contain{background:#f2eff6}
.catalogue-art-contain img{object-fit:contain}
.project-duo{display:grid;grid-template-columns:1.45fr .75fr;gap:4px;background:#120d18}
.project-duo figure{position:relative;margin:0;min-width:0;overflow:hidden}
.project-duo figure img{inset:0;width:100%;height:100%;object-fit:cover}
.project-duo>div{pointer-events:none}
.project-triptych{display:grid;grid-template-columns:1.25fr .72fr 1fr;gap:4px;background:#120d18}
.project-triptych figure{position:relative;margin:0;min-width:0;height:520px;overflow:hidden}
.project-triptych figure img{width:100%;height:100%;object-fit:cover}
.project-triptych figure:nth-child(2) img{object-position:center 38%}
.project-triptych>div{pointer-events:none}
.print-class{background:#f5f1f8;color:var(--ink)}
.class-heading{display:grid;grid-template-columns:.9fr 1.1fr;gap:7vw;align-items:end;margin-bottom:48px}
.class-heading h2{font-size:clamp(52px,6.5vw,94px);line-height:.92;letter-spacing:-.035em}
.class-heading h2 span{color:var(--purple)}
.class-intro{max-width:650px;color:#625b66;font-size:17px;line-height:1.75}
.class-label{margin:0 0 16px;color:var(--purple);font-weight:700;text-transform:uppercase;letter-spacing:.06em}
.class-intro ul{display:grid;gap:10px;margin:23px 0 0;padding:0;list-style:none;color:var(--ink);font-weight:600}
.class-intro li:before{content:"↗";margin-right:11px;color:var(--purple)}
.class-gallery{display:grid;grid-template-columns:1.45fr .75fr;grid-template-rows:1fr 1fr;gap:10px;height:680px}
.class-gallery figure{margin:0;overflow:hidden;background:#211b28}
.class-gallery .class-main{grid-row:1/3}
.class-gallery img{height:100%;object-fit:cover;transition:transform .6s ease}
.class-gallery figure:hover img{transform:scale(1.025)}
.class-gallery figure:nth-child(2) img{object-position:center}
.class-gallery figure:nth-child(3) img{object-position:center 42%}
.class-footer{display:grid;grid-template-columns:1fr 1fr;gap:5vw;align-items:end;margin-top:28px;padding-top:28px;border-top:1px solid #d7cfdd}
.class-footer strong{font:700 clamp(32px,4vw,56px)/.98 "Oswald",sans-serif;text-transform:uppercase}
.class-footer span{max-width:570px;color:#6b6470;line-height:1.7}
@media(max-width:850px){.project-duo{grid-template-columns:1fr}.project-duo figure:last-of-type{display:none}}
@media(max-width:850px){.project-triptych{grid-template-columns:1fr 1fr}.project-triptych figure{height:350px}.project-triptych figure:first-of-type{grid-column:1/-1}.project-triptych figure:nth-of-type(3){display:none}}
@media(max-width:850px){.class-heading,.class-footer{grid-template-columns:1fr;gap:22px}.class-gallery{grid-template-columns:1fr 1fr;grid-template-rows:1.4fr .8fr;height:620px}.class-gallery .class-main{grid-column:1/-1;grid-row:auto}.class-intro{font-size:16px}}
@media(max-width:850px){.trusted-heading{grid-template-columns:1fr;gap:18px}.featured-clients,.featured-clients-primary{grid-template-columns:repeat(2,1fr);margin-top:32px}.client-logo{height:105px;padding:16px}.client-directory{grid-template-columns:1fr}.client-directory article{padding:25px}.client-note{text-align:left}}
@media(max-width:650px){.client-name-list{grid-template-columns:1fr;margin-top:32px}.client-name-list span,.client-name-list span:nth-child(odd),.client-name-list span:nth-child(even){padding:19px 0;border-right:0}}

/* SME Corp visit */
.sme-visit{display:block;background:#211a29;color:#fff}
.sme-visit-heading{display:grid;grid-template-columns:1.08fr .92fr;gap:6vw;align-items:end;margin-bottom:42px}
.sme-visit-heading h2{font-size:clamp(48px,6vw,86px);line-height:.95;letter-spacing:-.035em}
.sme-visit-heading h2 span{color:var(--violet)}
.sme-visit-copy{border-left:1px solid #554763;padding-left:32px}
.sme-visit-copy p{margin:0 0 16px;color:#d5cedb;font-size:17px;line-height:1.75}
.sme-visit-copy p:last-child{margin-bottom:0}
.sme-visit-gallery{display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:220px 220px;gap:16px}
.sme-visit-gallery figure{margin:0;overflow:hidden;background:#141118}
.sme-visit-gallery .sme-visit-main{grid-row:1/3}
.sme-visit-gallery img{width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.sme-visit-gallery figure:hover img{transform:scale(1.025)}
.sme-visit-footer{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-top:28px;padding-top:30px;border-top:1px solid #51445c}
.sme-visit-footer strong{font:700 clamp(32px,4vw,58px)/1 "Oswald",sans-serif;text-transform:uppercase;letter-spacing:-.02em}
.sme-visit-footer span{max-width:440px;color:#cfc6d4;font-size:17px;line-height:1.65}

@media(max-width:850px){
  .sme-visit-heading,.sme-visit-footer{grid-template-columns:1fr;gap:24px}
  .sme-visit-copy{border-left:0;padding-left:0}
  .sme-visit-gallery{grid-template-columns:1fr 1fr;grid-template-rows:330px 220px}
  .sme-visit-gallery .sme-visit-main{grid-column:1/-1;grid-row:auto}
}

/* Visitor counter and protected live records */
.visitor-counter{display:flex;justify-content:center;gap:clamp(1rem,5vw,4rem);margin:1.6rem auto .7rem;padding:1.1rem 1.4rem;max-width:650px;border:1px solid rgba(255,255,255,.16);border-radius:18px;background:rgba(255,255,255,.05)}
.visitor-counter div{display:grid;gap:.2rem;text-align:center}.visitor-counter strong{font-size:clamp(1.45rem,3vw,2.1rem);color:#fff}.visitor-counter span{font-size:.72rem;letter-spacing:.09em;text-transform:uppercase;color:#bdb7c7}.visitor-record-link{display:inline-block;color:#b998ff;font-size:.8rem;margin:.2rem 0 1rem}
.visitor-admin-page{min-height:100vh;background:#120f17;color:#f7f4fb}.visitor-admin-header{display:flex;align-items:center;gap:1.2rem;padding:1.2rem clamp(1.2rem,5vw,5rem);border-bottom:1px solid #352c40;background:#1b1621}.visitor-admin-header img{width:54px;height:54px;object-fit:contain}.visitor-admin-header h1{font-size:clamp(1.5rem,3vw,2.4rem);margin:0}.visitor-admin-header .eyebrow{margin:0;color:#b58cff}.visitor-lock{margin-left:auto;background:transparent;color:#fff;border:1px solid #675577;border-radius:999px;padding:.7rem 1.1rem;cursor:pointer}
.visitor-admin-main{width:min(1180px,calc(100% - 2rem));margin:clamp(2rem,5vw,5rem) auto}.visitor-login-card,.visitor-table-card{background:#211b28;border:1px solid #3c3049;border-radius:22px;padding:clamp(1.3rem,4vw,2.5rem)}.visitor-login-card{max-width:520px;margin:auto}.visitor-login-card h2{font-size:clamp(2rem,5vw,3.4rem);margin:.4rem 0 1rem}.visitor-login-card form{display:grid;gap:.8rem;margin-top:1.5rem}.visitor-login-card input{width:100%;padding:1rem;border:1px solid #59466d;border-radius:10px;background:#151119;color:#fff;font:inherit}.visitor-login-card .button{border:0;cursor:pointer}.visitor-message{min-height:1.4em;color:#ff9d9d;margin:0}
.visitor-summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin-bottom:1rem}.visitor-summary-grid article{padding:1.4rem;border-radius:18px;background:linear-gradient(145deg,#7225f7,#4a159f)}.visitor-summary-grid span{display:block;font-size:.75rem;text-transform:uppercase;letter-spacing:.1em;color:#e5d8ff}.visitor-summary-grid strong{display:block;margin-top:.4rem;font-size:clamp(1.5rem,4vw,2.7rem)}.visitor-table-heading{display:flex;align-items:end;justify-content:space-between;gap:1rem}.visitor-table-heading h2{margin:.2rem 0}.visitor-table-heading button{padding:.65rem 1rem;border:1px solid #694f82;border-radius:999px;background:transparent;color:#fff;cursor:pointer}.visitor-privacy-note{color:#aaa1b3;font-size:.85rem}.visitor-table-wrap{overflow:auto}.visitor-table-card table{width:100%;border-collapse:collapse;min-width:760px}.visitor-table-card th,.visitor-table-card td{text-align:left;padding:.9rem .7rem;border-bottom:1px solid #3a3044;font-size:.86rem}.visitor-table-card th{color:#b998ff;text-transform:uppercase;letter-spacing:.07em;font-size:.7rem}.visitor-status{display:inline-block;padding:.3rem .6rem;border-radius:999px;background:#403747;color:#cfc5d6}.visitor-status.online{background:#123f31;color:#86f1c5}
@media(max-width:700px){.visitor-counter{gap:.7rem;padding:1rem .5rem}.visitor-counter span{font-size:.6rem}.visitor-summary-grid{grid-template-columns:1fr 1fr}.visitor-admin-header{align-items:flex-start}.visitor-admin-header img{width:42px;height:42px}}
@media(max-width:560px){
  .sme-visit-gallery{grid-template-columns:1fr;grid-template-rows:280px 230px 230px}
  .sme-visit-gallery .sme-visit-main{grid-column:auto;grid-row:auto}
  .sme-visit-heading h2{font-size:42px}
}
