/* Cabal Tellus identity: obsidian, living emerald, and antique gold. */
:root {
  --background: #06100d;
  --foreground: #f4f4e9;
  --card: #0a1712;
  --card-foreground: #f4f4e9;
  --popover: #08130f;
  --popover-foreground: #f4f4e9;
  --primary: #16ad76;
  --primary-foreground: #03100b;
  --secondary: #182016;
  --secondary-foreground: #eef5e7;
  --muted: #0d1b15;
  --muted-foreground: #91a59b;
  --accent: #c99a3d;
  --accent-foreground: #120d04;
  --border: #254337;
  --input: #183128;
  --ring: #35d99a;
  --ink: #040b08;
  --blue: #22c889;
  --violet: #c99a3d;
  --ice: #bff7db;
  --line: rgba(80, 190, 139, .22);
  --portal-panel: rgba(7, 19, 14, .94);
  --portal-line: rgba(84, 187, 137, .23);
  --portal-soft: #91a69a;
  --portal-blue: #37d696;
  --portal-green: #64e5ad;
  --portal-red: #ff8294;
  --portal-gold: #d7ad58;
}

html,
body { background: #040b08; }
::selection { background: rgba(32, 183, 123, .5); color: #fff; }

.site-header,
.portal-header {
  border-bottom-color: rgba(196, 151, 60, .22);
  background: linear-gradient(180deg, rgba(3, 11, 8, .97), rgba(4, 14, 10, .78));
  box-shadow: 0 10px 45px rgba(0, 0, 0, .28);
}
.site-header::after { background: linear-gradient(90deg, transparent, #c79a43, #24ca88, transparent); }
.brand-mark img,
footer > img { filter: drop-shadow(0 0 11px rgba(34, 200, 137, .22)) drop-shadow(0 2px 6px rgba(0, 0, 0, .85)); }
.main-nav a { color: #c1cec6; }
.main-nav a::after,
.portal-header nav a.is-active::after { background: #d0a248; box-shadow: 0 0 13px rgba(208, 162, 72, .82); }
.header-cta,
.portal-signout {
  border-color: rgba(211, 170, 85, .48);
  background: rgba(42, 107, 75, .18);
  color: #f3efd9;
}
.header-cta:hover,
.portal-signout:hover { border-color: #d5ac54; background: rgba(23, 151, 99, .2); }

.hero-scene { background-image: url("../images/tellus-core-hero.png"); background-position: center 48%; }
.hero-vignette {
  background:
    radial-gradient(circle at 50% 48%, transparent 0 17%, rgba(2, 12, 8, .13) 43%, rgba(2, 8, 6, .8) 97%),
    linear-gradient(180deg, rgba(2, 9, 6, .55), transparent 34%, rgba(2, 9, 6, .15) 63%, #040b08 100%);
}
.energy-ring {
  border-color: rgba(213, 173, 84, .34);
  background: conic-gradient(from 90deg, transparent, rgba(30, 214, 140, .32), transparent 28%, rgba(205, 158, 65, .34), transparent 66%);
  box-shadow: inset 0 0 55px rgba(28, 202, 132, .1), 0 0 80px rgba(20, 182, 117, .11);
}
.hero-logo { width: min(720px, 83vw); filter: drop-shadow(0 16px 24px rgba(0,0,0,.8)) drop-shadow(0 0 20px rgba(24, 210, 134, .22)); }
.hero-kicker,
.eyebrow,
.class-kicker,
.card-label,
.system-card > p,
.portal-eyebrow { color: #d2aa58; }
.hero-kicker span,
.eyebrow span { background: linear-gradient(90deg, transparent, #d2aa58); }
.hero-kicker span:last-child,
.eyebrow span:last-child { background: linear-gradient(90deg, #d2aa58, transparent); }
.hero-copy { color: #d8e3db; text-shadow: 0 2px 20px rgba(0,0,0,.85); }
.action-primary,
.submit-button,
.portal-primary-link,
.vote-action-button,
.email-review-button {
  border-color: rgba(225, 190, 109, .55);
  background: linear-gradient(135deg, #08774f, #19b979 58%, #a77a2f);
  color: #fffdf2;
  box-shadow: inset 0 1px rgba(255,255,255,.13), 0 12px 32px rgba(5, 91, 58, .22);
}
.action-primary:hover,
.submit-button:hover,
.portal-primary-link:hover,
.vote-action-button:hover:not(:disabled) { filter: brightness(1.12) saturate(1.08); }
.action-ghost { border-color: rgba(204, 164, 79, .4); background: rgba(4, 17, 12, .48); }
.scroll-cue b,
.music-toggle-icon { color: #36d99b; text-shadow: 0 0 12px #1ebb80; }

.news-section,
.systems-section,
.voters-section { background: linear-gradient(180deg, #040b08, #07130e 48%, #040b08); }
.section-grid-bg,
.portal-auth-page::before { background-image: linear-gradient(rgba(71, 163, 117, .05) 1px, transparent 1px), linear-gradient(90deg, rgba(71, 163, 117, .05) 1px, transparent 1px); }
.news-card,
.system-card,
.top-voter-board,
.top-voter-row,
.join-card {
  border-color: rgba(82, 177, 133, .22);
  background: linear-gradient(145deg, rgba(12, 29, 21, .96), rgba(4, 12, 8, .98));
}
.news-card.featured,
.top-voter-row:first-child { border-color: rgba(209, 166, 78, .4); box-shadow: inset 0 0 44px rgba(194, 146, 51, .06); }
.card-index,
.system-number,
.top-voter-rank { color: rgba(208, 169, 89, .55); }
.news-card a,
.top-voter-count strong { color: #5be0ac; }
.class-section { background: radial-gradient(circle at 54% 45%, rgba(21, 140, 91, .22), transparent 31rem), #050d09; }
.class-character-aura { background: radial-gradient(circle, rgba(35, 214, 142, .3), transparent 67%); }
.class-character,
.class-character-echo { filter: drop-shadow(0 24px 25px rgba(0,0,0,.83)) drop-shadow(0 0 28px rgba(28, 193, 125, .22)); }
.class-role,
.class-counter { color: #d1a34a; }
.class-tabs button[aria-selected="true"],
.class-tabs button:hover { border-color: rgba(209, 164, 73, .58); background: rgba(22, 122, 81, .18); }
.class-arrow { border-color: rgba(205, 163, 77, .36); background: rgba(5, 19, 13, .6); }
.join-section,
.registration-page { background-color: #040b08; background-image: linear-gradient(rgba(3, 11, 8, .42), #040b08), url("../images/tellus-core-hero.png"); }
.join-glow { background: radial-gradient(circle, rgba(31, 201, 133, .22), transparent 68%); }
.registration-art { background: linear-gradient(180deg, rgba(3, 13, 9, .14), rgba(3, 12, 8, .93)), url("../images/tellus-core-hero.png") center / cover no-repeat; }
.registration-art::after { background: linear-gradient(90deg, transparent, rgba(205, 163, 76, .9), transparent); }
.registration-art > img { width: min(620px, 94%); filter: drop-shadow(0 0 24px rgba(24, 207, 133, .23)); }
.registration-ring { border-color: rgba(210, 169, 82, .3); box-shadow: 0 0 0 62px rgba(34, 186, 122, .025), 0 0 0 124px rgba(198, 150, 57, .018); }
.registration-form { background: linear-gradient(155deg, rgba(10, 27, 20, .98), rgba(4, 12, 8, .99)); }
.registration-form input { border-color: rgba(81, 177, 132, .28); background: rgba(3, 14, 9, .91); }
.registration-form input:focus { border-color: #31cc8d; box-shadow: 0 0 0 3px rgba(30, 191, 127, .13); }
.password-toggle,
.back-link { color: #b8cabe; }
.music-player { border-color: rgba(208, 164, 74, .33); background: rgba(3, 14, 9, .9); box-shadow: 0 14px 45px rgba(0,0,0,.45), inset 0 0 22px rgba(23, 176, 113, .07); }
.music-player.is-playing { border-color: rgba(47, 205, 142, .6); }
.music-player.is-playing::before { background: #28c989; box-shadow: 0 0 13px #28c989; }
footer { border-top-color: rgba(199, 155, 66, .18); background: #030805; }

/* Player and admin portal */
.portal-page,
.portal-auth-page {
  background:
    radial-gradient(circle at 78% 4%, rgba(22, 142, 92, .24), transparent 31rem),
    radial-gradient(circle at 12% 46%, rgba(173, 126, 40, .11), transparent 35rem),
    #040b08;
}
.portal-auth-panel { border-color: var(--portal-line); background: rgba(4, 14, 9, .97); }
.portal-auth-art { background: radial-gradient(circle at 46% 48%, rgba(28, 176, 113, .35), transparent 42%), linear-gradient(145deg, #092319, #030906 74%); }
.portal-auth-art::before { border-color: rgba(211, 170, 83, .25); box-shadow: 0 0 0 54px rgba(40, 187, 125, .04), 0 0 0 108px rgba(194, 145, 48, .025); }
.portal-auth-art img { filter: drop-shadow(0 30px 38px rgba(0,0,0,.9)) drop-shadow(0 0 32px rgba(28, 195, 125, .33)); }
.portal-form { background: linear-gradient(160deg, rgba(10, 27, 20, .99), rgba(4, 13, 9, .99)); }
.portal-form input:not([type="hidden"]):not([type="file"]),
.portal-form select,
.portal-form textarea,
.admin-review-form input,
.package-item-form input,
.package-item-form select {
  border-color: rgba(78, 174, 129, .28);
  background: rgba(3, 14, 9, .93);
}
.portal-form input:focus,
.portal-form select:focus,
.portal-form textarea:focus,
.admin-review-form input:focus,
.package-item-form input:focus,
.package-item-form select:focus { border-color: #2bc98a; box-shadow: 0 0 0 3px rgba(28, 190, 126, .13); }
.portal-welcome,
.balance-card,
.character-account-card,
.player-package-card,
.admin-metric-card,
.admin-request-card,
.cabal-catalog-panel,
.admin-package-card,
.vote-site-card,
.admin-vote-card,
.security-note,
.topup-guide {
  border-color: var(--portal-line);
  background: radial-gradient(circle at 100% 0, rgba(24, 139, 91, .15), transparent 17rem), linear-gradient(145deg, rgba(11, 29, 21, .97), rgba(4, 13, 8, .99));
}
.portal-welcome { background: radial-gradient(circle at 88% 12%, rgba(27, 155, 100, .23), transparent 23rem), linear-gradient(145deg, rgba(10, 28, 20, .97), rgba(4, 13, 8, .96)); }
.balance-icon,
.topup-guide-number,
.vote-site-logo { border-color: rgba(211, 170, 82, .36); background: rgba(22, 139, 90, .14); color: #58dba8; }
.balance-forcegem .balance-icon { color: #72e4b8; border-color: rgba(73, 207, 149, .4); }
.character-account-art { background: radial-gradient(circle at center 80%, rgba(26, 177, 111, .4), transparent 56%); }
.character-account-copy > p,
.player-package-card > small,
.package-radio-copy > small,
.admin-monthly-table td:last-child a,
.admin-request-details a,
.cabal-catalog-copy code { color: #65d9ae; }
.character-account-copy dl,
.admin-request-details { background: rgba(74, 164, 119, .13); }
.character-account-copy dl div,
.admin-request-details div { background: #07140e; }
.portal-empty,
.portal-table { border-color: var(--portal-line); background: rgba(4, 14, 9, .9); }
.portal-table td { border-bottom-color: rgba(78, 167, 125, .11); }
.package-radio-card:has(input:checked),
.package-radio-card.is-selected { border-color: #d1a54e; box-shadow: 0 0 0 2px rgba(209, 165, 78, .15), inset 0 0 35px rgba(25, 143, 93, .1); }
.proof-drop,
.cabal-catalog-upload input[type='file'],
.vote-site-admin-form input[type='file'] { border-color: rgba(80, 181, 134, .4); background: rgba(5, 21, 14, .9); }
.proof-drop:hover { border-color: #d0a34b; background: rgba(25, 126, 83, .16); }
.cabal-catalog-upload input[type='file']::file-selector-button,
.vote-site-admin-form input[type='file']::file-selector-button { border-color: rgba(208, 166, 79, .4); background: rgba(31, 126, 83, .18); color: #f0e9cf; }
.admin-package-request { border-left-color: #c99a3d; background: rgba(42, 119, 79, .13); }
.package-editor,
.package-items-table-wrap { border-color: rgba(77, 173, 128, .2); background: rgba(4, 15, 10, .65); }
.vote-site-card.is-ready { border-color: rgba(209, 168, 82, .48); box-shadow: inset 0 0 45px rgba(24, 149, 96, .11); }
.vote-action-button:disabled { border-color: rgba(101, 119, 108, .25); background: rgba(45, 59, 50, .35); color: #75857c; }
.vote-site-logo span,
.vote-leader-table td:first-child { color: #d8ae57; }

@media (max-width: 760px) {
  .hero-logo { width: min(620px, 94vw); }
  .brand-mark { width: 154px; }
  .registration-art > img { width: min(520px, 96%); }
}
