@font-face{font-family:"Space Grotesk";src:url("../showcase/assets/fonts/space-grotesk-var.woff2") format("woff2");font-weight:300 700;font-display:swap}
@font-face{font-family:"JetBrains Mono";src:url("../showcase/assets/fonts/jetbrains-mono-var.woff2") format("woff2");font-weight:400 800;font-display:swap}

:root{
  --canvas:#2b2b2a;
  --canvas-2:#30302f;
  --panel:#383735;
  --panel-2:#403f3d;
  --text:#fdf3f3;
  --text-2:rgba(253,243,243,.84);
  --text-3:rgba(253,243,243,.64);
  --hair:rgba(255,255,255,.13);
  --hair-strong:rgba(255,255,255,.23);
  --mark:#b3362f;
  --cta:#8a1d1d;
  --cta-hover:#a52525;
  --cta-pressed:#6b1515;
  --error:#f87171;
  --success:#36d399;
  --topbar:68px;
  --radius-card:8px;
  --radius-control:7px;
}

*{box-sizing:border-box;letter-spacing:0}
html{min-width:320px;background:var(--canvas);overflow-x:clip}
body{margin:0;min-height:100vh;background:var(--canvas);color:var(--text);font-family:"Space Grotesk",sans-serif;-webkit-font-smoothing:antialiased}
button,input{font:inherit;color:inherit}
button{border:0;cursor:pointer}
a{color:inherit;text-decoration:none}
[hidden]{display:none!important}

.skip-link{position:fixed;z-index:100;left:16px;top:8px;translate:0 -80px;padding:10px 13px;border-radius:var(--radius-control);background:var(--text);color:var(--canvas);font-weight:700}
.skip-link:focus{translate:0}
button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--cta);outline-offset:3px;box-shadow:0 0 0 5px rgba(138,29,29,.26)}

.auth-topbar{position:fixed;z-index:50;inset:0 0 auto;height:var(--topbar);display:flex;align-items:center;justify-content:space-between;padding:0 clamp(18px,3vw,42px);border-bottom:1px solid var(--hair);background:rgba(43,43,42,.97);backdrop-filter:blur(14px)}
.auth-brand{display:flex;align-items:center;gap:10px}
.auth-brand img{width:27px;height:27px;object-fit:contain}
.auth-brand strong{font-size:15px;font-weight:650}
.auth-brand strong span{color:var(--text-3);font-weight:550}
.auth-back{min-height:44px;display:inline-flex;align-items:center;gap:7px;padding:0 11px;border-radius:var(--radius-control);color:var(--text-2);font-size:12px;font-weight:600}
.auth-back:hover{background:rgba(253,243,243,.06);color:var(--text)}
.auth-back span{font-size:22px;line-height:1}

.auth-main{width:min(1120px,100%);min-height:100vh;margin:0 auto;padding:calc(var(--topbar) + 54px) 32px 54px;display:grid;grid-template-columns:minmax(0,1fr) minmax(380px,460px);align-items:center;gap:72px}
.auth-intro{min-width:0;padding-bottom:18px}
.overline{margin:0 0 12px;color:var(--text-3);font:700 10px/1.35 "JetBrains Mono",monospace;text-transform:uppercase}
.auth-intro h1{max-width:620px;margin:0;font-size:64px;line-height:.98;font-weight:620;overflow-wrap:anywhere}
.auth-lede{max-width:600px;margin:22px 0 0;color:var(--text-2);font-size:16px;line-height:1.6}
.auth-context{max-width:520px;margin:18px 0 0;padding:12px 0 0;border-top:1px solid var(--hair);color:var(--text-3);font-size:12px}

.auth-panel{width:100%;padding:30px;border:1px solid var(--hair-strong);border-radius:var(--radius-card);background:var(--panel)}
.auth-panel-head{margin-bottom:23px}
.auth-panel-head .overline{margin-bottom:7px}
.auth-panel h2{margin:0;font-size:27px;line-height:1.1;font-weight:620}
.auth-message{margin:0 0 17px;padding:12px 13px;border:1px solid rgba(248,113,113,.36);border-radius:var(--radius-control);background:rgba(248,113,113,.08);color:#fecaca;font-size:12px;line-height:1.5}
.auth-message[data-kind="success"],.auth-message[data-kind="info"]{border-color:rgba(54,211,153,.32);background:rgba(54,211,153,.07);color:#b9f6d8}
.auth-fields{display:grid;gap:14px}
.auth-field{display:grid;gap:7px;min-width:0}
.auth-field>span:first-child{color:var(--text-3);font:700 9px/1.35 "JetBrains Mono",monospace}
.auth-field input{width:100%;height:50px;min-width:0;padding:0 13px;border:1px solid var(--hair);border-radius:var(--radius-control);outline:0;background:var(--canvas-2);color:var(--text);font-size:14px}
.auth-field input::placeholder{color:rgba(253,243,243,.34)}
.auth-field input:hover{border-color:var(--hair-strong)}
.auth-field input:focus{border-color:var(--cta)}
.password-control{position:relative;display:block}
.password-control input{padding-right:84px}
.password-control button{position:absolute;right:3px;top:3px;min-width:72px;height:44px;padding:0 9px;border-radius:5px;background:transparent;color:var(--text-2);font-size:10px;font-weight:650}
.password-control button:hover{background:rgba(253,243,243,.06)}

.auth-meta{min-height:44px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.auth-check{min-height:44px;display:inline-flex;align-items:center;gap:9px;color:var(--text-2);font-size:11px;cursor:pointer}
.auth-check input{width:17px;height:17px;margin:0;accent-color:var(--cta)}
.text-button{min-height:44px;padding:0;background:transparent;color:var(--text-2);font-size:11px;font-weight:600}
.text-button:hover,.auth-switch button:hover{color:var(--text)}

.forgot-panel{display:grid;gap:13px;padding:17px;border:1px solid var(--hair);border-radius:var(--radius-card);background:var(--canvas-2)}
.forgot-panel b{font-size:14px}
.forgot-panel p{margin:5px 0 0;color:var(--text-3);font-size:11px;line-height:1.45}
.forgot-panel .forgot-note{margin:0;color:var(--text-2)}

.button{width:100%;min-height:48px;display:inline-flex;align-items:center;justify-content:center;padding:0 16px;border:1px solid var(--hair-strong);border-radius:var(--radius-control);background:transparent;font-size:12px;font-weight:680}
.button:hover{background:rgba(253,243,243,.06)}
.button.primary{margin-top:18px;border-color:var(--cta);background:var(--cta)}
.button.primary:hover{background:var(--cta-hover)}
.button.primary:active{background:var(--cta-pressed)}
.button:disabled{cursor:not-allowed;opacity:.55}
.button.secondary{min-height:44px}
.auth-submit[aria-busy="true"] span::after{content:"";display:inline-block;width:12px;height:12px;margin-left:9px;border:2px solid rgba(253,243,243,.35);border-top-color:var(--text);border-radius:50%;vertical-align:-2px;animation:spin .7s linear infinite}
@keyframes spin{to{rotate:360deg}}

.auth-switch{margin:18px 0 0;text-align:center;color:var(--text-3);font-size:12px}
.auth-switch button{min-height:44px;padding:0 4px;background:transparent;color:var(--text-2);font-weight:680}
.auth-legal{margin-top:17px;padding-top:16px;border-top:1px solid var(--hair)}
.auth-legal p{margin:0;color:var(--text-3);font-size:9px;line-height:1.55}
.auth-legal nav{display:flex;flex-wrap:wrap;gap:3px 14px;margin-top:8px}
.auth-legal a{min-height:44px;display:inline-flex;align-items:center;color:var(--text-2);font-size:10px}
.auth-legal a:hover{color:var(--text)}

@media(max-width:760px){
  :root{--topbar:62px}
  .auth-topbar{padding:0 16px}
  .auth-back{padding:0 4px}
  .auth-main{min-height:0;padding:calc(var(--topbar) + 24px) 16px 30px;display:block}
  .auth-intro{padding:0 0 20px}
  .overline{margin-bottom:8px;font-size:8px}
  .auth-intro h1{max-width:100%;font-size:38px;line-height:1.02;overflow-wrap:normal}
  .auth-lede{margin-top:12px;font-size:13px;line-height:1.48}
  .auth-context{margin-top:11px;padding-top:10px;font-size:10px}
  .auth-panel{padding:22px 18px}
  .auth-panel-head{margin-bottom:18px}
  .auth-panel h2{font-size:23px}
  .auth-field input{height:48px}
  .auth-meta{align-items:flex-start}
  .auth-check,.text-button{font-size:10px}
  .auth-legal nav{justify-content:space-between}
}

@media(max-width:360px){
  .auth-brand strong{font-size:14px}
  .auth-back{font-size:10px}
  .auth-intro h1{font-size:34px}
  .auth-panel{padding-inline:15px}
  .auth-meta{display:grid;gap:0}
}

@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
@media(forced-colors:active){button,a,input,.auth-panel,.forgot-panel{forced-color-adjust:auto}.button,.auth-field input{border:1px solid ButtonText}}
