*{box-sizing:border-box;margin:0;padding:0}:root{--lime:#addd30;--lime-bright:#bcea45;--ink:#16180f;--ink-deep:#0c0e0a;--muted:#525647;--soft:#9da191;--line:#e4e6dc;--paper:#f7f8f3;--white:#fff;--font-display:"Sora", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-sans:"Hanken Grotesk", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--shadow:0 12px 28px #00000014}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-padding-top:80px}body{color:var(--ink);background:var(--paper);font-family:var(--font-sans);font-size:16px;line-height:1.6;overflow-x:hidden}button,input,select,textarea{font:inherit}button{cursor:pointer;background:0 0;border:0}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto;display:block}::selection{color:var(--ink);background:var(--lime)}:focus-visible{outline:2px solid var(--lime);outline-offset:3px}.pill-button{color:#181b12;background:var(--lime);min-height:44px;font-family:var(--font-display);white-space:nowrap;border-radius:10px;justify-content:center;align-items:center;padding:14px 26px;font-weight:600;line-height:1;transition:background-color .2s,transform .2s;display:inline-flex}.pill-button:hover{background:var(--lime-bright);transform:translateY(-1px)}.pill-button.submit{width:100%}.contact-overlay{z-index:80;background:#0c0e0a8c;justify-content:center;align-items:center;padding:16px;animation:.18s ease-out fadeIn;display:flex;position:fixed;inset:0}.overlay-hitbox{cursor:default;position:absolute;inset:0}.contact-modal{z-index:1;border:2px solid var(--lime);background:var(--white);border-radius:24px;width:min(100%,672px);max-height:min(90vh,820px);padding:32px;animation:.18s ease-out modalSlideUp;position:relative;overflow-y:auto}.modal-close{width:36px;height:36px;color:var(--muted);border-radius:999px;justify-content:center;align-items:center;transition:background-color .15s;display:flex;position:absolute;top:20px;right:20px}.modal-close:hover{background:var(--paper)}.modal-close svg,.error-banner svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:24px;height:24px}.contact-form{gap:24px;display:grid}.contact-form h2{color:var(--ink);font-family:var(--font-display);text-align:center;margin-bottom:8px;font-size:32px;font-weight:700;line-height:1.2}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.field{gap:8px;display:grid}.field span{color:var(--ink);font-size:15px;font-weight:600}.field input,.field select,.field textarea{border:1px solid var(--line);width:100%;color:var(--ink);background:var(--white);border-radius:12px;outline:none;padding:12px 16px;transition:border-color .15s,box-shadow .15s}.field textarea{resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--lime);box-shadow:0 0 0 3px #addd3040}.field .invalid{border-width:2px;border-color:#ef4444}.field small{color:#ef4444;font-size:14px}.error-banner{color:#991b1b;background:#fef2f2;border:2px solid #ef4444;border-radius:14px;grid-template-columns:24px 1fr 28px;align-items:flex-start;gap:12px;margin-bottom:24px;padding:14px;display:grid}.error-banner p{font-weight:500}.error-banner button{color:#ef4444}.success-state{text-align:center;padding:48px 16px}.success-state h3{color:var(--ink);font-family:var(--font-display);margin:24px 0 12px;font-size:30px;font-weight:700;line-height:1.2}.success-state p{color:var(--muted);font-size:18px}.success-icon{fill:none;stroke:#22c55e;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:96px;height:96px;margin:0 auto;animation:.35s ease-out scaleIn}.not-found{text-align:center;place-items:center;min-height:100vh;padding:32px;display:grid}.not-found div{justify-items:center;gap:16px;display:grid}.not-found h1{font-family:var(--font-display);font-size:clamp(36px,5vw,56px);line-height:1.1}.not-found p{color:var(--muted);font-size:18px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes modalSlideUp{0%{opacity:0;transform:scale(.96)translateY(20px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@media (max-width:560px){.form-grid{grid-template-columns:1fr}.contact-modal{padding:28px 20px}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
