/* ===========================================================================
   Digitalpnd FX · glassmorphism.css
   Glass surface · glow border · animated background · floating orbs · forms
   =========================================================================== */

/* ====== Glass core ====== */
.glass{
  background:var(--glass-bg);
  backdrop-filter:blur(var(--blur)) saturate(180%);
  -webkit-backdrop-filter:blur(var(--blur)) saturate(180%);
  border:1px solid var(--glass-border);
  border-radius:var(--radius);
  box-shadow:var(--shadow),var(--inset-glass);
}
.glass-hover{transition:transform var(--dur) var(--ease),box-shadow var(--dur) var(--ease),border-color var(--dur) var(--ease)}
.glass-hover:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow-lift),var(--shadow-glow)}

/* ====== Conic rotating glow border ====== */
.glow-border{position:relative;border-radius:var(--radius-lg);background:var(--deep-bg);isolation:isolate}
.glow-border::before{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-1;
  background:conic-gradient(from var(--angle,0deg),transparent 0%,var(--primary) 20%,var(--accent) 40%,var(--highlight) 50%,var(--accent) 60%,var(--primary) 80%,transparent 100%);
  animation:spin 6s linear infinite;filter:blur(2px);
}
@property --angle{syntax:"<angle>";initial-value:0deg;inherits:false}
@keyframes spin{to{--angle:360deg}}

/* ====== Premium animated background ====== */
body::before{
  content:"";position:fixed;inset:0;z-index:-2;
  background:
    radial-gradient(circle at 12% 18%,rgba(127,90,240,.20),transparent 42%),
    radial-gradient(circle at 88% 12%,rgba(199,125,255,.16),transparent 46%),
    radial-gradient(circle at 50% 92%,rgba(157,78,221,.14),transparent 52%),
    var(--deep-bg);
}
body::after{
  content:"";position:fixed;inset:0;z-index:-1;opacity:.45;pointer-events:none;
  background-image:radial-gradient(rgba(199,125,255,.06) 1px,transparent 1px);
  background-size:34px 34px;animation:starDrift 60s linear infinite;
}

/* ====== Floating orbs ====== */
.orb{position:absolute;border-radius:50%;filter:blur(70px);opacity:.5;pointer-events:none;z-index:0}
.orb-1{width:320px;height:320px;background:var(--primary);top:-50px;left:-50px;animation:float 18s ease-in-out infinite}
.orb-2{width:280px;height:280px;background:var(--accent);bottom:-70px;right:-40px;animation:floatB 20s ease-in-out infinite}
.orb-3{width:220px;height:220px;background:var(--highlight);top:40%;right:20%;opacity:.3;animation:float 16s ease-in-out infinite}
.hero .orb,.orb.static{position:absolute}

/* ====== Forms (glass style) ====== */
.form-group{margin-bottom:1.1rem;width:100%}
label.fld{display:block;font-size:.85rem;color:var(--txt-dim);margin-bottom:.45rem;font-weight:500}
.form-control,.input,.select,.textarea{
  width:100%;padding:.8rem 1rem;border-radius:var(--radius-sm);font-size:.95rem;color:var(--txt);
  background:var(--glass-bg);border:1px solid var(--glass-border);
  backdrop-filter:blur(10px);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease),background var(--dur) var(--ease);
  font-family:var(--font);
}
.form-control::placeholder,.input::placeholder,.textarea::placeholder{color:var(--txt-muted)}
.form-control:focus,.input:focus,.select:focus,.textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 4px rgba(199,125,255,.16);
  background:var(--glass-strong);
}
.textarea{resize:vertical;min-height:120px}
.select{appearance:none;cursor:pointer}
/* force dark popup for native option/optgroup (white bg = invisible symbols) */
.select option{background:#10061f;color:var(--txt);padding:.4rem .6rem}
.select option:checked,.select option:hover{background:rgba(127,90,240,.35);color:#fff}
.select optgroup{background:#0a0414;color:var(--highlight);font-weight:700}

/* ====== Auth ====== */
.auth-wrap{min-height:calc(100vh - 80px);display:grid;place-items:center;padding:2rem 0}
.auth-card{max-width:440px;width:100%;padding:2.4rem}

/* ====== Alerts ====== */
.alert{padding:.9rem 1.1rem;border-radius:var(--radius-sm);margin-bottom:1rem;font-size:.9rem}
.alert-error{background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.4);color:#FCA5A5}
.alert-success{background:rgba(34,197,94,.12);border:1px solid rgba(34,197,94,.4);color:#86EFAC}
