@font-face{font-family:Editorial;src:url('/assets/LiberationSerif-Regular.woff')}@font-face{font-family:Editorial;src:url('/assets/LiberationSerif-Italic.woff');font-style:italic}@font-face{font-family:Sans;src:url('/assets/NotoSans-Regular.woff')}@font-face{font-family:Tamil;src:url('/assets/NotoSansTamil-Regular.woff')}@font-face{font-family:TamilSerif;src:url('/assets/NotoSerifTamil-Regular.woff')}@font-face{font-family:Malayalam;src:url('/assets/NotoSansMalayalam-Regular.ttf')}@font-face{font-family:MalayalamSerif;src:url('/assets/NotoSerifMalayalam-Regular.ttf')}
:root{--ink:#382d26;--paper:#f7f3eb;--gold:#9c8058;--line:#d8ccbb;--serif:Editorial,Georgia,serif;--sans:Sans,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;-webkit-font-smoothing:antialiased}html[lang=ta]{--sans:Tamil,Sans,sans-serif;--serif:TamilSerif,serif}html[lang=ml]{--sans:Malayalam,Sans,sans-serif;--serif:MalayalamSerif,serif}a{color:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible{outline:2px solid var(--gold);outline-offset:5px}.skip{position:fixed;z-index:100;top:-80px;left:10px;background:var(--paper);padding:15px}.skip:focus{top:10px}header{height:66px;display:flex;align-items:center;justify-content:space-between;padding:0 4vw;position:sticky;top:0;z-index:20;background:rgba(247,243,235,.97);border-bottom:1px solid var(--line)}.mark{font-size:13px;letter-spacing:.15em;text-decoration:none;white-space:nowrap}.mark span{color:var(--gold);margin:0 3px}nav{display:flex;gap:4px;align-items:center}nav a{font-family:Sans,Tamil,Malayalam,sans-serif;text-decoration:none;font-size:12px;padding:12px 10px;border-radius:2px}nav a[aria-current]{background:var(--ink);color:var(--paper)}.eyebrow{font-size:11px;text-transform:uppercase;letter-spacing:.19em;line-height:1.9;color:var(--gold);margin:0 0 22px}h1,h2,p,figure{margin-top:0}h1,h2{font-weight:400;font-family:var(--serif)}h1{font-size:clamp(42px,6.3vw,86px);line-height:1.1;margin:0 0 12px}i{font-family:Editorial,serif;font-weight:400;color:var(--gold)}h1 i{font-size:.68em;margin:0 .08em}h2{font-size:clamp(36px,4.4vw,62px);line-height:1.15;margin-bottom:28px}.scene{height:auto}.scene-sticky{height:auto;min-height:calc(100vh - 66px);min-height:calc(100svh - 66px);display:flex;flex-direction:column;align-items:center;justify-content:space-between;overflow:hidden;padding:25px 0 18px}.motion-ready .scene{height:235svh}.motion-ready .scene-sticky{position:sticky;top:66px;height:calc(100svh - 66px);min-height:0}.title{text-align:center;position:relative;z-index:6;padding:0 15px}.title .eyebrow{margin-bottom:12px}.dateline{font-size:12px;letter-spacing:.07em;margin-bottom:0;line-height:1.8}.dateline span{margin:0 8px;color:var(--gold)}.composition{position:relative;width:min(1180px,94vw);height:53vh;height:53svh;min-height:240px;margin:20px 0;flex:1;max-height:580px}.tile{position:absolute;margin:0;left:50%;top:50%;box-shadow:0 8px 30px #382d2620;border:5px solid var(--paper);will-change:transform}.tile img{width:100%;height:100%;object-fit:cover;display:block}.tile-0{width:54%;height:75%;transform:translate(-50%,-50%);z-index:4}.tile-1{width:22%;height:76%;transform:translate(-210%,-57%) rotate(-7deg);z-index:3}.tile-2{width:25%;height:48%;transform:translate(82%,-100%) rotate(7deg);z-index:2}.tile-3{width:27%;height:48%;transform:translate(72%,8%) rotate(-6deg);z-index:5}.scene-caption{text-align:center;position:relative;z-index:7;padding:0 16px}.scene-caption>p{font-family:var(--serif);font-size:21px;margin-bottom:9px}.scene-caption a{font-size:10px;text-decoration:none;letter-spacing:.09em;line-height:1.7}.scene-caption a span{display:inline-block;margin-left:9px;font-size:17px}.track{width:60px;height:1px;background:var(--line);margin:13px auto 0}.track b{display:block;width:100%;height:1px;background:var(--gold);transform:scaleX(var(--progress,0));transform-origin:left}.section{padding:110px max(6vw,24px);max-width:1400px;margin:auto}.invitation{text-align:center;max-width:930px;padding-top:130px}.invite-copy{font-family:var(--serif);font-size:clamp(24px,2.4vw,32px);line-height:1.65;margin-bottom:38px}.signature{font-family:var(--serif);font-size:29px;line-height:1.7}.signature i{padding:0 8px}.fine-rule{height:65px;width:1px;background:var(--gold);margin:55px auto 0}.celebration{display:grid;grid-template-columns:1fr 1.2fr;gap:9%;border-top:1px solid var(--line)}.big-date{font-family:Editorial,serif;font-size:150px;line-height:1;color:var(--gold);display:block}.date-panel>p:not(.eyebrow){margin:18px 0 32px;font-size:13px}.date-panel h2{font-size:40px;max-width:350px}.programme ol{list-style:none;padding:0;margin:0}.programme li{border-bottom:1px solid var(--line);padding:25px 0;display:grid;grid-template-columns:135px 1fr;gap:22px;line-height:1.7}.programme li:first-child{border-top:1px solid var(--line)}time{font-size:12px;color:#7a6245}.programme li span{font-size:17px}.note{font-size:11px;line-height:1.8;margin-top:24px;color:#75675b}.venue{background:#eae3d7;max-width:none;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:8%;padding-left:10%;padding-right:10%}.venue h2{margin:12px 0}.venue-city{font-family:var(--serif);font-size:28px}address{font-style:normal;font-size:14px;line-height:2}.directions{display:inline-flex;gap:40px;padding:17px 0;margin-top:24px;border-bottom:1px solid var(--ink);text-decoration:none;font-size:13px}.venue-photo{padding:12px;background:var(--paper);transform:rotate(3deg)}.venue-photo img{display:block;width:100%;height:auto}.countdown{text-align:center;padding-bottom:90px}#countdown{display:flex;justify-content:center;gap:45px;margin-top:40px}#countdown b{font-family:Editorial,serif;font-weight:400;font-size:64px;display:block;font-variant-numeric:tabular-nums}#countdown span{font-size:10px;color:#75675b;display:block;margin-top:8px}footer{text-align:center;padding:95px 24px 45px;background:var(--ink);color:var(--paper)}footer .eyebrow{color:#c5aa82}.closing{font-family:var(--serif);font-size:30px;line-height:1.6;max-width:700px;margin:0 auto 30px}footer>a{display:inline-block;font-size:11px;color:#cfc1ad;margin-top:40px;text-decoration:none}html:not([lang=en]) h1{font-size:clamp(31px,4.8vw,64px);line-height:1.5}html:not([lang=en]) .eyebrow{letter-spacing:.03em}html:not([lang=en]) h2{font-size:clamp(30px,3.6vw,46px);line-height:1.65}html:not([lang=en]) .invite-copy{font-size:22px;line-height:2}html:not([lang=en]) .closing{font-size:24px;line-height:1.9}
@media(max-width:650px){header{height:60px;padding:0 12px}.mark{font-size:10px;letter-spacing:.03em}.mark span{margin:0 1px}nav{gap:0}nav a{font-size:11px;padding:12px 8px}.motion-ready .scene-sticky{top:60px;height:calc(100svh - 60px);padding-top:23px}.scene-sticky{min-height:calc(100svh - 60px)}.title .eyebrow{font-size:9px;margin-bottom:12px}.dateline{font-size:10px;letter-spacing:0;max-width:310px;margin:auto}.dateline span{margin:0 3px}h1{font-size:45px}.composition{width:94vw;max-height:460px;min-height:180px;margin:10px 0 14px}.tile{border-width:3px}.tile-0{width:65%;height:57%}.tile-1{width:37%;height:52%;transform:translate(-130%,-96%) rotate(-9deg)}.tile-2{width:43%;height:34%;transform:translate(14%,-140%) rotate(9deg)}.tile-3{width:47%;height:37%;transform:translate(0%,40%) rotate(-7deg)}.scene-caption>p{font-size:17px;margin-bottom:7px}.scene-caption a{font-size:9px;letter-spacing:0}.scene-caption .track{margin-top:9px}.section{padding:78px 26px}.invitation{padding-top:100px}.invite-copy{font-size:25px;line-height:1.65}.signature{font-size:25px}.fine-rule{margin-top:42px;height:45px}.celebration{grid-template-columns:1fr;gap:15px}.date-panel{text-align:center}.big-date{font-size:115px}.date-panel h2{margin:0 auto 24px;font-size:35px}.programme li{grid-template-columns:98px 1fr;gap:15px;padding:24px 0}.programme li span{font-size:15px}time{font-size:11px}.venue{grid-template-columns:1fr;gap:50px}.venue h2{font-size:43px}.venue-photo{max-width:400px;transform:rotate(2deg)}#countdown{gap:0;justify-content:space-between}#countdown>div{width:25%}#countdown b{font-size:43px}#countdown span{font-size:9px}.closing{font-size:25px}footer{padding:75px 26px 35px}html:not([lang=en]) h1{font-size:31px}html:not([lang=en]) .title .eyebrow{font-size:9px}html:not([lang=en]) .dateline{font-size:9px}html:not([lang=en]) .scene-caption>p{font-size:13px;line-height:1.8}html:not([lang=en]) .scene-caption a{font-size:9px}html:not([lang=en]) .invite-copy{font-size:19px}html:not([lang=en]) .programme li{grid-template-columns:108px 1fr;gap:12px}html:not([lang=en]) .programme li span{font-size:14px}html:not([lang=en]) time{font-size:10px}html:not([lang=en]) #countdown span{font-size:9px}html:not([lang=en]) .closing{font-size:20px}}

/* A fixed measured viewport avoids address-bar resize resets during a swipe. */
.motion-ready .scene{height:calc(100vh + 320px);height:calc(var(--scene-height,100svh) + var(--scroll-range,320px))}
.motion-ready .scene-sticky{height:calc(100vh - 66px);height:var(--scene-height,calc(100svh - 66px))}
.motion-choice{display:block;margin:7px auto 0;border:0;border-bottom:1px solid var(--gold);background:none;color:var(--ink);font:inherit;font-size:10px;line-height:1.6;min-height:36px;padding:5px 8px;cursor:pointer;max-width:100%}
.motion-choice[hidden]{display:none}
.motion-choice:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
@media(max-width:650px){.scene-sticky{min-height:calc(100vh - 60px);min-height:calc(100svh - 60px)}.motion-ready .scene-sticky{height:var(--scene-height,calc(100vh - 60px));min-height:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}html:not(.motion-opt-in) .tile{will-change:auto}}
/* Clip moving photo edges inside the art, never over the date or instructions. */
.composition{overflow:hidden}
