:root{
    --black:#1E2429;
    --near-black:#1E2429;
    --white:#f7f5ef;
    --grey-700:#4b4b45;
    --grey-500:#74746c;
    --grey-300:#aaa99f;
    --grey-100:#dedbd2;
    --line-dark:rgba(247,245,239,0.16);
    --line-light:rgba(11,11,12,0.12);
    --ease:cubic-bezier(.22,.61,.36,1);
    --dur-slow: 1.1s;
    --dur-med: .6s;
  }

  *{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
  html{scroll-behavior:smooth;}
  body{
    background:var(--white);
    color:var(--black);
    font-family:'Inter',sans-serif;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{display:block;width:100%;height:100%;object-fit:cover;}
  a{color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent;}
  a:focus, button:focus{outline:none;}
  a:focus-visible, button:focus-visible{outline:2px solid var(--grey-300);outline-offset:3px;}
  button{font-family:inherit;background:none;border:none;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent;}
  ul{list-style:none;}

  .eyebrow{
    font-size:11px;letter-spacing:.28em;text-transform:uppercase;
    color:var(--grey-500);font-weight:500;
  }
  .eyebrow.light{color:var(--grey-300);}

  h1,h2,h3{font-family:'Bebas Neue',sans-serif;font-weight:400;line-height:.92;letter-spacing:.01em;}

  .section-pad{padding:min(15vw,170px) min(11vw,168px);}

  /* ---------- grain overlay ---------- */
  .grain{
    position:fixed;inset:0;pointer-events:none;z-index:9998;
    opacity:.02;mix-blend-mode:overlay;
    background-size:220px 220px;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.55' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  }

  /* ---------- aperture intro ---------- */
  #intro{
    position:fixed;inset:0;background:var(--black);z-index:9999;
    display:flex;align-items:center;justify-content:center;
    transition:opacity .8s var(--ease), visibility .8s var(--ease);
  }
  #intro.hide{opacity:0;visibility:hidden;}
  .blade{
    position:absolute;inset:-10%;
    background:var(--black);
    transform-origin:center;
    transition:transform 1.1s var(--ease);
  }
  .blade:nth-child(1){clip-path:polygon(50% 50%,0 0,100% 0);}
  .blade:nth-child(2){clip-path:polygon(50% 50%,100% 0,100% 100%);}
  .blade:nth-child(3){clip-path:polygon(50% 50%,100% 100%,0 100%);}
  .blade:nth-child(4){clip-path:polygon(50% 50%,0 100%,0 0);}
  #intro.open .blade:nth-child(1){transform:translateY(-110%);}
  #intro.open .blade:nth-child(2){transform:translateX(110%);}
  #intro.open .blade:nth-child(3){transform:translateY(110%);}
  #intro.open .blade:nth-child(4){transform:translateX(-110%);}
  .intro-mark{
    opacity:1;transition:opacity .4s ease;
    display:flex;align-items:center;justify-content:center;
  }
  .intro-mark img{
    width:clamp(110px,14vw,180px);height:auto;display:block;
    filter:brightness(0) invert(1);
  }
  #intro.open .intro-mark{opacity:0;}

  /* ---------- header ---------- */
  header.site-header{
    position:fixed;top:0;left:0;right:0;z-index:500;
    display:flex;align-items:center;justify-content:space-between;
    padding:28px min(9.5vw,150px);
    mix-blend-mode:difference;
  }
  .logo-mark{
    display:flex;align-items:center;justify-content:flex-start;width:54px;height:40px;overflow:visible;
  }
  .logo-mark img{
    width:42px;height:auto;display:block;
    filter:brightness(0) invert(1);
  }
  .header-right{display:flex;align-items:center;gap:32px;}
  nav.primary-nav ul{display:flex;gap:34px;}
  nav.primary-nav a{
    font-size:12px;letter-spacing:.22em;color:var(--white);text-transform:uppercase;
    position:relative;padding-bottom:4px;
  }
  nav.primary-nav a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--white);
    transition:width .35s var(--ease);
  }
  nav.primary-nav a:hover::after{width:100%;}
  .menu-btn{display:none;flex-direction:column;gap:5px;z-index:600;}
  .menu-btn span{width:24px;height:1px;background:var(--white);display:block;}
  .book-btn{
    display:inline-flex;align-items:center;
    border:1px solid var(--white);background:transparent;color:var(--white);
    font-size:11px;letter-spacing:.16em;text-transform:uppercase;
    padding:11px 22px;
    transition:opacity .3s var(--ease);
  }
  .book-btn::after{
    content:'→';display:inline-block;max-width:0;opacity:0;overflow:hidden;
    transition:max-width .3s var(--ease), opacity .25s var(--ease), margin-left .3s var(--ease);
  }
  .book-btn:hover{opacity:.7;}
  .book-btn:hover::after{max-width:16px;opacity:1;margin-left:8px;}

  /* Hero CTA — same transparent outline treatment as the header's "Book os" button */
  .cta-btn-outline{
    display:inline-flex;align-items:center;
    border:1px solid var(--white);background:transparent;color:var(--white);
    font-size:12px;letter-spacing:.16em;text-transform:uppercase;
    padding:18px 40px;
    transition:opacity .3s var(--ease), background .3s var(--ease);
  }
  .cta-btn-outline span{color:var(--white);}
  .cta-btn-outline::after{
    content:'→';display:inline-block;max-width:0;opacity:0;overflow:hidden;color:var(--white);
    transition:max-width .3s var(--ease), opacity .25s var(--ease), margin-left .3s var(--ease);
  }
  .cta-btn-outline:hover{opacity:.7;}
  .cta-btn-outline:hover::after{max-width:20px;opacity:1;margin-left:10px;}

  @media (max-width:820px){
    .header-right{gap:0;}
    nav.primary-nav{
      position:fixed;inset:0;background:var(--black);
      display:flex;align-items:center;justify-content:center;
      transform:translateY(-100%);transition:transform .5s var(--ease);
      mix-blend-mode:normal;
    }
    nav.primary-nav.open{transform:translateY(0);}
    nav.primary-nav ul{flex-direction:column;text-align:center;gap:28px;}
    nav.primary-nav a{color:var(--white);font-size:22px;font-family:'Bebas Neue',sans-serif;letter-spacing:.1em;}
    .menu-btn{display:flex;}
    .book-btn{display:none;}
  }

  /* ---------- hero ---------- */
  .hero{
    position:relative;height:100vh;min-height:640px;overflow:hidden;
    display:flex;flex-direction:column;
  }
  .hero-media{position:absolute;inset:0;}
  .hero-media img{
    animation:kenburns 22s ease-in-out infinite alternate;
    transform-origin:60% 40%;
  }
  @keyframes kenburns{from{transform:scale(1)}to{transform:scale(1.12)}}
  .hero::before{
    content:'';position:absolute;inset:0;
    background:linear-gradient(180deg,rgba(0,0,0,.15) 0%, rgba(0,0,0,.1) 40%, rgba(0,0,0,.75) 100%);
  }
  .hero-content{
    position:relative;z-index:2;color:var(--white);flex:1;
    display:flex;flex-direction:column;justify-content:space-between;
    padding:140px min(9.5vw,150px) 56px;
  }
  .hero-content .eyebrow{color:var(--grey-100);
    opacity:0;transform:translateY(14px);animation:riseIn .9s .5s var(--ease) forwards;}
  .hero-main{display:flex;flex-direction:column;}
  .hero-title{
    font-size:clamp(42px,min(9vw,11vh),120px);letter-spacing:.005em;max-width:15ch;
    opacity:0;transform:translateY(30px);animation:riseIn 1s .65s var(--ease) forwards;
  }
  .hero-subtext{
    font-size:clamp(15px,1.6vw,19px);color:var(--grey-100);font-weight:300;line-height:1.6;
    max-width:480px;margin-top:20px;
    opacity:0;transform:translateY(20px);animation:riseIn 1s .82s var(--ease) forwards;
  }
  .hero-actions{
    display:flex;gap:32px;align-items:center;flex-wrap:wrap;margin-top:30px;
    opacity:0;transform:translateY(20px);animation:riseIn 1s .96s var(--ease) forwards;
  }
  .text-link{
    font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--white);
    position:relative;padding-bottom:4px;display:inline-block;
  }
  .text-link::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .35s var(--ease);}
  .text-link:hover::after{width:100%;}
  .hero-footnote{
    font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-300);
    opacity:0;transform:translateY(20px);animation:riseIn 1s 1.1s var(--ease) forwards;
  }
  @keyframes riseIn{to{opacity:1;transform:translateY(0);}}
  .scroll-indicator{
    position:absolute;bottom:30px;right:min(9.5vw,150px);z-index:2;color:var(--white);
    display:flex;flex-direction:column;align-items:center;gap:10px;
  }
  .scroll-indicator span{font-size:10px;letter-spacing:.25em;writing-mode:vertical-rl;}
  .scroll-line{width:1px;height:52px;background:rgba(246,245,242,.35);position:relative;overflow:hidden;}
  .scroll-line::after{
    content:'';position:absolute;left:0;top:-100%;width:100%;height:100%;background:var(--white);
    animation:scrollDrop 2.2s ease-in-out infinite;
  }
  @keyframes scrollDrop{0%{top:-100%}60%{top:100%}100%{top:100%}}

  /* Laptop-height screens (e.g. 16" displays with limited browser viewport height):
     tighten the top padding and title size a little so nothing crowds the fold. */
  @media (min-width:821px) and (max-height:900px){
    .hero-content{padding-top:120px;padding-bottom:40px;}
    .scroll-indicator{bottom:20px;}
  }
  @media (min-width:821px) and (max-height:760px){
    .hero-content{padding-top:110px;}
    .hero-title{font-size:clamp(38px,min(7.5vw,8.5vh),92px);}
    .hero-subtext{font-size:clamp(14px,1.4vw,17px);}
    .scroll-indicator{display:none;}
  }

  /* ---------- reveal on scroll ---------- */
  .reveal{opacity:0;transform:translateY(36px);transition:opacity .9s var(--ease), transform .9s var(--ease);}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- section headings ---------- */
  .section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
    margin-bottom:min(6vw,64px);flex-wrap:wrap;}
  .section-head h2{font-size:clamp(40px,7vw,84px);}
  .section-head p{max-width:340px;font-size:14px;color:var(--grey-500);line-height:1.7;}
  .section-head .head-title{display:flex;flex-direction:column;}
  .section-head .head-title .eyebrow{display:block;margin-bottom:14px;}
  .flush-head{padding:min(11vw,120px) min(11vw,168px) min(6vw,60px);}
  .flush-head.section-head{margin-bottom:0;}

  /* ---------- intro statement ---------- */
  .intro-section{background:var(--white);border-bottom:1px solid var(--line-light);}
  .intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:min(6vw,80px);align-items:start;}
  .intro-grid h2{font-size:clamp(40px,7vw,92px);}
  .intro-copy p{font-size:clamp(16px,2vw,20px);line-height:1.75;color:var(--grey-700);font-weight:300;margin-bottom:22px;}
  .intro-copy p:last-child{margin-bottom:0;}
  @media (max-width:820px){.intro-grid{grid-template-columns:1fr;gap:26px;}}

  /* ---------- see all link ---------- */
  .see-all{
    display:inline-block;margin-top:min(4vw,48px);font-size:12px;letter-spacing:.2em;
    text-transform:uppercase;position:relative;padding-bottom:4px;
  }
  .see-all::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--black);
    transition:width .35s var(--ease);}
  .see-all:hover::after{width:100%;}

  /* ---------- work grid ---------- */
  .work{background:var(--white);}
  .work-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:min(2.2vw,26px);
  }
  .work-item{position:relative;overflow:hidden;cursor:pointer;background:var(--near-black);}
  .work-item .frame{position:relative;width:100%;height:100%;overflow:hidden;}
  .work-item img{display:block;width:100%;height:100%;object-fit:cover;filter:contrast(1.035) saturate(1.025);transition:transform 1.4s var(--ease), filter .6s ease;}
  .work-item img.image-error{visibility:hidden;}
  .ov-gallery img.image-error{visibility:hidden;}

  .work-item:hover img{transform:scale(1.07);}
  .work-item .veil{
    position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 45%, rgba(0,0,0,.82) 100%);
  }
  /* Vildbjerg: small origin/logo mark appears on hover */
  .project-origin{
    position:absolute;
    left:50%;top:50%;
    width:44%;max-width:220px;aspect-ratio:1/1;height:auto;
    transform:translate(-50%,-46%) scale(.72);
    opacity:0;
    z-index:3;
    display:flex;align-items:center;justify-content:center;
    transition:opacity .45s var(--ease), transform .55s var(--ease);
    pointer-events:none;
  }
  .project-origin img{
    width:100%;height:100%;object-fit:contain;
    filter:drop-shadow(0 8px 20px rgba(0,0,0,.28));
  }
  .project-origin.logo-missing{display:none;}
  .work-item:hover .project-origin{
    opacity:1;
    transform:translate(-50%,-50%) scale(1);
  }
  @media (max-width:560px){
    .project-origin{width:54%;max-width:180px;}
  }
  .work-item .meta{
    position:absolute;left:0;right:0;bottom:0;padding:22px 24px;color:var(--white);
    display:block;
  }
  .work-item .meta h3{font-size:clamp(22px,2.6vw,34px);margin-bottom:8px;}
  .work-item .meta > div{display:flex;align-items:center;gap:14px;flex-wrap:wrap;}
  .work-item .meta .cat{font-size:11px;letter-spacing:.2em;color:var(--grey-100);text-transform:uppercase;}
  .work-item .meta .yr{font-size:12px;color:var(--grey-300);font-family:'Inter',sans-serif;margin:0;}
  .work-item.p1,.work-item.p2,.work-item.p3,.work-item.p4,.work-item.p5,.work-item.p6{grid-column:span 1;aspect-ratio:16/10;}
  .work-item.p5{grid-column:span 2;aspect-ratio:16/9;}
  @media (max-width:900px){
    .work-grid{grid-template-columns:repeat(2,1fr);}
    .work-item.p1{grid-column:span 2;aspect-ratio:4/3.2;}
    .work-item.p2,.work-item.p3,.work-item.p4,.work-item.p5{grid-column:span 1;aspect-ratio:3/4;}
  }
  @media (max-width:560px){
    .work-grid{grid-template-columns:1fr;}
    .work-item{grid-column:span 1 !important;aspect-ratio:4/3.6 !important;}
  }

  /* ---------- about ---------- */
  .about{background:var(--white);color:var(--black);}
  .about-grid{display:grid;grid-template-columns:1fr 1fr;gap:min(6vw,90px);align-items:center;}
  .about-media{aspect-ratio:4/5;overflow:hidden;}
  .about h2{font-size:clamp(36px,5.6vw,64px);margin-bottom:26px;}
  .about p{font-size:clamp(16px,2vw,20px);line-height:1.75;color:var(--grey-700);max-width:520px;font-weight:300;}
  .about .eyebrow{color:var(--grey-500);margin-bottom:20px;}
  @media (max-width:820px){ .about-grid{grid-template-columns:1fr;} .about-media{order:-1;} }

  /* ---------- why us ---------- */
  .why{background:var(--white);}
  .why-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:min(5vw,60px) min(6vw,80px);}
  .why-item{border-top:1px solid var(--line-light);padding-top:26px;}
  .why-item .num{font-size:12px;color:var(--grey-500);letter-spacing:.2em;margin-bottom:14px;text-transform:uppercase;}
  .why-item h3{font-size:clamp(24px,2.8vw,36px);margin-bottom:10px;}
  .why-item p:not(.num){font-size:14px;color:var(--grey-500);line-height:1.7;max-width:420px;}
  @media (max-width:820px){.why-grid{grid-template-columns:1fr;gap:32px;}}

  /* ---------- process ---------- */
  .process{background:var(--black);color:var(--white);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark);margin-top:0;margin-bottom:0;padding-bottom:min(4vw,52px);}
  .process .section-head h2{color:var(--white);}
  .process .section-head p{color:var(--grey-300);}
  .process-list{display:grid;grid-template-columns:repeat(5,1fr);padding:20px min(11vw,168px) 0;}
  .process-item{padding:42px min(1.6vw,26px);border-left:1px solid var(--line-dark);min-height:290px;}
  .process-item:first-child{border-left:none;}
  .process-item .num{font-size:12px;color:var(--grey-500);letter-spacing:.2em;margin-bottom:20px;}
  .process-item h3{font-size:clamp(22px,2vw,30px);margin-bottom:10px;}
  .process-item .lead{font-size:15px;color:var(--grey-100);margin-bottom:10px;line-height:1.4;}
  .process-item p.desc{font-size:13px;color:var(--grey-300);line-height:1.7;}
  @media (max-width:900px){
    .process-list{grid-template-columns:1fr 1fr;}
    .process-item{border-left:none;border-top:1px solid var(--line-dark);min-height:0;}
    .process-item:nth-child(odd){border-right:1px solid var(--line-dark);}
  }
  @media (max-width:560px){
    .process-list{grid-template-columns:1fr;}
    .process-item{border-right:none !important;}
  }

  /* ---------- founders ---------- */
  .founders{
    display:grid;grid-template-columns:1fr 1fr;gap:min(6vw,80px);
    margin-top:min(8vw,86px);padding-top:min(4vw,44px);border-top:1px solid var(--line-light);
  }
  .founder h3{font-size:clamp(22px,2.4vw,30px);margin-bottom:8px;}
  .founder-role{font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--grey-500);margin-bottom:14px;}
  .founder p:not(.founder-role){font-family:'Inter',sans-serif;font-size:clamp(16px,1.45vw,18px);font-weight:300;color:var(--grey-700);line-height:1.8;max-width:520px;}
  .founder p strong{font-weight:300;}
  @media (max-width:820px){.founders{grid-template-columns:1fr;gap:32px;}}

  .founder-social{
    position:relative;display:inline-block;margin-top:6px;padding-bottom:3px;
    font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-700);
    transition:color .3s var(--ease);
  }
  .founder-social::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s var(--ease);}
  .founder-social:hover{color:var(--black);}
  .founder-social:hover::after{width:100%;}


  /* ---------- founder profile photos ---------- */
  .founder-photo{width:100%;aspect-ratio:4/5;overflow:hidden;margin-bottom:26px;background:var(--near-black);position:relative;}
  .founder-photo img{width:100%;height:100%;object-fit:cover;display:block;}
  .profile-placeholder{position:absolute;inset:0;display:flex;align-items:flex-end;padding:24px;font-size:12px;letter-spacing:.2em;color:var(--grey-300);font-weight:500;}
  .profile-placeholder span{border-bottom:1px solid var(--grey-700);padding-bottom:8px;}
  .founder-photo img + .profile-placeholder{display:none;}
  @media (max-width:820px){.founder-photo{aspect-ratio:4/3;}}
  /* ---------- booking form ---------- */
  .booking-grid{
    display:grid;grid-template-columns:.85fr 1fr;gap:min(7vw,80px);max-width:1160px;
    margin-top:min(4vw,40px);align-items:start;
  }
  @media (max-width:820px){
    .booking-grid{grid-template-columns:1fr;gap:56px;}
  }
  .booking-intro .eyebrow{display:block;margin-bottom:18px;}
  .booking-intro h1{font-size:clamp(44px,8vw,88px);margin-bottom:20px;}
  .booking-intro p{font-size:clamp(16px,1.8vw,19px);color:var(--grey-100);line-height:1.7;
    max-width:420px;font-weight:300;margin-bottom:34px;}
  .booking-note{font-size:13px !important;color:var(--grey-500) !important;
    margin-top:34px !important;max-width:320px;line-height:1.7 !important;}
  .form-row{display:grid;grid-template-columns:1fr;gap:22px;margin-bottom:22px;}
  .booking-form label, .form-full{
    display:flex;flex-direction:column;gap:10px;font-size:11px;letter-spacing:.18em;
    text-transform:uppercase;color:var(--grey-500);
  }
  .form-full{margin-bottom:28px;}
  .label-text{display:block;}
  .booking-form label .optional{text-transform:none;letter-spacing:0;color:var(--grey-500);font-weight:400;margin-left:6px;}
  .booking-form input, .booking-form select, .booking-form textarea{
    background:transparent;border:none;border-bottom:1px solid var(--line-dark);
    color:var(--white);font-family:'Inter',sans-serif;font-size:15px;font-weight:300;
    padding:10px 0;letter-spacing:normal;text-transform:none;border-radius:0;
  }
  .booking-form select{appearance:none;-webkit-appearance:none;cursor:pointer;}
  .booking-form select option{background:var(--near-black);color:var(--white);}
  .booking-form input:focus, .booking-form select:focus, .booking-form textarea:focus{
    outline:none;border-bottom-color:var(--white);
  }
  .booking-form textarea{resize:vertical;min-height:64px;}
  .booking-form textarea::placeholder{color:var(--grey-500);font-family:'Inter',sans-serif;}
  .booking-form .cta-btn{margin-top:10px;}
  .form-submit-row{display:flex;align-items:center;gap:min(4vw,32px);flex-wrap:wrap;margin-top:10px;}
  .form-submit-row .cta-btn{margin-top:0;}
  .form-submit-row .form-alt{font-size:14px;color:var(--grey-500);}
  .form-submit-row .form-alt a{text-decoration:underline;text-underline-offset:3px;color:inherit;}
  .form-submit-row .form-alt a:hover{color:var(--black);}
  .form-status{margin-top:20px;font-size:13px;color:var(--grey-300);min-height:18px;}

  /* ---------- contact people card (left column) ---------- */
  .contact-people{display:flex;gap:18px;align-items:flex-start;margin-top:8px;}
  .cp-photos{display:flex;flex-shrink:0;}
  .cp-photos img{width:52px;height:52px;border-radius:50%;object-fit:cover;border:2px solid var(--white);
    box-shadow:0 2px 10px rgba(30,36,41,.14);}
  .cp-photos img:nth-child(2){margin-left:-16px;}
  .cp-info h3{font-family:'Inter',sans-serif;font-size:16px;font-weight:600;margin-bottom:4px;}
  .cp-role{font-size:12px;letter-spacing:.1em;color:var(--grey-500);text-transform:uppercase;margin-bottom:10px;}
  .cp-info .cp-line{display:block;font-size:14px;color:var(--grey-700);line-height:1.7;}
  .cp-info a.cp-line{position:relative;width:fit-content;padding-bottom:1px;}
  .cp-info a.cp-line::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s var(--ease);}
  .cp-info a.cp-line:hover{color:var(--black);}
  .cp-info a.cp-line:hover::after{width:100%;}

  /* ---------- contact ---------- */
  .contact{background:var(--black);color:var(--white);text-align:left;}
  .contact h2{font-size:clamp(48px,10vw,140px);margin-bottom:40px;}
  .contact-row{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;flex-wrap:wrap;}
  .contact-links{display:flex;flex-direction:column;gap:10px;font-size:15px;color:var(--grey-300);}
  .contact-links a:hover{color:var(--white);}
  .cta-btn{
    background:var(--white);color:var(--black);border:none;
    padding:18px 40px;font-size:12px;letter-spacing:.16em;
    text-transform:uppercase;display:inline-flex;align-items:center;
    transition:opacity .3s var(--ease);
  }
  .cta-btn span{color:var(--black);}
  .cta-btn::after{
    content:'→';display:inline-block;max-width:0;opacity:0;overflow:hidden;color:var(--black);
    transition:max-width .3s var(--ease), opacity .25s var(--ease), margin-left .3s var(--ease);
  }
  .cta-btn:hover{opacity:.82;}
  .cta-btn:hover::after{max-width:20px;opacity:1;margin-left:10px;}

  /* ---------- footer ---------- */
  footer{
    background:var(--black);color:var(--white);
    padding:min(6vw,64px) min(9.5vw,150px) 30px;
    border-top:1px solid var(--line-dark);
  }
  .footer-top{
    display:flex;justify-content:space-between;gap:44px;flex-wrap:wrap;
    padding-bottom:40px;border-bottom:1px solid var(--line-dark);margin-bottom:24px;
  }
  .footer-brand .fmark{display:block;font-family:'Bebas Neue',sans-serif;color:var(--white);
    font-size:22px;letter-spacing:.15em;margin-bottom:10px;}
  .footer-brand .ftag{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--white);margin-bottom:16px;}
  .footer-brand .ftagline{font-size:14px;color:var(--white);max-width:260px;line-height:1.6;
    font-family:'Inter',sans-serif;font-weight:300;}
  .footer-heading{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;
    color:var(--grey-300);margin-bottom:16px;font-weight:500;}
  .footer-nav, .footer-social, .footer-contact{display:flex;flex-direction:column;gap:11px;font-size:13px;}
  .footer-nav a, .footer-social a, .footer-contact a{
    position:relative;display:inline-block;width:fit-content;padding-bottom:2px;
    transition:color .3s var(--ease);color:var(--grey-100);
  }
  .footer-nav a::after, .footer-social a::after, .footer-contact a::after{
    content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;
    transition:width .3s var(--ease);
  }
  .footer-nav a:hover, .footer-social a:hover, .footer-contact a:hover{color:var(--white);}
  .footer-nav a:hover::after, .footer-social a:hover::after, .footer-contact a:hover::after{width:100%;}
  .footer-bottom{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;
    gap:14px;font-size:11px;letter-spacing:.03em;}
  .footer-legal{display:flex;gap:22px;}
  .footer-legal a{color:var(--grey-300);transition:color .3s var(--ease);}
  .footer-legal a:hover{color:var(--white);}
  @media (max-width:600px){.footer-top{flex-direction:column;gap:28px;}}

  /* ---------- project overlay ---------- */
  .overlay{
    position:fixed;inset:0;background:var(--white);color:var(--black);z-index:800;
    transform:translateY(100%);transition:transform .7s var(--ease);
    overflow-y:auto;
  }
  .overlay.open{transform:translateY(0);}
  .overlay-close{
    position:fixed;top:28px;right:min(9.5vw,150px);z-index:820;
    width:44px;height:44px;border:1px solid var(--line-dark);border-radius:50%;
    display:flex;align-items:center;justify-content:center;color:var(--white);
    font-size:18px;background:rgba(11,11,12,.4);
  }
  .ov-hero{position:relative;height:78vh;min-height:420px;overflow:hidden;background:#000;}
  .ov-hero .hero-media img{object-fit:cover;object-position:center;}
  .ov-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.1),rgba(0,0,0,.85));}
  .ov-hero-content{position:absolute;left:0;right:0;bottom:60px;padding:0 min(11vw,168px);z-index:2;}
  .ov-hero-content .eyebrow{color:var(--grey-100);margin-bottom:14px;letter-spacing:.16em;}
  .ov-hero-content h1{font-size:clamp(46px,10vw,130px);line-height:.9;max-width:1100px;color:var(--white);}
  .ov-body{padding:min(8vw,90px) min(11vw,168px);}
  .ov-info{
    display:grid;grid-template-columns:1.3fr .7fr;gap:min(6vw,80px);margin-bottom:min(8vw,80px);
  }
  .ov-info p{font-size:clamp(16px,2vw,20px);line-height:1.75;color:var(--grey-700);font-weight:300;max-width:560px;}
  .ov-facts{display:none;}
  .ov-facts div{border-top:1px solid var(--line-light);padding-top:12px;}
  .ov-facts .k{font-size:11px;letter-spacing:.2em;color:var(--grey-500);text-transform:uppercase;margin-bottom:6px;}
  .ov-facts .v{font-size:15px;color:var(--grey-700);}
  .ov-gallery{column-count:2;column-gap:min(2vw,22px);margin-bottom:min(8vw,80px);}
  .ov-gallery > div{break-inside:avoid;display:block;margin:0 0 min(2vw,22px);}
  .ov-gallery img{width:100%;height:auto;object-fit:contain;}
  .ov-gallery .full{grid-column:auto;}
  .ov-gallery .half{grid-column:auto;}
  .ov-video{
    position:relative;margin-bottom:min(6vw,60px);
    display:flex;align-items:center;justify-content:center;background:#000;
  }
  .ov-video img{position:static;width:100%;height:auto;object-fit:contain;}
  .ov-video::before{content:'';position:absolute;inset:0;background:rgba(0,0,0,.35);}
  .play-btn{
    position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;
    width:88px;height:88px;border-radius:50%;border:1px solid var(--white);
    display:flex;align-items:center;justify-content:center;
  }
  .play-btn::after{content:'';border-left:16px solid var(--white);border-top:9px solid transparent;
    border-bottom:9px solid transparent;margin-left:5px;}
  .ov-next{border-top:1px solid var(--line-light);padding-top:40px;display:flex;justify-content:space-between;align-items:center;}
  .ov-next .eyebrow{margin-bottom:8px;}
  .ov-next h3{font-size:clamp(28px,4vw,44px);}
  @media (max-width:820px){ .ov-info{grid-template-columns:1fr;} .ov-gallery{column-count:1;} }

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
  }

  .footer-brand .fmark img{
    width:78px;height:auto;display:block;
    filter:brightness(0) invert(1);
  }


/* ---------- multi-page layout ---------- */
.page-hero{
  min-height:68vh; background:var(--black); color:var(--white); display:flex; align-items:flex-end;
  padding:150px min(11vw,168px) 80px; position:relative; overflow:hidden;
}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.08),rgba(0,0,0,.72));pointer-events:none;}
.page-hero .page-hero-inner{position:relative;z-index:2;max-width:1000px;}
.page-hero h1{font-size:clamp(60px,11vw,150px);margin-top:20px;}
.page-hero p:not(.eyebrow){max-width:580px;color:var(--grey-300);font-size:17px;line-height:1.7;margin-top:28px;}
.page-hero-media{position:absolute;inset:0;opacity:.58;}
.page-hero-media img{object-fit:cover;}
.page-intro{padding:min(10vw,120px) min(11vw,168px);border-bottom:1px solid var(--line-light);}
.page-intro-grid{display:grid;grid-template-columns:1fr 1fr;gap:min(6vw,80px);}
.page-intro h2{font-size:clamp(42px,6vw,78px);}
.page-intro p{font-size:clamp(16px,2vw,20px);line-height:1.75;color:var(--grey-700);max-width:600px;margin-bottom:20px;}
.page-cta{padding:min(10vw,120px) min(11vw,168px);background:var(--black);color:var(--white);}
.page-cta h2{font-size:clamp(48px,9vw,120px);max-width:900px;margin-bottom:35px;}
.page-cta p{color:var(--grey-300);font-size:17px;line-height:1.7;max-width:520px;margin-bottom:32px;}
@media(max-width:820px){.page-intro-grid{grid-template-columns:1fr;gap:30px}.page-hero{min-height:58vh;padding:130px 7vw 60px}}

/* ---------- BK+ logo lockup ---------- */
.logo-mark{width:auto;min-width:0;gap:0;}
.logo-mark::after{content:none;}
.logo-mark img{width:68px;}
.footer-brand .fmark{display:block;}
.footer-brand .fmark::after{content:none;}

/* Full-bleed media can intentionally escape the content margins. */
.full-bleed{width:100vw;max-width:none;margin-left:50%;transform:translateX(-50%);}
@media(max-width:820px){.section-pad{padding-left:7vw;padding-right:7vw}.flush-head{padding-left:7vw;padding-right:7vw}.page-intro,.page-cta{padding-left:7vw;padding-right:7vw}.process-list{padding-left:7vw;padding-right:7vw}}

/* Portfolio spacing and responsive masonry */
@media (max-width:820px){
  .work-grid{grid-template-columns:1fr;}
}

/* ---------- team teaser (homepage) ---------- */
.team-teaser{background:var(--white);border-top:1px solid var(--line-light);}
.team-teaser-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:min(7vw,90px);align-items:center;}
.team-teaser-photos{position:relative;padding-right:min(6vw,70px);max-width:460px;}
.tt-photo{width:66%;aspect-ratio:4/5;overflow:hidden;background:var(--near-black);}
.tt-photo img{width:100%;height:100%;object-fit:cover;}
.tt-photo-offset{width:66%;margin-top:-16%;margin-left:26%;box-shadow:0 24px 50px rgba(30,36,41,.18);}
.team-teaser-copy .eyebrow{margin-bottom:16px;}
.team-teaser-copy h2{font-size:clamp(36px,5.6vw,64px);margin-bottom:22px;}
.team-teaser-copy p{font-size:clamp(15px,1.6vw,18px);line-height:1.75;color:var(--grey-700);font-weight:300;max-width:460px;margin-bottom:26px;}
.team-teaser-copy .text-link{color:var(--black);}
@media (max-width:820px){
  .team-teaser-grid{grid-template-columns:1fr;gap:44px;}
  .team-teaser-photos{padding-right:0;max-width:340px;margin:0 auto;}
}

/* ---------- process: 3-step variant ---------- */
.process-list-3{grid-template-columns:repeat(3,1fr);}
@media (max-width:900px){
  .process-list-3{grid-template-columns:1fr;}
  .process-list-3 .process-item{border-left:none !important;border-top:1px solid var(--line-light);min-height:0;}
  .process-list-3 .process-item:first-child{border-top:none;}
}

/* ---------- flip solid dark chapters to beige — footer stays dark ---------- */
.process{background:var(--white);color:var(--black);border-top:1px solid var(--line-light);border-bottom:1px solid var(--line-light);}
.process .section-head h2{color:var(--black);}
.process .section-head p{color:var(--grey-500);}
.process-item{border-left:1px solid var(--line-light);}
.process-item .lead{color:var(--grey-700);}
.process-item p.desc{color:var(--grey-500);}
@media (max-width:900px){
  .process-item{border-top:1px solid var(--line-light);}
  .process-item:nth-child(odd){border-right:1px solid var(--line-light);}
}

.page-cta{background:var(--white);color:var(--black);}
.page-cta .eyebrow.light{color:var(--grey-500);}
.page-cta p{color:var(--grey-700);}

.contact{background:var(--white);color:var(--black);}
.contact .booking-intro p{color:var(--grey-700);}
.contact .booking-note{color:var(--grey-500) !important;}
.contact .contact-links{color:var(--grey-700);}
.contact .contact-links a:hover{color:var(--black);}
.contact .booking-form label, .contact .form-full{color:var(--grey-500);}
.contact .booking-form input, .contact .booking-form select, .contact .booking-form textarea{
  color:var(--black);border-bottom:1px solid var(--line-light);
}
.contact .booking-form input:focus, .contact .booking-form select:focus, .contact .booking-form textarea:focus{
  border-bottom-color:var(--black);
}
.contact .booking-form select option{background:var(--white);color:var(--black);}

/* ---------- meet the two of us (contact page, zig-zag) ---------- */
.meet{border-top:1px solid var(--line-light);margin-top:min(8vw,86px);padding-top:min(6vw,64px);}
.meet .section-head{margin-bottom:min(6vw,60px);}
.meet-heading{margin-bottom:min(5vw,44px);}
.meet-heading .eyebrow{display:block;}
.meet-row{display:grid;grid-template-columns:.85fr 1.15fr;gap:min(6vw,70px);align-items:center;margin-bottom:min(6vw,64px);}
.meet-row:last-child{margin-bottom:0;}
.meet-media{position:relative;aspect-ratio:4/5;overflow:hidden;background:var(--near-black);}
.meet-media img{width:100%;height:100%;object-fit:cover;}
.meet-copy h3{font-size:clamp(28px,4vw,46px);margin-bottom:8px;}
.meet-copy .founder-role{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--grey-500);margin-bottom:16px;}
.meet-copy p:not(.founder-role){font-size:15px;line-height:1.75;color:var(--grey-700);font-weight:300;max-width:420px;margin-bottom:18px;}
.meet-row-reverse{grid-template-columns:1.15fr .85fr;}
.meet-row-reverse .meet-media{order:2;}
.meet-row-reverse .meet-copy{order:1;}
@media (max-width:820px){
  .meet-row, .meet-row-reverse{grid-template-columns:1fr;gap:24px;}
  .meet-row-reverse .meet-media{order:0;}
  .meet-row-reverse .meet-copy{order:0;}
  .meet-media{max-width:320px;}
}

/* ---------- discreet legal page (no header/hero chrome) ---------- */
.legal-page{max-width:760px;margin:0 auto;padding:min(12vw,110px) min(11vw,168px) min(12vw,130px);}
.legal-back{position:relative;display:inline-block;padding-bottom:2px;font-size:13px;color:var(--grey-500);margin-bottom:44px;transition:color .3s var(--ease);}
.legal-back::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:currentColor;transition:width .3s var(--ease);}
.legal-back:hover{color:var(--black);}
.legal-back:hover::after{width:100%;}
.legal-title{font-size:clamp(34px,5vw,52px);margin:14px 0 38px;}
.legal-body p{font-size:15px;line-height:1.85;color:var(--grey-700);font-weight:300;margin-bottom:22px;max-width:620px;}
.legal-body a{color:var(--black);text-decoration:underline;text-underline-offset:3px;}
@media (max-width:820px){.legal-page{padding:70px 7vw 90px;}}

/* ---------- boxed CTA (contained dark card, not full-bleed) ---------- */
.cta-box{
  position:relative;overflow:hidden;
  background:var(--black);color:var(--white);
  border-radius:0;
  padding:min(5vw,44px) min(7vw,76px);
}
.cta-box .eyebrow.light{color:var(--grey-300);}
.cta-box h2{color:var(--white);}
.cta-box > p:not(.eyebrow){color:var(--grey-300);}
.cta-box-actions{display:flex;align-items:center;gap:min(4vw,36px);flex-wrap:wrap;margin-top:6px;}
.cta-box .cta-btn{background:var(--white);color:var(--black);}
.cta-box .cta-btn span{color:var(--black);}
.cta-box .text-link{color:var(--grey-100);font-weight:500;}
.cta-mark{
  position:absolute;top:50%;right:min(4vw,50px);transform:translateY(-50%);
  display:flex;align-items:center;justify-content:center;
  width:clamp(120px,16vw,240px);
  pointer-events:none;user-select:none;
}
.cta-mark img{
  width:100%;height:auto;object-fit:contain;
  opacity:.06;filter:brightness(0) invert(1);
}
@media (max-width:820px){
  .cta-box{padding:52px 30px;border-radius:0;}
  .cta-mark{display:none;}
  .cta-box-actions{gap:18px;}
}


/* ---------- service picker: column of clickable options instead of a <select> ---------- */
.field-label{display:block;margin-bottom:12px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--grey-500);}
.option-list{display:flex;flex-direction:column;gap:10px;}
.option-item{
  position:relative;display:flex;align-items:center;gap:14px;
  padding:15px 18px;border:1px solid var(--line-light);cursor:pointer;
  transition:border-color .3s var(--ease), background .3s var(--ease);
}
.option-item input{position:absolute;opacity:0;width:1px;height:1px;}
.option-radio{
  width:16px;height:16px;flex-shrink:0;border-radius:50%;border:1px solid var(--grey-300);
  position:relative;transition:border-color .3s var(--ease);
}
.option-radio::after{
  content:'';position:absolute;inset:3px;border-radius:50%;background:var(--black);
  opacity:0;transition:opacity .2s var(--ease);
}
.option-text{
  flex:1;font-family:'Inter',sans-serif;font-size:14px;font-weight:300;
  letter-spacing:normal;text-transform:none;color:var(--black);
}
.option-item::after{
  content:'→';opacity:0;color:var(--black);font-size:14px;flex-shrink:0;
  transform:translateX(-6px);transition:opacity .3s var(--ease), transform .3s var(--ease);
}
.option-item:hover{border-color:var(--black);}
.option-item:hover::after{opacity:1;transform:translateX(0);}
.option-item:has(input:checked){border-color:var(--black);background:rgba(30,36,41,.04);}
.option-item:has(input:checked) .option-radio{border-color:var(--black);}
.option-item:has(input:checked) .option-radio::after{opacity:1;}
.option-item:has(input:checked) .option-text{font-weight:500;}
.option-item:has(input:checked)::after{opacity:1;transform:translateX(0);content:'✓';}
.option-item input:focus-visible ~ .option-radio{outline:2px solid var(--grey-300);outline-offset:3px;}

.contact.no-hero{padding-top:min(15vw,190px);}
@media (max-width:820px){
  .contact.no-hero{padding-top:132px;}
}

/* ---------- book us: dark 5-step wizard ---------- */
.book{background:var(--black);color:var(--white);text-align:left;}
.book-head{max-width:520px;margin-bottom:min(5vw,52px);}
.book-head .eyebrow{display:block;margin-bottom:18px;}
.book-head h2{font-size:clamp(38px,6.5vw,64px);margin-bottom:18px;}
.book-head p{font-size:clamp(15px,1.6vw,17px);color:var(--grey-100);line-height:1.7;font-weight:300;}
.book-wizard{max-width:620px;}

.wizard-progress{display:flex;gap:min(3vw,18px);margin-bottom:min(6vw,48px);}
.wizard-step{
  flex:1;display:flex;flex-direction:column;gap:8px;padding-bottom:14px;
  border-bottom:2px solid var(--line-dark);color:var(--grey-500);
  transition:color .3s var(--ease), border-color .3s var(--ease);
}
.wizard-step i{font-style:normal;font-family:'Bebas Neue',sans-serif;font-size:22px;color:var(--grey-700);transition:color .3s var(--ease);}
.wizard-step span{display:none;font-size:10px;letter-spacing:.14em;text-transform:uppercase;}
.wizard-step.active,.wizard-step.done{color:var(--white);border-bottom-color:var(--white);}
.wizard-step.active i,.wizard-step.done i{color:var(--white);}
.wizard-step.done{cursor:pointer;}
@media (min-width:561px){.wizard-step span{display:block;}}

.wizard-pane{display:none;}
.wizard-pane.active{display:block;animation:riseIn .5s var(--ease);}
.book .field-label{color:var(--grey-500);}
.book .option-item{border-color:var(--line-dark);}
.book .option-radio{border-color:var(--grey-700);}
.book .option-radio::after{background:var(--white);}
.book .option-text{color:var(--white);}
.book .option-item::after{color:var(--white);}
.book .option-item:hover{border-color:var(--white);}
.book .option-item:has(input:checked){border-color:var(--white);background:rgba(247,245,239,.06);}
.book .option-item:has(input:checked) .option-radio{border-color:var(--white);}

.wizard-nav{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:min(6vw,40px);}
.wizard-back{
  font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--grey-500);
  transition:color .3s var(--ease);
}
.wizard-back:hover{color:var(--white);}
.wizard-back[hidden]{display:none;}
.wizard-next, .wizard-submit{margin-left:auto;}
.wizard-summary{
  margin-top:28px;padding-top:22px;border-top:1px solid var(--line-dark);
  display:flex;flex-direction:column;gap:9px;font-size:13px;color:var(--grey-300);
}
.wizard-summary strong{color:var(--white);font-weight:500;}

/* ---------- selected jobs: warm beige presentation ---------- */
.selected-work{background:var(--white);}
.selected-work .work-item{background:var(--black);}
.selected-work .work-item img{filter:contrast(1.045) saturate(1.03);}

/* Keep the selected-work block on the front page slightly more compact */
.selected-work .work-item{aspect-ratio:16/9;}

/* Two projects, side by side and gently staggered rather than one full-width under the other */
.selected-work .work-grid{align-items:start;}
@media (min-width:821px){
  .selected-work .work-item:nth-child(2){margin-top:min(8vw,90px);}
}
