*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0d0d0d;
  --fg:#fbf8f1;
  --accent:#ffd23f;
  --grid:rgba(255,210,63,.08);
  --mono:'JetBrains Mono',monospace;
}
html{scroll-behavior:smooth}
body{
  background:var(--bg);
  color:var(--fg);
  font-family:var(--mono);
  min-height:100vh;
  overflow-x:hidden;
  cursor:crosshair;
  display:flex;
  flex-direction:column;
}

/* Grid background */
.grid-bg{
  position:fixed;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:32px 32px;
}

/* Scanline cursor */
.scanline{
  position:fixed;left:0;right:0;height:2px;z-index:9998;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(255,210,63,.12) 20%,rgba(255,210,63,.18) 50%,rgba(255,210,63,.12) 80%,transparent);
  transform:translateY(-100vh);
}

/* Topbar — full viewport width, sticky */
.topbar{
  position:sticky;top:0;z-index:50;flex-shrink:0;
  display:flex;justify-content:space-between;align-items:center;
  padding:18px 48px;
  background:rgba(13,13,13,.97);
  backdrop-filter:blur(12px);
  border-bottom:1px solid rgba(255,210,63,.15);
  font-size:13px;
}
.topbar-prompt{color:var(--accent)}
.topbar-nav{display:flex;gap:10px;align-items:center;font-size:12px}
.topbar-nav .dot{color:var(--accent);margin-right:6px;opacity:.8}
.topbar-nav .sep{opacity:.35}
.topbar-nav a{color:var(--fg);text-decoration:none;opacity:.6;transition:color .2s,opacity .2s}
.topbar-nav a:hover,.topbar-nav a.active{color:var(--accent);opacity:1}

/* Page wrapper — fills remaining height */
.page-wrap{
  flex:1;
  display:flex;
  flex-direction:column;
  position:relative;
  z-index:1;
}

/* Container */
.container{
  max-width:1440px;width:100%;
  margin:0 auto;
  padding:0 56px;
  flex:1;
  display:flex;
  flex-direction:column;
}

/* Section command label */
.section-cmd{color:var(--accent);font-size:13px;margin-bottom:24px}

/* Contact footer — pushed to bottom via margin-top:auto */
.contact-section{
  margin-top:auto;
  padding:56px 0 40px;
  border-top:1px solid rgba(255,210,63,.1);
}
.contact-cmd{font-size:13px;color:var(--accent)}
.contact-sub{font-size:12px;opacity:.5;margin-top:6px;line-height:1.7}
.contact-sub span{color:var(--accent);opacity:.8}
.contact-output{
  font-size:13px;opacity:.85;margin-top:12px;line-height:1.9;
}
.contact-output a{color:var(--fg);text-decoration:none;transition:color .2s}
.contact-output a:hover{color:var(--accent)}
.footer-prompt{font-size:13px;color:var(--accent);margin-top:24px}
.footer-prompt .blinking{
  display:inline-block;
  background:var(--accent);color:var(--bg);
  padding:0 5px;animation:blink 1s step-end infinite;
}

/* Animations */
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}

/* Boot overlay */
.boot-overlay{
  position:fixed;inset:0;z-index:9999;
  background:var(--bg);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .5s;
}
.boot-overlay.done{opacity:0;pointer-events:none}
.boot-lines{
  font-size:20px;color:var(--accent);
  max-width:800px;width:90%;line-height:2.2;
}
.boot-lines .line{opacity:0;transform:translateX(-8px);transition:opacity .28s,transform .28s}
.boot-lines .line.visible{opacity:1;transform:translateX(0)}
.boot-lines .line.dim{color:rgba(255,210,63,.5)}
.boot-lines .line.ok{color:var(--fg);opacity:.7}

/* Selection */
::selection{background:var(--accent);color:var(--bg)}

/* Responsive */
@media(max-width:1100px){
  .container{padding:0 40px}
  .topbar{padding:16px 40px}
}
@media(max-width:768px){
  .container{padding:0 28px}
  .topbar{padding:14px 28px;font-size:12px}
}
@media(max-width:520px){
  .container{padding:0 18px}
  .topbar{padding:12px 18px;font-size:11px}
  .topbar-nav .dot{display:none}
  .boot-lines{font-size:15px;line-height:2}
  .contact-section{padding:36px 0 28px}
}
