:root{--dt:#2E4F47;--mt:#8BB5AC;--lt:#B8D4CC;--ln:#F3F0EA;--ld:#E8E4DB;--ch:#3A4A46;--mu:#7A9A92;--tx:#2E4F47;--tl:#5A6A62}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Jost',sans-serif;background:var(--ln);color:var(--tx);overflow-x:hidden}
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 3rem;height:64px;background:rgba(46,79,71,0.97);backdrop-filter:blur(8px)}
.nhb{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px}
.nhb span{display:block;width:22px;height:1.5px;background:var(--ln);border-radius:1px;transition:opacity .2s}
.nmob{position:fixed;top:64px;left:0;right:0;z-index:99;background:rgba(46,79,71,0.97);backdrop-filter:blur(8px);max-height:0;overflow:hidden;transition:max-height .3s ease}
.nmob.open{max-height:320px}
.nmob a{display:block;padding:16px 1.5rem;font-size:10px;font-weight:500;letter-spacing:2.5px;color:rgba(243,240,234,0.72);text-decoration:none;text-transform:uppercase;border-bottom:.5px solid rgba(243,240,234,.08);transition:color .2s}
.nmob a:hover{color:var(--mt)}
.nmob a.nr{margin:12px 1.5rem 16px;padding:10px 20px;display:inline-block;border-bottom:none}
.nl{display:flex;align-items:center;gap:12px;text-decoration:none}
.nl svg,.nl img{width:36px;height:36px}
.nlt{font-family:'Cormorant Garamond',serif;font-size:16px;font-weight:300;color:var(--ln);letter-spacing:2px}
.nlt em{font-style:italic;color:var(--mt)}
.nls{display:flex;gap:2rem;list-style:none}
.nls a{font-size:10px;font-weight:500;letter-spacing:2.5px;color:rgba(243,240,234,0.72);text-decoration:none;text-transform:uppercase;transition:color .2s}
.nls a:hover{color:var(--mt)}
.nr{font-size:9px;font-weight:600;letter-spacing:2px;color:var(--dt)!important;background:var(--mt);padding:8px 20px;border-radius:20px;text-decoration:none;transition:background .2s}
.nr:hover{background:var(--lt)!important}
section{padding:100px 3rem}
.wrap{max-width:1100px;margin:0 auto}
.ey{font-size:9px;font-weight:500;letter-spacing:3.5px;color:var(--mt);text-transform:uppercase;margin-bottom:12px}
.st{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,52px);font-weight:300;color:var(--dt);line-height:1.1}
.st em{font-style:italic;color:var(--mt)}
.sd{width:40px;height:1px;background:var(--mt);margin:18px 0 28px}
/* HERO */
#hero{min-height:100vh;background:var(--dt);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:100px 3rem 4rem}
.hbg{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.hbg svg{width:100%;height:100%}
.hi{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;max-width:780px}
.he{font-size:9px;font-weight:500;letter-spacing:4px;color:var(--mt);margin-bottom:24px;animation:fu .8s ease both}
.hl{margin-bottom:28px;animation:fu .8s .1s ease both}
.ht{font-family:'Cormorant Garamond',serif;font-size:clamp(60px,9vw,100px);font-weight:300;color:var(--ln);line-height:1;letter-spacing:2px;animation:fu .8s .2s ease both}
.ha{font-family:'Dancing Script',cursive;font-size:clamp(34px,5vw,56px);color:var(--mt);line-height:1.2;animation:fu .8s .25s ease both}
.htag{font-family:'Cormorant Garamond',serif;font-size:18px;font-style:italic;color:rgba(243,240,234,.68);margin-top:18px;margin-bottom:30px;animation:fu .8s .4s ease both}
.hdiv{width:48px;height:1px;background:var(--mt);margin:0 auto 26px;animation:fu .8s .45s ease both}
.hdd{display:flex;gap:2rem;flex-wrap:wrap;justify-content:center;animation:fu .8s .5s ease both}
.hd{display:flex;flex-direction:column;align-items:center;gap:4px}
.hdl{font-size:8px;font-weight:500;letter-spacing:2.5px;color:var(--mt)}
.hdv{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--ln)}
.hcta{margin-top:40px;animation:fu .8s .6s ease both}
.bp{display:inline-block;background:var(--mt);color:var(--dt);font-size:10px;font-weight:600;letter-spacing:2.5px;padding:14px 36px;border-radius:30px;text-decoration:none;text-transform:uppercase;transition:background .25s,transform .2s}
.bp:hover{background:var(--lt);transform:translateY(-2px)}
.bo{display:inline-block;border:1px solid rgba(243,240,234,.38);color:var(--ln);font-size:10px;font-weight:500;letter-spacing:2.5px;padding:13px 32px;border-radius:30px;text-decoration:none;text-transform:uppercase;margin-left:14px;transition:border-color .25s,color .25s}
.bo:hover{border-color:var(--mt);color:var(--mt)}
.sh{position:absolute;bottom:36px;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;animation:fu 1s 1s ease both;color:rgba(243,240,234,.35);font-size:8px;letter-spacing:2px}
.sh::after{content:'';display:block;width:1px;height:32px;background:var(--mt);opacity:.5;animation:sl 1.5s ease-in-out infinite}
@keyframes sl{0%,100%{transform:scaleY(1);opacity:.5}50%{transform:scaleY(.4);opacity:.2}}
/* ABOUT */
#about{background:var(--ln);position:relative;overflow:hidden}
.ag{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.ab{font-family:'Cormorant Garamond',serif;font-size:19px;color:var(--tl);line-height:1.75;margin-bottom:36px}
.ec{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.ecard{background:#fff;border:.5px solid #C2CFCA;border-radius:6px;padding:20px;border-top:3px solid var(--mt)}
.ecl{font-size:8px;font-weight:500;letter-spacing:2.5px;color:var(--mt);margin-bottom:8px}
.ecv{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--dt);line-height:1.4}
.al{display:flex;flex-direction:column}
.ai{display:flex;align-items:center;gap:18px;padding:20px 0;border-bottom:.5px solid #D5D0C5}
.ai:first-child{border-top:.5px solid #D5D0C5}
.an{font-family:'Cormorant Garamond',serif;font-size:34px;font-weight:300;color:var(--lt);min-width:44px;line-height:1}
.at h4{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--dt);font-weight:400;margin-bottom:3px}
.at p{font-size:12px;color:var(--tl);letter-spacing:.3px}
/* STRIPE */
.hs{background:var(--dt);height:6px}
/* MISSION */
#mission{background:var(--mt);position:relative;overflow:hidden}
.mhb{position:absolute;right:0;top:0;bottom:0;width:50%;pointer-events:none;opacity:.16}
.mg{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;position:relative;z-index:2}
.me{font-size:9px;font-weight:500;letter-spacing:3.5px;color:rgba(243,240,234,.7);text-transform:uppercase;margin-bottom:12px}
.mt2{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,52px);font-weight:300;color:var(--ln);line-height:1.1;margin-bottom:18px}
.md{width:40px;height:1px;background:rgba(243,240,234,.4);margin-bottom:24px}
.mq{font-family:'Cormorant Garamond',serif;font-size:24px;font-style:italic;color:var(--ln);line-height:1.5;margin-bottom:24px}
.mb{font-size:14px;color:rgba(243,240,234,.8);line-height:1.8}
.mr{background:var(--ln);border-radius:8px;padding:40px;display:flex;flex-direction:column}
.ms{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:.5px solid #D5D0C5}
.ms:last-child{border-bottom:none}
.msi{width:40px;height:40px;border-radius:50%;background:var(--dt);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.msi svg{width:18px;height:18px}
.mst h4{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--dt);font-weight:400;margin-bottom:3px}
.mst p{font-size:12px;color:var(--tl);line-height:1.5}
/* ARTISANS */
#artisans{background:var(--ld)}
.ah{text-align:center;margin-bottom:56px}
.grid3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:48px}
.acard{background:#fff;border-radius:6px;border:.5px solid #C2CFCA;overflow:hidden;transition:transform .25s,box-shadow .25s}
.acard:hover{transform:translateY(-4px);box-shadow:0 12px 32px rgba(46,79,71,.12)}
.acimg{width:100%;aspect-ratio:4/3;overflow:hidden}
.acimg svg{width:100%;height:100%}
.acb{padding:20px}
.acb h3{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--dt);margin-bottom:6px}
.acb p{font-size:12px;color:var(--tl);line-height:1.6}
.atag{display:inline-block;margin-top:10px;font-size:8px;font-weight:500;letter-spacing:2px;color:var(--dt);border:.5px solid var(--mt);border-radius:20px;padding:3px 12px}
.an2{text-align:center;font-family:'Cormorant Garamond',serif;font-size:17px;font-style:italic;color:var(--tl)}
/* RSVP */
#rsvp{background:var(--dt);position:relative;overflow:hidden}
.rbg{position:absolute;inset:0;pointer-events:none;opacity:.1}
.ri{max-width:580px;margin:0 auto;text-align:center;position:relative;z-index:2}
.re{font-size:9px;font-weight:500;letter-spacing:3.5px;color:var(--mt);text-transform:uppercase;margin-bottom:12px}
.rt{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,52px);font-weight:300;color:var(--ln);line-height:1.1;margin-bottom:12px}
.rs{font-family:'Cormorant Garamond',serif;font-size:17px;font-style:italic;color:rgba(243,240,234,.62);margin-bottom:40px}
.rf{background:var(--ln);border-radius:8px;padding:40px;text-align:left;border-top:4px solid var(--mt)}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fg{display:flex;flex-direction:column;gap:6px;margin-bottom:18px}
.fg label{font-size:8px;font-weight:500;letter-spacing:2.5px;color:var(--mt);text-transform:uppercase}
.fg input,.fg select{background:#fff;border:.5px solid #C2CFCA;border-radius:4px;padding:11px 14px;font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--dt);outline:none;transition:border-color .2s;width:100%;-webkit-appearance:none}
.fg input:focus,.fg select:focus{border-color:var(--mt)}
.fg input::placeholder{color:#A0A89E}
.fsub{width:100%;margin-top:8px;background:var(--dt);color:var(--ln);border:none;border-radius:4px;padding:14px;font-family:'Jost',sans-serif;font-size:10px;font-weight:500;letter-spacing:2.5px;text-transform:uppercase;cursor:pointer;transition:background .2s,transform .15s}
.fsub:hover{background:var(--ch);transform:translateY(-1px)}
.fn{text-align:center;margin-top:14px;font-size:11px;color:var(--tl);font-family:'Cormorant Garamond',serif;font-style:italic}
.fok{text-align:center;padding:24px 0}
.fok h3{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--dt);margin-bottom:8px}
.fok p{font-size:14px;color:var(--tl)}
/* CONTACT */
#contact{background:var(--ln);border-top:.5px solid #C2CFCA;padding:72px 3rem}
.cg{display:grid;grid-template-columns:1fr 1fr 1fr;gap:48px}
.cb h4{font-size:9px;font-weight:500;letter-spacing:2.5px;color:var(--mt);text-transform:uppercase;margin-bottom:14px}
.cb p,.cb a{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--dt);line-height:1.6;text-decoration:none;display:block}
.cb a:hover{color:var(--mt)}
/* FOOTER */
footer{background:var(--dt);padding:28px 3rem;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px}
.fl{font-family:'Cormorant Garamond',serif;font-size:14px;color:rgba(243,240,234,.5);font-style:italic}
.fr2{font-size:9px;letter-spacing:2px;color:var(--mt)}
/* REVEAL */
.rev{opacity:0;transform:translateY(28px);transition:opacity .7s ease,transform .7s ease}
.rev.vis{opacity:1;transform:none}
@keyframes fu{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:768px){
  nav{padding:0 1.5rem}.nls{display:none}.nhb{display:flex}
  section,#contact{padding:72px 1.5rem}
  .ag,.mg,.cg{grid-template-columns:1fr;gap:48px}
  .grid3{grid-template-columns:1fr 1fr}
  .fr{grid-template-columns:1fr}
  footer{flex-direction:column;text-align:center}
  #hero{padding:100px 1.5rem 60px}
  .sh{display:none}
  .hdot{display:none}
  .hdd{flex-direction:column;align-items:center;gap:20px}
  .hcta{display:flex;flex-direction:column;align-items:center;gap:12px}
  .bo{margin-left:0;width:260px;text-align:center}
  .bp{width:260px;text-align:center}
}
@media(max-width:480px){.grid3{grid-template-columns:1fr}.ec{grid-template-columns:1fr}}
