:root{--ivory:#f6f2e9;--paper:#faf6ed;--ink:#3d4037;--muted:#757466;--gold:#a88f63;--red:#842f3c;--line:#d6cfbf;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif;color-scheme:light;font-family:var(--sans);color:var(--ink);background:var(--ivory);font-synthesis:none}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0}body.locked{overflow:hidden}button,input,textarea{font:inherit}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit;background:none;border:0}a{color:inherit}img{display:block;max-width:100%;height:auto}h1,h2,h3,h4,p,figure{margin:0}h1,h2,h3,h4{font-family:var(--serif);font-weight:400}h2{font-size:clamp(3rem,6.5vw,6rem);line-height:1;letter-spacing:-.035em}em{font-weight:400}h3{font-size:2rem;line-height:1.2}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:2px solid #af925d;outline-offset:5px}[hidden]{display:none!important}.eyebrow{font-size:.69rem;line-height:1.6;letter-spacing:.19em;font-weight:400}.section-heading{text-align:center}.section-heading>.eyebrow{margin-bottom:24px;color:var(--muted)}.section-intro{font:1.35rem/1.5 var(--serif);margin-top:24px}.section-rule{display:block;width:60px;height:1px;background:var(--gold);margin:52px auto 0}.text-link{display:flex;align-items:center;justify-content:space-between;gap:30px;width:fit-content;max-width:100%;text-decoration:none;border-bottom:1px solid var(--line);padding:14px 0;min-height:44px;font-size:.8rem}.text-link span{font-size:1rem}.text-link.light{border-color:#f5ead759}.primary-button{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 24px;min-height:54px;background:var(--red);color:var(--ivory);width:100%;font-size:.85rem}.primary-button:disabled{opacity:.65;cursor:wait}
/* Small navigation leaves the story unobstructed. */
.site-header{position:absolute;top:0;left:0;z-index:20;height:68px;width:100%;padding:0 4.5vw;display:flex;align-items:center;justify-content:space-between;gap:20px;color:#443e32;transition:transform .3s,background .3s}.monogram{font:29px/1 var(--serif);letter-spacing:-.045em;text-decoration:none;min-height:44px;display:flex;align-items:center}.monogram span{font-style:italic;font-size:.83em;margin:0 .2em;color:var(--gold)}.header-note{font-size:.625rem;letter-spacing:.2em}.site-header.scrolled{position:fixed;height:60px;background:#f6f2e9f5;color:var(--ink);border-bottom:1px solid #d6cfbf66;backdrop-filter:blur(12px)}.site-header.header-hidden{transform:translateY(-110%)}.site-header:focus-within{transform:none}
/* The cover is a real page section; it never blocks access to the story. */
.cover{height:100svh;min-height:760px;max-height:1120px;position:relative;isolation:isolate;overflow:hidden;background:#d5c7b1}.cover-landscape,.cover-wash{position:absolute;inset:0;z-index:-2}.cover-landscape img{width:100%;height:100%;object-fit:cover;object-position:50% 48%;transform:scale(1.025)}.cover-wash{z-index:-1;background:linear-gradient(#f9e9cd52 0%,#f8e1b921 38%,#39494c0a 70%,#283c3d73 100%)}.cloud{position:absolute;z-index:-1;pointer-events:none;background:radial-gradient(ellipse,#fff7e868 0%,#fff5e51a 45%,transparent 68%);width:95%;height:27%;filter:blur(18px);will-change:transform}.cloud-one{left:-25%;top:29%}.cloud-two{right:-36%;top:47%;opacity:.5}.cover-copy{text-align:center;position:absolute;top:13%;left:20px;right:20px;color:#423d30}.cover-copy h1{font-size:clamp(2.8rem,5.6vw,5rem);line-height:1.02;letter-spacing:-.035em;margin-top:18px}.cover-copy h1 em{font-weight:400}.messenger{position:absolute;left:50%;top:40%;width:250px;z-index:4;transform:translate(-50%,-50%);opacity:0;pointer-events:none}.messenger img{width:100%;position:relative;z-index:1}.carried-letter{position:absolute;left:49%;top:81%;width:38px;height:25px;background:var(--red);border:1px solid #b65d66;transform:rotate(-12deg);box-shadow:0 3px 6px #26352a30}.carried-letter:after{content:'';position:absolute;inset:0;background:#a2434e;clip-path:polygon(0 0,100% 0,50% 60%)}.letter-stage{position:absolute;left:50%;top:59%;transform:translate(-50%,-50%);perspective:1500px;z-index:3}.red-envelope{position:relative;width:370px;height:245px;transform-style:preserve-3d;filter:drop-shadow(0 18px 18px #24271e38)}.envelope-back,.envelope-side,.envelope-front,.envelope-flap{position:absolute;inset:0}.envelope-back{background:#702634;border:1px solid #ad5a5b}.envelope-side{z-index:3;background:#943541}.envelope-left{clip-path:polygon(0 0,57% 56%,0 100%);background:linear-gradient(110deg,#89303c,#aa4854)}.envelope-right{clip-path:polygon(100% 0,43% 56%,100% 100%);background:linear-gradient(250deg,#7a2a36,#aa4854)}.envelope-front{z-index:4;clip-path:polygon(0 100%,0 29%,50% 62%,100% 29%,100% 100%);background:linear-gradient(0deg,#742936,#99444e);border-bottom:1px solid #aa6363}.envelope-flap{z-index:5;clip-path:polygon(0 0,100% 0,50% 62%);background:linear-gradient(170deg,#a24952,#7e2e3a);transform-origin:50% 0;backface-visibility:hidden}.letter-card{position:absolute;z-index:2;top:8%;left:6%;width:88%;height:86%;padding:34px 18px 22px;text-align:center;background:var(--paper) url('assets/embossed-paper.webp') center/cover;box-shadow:0 2px 12px #392d2730;overflow:hidden;color:#65583f}.letter-card>.eyebrow{font-size:.53rem;letter-spacing:.16em}.letter-names{font:3.25rem/.83 var(--serif);letter-spacing:-.04em;margin-top:25px}.letter-names em{font-size:1.5rem;line-height:1.5}.letter-date{font:1.03rem/1.5 var(--serif);margin-top:20px}.letter-rule{display:block;width:40px;height:1px;background:#b7a684;margin:15px auto}.letter-place{font:italic 1rem/1.25 var(--serif)}.letter-seal,.wish-seal{position:absolute;z-index:6;left:50%;top:58%;transform:translate(-50%,-50%);width:77px;height:77px;padding:0;border-radius:48% 51% 49% 53%;display:grid;place-items:center;background:radial-gradient(circle at 28% 20%,#d8c297,#b29666 72%,#907249);box-shadow:inset 0 0 0 4px #cab282,inset 0 0 0 6px #9d8054,inset 0 0 0 8px #cfb887,0 5px 10px #35121b50;color:#624a2b}.letter-seal span,.wish-seal span{font:2.15rem/1 var(--serif);text-shadow:0 1px #eddbb4}.letter-seal em,.wish-seal em{font-size:1.15rem;margin:0 2px}.letter-seal:hover{filter:brightness(1.06)}.chitthi-label{position:absolute;z-index:6;left:0;right:0;bottom:19px;text-align:center;font-size:.55rem;letter-spacing:.27em;color:#eadbc1}.tap-note{position:absolute;top:calc(59% + 160px);left:10px;right:10px;color:#fff8e7;text-align:center;font:italic 1.1rem/1.5 var(--serif);text-shadow:0 2px 10px #1b2929}.scroll-cue{position:absolute;bottom:45px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:10px;text-decoration:none;color:#fff7e9;font-size:.65rem;letter-spacing:.18em;min-height:44px}.scroll-cue i{font:1.6rem/1 var(--serif);font-style:normal}.js .cover:not(.opened) .scroll-cue{opacity:0;pointer-events:none}.skip-scene{position:absolute;right:28px;bottom:25px;color:#fff7e9;font-size:.65rem;min-height:44px}.skip-scene span{margin-left:7px}.cover.opened .skip-scene{display:none}
/* A small keepsake mark, reused in the saved-wish confirmation. */
.tiny-envelope{position:relative;display:block;width:32px;height:21px;background:#8c3542;border:1px solid #b46973;transform:rotate(-8deg);margin-top:30px}.tiny-envelope:after{content:'';position:absolute;inset:0;clip-path:polygon(0 0,100% 0,50% 63%);background:#b3656e}
/* Native dialogs preserve touch scrolling and keyboard focus. */
dialog{border:1px solid #d7cfbd70;color:var(--ink);background:var(--ivory);padding:32px 38px 38px;width:min(560px,calc(100vw - 32px));max-height:calc(100svh - 32px);overflow-y:auto;overscroll-behavior:contain;box-shadow:0 20px 90px #111a2045;scrollbar-width:thin}dialog::backdrop{background:#19231dc9;backdrop-filter:blur(6px)}.dialog-top{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-bottom:32px}.dialog-top>.eyebrow{color:var(--muted)}.close-dialog:not(.text-link){width:44px;height:44px;flex:none;font:1.8rem/1 var(--sans);margin:-10px -12px -10px 0}dialog h2{font-size:3.6rem}dialog h3{font-size:1.8rem}dialog p:not(.eyebrow){font-size:.9rem;line-height:1.6}.attire-description{font:1.2rem/1.45 var(--serif)!important;margin-top:20px}.attire-tabs{display:flex;gap:20px;margin:27px 0 20px;border-bottom:1px solid var(--line)}.attire-tabs button{font-size:.73rem;padding:12px 0;min-height:44px;position:relative;color:var(--muted)}.attire-tabs button[aria-selected=true]{color:var(--ink)}.attire-tabs button[aria-selected=true]:after{content:'';position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--gold)}.attire-guidance{font-size:.82rem!important;color:var(--muted);margin-bottom:22px}.fabric-stack{display:grid;grid-template-columns:1fr 1fr;gap:13px 10px;margin:20px 0 28px}.fabric-swatch{height:82px;display:flex;flex-direction:column;justify-content:flex-end;padding:12px;background:var(--tone) url('assets/silk.webp') center/cover;background-blend-mode:multiply;color:var(--swatch-ink);border-radius:2px 7px 10px 2px;box-shadow:0 3px 7px #4d3f231a}.fabric-swatch span{font:1.25rem/1.05 var(--serif);text-shadow:0 1px 3px #0000000c}.fabric-swatch small{font-size:.5rem;letter-spacing:.08em;margin-bottom:auto;opacity:.8}.attire-footnote{font:italic 1.2rem/1.4 var(--serif)!important;margin-bottom:22px}.attire-dialog>.text-link{width:100%}#wishes-form{margin-top:32px}#wishes-form label{display:block;margin-bottom:27px;font-size:.78rem}#wishes-form input,#wishes-form textarea{display:block;width:100%;border:0;border-bottom:1px solid var(--line);background:#ffffff20;color:var(--ink);border-radius:0;padding:14px 0;font:1rem/1.6 var(--sans);margin-top:9px;resize:vertical}.form-privacy{font-size:.7rem!important;color:var(--muted);margin:0 0 24px}#wish-error{color:#922f3b;margin-top:16px}#wish-success{padding:10px 0 0}#wish-success .tiny-envelope{margin-bottom:28px}#wish-success h3{margin-bottom:15px}#wish-success .text-link{margin-top:20px}
@media(max-width:650px){.site-header,.site-header.scrolled{height:calc(56px + env(safe-area-inset-top,0px));padding:env(safe-area-inset-top,0px) 23px 0}.monogram{font-size:25px}.header-note{display:none}h2{font-size:3.4rem}.eyebrow{font-size:.62rem;letter-spacing:.15em}.cover{min-height:740px;max-height:none}.cover-copy{top:13%}.cover-copy h1{font-size:clamp(2.75rem,11vw,3.6rem);margin-top:15px}.cover-landscape img{object-position:49% 50%}.letter-stage{top:59%}.red-envelope{width:300px;height:205px}.letter-card{padding-top:29px}.letter-names{font-size:3.15rem}.letter-seal{width:70px;height:70px}.letter-seal span{font-size:2rem}.tap-note{top:calc(59% + 135px);font-size:1rem}.scroll-cue{bottom:44px;font-size:.59rem}.skip-scene{bottom:10px;right:17px;font-size:.6rem}.messenger{width:210px}.section-intro{font-size:1.2rem}dialog{width:calc(100vw - 24px);padding:26px;max-height:calc(100svh - 28px)}dialog h2{font-size:3rem}.dialog-top{margin-bottom:28px}.fabric-swatch{height:75px;padding:10px}.fabric-swatch span{font-size:1.16rem}.attire-description{font-size:1.15rem!important}}
@media(max-width:360px){.red-envelope{width:270px;height:188px}.cover-copy h1{font-size:2.65rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}.motion-off{scroll-behavior:auto}.motion-off *,.motion-off *:before,.motion-off *:after{animation:none!important;transition:none!important}
