/* ============================================================
   VAST VISUALS — cinematic experience
   Palette: #12372A forest / #071A12 darkest / #B7D8C2 mist /
            #DCEBDD pale / #EEF5EC ice / #F7F5ED ivory
   ============================================================ */
:root{
  --forest:#12372A;
  --darkest:#071A12;
  --mist:#B7D8C2;
  --pale:#DCEBDD;
  --ice:#EEF5EC;
  --ivory:#F7F5ED;
  --display:'Bebas Neue',Impact,sans-serif;
  --display-alt:'Antonio','Anton',Impact,sans-serif;
  --body:'Archivo',Helvetica,Arial,sans-serif;
  --editorial:'Instrument Sans','Archivo',Helvetica,Arial,sans-serif;
  --ease:cubic-bezier(.22,1,.36,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{background:var(--darkest);}
body{
  font-family:var(--body);
  color:var(--ivory);
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
img{max-width:100%;height:auto;display:block;}
ul{list-style:none;}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
::selection{background:var(--mist);color:var(--darkest);}

/* film grain */
.grain{
  position:fixed;inset:-50%;z-index:2000;pointer-events:none;opacity:.055;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");
  animation:grainShift 1.2s steps(4) infinite;
}
@keyframes grainShift{
  0%{transform:translate(0,0)}25%{transform:translate(-2%,3%)}
  50%{transform:translate(3%,-2%)}75%{transform:translate(-3%,-3%)}100%{transform:translate(2%,2%)}
}

/* custom cursor */
#cursor{
  position:fixed;top:0;left:0;z-index:3000;pointer-events:none;
  width:112px;height:112px;border-radius:50%;
  background:var(--mist);color:var(--darkest);
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:11px;font-weight:700;letter-spacing:.12em;
  transform:translate(-50%,-50%) scale(0);
  transition:opacity .3s;
  opacity:0;mix-blend-mode:normal;
}
#cursor.on{transform:translate(-50%,-50%) scale(1);opacity:1;}
.cursor-label{transition:opacity .16s ease,filter .16s ease;}
#cursor.swap .cursor-label{opacity:0;filter:blur(4px);}
@media (hover:none),(pointer:coarse){#cursor{display:none;}}

/* ============ NAV ============ */
.site-nav{
  position:fixed;top:0;left:0;right:0;z-index:1500;
  display:flex;align-items:center;justify-content:space-between;
  padding:22px clamp(20px,4vw,56px);
  mix-blend-mode:difference;color:#fff;
}
.nav-brand{font-family:var(--display);font-size:15px;letter-spacing:.18em;}
.nav-brand sup{font-size:8px;}
.nav-right{display:flex;align-items:center;gap:26px;}
.nav-tag{font-size:10px;letter-spacing:.22em;opacity:.7;}
.nav-cta{
  font-size:11px;font-weight:700;letter-spacing:.18em;
  border-bottom:1px solid rgba(255,255,255,.6);padding-bottom:3px;
  transition:opacity .3s;
}
.nav-cta:hover{opacity:.6;}
@media(max-width:640px){.nav-tag{display:none;}.nav-cta{font-size:10px;}}

/* ============ 01 — OPENING ============ */
#opening{
  position:fixed;inset:0;z-index:2500;background:var(--darkest);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .9s ease,visibility .9s;
}
#opening.done{opacity:0;visibility:hidden;}
.opening-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center;}
.opening-brand,.opening-tag{
  position:absolute;left:50%;transform:translateX(-50%);
  letter-spacing:.4em;font-size:11px;color:var(--mist);
  opacity:0;animation:opFade 1.4s ease forwards;
}
.opening-brand{top:44%;font-family:var(--display);font-size:clamp(20px,3vw,32px);letter-spacing:.3em;animation-delay:.4s;}
.opening-brand sup{font-size:.4em;}
.opening-tag{top:calc(44% + 46px);font-size:10px;animation-delay:1.1s;}
@keyframes opFade{to{opacity:1;}}
.sliver{
  position:absolute;height:2px;width:0;overflow:hidden;
  background-size:cover;background-position:center;
  opacity:0;
}
.s1{top:18%;left:8%;animation:slv .5s steps(1) 1.5s infinite;background-image:url(../images/frag-face.webp);}
.s2{top:36%;right:6%;animation:slv .42s steps(1) 1.7s infinite;background-image:url(../images/frag-set.webp);}
.s3{top:55%;left:14%;animation:slv .36s steps(1) 1.9s infinite;background-image:url(../images/frag-product.webp);}
.s4{top:70%;right:16%;animation:slv .3s steps(1) 2.05s infinite;background-image:url(../images/frag-building.webp);}
.s5{top:28%;left:44%;animation:slv .26s steps(1) 2.2s infinite;background-image:url(../images/frag-fabric.webp);}
.s6{top:80%;left:38%;animation:slv .22s steps(1) 2.35s infinite;background-image:url(../images/frag-camera.webp);}
@keyframes slv{
  0%{opacity:1;width:0;}30%{width:34vw;}55%{width:12vw;}80%{width:46vw;}100%{opacity:1;width:0;}
}
.opening-vast{
  font-family:var(--display);
  font-size:clamp(120px,34vw,34vw);
  line-height:.85;letter-spacing:-.01em;
  color:transparent;-webkit-text-stroke:0;
  background:url(../images/vast-2.webp) center/cover no-repeat;
  -webkit-background-clip:text;background-clip:text;
  opacity:0;transform:scale(.94);
  animation:opVast .8s var(--ease) 3s forwards;
}
@keyframes opVast{to{opacity:1;transform:scale(1);}}
body.opening-open{overflow:hidden;height:100vh;}

/* ============ 02/03 — HERO ============ */
.hero{height:340vh;position:relative;background:var(--darkest);}
.hero-stage{
  position:sticky;top:0;height:100vh;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.vast-word{
  position:relative;z-index:3;
  font-family:var(--display);font-weight:400;
  font-size:min(31vw,52vh);
  line-height:.85;letter-spacing:-.015em;
  display:flex;justify-content:center;
  will-change:transform;
}
.vl{position:relative;display:inline-block;will-change:transform;}
.vl-face,.vl-back{
  display:inline-block;
  color:transparent;
  -webkit-background-clip:text;background-clip:text;
  background-size:140% 140%;background-position:center;
  animation:maskDrift 11s ease-in-out infinite alternate;
  will-change:transform;
}
.vl-back{position:absolute;inset:0;opacity:0;transition:opacity 1.1s ease;}
.vl-back.show{opacity:1;}
@keyframes maskDrift{
  0%{transform:scale(1) translate(0,0);}
  50%{transform:scale(1.12) translate(2%,-2%);}
  100%{transform:scale(1.04) translate(-2%,2%);}
}
.hero-line{
  position:absolute;z-index:2;bottom:9vh;left:50%;transform:translateX(-50%);
  font-size:clamp(10px,1.1vw,14px);letter-spacing:.34em;color:var(--mist);
  white-space:nowrap;opacity:0;transition:opacity .6s;
}
.hero-services{
  position:absolute;z-index:2;bottom:13.5vh;left:50%;transform:translateX(-50%);
  font-size:clamp(11px,1.25vw,15px);letter-spacing:.3em;color:var(--ivory);
  white-space:nowrap;opacity:0;transition:opacity .6s;
}
.hero-meta{
  position:absolute;z-index:2;top:14vh;left:0;right:0;
  display:flex;justify-content:space-between;
  padding:0 clamp(20px,4vw,56px);
  font-size:10px;letter-spacing:.28em;color:var(--mist);opacity:.75;
}
.scroll-cue{
  position:absolute;z-index:4;bottom:4vh;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  font-size:9px;letter-spacing:.4em;color:var(--mist);
  transition:opacity .5s;
}
.scroll-cue i{width:1px;height:38px;background:var(--mist);display:block;animation:cue 1.8s ease-in-out infinite;}
@keyframes cue{0%,100%{transform:scaleY(.4);transform-origin:top;}50%{transform:scaleY(1);transform-origin:top;}}

/* escaping fragments */
.frag{
  position:absolute;z-index:1;overflow:hidden;
  opacity:0;will-change:transform,opacity;
}
.frag img{width:100%;height:100%;object-fit:cover;}
.f1{width:16vw;height:24vw;top:12%;left:6%;}
.f2{width:24vw;height:14vw;top:20%;right:4%;}
.f3{width:14vw;height:14vw;bottom:18%;left:16%;}
.f4{width:22vw;height:13vw;bottom:12%;right:10%;}
.f5{width:11vw;height:17vw;top:42%;left:30%;}
.f6{width:12vw;height:18vw;top:38%;right:26%;}

.visuals-reveal{
  position:absolute;z-index:5;inset:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3vh;
  opacity:0;pointer-events:none;
}
.visuals-word{
  font-family:var(--display);
  font-size:min(13vw,24vh);
  line-height:.9;letter-spacing:-.01em;
  display:flex;overflow:hidden;
  color:var(--mist);
}
.visuals-word span{display:inline-block;transform:translateY(110%);transition:transform .9s var(--ease);}
.visuals-reveal.in .visuals-word span{transform:translateY(0);}
.visuals-reveal.in .visuals-word span:nth-child(2){transition-delay:.05s;}
.visuals-reveal.in .visuals-word span:nth-child(3){transition-delay:.1s;}
.visuals-reveal.in .visuals-word span:nth-child(4){transition-delay:.15s;}
.visuals-reveal.in .visuals-word span:nth-child(5){transition-delay:.2s;}
.visuals-reveal.in .visuals-word span:nth-child(6){transition-delay:.25s;}
.visuals-reveal.in .visuals-word span:nth-child(7){transition-delay:.3s;}
.visuals-sub{font-size:10px;letter-spacing:.32em;color:var(--mist);opacity:.8;}

/* ============ 04 — FIRST STATEMENT ============ */
.statement{background:var(--ivory);color:var(--forest);padding:22vh clamp(20px,6vw,90px);}
.statement-lines{font-family:var(--display);font-size:clamp(72px,17vw,260px);line-height:.88;letter-spacing:-.01em;}
.reveal-line{display:block;overflow:hidden;}
.reveal-line>span{display:inline-block;transform:translateY(115%);transition:transform 1s var(--ease);}
.reveal-line.in>span{transform:translateY(0);}
.reveal-line.indent-1{padding-left:8vw;}
.reveal-line.indent-2{padding-left:22vw;}
.statement-tag{margin-top:6vh;font-size:clamp(11px,1vw,14px);letter-spacing:.32em;color:var(--forest);opacity:.65;}

/* ============ 05 — PHILOSOPHY ============ */
.philosophy{background:var(--forest);padding:0;overflow:clip;}
.marquee{overflow:hidden;white-space:nowrap;border-top:1px solid rgba(183,216,194,.18);border-bottom:1px solid rgba(183,216,194,.18);padding:1.6vh 0;}
.marquee-track{display:inline-flex;animation:mq 26s linear infinite;}
.marquee-track span{
  font-family:var(--display);font-size:clamp(40px,7vw,110px);
  color:transparent;-webkit-text-stroke:1px var(--mist);letter-spacing:.02em;
}
.marquee-solid .marquee-track span{color:var(--ivory);-webkit-text-stroke:0;font-size:clamp(44px,7.5vw,118px);}
@keyframes mq{to{transform:translateX(-50%);}}
.philosophy-body{padding:11vh clamp(20px,6vw,90px) 15vh;}
.why-kicker{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.3em;color:var(--mist);margin-bottom:4vh;}
.why-kicker::before{content:'';display:block;width:44px;height:2px;background:var(--mist);flex:none;}
.why-title{font-family:var(--display);font-size:clamp(64px,13vw,200px);line-height:.9;color:var(--ivory);}
.why-copy{max-width:480px;margin:3.5vh 0 0 auto;font-family:var(--editorial);font-size:clamp(15px,1.15vw,18px);line-height:1.85;letter-spacing:.015em;color:var(--mist);}
.why-questions{margin-top:8vh;display:flex;flex-direction:column;gap:4.5vh;}
.why-q{
  font-family:var(--display);font-size:clamp(34px,6vw,92px);line-height:1;
  color:var(--pale);
}
.why-q i{display:block;font-style:normal;font-family:var(--body);font-size:11px;font-weight:600;letter-spacing:.3em;color:var(--mist);opacity:.6;margin-bottom:1.2vh;}
.why-q:nth-child(2){align-self:flex-end;text-align:right;color:transparent;-webkit-text-stroke:1.5px var(--mist);}
.why-q:nth-child(2) i{color:var(--mist);-webkit-text-stroke:0;}
.why-q:nth-child(3){color:var(--mist);}
.why-answer{display:block;margin-top:9vh;text-align:right;font-family:var(--display);font-size:clamp(34px,5.5vw,88px);line-height:1;letter-spacing:.04em;color:var(--ivory);}

/* ============ 07 — THE WORK ============ */
.work{background:var(--ice);color:var(--forest);padding:16vh 0 10vh;overflow:clip;}
.work-head{
  display:flex;align-items:flex-end;justify-content:space-between;
  padding:0 clamp(20px,4vw,56px) 8vh;
}
.work-title{font-family:var(--display);font-size:clamp(64px,14vw,220px);line-height:.85;}
.work-count{font-size:10px;letter-spacing:.26em;opacity:.6;padding-bottom:2vh;}
.work-kicker{display:block;font-size:11px;letter-spacing:.3em;opacity:.65;padding:0 clamp(20px,4vw,56px) 4vh;}
/* --- editorial gallery --- */
.work-gallery{
  display:grid;grid-template-columns:1fr 1fr;
  column-gap:clamp(24px,3vw,48px);
  row-gap:clamp(64px,7vw,110px);
  align-items:start;
  padding:0 clamp(20px,4vw,56px);
}
.project{cursor:pointer;}
.p-media{overflow:hidden;background:var(--forest);}
.p-media img{
  display:block;width:100%;height:100%;object-fit:cover;
  transition:transform 1.6s var(--ease);
  will-change:transform;
}
.project:hover .p-media img{transform:scale(1.04);}
.p-meta{
  display:flex;align-items:baseline;gap:16px;
  padding:18px 2px 0;
}
.p-num{font-size:10px;letter-spacing:.2em;opacity:.5;}
.p-meta h3{
  font-family:var(--display);font-size:clamp(17px,1.8vw,26px);
  letter-spacing:.03em;font-weight:400;opacity:.85;
  transition:opacity .5s var(--ease),letter-spacing .8s var(--ease);
}
.project:hover .p-meta h3{opacity:1;letter-spacing:.07em;}
.p-view{
  font-size:9px;letter-spacing:.24em;opacity:0;
  transform:translateX(-8px);
  transition:opacity .5s var(--ease),transform .5s var(--ease);
  white-space:nowrap;
}
.project:hover .p-view{opacity:.65;transform:none;}
.p-type{margin-left:auto;font-size:10px;letter-spacing:.22em;opacity:.55;}
/* rhythm: featured opener, then a clean aligned two-column grid */
.w1{grid-column:1/-1;}
.w1 .p-media{aspect-ratio:21/9;}
.w2 .p-media,.w3 .p-media,.w4 .p-media,.w5 .p-media,.w6 .p-media,.w7 .p-media{aspect-ratio:4/3;}
/* desktop-only editorial details */
@media(min-width:761px){
  .p-meta{
    border-top:1px solid rgba(15,35,28,.16);
    margin-top:16px;
    padding:14px 2px 0;
  }
  .p-num{font-size:11px;}
}
@media(max-width:760px){
  .work-gallery{column-gap:0;row-gap:0;}
  .work-gallery .project{grid-column:1/-1;grid-row:auto;margin-top:9vh;}
  .work-gallery .project:first-child{margin-top:0;}
  .w1 .p-media,.w7 .p-media{aspect-ratio:16/9;}
  .w2 .p-media,.w5 .p-media{aspect-ratio:3/4;}
  .w3 .p-media{aspect-ratio:1/1;}
  .w4 .p-media,.w6 .p-media{aspect-ratio:16/10;}
}
/* --- cinematic project viewer --- */
.pv{
  position:fixed;inset:0;z-index:400;
  background:rgba(9,13,11,.97);
  display:flex;flex-direction:column;
  opacity:0;visibility:hidden;
  transition:opacity .5s var(--ease),visibility 0s linear .5s;
}
.pv.on{opacity:1;visibility:visible;transition:opacity .5s var(--ease);}
.pv-stage{
  flex:1;min-height:0;
  display:flex;align-items:center;justify-content:center;
  padding:7vh clamp(16px,5vw,80px) 3vh;
}
.pv-stage img{
  max-width:100%;max-height:100%;object-fit:contain;
  transform:scale(.965);opacity:.6;
  transition:transform .7s var(--ease),opacity .7s var(--ease);
}
.pv.on .pv-stage img{transform:scale(1);opacity:1;}
.pv-bar{
  display:flex;align-items:center;gap:18px;
  padding:0 clamp(20px,4vw,56px) 4vh;color:var(--ivory);
}
.pv-num{font-size:10px;letter-spacing:.2em;opacity:.5;}
.pv-title{font-family:var(--display);font-size:clamp(20px,2.6vw,38px);font-weight:400;letter-spacing:.03em;}
.pv-type{font-size:10px;letter-spacing:.22em;opacity:.55;}
.pv-count{margin-left:auto;font-size:10px;letter-spacing:.2em;opacity:.5;}
.pv-nav{display:flex;gap:10px;margin-left:24px;}
.pv-nav button,.pv-close{
  background:none;border:1px solid rgba(255,255,255,.25);color:var(--ivory);
  font-size:15px;line-height:1;width:44px;height:44px;border-radius:50%;cursor:pointer;
  transition:border-color .3s var(--ease),background .3s var(--ease);
}
.pv-nav button:hover,.pv-close:hover{border-color:var(--ivory);background:rgba(255,255,255,.08);}
.pv-close{position:absolute;top:24px;right:clamp(20px,4vw,56px);z-index:2;}

/* ============ 08 — ONE IDEA ============ */
.oneidea{background:var(--forest);color:var(--ivory);padding-top:6vh;overflow:clip;}
.oneidea-stage{display:flex;flex-direction:column;border-top:1px solid rgba(183,216,194,.18);}
.oneidea-line{
  font-family:var(--display);
  font-size:clamp(58px,12vw,190px);line-height:1.05;
  min-height:34vh;display:flex;align-items:center;
  padding:0 clamp(20px,4vw,56px);
}
.oneidea-line + .oneidea-line{border-top:1px solid rgba(183,216,194,.18);}
.oneidea-line.l1{justify-content:flex-start;}
.oneidea-line.l2{justify-content:center;color:transparent;-webkit-text-stroke:2px var(--mist);}
.oneidea-line.l3{justify-content:flex-end;color:var(--mist);}
.oneidea-final{
  padding:12vh clamp(20px,6vw,90px) 10vh;
  display:grid;grid-template-columns:1.5fr 1fr;
  column-gap:clamp(32px,6vw,110px);
  align-items:end;
}
.oneidea-final h2{grid-column:1;grid-row:1;font-family:var(--display);font-weight:400;font-size:clamp(52px,7.6vw,134px);line-height:.94;letter-spacing:.015em;}
.oneidea-final h2 .ways-outline{color:transparent;-webkit-text-stroke:2px var(--mist);}
.oneidea-final p{grid-column:2;grid-row:1;max-width:400px;margin:0 0 1.4vh auto;color:var(--mist);font-family:var(--editorial);font-weight:400;font-size:clamp(15px,1.15vw,18px);line-height:1.85;letter-spacing:.015em;}
@media(max-width:760px){
  .oneidea{padding-top:4vh;}
  .oneidea-line{min-height:24vh;font-size:clamp(40px,11.5vw,90px);}
  .oneidea-final{display:block;padding:9vh clamp(20px,6vw,90px) 8vh;}
  .oneidea-final h2{font-size:clamp(46px,13vw,90px);line-height:.96;}
  .oneidea-final h2 .ways-outline{-webkit-text-stroke-width:1.5px;}
  .oneidea-final p{margin:4vh 0 0;max-width:100%;font-size:15px;line-height:1.8;}
}

/* ============ 10 — PROCESS ============ */
.process{height:300vh;position:relative;background:var(--darkest);}
.process-pin{
  position:sticky;top:0;height:100vh;overflow:hidden;
  display:flex;flex-direction:column;justify-content:center;
}
.process-kicker{
  position:absolute;top:6vh;left:clamp(20px,4vw,56px);
  display:flex;align-items:center;gap:14px;
  font-size:10px;letter-spacing:.3em;color:var(--mist);opacity:.7;z-index:3;
}
.process-kicker::before{content:'';display:block;width:44px;height:2px;background:var(--mist);flex:none;}
.process-track{display:flex;gap:clamp(24px,4vw,64px);padding:0 clamp(20px,4vw,56px);will-change:transform;}
.proc-panel{flex:0 0 auto;width:min(68vw,560px);display:flex;flex-direction:column;align-items:flex-start;gap:18px;}
.proc-num{font-size:12px;letter-spacing:.26em;color:var(--mist);opacity:.75;}
.proc-panel h3{font-family:var(--display);font-size:clamp(44px,6vw,90px);line-height:1;color:var(--ivory);}
.proc-panel h3.proc-outline{color:transparent;-webkit-text-stroke:2px var(--mist);}
.proc-panel p{font-size:14px;line-height:1.75;color:var(--mist);max-width:340px;}
.proc-img{margin-top:1vh;overflow:hidden;background:var(--forest);height:min(46vh,430px);width:auto;max-width:100%;}
.proc-img.pi-p{aspect-ratio:4/5;}
.proc-img.pi-l{aspect-ratio:16/10;}
.proc-img.pi-s{aspect-ratio:1/1;}
.proc-img img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease);}
.proc-img:hover img{transform:scale(1.04);}
.process-progress{
  position:absolute;bottom:6vh;left:clamp(20px,4vw,56px);right:clamp(20px,4vw,56px);
  height:2px;background:rgba(183,216,194,.18);z-index:3;
}
.process-progress-bar{display:block;height:100%;width:0;background:var(--mist);}
.process-count{
  position:absolute;bottom:calc(6vh + 14px);right:clamp(20px,4vw,56px);
  font-size:10px;letter-spacing:.3em;color:var(--mist);opacity:.7;z-index:3;
}
@media(max-width:760px){
  .proc-panel{width:80vw;gap:14px;}
  .proc-img{height:min(38vh,320px);}
  .process-progress{bottom:5vh;}
  .process-count{bottom:calc(5vh + 14px);}
}

/* ============ 12 — ABOUT ============ */
.about{background:var(--ivory);color:var(--forest);padding:18vh clamp(20px,6vw,90px);}
.about-kicker{display:flex;align-items:center;gap:14px;font-size:13px;letter-spacing:.35em;font-weight:600;margin-bottom:3vh;}
.about-kicker::before{content:'';display:block;width:44px;height:2px;background:var(--forest);flex:none;}
.about-title{font-family:var(--display);font-size:clamp(60px,12vw,190px);line-height:.9;}
.about-grid{
  display:grid;grid-template-columns:1fr 1.2fr;
  gap:clamp(24px,5vw,80px);margin-top:9vh;align-items:start;
}
.about-photo{overflow:hidden;background:var(--forest);}
.about-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s var(--ease);}
.about-photo:hover img{transform:scale(1.05);}
.about-photo.a1{width:80%;}
.about-photo.a1 .about-frame{aspect-ratio:4/3;}
.about-credit{display:flex;flex-direction:column;gap:5px;padding:16px 2px 0;}
.about-credit-name{font-family:var(--display-alt);font-size:20px;font-weight:600;letter-spacing:.02em;color:var(--forest);}
.about-credit-role{font-size:12px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--forest);opacity:.65;}
.about-copy{padding-top:4vh;padding-bottom:6vh;}
.about-copy p{font-size:clamp(18px,1.6vw,24px);line-height:1.6;font-weight:500;max-width:460px;}
.about-body{margin-top:3vh;font-weight:400;font-size:clamp(16px,1.2vw,19px);line-height:1.7;max-width:520px;opacity:.9;}
.about-sign{margin-top:5vh;font-family:var(--display);font-size:clamp(20px,2vw,30px);font-weight:600;padding-top:3vh;border-top:2px solid var(--forest);max-width:520px;}
@media(max-width:760px){
  .about-grid{grid-template-columns:1fr;}
  .about-photo.a1{width:100%;}
}

/* ============ 13 — INQUIRY ============ */
.inquiry{background:var(--forest);color:var(--ivory);padding:18vh clamp(20px,6vw,90px);}
.inquiry-title{font-family:var(--display);font-size:clamp(64px,13vw,200px);line-height:.9;}
.inquiry-title .outline span{color:transparent;-webkit-text-stroke:2px var(--mist);}
.inquiry-kicker{display:flex;align-items:center;gap:14px;font-size:11px;letter-spacing:.3em;color:var(--mist);margin-bottom:4vh;}
.inquiry-kicker::before{content:'';display:block;width:44px;height:2px;background:var(--mist);flex:none;}
.inquiry-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:6vw;align-items:start;}
.inquiry-left{position:sticky;top:14vh;}
.inquiry-sub{margin-top:4vh;max-width:420px;color:var(--mist);line-height:1.7;}
.inquiry-form{margin-top:0;max-width:860px;}
.form-progress{display:flex;align-items:center;gap:18px;margin-bottom:6vh;}
.fp-count{font-size:11px;letter-spacing:.28em;color:var(--mist);flex:none;}
.fp-track{position:relative;flex:1;height:1px;background:rgba(183,216,194,.25);}
.fp-fill{position:absolute;left:0;top:0;height:100%;width:33.4%;background:var(--mist);transition:width .7s var(--ease);}
.form-step{margin-bottom:6vh;opacity:.25;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease);pointer-events:none;}
.form-step.on{opacity:1;transform:translateY(0);pointer-events:auto;}
.step-label{display:block;font-size:11px;letter-spacing:.28em;color:var(--mist);margin-bottom:3vh;}
.step-label i{font-style:normal;opacity:.5;margin-right:14px;}
.chip-row{display:flex;flex-wrap:wrap;gap:12px;}
.chip{
  background:transparent;color:var(--mist);
  border:1px solid rgba(183,216,194,.45);
  padding:14px 26px;font-size:12px;letter-spacing:.18em;font-weight:600;
  transition:background .3s,color .3s,border-color .3s;
}
.chip:hover{border-color:var(--mist);}
.chip.selected{background:var(--mist);color:var(--darkest);border-color:var(--mist);}
.inquiry-form textarea,.inquiry-form input[type="text"],.inquiry-form input[type="email"]{
  width:100%;background:transparent;border:none;
  border-bottom:1px solid rgba(183,216,194,.4);
  color:var(--ivory);font-family:var(--body);font-size:clamp(18px,2vw,26px);
  padding:14px 0;resize:none;outline:none;
  transition:border-color .3s;
}
.inquiry-form ::placeholder{color:var(--mist);opacity:.5;}
.inquiry-form textarea:focus,.inquiry-form input:focus{border-color:var(--mist);}
.field-row{display:flex;gap:5vw;margin-top:5vh;flex-wrap:wrap;}
.field-row input{flex:1;min-width:220px;}
.send-btn{
  display:block;width:100%;background:var(--mist);color:var(--darkest);border:none;
  font-family:var(--display);font-size:clamp(20px,2.4vw,32px);letter-spacing:.06em;
  padding:22px 54px;
  transition:opacity .3s,letter-spacing .4s var(--ease),transform .3s;
}
.send-btn:hover:not(:disabled){letter-spacing:.14em;}
.send-btn:disabled{opacity:.35;cursor:not-allowed;}
.form-status{margin-top:3vh;font-size:14px;letter-spacing:.06em;}
.form-status .ok{color:var(--mist);}
.form-status .err{color:#e8a9a0;}

@media(max-width:960px){
  .inquiry-grid{grid-template-columns:1fr;gap:0;}
  .inquiry-left{position:static;}
  .inquiry-form{margin-top:8vh;}
}

/* ============ 14 — FINALE ============ */
.finale{height:340vh;position:relative;background:var(--darkest);}
.finale-stage{
  position:sticky;top:0;height:100vh;overflow:hidden;
  display:flex;align-items:center;justify-content:center;
}
.finale-veil{position:absolute;inset:0;background:var(--darkest);z-index:1;}
.finale-frame{
  position:absolute;z-index:2;
  width:min(220px,40vw);aspect-ratio:16/10;overflow:hidden;
  top:50%;left:50%;
  transform:translate(-50%,-50%);
  will-change:transform,width;
}
.finale-frame img{width:100%;height:100%;object-fit:cover;}
.finale-word{
  position:absolute;z-index:3;
  display:flex;flex-direction:column;align-items:center;
  font-family:var(--display);
  font-size:clamp(52px,10.5vw,160px);line-height:1.02;letter-spacing:.01em;
  color:var(--ivory);text-align:center;
  opacity:0;transition:opacity .8s ease;
}
.finale-word.on{opacity:1;}
.finale-word.clear{color:transparent;background:url(../images/final.webp) center/cover no-repeat;-webkit-background-clip:text;background-clip:text;}
.finale-brand{
  position:absolute;z-index:4;bottom:10vh;left:0;right:0;
  display:flex;flex-direction:column;align-items:center;gap:3vh;
  opacity:0;transition:opacity 1s ease;
}
.finale-brand.on{opacity:1;}
.fb-mark{font-family:var(--display);font-size:clamp(22px,3vw,40px);letter-spacing:.14em;color:var(--ivory);}
.fb-mark sup{font-size:.4em;}
.fb-cta{
  font-size:12px;letter-spacing:.24em;font-weight:700;color:var(--mist);
  border-bottom:1px solid var(--mist);padding-bottom:4px;
  transition:opacity .3s;
}
.fb-cta:hover{opacity:.6;}

/* ============ FOOTER ============ */
.footer{background:var(--darkest);padding:8vh clamp(20px,4vw,56px) 5vh;border-top:1px solid rgba(183,216,194,.14);}
.footer-grid{display:flex;flex-wrap:wrap;gap:24px;align-items:baseline;justify-content:space-between;}
.f-brand{font-family:var(--display);letter-spacing:.16em;font-size:16px;color:var(--mist);}
.f-mail{font-size:12px;letter-spacing:.18em;color:var(--mist);border-bottom:1px solid rgba(183,216,194,.4);padding-bottom:3px;}
.f-copy{font-size:10px;letter-spacing:.2em;color:var(--mist);opacity:.6;width:100%;}
.f-credit{margin-top:26px;font-size:10px;letter-spacing:.1em;}
.f-credit a{opacity:.5;font-weight:300;color:inherit;}

/* ============ REVEALS ============ */
.reveal{opacity:0;transform:translateY(36px);transition:opacity 1s var(--ease),transform 1s var(--ease);}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal-line{overflow:hidden;}
.reveal-line>span{display:inline-block;transform:translateY(115%);transition:transform 1s var(--ease);}
.reveal-line.in>span{transform:translateY(0);}

@media (prefers-reduced-motion:reduce){
  .reveal,.reveal-line>span{opacity:1;transform:none;transition:none;}
  .grain,.sliver,.scroll-cue i,.marquee-track,.vl-face,.vl-back{animation:none !important;}
  html{scroll-behavior:auto;}
}

/* ============ 11.5 — PACKAGE BUILDER ============ */
.builder{background:var(--darkest);color:var(--ivory);padding:18vh clamp(20px,6vw,90px);border-top:1px solid rgba(183,216,194,.14);}
.builder-kicker{font-size:11px;letter-spacing:.3em;color:var(--mist);}
.builder-title{font-family:var(--display);font-size:clamp(52px,10vw,150px);line-height:.92;margin-top:2vh;}
.builder-title .outline span{color:transparent;-webkit-text-stroke:2px var(--mist);}
.builder-sub{margin-top:3vh;max-width:460px;color:var(--mist);line-height:1.7;}
.builder-grid{display:grid;grid-template-columns:1fr 400px;gap:clamp(32px,6vw,100px);margin-top:10vh;align-items:start;}
.builder-controls{display:flex;flex-direction:column;gap:6.5vh;}
.bctrl-top{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:14px;margin-bottom:2vh;}
.bctrl-label{font-size:11px;letter-spacing:.28em;color:var(--mist);display:block;margin-bottom:2vh;font-weight:600;}
.bctrl-label i{font-style:normal;opacity:.5;letter-spacing:.2em;}
.bctrl-value{display:flex;align-items:baseline;gap:14px;margin-bottom:1.8vh;}
.bctrl-value span:first-child{font-family:var(--display);font-size:clamp(30px,3.4vw,48px);line-height:1;transition:opacity .2s;}
.bctrl-unit{font-size:10px;letter-spacing:.24em;color:var(--mist);opacity:.7;}

.bslider{-webkit-appearance:none;appearance:none;width:100%;height:2px;border-radius:2px;outline:none;cursor:pointer;background:linear-gradient(90deg,var(--mist) var(--fill,50%),rgba(183,216,194,.22) var(--fill,50%));}
.bslider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:24px;height:24px;border-radius:50%;background:var(--ivory);border:none;box-shadow:0 0 0 6px rgba(183,216,194,.12);transition:transform .25s var(--ease),box-shadow .25s var(--ease);}
.bslider::-webkit-slider-thumb:hover{transform:scale(1.18);box-shadow:0 0 0 11px rgba(183,216,194,.18);}
.bslider::-webkit-slider-thumb:active{transform:scale(1.05);}
.bslider::-moz-range-thumb{width:24px;height:24px;border-radius:50%;background:var(--ivory);border:none;box-shadow:0 0 0 6px rgba(183,216,194,.12);}
.bslider::-moz-range-track{height:2px;background:rgba(183,216,194,.22);}
.bslider::-moz-range-progress{height:2px;background:var(--mist);}
.bslider:focus-visible{outline:2px solid var(--mist);outline-offset:10px;}
.b-range-ends{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.18em;color:var(--mist);opacity:.5;margin-top:12px;}

.b-budget-toggle{display:flex;border:1px solid rgba(183,216,194,.35);border-radius:100px;overflow:hidden;}
.bbt{background:transparent;border:none;color:var(--pale);font-size:10px;font-weight:700;letter-spacing:.18em;padding:11px 18px;transition:background .3s,color .3s;}
.bbt.on{background:var(--mist);color:var(--darkest);}

.seg{display:flex;flex-wrap:wrap;gap:10px;}
.seg-btn{background:transparent;border:1px solid rgba(183,216,194,.35);color:var(--pale);font-size:11px;font-weight:600;letter-spacing:.16em;padding:14px 22px;border-radius:100px;transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),transform .15s var(--ease);}
.seg-btn:hover{border-color:var(--mist);}
.seg-btn:active{transform:scale(.96);}
.seg-btn.on{background:var(--mist);color:var(--darkest);border-color:var(--mist);}
.bctrl-split{display:flex;gap:clamp(24px,4vw,64px);flex-wrap:wrap;}
.btoggle-block{flex:1;min-width:220px;}

.builder-panel{position:sticky;top:110px;background:var(--forest);border:1px solid rgba(183,216,194,.25);padding:clamp(28px,3vw,44px);}
.bp-kicker{font-size:10px;letter-spacing:.26em;color:var(--mist);}
.bp-name{font-family:var(--display);font-size:clamp(40px,4.6vw,62px);line-height:1;margin-top:2.2vh;}
.bp-name.tick{animation:bpPop .45s var(--ease);}
@keyframes bpPop{0%{opacity:.15;transform:translateY(10px);}100%{opacity:1;transform:none;}}
.bp-price{display:flex;align-items:baseline;gap:10px;margin-top:2.4vh;}
#bpPrice{font-family:var(--display);font-size:clamp(30px,3vw,40px);line-height:1;}
.bp-per{font-size:10px;letter-spacing:.22em;color:var(--mist);}
.bp-note{font-size:10px;letter-spacing:.12em;color:var(--mist);opacity:.65;margin-top:1.6vh;line-height:1.7;}
.bp-hint{display:none;margin-top:1.6vh;font-size:12px;line-height:1.6;color:var(--pale);border-left:2px solid var(--mist);padding-left:12px;}
.bp-hint.on{display:block;}
.bp-list{margin-top:4vh;border-top:1px solid rgba(183,216,194,.22);}
.bp-list li{padding:1.4vh 0;border-bottom:1px solid rgba(183,216,194,.22);font-size:14px;color:var(--pale);display:flex;gap:12px;align-items:baseline;}
.bp-list li::before{content:'';width:6px;height:6px;background:var(--mist);border-radius:50%;flex:none;transform:translateY(-1px);}
.bp-scope{margin-top:3vh;font-size:11px;letter-spacing:.2em;color:var(--mist);line-height:1.8;}
.bp-cta{display:block;margin-top:4vh;background:var(--ivory);color:var(--darkest);text-align:center;font-weight:700;font-size:12px;letter-spacing:.2em;padding:20px 16px;transition:background .3s,transform .3s var(--ease);}
.bp-cta:hover{background:var(--mist);transform:translateY(-2px);}

@media(max-width:960px){
  .builder-grid{grid-template-columns:1fr;gap:8vh;}
  .builder-panel{position:static;order:-1;}
}
@media (prefers-reduced-motion:reduce){
  .bp-name.tick{animation:none;}
  .bp-cta:hover{transform:none;}
}

/* ============ 12.5 — FEATURED FILE (DROPBOX PREVIEW — lives inside THE WORK) ============ */
.filedrop-inner{max-width:920px;margin:0 auto;}
.filedrop-card{background:var(--ivory);color:var(--darkest);border-radius:20px;overflow:hidden;box-shadow:0 24px 60px rgba(7,26,18,.18);}
.filedrop-card + .filedrop-card{margin-top:clamp(28px,4vw,44px);}
.filedrop-media{position:relative;aspect-ratio:16/9;background:#0c2419;}
.filedrop-media video,.filedrop-media img{width:100%;height:100%;object-fit:cover;display:block;}
.filedrop-body{padding:clamp(20px,3.5vw,34px);display:flex;flex-direction:column;gap:16px;}
.filedrop-file{display:flex;align-items:center;gap:14px;}
.filedrop-icon{width:44px;height:44px;border-radius:12px;background:var(--mist);display:flex;align-items:center;justify-content:center;flex:none;}
.filedrop-icon svg{width:24px;height:24px;fill:var(--forest);}
.filedrop-meta{display:flex;flex-direction:column;gap:4px;min-width:0;}
.filedrop-name{font-family:var(--display-alt);font-weight:600;font-size:clamp(20px,2.6vw,26px);letter-spacing:.02em;line-height:1.1;word-break:break-word;}
.filedrop-type{font-size:10px;letter-spacing:.22em;text-transform:uppercase;opacity:.55;}
.filedrop-desc{font-size:14px;line-height:1.6;color:rgba(7,26,18,.72);max-width:56ch;}
.filedrop-btn{align-self:flex-start;display:inline-flex;align-items:center;gap:10px;background:var(--forest);color:var(--ice);font-weight:700;font-size:12px;letter-spacing:.18em;padding:15px 26px;border-radius:999px;transition:background .25s,transform .25s var(--ease);}
.filedrop-btn:hover{background:#0d2a20;transform:translateY(-2px);}
.filedrop-btn svg{width:14px;height:14px;fill:currentColor;flex:none;}
@media (max-width:560px){
  .filedrop-btn{align-self:stretch;justify-content:center;}
  .filedrop-media{aspect-ratio:4/3;}
}
@media (prefers-reduced-motion:reduce){
  .filedrop-btn:hover{transform:none;}
}
