/* Site Migration Engine — generated by emit_css.ts */
/* 0 unique style tuples across 1 page */
/* authored stylesheet style-sheet-388-1 */
:root{
  --navy:#1d2b3e;
  --navy-d:#141d2b;
  --navy-l:#2a3a52;
  --ink:#2a3647;
  --slate:#5b7d8f;
  --slate-l:#8ba7b3;
  --teal:#4a8a93;
  --teal-l:#6fa8b0;
  --teal-tint:rgba(74,138,147,.12);
  --cream:#f7f1e6;
  --cream-d:#ede3d1;
  --cream-card:#ffffff;
  --w:#ffffff;
  --w9:rgba(255,255,255,.92);
  --w7:rgba(255,255,255,.72);
  --w5:rgba(255,255,255,.5);
  --w3:rgba(255,255,255,.3);
  --w15:rgba(255,255,255,.15);
  --w08:rgba(255,255,255,.08);
  --ink7:rgba(42,54,71,.72);
  --ink5:rgba(42,54,71,.5);
  --ink15:rgba(42,54,71,.15);
  --fh:'Cormorant Garamond',Georgia,serif;
  --fb:'Inter',system-ui,sans-serif;
  --mw:1200px;
  --nh:80px;
  --rs:14px;
  --pill:999px;
  --e:cubic-bezier(.22,1,.36,1);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--fb);color:var(--w9);background:var(--navy);line-height:1.7;font-weight:400;font-size:16.5px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
h1,h2,h3,h4{font-family:var(--fh);font-weight:500;line-height:1.12;letter-spacing:-.01em;color:var(--w)}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}

/* nav */
.snav{position:fixed;top:0;left:0;right:0;z-index:1000;height:var(--nh);display:flex;align-items:center;justify-content:center;transition:all .5s var(--e)}
.snav.scrolled{background:rgba(20,29,43,.92);backdrop-filter:blur(16px);box-shadow:0 1px 0 var(--w08)}
.ni{width:100%;max-width:var(--mw);padding:0 2rem;display:flex;align-items:center;justify-content:space-between}
.nl{display:flex;align-items:center;transition:opacity .3s var(--e)}
.nl:hover{opacity:.82}
.nl img{height:42px;width:auto;display:block}
.nk{display:flex;align-items:center;gap:2.4rem;list-style:none}
.nk a{font-size:.88rem;font-weight:400;letter-spacing:.02em;color:var(--w7);position:relative;padding:.3rem 0;transition:color .3s}
.nk a:hover{color:var(--w)}
.nk a::after{content:'';position:absolute;bottom:-2px;left:0;width:0;height:1px;background:var(--teal-l);transition:width .4s var(--e)}
.nk a:hover::after{width:100%}
.nc{font-size:.82rem !important;font-weight:500 !important;padding:.65rem 1.4rem !important;background:var(--teal) !important;color:var(--w) !important;border-radius:var(--pill) !important;border:1px solid var(--teal) !important;transition:all .4s var(--e) !important;letter-spacing:.02em !important}
.nc:hover{background:var(--teal-l) !important;border-color:var(--teal-l) !important;transform:translateY(-1px)}
.nc::after{display:none !important}
.nt{display:none;flex-direction:column;gap:5px;cursor:pointer;background:none;border:none;padding:.5rem}
.nt span{width:22px;height:2px;background:var(--w7);border-radius:2px;transition:all .3s}
.mo{display:none;position:fixed;inset:0;background:rgba(20,29,43,.98);backdrop-filter:blur(24px);z-index:999;flex-direction:column;align-items:center;justify-content:center;gap:2rem}
.mo.open{display:flex}
.mo a{font-family:var(--fh);font-size:2.2rem;font-weight:500;color:var(--w9);transition:color .3s}
.mo a:hover{color:var(--teal-l)}
.mc{position:absolute;top:1.5rem;right:1.5rem;background:none;border:none;font-size:1.8rem;color:var(--w7);cursor:pointer;line-height:1}
@media(max-width:820px){.nk{display:none}.nt{display:flex}}

/* layout */
.ctn{max-width:var(--mw);margin:0 auto;padding:0 2rem}
.eyebrow{font-family:var(--fb);font-size:.74rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;color:var(--teal-l);margin-bottom:1.1rem;display:inline-flex;align-items:center;gap:.7rem}
.eyebrow::before{content:'';width:24px;height:1px;background:var(--teal-l)}

/* buttons */
.bp{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--fb);font-size:.88rem;font-weight:500;letter-spacing:.02em;padding:.95rem 2.1rem;background:var(--teal);color:var(--w);border:1px solid var(--teal);border-radius:var(--pill);cursor:pointer;transition:all .4s var(--e);text-decoration:none}
.bp:hover{background:var(--teal-l);border-color:var(--teal-l);transform:translateY(-2px);box-shadow:0 10px 28px rgba(74,138,147,.25)}
.bp .arr{transition:transform .3s}.bp:hover .arr{transform:translateX(3px)}
.bo{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--fb);font-size:.88rem;font-weight:500;letter-spacing:.02em;padding:.95rem 2.1rem;background:transparent;color:var(--w9);border:1px solid var(--w3);border-radius:var(--pill);cursor:pointer;transition:all .4s var(--e);text-decoration:none}
.bo:hover{border-color:var(--teal-l);color:var(--w);background:rgba(74,138,147,.1)}
.bo .arr{transition:transform .3s}.bo:hover .arr{transform:translateX(3px)}
.light .bo{color:var(--ink);border-color:var(--ink15)}
.light .bo:hover{border-color:var(--teal);color:var(--teal);background:var(--teal-tint)}

/* skip link (accessibility) */
.skip{position:fixed;top:-60px;left:1rem;background:var(--teal);color:var(--w);padding:.6rem 1rem;z-index:9999;font-size:.85rem;border-radius:6px;transition:top .25s var(--e);font-family:var(--fb);font-weight:500}
.skip:focus{top:1rem;outline:2px solid var(--w);outline-offset:2px}

/* reveal: visible by default (no-JS fallback). When JS is ready, hide until .vis triggers fade-in. js-ready is set synchronously in <head> below so this rule applies before first paint. */
.rev{opacity:1;transform:none}
@media (prefers-reduced-motion: no-preference){
  html.js-ready .rev:not(.vis){opacity:.2;transform:translateY(10px)}
  html.js-ready .rev.vis{animation:fadeInUp 1.3s var(--e) both}
}
@keyframes fadeInUp{from{opacity:.2;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}
.d1{animation-delay:.08s}.d2{animation-delay:.16s}.d3{animation-delay:.24s}.d4{animation-delay:.32s}

/* sections */
section{position:relative}
.light{background:var(--cream);color:var(--ink)}
.light h1,.light h2,.light h3,.light h4{color:var(--ink)}
.light p,.light li{color:var(--ink7)}
.light .eyebrow{color:var(--teal)}
.light .eyebrow::before{background:var(--teal)}

/* footer */
.sf{background:var(--navy-d);color:var(--w5);padding:4.5rem 2rem 2.2rem;text-align:center;border-top:1px solid var(--w08)}
.sf .flogo{display:inline-block;margin-bottom:1rem;transition:opacity .3s var(--e)}
.sf .flogo:hover{opacity:.82}
.sf .flogo img{height:52px;width:auto;display:block;margin:0 auto}
.sf .ft{font-family:var(--fh);font-size:1.05rem;font-style:italic;font-weight:400;color:var(--w5);margin-bottom:2.2rem;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.5}
.sf .flinks{display:flex;justify-content:center;gap:2.2rem;margin-bottom:2.2rem;flex-wrap:wrap}
.sf .flinks a{font-size:.84rem;font-weight:400;letter-spacing:.04em;color:var(--w5);transition:color .3s}
.sf .flinks a:hover{color:var(--teal-l)}
.sf .fd{width:32px;height:1px;background:var(--w15);margin:0 auto 1.8rem}
.sf .fc{font-size:.75rem;color:var(--w3);letter-spacing:.04em}

/* authored stylesheet style-sheet-388-2 */
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3smX5slCNuHLi8bLeY9MK7whWMhyjYrGFEsdtdc62E6zd58jDOjw.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: italic;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3smX5slCNuHLi8bLeY9MK7whWMhyjYrGFEsdtdc62E6zd5wDDOjw.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3umX5slCNuHLi8bLeY9MK7whWMhyjypVO7abI26QOD_v86GnM.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3umX5slCNuHLi8bLeY9MK7whWMhyjypVO7abI26QOD_s06GnM.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3umX5slCNuHLi8bLeY9MK7whWMhyjypVO7abI26QOD_iE9GnM.ttf) format('truetype');
}
@font-face {
  font-family: 'Cormorant Garamond';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/cormorantgaramond/v21/co3umX5slCNuHLi8bLeY9MK7whWMhyjypVO7abI26QOD_hg9GnM.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuOKfMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuLyfMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuI6fMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuGKYMZg.ttf) format('truetype');
}
@font-face {
  font-family: 'Inter';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(https://fonts.gstatic.com/s/inter/v20/UcCO3FwrK3iLTeHuS_nVMrMxCp50SjIw2boKoduKmMEVuFuYMZg.ttf) format('truetype');
}

/* authored stylesheet style-sheet-388-3 */
/* hero */
.hero{min-height:100vh;position:relative;overflow:hidden;display:flex;align-items:center;padding-top:var(--nh)}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;object-position:center}
.hero-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(115deg,rgba(20,29,43,.96) 0%,rgba(29,43,62,.88) 40%,rgba(29,43,62,.55) 72%,rgba(29,43,62,.35) 100%)}
.hero-in{position:relative;z-index:2;width:100%;max-width:var(--mw);margin:0 auto;padding:3rem 2rem;display:grid;grid-template-columns:1.2fr .8fr;gap:4.5rem;align-items:center}
.hero-copy h1{font-size:clamp(3rem,6vw,5.4rem);line-height:1.02;font-weight:500;letter-spacing:-.02em;margin-bottom:1.8rem}
.hero-copy h1 .em{font-style:italic;color:var(--teal-l);font-weight:500}
.hero-copy p.lead{font-size:1.15rem;color:var(--w7);max-width:480px;margin-bottom:2.5rem;line-height:1.65;font-weight:300}
.hero-cta{display:flex;gap:1rem;flex-wrap:wrap}
.hport{position:relative;max-width:380px;margin-left:auto;margin-right:0}
.hport-frame{position:relative;aspect-ratio:4/5;border-radius:300px 300px 40px 40px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.4),0 0 0 1px var(--w08)}
.hport-frame img{width:100%;height:100%;object-fit:cover;object-position:center 15%}
.hport::before{content:'';position:absolute;inset:-18px -18px auto auto;width:110px;height:110px;border:1px solid var(--teal);border-radius:50%;opacity:.4;z-index:-1}
.hport::after{content:'';position:absolute;inset:auto auto -14px -14px;width:70px;height:70px;background:var(--teal-tint);border-radius:50%;z-index:-1}
.hscroll{position:absolute;bottom:1.8rem;left:50%;transform:translateX(-50%);color:var(--w5);font-size:.68rem;font-weight:500;letter-spacing:.22em;text-transform:uppercase;display:flex;flex-direction:column;align-items:center;gap:.7rem;animation:hfl 3s ease-in-out infinite;z-index:3}
.hscroll .ln{width:1px;height:32px;background:linear-gradient(to bottom,var(--w3),transparent)}
@keyframes hfl{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(8px)}}


/* intro band */
.intro{padding:7rem 0;position:relative}
.intro-in{max-width:var(--mw);margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:.8fr 1fr;gap:5rem;align-items:start}
.intro-hd h2{font-size:clamp(2.4rem,4.2vw,3.6rem);font-weight:500;line-height:1.05}
.intro-hd h2 .em{font-style:italic;color:var(--teal)}
.intro-copy p{font-size:1.02rem;line-height:1.85;margin-bottom:1.25rem}
.intro-copy .lnk{margin-top:1.5rem}

/* who I serve */
.serve{padding:7rem 0;background:var(--cream-d)}
.serve-hd{text-align:center;max-width:640px;margin:0 auto 4rem;padding:0 2rem}
.serve-hd h2{font-size:clamp(2.2rem,4vw,3.2rem);font-weight:500;margin-bottom:.4rem}
.serve-hd h2 .em{font-style:italic;color:var(--teal)}
.serve-hd p{font-size:1.02rem;margin-top:.9rem}
.sg{display:grid;grid-template-columns:repeat(3,1fr);gap:1.6rem;max-width:var(--mw);margin:0 auto;padding:0 2rem}
.sc{background:var(--cream-card);padding:2.6rem 2rem;border-radius:var(--rs);border:1px solid var(--ink15);transition:all .5s var(--e);position:relative}
.sc:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(42,54,71,.1);border-color:rgba(74,138,147,.3)}
.sc .snum{font-family:var(--fh);font-size:.95rem;color:var(--teal);font-style:italic;margin-bottom:1rem;display:flex;align-items:center;gap:.5rem}
.sc .snum::before{content:'';width:18px;height:1px;background:var(--teal)}
.sc h3{font-size:1.55rem;font-weight:500;margin-bottom:.4rem;color:var(--ink)}
.sc .sub{font-style:italic;font-family:var(--fh);font-size:1.02rem;color:var(--teal);margin-bottom:1.4rem;font-weight:400}
.sc ul{list-style:none;margin-bottom:0}
.sc li{font-size:.92rem;padding:.45rem 0 .45rem 1.3rem;position:relative;color:var(--ink7);line-height:1.55}
.sc li::before{content:'';position:absolute;left:0;top:.95rem;width:7px;height:1px;background:var(--teal)}
.serve-foot{text-align:center;margin-top:3rem;padding:0 2rem}

/* offerings */
.off{padding:7.5rem 0;background:var(--navy)}
.off-hd{text-align:center;max-width:640px;margin:0 auto 4.5rem;padding:0 2rem}
.off-hd h2{font-size:clamp(2.2rem,4vw,3.2rem);font-weight:500}
.off-hd h2 .em{font-style:italic;color:var(--teal-l)}
.og{display:grid;grid-template-columns:repeat(2,1fr);gap:1.8rem;max-width:var(--mw);margin:0 auto;padding:0 2rem}
.oc{background:var(--navy-l);border:1px solid var(--w08);border-radius:var(--rs);padding:2.4rem;display:flex;gap:1.8rem;align-items:flex-start;transition:all .5s var(--e)}
.oc:hover{border-color:rgba(111,168,176,.4);transform:translateY(-3px);box-shadow:0 20px 50px rgba(0,0,0,.3)}
.oc .oi{flex-shrink:0;width:140px;height:140px;display:flex;align-items:center;justify-content:center;position:relative}
.oc .oi img{width:100%;height:100%;object-fit:contain;transition:transform .6s var(--e);filter:drop-shadow(0 8px 16px rgba(0,0,0,.2))}
.oc:hover .oi img{transform:scale(1.04) rotate(-2deg)}
.oc .oi .ofall{font-family:var(--fh);font-style:italic;font-size:6rem;color:var(--teal-l);line-height:1;opacity:.9}
.ob{flex:1;min-width:0}
.ob h3{font-size:1.6rem;font-weight:500;margin-bottom:.9rem;color:var(--w);font-family:var(--fh)}
.ob p{font-size:.94rem;color:var(--w7);line-height:1.72;margin-bottom:.8rem}
.ob p.fw{font-style:italic;font-family:var(--fh);font-size:1.02rem;color:var(--teal-l);opacity:.92;margin-top:1rem;margin-bottom:0;line-height:1.5}

/* additional services */
.addl{padding:6rem 0}
.addl-in{max-width:900px;margin:0 auto;padding:0 2rem;display:grid;grid-template-columns:.6fr 1fr;gap:4rem;align-items:center}
.addl-hd h2{font-size:clamp(2rem,3.6vw,2.8rem);font-weight:500;line-height:1.1;margin-bottom:.6rem}
.addl-hd h2 .em{font-style:italic;color:var(--teal)}
.addl-hd h3{font-size:1.05rem;font-family:var(--fb);font-weight:500;color:var(--teal);letter-spacing:.02em;margin-top:1rem}
.addl-body p{font-size:1rem;line-height:1.8}

/* CTA */
.cta{position:relative;padding:8rem 0;overflow:hidden;background:var(--navy-d)}
.cta-bg{position:absolute;inset:0;z-index:0}
.cta-bg img{width:100%;height:100%;object-fit:cover;opacity:.22}
.cta-bg::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,29,43,.88),rgba(20,29,43,.72))}
.cta-ct{position:relative;z-index:2;max-width:620px;margin:0 auto;text-align:center;padding:0 2rem}
.cta-ct h2{font-size:clamp(2.4rem,4.6vw,3.6rem);font-weight:500;margin-bottom:1.3rem;letter-spacing:-.02em}
.cta-ct h2 .em{font-style:italic;color:var(--teal-l)}
.cta-ct p{color:var(--w7);font-size:1.08rem;line-height:1.7;margin-bottom:2.6rem;font-weight:300}
.cta-bb{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}

/* responsive */
@media(max-width:960px){
  .hero-in{grid-template-columns:1fr;gap:3rem}
  .hport{max-width:280px;margin:0 auto}
  .intro-in{grid-template-columns:1fr;gap:2rem}
  .sg{grid-template-columns:1fr;max-width:480px}
  .og{grid-template-columns:1fr}
  .addl-in{grid-template-columns:1fr;gap:1.5rem}
}
@media(max-width:600px){
  .hero-copy h1{font-size:2.8rem}
  .oc{padding:2rem;flex-direction:column;gap:1.4rem;text-align:left}
  .oc .oi{width:100px;height:100px}
  .oc .oi .ofall{font-size:4rem}
  .hscroll{display:none}
}
