html, body { background: #07070d; color: #e5e7eb; overscroll-behavior: none; }
    body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
    .grid-bg { background-image: radial-gradient(rgba(255,255,255,0.08) 1px, transparent 1px); background-size: 28px 28px; }
    .text-gradient { background: linear-gradient(92deg, #a78bfa 0%, #22d3ee 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
    .glass { background: linear-gradient(180deg, rgba(255,255,255,0.05), rgba(255,255,255,0.02)); border: 1px solid rgba(255,255,255,0.08); backdrop-filter: blur(10px); transition: border-color .25s ease; }
    .glass:hover { border-color: rgba(167,139,250,0.35); }
    .orb { position: absolute; border-radius: 9999px; filter: blur(90px); opacity: 0.45; pointer-events: none; }
    #mobile-menu{display:none} #mobile-menu.open{display:block} @media (min-width:1024px){#mobile-menu,#mobile-menu.open{display:none !important}}
    a.bg-white{color:#07070d !important;}
    /* form */
    .f-label { display:block; font-size:.8rem; font-weight:600; color:#d1d5db; margin-bottom:.4rem; letter-spacing:.01em; }
    .f-input { width:100%; border-radius:.85rem; border:1px solid rgba(255,255,255,0.12); background:rgba(255,255,255,0.04); color:#fff; padding:.85rem 1rem; font-size:16px; line-height:1.4; outline:none; transition:border-color .2s, box-shadow .2s, background .2s; -webkit-appearance:none; appearance:none; font-family:inherit; }
    .f-input::placeholder { color:#6b7280; }
    .f-input:focus { border-color:#a78bfa; box-shadow:0 0 0 3px rgba(139,92,246,0.25); background:rgba(255,255,255,0.06); }
    .f-input.err { border-color:#f87171; box-shadow:0 0 0 3px rgba(248,113,113,0.15); }
    select.f-input { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' viewBox='0 0 24 24' stroke='%239ca3af' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .9rem center; padding-right:2.6rem; }
    select.f-input option { background:#111120; color:#fff; }
    textarea.f-input { min-height:140px; resize:vertical; }
    .f-error { font-size:.75rem; color:#f87171; margin-top:.35rem; display:none; }
    .f-error.show { display:block; }
    .hp { position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
    .spin { animation: spin .8s linear infinite; }
    @keyframes spin { to { transform: rotate(360deg); } }