@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&family=Noto+Sans+Malayalam:wght@400;500&family=Noto+Sans+Tamil:wght@400;500;600&display=swap');
:root{--paper:#faf8f4;--ink:#24243c;--muted:#797482;--line:#e3dfe6;--violet:#766086;--card:#fffdfb;--soft:#ede6f1;--lyrics-size:20px}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif}body.dark{--paper:#15182a;--ink:#f0e9f3;--muted:#b4aebe;--line:#36364e;--violet:#c9aedc;--card:#1d2035;--soft:#343047}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #aa87c5;outline-offset:5px}button:disabled{opacity:.35;cursor:default}[hidden]{display:none!important}.eyebrow{letter-spacing:.24em;font-size:12px;font-weight:600;color:var(--violet)}header{height:88px;max-width:1160px;margin:auto;padding:0 40px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{font-family:'Cormorant Garamond',serif;font-size:37px;letter-spacing:-6px;display:flex;align-items:center;gap:25px}.brand span{font:500 11px 'DM Sans',sans-serif;letter-spacing:.19em}.icon-button{border:1px solid var(--line);background:none;border-radius:50%;width:42px;height:42px;font-size:23px}main{max-width:940px;margin:auto;padding:0 40px}.intro{text-align:center;padding:54px 0 44px}.intro h1{font:500 64px/.99 'Cormorant Garamond',serif;margin:23px 0}.intro h1 i{font-weight:400;color:var(--violet)}.couple{font:500 25px 'Cormorant Garamond',serif;margin:24px 0 15px}.couple span{font-style:italic;color:var(--violet);padding:0 9px}.event{display:flex;justify-content:center;gap:12px;color:var(--muted);font-size:13px}.event b{font-weight:400}.list-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.list-heading h2{font:500 28px 'Cormorant Garamond',serif;margin:0}.list-heading>span{font-size:11px;letter-spacing:.15em;color:var(--muted)}.song-row{display:grid;grid-template-columns:50px 1fr 30px;gap:16px;align-items:center;padding:23px 16px;border-top:1px solid var(--line);transition:background .2s,transform .2s}.song-row:hover{background:var(--soft);transform:translateX(3px)}.song-no{color:var(--violet);font:italic 26px 'Cormorant Garamond',serif}.song-name{font:500 17px/1.7 'Noto Sans Tamil',sans-serif;margin:0 0 3px}.song-caption{font-size:13px;color:var(--muted);margin:0}.song-arrow{color:var(--violet);font-size:24px}.song-row:last-child{border-bottom:1px solid var(--line)}footer{text-align:center;padding:44px 0;color:var(--muted);font-size:12px}footer span{display:block;font:italic 24px 'Cormorant Garamond',serif;color:var(--violet);margin-top:10px}#reader{padding:30px 0 50px}.back{font-size:14px;color:var(--violet)}.reader-heading{padding:32px 0 26px}.reader-heading h1{font:500 30px/1.7 'Noto Sans Tamil',sans-serif;margin:16px 0 8px}.reader-heading>p:last-child{color:var(--muted);font-size:16px}.reading-controls{position:sticky;top:0;z-index:2;background:var(--paper);padding:15px 0;display:flex;justify-content:space-between;gap:14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.languages{display:flex;background:var(--soft);padding:4px;border-radius:8px}.languages button{border:0;background:none;padding:9px 17px;border-radius:5px;font-size:14px}.languages button[aria-pressed=true]{background:var(--card);box-shadow:0 2px 5px #0000000d}.font-controls{display:flex;align-items:center;gap:12px}.font-controls button{background:transparent;border:1px solid var(--line);border-radius:6px;padding:9px;font-size:16px}.font-controls span{color:var(--muted);font-size:12px}#lyrics{padding:32px 0 45px;display:grid;gap:30px}#lyrics.both{grid-template-columns:1fr 1fr}.lyric-label{color:var(--violet);font-size:11px;letter-spacing:.15em;margin-bottom:22px}.lyric-text{font-size:var(--lyrics-size);line-height:2;white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.lyric-text[lang=ta]{font-family:'Noto Sans Tamil',sans-serif;line-height:2.2}.song-nav{display:flex;justify-content:space-between;align-items:center;border-top:1px solid var(--line);padding-top:24px;gap:12px}.song-nav button{border:0;background:none;font-size:14px;color:var(--violet);padding:10px 0}.song-nav span{font-size:12px;color:var(--muted)}#splash{position:fixed;inset:0;z-index:10;background:#141b36;color:#f3eaf8;display:grid;place-items:center;overflow:auto;transition:opacity .7s,visibility .7s}#splash.leaving{opacity:0;visibility:hidden}.splash-inner{text-align:center;padding:25px 20px}.splash-inner .eyebrow{color:#c7b6d4}.wreath{position:relative;width:min(390px,77vw);height:min(390px,77vw);margin:-5px auto -18px}.wreath img{width:100%;height:100%;object-fit:contain}.monogram{position:absolute;inset:0;display:grid;place-items:center;font:500 96px 'Cormorant Garamond',serif;letter-spacing:-13px;padding-right:13px;color:#e4d0ed;text-shadow:0 2px 20px #141b36}.splash-inner h1{font:400 53px 'Cormorant Garamond',serif;margin:12px 0}.splash-inner h1 i{color:#b79acb;font-weight:400;font-size:40px}.splash-date{font-size:11px;letter-spacing:.2em;color:#c2b4ce;margin:20px 0 28px}#enter{background:#d5bfdf;color:#24213b;border:0;border-radius:3px;padding:16px 25px;font-size:14px;min-width:240px}#enter span{margin-left:25px}.welcome-note{color:#ad9fbd;font:italic 19px 'Cormorant Garamond',serif;margin:24px 0 0}@media(max-width:600px){header{height:72px;padding:0 23px}main{padding:0 23px}.brand span{font-size:10px}.intro{padding:38px 0}.intro h1{font-size:51px}.event{flex-direction:column;gap:5px}.event b{display:none}.list-heading h2{font-size:25px}.song-row{grid-template-columns:29px 1fr 17px;padding:20px 0;gap:12px}.song-name{font-size:15px}.song-caption{font-size:12px;line-height:1.6}.reader-heading h1{font-size:24px}.languages button{padding:8px 12px}.font-controls{gap:6px}#lyrics.both{grid-template-columns:1fr}.splash-inner h1{font-size:44px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
/* Intertwined rings and floating botanical edges. */
.header-actions{display:flex;gap:10px}
#motion{font-size:17px}
#app{position:relative;z-index:1;opacity:0;transform:translateY(20px);transition:opacity 1s ease .18s,transform 1s cubic-bezier(.2,.7,.2,1) .18s}
.songbook-open #app{opacity:1;transform:none}
#splash{background:radial-gradient(ellipse at 50% 40%,#38304e 0%,#1c213e 43%,#141b36 78%);transition:opacity 1s ease,visibility 1s}
.splash-inner{transition:transform 1s cubic-bezier(.4,0,.2,1),filter 1s,opacity .8s}
#splash.leaving .splash-inner{transform:translateY(-24px) scale(1.035);filter:blur(5px);opacity:0}
.wedding-rings{position:relative;isolation:isolate;width:min(390px,80vw);height:min(350px,72vw);margin:8px auto 0;perspective:800px}
.orbit{position:absolute;inset:17% 12%;border-radius:50%;border:2px solid transparent;background:none;border-color:#d4bddd #f5dfba #a891c5 #f9ecd2;box-shadow:inset 0 0 18px #d9bfec12,0 0 23px #dbc2f023;animation:ring-turn 15s linear infinite}
.orbit-one{translate:-17px -3px;rotate:-28deg}
.orbit-two{translate:17px 3px;rotate:28deg;animation-direction:reverse;animation-duration:19s;border-width:1.5px;background:none;border-color:#aa8bbd #f6e4c5 #9c91cd #e7cbe9}
.orbit::after{content:'';position:absolute;top:15%;left:12%;width:5px;height:5px;border-radius:50%;background:#fff0cf;box-shadow:0 0 14px 4px #e6c8e76b}
.wedding-rings .monogram{z-index:2;font-size:100px;animation:monogram-reveal 1.5s ease both;pointer-events:none}
@keyframes ring-turn{from{transform:rotateZ(0deg) rotateY(32deg)}to{transform:rotateZ(360deg) rotateY(32deg)}}
@keyframes monogram-reveal{from{opacity:0;filter:blur(8px);transform:scale(.94)}to{opacity:1;filter:blur(0);transform:scale(1)}}
.floral-background{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0;opacity:0;transition:opacity 1.4s ease}
.songbook-open .floral-background{opacity:1}
.floral{position:absolute;width:600px;max-width:none;opacity:.11;filter:sepia(.2) saturate(.65);mix-blend-mode:multiply;animation:floral-sway 22s ease-in-out infinite alternate;will-change:transform;mask-image:linear-gradient(to right,#000 15%,transparent 80%)}
.floral-left{left:-425px;top:2%;transform:rotate(-18deg)}
.floral-right{right:-425px;bottom:-8%;rotate:180deg;animation-delay:-11s}
body.dark .floral{mix-blend-mode:screen;opacity:.16;filter:saturate(.65)}
@keyframes floral-sway{from{transform:translate3d(-9px,0,0) rotate(-8deg)}to{transform:translate3d(10px,32px,0) rotate(4deg)}}
body.reading main{max-width:1260px}
#lyrics.three-columns{grid-template-columns:repeat(3,minmax(0,1fr));gap:30px}
.lyric-column{min-width:0}
.three-columns .lyric-column + .lyric-column{border-left:1px solid var(--line);padding-left:24px}
.lyric-text[lang=ml]{font-family:'Noto Sans Malayalam',sans-serif;line-height:2.2}
.lyric-label{line-height:1.8}
.languages{flex-wrap:wrap}
.motion-paused .orbit,.motion-paused .floral{animation-play-state:paused!important}
@media(max-width:900px){#lyrics.three-columns{grid-template-columns:1fr}.three-columns .lyric-column + .lyric-column{border-left:0;border-top:1px solid var(--line);padding:26px 0 0}.floral{opacity:.07}.floral-left{left:-480px}.floral-right{right:-480px}}
@media(max-width:600px){.reading-controls{flex-wrap:wrap}.languages{flex:1}.languages button{padding:8px 10px}.font-controls{margin-left:auto}.wedding-rings .monogram{font-size:86px}}
@media(prefers-reduced-motion:reduce){.orbit,.floral,.monogram{animation:none!important}#app{transform:none}#splash.leaving .splash-inner{transform:none;filter:none}}

.floral{width:310px;opacity:.24;filter:saturate(.75);mix-blend-mode:normal;mask-image:none}
.floral-left{left:-95px;top:8%}
.floral-right{right:-95px;bottom:-5%}
body.dark .floral{mix-blend-mode:normal;opacity:.2;filter:saturate(.7)}
body.reading .floral{opacity:.08}
@media(max-width:600px){.floral{width:220px;opacity:.17}.floral-left{left:-130px;top:10%}.floral-right{right:-130px;bottom:2%}body.dark .floral{opacity:.14}body.reading .floral{opacity:.06}}

.bible-section{margin:0 0 36px}.bible-section h2{font:500 28px 'Cormorant Garamond',serif;margin:0 0 14px}.bible-card{display:grid;grid-template-columns:32px 1fr 24px;align-items:center;gap:18px;border:1px solid var(--line);border-radius:8px;padding:23px 24px;background:var(--card);transition:background .2s}.bible-card:hover{background:var(--soft)}.bible-cross{font-size:30px;color:var(--violet)}.bible-card strong{display:block;font:500 25px 'Cormorant Garamond',serif}.bible-card [lang=ta]{display:block;font:400 14px/1.8 'Noto Sans Tamil',sans-serif;margin-top:7px}.bible-card small{display:block;color:var(--muted);font-size:12px;margin-top:7px}.bible-source{font-size:13px;color:var(--muted);line-height:1.8;padding:20px 0;border-top:1px solid var(--line)}.bible-source a{text-decoration:underline;text-underline-offset:3px}
.gold-bands{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 10px 20px #0003);animation:bands-float 8s ease-in-out infinite}
.wedding-rings .monogram{align-items:start;padding-top:8px;font-size:80px;text-shadow:0 2px 22px #141b3680}
@keyframes bands-float{0%,100%{transform:translateY(0) rotate(-4deg)}50%{transform:translateY(-9px) rotate(4deg)}}
.motion-paused .gold-bands{animation-play-state:paused!important}
@media(max-width:600px){.wedding-rings .monogram{font-size:70px;padding-top:0}}
@media(prefers-reduced-motion:reduce){.gold-bands{animation:none!important}}
/* Clear, upright double-F seal inspired by the printed wedding cover. */
.wedding-rings .monogram-v2{inset:0 auto auto 50%;translate:-50% 0;display:flex;justify-content:center;align-items:center;width:142px;height:126px;padding:0;letter-spacing:0;font-family:'Cormorant Garamond',Georgia,serif;font-size:86px;font-weight:600;color:#efd5a1;border:1px solid #d4b77e80;border-radius:48% 48% 46% 46%;box-shadow:0 0 0 5px #d8bf8a0c;text-shadow:0 1px 1px #785323,0 0 24px #dfbc7840;animation:none}
.monogram-v2 span:first-child{transform:translate(5px,-9px)}
.monogram-v2 span:last-child{transform:translate(-4px,9px)}
.monogram-v2::after{content:'✦';position:absolute;bottom:-12px;left:calc(50% - 9px);font:18px Georgia,serif;color:#d9bd8a;background:#25243e;padding:0 3px}
@media(max-width:600px){.wedding-rings .monogram-v2{width:122px;height:106px;font-size:72px}}
.service-order{margin-top:32px;border:1px solid var(--line);border-radius:8px;padding:20px 24px;background:var(--card)}.service-order summary{cursor:pointer;font:500 26px 'Cormorant Garamond',serif}.service-order dl{margin:18px 0 0}.service-order dl>div{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-top:1px solid var(--line);font-size:14px;line-height:1.6}.service-order dd{white-space:nowrap;color:var(--muted);margin:0}.service-order small{display:block;color:var(--violet);font-size:12px}.service-order a{text-decoration:underline;text-underline-offset:3px}
