:root{--red: #8B0000;--red-hover: #a30000;--white: #ffffff;--off-white: #f7f4f4;--black: #111111;--text-gray: #444444}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}body{font-family:Liter,sans-serif;color:var(--black);background:var(--white);line-height:1.6}.header{background:var(--white);border-bottom:3px solid var(--red);position:sticky;top:0;z-index:100}.header-inner{max-width:1100px;margin:0 auto;padding:.75rem 2rem;display:flex;align-items:center;justify-content:space-between}.logo-link{display:flex;align-items:center;text-decoration:none}.header-logo{height:48px;width:auto}nav{display:flex;gap:2rem}.nav-link{color:var(--black);text-decoration:none;font-size:1rem;letter-spacing:.03em;padding-bottom:3px;border-bottom:2px solid transparent;transition:color .15s,border-color .15s}.nav-link:hover{color:var(--red)}.nav-link.active{color:var(--red);border-bottom-color:var(--red)}.hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:6px 4px}.hamburger span{display:block;width:24px;height:2px;background:var(--black);border-radius:2px;transition:transform .22s ease,opacity .22s ease;transform-origin:center}.hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}.hamburger.open span:nth-child(2){opacity:0;transform:scaleX(0)}.hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.mobile-nav{display:flex;flex-direction:column;gap:0;background:var(--white);border-top:1px solid #eee}.mobile-nav .nav-link{padding:1rem 2rem;border-bottom:1px solid #eee;font-size:1.05rem}.mobile-nav .nav-link.active{color:var(--red);border-bottom-color:#eee;background:#fdf5f5}.hero{position:relative;color:var(--white);text-align:center;padding:6rem 2rem 5.5rem;background:url(/st-louis-skyline-banner.jpeg) center 40% / cover no-repeat;isolation:isolate}.hero:before{content:"";position:absolute;inset:0;background:#8b0000b8;z-index:-1}.hero-logo{width:110px;height:auto;margin-bottom:1.5rem;filter:brightness(0) invert(1)}.hero h1{font-size:3rem;letter-spacing:-.02em;margin-bottom:.75rem}.hero p{font-size:1.2rem;opacity:.88}.container{max-width:1100px;margin:0 auto}.section-title{font-size:2rem;color:var(--red);margin-bottom:.5rem}.section-title:after{content:"";display:block;width:56px;height:3px;background:var(--red);margin-top:.5rem}.about{background:var(--white);padding:5rem 2rem}.about p{margin-top:1.5rem;font-size:1.1rem;color:var(--text-gray);max-width:720px;line-height:1.85}.projects{background:var(--off-white);padding:5rem 2rem}.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem;margin-top:2.5rem}.project-card{background:var(--white);border-radius:12px;padding:2.5rem 2rem;display:flex;flex-direction:column;align-items:center;gap:1.25rem;text-decoration:none;border:2px solid transparent;box-shadow:0 2px 8px #0000000f;transition:border-color .2s,transform .2s,box-shadow .2s}.project-card:hover{border-color:var(--red);transform:translateY(-4px);box-shadow:0 10px 28px #8b000021}.project-logo{width:100%;max-width:190px;height:auto;object-fit:contain}.project-desc{font-size:.9rem;color:var(--text-gray);text-align:center;line-height:1.65}.footer{background:var(--red);color:var(--white);text-align:center;padding:2rem;font-size:.9rem}.footer p+p{margin-top:.25rem;opacity:.72}.contact-page{padding:5rem 2rem;min-height:calc(100vh - 260px)}.contact-page h1{font-size:2.5rem;color:var(--red);margin-bottom:1rem}.contact-page h1:after{content:"";display:block;width:56px;height:3px;background:var(--red);margin-top:.5rem}.contact-email{margin-top:1.5rem;font-size:1.1rem;color:var(--text-gray)}.contact-email a{color:var(--red);text-decoration:none;font-weight:600}.contact-email a:hover{text-decoration:underline}.contact-form{margin-top:3rem;max-width:600px;display:flex;flex-direction:column;gap:1.5rem}.form-group{display:flex;flex-direction:column;gap:.4rem}.form-group label{font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--black)}.form-group input,.form-group textarea{padding:.75rem 1rem;border:2px solid #ddd;border-radius:6px;font-family:Liter,sans-serif;font-size:1rem;color:var(--black);background:var(--white);transition:border-color .15s}.form-group input:focus,.form-group textarea:focus{outline:none;border-color:var(--red)}.form-group textarea{resize:vertical}.submit-btn{align-self:flex-start;padding:.875rem 2.25rem;background:var(--red);color:var(--white);border:none;border-radius:6px;font-family:Liter,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;letter-spacing:.03em;transition:background .15s}.submit-btn:hover:not(:disabled){background:var(--red-hover)}.submit-btn:disabled{opacity:.55;cursor:not-allowed}.form-success{color:#2e7d32;font-weight:600}.form-error{color:var(--red);font-weight:600}.not-found{padding:7rem 2rem;text-align:center;min-height:calc(100vh - 260px)}.not-found-code{font-size:7rem;font-weight:700;color:var(--red);line-height:1;margin-bottom:.5rem;opacity:.15}.not-found h1{font-size:2rem;color:var(--black);margin-bottom:.75rem}.not-found-sub{font-size:1.05rem;color:var(--text-gray);margin-bottom:2.5rem}.back-home{display:inline-block;padding:.8rem 2.25rem;background:var(--red);color:var(--white);text-decoration:none;border-radius:6px;font-weight:700;letter-spacing:.03em;transition:background .15s}.back-home:hover{background:var(--red-hover)}@media(max-width:768px){.projects-grid{grid-template-columns:1fr;max-width:420px}.hero h1{font-size:2.25rem}.header-inner{padding:.75rem 1rem}}@media(max-width:640px){.desktop-nav{display:none}.hamburger{display:flex}}@media(max-width:480px){.hero{padding:3.5rem 1.5rem 3rem}.about,.projects,.contact-page{padding:3.5rem 1.25rem}}
