@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Noto+Serif+Gujarati:wght@400;500&family=DM+Sans:wght@400;500&display=swap');
:root{color-scheme:light;--paper:#fff8e9;--red:#832e32;--gold:#a57a38;--ink:#542c2a}*{box-sizing:border-box}body{margin:0;background:#58262c;color:var(--ink);font-family:'Cormorant Garamond',Georgia,serif;padding:32px 20px 52px}main{max-width:1040px;margin:auto}.invitation{position:relative;background:var(--paper) url('assets/kankotri-frame.png') center/100% 100% no-repeat;aspect-ratio:2/3;display:flex;align-items:center;justify-content:center;text-align:center;box-shadow:0 14px 60px #2c0e2466}.invitation-copy{width:70%;padding:14% 0 10%}.gujarati{font-family:'Noto Serif Gujarati',serif;color:var(--red);font-size:1.2rem;line-height:1.9}.eyebrow{font-family:'DM Sans',sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.2em;line-height:1.8;color:var(--red);margin:24px 0 12px}h1{font-weight:500;font-size:clamp(4rem,10vw,7.6rem);line-height:.99;color:var(--red);margin:32px 0 20px}h1 span{display:block}h1 i{display:block;font-weight:400;font-size:.5em;line-height:1.4;color:var(--gold)}.monogram{font-size:1.4rem;letter-spacing:.2em;color:var(--red);margin:24px 0}.rule{display:flex;align-items:center;justify-content:center;gap:15px;color:var(--gold);margin:24px auto;width:160px}.rule:before,.rule:after{content:'';height:1px;background:var(--gold);flex:1}.invite-text{font-size:clamp(1.25rem,2.8vw,1.65rem);line-height:1.55;margin:20px 0}.hero-date{font-size:clamp(1.4rem,3.5vw,2rem);font-weight:600;color:var(--red);margin:25px 0}.welcome{font-size:1rem;margin-top:30px}.schedule{background:var(--paper);padding:70px 9%;position:relative;margin-top:24px;border:8px double var(--gold)}.schedule:before{content:'';position:absolute;inset:8px;border:1px solid #a57a3844;pointer-events:none}.schedule-heading{text-align:center;margin-bottom:48px}h2{font-size:clamp(2.3rem,5vw,3.5rem);font-weight:500;line-height:1.1;margin:12px 0;color:var(--red)}.day{text-align:center;margin:0 auto;padding:12px 0 40px;max-width:700px}.day+.day{border-top:1px solid #a57a3880;padding-top:42px}.day-number{color:var(--gold);font-size:1.5rem;margin:0}.day .eyebrow{margin:8px 0}h3{font-size:clamp(1.9rem,4.5vw,2.7rem);font-weight:500;color:var(--red);margin:8px 0 28px}.event-list{list-style:none;margin:0;padding:0}.event-list li{padding:20px 0;display:flex;flex-direction:column;gap:6px;align-items:center}.event-list li+li:before{content:'✧';display:block;color:var(--gold);font-size:1.1rem;margin-bottom:10px}.event-name{font-size:1.7rem;font-weight:500;line-height:1.2}.event-time{font-family:'DM Sans',sans-serif;font-size:.9rem;line-height:1.7;color:#775746;letter-spacing:.035em}.family{margin:36px auto 0;padding:26px 24px 20px;border:1px solid #b99459;position:relative}.family h4{background:var(--paper);padding:0 14px;margin:-36px auto 12px;width:fit-content;font-family:'DM Sans',sans-serif;font-weight:500;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--red);line-height:1.6}.family .event-list{display:grid;grid-template-columns:1fr 1fr;gap:8px 24px}.family .event-list li{padding:14px 0}.family .event-list li:before{display:none}.family .event-name{font-size:1.4rem}footer{text-align:center;color:#f7e6c8;padding:50px 20px 0}footer .gujarati{color:#ebcc96;font-size:1.1rem}.footer-name{font-size:2.2rem;margin:15px 0}.time-note{font-family:'DM Sans',sans-serif;font-size:.75rem;letter-spacing:.08em;color:#dfc7b5;margin-top:28px}@media(min-width:900px){.invitation{max-width:850px;margin:0 auto}.schedule{max-width:850px;margin:24px auto 0}}@media(max-width:600px){body{padding:12px 10px 30px}.invitation{aspect-ratio:auto;min-height:780px;background-size:100% 100%}.invitation-copy{width:72%;padding:195px 0 145px}h1{font-size:4.2rem;margin:22px 0 16px}.eyebrow{font-size:.65rem;letter-spacing:.13em}.gujarati{font-size:.95rem}.invite-text{font-size:1.2rem}.hero-date{font-size:1.5rem}.welcome{font-size:.85rem}.monogram{font-size:1.1rem}.schedule{padding:38px 8%;border-width:5px}.schedule-heading{margin-bottom:35px}.event-name{font-size:1.55rem}.event-time{font-size:.85rem}.family{padding:26px 10px 12px}.family .event-list{grid-template-columns:1fr;gap:2px}.family .event-name{font-size:1.4rem}.family h4{font-size:.65rem}h2{font-size:2.4rem}}@media(prefers-reduced-motion:no-preference){.invitation-copy{animation:appear .8s ease both}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}

html{scroll-behavior:smooth;scroll-padding-top:24px}button,select,a{-webkit-tap-highlight-color:transparent}button,select{font:inherit}button,a,select{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid #c99a54;outline-offset:5px}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.section-nav{display:flex;justify-content:center;gap:22px;align-items:center;flex-wrap:wrap;padding:27px 0 4px;color:#dfc197;font:12px 'DM Sans',sans-serif;letter-spacing:.03em}.section-nav a{color:#f7e6c8;text-decoration:none;border-bottom:1px solid transparent;padding:8px 0}.section-nav a:hover{border-color:#dfc197}.section-heading{text-align:center}.section-heading>p:not(.eyebrow){font-size:1.3rem;line-height:1.5;margin:14px 0}.invitation-section{width:calc(100vw - 24px);margin:48px 0 0 calc(50% - 50vw + 12px)}.invitation-section .section-heading{color:#f2dfbf}.invitation-section h2{color:#fff2d9}.invitation-section .eyebrow{color:#e1bb7e}.reader{background:#392524;border:1px solid #c7a16d55;border-radius:3px;padding:12px;container-type:inline-size;box-shadow:0 20px 50px #2e11152e;color:#f5e6cb;position:relative;outline:none}.reader-top,.reader-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px}.reader-label{font:10px 'DM Sans',sans-serif;letter-spacing:.2em;color:#d8bc94}.expand-button{border:1px solid #c6a57666;border-radius:3px;background:transparent;color:#f5e6cb;padding:10px 13px;cursor:pointer;font:12px 'DM Sans',sans-serif}.expand-button:hover{background:#ffffff0d}.expand-button>span:first-child{font-size:18px;vertical-align:-1px;margin-right:6px}.book-stage{width:100%;height:auto;aspect-ratio:10/7;min-height:0;margin:0;position:relative;overflow:hidden;touch-action:pan-y pinch-zoom}.book{height:100%;width:100%;margin:auto;transform:translateX(var(--cover-shift,0px))}.book:not(.stf__parent){max-width:420px;overflow:auto;scroll-snap-type:y mandatory}.book:not(.stf__parent) .book-page{scroll-snap-align:start}.book.stf__parent{min-width:0!important;touch-action:pan-y pinch-zoom}.book-page{background:#fff8e9;overflow:hidden}.book-page img{display:block;width:100%;height:100%;object-fit:contain;user-select:none}#page-status{text-align:center;font:12px/1.6 'DM Sans',sans-serif;letter-spacing:.02em;margin:8px 0}.reader-bottom{display:grid;grid-template-columns:1fr minmax(260px,480px) 1fr;gap:12px;margin-top:0;border-top:1px solid #c6a57633;padding-top:10px}.page-picker{position:relative;display:inline-flex;width:190px;max-width:100%;justify-self:start}.page-picker:after{content:"";position:absolute;right:14px;top:calc(50% - 5px);width:7px;height:7px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg);pointer-events:none}.page-picker select{appearance:none;-webkit-appearance:none;width:100%;max-width:none;background:#392524;border:1px solid #c6a57666;border-radius:3px;color:#f5e6cb;padding:10px 36px 10px 12px;font:12px 'DM Sans',sans-serif}.download-link{font:12px 'DM Sans',sans-serif;color:#f5e6cb;text-decoration:none;line-height:1.8;text-align:right}.download-link{justify-self:end;white-space:nowrap}.download-link:hover{text-decoration:underline}.reader-hint{font:11px/1.7 'DM Sans',sans-serif;text-align:center;color:#cdb591;margin:0}.venue-reader-link{display:block;text-align:center;color:#f5e6cb;font:12px/1.8 'DM Sans',sans-serif;margin:0}.reader.is-expanded{position:fixed;inset:0;z-index:1000;width:100%;height:100%;height:100dvh;border:0;border-radius:0;padding:max(10px,env(safe-area-inset-top)) max(12px,env(safe-area-inset-right)) max(8px,env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:auto}.reader.is-expanded .book-view{flex:1;min-height:100px;margin:10px 0}.reader.is-expanded .book-stage{width:100%;height:100%;aspect-ratio:auto;margin:0;max-height:none}.reader.is-expanded .reader-bottom{width:100%;margin:0;padding-top:8px;flex:none}.reader.is-expanded .reader-hint{margin:0}.reader.is-expanded .reader-top{flex:none}.reader::backdrop{background:#392524}.travel-section{max-width:850px;margin:48px auto 0;background:var(--paper);border:8px double var(--gold);padding:48px 7% 42px}.venue-panel{margin-top:32px;padding:30px;background:#304b3c;color:#f6e6c8;display:flex;align-items:center;justify-content:space-between;gap:25px}.venue-panel .eyebrow{margin:0 0 12px;color:#ddbd84;font-size:10px}.venue-panel h3{color:#fff0d3;font-size:2.1rem;margin:0 0 12px;line-height:1.1}.venue-panel h3 span{display:block;font-size:1.35rem;margin-top:6px}.venue-panel p:not(.eyebrow){font:12px/1.9 'DM Sans',sans-serif;margin:0}.map-button{display:flex;align-items:center;justify-content:center;gap:10px;flex-shrink:0;color:#fff0d3;border:1px solid #d6b576;padding:14px;font:12px 'DM Sans',sans-serif;text-decoration:none}.map-button:hover{background:#ffffff10}.travel-routes{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:38px}.route-number{font:10px 'DM Sans',sans-serif;letter-spacing:.1em;color:var(--gold)}.travel-routes h3{font-size:1.9rem;margin:8px 0 13px}.travel-routes p{font:13px/1.85 'DM Sans',sans-serif;margin:0;color:#715747}.travel-routes strong{font-weight:500;color:#542c2a}.journey-note{display:flex;gap:15px;align-items:center;border-top:1px solid #a57a3855;margin-top:32px;padding-top:23px}.journey-note>span{font-size:26px;color:var(--gold)}.journey-note p{font-size:1.18rem;line-height:1.5;margin:0;color:#715747}
@media(max-width:650px){.section-nav{gap:12px;font-size:10px}.section-nav>span{font-size:8px}.invitation-section{margin-top:42px}.section-heading>p:not(.eyebrow){font-size:1.2rem}.reader{padding:10px}.reader-label{font-size:8px;letter-spacing:.12em}.expand-button{font-size:11px;padding:8px 9px}.book-view{margin:10px 0}.reader-bottom{gap:8px;margin-top:0}.page-picker{width:180px}.page-picker select{font-size:11px}.download-link{font-size:11px}.reader-hint{font-size:10px}.reader.is-expanded{padding:10px}.travel-section{padding:32px 7%;border-width:5px;margin-top:30px}.venue-panel{display:block;padding:24px}.map-button{margin-top:22px;width:fit-content}.travel-routes{grid-template-columns:1fr;gap:22px;margin-top:28px}.travel-routes article+article{border-top:1px solid #a57a3833;padding-top:22px}.travel-routes h3{margin:6px 0 10px}.travel-routes p{font-size:13px}.journey-note p{font-size:1.1rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
/* Keep the closed cover centred despite the library's compositing transform. */
.book.stf__parent{transform:translateX(var(--cover-shift,0px))}
/* Reserve the venue action's row so the book never resizes between pages. */
.venue-reader-link[hidden]{display:block!important;visibility:hidden;pointer-events:none}
.reader-actions{display:flex;align-items:center}@media(max-width:650px){.reader-top{flex-wrap:wrap}}

.reader-notes{display:grid;align-items:center;margin-top:8px;flex:none}.reader-notes>*{grid-area:1/1;margin:0}.reader-notes .venue-reader-link{justify-self:center}.reader.has-venue .reader-hint{visibility:hidden}.reader-top{min-height:40px}
@container (width < 724px){.book-stage{aspect-ratio:5/7}}
@container (width < 760px){.reader-bottom{grid-template-columns:1fr 1fr}.reader-bottom #page-status{grid-column:1/-1;grid-row:1;margin:0}.reader-bottom .page-picker{grid-column:1;grid-row:2}.reader-bottom .download-link{grid-column:2;grid-row:2}}

/* Controls occupy their own rails, never the printed artwork. Their Y position
   follows the visible part of the book so tall spreads remain navigable. */
.book-view{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;gap:8px;position:relative;margin:12px 0;isolation:isolate}
.page-rail{position:relative;min-width:0}
.page-arrow{position:absolute;top:var(--arrow-y,50%);left:0;transform:translateY(-50%);width:44px;height:44px;display:grid;place-items:center;padding:0;border-radius:50%;border:1px solid #c6a57688;background:#392524;color:#f5e6cb;cursor:pointer;font:25px/1 Georgia,serif;z-index:10;transition:background .15s,border-color .15s,opacity .15s}
.page-arrow:hover:enabled{background:#65483a;border-color:#dfbd86}.page-arrow:active:enabled{background:#79543b}.page-arrow:disabled{opacity:.22;cursor:default}.page-arrow:focus-visible{outline-offset:2px}
.book-page img{-webkit-user-drag:none}.book-stage{cursor:grab}.reader[aria-busy="true"] .book-stage{cursor:grabbing}
.reader.is-expanded .book-view{width:100%}
@container (width < 500px){.book-view{gap:2px}.page-arrow{border-color:#c6a57655}.reader-bottom{column-gap:4px}.page-picker{width:170px}.reader-bottom #page-status{font-size:11px}}
/* On phones, reclaim the outer frame for the paper while retaining generous
   44px touch targets beside it. Toolbar/footer keep comfortable edge padding. */
@media(max-width:524px){
  .reader{width:100vw;margin-inline:-12px;padding:8px 0;border-inline:0;border-radius:0}
  .reader-top,.reader-bottom,.reader-notes{margin-inline:12px}
  .book-view{gap:0}
  .reader.is-expanded{width:100%;margin:0;padding:max(8px,env(safe-area-inset-top)) 0 max(8px,env(safe-area-inset-bottom))}
  .reader.is-expanded .reader-bottom{width:auto}
}
/* Definite inset sizing avoids Safari's percentage-height resolution inside
   an aspect-ratio grid item. Reset native button chrome consistently. */
.book.stf__parent{position:absolute;inset:0;height:auto}
.page-arrow,.expand-button{appearance:none;-webkit-appearance:none}
