:root {
  color-scheme:dark;
  --bg:#141a18;
  --panel:#1c2420;
  --line:#354036;
  --ink:#eeeade;
  --muted:#a5afa3;
  --gold:#e0bc76;
  --green:#bacba8;
  font-family:Arial,Helvetica,sans-serif;
  font-size:15px;
}
* {
  box-sizing:border-box;
}
body {
  margin:0;
  background:var(--bg);
  color:var(--ink);
  line-height:1.6;
}
a {
  color:inherit;
  text-decoration:none;
}
a:hover {
  color:var(--gold);
}
button,select {
  font:inherit;
}
button,.button {
  display:inline-flex;
  align-items:center;
  gap:2rem;
  border:1px solid var(--gold);
  background:var(--gold);
  color:#1b241d;
  padding:.7rem 1.1rem;
  border-radius:3px;
  font-weight:600;
  cursor:pointer;
}
button:hover,.button:hover {
  background:#efd197;
  color:#18231c;
}
select {
  background:var(--panel);
  color:var(--ink);
  border:1px solid #67715e;
  border-radius:3px;
  padding:.7rem 2.5rem .7rem .8rem;
  max-width:100%;
}
a:focus-visible,button:focus-visible,select:focus-visible,summary:focus-visible {
  outline:2px solid var(--gold);
  outline-offset:5px;
}
.site-header,main,.site-footer {
  max-width:1240px;
  margin:auto;
  padding-left:3rem;
  padding-right:3rem;
}
.site-header {
  height:100px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-bottom:1px solid var(--line);
}
.brand {
  display:flex;
  align-items:center;
  gap:.8rem;
  letter-spacing:.17em;
  font-size:.85rem;
}
.brand b {
  display:block;
  font-size:.7rem;
  font-weight:400;
  letter-spacing:.4em;
  color:var(--muted);
}
.brand-mark {
  color:var(--gold);
  font-size:2.7rem;
  line-height:1;
}
nav {
  display:flex;
  gap:2.5rem;
  font-size:.9rem;
}
nav a {
  padding:.6rem 0;
}
nav a[aria-current] {
  color:var(--gold);
  border-bottom:1px solid var(--gold);
}
main {
  padding-bottom:4rem;
}
h1,h2,h3 {
  font-family:Georgia,'Times New Roman',serif;
  font-weight:400;
  line-height:1.12;
  margin:0;
  color:var(--ink);
}
h1 {
  font-size:clamp(3rem,6vw,5.5rem);
  letter-spacing:-.04em;
}
h2 {
  font-size:2rem;
}
h3 {
  font-size:1.5rem;
}
p {
  color:var(--muted);
}
.eyebrow {
  font-size:.68rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--gold);
  font-weight:600;
  margin:0 0 1rem;
}
.hero {
  display:grid;
  grid-template-columns:1.1fr 1fr;
  min-height:435px;
  align-items:center;
  gap:2rem;
  padding:3.5rem 0;
}
.hero-copy>p:not(.eyebrow) {
  margin:1.4rem 0 1.8rem;
  font-size:.95rem;
}
.landscape {
  height:340px;
  position:relative;
  overflow:hidden;
  background:radial-gradient(ellipse at 50% 35%,#344035,#19221e 75%);
  border:1px solid #3c4838;
  border-radius:50% 50% 2px 2px;
}
.sun {
  position:absolute;
  background:#c5a76c;
  border-radius:50%;
  width:125px;
  height:125px;
  left:calc(50% - 62px);
  top:42px;
  box-shadow:0 0 55px #a9a87820;
}
.mountain {
  position:absolute;
  width:140%;
  height:240px;
  bottom:0;
  left:-20%;
  clip-path:polygon(0 100%,0 70%,15% 45%,25% 55%,45% 0,60% 42%,70% 25%,100% 85%,100% 100%);
}
.back {
  background:#64755b;
  bottom:25px;
  opacity:.55;
}
.front {
  background:#263a2d;
  transform:scaleX(-1);
  bottom:-30px;
}
.landscape .rune {
  position:absolute;
  bottom:32px;
  left:calc(50% - 24px);
  height:80px;
  width:48px;
  opacity:.6;
}
.landscape-caption {
  position:absolute;
  bottom:14px;
  width:100%;
  text-align:center;
  font-size:.55rem;
  letter-spacing:.35em;
  color:#c3c9af;
}
.summary-grid {
  display:grid;
  grid-template-columns:1fr 1fr 2fr;
  margin:0 0 3.5rem;
  border:1px solid var(--line);
  background:var(--panel);
}
.summary-grid article {
  padding:1.5rem 1.8rem;
  border-right:1px solid var(--line);
}
.summary-grid article:last-child {
  border:0;
}
.summary-grid strong {
  display:block;
  font-family:Georgia,serif;
  font-size:2.8rem;
  line-height:1.15;
  font-weight:400;
  margin-bottom:.6rem;
}
.summary-grid strong.date {
  font-family:inherit;
  font-size:1.1rem;
  line-height:1.7;
}
.summary-grid span,.summary-grid small {
  display:block;
  color:var(--muted);
  font-size:.8rem;
}
.section-heading {
  display:flex;
  justify-content:space-between;
  align-items:end;
  gap:1rem;
  margin-bottom:1.6rem;
}
.section-heading .eyebrow {
  margin-bottom:.6rem;
}
.text-link {
  font-size:.85rem;
  color:var(--gold);
}
.cards {
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.card,.panel {
  background:var(--panel);
  border:1px solid var(--line);
  border-radius:3px;
}
.card {
  padding:1.6rem;
}
.card h3 {
  padding-bottom:1rem;
  border-bottom:1px solid var(--line);
}
.podium {
  padding:0;
  list-style:none;
  margin:.6rem 0 0;
}
.podium li {
  display:flex;
  align-items:center;
  gap:1rem;
  padding:.8rem 0;
  font-size:.9rem;
}
.podium a {
  flex:1;
  overflow-wrap:anywhere;
}
.podium strong {
  font-weight:400;
  color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.rank {
  color:var(--gold);
  font-family:Georgia,serif;
  font-size:1.25rem;
}
.note {
  font-size:.8rem;
  margin:1.5rem 0;
  color:var(--muted);
}
.empty {
  text-align:center;
  padding:2.2rem 1rem;
  color:var(--muted);
  font-size:.95rem;
}
.page-heading {
  padding:3.5rem 0 2rem;
}
.page-heading h1 {
  font-size:clamp(2.8rem,5vw,4rem);
}
.page-heading .text-link {
  display:inline-block;
  margin-bottom:1.8rem;
}
.page-heading p {
  margin:.8rem 0;
}
.filter-bar {
  display:flex;
  align-items:center;
  gap:1rem;
  flex-wrap:wrap;
  margin-bottom:1.4rem;
}
.filter-bar label {
  color:var(--muted);
  font-size:.85rem;
}
.filter-bar select {
  min-width:220px;
}
.panel {
  margin-bottom:1.5rem;
}
.panel-heading {
  padding:1.6rem;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.panel-heading h2 {
  font-size:1.7rem;
}
.panel-heading .eyebrow {
  margin:0;
}
.panel-heading div .eyebrow {
  margin-bottom:.5rem;
}
.table-wrap {
  overflow-x:auto;
}
table {
  width:100%;
  border-collapse:collapse;
  text-align:left;
  font-size:.9rem;
}
thead {
  background:#232e26;
  color:var(--muted);
}
th,td {
  padding:1rem 1.6rem;
  border-bottom:1px solid var(--line);
}
thead th {
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.1em;
  font-weight:500;
}
tbody th {
  font-weight:500;
}
tbody tr:last-child>* {
  border-bottom:0;
}
th small,td small {
  display:block;
  font-weight:400;
  font-size:.7rem;
  color:var(--muted);
  margin-top:.3rem;
  overflow-wrap:anywhere;
}
.numeric {
  text-align:right;
  font-variant-numeric:tabular-nums;
}
.score {
  color:var(--gold);
  font-size:1.3rem;
}
.badge {
  display:inline-block;
  color:var(--green);
  font-size:.75rem;
  padding:.2rem .6rem;
  border:1px solid #566348;
  border-radius:3px;
}
.four {
  grid-template-columns:repeat(4,1fr);
  margin-bottom:1.5rem;
}
.detail-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:1.5rem;
}
.stat-list {
  padding:0 1.6rem 1rem;
  margin:0;
}
.stat-list>div {
  display:flex;
  justify-content:space-between;
  gap:1rem;
  padding:.75rem 0;
  border-bottom:1px solid var(--line);
  font-size:.9rem;
}
.stat-list dt {
  overflow-wrap:anywhere;
}
.stat-list dd {
  color:var(--gold);
  font-variant-numeric:tabular-nums;
}
.stat-list small {
  display:block;
  color:var(--muted);
  font-size:.7rem;
}
.all-stats {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:0 2rem;
}
.inset {
  padding-left:1.6rem;
  padding-right:1.6rem;
}
.history-section {
  padding-bottom:1.6rem;
}
.chart-container {
  height:300px;
  position:relative;
  margin-top:1.5rem;
}
.raw-report {
  padding:1.5rem;
}
summary {
  cursor:pointer;
  color:var(--gold);
}
pre {
  overflow:auto;
  font-size:.8rem;
  color:var(--muted);
}
.site-footer {
  border-top:1px solid var(--line);
  padding-top:1.8rem;
  padding-bottom:1.8rem;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  font-size:.7rem;
  color:var(--muted);
}
.skip {
  position:absolute;
  top:-100px;
  left:1rem;
}
.skip:focus {
  top:1rem;
  background:var(--panel);
  padding:1rem;
  z-index:9;
}
.sr-only {
  position:absolute;
  width:1px;
  height:1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap;
  border:0;
}
#request-error {
  position:fixed;
  bottom:1rem;
  left:1rem;
  right:1rem;
  padding:1rem;
  background:#513d2a;
  color:#fff;
  border:1px solid var(--gold);
  z-index:10;
}
.htmx-request {
  opacity:.65;
}
@media(max-width:850px) {
  .site-header,main,.site-footer {
    padding-left:1.5rem;
    padding-right:1.5rem;
  }
  nav {
    gap:1.1rem;
  }
  .hero {
    gap:1rem;
  }
  .landscape {
    height:290px;
  }
  .cards {
    grid-template-columns:1fr;
  }
  .summary-grid {
    grid-template-columns:1fr 1fr;
  }
  .summary-wide {
    grid-column:1/-1;
    border-top:1px solid var(--line)!important;
  }
  .four {
    grid-template-columns:repeat(2,1fr);
  }
  .four article {
    border-bottom:1px solid var(--line);
  }
  .detail-grid {
    grid-template-columns:1fr;
  }
}
@media(max-width:560px) {
  .site-header {
    height:auto;
    min-height:110px;
    flex-direction:column;
    justify-content:center;
    gap:.9rem;
    padding-top:1rem;
    padding-bottom:1rem;
  }
  .brand b {
    display:inline;
    margin-left:.5rem;
  }
  .hero {
    display:block;
    padding:2.5rem 0;
  }
  .landscape {
    display:none;
  }
  .summary-grid article {
    padding:1.2rem;
  }
  .summary-grid strong {
    font-size:2.4rem;
  }
  .section-heading {
    display:block;
  }
  .section-heading .text-link {
    display:block;
    margin-top:1rem;
  }
  .panel-heading {
    align-items:start;
    flex-direction:column;
  }
  .all-stats {
    grid-template-columns:1fr;
  }
  .site-footer {
    flex-direction:column;
  }
  .filter-bar select {
    min-width:0;
    flex:1;
  }
  th,td {
    padding:1rem;
  }
  .page-heading {
    padding-top:2.5rem;
  }
  h1 {
    font-size:3.6rem;
  }
}

/* Exact values remain accessible after compact display formatting. */
.metric-value {
  position: relative;
  display: inline-block;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  cursor: help;
}
.metric-value:focus-visible {
  outline: 1px solid var(--gold);
  outline-offset: 4px;
}
.metric-value:focus-visible::after {
  content: attr(data-exact);
  position: absolute;
  right: 0;
  bottom: calc(100% + 8px);
  z-index: 5;
  padding: .4rem .6rem;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--bg);
  color: var(--ink);
  font: .8rem/1.4 Arial, Helvetica, sans-serif;
  white-space: normal;
  overflow-wrap: anywhere;
  width: max-content;
  max-width: min(18rem, 70vw);
  box-shadow: 0 3px 12px #0005;
}
.metric-note {
  margin-top: 0;
}
.stat-category h3 {
  font-family: Arial, Helvetica, sans-serif;
  font-size: .8rem;
  font-weight: 600;
  color: var(--gold);
  margin: 1rem 0 .5rem;
}
.stat-category + .stat-category {
  border-top: 1px solid var(--line);
}

.metric-label {
  cursor: help;
  text-decoration: underline dotted var(--muted);
  text-underline-offset: .25em;
}
.metric-label:focus-visible {
  outline: 1px solid var(--gold);
  outline-offset: 4px;
}
.stat-tooltip {
  position: fixed;
  z-index: 100;
  width: max-content;
  max-width: min(22rem, calc(100vw - 24px));
  max-height: calc(100vh - 24px);
  overflow-y: auto;
  padding: .75rem 1rem;
  border: 1px solid var(--gold);
  border-radius: 4px;
  background: var(--bg);
  color: var(--ink);
  font: .85rem/1.5 Arial, Helvetica, sans-serif;
  overflow-wrap: anywhere;
  box-shadow: 0 4px 16px #0008;
}

.hunt-section,.boss-section {
  margin-top: 3.5rem;
}
.hunt-layout {
  display: grid;
  grid-template-columns: 1fr 1.65fr;
  gap: 1.2rem;
}
.hunt-total,.hunt-ranking {
  padding: 1.8rem;
}
.hunt-total > strong {
  display: block;
  font: clamp(2.8rem, 5vw, 4.5rem)/1.1 Georgia,serif;
  color: var(--gold);
  overflow-wrap: anywhere;
}
.hunt-favorite {
  border-top: 1px solid var(--line);
  margin-top: 1.5rem;
  padding-top: 1.5rem;
}
.hunt-favorite p:last-child {
  font-size: .8rem;
  margin-bottom: 0;
}
.hunt-list,.boss-grid {
  list-style: none;
  padding: 0;
}
.hunt-list { margin-bottom: 0; }
.hunt-list li { margin-top: 1.25rem; }
.hunt-row {
  display: flex;
  gap: 1rem;
  align-items: baseline;
}
.hunt-row a { flex: 1; overflow-wrap: anywhere; }
.hunt-row strong { color: var(--gold); font-variant-numeric: tabular-nums; }
.hunt-bar { height: 5px; margin-top: .5rem; background: var(--line); border-radius: 3px; }
.hunt-bar span { display: block; height: 100%; background: var(--gold); border-radius: inherit; }
.boss-tally { color: var(--muted); font-size: .9rem; }
.boss-tally strong { color: var(--gold); font-size: 1.4rem; }
.boss-progress { display: block; width: 100%; height: 8px; border: 0; border-radius: 4px; overflow: hidden; background: var(--line); accent-color: var(--gold); }
.boss-progress::-webkit-progress-bar { background: var(--line); }
.boss-progress::-webkit-progress-value { background: var(--gold); }
.boss-progress::-moz-progress-bar { background: var(--gold); }
.boss-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1rem; }
.boss-card { padding: 1.4rem 1rem; text-align: center; background: var(--panel); border: 1px solid var(--line); border-radius: 4px; }
.boss-card.defeated { border-color: #827048; background: linear-gradient(150deg,#343324,var(--panel) 65%); }
.boss-card .eyebrow { margin-bottom: .8rem; }
.boss-card h3 { font-size: 1.35rem; min-height: 3rem; overflow-wrap: anywhere; }
.boss-seal { display: grid; place-items: center; width: 3.2rem; height: 3.2rem; margin: 0 auto 1rem; border: 1px dashed var(--line); border-radius: 50%; color: var(--muted); font: 1.2rem Georgia,serif; }
.defeated .boss-seal { border-style: solid; border-color: var(--gold); color: var(--gold); box-shadow: 0 0 22px #e0bc7612; }
.boss-status { display: block; color: var(--muted); font-size: .78rem; margin-top: .8rem; }
.defeated .boss-status { color: var(--green); }
.boss-card small { display: block; color: var(--muted); font-size: .72rem; margin-top: .3rem; }
@media(max-width:850px) {
  .boss-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .mob-summary { grid-template-columns: 1fr; }
  .mob-summary article + article { border-top: 1px solid var(--line); }
}
@media(max-width:560px) {
  .hunt-layout { grid-template-columns: minmax(0,1fr); }
  .hunt-total,.hunt-ranking { padding: 1.3rem; }
  .boss-tally { display: block; margin-top: 1rem; }
  nav { gap: 1rem; font-size: .8rem; }
}
@media(max-width:560px) {
  .boss-card h3 { font-size: 1.15rem; }
}

.boss-summary { padding: 1.4rem 1.6rem; margin-bottom: 1.5rem; }
.boss-summary-heading { display: flex; align-items: baseline; justify-content: space-between; gap: 1rem; }
.boss-summary-heading h2 { font-size: 1.5rem; }
.boss-summary .boss-tally { margin: .6rem 0 1rem; }
.page-heading + .boss-section { margin-top: 0; }
nav { flex-wrap: wrap; row-gap: .25rem; }
nav a { white-space: nowrap; }
@media(max-width:850px) {
  .site-header { height: auto; min-height: 100px; flex-wrap: wrap; gap: .75rem 1.5rem; padding-top: 1rem; padding-bottom: 1rem; }
}
@media(max-width:560px) {
  nav { justify-content: center; }
  .boss-summary-heading { flex-wrap: wrap; gap: .5rem; }
}

.featured-heading {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: .5rem 1rem;
}
.shuffle-hint {
  display: inline-flex;
  align-items: center;
  gap: .35rem;
  color: var(--muted);
  font-size: .75rem;
  white-space: nowrap;
}
