:root{
  --black:#0D0D0D;--blue:#1D3557;--white:#FFF;--muted:rgba(255,255,255,.58);
  --line:rgba(255,255,255,.12);--ease:cubic-bezier(.22,1,.36,1);--max:1400px
}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--black)}
body{margin:0;background:var(--black);color:var(--white);font-family:Inter,Arial,sans-serif;overflow-x:hidden}
body.is-loading{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}
::selection{background:var(--blue);color:#fff}
.site-header{position:fixed;z-index:100;top:0;left:0;width:100%;height:82px;padding:0 4vw;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid transparent;transition:.4s var(--ease)}
.site-header.scrolled{background:rgba(13,13,13,.82);backdrop-filter:blur(18px);border-color:var(--line)}
.brand{display:flex;align-items:center;gap:9px;font-size:11px;font-weight:800;letter-spacing:.16em}.brand-mark{width:30px;height:30px}
.brand-mark img{width:100%;height:100%;display:block;object-fit:contain}
.nav{display:flex;align-items:center;gap:28px}.nav a{position:relative;font-size:10px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}
.nav a.active,.nav a:hover{color:#fff}.nav a:after{content:"";position:absolute;left:0;bottom:-8px;width:100%;height:1px;background:#fff;transform:scaleX(0);transform-origin:right;transition:.35s var(--ease)}
.nav a.active:after,.nav a:hover:after{transform:scaleX(1);transform-origin:left}
.menu-toggle{display:none;border:0;background:none;width:42px;height:42px;padding:10px}.menu-toggle span{display:block;height:1px;background:#fff;margin:7px 0}
main{min-height:100vh}.section{position:relative;padding:150px 5vw;max-width:1500px;margin:auto}.hero{min-height:100svh;max-width:none;display:flex;align-items:center;justify-content:center;overflow:hidden;padding:130px 5vw}
.grain{position:absolute;inset:0;opacity:.035;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.hero-content{position:relative;z-index:2;text-align:center;width:min(1050px,100%);display:flex;flex-direction:column;align-items:center;gap:28px}.hero-logo{width:min(300px,68vw);margin:0;display:flex;flex-direction:column;align-items:center;gap:5px;flex:0 0 auto}.hero-logo img{width:100%;display:block;object-fit:contain}.hero-logo-text{font-size:clamp(15px,1.45vw,19px);font-weight:800;letter-spacing:.30em;line-height:1;white-space:nowrap;margin:0;padding-left:.30em}.hero-content .eyebrow{margin:0}.hero-content h1{max-width:1000px;margin:0;font-size:clamp(54px,8vw,122px);line-height:.94;letter-spacing:-.065em}.hero-copy{max-width:480px;margin:0;color:var(--muted);font-size:14px;line-height:1.7}.hero-content .actions{margin:0}
.eyebrow{margin:0 0 20px;color:var(--muted);font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase}
h1,h2,h3{font-family:Manrope,Inter,Arial,sans-serif;margin:0}h1{font-size:clamp(60px,9.5vw,145px);line-height:.94;letter-spacing:-.075em}h1 span{color:#d9e3ee}
.actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}
.button{display:inline-flex;align-items:center;justify-content:space-between;gap:26px;min-width:175px;padding:15px 18px;border:0;border-radius:0;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;cursor:pointer;transition:transform .35s var(--ease),background .35s ease,color .35s ease}
.button:hover{transform:translateY(-3px)}
.button-primary{background:var(--blue);color:#fff}
.button-primary:hover{background:#294a77;color:#fff}
.button-ghost{background:rgba(255,255,255,.06);color:#fff}
.button-ghost:hover{background:rgba(255,255,255,.12);color:#fff}
.hero-meta{position:absolute;z-index:2;left:5vw;right:5vw;bottom:25px;display:flex;justify-content:space-between;color:rgba(255,255,255,.38);font-size:8px;letter-spacing:.18em}
.page-hero{padding-top:190px;padding-bottom:100px;min-height:60vh;display:flex;align-items:flex-end;border-bottom:0}
.page-hero h1{font-size:clamp(60px,9vw,135px);max-width:1050px}.page-hero-copy{max-width:520px;color:var(--muted);line-height:1.8;font-size:14px;margin-top:25px}
.section-head{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:55px}.section-head h2{font-size:clamp(48px,6vw,90px);line-height:.95;letter-spacing:-.065em}.section-head p{max-width:400px;color:var(--muted);font-size:13px;line-height:1.7}
.projects-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:70px 26px}.project-card.wide{grid-column:1/-1}.project-media{position:relative;display:block;overflow:hidden;aspect-ratio:4/3;background:#111}.wide .project-media{aspect-ratio:16/8}
.media-fallback{position:absolute;inset:0;background:radial-gradient(circle at 70% 25%,rgba(29,53,87,.9),transparent 35%),linear-gradient(135deg,#090909,#18212d 60%,#080808);transition:.9s var(--ease)}
.media-fallback.b{background:radial-gradient(circle at 20% 75%,rgba(29,53,87,.85),transparent 38%),linear-gradient(145deg,#070707,#18202a 55%,#090909)}
.media-fallback.c{background:radial-gradient(circle at 65% 35%,rgba(29,53,87,.75),transparent 35%),linear-gradient(160deg,#151515,#08090a 70%)}
.media-fallback.d{background:radial-gradient(circle at 30% 30%,rgba(29,53,87,.65),transparent 35%),linear-gradient(145deg,#111,#090909 70%)}
.project-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.04);transition:.7s ease}.project-media:hover .project-video,.project-media.playing .project-video{opacity:1;transform:scale(1)}
.project-media:hover .media-fallback{transform:scale(1.06);filter:brightness(.7)}.project-overlay{position:absolute;inset:0;padding:18px;display:flex;justify-content:space-between;z-index:2;pointer-events:none}.project-num{font-size:9px;letter-spacing:.18em;color:rgba(255,255,255,.6)}.project-open{align-self:flex-end;padding:9px 11px;background:rgba(13,13,13,.5);backdrop-filter:blur(10px);font-size:8px;letter-spacing:.15em}
.project-info{display:flex;justify-content:space-between;gap:20px;padding-top:16px;border-top:1px solid var(--line);margin-top:14px}.project-info h3{font-size:18px;font-weight:600}.project-info p{margin:7px 0 0;color:var(--muted);font-size:10px}.project-arrow{color:var(--muted);font-size:20px}
.filters{display:flex;gap:24px;flex-wrap:wrap;margin-bottom:45px}.filter{border:0;background:transparent;color:var(--muted);padding:7px 0;font-size:9px;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;position:relative}.filter::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .3s var(--ease)}.filter.active,.filter:hover{background:transparent;color:#fff}.filter.active::after,.filter:hover::after{transform:scaleX(1)}
.project-card.hidden{display:none}.modal{position:fixed;z-index:200;inset:0;background:rgba(0,0,0,.86);backdrop-filter:blur(15px);display:grid;place-items:center;padding:5vw;opacity:0;visibility:hidden;transition:.4s ease}.modal.open{opacity:1;visibility:visible}.modal-box{position:relative;width:min(1050px,100%);max-height:90vh;overflow:auto;background:#101010;border:1px solid var(--line);padding:30px}.modal-close{position:absolute;right:15px;top:15px;border:0;background:transparent;color:#fff;width:38px;height:38px;cursor:pointer;font-size:22px;line-height:1;opacity:.8}.modal-close:hover{opacity:1}.modal-video{width:100%;aspect-ratio:16/9;object-fit:cover;background:#080808}.modal h3{font-size:35px;margin-top:25px}.modal p{max-width:700px;color:var(--muted);line-height:1.8;font-size:13px}
.showreel-wrap{max-width:1150px;margin:auto}.main-video{position:relative;aspect-ratio:16/9;background:#090909;border:1px solid var(--line);overflow:hidden}.main-video video{width:100%;height:100%;object-fit:cover}.video-placeholder{position:absolute;inset:0;display:grid;place-items:center;background:radial-gradient(circle at 70% 30%,rgba(29,53,87,.8),transparent 35%),#090909;color:#fff}.video-placeholder span{font-size:10px;letter-spacing:.2em} .coming-soon{display:grid;place-items:center;background:radial-gradient(circle at 70% 30%,rgba(29,53,87,.55),transparent 38%),#090909}.coming-soon-inner{text-align:center;padding:40px}.coming-soon-label{display:block;font-size:10px;letter-spacing:.24em;color:#aebbd0;margin-bottom:18px}.coming-soon h2{margin:0 0 12px;font-size:clamp(42px,7vw,86px);line-height:.95}.coming-soon p{margin:0;color:#aebbd0}
.process-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;margin-top:70px}.process-card{padding-top:20px;border-top:1px solid var(--line)}.process-card span{color:var(--muted);font-size:9px;letter-spacing:.15em}.process-card h3{margin:25px 0 12px;font-size:24px}.process-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.8}
.about-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw}.about-profile{position:relative;aspect-ratio:4/5;overflow:hidden;background:radial-gradient(circle at 70% 30%,rgba(29,53,87,.8),transparent 35%),linear-gradient(145deg,#080808,#18202a)}.profile-label{position:absolute;left:20px;bottom:20px;font-size:9px;letter-spacing:.18em}.about-copy{max-width:650px}.about-copy .lead{font-family:Manrope;font-size:clamp(27px,3.4vw,48px);line-height:1.13;letter-spacing:-.045em;margin:0 0 30px}.about-copy p:not(.lead){color:var(--muted);font-size:14px;line-height:1.9;margin:0 0 25px}.timeline{margin-top:65px;border-top:1px solid var(--line)}.timeline-row{display:grid;grid-template-columns:130px 1fr;gap:30px;padding:22px 0;border-bottom:1px solid var(--line)}.timeline-row span{color:var(--muted);font-size:10px}.timeline-row p{margin:0;font-size:13px;line-height:1.7}
.article-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:25px}.article-card{border-top:1px solid var(--line);padding-top:15px}.article-image{aspect-ratio:16/10;background:radial-gradient(circle at 75% 25%,rgba(29,53,87,.85),transparent 35%),linear-gradient(145deg,#080808,#18202a);margin-bottom:20px}.article-card:nth-child(2) .article-image{background:radial-gradient(circle at 25% 70%,rgba(29,53,87,.85),transparent 38%),linear-gradient(145deg,#080808,#18202a)}.article-meta{color:var(--muted);font-size:9px;letter-spacing:.14em;text-transform:uppercase}.article-card h3{font-size:27px;margin:12px 0}.article-card p{color:var(--muted);font-size:12px;line-height:1.7;max-width:500px}.article-link{display:inline-block;margin-top:10px;font-size:9px;letter-spacing:.15em;text-transform:uppercase}
.article-content{max-width:800px;margin:auto}.article-content h1{font-size:clamp(50px,7vw,100px)}.article-content .article-date{margin:25px 0;color:var(--muted);font-size:10px;letter-spacing:.15em;text-transform:uppercase}.article-content p{font-size:15px;line-height:2;color:var(--muted)}.article-content .lead{font-size:22px;color:#fff;line-height:1.6}.article-visual{width:100%;aspect-ratio:16/9;margin:45px 0;background:radial-gradient(circle at 70% 30%,rgba(29,53,87,.8),transparent 35%),#090909}
.contact-grid{display:grid;grid-template-columns:1fr .65fr;gap:10vw}.contact-form{display:flex;flex-direction:column;gap:30px}.contact-form label{border-bottom:1px solid var(--line);padding-bottom:12px}.contact-form label span{display:block;color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.17em;margin-bottom:10px}.contact-form input,.contact-form textarea,.contact-form select{width:100%;border:0;outline:0;background:transparent;color:#fff}.contact-form select{appearance:none}.contact-form select option{background:#0d0d0d;color:#fff}.contact-form textarea{resize:vertical;min-height:130px}.contact-details{display:flex;flex-direction:column}.contact-details a{padding:20px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:7px;transition:.35s var(--ease)}.contact-details a:hover{padding-left:10px}.detail-label{color:var(--muted);font-size:9px;text-transform:uppercase;letter-spacing:.17em}.contact-details a span:last-child{font-size:14px}
.footer{display:flex;justify-content:space-between;gap:20px;padding:30px 5vw;border-top:1px solid var(--line);color:rgba(255,255,255,.38);font-size:8px;letter-spacing:.16em}
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .9s var(--ease)}.reveal.visible{opacity:1;transform:none}
.cursor-glow{position:fixed;z-index:1;width:260px;height:260px;border-radius:50%;background:rgba(29,53,87,.1);filter:blur(55px);pointer-events:none;transform:translate(-50%,-50%);opacity:0}
@media(pointer:fine){body:hover .cursor-glow{opacity:1}}
@media(max-width:850px){
  .site-header{height:70px}.nav{position:fixed;inset:70px 0 auto 0;display:flex;flex-direction:column;align-items:stretch;gap:0;padding:10px 6vw 25px;background:rgba(13,13,13,.97);border-bottom:1px solid var(--line);transform:translateY(-120%);transition:.45s var(--ease)}.nav.open{transform:none}.nav a{padding:16px 0;border-bottom:1px solid var(--line)}.menu-toggle{display:block}.section{padding:110px 7vw}.hero{padding:100px 7vw}.hero-content{gap:22px}.hero-logo{width:min(260px,72vw)}.hero-content h1{font-size:clamp(48px,11vw,82px);line-height:.98}.hero-logo-text{font-size:14px;letter-spacing:.27em}.hero-meta{left:7vw;right:7vw}.hero-meta span:nth-child(2){display:none}.projects-grid,.article-grid,.about-layout,.contact-grid{grid-template-columns:1fr}.project-card.wide{grid-column:auto}.process-grid{grid-template-columns:1fr}.page-hero{min-height:55vh}.section-head{display:block}.section-head p{margin-top:20px}.timeline-row{grid-template-columns:90px 1fr}.footer{padding:25px 7vw;flex-direction:column;gap:9px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}


/* =========================================================
   FINAL HERO LAYOUT FIX
   All hero content stays in normal document flow.
   ========================================================= */
.hero {
    position: relative;
    min-height: 100svh;
    width: 100%;
    max-width: none;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0;
    overflow: hidden;
    padding: 120px 5vw 36px;
}

.hero-content {
    position: relative;
    z-index: 2;
    width: min(1050px, 100%);
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1.5rem;
}

.hero-brand {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: .28rem;
    margin: 0;
    padding: 0;
}

.hero-logo {
    display: block;
    width: clamp(155px, 18vw, 235px);
    height: auto;
    max-width: 100%;
    margin: 0;
    padding: 0;
    object-fit: contain;
}

.hero-brand-name {
    margin: 0;
    padding: 0 0 0 .30em;
    color: #fff;
    font-size: clamp(16px, 1.55vw, 21px);
    font-weight: 800;
    letter-spacing: .30em;
    line-height: 1.05;
    white-space: nowrap;
}

.hero-subtitle {
    margin: 0;
    padding: 0;
    color: rgba(255,255,255,.68);
    font-size: clamp(11px, 1.1vw, 14px);
    font-weight: 500;
    letter-spacing: .14em;
    line-height: 1.5;
    text-transform: uppercase;
}

.hero-title {
    width: 100%;
    max-width: 1000px;
    margin: 0;
    padding: 0;
    color: #fff;
    font-size: clamp(3rem, 7vw, 7.6rem);
    font-weight: 600;
    letter-spacing: -.055em;
    line-height: .98;
    text-wrap: balance;
}

.hero-title span {
    display: inline;
}

.hero-copy {
    max-width: 520px;
    margin: 0;
    padding: 0;
    color: var(--muted);
    font-size: 14px;
    line-height: 1.7;
}

.hero-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 0;
    padding: 0;
    flex-wrap: wrap;
}

.hero-meta {
    position: relative;
    z-index: 2;
    left: auto;
    right: auto;
    bottom: auto;
    width: min(1050px, 100%);
    margin: auto auto 0;
    padding-top: 28px;
    display: flex;
    justify-content: space-between;
    gap: 20px;
    box-sizing: border-box;
    color: rgba(255,255,255,.38);
    font-size: 8px;
    letter-spacing: .18em;
}

@media (max-width: 768px) {
    .hero {
        min-height: 100svh;
        padding: 105px 7vw 28px;
    }

    .hero-content {
        gap: 1.3rem;
    }

    .hero-logo {
        width: clamp(145px, 31vw, 190px);
    }

    .hero-brand-name {
        font-size: clamp(13px, 3vw, 17px);
        letter-spacing: .26em;
    }

    .hero-subtitle {
        font-size: 10px;
        letter-spacing: .1em;
    }

    .hero-title {
        font-size: clamp(2.8rem, 10.5vw, 5rem);
        line-height: 1;
    }

    .hero-meta {
        padding-top: 24px;
    }
}

@media (max-width: 480px) {
    .hero {
        min-height: 100svh;
        padding: 96px 18px 24px;
    }

    .hero-content {
        gap: 1.15rem;
    }

    .hero-logo {
        width: 150px;
    }

    .hero-brand-name {
        font-size: 13px;
        letter-spacing: .22em;
    }

    .hero-subtitle {
        max-width: 320px;
        font-size: 9px;
        line-height: 1.55;
    }

    .hero-title {
        font-size: clamp(2.45rem, 13vw, 4rem);
        line-height: 1.02;
    }

    .hero-copy {
        max-width: 330px;
        font-size: 13px;
    }

    .hero-actions {
        width: 100%;
        flex-direction: column;
    }

    .hero-actions .button {
        width: min(300px, 100%);
        box-sizing: border-box;
    }

    .hero-meta {
        padding-top: 20px;
        font-size: 7px;
    }

    .hero-meta span:nth-child(2) {
        display: none;
    }
}


/* =========================================
   LANGUAGE SWITCHER
   ========================================= */
.language-switcher{
  display:flex;
  align-items:center;
  gap:4px;
  margin-left:18px;
  flex:0 0 auto;
}
.language-button{
  border:1px solid transparent;
  background:transparent;
  color:rgba(255,255,255,.45);
  padding:7px 8px;
  font-size:9px;
  line-height:1;
  letter-spacing:.08em;
  cursor:pointer;
  transition:.25s ease;
  border-radius:2px;
}
.language-button:hover,
.language-button.active{
  color:#fff;
  border-color:var(--line);
  background:rgba(255,255,255,.04);
}
.language-button:focus-visible{
  outline:1px solid #fff;
  outline-offset:2px;
}
@media (max-width: 900px){
  .site-header{gap:12px}
  .language-switcher{margin-left:auto;margin-right:2px}
  .menu-toggle{flex:0 0 auto}
}
@media (max-width: 700px){
  .language-switcher{position:relative;z-index:102}
  .language-button{padding:7px 6px;font-size:8px}
}


/* =========================================
   LANGUAGE SWITCHER
   ========================================= */
.language-switcher{
  display:flex;
  align-items:center;
  gap:4px;
  margin-left:18px;
  flex:0 0 auto;
}
.language-button{
  border:1px solid transparent;
  background:transparent;
  color:rgba(255,255,255,.45);
  padding:7px 8px;
  font-size:9px;
  line-height:1;
  letter-spacing:.08em;
  cursor:pointer;
  transition:.25s ease;
  border-radius:2px;
}
.language-button:hover,
.language-button.active{
  color:#fff;
  border-color:var(--line);
  background:rgba(255,255,255,.04);
}
.language-button:focus-visible{
  outline:1px solid #fff;
  outline-offset:2px;
}
@media (max-width: 900px){
  .site-header{gap:12px}
  .language-switcher{margin-left:auto;margin-right:2px}
  .menu-toggle{flex:0 0 auto}
}
@media (max-width: 700px){
  .language-switcher{position:relative;z-index:102}
  .language-button{padding:7px 6px;font-size:8px}
}



/* =========================================
   HOMEPAGE: SEAMLESS BLACK FLOW
   ========================================= */
.home-page .hero {
  background: var(--black);
}
.home-page .section-head > div,
.home-page .section-head > p,
.home-page .project-info {
  position: relative;
  z-index: 2;
}
.home-page .section-head > p,
.home-page .project-info p {
  color: rgba(255,255,255,.92);
}
.home-page .section-head h2,
.home-page .hero-title,
.home-page .hero-title span {
  color: #fff;
}
.home-page .section-head {
  align-items: flex-end;
}
.home-page .section-head h2 {
  line-height: 1.02;
}

/* =========================================
   CLEAN PROJECT OVERLAY LABEL
   ========================================= */
.project-open {
  align-self: flex-end;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
  color: #fff;
  font-size: 8px;
  line-height: 1.2;
  letter-spacing: .15em;
}
.project-open:hover {
  color: #fff;
}

/* Empty project modal media stays clean without placeholder text. */
.modal-video {
  background: #090909;
}

/* =========================================
   FLAG-ONLY LANGUAGE SWITCHER
   ========================================= */
.language-switcher {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-left: 18px;
  flex: 0 0 auto;
}
.language-button {
  width: 28px;
  height: 19px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1px solid transparent;
  border-radius: 2px;
  background: transparent;
  color: #fff;
  cursor: pointer;
  transition: transform .25s var(--ease), border-color .25s ease, opacity .25s ease;
}
.language-button svg {
  display: block;
  width: 24px;
  height: 16px;
}
.language-button:hover {
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.28);
}
.language-button.active {
  border-color: rgba(255,255,255,.7);
  background: rgba(255,255,255,.04);
}
.language-button:focus-visible {
  outline: 1px solid #fff;
  outline-offset: 3px;
}
@media (max-width: 900px) {
  .language-switcher { margin-left: auto; margin-right: 2px; }
}
@media (max-width: 700px) {
  .language-switcher { position: relative; z-index: 102; gap: 5px; }
  .language-button { width: 26px; height: 18px; }
  .language-button svg { width: 22px; height: 15px; }
}


/* =========================================
   CUSTOM PROJECT TYPE DROPDOWN
   ========================================= */
.custom-select{position:relative;width:100%}
.custom-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0;border:0;background:transparent;color:#fff;text-align:left;cursor:pointer;line-height:1.4}
.custom-select-trigger .custom-select-value{font-size:14px;color:#fff}
.custom-select-chevron{width:8px;height:8px;border-right:1px solid #fff;border-bottom:1px solid #fff;transform:rotate(45deg) translateY(-2px);transition:transform .3s var(--ease);opacity:.75}
.custom-select.open .custom-select-chevron{transform:rotate(225deg) translate(-2px,-2px)}
.custom-select-menu{position:absolute;left:0;right:0;top:calc(100% + 10px);z-index:20;padding:7px;background:#0D0D0D;border:1px solid rgba(255,255,255,.14);box-shadow:0 18px 45px rgba(0,0,0,.45);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .25s ease,transform .3s var(--ease),visibility .25s ease}
.custom-select.open .custom-select-menu{opacity:1;visibility:visible;transform:translateY(0)}
.custom-select-option{width:100%;display:block;padding:12px 13px;border:0;background:transparent;color:rgba(255,255,255,.7);font-size:12px;text-align:left;cursor:pointer;transition:background .2s ease,color .2s ease}
.custom-select-option:hover,.custom-select-option[aria-selected="true"]{background:rgba(29,53,87,.45);color:#fff}
.contact-form label:has(.custom-select){position:relative;z-index:10}
.contact-form .button{align-self:flex-start}

/* Main headings stay crisp and consistent */
h1,h2,h3,h1 span{color:#fff}
.section-head h2{line-height:1.02}
.page-hero h1{line-height:1.0}

/* FINAL LAST-PASS: seamless homepage hero */
.home-page,
.home-page body,
.home-page main,
.home-page .hero,
.home-page .section {
  background-color: #0D0D0D;
}

.home-page .hero {
  border: 0 !important;
  box-shadow: none !important;
  isolation: isolate;
}



/* Project detail links: text only, no button box or browser styling. */
.project-open,
button.project-open {
  appearance: none;
  -webkit-appearance: none;
  border: 0 !important;
  outline: 0;
  box-shadow: none !important;
  border-radius: 0;
  padding: 0 !important;
  margin: 0;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  color: #fff;
  font: inherit;
  font-size: 8px;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: .15em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .25s ease, opacity .25s ease, transform .25s ease;
}

.project-open:hover,
.project-open:focus-visible {
  color: #fff;
  opacity: .68;
  transform: translateY(-1px);
}

.project-open:focus-visible {
  outline: 1px solid rgba(255,255,255,.45);
  outline-offset: 5px;
}


/* =========================================
   FINAL HOMEPAGE CLEANUP: NO HERO EDGE
   ========================================= */
.home-page .hero {
  background:
    radial-gradient(circle at 80% 35%, rgba(29,53,87,.62), transparent 34%),
    radial-gradient(circle at 15% 72%, rgba(29,53,87,.16), transparent 27%),
    #0D0D0D;
  border: 0 !important;
  box-shadow: none !important;
  overflow-x: hidden;
  overflow-y: visible;
}


/* Keep the hero title fully inside its own line box. */
.home-page .hero-title {
  width: min(1100px, 100%);
  max-width: 1100px;
  min-width: 0;
  margin: 0;
  padding: .02em 0 .06em;
  box-sizing: border-box;
  font-size: clamp(3.25rem, 7vw, 7.6rem);
  line-height: 1.04;
  letter-spacing: -.04em;
  overflow: visible;
  word-break: normal;
  overflow-wrap: normal;
  text-wrap: balance;
}

.home-page .hero-title span {
  display: inline;
  line-height: inherit;
  letter-spacing: inherit;
}

@media (max-width: 768px) {
  .home-page .hero-title {
    width: min(100%, 700px);
    max-width: 100%;
    padding: .03em 0 .08em;
    font-size: clamp(2.8rem, 10.5vw, 5rem);
    line-height: 1.04;
    letter-spacing: -.035em;
  }
}

@media (max-width: 480px) {
  .home-page .hero-title {
    width: 100%;
    padding: .03em 0 .08em;
    font-size: clamp(2.45rem, 13vw, 4rem);
    line-height: 1.05;
    letter-spacing: -.03em;
  }
}


/* =========================================================
   DEFINITIVE HOMEPAGE EDGE RESET
   One continuous #0D0D0D canvas from hero into the page.
   ========================================================= */
.home-page main,
.home-page .hero,
.home-page .hero-content,
.home-page .section {
  background: #0D0D0D !important;
  background-image: none !important;
  border: none !important;
  border-top: none !important;
  border-right: none !important;
  border-bottom: none !important;
  border-left: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.home-page .hero {
  position: relative;
  isolation: isolate;
  overflow-x: hidden;
  overflow-y: visible;
}

.home-page .hero::before,
.home-page .hero::after,
.home-page main::before,
.home-page main::after,
.home-page .section::before,
.home-page .section::after {
  content: none !important;
  display: none !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.home-page .hero-bg,
.home-page .hero-bg::before,
.home-page .hero-bg::after {
  display: none !important;
  background: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* =========================================================
   ARROW VISUALS / NEXT-LEVEL CINEMATIC GLASS REDESIGN
   ========================================================= */
:root{
  --av-bg:#050505;
  --av-surface:rgba(255,255,255,.025);
  --av-surface-strong:rgba(255,255,255,.045);
  --av-glass-border:rgba(255,255,255,.12);
  --av-glass-hi:rgba(255,255,255,.2);
  --av-shadow:0 24px 80px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.06);
  --av-blue:#1D3557;
}

html,body{
  background:var(--av-bg);
}

body.home-page{
  background:
    radial-gradient(circle at 50% 0%, rgba(29,53,87,.16), transparent 34%),
    var(--av-bg);
}

/* Header: floating glass slab */
.site-header{
  height:88px;
  padding:12px 3.5vw;
  background:transparent;
  border:0 !important;
  box-shadow:none !important;
}
.site-header .header-glass{
  width:100%;
  height:64px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 12px 0 18px;
  border:1px solid transparent;
  border-radius:18px;
  background:
    linear-gradient(rgba(255,255,255,.035),rgba(255,255,255,.018)) padding-box,
    linear-gradient(110deg,rgba(255,255,255,.18),rgba(255,255,255,.015) 45%,rgba(255,255,255,.08)) border-box;
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  box-shadow:0 20px 55px rgba(0,0,0,.32), inset 0 1px 0 rgba(255,255,255,.05);
}
.site-header.scrolled .header-glass{
  background:
    linear-gradient(rgba(10,10,10,.58),rgba(10,10,10,.42)) padding-box,
    linear-gradient(110deg,rgba(255,255,255,.22),rgba(255,255,255,.025) 45%,rgba(255,255,255,.1)) border-box;
  box-shadow:0 22px 65px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.06);
}
.brand{
  height:40px;
  padding:0 12px 0 0;
  gap:10px;
  border-radius:12px;
  transition:transform .35s var(--ease),opacity .35s ease;
}
.brand:hover{transform:translateY(-1px);opacity:.92}
.brand-mark{width:32px;height:32px}
.nav{gap:5px;padding:5px;border:1px solid rgba(255,255,255,.055);border-radius:13px;background:rgba(255,255,255,.018)}
.nav a{
  padding:9px 12px;
  border-radius:9px;
  font-size:9px;
  color:rgba(255,255,255,.52);
  transition:color .3s ease,background .3s ease,box-shadow .3s ease,transform .3s var(--ease);
}
.nav a:after{display:none}
.nav a.active,.nav a:hover{
  color:#fff;
  background:rgba(255,255,255,.055);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 5px 18px rgba(0,0,0,.16);
  transform:translateY(-1px);
}
.language-switcher{margin-left:8px;padding:4px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(255,255,255,.018)}
.language-button{border:1px solid transparent;border-radius:8px;padding:7px 7px;background:transparent}
.language-button:hover,.language-button.active{border-color:rgba(255,255,255,.08);background:rgba(255,255,255,.055)}

/* Hero: layered depth, no hard section edge */
.home-page main,
.home-page .hero,
.home-page .section{
  background-color:var(--av-bg);
}
.home-page .hero{
  position:relative;
  isolation:isolate;
  min-height:100svh;
  padding:145px 5vw 42px;
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
  overflow:hidden;
}
.home-page .hero::before{
  content:"";
  position:absolute;
  inset:-20%;
  z-index:-3;
  pointer-events:none;
  background:
    radial-gradient(circle at 50% 36%,rgba(29,53,87,.24),transparent 28%),
    radial-gradient(circle at 83% 18%,rgba(255,255,255,.035),transparent 19%),
    radial-gradient(circle at 16% 72%,rgba(29,53,87,.11),transparent 25%);
  filter:blur(12px);
}
.home-page .hero::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:radial-gradient(ellipse at center,transparent 42%,rgba(0,0,0,.36) 100%);
}
.hero-ambient{position:absolute;z-index:-1;border-radius:50%;pointer-events:none;filter:blur(80px);opacity:.45}
.hero-ambient-one{width:420px;height:420px;top:18%;left:7%;background:rgba(29,53,87,.16)}
.hero-ambient-two{width:340px;height:340px;right:7%;bottom:14%;background:rgba(255,255,255,.045)}

.hero-content{
  width:min(1120px,100%);
  gap:25px;
}
.glass-panel{
  position:relative;
  border:1px solid transparent;
  background:
    linear-gradient(rgba(255,255,255,.025),rgba(255,255,255,.012)) padding-box,
    linear-gradient(135deg,rgba(255,255,255,.18),rgba(255,255,255,.015) 42%,rgba(255,255,255,.07)) border-box;
  backdrop-filter:blur(20px) saturate(180%);
  -webkit-backdrop-filter:blur(20px) saturate(180%);
  box-shadow:var(--av-shadow);
}
.glass-panel::after{
  content:"";
  position:absolute;
  inset:1px;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.045),transparent 28%,transparent 72%,rgba(29,53,87,.035));
  opacity:.75;
}
.hero-brand-panel{
  display:flex;
  align-items:center;
  gap:24px;
  padding:16px 21px;
  border-radius:22px;
  box-shadow:0 25px 90px rgba(0,0,0,.44),inset 0 1px 0 rgba(255,255,255,.07);
}
.hero-brand-panel .hero-brand{position:relative;z-index:1}
.hero-logo{width:clamp(130px,15vw,190px)}
.hero-brand-name{font-size:clamp(13px,1.2vw,17px);letter-spacing:.27em}
.brand-status{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  gap:8px;
  padding-left:22px;
  border-left:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.4);
  font-size:8px;
  font-weight:700;
  letter-spacing:.14em;
  white-space:nowrap;
}
.status-dot,.floating-dot{
  width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 12px rgba(255,255,255,.65);flex:0 0 auto
}
.hero-subtitle{color:rgba(255,255,255,.48);font-size:10px;letter-spacing:.2em}
.hero-title{
  width:min(1080px,100%);
  max-width:1080px;
  font-size:clamp(4rem,8vw,8.7rem);
  line-height:.94;
  letter-spacing:-.065em;
  font-weight:700;
  text-wrap:balance;
  overflow:visible;
  padding:.05em 0 .08em;
}
.hero-title span{color:#dce6f2}
.hero-copy{font-size:13px;color:rgba(255,255,255,.5)}
.hero-actions{gap:10px}
.button{
  position:relative;
  min-width:184px;
  min-height:48px;
  padding:0 18px;
  border:1px solid transparent;
  border-radius:14px;
  background:linear-gradient(rgba(255,255,255,.055),rgba(255,255,255,.018)) padding-box,linear-gradient(120deg,rgba(255,255,255,.18),rgba(255,255,255,.02)) border-box;
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  box-shadow:0 14px 40px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.06);
  transition:transform .35s var(--ease),box-shadow .35s ease,background .35s ease;
}
.button:hover{transform:translateY(-3px) scale(1.025);box-shadow:0 18px 48px rgba(0,0,0,.4),0 0 28px rgba(29,53,87,.13),inset 0 1px 0 rgba(255,255,255,.09)}
.button-primary{background:linear-gradient(135deg,rgba(29,53,87,.9),rgba(29,53,87,.56)) padding-box,linear-gradient(120deg,rgba(255,255,255,.25),rgba(255,255,255,.04)) border-box}
.button-ghost{background:linear-gradient(rgba(255,255,255,.045),rgba(255,255,255,.012)) padding-box,linear-gradient(120deg,rgba(255,255,255,.16),rgba(255,255,255,.025)) border-box}
.hero-tech{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  padding:9px 14px;
  border-radius:999px;
  color:rgba(255,255,255,.42);
  font-size:7px;
  font-weight:700;
  letter-spacing:.16em;
}
.hero-tech span,.hero-tech i{position:relative;z-index:1}
.hero-tech b{color:#fff;font-weight:800}
.hero-tech i{width:3px;height:3px;border-radius:50%;background:rgba(255,255,255,.28)}
.hero-floating{
  position:absolute;
  z-index:2;
  padding:13px 15px;
  border-radius:15px;
  color:rgba(255,255,255,.42);
  font-size:7px;
  font-weight:700;
  line-height:1.5;
  letter-spacing:.15em;
  box-shadow:0 18px 55px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.06);
}
.hero-floating>*{position:relative;z-index:1}
.floating-left{left:4vw;top:43%;display:flex;align-items:center;gap:11px}
.floating-right{right:4vw;top:51%;display:flex;align-items:center;gap:9px}
.floating-index{font-family:Manrope,Inter,sans-serif;color:#fff;font-size:16px;font-weight:700;letter-spacing:-.04em}
.hero-meta{
  width:min(1120px,100%);
  padding-top:24px;
  color:rgba(255,255,255,.27);
  border:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}

/* Ensure the hero and next section are one uninterrupted canvas */
.home-page .hero,
.home-page .hero-content,
.home-page .hero-meta,
.home-page main,
.home-page .section,
.home-page .section-head,
.home-page .projects-grid{
  border-bottom:0 !important;
  box-shadow:none !important;
  outline:0 !important;
}
.home-page .section{position:relative;background:var(--av-bg)}
.home-page .section::before{display:none !important}

@media(max-width:900px){
  .site-header{padding:10px 3vw}
  .site-header .header-glass{height:58px;border-radius:15px;padding-left:13px}
  .nav{position:fixed;inset:80px 3vw auto 3vw;padding:10px;border:1px solid rgba(255,255,255,.1);border-radius:17px;background:rgba(8,8,8,.78);backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);box-shadow:0 25px 80px rgba(0,0,0,.55)}
  .nav a{padding:14px 13px}
  .hero{padding:118px 7vw 32px}
  .hero-brand-panel{gap:16px;padding:14px 16px;border-radius:18px}
  .brand-status{padding-left:15px;font-size:7px}
  .hero-title{font-size:clamp(3.25rem,10.5vw,6rem);line-height:.97}
  .hero-floating{display:none}
}
@media(max-width:600px){
  .site-header .header-glass{padding-right:8px}
  .brand{font-size:9px;letter-spacing:.12em}
  .brand-mark{width:28px;height:28px}
  .language-switcher{margin-left:auto}
  .hero{padding:105px 18px 24px}
  .hero-brand-panel{width:100%;justify-content:center;flex-direction:column;gap:11px;padding:14px 15px}
  .brand-status{border-left:0;border-top:1px solid rgba(255,255,255,.08);padding:9px 0 0}
  .hero-logo{width:145px}
  .hero-brand-name{font-size:12px;letter-spacing:.22em}
  .hero-title{font-size:clamp(2.7rem,12.5vw,4.6rem);line-height:1;letter-spacing:-.06em}
  .hero-copy{max-width:330px;font-size:12px}
  .hero-actions{width:100%;flex-direction:column}
  .hero-actions .button{width:min(310px,100%)}
  .hero-tech{max-width:100%;gap:9px;font-size:6px}
  .hero-meta{font-size:6px}
}
@media(prefers-reduced-motion:reduce){
  .button,.nav a,.brand{transition:none!important}
}


/* =========================================================
   ARROW VISUALS / APPLE-GRADE IMMERSIVE GLASS SYSTEM
   v6 polish layer
   ========================================================= */
:root{
  --av-bg:#050505;
  --av-surface:rgba(255,255,255,.025);
  --av-surface-strong:rgba(255,255,255,.045);
  --av-stroke:rgba(255,255,255,.12);
  --av-stroke-soft:rgba(255,255,255,.065);
  --av-blue:#1D3557;
  --av-shadow:0 24px 80px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.055);
  --av-spring:cubic-bezier(.16,1,.3,1);
}

html{
  scroll-behavior:smooth;
  background:var(--av-bg);
  scroll-padding-top:92px;
}
body{
  background:var(--av-bg);
  color:#fff;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
main,.home-page main,.section,.home-page .section{
  background:var(--av-bg);
}

/* Full-bleed cinematic hero */
.home-page .hero{
  width:100vw;
  max-width:none;
  min-height:100svh;
  margin-left:calc(50% - 50vw);
  margin-right:calc(50% - 50vw);
  padding:128px 5vw 34px;
  background:
    radial-gradient(circle at 50% 38%,rgba(29,53,87,.13),transparent 32%),
    radial-gradient(circle at 88% 20%,rgba(255,255,255,.035),transparent 25%),
    #050505;
  border:0!important;
  box-shadow:none!important;
}
.home-page .hero::after{
  background:radial-gradient(ellipse at center,transparent 46%,rgba(0,0,0,.48) 100%);
}

/* Remove the old boxed hero metadata entirely */
.home-page .hero-tech{display:none!important}

/* Immersive header */
.site-header{
  height:76px;
  padding:10px 3vw;
  border:0!important;
  background:transparent;
}
.site-header .header-glass{
  width:100%;
  height:56px;
  display:flex;
  align-items:center;
  gap:14px;
  padding:0 10px 0 14px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:18px;
  background:rgba(255,255,255,.022);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  box-shadow:0 18px 70px rgba(0,0,0,.28),inset 0 1px 0 rgba(255,255,255,.065);
}
.site-header.scrolled .header-glass{
  background:rgba(8,8,8,.68);
  border-color:rgba(255,255,255,.105);
  box-shadow:0 18px 70px rgba(0,0,0,.42),inset 0 1px 0 rgba(255,255,255,.07);
}
.brand{
  flex:0 0 auto;
  transition:transform .5s var(--av-spring),opacity .35s ease;
}
.brand:hover{transform:translateY(-1px)}
.nav{
  margin-left:auto;
  padding:4px;
  gap:2px;
  border:1px solid rgba(255,255,255,.045);
  border-radius:13px;
  background:rgba(255,255,255,.018);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
}
.nav a{
  padding:8px 10px;
  border-radius:9px;
  transition:transform .45s var(--av-spring),background .35s ease,color .35s ease;
}
.nav a::after{display:none}
.nav a.active,.nav a:hover{
  background:rgba(255,255,255,.06);
  color:#fff;
  transform:translateY(-1px);
}

/* Perfectly contained flag control */
.language-switcher{
  width:67px;
  height:36px;
  margin-left:4px;
  padding:3px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:3px;
  flex:0 0 67px;
  border:1px solid rgba(255,255,255,.08);
  border-radius:12px;
  background:rgba(255,255,255,.025);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
.language-button{
  width:29px;
  height:28px;
  min-width:29px;
  min-height:28px;
  padding:0;
  margin:0;
  display:grid;
  place-items:center;
  border:1px solid transparent;
  border-radius:8px;
  overflow:hidden;
  transform:none;
  transition:transform .45s var(--av-spring),background .3s ease,border-color .3s ease;
}
.language-button svg{
  width:23px;
  height:15px;
  display:block;
  flex:0 0 auto;
}
.language-button:hover{transform:translateY(-1px);border-color:rgba(255,255,255,.14);background:rgba(255,255,255,.045)}
.language-button.active{border-color:rgba(255,255,255,.16);background:rgba(255,255,255,.075)}
.language-button:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:1px}

/* Glass section headers and micro labels */
.section-head{
  align-items:flex-end;
  gap:22px;
}
.section-head>div{
  position:relative;
  padding:22px 24px 20px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:24px;
  background:rgba(255,255,255,.022);
  backdrop-filter:blur(20px) saturate(175%);
  -webkit-backdrop-filter:blur(20px) saturate(175%);
  box-shadow:var(--av-shadow);
}
.section-head>div::before,
.page-hero>div::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.055),transparent 35%,transparent 72%,rgba(29,53,87,.035));
}
.eyebrow,
.project-open,
.detail-label,
.profile-label,
.coming-soon-label{
  width:max-content;
  max-width:100%;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.085);
  border-radius:999px;
  background:rgba(255,255,255,.035);
  backdrop-filter:blur(16px) saturate(175%);
  -webkit-backdrop-filter:blur(16px) saturate(175%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 8px 30px rgba(0,0,0,.16);
}
.section-head .eyebrow{margin:0 0 16px}

/* Universal glass treatment for media, placeholders and image slots */
.project-media,
.main-video,
.about-profile,
.article-card,
.article-media,
.modal-box,
.video-placeholder,
.coming-soon,
.media-fallback{
  border:1px solid rgba(255,255,255,.09);
  box-shadow:0 25px 90px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.055);
}
.project-media,
.main-video,
.about-profile,
.article-card,
.modal-box,
.video-placeholder,
.coming-soon{
  backdrop-filter:blur(18px) saturate(165%);
  -webkit-backdrop-filter:blur(18px) saturate(165%);
}
.project-media::after,
.main-video::after,
.about-profile::after,
.article-card::after,
.modal-box::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  pointer-events:none;
  background:linear-gradient(135deg,rgba(255,255,255,.045),transparent 30%,transparent 72%,rgba(29,53,87,.035));
  opacity:.8;
}

/* Glass DETAILS / archive pills */
.project-open{
  align-self:flex-end;
  position:relative;
  z-index:3;
  padding:8px 11px;
  color:#fff;
  background:rgba(8,8,8,.42);
  transition:transform .5s var(--av-spring),background .3s ease,border-color .3s ease;
}
.project-media:hover .project-open{
  transform:translateY(-2px);
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.16);
}

/* Cards feel physical without becoming heavy */
.project-card,.process-card,.article-card,.timeline-row,.contact-details a{
  transition:transform .6s var(--av-spring),border-color .35s ease,background .35s ease,box-shadow .5s var(--av-spring);
}
.article-card{position:relative;}
.project-card:hover{transform:translateY(-5px)}

/* Buttons: tactile, soft spring motion */
.button{
  min-height:50px;
  padding:0 18px;
  border-radius:15px;
  transition:transform .55s var(--av-spring),box-shadow .55s var(--av-spring),background .35s ease,border-color .35s ease;
}
.button:active{transform:translateY(0) scale(.975)!important}
.button:focus-visible{outline:2px solid rgba(255,255,255,.7);outline-offset:4px}
.button:hover{transform:translateY(-3px) scale(1.025)}

/* Contact form uses the same glass language */
.contact-form label{
  position:relative;
  padding:18px 18px 15px;
  border:1px solid rgba(255,255,255,.075);
  border-radius:16px;
  background:rgba(255,255,255,.018);
  backdrop-filter:blur(16px) saturate(160%);
  -webkit-backdrop-filter:blur(16px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.contact-form label:focus-within{
  border-color:rgba(255,255,255,.18);
  box-shadow:0 14px 45px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.065);
}
.custom-select-menu{
  padding:6px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:16px;
  background:rgba(8,8,8,.66);
  backdrop-filter:blur(24px) saturate(180%);
  -webkit-backdrop-filter:blur(24px) saturate(180%);
  box-shadow:0 24px 80px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.06);
}
.custom-select-option{border-radius:11px;transition:transform .4s var(--av-spring),background .25s ease,color .25s ease}
.custom-select-option:hover,.custom-select-option[aria-selected="true"]{background:rgba(255,255,255,.075);transform:translateX(2px)}
.contact-form .button{border:1px solid rgba(255,255,255,.13)!important}

/* Smooth page transitions */
body{opacity:0;transform:translateY(6px);transition:opacity .55s ease,transform .7s var(--av-spring)}
body.page-ready{opacity:1;transform:none}
body.page-leaving{opacity:0;transform:translateY(-5px)}

@media (max-width:900px){
  .site-header{padding:9px 3vw}
  .site-header .header-glass{height:56px;border-radius:17px}
  .nav{position:fixed;inset:76px 3vw auto 3vw;display:flex;flex-direction:column;align-items:stretch;padding:8px;border-radius:18px;background:rgba(7,7,7,.72);opacity:0;visibility:hidden;transform:translateY(-10px) scale(.985);transition:opacity .45s ease,transform .55s var(--av-spring),visibility .45s ease}
  .nav.open{opacity:1;visibility:visible;transform:none}
  .nav a{padding:14px 13px}
  .language-switcher{margin-left:auto}
  .home-page .hero{padding:112px 7vw 30px}
  .section-head>div{padding:18px 19px 17px;border-radius:20px}
}
@media (max-width:600px){
  .site-header .header-glass{padding-left:10px;padding-right:7px}
  .brand{font-size:9px;letter-spacing:.12em}
  .brand-mark{width:28px;height:28px}
  .language-switcher{width:61px;height:34px;flex-basis:61px;gap:2px;padding:2px;border-radius:11px}
  .language-button{width:27px;height:28px;min-width:27px}
  .language-button svg{width:22px;height:15px}
  .home-page .hero{padding:104px 18px 26px}
  .hero-content{width:min(100%,760px);gap:21px}
  .hero-title{width:min(100%,760px);font-size:clamp(2.8rem,12.8vw,5rem);line-height:1.01;letter-spacing:-.055em}
  .hero-brand-panel{width:min(100%,480px)}
  .section-head>div{width:100%}
  .section-head .eyebrow{margin-bottom:13px}
  .contact-form label{padding:16px 15px 14px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  body{opacity:1!important;transform:none!important;transition:none!important}
  .project-card:hover,.button:hover,.nav a:hover{transform:none}
}

/* =========================================================
   v7 UI CLEANUP: FLOATING HEADERS + FULL-BLEED SECTIONS
   ========================================================= */
.section,
.page-hero,
.home-page .section,
.home-page .hero {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  border: 0 !important;
  border-top: 0 !important;
  border-right: 0 !important;
  border-bottom: 0 !important;
  border-left: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Section/page titles float directly on the canvas. */
.section-head > div,
.page-hero > div {
  position: relative;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.section-head > div::before,
.page-hero > div::before {
  content: none !important;
  display: none !important;
}

/* Keep section backgrounds edge-to-edge and visually continuous. */
main,
.section,
.page-hero,
.home-page main,
.home-page .section,
.home-page .hero {
  background-color: var(--av-bg) !important;
  background-image: none;
}
.home-page .hero {
  background:
    radial-gradient(circle at 50% 38%,rgba(29,53,87,.13),transparent 32%),
    radial-gradient(circle at 88% 20%,rgba(255,255,255,.035),transparent 25%),
    var(--av-bg) !important;
}

/* Projects filters: refined frosted-glass pills. */
.filters {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}
.filter {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 36px;
  padding: 0 14px;
  border: 1px solid rgba(255,255,255,.09) !important;
  border-radius: 999px;
  background: rgba(255,255,255,.025) !important;
  color: rgba(255,255,255,.52);
  backdrop-filter: blur(18px) saturate(175%);
  -webkit-backdrop-filter: blur(18px) saturate(175%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.05), 0 8px 28px rgba(0,0,0,.14);
  transition:
    transform .5s var(--av-spring),
    background .3s ease,
    border-color .3s ease,
    color .3s ease,
    box-shadow .4s var(--av-spring);
}
.filter::after {
  display: none !important;
}
.filter:hover {
  color: #fff;
  background: rgba(255,255,255,.06) !important;
  border-color: rgba(255,255,255,.16) !important;
  transform: translateY(-2px);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.07), 0 12px 32px rgba(0,0,0,.22);
}
.filter.active {
  color: #fff;
  background: rgba(255,255,255,.075) !important;
  border-color: rgba(255,255,255,.18) !important;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.09), 0 12px 34px rgba(0,0,0,.2);
}
.filter:active {
  transform: scale(.97);
}
.filter:focus-visible {
  outline: 2px solid rgba(255,255,255,.65);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .filters { gap: 7px; }
  .filter { min-height: 34px; padding: 0 12px; font-size: 8px; }
}


/* =========================================
   HOMEPAGE HERO STRUCTURAL CLEANUP
   ========================================= */
.home-page .hero {
  width: 100vw;
  max-width: none;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  background: #050505;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.home-page .hero-content {
  width: min(1120px, 100%);
  max-width: 1120px;
}
.home-page .hero-brand {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: .28rem;
  padding: 0;
  margin: 0;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.home-page .hero-subtitle,
.home-page .hero-floating,
.home-page .hero-brand-panel {
  display: none !important;
}
@media (max-width: 600px) {
  .home-page .hero-brand {
    width: auto;
    padding: 0;
  }
}

/* =========================================
   v9 HERO TRANSPARENCY + SEAMLESS TRANSITION
   ========================================= */
.home-page,
.home-page main {
  background: #050505 !important;
  background-image: none !important;
}

.home-page .hero {
  width: 100vw !important;
  max-width: none !important;
  margin-left: calc(50% - 50vw) !important;
  margin-right: calc(50% - 50vw) !important;
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
  isolation: isolate;
}

.home-page .hero::before,
.home-page .hero::after {
  content: none !important;
  display: none !important;
  background: none !important;
}

.home-page .hero-content,
.home-page .hero-brand,
.home-page .hero-actions,
.home-page .hero-meta {
  background: transparent !important;
  background-image: none !important;
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.home-page .hero-content,
.home-page .hero-brand {
  padding-left: 0 !important;
  padding-right: 0 !important;
}

/* The following section shares the same canvas, so there is no rectangular seam. */
.home-page .hero + .section,
.home-page .section:first-of-type {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border-top: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Ambient light softly disappears before the hero edge instead of being clipped. */
.home-page .hero-ambient {
  -webkit-mask-image: linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
  mask-image: linear-gradient(to bottom, #000 0%, #000 68%, transparent 100%);
}

/* =========================================================
   v10 HOMEPAGE: SEAMLESS SECTION FLOW + ROUNDED WORK CARDS
   ========================================================= */
.home-page .hero,
.home-page .hero-meta,
.home-page .hero + .section,
.home-page .section,
.home-page .projects-grid {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

.home-page .hero::before,
.home-page .hero::after,
.home-page .hero + .section::before,
.home-page .hero + .section::after,
.home-page .section::before,
.home-page .section::after {
  border: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

/* Keep hero and Selected Work on one uninterrupted canvas. */
.home-page main,
.home-page .hero,
.home-page .hero + .section {
  background-color: transparent !important;
  border-image: none !important;
}

/* Modern rounded homepage work cards. */
.home-page .project-card {
  border-radius: 18px;
}

.home-page .project-media {
  border-radius: 18px !important;
  overflow: hidden !important;
  isolation: isolate;
  background-clip: padding-box;
}

.home-page .project-media::after,
.home-page .project-media > .media-fallback,
.home-page .project-media > video,
.home-page .project-media > img {
  border-radius: inherit;
}

.home-page .project-media::after {
  inset: 0;
  overflow: hidden;
}

@media (max-width: 600px) {
  .home-page .project-card,
  .home-page .project-media {
    border-radius: 16px !important;
  }
}

/* =========================================================
   v11 HOMEPAGE: TRUE SEAMLESS FLOW + COMPLETE CARD ROUNDING
   ========================================================= */
/* One continuous homepage canvas: no section-edge rule, fill or pseudo-divider. */
.home-page,
.home-page main,
.home-page .hero,
.home-page .hero + .section,
.home-page main > .section {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}
.home-page .hero::before,
.home-page .hero::after,
.home-page .hero + .section::before,
.home-page .hero + .section::after,
.home-page main > .section::before,
.home-page main > .section::after {
  content: none !important;
  display: none !important;
  border: 0 !important;
  box-shadow: none !important;
  background: none !important;
}
/* Avoid a visible seam created by spacing or a clipped edge at the handoff. */
.home-page .hero { margin-bottom: 0 !important; }
.home-page .hero + .section { margin-top: 0 !important; }

/* Rounded, coherent glass cards across homepage work grid. */
.home-page .projects-grid .project-card {
  position: relative;
  border-radius: 18px !important;
  overflow: hidden;
  border: 1px solid rgba(255,255,255,.09);
  background: rgba(255,255,255,.018);
  background-clip: padding-box;
  box-shadow: 0 25px 90px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.05) !important;
  backdrop-filter: blur(18px) saturate(165%);
  -webkit-backdrop-filter: blur(18px) saturate(165%);
}
.home-page .projects-grid .project-media {
  border-radius: 17px 17px 0 0 !important;
  overflow: hidden !important;
  border: 0 !important;
  box-shadow: none !important;
  background-clip: padding-box;
}
.home-page .projects-grid .project-media::after,
.home-page .projects-grid .project-media > .media-fallback,
.home-page .projects-grid .project-media > video,
.home-page .projects-grid .project-media > img {
  border-radius: inherit !important;
}
.home-page .projects-grid .project-info {
  margin: 0 !important;
  padding: 18px 18px 19px !important;
  border-top: 1px solid rgba(255,255,255,.07) !important;
  border-radius: 0 0 17px 17px;
}
@media (max-width:600px) {
  .home-page .projects-grid .project-card { border-radius: 16px !important; }
  .home-page .projects-grid .project-media { border-radius: 15px 15px 0 0 !important; }
  .home-page .projects-grid .project-info { border-radius: 0 0 15px 15px; }
}

/* ==========================================================
   ARROW VISUALS v20 — structural cleanup + cinematic cards
   ========================================================== */

/* 1. Seamless canvas: purge structural horizontal separators. */
html, body, main,
.section, .hero, .page-hero, .section-head,
.home-page main, .home-page .hero, .home-page .section,
.projects-page main, .blog-page main, .contact-page main {
  border-top: 0 !important;
  border-bottom: 0 !important;
  outline: 0 !important;
}
main > section,
main > section + section,
.hero + .section,
.page-hero + .section {
  border-top: 0 !important;
  border-bottom: 0 !important;
  box-shadow: none;
}
main > section::before,
main > section::after,
.hero::before,
.hero::after,
.page-hero::before,
.page-hero::after,
.section::before,
.section::after,
.section-head::before,
.section-head::after {
  border: 0 !important;
  border-top: 0 !important;
  border-bottom: 0 !important;
}
.home-page .hero + .section,
.home-page main > .section,
.page-hero + .section {
  margin-top: 0 !important;
}

/* 2. One radius system for every substantial structural card. */
:root { --card-radius: 22px; }
.project-card,
.project-media,
.work-card,
.work-grid > *,
.projects-grid > *,
.main-video,
.video-placeholder,
.coming-soon,
.about-profile,
.process-card,
.timeline-row,
.article-card,
.article-media,
.article-image,
.contact-form,
.contact-panel,
.contact-details,
.modal-box,
.media-fallback {
  border-radius: var(--card-radius) !important;
}
.project-card,
.project-media,
.work-card,
.projects-grid > *,
.main-video,
.video-placeholder,
.coming-soon,
.about-profile,
.process-card,
.timeline-row,
.article-card,
.article-media,
.contact-form,
.contact-panel,
.modal-box {
  overflow: hidden;
  background-clip: padding-box;
}
.project-media > img,
.project-media > video,
.main-video > img,
.main-video > video,
.article-media > img,
.article-media > video,
.article-image > img,
.article-image > video,
.media-fallback {
  border-radius: inherit !important;
}
/* Remove the old straight rule between media and card copy. */
.project-info,
.home-page .projects-grid .project-info {
  border-top: 0 !important;
  border-bottom: 0 !important;
}

/* 3. Blog / BTS — Apple / Artlist inspired editorial grid. */
body:has(.journal-grid) main {
  background: transparent;
}
.journal-section {
  padding-top: 42px;
}
.journal-grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  gap: 24px;
}
.journal-card {
  grid-column: span 6;
  position: relative;
  min-height: 500px;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.09) !important;
  border-radius: 24px !important;
  overflow: hidden;
  isolation: isolate;
  background: linear-gradient(145deg, rgba(255,255,255,.055), rgba(255,255,255,.018));
  backdrop-filter: blur(22px) saturate(155%);
  -webkit-backdrop-filter: blur(22px) saturate(155%);
  box-shadow: 0 28px 90px rgba(0,0,0,.28), inset 0 1px 0 rgba(255,255,255,.06);
  transition: transform .65s var(--av-spring), border-color .4s ease, box-shadow .65s var(--av-spring);
}
.journal-card::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255,255,255,.055), transparent 28%, transparent 70%, rgba(29,53,87,.06));
}
.journal-card:hover {
  transform: translateY(-7px);
  border-color: rgba(255,255,255,.16) !important;
  box-shadow: 0 34px 110px rgba(0,0,0,.38), 0 0 60px rgba(29,53,87,.10), inset 0 1px 0 rgba(255,255,255,.09);
}
.journal-visual {
  position: relative;
  height: 280px;
  overflow: hidden;
  border-radius: 23px 23px 0 0 !important;
  background:
    radial-gradient(circle at 78% 18%, rgba(72,101,145,.34), transparent 34%),
    radial-gradient(circle at 20% 78%, rgba(29,53,87,.28), transparent 40%),
    linear-gradient(135deg, #10141a, #070809 62%, #0d1520);
}
.journal-card:nth-child(2) .journal-visual {
  background:
    radial-gradient(circle at 20% 20%, rgba(255,255,255,.11), transparent 26%),
    radial-gradient(circle at 78% 70%, rgba(29,53,87,.30), transparent 38%),
    linear-gradient(145deg, #0d1014, #060708 64%, #111821);
}
.journal-visual::before {
  content: "";
  position: absolute;
  inset: -8%;
  background: linear-gradient(115deg, transparent 20%, rgba(255,255,255,.055) 48%, transparent 70%);
  transform: translateX(-28%);
  transition: transform .9s var(--av-spring), scale .9s var(--av-spring);
}
.journal-card:hover .journal-visual::before {
  transform: translateX(18%);
  scale: 1.04;
}
.journal-visual::after {
  content: "";
  position: absolute;
  inset: auto 0 0;
  height: 48%;
  background: linear-gradient(to bottom, transparent, rgba(5,5,5,.72));
}
.journal-content {
  position: relative;
  z-index: 4;
  padding: 26px 28px 30px;
}
.journal-meta {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 9px 12px;
  margin-bottom: 17px;
  color: rgba(255,255,255,.48);
  font-size: .68rem;
  font-weight: 700;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.journal-category {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 10px;
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 999px;
  background: rgba(255,255,255,.035);
  color: rgba(255,255,255,.76);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.journal-card h3 {
  margin: 0 0 13px;
  max-width: 15ch;
  font-family: Manrope, Inter, sans-serif;
  font-size: clamp(1.55rem, 2.2vw, 2.25rem);
  line-height: 1.04;
  letter-spacing: -.045em;
}
.journal-card p {
  margin: 0 0 24px;
  max-width: 55ch;
  color: rgba(255,255,255,.58);
  line-height: 1.65;
}
.journal-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  font-size: .82rem;
  font-weight: 650;
  text-decoration: none;
  transition: gap .35s var(--av-spring), opacity .3s ease;
}
.journal-card:hover .journal-link { gap: 13px; }

@media (max-width: 820px) {
  :root { --card-radius: 18px; }
  .journal-grid { grid-template-columns: 1fr; gap: 18px; }
  .journal-card { grid-column: auto; min-height: 0; border-radius: 20px !important; }
  .journal-visual { height: 220px; border-radius: 19px 19px 0 0 !important; }
  .journal-content { padding: 22px 21px 25px; }
}

/* ==========================================================
   v22 — FINAL POLISH: CONTINUOUS CANVAS + SAFE PROJECT COPY
   ========================================================== */

/* One continuous page canvas. The lighting lives on main instead of ending
   at the hero boundary, so there is no color jump at 100svh. */
html,
body,
body.home-page {
  background: #050505 !important;
  background-image: none !important;
}

.home-page main {
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(ellipse 72% 52% at 50% 18%, rgba(29,53,87,.12) 0%, rgba(18,30,44,.055) 34%, rgba(5,5,5,0) 72%),
    #050505 !important;
}

.home-page .hero,
.home-page .hero + .section,
.home-page main > .section {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  outline: 0 !important;
}

/* Old hero-local lights were clipped by the hero box and created the visible
   horizontal tonal seam. The continuous main gradient replaces them. */
.home-page .hero-ambient,
.home-page .hero::before,
.home-page .hero::after,
.home-page .hero + .section::before,
.home-page .hero + .section::after {
  display: none !important;
  content: none !important;
  background: none !important;
  border: 0 !important;
  box-shadow: none !important;
}

/* Project copy must never be cropped by the structural card. Media keeps its
   own clipping so imagery still respects the rounded corners. */
.home-page .projects-grid {
  row-gap: 84px !important;
  overflow: visible !important;
  padding-bottom: 24px !important;
}

.home-page .projects-grid .project-card {
  overflow: visible !important;
  min-height: 0 !important;
  height: auto !important;
  padding-bottom: 4px !important;
  border-radius: 22px !important;
}

.home-page .projects-grid .project-media {
  overflow: hidden !important;
  border-radius: 22px !important;
}

.home-page .projects-grid .project-info,
.home-page .projects-grid .project-info > div,
.home-page .projects-grid .project-info h3,
.home-page .projects-grid .project-info p {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  clip: auto !important;
  -webkit-line-clamp: unset !important;
}

.home-page .projects-grid .project-info {
  position: relative !important;
  display: flex !important;
  align-items: flex-start !important;
  min-height: 76px !important;
  margin: 0 !important;
  padding: 18px 18px 24px !important;
  gap: 20px !important;
  border: 0 !important;
  border-radius: 0 0 22px 22px !important;
}

.home-page .projects-grid .project-info h3 {
  margin: 0 !important;
  line-height: 1.25 !important;
}

.home-page .projects-grid .project-info p {
  display: block !important;
  margin: 8px 0 0 !important;
  padding: 0 0 2px !important;
  line-height: 1.5 !important;
  white-space: normal !important;
}

@media (max-width: 600px) {
  .home-page .projects-grid { row-gap: 64px !important; }
  .home-page .projects-grid .project-card,
  .home-page .projects-grid .project-media { border-radius: 18px !important; }
  .home-page .projects-grid .project-info {
    min-height: 72px !important;
    padding: 16px 16px 22px !important;
    border-radius: 0 0 18px 18px !important;
  }
}

/* ==========================================================
   v23 — ACTUAL SEAM + PROJECT COPY FIX
   ========================================================== */
/* The remaining 'line' was the hero-only grain/noise layer ending exactly
   at the hero boundary. Remove all hero-local visual layers so nothing can
   terminate at 100svh. The page canvas itself owns the background. */
html,
body,
body.home-page,
.home-page main {
  background-color: #050505 !important;
}

.home-page main {
  background-image:
    radial-gradient(ellipse 80% 70% at 50% 18%, rgba(29,53,87,.10) 0%, rgba(16,27,39,.045) 38%, rgba(5,5,5,0) 76%) !important;
  background-repeat: no-repeat !important;
  background-size: 100% 155vh !important;
  background-position: 0 0 !important;
}

.home-page .hero,
.home-page .hero + .section,
.home-page main > .section {
  background: transparent !important;
  background-image: none !important;
}

/* Critical: this SVG noise layer covered only the hero and made its bottom
   edge visible even after every border had been removed. */
.home-page .hero > .grain,
.home-page .hero .grain,
.home-page .hero-ambient,
.home-page .hero-bg {
  display: none !important;
  opacity: 0 !important;
  background: none !important;
  background-image: none !important;
}

/* No generated visual layer may end at the hero/section boundary. */
.home-page .hero::before,
.home-page .hero::after,
.home-page .hero + .section::before,
.home-page .hero + .section::after {
  content: none !important;
  display: none !important;
}

/* Project metadata: only media is clipped. The structural card and copy are
   allowed to grow naturally on Home and Projects. */
.projects-grid,
.projects-grid > .project-card,
.project-card,
.project-info,
.project-info > div,
.project-info h3,
.project-info p {
  overflow: visible !important;
  max-height: none !important;
  clip: auto !important;
}

.project-card {
  height: auto !important;
  min-height: 0 !important;
  padding-bottom: 18px !important;
}

.project-media,
.project-media .media-fallback,
.project-media img,
.project-media video {
  overflow: hidden !important;
  border-radius: 22px !important;
}

.project-info,
.home-page .projects-grid .project-info {
  position: relative !important;
  min-height: 82px !important;
  height: auto !important;
  margin: 0 !important;
  padding: 20px 4px 26px 2px !important;
  line-height: normal !important;
}

.project-info h3,
.project-info p {
  position: relative !important;
  display: block !important;
  transform: none !important;
  text-indent: 0 !important;
  white-space: normal !important;
}

.project-info h3 {
  margin: 0 !important;
  padding: 0 !important;
  line-height: 1.3 !important;
}

.project-info p {
  margin: 8px 0 0 !important;
  padding: 1px 0 4px !important;
  line-height: 1.55 !important;
}

.projects-grid {
  row-gap: 88px !important;
  padding-bottom: 48px !important;
}

@media (max-width: 600px) {
  .project-media,
  .project-media .media-fallback,
  .project-media img,
  .project-media video { border-radius: 18px !important; }
  .project-info,
  .home-page .projects-grid .project-info {
    min-height: 78px !important;
    padding: 18px 3px 24px 2px !important;
  }
  .projects-grid { row-gap: 68px !important; }
}


/* =========================================
   v24 — RESPONSIVE MASTER PASS + PLACEHOLDERS
   ========================================= */
html,body{width:100%;max-width:100%;overflow-x:clip}
img,video,svg,canvas{max-width:100%;height:auto}
main,.section,.hero,.site-header,.footer{min-width:0}
.section{width:min(100%,1600px);padding-inline:clamp(20px,5vw,96px)}
.site-header{width:calc(100% - clamp(20px,6vw,112px));left:50%;transform:translateX(-50%);padding-inline:clamp(14px,2vw,30px)}
.hero-title,.page-hero h1{font-size:clamp(3rem,8vw,9rem);overflow-wrap:anywhere}
.projects-grid,.journal-grid,.process-grid,.contact-grid{min-width:0}
.project-card,.journal-card,.process-card,.contact-form,.contact-details{min-width:0}
.project-media,.journal-visual{position:relative}
.coming-soon-badge{position:absolute;z-index:8;left:clamp(14px,2vw,24px);bottom:clamp(14px,2vw,24px);display:inline-flex;align-items:center;min-height:34px;padding:0 13px;border:1px solid rgba(255,255,255,.16);border-radius:999px;background:rgba(10,12,15,.58);backdrop-filter:blur(18px) saturate(150%);-webkit-backdrop-filter:blur(18px) saturate(150%);font-size:10px;font-weight:800;letter-spacing:.16em;color:#fff;white-space:nowrap;pointer-events:none}
.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;opacity:0!important}
.form-status{min-height:1.5em;margin:4px 0 0;font-size:12px;line-height:1.5;color:rgba(255,255,255,.62)}
.form-status.is-success{color:rgba(255,255,255,.92)}
.form-status.is-error{color:#ffb5b5}
.contact-form button[disabled]{opacity:.58;cursor:wait;transform:none!important}

@media (min-width:1800px){
  .section{width:min(92vw,1800px)}
  .projects-grid{gap:clamp(24px,2vw,42px)}
}
@media (max-width:1100px){
  .site-header{top:14px}
  .nav{gap:2px}
  .nav a{padding-inline:10px}
  .contact-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .section{padding-inline:clamp(18px,5vw,34px)}
  .site-header{width:calc(100% - 24px);top:10px}
  .projects-grid,.journal-grid,.process-grid{grid-template-columns:1fr!important}
  .project-card.wide{grid-column:auto!important}
  .hero{padding-inline:20px}
  .hero-meta{padding-inline:20px}
  .footer{gap:14px;flex-wrap:wrap;padding-inline:20px}
}
@media (max-width:600px){
  .hero-title,.page-hero h1{font-size:clamp(2.7rem,15vw,5.3rem);line-height:.92}
  .hero-actions,.actions{width:100%;flex-direction:column;align-items:stretch}
  .hero-actions .button,.actions .button{width:100%;justify-content:space-between}
  .hero-meta{font-size:8px;gap:10px}
  .hero-meta span:nth-child(2){display:none}
  .project-media{aspect-ratio:4/3!important}
  .contact-form{padding:20px!important}
  .coming-soon-badge{font-size:9px;min-height:31px;padding-inline:11px}
}
@media (max-width:380px){
  .section{padding-inline:14px}
  .site-header{width:calc(100% - 16px)}
  .brand>span:last-child{font-size:10px}
  .language-switcher{gap:2px}
}
@media (max-height:520px) and (orientation:landscape){
  .hero{min-height:680px}
  .site-header{position:absolute}
}
@media (min-width:700px) and (max-width:1000px) and (orientation:portrait){
  .projects-grid,.journal-grid{grid-template-columns:1fr 1fr!important}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
}

/* =========================================
   v25 — CONTACT STATUS CLIPPING FIX
   ========================================= */
.contact-form {
  overflow: visible !important;
  height: auto !important;
  max-height: none !important;
  min-height: 0 !important;
  padding-bottom: clamp(28px, 4vw, 52px) !important;
}
.contact-grid,
.contact-grid > *,
.contact-form .form-status {
  overflow: visible !important;
  max-height: none !important;
}
.form-status {
  display: block !important;
  position: relative !important;
  width: 100%;
  min-height: 24px !important;
  height: auto !important;
  margin: 2px 0 0 !important;
  padding: 4px 2px 8px !important;
  line-height: 1.65 !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  box-sizing: border-box;
}
@media (max-width:600px){
  .contact-form{padding-bottom:32px!important}
  .form-status{padding-bottom:10px!important;line-height:1.7!important}
}


/* ==========================================================
   v26 — GLOBAL HEADER CONSISTENCY + MOBILE COLLISION FIX
   ========================================================== */

/* The same floating glass header is used on every page. */
.site-header{
  position:fixed !important;
  z-index:1000 !important;
  top:10px !important;
  left:50% !important;
  transform:translateX(-50%) !important;
  width:calc(100% - clamp(24px,6vw,112px)) !important;
  height:auto !important;
  padding:0 !important;
  background:transparent !important;
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}
.site-header .header-glass{
  width:100% !important;
  min-width:0 !important;
  height:64px !important;
  display:flex !important;
  align-items:center !important;
  gap:14px !important;
  padding:0 10px 0 16px !important;
  border:1px solid rgba(255,255,255,.085) !important;
  border-radius:20px !important;
  background:rgba(9,10,11,.72) !important;
  -webkit-backdrop-filter:blur(22px) saturate(175%) !important;
  backdrop-filter:blur(22px) saturate(175%) !important;
  box-shadow:0 18px 60px rgba(0,0,0,.36),inset 0 1px 0 rgba(255,255,255,.06) !important;
  overflow:visible !important;
}
.site-header.scrolled .header-glass{
  background:rgba(8,9,10,.88) !important;
  border-color:rgba(255,255,255,.11) !important;
}
.site-header .brand{min-width:0;flex:0 1 auto}
.site-header .nav{min-width:0}
.site-header .language-switcher{flex:0 0 auto}

/* Seam fix stays targeted to the homepage boundary only. */
.home-page .hero,
.home-page .hero + section{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
  background-color:transparent !important;
}
.home-page .hero::before,.home-page .hero::after,
.home-page .hero + section::before,.home-page .hero + section::after{
  border:0 !important;
  outline:0 !important;
  box-shadow:none !important;
}

/* Never allow content cards to collapse over their own copy. */
.project-card,.journal-card,.process-card,.article-card,.contact-form,.contact-details,
.project-info,.journal-content,.article-content,.page-hero>div{
  height:auto !important;
  max-height:none !important;
  min-width:0 !important;
}
.project-info,.journal-content,.article-content,.page-hero-copy{
  overflow:visible !important;
  overflow-wrap:anywhere;
}

@media (max-width:900px){
  .site-header{
    top:max(10px,env(safe-area-inset-top)) !important;
    width:calc(100% - 24px) !important;
  }
  .site-header .header-glass{
    height:64px !important;
    border-radius:20px !important;
    padding:0 10px 0 14px !important;
  }
  .menu-toggle{display:block !important;flex:0 0 44px;width:44px;height:44px;z-index:3}
  .language-switcher{margin-left:auto !important;z-index:3}
  .nav{
    position:absolute !important;
    z-index:2 !important;
    top:calc(100% + 10px) !important;
    left:0 !important;
    right:0 !important;
    inset:auto 0 auto 0 !important;
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:4px !important;
    max-height:min(70svh,520px) !important;
    overflow-y:auto !important;
    padding:10px !important;
    border:1px solid rgba(255,255,255,.09) !important;
    border-radius:20px !important;
    background:rgba(7,8,9,.97) !important;
    -webkit-backdrop-filter:blur(26px) saturate(160%) !important;
    backdrop-filter:blur(26px) saturate(160%) !important;
    box-shadow:0 24px 70px rgba(0,0,0,.58) !important;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-8px) scale(.985);
  }
  .nav.open{opacity:1 !important;visibility:visible !important;pointer-events:auto !important;transform:none !important}
  .nav a{
    display:flex !important;
    align-items:center !important;
    min-height:46px !important;
    padding:0 14px !important;
    border:0 !important;
    border-radius:12px !important;
    white-space:normal !important;
  }
  .nav a.active{background:rgba(255,255,255,.07) !important}

  /* Fixed header clearance on every non-home page. */
  body:not(.home-page) main{padding-top:86px !important}
  .page-hero{
    min-height:0 !important;
    padding-top:clamp(64px,12vw,110px) !important;
    padding-bottom:clamp(50px,10vw,90px) !important;
    align-items:flex-start !important;
  }
  .page-hero>div{position:relative !important;inset:auto !important;transform:none !important;width:100% !important}
  .page-hero h1{font-size:clamp(2.65rem,13vw,5rem) !important;line-height:.95 !important;overflow-wrap:normal !important;word-break:normal !important}
  .page-hero-copy{font-size:clamp(.95rem,3.8vw,1.15rem) !important;line-height:1.65 !important;margin-top:22px !important;max-width:42rem !important}

  /* Blog/BTS: true document flow on phones/tablets. */
  .journal-section{padding-top:20px !important}
  .journal-grid{display:grid !important;grid-template-columns:minmax(0,1fr) !important;gap:24px !important}
  .journal-card{
    display:flex !important;
    flex-direction:column !important;
    min-height:0 !important;
    overflow:hidden !important;
    border-radius:20px !important;
  }
  .journal-visual{position:relative !important;height:auto !important;min-height:210px !important;aspect-ratio:16/10 !important;flex:none !important}
  .journal-content{position:relative !important;inset:auto !important;transform:none !important;padding:22px 20px 26px !important}
  .journal-meta{position:relative !important;inset:auto !important;margin-bottom:16px !important}
  .journal-card h3{position:relative !important;inset:auto !important;margin:0 0 14px !important;max-width:none !important;font-size:clamp(1.75rem,8vw,2.6rem) !important;line-height:1.02 !important}
  .journal-card p{position:relative !important;inset:auto !important;margin:0 0 22px !important;font-size:1rem !important;line-height:1.6 !important}
  .journal-link{position:relative !important;inset:auto !important;margin-top:2px !important}

  .contact-grid{display:grid !important;grid-template-columns:minmax(0,1fr) !important;gap:32px !important}
  .contact-form{width:100% !important;margin:0 !important}
}

@media (max-width:600px){
  .site-header{width:calc(100% - 20px) !important}
  .site-header .header-glass{height:62px !important;border-radius:18px !important;padding-left:12px !important;padding-right:8px !important;gap:8px !important}
  .brand{gap:8px !important;padding:0 !important}
  .brand-mark{width:28px !important;height:28px !important}
  .brand>span:last-child{font-size:clamp(9px,2.7vw,11px) !important;letter-spacing:.12em !important;white-space:nowrap}
  .menu-toggle{flex-basis:40px;width:40px;padding:9px !important}
  .language-switcher{width:64px !important;flex-basis:64px !important}
  body:not(.home-page) main{padding-top:80px !important}
  .section{padding-left:20px !important;padding-right:20px !important}
  .page-hero{padding-top:54px !important;padding-bottom:46px !important}
  .contact-form label{min-height:74px !important;height:auto !important}
  .contact-form textarea{min-height:150px !important}
}

@media (max-width:360px){
  .site-header{width:calc(100% - 12px) !important}
  .site-header .header-glass{padding-left:9px !important;padding-right:6px !important;gap:5px !important}
  .brand-mark{width:25px !important;height:25px !important}
  .brand>span:last-child{font-size:8.5px !important;letter-spacing:.09em !important}
  .language-switcher{width:58px !important;flex-basis:58px !important}
  .language-button{width:25px !important;min-width:25px !important}
}
