:root{--o:#F0803C;--od:#B4531A;--ink:#141414;--bg:#FAF8F5;--r:28px}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{font-family:Urbanist,system-ui,sans-serif;color:var(--ink);background:var(--bg);line-height:1.6;font-size:1.0625rem}
img{max-width:100%;display:block}
a{color:inherit}
.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:1rem;top:-4rem;background:var(--ink);color:#fff;padding:.6rem 1rem;border-radius:999px;z-index:99}
.skip:focus{top:1rem}
:focus-visible{outline:3px solid var(--od);outline-offset:3px}
.container{width:min(1160px,92%);margin-inline:auto}
.accent{color:var(--o)}.accent-dark{color:var(--od)}

/* nav */
.site-header{position:sticky;top:12px;z-index:50;padding:0 4%}
.nav{max-width:1160px;margin:12px auto 0;background:var(--ink);border-radius:999px;padding:8px;display:flex;align-items:center;position:relative;min-height:60px}
.nav__menu{list-style:none;padding:0;display:flex;flex:1;align-items:center;gap:4px}
.nav__menu a{color:#fff;text-decoration:none;padding:.6rem 1.3rem;border-radius:999px;font-weight:500;display:block}
.nav__menu a:hover{background:#2a2a2a}
.nav__menu a.is-active{background:var(--o);color:var(--ink);font-weight:700}
.nav__menu :focus-visible{outline-color:var(--o)}
.nav__gap{flex:1}
.logo{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:.5rem;color:#fff;text-decoration:none;font-weight:800;letter-spacing:.06em}
.logo:focus-visible{outline-color:var(--o)}
.logo__mark{width:36px;height:36px;border-radius:50%;background:var(--o);color:var(--ink);display:grid;place-items:center;font-size:.68rem;letter-spacing:0}
.nav__toggle{display:none;margin-left:auto;background:var(--o);border:0;border-radius:999px;width:48px;height:44px;cursor:pointer}
.nav__toggle:focus-visible{outline-color:#fff}
.nav__bars,.nav__bars::before,.nav__bars::after{display:block;width:20px;height:2px;background:var(--ink);margin:auto;position:relative}
.nav__bars::before,.nav__bars::after{content:"";position:absolute}
.nav__bars::before{top:-6px}.nav__bars::after{top:6px}

/* hero */
.hero{text-align:center;padding:3.5rem 4% 0;position:relative;overflow:hidden}
.hero__hello{position:relative;display:inline-block}
.pill-outline{display:inline-block;border:1.5px solid var(--ink);border-radius:999px;padding:.3rem 1.1rem;font-weight:600}
.scribble{position:absolute;fill:none;stroke:var(--o);stroke-width:3;stroke-linecap:round}
.scribble--a{width:34px;right:-34px;top:-22px}
.scribble--b{width:60px;left:calc(50% - 400px);top:200px}
.hero__title{font-size:clamp(2.5rem,7vw,5.25rem);line-height:1.05;font-weight:600;letter-spacing:-.02em;margin-top:.8rem}
.hero__stage{display:grid;grid-template-columns:1fr minmax(0,560px) 1fr;align-items:center;gap:2rem;max-width:1160px;margin:0 auto}
.hero__note{text-align:left;max-width:260px;font-size:1rem}
.quote-mark{font-size:3rem;line-height:1;color:var(--od);font-weight:800;display:block;height:1.6rem}
.hero__stat{text-align:right;justify-self:end}
.hero__stat strong{display:block;font-size:2.5rem;line-height:1}
.hero__tagline{margin:0;font-size:2.1rem;font-weight:700;line-height:1.1;letter-spacing:-.01em}
.arch{position:relative;height:470px;margin-top:-1rem}
.arch__bg{position:absolute;bottom:0;left:0;right:0;height:78%;background:var(--o);border-radius:999px 999px 0 0}
.arch__photo{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:62%;height:92%;object-fit:cover;object-position:65% 50%;border-radius:200px 200px 0 0}
.arch__ctas{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);display:flex;padding:6px;gap:4px;border-radius:999px;background:rgba(255,255,255,.25);border:1px solid rgba(255,255,255,.7);backdrop-filter:blur(10px)}
.btn{display:inline-flex;align-items:center;gap:.4rem;padding:.8rem 1.6rem;border-radius:999px;font-weight:700;text-decoration:none;border:0;font:inherit;font-weight:700;cursor:pointer;white-space:nowrap}
.btn--orange{background:var(--o);color:var(--ink);box-shadow:0 2px 8px rgba(0,0,0,.12)}
.btn--orange:hover{background:#f39457}
.btn--glass{color:var(--ink);background:rgba(255,255,255,.55)}
.btn--glass:hover{background:#fff}

/* services */
.services{background:radial-gradient(circle at 85% 10%,rgba(240,128,60,.18),transparent 40%),radial-gradient(circle at 5% 90%,rgba(240,128,60,.12),transparent 35%),repeating-linear-gradient(135deg,#161616 0 6px,#121212 6px 12px);color:#fff;border-radius:48px 48px 0 0;padding:4.5rem 0 3.5rem}
.services__head{display:flex;justify-content:space-between;gap:2rem;align-items:center;margin-bottom:2.5rem}
.services h2{font-size:clamp(2rem,4vw,3rem);font-weight:600}
.services__head p{max-width:430px;color:#d6d6d6}
.carousel{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.card{position:relative;border-radius:var(--r);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.03));border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(12px);padding:1.4rem 1.4rem 1.4rem;min-height:380px;display:flex;flex-direction:column}
.card h3{font-size:1.5rem;font-weight:600;line-height:1.25;padding-bottom:1rem;border-bottom:1px solid rgba(255,255,255,.18)}
.card__desc{margin:1rem 0 0;font-size:1rem;line-height:1.5;color:rgba(255,255,255,.85);padding-right:.5rem}
.card__mock{flex:1;margin-top:1.2rem;border-radius:20px;background:linear-gradient(160deg,#efe6dc,#cdb8a3);display:grid;place-items:center;color:#3a2a1c;font-weight:600;min-height:220px;overflow:hidden}
.card__mock:has(img){background:#efe6dc}
.card__mock img{width:100%;height:100%;object-fit:contain;display:block}
.card__btn{position:absolute;right:1rem;bottom:1rem;width:64px;height:64px;border-radius:50%;background:#1e2433;color:#fff;display:grid;place-items:center;font-size:1.7rem;text-decoration:none;border:4px solid #141414;transition:transform .2s}
.card__btn:hover{transform:rotate(45deg)}
.card__btn:focus-visible{outline-color:var(--o)}
.dots{display:none;justify-content:center;gap:8px;margin-top:1.5rem}
.dots button{width:10px;height:10px;border-radius:999px;border:0;background:#fff;opacity:.6;cursor:pointer;padding:0;transition:width .2s}
.dots button[aria-current=true]{width:30px;background:var(--o);opacity:1}
.dots button:focus-visible{outline-color:var(--o)}

/* about/projects */
.about,.projects{padding:5rem 0 1rem}
.about h2,.projects h2,.contact h2{font-size:clamp(2rem,4vw,3rem);font-weight:600;margin-bottom:1.2rem}
.about__body{max-width:720px;font-size:1.2rem}
.social{list-style:none;padding:0;display:flex;gap:.6rem;margin-top:1.4rem;flex-wrap:wrap}
.social a{display:inline-block;padding:.5rem 1.1rem;border:1.5px solid var(--ink);border-radius:999px;text-decoration:none;font-weight:600;font-size:1rem}
.social a:hover{background:var(--ink);color:#fff}
.grid{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem}
.tile{aspect-ratio:4/3;border-radius:var(--r);background:linear-gradient(145deg,#eee8e1,#ddd3c8);padding:1.25rem;display:flex;flex-direction:column;justify-content:flex-end}
.tile span{font-weight:700;font-size:1.2rem}.tile small{color:#4d4d4d}
.tile--image{padding:0;overflow:hidden;position:relative}
.tile__link{display:block;position:relative;width:100%;height:100%;border-radius:var(--r);color:#fff;text-decoration:none}
.tile__link:focus-visible{outline:3px solid var(--od);outline-offset:3px}
.tile__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:top;border-radius:var(--r);transition:transform .4s ease}
.tile__link:hover .tile__img,.tile__link:focus-visible .tile__img{transform:scale(1.03)}
.tile__badge{position:absolute;top:.85rem;left:.85rem;background:var(--od);color:#fff;font-size:.75rem!important;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:.3rem .65rem;border-radius:999px;z-index:1}
.tile__text{position:absolute;left:0;right:0;bottom:0;padding:2.5rem 1.25rem 1.1rem;background:linear-gradient(transparent,rgba(0,0,0,.78));border-radius:0 0 var(--r) var(--r);display:flex;flex-direction:column}
.tile__text small{color:#f2f2f2}
.tile__img--center{object-position:center}
@media (prefers-reduced-motion:reduce){.tile__img{transition:none}.tile__link:hover .tile__img{transform:none}}

/* contact */
.contact{margin-top:5rem;background:var(--ink);color:#fff;border-radius:48px 48px 0 0;padding:4.5rem 0}
.contact__inner{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem}
.contact p{color:#d6d6d6}
.form{display:grid;gap:.4rem}
.form label{font-weight:600;margin-top:.6rem}
.form input,.form textarea{font:inherit;padding:.85rem 1rem;border-radius:16px;border:1px solid #555;background:#1f1f1f;color:#fff}
.form input:focus-visible,.form textarea:focus-visible{outline-color:var(--o)}
.form [aria-invalid=true]{border-color:#ff8a80}
.form .btn{justify-self:start;margin-top:1rem}
.form .btn:focus-visible{outline-color:#fff}
.form__status{min-height:1.5em;font-weight:600}
.form__status.ok{color:#8be0a4}.form__status.err{color:#ffaaa2}
.footer{background:var(--ink);color:#bdbdbd;text-align:center;padding:1.5rem;border-top:1px solid #2a2a2a;font-size:.95rem}

@media (max-width:960px){
  .hero__stage{grid-template-columns:1fr}
  .hero__note{order:2;margin:2rem auto 0;text-align:center}
  .hero__stat{order:3;justify-self:center;text-align:center}
  .arch{order:1;height:420px;margin-top:1rem}
  .scribble--b{display:none}
  .services__head,.contact__inner{display:block}
  .services__head p{margin-top:.8rem}
  .contact__inner > div{margin-bottom:2rem}
  .grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
  .nav__toggle{display:block}
  .logo{position:static;transform:none;margin-left:.6rem}
  .nav__menu{display:none;position:absolute;top:calc(100% + 8px);left:0;right:0;flex-direction:column;align-items:stretch;background:var(--ink);border-radius:24px;padding:10px}
  .nav__menu.open{display:flex}
  .nav__gap{display:none}
  .carousel{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:1rem;padding-bottom:.5rem;scrollbar-width:none}
  .carousel::-webkit-scrollbar{display:none}
  .card{flex:0 0 86%;scroll-snap-align:center}
  .carousel:focus-visible{outline-color:var(--o)}
  .dots{display:flex}
}
@media (max-width:520px){
  .arch{height:360px}
  .arch__photo{width:70%}
  .btn{padding:.7rem 1.2rem}
  .grid{grid-template-columns:1fr}
  .services,.contact{border-radius:32px 32px 0 0}
}
