/* Campus Pocus: small moments of discovery, with the catalogue kept readable. */
:root {
  --cp-magic-ink: #614684;
  --cp-magic-line: #d4c5e3;
  --cp-magic-paper: #f3eef9;
  --cp-magic-gold: #a3864e;
}

body {
  background-color: #f8f9fc;
  background-image:
    radial-gradient(ellipse 620px 300px at 91% 145px, #e9dff35e, transparent 78%),
    radial-gradient(ellipse 450px 230px at 6% 420px, #edf1de45, transparent 82%);
  background-repeat: no-repeat;
}

.st-site-header::after {
  content: "";
  position: absolute;
  inset: auto 0 -1px;
  height: 1px;
  background: linear-gradient(90deg, transparent 6%, #d3c1e3 38%, #d9caab 66%, transparent 94%);
  pointer-events: none;
}
.cp-wordmark b { text-shadow: 0 3px 18px #aa8cca20; }
.st-desktop-nav button.active { box-shadow: inset 0 0 0 1px #d9cce9; }
.st-header-profile { box-shadow: 0 3px 12px #725b9308; }

.cp-hero-content h1 span::after {
  content: "";
  display: inline-block;
  width: 13px;
  height: 20px;
  margin-left: 11px;
  vertical-align: 6%;
  background: var(--cp-magic-gold);
  clip-path: polygon(50% 0, 62% 37%, 100% 50%, 62% 63%, 50% 100%, 38% 63%, 0 50%, 38% 37%);
}
.cp-hero-collage { isolation: isolate; }
.cp-hero-collage::before {
  content: "";
  position: absolute;
  inset: -9px -5px 6px -9px;
  border: 1px solid #d9cce4;
  border-radius: 45% 51% 47% 53%;
  transform: rotate(-5deg);
  pointer-events: none;
  z-index: -1;
}
.cp-hero-spark { color: #a68a53; text-shadow: 0 2px 16px #d3b7742b; }
.cp-hero-photo-1 { box-shadow: 0 6px 22px #75619814; }

.st-section-heading,
.cp-catalog-heading,
.pc-research-dialog .pc-dialog-heading {
  position: relative;
  isolation: isolate;
}
.st-section-heading::after,
.cp-catalog-heading::after,
.pc-research-dialog .pc-dialog-heading::after {
  content: "";
  position: absolute;
  width: 136px;
  height: 94px;
  top: 0;
  right: 0;
  background: url('/assets/campus-pocus-constellation.svg') center / contain no-repeat;
  opacity: .7;
  pointer-events: none;
  z-index: -1;
}
.cp-catalog-heading::after { width: 115px; height: 80px; opacity: .55; }
.pc-research-dialog .pc-dialog-heading::after { right: 15px; top: 8px; opacity: .45; }

.st-search-bar { border-color: #d8d0e3; box-shadow: 0 6px 24px #725b930a; }
.st-search-bar:focus-within {
  border-color: #a48bbd;
  box-shadow: 0 0 0 3px #a48bbd24, 0 8px 26px #725b930e;
}
.st-primary,
.pc-research-dialog .pc-primary {
  background: linear-gradient(115deg, #284f3d, #355442);
  border-color: #284f3d;
  color: #fff;
  box-shadow: 0 3px 8px #25433312;
}
.st-program-card:hover { border-color: #c5b4d6; box-shadow: 0 9px 28px #725b9310; }
.cp-tool-icon { border: 1px solid #ffffffb3; box-shadow: 0 3px 10px #725b9309; }
.cp-decision-tools a:nth-child(2) {
  background: radial-gradient(ellipse at 95% 0, #f6eddd7a, transparent 62%), #eeebf6;
}

/* A missing fact becomes a small, clear invitation to investigate. */
.st-research-gap { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 12px; margin: 12px 0 16px; }
.st-research-gap-button.st-secondary {
  display: inline-flex;
  gap: 9px;
  min-height: 44px;
  padding: 9px 13px;
  border: 1px solid #cdbddd;
  border-radius: 11px;
  background: linear-gradient(110deg, #f0e9f8, #f8f5fb);
  color: #5d447f;
  font-size: 13px;
  font-weight: 650;
  line-height: 1.5;
}
.st-research-gap-button::before,
.pc-template-preview::before {
  content: "";
  display: block;
  width: 15px;
  height: 19px;
  flex: none;
  background: #8b6aab;
  clip-path: polygon(50% 0, 63% 36%, 100% 50%, 63% 64%, 50% 100%, 37% 64%, 0 50%, 37% 36%);
}
.st-research-gap-button:hover:not(:disabled) { border-color: #ab8fc3; background: #e9def3; }
.st-research-gap-button:disabled { opacity: .75; cursor: not-allowed; }
.st-research-gap-status { color: #4f655a; font-size: 13px; line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
.st-research-gap-status:not(:empty) { flex-basis: 100%; }
.st-research-gap-status a,
.st-research-gap-status button { color: #604681; text-underline-offset: 3px; }
.st-research-gap-status.is-error { color: #854e3d; }
.st-unknown { border-left-color: #cdbddd; }

.st-ask-inline {
  position: relative;
  isolation: isolate;
  margin: 24px 0;
  padding: 24px;
  border: 1px solid #ded4e8;
  border-radius: 18px;
  background: linear-gradient(115deg, #f1edf8d9, #f9f8fc);
}
.st-ask-inline::after {
  content: "";
  position: absolute;
  width: 110px;
  height: 76px;
  top: 10px;
  right: 13px;
  background: url('/assets/campus-pocus-constellation.svg') center / contain no-repeat;
  opacity: .55;
  pointer-events: none;
  z-index: -1;
}
.st-ask-inline .st-eyebrow { color: #6c538c; }
.st-question-templates button { background: #ffffffd9; border-color: #d7cce4; color: #55466a; }
.st-question-templates button:hover { background: #e9e0f3; border-color: #b59cc8; }
.st-decision-note { border-top-color: #b6a0cf; }

/* Preset and personal questions remain visually distinct without operational jargon. */
.pc-research-dialog { border-color: #cdbddd; background: #faf9fc; box-shadow: 0 22px 80px #30223d38; }
.pc-research-dialog::backdrop { background: #26212f85; backdrop-filter: blur(5px); }
.pc-research-dialog .pc-dialog-top { background: #faf9fcf5; border-bottom-color: #e0d8e9; }
.pc-research-dialog .pc-dialog-brand { color: #5d4a77; }
.pc-research-dialog .pc-dialog-brand > span { color: #a3864e; }
.pc-research-dialog .pc-dialog-top .pc-icon-button { min-width: 44px; min-height: 44px; }
.pc-research-choice { margin: 0 0 18px; min-width: 0; }
.pc-research-mode { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 8px 18px; }
.pc-template-list { display: flex; flex-wrap: wrap; gap: 8px; margin: 12px 0 15px; }
.pc-research-dialog .pc-template-option {
  border: 1px solid #d8cee4;
  border-radius: 11px;
  background: #fff;
  color: #5a4b6c;
  font-size: 13px;
  line-height: 1.5;
  padding: 9px 13px;
  min-height: 44px;
  max-width: 100%;
  text-align: left;
}
.pc-research-dialog .pc-template-option:hover { background: #f1eaf8; border-color: #bca3d1; }
.pc-research-dialog .pc-template-option[aria-pressed="true"] {
  background: #e9e0f3;
  border-color: #9879b4;
  box-shadow: inset 0 0 0 1px #9879b4;
  color: #563c76;
  font-weight: 650;
}
.pc-template-preview {
  position: relative;
  padding: 17px 18px 17px 45px;
  border: 1px solid #d8cce5;
  border-radius: 13px;
  background: linear-gradient(120deg, #f2edf8, #fff);
  color: #354b42;
  font-size: 15px;
  line-height: 1.8;
  overflow-wrap: anywhere;
  white-space: pre-wrap;
}
.pc-template-preview::before { position: absolute; top: 20px; left: 16px; width: 13px; height: 17px; }
.pc-template-preview p { margin: 0; }
.pc-research-mode-note { border-left: 2px solid #c9b181; padding: 6px 0 6px 12px; margin: 13px 0; font-size: 13px; line-height: 1.7; color: #606b60; }
.pc-research-dialog .pc-research-edit { display: inline-flex; align-items: center; color: #644c85; min-height: 44px; padding: 7px 0; font-size: 13px; text-decoration: underline; text-underline-offset: 4px; }
.pc-research-dialog #research-question { width: 100%; background: #fff; border: 1px solid #cfc4dd; border-radius: 12px; padding: 14px 16px; color: #354b42; font-size: 16px; line-height: 1.75; resize: vertical; }
.pc-research-process { border-color: #e1d8ea; }
.pc-research-process strong { color: #674d86; }
.pc-request-status { background: #ece4f5; color: #634980; }
.pc-request-status.pc-completed { background: #e2eddd; color: #385e33; }
.pc-request-status.pc-rejected { background: #f1e7e4; color: #805447; }
.pc-research-history-item { border-color: #dfd6e7; border-radius: 12px; }
.pc-research-history-item:hover { background: #f3edf9; border-color: #c4b0d7; }
.pc-research-answer { background: linear-gradient(120deg, #f0f5ea, #f9fbf7); }

.st-research-gap-button:focus-visible,
.pc-research-dialog .pc-template-option:focus-visible,
.pc-research-dialog .pc-research-edit:focus-visible,
.pc-research-dialog #research-question:focus-visible { outline: 3px solid #715091; outline-offset: 3px; }

@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  .st-research-gap-button,
  .pc-template-option,
  .st-header-profile { transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease; }
  .st-research-gap-button:hover:not(:disabled) { transform: translateY(-1px); box-shadow: 0 4px 13px #725b9314; }
}

@media (max-width: 700px) {
  .cp-hero-content h1 span::after { width: 10px; height: 15px; margin-left: 8px; }
  .st-section-heading::after,
  .cp-catalog-heading::after { width: 87px; height: 60px; right: 0; opacity: .35; }
  .pc-research-dialog .pc-dialog-heading::after { width: 100px; height: 69px; opacity: .3; }
  .st-ask-inline { padding: 20px 17px; border-radius: 14px; margin: 20px 0; }
  .st-ask-inline::after { width: 86px; height: 60px; opacity: .35; }
  .st-research-gap { gap: 6px 10px; margin: 10px 0 14px; }
  .st-research-gap-button.st-secondary { font-size: 13px; min-height: 44px; }
  .st-research-gap-status { font-size: 13px; }
  .pc-template-list { gap: 7px; }
  .pc-research-dialog .pc-template-option { font-size: 13px; padding: 9px 11px; }
  .pc-template-preview { font-size: 14px; line-height: 1.8; padding: 15px 14px 15px 39px; }
  .pc-template-preview::before { left: 13px; top: 18px; width: 12px; height: 16px; }
  .pc-research-mode-note { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .st-research-gap-button,
  .pc-template-option,
  .st-header-profile { transition: none; animation: none; }
  .st-research-gap-button:hover:not(:disabled) { transform: none; }
}

@media (prefers-contrast: more) {
  .st-research-gap-button.st-secondary,
  .pc-research-dialog .pc-template-option,
  .pc-template-preview { border-color: #775895; background: #faf7fd; color: #49385c; }
  .pc-research-dialog .pc-template-option[aria-pressed="true"] { border-color: #614684; background: #e8dcef; }
  .st-research-gap-status,
  .pc-research-mode-note { color: #3f5148; }
}

@media (forced-colors: active) {
  .st-site-header::after,
  .cp-hero-content h1 span::after,
  .cp-hero-collage::before,
  .st-section-heading::after,
  .cp-catalog-heading::after,
  .pc-research-dialog .pc-dialog-heading::after,
  .st-ask-inline::after,
  .st-research-gap-button::before,
  .pc-template-preview::before { display: none; }
  .st-research-gap-button.st-secondary,
  .pc-research-dialog .pc-template-option,
  .pc-template-preview { border: 1px solid ButtonText; background: Canvas; color: CanvasText; }
  .pc-research-dialog .pc-template-option[aria-pressed="true"] { outline: 2px solid Highlight; outline-offset: -3px; }
}
