:root{
  --ink:#0A0F1C;
  --panel:#121B2E;
  --panel-2:#17223A;
  --paper:#F6F7F9;
  --paper-alt:#EDF0F5;
  --paper-panel:#FFFFFF;
  --text-light:#E7EBF3;
  --text-dark:#131A26;
  --muted-on-dark:#8C96AC;
  --muted-on-light:#5B6478;
  --teal:#34C7A6;
  --teal-dim:#1F8F76;
  --gold:#D8A94A;
  --line-dark:rgba(231,235,243,0.12);
  --line-light:rgba(19,26,38,0.12);
  --radius:2px;
  --maxw:1180px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important;}
}

body{
  margin:0;
  font-family:'Inter',sans-serif;
  background:var(--paper);
  color:var(--text-dark);
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,.display{
  font-family:'Space Grotesk',sans-serif;
  font-weight:600;
  letter-spacing:-0.01em;
  margin:0;
}
.mono{font-family:'IBM Plex Mono',monospace;}
a{color:inherit;}

.wrap{max-width:var(--maxw); margin:0 auto; padding:0 28px;}
.wrap.narrow{max-width:760px;}

/* ===== NAV ===== */
.site-nav{
  position:sticky; top:0; z-index:60;
  background:rgba(10,15,28,0.94);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line-dark);
  color:var(--text-light);
}
.nav-inner{
  display:flex; align-items:center; justify-content:space-between;
  padding:15px 28px; max-width:var(--maxw); margin:0 auto;
}
.brand{display:flex; flex-direction:column; line-height:1.1; text-decoration:none; color:var(--text-light);}
.brand-mark{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:15px; letter-spacing:0.02em;}
.brand-sub{font-family:'IBM Plex Mono',monospace; font-size:9.5px; letter-spacing:0.08em; color:var(--teal); text-transform:uppercase; margin-top:2px;}

nav.links{display:flex; align-items:center; gap:20px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.04em; text-transform:uppercase;}
nav.links a{text-decoration:none; color:var(--muted-on-dark); position:relative; padding:6px 0; transition:color .2s ease;}
nav.links a:hover, nav.links a:focus-visible{color:var(--text-light);}
nav.links a.nav-cta{color:var(--teal); border:1px solid var(--teal-dim); padding:7px 12px; border-radius:2px;}
nav.links a.nav-cta:hover{background:var(--teal); color:var(--ink);}

.menu-toggle{
  display:none; flex-direction:column; justify-content:center; gap:4px;
  background:none; border:none; cursor:pointer; padding:6px;
}
.menu-toggle span{width:20px; height:2px; background:var(--text-light); display:block;}

/* ===== SECTION BASE ===== */
section{padding:88px 0;}
.dark-section{background:var(--ink); color:var(--text-light);}
.dark-section .muted{color:var(--muted-on-dark);}
.paper-alt{background:var(--paper-alt);}
.light-h{color:var(--text-light);}
.light-p{color:var(--muted-on-dark);}

.kicker{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.14em;
  text-transform:uppercase; color:var(--teal-dim); display:block; margin-bottom:12px;
}
.kicker.accent-gold{color:var(--gold);}
section h2{font-size:clamp(24px,3.2vw,36px); max-width:20ch; line-height:1.15;}
.section-intro{max-width:62ch; color:var(--muted-on-light); font-size:16px; margin-top:18px;}
.dark-section .section-intro{color:var(--muted-on-dark);}

/* ===== BUTTONS ===== */
.btn{
  font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:0.05em; text-transform:uppercase;
  text-decoration:none; padding:14px 22px; border-radius:var(--radius);
  display:inline-flex; align-items:center; gap:8px; margin-top:28px;
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease;
  border:1px solid transparent; cursor:pointer;
}
.btn-primary{background:var(--teal); color:var(--ink); font-weight:600;}
.btn-primary:hover{background:#43d6b3; transform:translateY(-1px);}
.btn-ghost{border-color:var(--line-dark); color:var(--text-light);}
.btn-ghost:hover{border-color:var(--teal); color:var(--teal); transform:translateY(-1px);}
.btn-ghost-light{border:1px solid var(--line-light); color:var(--text-dark); display:flex; flex-direction:column; gap:4px; align-items:flex-start;}
.btn-ghost-light:hover{border-color:var(--teal-dim);}
.btn-secondary{border:1px solid var(--teal-dim); color:var(--teal-dim); background:transparent;}
.btn-secondary:hover{background:var(--teal-dim); color:#fff;}
.tag-note{font-size:9.5px; letter-spacing:0.04em; color:var(--gold); text-transform:none; opacity:0.85;}

.text-link{
  display:inline-block; margin-top:18px; font-family:'IBM Plex Mono',monospace; font-size:12.5px;
  color:var(--teal); text-decoration:none; border-bottom:1px solid transparent; transition:border-color .2s ease;
}
.text-link:hover{border-color:var(--teal);}

/* ===== HERO ===== */
.hero{
  padding:100px 0 84px;
  background:
    radial-gradient(circle at 85% 12%, rgba(52,199,166,0.14), transparent 45%),
    radial-gradient(circle at 8% 92%, rgba(216,169,74,0.08), transparent 40%),
    var(--ink);
}
.hero-grid{display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;}
.eyebrow{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.14em; text-transform:uppercase;
  color:var(--teal); display:flex; align-items:center; gap:10px; margin-bottom:22px;
}
.eyebrow::before{
  content:""; width:7px; height:7px; background:var(--teal); border-radius:50%;
  box-shadow:0 0 0 0 rgba(52,199,166,0.6); animation:pulse 2.4s infinite;
}
@keyframes pulse{
  0%{box-shadow:0 0 0 0 rgba(52,199,166,0.55);}
  70%{box-shadow:0 0 0 8px rgba(52,199,166,0);}
  100%{box-shadow:0 0 0 0 rgba(52,199,166,0);}
}
.hero h1{font-size:clamp(32px,4vw,50px); line-height:1.1; color:var(--text-light); max-width:15ch;}
.hero p.lede{margin-top:22px; font-size:17px; color:var(--muted-on-dark); max-width:52ch;}
.hero-ctas{display:flex; gap:14px; margin-top:8px; flex-wrap:wrap;}

.console{
  background:var(--panel); border:1px solid var(--line-dark); border-radius:4px; padding:22px;
  box-shadow:0 30px 60px -20px rgba(0,0,0,0.55);
}
.console-head{
  display:flex; justify-content:space-between; align-items:center;
  padding-bottom:16px; margin-bottom:16px; border-bottom:1px solid var(--line-dark);
}
.dots{display:flex; gap:6px;}
.dots span{width:7px; height:7px; border-radius:50%; background:var(--line-dark); display:inline-block;}
.console-status{
  font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.06em; color:var(--teal);
  display:flex; align-items:center; gap:8px;
}
.console-status .dot{width:8px; height:8px; border-radius:50%; background:var(--teal); animation:pulse 2.4s infinite;}
.console-list{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:14px;}
.console-list li{display:flex; flex-direction:column; gap:3px; padding-bottom:14px; border-bottom:1px solid var(--line-dark);}
.console-list li:last-child{border-bottom:none; padding-bottom:0;}
.console-list li span{font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:0.08em; text-transform:uppercase; color:var(--muted-on-dark);}
.console-list li strong{font-size:14px; font-weight:500; color:var(--text-light);}

/* ===== TRUST STRIP ===== */
.trust-strip{padding:0; background:var(--panel-2); border-bottom:1px solid var(--line-dark); border-top:1px solid var(--line-dark);}
.trust-grid{
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:var(--line-dark);
}
.trust-item{
  background:var(--ink); padding:28px 24px; display:flex; flex-direction:column; gap:6px; color:var(--text-light);
}
.trust-item .num{font-family:'Space Grotesk',sans-serif; font-weight:700; font-size:26px; color:var(--teal);}
.trust-item .label{font-family:'IBM Plex Mono',monospace; font-size:10.5px; letter-spacing:0.05em; color:var(--muted-on-dark); text-transform:uppercase;}

/* ===== CHECKLIST ===== */
.checklist{list-style:none; margin:28px 0 0; padding:0; display:grid; gap:12px;}
.checklist.two-col{grid-template-columns:1fr 1fr; gap:12px 28px;}
.checklist li{
  padding-left:22px; position:relative; font-size:15px; color:var(--text-dark);
  border-bottom:1px solid var(--line-light); padding-bottom:12px;
}
.checklist li::before{content:"—"; position:absolute; left:0; color:var(--teal-dim); font-family:'IBM Plex Mono',monospace;}
.checklist.light-list li{color:var(--text-light); border-bottom:1px solid var(--line-dark);}
.checklist.light-list li::before{color:var(--teal);}

/* ===== FEATURE GRID (NetSuite as a Service) ===== */
.feature-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line-dark); border:1px solid var(--line-dark); margin:44px 0 36px;}
.feature{background:var(--panel); padding:26px 22px;}
.feature .f-num{font-size:11px; color:var(--teal); letter-spacing:0.08em;}
.feature h3{font-size:16.5px; color:var(--text-light); margin-top:12px; font-weight:600;}
.feature p{margin-top:10px; font-size:13.5px; color:var(--muted-on-dark);}

/* ===== SERVICES ===== */
.service-cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px; margin-top:40px;}
.service-card{
  background:var(--paper-panel); border:1px solid var(--line-light); padding:30px 26px;
  display:flex; flex-direction:column;
}
.sc-index{font-size:11px; letter-spacing:0.1em; color:var(--teal-dim); text-transform:uppercase;}
.service-card h3{font-size:20px; margin-top:12px;}
.service-card > p{font-size:14.5px; color:var(--muted-on-light); margin-top:10px;}
.service-card ul{list-style:none; margin:20px 0 0; padding:0; display:flex; flex-direction:column; gap:9px; flex:1;}
.service-card ul li{
  font-size:13.5px; padding-left:16px; position:relative; color:var(--text-dark);
}
.service-card ul li::before{content:"▸"; position:absolute; left:0; color:var(--teal-dim);}

/* ===== CASE STUDIES ===== */
.case-grid{display:grid; grid-template-columns:1fr 1fr; gap:1px; background:var(--line-light); border:1px solid var(--line-light); margin-top:40px;}
.case-card{background:var(--paper-panel); padding:30px 28px;}
.case-card h3{font-size:19px; margin-bottom:20px;}
.case-steps{margin:0; display:flex; flex-direction:column; gap:16px;}
.case-steps > div{padding-left:16px; border-left:2px solid var(--line-light); padding-bottom:4px;}
.case-steps dt{font-size:10.5px; letter-spacing:0.06em; color:var(--teal-dim); text-transform:uppercase; margin-bottom:5px;}
.case-steps dd{margin:0; font-size:14px; color:var(--text-dark); line-height:1.55;}

/* ===== ABOUT / STORY ===== */
.story p{font-size:16px; color:var(--muted-on-dark); margin:0 0 20px; line-height:1.75;}
.story p:last-child{margin-bottom:0; color:var(--text-light);}
.story strong{color:var(--gold); font-weight:600;}

/* ===== SKILLS ===== */
.skill-columns{display:grid; grid-template-columns:repeat(3,1fr); gap:36px 32px; margin-top:44px;}
.skill-col h3{font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--teal-dim); margin-bottom:14px; padding-bottom:10px; border-bottom:1px solid var(--line-light);}
.skill-col ul{list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:8px;}
.skill-col ul li{font-size:14px; color:var(--text-dark);}

/* ===== TIMELINE ===== */
.timeline{margin-top:44px;}
.tl-node{position:relative; padding-left:44px; padding-bottom:46px;}
.tl-node::before{
  content:""; position:absolute; left:9px; top:26px; bottom:0; width:1px;
  background-image:linear-gradient(to bottom, var(--line-light) 0 6px, transparent 6px 12px);
  background-size:1px 12px;
}
.tl-node:last-child::before{display:none;}
.node-box{position:absolute; left:0; top:2px; width:19px; height:19px; background:var(--paper-panel); border:1px solid var(--teal-dim); border-radius:3px;}
.tl-node.current .node-box{background:var(--teal); border-color:var(--teal);}
.tl-node.current .node-box::after{content:""; position:absolute; inset:5px; background:var(--paper-alt); border-radius:1px;}
.tl-head{display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 16px; margin-bottom:4px;}
.tl-date{font-size:11.5px; letter-spacing:0.04em; color:var(--teal-dim); white-space:nowrap;}
.tl-role{font-family:'Space Grotesk',sans-serif; font-weight:600; font-size:18px; color:var(--text-dark);}
.tl-org{font-family:'IBM Plex Mono',monospace; font-size:12.5px; color:var(--muted-on-light); margin-bottom:12px;}
.tl-bullets{margin:0; padding-left:18px; color:var(--text-dark); font-size:14.5px;}
.tl-bullets li{margin-bottom:6px;}

/* ===== RESUME ===== */
.resume-actions{display:flex; gap:16px; flex-wrap:wrap; margin-top:8px;}
.resume-summary{margin-top:48px; padding-top:36px; border-top:1px solid var(--line-light);}
.resume-summary h3{font-size:11.5px; letter-spacing:0.08em; text-transform:uppercase; color:var(--teal-dim); margin-bottom:10px; margin-top:26px;}
.resume-summary h3:first-child{margin-top:0;}
.resume-summary p{font-size:14.5px; color:var(--muted-on-light); margin:0;}

/* ===== FINAL CTA ===== */
.final-cta{text-align:left; padding:88px 0;}
.final-cta h2{max-width:16ch;}
.final-cta p{margin-top:16px; font-size:16px;}

/* ===== CONTACT ===== */
.contact-grid{display:grid; grid-template-columns:1fr 1fr; gap:64px;}
.contact-details{margin-top:36px; display:flex; flex-direction:column; gap:14px;}
.contact-details div{display:flex; gap:16px; padding-bottom:12px; border-bottom:1px solid var(--line-light);}
.cd-label{width:90px; flex-shrink:0; font-size:11px; letter-spacing:0.06em; color:var(--muted-on-light); text-transform:uppercase;}

.contact-form{display:flex; flex-direction:column; gap:16px; background:var(--paper-panel); border:1px solid var(--line-light); padding:30px; margin-top:36px;}
.contact-form label{display:flex; flex-direction:column; gap:6px; font-family:'IBM Plex Mono',monospace; font-size:11px; letter-spacing:0.05em; text-transform:uppercase; color:var(--muted-on-light);}
.contact-form input, .contact-form select, .contact-form textarea{
  font-family:'Inter',sans-serif; font-size:14px; padding:11px 12px; border:1px solid var(--line-light);
  border-radius:2px; background:var(--paper); color:var(--text-dark); resize:vertical;
}
.contact-form input:focus, .contact-form select:focus, .contact-form textarea:focus{outline:2px solid var(--teal-dim); outline-offset:1px;}
.form-note{font-size:12px; color:var(--muted-on-light); text-align:center; margin:0;}

/* ===== FOOTER ===== */
footer{background:var(--ink); color:var(--text-light); padding:60px 0 30px;}
.footer-inner{display:flex; flex-direction:column; gap:28px;}
.footer-brand{display:flex; flex-direction:column; gap:4px;}
.footer-links{display:flex; flex-wrap:wrap; gap:20px; font-family:'IBM Plex Mono',monospace; font-size:12px; text-transform:uppercase; letter-spacing:0.04em;}
.footer-links a{text-decoration:none; color:var(--muted-on-dark); transition:color .2s ease;}
.footer-links a:hover{color:var(--teal);}
.bottom-bar{
  display:flex; justify-content:space-between; padding-top:22px; margin-top:6px;
  border-top:1px solid var(--line-dark); font-family:'IBM Plex Mono',monospace; font-size:11px;
  color:var(--muted-on-dark); flex-wrap:wrap; gap:10px;
}

a:focus-visible, button:focus-visible{outline:2px solid var(--teal); outline-offset:2px;}

/* ===== RESPONSIVE ===== */
@media (max-width:960px){
  .hero-grid{grid-template-columns:1fr;}
  .feature-grid{grid-template-columns:1fr 1fr;}
  .service-cards{grid-template-columns:1fr;}
  .case-grid{grid-template-columns:1fr;}
  .skill-columns{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr; gap:40px;}
  .checklist.two-col{grid-template-columns:1fr;}
  .trust-grid{grid-template-columns:1fr 1fr;}
}
@media (max-width:760px){
  nav.links{
    position:absolute; top:100%; left:0; right:0; background:var(--ink);
    flex-direction:column; align-items:flex-start; padding:20px 28px; gap:16px;
    border-bottom:1px solid var(--line-dark); display:none;
  }
  nav.links.open{display:flex;}
  .menu-toggle{display:flex;}
  .feature-grid{grid-template-columns:1fr;}
  .skill-columns{grid-template-columns:1fr;}
  section{padding:60px 0;}
  .hero{padding:56px 0 48px;}
}
