:root{
    --bg:#050505;--bg2:#0d1219;--bg3:#111820;
    --surface:#141c27;--surface2:#1a2436;
    --border:#1f2e42;--border2:#263548;
    --text:#e8edf5;--text2:#8fa3bc;--text3:#91a4bd;
    --accent:#00e5a0;--accent2:#0096ff;--accent3:#ff6b35;
    --gold:#f0c040;--red:#ff4d6d;--amber:#f5a623;
    --font-display:'Bricolage Grotesque',sans-serif;
    --font-serif:'Playfair Display',serif;
    --font-mono:'DM Mono',monospace;
  }
  *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
  html{overflow-x:hidden}
  body{
    font-family:var(--font-display);
    background:var(--bg);
    color:var(--text);
    min-height:100vh;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:40px 24px;
    -webkit-font-smoothing:antialiased;
    position:relative;
    overflow-x:hidden;
    overflow-y:auto;
  }
  
  /* ── NOISE OVERLAY ── */
  .noise-overlay{
    position:fixed;inset:0;z-index:50;pointer-events:none;
    opacity:.04;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='1'/%3E%3C/svg%3E");
  }
  
  /* ── BLOBS ── */
  .glow-blob{position:fixed;border-radius:50%;filter:blur(120px);pointer-events:none;z-index:0}
  .blob1{width:600px;height:600px;background:rgba(0,150,255,0.06);top:-200px;right:-200px;animation:blobdrift 20s ease-in-out infinite alternate}
  .blob2{width:500px;height:500px;background:rgba(0,229,160,0.05);bottom:-150px;left:-150px;animation:blobdrift 16s ease-in-out infinite alternate-reverse}
  .blob3{width:300px;height:300px;background:rgba(245,166,35,0.025);top:40%;left:55%;animation:blobdrift 24s ease-in-out infinite alternate}
  @keyframes blobdrift{0%{transform:translate(0,0) scale(1)}100%{transform:translate(40px,30px) scale(1.1)}}
  
  /* ── GRID ── */
  .hero-grid{
    position:fixed;inset:0;z-index:1;pointer-events:none;
    background-image:
      linear-gradient(rgba(255,255,255,.015) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.015) 1px,transparent 1px);
    background-size:80px 80px;
    mask-image:radial-gradient(ellipse 80% 70% at 50% 50%,black,transparent);
  }
  
  /* ── PAGE WRAP ── */
  .page-wrap{
    position:relative;z-index:2;
    width:100%;max-width:960px;
    display:grid;
    grid-template-columns:360px 1fr;
    gap:0;
    border-radius:28px;overflow:hidden;
    border:1px solid var(--border2);
    box-shadow:0 40px 100px rgba(0,0,0,.65),0 0 0 1px rgba(255,255,255,.03);
    animation:slideUp .7s cubic-bezier(.16,1,.3,1) both;
  }
  @keyframes slideUp{from{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}
  
  /* ── LEFT BRAND PANEL ── */
  .panel-left{
    background:linear-gradient(160deg,#0d1a2e,#080f1a);
    padding:48px 36px;
    display:flex;flex-direction:column;justify-content:space-between;
    position:relative;overflow:hidden;
    border-right:1px solid var(--border);
  }
  .panel-left::before{
    content:'';position:absolute;top:-80px;left:-80px;
    width:320px;height:320px;
    background:radial-gradient(circle,rgba(0,229,160,.07),transparent 70%);
    border-radius:50%;pointer-events:none;
  }
  .panel-left::after{
    content:'';position:absolute;inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),
      linear-gradient(90deg,rgba(255,255,255,.018) 1px,transparent 1px);
    background-size:52px 52px;
    mask-image:radial-gradient(ellipse 80% 80% at 30% 40%,black,transparent);
    pointer-events:none;
  }
  /* top accent line on left panel */
  .panel-left-accent{
    position:absolute;top:0;left:0;right:0;height:2px;
    background:linear-gradient(90deg,var(--accent),var(--accent2),transparent);
  }
  
  .pl-top{position:relative;z-index:1}
  
  /* Logo */
  .logo-row{display:flex;align-items:center;gap:10px;margin-bottom:32px}
  .logo-mark{
    width:40px;height:40px;border-radius:12px;
    background:linear-gradient(135deg,var(--accent2),var(--accent));
    display:flex;align-items:center;justify-content:center;
    font-size:14px;font-weight:800;color:#050505;
    box-shadow:0 0 24px rgba(0,229,160,.3);
  }
  .logo-name{font-size:18px;font-weight:800;letter-spacing:-.5px;color:var(--text)}
  
  /* Headline */
  .pl-headline{
    font-size:clamp(22px,2.5vw,30px);font-weight:800;
    line-height:1.12;letter-spacing:-.8px;
    color:var(--text);margin-bottom:12px;
  }
  .pl-headline .hl{
    background:linear-gradient(135deg,var(--accent),var(--accent2));
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  }
  .pl-headline em{
    font-family:var(--font-serif);font-style:italic;font-weight:400;font-size:.9em;
    background:linear-gradient(135deg,#ffe0d0,var(--text));
    -webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;
  }
  .pl-sub{font-size:14px;color:var(--text2);line-height:1.65;margin-bottom:28px}
  
  /* Benefits */
  .benefit-list{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1}
  .benefit-item{display:flex;align-items:flex-start;gap:12px}
  .bi-icon{
    width:32px;height:32px;border-radius:10px;flex-shrink:0;
    display:flex;align-items:center;justify-content:center;font-size:15px;
    margin-top:1px;
  }
  .bi-text strong{display:block;font-size:13px;font-weight:700;color:var(--text);margin-bottom:2px}
  .bi-text span{font-size:12px;color:var(--text3)}
  
  /* ── RIGHT FORM PANEL ── */
  .panel-right{
    background:var(--surface);
    padding:44px 40px;
    position:relative;
  }
  .panel-right::before{
    content:'';position:absolute;top:0;left:0;right:0;height:2px;
    background:linear-gradient(90deg,transparent,var(--accent2),var(--accent),transparent);
  }
  /* inner glow */
  .panel-right::after{
    content:'';position:absolute;top:-60px;right:-60px;
    width:250px;height:250px;
    background:radial-gradient(circle,rgba(0,150,255,.04),transparent 70%);
    pointer-events:none;border-radius:50%;
  }
  
  .form-header{margin-bottom:26px}
  .form-title{font-size:22px;font-weight:800;letter-spacing:-.6px;margin-bottom:5px;color:var(--text)}
  .form-sub{font-size:13px;color:var(--text2)}
  .form-sub span{
    display:inline-flex;align-items:center;gap:5px;
    background:rgba(0,229,160,.08);border:1px solid rgba(0,229,160,.18);
    color:var(--accent);padding:2px 10px;border-radius:9999px;
    font-size:11px;font-weight:700;letter-spacing:.3px;margin-left:4px;
  }
  
  /* Flash */
  .flash{
    border-radius:12px;padding:12px 16px;
    font-size:13px;font-weight:600;margin-bottom:18px;
    display:none;animation:flashIn .3s ease;
  }
  @keyframes flashIn{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}
  .flash.show{display:block}
  .flash-error{background:rgba(255,77,109,.1);border:1px solid rgba(255,77,109,.25);color:#ff8fab}
  .flash-success{background:rgba(0,229,160,.1);border:1px solid rgba(0,229,160,.25);color:var(--accent)}
  
  /* Form fields */
  .form-row-2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
  .form-group{margin-bottom:14px}
  .form-label{
    display:block;margin-bottom:6px;
    font-size:12px;font-weight:700;color:var(--text3);
    letter-spacing:.4px;text-transform:uppercase;
  }
  .input-wrap{position:relative}
  .input-icon{
    position:absolute;left:14px;top:50%;transform:translateY(-50%);
    font-size:14px;color:var(--text3);pointer-events:none;
  }
  .form-input{
    width:100%;
    padding:12px 14px 12px 40px;
    background:var(--bg2);
    border:1.5px solid var(--border);
    border-radius:12px;
    color:var(--text);
    font-size:14px;font-family:var(--font-display);
    transition:border-color .2s,box-shadow .2s;
    -webkit-appearance:none;
  }
  .form-input::placeholder{color:var(--text3)}
  .form-input:focus{
    outline:none;
    border-color:var(--accent);
    box-shadow:0 0 0 4px rgba(0,229,160,.1);
  }
  .form-input.err{border-color:var(--red);box-shadow:0 0 0 3px rgba(255,77,109,.1)}
  .form-input.ok{border-color:rgba(0,229,160,.5)}
  select.form-input{cursor:pointer}
  select.form-input option{background:var(--bg2);color:var(--text)}
  
  .pass-toggle{
    position:absolute;right:12px;top:50%;transform:translateY(-50%);
    background:none;border:none;cursor:pointer;
    color:var(--text3);font-size:16px;padding:2px;transition:color .2s;
  }
  .pass-toggle:hover{color:var(--text2)}
  
  /* Password strength */
  .strength-wrap{margin-top:7px}
  .strength-bars{display:flex;gap:4px;margin-bottom:4px}
  .sb{flex:1;height:3px;border-radius:9999px;background:var(--border);transition:background .3s}
  .strength-label{font-size:11px;font-family:var(--font-mono)}
  
  /* Field errors */
  .field-error{font-size:11px;color:var(--red);margin-top:4px;display:none}
  .field-error.show{display:block}
  
  /* Terms */
  .terms-row{
    display:flex;align-items:flex-start;gap:10px;
    margin-bottom:16px;margin-top:4px;
  }
  .terms-check{
    width:18px;height:18px;flex-shrink:0;
    background:var(--bg2);border:1.5px solid var(--border2);
    border-radius:5px;appearance:none;-webkit-appearance:none;cursor:pointer;
    transition:all .2s;margin-top:1px;
    position:relative;
  }
  .terms-check:checked{background:var(--accent);border-color:var(--accent)}
  .terms-check:checked::after{
    content:'✓';position:absolute;top:50%;left:50%;
    transform:translate(-50%,-50%);
    color:#050505;font-size:11px;font-weight:800;
  }
  .terms-text{font-size:12px;color:var(--text3);line-height:1.55}
  .terms-text a{color:var(--accent2);text-decoration:none;font-weight:600}
  .terms-text a:hover{text-decoration:underline}
  
  /* Submit */
  .btn-submit{
    width:100%;padding:14px;
    background:var(--accent);
    color:#050505;border:none;border-radius:12px;
    font-family:var(--font-display);font-size:15px;font-weight:800;
    cursor:pointer;letter-spacing:.1px;
    box-shadow:0 0 32px rgba(0,229,160,.25),0 4px 16px rgba(0,0,0,.3);
    transition:all .22s cubic-bezier(.4,0,.2,1);
    display:flex;align-items:center;justify-content:center;gap:8px;
  }
  .btn-submit:hover{
    background:#00ffb3;
    box-shadow:0 0 56px rgba(0,229,160,.5),0 6px 24px rgba(0,0,0,.4);
    transform:translateY(-2px);
  }
  .btn-submit:active{transform:scale(.98)}
  .btn-submit:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}
  
  .spinner{
    width:17px;height:17px;
    border:2.5px solid rgba(5,5,5,.25);
    border-top-color:#050505;
    border-radius:50%;
    animation:spin .8s linear infinite;
  }
  @keyframes spin{to{transform:rotate(360deg)}}
  
  /* Login link */
  .login-row{
    text-align:center;margin-top:16px;
    font-size:13px;color:var(--text3);
  }
  .login-row a{color:var(--accent);text-decoration:none;font-weight:700}
  .login-row a:hover{text-decoration:underline}
  
  /* Toast */
  .toast{
    position:fixed;bottom:28px;left:50%;
    transform:translateX(-50%) translateY(80px);
    background:var(--surface2);border:1px solid var(--border2);
    color:var(--text);padding:12px 28px;border-radius:9999px;
    font-size:14px;font-weight:600;z-index:999;
    transition:transform .4s cubic-bezier(.16,1,.3,1);
    box-shadow:0 12px 40px rgba(0,0,0,.6);white-space:nowrap;
  }
  .toast.show{transform:translateX(-50%) translateY(0)}
  
  /* ── RESPONSIVE ── */
  @media(max-width:760px){
    .page-wrap{grid-template-columns:1fr}
    .panel-left{display:none}
    .panel-right{border-radius:28px;padding:36px 24px}
    .form-row-2{grid-template-columns:1fr}
  }
  @media(max-width:480px){
    body{padding:20px 16px}
    .panel-right{padding:28px 20px}
  }
:focus-visible { outline:2px solid var(--accent); outline-offset:4px; }
