@import url('./wedding-maze.css');
@import url('./story-cards.css');
/* Original scenic invitation. The document, rather than a card, is the venue. */
:root{color-scheme:dark;background:#091321;font-synthesis:none}
*{box-sizing:border-box}
html{margin:0;scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;min-width:280px;font:400 18px/1.65 SourceSans3,system-ui,sans-serif;background:#091321;color:#f8ebd5}
button,input,select,textarea{font:inherit}
button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{cursor:pointer}
button:disabled{cursor:default;opacity:.58}
img,video{display:block;max-width:100%}
button,a,summary{color:inherit}
a{text-underline-offset:.28em}
button:focus-visible,a:focus-visible,summary:focus-visible,[tabindex]:focus-visible{outline:3px solid #e9b968;outline-offset:5px}
[hidden]{display:none!important}
dialog:not([open]){display:none}
.grand-visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.grand-invitation{--grand-paper:#f8ebd5;--grand-ink:#f8ebd5;--grand-ground:#091321;--grand-deep:#060d17;--grand-muted:#cabbab;--grand-gold:#d7b17a;--grand-line:rgba(224,191,143,.24);min-width:0;overflow:hidden;background:var(--grand-ground);color:var(--grand-ink);overflow-wrap:anywhere}
.grand-invitation[data-design="journal"]{--grand-paper:#f4e3c9;--grand-ink:#41251e;--grand-ground:#f1dec3;--grand-deep:#e4b992;--grand-muted:#704f40;--grand-gold:#76372b;--grand-line:rgba(112,57,38,.24);color-scheme:light}
.grand-invitation :where(h1,h2,h3,h4,p,figure){margin:0}
.grand-invitation :where(section,article){min-width:0}
.grand-invitation :where(h1,h2,h3){font-weight:400;text-wrap:balance}
.grand-heading{font:400 clamp(44px,6vw,78px)/1.06 "Cormorant Garamond",WeddingSerif,Georgia,serif;letter-spacing:-.025em}
.grand-eyebrow,.small-label{font:600 14px/1.6 SourceSans3,system-ui,sans-serif;letter-spacing:.16em;text-transform:uppercase;color:var(--grand-gold)}
.grand-prose{font:400 clamp(21px,2.3vw,29px)/1.55 "Cormorant Garamond",WeddingSerif,Georgia,serif;text-wrap:pretty;white-space:pre-wrap}
.grand-caption,.grand-status{font:400 14px/1.6 SourceSans3,system-ui,sans-serif;color:var(--grand-muted)}
.grand-status:empty{display:none}
.grand-signature{font:400 italic clamp(27px,3vw,36px)/1.3 "Cormorant Garamond",WeddingSerif,Georgia,serif;color:var(--grand-gold)}

/* A scenic plate stays independent of all copy and independently moving leaves. */
.grand-scene{position:relative;isolation:isolate;overflow:hidden;background:#0c1627;color:#fff0d9;min-height:760px;min-height:max(760px,100svh)}
.grand-scene-art{position:absolute;z-index:-3;inset:0;display:block;width:100%;height:100%;pointer-events:none}
.grand-scene-art img{width:100%;height:100%;object-fit:cover;object-position:center center}
.grand-scene::before{content:"";position:absolute;z-index:-1;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(6,12,24,.16),rgba(6,12,24,.04) 70%,rgba(6,12,24,.36))}
.grand-arrival{display:flex;flex-direction:column;justify-content:flex-start;min-height:860px;min-height:max(820px,100svh)}
.grand-arrival::after{content:"";position:absolute;z-index:3;inset:0;pointer-events:none;background:radial-gradient(ellipse 78% 47% at 50% 34%,rgba(5,10,20,.5),rgba(5,10,20,.12) 72%,transparent 100%)}
.grand-arrival-content{position:relative;z-index:5;width:min(100% - 48px,560px);margin:0 auto;padding-top:clamp(100px,16svh,175px);padding-bottom:170px;text-align:center;text-shadow:0 2px 24px rgba(0,0,0,.3)}
.grand-arrival .grand-eyebrow{color:#f4d6a3;font-weight:400;font-size:14px;letter-spacing:.15em}
.grand-names{display:flex;flex-direction:column;align-items:center;font:400 clamp(58px,15vw,84px)/.88 "Cormorant Garamond",WeddingSerif,Georgia,serif;letter-spacing:-.035em;margin:26px 0 24px!important;text-wrap:balance}
.grand-partner{display:block;max-width:100%;overflow-wrap:anywhere}
.grand-names[data-long="true"]{font-size:clamp(40px,10.5vw,72px);line-height:1.02}
.grand-ampersand{font-size:.55em;line-height:1.05;font-style:italic;letter-spacing:0;color:#ebc78f;margin:6px 0}
.grand-date{font:400 19px/1.5 SourceSans3,system-ui,sans-serif;letter-spacing:.045em;margin:0 0 5px!important;color:#fff0d9}
.grand-place{font:400 16px/1.6 SourceSans3,system-ui,sans-serif;max-width:34em;margin:0 auto!important;color:#f5dfbc}
.grand-entry-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:16px;margin:24px 0 4px}
.grand-seal{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;min-width:144px;min-height:80px;padding:14px 22px;border:1px solid rgba(234,193,127,.7);border-radius:0;background:rgba(31,16,13,.66);color:#ffebc6;font:400 16px/1.25 SourceSans3,system-ui,sans-serif;box-shadow:0 0 0 5px rgba(159,111,61,.14);transition:background .2s,border-color .2s;backdrop-filter:blur(4px)}
.grand-seal::before,.grand-seal::after{content:"";position:absolute;inset:-6px auto auto -6px;width:12px;height:12px;border-top:1px solid #d8b175;border-left:1px solid #d8b175;pointer-events:none}
.grand-seal::after{inset:auto -6px -6px auto;transform:rotate(180deg)}
.grand-seal:hover{background:rgba(59,28,18,.9);border-color:#ffdfaa}
.grand-seal-mark{font:400 26px/1 "Cormorant Garamond",Georgia,serif;letter-spacing:.05em}
.grand-skip{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:10px 8px;font-size:16px;color:#ffebc6;text-decoration-color:rgba(255,235,198,.5)}
.grand-scroll-hint{position:absolute;z-index:5;bottom:30px;left:24px;right:24px;text-align:center;color:#fff0d9;font-size:14px;letter-spacing:.08em;text-shadow:0 1px 8px #000}
.grand-portal{position:absolute;z-index:2;inset:0;perspective:1400px;pointer-events:none;transform-style:preserve-3d}
.grand-door{position:absolute;inset:0 auto 0 0;width:50.1%;background-image:url('/grand/media/doors.webp');background-size:200% 100%;background-repeat:no-repeat;backface-visibility:hidden;transform-origin:left center;transition:transform 1.7s cubic-bezier(.22,.61,.36,1),opacity 1.7s ease;will-change:transform}
.grand-door-left{background-position:left center;box-shadow:8px 0 22px rgba(0,0,0,.4)}
.grand-door-right{left:auto;right:0;background-position:right center;transform-origin:right center;box-shadow:-8px 0 22px rgba(0,0,0,.4)}
.grand-arrival[data-entry="opening"] .grand-door-left,.grand-arrival[data-entry="open"] .grand-door-left{transform:translateX(-100%) rotateY(-78deg);opacity:0}
.grand-arrival[data-entry="opening"] .grand-door-right,.grand-arrival[data-entry="open"] .grand-door-right{transform:translateX(100%) rotateY(78deg);opacity:0}
.grand-arrival[data-entry-reset="true"] .grand-door{transition:none}
.grand-invitation[data-design="journal"] .grand-arrival{background:#6a3326}
.grand-invitation[data-design="journal"] .grand-arrival::after{background:radial-gradient(ellipse 80% 55% at 50% 35%,rgba(49,19,12,.62),rgba(49,19,12,.13) 78%,transparent)}
.grand-invitation[data-design="journal"] .grand-door{background-image:url('/grand/media/curtains.webp');transform-origin:center;transition-duration:1.5s;box-shadow:none}
.grand-invitation[data-design="journal"] .grand-arrival[data-entry="opening"] .grand-door-left,.grand-invitation[data-design="journal"] .grand-arrival[data-entry="open"] .grand-door-left{transform:translateX(-106%) scaleX(.8);opacity:1}
.grand-invitation[data-design="journal"] .grand-arrival[data-entry="opening"] .grand-door-right,.grand-invitation[data-design="journal"] .grand-arrival[data-entry="open"] .grand-door-right{transform:translateX(106%) scaleX(.8);opacity:1}
.grand-arrival[data-entry="open"] .grand-portal{visibility:hidden}

/* A quiet printed index, in the document flow. No tabs or application chrome. */
.grand-chapter-nav{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:0 30px;padding:22px 24px;border-bottom:1px solid var(--grand-line);background:var(--grand-ground)}
.grand-chapter-nav a{display:inline-flex;align-items:center;min-height:44px;font-size:16px;color:var(--grand-ink);text-decoration:none}
.grand-chapter-nav a:hover{text-decoration:underline}
.grand-controls{display:flex;justify-content:center;align-items:center;gap:12px 24px;flex-wrap:wrap;padding:14px 24px 0}
.grand-text-button{min-height:44px;padding:10px 4px;border:0;background:none;color:inherit;font-size:16px;line-height:1.4;text-decoration:underline;text-underline-offset:.3em;text-decoration-color:currentColor}
.grand-text-button:hover{opacity:.8}
.grand-letter{position:relative;text-align:center;padding:82px 24px 100px;background:radial-gradient(ellipse at 50% 30%,#14263a 0,transparent 67%)}
.grand-letter>.grand-eyebrow{margin-bottom:20px}
.grand-letter>.grand-heading{max-width:760px;margin:0 auto 28px}
.grand-letter>.grand-prose,.grand-letter>p:not([class]){max-width:650px;margin:0 auto 24px}
.grand-letter>.grand-signature{margin-top:30px}
.grand-ornament{position:relative;width:72px;height:72px;display:flex;align-items:center;justify-content:center;margin:0 auto 28px;font:400 29px/1 "Cormorant Garamond",Georgia,serif;color:var(--grand-gold)}
.grand-ornament::before{content:"";position:absolute;inset:6px;border:1px solid var(--grand-line);transform:rotate(45deg)}
.grand-ornament::after{content:"";position:absolute;inset:0;border:1px solid var(--grand-line);border-radius:50%}
.grand-invitation[data-design="journal"] .grand-letter{background:radial-gradient(ellipse at 50% 30%,#f8ebd2 0,transparent 67%)}
.grand-memory{width:min(100%,1160px);margin:0 auto 60px!important;padding:0 24px;text-align:center}
.grand-memory img{width:100%;height:auto;max-height:920px;object-fit:contain;margin:0 auto}
.grand-memory figcaption{margin:16px auto 0;max-width:640px;color:var(--grand-muted);font-size:16px}
.grand-story{width:min(100% - 48px,850px);margin:0 auto 90px;border-top:1px solid var(--grand-line);border-bottom:1px solid var(--grand-line)}
.grand-story>summary{padding:25px 8px;min-height:64px;cursor:pointer;font:400 36px/1.2 "Cormorant Garamond",Georgia,serif;color:var(--grand-ink)}
.grand-story-content{padding:8px 8px 32px}
.grand-story-chapter{padding:22px 0;max-width:680px;margin:0 auto}
.grand-story-chapter h3{font:400 32px/1.2 "Cormorant Garamond",Georgia,serif;margin-bottom:12px}
.grand-story-chapter p{font-size:18px;line-height:1.8;white-space:pre-wrap;color:var(--grand-muted)}
.grand-section-intro{padding:60px 24px 66px;text-align:center}
.grand-section-intro .grand-heading{margin:14px auto 18px}
.grand-section-intro>p:last-child:not(.grand-heading){max-width:650px;margin-left:auto;margin-right:auto;color:var(--grand-muted)}

/* Each celebration is a complete place; long host details extend the scene. */
.grand-event{min-height:880px;min-height:max(880px,108svh)}
.grand-event::before{background:linear-gradient(180deg,rgba(9,11,24,.3),rgba(9,11,24,.17) 34%,rgba(9,11,24,.42) 62%,rgba(9,11,24,.04) 80%,rgba(9,11,24,.22))}
.grand-event-content{position:relative;z-index:1;width:min(100% - 56px,580px);margin:0 auto;padding:110px 0 360px;text-align:center}
.grand-event-content::before{content:"";position:absolute;z-index:-1;inset:35px -45px 270px;background:radial-gradient(ellipse,rgba(7,10,22,.84),rgba(7,10,22,.49) 50%,transparent 75%);pointer-events:none}
.grand-event .grand-eyebrow{color:#f1d6a8;font-size:14px;letter-spacing:.13em}
.grand-event-title{font:400 clamp(58px,13vw,88px)/1.05 "Cormorant Garamond",Georgia,serif;letter-spacing:-.025em;margin:15px 0 15px!important}
.grand-event-time{font-size:19px;letter-spacing:.03em;color:#fff0d9;margin-bottom:5px!important}
.grand-event-venue{font:400 23px/1.35 "Cormorant Garamond",Georgia,serif;color:#ffefd2;margin:4px 0!important}
.grand-event-address{font-size:16px;max-width:30em;margin:10px auto!important;color:#f1dfc6}
.grand-link{display:inline-flex;justify-content:center;align-items:center;min-height:46px;max-width:100%;padding:10px 2px;margin-top:16px;background:transparent;border:0;border-bottom:1px solid currentColor;border-radius:0;color:inherit;font-size:16px;line-height:1.5;text-decoration:none;text-align:center}
.grand-link:hover{opacity:.8}
.grand-event[data-scene="haldi"]{background:#d59a3f;color:#44270c}
.grand-event[data-scene="haldi"]::before{background:linear-gradient(180deg,rgba(255,232,161,.05),rgba(255,232,161,.04) 60%,rgba(65,39,9,.1))}
.grand-event[data-scene="haldi"] .grand-event-content::before{background:radial-gradient(ellipse,rgba(255,224,156,.93),rgba(255,224,156,.7) 45%,transparent 75%)}
.grand-event[data-scene="haldi"] :is(.grand-eyebrow,.grand-event-time,.grand-event-venue,.grand-event-address,.gg-copy,.gg-event-note strong){color:#44270c}
.grand-event[data-scene="haldi"] .gg-event-note{border-color:rgba(69,41,14,.3)}
.grand-schedule{width:min(100% - 48px,900px);margin:64px auto 76px;text-align:center}
.grand-schedule>h2{font:400 38px/1.2 "Cormorant Garamond",Georgia,serif;margin-bottom:20px}

/* Real memories are given room, never replaced by an artificial couple. */
.grand-photos{padding:50px 24px 80px;max-width:1320px;margin:0 auto;text-align:center}
.grand-photos>.grand-eyebrow{margin-bottom:14px}
.grand-photos>.grand-heading{margin-bottom:46px}
.grand-photo-flow{display:grid;grid-template-columns:1fr;gap:42px;align-items:start}
.grand-photo{display:block;width:100%;padding:0;border:0;border-radius:0;background:transparent;color:inherit;line-height:1.5;text-align:center}
.grand-photo img{width:100%;max-height:800px;object-fit:contain;background:var(--grand-deep)}
.grand-photo :is(span,figcaption){display:block;padding-top:14px;color:var(--grand-muted);font-size:16px}
.grand-film{max-width:1160px;margin:0 auto 80px!important;padding:0 24px;text-align:center}
.grand-film video{width:100%;max-height:85svh;background:#030405;object-fit:contain}
.grand-film figcaption{margin-top:16px}
.grand-travel{padding:80px 24px 36px;background:var(--grand-ground);color:var(--grand-ink)}
#panel-travel{width:min(100%,1040px);margin:0 auto}
#panel-travel>.grand-eyebrow{margin-bottom:14px}
#panel-travel>.grand-heading{max-width:750px;margin-bottom:30px}
.grand-venue-name{font:400 32px/1.3 "Cormorant Garamond",Georgia,serif;margin:16px 0!important}
.grand-address{max-width:680px;font-size:18px;line-height:1.75;white-space:pre-wrap;color:var(--grand-muted)}
.grand-travel-actions{display:flex;flex-wrap:wrap;gap:12px 30px;margin-top:15px}
.guest-host{border-top:1px solid var(--grand-line);margin-top:56px;padding:30px 0 10px;font-size:18px}
.guest-host h2,.guest-host h3{font:400 34px/1.2 "Cormorant Garamond",Georgia,serif;margin-bottom:12px}
.guest-host p{color:var(--grand-muted)}
.grand-closing{min-height:820px;min-height:max(820px,95svh)}
.grand-closing::before{background:linear-gradient(180deg,rgba(8,14,25,.64),rgba(8,14,25,.15) 54%,rgba(8,14,25,.1))}
.grand-closing-content{max-width:750px;position:relative;z-index:1;text-align:center;margin:0 auto;padding:95px 24px 400px}
.grand-closing-content .grand-heading{margin-bottom:22px}
.grand-closing-content .grand-prose{max-width:580px;margin:0 auto 18px}
.grand-closing-content .grand-signature{color:#f2d4a1}
.grand-footer{padding:30px 24px 36px;text-align:center;font-size:14px;line-height:1.7;color:var(--grand-muted);background:var(--grand-ground)}
.grand-footer p{max-width:750px;margin:0 auto 8px}
.grand-footer a{display:inline-flex;align-items:center;min-height:44px}

/* Hospitality modules use open columns and printed rules, not cards. */
.guest-guide{font:400 18px/1.7 SourceSans3,system-ui,sans-serif;color:inherit;overflow-wrap:anywhere}
.gg-card{display:grid;grid-template-columns:1fr;gap:28px;margin:70px 0 46px;padding:0;border:0;background:transparent}
.gg-card>.small-label,.gg-card>h2{grid-column:1/-1;margin:0}
.gg-card>.small-label{margin-bottom:-16px}
.gg-card h2{font:400 48px/1.1 "Cormorant Garamond",Georgia,serif;max-width:750px}
.gg-detail{padding-top:24px;border-top:1px solid var(--grand-line);min-width:0}
.gg-detail h3{font:600 18px/1.4 SourceSans3,system-ui,sans-serif;margin:0 0 12px;color:var(--grand-ink)}
.gg-copy{white-space:pre-wrap;margin:5px 0!important;color:var(--grand-muted)}
.gg-downloads{padding-top:24px;border-top:1px solid var(--grand-line)}
.gg-actions,.gg-links{display:flex;gap:14px 28px;flex-wrap:wrap;align-items:center;justify-content:center}
.gg-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;max-width:100%;padding:10px 2px;border:0;border-bottom:1px solid var(--grand-gold);border-radius:0;background:transparent;color:var(--grand-ink);text-decoration:none;font:400 16px/1.5 SourceSans3,system-ui,sans-serif;cursor:pointer;text-align:center}
.gg-button:hover{color:var(--grand-gold)}
.gg-button:disabled{border-color:var(--grand-line);color:var(--grand-muted)}
.gg-hint,.gg-status{font-size:14px;line-height:1.6;color:var(--grand-muted);margin:16px 0 0!important}
.gg-status:empty{display:none}
.gg-event-note{border-top:1px solid rgba(255,227,184,.32);margin-top:24px;padding-top:18px;text-align:center;font-size:16px;line-height:1.6}
.gg-event-note .gg-copy{color:#f8e7cd}
.gg-event-note strong{font-weight:600;color:#ffefd2}
.gg-faq{grid-column:1/-1}
.gg-question{border-bottom:1px solid var(--grand-line);padding:6px 0}
.gg-question summary{cursor:pointer;min-height:48px;padding:12px 4px;font-size:18px;font-weight:400;color:var(--grand-ink)}
.gg-question p{padding:2px 4px 14px;max-width:46em}
.gg-links{grid-column:1/-1;justify-content:flex-start}
.gg-links .gg-hint{flex-basis:100%;margin-top:0!important}

/* Confirmation and full-image viewing retain native dialog focus behavior. */
.grand-dialog{position:fixed;inset:0;width:min(560px,calc(100% - 32px));max-width:100%;max-height:calc(100svh - 32px);margin:auto;padding:32px;border:1px solid #8f734d;border-radius:0;background:#112033;color:#f8ebd5;overflow:auto;box-shadow:0 24px 100px #0009}
.grand-dialog::backdrop{background:rgba(3,7,14,.83);backdrop-filter:blur(6px)}
.grand-dialog h2{font:400 36px/1.2 "Cormorant Garamond",Georgia,serif;margin:0 0 18px}
.grand-dialog p{font-size:18px;line-height:1.7;overflow-wrap:anywhere;margin:12px 0}
.grand-dialog-actions{display:flex;flex-wrap:wrap;gap:16px;align-items:center;margin-top:24px}
.grand-button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;max-width:100%;border:1px solid #d7b17a;background:#e4c28e;color:#21170f;border-radius:0;font-size:16px;line-height:1.4;text-decoration:none;text-align:center}
.grand-button:hover{background:#f2d6aa}
.grand-photo-dialog{width:min(1320px,calc(100% - 24px));padding:64px 16px 16px;background:#080d15;border-color:#47515d}
.grand-photo-dialog img{margin:auto;width:auto;max-width:100%;max-height:calc(100svh - 130px);object-fit:contain}
.grand-dialog-close{position:absolute;top:9px;right:14px;min-height:44px;padding:8px 14px;border:0;background:transparent;color:#f8ebd5;font-size:16px;text-decoration:underline;text-underline-offset:.25em}

@media(min-width:760px){
 .grand-scene-art img{object-position:center center}
 .grand-arrival{min-height:850px;min-height:max(800px,100svh)}
 .grand-arrival-content{width:42%;max-width:600px;margin:0 0 0 8%;padding-top:clamp(105px,15svh,165px);padding-bottom:140px}
 .grand-arrival::after{background:radial-gradient(ellipse 43% 75% at 29% 42%,rgba(5,10,20,.59),rgba(5,10,20,.12) 72%,transparent)}
 .grand-invitation[data-design="journal"] .grand-arrival::after{background:radial-gradient(ellipse 44% 75% at 29% 42%,rgba(56,23,15,.7),rgba(56,23,15,.13) 75%,transparent)}
 .grand-portal{inset:0;width:100%}
 .grand-door{background-size:200% auto;background-position:left center}
 .grand-door-right{background-position:right center}
 .grand-names{font-size:clamp(78px,7.4vw,112px);margin:27px 0 28px!important}
 .grand-date{font-size:20px}
 .grand-place{font-size:17px}
 .grand-scroll-hint{left:8%;right:auto;width:42%;max-width:600px}
 .grand-letter{padding:110px 32px 120px}
 .grand-letter>.grand-heading{max-width:750px}
 .grand-event{min-height:850px;min-height:max(850px,100svh)}
 .grand-event-content{width:41%;max-width:580px;margin:0 0 0 8%;padding:120px 0 200px}
 .grand-event-content::before{inset:30px -90px 100px;background:radial-gradient(ellipse,rgba(7,10,22,.9),rgba(7,10,22,.52) 53%,transparent 76%)}
 .grand-event-title{font-size:clamp(72px,7vw,100px)}
 .grand-event[data-scene="haldi"] .grand-event-content::before{background:radial-gradient(ellipse,rgba(255,224,156,.9),rgba(255,224,156,.6) 47%,transparent 77%)}
 .grand-photo-flow{grid-template-columns:1fr 1fr;gap:70px 50px}
 .grand-photo:nth-child(even){margin-top:100px}
 .grand-photo:only-child{grid-column:1/-1;max-width:1040px;margin:0 auto}
 .grand-travel{padding-top:110px;padding-bottom:60px}
 .gg-card{grid-template-columns:1fr 1fr;gap:34px 54px}
 .grand-closing-content{width:42%;max-width:600px;margin:0 0 0 8%;padding:120px 0 300px}
 .grand-closing::before{background:linear-gradient(90deg,rgba(8,14,25,.58),rgba(8,14,25,.23) 54%,transparent)}
}
@media(min-width:1800px){.grand-arrival-content,.grand-event-content,.grand-closing-content{margin-left:13%}.grand-scroll-hint{left:13%}}
@media(max-width:359px){
 .grand-arrival-content{width:calc(100% - 32px);padding-top:110px}
 .grand-names{font-size:56px}
 .grand-arrival .grand-eyebrow{font-size:14px;letter-spacing:.09em}
 .grand-event-content{width:calc(100% - 40px);padding-top:100px}
 .grand-event-title{font-size:55px}
 .grand-chapter-nav{gap:0 20px;padding-left:16px;padding-right:16px}
 .grand-dialog{padding:24px}
}
@media(max-height:600px) and (min-width:760px){
 .grand-arrival,.grand-event{min-height:760px}
 .grand-arrival-content{padding-top:84px}
 .grand-arrival .grand-names{font-size:76px}
 .grand-scroll-hint{bottom:26px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 .grand-door{transition:none!important}
 .grand-portal{display:none!important}
 .grand-invitation *{animation:none!important;scroll-behavior:auto!important}
}
.grand-invitation[data-motion="reduced"] *{animation:none!important;transition:none!important;scroll-behavior:auto!important}
.grand-invitation[data-motion="reduced"] .grand-portal{display:none!important}
@media print{
 :root,body,.grand-invitation{background:white!important;color:#201c18!important;color-scheme:light}
 .grand-scene{min-height:0!important;background:none!important;color:#201c18!important;break-inside:avoid}
 .grand-scene-art,.grand-scene::before,.grand-scene::after,.grand-portal,.grand-controls,.grand-chapter-nav,.grand-entry-actions,.grand-skip,.grand-scroll-hint,.grand-dialog,.gg-actions,.gg-links,.grand-link{display:none!important}
 .grand-arrival-content,.grand-event-content,.grand-closing-content{width:100%;max-width:none;margin:0;padding:30px!important;text-shadow:none}
 .grand-event-content::before{display:none}
 .grand-letter,.grand-travel,.grand-section-intro{padding:25px;background:none!important}
 .grand-invitation :is(p,h1,h2,h3,strong,span){color:#201c18!important}
 .grand-names{font-size:64px!important}.grand-event-title{font-size:40px!important}
 .gg-detail{break-inside:avoid}.gg-question:not([open])>p{display:block}.grand-footer{background:white}
}
.grand-story-art{width:100%;max-height:420px;object-fit:cover;border:0;margin:12px 0 28px}
/* October 30 recorded feedback: a clean automatic opening, then useful navigation. */
.grand-invitation{--grand-ground:#f4e6cf;--grand-deep:#e9d2ae;--grand-ink:#4b2a24;--grand-muted:#704735;--grand-gold:#88451f;--grand-line:#aa72484d;color-scheme:light}
.grand-invitation[data-design="mehfil"]{--grand-ground:#341a29;--grand-deep:#26101d;--grand-ink:#ffedcf;--grand-muted:#e0c2ab;--grand-gold:#edbd78;--grand-line:#edbd784d;color-scheme:dark}
.grand-invitation[data-design="desert"]{--grand-ground:#f8e4ba;--grand-deep:#e9c993;--grand-ink:#5c3023;--grand-muted:#734329;--grand-gold:#884323;--grand-line:#a565394d}
.grand-letter{background:radial-gradient(ellipse at 50% 30%,#fff7e7,transparent 68%)}
.grand-invitation[data-design="mehfil"] .grand-letter{background:radial-gradient(ellipse at 50% 30%,#512137,transparent 68%)}
.grand-chapter-nav{position:fixed;z-index:30;top:0;left:0;right:0;display:flex;flex-wrap:wrap;gap:2px;padding:8px max(10px,calc((100vw - 760px)/2));border-bottom:1px solid var(--grand-line);box-shadow:0 5px 24px #32180b24;background:var(--grand-ground)}
.grand-chapter-nav a{justify-content:center;text-align:center;flex:1 1 0;min-width:min-content;min-height:48px;padding:6px 2px;font-size:16px;line-height:1.2;border-bottom:2px solid transparent}
.grand-chapter-nav a[aria-current]{border-color:var(--grand-gold);font-weight:600}
.grand-invitation :is(#events,#travel,#game,#photos){scroll-margin-top:var(--grand-nav-offset,82px)}
.grand-controls{position:relative;z-index:10}
.grand-arrival-content{animation:grand-card-rise 2.4s cubic-bezier(.18,.7,.25,1) both}
.grand-arrival .grand-scene-art{animation:grand-depth 12s ease-out both;transform-origin:50% 65%}
@keyframes grand-card-rise{from{opacity:0;transform:perspective(1000px) translateY(110px) rotateX(14deg) scale(.85)}40%{opacity:0}to{opacity:1;transform:none}}
@keyframes grand-depth{from{transform:scale(1.1)}to{transform:scale(1)}}
.grand-petals{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}
.grand-petals i{position:absolute;top:-30px;left:calc(var(--i)*7%);width:11px;height:17px;background:#efb137;border-radius:70% 15% 60% 20%;opacity:0;animation:grand-petal 8s calc(var(--i)*.16s) ease-in-out 1}
@keyframes grand-petal{10%{opacity:.8}90%{opacity:.6}to{opacity:0;transform:translate(80px,95svh) rotate(380deg)}}
.grand-invitation[data-hidden="true"] *{animation-play-state:paused!important}
.grand-invitation[data-design="desert"] .grand-door{background-image:none;background-color:#b8663e;background-image:linear-gradient(45deg,transparent 48%,#f3c883 49%,#f3c883 51%,transparent 52%);background-size:45px 45px;border:12px double #f0c981}
.grand-invitation[data-design="mehfil"] .grand-door{background-image:url('/grand/media/curtains.webp');filter:hue-rotate(320deg) saturate(.8)}
.grand-game{max-width:1050px;margin:auto;padding:70px 24px 100px;text-align:center}
.grand-game-art{width:100%;max-height:520px;object-fit:contain;margin:0 auto 30px;border-radius:50% 50% 0 0 / 15% 15% 0 0}
.grand-game .grand-eyebrow{margin-bottom:22px}
.memory-game h2{font:400 clamp(36px,6vw,58px)/1.1 "Cormorant Garamond",Georgia,serif;margin:12px 0 18px}
.memory-game p{max-width:650px;margin:12px auto}
.memory-board{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px auto;max-width:600px}
.memory-card{min-height:88px;border:1px solid var(--grand-gold);background:var(--grand-deep);color:var(--grand-ink);font-size:32px;border-radius:10px}
.memory-card[aria-pressed="true"]{background:var(--grand-ground);box-shadow:inset 0 0 0 2px var(--grand-gold)}
.memory-card[data-matched="true"]{border-style:double;opacity:.7}
.memory-start{min-height:48px;border:1px solid var(--grand-gold);padding:12px 24px;background:var(--grand-ink);color:var(--grand-ground);border-radius:3px;margin:10px}
.memory-note{font-size:14px;color:var(--grand-muted)}
@media(max-width:359px){.grand-chapter-nav{padding:6px}.grand-chapter-nav a{font-size:15px}.memory-board{gap:8px}.memory-card{min-height:64px}}
@media(prefers-reduced-motion:reduce){.grand-arrival-content,.grand-arrival .grand-scene-art,.grand-petals i{animation:none!important}.grand-petals{display:none}}
.grand-invitation[data-motion="reduced"] .grand-petals{display:none}
@media print{.grand-game{display:none}}

/* Compact warm-gold sound control stays reachable during the celebrations. */
.grand-journey-sound{position:static;align-self:center;flex:0 1 auto;min-width:min-content;min-height:44px;max-width:none;padding:8px 10px;border:1px solid #b68b50;border-radius:999px;background:linear-gradient(145deg,#fff8e9,#efdbb7);box-shadow:0 4px 20px #27120738,inset 0 1px #fff;color:#543116;font:600 14px/1.4 var(--grand-sans,sans-serif);cursor:pointer}
.grand-journey-sound[aria-pressed=true]{background:#74451f;color:#fff8e7;border-color:#d9b473}
.grand-journey-sound:focus-visible{outline:3px solid #fff;outline-offset:3px;box-shadow:0 0 0 6px #74451f}
.grand-journey-sound[hidden]{display:none!important}
@media print{.grand-journey-sound{display:none}}
@media(forced-colors:active){.grand-journey-sound{background:ButtonFace;color:ButtonText;border-color:ButtonText;box-shadow:none}}

.grand-arrival[data-entry-reset="true"] :is(.grand-arrival-content,.grand-scene-art,.grand-petals i){animation:none!important}

@media(max-width:420px){.grand-chapter-nav{padding:6px 4px}.grand-chapter-nav a{font-size:16px;overflow-wrap:normal}.grand-journey-sound{max-width:none;padding:6px;font-size:14px;line-height:1.3}}

/* Supplied motion films carry the visual story; live HTML carries the facts. */
.grand-motion-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1;pointer-events:none;opacity:0;transition:opacity .4s}
@media(min-width:600px) and (max-aspect-ratio:4/3){.grand-motion-film{object-fit:contain;background:#151018}}
.grand-arrival[data-film="playing"] .grand-motion-film,.grand-arrival[data-film="ended"] .grand-motion-film,.grand-arrival[data-film="paused"] .grand-motion-film{opacity:1}
.grand-arrival[data-film] .grand-portal,.grand-arrival[data-film] .grand-petals{display:none}
.grand-arrival[data-film="playing"] .grand-arrival-content{opacity:0;pointer-events:none;animation:none}
.grand-arrival[data-film="playing"] .grand-scroll-hint{z-index:4}
.grand-arrival[data-film="ended"] .grand-arrival-content,.grand-arrival[data-film="paused"] .grand-arrival-content{animation:grand-card-rise .75s ease both}
.grand-arrival-content{z-index:4}
.grand-arrival[data-film="reduced"] .grand-motion-film,.grand-arrival[data-film="unavailable"] .grand-motion-film{display:none}

.grand-film-tools{position:absolute;z-index:5;bottom:22px;left:20px;right:20px;display:flex;justify-content:center;gap:12px}
.grand-film-tools[hidden]{display:none}
.grand-film-tools button{min-height:44px;border:1px solid #f5dfac80;border-radius:30px;background:#23150cdb;color:#fff7e4;padding:10px 18px;font:inherit;font-size:16px;text-decoration:none}

.grand-arrival:is([data-film="loading"],[data-film="playing"]) .grand-scroll-hint{display:none}
.grand-film-tools{bottom:auto;top:max(12px,calc(min(100svh,900px) - 170px));flex-wrap:wrap}

.grand-arrival:is([data-film="unavailable"],[data-film="stopped"],[data-film="reduced"]) .grand-arrival-content{animation:none;opacity:1;transform:none}
.grand-countdown{font:500 clamp(18px,3vw,25px)/1.7 'Cormorant Garamond',Georgia,serif;letter-spacing:.025em;padding:20px 8px;border-block:1px solid #b68b5055;margin:32px auto 0;max-width:650px}
