/* ── OVERLAY OPEN: hide all fixed UI ── */
body.ov-open #kin-logo,
body.ov-open #nav,
body.ov-open #sec-nav,
body.ov-open #scroll-arrow,
body.ov-open #scroll-text {
  opacity:0!important;
  pointer-events:none!important;
  visibility:hidden!important;
}
/* ── CLOSE BUTTON: always on top ── */
.ov-x {
  position:fixed!important;
  top:24px!important;
  right:48px!important;
  z-index:2147483647!important;
  width:44px!important;
  height:44px!important;
  border-radius:50%!important;
  background:rgba(255,255,255,0.95)!important;
  border:1px solid rgba(0,0,0,0.15)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  pointer-events:all!important;
}

#nav{
  position:fixed;
  top:0;left:0;right:0;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:28px 20px;
  background:transparent;
  pointer-events:none;
  opacity:0;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
:root{
  --green:#4B5C52;
  --gl:#8D9B92;
  --cream:#F5F0E8;
  --white:#FAFAF8;
  --dark:#0D0D0B;
  --mid:#6b6b67;
}
html,body{width:100%;height:100%;overflow:hidden;background:var(--white);}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}

.skip-link{position:absolute;top:-40px;left:8px;z-index:99999;background:var(--dark);color:var(--white);padding:10px 18px;font-size:13px;letter-spacing:.05em;text-decoration:none;border-radius:2px;transition:top .2s ease;}
.skip-link:focus{top:8px;}

/* ── CURSOR ── */
#cur{display:none!important;}


body.hl 
body.hl 

/* ── KIN LOGO — THE STAR OF THE SHOW ── */
/* Lives in fixed position, transitions between slides via JS transform */
#kin-logo{
  position:fixed;
  z-index:100;
  pointer-events:none;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  text-align:center;
  line-height:1;
}

@keyframes logoReveal{
  from{opacity:0;transform:translateY(16px);}
  to{opacity:1;transform:translateY(0);}
}


/* Logo state: NAV (small, top center) */





#kin-logo.state-dark .kl-sub{color:rgba(255,255,255,.4);}


  40% {opacity:0;transform:translateX(-50%) scaleX(0) translateY(-4px);}
  60% {opacity:0;transform:translateX(-50%) scaleX(0) translateY(4px);}
  100%{opacity:1;transform:translateX(-50%) scaleX(1);}
}










/* ── PROGRESS + COUNTER ── */
#pbar{position:fixed;bottom:0;left:0;height:2px;background:linear-gradient(to right,var(--green),var(--gl));z-index:700;transition:width .15s;}
#snum{
  position:fixed;
  bottom:52px;
  right:60px;
  z-index:851;
  font-family:'Plus Jakarta Sans','Gilroy',sans-serif;
  font-size:13px;
  font-style:italic;
  color:rgba(13,13,11,.3);
  pointer-events:none;
}
#snum b{color:#4B5C52;font-style:normal;font-weight:400;}

/* ── STAGE (3D cylinder) ── */
html,body{perspective:1800px;perspective-origin:50% 50%;}
#stage{position:fixed;inset:0;transform-style:preserve-3d;}
.panel{position:absolute;top:0;left:0;width:100vw;height:100vh;transform-style:preserve-3d;backface-visibility:hidden;will-change:transform,opacity;overflow:hidden;}



/* S0 — HERO */
#s0{background:#000000;}


@keyframes fi{from{opacity:0}to{opacity:1}}
@keyframes pulse{0%,100%{opacity:.4;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.3)}}

#s1::before, #s3::before, #s4::before {
  content:'';
  position:absolute;
  top:0;left:0;right:0;
  height:140px;
  background:linear-gradient(to bottom, rgba(0,0,0,.28) 0%, transparent 100%);
  z-index:1;
  pointer-events:none;
}
/* S1 — STUDIO / ABOUT */
#s1{background:#F2EDE4;}
.s1-photo{position:absolute;left:0;top:0;bottom:0;width:48%;overflow:hidden;mask-image:radial-gradient(ellipse 78% 92% at 38% 46%, black 60%, transparent 96%);-webkit-mask-image:radial-gradient(ellipse 78% 92% at 38% 46%, black 60%, transparent 96%);}
.s1-photo img{width:100%;height:100%;object-fit:cover;object-position:15% top;filter:grayscale(10%);}
.s1-photo::before{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(to left,#F2EDE4 0%,transparent 55%);}
.s1-content{position:absolute;right:8vw;left:auto;top:50%;transform:translateY(-50%);max-width:42vw;z-index:2;}
.s1-num{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:11px;letter-spacing:.3em;color:var(--gl);margin-bottom:40px;display:block;}
.s1-h{
  font-family:'Plus Jakarta Sans','Gilroy',sans-serif;
  font-size:clamp(24px,3vw,42px);
  font-weight:300;
  line-height:1.18;
  color:var(--dark);
  margin:0;
  position:relative;
  z-index:1;
}
.s1-h em{font-style:italic;color:#4B5C52;}
.s1-p{font-size:clamp(13px,1.1vw,16px);color:#2C2C2A;line-height:1.85;max-width:460px;}

/* S2 — SERVICES */
#s2{background:#0C120E;display:flex;flex-direction:column;}
.s2-top{flex:1;display:flex;align-items:center;padding:0 5vw;position:relative;}
.s2-h{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:clamp(48px,7vw,96px);font-weight:300;font-style:italic;color:var(--white);line-height:.9;}
.s2-aside{position:absolute;right:10vw;bottom:8px;font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.2);writing-mode:vertical-rl;}
.s2-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(141,155,146,.12);}
.svc{padding:20px 5vw 20px ;44px 44px 52px;border-right:1px solid rgba(141,155,146,.08);position:relative;overflow:hidden;transition:background .5s;text-decoration:none;display:block;}
.svc:last-child{border-right:none;}
.svc::after{content:'';position:absolute;left:0;bottom:0;width:100%;height:2px;background:var(--gl);transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.16,1,.3,1);}
.svc:hover::after{transform:scaleX(1);}
.svc:hover{background:rgba(141,155,146,.05);}
.svc-n{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:42px;font-style:italic;color:rgba(141,155,146,.12);display:block;margin-bottom:18px;transition:color .4s;}
.svc:hover .svc-n{color:rgba(141,155,146,.35);}
.svc-t{font-size:13px;font-weight:700;color:var(--white);margin-bottom:10px;letter-spacing:.01em;}
.svc-d{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:11px;font-weight:300;line-height:1.8;color:rgba(255,255,255,.35);}
.svc-arr{position:absolute;bottom:44px;right:44px;font-size:18px;color:var(--gl);opacity:0;transform:translateX(-8px);transition:opacity .35s,transform .35s;}
.svc:hover .svc-arr{opacity:1;transform:none;}

/* S3 — PROJECTS */
#s3{background:var(--white);width:100vw;}
.s3-lbl{position:absolute;top:44px;left:10vw;font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:clamp(28px,3.5vw,48px);font-style:italic;color:rgba(13,13,11,.07);pointer-events:none;}
.preel{display:flex;height:100vh;width:100%;}
.pc{flex:1 1 0;min-width:0;position:relative;overflow:hidden;background:#1a1a16;transition:flex .8s cubic-bezier(.16,1,.3,1);}
.pc:hover{flex:1.4 1 0;}
.pc-img{width:100%;height:100%;object-fit:cover;filter:brightness(.7) saturate(.85);transition:filter .8s,transform .9s cubic-bezier(.16,1,.3,1);}
.pc-ph{width:100%;height:100%;display:block;transition:transform .9s cubic-bezier(.16,1,.3,1);}
.pc:hover .pc-img{filter:brightness(.05) saturate(.3);transform:scale(1.05);}
.pc:hover .pc-ph{transform:scale(1.05);}
.pc-info{position:absolute;bottom:0;left:0;right:0;padding:52px 28px 28px;background:linear-gradient(to top,rgba(13,13,11,.88),transparent);transform:translateY(10px);transition:transform .5s cubic-bezier(.16,1,.3,1);}
.pc:hover .pc-info{transform:none;}
.pc-cat{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:7px;letter-spacing:.25em;text-transform:uppercase;color:var(--gl);margin-bottom:6px;}
.pc-name{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:clamp(14px,1.6vw,22px);font-style:normal;color:var(--white);margin-top:4px;font-weight:500;}
.pc-cta{margin-top:10px;font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:var(--gl);display:inline-flex;align-items:center;gap:7px;opacity:0;transform:translateY(6px);transition:opacity .35s .05s,transform .35s .05s;}
.pc:hover .pc-cta{opacity:1;transform:none;}
.pc-cta::after{content:'→';font-family:serif;font-size:13px;}


/* S5 — CTA */
#s5{background:var(--dark);overflow:hidden;display:flex;align-items:center;justify-content:center;}
.s5-glow{position:absolute;width:70vw;height:70vw;border-radius:50%;background:radial-gradient(circle,rgba(75,92,82,.2) 0%,transparent 65%);top:50%;left:50%;transform:translate(-50%,-50%);animation:orbP 7s ease-in-out infinite;}
.s5-rings div{position:absolute;border-radius:50%;border:1px solid rgba(141,155,146,.07);top:50%;left:50%;transform:translate(-50%,-50%);animation:rP 8s ease-in-out infinite;}
.s5-rings div:nth-child(1){width:26vmin;height:26vmin;animation-delay:0s;}
.s5-rings div:nth-child(2){width:46vmin;height:46vmin;animation-delay:1.4s;}
.s5-rings div:nth-child(3){width:68vmin;height:68vmin;animation-delay:2.8s;}
.s5-rings div:nth-child(4){width:92vmin;height:92vmin;animation-delay:4.2s;}
@keyframes orbP{0%,100%{transform:translate(-50%,-50%) scale(1);opacity:.7;}50%{transform:translate(-50%,-50%) scale(1.07);opacity:1;}}
@keyframes rP{0%,100%{opacity:.6;}50%{opacity:1;}}
.s5-inner{position:relative;z-index:2;text-align:center;max-width:760px;padding:0 48px;}
.s5-pre{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.44em;text-transform:uppercase;color:var(--gl);margin-bottom:32px;opacity:.8;}
.s5-h{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:clamp(36px,5.5vw,72px);font-weight:300;line-height:1.1;color:var(--white);margin-bottom:20px;}
.s5-h em{font-style:italic;color:var(--gl);}
.s5-sub{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:13px;font-weight:300;line-height:1.85;color:rgba(255,255,255,.42);margin-bottom:48px;max-width:480px;margin-left:auto;margin-right:auto;}
.s5-btns{display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin-bottom:52px;}
.s5-bp{padding:15px 38px;background:var(--green);color:var(--white);font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:9px;font-weight:500;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;border:1px solid var(--green);transition:background .3s,color .3s;}
.s5-bp:hover{background:transparent;color:var(--gl);}
.s5-bg{padding:15px 38px;background:transparent;color:var(--white);font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:9px;font-weight:300;letter-spacing:.26em;text-transform:uppercase;text-decoration:none;border:1px solid rgba(255,255,255,.2);transition:border-color .3s;}
.s5-bg:hover{border-color:var(--white);}
.s5-contacts{display:flex;gap:56px;justify-content:center;padding-top:36px;border-top:1px solid rgba(255,255,255,.07);}
.s5-ci{text-decoration:none;text-align:left;transition:transform .3s;}
.s5-ci:hover{transform:translateY(-3px);}
.s5-cl{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:7px;letter-spacing:.26em;text-transform:uppercase;color:rgba(255,255,255,.22);display:block;margin-bottom:5px;}
.s5-cv{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:17px;font-style:italic;color:var(--white);}
.s5-foot{position:absolute;bottom:0;left:0;right:0;}
.s5-ig{background:rgba(255,255,255,.03);padding:14px 10vw;display:flex;align-items:center;justify-content:center;gap:10px;border-top:1px solid rgba(141,155,146,.07);}
.s5-ig a{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:9px;letter-spacing:.2em;color:rgba(255,255,255,.28);text-decoration:none;transition:color .3s;}
.s5-ig a:hover{color:var(--white);}
.s5-footer{background:rgba(0,0,0,.3);padding:18px 10vw;display:flex;align-items:center;justify-content:space-between;border-top:1px solid rgba(141,155,146,.05);}
.s5-footer span,.s5-footer a{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.1em;color:rgba(255,255,255,.18);text-decoration:none;}

/* ── OVERLAYS ── */
/* display:none by default (see openOv/closeOv in script.js): a
   position:fixed element with a transform gets its own GPU compositing
   layer regardless of visibility. With 31 of these overlays (26 projects +
   3 categories + 2 info pages) permanently in the page, leaving them all
   "off-screen via transform" rather than display:none means 31 full-screen
   GPU layers alive at once — a real structural memory cost on mobile GPUs
   that compounds with anything else happening on screen, e.g. scrolling. */
.ov{position:fixed;inset:0;z-index:9000;background:var(--white);transform:translateY(100%);transition:transform .85s cubic-bezier(.16,1,.3,1);overflow-y:auto;overscroll-behavior:contain;display:none;}
.ov.open{transform:translateY(0);}

.ov-x:hover{border-color:#4B5C52;background:rgba(75,92,82,.08);}
.ov-x svg{width:13px;stroke:var(--dark);stroke-width:1.5;stroke-linecap:round;}
.ov-sh{height:56vh;position:relative;overflow:hidden;display:flex;align-items:flex-end;background:linear-gradient(135deg,#111a14,#090e0a);}
.ov-sg{position:absolute;inset:0;background-image:linear-gradient(rgba(75,92,82,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(75,92,82,.05) 1px,transparent 1px);background-size:68px 68px;}
.ov-st{position:relative;z-index:2;padding:0 10vw 56px;}
.ov-scat{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.3em;text-transform:uppercase;color:var(--gl);margin-bottom:10px;opacity:.9;}
.ov-stitle{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:clamp(44px,6.5vw,84px);font-weight:300;font-style:italic;color:var(--white);line-height:.95;}
.ov-back{display:inline-flex;align-items:center;gap:9px;font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(13,13,11,.32);padding:28px 10vw 0;background:none;border:none;transition:color .3s,gap .3s;}
.ov-back:hover{color:var(--dark);gap:15px;}
.ov-back::before{content:'←';font-family:serif;font-size:14px;}
.ov-mason{columns:3;column-gap:3px;padding:40px 10vw;}
.ov-mi{break-inside:avoid;margin-bottom:3px;overflow:hidden;position:relative;background:#ddd;}
.ov-mi-ph{width:100%;display:block;transition:transform .9s cubic-bezier(.25,.46,.45,.94),filter .6s;filter:brightness(.88);}
.ov-mi:hover .ov-mi-ph{transform:scale(1.05);filter:brightness(.65);}
.ov-mi-cap{padding:10px 14px 14px;background:var(--white);border-top:1px solid rgba(75,92,82,.1);}
.ov-mi-cat{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:7px;letter-spacing:.18em;text-transform:uppercase;color:var(--gl);margin-bottom:3px;}
.ov-mi-name{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:15px;font-style:italic;color:var(--dark);}
.ov-ph{height:60vh;position:relative;overflow:hidden;display:flex;align-items:flex-end;}
.ov-ph-bg{position:absolute;inset:0;object-fit:cover;width:100%;height:100%;filter:brightness(.42) saturate(.8);}
.ov-ph-bgd{position:absolute;inset:0;}
.ov-ph-fade{position:absolute;inset:0;background:linear-gradient(to top,rgba(13,13,11,.88) 0%,rgba(13,13,11,.04) 55%);}
.ov-ph-txt{position:relative;z-index:2;padding:0 10vw 56px;}
.ov-pb{max-width:740px;margin:64px auto;padding:0 48px;}
.ov-desc{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:14px;font-weight:300;line-height:2;color:rgba(13,13,11,.52);margin-bottom:60px;}
/* ── Magazine-style photo carousel: one photo at a time, its own frame
   follows that photo's shape (no crop, no stretch, no letterboxing).
   Breaks out of .ov-pb's narrow 740px reading column so it can use most
   of the page width; max-height keeps portrait shots from towering. ── */
.ov-car{width:88vw;max-width:1200px;margin:40px calc(50% - 44vw) 0;cursor:grab;}
.ov-car-stage{position:relative;width:100%;display:flex;align-items:center;justify-content:center;touch-action:pan-y;}
.ov-car-slide{display:none;width:auto;height:auto;max-width:100%;max-height:82vh;}
.ov-car-slide.is-active{display:block;}
.ov-car-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;border:none;background:rgba(250,250,248,.88);color:#0D0D0B;font-size:20px;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .25s,transform .25s;z-index:2;}
.ov-car-arrow:hover{background:#fff;transform:translateY(-50%) scale(1.06);}
.ov-car-prev{left:16px;}
.ov-car-next{right:16px;}
.ov-car-count{margin-top:18px;text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:rgba(13,13,11,.4);}
.ov-nav{display:flex;align-items:center;justify-content:space-between;padding:48px 10vw;border-top:1px solid rgba(75,92,82,.1);margin-top:48px;}
.ov-nb{font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-size:8px;letter-spacing:.2em;text-transform:uppercase;color:rgba(13,13,11,.3);display:flex;align-items:center;gap:8px;transition:color .3s,gap .3s;background:none;border:none;}
.ov-nb:hover{color:var(--dark);gap:14px;}
.ov-nl{font-family:'Plus Jakarta Sans','Gilroy',sans-serif;font-size:13px;font-style:italic;color:rgba(13,13,11,.2);}

@media (max-width:900px), (hover:none) and (pointer:coarse){
  html,body{perspective:none;overflow:auto;}
  #stage{position:relative;transform-style:flat;}
  .panel{position:relative;width:100vw!important;height:auto!important;min-height:100vh;transform:none!important;opacity:1!important;}
  #s4 .s4-photo{display:none;}
  .s1-content{position:relative;left:0;top:0;transform:none;padding:100px 24px 60px;max-width:100%;}
  .s2-grid{grid-template-columns:1fr;}
  .preel{flex-wrap:nowrap;height:100vh;overflow:hidden;width:100%;}
  
  
  .s4-text{padding:60px 24px;}
  
  
  #kin-logo.state-hero .kl-main{font-size:clamp(44px,14vw,80px);}
  .ov-mason{columns:1;}
  .ov-pb{padding:0 24px;}
  .ov-nav{padding:40px 24px;}
  #snum{
  position:fixed;
  bottom:52px;
  right:60px;
  z-index:851;
  font-family:'Plus Jakarta Sans','Gilroy',sans-serif;
  font-size:13px;
  font-style:italic;
  color:rgba(13,13,11,.3);
  pointer-events:none;
}
}


  to{opacity:1;transform:none;}
}

.s0-scroll{
  position:fixed;
  bottom:52px;
  right:60px;
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:8px;
  z-index:900;
  opacity:0;
  animation:fi 1s ease 5s forwards;
}
.s0-scroll-txt{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:10px;
  font-weight:500;
  letter-spacing:.35em;
  text-transform:uppercase;
  color:rgba(255,255,255,.85);
}
.s0-scroll-arrow{
  animation:arrowPulse 1.8s ease-in-out infinite;
}
@keyframes arrowPulse{
  0%,100%{transform:translateX(0);opacity:.5;}
  50%{transform:translateX(6px);opacity:1;}
}
.s0-line{width:1px;height:40px;background:rgba(255,255,255,.5);}

/* Book CTA on hero — offset below center must clear the hero logo's own
   rendered half-height (logo SVG viewBox ratio 465/365 ≈ 1.274, so half-height
   = width * .637), or it sits behind "THE STUDIO" text. Width clamp here
   matches the one script.js sets on #kin-svg-hero svg on desktop init. */
.s0-book-wrap{position:absolute;top:calc(50% + (clamp(180px,22vw,320px) * .637) + 40px);left:50%;transform:translateX(-50%);z-index:3;opacity:0;animation:fi 1s ease 2.5s forwards;white-space:nowrap;}
.s0-book{
  display:inline-block;
  padding:13px 36px;
  border:1px solid rgba(255,255,255,.55);
  color:rgba(255,255,255,.9);
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:9px;font-weight:500;
  letter-spacing:.28em;text-transform:uppercase;
  text-decoration:none;
  transition:background .3s,border-color .3s;
  white-space:nowrap;
}
.s0-book:hover{
  background:rgba(255,255,255,.12);
  border-color:rgba(255,255,255,.9);
}


  to  {opacity:1;transform:none;}
}


  100%{opacity:0;visibility:hidden;}
}
/* ── INTRO OVERLAY ── */
#intro-overlay{
  position:fixed;inset:0;
  z-index:750;
  background:#000;
  pointer-events:none;
  animation:introHold 0.8s ease 2s forwards;
}
@keyframes introHold{
  0%{opacity:1;}
  100%{opacity:0;visibility:hidden;}
}
to{opacity:1;}}






/* Dark gradient so white links are readable on bright video */






/* ══ NAV BAR ══ */














/* ══════════════════════════════════════
   NAV — matches screenshot exactly
   Hidden by default, visible on slide 0
   Fades in over 5s in sync with video
   ══════════════════════════════════════ */


.nav-l,.nav-r{display:flex;flex-direction:row;align-items:center;}
.nav-l a,.nav-r a{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:9px;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  color:#ffffff;
  text-decoration:none;
  margin:0 14px;
}
.nav-l a:hover,.nav-r a:hover{
  opacity:0.65;
}
.ndrop{
  position:relative;
  display:inline-flex;
  align-items:center;
  padding-bottom:16px;
  margin-bottom:-16px;
}
.ndrop>a::after{content:' ↓';font-size:8px;}
.dpanel{
  position:absolute;
  top:100%;
  left:0;
  background:rgba(10,10,10,.95);
  backdrop-filter:blur(12px);
  min-width:220px;
  padding:8px 0;
  border:1px solid rgba(255,255,255,.12);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s, transform .2s;
  transform:translateY(-4px);
  margin-top:0;
}
.ndrop:hover .dpanel{
  opacity:1;
  pointer-events:all;
  transform:none;
}
.dpanel a{
  display:block;
  padding:11px 22px;
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:8px;
  letter-spacing:.15em;
  text-transform:uppercase;
  color:rgba(255,255,255,.7);
  font-weight:400;
  text-decoration:none;
}
.dpanel a:hover{color:#fff;background:rgba(255,255,255,.05);}

/* Logo travel shadow — appears mid-transition */
#kin-logo{
  position:fixed;
  z-index:100;
  pointer-events:none;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  text-align:center;
  line-height:1;
}
#kin-logo.traveling{
  filter: drop-shadow(0 20px 40px rgba(0,0,0,0.45));
}

/* ── SECTION NAVIGATOR ── */
#sec-nav{
  position:fixed;
  bottom:0;left:0;right:0;
  z-index:850;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:32px;
  padding:16px 0;
  opacity:0;
  transition:opacity 0.5s ease, background 0.5s ease;
  pointer-events:none;
}
#sec-nav.visible{opacity:1;pointer-events:all;}
/* Each slide's exact background color — seamless */
#sec-nav.theme-s1{background:#F2EDE4;}
#sec-nav.theme-s2{background:#0C120E;}
#sec-nav.theme-s3{background:rgba(13,13,11,0.92);}
#sec-nav.theme-s4{background:#F2EDE4;}
#sec-nav.theme-s5{background:#0C120E;}
/* Text colors per theme */
#sec-nav.theme-s1 .sn-item,
#sec-nav.theme-s4 .sn-item{color:rgba(0,0,0,0.28);}
#sec-nav.theme-s3 .sn-item{color:rgba(255,255,255,0.28);}
#sec-nav.theme-s1 .sn-item:hover,
#sec-nav.theme-s4 .sn-item:hover{color:rgba(0,0,0,0.7);}
#sec-nav.theme-s3 .sn-item:hover{color:rgba(255,255,255,0.8);}
#sec-nav.theme-s1 .sn-item.active,
#sec-nav.theme-s4 .sn-item.active{font-weight:700;color:rgba(0,0,0,0.85);}
#sec-nav.theme-s3 .sn-item.active{font-weight:700;color:#ffffff;}
#sec-nav.theme-s1 .sn-dot,
#sec-nav.theme-s4 .sn-dot{background:rgba(0,0,0,0.15);}
#sec-nav.theme-s3 .sn-dot{background:rgba(255,255,255,0.15);}
#sec-nav.theme-s2 .sn-item,
#sec-nav.theme-s5 .sn-item{color:rgba(255,255,255,0.28);}
#sec-nav.theme-s2 .sn-item:hover,
#sec-nav.theme-s5 .sn-item:hover{color:rgba(255,255,255,0.8);}
#sec-nav.theme-s2 .sn-item.active,
#sec-nav.theme-s5 .sn-item.active{font-weight:700;color:#ffffff;}
#sec-nav.theme-s2 .sn-dot,
#sec-nav.theme-s5 .sn-dot{background:rgba(255,255,255,0.15);}
.sn-item{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:8px;font-weight:400;
  letter-spacing:.22em;text-transform:uppercase;
  text-decoration:none;
  transition:color .3s, font-weight .3s;
  white-space:nowrap;
}
.sn-dot{width:3px;height:3px;border-radius:50%;flex-shrink:0;}
/* Dark slides */
#sec-nav.theme-dark{
  background:rgba(12,18,14,0.85);
  backdrop-filter:blur(10px);
  border-top-color:rgba(255,255,255,0.07);
}
#sec-nav.theme-dark .sn-item{color:rgba(255,255,255,0.3);}
#sec-nav.theme-dark .sn-item:hover{color:rgba(255,255,255,0.8);}
#sec-nav.theme-dark .sn-item.active{font-weight:700;color:#ffffff;}
#sec-nav.theme-dark .sn-dot{background:rgba(255,255,255,0.15);}
.sn-item{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:8px;
  font-weight:400;
  letter-spacing:.22em;
  text-transform:uppercase;
  text-decoration:none;
  transition:color .3s, font-weight .3s;
  white-space:nowrap;
}
.sn-dot{
  width:3px;
  height:3px;
  border-radius:50%;
  flex-shrink:0;
}
/* DARK background slides */
#sec-nav.theme-dark{
  background:rgba(20,20,20,0.55);
  box-shadow:0 4px 24px rgba(0,0,0,0.35), 0 1px 0 rgba(255,255,255,0.06) inset;
  border:1px solid rgba(255,255,255,0.1);
}
#sec-nav.theme-dark .sn-item{
  color:rgba(255,255,255,0.4);
}
#sec-nav.theme-dark .sn-item:hover{
  color:rgba(255,255,255,0.85);
}
#sec-nav.theme-dark .sn-item.active{
  font-weight:700;
  color:#ffffff;
}
#sec-nav.theme-dark .sn-dot{
  background:rgba(255,255,255,0.2);
}
.sn-item{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-size:9px;
  font-weight:400;
  letter-spacing:.2em;
  text-transform:uppercase;
  text-decoration:none;
  transition:color .3s, font-weight .3s;
  white-space:nowrap;
}
.sn-dot{
  width:3px;
  height:3px;
  border-radius:50%;
  flex-shrink:0;
}


/* Hero: KIN / THE STUDIO stacked */
#kin-logo.state-hero .kl-main br{display:block;}
#kin-logo.state-hero 
#kin-logo.state-hero 

/* Nav state: KIN THE STUDIO all on one line */
#kin-logo.state-nav .kl-main br{display:none;}
#kin-logo.state-nav 
#kin-logo.state-nav 




/* Nav state: inline side by side */
#kin-logo.state-nav 
#kin-logo.state-nav 



/* Hide logo and nav when any overlay is open */
body.ov-open #kin-logo{ opacity:0 !important; pointer-events:none !important; }
body.ov-open #nav{ opacity:0 !important; pointer-events:none !important; }
body.ov-open #sec-nav{ opacity:0 !important; pointer-events:none !important; }
body.ov-open #scroll-arrow{ display:none !important; }
body.ov-open #scroll-text{ display:none !important; }

/* ── V3 HERO SVG LOGO ── */
#kin-svg-hero{
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:1;
  transition:opacity 0.6s ease;
}
#kin-svg-hero svg{width:clamp(70px,7vw,90px);height:auto;}
/* Nav text logo for other slides */

/* state-nav: show text, hide SVG */
#kin-logo.state-nav #kin-svg-hero{ display:none; }
#kin-logo.state-nav 
/* state-hero: show SVG, hide text */
#kin-logo.state-hero #kin-svg-hero{ display:flex; }
#kin-logo.state-hero

#kin-logo{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;pointer-events:none;text-align:center;}
#kin-logo.state-hero{opacity:1;}
#kin-logo.state-nav{opacity:0!important;pointer-events:none!important;}
#kin-svg-hero{display:flex;align-items:center;justify-content:center;}
#kin-svg-hero svg{width:clamp(70px,7vw,90px);height:auto;}
#kin-logo-nav{position:fixed;top:26px;left:50%;transform:translateX(-50%);z-index:802;opacity:0;pointer-events:none;font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;font-weight:700;font-size:11px;letter-spacing:.4em;text-indent:.4em;text-transform:uppercase;white-space:nowrap;color:#1a1a1a;transition:opacity 0.5s ease,color 0.3s ease;}

#logo-wheel{
  position:fixed;
  pointer-events:none;
  z-index:900;
  top:50%; left:50%;
  transform:translate(-50%,-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  perspective:800px;
}
#logo-wheel svg{ width:clamp(160px,18vw,280px); height:auto; }

/* ── S1 ENHANCED QUOTE ── */
.s1-quote-wrap{
  position:relative;
  margin-bottom:40px;
}
.s1-quote-mark{
  font-family:'Plus Jakarta Sans','Gilroy',sans-serif;
  font-size:clamp(60px,7vw,100px);
  line-height:0.5;
  color:#4B5C52;
  opacity:0.15;
  position:absolute;
  top:-5px;
  left:-14px;
  font-style:italic;
  pointer-events:none;
  user-select:none;
}
.s1-h{
  font-family:'Plus Jakarta Sans','Gilroy',sans-serif;
  font-size:clamp(24px,3vw,42px);
  font-weight:300;
  line-height:1.18;
  color:var(--dark);
  margin:0;
  position:relative;
  z-index:1;
}
.s1-h em{font-style:italic;color:#4B5C52;}


/* ── GILROY BRAND FONT ── */
:root{ font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif; }
body{ font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif; }

/* Titles: Gilroy Semi-Bold */
h1,h2,h3,h4,h5,h6,
.s1-h,.s2-h,.s3-h,.s4-h,.s5-h,
.s1-num,.s2-aside{
  font-family:'Plus Jakarta Sans','Gilroy',sans-serif;
  font-weight:600;
}

/* Body text: Gilroy Regular */
p,.s1-p,.s2-p,.ov-desc,
.nav-l a,.nav-r a,
#kin-logo-nav,
.sn-item,
.s0-scroll-txt{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif;
  font-weight:400;
}

/* Nav KIN THE STUDIO: Gilroy Semi-Bold */
#kin-logo-nav{
  font-family:'Plus Jakarta Sans','Gilroy','Montserrat',sans-serif !important;
  font-weight:600 !important;
}

/* Italic stays italic in Gilroy */
em, .s1-h em{font-style:italic;color:#4B5C52;}


/* ── SLIDE WATERMARK S-SHAPE ── */
.slide-watermark{
  position:absolute;
  left:0;
  top:0;
  width:30%;
  height:100%;
  pointer-events:none;
  z-index:1;
  transform:scaleX(-1);
  transform-origin:left center;
}
/* Color per slide — 20% opacity of each page color */
#s1 .slide-watermark{ color:rgba(13,13,11,0.12); }
#s2 .slide-watermark{ color:rgba(250,250,248,0.12); }
#s3 .slide-watermark{ color:rgba(13,13,11,0.12); }
#s4 .slide-watermark{ color:rgba(13,13,11,0.12); }
#s5 .slide-watermark{ color:rgba(250,250,248,0.12); }

@media (max-width:900px), (hover:none) and (pointer:coarse){
  /* scroll-behavior:smooth removed: it forces an animated repaint on every
     scroll-into-view / anchor jump, the same GPU cost category as the
     backdrop-filter issue — worth eliminating while narrowing this down. */
  html,body{height:auto!important;min-height:100%!important;overflow-x:hidden!important;overflow-y:auto!important;perspective:none!important;-webkit-overflow-scrolling:touch;}
  body{position:relative!important;}
  #stage{position:relative!important;inset:auto!important;transform:none!important;transform-style:flat!important;}
  .panel{position:relative!important;top:auto!important;left:auto!important;width:100%!important;min-height:100svh!important;height:auto!important;transform:none!important;opacity:1!important;pointer-events:auto!important;overflow:hidden!important;backface-visibility:visible!important;will-change:auto!important;}
  #logo-wheel,#intro-overlay,#pbar,#snum,#scroll-text,#scroll-arrow{display:none!important;}
  #kin-logo{display:none!important;}
  #s0-mobile-logo{display:flex!important;align-items:center!important;justify-content:center!important;}
  #s0 #kin-svg-hero{display:flex!important;}
  /* #s0-mobile-logo's <svg> has its own inline width:140px (it has no
     #kin-svg-hero id, so the desktop svg-sizing rules don't reach it) —
     rendered height is a fixed 140 * (465/365) ≈ 178px, half ≈ 89px.
     Offset below center must clear that + a gap or it hits "THE STUDIO". */
  .s0-book-wrap{top:calc(50% + 122px)!important;}
  #kin-logo-nav{display:block!important;position:fixed!important;top:14px!important;left:50%!important;transform:translateX(-50%)!important;opacity:1!important;z-index:2000!important;color:#fff!important;font-size:10px!important;letter-spacing:.28em!important;pointer-events:none!important;}
  /* No backdrop-filter here: a blurred position:fixed bar has to
     recomposite every single scroll frame, which is one of the more
     reliable ways to make iOS Safari's GPU process crash mid-scroll,
     especially on older/budget phones. A flatter, more opaque background
     gets a similar "sits above the content" read for a fraction of the
     GPU cost. */
  #nav{position:fixed!important;top:0!important;left:0!important;right:0!important;padding:44px 16px 14px!important;background:rgba(10,10,10,.82)!important;opacity:1!important;pointer-events:auto!important;z-index:1900!important;flex-wrap:wrap!important;justify-content:center!important;row-gap:8px!important;}
  .nav-l,.nav-r{gap:10px!important;flex-wrap:wrap!important;justify-content:center!important;}
  .nav-l a,.nav-r a{font-size:8px!important;margin:0 5px!important;letter-spacing:.14em!important;}
  .dpanel{position:fixed!important;top:86px!important;left:16px!important;right:16px!important;min-width:auto!important;}
  #sec-nav{display:none!important;}
  #s0{min-height:100svh!important;display:flex!important;align-items:center!important;justify-content:center!important;position:relative!important;}
  #s4 .s4-photo{display:none!important;}
  #s1 .s1-photo{display:block!important;position:relative!important;width:100%!important;height:56vw!important;left:auto!important;right:auto!important;top:auto!important;bottom:auto!important;mask-image:none!important;-webkit-mask-image:none!important;}
  .s1-content{position:relative!important;right:auto!important;left:auto!important;top:auto!important;transform:none!important;max-width:none!important;padding:130px 24px 70px!important;}
  .s1-h{font-size:clamp(28px,9vw,42px)!important;line-height:1.15!important;}
  .s2-top{min-height:42svh!important;padding:120px 24px 40px!important;align-items:flex-end!important;}
  .s2-h{font-size:clamp(44px,15vw,72px)!important;}
  .s2-grid{display:grid!important;grid-template-columns:1fr!important;}
  .svc{padding:20px 5vw 20px ;34px 24px!important;border-right:0!important;border-bottom:1px solid rgba(141,155,146,.12)!important;}
  .preel{display:flex!important;flex-direction:column!important;height:auto!important;min-height:0!important;overflow:visible!important;}
  .pc{flex:none!important;height:62svh!important;min-height:420px!important;}
  .pc:hover{flex:none!important;}
  .pc-img,.pc-ph{transform:none!important;}
  .pc:hover .pc-img{filter:brightness(.7) saturate(.85)!important;transform:none!important;}
  .pc-info{transform:none!important;padding:44px 22px 24px!important;}
  .pc-cta{opacity:1!important;transform:none!important;}
  .s5-inner{padding:110px 24px 190px!important;}
  .s5-contacts{flex-direction:column!important;gap:20px!important;align-items:center!important;text-align:center!important;}
  .s5-ci{text-align:center!important;}
  .s5-footer{flex-direction:column!important;gap:8px!important;text-align:center!important;}
  .ov{z-index:5000!important;}
  .ov-x{top:16px!important;right:16px!important;}
  .ov-sh,.ov-ph{height:48svh!important;}
  .ov-st,.ov-ph-txt{padding:0 24px 36px!important;}
  .ov-mason{columns:1!important;padding:28px 24px!important;}
  .ov-car-arrow{width:36px!important;height:36px!important;font-size:16px!important;}
  .ov-car-prev{left:8px!important;}
  .ov-car-next{right:8px!important;}
  /* S0 home: show logo centered */
  #s0{display:flex!important;align-items:center!important;justify-content:center!important;min-height:100svh!important;}
  #kin-svg-hero{display:flex!important;align-items:center!important;justify-content:center!important;}
  #kin-svg-hero svg{width:clamp(70px,7vw,90px);height:auto;}

}

@media (max-width:900px), (hover:none) and (pointer:coarse){
/* S4 Team — fix inline absolute positioning */
  #s4>div[style*="position:absolute"]{position:relative!important;inset:auto!important;height:auto!important;min-height:100svh!important;display:flex!important;flex-direction:column!important;}
  #s4>div>div[style*="display:flex;flex:1"]{flex-direction:column!important;overflow:visible!important;}
  #s4>div>div>div[style*="flex:1;display:flex;flex-direction:column"]{width:100%!important;flex:none!important;border-right:none!important;border-bottom:1px solid rgba(13,13,11,0.08)!important;}
  #s4>div>div>div>div[style*="flex:1;overflow:hidden"]{height:70vw!important;max-height:400px!important;flex:none!important;}
  /* S4 header */
  #s4>div>div[style*="padding:36px"]{padding:80px 20px 16px!important;flex-direction:column!important;gap:8px!important;}
  #s4>div>div[style*="padding:36px"]>p{text-align:left!important;}
  /* S5 contact — fix inline absolute */
  #s5>div[style*="position:absolute"]{position:relative!important;inset:auto!important;min-height:100svh!important;padding:80px 20px 48px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;}
  #s5 [style*="justify-content:space-between;align-items:flex-start"]{flex-direction:column!important;gap:16px!important;}
  #s5 [style*="text-align:right;padding-top:4px"]{text-align:left!important;}
  #s5 [style*="display:flex;gap:10px;flex-wrap:wrap;align-items:center"]{flex-direction:column!important;width:100%!important;}
  #s5 [style*="display:flex;gap:10px;flex-wrap:wrap;align-items:center"] a,
  #s5 [style*="display:flex;gap:10px;flex-wrap:wrap;align-items:center"] button{width:100%!important;box-sizing:border-box!important;text-align:center!important;}
  #s5 [style*="justify-content:space-between;align-items:center;flex-wrap:wrap"]{flex-direction:column!important;gap:6px!important;text-align:center!important;}
  /* Contact popup */
  #contact-popup>div[style]{width:94vw!important;max-height:88vh!important;overflow-y:auto!important;}
  /* Overlays — ensure scrollable on mobile */
  .ov{-webkit-overflow-scrolling:touch!important;}
  /* Consultancy/Sustainable image grids */
  [style*="grid-template-columns:1fr 1fr;gap:20px"]{grid-template-columns:1fr!important;}
  /* Nav on dark slides */
  #s2 #kin-logo-nav, #s5 #kin-logo-nav{color:#ffffff!important;}

  #contact-popup{z-index:99999!important;}
  #contact-popup.open, #contact-popup[style*="display:flex"]{align-items:flex-start!important;padding-top:40px!important;}

}
}