/* Select-a-language premiere screen; invitation language refinements at end. */
:root{--plum:#211429;--cream:#fff1da;--peach:#ff8769;--lime:#dfe8a1;--tamil:'Noto Serif Tamil','Noto Sans Tamil',serif}
*{box-sizing:border-box}html{background:#1d1425}body{margin:0;font-family:'DM Sans',Arial,sans-serif;color:var(--cream);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid #e4ed8b;outline-offset:5px}
body.language-gate{background:radial-gradient(ellipse 64% 50% at 50% 40%,#3a2540 0,#22172c 58%,#170f20 100%);min-height:100vh;min-height:100svh;position:relative;overflow-x:hidden}
.gate-grain{position:fixed;inset:0;z-index:4;pointer-events:none;opacity:.17;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 140 140' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.2'/%3E%3C/svg%3E")}
.ambient-glow{position:fixed;width:500px;height:500px;border-radius:50%;filter:blur(100px);pointer-events:none;opacity:.16;animation:glow-drift 13s ease-in-out infinite alternate}.ambient-glow-left{top:-300px;left:-230px;background:#d96c7e}.ambient-glow-right{bottom:-350px;right:-260px;background:#e4aa75;animation-delay:-5s}
.gate-frame{position:relative;z-index:2;width:min(100%,1760px);min-height:100svh;margin:auto;display:flex;flex-direction:column;padding:28px clamp(24px,5vw,90px) 22px}
.gate-nav,.gate-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;letter-spacing:.13em;font:400 .63rem/1.5 'Space Mono',monospace}.gate-nav{padding-bottom:19px;border-bottom:1px solid #ffffff33}.gate-mark{display:flex;gap:13px;align-items:center;line-height:.95;font:800 .74rem/1 'DM Sans',sans-serif;letter-spacing:-.03em}.gate-mark-symbol{font:400 2.5rem/1 serif;color:var(--peach);animation:gentle-rotate 23s linear infinite}.gate-edition{color:#d8c5d2;opacity:.74}.gate-edition strong{color:var(--cream)}.gate-number{color:#eaaa94}
.gate-main{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:18px 0 25px;text-align:center}.gate-art{width:156px;height:156px;position:relative;margin:8px 0 14px;animation:float-art 6s ease-in-out infinite}.kolam-halo{position:absolute;inset:3%;border-radius:50%;background:#ef8c7030;filter:blur(36px);transform:scale(1.3)}.kolam{position:relative;width:100%;height:100%;color:#f0ac85;filter:drop-shadow(0 0 16px #f6c7a42b);animation:gentle-rotate 40s linear infinite}.kolam-path{stroke-dasharray:630;stroke-dashoffset:630;animation:kolam-draw 3s ease .4s forwards}.art-spark{position:absolute;color:var(--lime);font-size:2rem;animation:sparkle 4s ease-in-out infinite}.art-spark-left{left:-24px;top:16px}.art-spark-right{right:-18px;bottom:10px;animation-delay:-2s}.gate-overline{display:flex;align-items:center;gap:14px;color:var(--lime);font:.62rem/1.3 'Space Mono',monospace;letter-spacing:.18em;margin:6px 0 15px}.overline-dot{width:5px;height:5px;border-radius:50%;background:var(--peach)}.gate-main h1{font:400 clamp(3.7rem,6.2vw,7.5rem)/.95 'Italiana','Times New Roman',serif;letter-spacing:-.045em;margin:0;max-width:1100px;text-wrap:balance}.gate-main h1 em{color:var(--peach);font-style:normal}.gate-tamil-line{margin:18px 0 0;color:#f5d4be;font:400 clamp(.77rem,1vw,1.03rem)/1.8 var(--tamil)}.gate-intro{color:#b7a4b9;margin:12px 0 28px;max-width:480px;font-size:.91rem;line-height:1.65}
.language-options{width:min(100%,835px);display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;text-align:left}.language-card{min-height:204px;padding:19px 23px 17px;background:linear-gradient(145deg,#fba580,#f27869 50%,#e96e69 100%);color:#251527;border:1px solid #ffe1b140;border-radius:6px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden;box-shadow:0 19px 60px #0f061b55;transition:transform .4s cubic-bezier(.2,.8,.2,1),box-shadow .4s,border-color .4s;animation:card-rise .8s backwards}.language-card:before{content:'✳';position:absolute;font-size:12rem;line-height:1;right:-32px;bottom:-75px;color:#ffe9c91a;transition:transform .5s}.language-card:hover,.language-card:focus-visible{transform:translateY(-9px);box-shadow:0 27px 75px #11091990}.language-card:hover:before{transform:rotate(35deg)}.language-card-english{background:linear-gradient(140deg,#eae9c0,#cedcb3 62%,#b1d2b6);animation-delay:.15s}.card-top,.card-bottom{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:10px;font:600 .61rem/1.5 'Space Mono',monospace;letter-spacing:.06em}.card-arrow{display:grid;place-items:center;font:400 1.3rem/1 'DM Sans',sans-serif;width:35px;height:35px;border:1px solid #24132764;border-radius:50%;transition:background .3s,transform .3s}.language-card:hover .card-arrow{background:#241327;color:#fff1da;transform:rotate(45deg)}.card-content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:flex-start;padding:9px 0 12px}.card-title{font:400 clamp(3.7rem,5.4vw,5.8rem)/1 'Italiana','Times New Roman',serif;letter-spacing:-.045em}.card-title.tamil{font:500 clamp(2.8rem,3.7vw,3.95rem)/1.45 var(--tamil);letter-spacing:-.045em}.card-subtitle{font:500 .78rem/1.6 'DM Sans',sans-serif;margin-top:7px}.card-subtitle.tamil{font:500 .75rem/1.7 'Noto Sans Tamil',sans-serif}.card-bottom{border-top:1px solid #24132744;padding-top:13px;font-size:.51rem}.card-tiny-star{font:400 1.25rem/1 serif}
.gate-prompt{color:#bdaabe;font:400 .55rem/1.4 'Space Mono',monospace;letter-spacing:.14em;margin:21px 0 0}.gate-prompt span{color:var(--peach)}.gate-footer{padding-top:17px;border-top:1px solid #ffffff33;color:#cdb9c7}.footer-saying{color:#f3a386}
/* A small language switcher remains available on every invitation section. */
.nav-links a.nav-language{border:1px solid #ffffff5e;border-radius:99px;padding:10px 13px;color:var(--lime);white-space:nowrap;font-size:.69rem}.nav-links a.nav-language:hover{color:var(--plum);background:var(--lime)}
html[lang="ta"] .intro-word{font-family:var(--tamil);font-size:clamp(3.6rem,7.9vw,8.4rem);letter-spacing:-.055em;line-height:1.45}html[lang="ta"] .intro-word-two{margin-top:-20px}html[lang="ta"] .intro-pretitle{font-family:'Noto Sans Tamil',sans-serif;font-size:clamp(.69rem,1vw,.94rem)}html[lang="ta"] .intro-open{font-family:'Noto Sans Tamil',sans-serif;font-size:.86rem}html[lang="ta"] .intro-star{top:-12%}
html[lang="ta"] .hero-headline{font-family:var(--tamil);font-size:clamp(3.7rem,5.4vw,6.5rem);line-height:1.25;letter-spacing:-.07em}html[lang="ta"] .hero-headline em{font-family:var(--tamil);line-height:1.1;font-style:normal;margin-left:2em;font-size:.85em}html[lang="ta"] .hero-headline>span:nth-child(4){font-size:.83em}html[lang="ta"] .hero-subline em{font-family:var(--tamil);font-size:1.2em}html[lang="ta"] .hero-subline{font-family:'Noto Sans Tamil',sans-serif;font-size:1rem;line-height:2}html[lang="ta"] .visual-names .person{font-family:var(--tamil);font-size:clamp(3.2rem,5vw,5.3rem);letter-spacing:-.05em;line-height:1.5}html[lang="ta"] .hero-kicker{font-family:'Noto Sans Tamil',sans-serif;font-size:.62rem}
html[lang="ta"] .story-head h2,html[lang="ta"] .events-heading h2,html[lang="ta"] .countdown h2,html[lang="ta"] .venue-title h2,html[lang="ta"] .rsvp-heading h2,html[lang="ta"] .footer-big{font-family:var(--tamil);font-size:clamp(3.1rem,4.8vw,5.4rem);line-height:1.5;letter-spacing:-.045em}html[lang="ta"] .story-head h2 em,html[lang="ta"] .events-heading h2 em,html[lang="ta"] .countdown h2 em,html[lang="ta"] .venue-title h2 em,html[lang="ta"] .rsvp-heading h2 em,html[lang="ta"] .footer-big em{font-family:var(--tamil);font-size:1em;line-height:inherit}html[lang="ta"] .story-side p{font-family:var(--tamil);font-size:clamp(1.3rem,2.2vw,2.25rem);line-height:2}html[lang="ta"] .intermission p{font-family:var(--tamil);font-size:clamp(3rem,5.5vw,5.5rem);line-height:1.8}html[lang="ta"] .intermission p em{font-family:var(--tamil)}html[lang="ta"] .event-type h3{font-family:var(--tamil);font-size:clamp(2.6rem,4vw,4.2rem);line-height:1.6}html[lang="ta"] .event-type p,html[lang="ta"] .events-heading>p,html[lang="ta"] .rsvp-heading p{font-family:'Noto Sans Tamil',sans-serif;line-height:1.9}html[lang="ta"] .family-member h3{font-family:var(--tamil);font-size:clamp(2rem,3.2vw,3.3rem);line-height:1.65}html[lang="ta"] .family-member p{font-family:'Noto Sans Tamil',sans-serif;line-height:2.1}html[lang="ta"] .venue-details h3{font-family:var(--tamil);font-size:clamp(1.4rem,2vw,2.2rem);line-height:1.9}html[lang="ta"] .venue-details p,html[lang="ta"] .countdown-empty{font-family:'Noto Sans Tamil',sans-serif;line-height:1.9}html[lang="ta"] .ticket-body h3{font-family:var(--tamil);font-size:clamp(1.35rem,2.7vw,2.8rem);line-height:1.8}html[lang="ta"] .ticket-body h3 i{font-family:var(--tamil)}html[lang="ta"] .dialog-overline{font-family:'Noto Sans Tamil',sans-serif}html[lang="ta"] .rsvp-dialog h2{font-family:var(--tamil);font-size:clamp(2rem,4vw,3.7rem)}html[lang="ta"] .rsvp-dialog h2 em{font-family:var(--tamil)}html[lang="ta"] .rsvp-fields label span{font-family:'Noto Sans Tamil',sans-serif;line-height:1.6}html[lang="ta"] .intro-hint,html[lang="ta"] .family-panel-tamil{font-family:'Noto Sans Tamil',sans-serif}
@keyframes gentle-rotate{to{transform:rotate(360deg)}}@keyframes kolam-draw{to{stroke-dashoffset:0}}@keyframes sparkle{50%{opacity:.25;transform:scale(.7) rotate(15deg)}}@keyframes float-art{50%{transform:translateY(-8px)}}@keyframes glow-drift{to{transform:translate(40px,25px) scale(1.15)}}@keyframes card-rise{from{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:780px){.gate-frame{padding:22px 20px 16px}.gate-nav{font-size:.52rem}.gate-edition{display:none}.gate-main{padding:24px 0}.gate-art{height:127px;width:127px;margin:0 0 17px}.gate-overline{font-size:.49rem;gap:9px;letter-spacing:.1em;margin-bottom:15px}.gate-main h1{font-size:clamp(3.5rem,10.5vw,5.4rem)}.gate-tamil-line{font-size:.76rem;margin-top:13px}.gate-intro{font-size:.78rem;margin:12px 0 24px}.language-options{max-width:450px;grid-template-columns:1fr;gap:12px}.language-card{min-height:160px;padding:14px 19px 11px}.card-content{padding:0 0 7px}.card-title{font-size:3.5rem}.card-title.tamil{font-size:2.8rem}.card-subtitle{font-size:.72rem;margin-top:2px}.gate-footer{font-size:.48rem}.footer-saying{display:none}.nav-links{gap:10px}.nav-links a.nav-language{font-size:.55rem;padding:9px 10px}html[lang="ta"] .hero-headline{font-size:clamp(3rem,10vw,5rem)}html[lang="ta"] .hero-headline em{margin-left:1.2em}html[lang="ta"] .visual-names .person{font-size:clamp(2.8rem,9vw,4.6rem)}html[lang="ta"] .story-head h2,html[lang="ta"] .events-heading h2,html[lang="ta"] .countdown h2,html[lang="ta"] .venue-title h2,html[lang="ta"] .rsvp-heading h2,html[lang="ta"] .footer-big{font-size:clamp(2.5rem,8vw,4rem)}html[lang="ta"] .intermission p{font-size:clamp(2.5rem,8vw,4.5rem)}html[lang="ta"] .event-type h3{font-size:clamp(2.5rem,8vw,4rem)}html[lang="ta"] .ticket-body h3{font-size:clamp(1.3rem,5vw,2.4rem)}}
@media(max-width:420px){.gate-frame{padding:17px 17px 15px}.gate-art{width:106px;height:106px;margin-bottom:10px}.gate-main h1{font-size:3.35rem}.gate-overline{font-size:.42rem}.gate-tamil-line{font-size:.72rem}.gate-intro{font-size:.74rem;margin-bottom:17px}.language-card{min-height:145px}.gate-prompt{font-size:.46rem;margin-top:16px}.gate-nav{padding-bottom:12px}.gate-footer{padding-top:12px;font-size:.44rem}.card-title.tamil{font-size:2.55rem}html[lang="ta"] .intro-word{font-size:clamp(2.45rem,9vw,3.9rem)}html[lang="ta"] .hero-headline{font-size:clamp(2.8rem,9.7vw,3.5rem)}html[lang="ta"] .nav{gap:5px}html[lang="ta"] .hero-subline{font-size:.79rem}html[lang="ta"] .nav-links a.nav-language{font-size:.49rem;padding:7px 9px}html[lang="ta"] .brand{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.kolam-path{stroke-dashoffset:0}}

/* Final fit & finish: both choices should be visible on a typical phone screen. */
.gate-title-mobile{display:none}
html[lang="ta"] .mono{font-family:'Noto Sans Tamil',sans-serif;letter-spacing:0;font-size:.73rem;line-height:1.7}
html[lang="ta"] .hero-headline>em{line-height:1.45;margin-bottom:.16em;transform:rotate(-5deg)}
html[lang="ta"] .event-bottom{letter-spacing:0;line-height:1.7}
html[lang="ta"] .calendar-button{font-family:'Noto Sans Tamil',sans-serif;letter-spacing:0;font-size:.65rem;padding:8px}
html[lang="ta"] .event-time .mono{font-size:.65rem;line-height:1.7}
html[lang="ta"] .story-art-text{font-family:var(--tamil);font-size:clamp(4.4rem,16vw,12rem)}
html[lang="ta"] .primary-action{font-family:'Noto Sans Tamil',sans-serif;letter-spacing:0;font-size:.77rem}
html[lang="ta"] .intermission .celebrate-button{font-family:'Noto Sans Tamil',sans-serif}
@media(max-width:780px){
  .gate-title-desktop{display:none}.gate-title-mobile{display:block}
  .gate-main h1{font-size:clamp(3.8rem,11vw,5.4rem)}
  .gate-art{width:112px;height:112px;margin:0 0 8px}
  .gate-overline{margin:4px 0 12px}
  .gate-intro{margin:10px 0 17px}
  .language-card{min-height:147px}
  .card-title{font-size:3.15rem}.card-title.tamil{font-size:2.45rem}
  .card-content{padding:0 0 6px}
  .card-bottom{padding-top:8px}
  .gate-prompt{margin:14px 0 0}
  html[lang="ta"] .mono{font-size:.65rem}
  html[lang="ta"] .hero-headline>em{line-height:1.42;margin-bottom:.2em;margin-left:1.7em}
  html[lang="ta"] .event-bottom{font-size:.58rem;flex-wrap:wrap}
  html[lang="ta"] .event-time .mono{font-size:.61rem}
}
@media(max-width:420px){
  .gate-main{padding:14px 0 12px}
  .gate-art{width:91px;height:91px;margin:0 0 4px}
  .gate-main h1{font-size:3.5rem}
  .gate-tamil-line{margin-top:7px}
  .gate-intro{margin:6px 0 13px}
  .language-options{gap:10px}
  .language-card{min-height:140px}
  .gate-prompt{margin-top:10px}
  html[lang="ta"] .hero-headline>em{margin-bottom:.26em}
}

/* Viewport-fit entrance: no scrolling required to reach either language on laptops.
   These rules intentionally affect only .language-gate, never the invitation itself. */
@media (min-width:781px) and (max-height:1020px) {
  .language-gate .gate-frame {padding-top:16px;padding-bottom:13px}
  .language-gate .gate-nav {padding-bottom:11px}
  .language-gate .gate-main {padding:9px 0 10px}
  .language-gate .gate-art {width:104px;height:104px;margin:0 0 6px}
  .language-gate .gate-overline {margin:2px 0 9px}
  .language-gate .gate-main h1 {font-size:clamp(3.25rem,4.8vw,5.2rem);line-height:.94}
  .language-gate .gate-tamil-line {margin-top:8px;line-height:1.45}
  .language-gate .gate-intro {margin:7px 0 13px;line-height:1.45}
  .language-gate .language-options {max-width:780px;gap:13px}
  .language-gate .language-card {min-height:154px;padding:12px 18px 10px}
  .language-gate .card-content {padding:2px 0 5px}
  .language-gate .card-title {font-size:clamp(3rem,4.4vw,4rem)}
  .language-gate .card-title.tamil {font-size:clamp(2.25rem,3.1vw,3rem);line-height:1.3}
  .language-gate .card-subtitle {margin-top:1px}
  .language-gate .card-bottom {padding-top:7px}
  .language-gate .gate-prompt {margin-top:12px}
  .language-gate .gate-footer {padding-top:11px}
}
@media (min-width:781px) and (max-height:740px) {
  .language-gate .gate-frame {padding-top:10px;padding-bottom:9px}
  .language-gate .gate-nav {padding-bottom:7px}
  .language-gate .gate-mark-symbol {font-size:1.9rem}
  .language-gate .gate-main {padding:5px 0}
  .language-gate .gate-art {width:67px;height:67px;margin-bottom:1px}
  .language-gate .art-spark {font-size:1rem}
  .language-gate .gate-overline {margin:2px 0 5px}
  .language-gate .gate-main h1 {font-size:clamp(2.85rem,4vw,4rem)}
  .language-gate .gate-tamil-line {margin-top:5px;font-size:.77rem}
  .language-gate .gate-intro {margin:4px 0 8px;font-size:.78rem;max-width:680px}
  .language-gate .language-card {min-height:130px;padding:9px 15px 8px}
  .language-gate .card-top .card-arrow {width:27px;height:27px;font-size:1rem}
  .language-gate .card-content {padding:0 0 3px}
  .language-gate .card-title {font-size:clamp(2.7rem,3.6vw,3.4rem)}
  .language-gate .card-title.tamil {font-size:clamp(2rem,2.8vw,2.45rem)}
  .language-gate .card-subtitle {font-size:.7rem}
  .language-gate .card-bottom {padding-top:5px}
  .language-gate .gate-prompt {margin-top:7px}
  .language-gate .gate-footer {padding-top:7px}
}
@media (min-width:781px) and (max-height:580px) {
  .language-gate .gate-art,.language-gate .gate-intro {display:none}
  .language-gate .gate-main h1 {font-size:clamp(2.65rem,3.5vw,3.6rem)}
  .language-gate .gate-tamil-line {margin-bottom:6px}
  .language-gate .gate-prompt {margin-top:5px}
}
/* Compact phones: concise two-line title plus the choices above the fold. */
@media (max-width:780px) {
  .language-gate .gate-frame {padding:14px 17px 12px}
  .language-gate .gate-nav {padding-bottom:8px}
  .language-gate .gate-mark-symbol {font-size:1.85rem}
  .language-gate .gate-main {padding:7px 0}
  .language-gate .gate-art {width:clamp(52px,9svh,85px);height:clamp(52px,9svh,85px);margin:0 0 4px}
  .language-gate .gate-overline {margin:2px 0 8px;font-size:.42rem}
  .language-gate .gate-main h1 {font-size:clamp(2.7rem,10.5vw,3.5rem);line-height:.97}
  .language-gate .gate-tamil-line {margin:8px 0 0;font-size:.69rem;line-height:1.5}
  .language-gate .gate-intro {margin:7px 0 12px;font-size:.72rem;line-height:1.45;max-width:370px}
  .language-gate .language-options {gap:9px}
  .language-gate .language-card {min-height:129px;padding:11px 15px 9px}
  .language-gate .card-top,.language-gate .card-bottom {font-size:.51rem}
  .language-gate .card-arrow {width:28px;height:28px;font-size:1.1rem}
  .language-gate .card-content {padding:0 0 4px}
  .language-gate .card-title {font-size:2.65rem}
  .language-gate .card-title.tamil {font-size:2.3rem;line-height:1.3}
  .language-gate .card-subtitle {font-size:.69rem;line-height:1.4;margin-top:2px}
  .language-gate .card-bottom {padding-top:6px;font-size:.47rem}
  .language-gate .gate-prompt {margin:9px 0 0}
  .language-gate .gate-footer {padding-top:8px}
}
@media (min-width:600px) and (max-width:780px) {
  .language-gate .language-options {grid-template-columns:repeat(2,minmax(0,1fr));max-width:740px}
}
@media (max-width:780px) and (max-height:700px) {
  .language-gate .gate-frame {padding-top:9px;padding-bottom:8px}
  .language-gate .gate-nav {padding-bottom:6px}
  .language-gate .gate-main {padding:3px 0}
  .language-gate .gate-art {display:none}
  .language-gate .gate-overline {margin:3px 0 6px}
  .language-gate .gate-main h1 {font-size:clamp(2.45rem,9.7vw,3.2rem)}
  .language-gate .gate-tamil-line {margin-top:4px}
  .language-gate .gate-intro {margin:4px 0 8px}
  .language-gate .language-card {min-height:114px;padding:8px 13px 7px}
  .language-gate .card-title {font-size:2.4rem}
  .language-gate .card-title.tamil {font-size:2.05rem}
  .language-gate .card-bottom {padding-top:4px}
  .language-gate .gate-prompt {margin-top:6px}
  .language-gate .gate-footer {padding-top:5px}
}
@media (max-width:780px) and (max-height:530px) {
  .language-gate .gate-intro,.language-gate .gate-footer,.language-gate .gate-prompt {display:none}
  .language-gate .gate-main h1 {font-size:2.3rem}
  .language-gate .language-options {margin-top:9px}
}
