*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#F6F8FA;
  --ink:#2E3A46;
  --navy:#1E2A38;
  --teal:#0097A7;
  --teal-2:#00BCD4;
  --line:#E3E9F0;
  --card:#ffffff;
  --radius:16px;
  --shadow:0 12px 36px rgba(10,30,60,.10);
}
html{scroll-behavior:smooth}
body{font-family:system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,'Helvetica Neue',Arial,sans-serif;background:var(--bg);color:var(--ink);line-height:1.7}
.wrap{width:92%;max-width:1100px;margin:0 auto}

/* Header */
.top{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--line);z-index:30}
.top .wrap{display:flex;align-items:center;justify-content:space-between;padding:14px 0}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--navy);font-weight:800;letter-spacing:.2px}
.brand .logo{height:28px}
.nav a{text-decoration:none;color:#475569;margin-left:16px;padding:8px 10px;border-radius:10px;transition:.25s}
.nav a:hover{background:#EAF9FC;color:#05697a}

/* Hero */
.hero{position:relative;border-bottom:1px solid var(--line);background:linear-gradient(180deg,#ffffff,#f1fbfe)}
.hero-inner{padding:84px 0;text-align:center}
.hero h1{font-size:2.2rem;margin-bottom:10px;color:var(--navy)}
.hero p{max-width:760px;margin:0 auto;color:#405163}
.btn{display:inline-block;margin-top:16px;background:linear-gradient(135deg,var(--teal),var(--teal-2));color:#fff;padding:12px 22px;border-radius:24px;text-decoration:none;border:2px solid transparent;transition:.25s}
.btn:hover{transform:translateY(-2px);filter:saturate(1.1)}
.hero-glow{position:absolute;inset:-35%;pointer-events:none;background:radial-gradient(40% 40% at 50% 30%, rgba(0,183,195,.16), rgba(0,188,212,.06), transparent 70%);filter:blur(60px);}

/* Sections */
.section{padding:56px 0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
h2{text-align:center;color:var(--navy);margin-bottom:16px}
.about{padding:18px}
.bullets{margin-top:10px;display:grid;gap:6px}
.bullets li{list-style:disc;margin-left:20px;color:#4b5b6b}

/* Services grid */
.grid{display:grid;gap:18px}
@media(min-width:760px){.services{grid-template-columns:repeat(3,1fr)}}
.svc{padding:18px}
.svc h3{color:#05697a;margin-bottom:6px}

/* Portfolio */
.portfolio{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:8px}
.piece img{width:100%;height:190px;object-fit:cover;border-top-left-radius:var(--radius);border-top-right-radius:var(--radius)}
.piece-body{padding:14px}
.piece-body h4{margin-bottom:6px}
.piece-body p{color:#556678}

/* Contact */
.contact-box{max-width:560px;margin:0 auto;padding:18px}
.contact-box a{color:#05697a;text-decoration:none;border-bottom:1px solid transparent}
.contact-box a:hover{border-color:#05697a}

/* Footer */
.foot{padding:18px 0;text-align:center;color:#556678;border-top:1px solid var(--line)}

/* Animations */
.fade-in{opacity:0;transform:translateY(0);transition:opacity .7s ease}
.fade-in.visible{opacity:1}
.fade-up{opacity:0;transform:translateY(12px);transition:opacity .7s ease, transform .7s ease}
.fade-up.visible{opacity:1;transform:translateY(0)}
.hover-rise{transition:transform .25s ease, box-shadow .25s ease}
.hover-rise:hover{transform:translateY(-4px);box-shadow:0 16px 40px rgba(10,30,60,.18)}
