:root{ --bg:#0f1720; --card:#0f1720; --muted:#9aa4b2; --accent:#ffd166; --glass: rgba(255,255,255,0.04); --radius:14px; --wrap:1100px; } *{box-sizing:border-box} html,body{height:100%} body{ margin:0; font-family:Inter,system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial; background:linear-gradient(180deg,#071018 0%, #0f1720 100%); color:#e6eef6; -webkit-font-smoothing:antialiased; line-height:1.45; } .wrap{max-width:var(--wrap);margin:0 auto;padding:2rem} .site-header{backdrop-filter:blur(6px);position:sticky;top:0;z-index:40;background:linear-gradient(180deg,rgba(0,0,0,0.25),transparent)} .site-header .wrap{display:flex;align-items:center;justify-content:space-between;padding:1rem 2rem} .logo{font-weight:700;letter-spacing:0.4px} .nav a{color:var(--muted);text-decoration:none;margin-left:1.25rem;font-weight:600} .hero{padding:5rem 0;background:linear-gradient(180deg,rgba(13,24,34,0.2),transparent)} .hero-inner{display:flex;flex-direction:column;gap:.6rem} .hero-title{font-size:clamp(1.6rem,4vw,3.2rem);margin:0;font-weight:800} .hero-sub{color:var(--muted);max-width:60ch} .section-title{font-size:1.25rem;margin:0 0 1rem 0;font-weight:700} .gallery .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem} .photo-card{background:var(--glass);border-radius:var(--radius);overflow:hidden;padding:0;display:flex;flex-direction:column;align-items:stretch;cursor:pointer;transition:transform .25s ease,box-shadow .25s ease} .photo-card:focus{outline:2px solid rgba(255,209,102,0.18)} .photo-card:hover{transform:translateY(-6px) scale(1.01);box-shadow:0 10px 30px rgba(0,0,0,0.6)} .photo-placeholder{height:220px;background:linear-gradient(135deg,#0b1a28 0%, #0f2838 100%);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:2rem} .photo-placeholder svg{width:48px;height:48px;opacity:.85} .photo-card figcaption{padding:0.9rem 1rem;color:var(--muted);font-weight:600} /* Project button inside card */ .photo-placeholder{position:relative} .project-btn{display:inline-block;margin-left:0.75rem;padding:.35rem .6rem;border-radius:8px;background:rgba(255,209,102,0.06);color:var(--accent);font-weight:700;text-decoration:none;font-size:.9rem} .project-btn:focus{outline:2px solid rgba(255,209,102,0.18)} .project-btn:hover{background:rgba(255,209,102,0.09)} /* Project image element */ .project-img{width:100%;height:100%;object-fit:cover;display:block} /* Project page grid */ .photo-page .photo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,280px));gap:1rem;margin-top:1rem} .photo-page .photo-spot{ background:var(--glass); border-radius:12px; overflow:hidden; cursor:pointer; /* allow height to grow/shrink with content instead of forcing 200px */ display:flex; align-items:center; justify-content:center; padding:1rem; } .photo-page .photo-spot .photo-placeholder{ /* removed fixed height so it sizes to the image inside */ display:flex; align-items:center; justify-content:center; color:var(--muted); font-size:1.4rem; padding:1rem; } /* make images scale naturally and not stretch to fill the card */ .project-img{ max-width:100%; height:auto; object-fit:contain; display:block; margin:0 auto; } /* Home link emphasis on project pages */ .photo-page .nav a{background:rgba(255,209,102,0.06);padding:.4rem .7rem;border-radius:8px;color:var(--accent);font-weight:700} .about,.contact{padding:2rem 0} .site-footer{padding:1.5rem 0;text-align:center;color:var(--muted)} /* Reveal animations */ .reveal{opacity:0;transform:translateY(18px) scale(.995);transition:opacity .7s cubic-bezier(.2,.9,.3,1),transform .7s cubic-bezier(.2,.9,.3,1)} .reveal.is-visible{opacity:1;transform:none} /* small devices */ @media (max-width:600px){.wrap{padding:1rem}.photo-placeholder{height:160px}} /* subtle focus and accessibility */ a{color:var(--accent)}