/* Enterprise Game Studios — enterprise.surf */
:root{
  --night:   #0b0920;
  --night-2: #120f2e;
  --slab:    #1a1640;
  --slab-2:  #231d55;
  --text:    #f5f2ff;
  --muted:   #c3bee2;
  --dim:     #8a83b6;
  --rule:    #322a70;
  --edge:    #f5f2ff;
  --void:    #06041a;
  --mint:    #44ff99;
  --rose:    #ff4fa3;
  --sun:     #ffd447;
  --sky:     #44dcff;
  --ember:   #ff8a3d;
  /* reading surface for legal pages */
  --paper:   #fbfaff;
  --ink:     #1c1838;
  --ink-2:   #46416a;
  --ink-rule:#e2def3;
  --link:    #4b3cd6;
  --gutter:  clamp(16px, 4vw, 56px);
  --wide:    1160px;
  --f-pixel: "Pixelify Sans", ui-monospace, monospace;
  --f-8bit:  "Press Start 2P", ui-monospace, monospace;
  --f-text:  "Space Grotesk", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;
  --u: 4px;
  color-scheme: dark;
}
*,*::before,*::after{ box-sizing:border-box; }
html{ background:var(--night); color:var(--text); -webkit-font-smoothing:antialiased; }
body{ margin:0; font-family:var(--f-text); line-height:1.65; overflow-x:hidden; background:var(--night);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240' shape-rendering='crispEdges'%3E%3Crect x='20' y='30' width='3' height='3' fill='%23fff' opacity='.45'/%3E%3Crect x='110' y='70' width='2' height='2' fill='%23fff' opacity='.3'/%3E%3Crect x='190' y='24' width='3' height='3' fill='%2344dcff' opacity='.4'/%3E%3Crect x='64' y='160' width='2' height='2' fill='%23fff' opacity='.25'/%3E%3Crect x='206' y='150' width='3' height='3' fill='%23ff4fa3' opacity='.35'/%3E%3C/svg%3E"); }
a{ color:inherit; text-decoration:none; }
img, svg{ max-width:100%; }
::selection{ background:var(--mint); color:var(--void); }
h1,h2,h3{ margin:0; font-family:var(--f-pixel); font-weight:700; line-height:1.05; text-wrap:balance; }
p{ margin:0; }
.container{ width:100%; max-width:var(--wide); margin-inline:auto; padding-inline:var(--gutter); }
.bit{ font-family:var(--f-8bit); font-size:10px; letter-spacing:.07em; text-transform:uppercase; line-height:1.7; }
svg.spr{ display:block; width:100%; height:auto; image-rendering:pixelated; }
:focus-visible{ outline:3px dashed var(--sun); outline-offset:4px; }

/* notched pixel border */
.notch{ box-shadow:0 calc(var(--u)*-1) 0 0 var(--bc,var(--edge)), 0 var(--u) 0 0 var(--bc,var(--edge)), calc(var(--u)*-1) 0 0 0 var(--bc,var(--edge)), var(--u) 0 0 0 var(--bc,var(--edge)); margin:var(--u); }

/* ---------- Header ---------- */
.hud-bar{ position:sticky; top:0; z-index:60; background:rgba(11,9,32,.92); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); }
.hud-bar::after{ content:""; display:block; height:5px; background:repeating-linear-gradient(90deg, var(--mint) 0 12px, var(--sky) 12px 24px, var(--rose) 24px 36px, var(--sun) 36px 48px); }
.hud-row{ display:flex; align-items:center; height:66px; gap:18px; }
.logo{ display:flex; align-items:center; gap:12px; min-width:0; }
.logo-mark{ width:32px; flex:0 0 32px; }
.logo-word{ font-family:var(--f-pixel); font-weight:700; font-size:21px; line-height:1; white-space:nowrap; }
.logo-word small{ display:block; font-family:var(--f-8bit); font-size:7px; letter-spacing:.14em; color:var(--mint); margin-top:5px; font-weight:400; }
.menu{ margin-left:auto; display:flex; gap:2px; align-items:center; }
.menu a{ font-size:15px; font-weight:500; color:var(--muted); padding:8px 14px; }
.menu a:hover{ color:var(--text); background:var(--slab); }
.menu a[aria-current="page"]{ color:var(--void); background:var(--sun); }
@media (max-width:600px){
  .logo-word small{ display:none; }
  .logo-word{ font-size:19px; }
  .menu a{ padding:7px 8px; font-size:14px; }
  .menu a[href="/"]{ display:none; }
}

/* ---------- Buttons ---------- */
.key{ --bc:var(--void); display:inline-flex; align-items:center; gap:10px; padding:14px 22px; font-family:var(--f-8bit); font-size:11px; letter-spacing:.05em; text-transform:uppercase; cursor:pointer; position:relative; color:var(--void); background:var(--sun); transition:transform .08s steps(2); }
.key::after{ content:""; position:absolute; inset:0; pointer-events:none; box-shadow:inset 0 -5px 0 rgba(0,0,0,.25), inset 0 4px 0 rgba(255,255,255,.38); }
.key:hover{ transform:translateY(-3px); }
.key.dark{ background:var(--slab-2); color:var(--text); --bc:var(--edge); }
.key.dark::after{ box-shadow:inset 0 -5px 0 rgba(0,0,0,.35), inset 0 4px 0 rgba(255,255,255,.08); }
.key.lower{ text-transform:none; letter-spacing:0; }

/* ---------- Home hero ---------- */
.title-screen{ position:relative; overflow:hidden; text-align:center; padding-block:clamp(72px,10vw,128px) 190px;
  background:linear-gradient(to bottom, #0b0920 0%, #1b1150 55%, #3a1763 80%, #6b2363 100%); }
.title-screen .moon{ position:absolute; width:clamp(80px,11vw,140px); right:8%; top:12%; }
.title-screen .flyby{ position:absolute; width:clamp(70px,8vw,110px); top:22%; left:-160px; animation:flyby 14s linear infinite; }
@keyframes flyby{ from{ transform:translateX(0); } to{ transform:translateX(calc(100vw + 320px)); } }
.skyline{ position:absolute; left:0; right:0; bottom:50px; height:110px; }
.skyline svg{ width:100%; height:100%; }
.grass{ position:absolute; left:0; right:0; bottom:0; height:50px; background:
  linear-gradient(var(--mint) 0 8px, var(--void) 8px 12px, transparent 12px),
  repeating-linear-gradient(90deg, #1d7a48 0 28px, #166339 28px 56px); }
.title-copy{ position:relative; z-index:3; padding-inline:var(--gutter); }
.title-copy .eyebrow{ color:var(--sky); margin-bottom:22px; }
.big-name{ font-size:clamp(50px,11vw,156px); text-transform:uppercase; color:var(--sun);
  text-shadow:4px 4px 0 var(--ember), 8px 8px 0 var(--rose), 12px 12px 0 var(--void); }
.big-sub{ margin-top:16px; font-family:var(--f-8bit); font-size:clamp(11px,1.6vw,17px); letter-spacing:.3em; }
.title-copy .pitch{ margin:28px auto 0; max-width:44ch; font-size:clamp(17px,1.5vw,20px); color:var(--muted); }
.title-copy .actions{ margin-top:32px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ---------- Home: what we make ---------- */
.make{ padding-block:clamp(64px,8vw,104px) 0; }
.make-head{ max-width:640px; margin-bottom:40px; }
.make-head h2{ font-size:clamp(34px,4.6vw,56px); text-transform:uppercase; }
.make-head p{ margin-top:16px; color:var(--muted); font-size:18px; }
.make-grid{ display:grid; grid-template-columns:1fr 1fr; gap:32px; }
.make-card{ --bc:var(--rule); background:var(--slab); padding:30px 30px 32px; display:grid; grid-template-columns:72px 1fr; gap:24px; align-items:start; }
.make-card .ico{ width:72px; }
.make-card h3{ font-size:34px; text-transform:uppercase; }
.make-card.g h3{ color:var(--mint); }
.make-card.a h3{ color:var(--sky); }
.make-card p{ margin-top:10px; color:var(--muted); font-size:16.5px; }

.contact-band{ margin-top:clamp(64px,8vw,104px); background:var(--void); border-block:5px solid var(--rose); text-align:center; padding-block:clamp(48px,7vw,80px); }
.contact-band h2{ font-size:clamp(32px,5vw,56px); text-transform:uppercase; }
.contact-band p{ margin:16px auto 0; max-width:46ch; color:var(--muted); font-size:17px; }
.contact-band .actions{ margin-top:28px; display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }

/* ---------- Footer ---------- */
.site-foot{ border-top:4px solid var(--rule); background:var(--void); padding-block:30px; margin-top:clamp(64px,8vw,104px); }
.contact-band + .site-foot{ margin-top:0; }
.foot-grid{ display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:18px; }
.foot-links{ display:flex; flex-wrap:wrap; gap:6px 22px; }
.foot-links a{ color:var(--muted); font-size:15px; }
.foot-links a:hover{ color:var(--sun); }
.foot-meta{ margin-top:20px; color:var(--dim); font-size:9px; }

/* ---------- Inner page top ---------- */
.page-top{ padding-block:clamp(44px,6vw,72px) clamp(32px,4vw,48px); }
.page-top .crumb{ color:var(--sky); margin-bottom:16px; }
.page-top h1{ font-size:clamp(40px,6vw,72px); text-transform:uppercase; }
.page-top .lead{ margin-top:16px; max-width:62ch; color:var(--muted); font-size:18px; }

/* ---------- Support ---------- */
.support-wrap{ max-width:820px; }
.mail-card{ --bc:var(--edge); background:var(--slab); padding:30px 30px 32px; }
.mail-card .bit{ color:var(--dim); }
.mail-card .addr{ display:block; margin-top:10px; font-family:var(--f-pixel); font-size:clamp(24px,4vw,38px); color:var(--sun); word-break:break-word; }
.mail-card .row{ margin-top:22px; display:flex; flex-wrap:wrap; gap:12px; }
.mail-card .facts{ margin-top:26px; padding-top:22px; border-top:2px dashed var(--rule); display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.mail-card .facts div{ min-width:0; }
.mail-card .facts span{ display:block; margin-top:6px; font-size:16px; }
.support-notes{ margin-top:44px; display:grid; gap:28px; }
.support-notes h2{ font-family:var(--f-text); font-size:22px; font-weight:700; }
.support-notes p, .support-notes li{ color:var(--muted); font-size:16.5px; }
.support-notes p{ margin-top:8px; }
.support-notes ul{ margin:10px 0 0; padding-left:20px; display:grid; gap:6px; }
.support-notes a{ color:var(--sky); text-decoration:underline; text-underline-offset:3px; }
@media (max-width:640px){ .mail-card .facts{ grid-template-columns:1fr; } .mail-card{ padding:24px 20px; } }

/* ---------- Legal: light reading sheet ---------- */
.sheet{ background:var(--paper); color:var(--ink); max-width:860px; margin-inline:auto; padding:clamp(28px,5vw,64px) clamp(20px,5vw,72px) clamp(36px,5vw,64px); box-shadow:0 0 0 4px var(--rule), 12px 12px 0 0 var(--void); }
.sheet .updated{ display:inline-block; background:#efecff; color:var(--ink-2); font-size:14.5px; padding:8px 12px; margin-bottom:28px; }
.sheet .updated b{ color:var(--ink); }
.sheet .intro{ font-size:18px; color:var(--ink); }
.sheet section{ margin-top:38px; scroll-margin-top:90px; }
.sheet h2{ font-family:var(--f-text); font-size:23px; font-weight:700; line-height:1.3; color:var(--ink); margin-bottom:12px; }
.sheet h2 .no{ color:var(--link); margin-right:10px; font-variant-numeric:tabular-nums; }
.sheet h3{ font-family:var(--f-text); font-size:18px; font-weight:700; color:var(--ink); margin:22px 0 6px; }
.sheet p, .sheet li, .sheet td{ font-size:17px; line-height:1.75; color:var(--ink-2); }
.sheet p + p{ margin-top:12px; }
.sheet b, .sheet strong{ color:var(--ink); font-weight:600; }
.sheet a{ color:var(--link); text-decoration:underline; text-underline-offset:3px; }
.sheet ul{ margin:10px 0 0; padding-left:22px; display:grid; gap:6px; }
.sheet .summary{ background:#f1eeff; border-left:5px solid var(--link); padding:18px 22px; margin-top:28px; }
.sheet .summary h2{ font-size:18px; margin-bottom:6px; }
.sheet .summary li{ color:var(--ink); }
.tbl-wrap{ margin-top:14px; overflow-x:auto; }
.tbl{ width:100%; border-collapse:collapse; min-width:480px; }
.tbl th{ text-align:left; font-size:14px; font-weight:700; color:var(--ink); background:#efecff; padding:10px 12px; }
.tbl td{ padding:10px 12px; border-top:1px solid var(--ink-rule); vertical-align:top; font-size:15.5px !important; line-height:1.55 !important; }
.tbl td:first-child{ color:var(--ink); font-weight:600; }
.sheet .contact-line{ margin-top:40px; padding-top:24px; border-top:2px solid var(--ink-rule); }

/* ---------- 404 ---------- */
.over{ min-height:64vh; display:grid; place-items:center; text-align:center; padding:60px var(--gutter); }
.over h1{ font-size:clamp(48px,9vw,110px); color:var(--rose); text-transform:uppercase; }
.over p{ margin-top:16px; color:var(--muted); font-size:18px; }
.over .actions{ margin-top:28px; }

@media (max-width:820px){
  .make-grid{ grid-template-columns:1fr; }
}
@media (max-width:460px){
  .make-card{ grid-template-columns:1fr; padding:24px 20px; }
  .make-card .ico{ width:60px; }
  .key{ padding:13px 16px; font-size:10px; }
}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  .title-screen .flyby{ display:none; }
}
