@font-face{font-family:'Cinzel';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cinzel-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cinzel-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cinzel';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cinzel-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:500;font-display:swap;src:url(../fonts/cormorant-garamond-latin-500-italic.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:600;font-display:swap;src:url(../fonts/cormorant-garamond-latin-600-italic.woff2) format('woff2')}
@font-face{font-family:'Cormorant Garamond';font-style:italic;font-weight:700;font-display:swap;src:url(../fonts/cormorant-garamond-latin-700-italic.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:normal;font-weight:400;font-display:swap;src:url(../fonts/mulish-latin-400-normal.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:normal;font-weight:500;font-display:swap;src:url(../fonts/mulish-latin-500-normal.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:normal;font-weight:600;font-display:swap;src:url(../fonts/mulish-latin-600-normal.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:normal;font-weight:700;font-display:swap;src:url(../fonts/mulish-latin-700-normal.woff2) format('woff2')}
@font-face{font-family:'Mulish';font-style:normal;font-weight:800;font-display:swap;src:url(../fonts/mulish-latin-800-normal.woff2) format('woff2')}
html{overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{max-width:100%;overflow-x:clip;margin:0;background:#FBF8F5;color:#141111;font-family:Mulish,"Segoe UI",system-ui,sans-serif;-webkit-font-smoothing:antialiased}
*{box-sizing:border-box}
a{color:#B3121F}a:hover{color:#7A0C15}
button{font-family:inherit;cursor:pointer}
p{text-wrap:pretty}
.disp{font-family:"Cormorant Garamond",Georgia,serif}
.cinzel{font-family:Cinzel,"Trajan Pro",Georgia,serif}
.eyebrow{font-family:Cinzel,Georgia,serif;font-size:13px;letter-spacing:.22em;text-transform:uppercase;color:#B3121F;font-weight:600;margin:0}
.h2{font-family:"Cormorant Garamond",Georgia,serif;font-weight:600;font-size:52px;line-height:1.05;margin:0;color:#141111;text-wrap:balance}
.lead{font-size:19px;line-height:1.7;color:#3F3836;margin:0}
.body{font-size:16px;line-height:1.75;color:#3F3836;margin:0}
.rule{width:64px;height:3px;background:#B3121F;border:0;margin:0}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;padding:0 26px;border-radius:2px;font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase;border:2px solid #B3121F;background:#B3121F;color:#fff;transition:all .25s ease}
.btn:hover{background:#7A0C15;border-color:#7A0C15}
.btn-ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn-ghost:hover{background:#fff;color:#141111;border-color:#fff}
.btn-dark{background:#141111;border-color:#141111}
.btn-dark:hover{background:#B3121F;border-color:#B3121F}
.btn-line{background:transparent;color:#141111;border-color:#141111}
.btn-line:hover{background:#141111;color:#fff}
.navbtn{white-space:nowrap;background:none;border:0;padding:10px 4px;font-size:13px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:#141111;min-height:44px;border-bottom:2px solid transparent}
.navbtn:hover{color:#B3121F}
.card{background:#fff;border:1px solid #E7DED7;border-radius:4px}
.lift{transition:transform .3s ease,box-shadow .3s ease}
.lift:hover{transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(20,17,17,.35)}
.tbl{width:100%;border-collapse:collapse;font-size:15px}
.tbl th{font-family:Cinzel,Georgia,serif;font-size:12px;letter-spacing:.14em;text-transform:uppercase;text-align:left;padding:14px 16px;background:#141111;color:#fff;font-weight:600}
.tbl td{padding:14px 16px;border-bottom:1px solid #E7DED7;color:#2A2424}
.tbl tr:nth-child(even) td{background:#FBF6F2}
.num{text-align:right !important;font-variant-numeric:tabular-nums}
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#2A2424}
.field input,.field select,.field textarea{font:inherit;font-size:16px;padding:12px 14px;border:1px solid #CFC4BC;border-radius:2px;background:#fff;color:#141111;min-height:48px}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid #B3121F;outline-offset:1px;border-color:#B3121F}
.chip{min-height:40px;padding:0 16px;border-radius:40px;border:1.5px solid #141111;background:#fff;font-size:13px;font-weight:700;letter-spacing:.04em;display:inline-flex;align-items:center;gap:8px;color:#141111}
.dot{position:absolute;width:14px;height:14px;margin:-7px 0 0 -7px;border-radius:50%;border:2px solid #fff;padding:0;box-shadow:0 1px 3px rgba(0,0,0,.35);transition:transform .2s ease}
.dot:hover,.dot:focus-visible{transform:scale(1.6);z-index:5;outline:none}
.pill{display:inline-flex;border:1.5px solid #141111;border-radius:40px;overflow:hidden;height:36px}
.pill button{border:0;background:transparent;padding:0 12px;font-size:12px;font-weight:800;letter-spacing:.08em;color:#141111;min-width:42px}
.flink{background:none;border:0;padding:6px 0;color:#D9CFCA;font-size:15px;text-align:left}
.flink:hover{color:#fff}
@keyframes beat{0%,100%{transform:scale(1)}14%{transform:scale(1.09)}28%{transform:scale(1)}42%{transform:scale(1.06)}70%{transform:scale(1)}}
@keyframes sway{0%,100%{transform:rotate(-7deg)}50%{transform:rotate(9deg)}}
@keyframes glow{0%,100%{opacity:.25}50%{opacity:.7}}
@keyframes shine{0%{transform:translateX(-140px)}60%,100%{transform:translateX(160px)}}
@keyframes rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@keyframes ping{0%{transform:scale(1);opacity:.7}100%{transform:scale(3.2);opacity:0}}
@keyframes drift{from{transform:rotate(0)}to{transform:rotate(360deg)}}
.lg-heart{transform-origin:60px 96px;animation:beat 2.4s ease-in-out infinite}
.lg-tassel{transform-origin:92px 42px;animation:sway 3s ease-in-out infinite}
.lg-glow{animation:glow 2.4s ease-in-out infinite}
.lg-shine{animation:shine 4.5s ease-in-out infinite}
.rise{animation:rise .9s cubic-bezier(.2,.7,.2,1) both}
.rise2{animation:rise .9s .15s cubic-bezier(.2,.7,.2,1) both}
.rise3{animation:rise .9s .3s cubic-bezier(.2,.7,.2,1) both}
.ping{position:absolute;inset:-2px;border-radius:50%;border:2px solid #B3121F;animation:ping 1.8s ease-out infinite}
.drift{animation:drift 90s linear infinite;transform-origin:center}
.hero-photo{background-image:linear-gradient(90deg,rgba(20,17,17,.94) 0%,rgba(20,17,17,.86) 45%,rgba(20,17,17,.55) 100%),url(../img/assembly.jpg);background-size:cover;background-position:center 30%}
.ph{display:block;width:100%;height:100%;object-fit:cover}
.tab{border:0;background:transparent;min-height:40px;padding:0 18px;border-radius:40px;font-weight:800;font-size:14px;color:#5A5250}
.play{transition:transform .3s ease}a:hover .play{transform:scale(1.1)}
.tile{position:relative;display:block;width:100%;height:100%;padding:0;border:0;overflow:hidden;background:#141111;cursor:zoom-in;text-align:left}
.tile img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.tile:hover img,.tile:focus-visible img{transform:scale(1.06)}
.tile:focus-visible{outline:3px solid #B3121F;outline-offset:3px}
.tile .cap{position:absolute;left:0;right:0;bottom:0;padding:44px 22px 18px;background:linear-gradient(0deg,rgba(14,11,11,.88),rgba(14,11,11,0));color:#fff;display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.tile .zoom{width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.4);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .3s}
.tile:hover .zoom{background:#B3121F;border-color:#B3121F}
.vid{cursor:pointer}
.vid:hover .play{transform:scale(1.1)}
@keyframes lbIn{from{opacity:0}to{opacity:1}}
@keyframes lbZoom{from{opacity:0;transform:scale(.92)}to{opacity:1;transform:none}}
.lb{animation:lbIn .25s ease both}.lbz{animation:lbZoom .35s cubic-bezier(.2,.7,.2,1) both}
.lbbtn{width:52px;height:52px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(20,17,17,.6);display:flex;align-items:center;justify-content:center;transition:background .2s}
.lbbtn:hover{background:#B3121F;border-color:#B3121F}
@keyframes ringPulse{0%{box-shadow:0 0 0 0 rgba(179,18,31,.55)}100%{box-shadow:0 0 0 26px rgba(179,18,31,0)}}
.ring{animation:ringPulse 1.8s ease-out infinite}
.mcard{position:relative;overflow:hidden;background:#fff;border:1px solid #E7DED7;color:#141111;padding:26px 24px 24px;display:flex;flex-direction:column;gap:16px;min-height:170px;transition:background .35s ease,border-color .35s ease,transform .35s ease;animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
.mcard:hover{background:#B3121F;border-color:#B3121F;color:#fff;transform:translateY(-4px);box-shadow:0 18px 40px -18px rgba(179,18,31,.55)}
.mcard .mnum{position:absolute;right:14px;top:-6px;font-size:84px;font-weight:700;line-height:1;color:rgba(179,18,31,.09);transition:color .35s}
.mcard:hover .mnum{color:rgba(255,255,255,.2)}
.micon{position:relative;width:46px;height:46px;border-radius:50%;border:1.5px solid #B3121F;background:#FBEDEE;color:#B3121F;display:flex;align-items:center;justify-content:center;transition:all .35s}
.mcard:hover .micon{background:#fff;border-color:#fff;color:#B3121F}
@media (max-width:980px){
.pad{padding-left:18px !important;padding-right:18px !important}
.rib-r{gap:12px !important;width:100%;justify-content:space-between}
.rib-r .flink{font-size:13px !important}
.rib-r > span:first-child{display:none !important}
header > div:first-child{height:72px !important}
header > div + div{max-height:calc(100vh - 120px);overflow-y:auto;border-top:1px solid #E7DED7}
.hdr-logo{width:40px !important;height:47px !important}
.wm1{font-size:clamp(12px,3.9vw,15px) !important;letter-spacing:.03em !important}
header > div:first-child{gap:12px !important}
.brand-btn{min-width:0;flex:1 1 auto;gap:10px !important}
.brand-btn > span{min-width:0}
.rib-r,.rib-r *{white-space:normal !important}
.rib-r .pill{flex-shrink:0}
[role="tablist"]{flex-wrap:wrap;max-width:100%}
h1,h2,h3,p,span,a,button{overflow-wrap:break-word}
.wm1,[data-wm2]{white-space:normal !important}
.hero-h{font-size:clamp(46px,15vw,64px) !important}
.menu-btn{flex-shrink:0}
.menu-btn button{width:44px !important;height:44px !important}
.hero-motto{font-size:16px !important;letter-spacing:.2em !important}
[data-wm2]{font-size:clamp(8px,2.5vw,9px) !important;letter-spacing:.14em !important}
.hero-in{padding:64px 0 72px !important;gap:28px !important}
.inner-h{font-size:42px !important;line-height:1.05 !important}
.g4.stats2{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.stats2 > div{padding:22px 16px !important}
.stats2 .disp{font-size:36px !important}
div.keep3{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.g5.dio3{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
.dio3 > button{min-height:84px !important;padding:12px !important}
.dio3 .disp{font-size:30px !important}
[data-m="vid"]{height:320px !important}
[data-m="vid"] .disp{font-size:30px !important}
.stack-m{height:auto !important;grid-template-rows:none !important}
.stack-m > .tile{height:240px}
.g2 > *,.g3 > *,.g4 > *{grid-column:auto !important}
div[style*="position: sticky"],nav[style*="position: sticky"]{position:static !important}
.card{padding-left:22px;padding-right:22px}
form.card{padding:24px 20px !important}
.h2{font-size:34px !important}
.lead{font-size:17px !important}
.mcard{min-height:0 !important}
.dot{width:12px;height:12px}
.tbl th,.tbl td{padding:12px 10px}
.btn{padding:0 18px}
}
@media (max-width:420px){
.g5.dio3{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
.keep3 .disp{font-size:38px !important}
}
@media (prefers-reduced-motion:reduce){.lg-heart,.lg-tassel,.lg-glow,.lg-shine,.rise,.rise2,.rise3,.ping,.drift,.mcard{animation:none}}
@media (max-width:980px){
.g2,.g3,.g4,.g5,.g23{grid-template-columns:minmax(0,1fr) !important}
.nav-links{display:none !important}
.menu-btn{display:inline-flex !important}
.pad{padding-left:20px !important;padding-right:20px !important}
.sec{padding-top:64px !important;padding-bottom:64px !important}
.hero-h{font-size:64px !important}
.h2{font-size:38px}
.hide-m{display:none !important}
.wrapm{flex-wrap:wrap !important}
.tblwrap{overflow-x:auto}
}
#app-root{min-height:100vh}
html{-webkit-text-size-adjust:100%}
img{max-width:100%}
