:root{--celeste-deep: #3a9bc7;--celeste: #6ec6e6;--celeste-soft: #a8dff2;--celeste-mist: #e5f7fc;--sky: #f3fcff;--ink: #163a52;--ink-soft: #3d6a84;--sun: #ffe566;--card: rgba(255, 255, 255, .78);--stroke: rgba(22, 58, 82, .12);--shadow: 0 12px 40px rgba(22, 58, 82, .1);--radius: 18px;--font-display: "Fraunces", Georgia, serif;--font-body: "Nunito", system-ui, sans-serif}*,*:before,*:after{box-sizing:border-box}html{min-height:100%;background:var(--sky)}body{margin:0;min-height:100dvh;font-family:var(--font-body);color:var(--ink);background:var(--sky)}a{color:var(--celeste-deep);text-decoration:none}a:hover{color:#1f7eab}img{max-width:100%;height:auto;display:block}button,input{font:inherit}h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:-.02em;color:var(--ink);margin:0 0 .75rem}.page{width:min(1120px,calc(100% - 2rem));margin:0 auto;padding:1.25rem 0 3rem}.page-title{font-size:clamp(1.6rem,3vw,2.2rem);margin-bottom:1rem}.page-lead{color:var(--ink-soft);font-weight:600;line-height:1.55;max-width:62ch}.surface{background:#ffffffeb;border:1px solid var(--stroke);border-radius:var(--radius);box-shadow:var(--shadow);padding:clamp(1rem,3vw,1.75rem)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:44px;padding:.65rem 1.15rem;border:0;border-radius:999px;cursor:pointer;font-weight:800;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:linear-gradient(120deg,var(--celeste-deep),#1f7eab);color:#fff;box-shadow:0 8px 20px #3a9bc759}.btn-primary:hover{color:#fff;box-shadow:0 10px 24px #3a9bc773}.btn-ghost{background:#ffffffb3;color:var(--ink);border:1px solid var(--stroke)}.btn-ghost:hover{background:#fff}.field{width:100%;min-height:44px;border:1px solid var(--stroke);border-radius:999px;padding:.7rem 1rem;background:#ffffffe6;color:var(--ink);outline:none}.field:focus{border-color:var(--celeste);box-shadow:0 0 0 3px #6ec6e659}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.state-msg{text-align:center;color:var(--ink-soft);font-weight:700;padding:2rem 1rem}.state-msg.error{color:#9b2c2c}
