/* Software — "Blueprint" (Space blue, engineered) */
body{ background:#05060d; }

/* Hero */
.sw-hero{ position:relative; min-height:100svh; padding:calc(var(--nav-h) + 30px) 0 100px; overflow:hidden; display:flex; flex-direction:column; justify-content:center; }
.bp-grid{ position:absolute; inset:0; z-index:0;
  background-image:linear-gradient(rgba(42,143,224,.14) 1px,transparent 1px),linear-gradient(90deg,rgba(42,143,224,.14) 1px,transparent 1px),linear-gradient(rgba(42,143,224,.06) 1px,transparent 1px),linear-gradient(90deg,rgba(42,143,224,.06) 1px,transparent 1px);
  background-size:120px 120px,120px 120px,24px 24px,24px 24px;
  -webkit-mask:radial-gradient(80% 70% at 60% 40%,#000,transparent 80%); mask:radial-gradient(80% 70% at 60% 40%,#000,transparent 80%); }
.bp-marks{ position:absolute; inset:0; z-index:1; pointer-events:none; font-size:.62rem; color:rgba(169,217,255,.5); }
.bp-marks span{ position:absolute; }
.bp-marks .m1{ top:calc(var(--nav-h) + 12px); right:var(--gutter); }
.bp-marks .m2{ top:calc(var(--nav-h) + 30px); right:var(--gutter); }
.bp-marks .m3{ bottom:30px; right:var(--gutter); }
.sw-hero-grid{ position:relative; z-index:2; display:grid; grid-template-columns:1fr 1.05fr; gap:clamp(30px,5vw,80px); align-items:center; }
.sw-title{ margin:24px 0 28px; font-size:clamp(2.6rem,min(6.2vw,11svh),6.6rem); }
.sw-title > span{ display:block; }
.sw-ctas{ display:flex; gap:14px; flex-wrap:wrap; margin-top:32px; }
.sw-visual{ position:relative; height:min(66vh,600px); }
.sw-photo{ position:absolute; right:0; top:0; width:84%; height:82%; border-radius:26px; }
.sw-photo img{ transform:scale(1.15); }
.editor{ position:absolute; left:0; bottom:0; width:min(78%,520px); border-radius:18px; background:rgba(8,10,24,.95); border:1px solid rgba(169,217,255,.2); box-shadow:0 50px 100px -30px rgba(0,0,0,.8),0 0 0 1px rgba(42,143,224,.1); overflow:hidden; }
.ed-bar{ display:flex; align-items:center; gap:7px; padding:12px 14px; border-bottom:1px solid var(--line); }
.ed-bar i{ width:10px; height:10px; border-radius:50%; background:#2a2f4a; }
.ed-bar i:first-child{ background:#8d4fc6; } .ed-bar i:nth-child(2){ background:#5c63d9; } .ed-bar i:nth-child(3){ background:#2a8fe0; }
.ed-bar .mono{ margin-left:10px; font-size:.62rem; color:var(--fog); text-transform:none; letter-spacing:.04em; }
.ed-code{ margin:0; padding:16px 18px; min-height:250px; font-family:var(--f-mono); font-size:.78rem; line-height:1.75; color:#cfd6f3; white-space:pre-wrap; }
.ed-code .k{ color:#b991ff; } .ed-code .s{ color:#8fd3ff; } .ed-code .c{ color:#5f6488; } .ed-code .f{ color:#7fb4ff; } .ed-code .n{ color:#e7c8ff; }
.caret{ display:inline-block; width:7px; height:1.05em; background:#a9d9ff; vertical-align:text-bottom; animation:blink 1s steps(1) infinite; }
@keyframes blink{ 50%{ opacity:0; } }
.ed-status{ display:flex; justify-content:space-between; padding:9px 14px; border-top:1px solid var(--line); font-size:.6rem; color:var(--dim); }
.ed-tests{ color:#5fd38d; }
.sw-chips{ position:relative; z-index:2; display:flex; flex-wrap:wrap; gap:8px; margin-top:56px; font-size:.68rem; }
.sw-chips li{ padding:9px 14px; border:1px dashed rgba(169,217,255,.3); border-radius:8px; color:var(--fog); }
@media (max-width:960px){
  .bp-marks{ display:none; }
  .sw-hero-grid{ grid-template-columns:1fr; }
  .sw-visual{ height:440px; margin-top:20px; }
}

/* Sequence */
.sw-seq-stage{ position:relative; height:100vh; overflow:hidden; display:grid; place-items:center; }
.tiles{ position:absolute; width:min(64vmin,560px); aspect-ratio:1; display:grid; grid-template-columns:repeat(3,1fr); gap:10px; }
.tiles i{ border-radius:16px; background:linear-gradient(135deg,rgba(42,143,224,.35),rgba(92,99,217,.25)); border:1px solid rgba(169,217,255,.25); box-shadow:inset 0 0 40px rgba(42,143,224,.15); }
.tiles i:nth-child(odd){ background:linear-gradient(135deg,rgba(92,99,217,.3),rgba(141,79,198,.28)); }
.tiles i:nth-child(5){ background:var(--grad); box-shadow:0 0 80px rgba(92,99,217,.6); }
.sw-lines{ position:relative; z-index:3; width:100%; font-size:clamp(2.2rem,min(6vw,11svh),6.4rem); text-align:center; }
.sw-l{ position:absolute; left:0; right:0; top:0; font-size:inherit; padding:0 var(--gutter); text-shadow:0 10px 40px rgba(5,6,13,.8); }
.sw-l .serif{ color:var(--accent-2); }

/* Bento */
.sw-bento{ display:grid; grid-template-columns:repeat(3,1fr); grid-auto-rows:minmax(260px,auto); gap:16px; }
.tab-card{ position:relative; border-radius:20px; background:#0a0c1c; border:1px solid var(--line); overflow:hidden; display:flex; flex-direction:column; }
.tab-card.big{ grid-row:span 2; }
.tc-tab{ display:inline-flex; align-items:center; gap:8px; align-self:flex-start; margin:14px 0 0 14px; padding:7px 12px; border-radius:8px 8px 0 0; background:rgba(42,143,224,.1); border:1px solid var(--line); border-bottom:0; font-size:.62rem; text-transform:none; letter-spacing:.03em; color:var(--ice); }
.tc-tab i{ width:6px; height:6px; border-radius:50%; background:var(--accent); }
.tc-body{ padding:26px 26px 28px; border-top:1px solid var(--line); flex:1; display:flex; flex-direction:column; gap:12px; justify-content:flex-end; }
.tc-body p{ color:var(--fog); }
.tc-img{ flex:1; min-height:260px; border-radius:0; }
@media (max-width:980px){ .sw-bento{ grid-template-columns:1fr 1fr; } .tab-card.big{ grid-column:span 2; grid-row:auto; } }
@media (max-width:620px){ .sw-bento{ grid-template-columns:1fr; } .tab-card.big{ grid-column:auto; } }

/* Board */
.board{ display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.col{ border-radius:20px; padding:14px; background:repeating-linear-gradient(135deg,rgba(169,217,255,.03) 0 10px,transparent 10px 20px); border:1px dashed rgba(169,217,255,.18); min-height:380px; display:flex; flex-direction:column; gap:14px; }
.col-h{ display:flex; justify-content:space-between; align-items:center; padding:8px 6px; font-size:.66rem; color:var(--fog); }
.col-h b{ font-weight:500; color:var(--ice); }
.ticket{ border-radius:16px; padding:22px; background:#0d1024; border:1px solid rgba(169,217,255,.16); box-shadow:0 30px 60px -30px rgba(0,0,0,.8); display:flex; flex-direction:column; gap:10px; }
.ticket > .mono{ font-size:.62rem; color:var(--accent-2); }
.ticket p{ color:var(--fog); font-size:.95rem; }
.t-foot{ display:flex; gap:8px; align-items:center; margin-top:10px; padding-top:12px; border-top:1px solid var(--line); }
.t-foot .mono{ font-size:.58rem; color:var(--dim); text-transform:none; letter-spacing:.04em; }
.t-foot .dot{ width:7px; height:7px; border-radius:50%; background:#5fd38d; }
@media (max-width:980px){ .board{ grid-template-columns:1fr 1fr; } .col{ min-height:auto; } }
@media (max-width:600px){ .board{ grid-template-columns:1fr; } }

/* Outcomes terminal (light section) */
.sw-out{ background:linear-gradient(180deg,#f3f1ec,#e7ecf6); }
.sw-out-grid{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(30px,6vw,100px); align-items:center; }
.terminal{ border-radius:20px; background:#0a0c1c; color:var(--bone); overflow:hidden; box-shadow:0 60px 120px -40px rgba(23,21,47,.55); }
.term-lines{ padding:22px 24px 26px; font-family:var(--f-mono); font-size:.82rem; }
.term-lines li{ display:grid; grid-template-columns:22px auto 1fr; gap:10px 14px; padding:12px 0; border-bottom:1px dashed rgba(255,255,255,.08); align-items:baseline; }
.term-lines li:last-child{ border-bottom:0; }
.term-lines .ok{ color:#5fd38d; }
.term-lines b{ font-weight:500; color:#fff; white-space:nowrap; }
.term-lines span:last-child{ color:var(--fog); font-family:var(--f-body); font-size:.92rem; }
@media (max-width:900px){ .sw-out-grid{ grid-template-columns:1fr; } .term-lines li{ grid-template-columns:22px 1fr; } .term-lines span:last-child{ grid-column:2; } }
