:root{color-scheme:dark;font-family:Inter,system-ui,sans-serif;--bg:#050914;--surface:#0d1729;--ink:#f4f8ff;--muted:#a8b8cd;--cyan:#37ddf5;--line:rgba(170,195,225,.22);--ok:#54ddb1;--bad:#ffaaa4}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 80% 0,rgba(39,134,255,.16),transparent 30rem),var(--bg);color:var(--ink);line-height:1.6}a{color:inherit;text-decoration:none}header,footer{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1rem max(1rem,calc((100% - 900px)/2));border-bottom:1px solid var(--line);background:#07101e}.brand{display:flex;align-items:center;gap:.65rem;font-weight:900;letter-spacing:.12em}.brand img{width:36px}.brand span{color:var(--muted);font-weight:500;letter-spacing:0}main{max-width:900px;margin:auto;padding:5rem 1rem}.eyebrow{color:var(--cyan);font-size:.75rem;letter-spacing:.14em;font-weight:800}h1{font-size:clamp(3rem,8vw,5.5rem);line-height:.95;letter-spacing:-.06em;margin:.5rem 0}.lead,p{color:var(--muted)}aside{border-left:3px solid var(--cyan);padding:1rem;background:rgba(55,221,245,.07);margin:2rem 0}form{display:grid;gap:1rem;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:1.5rem}label{display:grid;gap:.4rem;font-weight:750}small{color:var(--muted);font-weight:400}input,textarea{background:#07101e;color:#fff;border:1px solid var(--line);border-radius:8px;padding:.8rem;font:inherit}textarea{resize:vertical}button{justify-self:start;border:0;border-radius:8px;padding:.8rem 1.1rem;color:#fff;font-weight:800;background:linear-gradient(120deg,#1fa8f4,#315eea 52%,#8754f6);cursor:pointer}#result{margin:1rem 0;border:1px solid var(--line);border-radius:12px;padding:1rem;min-height:70px}#result.valid{border-color:var(--ok)}#result.invalid{border-color:var(--bad)}#result h2{margin:0}.explain{margin-top:3rem}footer{border-top:1px solid var(--line);border-bottom:0;color:var(--muted)}@media(max-width:600px){body{overflow-x:hidden}header{align-items:flex-start}header>a:last-child{display:none}.brand span{display:block}main{padding-top:3rem;width:100%}h1{font-size:2.75rem;overflow-wrap:anywhere}input,textarea{min-width:0;width:100%}}