:root{
  --bg:#0f2846;
  --line:#4c7ba3;
  --line-faint:#1c3f61;
  --paper:#eef6fb;
  --dim:#8fb4d1;
  --accent:#ff7a00;
}

*,*::before,*::after{ box-sizing:border-box; }

html{
  scroll-behavior:smooth;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
}

body{
  margin:0;
  background:
    repeating-linear-gradient(0deg, var(--line-faint) 0 1px, transparent 1px 32px),
    repeating-linear-gradient(90deg, var(--line-faint) 0 1px, transparent 1px 32px),
    var(--bg);
  color:var(--paper);
  font-family:"Segoe UI", system-ui, -apple-system, sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}

a{ color:inherit; }
a:focus-visible, button:focus-visible{ outline:2px solid var(--accent); outline-offset:3px; }

.mono{ font-family: ui-monospace, "Cascadia Code", Consolas, "SFMono-Regular", Menlo, monospace; }

/* layout container */
.nav, main, footer{
  max-width:1040px;
  margin:0 auto;
  padding-left:24px;
  padding-right:24px;
}

/* nav */
.nav{
  position:sticky;
  top:0;
  z-index:10;
  background:rgba(15,40,70,.92);
  backdrop-filter:blur(6px);
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  padding-top:22px;
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.brand{
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  letter-spacing:.12em;
  font-size:14px;
}
.brand .rev{
  display:block;
  font-size:10px;
  letter-spacing:.1em;
  color:var(--dim);
  margin-top:4px;
}
.nav-links{
  display:flex;
  gap:20px;
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:11.5px;
  letter-spacing:.06em;
}
.nav-links a{ text-decoration:none; }
.nav-links a:hover{ color:var(--accent); }

/* hero */
.hero{ padding:64px 0 20px; }
.fig-label{
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:11px;
  color:var(--accent);
  letter-spacing:.1em;
  margin-bottom:18px;
}
h1{
  font-size:clamp(28px,4.4vw,44px);
  line-height:1.25;
  font-weight:600;
  max-width:19ch;
  margin:0 0 20px;
  text-wrap:balance;
}
h1 u{ text-decoration:none; border-bottom:2px solid var(--accent); }
.lede{
  color:var(--dim);
  font-size:15px;
  line-height:1.75;
  max-width:58ch;
  margin:0 0 30px;
}
.cta-row{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:12px; }
.btn{
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:12.5px;
  letter-spacing:.05em;
  padding:12px 18px;
  text-decoration:none;
  border:1px solid var(--line);
  display:inline-block;
}
.btn-primary{ background:var(--accent); border-color:var(--accent); color:#1a0d00; font-weight:700; }
.btn-primary:hover{ background:#ff8f26; }
.btn-ghost:hover{ border-color:var(--accent); color:var(--accent); }

/* sections */
main section{ margin-top:70px; scroll-margin-top:80px; }
footer{ scroll-margin-top:80px; }
.section-title{
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:12px;
  letter-spacing:.1em;
  color:var(--accent);
  margin-bottom:22px;
}

/* about */
.about-text{
  color:var(--dim);
  font-size:14.5px;
  line-height:1.8;
  max-width:62ch;
  margin:0 0 26px;
}
.principles{
  list-style:none;
  margin:0;
  padding:0;
  display:grid;
  gap:14px;
  max-width:62ch;
  font-size:14px;
}
.principles li{
  padding-left:18px;
  position:relative;
  border-left:1px dashed var(--line);
}
.principles li::before{
  content:"";
  position:absolute;
  left:-1px;
  top:8px;
  width:8px;
  height:1px;
  background:var(--accent);
}

/* apps */
.app-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
  gap:18px;
}
.app-card{
  border:1px dashed var(--line);
  padding:18px;
  position:relative;
}
.app-card::before,.app-card::after{
  content:"";
  position:absolute;
  width:9px; height:9px;
  border:1px solid var(--accent);
  top:-1px; left:-1px;
  border-right:none; border-bottom:none;
}
.app-card::after{
  left:auto; right:-1px; top:auto; bottom:-1px;
  border:1px solid var(--accent);
  border-left:none; border-top:none;
}
.app-name{ font-weight:700; font-size:15px; margin-bottom:12px; }
.spec{
  display:flex;
  justify-content:space-between;
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:11.5px;
  color:var(--dim);
  padding:5px 0;
  border-top:1px solid var(--line-faint);
}
.spec .v{ color:var(--paper); }
.app-desc{
  font-size:13px;
  line-height:1.7;
  color:var(--dim);
  margin:12px 0 14px;
}
.store-badges{ display:flex; gap:8px; flex-wrap:wrap; }
.store-badge{
  display:inline-flex;
  align-items:center;
  gap:6px;
  border:1px solid var(--line);
  border-radius:4px;
  padding:5px 10px;
  font-size:10.5px;
  color:var(--dim);
  letter-spacing:.02em;
}

/* services table */
.table-wrap{ overflow-x:auto; }
.spec-table{
  width:100%;
  border-collapse:collapse;
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:12.5px;
  min-width:480px;
}
.spec-table th{
  text-align:left;
  color:var(--accent);
  font-weight:600;
  letter-spacing:.05em;
  padding:10px 14px;
  border-bottom:1px solid var(--line);
  white-space:nowrap;
}
.spec-table td{
  padding:12px 14px;
  border-bottom:1px solid var(--line-faint);
  color:var(--dim);
}
.spec-table td:first-child{ color:var(--paper); }

/* footer */
footer{ margin-top:80px; padding-top:26px; padding-bottom:40px; }
.title-block{
  border-top:1px solid var(--line);
  padding-top:22px;
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
  font-family: ui-monospace, "Cascadia Code", Consolas, monospace;
  font-size:11.5px;
}
.title-block .k{
  display:block;
  color:var(--dim);
  letter-spacing:.08em;
  margin-bottom:5px;
}
.title-block a{ text-decoration:none; }
.title-block a:hover{ color:var(--accent); }
.copyright{
  margin-top:24px;
  font-size:11px;
  color:var(--line);
}

@media (max-width: 640px){
  .nav{ flex-direction:column; align-items:flex-start; gap:10px; }
  .nav-links{ gap:16px; }
  .title-block{ grid-template-columns:repeat(2,1fr); }
}
