:root{--ink:#0F1222;--accent:#4B6BFB;--accent-dark:#3A56D4;--halo:#EEF1FE;--slate:#5A6478;--line:#E4E8F0;--bg:#F7F8FC}
*{box-sizing:border-box}body{margin:0;font-family:Inter,system-ui,sans-serif;color:var(--ink);font-size:15.5px;line-height:1.55}
.split{display:grid;grid-template-columns:minmax(400px,44%) 1fr;min-height:100vh}
.form-pane{display:grid;place-items:center;padding:2rem;background:#fff}
.form-box{width:min(400px,100%)}
.logo{font-family:Fraunces,serif;font-size:1.6rem;font-weight:600;color:var(--ink);text-decoration:none;display:inline-block;margin-bottom:1.6rem}
h1{font-family:Fraunces,serif;font-size:1.55rem;margin:0 0 .3rem;letter-spacing:-.01em}
.sub{color:var(--slate);font-size:.92rem;margin:0 0 1.4rem}
label{display:block;font-weight:500;font-size:.88rem;margin:.9rem 0}
input{width:100%;margin-top:.35rem;padding:.75rem .9rem;border:1.5px solid var(--line);border-radius:10px;font:inherit;background:var(--bg);transition:border .12s,box-shadow .12s}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(75,107,251,.15);background:#fff}
.pw-wrap{position:relative}
.pw-toggle{position:absolute;inset-inline-end:.6rem;top:50%;transform:translateY(-50%);border:0;background:none;cursor:pointer;width:28px;height:28px;color:var(--slate)}
.pw-toggle::before{content:'';display:block;width:20px;height:20px;margin:auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2'%3E%3Cpath d='M2 12s3.5-7 10-7 10 7 10 7-3.5 7-10 7-10-7-10-7z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/contain no-repeat}
.pw-toggle.show{color:var(--accent)}
.btn{width:100%;margin-top:1.2rem;background:var(--accent);color:#fff;border:0;border-radius:12px;padding:.85rem;font:inherit;font-weight:600;font-size:1rem;cursor:pointer;transition:background .12s,box-shadow .12s}
.btn:hover{background:var(--accent-dark);box-shadow:0 8px 20px rgba(75,107,251,.3)}
.links{display:flex;justify-content:space-between;align-items:center;margin-top:1rem;font-size:.88rem;flex-wrap:wrap;gap:.5rem}
.links a{color:var(--accent-dark);text-decoration:none;font-weight:500}
.links a:hover{text-decoration:underline}
.alert{background:#FBEBEB;border:1px solid #EFC4C4;color:#A33030;border-radius:10px;padding:.7rem .9rem;margin:0 0 1rem;font-size:.9rem}
.alert.ok{background:#E7F6EE;border-color:#BBE3CC;color:#1F7A4D}
.art-pane{position:relative;background:var(--bg);display:grid;place-items:center;padding:3rem;overflow:hidden}
.halo{position:absolute;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,var(--halo) 0%,rgba(238,241,254,0) 70%)}
.carousel{position:relative;width:min(560px,100%);text-align:center}
.slide{display:none;animation:fade .45s ease}
.slide.on{display:block}
.slide svg{max-height:330px;margin:0 auto;display:block;filter:drop-shadow(0 20px 34px rgba(15,18,34,.10))}
.slide h2{font-family:Fraunces,serif;font-size:1.35rem;margin:1.4rem 0 .3rem}
.slide p{color:var(--slate);font-size:.94rem;max-width:26rem;margin:0 auto}
.dots{display:flex;gap:.5rem;justify-content:center;margin-top:1.3rem}
.dot{width:9px;height:9px;border-radius:50%;border:0;background:#C9D2E8;cursor:pointer;padding:0;transition:all .15s}
.dot.on{background:var(--accent);width:24px;border-radius:6px}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:880px){.split{grid-template-columns:1fr}.art-pane{display:none}}
