@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');

/* =========================
   ACTIVE PALETTE: stonefruit
   To switch palettes, comment out the active section and uncomment your choice below
   ========================= */

/* Seventies Sunset Beach Palette
:root {
  --bs-primary: #00769E;      
  --bs-primary-rgb: 0, 118, 158;
  --bs-secondary: #FDB36A;    
  --bs-secondary-rgb: 253, 179, 106;
  --bs-success: #78BAAE;      
  --bs-success-rgb: 120, 186, 174;
  --bs-info: #01C4DA;         
  --bs-info-rgb: 1, 196, 218;
  --bs-warning: #FF751C;      
  --bs-warning-rgb: 255, 117, 28;
  --bs-danger: #FE3E00;       
  --bs-danger-rgb: 254, 62, 0;
  --bs-light: #FFEDBF;        
  --bs-light-rgb: 255, 237, 191;
  --bs-dark: #001E5A;         
  --bs-dark-rgb: 0, 30, 90;
  --bs-body-bg: #001E5A;      
  --bs-body-color: #FDB36A;   
}
*/

/* Global typography */
body {
  font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
  line-height: 1.6;
  background-color: #355070 !important;
  color: #f8b195 !important;
}

h1, h2, h3, h4, h5, h6 {
  font-family: inherit;
  font-weight: 600;
  letter-spacing: 0;
}

/* =========================
   ALTERNATE PALETTES (comment out active, uncomment one below)
   ========================= */

/* Stonefruit Palette - ACTIVE */
:root {
  --bs-primary: #355070;      
  --bs-primary-rgb: 53, 80, 112;
  --bs-secondary: #f67280;    
  --bs-secondary-rgb: 246, 114, 128;
  --bs-success: #b56576;      
  --bs-success-rgb: 181, 101, 118;
  --bs-info: #6d597a;         
  --bs-info-rgb: 109, 89, 122;
  --bs-warning: #eaac8b;      
  --bs-warning-rgb: 234, 172, 139;
  --bs-danger: #e56b6f;       
  --bs-danger-rgb: 229, 107, 111;
  --bs-light: #f8b195;        
  --bs-light-rgb: 248, 177, 149;
  --bs-dark: #355070;         
  --bs-dark-rgb: 53, 80, 112;
  --bs-body-bg: #355070;      
  --bs-body-color: #f8b195;   
}

/* Festive Palette
:root {
  --bs-primary: #01B3A7;      
  --bs-primary-rgb: 1, 179, 167;
  --bs-secondary: #FF806F;    
  --bs-secondary-rgb: 255, 128, 111;
  --bs-success: #76E0B0;      
  --bs-success-rgb: 118, 224, 176;
  --bs-info: #35C7A2;         
  --bs-info-rgb: 53, 199, 162;
  --bs-warning: #F26A5C;      
  --bs-warning-rgb: 242, 106, 92;
  --bs-danger: #C32B37;       
  --bs-danger-rgb: 195, 43, 55;
  --bs-light: #DAF4C4;        
  --bs-light-rgb: 218, 244, 196;
  --bs-dark: #960F16;         
  --bs-dark-rgb: 150, 15, 22;
  --bs-body-bg: #960F16;      
  --bs-body-color: #DAF4C4;   
}
*/

/* Electric Boogaloo Palette
:root {
  --bs-primary: #4F76F6;      
  --bs-primary-rgb: 79, 118, 246;
  --bs-secondary: #B030B0;    
  --bs-secondary-rgb: 176, 48, 176;
  --bs-success: #77F2A1;      
  --bs-success-rgb: 119, 242, 161;
  --bs-info: #5BC8AF;         
  --bs-info-rgb: 91, 200, 175;
  --bs-warning: #8A4FFF;      
  --bs-warning-rgb: 138, 79, 255;
  --bs-danger: #602080;       
  --bs-danger-rgb: 96, 32, 128;
  --bs-light: #EAEAEA;        
  --bs-light-rgb: 234, 234, 234;
  --bs-dark: #1f2b37;         
  --bs-dark-rgb: 31, 43, 55;
  --bs-body-bg: #1f2b37;      
  --bs-body-color: #EAEAEA;   
}
*/

/* Hide navbar ONLY on home page */
body:has(#home-page) .navbar {
  display: none !important;
}

body:has(#home-page) #quarto-header {
  display: none !important;
}

/* Custom blue background for home page */
body:has(#home-page) {
  background-color: #016FA0 !important;
  background: #016FA0 !important;
}

body:has(#home-page) main {
  background-color: #016FA0 !important;
  background: #016FA0 !important;
}

/* Hide page titles on all pages (keeps banner visible) */
.quarto-title .title {
  display: none !important;
}

/* Improve readability on dark background for About/Contact */
body.about-page,
body.contact-page {
  color: #FFEDBF;
}

body.about-page main,
body.contact-page main {
  color: #FFEDBF;
  text-align: justify;
}

body.contact-page .contact-item,
body.contact-page .contact-item a {
  color: #FFEDBF;
}

/* Ensure academicons are visible on contact page */
body.contact-page .contact-item i {
  color: #FFEDBF;
}

/* Hide title bar on home page */
body:has(#home-page) .quarto-title {
  display: none !important;
}

body:has(#home-page) header#title-block-header {
  display: none !important;
}

/* Show navbar on other pages with custom styling */
.navbar,
.navbar-default,
#quarto-header > nav,
#quarto-header {
  background-color: #e0d5f0 !important;
  background: #e0d5f0 !important;
  border: none !important;
  border-top: none !important;
  border-bottom: none !important;
  border-left: none !important;
  border-right: none !important;
  box-shadow: none !important;
  padding-top: 0.3rem !important;
  padding-bottom: 0.3rem !important;
  margin-bottom: 0 !important;
  min-height: 60px !important;
}

/* Remove any divider line below navbar/banner */
#quarto-header,
#quarto-header nav.navbar,
header#title-block-header,
.quarto-title-banner,
.quarto-title,
.page-header {
  border: none !important;
  border-bottom: none !important;
  box-shadow: none !important;
}

hr {
  display: none !important;
  border: 0 !important;
}

.navbar-brand {
  position: relative;
  display: inline-block;
  transition: all 0.3s ease;
}

.navbar-brand:hover,
.navbar-brand:focus {
  opacity: 0.8;
}

.navbar-brand img,
.navbar-logo {
  height: 100%;
  max-height: 95px;
  width: auto;
  margin: 0.2rem 0;
  object-fit: cover;
  display: block;
  transition: all 0.3s ease;
  border-radius: 50%;
  border: 4px solid #b56576;
  box-shadow: inset 0 0 0 2px #b56576;
}

.navbar-brand img:hover,
.navbar-logo:hover {
  filter: drop-shadow(0 0 8px rgba(181, 101, 118, 0.5));
}

/* Search icon styling */
.navbar-nav .bi-search,
.navbar .bi-search,
.quarto-search button svg,
.aa-SubmitIcon {
  color: #b56576 !important;
  stroke: #b56576 !important;
  fill: #b56576 !important;
}

.navbar-nav .bi-search::before,
.navbar .bi-search::before {
  color: #b56576 !important;
}

.nav-link {
  color: #355070 !important;
  font-weight: 600;
  transition: all 0.3s ease;
  padding: 0.5rem 1rem !important;
  border-radius: 4px;
}

.nav-link:hover {
  color: #355070 !important;
  background-color: rgba(181, 101, 118, 0.1);
}

.nav-link.active,
.navbar-nav .nav-link.active {
  background-color: #b56576 !important;
  color: #f8b195 !important;
}

.navbar-nav .nav-link.active:hover {
  background-color: #b56576 !important;
  color: #f8b195 !important;
}

.nav-link.active {
  background-color: #355070 !important;
  color: #f8b195 !important;
}

/* Make banner images full width on non-home pages */
.quarto-title-block {
  padding-top: 0 !important;
  margin-top: 0 !important;
}

#quarto-content > * {
  padding-top: 0 !important;
}

.page-columns {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Full width banner images */
img[src*="banner"] {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  margin-top: 0 !important;
  margin-bottom: 1rem !important;
  display: block;
  object-fit: cover;
  height: auto;
}

/* Full width title-block banner (non-home pages) */
body:not(:has(#home-page)) .quarto-title-banner {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  margin-top: 0 !important;
  padding: 0 !important;
}

/* Remove gap between navbar and banner on all pages */
body:not(:has(#home-page)) main.content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body:not(:has(#home-page)) .column-screen {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body:not(:has(#home-page)) main {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Ensure About page banner sits flush under navbar */
body.about-page main.content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

body.about-page .column-screen {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* Bottom image styling */
img[src*="bottom-image"] {
  width: 100vw !important;
  max-width: 100vw !important;
  margin-left: calc(-50vw + 50%) !important;
  margin-right: calc(-50vw + 50%) !important;
  margin-top: -25rem !important;
  margin-bottom: 0 !important;
  display: block;
  object-fit: cover;
  height: auto;
}

/* Button styling */
.btn-primary {
  background-color: #00769E;
  border-color: #FDB36A;
  color: #FFEDBF;
  position: relative;
  padding: 1rem 2rem;
  font-weight: 600;
  text-align: center;
}

.btn-primary:hover {
  background-color: #0295A7;
  border-color: #FF751C;
  color: #FFEDBF;
}

/* Fish-shaped buttons for home page */
body:has(#home-page) .btn-primary {
  background-color: #00769E;
  border: none;
  min-height: 160px;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 4rem 8rem;
  transition: all 0.3s ease;
  color: #FFEDBF;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
  font-size: 1rem;
  font-weight: 600;
  line-height: 1.4;
  white-space: normal;
  text-align: center;
  -webkit-mask-image: url('../images/buttons/fish-button-5.svg');
  mask-image: url('../images/buttons/fish-button-5.svg');
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  -webkit-mask-position: center;
  mask-position: center;
}

/* Animate fish swimming */
.fish-swim {
  animation: float 6s ease-in-out infinite;
}

.fish-swim:nth-child(2) {
  animation-delay: -2s;
}

.fish-swim:nth-child(3) {
  animation-delay: -4s;
}

.fish-swim:nth-child(4) {
  animation-delay: -1s;
}

.fish-swim:nth-child(5) {
  animation-delay: -3s;
}

.fish-swim:nth-child(6) {
  animation-delay: -5s;
}

@keyframes float {
  0%, 100% {
    transform: translateY(0px);
  }
  50% {
    transform: translateY(-15px);
  }
}

/* Alternate fish direction and colors - update for scattered layout */
body:has(#home-page) .fish-swim:nth-child(even) .btn-primary {
  transform: scaleX(-1);
}

body:has(#home-page) .fish-swim:nth-child(even) span {
  transform: scaleX(-1);
  display: inline-block;
}

/* CV button - red (palette danger) */
body:has(#home-page) .fish-swim:nth-child(2) .btn-primary {
  background-color: #FE3E00;
  color: #FFEDBF;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

/* CV uses fish-button-5 shape */
body:has(#home-page) .fish-swim:nth-child(2) .btn-primary {
  -webkit-mask-image: url('../images/buttons/fish-button-5.svg');
  mask-image: url('../images/buttons/fish-button-5.svg');
}

body:has(#home-page) .fish-swim:nth-child(3) .btn-primary {
  background-color: #78BAAE;
  color: #001E5A;
  text-shadow: none;
}

/* Current Projects color */
body:has(#home-page) .fish-swim:nth-child(4) .btn-primary {
  background-color: #0295A7;
  color: #FFEDBF;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

body:has(#home-page) .fish-swim:nth-child(1) .btn-primary {
  background-color: #FDB36A;
  color: #001E5A;
  text-shadow: none;
}

/* MizerReef button - cream/yellow */
body:has(#home-page) .fish-swim:nth-child(5) .btn-primary {
  background-color: #FFEDBF;
  color: #001E5A;
  text-shadow: none;
}

/* Gallery button - bright orange */
body:has(#home-page) .fish-swim:nth-child(6) .btn-primary {
  background-color: #FF751C;
  color: #FFEDBF;
  text-shadow: 1px 1px 2px rgba(0, 0, 0, 0.5);
}

/* Gallery uses fish-button-5 shape */
body:has(#home-page) .fish-swim:nth-child(6) .btn-primary {
  -webkit-mask-image: url('../images/buttons/fish-button-5.svg');
  mask-image: url('../images/buttons/fish-button-5.svg');
}

body:has(#home-page) .btn-primary:hover {
  transform: scale(1.05);
  filter: brightness(1.15);
}

body:has(#home-page) .fish-swim:nth-child(even) .btn-primary:hover {
  transform: scaleX(-1) scale(1.05);
}

/* Links */
a {
  color: #f67280;
}

a:hover {
  color: #e56b6f;
}

/* Headings */
h1, h2, h3, h4, h5, h6 {
  color: #f8b195;
}

/* Secondary headings with mauve accent */
h2, h3 {
  border-left: 4px solid #b56576;
  padding-left: 0.75rem;
}

/* Accent for code blocks */
code {
  background-color: rgba(53, 80, 112, 0.2);
  color: #f67280;
  border: 1px solid #b56576;
  padding: 2px 6px;
  border-radius: 3px;
}

pre {
  background-color: rgba(53, 80, 112, 0.1);
  color: #f8b195;
  border: 1px solid #6d597a;
  padding: 1rem;
}

/* Card styling */
.card {
  background-color: rgba(53, 80, 112, 0.15);
  border-color: #b56576;
  color: #f8b195;
}

.card-header {
  background-color: #001E5A;
  border-color: #00769E;
  color: #FFEDBF;
}

/* Remove white background from references/bibliography */
#refs, 
.references,
div[id^="ref-"],
.csl-entry,
.csl-bib-body,
.hanging-indent {
  background: transparent !important;
  background-color: transparent !important;
  color: #FFEDBF !important;
}

/* Ensure main content doesn't have white background */
main.content,
.page-columns .column-body,
.quarto-layout-panel,
#quarto-content,
.page-columns,
article {
  background: transparent !important;
  background-color: transparent !important;
}

/* Ensure body background color applies across all pages */
main {
  background-color: #355070 !important;
  color: #f8b195 !important;
}

main a {
  color: #f8b195 !important;
}

/* Exception: Don't override home page button colors */
body:has(#home-page) a.btn-primary,
body:has(#home-page) a.btn-primary span,
body:has(#home-page) main a.btn-primary,
body:has(#home-page) main a.btn-primary span {
  color: inherit !important;
}

main a:visited {
  color: #eaac8b !important;
}

/* Don't override visited state on home page buttons */
body:has(#home-page) a.btn-primary:visited,
body:has(#home-page) a.btn-primary:visited span {
  color: inherit !important;
}

main h1, main h2, main h3, main h4, main h5, main h6 {
  color: #f8b195 !important;
}

/* Fix bibliography link colors */
#refs a,
.references a,
.csl-entry a {
  color: #f67280 !important;
}

#refs a:hover,
.references a:hover,
.csl-entry a:hover {
  color: #e56b6f !important;
}

/* Bold author name in publications */
.csl-entry:has-text("Beese, C"),
.csl-entry {
  line-height: 1.6;
}

/* Target author name specifically - this will bold "Beese, Chelsey M." or "Beese, C. M." */
#refs .csl-entry,
.references .csl-entry {
  text-indent: -2em;
  padding-left: 2em;
  margin-bottom: 1em;
}

/* Conference presentation styling */
#quarto-content p strong:first-child {
  color: #FF751C;
  font-size: 1.1em;
}

/* Ensure all text in main content is properly colored */
body:not(:has(#home-page)) main,
body:not(:has(#home-page)) .content,
body:not(:has(#home-page)) article {
  color: #FFEDBF !important;
}

body:not(:has(#home-page)) main p,
body:not(:has(#home-page)) main strong,
body:not(:has(#home-page)) main em {
  color: #FFEDBF !important;
}

/* Highlight conference acronyms */
body:not(:has(#home-page)) main strong:has-text("NZMSS"),
body:not(:has(#home-page)) main strong:has-text("AMSA"),
body:not(:has(#home-page)) main strong:has-text("MAA"),
body:not(:has(#home-page)) main strong:has-text("AMS") {
  color: #FF751C !important;
}

/* Style year headers in conference section */
body:not(:has(#home-page)) main h3 {
  color: #b56576 !important;
  font-size: 1.4rem !important;
  margin-top: 2rem !important;
  margin-bottom: 1rem !important;
  font-weight: 700 !important;
}

/* Style conference names */
body:not(:has(#home-page)) main h3 + p strong,
body:not(:has(#home-page)) main h3 + p + blockquote strong {
  color: #FFEDBF !important;
  font-size: 1.15rem !important;
}

/* Style blockquotes for indented conference details */
body:not(:has(#home-page)) main blockquote {
  border-left: 3px solid #78BAAE !important;
  padding-left: 1.5rem !important;
  color: #FFEDBF !important;
  margin-left: 0 !important;
  margin-bottom: 2rem !important;
  font-style: normal !important;
  opacity: 1 !important;
}

body:not(:has(#home-page)) main blockquote p {
  color: #FFEDBF !important;
}
/* Remove box shadows from all content elements */
main,
main.content,
article,
.quarto-layout-container,
.quarto-layout-panel,
.page-columns,
.column-body,
#quarto-content {
  box-shadow: none !important;
}

/* Skill Badge Color System */
.skill-badge {
  padding: 0.5em 1em;
  border-radius: 20px;
  font-weight: 600;
  font-size: 1em;
  color: #f8b195;
}

.skill-expert {
  background-color: #b56576;
}

.skill-intermediate {
  background-color: #4a6b93;
}

.skill-basic {
  background-color: #5f86b3;
}