@font-face{font-family:'Tiro Devanagari Hindi';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/tiro-devanagari-hindi-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Tiro Devanagari Hindi';font-style:italic;font-weight:400;font-display:swap;src:url('/fonts/tiro-devanagari-hindi-latin-400-italic.woff2') format('woff2')}
@font-face{font-family:'Mukta';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/mukta-latin-400-normal.woff2') format('woff2')}
@font-face{font-family:'Mukta';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/mukta-latin-600-normal.woff2') format('woff2')}
@font-face{font-family:'Mukta';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/mukta-latin-700-normal.woff2') format('woff2')}
:root{--w0:#2a1452;--w1:#0d3a44;--w2:#4a0f2e;--w3:#13285a;--tx:#fff8ee;--tx-2:#efdccd;--edge:rgba(255,248,238,.2);--edge-2:rgba(255,248,238,.34);--gold:#ffd23f;--s1:8px;--s2:12px;--s3:16px;--s4:24px;--s5:32px;--pad:clamp(44px,4.8vw,70px);--ease:cubic-bezier(.22,.7,.2,1);--kumkum:#6d1214;--kumkum-deep:#4f0d0f;--khadi:#ece5da;--khadi-2:#e2d8c9;--ink:#3b120f;--ink-2:#6e4a44;--on-kumkum:#ecd3c6;--rule-red:rgba(236,229,218,.22);--rule-khadi:#d4c8b8;--marigold:#e3922f;--brass:#c4974a;--night:var(--kumkum-deep);--night-2:#5c1012;--saffron:var(--marigold);--vermilion:var(--kumkum);--cream:var(--khadi);--muted:var(--on-kumkum);--line:var(--rule-red);--emerald:#1FA37A;--sapphire:#3D7BFF;--lantern:#D7263D;--ac:var(--marigold);--focus-ring:var(--khadi)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{background:var(--w0);color:var(--tx);font:400 16px/1.55 'Mukta',sans-serif;overflow-x:hidden;position:relative}
a{color:inherit}
h1,h2,h3,.serif{font-family:'Tiro Devanagari Hindi',serif;font-weight:400;margin:0;text-wrap:balance}
h1{font-size:clamp(42px,6.4vw,80px);line-height:.98;letter-spacing:-.01em}
h2{font-size:clamp(32px,4.6vw,56px);line-height:1.04}
em{font-style:italic;color:inherit}
.mono{font:600 12.5px/1.45 'Mukta',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--tx-2)}
.glass{background:rgba(79,13,15,.82);border:1px solid var(--rule-red);border-radius:6px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;background:var(--tx);color:var(--ink);font:700 15px 'Mukta',sans-serif;padding:0 22px;border-radius:999px;border:0;cursor:pointer;transition:transform .25s var(--ease),background .25s;text-decoration:none}
.btn:hover{transform:translateY(-2px);background:#fff}
.btn:active{transform:translateY(0)}
.btn.ghost{background:transparent;color:var(--tx);border:1px solid var(--edge-2)}
.btn.ghost:hover{background:rgba(255,248,238,.08)}
.btn.sm{min-height:40px;padding:0 16px;font-size:13.5px}
.btn .arr{transition:transform .25s var(--ease)}
.btn:hover .arr{transform:translateX(3px)}
.btn[disabled],[aria-disabled=true]{opacity:.6;cursor:not-allowed}
:focus-visible{outline:2px solid var(--focus-ring,var(--khadi));outline-offset:3px}

.rv{opacity:0;translate:0 28px;transition:opacity .9s ease,translate .9s cubic-bezier(.2,.7,.2,1)}
.rv.in{opacity:1;translate:0 0}
.diyas{position:absolute;left:0;right:0;bottom:10px;display:flex;justify-content:space-around;padding:0 2.5vw}
.diya{position:relative;display:block;width:56px}
.diya svg{position:relative;display:block;width:100%;overflow:visible}
.diya .fl,.diya .fl2{transform-box:fill-box;transform-origin:50% 100%;animation:flick .55s ease-in-out var(--d) infinite alternate}
@keyframes flick{0%{transform:scale(1,1) skewX(0)}50%{transform:scale(.9,1.1) skewX(4deg)}100%{transform:scale(1.06,.92) skewX(-4deg)}}
footer{background:var(--w3);color:var(--tx);padding:var(--s5) max(16px,6vw) 40px}
footer .wrap{position:relative;z-index:2}
footer .wrap.foot{max-width:780px;display:flex;flex-wrap:wrap;gap:var(--s3) var(--s5);justify-content:space-between;align-items:center;border-top:1px solid var(--edge);padding-top:var(--s4)}
footer p{font-size:14px;color:var(--tx-2);margin:0;max-width:52ch}
footer nav{display:flex;gap:var(--s4);font:600 14px 'Mukta',sans-serif;color:var(--tx-2)}
footer a{color:var(--tx-2);text-decoration:none}
footer nav a{padding-block:8.5px;margin-block:-8.5px}
footer .wm{padding-block:8px;margin-block:-8px}
footer a:hover{color:var(--tx)}
footer .note,footer .mono{font-size:13px;color:var(--tx-2)}
.skip{position:absolute;left:-999px;top:8px;z-index:100;background:var(--khadi);color:var(--ink);padding:8px 12px;border-radius:4px}
.skip:focus{left:8px}
.nav{position:absolute;top:0;left:0;right:0;z-index:4;display:flex;align-items:center;justify-content:space-between;gap:var(--s3);padding:20px max(16px,6vw);color:var(--tx)}
.wm{display:flex;align-items:center;gap:10px;font:400 24px/1 'Tiro Devanagari Hindi',serif;text-decoration:none;min-width:8ch;color:var(--tx);padding-block:5px;margin-block:-5px}
.wm i{color:inherit;font-style:italic}
.wm-mark{display:block;flex:0 0 auto;color:var(--tx)}
.nav-right{display:flex;align-items:center;gap:var(--s4)}
.nav-l{color:var(--tx-2);font:600 14px 'Mukta',sans-serif;text-decoration:none;padding-block:8.5px;margin-block:-8.5px}
.nav-l:hover{color:var(--tx)}
.greet{color:var(--tx)}
[hidden]{display:none!important}

/* Planet worlds section bands */
main>section[data-world]{position:relative;background:var(--bg);color:var(--tx);padding:var(--pad) max(16px,6vw);display:grid}
main>section[data-world]::before{content:"";position:absolute;left:0;right:0;top:0;height:160px;background:linear-gradient(var(--prev,var(--bg)),var(--bg));pointer-events:none}
[data-world]>.wrap{position:relative;z-index:2}
[data-world="0"]{--bg:var(--w0)}[data-world="1"]{--bg:var(--w1);--prev:var(--w0)}[data-world="2"]{--bg:var(--w2);--prev:var(--w1)}[data-world="3"]{--bg:var(--w3);--prev:var(--w2)}
#top{padding-top:clamp(118px,12vw,168px)}
.wrap{max-width:640px;display:grid;gap:var(--s3);min-width:0}
.wrap.wide{max-width:780px}
.head{display:grid;gap:var(--s1)}
[data-world] > .wrap > p{margin:0;color:var(--tx-2);max-width:52ch}
[data-world] .head .mono{color:var(--tx-2)}

/* 3D planet background & posters */
#gl,#poster{position:fixed;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;-webkit-mask-image:linear-gradient(transparent 84px,#000 132px);mask-image:linear-gradient(transparent 84px,#000 132px)}
#poster{background:no-repeat right -51.4vh top calc(48vh - 50vh)/100vh auto;transition:opacity .4s}
#poster[data-w="0"]{background-image:url('/img/world-0.webp')}#poster[data-w="1"]{background-image:url('/img/world-1.webp')}#poster[data-w="2"]{background-image:url('/img/world-2.webp')}#poster[data-w="3"]{background-image:url('/img/world-3.webp')}
#poster.off{opacity:0}

/* hero */
.start{display:flex;flex-wrap:wrap;gap:var(--s1);align-items:stretch}
.field{border:1.5px solid var(--edge-2);border-radius:14px;padding:6px 12px 4px;display:grid;background:rgba(18,8,40,.55);transition:border-color .2s}
.field:focus-within{border-color:var(--gold)}
.field label{font:600 12px 'Mukta',sans-serif;letter-spacing:.06em;text-transform:uppercase;color:var(--tx-2)}
.field input,.field select{background:none;border:0;outline:0;font:400 19px 'Mukta',sans-serif;color:var(--tx);padding:0}
.field input{width:4ch}
.field.y input{width:5ch}
.field select option{color:#22113d}
.start .btn{min-height:58px;padding:0 24px}
.err{min-height:1.4em;margin-top:6px;color:#FFB4B9;font-size:14px}
#hero-start .err{color:#ffb4a8;font-size:14px;flex:1 1 100%}
.toast-err{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);z-index:9999;background:var(--night-2);color:#FFB4B9;border:1px solid #FFB4B9;padding:12px 20px;border-radius:8px;box-shadow:0 4px 20px rgba(0,0,0,.5);font-size:14px;max-width:90vw}
.lnk{color:var(--tx);font:600 15px 'Mukta',sans-serif;text-decoration:none;justify-self:start;min-height:40px;display:inline-flex;align-items:center}
.lnk-text{text-decoration:underline;text-underline-offset:4px}
.lnk .arr{margin-left:4px}
.trust{display:flex;flex-wrap:wrap;gap:6px 18px;color:var(--tx-2);font-size:14px;list-style:none;margin:0;padding:0}
.trust li{display:flex;align-items:center;gap:7px}
.trust li::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--gold)}
.tonight{display:inline-flex;gap:10px;align-items:center;color:var(--tx-2);font-size:14px;line-height:1.35;border:1px solid var(--edge);border-radius:999px;padding:6px 16px 6px 8px;justify-self:start;background:rgba(18,8,40,.45)}
.tonight b{color:var(--tx)}
.tonight #moonlbl{font-size:12px;letter-spacing:.01em;text-wrap:balance}
@keyframes up{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* festival */
.fest{position:relative}
.tabs{display:flex;flex-wrap:wrap;gap:var(--s1)}
.tabs button{display:inline-flex;align-items:center;min-height:40px;border:1px solid var(--edge);border-radius:999px;padding:0 15px;font:600 14px 'Mukta',sans-serif;background:rgba(4,24,30,.5);cursor:pointer;transition:background .2s,color .2s,border-color .2s;color:var(--tx)}
.tabs button:hover{border-color:var(--edge-2)}
.tabs button[aria-selected="true"]{background:var(--tx);color:var(--w1);border-color:var(--tx)}
#fpicker{display:grid;gap:16px;margin-top:8px;list-style:none}
#fpicker .fp-group{display:grid;gap:6px;min-width:0}
#fpicker label{display:block;margin:0}
#fpicker select,#fpicker input{width:100%;min-height:40px;border:1px solid var(--edge-2);border-radius:10px;padding:6px 12px;font:600 14px 'Mukta',sans-serif;background:rgba(4,24,30,.6);color:var(--tx);text-align:left;cursor:pointer}
#fpicker option{background:var(--w1)}
#fp-status:empty{display:none}
#fp-results{list-style:none;max-height:320px;overflow-y:auto;border:1px solid var(--edge-2);border-radius:10px;background:rgba(4,24,30,.6)}
#fp-results li+li{border-top:1px solid var(--edge)}
#fp-results button{width:100%;min-height:44px;border:0;border-radius:0;padding:0 12px;font:600 14px 'Mukta',sans-serif;background:transparent;color:var(--tx);text-align:left;cursor:pointer}
#fp-results button:hover{background:rgba(255,248,238,.08)}
#fp-locate-note{font:400 12px/1.4 'Mukta',sans-serif;text-transform:none;letter-spacing:normal;color:var(--tx-2);margin:4px 0 0}
.fcard{background:rgba(5,28,34,.8);border:1px solid var(--edge);border-radius:22px;padding:var(--s4);display:grid;gap:var(--s2);max-width:560px;color:var(--tx)}
.fcard.sw>:not(.fscene){animation:up .5s var(--ease) both}
.fcard.sw>:nth-child(2){animation-delay:.04s}
.fcard.sw>:nth-child(3){animation-delay:.08s}
.fcard.sw>:nth-child(4){animation-delay:.12s}
.fcard.sw>:nth-child(5){animation-delay:.16s}
.fcard.sw>:nth-child(6){animation-delay:.2s}
.fcard.sw>:nth-child(7){animation-delay:.24s}
.tag#ftag,.fcard .tag{font:700 12px 'Mukta',sans-serif;letter-spacing:.06em;text-transform:uppercase;padding:4px 10px;border-radius:999px;background:#5ee6a8;color:#06302a;border:0;display:inline-block}
.tag#ftag.soon,.fcard .tag.soon{background:#ff8a4c;color:#2a1000}
.fcard h3{font-size:clamp(38px,4.6vw,50px);line-height:1;color:var(--tx)}
.fcard .dt{color:var(--tx);font-size:16px;margin:0}
.city{margin:0 0 8px;font-size:12.5px;line-height:1.45;letter-spacing:normal;text-transform:none;color:var(--tx-2)}
#fplace{justify-self:start;width:auto;min-height:40px}
.count{display:flex;align-items:baseline;gap:10px}
.count b{font:400 clamp(52px,6vw,68px)/1 'Tiro Devanagari Hindi',serif;color:var(--gold);font-variant-numeric:tabular-nums}
.count span,.count .mono{font:600 12px 'Mukta',sans-serif;letter-spacing:.08em;text-transform:uppercase;color:var(--tx-2)}
.fcard p.l{color:var(--tx-2);margin:0 0 4px;font-size:14.5px}
.fcard .btn{justify-self:stretch;width:100%}
.fn{margin-top:6px;font-size:12px;letter-spacing:normal;text-transform:none;color:var(--tx-2);opacity:.8}

/* scene panel */
.fscene{position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:#082a31;margin:calc(var(--s4) * -1) calc(var(--s4) * -1) var(--s1);border-radius:22px 22px 0 0}
.fscene .world{position:absolute;inset:0;opacity:0;transition:opacity .6s ease;pointer-events:none;overflow:hidden;background:#082a31}
.fscene .world.on{opacity:1}
.fscene .world:not(.on) *,.fscene .world:not(.on) *::before,.fscene .world:not(.on) *::after{animation-play-state:paused!important}
.fscene .world canvas,.fscene .world>svg.fill{position:absolute;inset:0;width:100%;height:100%}

/* scene objects */
#w-diwali,#w-navratri,#w-holi,#w-eid-al-fitr,#w-hanukkah,#w-lunar-new-year,#w-christian,#w-vaisakhi,#w-vesak,#w-mahavir-jayanti{background:#082a31}
.rangoli{position:absolute;left:50%;top:50%;height:80%;max-width:80%;aspect-ratio:1;translate:-50% -50%;opacity:.15;animation:rot 160s linear infinite}
@keyframes rot{to{rotate:360deg}}
.rangoli path,.rangoli circle{fill:none;stroke:#fff8ee;stroke-width:.8}
.blob{position:absolute;opacity:.35;max-height:80%;animation:drift var(--t) ease-in-out infinite alternate}
@keyframes drift{from{translate:-4% -3%;scale:.88}to{translate:4% 3%;scale:1.12}}
.cres{position:absolute;left:50%;top:50%;translate:-50% -50%;height:75%;max-width:80%;width:auto;aspect-ratio:1;animation:breathe 6s ease-in-out infinite alternate}
@keyframes breathe{to{scale:1.06;opacity:.85}}
.hang{position:absolute;top:0;transform-origin:50% 0;animation:sway var(--t) ease-in-out var(--dl) infinite alternate}
@keyframes sway{from{rotate:-5deg}to{rotate:5deg}}
.hang i{display:block;width:1px;height:calc(var(--len) * .32);margin:0 auto;background:rgba(255,248,238,.45)}
.hang svg{display:block;width:calc(34px * var(--sc))}
.lny-hang{position:absolute;top:4px;transform-origin:50% 0;translate:-50% 0;animation:sway var(--t) ease-in-out var(--dl) infinite alternate}
.lny-hang i{display:block;width:1.2px;height:calc(var(--len) * .32);margin:0 auto;background:rgba(255,248,238,.45)}
.lny-hang svg{display:block;width:calc(var(--w) * .38);max-height:44px}
.pn{opacity:.2;animation:pane 3s ease-in-out infinite alternate}
@keyframes pane{from{opacity:.2}to{opacity:.35}}
#menorah{position:absolute;left:50%;top:50%;translate:-50% -50%;height:75%;max-width:80%;width:auto}
#menorah .f{opacity:0;transform-box:fill-box;transform-origin:50% 100%;transform:scale(.3);transition:opacity .5s,transform .5s}
#menorah .f.lit{opacity:1;transform:scale(1);animation:flick .45s ease-in-out infinite alternate}

/* reports */
.rep{position:relative;color:var(--tx)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:var(--s2)}
.card{background:rgba(38,6,24,.8);border:1px solid var(--edge);border-radius:18px;padding:var(--s3);display:flex;flex-direction:column;gap:8px;color:var(--tx);transition:transform .3s var(--ease),border-color .3s}
.card:hover{transform:translateY(-4px);border-color:var(--edge-2)}
.card h3{font:400 22px/1.15 'Tiro Devanagari Hindi',serif;color:var(--tx);margin:0}
.card p{color:var(--tx-2);font-size:14px;line-height:1.5;margin:0}
.card .foot{margin-top:auto;padding-top:var(--s2);display:flex;align-items:center;justify-content:space-between;gap:var(--s1)}
.card .price{font:700 18px/1 'Mukta',sans-serif;color:var(--tx)}
.card .btn:not(.ghost){background:var(--tx);color:var(--w2)}
.card .btn:not(.ghost):hover{background:#fff}

.how{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s2);color:var(--tx-2);font-size:14px;margin:0;padding:0;list-style:none}
.how li{display:flex;align-items:center;gap:8px}
.how b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;border:1px solid var(--gold);color:var(--gold);font-size:12px;font-weight:700}
.how i{width:34px;height:0;border-top:1.5px dashed var(--edge-2)}

.trust2{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--s3);color:var(--tx-2);font-size:14px}
.trust2 .mono{color:var(--tx-2);margin:0 0 4px}
.trust2 p{color:var(--tx-2);line-height:1.5;margin:0}

/* illustrations */
.ill{flex:none;height:110px;width:100%;position:relative;display:grid;place-items:center;margin-bottom:var(--s1)}
.ill svg{max-height:100%;max-width:100%}
.cal{position:relative;width:92px;height:100px;perspective:420px;background:#fff8ee;border:1px solid var(--edge);border-radius:6px;color:#4a0f2e;box-shadow:none}
.cband{height:24px;background:#ff5d8f;border-radius:6px 6px 0 0}
.cpg{position:absolute;left:0;right:0;top:24px;bottom:0;display:grid;place-items:center;font:400 38px 'Tiro Devanagari Hindi',serif;background:#fff8ee;color:#4a0f2e;border-radius:0 0 6px 6px}
.cpg.sheet{transform-origin:50% 0;backface-visibility:hidden;animation:flip 4.6s ease-in-out infinite}
@keyframes flip{0%,30%{transform:rotateX(0);opacity:1}62%{transform:rotateX(-165deg);opacity:1}68%{opacity:0}95%{transform:rotateX(0);opacity:0}100%{transform:rotateX(0);opacity:1}}
.fork{position:relative;width:140px;height:110px}
.fork svg{position:absolute;inset:0}
.fork path{fill:none;stroke:#ff5d8f;stroke-width:2px;stroke-linecap:round;stroke-dasharray:2 7}
.fork i{position:absolute;left:0;top:0;width:12px;height:12px;border-radius:50%;offset-rotate:0deg;opacity:0;box-shadow:none;animation:go 8s ease-in-out infinite}
.fork .a{background:#ff5d8f;offset-path:path('M70 106V72C70 44 108 46 108 10')}
.fork .b{background:var(--marigold);offset-path:path('M70 106V72C70 44 32 46 32 10');animation-delay:-4s}
@keyframes go{0%{offset-distance:0;opacity:0}8%{opacity:1}45%{offset-distance:100%;opacity:1}55%{offset-distance:100%;opacity:0}100%{offset-distance:100%;opacity:0}}
.rock{transform-origin:100px 8px;animation:rock 3.4s ease-in-out infinite alternate}
@keyframes rock{from{rotate:-12deg}to{rotate:12deg}}
.tw{animation:pane 2.2s ease-in-out var(--d,0s) infinite alternate}

/* daily card */
.daily{position:relative;color:var(--tx)}
#daily .card{background:rgba(9,22,58,.84);max-width:640px;padding:var(--s4);gap:var(--s2)}
#daily .card h2{font-size:clamp(30px,3.4vw,44px);line-height:1.1;color:var(--tx)}
#daily .card p{max-width:52ch;color:var(--tx-2);margin:0}
.buy{display:flex;align-items:center;justify-content:flex-start;gap:12px;flex-wrap:wrap}

@media (max-width:860px){.nav-l{display:none}}
@media(min-width:700px){#fest-tabs{width:calc(100vw - max(32px,12vw))}}
@media(min-width:700px) and (max-width:1100px){
  #top .wrap{max-width:58vw}
  #top .start{max-width:250px}
  #top .field{padding:6px 8px 4px}
  #fest-tabs{display:grid;grid-template-columns:repeat(4,max-content);justify-content:start}
}
@media(max-width:759px){
  .nav{padding:16px 5vw}.wm{font-size:24px}
  .greet{position:absolute;top:100%;left:0;right:0;margin:6px 0 0;padding:0 5vw;text-align:center;font-size:12px;line-height:1.35;white-space:normal}
  .greet-name,.greet-meta{display:block}
  .greet-sep{display:none}
}
@media (max-width:720px){
  :root{--pad:40px}
  main>section[data-world]{padding-top:72px}
  #top{padding-top:126px}
  .start .btn{flex:1 1 100%}
  .fcard,#daily .card{padding:var(--s3)}
  .how i{display:none}
  .fscene{margin:calc(var(--s3) * -1) calc(var(--s3) * -1) var(--s1);border-radius:18px 18px 0 0}
  #poster{background-size:58.06vh auto;background-position:right -38.5vh top -9.1vh}
  #hero-reading{min-height:44px}
  .card .foot .btn{min-height:44px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .btn:hover{transform:none!important}
  .rv{opacity:1;translate:none}
  #menorah .f{opacity:1;transform:none}
  .cpg.sheet{display:none}
}

/* static pages (privacy, thanks) */
.prose{max-width:760px;margin:0 auto;padding:120px 6vw 40px}
.prose h1{font-size:clamp(38px,5vw,58px);line-height:1.05;margin-bottom:6px;color:var(--khadi)}
.prose h2{font-size:26px;line-height:1.2;margin:34px 0 10px;color:var(--khadi)}
.prose p{margin:0 0 14px;max-width:64ch;color:var(--on-kumkum)}
.prose ul{margin:0 0 14px;padding-left:22px;max-width:64ch;color:var(--on-kumkum)}
.prose li{margin-bottom:8px}
.prose a:not(.btn){color:var(--khadi);text-decoration:underline}
.prose .btn{margin-top:8px}
