/* ==========================================================================
   SPIRIOOLOGY — Public Daily Panchang
   Standalone static stylesheet. Tokens ported from the live design system
   (globals.css) and the approved motion kit (spm-kit.css), trimmed to only
   what this page uses. No copied third-party Panchang layout or artwork.
   ========================================================================== */

/* ---------- DESIGN TOKENS ---------- */
:root{
  color-scheme:dark;
  --parchment:#fdf8f0;
  --surface-low:#2a1213;
  --surface-container:#371a1c;
  --surface-high:#452425;
  --maroon:#6b0f1a;
  --maroon-deep:#49000a;
  --gold:#c9a84c;
  --gold-dim:#e6c364;
  --ink:#faf0e5;
  --ink-mid:#d9c7b7;
  --ink-muted:#b8a192;
  --on-dark:#fdf8f0;
  --on-dark-dim:#f0e2d3;
  --outline-variant:#9a7d6f;
  --gold-line:#faf0e51f;
  --gold-border:rgba(201,168,76,.55);
  --ground:#1d090b;
  --accent:var(--gold);
  --accent-hover:var(--gold-dim);
  --on-accent:#271513;
  --emphasis:var(--gold);
  --focus:var(--gold);
  --control-border:#9a7d6f;
  --good:#3fb58a;
  --bad:#e67a7a;
  --nav-bg:rgba(29,9,11,.97);
  --max:1080px;
  --margin:24px;

  --f-head:"Fraunces","Mukta",Georgia,serif;
  --f-body:"Mukta","Mukta Vaani",system-ui,sans-serif;
  --f-mono:"Mukta","Mukta Vaani",system-ui,sans-serif;
  --f-num:"Noto Sans","Mukta",system-ui,sans-serif;
  --f-wordmark:"Marcellus","Fraunces",Georgia,serif;

  --spm-instant:100ms;
  --spm-quick:200ms;
  --spm-reveal:800ms;
  --spm-settle:cubic-bezier(.2,0,0,1);
  --spm-enter:cubic-bezier(.05,.7,.1,1);
  --spm-spring:cubic-bezier(.34,1.56,.64,1);
  --spm-light:#e6c364;
}
html[lang="hi-IN"]{
  --f-head:"Mukta","Fraunces",Georgia,serif;
  --f-body:"Mukta",system-ui,sans-serif;
  --f-mono:"Mukta",system-ui,sans-serif;
  --f-num:"Mukta",system-ui,sans-serif;
}
html[lang="gu-IN"]{
  --f-head:"Mukta Vaani","Fraunces",Georgia,serif;
  --f-body:"Mukta Vaani",system-ui,sans-serif;
  --f-mono:"Mukta Vaani",system-ui,sans-serif;
  --f-num:"Mukta Vaani",system-ui,sans-serif;
}
html[data-theme="light"]{
  color-scheme:light;
  --ground:var(--parchment);
  --surface-low:#f8f0e5;
  --surface-container:#f3e8da;
  --surface-high:#f0e3d3;
  --ink:#271513;
  --ink-mid:#57423e;
  --ink-muted:#725c56;
  --outline-variant:#8f7467;
  --gold-line:#2715131f;
  --accent:var(--maroon);
  --accent-hover:var(--maroon-deep);
  --on-accent:var(--parchment);
  --emphasis:var(--maroon);
  --focus:var(--maroon);
  --control-border:#8f7467;
  --nav-bg:rgba(253,248,240,.97);
  --spm-light:#a8862f;
}

@media(min-width:768px){:root{--margin:40px;}}
@media(min-width:1280px){:root{--margin:64px;}}

/* ---------- RESET ---------- */
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--f-body);font-size:1.0625rem;line-height:1.6;font-weight:400;
  background:var(--ground);color:var(--ink);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{color:inherit;text-decoration:none;}
button,select,input{font-family:inherit;color:inherit;}
button{cursor:pointer;border:none;background:none;}
img,svg{display:block;max-width:100%;}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px;}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.skip-link{position:fixed;top:-100px;left:12px;z-index:9999;background:var(--gold);color:var(--on-accent);padding:12px 18px;border-radius:8px;font-weight:600;transition:top .2s;}
.skip-link:focus{top:12px;}

h1,h2,h3,h4{font-family:var(--f-head);font-weight:600;line-height:1.2;color:var(--ink);}
h1{line-height:1.1;letter-spacing:-.01em;}
h4{font-family:var(--f-body);font-weight:600;}

.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--margin);}
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-size:13px;font-weight:700;letter-spacing:.02em;color:var(--gold);}
.eyebrow .rule{width:32px;height:1px;background:var(--gold);opacity:.7;}

/* ---------- NAV ---------- */
.nav{
  position:sticky;top:0;z-index:100;
  display:flex;align-items:center;min-height:64px;
  background:var(--nav-bg);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  border-bottom:1px solid var(--gold-border);
}
.nav-inner{max-width:var(--max);margin:0 auto;padding:10px var(--margin);width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px;}
.brand-word{font-family:var(--f-wordmark);font-weight:400;font-size:18px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);min-height:44px;display:inline-flex;align-items:center;}
.theme-toggle{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;min-width:44px;padding:10px 14px;font-size:13px;font-weight:600;
  color:var(--emphasis);border:1px solid var(--control-border);border-radius:8px;
}
.lang-select{
  min-height:44px;padding:10px 12px;font-size:13px;font-weight:600;
  color:var(--ink);background:var(--ground);border:1px solid var(--control-border);border-radius:8px;
}

/* ---------- BUTTONS ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  font-family:var(--f-body);font-size:14px;font-weight:600;
  min-height:44px;padding:10px 18px;border-radius:8px;line-height:1.25;
  transition:background-color .2s ease,color .2s ease,border-color .2s ease,transform .2s ease;
}
.btn-primary{background:var(--accent);color:var(--on-accent);}
.btn-primary:hover{background:var(--accent-hover);}
.btn-primary:disabled{opacity:.55;cursor:not-allowed;}
.btn-ghost{background:transparent;border:1px solid var(--gold);color:var(--emphasis);}
.btn-ghost:hover{background:rgba(201,168,76,.08);}
.btn-ghost:disabled{opacity:.5;cursor:not-allowed;}

/* ---------- HERO / CONTROLS ---------- */
.hero{padding:40px 0 8px;position:relative;overflow:hidden;}
.hero .wrap{position:relative;z-index:1;}
/* Decorative only: not a real solar position. */
.sun-arc{position:absolute;top:0;right:max(8px,calc(50% - var(--max)/2 + 8px));width:200px;height:100px;overflow:hidden;pointer-events:none;opacity:.5;}
.sun-arc::before{content:"";position:absolute;left:0;top:0;width:200px;height:200px;border:1px dashed var(--gold-border);border-radius:50%;}
.sun-arc i{position:absolute;left:0;top:0;width:200px;height:200px;animation:sun-orbit 24s linear infinite;}
.sun-arc i::after{content:"";position:absolute;left:92px;top:-8px;width:16px;height:16px;border-radius:50%;background:var(--gold-dim);box-shadow:0 0 18px 6px var(--gold-border);}
@keyframes sun-orbit{to{transform:rotate(360deg);}}
@media(max-width:600px){.sun-arc{width:140px;height:70px;opacity:.4;}.sun-arc::before,.sun-arc i{width:140px;height:140px;}.sun-arc i::after{left:62px;}}
.alt-link{margin:14px 0 0;font-size:14px;}
.alt-link a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;}
.alt-link a:hover{color:var(--accent-hover);}
.hero h1{font-size:clamp(28px,5vw,42px);margin:14px 0 10px;}
.hero-sub{color:var(--ink-mid);max-width:620px;font-size:15px;line-height:1.7;margin-bottom:28px;}

.controls-card{
  background:var(--surface-low);border:1px solid var(--gold-border);border-radius:12px;
  padding:20px;display:flex;flex-direction:column;gap:16px;
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.form-field label{display:block;font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink);}
.form-field select,.form-field input{
  width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--outline-variant);
  border-radius:8px;background:var(--ground);color:var(--ink);font-size:15px;
}
.form-field select:focus,.form-field input:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 3px rgba(201,168,76,.18);}
.date-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;}
.date-actions .btn{flex:1 1 auto;}
.date-actions .submit-btn{flex:1 1 100%;}
@media(min-width:560px){
  .date-actions .submit-btn{flex:0 0 auto;margin-left:auto;}
}

.status-msg{min-height:22px;margin-top:14px;font-size:14px;color:var(--ink-mid);}
.status-msg[data-state="error"]{color:var(--bad);}
.status-msg .retry-btn{margin-left:10px;}

/* ---------- RESULTS ---------- */
.results-section{padding:12px 0 72px;}
.results-section[hidden]{display:none;}
.section-heading{font-size:clamp(20px,3vw,26px);margin:44px 0 6px;}
.section-sub{font-size:14px;color:var(--ink-mid);margin-bottom:18px;line-height:1.6;}

.summary-card{
  background:var(--maroon);color:var(--on-dark);border:1px solid var(--gold-border);
  border-radius:12px;padding:24px;margin-top:10px;
}
html[data-theme="light"] .summary-card{--gold:#e6c364;}
.summary-card .sc-location{font-family:var(--f-mono);font-size:13px;letter-spacing:.04em;color:var(--on-dark-dim);opacity:.8;margin-bottom:8px;}
.summary-card h2{color:var(--on-dark);font-size:clamp(22px,4vw,30px);margin-bottom:6px;}
.summary-card .sc-sub{font-size:14px;color:var(--on-dark-dim);opacity:.85;}
.summary-card .sc-notice{margin-top:14px;font-size:13px;color:var(--on-dark-dim);opacity:.8;border-top:1px solid rgba(250,240,229,.18);padding-top:12px;}

.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;}
.data-card{
  background:var(--surface-low);border:1px solid var(--gold-border);border-radius:10px;
  padding:16px;transition:border-color .2s ease,transform .2s ease;
}
.data-card .dc-label{font-family:var(--f-mono);font-size:12.5px;letter-spacing:.03em;color:var(--gold);margin-bottom:6px;font-weight:600;}
.data-card .dc-value{font-family:var(--f-head);font-size:18px;font-weight:600;line-height:1.25;margin-bottom:4px;}
.data-card .dc-note{font-size:12.5px;color:var(--ink-muted);line-height:1.5;}
.data-card.is-now{border-color:var(--gold);box-shadow:0 0 0 2px rgba(201,168,76,.28);}
.data-card.is-now .dc-now-flag{display:inline-block;margin-top:8px;font-size:12px;font-weight:700;color:var(--emphasis);letter-spacing:.03em;}
.data-card.quality-favourable{border-left:3px solid var(--good);}
.data-card.quality-challenging{border-left:3px solid var(--bad);}
.data-card.quality-neutral{border-left:3px solid var(--outline-variant);}

/* ---------- TIMING TABLES (scrollable regions) ---------- */
.table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--gold-line);border-radius:10px;}
.table-scroll:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;}
table.timing-table{width:100%;border-collapse:collapse;min-width:460px;font-size:14px;}
table.timing-table th{
  text-align:left;font-family:var(--f-mono);font-size:12.5px;letter-spacing:.03em;
  color:var(--gold);font-weight:600;padding:10px 14px;background:var(--surface-high);
  position:sticky;top:0;
}
table.timing-table td{padding:10px 14px;border-top:1px solid var(--gold-line);vertical-align:middle;}
table.timing-table tr.row-now td{background:rgba(201,168,76,.14);font-weight:600;}
.quality-pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:12px;font-weight:600;letter-spacing:.02em;}
.quality-pill.favourable{background:rgba(63,181,138,.15);color:var(--good);border:1px solid rgba(63,181,138,.35);}
.quality-pill.challenging{background:rgba(230,122,122,.15);color:var(--bad);border:1px solid rgba(230,122,122,.35);}
.quality-pill.neutral{background:rgba(201,168,76,.12);color:var(--gold);border:1px solid rgba(201,168,76,.3);}
.now-tag{margin-left:8px;font-size:11.5px;font-weight:700;color:var(--emphasis);}

details.disclosure{
  background:var(--surface-low);border:1px solid var(--gold-border);border-radius:10px;
  margin-top:16px;overflow:hidden;
}
details.disclosure summary{
  cursor:pointer;list-style:none;padding:16px 18px;font-weight:600;font-family:var(--f-head);
  font-size:16px;display:flex;align-items:center;justify-content:space-between;min-height:44px;
}
details.disclosure summary::-webkit-details-marker{display:none;}
details.disclosure summary .chev{transition:transform .2s var(--spm-settle);}
details.disclosure[open] summary .chev{transform:rotate(180deg);}
.disclosure-body{padding:0 18px 18px;font-size:14px;line-height:1.7;color:var(--ink-mid);}
.disclosure-body h4{color:var(--ink);font-size:14.5px;margin:14px 0 6px;}
.disclosure-body dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin-top:8px;}
.disclosure-body dt{font-weight:600;color:var(--ink);}
.disclosure-body dd{color:var(--ink-mid);}
.disclosure-body ul{margin:8px 0 8px 20px;}
.disclosure-body li{margin-bottom:6px;}

.notice-box{
  background:var(--surface-container);border:1px solid var(--gold-border);border-radius:10px;
  padding:14px 16px;font-size:13.5px;color:var(--ink-mid);margin-top:16px;line-height:1.6;
}

.twilight-source{margin-top:12px;font-size:13px;overflow-wrap:anywhere;}
.twilight-source a{color:var(--accent);text-decoration:underline;text-underline-offset:3px;display:inline-flex;align-items:center;min-height:44px;}
.twilight-source a:hover{color:var(--accent-hover);}

footer.site-footer{border-top:1px solid var(--gold-line);padding:28px 0 60px;}
footer.site-footer .wrap{display:flex;flex-direction:column;gap:6px;}
footer.site-footer .foot-word{font-family:var(--f-wordmark);font-size:14px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold);}
footer.site-footer p{font-size:12.5px;color:var(--ink-muted);line-height:1.6;}

/* ---------- MOTION: single shared 800ms reveal + touch press ---------- */
.reveal{opacity:1;transform:none;}
html.js .reveal{opacity:0;transform:translateY(16px);}
html.js .reveal.is-in{animation:spm-rise var(--spm-reveal) var(--spm-enter) forwards;}
@keyframes spm-rise{to{opacity:1;transform:none;}}

.spm-press{position:relative;-webkit-tap-highlight-color:transparent;transition:transform var(--spm-instant) var(--spm-settle);}
.spm-press:active,.spm-press.is-down{transform:scale(.96);}
.spm-ripple{position:relative;overflow:hidden;}
.spm-ripple__ring{
  position:absolute;border-radius:50%;border:2px solid var(--spm-light);
  translate:-50% -50%;scale:0;opacity:.7;pointer-events:none;
  animation:spm-ripple 520ms var(--spm-settle) forwards;
}
@keyframes spm-ripple{to{scale:1;opacity:0;}}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:1ms !important;animation-iteration-count:1 !important;transition-duration:1ms !important;}
  .reveal{opacity:1 !important;transform:none !important;}
  .sun-arc i{animation:none;}
  .spm-press:active,.spm-press.is-down{transform:none;}
}

/* ---------- NO-JS progressive enhancement ---------- */
.js-only{display:none;}
html.js .js-only{display:revert;}
html.js .no-js-note{display:none;}

/* ---------- RESPONSIVE ---------- */
@media(max-width:600px){
  .field-row{grid-template-columns:1fr;}
  .card-grid{grid-template-columns:repeat(auto-fit,minmax(130px,1fr));}
  table.timing-table{min-width:420px;}
}
@media(min-width:1280px){
  .card-grid{grid-template-columns:repeat(5,1fr);}
}

/* ---------- PRINT ---------- */
@media print{
  .nav,.controls-card,.date-actions,.skip-link,details.disclosure summary .chev{display:none !important;}
  details.disclosure{border:1px solid #999;}
  details.disclosure[open],details.disclosure{display:block;}
  .disclosure-body{display:block !important;}
  body{background:#fff;color:#111;}
  .summary-card,.data-card,.notice-box{border:1px solid #999;background:#fff;color:#111;box-shadow:none;}
  .summary-card *,.summary-card{color:#111 !important;}
  a{text-decoration:underline;}
}
