
:root{
  --bg0:#05050a;
  --bg1:#0a0a16;
  --panel: rgba(12,12,22,.74);
  --panel2: rgba(18,18,34,.70);
  --text:#f5f7ff;
  --muted: rgba(245,247,255,.74);
  --muted2: rgba(245,247,255,.56);
  --line: rgba(245,247,255,.10);
  --n1:#8b5cf6; /* violet */
  --n2:#ec4899; /* pink */
  --n3:#22d3ee; /* cyan */
  --shadow: 0 18px 60px rgba(0,0,0,.45);
  --shadow2: 0 12px 40px rgba(0,0,0,.38);
  --max: 1060px;
}

*{ box-sizing:border-box; }
html, body{ height:100%; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  color:var(--text);
  font-family: ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  line-height:1.65;
  background:
    radial-gradient(900px 520px at 18% 22%, rgba(139,92,246,.18), transparent 60%),
    radial-gradient(900px 520px at 80% 18%, rgba(34,211,238,.14), transparent 58%),
    radial-gradient(1100px 740px at 60% 82%, rgba(236,72,153,.12), transparent 62%),
    linear-gradient(180deg, var(--bg0), var(--bg1));
  overflow-x:hidden;
}

/* subtle bloom without heavy textures */
body::after{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background: radial-gradient(900px 520px at 50% 50%, rgba(34,211,238,.05), transparent 62%);
  opacity:.9;
}

a{ color:inherit; text-decoration:none; }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:2px solid rgba(34,211,238,.78);
  outline-offset:3px;
  border-radius: 10px;
}

.header{
  position:sticky;
  top:0;
  z-index:50;
  backdrop-filter: blur(10px);
  background: linear-gradient(to bottom, rgba(5,5,10,.86), rgba(5,5,10,.62));
  border-bottom: 1px solid rgba(245,247,255,.08);
}
.topbar{
  max-width: var(--max);
  margin: 0 auto;
  padding: 14px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
}
.brand{
  display:flex;
  align-items:center;
  gap: 10px;
  letter-spacing:.14em;
  text-transform: uppercase;
  font-size: 12px;
  color: var(--muted);
}
.brand .dot{
  width:10px; height:10px;
  border-radius: 999px;
  background: linear-gradient(135deg, var(--n3), var(--n2));
  box-shadow: 0 0 0 3px rgba(34,211,238,.12), 0 0 22px rgba(34,211,238,.25);
}
.corner{ display:flex; flex-direction:column; align-items:flex-end; gap:8px; }

.contact-btn{
  display:grid;
  place-items:center;
  width:56px; height:56px;
  border-radius:16px;
  border:1px solid rgba(245,247,255,.12);
  background: rgba(12,12,22,.62);
  box-shadow: var(--shadow2);
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.contact-btn:hover{
  transform: translateY(-2px);
  border-color: rgba(34,211,238,.35);
  box-shadow: 0 0 0 1px rgba(34,211,238,.18), var(--shadow);
}
.contact-btn:active{ transform: translateY(0) scale(.99); }
.contact-btn img{ width:34px; height:34px; display:block; object-fit:contain; }

.bio-btn{
  font-size: 12px;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: var(--muted);
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(245,247,255,.10);
  background: rgba(12,12,22,.50);
  transition: transform .18s ease, border-color .18s ease;
}
.bio-btn:hover{ transform: translateY(-1px); border-color: rgba(236,72,153,.35); }
.bio-btn:active{ transform: translateY(0) scale(.99); }

.container{
  max-width: var(--max);
  margin: 0 auto;
  padding: 28px 18px 70px;
}

.panel{
  background: var(--panel);
  border: 1px solid rgba(245,247,255,.10);
  border-radius: 22px;
  box-shadow: var(--shadow);
  padding: 22px;
}

.h1{
  font-size: clamp(26px, 3.4vw, 46px);
  line-height: 1.1;
  margin: 0 0 10px;
  letter-spacing: .01em;
}
.sub{
  color: var(--muted);
  margin: 0;
  font-size: 16px;
  max-width: 78ch;
}
.kicker{
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px dashed rgba(245,247,255,.14);
  color: var(--muted2);
  font-size: 13px;
}

.nav-links{
  display:flex;
  gap:10px;
  flex-wrap: wrap;
  margin-top: 14px;
}
.pill{
  display:inline-flex;
  align-items:center;
  padding: 10px 12px;
  border-radius: 999px;
  border: 1px solid rgba(245,247,255,.10);
  background: rgba(12,12,22,.45);
  color: var(--muted);
  letter-spacing: .14em;
  text-transform: uppercase;
  font-size: 11px;
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.pill:hover{
  transform: translateY(-1px);
  border-color: rgba(139,92,246,.35);
  box-shadow: 0 0 0 1px rgba(139,92,246,.12);
}
.pill.active{
  border-color: rgba(34,211,238,.45);
  box-shadow: 0 0 0 1px rgba(34,211,238,.16);
}

.diagonal{
  position:relative;
  height: clamp(380px, 48vh, 520px);
  margin-top: 18px;
}

.big-btn{
  position:absolute;
  min-width: min(360px, 82vw);
  max-width: 520px;
  padding: 18px 18px 16px;
  border-radius: 20px;
  border: 1px solid rgba(245,247,255,.12);
  background: linear-gradient(180deg, rgba(18,18,34,.82), rgba(12,12,22,.62));
  box-shadow: var(--shadow2);
  cursor:pointer;
  user-select:none;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease, filter .18s ease;
  overflow:hidden;
}
.big-btn .label{
  font-size: clamp(24px, 3.1vw, 40px);
  font-weight: 750;
  letter-spacing: .09em;
}
.big-btn .hint{
  margin-top: 6px;
  color: var(--muted);
  font-size: 14px;
  max-width: 55ch;
}
.big-btn::before{
  content:"";
  position:absolute;
  inset:-2px;
  border-radius: 22px;
  background:
    radial-gradient(240px 180px at 20% 20%, rgba(34,211,238,.20), transparent 62%),
    radial-gradient(240px 180px at 80% 20%, rgba(236,72,153,.18), transparent 62%),
    radial-gradient(240px 180px at 70% 86%, rgba(139,92,246,.18), transparent 64%);
  opacity:.58;
  pointer-events:none;
}
.big-btn:hover{
  transform: translateY(-3px) translateX(2px);
  border-color: rgba(34,211,238,.35);
  box-shadow: 0 0 0 1px rgba(34,211,238,.18), var(--shadow);
  filter: saturate(1.05);
}
.big-btn:active{ transform: translateY(-1px) translateX(1px) scale(.99); }

.big-btn.glow-violet:hover{ border-color: rgba(139,92,246,.45); box-shadow: 0 0 0 1px rgba(139,92,246,.18), var(--shadow); }
.big-btn.glow-pink:hover{ border-color: rgba(236,72,153,.45); box-shadow: 0 0 0 1px rgba(236,72,153,.18), var(--shadow); }
.big-btn.glow-cyan:hover{ border-color: rgba(34,211,238,.45); box-shadow: 0 0 0 1px rgba(34,211,238,.18), var(--shadow); }

.pos-1{ left: 0; top: 0; }
.pos-2{ left: 16%; top: 26%; }
.pos-3{ left: 32%; top: 52%; }
.pos-4{ left: 48%; top: 78%; }

@media (max-width: 860px){
  .diagonal{ height:auto; display:flex; flex-direction:column; gap: 12px; }
  .big-btn{ position:relative; left:auto !important; top:auto !important; min-width: 100%; }
}

/* Cards */
.cards{
  margin-top: 18px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}
@media (max-width: 860px){
  .cards{ grid-template-columns: 1fr; }
}
.card{
  background: rgba(12,12,22,.58);
  border: 1px solid rgba(245,247,255,.10);
  border-radius: 18px;
  padding: 16px 16px 14px;
  box-shadow: 0 10px 30px rgba(0,0,0,.30);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.card:hover{
  transform: translateY(-2px);
  border-color: rgba(245,247,255,.16);
  box-shadow: 0 14px 38px rgba(0,0,0,.36);
}
.card h3{ margin:0 0 6px; font-size: 16px; line-height:1.25; }
.card p{ margin:0 0 10px; color: var(--muted); font-size: 14px; }
.tags{ display:flex; flex-wrap:wrap; gap:8px; margin-bottom: 12px; }
.tag{
  font-size: 11px;
  letter-spacing: .10em;
  text-transform: uppercase;
  color: rgba(245,247,255,.78);
  border: 1px solid rgba(245,247,255,.10);
  background: rgba(18,18,34,.45);
  padding: 6px 8px;
  border-radius: 999px;
}
.actions{ display:flex; gap:10px; flex-wrap:wrap; }

.btn{
  display:inline-flex;
  align-items:center;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(245,247,255,.12);
  background: rgba(18,18,34,.55);
  color: var(--text);
  cursor:pointer;
  transition: transform .18s ease, border-color .18s ease;
}
.btn:hover{ transform: translateY(-1px); border-color: rgba(34,211,238,.30); }
.btn:active{ transform: translateY(0) scale(.99); }
.btn[disabled]{ opacity:.55; cursor:not-allowed; }

.hashtags{
  margin-top: 16px;
  padding-top: 14px;
  border-top: 1px dashed rgba(245,247,255,.12);
  color: var(--muted2);
  font-size: 13px;
}
.hashtags .hash{
  display:inline-block;
  margin: 6px 8px 0 0;
  padding: 6px 8px;
  border-radius: 999px;
  border: 1px solid rgba(245,247,255,.10);
  background: rgba(12,12,22,.45);
}

/* FX overlays */
.fx-layer{
  position:fixed;
  inset:0;
  pointer-events:none;
  z-index: 200;
}
.fx-layer .scanline{
  position:absolute;
  left:-10%;
  right:-10%;
  height: 6px;
  top:-10px;
  background: linear-gradient(90deg, transparent, rgba(34,211,238,.55), transparent);
  opacity:0;
}
.fx-layer .glitch{
  position:absolute;
  inset:0;
  opacity:0;
  background:
    repeating-linear-gradient(0deg, rgba(245,247,255,.06) 0 1px, transparent 1px 3px),
    radial-gradient(600px 420px at 40% 30%, rgba(236,72,153,.18), transparent 62%),
    radial-gradient(700px 500px at 70% 70%, rgba(34,211,238,.14), transparent 64%);
  mix-blend-mode: screen;
}

.toast{
  position: fixed;
  left: 50%;
  top: 18px;
  transform: translateX(-50%);
  z-index: 210;
  padding: 10px 12px;
  border-radius: 14px;
  border: 1px solid rgba(245,247,255,.12);
  background: rgba(12,12,22,.78);
  box-shadow: var(--shadow);
  color: var(--muted);
  font-size: 12px;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity:0;
  transition: opacity .18s ease, transform .18s ease;
}
.toast.show{ opacity:1; transform: translateX(-50%) translateY(2px); }

/* Modal */
.modal-backdrop{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.55);
  backdrop-filter: blur(6px);
  z-index: 300;
  display:none;
  align-items:center;
  justify-content:center;
  padding: 18px;
}
.modal-backdrop.open{ display:flex; }
.modal{
  width:min(720px, 100%);
  background: rgba(12,12,22,.92);
  border: 1px solid rgba(245,247,255,.12);
  border-radius: 18px;
  box-shadow: var(--shadow);
  padding: 16px;
}
.modal header{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap: 10px;
  margin-bottom: 10px;
}
.modal h3{ margin:0; font-size: 16px; letter-spacing: .06em; text-transform: uppercase; color: var(--muted); }
.close{
  width:40px; height:40px;
  border-radius: 12px;
  border: 1px solid rgba(245,247,255,.12);
  background: rgba(18,18,34,.55);
  color: var(--text);
  cursor:pointer;
}
.close:hover{ border-color: rgba(236,72,153,.35); }

.form{
  display:grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
.form .full{ grid-column: 1 / -1; }
label{
  display:block;
  font-size: 12px;
  color: var(--muted2);
  letter-spacing:.08em;
  text-transform: uppercase;
  margin: 6px 0;
}
input, textarea{
  width:100%;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(245,247,255,.12);
  background: rgba(18,18,34,.55);
  color: var(--text);
}
textarea{ min-height: 120px; resize: vertical; }

.notice{
  margin-top: 10px;
  color: var(--muted);
  font-size: 13px;
}
.footer{
  margin-top: 18px;
  color: var(--muted2);
  font-size: 12px;
  text-align:center;
}


/* Side vertical navigation (projects/funding, friends, offer, bio) */
.side-rail{
  position: fixed;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  z-index: 60;
  display:flex;
  flex-direction:column;
  gap: 10px;
}
.side-rail a{
  display:flex;
  align-items:center;
  justify-content:center;
  width: 44px;
  height: 128px;
  padding: 10px 8px;
  border-radius: 16px;
  border: 1px solid rgba(245,247,255,.10);
  background: rgba(12,12,22,.52);
  box-shadow: 0 10px 26px rgba(0,0,0,.28);
  color: rgba(245,247,255,.70);
  letter-spacing: .16em;
  text-transform: uppercase;
  font-size: 11px;
  writing-mode: vertical-rl;
  transform: rotate(180deg);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease, color .18s ease;
}
.side-rail a:hover{
  transform: rotate(180deg) translateY(-2px);
  border-color: rgba(34,211,238,.32);
  box-shadow: 0 0 0 1px rgba(34,211,238,.14), 0 16px 36px rgba(0,0,0,.34);
  color: rgba(245,247,255,.90);
}
.side-rail a:active{
  transform: rotate(180deg) translateY(-1px) scale(.99);
}
.side-rail a.active{
  border-color: rgba(236,72,153,.40);
  box-shadow: 0 0 0 1px rgba(236,72,153,.14), 0 16px 36px rgba(0,0,0,.34);
  color: rgba(245,247,255,.92);
}

/* Mobile: bottom pill bar */
@media (max-width: 860px){
  .side-rail{
    left: 50%;
    top: auto;
    bottom: 12px;
    transform: translateX(-50%);
    flex-direction: row;
    gap: 10px;
    padding: 6px;
    border-radius: 18px;
    background: rgba(5,5,10,.45);
    border: 1px solid rgba(245,247,255,.08);
    backdrop-filter: blur(8px);
  }
  .side-rail a{
    width: auto;
    height: auto;
    padding: 10px 12px;
    writing-mode: horizontal-tb;
    transform: none;
    border-radius: 999px;
  }
  .side-rail a:hover{ transform: translateY(-1px); }
  .side-rail a:active{ transform: translateY(0) scale(.99); }
}

@media (prefers-reduced-motion: reduce){
  *, *::before, *::after { animation: none !important; transition: none !important; }
  html{ scroll-behavior:auto; }
}



/* ====== Home/header tweaks (2026-02) ====== */
.toplinks{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  align-items:center;
  justify-content:flex-start;
  padding: 0;
}
.toplinks a{
  color: rgba(245,247,255,.86);
  text-decoration:none;
  font-weight:600;
  letter-spacing:.02em;
  font-size: 15px;
  padding: 8px 10px;
  border-radius: 12px;
  border: 1px solid transparent;
}
.toplinks a:hover{
  border-color: rgba(245,247,255,.14);
  background: rgba(245,247,255,.04);
}

.center{ text-align:center; }
.home-copy{ margin-top: 22px; }
.home-copy p{ max-width: 920px; margin-left:auto; margin-right:auto; }
.quote{
  max-width: 920px;
  margin: 14px auto 0;
  padding: 14px 16px;
  border-left: 3px solid rgba(245,247,255,.18);
  background: rgba(12,12,22,.38);
  border-radius: 14px;
  color: rgba(245,247,255,.82);
}

.footer-note{
  max-width: var(--max);
  margin: 24px auto 36px;
  padding: 14px 16px;
  border-top: 1px solid var(--line);
  color: rgba(245,247,255,.70);
  font-size: 13px;
  text-align:center;
}

/* Diagonal buttons: readable overlap (no text collisions) */
.diagonal{
  position: relative;
  height: auto;
  margin-top: 18px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.big-btn{
  position: relative !important;
  min-width: unset !important;
  max-width: unset !important;
  /* Scaled down ~15% for better visual balance */
  width: clamp(238px, calc(78vw * .85), 527px);
  min-height: 128px;
  padding: 19px 19px 15px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  text-align:center;
}

.big-btn .label{
  font-size: clamp(27px, calc(5vw * .85), 48px);
  letter-spacing:.16em;
}
.big-btn .hint{
  margin-top: 8px;
  font-size: 14px;
  color: rgba(245,247,255,.74);
}

.pos-1{ margin-left:0; z-index:4; }
.pos-2{ margin-left: 10%; margin-top:-16px; z-index:3; }
.pos-3{ margin-left: 20%; margin-top:-16px; z-index:2; }
.pos-4{ margin-left: 30%; margin-top:-16px; z-index:1; }

.below-diagonal{
  margin-top: 16px;
  display:flex;
  justify-content:center;
}
.below-diagonal .big-btn{
  width: clamp(238px, calc(78vw * .85), 527px);
  margin-left:0;
}

.sig{
  max-width: 920px;
  margin: 20px auto 0;
  padding: 14px 16px;
  border: 1px solid rgba(245,247,255,.12);
  border-radius: 16px;
  background: rgba(18,18,34,.40);
}
.sig-title{
  font-weight:800;
  font-size: 18px;
  text-align:center;
  margin-bottom: 10px;
}
.sig-ex{
  margin-left: 18px;
  text-align:left;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.sig-ex > div{
  padding-left: 12px;
  border-left: 2px solid rgba(245,247,255,.14);
  color: rgba(245,247,255,.80);
}

/* Mini panels for horizontal sections */
.mini-panel{
  margin-top: 18px;
}
.mini-panel h2{ margin-top: 0; }

/* Responsive tuning */
@media (max-width: 560px){
  .toplinks{ gap:10px; }
  .toplinks a{ font-size: 14px; padding: 7px 8px; }
  .pos-2{ margin-left: 6%; }
  .pos-3{ margin-left: 12%; }
  .pos-4{ margin-left: 18%; }
  .big-btn{ min-height: 136px; }
}
