*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}:root{--black:#080705;--anth:#282520;--dark:#4b453e;--gray:#9e9a8d;--red:#8b2020;--red2:#b32a2a;--cream:#f0ebe3;--dim:#c8c2b8}html{scroll-behavior:smooth}body{background:var(--black);color:var(--cream);font-family:'DM Sans',sans-serif;line-height:1.6;overflow-x:hidden}a{color:inherit}button,input,textarea{font:inherit}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.skip-link{position:fixed;left:1rem;top:-5rem;z-index:1000;background:var(--cream);color:var(--black);padding:.7rem 1rem}.skip-link:focus{top:1rem}:focus-visible{outline:2px solid var(--red2);outline-offset:4px}
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.5rem 4rem;transition:.35s}nav.scrolled{background:rgba(8,7,5,.93);backdrop-filter:blur(16px);padding:1rem 4rem;border-bottom:1px solid rgba(158,154,141,.1)}.nav-logo,.footer-logo{font-weight:900;font-size:1.1rem;letter-spacing:.2em;text-decoration:none}.nav-logo span,.footer-logo span{color:var(--red2)}.nav-links{display:flex;gap:3rem;list-style:none;align-items:center}.nav-links a{color:var(--gray);text-decoration:none;font-size:.72rem;letter-spacing:.18em;text-transform:uppercase;transition:.2s}.nav-links a:hover{color:var(--cream)}.nav-cta{color:var(--cream)!important;border-bottom:1px solid var(--red2);padding-bottom:2px}.menu-toggle{display:none;background:none;border:0;color:var(--cream)}
.hero{height:100svh;min-height:650px;position:relative;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden}.hero-bg{position:absolute;inset:0;background-color:var(--anth);background-size:cover;background-position:center}.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(8,7,5,.65),transparent 60%)}.hero-bg-text{position:absolute;bottom:0;right:0;font-weight:900;font-size:clamp(8rem,20vw,22rem);line-height:.85;color:rgba(255,255,255,.025);letter-spacing:-.04em}.hero-content{position:relative;z-index:2;padding:0 4rem 4rem;display:grid;grid-template-columns:1fr auto;align-items:end;gap:4rem}.hero-tag,.eyebrow{display:flex;align-items:center;gap:.75rem;font-size:.68rem;letter-spacing:.3em;text-transform:uppercase;color:var(--red2);margin-bottom:1.25rem;font-weight:500}.hero-tag::before,.eyebrow::before{content:'';width:2rem;height:1px;background:var(--red2)}.hero-name,.section-heading,.about-heading,.contact-heading{font-family:'Bebas Neue',sans-serif;font-weight:400;line-height:.9;letter-spacing:-.01em}.hero-name{font-size:clamp(4.5rem,9vw,9rem)}.hero-name strong{font-weight:400}.hero-right-content{display:flex;flex-direction:column;align-items:flex-end;gap:2rem}.hero-desc{font-size:.82rem;color:var(--gray);max-width:220px;text-align:right;line-height:1.8}.hero-cta,.submit-btn{display:inline-flex;align-items:center;gap:1rem;background:var(--red);color:var(--cream);text-decoration:none;border:0;padding:1rem 2rem;font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:500;cursor:pointer;transition:.2s}.hero-cta::after{content:'→'}.hero-cta:hover,.submit-btn:hover{background:var(--red2);transform:translateY(-2px)}.hero-scroll{position:absolute;bottom:4rem;left:50%;z-index:3;display:flex;flex-direction:column;align-items:center;gap:.5rem}.hero-scroll i{width:1px;height:48px;background:linear-gradient(var(--red2),transparent);animation:pulse 2s infinite}.hero-scroll span{font-size:.62rem;letter-spacing:.25em;color:rgba(158,154,141,.5);writing-mode:vertical-rl;text-transform:uppercase}@keyframes pulse{50%{transform:scaleY(1.2);opacity:.5}}
.marquee-strip{overflow:hidden;background:var(--red);padding:1rem 0}.marquee-inner{display:flex;width:max-content;gap:1.25rem;align-items:center;animation:marquee 28s linear infinite;text-transform:uppercase;letter-spacing:.2em;font-size:.72rem}.marquee-inner b{color:var(--black);font-size:1.4rem}@keyframes marquee{to{transform:translateX(-50%)}}
.about-section{display:grid;grid-template-columns:46% 54%;min-height:860px}.about-photo,.service-photo{background-color:var(--anth);background-size:cover;position:relative}.about-photo>span,.service-photo>span{position:absolute;right:2rem;top:2rem;font:8rem/1 'Bebas Neue';color:rgba(255,255,255,.035)}.about-text-side{padding:9rem 9vw;display:flex;flex-direction:column;justify-content:center}.about-heading{font-size:clamp(5rem,8vw,8rem);margin-bottom:4rem}.about-heading em,.section-heading em,.contact-heading em{color:var(--red2);font-weight:400}.about-block{max-width:580px;border-top:1px solid rgba(158,154,141,.16);padding:1.5rem 0;color:var(--dim);font-size:.95rem}
.certs-section,.gallery-section{padding:9rem 7vw;background:var(--anth)}.section-heading{font-size:clamp(4.5rem,8vw,8rem);margin-bottom:5rem}.certs-accordion{border-top:1px solid rgba(158,154,141,.24)}.cert-item{border-bottom:1px solid rgba(158,154,141,.2)}.cert-row{width:100%;display:grid;grid-template-columns:70px 1fr auto;gap:1rem;align-items:center;text-align:left;padding:2rem 0;background:none;color:var(--cream);border:0;cursor:pointer}.cert-row>span:first-child{font-size:.7rem;color:var(--red2);letter-spacing:.15em}.cert-row b{display:block;font:2rem/1.1 'Bebas Neue';letter-spacing:.03em}.cert-row small{display:block;color:var(--gray);margin-top:.35rem}.cert-row i{font-style:normal;font-size:2rem;color:var(--red2);transition:.25s}.cert-row[aria-expanded=true] i{transform:rotate(45deg)}.cert-detail{display:grid;grid-template-rows:0fr;transition:.35s}.cert-detail p{overflow:hidden;color:var(--gray);max-width:720px;margin-left:70px}.cert-detail.open{grid-template-rows:1fr}.cert-detail.open p{padding-bottom:2rem}
.services-section{padding-top:9rem}.services-intro{display:grid;grid-template-columns:1fr 350px;align-items:end;padding:0 7vw 7rem}.services-intro>p{color:var(--gray)}.service-block{display:grid;grid-template-columns:1fr 1fr;min-height:700px}.service-block.reverse .service-photo{order:2}.service-content{padding:7rem 8vw;background:#11100e;display:flex;flex-direction:column;justify-content:center}.service-index{font-size:.68rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red2);margin-bottom:2rem}.service-content h3{font:clamp(3.5rem,6vw,6.5rem)/.9 'Bebas Neue';margin-bottom:2.5rem}.service-content ul{list-style:none}.service-content li{border-top:1px solid rgba(158,154,141,.14);padding:.65rem 0;color:var(--dim);font-size:.9rem}.service-content li::before{content:'—';color:var(--red2);margin-right:.8rem}.service-for{border-left:2px solid var(--red);padding-left:1.2rem;margin-top:2rem;color:var(--gray);font-size:.87rem}.service-for strong{color:var(--cream)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:300px;gap:1rem}.gallery-grid figure{overflow:hidden;background:var(--dark)}.gallery-grid figure.tall{grid-row:span 2}.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .6s}.gallery-grid figure:hover img{transform:scale(1.035)}.gallery-empty{color:var(--gray);border-top:1px solid var(--dark);padding-top:2rem}
.contact-section{padding:9rem 7vw;display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,600px);gap:8vw}.contact-heading{font-size:clamp(5rem,9vw,9rem);margin-bottom:2rem}.contact-info>p{max-width:520px;color:var(--gray)}.contact-links{margin:2.5rem 0}.contact-links a{display:flex;justify-content:space-between;padding:1rem 0;border-bottom:1px solid var(--dark);text-decoration:none}.contact-info blockquote{font:2rem/1.25 'Bebas Neue';max-width:430px;color:var(--dim)}.contact-form-wrap{background:#13110f;padding:3rem}.contact-form-wrap h3{font:3rem 'Bebas Neue';margin-bottom:1.5rem}.contact-form-wrap label{display:block;color:var(--gray);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-bottom:1.4rem}.contact-form-wrap input,.contact-form-wrap textarea{display:block;width:100%;background:transparent;border:0;border-bottom:1px solid var(--dark);color:var(--cream);padding:.75rem 0;border-radius:0;outline:0;text-transform:none;letter-spacing:0}.contact-form-wrap input:focus,.contact-form-wrap textarea:focus{border-color:var(--red2)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem}.hp{position:absolute;left:-9999px}.alert{padding:1rem;margin-bottom:1.5rem;font-size:.9rem}.alert.success{border-left:3px solid #4d8b5a;background:#122017}.alert.error{border-left:3px solid var(--red2);background:#261010}
.social-panel{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;align-items:flex-end}.social-panel a{height:48px;width:48px;display:flex;align-items:center;background:#171513;border-bottom:1px solid #332f2a;text-decoration:none;overflow:hidden;transition:width .3s}.social-panel a:hover,.social-panel a.open{width:min(280px,80vw);background:var(--red)}.social-icon{width:48px;min-width:48px;height:48px;display:grid;place-items:center}.social-icon svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.6}.social-panel b{white-space:nowrap;padding-right:1.2rem;font-size:.72rem;font-weight:500;letter-spacing:.05em}footer{border-top:1px solid rgba(158,154,141,.15);padding:2rem 4rem;display:flex;align-items:center;justify-content:space-between;color:var(--gray);font-size:.72rem}footer>div:last-child{display:flex;gap:1.5rem}footer a{text-decoration:none}.reveal{opacity:0;transform:translateY(28px);transition:opacity .7s,transform .7s}.reveal.visible{opacity:1;transform:none}
@media(max-width:900px){nav,nav.scrolled{padding:1.2rem 1.5rem}.menu-toggle{display:flex;width:44px;height:44px;flex-direction:column;justify-content:center;gap:6px;align-items:center;z-index:2}.menu-toggle span{width:24px;height:1px;background:currentColor;transition:.3s}.menu-toggle[aria-expanded=true] span:first-child{transform:translateY(7px) rotate(45deg)}.menu-toggle[aria-expanded=true] span:nth-child(2){opacity:0}.menu-toggle[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-links{position:fixed;inset:0;background:rgba(8,7,5,.98);flex-direction:column;justify-content:center;gap:2rem;transform:translateX(100%);transition:.35s}.nav-links.open{transform:none}.nav-links a{font:2.4rem 'Bebas Neue';color:var(--cream)}body.menu-open{overflow:hidden}.hero-content{padding:0 1.5rem 3rem;grid-template-columns:1fr;gap:1.5rem}.hero-right-content{align-items:flex-start}.hero-desc{text-align:left;max-width:300px}.hero-scroll{display:none}.about-section{grid-template-columns:1fr;min-height:0}.about-photo{min-height:65vh}.about-text-side{padding:6rem 1.5rem}.certs-section,.gallery-section{padding:6rem 1.5rem}.services-intro{grid-template-columns:1fr;padding:6rem 1.5rem 4rem;gap:1rem}.service-block{grid-template-columns:1fr;min-height:0}.service-block.reverse .service-photo{order:0}.service-photo{min-height:58vh}.service-content{padding:4rem 1.5rem}.gallery-grid{grid-template-columns:1fr 1fr;grid-auto-rows:240px}.contact-section{grid-template-columns:1fr;padding:6rem 1.5rem;gap:4rem}.social-panel{top:auto;bottom:80px;transform:none}.social-panel a{height:46px;width:46px}.social-icon{width:46px;min-width:46px;height:46px}footer{padding:2rem 1.5rem;flex-wrap:wrap;gap:1rem}}
@media(max-width:520px){.hero{min-height:620px}.hero-name{font-size:clamp(4rem,21vw,6rem)}.hero-cta{width:100%;justify-content:center}.section-heading{font-size:4rem}.about-heading,.contact-heading{font-size:5rem}.cert-row{grid-template-columns:42px 1fr auto}.cert-row b{font-size:1.55rem}.cert-detail p{margin-left:42px}.gallery-grid{grid-template-columns:1fr;grid-auto-rows:320px}.gallery-grid figure.tall{grid-row:span 1}.contact-form-wrap{padding:2rem 1.2rem;margin-inline:-.3rem}.form-row{grid-template-columns:1fr}footer{flex-direction:column;align-items:flex-start}.social-panel{bottom:20px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.reveal{opacity:1;transform:none}}

/* PAGE LOADER + ENHANCED ENTRANCES */
body.is-loading{overflow:hidden}.page-loader{position:fixed;inset:0;z-index:2000;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--black);transition:opacity .65s ease,visibility .65s ease}.page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none}.loader-mark{font-size:clamp(3rem,8vw,5.5rem);font-weight:900;letter-spacing:.2em;line-height:1;opacity:0;transform:translateY(14px);animation:loaderMark .65s .08s cubic-bezier(.2,.8,.2,1) forwards}.loader-mark span{color:var(--red2)}.loader-line{width:min(220px,48vw);height:1px;margin:1.5rem 0 1rem;background:rgba(158,154,141,.18);overflow:hidden}.loader-line i{display:block;width:45%;height:100%;background:var(--red2);animation:loaderLine 1.15s cubic-bezier(.65,0,.35,1) infinite}.page-loader p{color:var(--gray);font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;opacity:0;animation:loaderText .5s .35s forwards}@keyframes loaderMark{to{opacity:1;transform:none}}@keyframes loaderLine{0%{transform:translateX(-120%)}100%{transform:translateX(330%)}}@keyframes loaderText{to{opacity:1}}.hero-content>*{transition:opacity .8s ease,transform .8s cubic-bezier(.2,.8,.2,1)}body.is-loading .hero-content>*{opacity:0;transform:translateY(24px)}body.page-ready .hero-content>*{opacity:1;transform:none}.hero-content>*:nth-child(2){transition-delay:.13s}.reveal:nth-child(2n){transition-delay:.06s}.reveal:nth-child(3n){transition-delay:.12s}
@media(prefers-reduced-motion:reduce){body.is-loading{overflow:auto}.page-loader{display:none}body.is-loading .hero-content>*{opacity:1;transform:none}}
