:root{
  --bg:#EEF2EF; --surface:#FFFFFF; --ink:#0B2230; --muted:#4A5E69; --line:#CAD6D1;
  --accent:#127A70; --accent-ink:#FFFFFF; --copper:#B86E14; --band:#0B2230; --band-ink:#EAF1EE; --band-muted:#A9BEC6;
  --chg:#127A70; --dis:#D98E2B; --price:#0B2230;
  --display:'Archivo', 'Arial Narrow', Arial, sans-serif;
  --body:'IBM Plex Sans', 'Segoe UI', Arial, sans-serif;
  --mono:'IBM Plex Mono', Consolas, monospace;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    color-scheme:dark;
    --bg:#0A1B25; --surface:#11283A; --ink:#E6EEEB; --muted:#A3B6BE; --line:#23405220;
    --line:#244052; --accent:#4FC8B7; --accent-ink:#06201C; --copper:#E9A54B; --band:#061219; --band-ink:#E6EEEB; --band-muted:#9FB3BB;
    --chg:#4FC8B7; --dis:#E9A54B; --price:#E6EEEB;
  }
}
:root[data-theme="dark"]{
  color-scheme:dark;
  --bg:#0A1B25; --surface:#11283A; --ink:#E6EEEB; --muted:#A3B6BE;
  --line:#244052; --accent:#4FC8B7; --accent-ink:#06201C; --copper:#E9A54B; --band:#061219; --band-ink:#E6EEEB; --band-muted:#9FB3BB;
  --chg:#4FC8B7; --dis:#E9A54B; --price:#E6EEEB;
}
*{box-sizing:border-box}
body{background:var(--bg); color:var(--ink); font-family:var(--body); font-size:17px; line-height:1.6; margin:0}
.wrap{max-width:1160px; margin:0 auto; padding-inline:24px}
@media (max-width:480px){.wrap{padding-inline:16px}}
a{color:var(--accent)}
a:focus-visible,button:focus-visible{outline:3px solid var(--copper); outline-offset:3px}
h1,h2,h3{font-family:var(--display); font-stretch:82%; line-height:1.05; margin:0; text-wrap:balance; letter-spacing:-0.01em}
h2{font-size:clamp(30px,4.2vw,46px); font-weight:760}
h3{font-size:22px; font-weight:700; font-stretch:90%}
p{margin:0}
.eyebrow{font-family:var(--mono); font-size:13px; letter-spacing:.12em; text-transform:uppercase; color:var(--accent); font-weight:500}
.lede{font-size:clamp(18px,2vw,21px); color:var(--muted); max-width:60ch}

/* header */
header.top{position:sticky; top:env(safe-area-inset-top,0px); z-index:10; background:color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter:blur(8px); border-bottom:1px solid var(--line)}
.top .wrap{display:flex; align-items:center; justify-content:space-between; gap:16px; padding-block:14px}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink)}
.brand-mark{font-family:var(--display); font-stretch:75%; font-weight:800; font-size:26px; letter-spacing:.02em}
.brand-sub{font-size:12px; color:var(--muted); line-height:1.2; max-width:15ch}
nav ul{display:flex; gap:22px; list-style:none; margin:0; padding:0; flex-wrap:wrap}
nav a{color:var(--ink); text-decoration:none; font-size:15px; font-weight:500}
nav a:hover{color:var(--accent)}
@media (max-width:760px){nav{display:none}}

/* hero */
.hero .wrap{display:grid; grid-template-columns:1.05fr 1fr; gap:48px; align-items:center; padding-block:64px 56px}
.hero h1{font-size:clamp(40px,6vw,76px); font-weight:800; margin-block:14px 20px}
.hero h1 em{font-style:normal; color:var(--accent)}
.cta{display:flex; gap:12px; flex-wrap:wrap; margin-top:28px}
.btn{display:inline-block; padding:12px 20px; border-radius:6px; font-weight:600; text-decoration:none; font-size:15px}
.btn.primary{background:var(--accent); color:var(--accent-ink)}
.btn.ghost{border:1.5px solid var(--line); color:var(--ink)}
figure{margin:0}
.hero figure img{width:100%; display:block; border-radius:10px; aspect-ratio:756/548; object-fit:cover}
figcaption{font-size:13px; color:var(--muted); margin-top:8px}
@media (max-width:860px){.hero .wrap{grid-template-columns:1fr; padding-block:40px}}

/* nameplate */
.plate{margin-top:-8px; background:var(--band); color:var(--band-ink)}
.plate .wrap{display:grid; grid-template-columns:repeat(5,1fr); gap:0; padding-block:0}
.plate div{padding:22px 18px; border-left:1px solid #2A4454}
.plate div:first-child{border-left:none; padding-left:0}
.plate b{display:block; font-family:var(--display); font-stretch:80%; font-size:clamp(26px,3vw,36px); font-weight:760; line-height:1.1; font-variant-numeric:tabular-nums}
.plate span{font-family:var(--mono); font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:var(--band-muted)}
@media (max-width:760px){.plate .wrap{grid-template-columns:repeat(2,1fr)} .plate div{border-left:none; padding-left:0; border-top:1px solid #2A4454} .plate div:nth-child(-n+2){border-top:none}}

section.block{padding-block:88px}
section.block + section.block{border-top:1px solid var(--line)}
.head{display:flex; flex-direction:column; gap:12px; margin-bottom:40px; max-width:760px}

/* project */
.proj{display:grid; grid-template-columns:1fr 1.1fr; gap:48px; align-items:start}
@media (max-width:900px){.proj{grid-template-columns:1fr}}
dl.spec{margin:0; display:grid; grid-template-columns:minmax(120px,38%) 1fr; border-top:1px solid var(--line)}
dl.spec dt,dl.spec dd{margin:0; padding:12px 0; border-bottom:1px solid var(--line)}
dl.spec dt{font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); padding-right:16px; padding-top:15px}
dl.spec dd{font-weight:500}
.tbc{color:var(--copper); font-weight:500}
.chart{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:22px}
.chart h3{margin-bottom:4px}
.chart p.note{font-size:14px; color:var(--muted); margin-bottom:14px}
.chart-scroll{overflow-x:auto}
.chart svg{width:100%; min-width:520px; height:auto; display:block}
.chart svg text{font-family:var(--mono); font-size:11px; fill:var(--muted)}
.chart svg .lbl{font-size:12px; fill:var(--ink); font-weight:500}
.chart .chg{fill:var(--chg)} .chart .dis{fill:var(--dis)}
.chart .price{fill:none; stroke:var(--price); stroke-width:2.2; stroke-linejoin:round}
.chart .axis{stroke:var(--line); stroke-width:1}
.legend{display:flex; gap:18px; flex-wrap:wrap; font-size:14px; color:var(--muted); margin-top:10px}
.legend i{display:inline-block; width:12px; height:12px; border-radius:2px; margin-right:6px; vertical-align:-1px}

/* timeline */
ol.tl{list-style:none; margin:0; padding:0; display:grid; grid-template-columns:repeat(4,1fr); gap:0}
ol.tl li{padding:18px 18px 0 0; border-top:4px solid var(--accent); position:relative}
ol.tl li.plan{border-top-style:dashed; border-top-color:var(--muted)}
ol.tl li.cod{border-top-color:var(--copper)}
ol.tl .when{font-family:var(--display); font-stretch:80%; font-weight:760; font-size:24px; display:block; margin-bottom:6px}
ol.tl li.cod .when{color:var(--copper)}
ol.tl p{color:var(--muted); font-size:15.5px}
@media (max-width:860px){ol.tl{grid-template-columns:1fr; gap:22px} ol.tl li{border-top:none; border-left:4px solid var(--accent); padding:2px 0 2px 18px} ol.tl li.plan{border-left-style:dashed; border-left-color:var(--muted)} ol.tl li.cod{border-left-color:var(--copper)}}
.small{font-size:14px; color:var(--muted); margin-top:24px}

/* company */
.co{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:start}
@media (max-width:900px){.co{grid-template-columns:1fr}}
.co .text{display:flex; flex-direction:column; gap:16px; max-width:62ch}
.chain{display:flex; flex-direction:column; gap:0}
.chain .node{background:var(--surface); border:1px solid var(--line); border-radius:8px; padding:14px 18px}
.chain .node b{display:block; font-weight:600}
.chain .node small{color:var(--muted); font-size:14px}
.chain .node.spv{background:var(--band); border-color:var(--band); color:var(--band-ink)}
.chain .node.spv small{color:#7FD9CB}
.chain .link{width:2px; height:22px; background:var(--accent); margin-left:28px}

/* market */
.band{background:var(--band); color:var(--band-ink)}
.band .eyebrow{color:#7FD9CB}
.band .lede{color:var(--band-muted)}
.stats{display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:8px}
@media (max-width:760px){.stats{grid-template-columns:1fr; gap:28px}}
.stats b{display:block; font-family:var(--display); font-stretch:78%; font-weight:800; font-size:clamp(48px,6vw,72px); line-height:1; color:#7FD9CB; font-variant-numeric:tabular-nums}
.stats div:nth-child(2) b{color:#E9A54B}
.stats p{color:var(--band-muted); margin-top:10px; max-width:32ch}
.src{font-size:13px; color:var(--band-muted); margin-top:36px}
.services{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:56px}
@media (max-width:860px){.services{grid-template-columns:1fr}}
.services article{border-top:1px solid #2A4454; padding-top:18px}
.services h3{color:var(--band-ink); margin-bottom:8px}
.services p{color:var(--band-muted); font-size:15.5px}

/* contact */
.contact{display:grid; grid-template-columns:1fr 1fr; gap:48px}
@media (max-width:860px){.contact{grid-template-columns:1fr}}
.card{background:var(--surface); border:1px solid var(--line); border-radius:10px; padding:26px}
.card dl{margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 20px}
.card dt{font-family:var(--mono); font-size:13px; text-transform:uppercase; letter-spacing:.06em; color:var(--muted); padding-top:2px}
.card dd{margin:0}
form{display:flex; flex-direction:column; gap:14px}
label{font-size:14px; font-weight:500; display:flex; flex-direction:column; gap:6px}
input,textarea{font:inherit; font-size:16px; padding:10px 12px; border:1px solid var(--line); border-radius:6px; background:var(--bg); color:var(--ink); width:100%}
button{font:inherit; font-weight:600; background:var(--accent); color:var(--accent-ink); border:0; border-radius:6px; padding:12px 20px; cursor:pointer; align-self:flex-start}
.status{font-size:14px; color:var(--accent)}

footer{background:var(--band); color:var(--band-muted); font-size:14px}
footer .wrap{display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; padding-block:32px}
footer b{color:var(--band-ink)}
@media (prefers-reduced-motion:no-preference){.btn,nav a{transition:color .15s, background-color .15s}}

[hidden]{display:none !important}
/* news */
.news{display:flex; flex-direction:column; border-top:1px solid var(--line)}
.news-item{display:grid; grid-template-columns:200px 1fr; gap:24px; padding-block:24px; border-bottom:1px solid var(--line)}
.news-date{font-family:var(--mono); font-size:13px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); padding-top:4px}
.news-body{display:flex; flex-direction:column; gap:10px; max-width:68ch}
.news-body h3{font-size:24px}
.news-body p{color:var(--muted)}
.news-img{border-radius:8px; max-height:360px; object-fit:cover; width:100%}
.news-link{font-weight:600}
.news-empty{color:var(--muted); padding-block:20px}
.more{margin-top:20px; background:transparent; cursor:pointer; font:inherit; font-weight:600}
@media (max-width:640px){.news-item{grid-template-columns:1fr; gap:6px}}
/* contact additions */
.card dd{overflow-wrap:anywhere}
.email-row{display:flex; gap:10px; align-items:center; flex-wrap:wrap}
button.copy{padding:4px 10px; font-size:13px; background:transparent; color:var(--ink); border:1px solid var(--line); align-self:auto}
.hp{position:absolute; left:-9999px; width:1px; height:1px; opacity:0}
.form-note{font-size:13px; color:var(--muted)}
.status.ok{color:var(--accent)} .status.err{color:var(--copper)}
button:disabled{opacity:.6; cursor:wait}
footer .wrap{flex-direction:column; gap:6px}
footer .legal{font-size:13px}
footer a{color:var(--band-ink)}
