*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
:root {
  --black: #0a0a0a; --black2: #111111; --black3: #1a1a1a; --gray-dark: #2a2a2a;
  --gray-mid: #555555; --gray-light: #999999; --border: #e8e8e8; --border-dark: #2a2a2a;
  --white: #ffffff; --off-white: #f8f8f8;
  --radius: 16px; --radius-sm: 10px; --radius-pill: 100px;
  --shadow: 0 4px 24px rgba(0,0,0,0.07); --shadow-lg: 0 12px 48px rgba(0,0,0,0.12);
  --t: all 0.3s cubic-bezier(0.4,0,0.2,1);
}
html { scroll-behavior: smooth; }
body { font-family: 'Outfit', sans-serif; background: var(--white); color: var(--black); overflow-x: hidden; cursor: none; }

/* CURSOR */
.cursor { width: 10px; height: 10px; background: var(--black); border-radius: 50%; position: fixed; top:0; left:0; pointer-events: none; z-index: 9999; transform: translate(-50%,-50%); transition: transform 0.15s ease, background 0.2s; }
.cursor-ring { width: 36px; height: 36px; border: 1.5px solid rgba(0,0,0,0.3); border-radius: 50%; position: fixed; top:0; left:0; pointer-events: none; z-index: 9998; transform: translate(-50%,-50%); transition: transform 0.35s ease; }

/* NAV */
nav { position: fixed; top:0; left:0; right:0; z-index:500; background: rgba(255,255,255,0.93); backdrop-filter: blur(20px); border-bottom: 1px solid var(--border); padding: 0 3rem; height: 68px; display: flex; align-items: center; justify-content: space-between; transition: var(--t); }
nav.scrolled { box-shadow: 0 2px 20px rgba(0,0,0,0.06); }
.logo-mark { display: flex; align-items: center; gap: 0.8rem; text-decoration: none; cursor: none; }
.logo-icon { width: 36px; height: 36px; background: var(--black); border-radius: 8px; display: flex; align-items: center; justify-content: center; font-family: 'Cormorant Garamond',serif; color: white; font-size: 1.1rem; font-weight: 700; }
.logo-text { font-size: 1rem; font-weight: 600; letter-spacing: 0.12em; color: var(--black); }
.logo-sub { font-size: 0.6rem; color: var(--gray-light); letter-spacing: 0.07em; display: block; }
.nav-center { display: flex; gap: 0.2rem; }
.nav-btn { background: none; border: none; cursor: none; padding: 0.5rem 0.9rem; border-radius: var(--radius-pill); font-family: 'Outfit',sans-serif; font-size: 0.82rem; color: var(--gray-mid); transition: var(--t); }
.nav-btn:hover, .nav-btn.active { background: var(--off-white); color: var(--black); font-weight: 500; }
.btn-ghost { background: none; border: 1.5px solid var(--border); padding: 0.5rem 1.1rem; border-radius: var(--radius-pill); font-family: 'Outfit',sans-serif; font-size: 0.82rem; font-weight: 500; color: var(--black); cursor: none; transition: var(--t); }
.btn-ghost:hover { border-color: var(--black); }
.btn-solid { background: var(--black); color: var(--white); border: none; padding: 0.55rem 1.3rem; border-radius: var(--radius-pill); font-family: 'Outfit',sans-serif; font-size: 0.82rem; font-weight: 500; cursor: none; transition: var(--t); }
.btn-solid:hover { transform: translateY(-1px); box-shadow: 0 4px 14px rgba(0,0,0,0.2); }

/* PAGES */
.page { display: none; min-height: 100vh; padding-top: 68px; animation: pageIn 0.4s ease both; }
.page.active { display: block; }
@keyframes pageIn { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }

/* HERO */
.hero { min-height: calc(100vh - 68px); display: flex; flex-direction: column; justify-content: center; padding: 5rem 3rem; position: relative; overflow: hidden; }
.hero-bg { position: absolute; right:-2rem; bottom:0; font-family:'Cormorant Garamond',serif; font-size:clamp(8rem,18vw,20rem); font-weight:700; color:rgba(0,0,0,0.03); line-height:1; user-select:none; }
.tag-pill { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--off-white); border: 1px solid var(--border); padding: 0.4rem 1rem; border-radius: var(--radius-pill); font-size: 0.73rem; font-weight: 500; color: var(--gray-mid); letter-spacing: 0.06em; text-transform: uppercase; margin-bottom: 1.8rem; width: fit-content; }
.pulse { width: 6px; height: 6px; background: #22c55e; border-radius: 50%; animation: blink 2s infinite; }
@keyframes blink { 0%,100%{opacity:1} 50%{opacity:0.3} }
.tagline-badge { display: inline-flex; align-items: center; gap: 0.5rem; background: var(--black); color: var(--white); padding: 0.45rem 1.1rem; border-radius: var(--radius-pill); font-size: 0.78rem; margin-bottom: 1.5rem; width: fit-content; }
.tagline-inner { transition: opacity 0.35s, transform 0.35s; }
.hero h1 { font-family:'Cormorant Garamond',serif; font-size:clamp(3rem,6vw,6rem); line-height:1.05; font-weight:700; letter-spacing:-0.02em; margin-bottom:1.4rem; max-width:800px; }
.hero h1 em { font-style:italic; color:var(--gray-mid); }
.hero-sub { font-size:1rem; color:var(--gray-mid); max-width:480px; line-height:1.75; margin-bottom:2.5rem; font-weight:300; }
.actions { display: flex; gap: 1rem; flex-wrap: wrap; margin-bottom: 4rem; }
.btn-lg { background:var(--black); color:var(--white); padding:0.85rem 1.8rem; border-radius:var(--radius-pill); font-family:'Outfit',sans-serif; font-size:0.88rem; font-weight:500; border:none; cursor:none; transition:var(--t); }
.btn-lg:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,0.2); }
.btn-lg-out { background:transparent; color:var(--black); padding:0.85rem 1.8rem; border-radius:var(--radius-pill); font-family:'Outfit',sans-serif; font-size:0.88rem; font-weight:500; border:1.5px solid var(--border); cursor:none; transition:var(--t); }
.btn-lg-out:hover { border-color:var(--black); background:var(--off-white); }
.hero-stats { display:flex; gap:3rem; padding-top:2rem; border-top:1px solid var(--border); flex-wrap:wrap; }
.stat-n { font-family:'Cormorant Garamond',serif; font-size:2.1rem; font-weight:700; line-height:1; }
.stat-l { font-size:0.75rem; color:var(--gray-light); margin-top:0.3rem; }

/* SECTIONS */
.sec { padding: 5rem 3rem; }
.sec-alt { background: var(--off-white); }
.sec-dark { background: var(--black); color: var(--white); }
.sec-label { font-size:0.68rem; letter-spacing:0.25em; text-transform:uppercase; color:var(--gray-light); margin-bottom:0.7rem; font-weight:500; }
.sec-label-w { color: rgba(255,255,255,0.35); }
.sec-title { font-family:'Cormorant Garamond',serif; font-size:clamp(1.8rem,3.5vw,2.8rem); font-weight:700; line-height:1.15; letter-spacing:-0.02em; margin-bottom:0.8rem; }
.sec-title-w { color: var(--white); }
.sec-sub { color:var(--gray-mid); font-size:0.93rem; line-height:1.75; max-width:500px; font-weight:300; }
.sec-sub-w { color: rgba(255,255,255,0.45); }
.sec-hd { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:2.5rem; gap:2rem; flex-wrap:wrap; }

/* CARDS */
.card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:1.8rem; transition:var(--t); }
.card:hover { transform:translateY(-3px); box-shadow:var(--shadow-lg); border-color:transparent; }
.card-dark { background:var(--black3); border:1px solid var(--border-dark); border-radius:var(--radius); padding:1.8rem; transition:var(--t); color:var(--white); }
.card-dark:hover { background:var(--gray-dark); border-color:#333; }

/* ACRONYM */
.acr-row { display:grid; grid-template-columns:repeat(5,1fr); gap:1rem; margin-top:2.5rem; }
.acr-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2rem 1.2rem; text-align:center; transition:var(--t); cursor:none; }
.acr-card:hover { background:var(--black); border-color:var(--black); transform:translateY(-3px); box-shadow:var(--shadow-lg); }
.acr-card:hover .acr-l { color:white; }
.acr-card:hover .acr-w { color:rgba(255,255,255,0.4); }
.acr-l { font-family:'Cormorant Garamond',serif; font-size:3rem; font-weight:700; color:var(--black); line-height:1; transition:var(--t); }
.acr-w { font-size:0.66rem; text-transform:uppercase; letter-spacing:0.18em; color:var(--gray-light); margin-top:0.5rem; transition:var(--t); }

/* SERVICE CARDS */
.svc-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.2rem; }
.svc-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2rem; transition:var(--t); cursor:none; position:relative; overflow:hidden; }
.svc-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:3px; background:var(--black); transform:scaleX(0); transform-origin:left; transition:transform 0.3s ease; border-radius:0 0 var(--radius) var(--radius); }
.svc-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); border-color:transparent; }
.svc-card:hover::after { transform:scaleX(1); }
.svc-icon { width:44px; height:44px; background:var(--off-white); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; font-size:1.3rem; margin-bottom:1.2rem; transition:var(--t); }
.svc-card:hover .svc-icon { background:var(--black); }
.svc-name { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:700; margin-bottom:0.5rem; }
.svc-desc { font-size:0.81rem; color:var(--gray-mid); line-height:1.65; }
.svc-link { display:inline-flex; align-items:center; gap:0.3rem; margin-top:1rem; font-size:0.74rem; font-weight:500; color:var(--gray-light); transition:var(--t); }
.svc-card:hover .svc-link { color:var(--black); gap:0.5rem; }

/* TESTIMONIALS */
.testi-outer { overflow:hidden; border-radius:var(--radius); }
.testi-track { display:flex; transition:transform 0.6s cubic-bezier(0.4,0,0.2,1); }
.testi-slide { min-width:100%; background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2.5rem; }
.testi-q { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-style:italic; line-height:1.7; margin-bottom:1.8rem; }
.testi-meta { display:flex; align-items:center; gap:1rem; }
.testi-av { width:42px; height:42px; background:var(--black); border-radius:50%; display:flex; align-items:center; justify-content:center; font-family:'Cormorant Garamond',serif; color:white; font-size:1rem; font-weight:700; }
.testi-name { font-size:0.84rem; font-weight:600; }
.testi-role { font-size:0.73rem; color:var(--gray-light); margin-top:0.1rem; }
.testi-ctrl { display:flex; justify-content:space-between; align-items:center; margin-top:1.2rem; }
.testi-dots { display:flex; gap:0.5rem; }
.testi-dot { width:8px; height:8px; border-radius:50%; background:var(--border); border:none; cursor:none; transition:var(--t); padding:0; }
.testi-dot.on { background:var(--black); width:24px; border-radius:4px; }
.testi-navs { display:flex; gap:0.5rem; }
.testi-nb { width:40px; height:40px; border-radius:50%; border:1.5px solid var(--border); background:none; cursor:none; transition:var(--t); font-size:0.9rem; color:var(--gray-mid); }
.testi-nb:hover { border-color:var(--black); background:var(--black); color:white; }

/* INDUSTRIES */
.ind-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--border-dark); border-radius:var(--radius); overflow:hidden; }
.ind-item { background:var(--black2); padding:2rem 1.8rem; transition:var(--t); cursor:none; }
.ind-item:hover { background:var(--black3); }
.ind-n { font-size:0.63rem; letter-spacing:0.2em; color:rgba(255,255,255,0.2); margin-bottom:0.8rem; }
.ind-name { font-family:'Cormorant Garamond',serif; font-size:1.05rem; font-weight:600; color:var(--white); margin-bottom:0.4rem; }
.ind-tag { font-size:0.73rem; color:rgba(255,255,255,0.3); font-style:italic; }

/* PHASES */
.phase-list { display:flex; flex-direction:column; gap:1rem; }
.phase { background:var(--off-white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:1.2rem 1.4rem; border-left:3px solid var(--black); transition:var(--t); }
.phase:hover { background:var(--white); box-shadow:var(--shadow); }
.phase-n { font-size:0.84rem; font-weight:600; margin-bottom:0.3rem; }
.phase-d { font-size:0.79rem; color:var(--gray-mid); line-height:1.65; }

/* RESULT CHIPS */
.chips { display:flex; flex-wrap:wrap; gap:0.8rem; margin-top:1.8rem; }
.chip { background:var(--black); color:var(--white); padding:0.8rem 1.2rem; border-radius:var(--radius-sm); }
.chip-n { font-family:'Cormorant Garamond',serif; font-size:1.6rem; font-weight:700; line-height:1; }
.chip-l { font-size:0.68rem; color:rgba(255,255,255,0.45); margin-top:0.2rem; }

/* CTA BAND */
.cta-band { background:var(--black); padding:3.5rem; border-radius:var(--radius); margin:0 3rem; display:flex; align-items:center; justify-content:space-between; gap:2rem; }
.cta-band h2 { font-family:'Cormorant Garamond',serif; font-size:1.9rem; color:white; font-weight:700; }
.cta-band p { color:rgba(255,255,255,0.4); font-size:0.88rem; margin-top:0.4rem; }
.btn-white { background:var(--white); color:var(--black); padding:0.85rem 1.8rem; border-radius:var(--radius-pill); font-family:'Outfit',sans-serif; font-size:0.88rem; font-weight:600; border:none; cursor:none; transition:var(--t); white-space:nowrap; }
.btn-white:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(255,255,255,0.15); }

/* CONTACT */
.contact-grid { display:grid; grid-template-columns:1fr 1.6fr; gap:2.5rem; }
.c-info { background:var(--black); border-radius:var(--radius); padding:2.5rem; color:white; }
.c-info h3 { font-family:'Cormorant Garamond',serif; font-size:1.3rem; font-weight:700; margin-bottom:1.5rem; }
.c-row { display:flex; gap:0.8rem; margin-bottom:1.2rem; }
.c-ico { font-size:1rem; opacity:0.5; margin-top:2px; }
.c-txt { font-size:0.83rem; color:rgba(255,255,255,0.55); line-height:1.6; }
.c-txt strong { color:white; display:block; }
.form-card { background:var(--white); border:1px solid var(--border); border-radius:var(--radius); padding:2.5rem; }
.f-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.f-group { display:flex; flex-direction:column; gap:0.4rem; }
.f-full { grid-column:1/-1; }
label { font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--gray-mid); font-weight:500; }
input,select,textarea { border:1.5px solid var(--border); border-radius:var(--radius-sm); padding:0.72rem 1rem; font-family:'Outfit',sans-serif; font-size:0.87rem; color:var(--black); background:white; outline:none; transition:var(--t); width:100%; }
input:focus,select:focus,textarea:focus { border-color:var(--black); box-shadow:0 0 0 3px rgba(0,0,0,0.05); }
textarea { resize:vertical; min-height:110px; }
.btn-submit { background:var(--black); color:white; padding:0.88rem 2rem; border-radius:var(--radius-pill); border:none; font-family:'Outfit',sans-serif; font-size:0.88rem; font-weight:500; cursor:none; transition:var(--t); margin-top:0.5rem; }
.btn-submit:hover { transform:translateY(-2px); box-shadow:0 8px 24px rgba(0,0,0,0.2); }

/* UNDER CONSTRUCTION */
.uc { min-height:calc(100vh - 68px); display:flex; align-items:center; justify-content:center; flex-direction:column; padding:3rem; text-align:center; background:var(--off-white); }
.uc-badge { display:inline-flex; align-items:center; gap:0.6rem; background:var(--white); border:1.5px solid var(--border); padding:0.45rem 1.1rem; border-radius:var(--radius-pill); font-size:0.72rem; font-weight:500; color:var(--gray-mid); letter-spacing:0.08em; text-transform:uppercase; margin-bottom:2rem; }
.uc-ico { width:90px; height:90px; background:var(--black); border-radius:22px; display:flex; align-items:center; justify-content:center; font-size:2.4rem; margin:0 auto 2rem; animation:float 3s ease-in-out infinite; }
@keyframes float { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-8px)} }
.uc-title { font-family:'Cormorant Garamond',serif; font-size:clamp(2rem,5vw,3.2rem); font-weight:700; margin-bottom:1rem; letter-spacing:-0.02em; }
.uc-desc { font-size:0.95rem; color:var(--gray-mid); max-width:460px; line-height:1.75; margin-bottom:2.5rem; font-weight:300; }
.uc-bar-wrap { width:280px; height:4px; background:var(--border); border-radius:2px; margin:0 auto 2rem; overflow:hidden; }
.uc-bar { height:100%; background:var(--black); border-radius:2px; animation:sweep 2.5s ease-in-out infinite; }
@keyframes sweep { 0%{width:0%;margin-left:0} 50%{width:70%;margin-left:0} 100%{width:0%;margin-left:100%} }
.uc-tags { display:flex; gap:0.8rem; flex-wrap:wrap; justify-content:center; }
.uc-tag { background:var(--white); border:1px solid var(--border); border-radius:var(--radius-sm); padding:0.55rem 0.9rem; font-size:0.78rem; color:var(--gray-mid); }

/* CAREERS */
.jobs-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:1.2rem; margin-top:2rem; }
.job { background:var(--white); border:1.5px solid var(--border); border-radius:var(--radius); padding:1.8rem; transition:var(--t); cursor:none; }
.job:hover { border-color:var(--black); transform:translateY(-2px); box-shadow:var(--shadow); }
.job-title { font-family:'Cormorant Garamond',serif; font-size:1.1rem; font-weight:700; margin-bottom:0.4rem; }
.job-tags { display:flex; gap:0.5rem; flex-wrap:wrap; margin-bottom:1rem; }
.job-tag { background:var(--off-white); border:1px solid var(--border); padding:0.22rem 0.65rem; border-radius:var(--radius-pill); font-size:0.68rem; color:var(--gray-mid); }
.job-desc { font-size:0.8rem; color:var(--gray-mid); line-height:1.65; margin-bottom:1.2rem; }
.btn-sm { background:var(--black); color:white; border:none; padding:0.5rem 1.2rem; border-radius:var(--radius-pill); font-family:'Outfit',sans-serif; font-size:0.77rem; font-weight:500; cursor:none; transition:var(--t); }
.btn-sm:hover { transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,0.2); }

/* FOOTER */
footer { background:var(--black2); color:rgba(255,255,255,0.35); padding:2.2rem 3rem; display:flex; align-items:center; justify-content:space-between; font-size:0.77rem; border-top:1px solid var(--border-dark); }
.f-logo { font-family:'Cormorant Garamond',serif; font-size:1.2rem; color:white; font-weight:700; }
.f-links { display:flex; gap:1.4rem; }
.f-links button { background:none; border:none; color:rgba(255,255,255,0.3); cursor:none; font-family:'Outfit',sans-serif; font-size:0.77rem; transition:var(--t); }
.f-links button:hover { color:white; }

/* REVEAL ANIM */
.rv { opacity:0; transform:translateY(18px); transition:opacity 0.6s ease, transform 0.6s ease; }
.rv.in { opacity:1; transform:translateY(0); }
.rv.d1 { transition-delay:0.1s; }
.rv.d2 { transition-delay:0.2s; }
.rv.d3 { transition-delay:0.3s; }

/* TOAST */
.toast { position:fixed; bottom:1.8rem; right:1.8rem; z-index:9000; background:var(--black); color:white; padding:0.9rem 1.4rem; border-radius:var(--radius-sm); font-size:0.84rem; box-shadow:0 8px 32px rgba(0,0,0,0.2); transform:translateY(100px); opacity:0; transition:all 0.4s cubic-bezier(0.4,0,0.2,1); max-width:300px; line-height:1.5; }
.toast.show { transform:translateY(0); opacity:1; }

/* RESPONSIVE */
@media(max-width:900px){
  nav{padding:0 1.2rem;} .nav-center{display:none;}
  .sec,.hero{padding:3rem 1.2rem;}
  .acr-row{grid-template-columns:repeat(3,1fr);}
  .svc-grid{grid-template-columns:1fr;}
  .ind-grid{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;gap:1.5rem;}
  .cta-band{margin:0 1.2rem;flex-direction:column;text-align:center;}
  .f-grid{grid-template-columns:1fr;}
  footer{flex-direction:column;gap:1rem;text-align:center;}
  .jobs-grid{grid-template-columns:1fr;}
  .hero-stats{gap:1.5rem;}
}
