 @import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700;12..96,800&family=Instrument+Sans:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;700&display=swap');

 :root {
     --bg: #050A16;
     --navy-2: #0E1C3A;
     --navy-3: #14264E;
     --white: #F7F5F0;
     --dim: rgba(247, 245, 240, 0.62);
     --dimmer: rgba(247, 245, 240, 0.38);
     --gold: #FFD700;
     --amber: #FFA928;
     --gold-deep: #B8860B;
     --green: #7CE38B;
     --glass: rgba(150, 180, 255, 0.05);
     --glass-2: rgba(150, 180, 255, 0.09);
     --stroke: rgba(170, 200, 255, 0.15);
     --stroke-soft: rgba(170, 200, 255, 0.08);
     --gold-stroke: rgba(255, 215, 0, 0.28);
     --g-blue: #4285F4;
     --g-red: #EA4335;
     --g-yellow: #FBBC05;
     --g-green: #34A853;
     --g-link: #1a0dab;
     --g-text: #202124;
     --g-sub: #4d5156;
     --g-grey: #70757a;
     --g-line: #ebecf0;
     --g-purple: #9B72CB;
 }

 * {
     margin: 0;
     padding: 0;
     box-sizing: border-box;
 }

 body {
     font-family: 'Instrument Sans', sans-serif;
     background:
         radial-gradient(ellipse 120% 60% at 50% -10%, var(--navy-2), transparent 60%),
         radial-gradient(ellipse 80% 50% at 100% 110%, rgba(20, 38, 78, 0.6), transparent 65%),
         var(--bg);
     background-attachment: fixed;
     color: var(--white);
     line-height: 1.6;
     min-height: 100vh;
     display: flex;
     flex-direction: column;
     overflow-x: hidden;
 }

 ::selection {
     background: var(--gold);
     color: #000;
 }

 @property --angle {
     syntax: '<angle>';
     initial-value: 0deg;
     inherits: false;
 }

 @keyframes spin {
     to {
         --angle: 360deg;
     }
 }

 @keyframes gradShift {
     0% {
         background-position: 0% 50%;
     }

     100% {
         background-position: 100% 50%;
     }
 }

 @keyframes popIn {
     from {
         opacity: 0;
         transform: scale(0.6);
     }

     to {
         opacity: 1;
         transform: scale(1);
     }
 }

 .auth-bg {
     position: fixed;
     inset: -60px;
     z-index: 0;
     pointer-events: none;
     background-image: url('https://nickquirk.com/seoapp2/bgsignin.jpg');
     background-size: cover;
     background-position: center;
     filter: blur(10px) brightness(0.55) saturate(1.2);
     opacity: 0.8;
     -webkit-mask-image: radial-gradient(ellipse 85% 80% at 50% 45%, black 20%, transparent 78%);
     mask-image: radial-gradient(ellipse 85% 80% at 50% 45%, black 20%, transparent 78%);
 }

 .bg-fx {
     position: fixed;
     inset: 0;
     z-index: 0;
     pointer-events: none;
     overflow: hidden;
 }

 .bg-fx::before {
     content: '';
     position: absolute;
     inset: 0;
     background-image:
         linear-gradient(rgba(170, 200, 255, 0.04) 1px, transparent 1px),
         linear-gradient(90deg, rgba(170, 200, 255, 0.04) 1px, transparent 1px);
     background-size: 64px 64px;
     mask-image: radial-gradient(ellipse 90% 65% at 50% 30%, black, transparent 82%);
 }

 .orb {
     position: absolute;
     border-radius: 50%;
     filter: blur(120px);
 }

 .orb-1 {
     width: 620px;
     height: 620px;
     background: radial-gradient(circle, rgba(255, 215, 0, 0.14), transparent 70%);
     top: -220px;
     left: 50%;
     transform: translateX(-50%);
 }

 .orb-2 {
     width: 460px;
     height: 460px;
     background: radial-gradient(circle, rgba(41, 98, 255, 0.12), transparent 70%);
     bottom: -160px;
     left: -140px;
 }

 .orb-3 {
     width: 500px;
     height: 500px;
     background: radial-gradient(circle, rgba(155, 114, 203, 0.10), transparent 70%);
     bottom: -180px;
     right: -160px;
 }

 .auth-top {
     position: relative;
     z-index: 2;
     display: flex;
     align-items: center;
     justify-content: space-between;
     padding: 1.6rem 6%;
 }

 .brand {
     display: inline-flex;
     align-items: center;
     gap: 0.6rem;
     text-decoration: none;
 }

 .brand-logo {
     height: 34px;
     width: auto;
     display: block;
 }

 .brand-fallback {
     display: none;
     align-items: center;
     gap: 0.5rem;
     font-family: 'Bricolage Grotesque';
     font-weight: 700;
     color: var(--white);
 }

 .brand-icon {
     width: 28px;
     height: 28px;
     border-radius: 30%;
     background: linear-gradient(135deg, var(--gold), var(--amber));
     display: flex;
     align-items: center;
     justify-content: center;
     font-size: 0.5rem;
     font-weight: 800;
     color: #1a1400;
     font-family: 'Bricolage Grotesque';
 }

 .top-link {
     color: var(--dim);
     font-size: 0.92rem;
 }

 .top-link a {
     color: var(--gold);
     font-weight: 700;
     text-decoration: none;
 }

 .top-link a:hover {
     text-decoration: underline;
     text-underline-offset: 3px;
 }

 .auth-stage {
     position: relative;
     z-index: 1;
     flex: 1;
     display: flex;
     align-items: center;
     justify-content: center;
     padding: 2rem 5% 4rem;
 }

 .sheet-stack {
     position: relative;
     width: 100%;
     max-width: 470px;
 }

 .sheet-stack::before {
     content: '';
     position: absolute;
     inset: -45px;
     border-radius: 60px;
     background: conic-gradient(from var(--angle), rgba(255, 215, 0, 0.35), rgba(66, 133, 244, 0.22), rgba(155, 114, 203, 0.22), rgba(255, 169, 40, 0.3), rgba(255, 215, 0, 0.35));
     animation: spin 9s linear infinite;
     filter: blur(72px);
     z-index: 0;
     pointer-events: none;
 }

 .auth-card {
     position: relative;
     z-index: 1;
     isolation: isolate;
     background: #fff;
     color: var(--g-text);
     border-radius: 30px;
     padding: 2.6rem clamp(1.6rem, 5vw, 2.8rem) 2.4rem;
     box-shadow: 0 50px 110px -35px rgba(0, 0, 0, 0.9), 0 0 0 1px rgba(255, 255, 255, 0.07), 0 0 90px -30px rgba(255, 215, 0, 0.3);
 }

 .auth-card ::selection {
     background: var(--g-blue);
     color: #fff;
 }

 /* Key icon badge */
 .auth-badge {
     width: 58px;
     height: 58px;
     border-radius: 18px;
     display: flex;
     align-items: center;
     justify-content: center;
     background: linear-gradient(135deg, var(--gold), var(--amber));
     color: #1a1400;
     font-size: 1.4rem;
     box-shadow: 0 10px 26px -8px rgba(255, 169, 40, 0.6);
     margin-bottom: 1.3rem;
 }

 .auth-eyebrow {
     font-family: 'JetBrains Mono';
     font-size: 0.72rem;
     letter-spacing: 0.14em;
     text-transform: uppercase;
     color: var(--g-grey);
     margin-bottom: 0.5rem;
 }

 .auth-title {
     font-family: 'Bricolage Grotesque';
     font-weight: 800;
     font-size: 1.8rem;
     letter-spacing: -0.02em;
     color: var(--g-text);
     line-height: 1.1;
 }

 .auth-sub {
     color: var(--g-sub);
     font-size: 0.98rem;
     margin-top: 0.55rem;
     margin-bottom: 1.7rem;
 }

 .field {
     margin-bottom: 1.4rem;
 }

 .field label {
     display: block;
     font-family: 'JetBrains Mono';
     font-size: 0.72rem;
     letter-spacing: 0.08em;
     text-transform: uppercase;
     color: var(--g-grey);
     margin-bottom: 0.5rem;
 }

 .input-wrap {
     position: relative;
 }

 .input-wrap>i {
     position: absolute;
     left: 1.05rem;
     top: 50%;
     transform: translateY(-50%);
     color: var(--g-grey);
     font-size: 0.92rem;
 }

 .field input {
     width: 100%;
     font-family: 'Instrument Sans';
     font-size: 1rem;
     color: var(--g-text);
     background: #fff;
     border: 1.5px solid #dadce0;
     border-radius: 14px;
     padding: 0.9rem 1rem 0.9rem 2.7rem;
     outline: none;
     transition: border-color 0.15s ease, box-shadow 0.15s ease;
 }

 .field input::placeholder {
     color: #9aa0a6;
 }

 .field input:focus {
     border-color: var(--g-blue);
     box-shadow: 0 0 0 3px rgba(66, 133, 244, 0.15);
 }

 .submit {
     width: 100%;
     display: inline-flex;
     align-items: center;
     justify-content: center;
     gap: 0.55rem;
     font-family: 'Bricolage Grotesque';
     font-weight: 800;
     font-size: 1rem;
     padding: 1rem 1.5rem;
     border-radius: 16px;
     border: 2px solid transparent;
     cursor: pointer;
     color: #1a1400;
     background:
         linear-gradient(115deg, #FFE968, var(--gold), var(--amber), var(--gold), #FFE968) padding-box,
         conic-gradient(from var(--angle), #fff, var(--gold), var(--gold-deep), var(--amber), #fff) border-box;
     background-size: 300% 100%, 100% 100%;
     animation: gradShift 3.5s linear infinite alternate, spin 3s linear infinite;
     box-shadow: 0 0 20px -2px rgba(255, 215, 0, 0.45), 0 4px 14px rgba(2, 6, 18, 0.4);
     transition: transform 0.15s ease, filter 0.15s ease, box-shadow 0.2s ease;
     text-shadow: 0 1px 0 rgba(255, 255, 255, 0.3);
 }

 .submit i {
     font-size: 0.85em;
     transition: transform 0.2s ease;
 }

 .submit:hover {
     transform: translateY(-2px);
     filter: brightness(1.05);
     box-shadow: 0 0 34px 0 rgba(255, 215, 0, 0.6), 0 6px 18px rgba(2, 6, 18, 0.4);
 }

 .submit:hover i {
     transform: translateX(4px);
 }

 .submit:active {
     transform: translateY(1px) scale(0.99);
 }

 .back-link {
     display: inline-flex;
     align-items: center;
     gap: 0.5rem;
     margin-top: 1.5rem;
     color: var(--g-link);
     font-weight: 600;
     font-size: 0.94rem;
     text-decoration: none;
 }

 .back-link:hover {
     text-decoration: underline;
     text-underline-offset: 3px;
 }

 .back-link i {
     font-size: 0.8rem;
 }

 /* Success state (hidden until submit) */
 .sent {
     display: none;
     text-align: center;
 }

 .sent.show {
     display: block;
 }

 .form-view.hide {
     display: none;
 }

 .sent-badge {
     width: 68px;
     height: 68px;
     border-radius: 50%;
     margin: 0 auto 1.4rem;
     display: flex;
     align-items: center;
     justify-content: center;
     background: rgba(52, 168, 83, 0.12);
     border: 1.5px solid rgba(52, 168, 83, 0.4);
     color: var(--g-green);
     font-size: 1.7rem;
     animation: popIn 0.5s cubic-bezier(0.34, 1.7, 0.64, 1);
 }

 .sent h1 {
     font-family: 'Bricolage Grotesque';
     font-weight: 800;
     font-size: 1.7rem;
     color: var(--g-text);
     letter-spacing: -0.02em;
 }

 .sent p {
     color: var(--g-sub);
     font-size: 0.98rem;
     margin-top: 0.6rem;
 }

 .sent .to {
     color: var(--g-text);
     font-weight: 700;
 }

 .sent-note {
     margin-top: 1.4rem;
     padding-top: 1.3rem;
     border-top: 1px solid var(--g-line);
     font-size: 0.86rem;
     color: var(--g-grey);
 }

 .sent-note a {
     color: var(--g-link);
     font-weight: 600;
     text-decoration: none;
 }

 .sent-note a:hover {
     text-decoration: underline;
 }

 .auth-trust {
     position: relative;
     z-index: 1;
     text-align: center;
     padding: 0 5% 2.5rem;
 }

 .auth-trust p {
     font-family: 'JetBrains Mono';
     font-size: 0.74rem;
     color: var(--dimmer);
     letter-spacing: 0.04em;
 }

 .auth-trust i {
     color: var(--green);
     margin-right: 0.4rem;
 }

 a:focus-visible,
 button:focus-visible,
 input:focus-visible {
     outline: 2px solid var(--gold);
     outline-offset: 2px;
 }

 @media (prefers-reduced-motion: reduce) {
     * {
         animation: none !important;
     }
 }

 @media (max-width: 520px) {
     .auth-top {
         padding: 1.2rem 5%;
     }

     .top-link span {
         display: none;
     }

     .auth-title {
         font-size: 1.55rem;
     }
 }