*{box-sizing:border-box;margin:0}
body{background:var(--bg);color:var(--text);font:var(--base)/1.65 var(--font);min-height:100vh;display:flex;flex-direction:column}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.wrap{max-width:var(--max-width);margin:0 auto;padding:0 var(--pad);width:100%}
header{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 85%,transparent);position:sticky;top:0;backdrop-filter:blur(8px)}
header .wrap{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-block:1rem}
.logo{font-weight:700;letter-spacing:.04em;color:var(--text);display:flex;align-items:center;gap:.6rem}
.logo svg{width:28px;height:28px}
nav a{color:var(--muted);margin-left:1.4rem}nav a.on,nav a:hover{color:var(--text);text-decoration:none}
main{flex:1}
.hero{position:relative;overflow:hidden;padding-block:calc(var(--pad)*3)}
.hero::before{content:"";position:absolute;inset:0;opacity:var(--grid-opacity);
 background-image:linear-gradient(var(--text) 1px,transparent 1px),linear-gradient(90deg,var(--text) 1px,transparent 1px);background-size:var(--grid-size) var(--grid-size)}
.hero .contours{position:absolute;right:-10%;top:-20%;width:70%;opacity:var(--contour-opacity);pointer-events:none}
.hero .wrap{position:relative}
.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.18em;font-size:.8rem;font-weight:600}
h1{font-size:var(--h1);line-height:1.1;margin:.6rem 0 1.2rem;max-width:18ch}
h2{font-size:var(--h2);margin-bottom:1rem}
.lead{color:var(--muted);font-size:1.2rem;max-width:62ch}
.grad{background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}
section.block{padding-block:calc(var(--pad)*2);border-top:1px solid var(--line)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(var(--bp-cols),1fr));gap:1.2rem}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:1.6rem;border-top:3px solid var(--accent)}
.card:nth-child(2){border-top-color:var(--accent-2)}
.card h3{margin-bottom:.5rem}.card p{color:var(--muted)}
.prose p{color:var(--muted);max-width:68ch;margin-bottom:1rem}
.email{font-size:var(--h2);font-weight:600}
footer{border-top:1px solid var(--line);background:var(--bg-alt);color:var(--muted);font-size:.9rem}
footer .wrap{padding-block:1.6rem;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem}
body.signin{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg)}
.signin-box{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:var(--pad);width:min(var(--bp-cols) + 100px,90vw)}
.signin-box .logo{display:flex;gap:.5rem;align-items:center;font-weight:700;margin-bottom:1.5rem}.signin-box .logo svg{width:32px}
.signin-box form{display:flex;flex-direction:column;gap:1rem}.signin-box label{display:flex;flex-direction:column;gap:.4rem;color:var(--muted)}
.signin-box input{background:var(--bg-alt);border:1px solid var(--line);border-radius:calc(var(--radius)/2);padding:.7rem;color:var(--text);font:inherit}
.signin-box button{background:var(--accent);color:var(--bg);border:0;border-radius:calc(var(--radius)/2);padding:.8rem;font:inherit;font-weight:700}
.signin-box a{color:var(--accent-2);text-align:center}
.signin-box{height:auto;align-self:center;flex:0 0 auto}main.signin-box{min-height:0}
body.signin main.signin-box{flex:0 0 auto;margin:auto}
