:root{
  --bg:#07090c; --bg2:#0b1015; --panel:#0f151c; --line:#1c2833;
  --txt:#d9e2ea; --dim:#7f8f9d; --dim2:#55636f;
  --lumen:#ffb347; --vital:#4fd6a5; --ferro:#7fa8c9; --phase:#a98bff; --null:#e8eef3;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
  background:var(--bg); color:var(--txt);
  font-family:"Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  line-height:1.7; -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1180px;margin:0 auto;padding:0 24px}
.eyebrow{font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--dim2);font-weight:600}
h1,h2,h3{line-height:1.25;font-weight:800;letter-spacing:.01em}
h2{font-size:clamp(24px,3.4vw,40px);margin-bottom:14px}
h3{font-size:17px}
.lead{color:var(--dim);font-size:clamp(14px,1.5vw,17px);max-width:62ch}
section{padding:96px 0;position:relative}
.sec-head{margin-bottom:44px}
.rule{height:1px;background:linear-gradient(90deg,var(--line),transparent)}

/* nav */
header{position:sticky;top:0;z-index:50;backdrop-filter:blur(14px);background:rgba(7,9,12,.72);border-bottom:1px solid rgba(28,40,51,.7)}
.nav{display:flex;align-items:center;gap:28px;height:62px}
.brand{display:flex;align-items:baseline;gap:10px;font-weight:800;letter-spacing:.06em}
.brand .cn{font-size:16px}
.brand .en{font-size:10px;letter-spacing:.32em;color:var(--dim2)}
.nav nav{display:flex;gap:22px;margin-left:auto;font-size:13.5px;color:var(--dim)}
.nav nav a{transition:color .2s}
.nav nav a:hover,.nav nav a.on{color:var(--txt)}
.btn{
  display:inline-flex;align-items:center;gap:8px;padding:11px 22px;border:1px solid var(--line);
  border-radius:2px;font-size:14px;font-weight:600;transition:.22s;cursor:pointer;
  background:none;color:var(--txt);font-family:inherit;
}
.btn:hover{border-color:var(--lumen);color:var(--lumen)}
.btn.primary{background:var(--lumen);border-color:var(--lumen);color:#0a0c0f}
.btn.primary:hover{background:#ffc670;border-color:#ffc670;color:#0a0c0f}
.btn.ghost{border-color:transparent;color:var(--dim)}
.btn.ghost:hover{color:var(--txt)}
.nav .btn{padding:8px 16px;font-size:13px}
.langbtn{
  background:none;border:1px solid var(--line);color:var(--dim);font:inherit;font-size:12.5px;
  padding:5px 10px;border-radius:2px;cursor:pointer;letter-spacing:.06em;transition:.2s;white-space:nowrap;
}
.langbtn:hover{color:var(--txt);border-color:var(--lumen)}
html[data-lang="en"] .brand .cn{display:none}
html[data-lang="en"] .race h3 span{display:none}
html[data-lang="en"] .nav nav{font-size:13px}
@media(max-width:860px){
  .nav{gap:14px}
  .nav nav{display:flex;overflow-x:auto;gap:16px;font-size:12.5px;white-space:nowrap;margin-left:auto;scrollbar-width:none}
  .nav nav::-webkit-scrollbar{display:none}
  .brand .en{display:none}
  .nav .btn{display:none}
}

/* hero */
.hero{min-height:min(88vh,780px);display:flex;align-items:center;padding:110px 0 90px;position:relative;overflow:hidden;border-bottom:1px solid var(--line)}
.hero::before{
  content:"";position:absolute;inset:-20% -10% auto -10%;height:120%;
  background:
    radial-gradient(38% 42% at 72% 34%, rgba(255,179,71,.16), transparent 70%),
    radial-gradient(30% 34% at 84% 62%, rgba(169,139,255,.13), transparent 70%),
    radial-gradient(34% 38% at 62% 70%, rgba(79,214,165,.10), transparent 70%);
  filter:blur(6px);pointer-events:none;
}
.hero .wrap{position:relative;z-index:2;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}
.hero h1{
  font-size:clamp(46px,8vw,96px);letter-spacing:.02em;margin:18px 0 8px;
  background:linear-gradient(180deg,#fff 20%,#8fa3b3 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero .sub{font-size:clamp(15px,1.7vw,19px);color:#b4c2ce;max-width:34em;margin-top:18px}
.hero .sub b{color:var(--lumen);font-weight:700}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:36px}
.tagline{margin-top:26px;font-size:12.5px;color:var(--dim2);letter-spacing:.14em}
.art{position:relative;aspect-ratio:1/1;display:grid;place-items:center}
.art .orb{
  width:78%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 42% 38%, rgba(255,179,71,.55), rgba(169,139,255,.22) 45%, rgba(7,9,12,0) 68%);
  box-shadow:0 0 120px rgba(255,179,71,.18), inset 0 0 80px rgba(169,139,255,.2);
  animation:pulse 7s ease-in-out infinite;
}
@keyframes pulse{0%,100%{transform:scale(1);opacity:.92}50%{transform:scale(1.045);opacity:1}}
.art .rings{position:absolute;inset:0;display:grid;place-items:center}
.art .rings i{position:absolute;border:1px solid rgba(127,168,201,.16);border-radius:50%}
.art .rings i:nth-child(1){width:88%;height:88%}
.art .rings i:nth-child(2){width:104%;height:104%;border-color:rgba(127,168,201,.09)}
.art .rings .spin{
  width:92%;height:92%;border-style:dashed;border-color:rgba(255,179,71,.14);
  animation:spin 48s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg)}}
.art .scan{
  position:absolute;width:58%;aspect-ratio:1;border-radius:50%;
  border:1px solid rgba(255,179,71,.14);
  animation:scanpulse 7s ease-in-out infinite;
}
@keyframes scanpulse{0%,100%{transform:scale(.96);opacity:.35}50%{transform:scale(1.04);opacity:.9}}
.art .sweep{
  position:absolute;width:1px;height:44%;
  background:linear-gradient(180deg,transparent,rgba(255,179,71,.65),transparent);
  box-shadow:0 0 18px rgba(255,179,71,.45);
  animation:sweep 5.5s ease-in-out infinite alternate;
}
@keyframes sweep{0%{transform:translateX(-52%)}100%{transform:translateX(52%)}}
.art .ticks{
  position:absolute;bottom:8%;display:flex;gap:7px;align-items:flex-end;opacity:.5;
}
.art .ticks i{display:block;width:1px;background:rgba(127,168,201,.5)}
.art .ticks i:nth-child(1){height:6px}
.art .ticks i:nth-child(2){height:12px}
.art .ticks i:nth-child(3){height:20px}
.art .ticks i:nth-child(4){height:12px}
.art .ticks i:nth-child(5){height:6px}
@media(max-width:900px){
  .hero .wrap{grid-template-columns:1fr}
  .art{max-width:340px;margin:0 auto;order:-1}
}

/* page head (sub pages) */
.page-head{padding:88px 0 48px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-head::after{
  content:"";position:absolute;right:-10%;top:-40%;width:60%;height:200%;
  background:radial-gradient(50% 50% at 50% 50%, rgba(255,179,71,.08), transparent 70%);pointer-events:none;
}
.page-head h1{font-size:clamp(34px,5vw,60px);margin:14px 0 12px}
.page-head .lead{max-width:58ch}

/* cards */
.grid{display:grid;gap:16px}
.g3{grid-template-columns:repeat(3,1fr)}
.g5{grid-template-columns:repeat(5,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}
@media(max-width:980px){.g3,.g5,.g4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.g3,.g5,.g4{grid-template-columns:1fr}}
.card{
  background:linear-gradient(180deg,var(--panel),rgba(15,21,28,.35));
  border:1px solid var(--line);border-radius:3px;padding:24px 22px;transition:.25s;position:relative;overflow:hidden;
}
.card:hover{border-color:#2b3d4d;transform:translateY(-2px)}
.card .k{font-size:11px;letter-spacing:.22em;color:var(--dim2);font-weight:700}
.card h3{margin:10px 0 8px}
.card p{font-size:13.5px;color:var(--dim)}
.card .bar{height:2px;width:34px;margin-bottom:16px;background:var(--lumen)}
.chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.chip{display:flex;align-items:center;gap:9px;padding:8px 14px;border:1px solid var(--line);border-radius:100px;font-size:13px;color:#b9c6d2;background:rgba(15,21,28,.6)}
.dot{width:8px;height:8px;border-radius:50%;flex:0 0 auto}

/* races */
.race{position:relative;padding-top:22px}
.race .tag{display:inline-block;font-size:11px;letter-spacing:.1em;color:var(--dim2);border:1px solid var(--line);border-radius:2px;padding:2px 7px;margin-bottom:12px}
.race h3{font-size:19px;display:flex;align-items:baseline;gap:8px}
.race h3 span{font-size:10.5px;letter-spacing:.16em;color:var(--dim2);font-weight:600}
.race .mat{margin-top:12px;font-size:12px;color:var(--dim2)}
.race .mat b{font-weight:600}

/* elements */
.el{border:1px solid var(--line);border-radius:3px;padding:22px 20px;background:var(--panel);border-top:2px solid var(--c);transition:.25s}
.el:hover{background:#121a22}
.el .name{font-size:17px;font-weight:800;color:var(--c)}
.el .en{font-size:10px;letter-spacing:.24em;color:var(--dim2);margin-top:4px}
.el p{font-size:13px;color:var(--dim);margin-top:12px}
.axis{margin-top:26px;padding:18px 20px;border:1px dashed var(--line);border-radius:3px;font-size:13px;color:var(--dim)}
.axis b{color:var(--txt)}

/* lines / layers */
.line-item{display:flex;gap:18px;padding:20px 0;border-top:1px solid var(--line)}
.line-item .no{font-size:11px;letter-spacing:.2em;color:var(--dim2);padding-top:3px;min-width:58px}
.line-item h3{margin-bottom:6px}
.line-item p{font-size:13.5px;color:var(--dim);max-width:70ch}
.layer{display:grid;grid-template-columns:88px 1fr;gap:20px;padding:22px 0;border-top:1px solid var(--line)}
.layer .lv{font-size:26px;font-weight:800;color:#22303c}
.layer h3{font-size:16px;margin-bottom:6px}
.layer p{font-size:13.5px;color:var(--dim)}

/* roadmap rows */
.road{display:grid;gap:12px}
.road .row{display:grid;grid-template-columns:96px 1fr auto;gap:16px;align-items:center;padding:14px 16px;border:1px solid var(--line);border-radius:3px;background:rgba(15,21,28,.5)}
.road .st{font-size:11px;letter-spacing:.14em;padding:3px 8px;border-radius:2px;white-space:nowrap}
.st.done{background:rgba(79,214,165,.13);color:var(--vital);border:1px solid rgba(79,214,165,.3)}
.st.wip{background:rgba(255,179,71,.13);color:var(--lumen);border:1px solid rgba(255,179,71,.3)}
.st.todo{background:rgba(127,168,201,.1);color:var(--ferro);border:1px solid rgba(127,168,201,.22)}
.road .t{font-size:14px}
.road .d{font-size:12.5px;color:var(--dim2)}

/* devlog list */
.log{display:grid;gap:0}
.log article{padding:26px 0;border-top:1px solid var(--line)}
.log .meta{display:flex;gap:14px;align-items:center;font-size:11.5px;letter-spacing:.16em;color:var(--dim2);margin-bottom:10px}
.log h3{font-size:19px;margin-bottom:10px}
.log p{font-size:14px;color:var(--dim);max-width:74ch}
.log ul{margin:12px 0 0 18px;font-size:13.5px;color:var(--dim)}
.log li{margin-bottom:6px}

/* press / table */
table{width:100%;border-collapse:collapse;font-size:14px}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:11px;letter-spacing:.16em;color:var(--dim2);font-weight:700;text-transform:uppercase}
td:first-child{color:var(--dim);white-space:nowrap;width:180px}
@media(max-width:620px){td:first-child{width:auto}}

/* shot slots */
.shots{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.shots{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.shots{grid-template-columns:1fr}}
.shot{
  aspect-ratio:16/9;border:1px dashed #24333f;border-radius:3px;background:#0a0f14;
  display:grid;place-items:center;text-align:center;color:var(--dim2);font-size:12px;letter-spacing:.12em;
}
.shot b{display:block;color:var(--dim);font-size:13px;letter-spacing:.04em;margin-bottom:6px;font-weight:600}

/* subscribe */
.sub-box{border:1px solid var(--line);border-radius:3px;padding:38px;background:radial-gradient(70% 120% at 20% 0%, rgba(255,179,71,.07), transparent 60%),var(--panel)}
.form{display:flex;gap:10px;margin-top:22px;flex-wrap:wrap}
.form input{flex:1;min-width:220px;padding:12px 14px;background:#080c10;border:1px solid var(--line);border-radius:2px;color:var(--txt);font-size:14px;font-family:inherit;outline:none}
.form input:focus{border-color:var(--lumen)}
.form input::placeholder{color:var(--dim2)}
.form .hint{font-size:12px;color:var(--dim2);width:100%;margin-top:4px}
.form input:disabled{opacity:.45;cursor:not-allowed}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.45;cursor:not-allowed;pointer-events:none}
.note{font-size:12.5px;color:var(--dim2);margin-top:14px}

footer{border-top:1px solid var(--line);padding:40px 0 56px;font-size:12.5px;color:var(--dim2)}
footer .row{display:flex;gap:22px;flex-wrap:wrap;justify-content:space-between;align-items:center}
footer a:hover{color:var(--txt)}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}*{animation:none!important}}
