:root{
  --ink: #15171b;
  --ink-2: #1c1f24;
  --paper: #ece7db;
  --paper-dim: #d8d2c2;
  --stamp: #a32219;
  --stamp-dim: #7c1a13;
  --amber: #b98426;
  --line: #3a3d43;
  --line-paper: #c3bca8;
  --text-dim: #9a9da3;
  --text-muted: #8b8e94;
  --radius: 2px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--ink);
  color:var(--paper);
  font-family:'IBM Plex Sans', sans-serif;
  line-height:1.5;
  overflow-x:hidden;
}
.mono{font-family:'IBM Plex Mono', monospace;}
.display{font-family:'Oswald', sans-serif;}
a{color:inherit;text-decoration:none;}
::selection{background:var(--stamp); color:var(--paper);}
:focus-visible{outline:2px solid var(--amber); outline-offset:3px;}

.wrap{max-width:1180px; margin:0 auto; padding:0 0px;}

/* NAV */
nav{
  position:fixed; top:0; left:0; right:0; z-index:100;
  background:rgba(21,23,27,0.94);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
nav .wrap{display:flex; align-items:center; justify-content:space-between; height:64px;}
.brand{display:flex; align-items:center; gap:10px; font-family:'Oswald',sans-serif; font-weight:600; letter-spacing:0.08em; font-size:15px;}
.brand .dot{width:8px; height:8px; background:var(--stamp); flex-shrink:0;}
.brand small{color:var(--text-muted); font-weight:400; font-size:11px; letter-spacing:0.15em; margin-left:2px;}

.navlinks{display:none; align-items:center; gap:34px; font-size:13px; letter-spacing:0.04em;}
@media(min-width:860px){.navlinks{display:flex;}}
.navlinks a{color:var(--paper-dim); transition:color .2s; position:relative; padding:4px 0;}
.navlinks a:hover{color:var(--paper);}
.navlinks a.active{color:var(--paper);}
.navlinks a.active::after{content:''; position:absolute; left:0; right:0; bottom:-19px; height:2px; background:var(--stamp);}

.nav-right{display:flex; align-items:center; gap:14px;}

/* mobile burger */
.burger{
  display:flex; flex-direction:column; justify-content:center; gap:5px;
  width:36px; height:36px; background:transparent; border:1px solid var(--line);
  cursor:pointer; align-items:center;
}
@media(min-width:860px){.burger{display:none;}}
.burger span{width:16px; height:1.5px; background:var(--paper-dim); transition:all .2s;}
.burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg);}
.burger.open span:nth-child(2){opacity:0;}
.burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg);}

.mobile-panel{
  display:none; position:fixed; top:64px; left:0; right:0; bottom:0; z-index:99;
  background:var(--ink); border-top:1px solid var(--line);
  padding:28px 32px; flex-direction:column; gap:2px;
}
.mobile-panel.open{display:flex;}
.mobile-panel a{
  padding:16px 4px; font-size:16px; font-family:'Oswald',sans-serif; font-weight:500;
  color:var(--paper-dim); border-bottom:1px solid var(--line);
}
.mobile-panel a.active{color:var(--stamp);}
.mobile-panel .btn{margin-top:20px; justify-content:center;}
body.nav-locked{overflow:hidden;}

.btn{
  display:inline-flex; align-items:center; gap:8px;
  padding:11px 20px; font-size:12.5px; letter-spacing:0.08em; text-transform:uppercase;
  font-weight:600; font-family:'IBM Plex Sans',sans-serif;
  border:1px solid var(--stamp); color:var(--paper); background:transparent;
  cursor:pointer; transition:all .2s; white-space:nowrap;
}
.btn:hover{background:var(--stamp); }
.btn.solid{background:var(--stamp); border-color:var(--stamp);}
.btn.solid:hover{background:var(--stamp-dim); border-color:var(--stamp-dim);}
.btn.ghost{border-color:var(--line);}
.btn.ghost:hover{border-color:var(--paper-dim); background:transparent;}

/* HERO */
header.hero{padding:150px 0 100px; position:relative; overflow:hidden;}
.hero-grid{display:grid; grid-template-columns:1fr; gap:56px; align-items:center;}
@media(min-width:900px){.hero-grid{grid-template-columns:1.1fr 0.9fr;}}
.eyebrow{
  display:inline-flex; align-items:center; gap:10px;
  font-size:11.5px; letter-spacing:0.18em; text-transform:uppercase;
  color:var(--stamp); font-family:'IBM Plex Mono',monospace; font-weight:500;
  margin-bottom:22px;
}
.eyebrow::before{content:''; width:22px; height:1px; background:var(--stamp);}
h1{
  font-family:'Oswald', sans-serif; font-weight:600; letter-spacing:-0.01em;
  font-size:clamp(38px, 5.6vw, 66px); line-height:1.04; color:var(--paper); margin-bottom:26px;
}
h1 em{font-style:normal; color:var(--stamp);}
.lede{font-size:17px; color:var(--text-dim); max-width:480px; margin-bottom:36px; line-height:1.65;}
.hero-cta{display:flex; flex-wrap:wrap; gap:14px; margin-bottom:44px;}
.hero-meta{display:flex; gap:28px; flex-wrap:wrap; font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--text-muted); letter-spacing:0.04em;}
.hero-meta span{color:var(--paper-dim);}

/* page header banner (used on subpages instead of full hero) */
.page-header{padding:150px 0 64px; border-bottom:1px solid var(--line);}
.page-header h1{font-size:clamp(32px,4.6vw,52px); margin-bottom:16px;}
.page-header p{color:var(--text-dim); font-size:15.5px; max-width:600px;}

/* case file card */
.casefile{
  background:var(--paper); color:var(--ink); border-radius:var(--radius);
  padding:30px 28px 28px; position:relative;
  box-shadow:0 30px 70px -20px rgba(0,0,0,0.6);
  transform:rotate(-0.6deg);
}
.casefile-top{display:flex; justify-content:space-between; align-items:flex-start; border-bottom:1px solid var(--line-paper); padding-bottom:16px; margin-bottom:18px;}
.casefile-top .mono{font-size:10.5px; letter-spacing:0.1em; color:#6b6552; text-transform:uppercase;}
.casefile-top .num{font-family:'Oswald',sans-serif; font-size:13px; font-weight:600; letter-spacing:0.04em; margin-top:4px; color:var(--ink);}
.redact{
  height:13px; background:#1b1d21; border-radius:1px; margin:9px 0;
  position:relative; overflow:hidden; cursor:default;
}
.redact::after{
  content:attr(data-text); position:absolute; inset:0; display:flex; align-items:center;
  padding:0 6px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:#1b1d21;
  opacity:0; transition:opacity .35s; white-space:nowrap; overflow:hidden;
}
.casefile:hover .redact::after{opacity:1; color:#4a4436;}
.redact.w1{width:92%;} .redact.w2{width:74%;} .redact.w3{width:100%;} .redact.w4{width:58%;} .redact.w5{width:83%;}

.stamp-seal{
  position:absolute; top:-22px; right:-14px;
  border:3px solid var(--stamp); color:var(--stamp); border-radius:50%;
  width:118px; height:118px; display:flex; align-items:center; justify-content:center;
  text-align:center; font-family:'Oswald',sans-serif; font-weight:700; font-size:12.5px;
  letter-spacing:0.06em; line-height:1.25; text-transform:uppercase;
  transform:rotate(14deg) scale(0);
  animation:stampIn .5s cubic-bezier(.2,1.4,.4,1) 0.7s forwards;
  background:rgba(236,231,219,0.4);
  mix-blend-mode:multiply;
}
@keyframes stampIn{
  0%{transform:rotate(14deg) scale(2.2); opacity:0;}
  60%{opacity:1;}
  100%{transform:rotate(14deg) scale(1); opacity:1;}
}
@media(prefers-reduced-motion:reduce){
  .stamp-seal{animation:none; transform:rotate(14deg) scale(1);}
}

section{padding:46px 0;}
.section-head{margin-bottom:56px; max-width:640px;}
.section-head .eyebrow{margin-bottom:14px;}
.section-head h2{font-family:'Oswald',sans-serif; font-size:clamp(28px,3.4vw,40px); font-weight:600; color:var(--paper); margin-bottom:14px;}
.section-head p{color:var(--text-dim); font-size:15.5px; max-width:560px;}

/* SERVICES */
.svc-grid{display:grid; grid-template-columns:1fr; gap:16px;}
@media(min-width:700px){.svc-grid{grid-template-columns:repeat(2,1fr);}}
@media(min-width:1050px){.svc-grid{grid-template-columns:repeat(3,1fr);}}

.svc-card{
  position:relative; background:var(--ink-2); border:1px solid var(--line);
  padding:30px 26px 28px; overflow:hidden;
  transition:border-color .2s, transform .2s, box-shadow .2s;
}
.svc-card::before{
  content:attr(data-num); position:absolute; top:-16px; right:-4px; z-index:0;
  font-family:'Oswald',sans-serif; font-size:92px; font-weight:700;
  color:rgba(240,236,228,0.035); line-height:1; letter-spacing:-0.02em; pointer-events:none;
}
.svc-card::after{
  content:''; position:absolute; left:0; right:0; bottom:0; height:2px;
  background:var(--stamp); transform:scaleX(0); transform-origin:left; transition:transform .25s ease;
}
.svc-card:hover{border-color:var(--paper-dim); transform:translateY(-4px); box-shadow:0 24px 44px -26px rgba(0,0,0,0.65);}
.svc-card:hover::after{transform:scaleX(1);}
.svc-card-body{position:relative; z-index:1;}

.svc-icon{
  width:42px; height:42px; display:flex; align-items:center; justify-content:center;
  border:1px solid var(--line); color:var(--stamp); margin-bottom:20px; transition:border-color .2s;
}
.svc-card:hover .svc-icon{border-color:var(--stamp);}
.svc-icon svg{width:20px; height:20px; display:block;}

.svc-tag{font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:var(--stamp); letter-spacing:0.1em; margin-bottom:14px; display:block;}
.svc-card h3{font-family:'Oswald',sans-serif; font-size:19px; font-weight:600; color:var(--paper); margin-bottom:12px;}
.svc-card p{font-size:14px; color:var(--text-dim); line-height:1.6;}

.svc-more{margin-top:40px; display:flex; justify-content:flex-start;}

/* VALKYRIE PRODUCT */
.product-band{background:#383838e5; border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
.product-grid{display:grid; grid-template-columns:1fr; gap:48px; align-items:start;}
@media(min-width:960px){.product-grid{grid-template-columns:0.95fr 1.05fr;}}
.product-kicker{display:flex; align-items:center; gap:12px; margin-bottom:18px;}
.product-kicker .swatch{width:10px; height:10px; background:var(--amber);}
.product-feat{display:grid; grid-template-columns:1fr; gap:22px; margin:32px 0 34px;}
@media(min-width:560px){.product-feat{grid-template-columns:1fr 1fr;}}
.pfeat-item{border-left:2px solid #fff; padding-left:16px;}
.pfeat-item h4{font-family:'Oswald',sans-serif; font-size:14.5px; font-weight:600; color:var(--paper); margin-bottom:6px; letter-spacing:0.01em;}
.pfeat-item p{font-size:13.5px; color:#d0d0d0; line-height:1.55;}

.license-box{
  border:1px solid var(--stamp); background:rgba(163,34,25,0.06);
  padding:22px 24px; margin-top:8px;
}
.license-box .mono.head{color:var(--stamp); font-size:11px; letter-spacing:0.12em; margin-bottom:10px; text-transform:uppercase;}
.license-box ul{list-style:none; display:grid; gap:9px;}
.license-box li{font-size:13.5px; color:var(--paper-dim); padding-left:16px; position:relative; line-height:1.5;}
.license-box li::before{content:'—'; position:absolute; left:0; color:var(--stamp);}

/* tier cards (valkyrie page) */
.tier-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:20px;}
@media(min-width:800px){.tier-grid{grid-template-columns:repeat(3,1fr);}}
.tier-card{background:var(--ink); padding:30px 26px; display:flex; flex-direction:column; gap:16px;}
.tier-card.featured{background:var(--ink-2); position:relative;}
.tier-card.featured::before{content:'MOST REQUESTED'; position:absolute; top:0; right:0; background:var(--stamp); color:var(--paper); font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:0.08em; padding:5px 10px;}
.tier-name{font-family:'Oswald',sans-serif; font-size:17px; font-weight:600;}
.tier-desc{font-size:13px; color:var(--text-dim); line-height:1.55;}
.tier-list{list-style:none; display:grid; gap:9px; margin-top:4px;}
.tier-list li{font-size:13px; color:var(--paper-dim); padding-left:16px; position:relative;}
.tier-list li::before{content:'—'; position:absolute; left:0; color:var(--text-muted);}

/* console mockup */
.console{
  background:#101216; border:1px solid var(--line); border-radius:var(--radius);
  box-shadow:0 30px 70px -24px rgba(0,0,0,0.7);
  overflow:hidden;
}
.console-bar{
  display:flex; align-items:center; justify-content:space-between;
  padding:12px 16px; border-bottom:1px solid var(--line); background:#0c0d10;
}
.console-bar .mono{font-size:11px; color:var(--text-muted); letter-spacing:0.06em;}
.console-dots{display:flex; gap:6px;}
.console-dots span{width:8px; height:8px; border-radius:50%; background:#2c2f36;}
.console-status{display:flex; align-items:center; gap:6px; font-family:'IBM Plex Mono',monospace; font-size:10.5px; color:#4caf7d;}
.console-status .pulse{width:6px; height:6px; border-radius:50%; background:#4caf7d; animation:pulse 1.8s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:0.35;}}
@media(prefers-reduced-motion:reduce){.console-status .pulse{animation:none;}}

.sess-table{width:100%; border-collapse:collapse; font-family:'IBM Plex Mono',monospace; font-size:11.5px;}
.sess-table th{
  text-align:left; padding:10px 14px; color:var(--text-muted); font-weight:500;
  border-bottom:1px solid var(--line); font-size:10px; letter-spacing:0.06em; text-transform:uppercase;
}
.sess-table td{padding:11px 14px; border-bottom:1px solid #1c1f24; color:var(--paper-dim); white-space:nowrap;}
.sess-table tr:last-child td{border-bottom:none;}
.os-tag{display:inline-flex; align-items:center; gap:6px;}
.os-dot{width:6px; height:6px; border-radius:50%;}
.os-dot.mac{background:#8b8e94;} .os-dot.linux{background:#e5a84b;} .os-dot.win{background:#4fa3e0;}
.tag-ok{color:#4caf7d;}
.console-foot{
  padding:10px 16px; border-top:1px solid var(--line); font-family:'IBM Plex Mono',monospace;
  font-size:10.5px; color:var(--text-muted); background:#0c0d10;
}

/* METHODOLOGY */
.method{position:relative;}
.method-list{border-top:1px solid var(--line);}
.method-item{
  display:grid; grid-template-columns:70px 1fr; gap:24px;
  padding:26px 0; border-bottom:1px solid var(--line);
  align-items:baseline;
}
@media(min-width:700px){.method-item{grid-template-columns:90px 200px 1fr;}}
.method-num{font-family:'Oswald',sans-serif; font-size:15px; color:var(--stamp); font-weight:600;}
.method-title{font-family:'Oswald',sans-serif; font-size:16.5px; color:var(--paper); font-weight:500;}
.method-desc{font-size:14px; color:var(--text-dim); max-width:560px;}

/* CREDENTIALS */
.cred-row{display:flex; flex-wrap:wrap; gap:12px; margin-bottom:64px;}
.cred-chip{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.05em;
  padding:9px 16px; border:1px solid var(--line); color:var(--paper-dim);
}
.stat-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border:1px solid var(--line);}
@media(min-width:700px){.stat-grid{grid-template-columns:repeat(3,1fr);}}
.stat{background:var(--ink); padding:30px 26px; cursor:default;}
.stat-num{font-family:'Oswald',sans-serif; font-size:38px; font-weight:600; color:var(--paper); position:relative; display:inline-block;}
.stat-bar{
  display:inline-block; height:30px; width:70px; background:#1b1d21; vertical-align:middle; position:relative; overflow:hidden;
}
.stat-bar span{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'Oswald',sans-serif; font-size:24px; font-weight:600; color:var(--stamp); opacity:0; transition:opacity .3s;}
.stat:hover .stat-bar span{opacity:1;}
.stat-label{font-family:'IBM Plex Mono',monospace; font-size:11.5px; color:var(--text-muted); letter-spacing:0.05em; margin-top:10px; text-transform:uppercase;}

/* TESTIMONIALS */
.quote-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(min-width:800px){.quote-grid{grid-template-columns:repeat(3,1fr);}}
.quote-card{background:var(--ink); padding:30px 26px; display:flex; flex-direction:column; justify-content:space-between; gap:22px;}
.quote-card p{font-size:14.5px; color:var(--paper-dim); line-height:1.65; font-style:italic;}
.quote-src{display:flex; align-items:center; gap:10px;}
.quote-src .blackbar{height:11px; width:80px; background:#2a2d33;}
.quote-src .mono{font-size:11px; color:var(--text-muted); letter-spacing:0.05em;}

/* CTA / CONTACT */
.cta-block{
  background:var(--paper); color:var(--ink); border-radius:var(--radius);
  padding:64px 48px; position:relative; overflow:hidden;
}
.cta-block h2{font-family:'Oswald',sans-serif; font-size:clamp(26px,3.6vw,38px); font-weight:600; margin-bottom:16px; max-width:600px;}
.cta-block p{color:#5c5747; max-width:480px; margin-bottom:30px; font-size:15px;}
.cta-block .btn.solid{border-color:var(--stamp);}
.cta-fine{font-family:'IBM Plex Mono',monospace; font-size:11px; color:#7a745f; margin-top:28px; max-width:520px; line-height:1.6;}

/* contact page extras */
.contact-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:56px;}
@media(min-width:760px){.contact-grid{grid-template-columns:repeat(3,1fr);}}
.contact-card{background:var(--ink); padding:28px 26px;}
.contact-card .mono.label{color:var(--stamp); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:10px; display:block;}
.contact-card p{font-size:14px; color:var(--paper-dim); line-height:1.6;}

/* SUB-NAV (in-page section pills) */
.subnav{
  position:sticky; top:64px; z-index:50; background:var(--ink);
  border-bottom:1px solid var(--line); padding:14px 0;
}
.subnav .wrap{display:flex; gap:10px; flex-wrap:wrap;}
.subnav a{
  font-family:'IBM Plex Mono',monospace; font-size:11.5px; letter-spacing:0.04em;
  padding:7px 14px; border:1px solid var(--line); color:var(--text-dim); transition:all .2s;
}
.subnav a:hover{color:var(--paper); border-color:var(--paper-dim);}

/* SERVICE DETAIL ROWS */
.svc-detail{border-top:1px solid var(--line); padding:56px 0; scroll-margin-top:130px;}
.svc-detail:last-child{border-bottom:1px solid var(--line);}
.svc-detail-grid{display:grid; grid-template-columns:1fr; gap:32px;}
@media(min-width:860px){.svc-detail-grid{grid-template-columns:280px 1fr;}}
.svc-detail-head .svc-tag{margin-bottom:10px;}
.svc-detail-head h3{font-family:'Oswald',sans-serif; font-size:26px; font-weight:600; color:var(--paper); margin-bottom:14px;}
.svc-meta-row{display:flex; flex-direction:column; gap:8px; margin-top:18px;}
.svc-meta-row div{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-muted);}
.svc-meta-row div strong{color:var(--paper-dim); font-weight:500;}
.svc-detail-body p{color:var(--text-dim); font-size:15px; line-height:1.7; max-width:640px; margin-bottom:22px;}
.svc-deliv{list-style:none; display:grid; gap:10px; max-width:640px;}
.svc-deliv li{font-size:14px; color:var(--paper-dim); padding-left:18px; position:relative; line-height:1.5;}
.svc-deliv li::before{content:'—'; position:absolute; left:0; color:var(--stamp);}

/* FAQ */
.faq{border-top:1px solid var(--line);}
.faq-item{border-bottom:1px solid var(--line);}
.faq-item summary{
  list-style:none; cursor:pointer; padding:22px 0; display:flex; align-items:center; justify-content:space-between; gap:16px;
  font-family:'Oswald',sans-serif; font-size:16px; font-weight:500; color:var(--paper);
}
.faq-item summary::-webkit-details-marker{display:none;}
.faq-item summary::after{content:'+'; font-family:'IBM Plex Mono',monospace; font-size:20px; color:var(--stamp); flex-shrink:0; transition:transform .2s;}
.faq-item[open] summary::after{transform:rotate(45deg);}
.faq-item .faq-a{padding:0 0 24px; max-width:680px; color:var(--text-dim); font-size:14.5px; line-height:1.7;}

/* DEPLOYMENT / COMPARE */
.deploy-grid{display:grid; grid-template-columns:1fr; gap:1px; background:var(--line); border:1px solid var(--line);}
@media(min-width:760px){.deploy-grid{grid-template-columns:repeat(2,1fr);}}
.deploy-card{background:var(--ink); padding:30px 28px;}
.deploy-card .mono.label{color:var(--amber); font-size:10.5px; letter-spacing:0.1em; text-transform:uppercase; margin-bottom:10px; display:block;}
.deploy-card h4{font-family:'Oswald',sans-serif; font-size:18px; font-weight:600; margin-bottom:10px;}
.deploy-card p{font-size:13.5px; color:var(--text-dim); line-height:1.6; margin-bottom:14px;}

.info-table{width:100%; border-collapse:collapse; margin-top:8px;}
.info-table th, .info-table td{text-align:left; padding:13px 16px; border-bottom:1px solid var(--line); font-size:13.5px;}
.info-table th{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.06em; text-transform:uppercase; color:var(--text-muted); font-weight:500;}
.info-table td{color:var(--paper-dim);}
.info-table td.yes{color:#4caf7d; font-family:'IBM Plex Mono',monospace;}
.info-table td.no{color:#ff0d01; font-family:'IBM Plex Mono',monospace;}
.info-table tr:last-child td, .info-table tr:last-child th{border-bottom:none;}

/* LANGUAGE SWITCHER */
.langsw{display:flex; align-items:center; gap:2px; border:1px solid var(--line); padding:2px;}
.langsw button{
  background:transparent; border:none; color:var(--text-muted); cursor:pointer;
  font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.05em;
  padding:6px 9px; transition:all .15s;
}
.langsw button:hover{color:var(--paper-dim);}
.langsw button.active{background:var(--stamp); color:var(--paper);}
.mobile-panel .langsw{margin-top:22px; align-self:flex-start;}
.mobile-panel .langsw button{padding:9px 14px; font-size:12px;}

footer{padding:56px 0 40px; border-top:1px solid var(--line);}
.foot-grid{display:flex; flex-wrap:wrap; justify-content:space-between; gap:24px; align-items:center;}
.foot-links{display:flex; gap:28px; font-size:13px; color:var(--text-dim); flex-wrap:wrap;}
.foot-links a:hover{color:var(--paper);}
.foot-copy{font-family:'IBM Plex Mono',monospace; font-size:11px; color:var(--text-muted);}
