:root{
  --brand-bg:#121214;
  --brand-card:#202024;
  --brand-surface:#29292E;
  --brand-border:#323238;
  --brand-text:#E1E1E6;
  --brand-muted:#A8A8B3;
  --brand-white:#FFFFFF;
  --brand-accent:#EA1D2C;
  --brand-accentHover:#F93B4A;
  --success:#10B981;
  --warning:#F59E0B;
  --danger:#FF5C7A;

  --shadow:0 30px 90px rgba(0,0,0,.62);
  --shadow2:0 18px 60px rgba(0,0,0,.52);
  --radius:26px;
  --w-regular:510;
  --w-medium:600;
  --w-semibold:660;
  --w-bold:720;
}
*{box-sizing:border-box;margin:0;padding:0;-webkit-font-smoothing:antialiased}
html{scroll-behavior:smooth}
body{
  font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  color:var(--brand-text);
  min-height:100vh;
  overflow-x:hidden;
  background:
    radial-gradient(900px 620px at 12% -10%,rgba(234,29,44,.22),transparent 60%),
    radial-gradient(900px 600px at 92% 6%,rgba(249,59,74,.14),transparent 55%),
    radial-gradient(900px 700px at 40% 115%,rgba(255,255,255,.06),transparent 60%),
    linear-gradient(180deg,#0f0f10,var(--brand-bg));
}
a{color:inherit;text-decoration:none}
button,input{font:inherit}
::selection{background:rgba(234,29,44,.22)}

.grain{
  position:fixed;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E");
  background-size:180px 180px;
  opacity:.15;
  mix-blend-mode:overlay;
  pointer-events:none;
  z-index:-1;
}
.blob{
  position:fixed;
  width:56vmax;height:56vmax;border-radius:999px;
  background:
    radial-gradient(circle at 30% 30%,rgba(234,29,44,.22),transparent 58%),
    radial-gradient(circle at 60% 70%,rgba(249,59,74,.14),transparent 62%);
  opacity:.9;
  z-index:-2;
  pointer-events:none;
  animation:blobFloat 12s ease-in-out infinite;
  transform:translate3d(0,0,0);
}
.blob.b2{
  width:48vmax;height:48vmax;
  opacity:.62;
  animation-duration:15s;
  animation-direction:reverse;
}
@keyframes blobFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(0,18px,0) scale(1.03)}}

.wrap{min-height:100vh;display:grid;place-items:center;padding:28px 16px}
.shell{width:min(1180px,100%);display:grid;grid-template-columns:1.1fr .9fr;gap:18px;align-items:stretch}

.hero{
  position:relative;
  border-radius:calc(var(--radius) + 4px);
  border:1px solid rgba(255,255,255,.08);
  background:
    radial-gradient(900px 520px at 18% 20%,rgba(234,29,44,.10),transparent 55%),
    radial-gradient(700px 520px at 85% 70%,rgba(255,255,255,.06),transparent 58%),
    linear-gradient(135deg,rgba(32,32,36,.65),rgba(32,32,36,.35));
  box-shadow:var(--shadow2);
  overflow:hidden;
  padding:22px;
}
.hero:after{
  content:"";
  position:absolute;inset:0;
  background-image:radial-gradient(circle at 2px 2px,rgba(255,255,255,.06) 1px,transparent 0);
  background-size:24px 24px;
  opacity:.18;
  pointer-events:none;
}
.heroInner{position:relative;z-index:1;height:100%;display:flex;flex-direction:column}
.brand{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.mark{
  width:44px;height:44px;border-radius:16px;
  display:grid;place-items:center;
  background:rgba(41,41,46,.65);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 12px 28px rgba(0,0,0,.35);
  flex:0 0 auto;
}
.mark img{width:34px;height:auto;display:block}
.brandTitle{font-weight:var(--w-semibold);letter-spacing:-0.4px;font-size:15px;line-height:1.1}
.brandSub{display:block;font-size:12.2px;color:rgba(255,255,255,.58);font-weight:var(--w-regular);margin-top:2px}
.hero h1{
  margin-top:10px;
  font-size:clamp(30px,3.2vw,46px);
  line-height:1.05;
  letter-spacing:-1.5px;
  font-weight:var(--w-bold);
  background:linear-gradient(to bottom,rgba(255,255,255,1) 25%,rgba(255,255,255,.46) 120%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.hero p{
  margin-top:12px;
  max-width:60ch;
  color:rgba(255,255,255,.78);
  font-size:14.4px;
  line-height:1.65;
  font-weight:var(--w-regular);
}
.chips{margin-top:18px;display:flex;flex-wrap:wrap;gap:10px}
.chip{
  display:flex;align-items:center;gap:8px;
  padding:10px 12px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(32,32,36,.35);
  color:rgba(255,255,255,.90);
  font-size:12.6px;
  font-weight:var(--w-regular);
  white-space:nowrap;
}
.chip i{
  width:9px;height:9px;border-radius:50%;
  background:rgba(234,29,44,.95);
  box-shadow:0 0 0 6px rgba(234,29,44,.14);
  display:inline-block;
}
.grid{margin-top:16px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{
  border-radius:18px;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(135deg,rgba(41,41,46,.65),rgba(32,32,36,.35));
  padding:12px;
  display:flex;gap:10px;align-items:flex-start;
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.tile:hover{
  transform:translateY(-2px);
  border-color:rgba(255,255,255,.16);
  background:linear-gradient(135deg,rgba(41,41,46,.75),rgba(32,32,36,.38));
}
.tile .ico{
  width:36px;height:36px;border-radius:15px;
  display:grid;place-items:center;
  background:rgba(32,32,36,.45);
  border:1px solid rgba(255,255,255,.12);
  flex:0 0 auto;margin-top:1px;
  color:rgba(255,255,255,.92);
}
.tile .t{font-weight:var(--w-semibold);font-size:13px;letter-spacing:-.2px}
.tile .s{margin-top:2px;color:rgba(255,255,255,.72);font-size:12.2px;line-height:1.5}
.footerNote{
  margin-top:auto;
  padding-top:16px;
  display:flex;
  flex-wrap:wrap;
  gap:10px 14px;
  color:rgba(255,255,255,.72);
  font-size:12.4px;
  font-weight:var(--w-regular);
}
.footerNote span{display:flex;align-items:center;gap:8px}
.footerNote svg{opacity:.9}

.panel{
  position:relative;
  border-radius:calc(var(--radius) + 4px);
  border:1px solid rgba(255,255,255,.08);
  background:rgba(32,32,36,.55);
  box-shadow:var(--shadow2);
  overflow:hidden;
  padding:18px;
}
.panel:after{
  content:"";
  position:absolute;inset:0;
  background-image:radial-gradient(circle at 2px 2px,rgba(255,255,255,.05) 1px,transparent 0);
  background-size:22px 22px;
  opacity:.16;
  pointer-events:none;
}
.card{
  position:relative;
  z-index:1;
  border-radius:calc(var(--radius) + 2px);
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(135deg,rgba(32,32,36,.86),rgba(32,32,36,.62));
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  box-shadow:0 12px 40px rgba(0,0,0,.45);
  overflow:hidden;
  transform:translateY(0);
  transition:transform .18s ease;
}
.card .inner{padding:16px}
.topRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}
.miniBrand{display:flex;align-items:center;gap:10px;min-width:0}
.miniMark{
  width:40px;height:40px;border-radius:14px;
  display:grid;place-items:center;
  background:rgba(41,41,46,.65);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:0 10px 25px rgba(0,0,0,.30);
  flex:0 0 auto;
}
.miniTitle{font-weight:var(--w-semibold);letter-spacing:-0.4px;font-size:14.6px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.miniSub{display:block;font-size:12px;color:rgba(255,255,255,.62);font-weight:var(--w-regular);margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:220px}
.secureBadge{
  display:flex;align-items:center;gap:8px;
  padding:8px 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(32,32,36,.45);
  color:rgba(255,255,255,.86);
  font-size:12.2px;
  font-weight:var(--w-regular);
  user-select:none;
  flex:0 0 auto;
}
h2{
  margin-top:2px;
  font-size:22px;
  line-height:1.1;
  letter-spacing:-1px;
  font-weight:var(--w-bold);
}
.lead{margin-top:8px;color:rgba(255,255,255,.76);font-size:13.8px;line-height:1.6;font-weight:var(--w-regular)}
.sep{margin:10px 0;height:1px;background:rgba(255,255,255,.10)}
label{display:block;font-size:10.8px;color:rgba(255,255,255,.62);letter-spacing:.9px;text-transform:uppercase;margin-bottom:7px;font-weight:var(--w-regular)}
.fieldWrap{position:relative}
.field{
  display:block;width:100%;
  padding:12px 12px;
  border-radius:14px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(18,18,20,.35);
  color:var(--brand-text);
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease,transform .18s ease;
  position:relative;z-index:1;
}
.field:hover{border-color:rgba(255,255,255,.16);background:rgba(18,18,20,.42)}
.field:focus{
  border-color:rgba(234,29,44,.75);
  box-shadow:0 0 0 4px rgba(234,29,44,.18);
  background:rgba(18,18,20,.48);
  transform:translateY(-1px);
}
.togglePass{
  position:absolute;right:8px;top:50%;
  transform:translateY(-50%);
  width:40px;height:34px;border-radius:12px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(32,32,36,.25);
  color:rgba(255,255,255,.92);
  cursor:pointer;
  display:grid;place-items:center;
  transition:transform .18s ease,background .18s ease,border-color .18s ease;
  z-index:3;
  pointer-events:auto;
}
.togglePass:hover{background:rgba(32,32,36,.42);border-color:rgba(255,255,255,.22);transform:translateY(-50%) scale(1.03)}
.actions{margin-top:10px;display:flex;flex-direction:column;gap:10px}
.submit{
  width:100%;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(234,29,44,.65);
  background:var(--brand-accent);
  color:var(--brand-white);
  font-weight:var(--w-bold);
  letter-spacing:-.1px;
  cursor:pointer;
  transition:transform .18s ease,box-shadow .18s ease,background .18s ease,border-color .18s ease;
  display:flex;align-items:center;justify-content:center;gap:10px;
  position:relative;
  overflow:hidden;
}
.submit:after{
  content:"";
  position:absolute;inset:-50px;
  background:linear-gradient(115deg,transparent 42%,rgba(255,255,255,.30) 50%,transparent 58%);
  transform:translateX(-65%) rotate(10deg);
  opacity:.25;
  pointer-events:none;
}
.submit:hover{
  transform:translateY(-1px);
  background:var(--brand-accentHover);
  box-shadow:0 18px 45px rgba(234,29,44,.18);
  border-color:rgba(249,59,74,.72);
}
.submit:hover:after{animation:btnSheen 1.25s ease-out;opacity:.32}
@keyframes btnSheen{from{transform:translateX(-65%) rotate(10deg)}to{transform:translateX(65%) rotate(10deg)}}
.ghostline{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:10px 12px;border-radius:14px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(32,32,36,.22);
  color:rgba(255,255,255,.88);
  font-size:12.5px;
  font-weight:var(--w-regular);
  transition:transform .18s ease,border-color .18s ease,background .18s ease;
}
.ghostline:hover{transform:translateY(-1px);background:rgba(32,32,36,.30);border-color:rgba(255,255,255,.14)}
.ghostline a{color:rgba(255,255,255,.95);border-bottom:1px dashed rgba(234,29,44,.40)}
.ghostline a:hover{color:#fff;border-bottom-color:rgba(249,59,74,.85)}
.miniFoot{
  margin-top:2px;
  text-align:center;
  font-size:12px;
  color:rgba(255,255,255,.62);
  line-height:1.45;
}
.miniFoot a{color:rgba(255,255,255,.90);border-bottom:1px dashed rgba(234,29,44,.35)}
.miniFoot a:hover{color:#fff;border-bottom-color:rgba(249,59,74,.80)}
.miniFoot b{color:rgba(255,255,255,.84);font-weight:var(--w-semibold)}

#toasts{
  position:fixed;
  bottom:1.5rem;right:1.5rem;
  z-index:2000;
  display:flex;
  flex-direction:column;
  gap:10px;
  width:min(420px,calc(100% - 3rem));
  pointer-events:none;
}
.toast{
  pointer-events:auto;
  display:flex;gap:10px;align-items:flex-start;
  padding:12px 12px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(32,32,36,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  box-shadow:0 18px 55px rgba(0,0,0,.35);
  overflow:hidden;
  position:relative;
  transform:translateY(8px);
  opacity:0;
  animation:toastIn .22s ease forwards;
  contain:layout paint;
  will-change:transform,opacity;
}
.toast:before{
  content:"";
  position:absolute;inset:0;
  background-image:radial-gradient(circle at 2px 2px,rgba(255,255,255,.05) 1px,transparent 0);
  background-size:22px 22px;
  opacity:.22;
  pointer-events:none;
}
.toast .ico{
  width:32px;height:32px;border-radius:14px;
  display:grid;place-items:center;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(41,41,46,.35);
  flex:0 0 auto;
  margin-top:1px;
  position:relative;z-index:1;
}
.toast .txt{position:relative;z-index:1;min-width:0;flex:1 1 auto}
.toast .title{font-size:12.8px;font-weight:var(--w-semibold);letter-spacing:-.2px;margin-bottom:2px;line-height:1.2}
.toast .msg{font-size:12.4px;color:rgba(255,255,255,.82);line-height:1.4;font-weight:var(--w-regular);word-break:break-word}
.toast .x{
  margin-left:auto;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(32,32,36,.18);
  color:rgba(255,255,255,.92);
  width:28px;height:28px;border-radius:12px;
  display:grid;place-items:center;
  cursor:pointer;
  transition:.2s ease;
  position:relative;z-index:1;
  flex:0 0 auto;
}
.toast .x:hover{background:rgba(41,41,46,.40);border-color:rgba(255,255,255,.22);transform:translateY(-1px)}
.toast .bar{position:absolute;left:0;right:0;bottom:0;height:2px;background:rgba(255,255,255,.10);overflow:hidden}
.toast .bar i{display:block;height:100%;width:100%;background:rgba(234,29,44,.70);transform-origin:left center;animation:toastBar linear forwards}
@keyframes toastIn{to{transform:translateY(0);opacity:1}}
@keyframes toastOut{to{transform:translateY(8px);opacity:0}}
@keyframes toastBar{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.toast.ok{border-color:rgba(16,185,129,.30)}
.toast.warn{border-color:rgba(245,158,11,.30)}
.toast.err{border-color:rgba(255,92,122,.30)}

/* Form grid (register) */
.formGrid{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.span2{grid-column:1 / -1}

@media (max-width:980px){
  .shell{grid-template-columns:1fr}
  .hero{display:none}
  .panel{padding:12px;border-radius:calc(var(--radius) + 2px)}
  .card{border-radius:calc(var(--radius) + 2px);max-width:540px;margin:0 auto}
  .formGrid{grid-template-columns:1fr}
  .span2{grid-column:auto}
  .miniTitle,.miniSub{max-width:180px}
}
@media (prefers-reduced-motion:reduce){
  .blob{animation:none !important}
  .tile:hover,.ghostline:hover,.submit:hover,.field:focus{transform:none}
  .toast{animation:none !important;opacity:1;transform:none}
  .toast .bar i{animation:none !important;transform:none}
}
