/* =========================================================
   CASE STUDY — extends main.css (Monolith)
   Print-trade details: crop marks on frames, a CMYK colour bar.
   ========================================================= */
.cs{
  --cyan:#00aeef; --magenta:#ec008c; --yellow:#fff200; --key:#2a2a30;
  --good:#8ef0a8; --warn:#ffb454;
  --crop:rgba(255,255,255,.34);
}

/* status pill in the meta strip */
.live-soon{display:inline-flex !important;align-items:center;gap:9px;}
.live-soon i{width:8px;height:8px;background:var(--acid);display:block;}

/* shared caption */
.cap{font-family:var(--fm);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;
  color:var(--mid);margin-top:14px;line-height:1.6;}

/* ---------- printer's crop marks around a frame ---------- */
.crop{position:relative;}
.crop::before{content:"";position:absolute;inset:-14px;pointer-events:none;z-index:0;
  --c:var(--crop);
  background:
    linear-gradient(var(--c),var(--c)) 0 14px/9px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) 14px 0/1px 9px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% 14px/9px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) calc(100% - 14px) 0/1px 9px no-repeat,
    linear-gradient(var(--c),var(--c)) 0 calc(100% - 14px)/9px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) 14px 100%/1px 9px no-repeat,
    linear-gradient(var(--c),var(--c)) 100% calc(100% - 14px)/9px 1px no-repeat,
    linear-gradient(var(--c),var(--c)) calc(100% - 14px) 100%/1px 9px no-repeat;}
.crop + .cap,.crop + figcaption{margin-top:22px;}
.cs .stack-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
@media(max-width:900px){.cs .stack-grid{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:420px){.cs .stack-grid{grid-template-columns:1fr;}}

/* ---------- image frames with placeholder fallback ---------- */
.frame{position:relative;overflow:hidden;background:#111116;margin:0;}
.frame img{display:block;width:100%;height:auto;}
.frame:not(.has) img{visibility:hidden;}
.frame:not(.has)::after{content:attr(data-ph);position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--fm);font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:rgba(255,255,255,.3);
  background:repeating-linear-gradient(135deg,rgba(255,255,255,.032) 0 14px,transparent 14px 28px);}
.shot-box{aspect-ratio:16/10;border:1px solid var(--line);}
.shot-box img{height:100%;object-fit:cover;object-position:top center;}

/* ---------- before / after ---------- */
.ba{margin-top:clamp(40px,5vw,64px);}
.ba-bar{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:26px;}
.ba-tabs{display:flex;border:1px solid var(--line-2);}
.ba-tabs button{font-family:var(--fm);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;
  background:none;border:0;color:var(--mid);padding:11px 18px;cursor:pointer;transition:.3s var(--ease);}
.ba-tabs button + button{border-left:1px solid var(--line-2);}
.ba-tabs button:hover{color:var(--ink);}
.ba-tabs button[aria-selected="true"]{background:var(--acid);color:#08080a;}
.ba-hint{font-family:var(--fm);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--mid);}
.ba-hint::before{content:"\2194";margin-right:10px;color:var(--acid);}

.ba-frame{position:relative;z-index:1;border:1px solid var(--line-2);background:#111116;}
.ba-chrome{display:flex;align-items:center;gap:14px;padding:10px 14px;border-bottom:1px solid var(--line);
  background:var(--bg-2);font-family:var(--fm);font-size:10.5px;letter-spacing:.6px;color:var(--mid);min-width:0;}
.ba-chrome .dots{display:flex;gap:6px;flex:none;}
.ba-chrome .dots i{width:8px;height:8px;border-radius:50%;background:var(--line-2);display:block;}
.ba-chrome .url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  background:rgba(255,255,255,.05);padding:5px 12px;}
.ba-chrome .url-after{color:var(--ink);}
.ba-chrome.small{padding:8px 12px;border:1px solid var(--line-2);border-bottom:0;position:relative;z-index:1;}

.ba-stage{position:relative;aspect-ratio:1440/900;overflow:hidden;user-select:none;touch-action:pan-y;}
.ba-img{position:absolute;inset:0;}
.ba-img img{width:100%;height:100%;object-fit:cover;object-position:top center;}
.ba-img.after{clip-path:inset(0 0 0 var(--x));}
.ba-handle{position:absolute;top:0;bottom:0;left:var(--x);width:2px;margin-left:-1px;background:var(--acid);
  pointer-events:none;box-shadow:0 0 18px rgba(216,255,54,.5);}
.ba-handle span{position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;
  background:var(--acid);color:#08080a;display:grid;place-items:center;font-size:18px;font-weight:700;
  box-shadow:0 6px 24px rgba(0,0,0,.45);}
.ba-range{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;margin:0;-webkit-appearance:none;appearance:none;}
.ba-range:focus-visible + .ba-handle,.ba-stage:has(.ba-range:focus-visible) .ba-handle span{outline:2px solid #fff;outline-offset:3px;}
.ba-tag{position:absolute;top:14px;font-family:var(--fm);font-size:10px;letter-spacing:2.2px;text-transform:uppercase;
  padding:6px 10px;pointer-events:none;}
.ba-tag.t-before{left:14px;background:rgba(8,8,10,.8);color:var(--ink);}
.ba-tag.t-after{right:14px;background:var(--acid);color:#08080a;}

/* ---------- numbers ---------- */
.proof{margin-top:clamp(54px,7vw,96px);}
.proof-head{display:flex;justify-content:space-between;align-items:center;gap:16px;}
.proof-head .sec-label{margin-bottom:0;}
.cmyk{display:flex;align-items:center;gap:3px;}
.cmyk i{width:18px;height:10px;display:block;}
.cmyk .c{background:var(--cyan);} .cmyk .m{background:var(--magenta);}
.cmyk .y{background:var(--yellow);} .cmyk .k{background:var(--key);border:1px solid var(--line-2);}
.cmyk .reg{width:16px;height:16px;margin-left:10px;border-radius:50%;border:1px solid var(--dim);position:relative;display:block;}
.cmyk .reg::before,.cmyk .reg::after{content:"";position:absolute;background:var(--dim);}
.cmyk .reg::before{left:50%;top:-4px;bottom:-4px;width:1px;}
.cmyk .reg::after{top:50%;left:-4px;right:-4px;height:1px;}
.nums{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:22px;}
.num{background:var(--bg);padding:clamp(22px,2.6vw,34px) clamp(18px,2vw,28px) clamp(24px,2.8vw,36px);min-width:0;}
.num b{display:block;font-weight:900;font-size:clamp(44px,6.4vw,92px);line-height:.86;letter-spacing:-.05em;
  color:var(--acid);font-variant-numeric:tabular-nums;}
.num span{display:block;font-family:var(--fm);font-size:10.5px;letter-spacing:2.4px;text-transform:uppercase;
  color:var(--ink);margin:16px 0 10px;}
.num p{font-size:14.5px;color:var(--dim);line-height:1.5;max-width:34ch;}
.num p em{font-style:normal;color:var(--ink);font-weight:600;}
@media(max-width:900px){.nums{grid-template-columns:repeat(2,1fr);}}
@media(max-width:520px){.nums{grid-template-columns:1fr;}}

/* ---------- the starting point ---------- */
.split{display:grid;gap:clamp(30px,4vw,64px);align-items:start;}
@media(min-width:980px){.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}}
.sys{border:1px solid var(--line);background:var(--bg-2);padding:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;gap:12px;min-width:0;}
.sys-l{font-family:var(--fm);font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:var(--mid);margin-top:6px;}
.sys-l:not(:first-child){margin-top:18px;padding-top:18px;border-top:1px dashed var(--line-2);}
.sys-row{display:flex;align-items:stretch;gap:10px;}
.sys-row.one{max-width:calc(50% - 26px);}
.sys-arrow{display:grid;place-items:center;color:var(--mid);font-size:18px;flex:none;}
.node-box{flex:1;min-width:0;border:1px solid var(--line-2);padding:14px 14px 15px;background:var(--bg);}
.node-box b{display:block;font-weight:800;font-size:15px;letter-spacing:-.01em;overflow-wrap:anywhere;}
.node-box span{display:block;font-family:var(--fm);font-size:10px;letter-spacing:1.4px;text-transform:uppercase;color:var(--dim);margin-top:6px;}
.node-box em{display:block;font-style:normal;font-size:13px;color:var(--mid);margin-top:8px;}
.node-box.warn{border-color:rgba(255,180,84,.55);} .node-box.warn b{color:var(--warn);}
.node-box.dim{opacity:.7;border-style:dashed;}
.node-box.good{border-color:var(--acid);box-shadow:0 0 0 4px rgba(216,255,54,.07);}
.node-box.good b{color:var(--acid);}
@media(max-width:520px){.sys-row{flex-direction:column;}.sys-arrow{transform:rotate(90deg);}.sys-row.one{max-width:none;}}

/* ---------- live demo ---------- */
.demo{margin-top:clamp(34px,4vw,52px);border:1px solid var(--acid);background:var(--bg-2);}
.demo-top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  padding:14px clamp(16px,2vw,24px);border-bottom:1px solid var(--line);}
.demo-top p{font-size:14.5px;color:var(--dim);min-width:0;}
.demo-top p b{color:var(--ink);}
.demo-badge{font-family:var(--fm);font-size:10px;letter-spacing:2.2px;text-transform:uppercase;
  background:var(--acid);color:#08080a;padding:5px 9px;display:inline-flex;align-items:center;gap:8px;}
.demo-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:#08080a;animation:blip 1.6s infinite;}
.demo-body{display:grid;gap:1px;background:var(--line);}
@media(min-width:900px){.demo-body{grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);}}
.demo-form{background:var(--bg-2);padding:clamp(18px,2.4vw,30px);display:grid;gap:16px;align-content:start;}
.demo-form label{display:grid;gap:7px;font-family:var(--fm);font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--mid);}
.demo-form select{font-family:var(--fd);font-size:15px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--ink);
  background:var(--bg) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23d8ff36' stroke-width='1.5'/%3E%3C/svg%3E") no-repeat right 14px center;
  border:1px solid var(--line-2);padding:12px 40px 12px 14px;-webkit-appearance:none;appearance:none;cursor:pointer;width:100%;border-radius:0;color-scheme:dark;}
.demo-form select:hover{border-color:var(--dim);}
.demo-form select:focus-visible{outline:2px solid var(--acid);outline-offset:1px;border-color:var(--acid);}
.demo-form select.pulse{animation:selPulse .6s var(--ease);}
@keyframes selPulse{0%{border-color:var(--acid);box-shadow:0 0 0 4px rgba(216,255,54,.18);}100%{box-shadow:0 0 0 0 rgba(216,255,54,0);}}

.docket{background:var(--bg);padding:clamp(18px,2.4vw,30px);display:flex;flex-direction:column;gap:18px;min-width:0;
  font-variant-numeric:tabular-nums;}
.docket-h{font-family:var(--fm);font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:var(--acid);}
.grid-row{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);}
.grid-row .gc{padding:9px 4px 10px;text-align:center;border-left:1px solid var(--line);min-width:0;transition:background .35s var(--ease),color .35s;}
.grid-row .gc:first-child{border-left:0;}
.grid-row .gc small{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:.6px;color:var(--mid);margin-bottom:4px;}
.grid-row .gc span{display:block;font-family:var(--fm);font-size:11.5px;color:var(--dim);overflow:hidden;text-overflow:ellipsis;}
.grid-row .gc.on{background:var(--acid);}
.grid-row .gc.on small,.grid-row .gc.on span{color:#08080a;}
.grid-cap{font-family:var(--fm);font-size:9.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--mid);margin-top:-10px;}
@media(max-width:560px){
  .grid-row{grid-template-columns:repeat(4,minmax(0,1fr));}
  .grid-row .gc{border-top:1px solid var(--line);}
  .grid-row .gc:nth-child(-n+4){border-top:0;}
  .grid-row .gc:nth-child(4n+1){border-left:0;}
}
.lines{list-style:none;display:grid;gap:0;border-top:1px solid var(--line);}
.lines li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0;border-bottom:1px dashed var(--line);font-size:14px;color:var(--dim);}
.lines li .k{min-width:0;}
.lines li .k small{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:1.4px;text-transform:uppercase;color:var(--mid);margin-top:3px;}
.lines li .v{font-family:var(--fm);font-size:13px;color:var(--ink);white-space:nowrap;}
.lines li.zero .v{color:var(--mid);}
.lines li.sub{color:var(--ink);font-weight:600;}
.lines li.gst{border-bottom-style:solid;}
.total{display:flex;justify-content:space-between;align-items:baseline;gap:14px;flex-wrap:wrap;}
.total span{font-family:var(--fm);font-size:10.5px;letter-spacing:2.4px;text-transform:uppercase;color:var(--ink);}
.total b{font-weight:900;font-size:clamp(34px,4.4vw,56px);letter-spacing:-.04em;color:var(--acid);line-height:.9;}
.total b.tick{animation:tick .45s var(--ease);}
@keyframes tick{0%{opacity:.35;transform:translateY(6px);}100%{opacity:1;transform:none;}}

.cs .steps{margin-top:clamp(44px,5vw,64px);}

/* ---------- screenshot rows ---------- */
.shots-2,.shots-3{display:grid;gap:clamp(28px,3vw,40px);margin-top:clamp(40px,5vw,64px);}
@media(min-width:760px){.shots-2{grid-template-columns:1fr 1fr;}}
@media(min-width:900px){.shots-3{grid-template-columns:repeat(3,1fr);}}
.shots-2 figure,.shots-3 figure{margin:0;min-width:0;}

/* ---------- desktop + phone pair ---------- */
.devices{display:grid;gap:clamp(28px,3vw,44px);margin-top:clamp(38px,4.6vw,60px);align-items:end;}
@media(min-width:900px){.devices{grid-template-columns:minmax(0,1fr) clamp(220px,22vw,300px);}}
.devices figure{margin:0;min-width:0;}
.scroller{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--line-2) transparent;}
.dev-desk .scroller{height:clamp(340px,42vw,600px);border:1px solid var(--line-2);}
.scroller img{transition:transform 7s cubic-bezier(.45,0,.2,1);}
.scroller:focus-visible{outline:2px solid var(--acid);outline-offset:2px;}
.phone{border:1px solid var(--line-2);border-radius:34px;padding:10px;background:var(--bg-2);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);max-width:300px;margin:0 auto;}
.phone .frame{border-radius:25px;aspect-ratio:390/844;}
.phone .frame img{height:100%;object-fit:cover;object-position:top center;}
.phone .scroller img{height:auto;object-fit:initial;}
.dev-phone .scroller{aspect-ratio:390/844;}

.phones{display:grid;gap:clamp(24px,3vw,44px);margin-top:clamp(54px,6vw,84px);align-items:center;
  border-top:1px solid var(--line);padding-top:clamp(36px,4vw,56px);}
@media(min-width:760px){.phones{grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,.8fr);}}
@media(max-width:759px){.phones{grid-template-columns:1fr 1fr;}.phones-txt{grid-column:1 / -1;}}
.phones figure{margin:0;min-width:0;text-align:center;}
.phones-lead{font-size:clamp(18px,1.9vw,24px);line-height:1.35;letter-spacing:-.015em;color:var(--ink);max-width:24ch;}
.dev-phone.sm .phone{max-width:230px;border-radius:28px;padding:8px;}
.dev-phone.sm .phone .frame{border-radius:21px;}

/* ---------- timeline ---------- */
.tl{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:clamp(30px,4vw,48px);
  border-top:1px solid var(--line-2);counter-reset:tl;}
.tl li{position:relative;padding:26px 20px 30px 0;min-width:0;}
.tl li::before{content:"";position:absolute;top:-5px;left:0;width:9px;height:9px;background:var(--bg);border:1px solid var(--acid);}
.tl li:nth-child(n+5){border-top:1px solid var(--line-2);}
.tl li:nth-child(n+5)::before{top:-5px;}
.tl time{display:block;font-family:var(--fm);font-size:10.5px;letter-spacing:2px;text-transform:uppercase;color:var(--acid);margin-bottom:10px;}
.tl b{display:block;font-weight:800;font-size:clamp(17px,1.6vw,21px);text-transform:uppercase;letter-spacing:-.015em;margin-bottom:8px;}
.tl span{display:block;font-size:14px;color:var(--dim);line-height:1.5;max-width:28ch;}
.tl li.next::before{background:var(--acid);animation:blip 2.2s infinite;}
.tl li.next time{color:var(--ink);}
@media(max-width:900px){.tl{grid-template-columns:repeat(2,minmax(0,1fr));}.tl li:nth-child(n+3){border-top:1px solid var(--line-2);}}
@media(max-width:520px){
  .tl{grid-template-columns:1fr;border-top:0;border-left:1px solid var(--line-2);margin-left:4px;}
  .tl li,.tl li:nth-child(n+3){border-top:0;padding:0 0 26px 24px;}
  .tl li::before,.tl li:nth-child(n+5)::before{top:4px;left:-5px;}
}

/* ---------- outcome ---------- */
.out-grid{display:grid;gap:clamp(26px,4vw,64px);align-items:start;}
@media(min-width:900px){.out-grid{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);}}
.out-lead{font-weight:900;text-transform:uppercase;letter-spacing:-.035em;font-size:clamp(26px,3.8vw,50px);
  line-height:.95;text-wrap:balance;}
.out-lead b{color:var(--acid);}
.out-list{list-style:none;border-top:1px solid var(--line);}
.out-list li{padding:14px 0 14px 28px;border-bottom:1px solid var(--line);color:var(--dim);position:relative;font-size:15px;}
.out-list li::before{content:"";position:absolute;left:2px;top:21px;width:10px;height:6px;border-left:2px solid var(--acid);
  border-bottom:2px solid var(--acid);transform:rotate(-45deg);}
.out-list li b{color:var(--ink);font-weight:600;}

h2.big{text-wrap:balance;}

@media (prefers-reduced-motion:reduce){
  .scroller img,.total b.tick,.demo-form select.pulse{transition:none;animation:none;}
  .demo-badge::before,.tl li.next::before{animation:none;}
}

/* meta strip: five cells, no empty gaps */
@media(min-width:1000px){.cs .pmeta{grid-template-columns:repeat(5,minmax(0,1fr));}}
@media(max-width:999px){.cs .pmeta{grid-template-columns:repeat(2,minmax(0,1fr));}.cs .pmeta .pm:last-child{grid-column:1 / -1;}}


/* ---------- colour hero: the new site's CMYK paint swatch ---------- */
.cs-hero{position:relative;overflow:hidden;background:#101014;isolation:isolate;padding-top:57px;}
.cs-hero-paint{position:absolute;inset:0;z-index:-1;
  background:url("../images/northside/hero-paint.jpg") 38% 50%/cover no-repeat;
  animation:rollOn 1.5s cubic-bezier(.65,0,.2,1) both;}
.cs-hero::after{content:"";position:absolute;left:0;right:0;bottom:0;height:34%;z-index:-1;pointer-events:none;
  background:linear-gradient(180deg,transparent,rgba(8,8,10,.55) 55%,var(--bg));}
@keyframes rollOn{from{clip-path:inset(0 100% 0 0);}to{clip-path:inset(0 0 0 0);}}
.cs-hero-in{display:flex;flex-direction:column;justify-content:space-between;gap:48px;
  min-height:clamp(420px,52vw,680px);padding-top:26px;padding-bottom:clamp(44px,6vw,86px);}
.back-chip{padding:9px 13px !important;align-self:flex-start;background:rgba(8,8,10,.86);color:var(--dim);}
.back-chip:hover{color:var(--acid);}
.cs-kick{align-self:flex-start;font-family:var(--fm);font-size:10.5px;letter-spacing:2.6px;text-transform:uppercase;
  background:var(--acid);color:#08080a;padding:8px 12px;margin-bottom:14px;}
.cs-h1{display:flex;flex-direction:column;align-items:flex-start;gap:0;margin:0;
  font-weight:900;text-transform:uppercase;letter-spacing:-.045em;line-height:.98;
  font-size:clamp(44px,8.4vw,128px);}
.cs-h1 .ln{display:block;width:fit-content;max-width:100%;background:#08080a;color:#fff;
  padding:.08em .24em .06em;margin-top:-1px;white-space:nowrap;animation:lnIn .8s var(--ease) both;animation-delay:.75s;}
.cs-h1 .ln:nth-child(2){animation-delay:.85s;} .cs-h1 .ln:nth-child(3){animation-delay:.95s;} .cs-h1 .ln:nth-child(4){animation-delay:1.05s;}
.cs-h1 .ln.in{margin-left:clamp(22px,7vw,120px);}
.cs-h1 em{font-style:normal;}
.cs-h1 .cy{color:#35c8ff;}
.cs-h1 .mg{color:#ff45a8;}
@keyframes lnIn{from{transform:translateX(-26px);clip-path:inset(0 100% 0 0);}to{transform:none;clip-path:inset(0 0 0 0);}}
.cs-intro{padding:clamp(34px,4vw,56px) 0 0;}
.cs-intro .dek{font-size:clamp(17px,1.7vw,22px);line-height:1.5;max-width:58ch;}
@media(max-width:620px){
  .cs-hero-in{min-height:440px;gap:36px;}
  .cs-hero-paint{background-position:30% 50%;}
  .cs-h1 .ln.in{margin-left:18px;}
}
@media (prefers-reduced-motion:reduce){.cs-hero-paint,.cs-h1 .ln{animation:none;}}

/* cart + artwork shown full width so the UI is readable */
.shots-2.wide{grid-template-columns:1fr !important;gap:clamp(40px,5vw,72px);}
.shots-2.wide .shot-box{aspect-ratio:auto;}
.shots-2.wide .shot-box img{height:auto;object-fit:initial;}
.shots-2.wide .shot-box:not(.has){aspect-ratio:16/10;}

/* =========================================================
   LIGHT BANDS: full-bleed paper-white sections that break up the page
   ========================================================= */
.band{position:relative;isolation:isolate;margin-top:clamp(64px,8vw,112px);padding-block:clamp(56px,7vw,100px);}
.band::before{content:"";position:absolute;top:0;bottom:0;left:calc(50% - 50vw);right:calc(50% - 50vw);z-index:-1;background:var(--bg);}
.band + .psec{padding-top:clamp(64px,8vw,112px);}
.band-light{
  --bg:#eef0eb; --bg-2:#e2e6dd; --ink:#0b0b0d; --dim:#3b3d43; --mid:#6a6c73;
  --line:rgba(11,11,13,.14); --line-2:rgba(11,11,13,.3); --crop:rgba(11,11,13,.35);
  color:var(--ink);}
.band-light .sec-label{display:inline-block;background:#0b0b0d;color:var(--acid);padding:6px 10px;}
.band-light h2.big b{color:inherit;background:linear-gradient(transparent 56%,var(--acid) 56%,var(--acid) 90%,transparent 90%);
  -webkit-box-decoration-break:clone;box-decoration-break:clone;padding:0 .06em;}
.band-light .prose p{color:var(--dim);}
.band-light .prose p b{color:var(--ink);font-weight:600;}
.band-light .sys{background:#fff;border-color:var(--line);}
.band-light .node-box{background:var(--bg);}
.band-light .node-box.warn{border-color:#d9822b;} .band-light .node-box.warn b{color:#b35f00;}
.band-light .node-box.good{background:#0b0b0d;border-color:#0b0b0d;box-shadow:6px 6px 0 var(--acid);}
.band-light .node-box.good b{color:var(--acid);} .band-light .node-box.good span{color:#c9cbd1;} .band-light .node-box.good em{color:#9a9ca4;}
.split > div{min-width:0;}
@media(min-width:980px){.band .split{align-items:center;}}

/* shared icon */
.ico{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;display:block;flex:none;}

/* ---------- five steps ---------- */
.flow5{list-style:none;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(12px,1.4vw,20px);margin-top:clamp(30px,4vw,52px);position:relative;}
.flow5::before{content:"";position:absolute;left:32px;right:32px;top:32px;height:2px;
  background:repeating-linear-gradient(90deg,var(--line-2) 0 6px,transparent 6px 12px);z-index:0;}
.fs{position:relative;z-index:1;background:#fff;border:1px solid var(--line);padding:0 clamp(16px,1.6vw,22px) clamp(20px,2vw,26px);min-width:0;
  transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.fs:hover{transform:translateY(-4px);box-shadow:0 14px 30px -18px rgba(11,11,13,.45);}
.fs-ic{display:grid;place-items:center;width:64px;height:64px;margin:0 0 18px -1px;background:#0b0b0d;color:var(--acid);transform:translateY(-1px);}
.fs-ic .ico{width:28px;height:28px;}
.fs:nth-child(5) .fs-ic{background:var(--acid);color:#0b0b0d;}
.fs-n{position:absolute;top:22px;right:18px;font-family:var(--fm);font-size:10.5px;letter-spacing:2px;color:var(--mid);}
.fs h3{font-weight:900;text-transform:uppercase;letter-spacing:-.025em;font-size:clamp(20px,1.8vw,26px);line-height:1;margin-bottom:10px;}
.fs p{font-size:14.5px;line-height:1.45;color:var(--dim);}
.fs p b{color:var(--ink);font-weight:800;}
@media(max-width:980px){.flow5{grid-template-columns:repeat(2,minmax(0,1fr));}.flow5::before{display:none;}.fs:last-child{grid-column:1 / -1;}}
@media(max-width:560px){
  .flow5{grid-template-columns:1fr;gap:10px;}
  .fs{display:grid;grid-template-columns:56px 1fr;column-gap:16px;align-items:center;padding:0 16px 0 0;}
  .fs-ic{width:56px;height:100%;min-height:78px;margin:0;grid-row:1 / 3;}
  .fs h3{margin:16px 0 4px;} .fs p{margin-bottom:16px;}
  .fs-n{top:14px;right:14px;}
}

/* ---------- four features ---------- */
.feat4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:4px;}
.ft{background:var(--bg);padding:clamp(20px,2.2vw,28px);display:flex;flex-direction:column;gap:10px;min-width:0;transition:background .3s;}
.ft:hover{background:var(--bg-2);}
.ft .ico{color:var(--acid);width:30px;height:30px;margin-bottom:6px;}
.ft b{font-weight:900;text-transform:uppercase;letter-spacing:-.02em;font-size:18px;}
.ft span{font-size:14px;color:var(--dim);line-height:1.45;}
@media(max-width:900px){.feat4{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:460px){.feat4{grid-template-columns:1fr;}.ft{flex-direction:row;flex-wrap:wrap;align-items:center;column-gap:14px;}.ft .ico{margin:0;}.ft span{flex-basis:100%;}}

/* ---------- timeline rail ---------- */
.rail{list-style:none;display:grid;grid-template-columns:repeat(8,minmax(0,1fr));margin-top:clamp(34px,4.4vw,60px);position:relative;}
.rail::before{content:"";position:absolute;left:28px;right:calc(12.5% - 28px);top:27px;height:2px;background:#0b0b0d;}
.rail li{position:relative;min-width:0;padding-right:10px;}
.tn{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--bg);border:2px solid #0b0b0d;color:#0b0b0d;
  position:relative;z-index:1;transition:background .3s,color .3s;}
.rail li:hover .tn{background:#0b0b0d;color:var(--acid);}
.rail li.end .tn{background:var(--acid);border-color:#0b0b0d;}
.rail time{display:block;font-family:var(--fm);font-size:10.5px;letter-spacing:1.6px;text-transform:uppercase;color:var(--mid);margin:16px 0 6px;}
.rail b{display:block;font-weight:900;text-transform:uppercase;letter-spacing:-.02em;font-size:clamp(15px,1.4vw,19px);line-height:1.05;}
@media(max-width:1000px){
  .rail{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:34px;}
  .rail::before{display:none;}
}
@media(max-width:560px){
  .rail{grid-template-columns:1fr;row-gap:0;}
  .rail::before{display:block;left:27px;right:auto;top:10px;bottom:10px;width:2px;height:auto;}
  .rail li{display:grid;grid-template-columns:56px 1fr;column-gap:18px;align-items:center;padding:0 0 14px;}
  .rail li .tn{grid-row:1 / 3;}
  .rail time{margin:0 0 3px;align-self:end;}
  .rail b{align-self:start;}
}

/* ---------- stack ---------- */
.stk{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
.sk{display:flex;align-items:center;gap:14px;border:1px solid var(--line);padding:14px 16px;min-width:0;transition:border-color .3s;}
.sk:hover{border-color:var(--acid);}
.sk .ico{color:var(--acid);width:24px;height:24px;}
.sk span{font-size:14.5px;color:var(--ink);font-weight:600;min-width:0;}
.sk b{display:block;font-family:var(--fm);font-size:9.5px;letter-spacing:2px;text-transform:uppercase;color:var(--mid);font-weight:400;margin-bottom:3px;}
@media(max-width:900px){.stk{grid-template-columns:repeat(2,minmax(0,1fr));}}
@media(max-width:420px){.stk{grid-template-columns:1fr;}}
@media (prefers-reduced-motion:reduce){.fs,.ft,.tn{transition:none;}.fs:hover{transform:none;}}

/* full-width page edges (match the home page): keep big screenshots to a size that fits the screen */
.cs .ba .crop{max-width:calc((100svh - 190px) * 1.6);}
.cs .ba-bar{max-width:calc((100svh - 190px) * 1.6);}
.cs .shots-2.wide{max-width:1440px;}
.cs .devices{max-width:1600px;}

/* ---------- live site link in the hero ---------- */
.cs-hero-main{display:flex;flex-direction:column;align-items:flex-start;}
.cs-live{margin-top:clamp(22px,3vw,36px);display:inline-flex;align-items:center;gap:clamp(14px,1.6vw,22px);
  background:var(--acid);color:#08080a;padding:clamp(16px,1.8vw,22px) clamp(20px,2.2vw,30px);
  box-shadow:0 18px 40px -18px rgba(0,0,0,.7);transition:background .3s var(--ease),color .3s var(--ease),transform .3s var(--ease);
  animation:lnIn .8s var(--ease) both;animation-delay:1.05s;}
.cs-live-dot{width:10px;height:10px;border-radius:50%;background:#08080a;flex:none;animation:blip 1.6s steps(2) infinite;}
.cs-live-txt{display:flex;flex-direction:column;gap:4px;}
.cs-live-txt b{font-weight:900;text-transform:uppercase;letter-spacing:-.03em;font-size:clamp(22px,2.6vw,38px);line-height:.95;}
.cs-live-txt small{font-family:var(--fm);font-size:11px;letter-spacing:1.8px;text-transform:uppercase;opacity:.7;}
.cs-live-arrow{font-size:clamp(26px,3vw,42px);line-height:1;margin-left:clamp(6px,1.4vw,20px);transition:transform .3s var(--ease);}
.cs-live:hover{background:#08080a;color:var(--acid);transform:translateY(-2px);}
.cs-live:hover .cs-live-dot{background:var(--acid);}
.cs-live:hover .cs-live-arrow{transform:translate(4px,-4px);}
@media(max-width:520px){.cs-live{align-self:stretch;justify-content:space-between;}}
@media (prefers-reduced-motion:reduce){.cs-live,.cs-live-dot{animation:none;}}
