/* HASH — site styles. Light, consulting-style design language. */
:root{
  --bg:#ffffff; --soft:#f5f7f9; --tint:#eef5f3; --ink:#0b1f33; --ink2:#38495b; --muted:#6a7888;
  --line:#dde3e9; --line2:#eaeef2;
  --teal:#0f7b6c; --teal-d:#0b5d52; --blue:#1c6fa8; --sky:#5aa9d6; --amber:#c98a12; --red:#c0392b; --green:#2f9e63;
  --serif:'Source Serif 4','Lora',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --max:1180px; --r:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--bg);color:var(--ink2);font-family:var(--sans);font-size:16.5px;line-height:1.65;-webkit-font-smoothing:antialiased}
img,svg{max-width:100%}
a{color:inherit;text-decoration:none}
.wrap{max-width:var(--max);margin:0 auto;padding:0 28px}
h1,h2,h3,h4{font-family:var(--serif);color:var(--ink);font-weight:600;line-height:1.14;letter-spacing:-.012em}
h1{font-size:clamp(2.35rem,4.6vw,3.9rem)}
h2{font-size:clamp(1.8rem,3.1vw,2.6rem)}
h3{font-size:1.28rem;line-height:1.28}
p{max-width:64ch}
.eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--teal);display:flex;align-items:center;gap:10px;margin-bottom:18px}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--teal)}
.lead{font-size:1.18rem;color:var(--ink2);line-height:1.6;max-width:58ch}
.muted{color:var(--muted)}
.skip{position:absolute;left:-999px}.skip:focus{left:12px;top:12px;background:#fff;padding:8px 12px;z-index:99}

/* nav */
header.nav{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.94);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;height:74px}
.nav .logo{display:flex;align-items:center}
.nav nav{display:flex;align-items:center;gap:34px}
.nav nav a.l{font-size:.92rem;font-weight:500;color:var(--ink2);padding:6px 0;border-bottom:2px solid transparent;transition:color .2s,border-color .2s}
.nav nav a.l:hover{color:var(--teal)}
.nav nav a.l.on{color:var(--ink);border-color:var(--teal)}
.btn{display:inline-flex;align-items:center;gap:8px;font-family:var(--sans);font-size:.92rem;font-weight:600;padding:12px 22px;border-radius:6px;border:1.5px solid var(--ink);background:var(--ink);color:#fff;cursor:pointer;transition:background .2s,color .2s,transform .2s}
.btn:hover{background:var(--teal-d);border-color:var(--teal-d)}
.btn.ghost{background:transparent;color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.btn.sm{padding:9px 18px;font-size:.86rem}
.arrow::after{content:"→";transition:transform .2s}.arrow:hover::after{transform:translateX(3px)}
.burger{display:none;background:none;border:1.5px solid var(--line);border-radius:6px;width:42px;height:42px;cursor:pointer}
.burger span{display:block;width:18px;height:2px;background:var(--ink);margin:4px auto;transition:.2s}

/* sections */
section{padding:92px 0}
section.soft{background:var(--soft)}
section.tint{background:var(--tint)}
.rule{border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:5fr 6fr;gap:56px;align-items:end;margin-bottom:56px}
.sec-head p{justify-self:end}
.sec-head.one{grid-template-columns:1fr}
.hero{padding:76px 0 0;background:linear-gradient(180deg,#fff 0%,#f4f8f7 100%);border-bottom:1px solid var(--line)}
.hero .copy{max-width:820px}
.hero h1{margin-bottom:24px}
.hero h1 em{font-style:italic;color:var(--teal)}
.hero .cta{display:flex;gap:14px;margin:34px 0 56px;flex-wrap:wrap}
.hero.sub{padding:68px 0 64px}
.hero.sub h1{font-size:clamp(2.1rem,4vw,3.2rem);max-width:26ch}
.hero.sub .cta{margin:28px 0 0}
.breadcrumb{font-size:.78rem;letter-spacing:.06em;color:var(--muted);margin-bottom:18px;text-transform:uppercase;font-weight:600}
.breadcrumb a:hover{color:var(--teal)}

/* chips row */
.datatypes{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.dt{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line);background:#fff;border-radius:100px;padding:7px 15px;font-size:.84rem;font-weight:500;color:var(--ink2)}
.dt i{width:8px;height:8px;border-radius:50%;background:var(--teal);display:block}
.dt.sp i{background:var(--blue)}
.band{display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap;padding:26px 0;border-bottom:1px solid var(--line)}
.band .k{font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* pillars */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.pillar{padding:34px 28px 30px;border-right:1px solid var(--line);display:flex;flex-direction:column;transition:background .25s}
.pillar:last-child{border-right:0}
.pillar:hover{background:var(--tint)}
.pillar .n{font-family:var(--serif);font-size:1rem;color:var(--teal);margin-bottom:46px;font-weight:600}
.pillar h3{margin-bottom:12px}
.pillar p{font-size:.95rem;margin-bottom:22px;flex:1}
.pillar .go{font-size:.86rem;font-weight:600;color:var(--teal)}
.pillar .go::after{content:" →"}

/* architecture stack */
.stack{border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.layer{display:grid;grid-template-columns:230px 1fr;border-bottom:1px solid var(--line)}
.layer:last-child{border-bottom:0}
.layer .lab{padding:24px 26px;background:var(--soft);border-right:1px solid var(--line)}
.layer .lab small{display:block;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--teal);margin-bottom:4px}
.layer .lab b{font-family:var(--serif);font-size:1.12rem;color:var(--ink);font-weight:600}
.layer .body{padding:20px 26px;display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tag{border:1px solid var(--line);border-radius:6px;padding:8px 14px;font-size:.88rem;background:#fff;color:var(--ink2)}
.tag.t{border-color:#b9ddd6;background:#eef8f5;color:var(--teal-d)}
.tag.b{border-color:#c5dcee;background:#f0f7fc;color:#1b5f91}
.layer.hi .lab{background:var(--tint)}

/* principles / columns */
.cols3{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
.cols3 .it{border-top:2px solid var(--ink);padding-top:22px}
.cols3 .it h3{margin-bottom:10px}
.cols2{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.cols2.top{align-items:start}
.sectors{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line)}
.sector{padding:28px 24px 8px 0;border-right:1px solid var(--line);padding-left:24px}
.sector:first-child{padding-left:0}.sector:last-child{border-right:0}
.sector h3{font-size:1.1rem;margin-bottom:8px}.sector p{font-size:.92rem}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s}
.step{padding:0 26px 0 0;position:relative}
.step .no{font-family:var(--serif);font-size:2.6rem;color:var(--line);font-weight:600;line-height:1;margin-bottom:14px}
.step::before{content:"";position:absolute;left:0;right:0;top:-1px;height:2px;background:var(--line)}
.step h3{margin:18px 0 8px;font-size:1.12rem}
.step p{font-size:.92rem}
.step .wk{font-size:.74rem;font-weight:700;color:var(--teal);letter-spacing:.1em;text-transform:uppercase;margin-bottom:6px}
.list{list-style:none;display:grid;gap:12px;margin-top:22px}
.list li{position:relative;padding-left:26px;font-size:.98rem}
.list li::before{content:"";position:absolute;left:0;top:.62em;width:12px;height:2px;background:var(--teal)}

/* feature rows */
.feat{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:34px 72px;align-items:start;padding:74px 0;border-top:1px solid var(--line)}
.feat:first-of-type{border-top:0}
.feat .fm{grid-column:1/-1;min-width:0}
.feat .fl .list{margin-top:4px}
.feat h2{font-size:clamp(1.6rem,2.6vw,2.2rem);margin-bottom:16px}
.feat .num{font-family:var(--serif);color:var(--teal);font-weight:600;margin-bottom:10px;font-size:1rem}

/* cycle */
.cycle{display:grid;grid-template-columns:repeat(7,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);background:#fff;overflow:hidden}
.cy{padding:22px 16px 20px;border-right:1px solid var(--line);font-size:.86rem;line-height:1.45}
.cy:last-child{border-right:0}
.cy b{display:block;font-family:var(--serif);font-size:.98rem;color:var(--ink);margin:10px 0 4px;font-weight:600}
.cy span{font-family:var(--serif);color:var(--teal);font-weight:600}

/* CTA band */
.cta-band{background:var(--ink);color:#dbe5ee;padding:80px 0}
.cta-band h2{color:#fff;max-width:20ch}
.cta-band .wrap{display:flex;justify-content:space-between;align-items:center;gap:40px;flex-wrap:wrap}
.cta-band .btn{background:#fff;color:var(--ink);border-color:#fff}
.cta-band .btn:hover{background:var(--tint);border-color:var(--tint)}
.cta-band .btn.ghost{background:transparent;color:#fff;border-color:#7d93a8}
.cta-band .btn.ghost:hover{background:#fff;color:var(--ink)}

/* footer */
footer{background:var(--soft);border-top:1px solid var(--line);padding:64px 0 28px;font-size:.92rem}
.fgrid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1.3fr;gap:44px}
footer h4{font-family:var(--sans);font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin-bottom:16px;font-weight:700}
footer ul{list-style:none;display:grid;gap:9px}
footer a:hover{color:var(--teal)}
.fbottom{margin-top:48px;padding-top:22px;border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;font-size:.82rem;color:var(--muted)}

/* contact form */
.form{display:grid;gap:18px}
.form .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{font-size:.8rem;font-weight:600;color:var(--ink);display:block;margin-bottom:6px;letter-spacing:.02em}
input,select,textarea{width:100%;font:inherit;font-size:.95rem;color:var(--ink);background:#fff;border:1.5px solid var(--line);border-radius:6px;padding:12px 14px}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--teal);box-shadow:0 0 0 3px rgba(15,123,108,.12)}
textarea{min-height:130px;resize:vertical}
.info dt{font-size:.72rem;letter-spacing:.14em;text-transform:uppercase;font-weight:700;color:var(--muted);margin-top:22px}
.info dd{color:var(--ink);font-size:1.02rem;margin-top:4px}

/* reveal */
.rv{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.rv{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* ============ MOCKUPS ============ */
.mock-tabs{display:flex;gap:4px;margin-bottom:-1px;flex-wrap:wrap}
.mock-tabs button{font:600 .86rem var(--sans);color:var(--muted);background:transparent;border:1px solid transparent;border-bottom:0;padding:12px 20px;border-radius:8px 8px 0 0;cursor:pointer;transition:.2s}
.mock-tabs button:hover{color:var(--ink)}
.mock-tabs button.on{background:#fff;border-color:var(--line);color:var(--ink);position:relative;z-index:2}
.mock-tabs button.on::before{content:"";position:absolute;left:-1px;right:-1px;top:-1px;height:3px;background:var(--teal);border-radius:8px 8px 0 0}
.mock-pane{display:none}.mock-pane.on{display:block}
.win{background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;box-shadow:0 18px 50px -24px rgba(11,31,51,.28),0 2px 6px rgba(11,31,51,.04);font-size:13px;color:var(--ink2);line-height:1.45;text-align:left}
.win.top-left{border-top-left-radius:0}
.win-bar{display:flex;align-items:center;gap:14px;padding:11px 16px;border-bottom:1px solid var(--line);background:#fafbfc}
.dots{display:flex;gap:6px}.dots i{width:10px;height:10px;border-radius:50%;background:#dfe5ea;display:block}
.win-title{font-weight:600;color:var(--ink);font-size:12.5px}
.win-note{margin-left:auto;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:600}
.win-nav{display:flex;gap:2px;padding:0 16px;border-bottom:1px solid var(--line);background:#fff;overflow:hidden}
.win-nav span{padding:10px 12px;font-size:12px;font-weight:600;color:var(--muted);white-space:nowrap}
.win-nav span.on{color:var(--teal-d);box-shadow:inset 0 -2px 0 var(--teal)}
.wb{padding:18px;display:grid;gap:16px}
.g2{display:grid;grid-template-columns:1.7fr 1fr;gap:16px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.box{border:1px solid var(--line);border-radius:8px;padding:14px;background:#fff}
.box.soft{background:#fafbfc}
.box h5{font:700 10.5px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;display:flex;justify-content:space-between;align-items:center}
.box h5 em{font-style:normal;color:var(--teal);letter-spacing:.04em;text-transform:none;font-weight:600}
.kpi b{display:block;font:600 24px/1.1 var(--serif);color:var(--ink)}
.kpi small{font-size:11px;color:var(--muted)}
.kpi .d{color:var(--green);font-weight:600;font-size:11px}
.layer-card{border-radius:8px;padding:12px 14px;border:1px solid var(--line);position:relative}
.layer-card b{font:600 15px var(--serif);color:var(--ink);display:block}
.layer-card small{font-size:11px;color:var(--muted)}
.layer-card .ct{font:600 20px var(--serif);color:var(--ink);float:right}
.lc-b{background:#fbf3ea;border-color:#efd9bc}.lc-s{background:#f1f4f7;border-color:#d4dce4}.lc-g{background:#fdf7e3;border-color:#efe0a6}
table.t{width:100%;border-collapse:collapse;font-size:12px}
table.t th{text-align:left;font:700 10px var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line)}
table.t td{padding:8px;border-bottom:1px solid var(--line2);color:var(--ink2);vertical-align:middle}
table.t tr:last-child td{border-bottom:0}
table.t td b{color:var(--ink);font-weight:600}
.chip{display:inline-block;padding:2px 8px;border-radius:4px;font-size:10.5px;font-weight:600;white-space:nowrap}
.c-b{background:#fbf0e2;color:#8a5a14}.c-s{background:#e8edf2;color:#41566b}.c-g{background:#fcf3d0;color:#7a5d00}
.c-pub{background:#e5f4ec;color:#1f7a49}.c-int{background:#e6f0fa;color:#1b5f91}.c-conf{background:#fdf0d8;color:#8f5b00}.c-res{background:#fbe5e2;color:#9d2b20}
.c-ai{background:#ece9fb;color:#4a3fa8}.c-pii{background:#fde9ee;color:#a3243f}
.c-ok{background:#e5f4ec;color:#1f7a49}.c-warn{background:#fdf0d8;color:#8f5b00}.c-bad{background:#fbe5e2;color:#9d2b20}
.bar{height:6px;background:#e9edf1;border-radius:3px;overflow:hidden;min-width:60px}
.bar i{display:block;height:100%;background:var(--teal);border-radius:3px;width:0;transition:width 1.1s cubic-bezier(.2,.7,.2,1)}
.in .bar i,.win.run .bar i{width:var(--w)}
.bar.am i{background:var(--amber)}.bar.bl i{background:var(--blue)}
.ring{--p:80;width:92px;height:92px;border-radius:50%;background:conic-gradient(var(--teal) calc(var(--p)*1%),#e9edf1 0);display:grid;place-items:center;flex:none}
.ring::after{content:attr(data-v);width:70px;height:70px;border-radius:50%;background:#fff;display:grid;place-items:center;font:600 20px var(--serif);color:var(--ink)}
.row-flex{display:flex;align-items:center;gap:14px}
.split{display:flex;justify-content:space-between;align-items:center;gap:10px}
.lineage{display:flex;align-items:center;gap:0}
.ln{flex:1;min-width:0;text-align:center;padding:9px 6px;border:1px solid var(--line);border-radius:6px;font-size:11px;font-weight:600;color:var(--ink);background:#fff;position:relative}
.ln.hl{border-color:var(--teal);background:#eef8f5;color:var(--teal-d)}
.lk{width:16px;height:2px;background:var(--line);flex:none}
/* map */
.map{position:relative;border:1px solid var(--line);border-radius:8px;overflow:hidden;background:#eef2ee;min-height:300px}
.map svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.mapctl{display:grid;gap:8px}
.tg{display:flex;align-items:center;gap:9px;font-size:12px;color:var(--ink);cursor:pointer;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:#fff;user-select:none}
.tg input{width:auto;accent-color:var(--teal);margin:0}
.tg i{width:12px;height:12px;border-radius:3px;display:block;flex:none}
.ask{display:flex;gap:8px;border:1.5px solid var(--line);border-radius:8px;padding:9px 12px;background:#fff;font-size:12px;color:var(--muted);align-items:center}
.ask b{color:var(--teal);font-size:14px}
.bubble{border-radius:10px;padding:11px 14px;font-size:12.5px;line-height:1.5}
.bubble.q{background:var(--soft);color:var(--ink);margin-left:auto;max-width:86%;border-top-right-radius:2px}
.bubble.a{background:#eef8f5;border:1px solid #cbe7e0;color:var(--ink);max-width:94%;border-top-left-radius:2px}
.src{display:inline-flex;gap:6px;align-items:center;font-size:10.5px;border:1px solid var(--line);background:#fff;border-radius:4px;padding:2px 7px;margin:4px 4px 0 0;color:var(--ink2)}
.src::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--teal)}
.mini-btn{font:600 11px var(--sans);padding:6px 12px;border-radius:5px;border:1px solid var(--line);background:#fff;color:var(--ink)}
.mini-btn.p{background:var(--teal);color:#fff;border-color:var(--teal)}
.board{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.col h6{font:700 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:8px;display:flex;justify-content:space-between}
.card{border:1px solid var(--line);border-radius:7px;padding:9px 10px;background:#fff;margin-bottom:8px;font-size:11.5px}
.card b{display:block;color:var(--ink);font-weight:600;margin-bottom:2px}
.card.lock{background:#fafbfc;border-style:dashed}
.clock{white-space:nowrap;font:600 13px/1 ui-monospace,'SF Mono',Menlo,monospace;color:var(--ink);letter-spacing:.02em}
.hash{font:11px ui-monospace,'SF Mono',Menlo,monospace;color:var(--muted)}
.note{font-size:11px;color:var(--muted);margin-top:12px;display:flex;gap:8px;align-items:center}
.note::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--amber);flex:none}

/* responsive */
@media (max-width:1020px){
  .sec-head{grid-template-columns:1fr;gap:18px}.sec-head p{justify-self:start}
  .pillars{grid-template-columns:repeat(2,1fr)}.pillar{border-bottom:1px solid var(--line)}.pillar:nth-child(2){border-right:0}.pillar:nth-child(n+3){border-bottom:0}
  .cols3{grid-template-columns:1fr;gap:28px}
  .cols2,.feat,.feat.rev{grid-template-columns:1fr;gap:34px}.feat.rev .txt{order:0}
  .sectors{grid-template-columns:repeat(2,1fr)}.sector{border-bottom:1px solid var(--line);padding-bottom:22px}.sector:nth-child(2n){border-right:0}.sector:nth-child(3){padding-left:0}
  .steps{grid-template-columns:repeat(2,1fr);row-gap:40px}
  .cycle{grid-template-columns:repeat(2,1fr)}.cy{border-bottom:1px solid var(--line)}
  .fgrid{grid-template-columns:1fr 1fr}
  .layer{grid-template-columns:1fr}.layer .lab{border-right:0;border-bottom:1px solid var(--line)}
}
@media (max-width:860px){
  .burger{display:block}
  .nav nav{position:absolute;top:74px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:0;padding:8px 28px 22px;display:none}
  .nav nav.open{display:flex}
  .nav nav a.l{padding:14px 0;width:100%;border-bottom:1px solid var(--line2)}
  .nav nav .btn{margin-top:16px}
  .g2{grid-template-columns:1fr}.g4{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:1fr 1fr 1fr}
  .board{grid-template-columns:repeat(2,1fr)}
  .hide-m{display:none!important}
  .win-nav{display:none}
}
@media (max-width:620px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  section{padding:64px 0}
  .pillars{grid-template-columns:1fr}.pillar{border-right:0;border-bottom:1px solid var(--line)!important}.pillar:last-child{border-bottom:0!important}.pillar .n{margin-bottom:22px}
  .sectors,.steps,.cycle{grid-template-columns:1fr}.sector{border-right:0;padding-left:0}
  .fgrid{grid-template-columns:1fr}
  .form .row{grid-template-columns:1fr}
  .g3{grid-template-columns:1fr}
  .mock-tabs button{padding:10px 12px;font-size:.78rem}
  .nav .wrap{height:66px}.nav nav{top:66px}
}

/* ---- additions ---- */
.apps-note{font-size:.85rem}
@media (max-width:1020px){.sectors[style*="repeat(3"]{grid-template-columns:repeat(2,1fr)!important}}
@media (max-width:620px){.sectors[style*="repeat(3"]{grid-template-columns:1fr!important}}

@media (max-width:620px){
  .wb{padding:12px;gap:12px}.box{padding:12px;min-width:0;overflow-x:auto}
  .hs{display:none!important}
  .qc{width:84px!important}
  .g3.lcs{grid-template-columns:repeat(3,1fr)}
  .lcs .layer-card{padding:10px}.lcs small{display:none}.lcs .ct{float:none;display:block;margin-top:2px}
  .win-note{display:none}
  .lineage{flex-direction:column;align-items:stretch}.lineage .lk{width:2px;height:10px;margin:0 auto}
  .ring{width:74px;height:74px}.ring::after{width:56px;height:56px;font-size:16px}
  .bars-row{flex-direction:column;align-items:stretch!important}
  .map{min-height:260px}
  .tg{padding:5px 8px}
  .board{grid-template-columns:1fr 1fr}
}

/* standards list on home */
.stdlist{border-top:1px solid var(--line)}
.stdrow{display:grid;grid-template-columns:170px 1fr;gap:18px;padding:20px 4px;border-bottom:1px solid var(--line);align-items:baseline;transition:background .2s,padding .2s}
.stdrow:hover{background:var(--tint);padding-left:14px}
.stdrow b{font-family:var(--serif);font-size:1.12rem;color:var(--ink);font-weight:600}
.stdrow span{font-size:.95rem}
.pillar .n{font-size:.95rem}
@media (max-width:620px){.stdrow{grid-template-columns:1fr;gap:2px}}

/* product cards (home) + tighter nav */
.nav nav{gap:28px}
.pcards{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.pcard{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:var(--r);padding:36px 34px 30px;transition:border-color .25s,transform .25s}
.pcard:hover{border-color:var(--teal);transform:translateY(-2px)}
.pcard .eyebrow{margin-bottom:14px}
.pcard h3{font-size:1.45rem;margin-bottom:14px}
.pcard p{flex:1;margin-bottom:24px;font-size:.98rem}
.pcard .go{font-size:.9rem;font-weight:600;color:var(--teal)}
@media (max-width:860px){.pcards{grid-template-columns:1fr}.nav nav{gap:0}}

/* logo: supplied artwork, used as-is on its black field */
.logo-img{display:block;height:58px;width:auto;border-radius:4px;}
footer .logo-img{height:80px}
@media(max-width:620px){.logo-img{height:46px}}

/* ---- device polish: touch targets, readable mock text, keyboard focus ---- */
:focus-visible{outline:2px solid var(--teal);outline-offset:3px;border-radius:3px}
.mock-tabs button:focus-visible,.btn:focus-visible{outline-offset:2px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.win-note{font-size:11px}
.kpi small,.layer-card small,.note,.ln{font-size:11.5px}
.chip,.src,.kpi .d{font-size:11.5px}
.card{font-size:12px}
.tg{min-height:32px;display:inline-flex;align-items:center;cursor:pointer}
.tg input{width:18px;height:18px;margin-right:6px;accent-color:var(--teal);cursor:pointer}
@media (pointer:coarse),(max-width:1020px){
  .mock-tabs button{min-height:44px;padding-top:12px;padding-bottom:12px}
  .tg{min-height:44px;padding:0 8px}
  .burger{width:44px;height:44px}
  .nav nav a.l,.nav nav a.btn{min-height:44px;display:flex;align-items:center}
  footer ul{gap:4px}footer ul a{display:inline-block;padding:7px 0}
  .stdrow,.pcard,.sector{-webkit-tap-highlight-color:rgba(15,123,108,.12)}
}
@media (max-width:620px){
  .win-note,.kpi small,.layer-card small,.note,.ln,.chip,.src,.kpi .d{font-size:12px}
  .mock-tabs{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .mock-tabs::-webkit-scrollbar{display:none}
  .mock-tabs button{flex:0 0 auto;white-space:nowrap}
}
.box h5,.col h6,table.t th{font-size:11.5px}
.box h5 em,.col h6 em,.win-bar div,.mini-btn,.hash,.layer-card small,.note{font-size:11.5px}
.win em{font-size:11.5px}
.mini-btn{min-height:32px}
@media (max-width:620px){.box h5,.col h6,table.t th,.box h5 em,.col h6 em,.win-bar div,.mini-btn,.hash,.win em,.tg{font-size:12px}}

/* nav: wider logo needs the compact menu up to small laptops */
.nav nav a.l,.nav nav a.btn{white-space:nowrap}
@media (max-width:1180px){
  .burger{display:block}
  .nav nav{position:absolute;top:74px;left:0;right:0;background:#fff;border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;gap:0;padding:8px 28px 22px;display:none;box-shadow:0 18px 30px -20px rgba(11,31,51,.25)}
  .nav nav.open{display:flex}
  .nav nav a.l{padding:14px 0;width:100%;border-bottom:1px solid var(--line2)}
  .nav nav .btn{margin-top:16px}
}
@media (max-width:860px){input,select,textarea{font-size:16px!important}}
