/* VOID V8 launch refinement layer. Loaded after the original V7 system. */
:root{
  --focus:#f4f2ee;
  --danger:#e8b4ad;
  --success:#cbd8c8;
}
html{scroll-padding-top:92px}
body.menu-open{overflow:hidden}
[hidden]{display:none!important}
.skip-link{
  position:fixed;left:16px;top:12px;z-index:2000;
  transform:translateY(-160%);padding:12px 16px;border-radius:999px;
  background:#f4f2ee;color:#030303;font-weight:700;transition:transform .2s ease;
}
.skip-link:focus{transform:translateY(0)}
:where(a,button,input,textarea,select,[tabindex]):focus-visible{
  outline:2px solid var(--focus);outline-offset:4px;
}
button:disabled{opacity:.38;cursor:not-allowed;transform:none!important}
.eyebrow,.section-label,.case-room>span:first-of-type,.site-footer{
  color:rgba(255,255,255,.68)!important;
}
.eyebrow,.section-label{font-size:max(12px,.75rem)}
.site-footer{font-size:12px;line-height:1.7;align-items:flex-start}
.site-footer__links{max-width:900px}
.site-footer__links a{min-height:28px;display:inline-flex;align-items:center}

/* Access gate: proper modal behaviour and short-screen resilience. */
.access-gate[hidden]{display:none}
.access-gate__card h2{
  font-family:var(--serif);font-weight:400;font-size:clamp(50px,7vw,112px);
  line-height:1.04;letter-spacing:-.075em;max-width:900px;margin:0 auto 38px;
}
.access-gate__card{max-height:calc(100dvh - 36px);overflow:auto;overscroll-behavior:contain}
.access-gate__actions .button{min-width:180px}
@media(max-height:720px){
  .access-gate{padding:10px}
  .access-gate__card{min-height:calc(100dvh - 20px);padding:28px 24px;border-radius:24px}
  .access-gate__logo{width:min(245px,56vw);margin:4px auto 20px}
  .access-gate__card h2{font-size:clamp(38px,7.5vh,62px);margin-bottom:22px;line-height:.98}
  .access-gate__meta{position:relative;inset:auto;margin-top:20px}
}
@media(max-width:560px){
  .access-gate{padding:8px}
  .access-gate__card{width:100%;min-height:calc(100dvh - 16px);padding:30px 18px;border-radius:22px}
  .access-gate__card:before{inset:10px;border-radius:16px}
  .access-gate__logo{width:min(255px,72vw);margin:2px auto 28px}
  .access-gate__card h2{font-size:clamp(39px,12vw,60px);line-height:1;margin-bottom:26px}
  .access-gate__actions{width:100%}
  .access-gate__actions .button{width:100%;min-width:0}
}

/* Mobile navigation becomes an intentional full-screen overlay. */
.menu-trigger[aria-expanded="true"]{background:#f4f2ee;color:#030303}
@media(max-width:900px){
  .menu-panel{
    inset:0;top:0;right:0;width:100%;min-height:100dvh;padding:110px 28px 38px;
    background:rgba(3,3,3,.985);backdrop-filter:blur(22px);z-index:75;
    place-content:center;gap:2px;overflow:auto;
  }
  .menu-panel.is-open{display:grid}
  .menu-panel a{font-family:var(--serif);font-size:clamp(38px,10vw,72px);line-height:1;padding:12px 0;text-align:center;border:0}
  .menu-panel a[aria-current="page"]{color:rgba(255,255,255,.52)}
  .site-header{z-index:90}
}

/* Desktop founder layout: readable stacked profiles rather than narrow columns. */
@media(min-width:1251px){
  .void-duo__layout{grid-template-columns:minmax(280px,.78fr) minmax(390px,.9fr) minmax(340px,.72fr)}
  .void-duo__cards{grid-template-columns:1fr!important;gap:16px}
  .void-duo .person-card{min-height:292px;padding:30px 32px 28px;justify-content:flex-end}
  .void-duo .person-symbol{width:128px;left:auto;right:24px;top:22px;transform:none}
  .void-duo .person-symbol span{font-size:72px}
  .void-duo .person-card h3{font-size:58px;max-width:55%}
  .void-duo .person-card p:not(.eyebrow){max-width:90%}
  .void-duo .julie-card,.void-duo .kristian-card{transform:none}
}
.void-duo__portrait picture{position:absolute;inset:0}
.void-duo__portrait picture img{width:100%;height:100%;object-fit:cover}

/* Case cards now contain actual branded cover visuals and links. */
.case-room{color:inherit;text-decoration:none}
.case-room__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.48;filter:grayscale(1) contrast(1.08);transition:transform .55s ease,opacity .35s ease}
.case-room::before{z-index:1}
.case-room::after{z-index:1}
.case-room>*:not(.case-room__image){position:relative;z-index:2}
.case-room:hover .case-room__image,.case-room:focus-visible .case-room__image{transform:scale(1.045);opacity:.62}
.case-room__link{display:inline-flex!important;margin-top:22px;color:#fff!important;font-size:11px!important;letter-spacing:.12em!important;text-transform:uppercase}
.case-room__link::after{content:" →";margin-left:8px}
.work-case-grid{display:grid;gap:22px}
.work-case{display:grid;grid-template-columns:minmax(320px,.92fr) minmax(0,1.08fr);border:1px solid var(--line);background:rgba(255,255,255,.035);overflow:hidden;scroll-margin-top:120px}
.work-case__visual{min-height:460px;background:#050505}
.work-case__visual img{width:100%;height:100%;object-fit:cover;filter:grayscale(1);transition:transform .55s ease}
.work-case:hover .work-case__visual img{transform:scale(1.025)}
.work-case__copy{padding:clamp(30px,5vw,70px);display:flex;flex-direction:column;justify-content:center}
.work-case__copy h2{margin:15px 0 24px;font-family:var(--serif);font-size:clamp(45px,6vw,86px);font-weight:400;line-height:.92;letter-spacing:-.065em}
.work-case__copy p{color:rgba(255,255,255,.72);font-size:17px;line-height:1.7;max-width:650px}
.work-case__meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px}
.work-case__meta span{padding:8px 11px;border:1px solid var(--line);font-family:var(--mono);font-size:10px;letter-spacing:.11em;text-transform:uppercase;color:rgba(255,255,255,.7)}
@media(max-width:850px){
  .work-case{grid-template-columns:1fr}
  .work-case__visual{min-height:320px}
}

/* Contact form: native validation, clear grouping, no overlay collision. */
.access-form{overflow:visible}
.access-form label{font-size:12px;color:rgba(255,255,255,.72)}
.access-form input,.access-form textarea,.access-form select{
  width:100%;background:#050505;border:1px solid rgba(255,255,255,.2);color:var(--ink);
  padding:16px;outline:none;border-radius:0;min-height:52px;
}
.access-form textarea{resize:vertical;min-height:180px}
.access-form input:focus,.access-form textarea:focus,.access-form select:focus{border-color:#fff;box-shadow:0 0 0 1px #fff}
.access-form input:user-invalid,.access-form textarea:user-invalid,.access-form select:user-invalid{border-color:var(--danger)}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.form-help{font-family:var(--sans);font-size:13px;line-height:1.55;text-transform:none;letter-spacing:0;color:rgba(255,255,255,.56)}
.form-status{padding:14px;border:1px solid var(--line);font-family:var(--sans);font-size:14px;line-height:1.5;text-transform:none;letter-spacing:0}
.form-status--error{border-color:rgba(232,180,173,.7);color:var(--danger)}
.honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.contact-note__facts{display:grid;gap:16px;margin-top:30px}
.contact-note__facts div{padding-top:15px;border-top:1px solid var(--line)}
.contact-note__facts span{display:block;margin-bottom:7px;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.13em;color:rgba(255,255,255,.5)}
.contact-note__facts strong{font-size:16px;font-weight:500;line-height:1.5}
@media(max-width:650px){.form-row{grid-template-columns:1fr}}

/* Fixed contact controls never cover mobile content. */
@media(max-width:700px){
  .side-contact-rail{display:none!important}
  .site-footer{padding-bottom:42px}
}
@media(max-width:560px){
  .site-footer__links{display:grid;grid-template-columns:1fr 1fr;gap:8px 14px;width:100%}
  .site-footer__links a{overflow-wrap:anywhere}
}

/* Quieter legal reading environment. */
body[data-page="legal"] .void-canvas{opacity:.2}
body[data-page="legal"] .noise{opacity:.08}
body[data-page="legal"] .legal-copy{color:rgba(255,255,255,.77)}
body[data-page="legal"] .legal-section{background:linear-gradient(90deg,rgba(0,0,0,.34),transparent)}

/* Status / utility pages */
.status-page{min-height:100dvh;display:grid;place-items:center;padding:130px var(--pad) 70px;text-align:center}
.status-page__inner{max-width:900px}
.status-page h1{font-family:var(--serif);font-size:clamp(64px,11vw,160px);font-weight:400;line-height:.84;letter-spacing:-.08em;margin:0}
.status-page p{max-width:680px;margin:32px auto;color:rgba(255,255,255,.72);font-size:clamp(18px,2vw,24px);line-height:1.55}

/* Motion and contrast refinements */
@media(prefers-reduced-motion:reduce){
  .void-canvas{display:none}
  .access-gate,.menu-panel{transition:none!important}
}


/* V8.1 hotfixes — logo proportions, favicon consistency, founder symbol placement and portrait halo */
.brand img,
.hero-logo,
.access-gate__logo{
  display:block;
  max-width:100%;
  height:auto !important;
  object-fit:contain;
  aspect-ratio:1139 / 368;
}
.brand img{
  width:122px;
}
.hero-logo{
  width:min(560px,72vw) !important;
  margin:18px auto 28px !important;
}
.access-gate__logo{
  width:min(350px,64vw) !important;
}
@media(max-width:900px){
  .brand img{width:98px}
  .hero-logo{width:min(500px,78vw) !important}
  .access-gate__logo{width:min(270px,72vw) !important}
}

@media(min-width:1251px){
  .void-duo .person-card{padding:30px 32px 30px 32px}
  .void-duo .person-symbol{
    width:104px;
    right:18px;
    top:14px;
    transform:none;
  }
  .void-duo .person-symbol span{font-size:60px}
  .void-duo .person-symbol:before,
  .void-duo .person-symbol:after{inset:-16%}
}
.void-duo .person-card .eyebrow,
.void-duo .person-card h3,
.void-duo .person-card p{position:relative;z-index:2}
.void-duo__portrait:before{
  inset:auto;
  width:84%;
  height:46%;
  left:8%;
  top:20%;
  z-index:2;
  border:1px solid rgba(255,255,255,.20);
  border-radius:50%;
  transform:rotate(-10deg);
  box-shadow:0 0 30px rgba(255,255,255,.05);
}
@media(max-width:900px){
  .void-duo__portrait:before{
    width:88%;
    height:44%;
    left:6%;
    top:22%;
    transform:rotate(-8deg);
  }
}


/* V8.2 stable renderer guard */
.void-canvas{
  opacity:.72;
  contain:strict;
  pointer-events:none;
}
.hero-logo,.access-gate__logo,.brand img{
  object-fit:contain!important;
  height:auto!important;
  max-height:none!important;
}





/* VOID V8.4 — final QA refinement layer */
.void-canvas{display:none!important}

/* Lightweight, stable pointer animation. */
.cursor-aura,.cursor-orb{
  position:fixed;left:0;top:0;pointer-events:none;opacity:0;z-index:150;
  transform:translate3d(-100px,-100px,0);will-change:transform,opacity;
}
.cursor-aura{
  width:190px;height:190px;margin:-95px 0 0 -95px;border-radius:50%;
  background:radial-gradient(circle,rgba(255,255,255,.075),rgba(255,255,255,.018) 38%,transparent 70%);
  mix-blend-mode:screen;transition:opacity .25s ease;
}
.cursor-orb{
  width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;
  border:1px solid rgba(255,255,255,.65);background:rgba(255,255,255,.05);
  box-shadow:0 0 0 8px rgba(255,255,255,.018),0 0 26px rgba(255,255,255,.08);
  transition:opacity .2s ease,width .18s ease,height .18s ease,margin .18s ease,background .18s ease,border-color .18s ease;
}
.cursor-aura.is-visible,.cursor-orb.is-visible{opacity:1}
.cursor-orb.is-active{width:34px;height:34px;margin:-17px 0 0 -17px;background:rgba(255,255,255,.025);border-color:#fff}
.cursor-orb.is-down{width:12px;height:12px;margin:-6px 0 0 -6px;background:rgba(255,255,255,.35)}
@media(pointer:coarse),(prefers-reduced-motion:reduce){.cursor-aura,.cursor-orb{display:none!important}}

/* Logo scale and access-gate spacing. */
.brand img,.hero-logo,.access-gate__logo{display:block;height:auto!important;object-fit:contain;aspect-ratio:1139/368}
.brand img{width:118px}
.hero-logo{width:min(470px,58vw)!important;margin:18px auto 30px!important}
.access-gate__card{display:flex;flex-direction:column;align-items:center;justify-content:center}
.access-gate__card .eyebrow{margin:0 0 16px}
.access-gate__logo{width:min(300px,52vw)!important;margin:10px auto 34px!important}
@media(max-width:900px){.brand img{width:98px}.hero-logo{width:min(360px,70vw)!important}.access-gate__logo{width:min(250px,68vw)!important;margin-bottom:28px!important}}

/* Cleaner case carousel: no hidden typography behind live copy. */
.case-carousel__head{align-items:flex-end}
.case-track{scroll-padding-inline:var(--pad)}
.case-room{display:flex;flex-direction:column;justify-content:flex-end;min-height:600px;isolation:isolate}
.case-room__image{opacity:.26!important;filter:grayscale(1) contrast(1.03) brightness(.78)!important;object-position:center center}
.case-room::before{inset:0!important;border:0!important;border-radius:0!important;opacity:1!important;background:linear-gradient(180deg,rgba(0,0,0,.03),rgba(0,0,0,.22) 42%,rgba(0,0,0,.74) 100%)!important}
.case-room::after{opacity:.55}
.case-room>span:first-of-type{margin-bottom:8px}
.case-room h3{max-width:92%;margin:18px 0 14px;line-height:.93;text-wrap:balance}
.case-room p{max-width:88%;font-size:16px;line-height:1.55;text-shadow:0 2px 18px rgba(0,0,0,.85)}
.case-room__link{margin-top:18px!important}
.case-room:hover .case-room__image,.case-room:focus-visible .case-room__image{opacity:.36!important;transform:scale(1.025)}
@media(max-width:560px){.case-room{min-height:500px}.case-room p{max-width:100%}}

/* Founder manifesto emphasis. */
.void-duo__manifesto h3 em{font-family:var(--serif);font-style:italic;font-weight:400}

/* VOID Lab gets a deliberate hero box and balanced cards. */
.lab-hero-box{position:relative;max-width:1180px;margin-inline:auto;padding:clamp(32px,5vw,68px);border:1px solid rgba(255,255,255,.16);background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(255,255,255,.018));overflow:hidden}
.lab-hero-box>*{position:relative;z-index:2}
.lab-hero-box:before,.lab-hero-box:after{content:"";position:absolute;border:1px solid rgba(255,255,255,.14);border-radius:50%;pointer-events:none}
.lab-hero-box:before{width:58%;height:135%;right:-12%;top:-42%;transform:rotate(18deg)}
.lab-hero-box:after{width:42%;height:98%;left:-8%;bottom:-48%;transform:rotate(-15deg)}
.lab-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:24px}
.lab-grid article{min-height:520px;display:flex;flex-direction:column;justify-content:flex-end;border:1px solid rgba(255,255,255,.14);background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.018));transition:transform .28s ease,border-color .28s ease}
.lab-grid article:hover{transform:translateY(-6px);border-color:rgba(255,255,255,.32)}
.lab-grid article>div{margin-bottom:auto}
.lab-grid h2{font-size:clamp(38px,4vw,62px);line-height:.95;margin:28px 0 14px}
@media(max-width:1050px){.lab-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lab-grid article:last-child{grid-column:1/-1;min-height:430px}}
@media(max-width:680px){.lab-grid{grid-template-columns:1fr}.lab-grid article:last-child{grid-column:auto}.lab-grid article{min-height:430px}}

/* Small navigation and footer polish. */
.desktop-nav a,.site-footer__links a{text-underline-offset:5px}
.desktop-nav a[aria-current="page"]{opacity:1;text-decoration:underline;text-decoration-thickness:1px}
.site-footer__links{gap:8px 18px}
@media(max-width:560px){.site-footer__links{grid-template-columns:1fr}.site-footer{gap:16px}}


/* V8.5 carousel/browser-icon cleanup */
.case-room__image{opacity:.14!important;filter:grayscale(1) contrast(1.02) brightness(.7)!important;mix-blend-mode:screen}
.case-room{background:radial-gradient(circle at 72% 18%,rgba(255,255,255,.10),transparent 24%),linear-gradient(150deg,rgba(255,255,255,.06),rgba(255,255,255,.018));}
.case-room h3{max-width:85%;position:relative;z-index:3}
.case-room p{position:relative;z-index:3}
.case-room .case-room__link, .case-room > span:first-of-type{position:relative;z-index:3}


/* V8.6 mobile parity — retain the desktop visual language on small screens */
@media(max-width:700px){
  .section-full.enter-world{
    min-height:100svh;
    padding:122px 18px 148px;
    align-items:center;
  }
  .enter-world:before{
    inset:82px 12px 28px!important;
    border-radius:24px;
  }
  .corner{display:block!important;width:25px;height:25px;opacity:.7}
  .corner--tl{top:86px;left:16px}
  .corner--tr{top:86px;right:16px}
  .corner--bl{bottom:30px;left:16px}
  .corner--br{bottom:30px;right:16px}

  .enter-copy{max-width:100%;padding-inline:14px}
  .enter-copy .eyebrow{font-size:10px;letter-spacing:.17em;margin-bottom:12px}
  .hero-logo{width:min(350px,82vw)!important;margin:12px auto 24px!important}
  .enter-copy h1{font-size:clamp(58px,16.4vw,84px)!important;line-height:.91!important;letter-spacing:-.07em}
  .enter-copy .lead{font-size:clamp(17px,4.7vw,21px);line-height:1.35;margin:26px auto 30px;max-width:94%}
  .hero-actions{gap:12px;width:100%}
  .hero-actions .button{width:100%;min-height:54px}

  .orbit-stage{opacity:.78;overflow:hidden}
  .orbit--one{width:112vw;height:112vw}
  .orbit--two{width:92vw;height:92vw}
  .orbit--three{width:72vw;height:72vw}
  .portal-core{width:58vw;height:58vw;max-width:270px;max-height:270px}
  .signal-line{width:145vw;opacity:.34}

  .side-index{
    display:flex!important;
    position:absolute!important;
    left:26px!important;
    right:auto!important;
    top:auto!important;
    bottom:48px!important;
    translate:none!important;
    align-items:center;
    gap:7px;
    z-index:6;
    opacity:.82;
  }
  .side-index span{display:none!important}
  .side-index b{
    font-size:8px;
    padding:7px 8px;
    min-width:34px;
    text-align:center;
    border-color:rgba(255,255,255,.18);
  }

  .side-contact-rail{
    display:grid!important;
    position:fixed!important;
    right:10px!important;
    top:50%!important;
    bottom:auto!important;
    transform:translateY(-50%)!important;
    gap:8px!important;
    z-index:72!important;
  }
  .side-contact,
  .side-contact:hover,
  .side-contact:focus-visible,
  .side-contact--email:hover,
  .side-contact--email:focus-visible{
    display:flex!important;
    width:38px!important;
    height:38px!important;
    padding:0 9px!important;
    background:rgba(4,4,4,.72)!important;
    border-color:rgba(255,255,255,.2)!important;
    backdrop-filter:blur(14px);
  }
  .side-contact svg{width:17px;height:17px;flex-basis:17px}
  .side-contact span{display:none!important}
}

@media(max-width:390px){
  .section-full.enter-world{padding-top:116px;padding-bottom:144px}
  .hero-logo{width:min(315px,82vw)!important}
  .enter-copy h1{font-size:clamp(52px,15.8vw,70px)!important}
  .enter-copy .lead{font-size:16px;max-width:92%}
  .side-index{left:20px!important;bottom:44px!important}
  .side-index b{padding:6px 7px;min-width:31px}
  .side-contact-rail{right:7px!important}
}
