:root {
  --bg:      #000000;
  --panel:   #0a0a0a;
  --panel2:  #0d0d0d;
  --text:    #FFFFFF;
  --gold:    #c9a227;
  --gold-dim: #8a6f1c;
  --tag:     #9AA0A6;
  --muted:   #7F858C;
  --line:    #1c1c1c;
  --line2:   #141414;
  --maxw:    1120px;
  --mono: "SF Mono", ui-monospace, "JetBrains Mono", Menlo, Consolas, monospace;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
  background:var(--bg);
  color:var(--text);
  font-family:"Space Grotesk", Inter, system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  position:relative;
}
a { color:var(--gold); }
a:hover { color:#e0b93a; }

/* fixed decorative blueprint grid */
.bg-grid {
  position:fixed; inset:0; z-index:-2; pointer-events:none;
  background-image:
    linear-gradient(var(--line2) 1px, transparent 1px),
    linear-gradient(90deg, var(--line2) 1px, transparent 1px);
  background-size:56px 56px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 0%, #000 40%, transparent 85%);
}
.bg-glow {
  position:fixed; inset:-20%; z-index:-1; pointer-events:none;
  background:radial-gradient(600px 600px at 50% 50%, rgba(201,162,39,.10), transparent 70%);
  animation:drift 22s ease-in-out infinite alternate;
  will-change:transform;
}
@keyframes drift {
  0%   { transform:translate(-8%, -6%); }
  50%  { transform:translate(6%, 4%); }
  100% { transform:translate(-4%, 8%); }
}
@media (prefers-reduced-motion:reduce){ .bg-glow{ animation:none; transform:none; } }

.wrap { max-width:var(--maxw); margin:0 auto; padding:0 8vw; }

/* ---- top bar ---- */
header {
  position:sticky; top:0; z-index:40;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(10px);
  border-bottom:1px solid var(--line);
}
.bar {
  max-width:var(--maxw); margin:0 auto; padding:18px 8vw;
  display:flex; align-items:center; justify-content:space-between;
}
.logo { font-weight:700; letter-spacing:.22em; font-size:27px; color:#FFFFFF; text-decoration:none; }
.nav { display:flex; align-items:center; gap:28px; font-size:13px; letter-spacing:.04em; color:#FFFFFF; }
.nav a { color:var(--text); text-decoration:none; transition:color .2s; }
.nav a:hover { color:var(--gold); }
.back { font-size:13px; color:#FFFFFF; text-decoration:none; letter-spacing:.03em; }
.back:hover { color:var(--gold); }
.status-chip {
  display:flex; align-items:center; gap:8px;
  font-family:var(--mono); font-size:11px; letter-spacing:.06em; color:var(--muted);
  text-transform:uppercase;
}
.status-chip .dot {
  width:6px; height:6px; border-radius:50%; background:var(--gold);
  box-shadow:0 0 0 0 rgba(201,162,39,.6);
  animation:pulse 2.2s infinite;
}
@media (max-width:760px){ .nav{ display:none; } .status-chip{ display:none; } }

@keyframes pulse {
  0%   { box-shadow:0 0 0 0 rgba(201,162,39,.55); }
  70%  { box-shadow:0 0 0 7px rgba(201,162,39,0); }
  100% { box-shadow:0 0 0 0 rgba(201,162,39,0); }
}

/* ---- hero ---- */
.hero { padding-top:4vh; padding-bottom:6vh; position:relative; }
.hero-grid {
  display:grid; grid-template-columns:1.15fr .85fr; gap:60px; align-items:center;
  min-height:calc(100vh - 61px - 52px - 18vh);
  padding-bottom:3vh;
}
@media (max-width:960px){ .hero-grid{ grid-template-columns:1fr; min-height:auto; padding-top:2vh; } }

.eyebrow {
  color:var(--gold);
  font-size:13px; letter-spacing:.28em; text-transform:uppercase;
  font-weight:500;
  margin-bottom:26px;
  display:flex; align-items:center; gap:14px;
}
.hero .wrap > .eyebrow { margin-bottom:34px; }
.eyebrow::before { content:""; width:38px; height:1px; background:var(--gold); }
h1.brand {
  font-size:clamp(35px, 6vw, 50px);
  font-weight:700; letter-spacing:.06em; line-height:.98;
}
.brand .thin { color:var(--gold); }
.lede { margin-top:30px; max-width:560px; font-size:clamp(17px,2.1vw,21px); color:var(--tag); font-weight:400; }
.cta-row { margin-top:44px; display:flex; gap:16px; flex-wrap:wrap; }
.btn {
  display:inline-flex; align-items:center; gap:10px;
  padding:14px 26px; font-size:14px; letter-spacing:.04em;
  text-decoration:none; font-weight:500;
  border:1px solid var(--gold);
  transition:all .2s;
}
.btn.primary { background:var(--gold); color:#000; }
.btn.primary:hover { background:transparent; color:var(--gold); }
.btn.ghost { color:var(--text); border-color:var(--line); }
.btn.ghost:hover { border-color:var(--gold); color:var(--gold); }

/* ---- terminal panel ---- */
.term {
  background:var(--panel); border:1px solid var(--line);
  font-family:var(--mono); font-size:13px;
  box-shadow:0 30px 80px -30px rgba(0,0,0,.8);
}
.term-bar {
  display:flex; align-items:center; gap:8px;
  padding:12px 16px; border-bottom:1px solid var(--line);
}
.term-bar span { width:9px; height:9px; border-radius:50%; background:var(--line); }
.term-title {
  margin-left:8px; color:var(--muted); font-size:11.5px; letter-spacing:.03em;
}
.term-body { padding:22px 20px; display:flex; flex-direction:column; gap:11px; }
.term-body .line { color:var(--tag); }
.term-body .prompt { color:var(--gold); margin-right:8px; }
.term-body .line.ok { color:#e8e8e8; }
.term-body .line.ok::before { content:"✓ "; color:var(--gold); }
.term-body .line.active { color:var(--text); }
.term-body .line.active::before { content:"▸ "; color:var(--gold); }
.cursor { display:inline-block; color:var(--gold); animation:blink 1s step-end infinite; }
@keyframes blink { 0%,100% { opacity:1; } 50% { opacity:0; } }
.term-status {
  display:flex; align-items:center; gap:9px;
  padding:14px 20px; border-top:1px solid var(--line);
  font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--muted);
}
.term-status .dot { width:6px; height:6px; border-radius:50%; background:var(--gold); animation:pulse 2.2s infinite; }

/* ---- marquee ---- */
.marquee {
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden; white-space:nowrap; background:var(--panel);
}
.marquee-track {
  display:inline-flex; gap:26px; padding:14px 0;
  animation:marquee 32s linear infinite;
}
.marquee-track span {
  font-family:var(--mono); font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:var(--muted); display:inline-flex; gap:26px;
}
.marquee-track span em { color:var(--gold); font-style:normal; }
@keyframes marquee { from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }

/* ---- section frame ---- */
section.block { padding:96px 0; border-top:1px solid var(--line); position:relative; }
.sec-label {
  color:var(--gold); font-size:12px; letter-spacing:.24em; font-family:var(--mono);
  text-transform:uppercase; font-weight:500; margin-bottom:34px;
  display:flex; align-items:center; gap:12px;
}
.sec-label .idx { color:var(--muted); }
h2 { font-size:clamp(26px,3.4vw,40px); font-weight:600; letter-spacing:.01em; margin-bottom:18px; }
.sec-intro { color:var(--tag); max-width:640px; font-size:17px; }

/* ---- services grid ---- */
.grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line);
        margin-top:48px; border:1px solid var(--line); }
@media (max-width:820px){ .grid{ grid-template-columns:1fr; } }
.card { background:var(--bg); padding:34px 30px; position:relative; transition:background .25s; }
.card::before {
  content:""; position:absolute; top:0; left:0; right:0; height:2px;
  background:var(--gold); transform:scaleX(0); transform-origin:left; transition:transform .3s;
}
.card:hover::before { transform:scaleX(1); }
.card:hover { background:var(--panel2); }
.card .num { color:var(--gold); font-size:13px; letter-spacing:.1em; font-weight:500; font-family:var(--mono); }
.card h3 { font-size:19px; font-weight:600; margin:16px 0 10px; }
.card p  { color:var(--tag); font-size:14.5px; }

/* ---- portfolio ---- */
.portfolio-grid { margin-top:48px; display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--line); border:1px solid var(--line); }
@media (max-width:960px){ .portfolio-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:620px){ .portfolio-grid{ grid-template-columns:1fr; } }
.pf-card { background:var(--bg); display:flex; flex-direction:column; transition:background .25s; }
.pf-card:hover { background:var(--panel2); }
.pf-shot { aspect-ratio:16/10; border-bottom:1px solid var(--line); }
.pf-body { padding:22px 24px 28px; }
.pf-tag { font-family:var(--mono); font-size:11px; letter-spacing:.1em; text-transform:uppercase; color:var(--gold); margin-bottom:10px; }
.pf-body .name { font-weight:600; font-size:18px; letter-spacing:.02em; margin-bottom:8px; }
.pf-body .desc { color:var(--tag); font-size:14px; }

/* ---- compliance ---- */
.comply { margin-top:46px; display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
@media (max-width:820px){ .comply{ grid-template-columns:1fr; } }
.badge { border:1px solid var(--line); padding:28px 26px; transition:border-color .25s; }
.badge:hover { border-color:var(--gold-dim); }
.badge .k { color:var(--gold); font-size:12px; letter-spacing:.16em; text-transform:uppercase; font-weight:500; font-family:var(--mono); }
.badge h4 { font-size:17px; font-weight:600; margin:14px 0 8px; }
.badge p { color:var(--tag); font-size:14px; }
.disclaimer { margin-top:26px; color:var(--muted); font-size:12.5px; max-width:680px; }

/* ---- contact ---- */
.contact-block { text-align:left; }
.contact-block .big { font-size:clamp(15px,3.4vw,18px); font-weight:600; margin-top:8px; font-family:var(--mono); display:flex; align-items:center; gap:2px; }
.contact-block a.mail { color:var(--gold); text-decoration:none; }
.contact-block a.mail:hover { text-decoration:underline; }

/* ---- footer ---- */
footer { border-top:1px solid var(--line); padding:40px 0 60px; font-size:12.5px; color:var(--muted); }
.foot-row { display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; align-items:center; }
.foot-links { display:flex; gap:22px; flex-wrap:wrap; }
.foot-links a { color:var(--muted); text-decoration:none; }
.foot-links a:hover { color:var(--gold); }
.foot-legal { margin-top:22px; line-height:1.7; display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap; }
.foot-status { display:flex; align-items:center; gap:8px; font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
.foot-status .dot { width:6px; height:6px; border-radius:50%; background:var(--gold); animation:pulse 2.2s infinite; }

/* ---- legal pages ---- */
.hd { padding:70px 0 40px; }
.updated { color:var(--muted); font-size:13px; margin-top:16px; font-family:var(--mono); }
main.legal { padding-bottom:90px; }
main.legal section { padding:26px 0; border-top:1px solid var(--line); }
main.legal h2 { font-size:20px; font-weight:600; color:var(--gold); margin-bottom:14px; letter-spacing:.01em; }
main.legal h3 { font-size:15px; font-weight:600; margin:18px 0 6px; }
main.legal p { color:var(--tag); font-size:15px; margin-bottom:12px; }
main.legal ul { color:var(--tag); font-size:15px; margin:0 0 12px 20px; }
main.legal li { margin-bottom:7px; }
main.legal strong { color:var(--text); font-weight:600; }
main.legal table { width:100%; border-collapse:collapse; margin:10px 0 16px; font-size:14px; }
main.legal td, main.legal th { border:1px solid var(--line); padding:10px 12px; text-align:left; vertical-align:top; color:var(--tag); }
main.legal th { color:var(--text); font-weight:600; background:var(--panel); }

/* ---- cookie banner ---- */
.cookie { position:fixed; left:0; right:0; bottom:0; z-index:60; background:var(--panel); border-top:1px solid var(--gold); padding:22px 8vw; display:none; }
.cookie.show { display:block; }
.cookie-inner { max-width:var(--maxw); margin:0 auto; display:flex; gap:26px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.cookie p { font-size:13.5px; color:var(--tag); max-width:640px; }
.cookie p a { color:var(--gold); }
.cookie-btns { display:flex; gap:12px; flex-wrap:wrap; }
.cookie-btns button {
  font-family:inherit; cursor:pointer;
  padding:11px 22px; font-size:13px; letter-spacing:.03em;
  border:1px solid var(--line); background:transparent; color:var(--text);
  transition:all .2s;
}
.cookie-btns .accept { background:var(--gold); color:#000; border-color:var(--gold); }
.cookie-btns .accept:hover { background:transparent; color:var(--gold); }
.cookie-btns .decline:hover { border-color:var(--gold); color:var(--gold); }

/* ---- reveal-on-scroll ---- */
[data-reveal] { opacity:0; transform:translateY(16px); transition:opacity .6s ease, transform .6s ease; }
[data-reveal].in { opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ [data-reveal]{ opacity:1; transform:none; transition:none; } }

:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
@media (prefers-reduced-motion:reduce){ html{ scroll-behavior:auto; } }

/* ---- language switcher ---- */
.bar-right { display:flex; align-items:center; gap:20px; }
.lang-link {
  font-family:var(--mono); font-size:11px; letter-spacing:.08em; text-transform:uppercase;
  color:var(--muted); text-decoration:none;
  border:1px solid var(--line); border-radius:4px;
  padding:5px 10px; transition:all .2s;
}
.lang-link:hover { color:var(--gold); border-color:var(--gold-dim); }
.nav .lang-link { margin-left:4px; }
