/* The First Threshold, Atrium House and The Hearth Letter */
.celebration-housewarming {
  --hm-serif: 'Cormorant Garamond', 'Noto Sans Tamil', Georgia, serif;
  --hm-sans: Inter, 'Noto Sans Tamil', system-ui, sans-serif;
  --hm-border: color-mix(in srgb, var(--design-ink) 22%, transparent);
  overflow-x: clip;
}
.celebration-housewarming #wedding-content { position:relative; overflow:clip; }
.celebration-housewarming h1, .celebration-housewarming h2,
.celebration-housewarming h3, .celebration-housewarming p { overflow-wrap:anywhere; }
.celebration-housewarming .hm-kicker {
  font:600 clamp(.65rem,1.2vw,.83rem)/1.6 var(--hm-sans);
  letter-spacing:.18em; text-transform:uppercase; margin:0;
}
.hm-intro { display:none; }
.wedding-ready .hm-intro {
  position:fixed; inset:0; z-index:80; display:grid; justify-items:center; align-items:start;
  overflow-y:auto; overscroll-behavior:contain; padding:90px 24px 105px;
  background:var(--design-paper); isolation:isolate;
  transition:opacity .65s ease .58s, visibility .65s ease .58s;
}
.hm-intro-image { position:fixed; inset:0; width:100%;height:100%;object-fit:cover;z-index:-3; }
.hm-intro::before { content:"";position:fixed;inset:0;background:#291b1170;z-index:-2; }
.hm-entry-card {
  align-self:center;text-align:center;width:min(470px,100%);padding:clamp(28px,4vw,62px) clamp(20px,4vw,50px);
  color:var(--design-ink);background:var(--design-paper);box-shadow:0 25px 90px #19170e55;
  transition:transform .8s ease,opacity .6s ease;position:relative;
}
.hm-entry-title { font:500 clamp(2.4rem,5vw,5.2rem)/1 var(--hm-serif);margin:20px 0; }
.hm-entry-caption { margin:12px auto 27px;max-width:32ch;font:400 clamp(1.05rem,2vw,1.38rem)/1.5 var(--hm-serif); }
.hm-open, .hm-scroll {
  display:inline-flex;align-items:center;justify-content:center;gap:22px;
  color:var(--design-button-ink);background:var(--design-accent);font:600 .85rem/1.4 var(--hm-sans);
  min-height:46px;border:0;cursor:pointer;text-decoration:none;
}
.hm-open { padding:14px 23px; }
.hm-open span:last-child { font-family:system-ui,sans-serif;font-size:1.05rem; }
.hm-entry-treatment { position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden; }
.hm-entry-treatment i { position:absolute;display:block;transition:transform 1.15s cubic-bezier(.22,.75,.28,1); }
.opening .hm-intro, .opened .hm-intro { opacity:0;visibility:hidden;pointer-events:none; }
.opening .hm-entry-card { opacity:0;transform:translateY(-15px) scale(.97); }
.opened .hm-intro { display:none; }
.hm-intro-threshold .hm-entry-card { border-radius:210px 210px 3px 3px;border:1px solid var(--design-accent);outline:1px solid var(--design-paper);outline-offset:6px;padding-top:68px; }
.hm-intro-threshold .hm-entry-treatment i:nth-child(-n+2) {
  top:0;bottom:0;width:50%;border-inline:1px solid #c39c70;box-shadow:inset 0 0 0 12px #593b2738;
  background:linear-gradient(90deg,#35231375,#6a4a3236);transform-origin:left center;
}
.hm-intro-threshold .hm-entry-treatment i:nth-child(2) { right:0;transform-origin:right center; }
.opening .hm-intro-threshold .hm-entry-treatment i:first-child { transform:perspective(800px) rotateY(-85deg); }
.opening .hm-intro-threshold .hm-entry-treatment i:nth-child(2) { transform:perspective(800px) rotateY(85deg); }
.hm-intro-atrium .hm-entry-card { width:min(610px,100%);text-align:left;box-shadow:16px 16px 0 #26372d8a; border-top:5px solid var(--design-accent); }
.hm-intro-atrium .hm-entry-treatment { display:grid;grid-template-rows:repeat(4,1fr);gap:3px; }
.hm-intro-atrium .hm-entry-treatment i { position:relative; background:linear-gradient(110deg,#c4cbb25c,#172d244a);border-bottom:1px solid #e1e8d44d;transform-origin:top; }
.opening .hm-intro-atrium .hm-entry-treatment i { transform:perspective(420px) rotateX(86deg); }
.hm-intro-hearth .hm-entry-card { max-width:480px;border:1px solid color-mix(in srgb,var(--design-accent) 42%,transparent);box-shadow:5px 8px 0 #d2bb99,8px 11px 0 #6a423e55,0 20px 60px #21141560;transform:rotate(-2deg); }
.hm-intro-hearth .hm-entry-card::before { content:"";position:absolute;inset:9px;border:1px dashed var(--hm-border);pointer-events:none; }
.hm-intro-hearth::before { background:#2d242575; }
.opening .hm-intro-hearth .hm-entry-card { transform:perspective(900px) rotateX(22deg) translateY(-25%); }
.hm-hero { position:relative;isolation:isolate;min-width:0; }
.hm-hero-picture, .hm-story-picture { position:relative;min-width:0;overflow:hidden; margin:0; }
.hm-scene,.hm-story-picture img { display:block;width:100%;height:100%;object-fit:cover; }
.hm-hero-copy { position:relative;z-index:2; min-width:0; }
.celebration-housewarming .hm-hero h1 { font:500 clamp(3.3rem,7.5vw,8.2rem)/.96 var(--hm-serif);margin:.28em 0 .24em;letter-spacing:-.04em; }
.hm-hosts { font:500 clamp(1.25rem,2.2vw,2.1rem)/1.3 var(--hm-serif);margin:1.15em 0; }
.hm-occasion { display:flex;flex-wrap:wrap;align-items:center;gap:10px 18px;font:500 .82rem/1.6 var(--hm-sans); }
.hm-occasion p { margin:0; }
.hm-occasion p + p { border-left:1px solid currentColor;padding-left:18px; }
.hm-scroll { margin-top:38px;width:48px;border-radius:50%;background:transparent;border:1px solid var(--hm-border);color:inherit;font:1.18rem system-ui; }
.hm-hero-threshold {
  width:min(1460px,100%);margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.88fr);
  align-items:center;gap:clamp(30px,5vw,80px);padding:clamp(95px,10vw,150px) clamp(25px,8vw,118px) clamp(65px,7vw,100px);
  background:radial-gradient(ellipse at 88% 16%,color-mix(in srgb,var(--design-accent) 17%,var(--design-paper)),transparent 62%),var(--design-paper);
}
.hm-hero-threshold .hm-hero-picture { grid-column:2;grid-row:1;height:clamp(460px,67vh,780px);border-radius:46% 46% 2px 2px;outline:1px solid var(--design-accent);outline-offset:9px; }
.hm-hero-threshold .hm-hero-copy { grid-column:1;grid-row:1; }
.hm-hero-threshold .hm-kicker { color:var(--design-accent); }
.hm-hero-atrium { display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);min-height:90svh; }
.hm-hero-atrium .hm-hero-picture { grid-column:1;grid-row:1; min-height:550px; }
.hm-hero-atrium .hm-hero-copy { display:grid;align-content:center;justify-items:start;align-self:stretch;padding:90px clamp(22px,5vw,90px) 85px;border-block:1px solid var(--hm-border);background:var(--design-paper); }
.hm-hero-atrium .hm-hero-copy::before { content:"";width:70px;border-top:4px solid var(--design-accent);margin-bottom:3rem; }
.hm-hero-atrium .hm-occasion { border-block:1px solid var(--hm-border);padding:17px 0;width:100%;justify-content:space-between; }
.hm-hero-atrium .hm-occasion p+p { border:0;padding:0; }
.hm-hero-atrium .hm-scroll { border-radius:0; }
.hm-hero-hearth { display:grid;min-height:min(96svh,1040px);place-items:center;padding:95px 30px 110px; }
.hm-hero-hearth .hm-hero-picture,.hm-finale-scene { position:absolute;inset:0;width:100%;height:100%; }
.hm-hero-hearth .hm-hero-copy { width:min(630px,96%);text-align:center;padding:clamp(35px,6vw,85px) clamp(20px,5vw,72px);background:var(--design-paper);outline:1px solid var(--design-paper);outline-offset:4px;box-shadow:4px 16px 38px #291d154a; }
.hm-hero-hearth .hm-hero-copy::before,.hm-finale-copy::before { content:"";position:absolute;inset:10px;border:1px solid var(--hm-border);pointer-events:none; }
.hm-hero-hearth .hm-occasion { justify-content:center; }
.hm-story { width:min(1100px,calc(100% - 64px));margin:auto;padding:clamp(75px,10vw,145px) 0;display:grid;grid-template-columns:1fr 1fr;gap:clamp(35px,7vw,95px);align-items:center; }
.hm-story-picture { aspect-ratio:4/5; }
.celebration-housewarming .hm-story h2,.celebration-housewarming .hm-gallery h2,.celebration-housewarming .hm-finale h2 { font:500 clamp(2.45rem,5vw,5rem)/1.03 var(--hm-serif);margin:18px 0 24px; }
.hm-story-copy>p:last-child,.hm-finale-copy>p:not(.hm-signature) { font:400 clamp(1.2rem,2vw,1.7rem)/1.5 var(--hm-serif); }
.design-housewarming-threshold .hm-story-picture { border-radius:165px 165px 0 0; }
.design-housewarming-atrium .hm-story-picture { grid-column:2;grid-row:1;aspect-ratio:1/1; }
.design-housewarming-atrium .hm-story-copy { grid-column:1;grid-row:1;border-left:3px solid var(--design-accent);padding-left:clamp(20px,4vw,48px); }
.design-housewarming-hearth .hm-story-picture { padding:10px 10px 32px;background:#fffaf0;box-shadow:0 10px 20px #35241725;transform:rotate(-2deg); }
.hm-gallery { padding:clamp(55px,8vw,115px) max(24px,calc((100% - 1260px)/2));background:color-mix(in srgb,var(--design-accent) 8%,var(--design-paper)); }
.hm-gallery-heading { max-width:680px;margin:0 auto 44px;text-align:center; }
.hm-gallery-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(12px,2vw,30px);align-items:start; }
.hm-print { display:block;overflow:hidden;position:relative; }
.hm-print img { display:block;width:100%;aspect-ratio:4/5;object-fit:cover;transition:transform .7s; }
.hm-print:hover img { transform:scale(1.035); }
.design-housewarming-threshold .hm-print { border-radius:100px 100px 0 0; }
.design-housewarming-threshold .hm-print:nth-child(3n+2) { margin-top:45px; }
.design-housewarming-atrium .hm-gallery-heading { text-align:left;margin-left:0;border-top:1px solid var(--hm-border);padding-top:24px; }
.design-housewarming-atrium .hm-gallery-grid { grid-template-columns:1.4fr 1fr 1fr;gap:8px; }
.design-housewarming-atrium .hm-print img { aspect-ratio:auto;height:clamp(220px,32vw,460px); }
.design-housewarming-hearth .hm-print { padding:8px 8px 24px;background:#fffaf0;box-shadow:0 5px 20px #35241722; }
.design-housewarming-hearth .hm-print:nth-child(odd) { rotate:-2deg; }
.design-housewarming-hearth .hm-print:nth-child(even) { rotate:2deg; }
.hm-finale { position:relative;isolation:isolate;overflow:hidden;display:grid;place-items:center;min-height:clamp(530px,83vh,850px);padding:clamp(80px,10vw,150px) 20px; }
.hm-finale-scene { z-index:-1;object-fit:cover; }
.hm-finale-copy { position:relative;background:var(--design-paper);color:var(--design-ink);padding:clamp(45px,6vw,90px) clamp(24px,5vw,72px);width:min(640px,100%);text-align:center;box-shadow:0 14px 50px #131b1638; }
.hm-signature { font:italic 500 1.7rem/1.3 var(--hm-serif);margin:24px 0 10px; }
.design-housewarming-atrium .hm-finale { justify-items:end;padding-inline:clamp(20px,8vw,110px); }
.design-housewarming-atrium .hm-finale-copy { text-align:left;border-top:5px solid var(--design-accent); }
.design-housewarming-atrium .hm-finale-copy::before { display:none; }
.design-housewarming-threshold .hm-finale-copy { border-radius:160px 160px 0 0; }
.design-housewarming-threshold .hm-finale-copy::before { border-radius:150px 150px 0 0; }
.design-housewarming-hearth .hm-finale-copy { rotate:-1deg; }
.design-housewarming-threshold .cl-event { border-top:2px solid var(--design-accent); }
.design-housewarming-atrium .cl-events { gap:0;border-block:1px solid var(--hm-border); }
.design-housewarming-atrium .cl-event { border:0;padding-inline:22px; }
.design-housewarming-atrium .cl-event+.cl-event { border-left:1px solid var(--hm-border); }
.design-housewarming-hearth .cl-event { padding:22px;background:color-mix(in srgb,var(--design-accent) 5%,var(--design-paper));border:1px solid var(--hm-border); }
.hm-motion .hm-scene,.hm-motion .hm-finale-scene { transform:translateY(var(--hm-travel,0px)) scale(1.07); }
.hm-motion [data-house-reveal].hm-enter { animation:hm-rise .8s cubic-bezier(.2,.7,.2,1) both; }
.hm-motion .hm-scroll span { animation:hm-walk 2.2s ease-in-out infinite; }
@keyframes hm-rise { from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0} }
@keyframes hm-walk { 50% { transform:translateY(4px) } }
@media(max-width:760px) {
  .hm-hero-threshold { padding:100px 28px 50px;grid-template-columns:1fr;gap:36px; }
  .hm-hero-threshold .hm-hero-picture { grid-column:1;grid-row:2;height:clamp(310px,95vw,490px);margin-inline:8px; }
  .hm-hero-threshold .hm-hero-copy,.hm-hero-atrium .hm-hero-copy { grid-column:1;grid-row:1; }
  .hm-hero-atrium { grid-template-columns:1fr;min-height:0; }
  .hm-hero-atrium .hm-hero-picture { grid-column:1;grid-row:2;min-height:0;height:clamp(300px,88vw,520px); }
  .hm-hero-atrium .hm-hero-copy { padding:96px 26px 36px; }
  .hm-hero-atrium .hm-hero-copy::before { margin-bottom:24px; }
  .hm-hero-hearth { min-height:94svh;padding-inline:20px; }
  .hm-hero-hearth .hm-hero-copy { padding:45px 20px; }
  .celebration-housewarming .hm-hero h1 { font-size:clamp(3.2rem,12vw,5rem); }
  .hm-scroll { margin-top:23px; }
  .hm-story { width:calc(100% - 46px);grid-template-columns:1fr;gap:38px; }
  .hm-story-picture { width:min(430px,100%);margin:auto;aspect-ratio:1.1; }
  .hm-story-copy { text-align:center; }
  .design-housewarming-atrium .hm-story-picture,.design-housewarming-atrium .hm-story-copy { grid-column:auto;grid-row:auto; }
  .design-housewarming-atrium .hm-story-copy { text-align:left; }
  .hm-gallery-grid,.design-housewarming-atrium .hm-gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hm-print:last-child:nth-child(odd) { grid-column:1/-1; }
  .hm-print:last-child:nth-child(odd) img { aspect-ratio:1.6; }
  .design-housewarming-atrium .hm-print img { height:200px; }
  .design-housewarming-threshold .hm-print:nth-child(3n+2) { margin-top:16px; }
  .design-housewarming-atrium .cl-event+.cl-event { border-left:0;border-top:1px solid var(--hm-border); }
}
@media(max-height:560px) {
  .wedding-ready .hm-intro { padding-block:68px 76px; }
  .hm-entry-card { padding:22px; }
  .hm-intro-threshold .hm-entry-card { padding-top:35px; }
  .hm-entry-title { margin:10px 0; }
}
.celebration-housewarming[data-motion="0"] *, .celebration-housewarming[data-design-motion="0"] * { animation:none!important;transition:none!important; }
@media(prefers-reduced-motion:reduce) {
  .celebration-housewarming *, .celebration-housewarming *::before, .celebration-housewarming *::after { animation:none!important;transition:none!important;scroll-behavior:auto!important; }
}
