/* Shared header, mobile menu, and contact modal */
*,*::before,*::after{box-sizing:border-box;}
html,body{width:100%;max-width:100%;overflow-x:hidden;}
body{min-width:0;}
img,picture,video,canvas,svg{max-width:100%;height:auto;}
header,nav,main,section,footer{max-width:100%;}
header{
  position:fixed;top:0;left:0;right:0;z-index:50;
  background:rgba(245,244,252,0);
  border-bottom:1px solid transparent;
  transition:background .4s var(--ease),border-color .4s var(--ease),backdrop-filter .4s;
}
header.scrolled{background:rgba(245,244,252,.82);backdrop-filter:blur(14px);border-color:var(--line);}
nav{display:flex;align-items:center;justify-content:space-between;padding:18px clamp(20px,4vw,48px);max-width:1180px;margin:0 auto;}
.logo,.logo:visited{display:flex;align-items:center;gap:9px;font-family:'Bricolage Grotesque',sans-serif;font-weight:700;font-size:1.05rem;letter-spacing:.02em;color:var(--text);text-decoration:none;}
.logo-dot{width:9px;height:9px;border-radius:50%;background:var(--gold);position:relative;}
.logo-dot::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:1px solid var(--gold);opacity:.5;animation:ping 2.4s ease-out infinite;}
@keyframes ping{0%{transform:scale(.6);opacity:.7;}100%{transform:scale(2.1);opacity:0;}}
.nav-links{display:flex;gap:34px;align-items:center;}
.nav-links a{font-size:.86rem;color:var(--text-dim);position:relative;padding:4px 0;transition:color .25s;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;height:1px;width:0;background:var(--gold);transition:width .3s var(--ease);}
.nav-links a:hover{color:var(--text);}
.nav-links a:hover::after{width:100%;}
.nav-links a.nav-cta{
  background:var(--gold);color:#0A0C11;border:1px solid var(--gold);padding:12px 22px;border-radius:100px;
  font-size:.82rem;font-family:'Space Mono',monospace;font-weight:500;white-space:nowrap;transition:transform .25s var(--ease),filter .25s;
}
.nav-links a.nav-cta::after{display:none;}
.nav-links a.nav-cta:hover{color:#0A0C11;transform:translateY(-2px);filter:brightness(1.04);}
.nav-toggle{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;}
.nav-toggle span{width:20px;height:1.5px;background:var(--text);}
.mobile-menu{position:fixed;inset:0;background:var(--ink);z-index:60;display:flex;flex-direction:column;justify-content:center;gap:28px;padding:40px;transform:translateY(-100%);transition:transform .5s var(--ease);}
.mobile-menu{width:100%;max-width:100vw;overflow-x:hidden;}
.mobile-menu.open{transform:translateY(0);}
.mobile-menu a{font-family:'Bricolage Grotesque',sans-serif;font-size:1.8rem;font-weight:600;}
.mobile-menu .close-x{position:absolute;top:22px;right:24px;background:none;border:none;color:var(--text);font-size:1.6rem;cursor:pointer;}
@media(max-width:760px){
  .nav-links{display:none;}
  .nav-toggle{display:flex;}
}

.modal-overlay{
  position:fixed;inset:0;background:rgba(24,22,44,.52);backdrop-filter:blur(10px);
  z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;
  opacity:0;pointer-events:none;transition:opacity .35s var(--ease);
}
.modal-overlay{width:100%;max-width:100vw;overflow-x:hidden;}
.modal-overlay.open{opacity:1;pointer-events:auto;}
.modal-box{
  background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-l);
  max-width:470px;width:min(470px,calc(100vw - 32px));padding:36px;position:relative;
  transform:translateY(18px) scale(.98);opacity:0;
  transition:transform .4s var(--ease),opacity .4s var(--ease);
  box-shadow:0 28px 80px -38px rgba(124,92,255,.55);
}
.modal-overlay.open .modal-box{transform:translateY(0) scale(1);opacity:1;}
.modal-close{
  position:absolute;top:18px;right:18px;background:transparent;border:1px solid var(--line);
  width:34px;height:34px;border-radius:50%;color:var(--text-dim);cursor:pointer;
  font-size:1.1rem;line-height:1;display:flex;align-items:center;justify-content:center;
  transition:border-color .3s,color .3s,transform .3s var(--ease);
}
.modal-close:hover{border-color:var(--gold);color:var(--gold);transform:rotate(8deg);}
.modal-title{font-size:1.7rem;font-weight:700;margin:14px 0 8px;letter-spacing:-.01em;}
.modal-sub{color:var(--text-dim);font-size:.95rem;margin-bottom:24px;line-height:1.6;}
.modal-quick{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.modal-quick a{
  min-height:92px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:10px;
  font-family:'Space Mono',monospace;font-size:.78rem;padding:16px;border-radius:16px;
  border:1px solid var(--line);color:var(--text);background:var(--panel-2);
  transition:border-color .3s,background .3s,transform .3s var(--ease),box-shadow .3s;
}
.modal-quick a:hover{border-color:var(--gold);background:var(--gold-soft);transform:translateY(-3px);box-shadow:0 14px 34px -26px rgba(255,138,61,.8);}
.modal-quick img{width:22px;height:22px;}
.modal-note{font-family:'Space Mono',monospace;font-size:.72rem;color:var(--text-faint);margin-top:18px;}
.modal-note a{color:inherit;text-decoration:none;border-bottom:1px solid rgba(255,138,61,.35);transition:color .25s ease,border-color .25s ease;}
.modal-note a:hover{color:var(--gold);border-color:var(--gold);}
@media(max-width:560px){
  .modal-box{padding:30px 22px;}
  .modal-quick{grid-template-columns:1fr;}
}
@media(max-width:420px){
  nav{padding-left:16px;padding-right:16px;}
  .mobile-menu{padding:32px 22px;}
}
