/* ============================================================
   UPSTELLAR ASTROLOGY — brand theme
   Dark editorial · warm gold accent · Cormorant display.
   Adapted from the Upstellar design system. Blocky (squared) geometry.
   Colour beyond gold is reserved for astrological symbols.
   ============================================================ */
@import url('https://fonts.googleapis.com/css2?family=Cormorant:ital,wght@0,300;0,400;0,500;0,600;1,300;1,400;1,500&family=DM+Sans:ital,opsz,wght@0,9..40,300;0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&family=Space+Mono:ital,wght@0,400;0,700;1,400&display=swap');

@font-face{
  font-family:"orbiter";
  src:url("/res/orbiter.otf") format("opentype");
  font-weight:600;font-display:swap;
}

:root{
  --gold-300:oklch(80% 0 0);
  --gold-400:oklch(70% 0 0);
  --gold-500:oklch(60% 0 0);
  --n-50:oklch(90% 0 0);
  --n-100:oklch(85% 0 0);
  --n-200:oklch(80% 0 0);
  --n-300:oklch(72% 0 0);
  --n-400:oklch(60% 0 0);
  --n-600:oklch(40% 0 0);
  --n-700:oklch(30% 0 0);
  --n-800:oklch(24% 0 0);
  --n-900:oklch(18% 0 0);
  --n-950:oklch(15% 0 0);

  --up-bg:var(--n-950);
  --up-bg2:var(--n-900);
  --up-panel:var(--n-900);
  --up-panel2:var(--n-800);
  --up-border:oklch(100% 0 0 / 0.06);
  --up-border-strong:oklch(100% 0 0 / 0.12);
  --up-text:var(--n-100);
  --up-head:var(--n-50);
  --up-muted:var(--n-400);
  --up-accent:var(--gold-400);
  --up-accent-strong:var(--gold-500);

  /* astrological element colours — the only non-gold colour in the UI */
  --up-fire:#aaaaaa;--up-earth:#888888;--up-air:#cccccc;--up-water:#eeeeee;
  --up-red:#aaaaaa;

  --font-display:'Cormorant',Georgia,serif;
  --font-body:'DM Sans','Segoe UI',system-ui,sans-serif;
  --font-mono:'Space Mono','Courier New',monospace;
  --ease:cubic-bezier(0.25,1,0.5,1);
}

/* Theme: Cosmic Purple */
[data-theme="purple"] {
  --up-bg: oklch(15% 0.04 300);
  --up-bg2: oklch(20% 0.05 300);
  --up-panel: oklch(22% 0.06 300);
  --up-panel2: oklch(28% 0.08 300);
  --up-border: oklch(70% 0.1 300 / 0.15);
  --up-border-strong: oklch(70% 0.1 300 / 0.3);
  --up-text: oklch(90% 0.02 300);
  --up-head: oklch(98% 0.02 300);
  --up-muted: oklch(75% 0.04 300);
  --up-accent: oklch(70% 0.2 310);
  --up-accent-strong: oklch(60% 0.2 310);
}

/* Theme: Midnight Blue */
[data-theme="blue"] {
  --up-bg: oklch(14% 0.03 260);
  --up-bg2: oklch(18% 0.04 260);
  --up-panel: oklch(20% 0.05 260);
  --up-panel2: oklch(26% 0.06 260);
  --up-border: oklch(70% 0.1 260 / 0.15);
  --up-border-strong: oklch(70% 0.1 260 / 0.3);
  --up-text: oklch(90% 0.02 260);
  --up-head: oklch(98% 0.02 260);
  --up-muted: oklch(75% 0.04 260);
  --up-accent: oklch(75% 0.15 240);
  --up-accent-strong: oklch(65% 0.15 240);
}

/* Theme: Emerald Nebula */
[data-theme="green"] {
  --up-bg: oklch(15% 0.03 160);
  --up-bg2: oklch(19% 0.04 160);
  --up-panel: oklch(21% 0.05 160);
  --up-panel2: oklch(27% 0.06 160);
  --up-border: oklch(70% 0.1 160 / 0.15);
  --up-border-strong: oklch(70% 0.1 160 / 0.3);
  --up-text: oklch(90% 0.02 160);
  --up-head: oklch(98% 0.02 160);
  --up-muted: oklch(75% 0.04 160);
  --up-accent: oklch(75% 0.18 150);
  --up-accent-strong: oklch(65% 0.18 150);
}

/* Theme: Solar Flare */
[data-theme="red"] {
  --up-bg: oklch(14% 0.03 20);
  --up-bg2: oklch(18% 0.04 20);
  --up-panel: oklch(20% 0.05 20);
  --up-panel2: oklch(26% 0.06 20);
  --up-border: oklch(70% 0.1 20 / 0.15);
  --up-border-strong: oklch(70% 0.1 20 / 0.3);
  --up-text: oklch(90% 0.02 20);
  --up-head: oklch(98% 0.02 20);
  --up-muted: oklch(75% 0.04 20);
  --up-accent: oklch(65% 0.22 30);
  --up-accent-strong: oklch(55% 0.22 30);
}

/* Theme: Golden Dawn */
[data-theme="gold"] {
  --up-bg: oklch(16% 0.02 80);
  --up-bg2: oklch(20% 0.03 80);
  --up-panel: oklch(22% 0.04 80);
  --up-panel2: oklch(28% 0.05 80);
  --up-border: oklch(70% 0.1 80 / 0.15);
  --up-border-strong: oklch(70% 0.1 80 / 0.3);
  --up-text: oklch(92% 0.02 80);
  --up-head: oklch(98% 0.02 80);
  --up-muted: oklch(75% 0.04 80);
  --up-accent: oklch(80% 0.15 80);
  --up-accent-strong: oklch(70% 0.15 80);
}

/* Theme: Cyberpunk City */
[data-theme="cyberpunk"] {
  --up-bg: oklch(14% 0.05 280);
  --up-bg2: oklch(18% 0.06 290);
  --up-panel: oklch(20% 0.06 290);
  --up-panel2: oklch(26% 0.08 300);
  --up-border: oklch(50% 0.15 200 / 0.4);
  --up-border-strong: oklch(50% 0.15 200 / 0.7);
  --up-text: oklch(90% 0.03 280);
  --up-head: oklch(90% 0.1 200);
  --up-muted: oklch(70% 0.05 290);
  --up-accent: oklch(65% 0.25 350);
  --up-accent-strong: oklch(55% 0.25 350);
}

/* Theme: Synthwave Sunset */
[data-theme="synthwave"] {
  --up-bg: oklch(18% 0.08 300);
  --up-bg2: oklch(22% 0.09 310);
  --up-panel: oklch(25% 0.1 320);
  --up-panel2: oklch(30% 0.12 330);
  --up-border: oklch(60% 0.15 40 / 0.4);
  --up-border-strong: oklch(60% 0.15 40 / 0.7);
  --up-text: oklch(90% 0.05 320);
  --up-head: oklch(75% 0.2 340);
  --up-muted: oklch(75% 0.08 320);
  --up-accent: oklch(85% 0.18 100);
  --up-accent-strong: oklch(75% 0.18 100);
}

/* Theme: Nordic Aurora */
[data-theme="aurora"] {
  --up-bg: oklch(25% 0.02 240);
  --up-bg2: oklch(28% 0.03 240);
  --up-panel: oklch(32% 0.04 240);
  --up-panel2: oklch(38% 0.05 240);
  --up-border: oklch(70% 0.08 230 / 0.5);
  --up-border-strong: oklch(70% 0.08 230 / 0.8);
  --up-text: oklch(92% 0.02 230);
  --up-head: oklch(98% 0 0);
  --up-muted: oklch(80% 0.04 230);
  --up-accent: oklch(80% 0.1 180);
  --up-accent-strong: oklch(70% 0.1 180);
}

/* Theme: Desert Oasis */
[data-theme="desert"] {
  --up-bg: oklch(22% 0.05 50);
  --up-bg2: oklch(26% 0.06 45);
  --up-panel: oklch(30% 0.08 40);
  --up-panel2: oklch(36% 0.1 40);
  --up-border: oklch(70% 0.15 80 / 0.4);
  --up-border-strong: oklch(70% 0.15 80 / 0.7);
  --up-text: oklch(90% 0.03 60);
  --up-head: oklch(90% 0.05 70);
  --up-muted: oklch(75% 0.06 60);
  --up-accent: oklch(75% 0.15 190);
  --up-accent-strong: oklch(65% 0.15 190);
}

/* Theme: Vampire Night */
[data-theme="vampire"] {
  --up-bg: oklch(12% 0.01 10);
  --up-bg2: oklch(16% 0.03 15);
  --up-panel: oklch(20% 0.06 15);
  --up-panel2: oklch(26% 0.08 15);
  --up-border: oklch(40% 0.15 15 / 0.6);
  --up-border-strong: oklch(40% 0.15 15 / 0.9);
  --up-text: oklch(85% 0.02 10);
  --up-head: oklch(85% 0.01 250);
  --up-muted: oklch(65% 0.04 15);
  --up-accent: oklch(55% 0.22 15);
  --up-accent-strong: oklch(45% 0.22 15);
}

/* Theme: Toxic Jungle */
[data-theme="toxic"] {
  --up-bg: oklch(18% 0.05 140);
  --up-bg2: oklch(22% 0.06 140);
  --up-panel: oklch(25% 0.08 140);
  --up-panel2: oklch(32% 0.1 140);
  --up-border: oklch(85% 0.2 110 / 0.4);
  --up-border-strong: oklch(85% 0.2 110 / 0.7);
  --up-text: oklch(90% 0.03 130);
  --up-head: oklch(95% 0.05 120);
  --up-muted: oklch(70% 0.06 140);
  --up-accent: oklch(75% 0.2 130);
  --up-accent-strong: oklch(65% 0.2 130);
}

/* Theme: Ocean Abyss */
[data-theme="ocean"] {
  --up-bg: oklch(15% 0.06 240);
  --up-bg2: oklch(19% 0.07 250);
  --up-panel: oklch(22% 0.08 260);
  --up-panel2: oklch(28% 0.1 260);
  --up-border: oklch(60% 0.18 250 / 0.5);
  --up-border-strong: oklch(60% 0.18 250 / 0.8);
  --up-text: oklch(90% 0.03 240);
  --up-head: oklch(95% 0.1 200);
  --up-muted: oklch(70% 0.06 250);
  --up-accent: oklch(80% 0.15 190);
  --up-accent-strong: oklch(70% 0.15 190);
}

html,body{background:var(--up-bg);color:var(--up-text);min-height:100%;}
body{font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden;line-height:1.65;font-size:15px;}

/* subtle film-grain like the brand site */
body::before{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:9999;opacity:.018;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:170px 170px;
}

h1,h2,h3{font-family:var(--font-display);color:var(--up-head);line-height:1.06;}
h1{font-weight:300;letter-spacing:-0.04em;}
h2{font-weight:400;letter-spacing:-0.025em;}
h3{font-weight:400;letter-spacing:-0.015em;}
h1.ui.header,h2.ui.header,h3.ui.header{font-family:var(--font-display);font-weight:400;color:var(--up-head);}
.ui.header .sub.header{font-family:var(--font-body);}
h4.ui.header,h4{font-family:var(--font-body);font-weight:600;color:var(--up-head);letter-spacing:-0.01em;}
em{font-style:italic;color:var(--up-accent);}
code,kbd{font-family:var(--font-mono);font-size:.88em;background:oklch(100% 0 0 / .04);border:1px solid var(--up-border);padding:.1em .35em;}
pre{font-family:var(--font-mono);font-size:.85em;}

.up-main{padding:2.5rem 0 5rem;}
.up-muted{color:var(--up-muted)!important;}

/* ── Top bar ─────────────────────────────────────────── */
.up-topbar{background:var(--up-bg)!important;border-bottom:1px solid var(--up-border)!important;min-height:5.5rem;box-shadow:0 4px 24px rgba(0,0,0,0.4);}
.up-brand{padding:.4rem 0!important;display:flex;align-items:center;background:transparent!important;}
.up-brand img{height:2.6rem!important;width:auto!important;max-width:none!important;display:block;object-fit:contain;transition:transform 0.3s var(--ease);}
.up-brand:hover img{transform:scale(1.03);}
.up-topbar .item{color:var(--up-text)!important;font-weight:600;font-size:1rem;padding:0 1.25rem!important;background:transparent!important;position:relative;transition:color 0.3s var(--ease);}
.up-topbar .item:hover{color:var(--up-head)!important;}
.up-topbar .item::after{content:'';position:absolute;bottom:0;left:1.25rem;right:1.25rem;height:2px;background:var(--up-head);transform:scaleX(0);transition:transform 0.3s var(--ease);transform-origin:center;}
.up-topbar .item:hover::after, .up-topbar .active.item::after{transform:scaleX(1);}
.up-topbar .up-brand::after, .up-topbar .up-hamburger::after{display:none!important;}
.up-topbar .active.item{color:var(--up-head)!important;}
.up-topbar .dropdown .menu{margin-top:0!important;border-radius:0 0 8px 8px!important;border:1px solid var(--up-border)!important;box-shadow:0 12px 40px rgba(0,0,0,0.6)!important;padding:.5rem!important;display:block!important;opacity:0;visibility:hidden;transform:translateY(-10px);transition:all 0.3s var(--ease);pointer-events:none;}
.up-topbar .dropdown:hover .menu{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto;}
.up-topbar .dropdown .item{font-size:.95rem!important;padding:.7rem 1rem!important;border-radius:6px!important;margin-bottom:2px;transition:background 0.2s var(--ease),color 0.2s var(--ease);}

/* ── Hero (homepage) ─────────────────────────────────── */
.up-hero{position:relative;padding:3rem 0 2.5rem;}
.up-hero-orb{position:absolute;border-radius:50%!important;filter:blur(90px);pointer-events:none;z-index:0;}
.up-hero-orb.a{width:560px;height:560px;background:oklch(50% 0 0 / .16);top:-160px;right:-120px;}
.up-hero-orb.b{width:380px;height:380px;background:oklch(40% 0 0 / .12);bottom:-120px;left:-120px;}
.up-hero .up-eyebrow,.up-hero h1,.up-hero p,.up-hero .up-hero-cta{position:relative;z-index:1;}
.up-hero-cta{display:flex;gap:.8rem;flex-wrap:wrap;margin-top:1.4rem;}
.up-eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-body);font-size:.72rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--up-accent);border:1px solid oklch(74% 0 0 / .28);background:oklch(74% 0 0 / .06);padding:.34rem .8rem;margin-bottom:1.4rem;}
.up-eyebrow-dot{width:6px;height:6px;border-radius:50%!important;background:var(--up-accent);animation:up-pulse 2s ease-in-out infinite;}
@keyframes up-pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.4;transform:scale(.8);}}
.up-hero h1{font-size:clamp(3rem,8vw,6rem);max-width:16ch;margin-bottom:1.1rem;font-weight:300;}
.up-hero p{color:var(--up-muted);font-size:clamp(1rem,2vw,1.18rem);max-width:50ch;line-height:1.7;margin-bottom:1.8rem;}

/* ── Buttons ─────────────────────────────────────────── */
.ui.button.up-go{background:var(--up-accent-strong);color:#1a1a1a;font-family:var(--font-body);font-weight:700;letter-spacing:.01em;transition:transform .15s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease);}
.ui.button.up-go:hover{background:var(--up-accent);color:#1a1a1a;transform:translateY(-1px);box-shadow:0 8px 24px oklch(66% 0 0 / .26);}
.ui.button.up-go:active{transform:scale(.98);}
.ui.basic.inverted.button{box-shadow:inset 0 0 0 1px var(--up-border-strong)!important;color:var(--up-text)!important;font-weight:600;}
.ui.basic.inverted.button:hover{background:oklch(100% 0 0 / .04)!important;color:var(--up-head)!important;}

/* ── Panels / cards ──────────────────────────────────── */
.ui.segment.up-card{background:var(--up-panel);border:1px solid var(--up-border);color:var(--up-text);box-shadow:none;}
.up-card .header,.up-card h3,.up-card h4{color:var(--up-head)!important;}

/* ── Tool list (editorial, not identical icon-cards) ──── */
.up-cat-title{font-family:var(--font-body);color:var(--up-muted);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:700;margin:2.4rem 0 1rem;padding-bottom:.5rem;border-bottom:1px solid var(--up-border);}
.up-tool{display:flex;align-items:flex-start;gap:.85rem;background:transparent;border:1px solid var(--up-border);padding:1.05rem 1.1rem;height:100%;transition:.18s var(--ease);color:var(--up-text);}
.up-tool:hover{border-color:oklch(74% 0 0 / .5);background:oklch(74% 0 0 / .035);color:var(--up-text);transform:translateY(-2px);}
.up-tool .icon{color:var(--up-accent);font-size:1.05rem!important;margin-top:.15rem;width:1.2rem;flex:none;}
.up-tool .up-tool-body{flex:1;}
.up-tool .up-tool-title{font-family:var(--font-body);font-weight:700;font-size:1rem;margin:0 0 .25rem;color:var(--up-head);}
.up-tool .up-tool-desc{color:var(--up-muted);font-size:.86rem;line-height:1.45;}
.up-tool.up-soon{opacity:.5;}
.up-soon-tag{float:right;font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--up-muted);border:1px solid var(--up-border);padding:.05rem .4rem;}

/* ── Forms ───────────────────────────────────────────── */
.ui.form .field>label{color:var(--up-text);font-weight:600;font-size:.82rem;}
.ui.form input,.ui.form select,.ui.form textarea,.ui.selection.dropdown{background:oklch(20% 0 0)!important;color:var(--up-text)!important;border:1px solid var(--up-border)!important;font-family:var(--font-body);}
.ui.form input::placeholder{color:var(--n-600);}
.ui.form input:focus,.ui.form select:focus,.ui.selection.dropdown:focus{border-color:var(--up-accent)!important;}

/* ── Tables ──────────────────────────────────────────── */
.ui.inverted.table.up-table{background:var(--up-panel);border:1px solid var(--up-border);color:var(--up-text);}
.up-table thead th{background:var(--up-panel2)!important;color:var(--up-head)!important;font-family:var(--font-body);}
.up-table td{border-color:var(--up-border)!important;}
.up-retro{color:var(--up-red);font-weight:700;}

/* ── Accordion (interpretations) ─────────────────────── */
/* Fomantic .ui.styled.accordion defaults to a white card — force dark theme
   so interpretation text, muted spans and inverted headers stay readable. */
.ui.accordion.up-interp-accordion,
.ui.styled.accordion.up-interp-accordion{
  background:var(--up-panel)!important;
  border:1px solid var(--up-border)!important;
  border-radius:0;
  box-shadow:none!important;
  color:var(--up-text)!important;
}
/* Site is dark everywhere — any Fomantic accordion text must be light. */
.ui.accordion .title{
  color:var(--up-head)!important;
  font-family:var(--font-body);
  transition:background .15s var(--ease);
}
.ui.accordion .title>.dropdown.icon{color:var(--up-accent)!important;}
.ui.accordion .content{color:var(--up-text)!important;background:transparent!important;}
.ui.accordion .content p,
.ui.accordion .content li,
.ui.accordion .content strong{color:var(--up-text);}
.ui.accordion .content .up-muted,
.ui.accordion .title .up-muted{color:var(--up-muted)!important;}
.ui.accordion .content .ui.inverted.header,
.ui.accordion .content h5{color:var(--up-head)!important;}
.up-interp-accordion .title{border-top:1px solid var(--up-border)!important;}
.up-interp-accordion .title:first-child{border-top:none!important;}
.up-interp-accordion .title:hover{background:oklch(100% 0 0 / .03);}

/* ── Messages (keep on-theme, never white) ───────────── */
.ui.message{
  background:var(--up-panel)!important;
  color:var(--up-text)!important;
  box-shadow:0 0 0 1px var(--up-border) inset!important;
  border-radius:0;
}
.ui.message .header{color:var(--up-head)!important;}
.ui.info.message{box-shadow:0 0 0 1px var(--up-border-strong) inset!important;}
.ui.error.message,.ui.negative.message{box-shadow:0 0 0 1px oklch(62% 0.16 25 / .55) inset!important;}
.ui.message .list,.ui.message li,.ui.message p{color:var(--up-text)!important;}

/* ── Chart wheel / svg ───────────────────────────────── */
.up-wheel-wrap{display:flex;justify-content:center;}
.up-wheel{max-width:100%;height:auto;}
.up-moon{vertical-align:middle;}

/* ── Aspect grid ─────────────────────────────────────── */
.up-aspgrid{border-collapse:collapse;font-size:.78rem;font-family:var(--font-mono);}
.up-aspgrid td,.up-aspgrid th{border:1px solid var(--up-border);width:1.7rem;height:1.7rem;text-align:center;}
.up-aspgrid th{background:var(--up-panel2);color:var(--up-muted);}

/* ── Footer ──────────────────────────────────────────── */
.up-footer{border-top:1px solid var(--up-border);background:oklch(14% 0 0 / .6);padding:3rem 0 2.5rem;margin-top:3rem;}
.up-footer h4{font-family:var(--font-display);font-weight:400;font-size:1.3rem;}

/* ── Misc ────────────────────────────────────────────── */
.up-pill{display:inline-block;padding:.18rem .65rem;background:oklch(100% 0 0 / .04);border:1px solid var(--up-border);color:var(--up-muted);font-size:.76rem;font-weight:500;margin-right:.35rem;}
a{color:var(--up-accent);text-decoration:none;transition:color .2s var(--ease);}
a:hover{color:var(--gold-300);}
.ui.divider{border-top-color:var(--up-border)!important;border-bottom-color:oklch(100% 0 0 / .03)!important;}
.up-grad{font-style:italic;color:var(--up-accent);}
.up-sign-fire{color:var(--up-fire);} .up-sign-earth{color:var(--up-earth);}
.up-sign-air{color:var(--up-air);} .up-sign-water{color:var(--up-water);}

/* ── Kundli ──────────────────────────────────────────── */
.up-kundli{border-collapse:collapse;width:420px;max-width:100%;background:var(--up-panel);}
.up-kundli td{border:1px solid var(--up-border);width:25%;height:90px;vertical-align:top;padding:4px 6px;}
.up-kundli-sign{color:var(--up-muted);font-size:.85rem;}
.up-kundli-planets{color:var(--up-text);font-size:1.05rem;line-height:1.5;margin-top:2px;}
.up-kundli-center{background:oklch(20% 0 0);}

/* ── Event / calendar ────────────────────────────────── */
.up-eventrow{display:flex;justify-content:space-between;gap:1rem;padding:.55rem .2rem;border-bottom:1px solid var(--up-border);}
.up-eventrow .when{color:var(--up-muted);white-space:nowrap;font-family:var(--font-mono);font-size:.78rem;font-variant-numeric:tabular-nums;}
.up-eph{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:.8rem;}
.up-eph td,.up-eph th{padding:.3rem .45rem!important;}
.up-cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;}
.up-cal .dow{color:var(--up-muted);text-align:center;font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;}
.up-cal .day{background:var(--up-panel);border:1px solid var(--up-border);min-height:78px;padding:5px 7px;}
.up-cal .day .num{color:var(--up-muted);font-size:.78rem;font-family:var(--font-mono);}
.up-cal .day .ev{font-size:.95rem;line-height:1.3;}
.up-cal .day.empty{background:transparent;border:none;}
.up-acg{width:100%;height:auto;background:oklch(16% 0 0);border:1px solid var(--up-border);}

/* ── Blocky: no rounded corners (SVG art unaffected) ──── */
*,*::before,*::after{border-radius:0!important;}

/* ── Recall button (birth data from localStorage) ─────── */
.up-recall-btn{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-body);font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--up-accent);background:oklch(100% 0 0 / .03);border:1px solid var(--up-border);padding:.12rem .45rem;cursor:pointer;margin-left:.55rem;vertical-align:middle;transition:background .15s,color .15s;}
.up-recall-btn:hover{background:oklch(100% 0 0 / .08);color:var(--up-head);}

/* ── "I don't know my birth time" ─────────────────────── */
.up-time-unknown{display:flex;align-items:center;gap:.4rem;margin-top:.5rem;font-size:.82rem;font-weight:400;color:var(--up-muted);cursor:pointer;}
.up-time-unknown input{width:auto!important;margin:0!important;cursor:pointer;flex:0 0 auto;}
.ui.form input[type="time"]:disabled{opacity:.45;cursor:not-allowed;}
.up-time-note{display:flex;gap:.6rem;align-items:flex-start;margin-top:1rem;padding:.8rem 1rem;border:1px solid var(--up-border);border-left:3px solid var(--up-accent);border-radius:8px;background:oklch(100% 0 0 / .02);color:var(--up-muted);font-size:.9rem;line-height:1.55;}
.up-time-note .icon{color:var(--up-accent);margin-top:.12rem;flex:0 0 auto;}

/* ── Per-tool teaching panel (How to use) ─────────────── */
.up-guide{margin:3rem auto 0;padding:1.8rem 1.6rem;border:1px solid var(--up-border);border-radius:14px;background:oklch(100% 0 0 / .015);}
.up-guide-h{font-family:var(--font-display);font-weight:400;font-size:1.5rem;color:var(--up-head);margin:0 0 .9rem;}
.up-guide-what{color:var(--up-text);font-size:1.02rem;line-height:1.7;margin:0 0 1.3rem;}
.up-guide-cols{display:grid;grid-template-columns:1fr 1fr;gap:1.6rem;}
.up-guide-col h3{font-family:var(--font-body);font-size:.74rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--up-accent);margin:0 0 .6rem;}
.up-guide-col p{color:var(--up-text);line-height:1.65;margin:0;}
.up-guide-steps{margin:0;padding-left:1.15rem;color:var(--up-text);line-height:1.6;}
.up-guide-steps li{margin-bottom:.5rem;}
.up-guide-tip{margin:1.4rem 0 0;padding-top:1.1rem;border-top:1px solid var(--up-border);color:var(--up-muted);font-size:.95rem;line-height:1.6;}
.up-guide-tip-k{display:inline-block;color:var(--up-accent);font-weight:700;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;margin-right:.5rem;}
@media (max-width:640px){.up-guide-cols{grid-template-columns:1fr;gap:1.2rem;}.up-guide{padding:1.4rem 1.1rem;}}

/* ── Share / save-chart bar ───────────────────────────── */
.up-sharebar{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:.5rem;margin:1rem auto 0;max-width:660px;}
.up-sharebar .up-share-label{width:100%;text-align:center;font-family:var(--font-body);font-size:.66rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--up-muted);margin-bottom:.15rem;}
.up-share-btn{display:inline-flex;align-items:center;gap:.4rem;cursor:pointer;font-family:var(--font-body);font-size:.78rem;font-weight:600;color:var(--up-text);background:oklch(100% 0 0 / .04);border:1px solid var(--up-border);border-radius:999px;padding:.42rem .85rem;line-height:1;transition:background .15s,border-color .15s,color .15s,transform .1s;text-decoration:none;}
.up-share-btn:hover{background:oklch(100% 0 0 / .09);border-color:var(--up-accent);color:var(--up-head);}
.up-share-btn:active{transform:scale(.96);}
.up-share-btn.up-share-primary{background:var(--up-accent-strong);color:#1a1a1a;border-color:transparent;font-weight:700;}
.up-share-btn.up-share-primary:hover{color:#1a1a1a;filter:brightness(1.06);}
.up-share-btn .ic{font-size:1rem;line-height:1;}
.up-share-btn.up-copied{border-color:var(--up-accent);color:var(--up-accent);}

/* ── Animated rainbow "traian" link + donate button ──── */
.up-traian-wrap{display:flex;align-items:center;justify-content:center;gap:1.4rem;margin-top:1.6rem;flex-wrap:wrap;}
.up-rainbow{display:inline-flex;text-decoration:none;font-family:var(--font-display);font-weight:600;font-size:1.5rem;letter-spacing:.03em;line-height:1;}
.up-rainbow span{display:inline-block;will-change:transform,color;color:var(--up-muted);}
.up-rainbow:focus-visible{outline:2px solid var(--up-accent);outline-offset:3px;}
.up-donate{border:1px solid var(--up-border);border-radius:0;padding:.4rem 1rem;font-size:1.15rem;transition:border-color .2s var(--ease),box-shadow .2s var(--ease);}
.up-donate:hover{border-color:var(--up-accent);box-shadow:0 0 0 1px var(--up-accent) inset;}

/* ── Form contrast (Fomantic dark fixes) ─────────────── */
.ui.form label,.ui.form .field>label,.ui.form .inline.fields>label,.ui.form .inline.field>label{color:var(--up-text)!important;}
.ui.dropdown,.ui.dropdown>.text{color:var(--up-text)!important;}
.ui.dropdown>.default.text{color:var(--up-muted)!important;}
.ui.dropdown .menu{background:oklch(20% 0 0)!important;border:1px solid var(--up-border)!important;}
.ui.dropdown .menu>.item{color:var(--up-text)!important;}
.ui.dropdown .menu>.item:hover,.ui.dropdown .menu>.item.active.selected{background:var(--up-panel2)!important;color:var(--up-head)!important;}
select,select option{color:var(--up-text)!important;background:oklch(20% 0 0)!important;}
.ui.checkbox label,.ui.radio.checkbox label{color:var(--up-text)!important;}
.ui.checkbox label::before,.ui.radio.checkbox label::before{background:oklch(20% 0 0)!important;border:1px solid var(--up-border)!important;}
.ui.checkbox label::after,.ui.radio.checkbox input:checked~label::after{color:var(--up-text)!important;background:var(--up-accent)!important;}
::placeholder{color:var(--n-600)!important;}

/* ── GDPR Banner & Modals ───────────────────────────── */
.up-gdpr-banner {
  position: fixed; bottom: 20px; right: 20px; width: 340px; z-index: 1000;
  background: var(--up-panel); border: 1px solid var(--up-accent);
  padding: 1.2rem; box-shadow: 0 8px 24px rgba(0,0,0,0.6);
}
.up-gdpr-content p { font-size: 0.85rem; color: var(--up-text); margin-bottom: 0.8rem; }
.up-modal-overlay {
  position: fixed; inset: 0; background: rgba(0,0,0,0.8); z-index: 1001;
}
.up-modal {
  position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%);
  background: var(--up-panel); border: 1px solid var(--up-border);
  width: 90%; max-width: 400px; z-index: 1002; padding: 1.5rem;
}
.up-modal-header { font-family: var(--font-display); font-size: 1.5rem; color: var(--up-head); margin-bottom: 1rem; display: flex; justify-content: space-between; align-items: center; }
.up-modal-close { background: none; border: none; color: var(--up-muted); font-size: 1.5rem; cursor: pointer; }
.up-modal-body p { font-size: 0.95rem; color: var(--up-text); line-height: 1.5; }

/* ── Mobile Menu ─────────────────────────────────────── */
.up-hamburger { display: none !important; }
.up-mobile-menu {
  position: fixed; top: 0; left: 0; right: 0; bottom: 0;
  background: var(--up-bg); z-index: 2000;
  overflow-y: auto; padding: 1.5rem;
  opacity: 0; visibility: hidden; transform: translateX(100%);
  transition: all 0.4s var(--ease);
}
.up-mobile-menu.is-active {
  opacity: 1; visibility: visible; transform: translateX(0);
}
.up-mobile-header { display: flex; justify-content: space-between; align-items: center; padding-bottom: 1.5rem; border-bottom: 1px solid var(--up-border); margin-bottom: 1.5rem; }
.up-mobile-links { display: flex; flex-direction: column; gap: 0.5rem; }
.up-mobile-links .item { color: var(--up-text); font-size: 1.25rem; padding: 0.6rem 0; font-weight: 600; display: block; border-bottom: 1px solid rgba(255,255,255,0.02); }
.up-mobile-links .item:hover { color: var(--up-head); }
.up-mobile-title { color: var(--up-head); font-family: var(--font-display); font-size: 1.6rem; margin-top: 1.5rem; margin-bottom: 0.5rem; }
.up-mobile-divider { border-bottom: 1px solid var(--up-border); margin: 0.5rem 0; }

/* ── Hover animations ────────────────────────────────── */

/* Tool cards: icon spins, shadow blooms */
.up-tool .icon{transition:transform .3s var(--ease),color .2s var(--ease);}
.up-tool:hover{box-shadow:0 12px 40px oklch(0% 0 0 / .35),0 0 0 1px oklch(74% 0 0 / .15);transform:translateY(-4px);}
.up-tool:hover .icon{transform:scale(1.2) rotate(-10deg);color:var(--up-head);}

/* Primary button: shimmer sweep on hover */
.ui.button.up-go{position:relative;overflow:hidden;}
.ui.button.up-go::before{content:'';position:absolute;inset:0;background:linear-gradient(105deg,transparent 30%,oklch(100% 0 0 / .22) 50%,transparent 70%);transform:translateX(-110%);transition:transform 0s;}
.ui.button.up-go:hover::before{transform:translateX(110%);transition:transform .45s ease;}
.ui.button.up-go:hover{box-shadow:0 8px 30px oklch(66% 0 0 / .38);}

/* Cards: subtle lift + border brightens */
.ui.segment.up-card{transition:border-color .2s var(--ease),box-shadow .2s var(--ease),transform .2s var(--ease);}
.ui.segment.up-card:hover{border-color:var(--up-border-strong);box-shadow:0 6px 28px oklch(0% 0 0 / .28);transform:translateY(-2px);}

/* Event rows: slide-indent on hover */
.up-eventrow{transition:background .15s var(--ease),padding-left .2s var(--ease);}
.up-eventrow:hover{background:oklch(100% 0 0 / .025);padding-left:.5rem;}

/* Calendar days: scale + border accent */
.up-cal .day{transition:border-color .15s,background .15s,transform .15s;}
.up-cal .day:hover{border-color:oklch(74% 0 0 / .5);background:var(--up-panel2);transform:scale(1.04);}

/* Table rows: subtle row highlight */
.ui.inverted.table.up-table tbody tr{transition:background .12s;}
.ui.inverted.table.up-table tbody tr:hover td{background:oklch(100% 0 0 / .03)!important;}

/* Footer links: underline grows from left */
.up-footer .ui.link.list .item{position:relative;display:inline-block;transition:color .18s var(--ease),padding-left .18s var(--ease);}
.up-footer .ui.link.list .item:hover{color:var(--up-head)!important;padding-left:.35rem;}

/* Navbar dropdown items: slide right on hover */
.up-topbar .dropdown .item:hover{padding-left:1.4rem!important;}

/* Form inputs: gold focus glow */
.ui.form input:focus,.ui.form select:focus,.ui.form textarea:focus{box-shadow:0 0 0 2px oklch(74% 0 0 / .18)!important;outline:none;}

/* Moon phase SVG: gentle float on hover */
@keyframes up-float{0%,100%{transform:translateY(0);}50%{transform:translateY(-3px);}}
.up-moon:hover{animation:up-float 1.8s ease-in-out infinite;cursor:default;}

/* Aspect grid cells */
.up-aspgrid td,.up-aspgrid th{transition:background .1s,color .1s;}
.up-aspgrid td:hover{background:var(--up-panel2)!important;color:var(--up-head)!important;cursor:default;}

/* Kundli cells */
.up-kundli td{transition:background .15s;}
.up-kundli td:hover{background:var(--up-panel2)!important;}

/* Recall button: slight lift */
.up-recall-btn:hover{transform:translateY(-1px);}

/* Mobile nav links: indent slide */
.up-mobile-links .item{transition:color .15s var(--ease),padding-left .18s var(--ease);}
.up-mobile-links .item:hover{padding-left:.6rem!important;color:var(--up-accent)!important;}

/* Eyebrow: border brightens */
.up-eyebrow{transition:border-color .2s var(--ease),background .2s var(--ease);}
.up-eyebrow:hover{border-color:oklch(74% 0 0 / .55);background:oklch(74% 0 0 / .1);}

/* Pills: lift */
.up-pill{transition:background .15s,border-color .15s,transform .15s,color .15s;}
.up-pill:hover{background:oklch(100% 0 0 / .07);border-color:var(--up-border-strong);transform:translateY(-1px);color:var(--up-head);}

/* Basic inverted button: cleaner ripple */
.ui.basic.inverted.button{transition:background .18s var(--ease),color .18s var(--ease),transform .15s var(--ease),box-shadow .15s var(--ease);}
.ui.basic.inverted.button:hover{transform:translateY(-1px)!important;box-shadow:0 4px 16px oklch(0% 0 0 / .25)!important;}

@media (max-width: 768px) {
  .up-nav-links { display: none !important; }
  .up-hamburger { display: flex !important; align-items: center; padding: 0.5rem !important; }
  .up-topbar { min-height: 4.5rem; }
  .up-brand img { height: 2rem !important; }
}
