/* Sanatan Dharma portal — enhancement layer (auth UI + dynamic visuals) */

/* ---------- account pill in the top nav ---------- */
.sd-account-slot{display:inline-flex;align-items:center;margin-left:14px}
.sd-account-signin,.sd-account-signout{
  font:inherit;cursor:pointer;background:#E08A2C;color:#241f1a;border:none;
  padding:7px 14px;border-radius:999px;font-weight:600;font-size:.82rem;letter-spacing:.02em;
}
.sd-account-pill{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:#F6EFE2}
.sd-account-signout{background:transparent;border:1px solid rgba(246,239,226,.4);color:#F6EFE2;padding:4px 10px}

/* ---------- modal ---------- */
.sd-auth-overlay{
  position:fixed;inset:0;background:rgba(20,17,14,.62);display:none;align-items:center;justify-content:center;
  z-index:9999;padding:20px;backdrop-filter:blur(2px);
}
.sd-auth-overlay.open{display:flex}
body.sd-modal-open{overflow:hidden}
.sd-auth-modal{
  background:#FFFDF8;border-radius:14px;max-width:420px;width:100%;padding:28px 26px 24px;position:relative;
  box-shadow:0 30px 70px rgba(0,0,0,.35);max-height:90vh;overflow-y:auto;
}
.sd-auth-close{position:absolute;top:10px;right:14px;background:none;border:none;font-size:1.6rem;line-height:1;cursor:pointer;color:#6b6153}
.sd-auth-tabs{display:flex;gap:6px;margin-bottom:16px}
.sd-auth-tab{flex:1;padding:9px 10px;border-radius:8px;border:1px solid rgba(39,37,58,.16);background:#f4ecdd;cursor:pointer;font-weight:600;font-size:.86rem;color:#4a4436}
.sd-auth-tab.active{background:#35335A;color:#fff;border-color:#35335A}
.sd-auth-body h3{margin:0 0 6px;font-family:var(--display,serif);font-size:1.3rem;color:#241f1a}
.sd-auth-lede{margin:0 0 16px;font-size:.88rem;color:#6b6153;line-height:1.5}
.sd-auth-body form{display:flex;flex-direction:column;gap:12px}
.sd-auth-body label{display:flex;flex-direction:column;gap:5px;font-size:.82rem;font-weight:600;color:#4a4436}
.sd-auth-body input{
  font:inherit;padding:9px 11px;border-radius:8px;border:1px solid rgba(39,37,58,.22);font-size:.92rem;background:#fff;
}
.sd-auth-submit{margin-top:4px;width:100%;justify-content:center}
.sd-auth-alt{margin:14px 0 0;font-size:.82rem;text-align:center}
.sd-auth-alt a{color:#B96A17}
.sd-auth-notice{font-size:.82rem;padding:8px 10px;border-radius:8px;margin:-2px 0 2px}
.sd-auth-notice.info{background:#eef1f8;color:#35335A}
.sd-auth-notice.success{background:#e8f3ea;color:#256b3a}
.sd-auth-notice.error{background:#fbeaea;color:#8c2f39}

/* ---------- Leaflet sacred-geography map ---------- */
.sd-leaflet-shell{border:1px solid rgba(39,37,58,.14);border-radius:12px;overflow:hidden;background:#fbf7ef}
#sd-leaflet-map{height:480px;width:100%;background:#eee6d3}
/* category chooser — replaces the old always-on legend. One category is shown on the map at a time. */
.sd-leaflet-legend{display:flex;flex-wrap:wrap;gap:8px;padding:12px 14px;font-size:.82rem;border-top:1px solid rgba(39,37,58,.1);background:#fbf7ef}
.sd-leaflet-legend button{
  display:inline-flex;align-items:center;gap:7px;font:inherit;cursor:pointer;
  border:1px solid rgba(39,37,58,.18);background:#fff;color:#4a4436;
  padding:6px 12px;border-radius:999px;font-size:.8rem;font-weight:600;line-height:1.2;
}
.sd-leaflet-legend button i{width:10px;height:10px;border-radius:50%;display:inline-block;flex:none}
.sd-leaflet-legend button.active{background:#35335A;border-color:#35335A;color:#fff}
.sd-leaflet-legend button:hover{border-color:#B96A17}
.sd-leaflet-empty-note{padding:9px 14px 3px;font-size:.78rem;color:#6b6153;background:#fbf7ef}
.sd-leaflet-popup h4{margin:0 0 4px;font-size:.95rem;font-family:var(--display,serif)}
.sd-leaflet-popup p{margin:0 0 8px;font-size:.82rem;line-height:1.4;color:#4a4436}
.sd-leaflet-popup a{font-size:.8rem;font-weight:600;color:#B96A17}
.leaflet-popup-content-wrapper{border-radius:10px}
.sd-leaflet-label{
  background:#fff;border:1px solid rgba(39,37,58,.2);border-radius:5px;padding:1px 7px;
  font-size:.74rem;font-weight:600;color:#241f1a;box-shadow:0 1px 3px rgba(0,0,0,.15);
}
.sd-leaflet-label::before{display:none}
.sd-country-label{background:transparent;border:0;box-shadow:none;pointer-events:none}
.sd-country-label span{
  display:block;white-space:nowrap;font:600 .78rem/1 var(--ui,Arial,sans-serif);
  color:#5b5662;text-shadow:0 1px 0 #fffdf7,1px 0 0 #fffdf7,-1px 0 0 #fffdf7,0 -1px 0 #fffdf7;
  transform:translate(-50%,-50%);letter-spacing:.01em;
}

/* ---------- Label-free basemap fallback ---------- */
.sd-map-fallback{position:relative;background:#f8f3e8}
.sd-map-fallback svg{display:block;width:100%;height:auto;min-height:420px}
.sd-map-fallback-note{margin:0;padding:10px 14px;background:#fbf7ef;border-top:1px solid rgba(39,37,58,.1);font:.78rem/1.45 var(--ui);color:#6b6153}


/* Dynamic front-page evolution word cloud */
.evolution-cloud-section{background:linear-gradient(180deg,#fbf7ef 0%,#f4ecdd 100%)}
.evolution-cloud-head{align-items:flex-end;gap:28px}
.evolution-cloud-head>div:first-child{max-width:760px}
.evolution-era{font-family:var(--display);font-weight:700;font-size:1.15rem;color:#6e4b22;border:1px solid rgba(176,141,62,.35);background:rgba(255,255,255,.7);padding:9px 14px;border-radius:999px;white-space:nowrap}
.evolution-cloud-card{border:1px solid rgba(91,83,96,.14);background:rgba(255,255,255,.76);border-radius:20px;padding:28px;box-shadow:0 16px 45px rgba(59,43,25,.06)}
.evolution-wordcloud{min-height:330px;display:flex;align-content:center;align-items:center;justify-content:center;flex-wrap:wrap;gap:14px 22px;padding:26px 5%;transition:opacity .18s ease,transform .18s ease;overflow:hidden}
.evolution-wordcloud.changing{opacity:.08;transform:scale(.985)}
.evolution-word{display:inline-block;font-family:var(--display);line-height:1;color:#302d39;white-space:nowrap;animation:cloudIn .45s both;animation-delay:calc(var(--i) * 24ms);text-shadow:0 1px 0 rgba(255,255,255,.7)}
.evolution-word:nth-child(3n+1){color:#8d5519}.evolution-word:nth-child(3n+2){color:#315e59}.evolution-word:nth-child(3n){color:#5a4d67}
.evolution-word.w1{font-size:1rem;opacity:.72}.evolution-word.w2{font-size:1.25rem}.evolution-word.w3{font-size:1.65rem}.evolution-word.w4{font-size:2.15rem;font-weight:600}.evolution-word.w5{font-size:2.85rem;font-weight:700}
.evolution-controls{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;align-items:center;border-top:1px solid rgba(91,83,96,.12);padding-top:20px}
.evolution-year{font:600 .9rem/1.2 var(--sans);letter-spacing:.04em;color:#6c6258;min-width:130px}
#evolution-slider{width:100%;accent-color:#b06f25}
.evolution-ticks{grid-column:2;display:flex;justify-content:space-between;font:500 .73rem/1.2 var(--sans);color:#82796e}
@keyframes cloudIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}
@media(max-width:720px){.evolution-cloud-head{align-items:flex-start}.evolution-era{white-space:normal}.evolution-cloud-card{padding:18px}.evolution-wordcloud{min-height:300px;gap:12px 16px;padding:20px 2%}.evolution-word.w4{font-size:1.75rem}.evolution-word.w5{font-size:2.15rem}.evolution-controls{grid-template-columns:1fr}.evolution-ticks{grid-column:1}.evolution-year{min-width:0}}

/* Keep portal labels from colliding: names appear on hover/focus, not permanently. */
.sd-leaflet-label{white-space:nowrap;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.12)}

/* Chapter geographic visuals use the same ESRI Light Gray Canvas basemap as the home page. */
.map-el{height:auto;width:100%;min-height:420px;overflow:visible;border:1px solid var(--line);}
.map-el .leaf-map-canvas{height:520px;width:100%;}
.map-el .leaflet-container{height:100%;width:100%;font-family:var(--ui,Arial,sans-serif);}
.map-el .scv-map-panel{margin-top:0;}
.map-el .leaflet-control-attribution{font-size:10px;}
@media(max-width:720px){.map-el .leaf-map-canvas{height:440px;}}

/* ESRI chapter maps: keep the actual map canvas visible even when the surrounding
   visual container is constrained by legacy chapter CSS. */
.map-el .leaf-map-canvas{position:relative;display:block;height:520px!important;min-height:520px!important;width:100%;overflow:hidden;background:#e9e7e2;}
.map-el .leaf-map-canvas .leaflet-container{position:absolute;inset:0;height:100%!important;width:100%!important;background:#e9e7e2;}
.map-el .leaf-map-canvas .leaflet-tile-pane{z-index:2;}
.map-el .leaf-map-canvas .leaflet-marker-pane,.map-el .leaf-map-canvas .leaflet-tooltip-pane,.map-el .leaf-map-canvas .leaflet-popup-pane,.map-el .leaf-map-canvas .leaflet-control-container{z-index:400;}
.map-el .leaf-map-canvas.sd-map-tile-failed:before{content:'ESRI basemap tiles could not be loaded. Refresh the page or check network access.';position:absolute;z-index:1000;left:50%;top:50%;transform:translate(-50%,-50%);max-width:360px;padding:12px 16px;text-align:center;border:1px solid #d8d1c5;background:rgba(255,253,247,.96);box-shadow:0 4px 16px rgba(0,0,0,.08);font:.78rem/1.45 var(--ui,Arial,sans-serif);color:#5f5a63;pointer-events:none;}
@media(max-width:720px){.map-el .leaf-map-canvas{height:440px!important;min-height:440px!important;}}

/* Self-contained Leaflet layout rules. These mirror the structural Leaflet CSS so
   the ESRI map remains visible even when the external Leaflet stylesheet is blocked. */
.leaflet-container{position:relative;overflow:hidden;-webkit-tap-highlight-color:transparent;background:#ddd;outline:0;}
.leaflet-pane,.leaflet-tile,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile-container,.leaflet-map-pane svg,.leaflet-map-pane canvas,.leaflet-zoom-box{position:absolute;left:0;top:0;}
.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-tile{visibility:inherit;}
.leaflet-control{position:relative;z-index:800;pointer-events:auto;float:left;clear:both}.leaflet-top,.leaflet-bottom{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-right{right:0}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}
.leaflet-control-zoom{box-shadow:0 1px 5px rgba(0,0,0,.25);border-radius:4px;overflow:hidden}.leaflet-bar a{display:block;width:30px;height:30px;line-height:30px;text-align:center;text-decoration:none;background:#fff;color:#333;border-bottom:1px solid #ccc;font-size:20px}.leaflet-bar a:last-child{border-bottom:0}.leaflet-bar a:hover{background:#f4f4f4}.leaflet-control-attribution{padding:2px 5px;background:rgba(255,255,255,.8);font:10px/1.4 Arial,sans-serif;color:#555}.leaflet-control-attribution a{color:#333;text-decoration:underline}.leaflet-tooltip{position:absolute;padding:4px 7px;background:#fff;border:1px solid #bbb;border-radius:3px;box-shadow:0 1px 4px rgba(0,0,0,.2);white-space:nowrap;color:#333}.leaflet-popup{position:absolute;text-align:center}.leaflet-popup-content-wrapper{padding:1px;border-radius:5px;background:#fff;box-shadow:0 3px 14px rgba(0,0,0,.35)}.leaflet-popup-content{margin:12px 16px;line-height:1.4}.leaflet-popup-tip{width:12px;height:12px;margin:-7px auto 0;transform:rotate(45deg);background:#fff;box-shadow:3px 3px 4px rgba(0,0,0,.15)}
.sd-esri-static-map{position:relative;width:100%;min-height:360px;background:#e9e7e2;overflow:hidden}.sd-esri-static-image{display:block;width:100%;height:auto;min-height:360px;object-fit:cover}.sd-esri-static-markers{position:absolute;inset:0;pointer-events:none}.sd-esri-static-marker{position:absolute;transform:translate(-50%,-100%);border:0;background:transparent;padding:0;pointer-events:auto;cursor:pointer;text-align:center}.sd-esri-static-marker span{display:block;width:13px;height:13px;margin:0 auto 2px;border-radius:50%;background:#35335A;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.3)}.sd-esri-static-marker b{display:block;padding:2px 4px;background:rgba(255,253,247,.9);font:600 11px/1.15 var(--ui,Arial,sans-serif);color:#302d39;white-space:nowrap}.sd-esri-static-unavailable{display:grid;place-items:center;min-height:360px;padding:30px;text-align:center;font:.82rem/1.5 var(--ui,Arial,sans-serif);color:#625d66;background:#f3f0ea}

/* ---------- Om-centered hero + living vocabulary timeline ---------- */
.hero{overflow:hidden}
.hero .container.hero-copy{position:relative;max-width:1180px}
.hero-copy>div:first-child{position:relative;z-index:3}
.hero-om-visual{position:absolute;right:4%;top:50%;width:min(440px,42vw);height:min(440px,42vw);transform:translateY(-50%);display:grid;place-items:center;pointer-events:none;z-index:1;perspective:1200px}
.hero-om-halo{position:absolute;border-radius:50%;filter:blur(10px);mix-blend-mode:screen}
.hero-om-halo-a{width:72%;height:72%;background:radial-gradient(circle,rgba(255,220,126,.28) 0%,rgba(244,182,62,.13) 34%,rgba(244,182,62,0) 72%);animation:omPulse 5.5s ease-in-out infinite}
.hero-om-halo-b{width:100%;height:100%;background:radial-gradient(circle,rgba(255,236,174,.11) 0%,rgba(255,194,77,.06) 28%,rgba(255,194,77,0) 68%);animation:omPulse 7s ease-in-out infinite reverse}
.hero-om-rings{position:absolute;width:76%;height:76%;border:1px solid rgba(247,199,107,.24);border-radius:50%;box-shadow:0 0 45px rgba(247,199,107,.12),inset 0 0 35px rgba(247,199,107,.08);animation:omSpin 22s linear infinite}
.hero-om-rings:before,.hero-om-rings:after{content:"";position:absolute;inset:10%;border:1px solid rgba(247,199,107,.12);border-radius:50%}
.hero-om-rings:after{inset:20%;border-style:dashed;animation:omSpin 15s linear infinite reverse}
.hero-om-symbol{font-family:"Noto Serif Devanagari","Nirmala UI",serif;font-size:clamp(10rem,18vw,17rem);font-weight:600;line-height:.8;color:#F8D57C;text-shadow:0 0 12px rgba(255,218,119,.42),0 0 46px rgba(255,184,62,.22),0 8px 28px rgba(0,0,0,.38);animation:omRotate 90s linear infinite;transform-style:preserve-3d;transform-origin:center center;backface-visibility:visible;will-change:transform}
.hero-om-caption{position:absolute;bottom:5%;font:600 .68rem/1.2 var(--ui);letter-spacing:.18em;text-transform:uppercase;color:rgba(250,231,183,.72);text-shadow:0 2px 10px rgba(0,0,0,.5)}
.hero-om-listen{border:1px solid rgba(247,199,107,.55)!important;color:#FFF9EE!important;background:rgba(5,16,29,.30)!important;border-radius:999px!important;cursor:pointer}
.hero-om-listen.is-playing{box-shadow:0 0 0 4px rgba(247,199,107,.10),0 0 28px rgba(247,199,107,.20)}
@keyframes omPulse{0%,100%{transform:scale(.96);opacity:.72}50%{transform:scale(1.04);opacity:1}}
@keyframes omFloat{0%,100%{transform:translateY(0) scale(1)}50%{transform:translateY(-5px) scale(1.015)}}
@keyframes omSpin{to{transform:rotate(360deg)}}
@keyframes omRotate{0%{transform:rotateY(0deg)}100%{transform:rotateY(360deg)}}

.evolution-cloud-section{position:relative;overflow:hidden}
.evolution-cloud-section:before{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 35%,rgba(176,111,37,.08),transparent 28%),radial-gradient(circle at 80% 65%,rgba(49,94,89,.08),transparent 30%)}
.evolution-cloud-card{position:relative;z-index:1}
.evolution-era-track{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;margin:2px 0 22px;padding:12px 4px 0;border-top:1px solid rgba(176,141,62,.18);position:relative}
.evolution-era-track:before{content:"";position:absolute;left:5%;right:5%;top:24px;height:1px;background:rgba(176,141,62,.24)}
.evolution-era-track button{position:relative;z-index:1;border:0;background:transparent;padding:0 4px;cursor:pointer;color:#6c6258;text-align:center;font-family:var(--ui)}
.evolution-era-track button:before{content:"";display:block;width:11px;height:11px;margin:7px auto 8px;border-radius:50%;background:#f4ecdd;border:2px solid #b08d3e;box-shadow:0 0 0 4px rgba(255,255,255,.8);transition:transform .2s,background .2s,box-shadow .2s}
.evolution-era-track button span{display:block;font-weight:700;font-size:.76rem;letter-spacing:.04em}
.evolution-era-track button small{display:block;margin-top:3px;font-size:.64rem;opacity:.78}
.evolution-era-track button:hover:before,.evolution-era-track button.active:before{background:#b06f25;transform:scale(1.25);box-shadow:0 0 0 4px rgba(176,111,37,.10)}
.evolution-era-track button.active span{color:#7c4d18}
@media(max-width:900px){.hero-om-visual{right:-4%;width:390px;height:390px;opacity:.65}.hero-copy>div:first-child{max-width:72%}.evolution-era-track{grid-template-columns:repeat(3,1fr);row-gap:16px}.evolution-era-track:before{display:none}}
@media(max-width:620px){.hero-om-visual{right:-28%;top:38%;width:360px;height:360px;opacity:.38}.hero-copy>div:first-child{max-width:100%}.hero-om-caption{display:none}.hero .container.hero-copy{min-height:570px}.hero-om-listen{width:100%}.evolution-era-track{grid-template-columns:repeat(2,1fr)}.evolution-era-track button small{font-size:.58rem}}
@media(prefers-reduced-motion:reduce){.hero-om-halo-a,.hero-om-halo-b,.hero-om-rings,.hero-om-rings:after,.hero-om-symbol{animation:none}.evolution-word{animation:none!important}}

/* ---------- Temple-free Om hero + soothing female-style 54-second meditation audio ---------- */
.hero{
  min-height:610px;
  background-image:
    linear-gradient(90deg,rgba(4,15,28,.96) 0%,rgba(4,15,28,.84) 28%,rgba(4,15,28,.40) 52%,rgba(4,15,28,.08) 72%,rgba(4,15,28,.16) 100%),
    url('../images/home-hero-om-mountains.jpg');
  background-size:cover;
  background-position:center center;
  box-shadow:inset 0 -90px 120px rgba(2,10,20,.38);
}
.hero:after{content:"";position:absolute;inset:auto 0 0;height:170px;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(2,10,20,.48));}
.hero .container.hero-copy{z-index:2}
.hero-copy>div:first-child{max-width:650px}
.hero-om-player{margin-top:20px;max-width:820px;padding:13px 15px 11px;border:1px solid rgba(247,199,107,.42);border-radius:16px;background:rgba(3,15,28,.66);backdrop-filter:blur(10px);box-shadow:0 12px 34px rgba(0,0,0,.20),inset 0 1px 0 rgba(255,255,255,.05)}
.hero-om-player-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;margin-bottom:8px;font-family:var(--ui)}
.hero-om-player-title{color:#F8D57C;font-weight:700;letter-spacing:.04em;text-transform:uppercase;font-size:.72rem}
.hero-om-player-duration{color:rgba(246,239,226,.72);font-size:.68rem}
.hero-om-player-controls{display:grid;grid-template-columns:38px minmax(0,1fr) auto 34px;gap:11px;align-items:center}
.hero-om-play,.hero-om-loop{width:34px;height:34px;border-radius:50%;border:1px solid rgba(247,199,107,.52);background:rgba(247,199,107,.12);color:#FFF6DF;cursor:pointer;font-family:var(--ui);font-weight:700}
.hero-om-play{background:#F7C76B;color:#081323}
.hero-om-loop.active{background:rgba(247,199,107,.26);color:#F8D57C;box-shadow:0 0 0 3px rgba(247,199,107,.08)}
.hero-om-wave{height:34px;position:relative;overflow:hidden;border-radius:8px;background:repeating-linear-gradient(90deg,rgba(247,199,107,.08) 0 2px,transparent 2px 7px)}
.hero-om-wave:before{content:"";position:absolute;inset:7px 0;background:linear-gradient(90deg,transparent,#F7C76B 12%,#FFF0B7 45%,#F7C76B 78%,transparent);opacity:.72;clip-path:polygon(0 48%,3% 34%,5% 65%,7% 42%,9% 56%,11% 22%,13% 72%,15% 36%,17% 63%,19% 18%,21% 78%,23% 30%,25% 66%,27% 44%,29% 55%,31% 24%,33% 76%,35% 39%,37% 62%,39% 28%,41% 70%,43% 45%,45% 57%,47% 18%,49% 80%,51% 32%,53% 66%,55% 43%,57% 55%,59% 24%,61% 76%,63% 36%,65% 64%,67% 18%,69% 78%,71% 30%,73% 69%,75% 42%,77% 56%,79% 20%,81% 74%,83% 35%,85% 62%,87% 25%,89% 73%,91% 39%,93% 59%,95% 29%,97% 68%,100% 48%)}
.hero-om-time{font:600 .68rem var(--ui);color:#F6EFE2;white-space:nowrap}
.hero-om-progress{height:3px;margin-top:10px;border-radius:999px;background:rgba(246,239,226,.14);overflow:hidden}
.hero-om-progress span{display:block;height:100%;width:0;background:#F7C76B;transition:width .12s linear}
.hero-audio-attribution{margin-top:7px;font:500 .62rem/1.35 var(--ui);color:rgba(246,239,226,.58)}.hero-audio-attribution a{color:#F7C76B;text-decoration:underline;text-underline-offset:2px}.hero-audio-attribution a:hover{color:#FFF1C5}
.hero-om-listen.is-playing{box-shadow:0 0 0 4px rgba(247,199,107,.10),0 0 28px rgba(247,199,107,.24);color:#F8D57C!important}
@media(max-width:900px){.hero{background-position:58% center}.hero-copy>div:first-child{max-width:72%}.hero-om-player{max-width:620px}}
@media(max-width:620px){.hero{min-height:650px;background-position:62% center}.hero-copy>div:first-child{max-width:100%}.hero-om-player{margin-top:16px}.hero-om-player-head{align-items:flex-start;flex-direction:column;gap:2px}.hero-om-player-controls{grid-template-columns:38px minmax(0,1fr) 34px}.hero-om-time{grid-column:2;grid-row:2}.hero-om-loop{grid-column:3;grid-row:1}.hero-om-wave{grid-column:2;grid-row:1}.hero-om-progress{margin-top:7px}.hero-om-listen{width:auto}}
@media(prefers-reduced-motion:reduce){.hero{box-shadow:none}}

/* Indic traditions in dialogue — visually acknowledges historical interaction without equating distinct traditions. */
.hero{position:relative}
.hero-om-constellation{position:absolute;right:5%;top:50%;width:min(460px,42vw);height:min(460px,42vw);transform:translateY(-48%);z-index:1;pointer-events:none;display:grid;place-items:center}
.hero-om-core{font-family:"Noto Serif Devanagari","Nirmala UI",serif;font-size:clamp(8rem,15vw,13rem);line-height:.8;color:#f8d57c;text-shadow:0 0 16px rgba(255,220,126,.52),0 0 58px rgba(255,184,62,.26);animation:omFloat 7s ease-in-out infinite}
.hero-om-constellation:before{content:"";position:absolute;inset:10%;border:1px solid rgba(247,199,107,.25);border-radius:50%;box-shadow:0 0 50px rgba(247,199,107,.12),inset 0 0 40px rgba(247,199,107,.07)}
.hero-om-constellation:after{content:"";position:absolute;inset:22%;border:1px dashed rgba(247,199,107,.18);border-radius:50%;animation:omSpin 36s linear infinite}
.hero-om-orbit{position:absolute;display:grid;place-items:center;width:62px;height:62px;border:1px solid rgba(247,199,107,.32);border-radius:50%;background:rgba(3,15,28,.44);backdrop-filter:blur(4px);color:#f8d57c;font:600 1.15rem/1 var(--ui,Arial,sans-serif);box-shadow:0 4px 20px rgba(0,0,0,.18)}
.hero-om-orbit small{position:absolute;top:67px;font:600 .48rem/1 var(--ui,Arial,sans-serif);letter-spacing:.12em;color:rgba(250,231,183,.72);white-space:nowrap}
.orbit-a{left:8%;top:27%}.orbit-b{right:8%;top:27%}.orbit-c{left:12%;bottom:21%;font-size:.8rem}.orbit-d{right:12%;bottom:21%}
.hero-om-note{position:absolute;bottom:1%;font:600 .53rem/1.2 var(--ui,Arial,sans-serif);letter-spacing:.13em;text-transform:uppercase;color:rgba(250,231,183,.65);text-align:center;max-width:80%}
@media(max-width:900px){.hero-om-constellation{right:-3%;width:390px;height:390px;opacity:.72}.hero-copy>div:first-child{max-width:72%}}
@media(max-width:620px){.hero-om-constellation{right:-26%;top:38%;width:360px;height:360px;opacity:.38}.hero-copy>div:first-child{max-width:100%}.hero-om-note{display:none}.hero-om-orbit small{display:none}}
@media(prefers-reduced-motion:reduce){.hero-om-core,.hero-om-constellation:after{animation:none}}


/* ---------- Final homepage hero artwork: user-supplied Indic traditions composition ---------- */
.hero{
  min-height:680px;
  background-color:#061526;
  background-image:
    linear-gradient(90deg,rgba(4,15,28,.98) 0%,rgba(4,15,28,.92) 25%,rgba(4,15,28,.62) 44%,rgba(4,15,28,.12) 66%,rgba(4,15,28,.04) 100%),
    linear-gradient(180deg,rgba(4,15,28,.16),rgba(4,15,28,.22));
  background-repeat:no-repeat;
  background-size:100% 100%,100% 100%;
  background-position:center;
  position:relative;
}
.hero:before{
  content:"";
  position:absolute;inset:0;
  background-image:url('../images/home-hero-indic-dialogue.jpg');
  background-repeat:no-repeat;
  background-size:auto 100%;
  background-position:right center;
  pointer-events:none;
  z-index:0;
}
.hero:after{z-index:1}
.hero .container{z-index:3}
.hero .container.hero-copy{min-height:510px;align-items:center}
.hero-copy>div:first-child{max-width:670px}
.hero-om-constellation{display:none!important}
.hero-stats{max-width:860px}
@media(max-width:1100px){
  .hero{min-height:670px}
  .hero:before{background-size:auto 96%;background-position:112% center;opacity:.92}
  .hero-copy>div:first-child{max-width:650px}
}
@media(max-width:900px){
  .hero{min-height:700px}
  .hero:before{background-size:auto 78%;background-position:120% 14%;opacity:.70}
  .hero .container.hero-copy{min-height:540px}
  .hero-copy>div:first-child{max-width:72%}
}
@media(max-width:620px){
  .hero{min-height:760px;padding:48px 0 72px}
  .hero:before{background-size:auto 55%;background-position:112% 8%;opacity:.46}
  .hero .container.hero-copy{min-height:620px;align-items:flex-start}
  .hero-copy>div:first-child{max-width:100%}
  .hero-stats{margin-top:24px}
}

/* ---------- Rotating chest-mandala glow overlaid on the hero portrait ---------- */
/* The frame exactly mirrors the photo's own background-size/position math (auto 100%, right-anchored),
   so the glow it carries stays locked to the circle of light on the figure's chest at every width. */
.hero-photo-frame{position:absolute;top:0;bottom:0;right:0;aspect-ratio:728/826;pointer-events:none;z-index:0;overflow:visible}
.hero-chest-glow{position:absolute;left:18.13%;top:51.33%;width:32.42%;height:28.57%;border-radius:50%;
  transform:translate(-50%,-50%) rotate(0deg);
  transform-origin:50% 50%;
  mix-blend-mode:screen;opacity:.85;
  background:
    repeating-conic-gradient(from 0deg,rgba(255,228,163,.55) 0deg 4deg,rgba(255,228,163,0) 4deg 18deg),
    radial-gradient(circle,rgba(255,240,200,.4) 0%,rgba(255,208,116,.16) 55%,rgba(255,208,116,0) 78%);
  animation:heroChestSpin 26s linear infinite;
  will-change:transform;
}
@keyframes heroChestSpin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
@media(max-width:900px){.hero-photo-frame{display:none}}
@media(prefers-reduced-motion:reduce){.hero-chest-glow{animation:none}}

/* ---------- "My Library" nav icon ---------- */
.lib-nav{display:inline-flex;align-items:center;gap:6px}
.lib-nav svg{width:17px;height:17px;flex:none;color:var(--parchment-2);opacity:.9}
.lib-nav:hover svg{color:var(--saffron)}
