
/* v15.3 refinement — one coherent grid, contour and interaction language. */
html{overflow-x:clip}
body[data-v15]{
  --sans:'Inter',system-ui,sans-serif;--display:'Manrope',system-ui,sans-serif;
  --v15-line:rgba(17,16,14,.16);--v15-warm:#e5e1d7;--v15-white:#f7f5ef;
  font-family:var(--sans);font-size:16px;line-height:1.62;overflow-x:clip;overflow-y:visible
}
body[data-v15] .wrap{padding-left:clamp(24px,4vw,64px);padding-right:clamp(24px,4vw,64px)}
body[data-v15] p{letter-spacing:-.008em}

/* The command rail now reports page context and real scroll progress. */
.v15-rail{width:72px}
body[data-v15]{margin-left:72px}
body[data-v15] .nav{left:72px}
.v15-progress{left:72px}
.v15-rail__brand{margin-top:22px;font-size:13px;letter-spacing:.18em}
.v15-rail__page{margin-bottom:22px;font-size:9px;color:#7f7f7f}
.v15-rail__meter{margin:auto;display:flex;flex-direction:column;align-items:center;gap:10px;color:#fff}
.v15-rail__meter::before{content:'';width:1px;height:84px;background:linear-gradient(to bottom,var(--v15-orange) calc(var(--v15-scroll,0)*100%),#303030 0)}
.v15-rail__meter b{font:500 9px/1 var(--mono);letter-spacing:.06em;color:#bdbdbd;writing-mode:vertical-rl;rotate:180deg}

/* Full-width motion field; readability comes from one solid content plane. */
body[data-v15] .hero{min-height:clamp(780px,100svh,960px)}
body[data-v15] .hero__media{inset:0;width:100%;height:100%;clip-path:none;opacity:1}
body[data-v15] .hero__media::after{content:none}
body[data-v15] .hero__media video,body[data-v15] .hero__media img{
  width:100%;height:100%;object-fit:cover;object-position:center;
  filter:grayscale(.24) sepia(.12) saturate(.78) contrast(1.08)
}
body[data-v15] .hero__veil{
  inset:0 auto 0 0;width:min(68%,840px);background:rgba(9,9,9,.84);
  border-right:1px solid rgba(255,255,255,.15)
}
body[data-v15] .hero__in{padding-top:136px;padding-bottom:70px}
body[data-v15] .hero h1{font-size:clamp(3.25rem,6.25vw,7.2rem);line-height:.9;letter-spacing:-.062em;max-width:10.7ch;margin-top:26px}
body[data-v15] .hero .lede{font-size:clamp(1rem,1.25vw,1.16rem);line-height:1.58;max-width:57ch;margin-top:25px}
body[data-v15] .hero__cta{gap:10px;margin-top:28px}
body[data-v15] .hero__cta .btn{min-height:50px;padding:16px 22px}
body[data-v15] .hero__facts{
  position:static;max-width:620px;margin-top:34px;padding-top:19px;
  border-top:1px solid rgba(255,255,255,.24);display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px
}
body[data-v15] .hero__facts b{font-size:1.35rem}
body[data-v15] .hero__facts span{font-size:8.5px;line-height:1.35}

/* Spatial rhythm and hierarchy. Decorative giant counters are removed. */
body[data-v15] .sect{padding:clamp(88px,8vw,126px) 0;overflow:visible}
body[data-v15] .sect::before{content:none}
body[data-v15] .head{grid-template-columns:minmax(150px,210px) minmax(0,1fr);grid-template-rows:auto auto;column-gap:clamp(34px,5vw,76px);row-gap:18px;margin-bottom:clamp(46px,6vw,78px)}
body[data-v15] .head>.tag{grid-column:1;grid-row:1 / 3;align-self:start}
body[data-v15] .head>h2{grid-column:2;grid-row:1;margin:0}
body[data-v15] .head>p{grid-column:2;grid-row:2;margin:0}
body[data-v15] .head h2{font-size:clamp(2.7rem,5vw,5.8rem);line-height:.94;letter-spacing:-.058em;max-width:13ch;text-wrap:balance;overflow-wrap:normal}
body[data-v15] .head p{font-size:1.08rem;line-height:1.62}
body[data-v15] .prose{font-size:17px;line-height:1.7}
body[data-v15] .prose>h2{font-size:clamp(2.35rem,4.2vw,4.8rem);line-height:.96;letter-spacing:-.052em;margin-top:1.85em;scroll-margin-top:110px}
body[data-v15] .prose>h2 .n{font-size:10px;letter-spacing:.18em;margin-bottom:17px}

/* The dossier column uses the available width; TOC stays truly sticky. */
body[data-v15] .doc{grid-template-columns:240px minmax(0,1fr);gap:clamp(46px,5vw,72px);max-width:1320px;margin-inline:auto}
body[data-v15] .rail{
  position:sticky!important;top:98px;max-height:calc(100vh - 118px);overflow:auto;
  gap:18px;padding:22px;background:var(--v15-warm);border:1px solid var(--v15-line);border-top:4px solid var(--v15-orange)
}
body[data-v15] .rail::-webkit-scrollbar{width:4px}
body[data-v15] .rail::-webkit-scrollbar-thumb{background:#bbb5a8}
body[data-v15] .toc{gap:3px;margin-top:12px}
body[data-v15] .toc a{position:relative;padding:8px 10px;font-size:.78rem;line-height:1.3;color:#676258}
body[data-v15] .toc a:hover{background:rgba(255,255,255,.55);color:var(--ink)}
body[data-v15] .toc a.on{background:var(--v15-black);color:#fff;font-weight:500}
body[data-v15] .toc a.on::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--v15-orange)}
body[data-v15] .share{gap:5px}
body[data-v15] .share button{width:30px;height:30px;border-radius:0;background:transparent}
body[data-v15] .by img{border-radius:0}
body[data-v15] .rail__cta{padding:18px;background:var(--v15-black);border-left:4px solid var(--v15-orange)}
body[data-v15] .rail__cta h4{font-size:1rem;margin:10px 0 14px}
body[data-v15] .rail__cta .btn{min-height:43px;padding:11px;font-size:9px}

/* One contour language: quiet at rest, orange only as an interaction signal. */
body[data-v15] .card{border:1px solid var(--v15-line);background:var(--v15-white);box-shadow:none;transform:none}
body[data-v15] .card:hover{border-color:var(--v15-orange);background:var(--v15-white);color:inherit;box-shadow:inset 5px 0 0 var(--v15-orange);transform:translateY(-2px)}
body[data-v15] .card:hover p{color:var(--body)}
body[data-v15] .card:hover .item__cat,body[data-v15] .card:hover .item__go{color:var(--v15-orange)}
body[data-v15] .item__body{padding:25px 26px 29px}
body[data-v15] .item__body h3{font-size:clamp(1.4rem,2.1vw,2.45rem);line-height:1.04}
body[data-v15] .svc{padding:28px;min-height:235px}
body[data-v15] .svc h3,body[data-v15] .svc h4{margin-top:24px}
body[data-v15] .grid--3>.svc{grid-column:span 4!important;min-height:330px;background:var(--v15-black);color:#fff;border-color:#2a2a2a;padding:32px}
body[data-v15] .grid--3>.svc p{color:#aaa}
body[data-v15] .grid--3>.svc .svc__go{color:#ddd}
body[data-v15] .grid--3>.svc:hover{background:#141414;color:#fff}

/* Portfolio and video media share the warm monochrome palette. */
body[data-v15] .item__img{position:relative;aspect-ratio:16/10!important;overflow:hidden;background:#bdb7aa;filter:none!important}
body[data-v15] .feat__img{position:relative;aspect-ratio:16/9;overflow:hidden;background:#bdb7aa}
body[data-v15] .item__img img,body[data-v15] .item__img .cov,body[data-v15] .feat__img img,body[data-v15] .feat__img .cov,body[data-v15] .tube>img,body[data-v15] .tube>.cov{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center;
  filter:grayscale(.76) sepia(.18) saturate(.72) contrast(1.12);transition:filter .35s ease,transform .5s ease
}
body[data-v15] .item__img::after,body[data-v15] .feat__img::after{content:'';position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 0 1px rgba(8,8,8,.18)}
body[data-v15] .item:hover .item__img img,body[data-v15] .item:hover .item__img .cov,body[data-v15] .tube:hover>img,body[data-v15] .tube:hover>.cov{filter:grayscale(.42) sepia(.16) saturate(.9) contrast(1.1);transform:scale(1.025)}
body[data-v15] .tube{width:100%;aspect-ratio:16/9;border:1px solid #292929;border-radius:0;overflow:hidden;background:#111}
body[data-v15] .tube__veil{background:rgba(9,9,9,.38)}
body[data-v15] .tube__play,body[data-v15] .tube__cap{z-index:2}

/* Case and video covers are editorial evidence boards, not loose stock art. */
body[data-v15] .v15-case-cover{position:relative;isolation:isolate;display:block;width:100%;height:100%;overflow:hidden;background:#0a0a0a!important;color:#fff;filter:none!important;transform:none!important}
body[data-v15] .v15-case-cover::before{content:'';position:absolute;inset:0;z-index:0;background-image:linear-gradient(rgba(255,255,255,.065) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.065) 1px,transparent 1px);background-size:56px 56px;opacity:.58}
body[data-v15] .v15-case-cover::after{content:'';position:absolute;inset:16px;z-index:4;border:1px solid rgba(255,255,255,.2);pointer-events:none;box-shadow:inset 4px 0 0 var(--v15-orange)}
body[data-v15] .v15-cover__screen{position:absolute;z-index:1;inset:12% 6% 10% 23%;overflow:hidden;background:#171717;border:1px solid rgba(255,255,255,.24);box-shadow:0 28px 60px rgba(0,0,0,.32)}
body[data-v15] .v15-cover__screen img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;object-position:center!important;filter:grayscale(.82) sepia(.14) saturate(.56) contrast(1.14) brightness(.72)!important;transform:scale(1.01)!important;transition:filter .35s ease,transform .5s ease!important}
body[data-v15] .v15-case-cover:hover .v15-cover__screen img,body[data-v15] .item:hover .v15-case-cover .v15-cover__screen img{filter:grayscale(.48) sepia(.12) saturate(.76) contrast(1.08) brightness(.78)!important;transform:scale(1.035)!important}
body[data-v15] .v15-cover__screen::after{content:'';position:absolute;inset:0;background:rgba(255,80,0,.07);pointer-events:none}
body[data-v15] .v15-cover__rail{position:absolute;z-index:5;left:28px;bottom:30px;display:flex;align-items:center;gap:12px;font:700 9px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:#fff}
body[data-v15] .v15-cover__rail::before{content:'';width:28px;height:2px;background:var(--v15-orange)}
body[data-v15] .v15-cover__index{position:absolute;z-index:3;top:24px;right:27px;font:800 clamp(2.2rem,5vw,5.4rem)/.8 var(--display);letter-spacing:-.07em;color:rgba(255,255,255,.17)}
body[data-v15] .v15-cover__node{position:absolute;z-index:5;left:28px;top:28px;width:9px;height:9px;background:var(--v15-orange);box-shadow:18px 0 0 rgba(255,255,255,.46),36px 0 0 rgba(255,255,255,.18)}
body[data-v15] .v15-cover--service .v15-cover__screen{inset:15% 8% 14% 29%;background:#e7e2d7}
body[data-v15] .v15-cover--service .v15-cover__screen img{object-fit:contain!important;background:#e7e2d7;filter:grayscale(.9) sepia(.12) saturate(.48) contrast(1.08) brightness(.88)!important}
body[data-v15] .v15-cover--home.v15-cover--01 .v15-cover__screen{inset:7% 5% 7% 16%}
body[data-v15] .v15-cover--blog .v15-cover__screen,body[data-v15] .v15-cover--portfolio .v15-cover__screen,body[data-v15] .v15-cover--case .v15-cover__screen{inset:11% 5% 11% 20%}
@media(max-width:720px){body[data-v15] .v15-case-cover::after{inset:10px}body[data-v15] .v15-cover__screen,body[data-v15] .v15-cover--service .v15-cover__screen{inset:14% 6% 14% 25%}body[data-v15] .v15-cover__rail{left:20px;bottom:20px}.v15-cover__index{top:18px!important;right:20px!important}}

/* A single clean sequence axis — no competing grey/orange bars. */
body[data-v15] .steps{gap:0;background:transparent;border-top:1px solid var(--ink)}
body[data-v15] .step{grid-template-columns:68px minmax(0,1fr);gap:24px;padding:27px 0;border:0;border-bottom:1px solid var(--v15-line);background:transparent}
body[data-v15] .step::before{content:none}
body[data-v15] .step__n{width:48px;height:48px;border:1px solid var(--v15-orange);border-radius:0;background:transparent;color:var(--v15-orange);font-size:.8rem}
body[data-v15] .step:hover .step__n{background:var(--v15-orange);color:#fff}
body[data-v15] .step h4{font-size:1.18rem}
body[data-v15] .step p{margin-top:5px}

/* Tables read as executive data sheets, not boxed spreadsheets. */
body[data-v15] .tbl{border:0;border-radius:0;background:var(--v15-white);box-shadow:0 0 0 1px var(--v15-line);overflow:auto}
body[data-v15] .tbl table{font-size:.91rem}
body[data-v15] .tbl th{padding:17px 20px;background:var(--v15-black);color:#fff;font:500 10px/1.35 var(--mono);letter-spacing:.1em;text-transform:uppercase;border:0}
body[data-v15] .tbl td{padding:19px 20px;line-height:1.55;border:0}
body[data-v15] .tbl tbody tr+tr td{border-top:1px solid var(--v15-line)}
body[data-v15] .tbl tbody tr:nth-child(even){background:#ece9e1}
body[data-v15] .tbl tbody tr:hover{background:#fff2eb}

/* FAQ open state is one composed surface. */
body[data-v15] .qa{border:0;border-bottom:1px solid var(--ink);border-radius:0;background:transparent;box-shadow:none}
body[data-v15] .qa:first-of-type{border-top:1px solid var(--ink)}
body[data-v15] .qa summary{padding:22px 20px;border-radius:0;font-size:1rem}
body[data-v15] .qa summary:hover{background:#e8e4da;color:var(--ink)}
body[data-v15] .qa[open]{background:#e5e1d7;box-shadow:inset 4px 0 0 var(--v15-orange)}
body[data-v15] .qa[open] summary{padding-left:26px}
body[data-v15] .qa__a{max-width:none;padding:0 26px 25px;background:transparent;color:#4e4a42;line-height:1.65}

/* Cross-links and compact proof blocks have useful internal space. */
body[data-v15] .mini{gap:12px;background:transparent;border:0}
body[data-v15] .mini a,body[data-v15] .mini .mcard{padding:22px;border:1px solid var(--v15-line);border-radius:0;background:var(--v15-white)}
body[data-v15] .mini a:hover{border-color:var(--v15-orange);box-shadow:inset 4px 0 0 var(--v15-orange);transform:translateY(-2px)}
body[data-v15] .mini--team .p{border-radius:0;background:var(--v15-white);padding:10px 14px 10px 10px}
body[data-v15] .mini--team img{border-radius:0}

/* Motion portraits use the same full-width field and balanced text measure. */
body[data-v15] .faceband{min-height:700px}
body[data-v15] .faceband__media video{width:100%;height:100%;object-fit:cover;filter:grayscale(.45) sepia(.16) saturate(.75) contrast(1.1)}
body[data-v15] .faceband__scrim{background:rgba(8,8,8,.42)}
body[data-v15] .faceband__body{width:min(58%,760px);max-width:760px;padding:36px 0 36px 38px;background:transparent;border-left:5px solid var(--v15-orange);text-shadow:0 2px 24px rgba(0,0,0,.7)}
body[data-v15] .faceband__body h2{font-size:clamp(2.45rem,4.25vw,4.9rem);line-height:.94;max-width:13ch;text-wrap:balance;overflow-wrap:normal}
body[data-v15] .faceband__body blockquote{max-width:58ch}
/* Full-width editorial reels stay inside the MONOLITH canvas instead of using
   100vw, which otherwise leaks past the fixed command rail and scrollbar. */
body[data-v15] .reel{width:100%!important;margin-left:0!important;margin-right:0!important}

@media(max-width:1120px){
  body[data-v15] .doc{grid-template-columns:1fr;max-width:880px}
  body[data-v15] .rail{display:none}
  body[data-v15] .hero__veil{width:74%}
}
@media(max-width:760px){
  body[data-v15]{margin-left:0;font-size:15px}
  body[data-v15] .nav{left:0}.v15-progress{left:0}.v15-rail{display:none}
  body[data-v15] .doc,body[data-v15] .prose{min-width:0;width:100%;max-width:100%}
  body[data-v15] .prose>*{min-width:0;max-width:100%}
  body[data-v15] .prose .grid,body[data-v15] .prose .grid--2,body[data-v15] .prose .grid--3,body[data-v15] .prose .mini,body[data-v15] .prose .tbl{width:100%;max-width:100%}
  body[data-v15] .prose .tbl{overflow-x:auto}
  body[data-v15] .prose h2,body[data-v15] .prose h3,body[data-v15] .prose p{overflow-wrap:break-word}
  body[data-v15] .feat,body[data-v15] .feat__img,body[data-v15] .item,body[data-v15] .item__img{min-width:0;max-width:100%}
  body[data-v15] .feat__img{width:100%;height:auto;min-height:0;aspect-ratio:16/9}
  body[data-v15] .hero{min-height:auto}
  body[data-v15] .hero__media{inset:0;height:100%;opacity:1}
  body[data-v15] .hero__media video,body[data-v15] .hero__media img{object-position:center;filter:grayscale(.35) sepia(.14) saturate(.7) contrast(1.1)}
  body[data-v15] .hero__veil{inset:0;width:100%;height:100%;background:rgba(9,9,9,.78);border:0}
  body[data-v15] .hero__in{padding-top:118px;padding-bottom:54px}
  body[data-v15] .hero h1{font-size:clamp(2.65rem,11vw,4.2rem);max-width:11ch}
  body[data-v15] .hero__facts{grid-template-columns:repeat(2,1fr);margin-top:28px}
  body[data-v15] .sect{padding:72px 0}
  body[data-v15] .head{grid-template-columns:1fr;gap:18px}
  body[data-v15] .head>.tag,body[data-v15] .head>h2,body[data-v15] .head>p{grid-column:1;grid-row:auto}
  body[data-v15] .head h2{font-size:clamp(2.45rem,12vw,4rem)}
  body[data-v15] .prose>h2{font-size:clamp(2.25rem,11vw,3.7rem)}
  body[data-v15] .grid--3>.svc{min-height:0}
  body[data-v15] .faceband{min-height:760px;align-items:flex-end}
  body[data-v15] .faceband__in{padding:0 0 28px;justify-content:flex-start}
  body[data-v15] .faceband__body{width:calc(100% - 48px);max-width:none;padding:24px 0 24px 22px;border-left:4px solid var(--v15-orange)}
  body[data-v15] .faceband__body h2{font-size:clamp(2.35rem,11vw,4rem)}
}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
