@charset "UTF-8";

/* Finance takes over the shared shell and every external window immediately. */
.finance-horror,
.finance-horror .dream-finance {
  --bg: #c1b18b;
  --paper: #e4d6af;
  --ink: #29241e;
  --muted: #65543f;
  --line: #8e7556;
  --blue: #984032;
  --blue-deep: #722b23;
  --danger: #91392e;
  --light: #d8bc91;
  --pale: #eaddb9;
  --radius: 0;
  --shadow: 3px 4px 0 #382a2833;
  color: var(--ink);
  font-family: "SimSun", "Songti SC", serif;
}
body.finance-horror { background: var(--bg); }
.game-shell.finance-horror {
  position: relative; isolation: isolate; min-height: 100vh;
  background: var(--bg) url('../assets/finance/paper-baked.webp') repeat;
  background-size: 720px 960px;
}
.game-shell.finance-horror::before {
  content: '';
  position: fixed;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background:
    url('../assets/finance/blood-page-baked.webp') left -155px top 110px / 340px 340px no-repeat,
    url('../assets/finance/blood-page-baked.webp') right -140px top 54% / 300px 360px no-repeat,
    url('../assets/finance/blood-page-baked.webp') left 13% bottom -210px / 380px 380px no-repeat;
}
.finance-horror :is(button, a, input, select, summary):focus-visible {
  outline-color: #8c3429;
}
.finance-horror :is(h1, h2, h3, .brand, .product-payment strong) {
  font-family: "SimHei", "Heiti SC", "Microsoft YaHei", sans-serif;
  font-weight: 900;
}
.finance-horror .masthead {
  min-height: 86px;
  background: #d9c89e;
  border-top: 7px solid #82372c;
  border-bottom: 5px double #40372a;
  gap: 24px;
}
.finance-horror .brand { color: #33291f; letter-spacing: -1px; }
.finance-horror .brand-mark {
  color: #ddcba5;
  background: #8d3e31;
  border-radius: 0;
  border: 2px solid #692d25;
  transform: rotate(-4deg);
}
.finance-horror .brand-sub { color: #664d34; letter-spacing: 1px; }
.finance-horror .top-nav { gap: 0; }
.finance-horror .top-nav button {
  border-left: 1px solid #7f684c55;
  font-weight: 700;
  color: #403528;
}
.finance-horror .top-nav button:last-child { border-right: 1px solid #7f684c55; }
.finance-horror .top-nav button:hover { background: #c9ad7c; }
.finance-horror .top-nav button.active {
  color: #f0dfb3;
  background: #893b2e;
  text-shadow: 1px 1px #422c20;
}
.finance-horror .top-nav button.active::after { height: 0; }
.finance-horror .utility {
  background: #e5d4a8;
  border: 2px solid #6e533b;
  border-radius: 0;
}
.finance-horror .dashboard { padding-top: 14px; }
.finance-horror .day-heading {
  padding: 7px 0 12px;
  margin-bottom: 12px;
  border-bottom: 3px double #51432f;
}
.finance-horror .day-heading h1 { font-size: 22px; letter-spacing: 2px; }
.finance-horror .day-counter strong { font-family: Georgia, serif; color: #843629; }
.finance-horror .metrics {
  background: #ddcea9;
  border: 1px solid #7f684e;
  border-radius: 0;
  padding: 12px 0;
}
.finance-horror .metrics .metric > strong { font-family: Georgia, "SimSun", serif; font-weight: 700; }
.finance-horror :is(.ap-dots i, .energy-meter, .mood-meter) { background: #a38d6552; border-radius: 0; }
.finance-horror :is(.ap-dots i.filled, .energy-meter i, .mood-meter i) { background: #8c4435; border-radius: 0; }
.finance-horror .role-pill { background: #dfcea3; border-color: #8a7152; border-radius: 0; }
.finance-horror .role-pill.active { background: #c9ab7b; color: #612c24; border-color: #7b382c; }
.finance-horror .section { border-radius: 0; }
.finance-horror .dream-finance {
  background-color: #e4d4aa;
  background-image:
    repeating-linear-gradient(0deg, #5b32100a 0 1px, transparent 1px 4px),
    radial-gradient(ellipse at 100% 0, #94734133, transparent 55%);
  padding: 18px;
  border: 1px solid #685038;
  box-shadow: inset 0 0 28px #6b40202b, inset 0 0 0 3px #72533622, 5px 6px 0 #493b2740;
}
.finance-horror .finance-hero {
  position: relative;
  isolation: isolate;
  display: grid;
  grid-template-columns: minmax(0, 1.3fr) minmax(220px, .7fr);
  align-items: end;
  gap: 12px;
  min-height: 296px;
  padding: 18px 18px 0;
  margin-bottom: 0;
  border: 5px double #77372a;
  overflow: hidden;
  background: #d4be8b;
  box-shadow: inset 0 0 28px #58351f40, inset 0 0 0 2px #f1dbab77;
}
.finance-horror .finance-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  z-index: -1;
  pointer-events: none;
  background: url('../assets/finance/blood-banner-baked.webp') left -105px bottom -100px / 280px 280px no-repeat,
    url('../assets/finance/blood-banner-baked.webp') right -70px top -110px / 260px 260px no-repeat;
}
.finance-horror .finance-hero-copy { grid-column: 1; grid-row: 1; padding-bottom: 16px; z-index: 1; }
.finance-horror .finance-hero .eyebrow {
  display: inline-block;
  color: #85372a;
  font-size: 13px;
  letter-spacing: 3px;
  border-bottom: 1px solid currentColor;
  margin-bottom: 8px;
}
.finance-horror .finance-hero h1 {
  color: #883b2f;
  font-size: clamp(36px, 4.5vw, 64px);
  line-height: 1.13;
  letter-spacing: -3px;
  text-shadow: 1.5px .6px #602f218c, -.6px 0 #e7cc9280;
}
.finance-horror .finance-hero h1 span { color: #31291e; }
.finance-horror .finance-hero .section-description {
  margin: 10px 0 8px;
  color: #3f3324;
  line-height: 1.5;
  font-size: 17px;
  font-weight: 700;
}
.finance-horror .finance-portrait-block {
  position: relative;
  margin: 0;
  min-width: 0;
  grid-column: 2;
  grid-row: 1;
  height: 296px;
  overflow: hidden;
  border: 5px solid #e3d5ad;
  outline: 1px solid #7b6548;
  transform: rotate(2deg) translateY(8px);
}
.finance-horror .finance-portrait {
  display: block;
  width: 200%;
  max-width: none;
  height: 100%;
  object-fit: cover;
  object-position: left center;
}
.finance-horror .finance-portrait-caption {
  position: absolute;
  right: 16px;
  bottom: 10px;
  max-width: 36%;
  padding: 3px 9px;
  background: #e1c997;
  color: #71392a;
  border: 1px solid #8e593c;
  font-size: 12px;
  font-weight: 700;
  transform: rotate(2deg);
}
.finance-horror .finance-seal {
  display: inline-block;
  margin: 8px 10px 0 0;
  padding: 6px 10px;
  border: 3px double #913c2d;
  font-size: 13px;
  line-height: 1.1;
  font-weight: 900;
  color: #913c2d;
  transform: rotate(-9deg);
}
.finance-horror .finance-ad-strip {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 6px 20px;
  padding: 7px 12px;
  margin: 4px 0 12px;
  background: #8a3e30;
  color: #ecdbb3;
  border: 1px solid #6a3028;
  font-weight: 900;
  font-size: 15px;
  letter-spacing: 1px;
}
.finance-horror .finance-greeting { display: block; margin-top: 6px; font-size: 14px; }
.finance-horror .product-list { grid-template-columns: repeat(3, minmax(0, 1fr)); align-items: stretch; gap: 12px; margin-top: 24px; }
.finance-horror .dream-finance .product-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: #dfcda5;
  background-image: repeating-linear-gradient(94deg, transparent 0 6px, #76572b0b 6px 7px);
  border: 1px solid #664a32;
  border-top: 5px solid #773a2c;
  border-radius: 0;
  padding: 14px;
  box-shadow: inset 0 0 0 3px #76552e33, inset 0 0 24px #68432038, 2px 3px 0 #5d452748;
}
.finance-horror .product-card::before { content: ''; position: absolute; top: -38px; right: -32px; width: 120px; height: 120px; z-index: -1; pointer-events: none; background: url('../assets/finance/blood-card-baked.webp') center / contain no-repeat; transform: rotate(17deg); }
.finance-horror .product-index {
  color: #6e3026;
  background: #b7986740;
  font-size: 12px;
  letter-spacing: 2px;
  font-weight: 900;
  border-top: 1px solid #8a503b;
  border-bottom: 3px double #8a503b;
  padding: 5px 6px;
  margin: -5px -5px 8px;
  text-shadow: .6px .3px #913d304d;
}
.finance-horror .product-card :is(h2,h3) { font-size: 23px; line-height: 1.25; letter-spacing: -.7px; color: #502d24; text-shadow: .6px .3px #8a3d2c4d; }
.finance-horror .product-card > p { margin-top: 5px; font-weight: 700; line-height: 1.45; color: #5a432e; }
.finance-horror .product-card > .product-description { font-size: 12px; font-weight: 400; line-height: 1.5; color: #56412c; }
.finance-horror .product-payment { gap: 7px; margin: 8px 0 10px; }
.finance-horror .product-payment strong {
  font-family: Georgia, serif;
  font-size: 52px;
  font-weight: 900;
  line-height: 1;
  letter-spacing: -4px;
  color: #964435;
}
.finance-horror .product-payment > span { font-size: 15px; color: #4c3527; font-weight: 700; }
.finance-horror .field-label { color: #51402d; font-size: 14px; font-weight: 700; }
.finance-horror .product-choices { min-width: 0; border: 0; padding: 0; margin: 4px 0 8px; }
.finance-horror .product-choices legend { padding: 0 0 4px; font-size: 13px; font-weight: 700; }
.finance-horror .product-choices > div { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 4px; }
.finance-horror .product-choice {
  min-height: 44px;
  min-width: 0;
  padding: 8px 3px;
  border: 1px solid #9a7951;
  border-radius: 0;
  background: #dfcca0;
  color: #493522;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}
.finance-horror .product-choice:hover { background: #c9ac7f; }
.finance-horror .product-choice[aria-pressed="true"] { color: #f2e2bd; background: #8a3b2d; border-color: #6f2f24; }
.finance-horror .product-terms { background: #c2a47b45; border: 1px solid #8a563b; margin: 8px 0 10px; padding: 0 8px; box-shadow: inset 0 0 12px #67432624; }
.finance-horror .product-terms > .product-terms-title { color: #713329; font-size: 14px; line-height: 1.5; margin: 0; font-weight: 900; border-bottom: 3px double #936345; padding: 7px 0; }
.finance-horror .product-terms dl { margin: 3px 0 7px; font-size: 12px; line-height: 1.4; }
.finance-horror .product-terms dl > div { padding: 6px 0; gap: 6px; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); }
.finance-horror dl > div { border-color: #92754c66; }
.finance-horror .product-card dd { font-weight: 700; }
.finance-horror .product-card > .button { margin-top: auto; }
.finance-horror .button {
  border: 1px solid #916940;
  border-radius: 0;
  background: #dcc394;
  color: #562d23;
  box-shadow: 1px 2px 0 #64472b30;
  font-weight: 700;
}
.finance-horror .button:hover:not(:disabled) { background: #c9a878; border-color: #754e32; }
.finance-horror :is(.button.primary, .button.danger),
.finance-horror .dream-finance .product-card > .button {
  background: #903d2f;
  border: 3px double #d9b18a;
  color: #f3e2bc;
  font-weight: 900;
}
.finance-horror :is(.button.primary, .button.danger):hover:not(:disabled),
.finance-horror .dream-finance .product-card > .button:hover:not(:disabled) { background: #713124; }
.finance-horror .button.ghost { background: transparent; color: #67503a; border-color: #9b7c53; }
.finance-horror .button:disabled,
.finance-horror .dream-finance .product-card > .button:disabled { background: #d0bfa0; color: #7d6b52; border-color: #ae9670; box-shadow: none; }
.finance-horror select,
.finance-horror input { border-radius: 0; border-color: #97734e; background: #ecdeb8; }
.finance-horror :is(.tag, .tag.orange) { border-radius: 0; background: #b8986b; color: #4b3021; }
.finance-horror .tag.dark { background: #843b2d; color: #efdeb2; }
.finance-horror .notice { border-radius: 0; border: 1px solid #9c7950; background: #d8be8e; }
.finance-horror .ledger { border-top: 5px double #6e4e36; margin-top: 18px; padding-top: 14px; }
.finance-horror .ledger h2 { font-size: 24px; letter-spacing: 2px; }
.finance-horror .ledger .fine-print { margin-top: 6px; font-size: 11px; line-height: 1.5; color: #55402d; }
.finance-horror .finance-legal-notes { margin-top: 14px; padding: 10px 12px; border: 1px solid #806044; border-top: 4px double #704631; background: #c2ab7d40; box-shadow: inset 0 0 16px #6b47252b; }
.finance-horror .finance-legal-notes h3 { margin-bottom: 6px; color: #72372a; font-size: 13px; letter-spacing: 2px; }
.finance-horror .finance-legal-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px 14px; }
.finance-horror .finance-legal-grid > :is(dl,p,div) { margin: 0; font-size: 11px; line-height: 1.5; color: #57432e; }
.finance-horror .finance-legal-grid > :is(dl,p,div) + :is(dl,p,div) { border-left: 1px solid #96764b88; padding-left: 12px; }
.finance-horror .finance-legal-grid dl > div { display: block; padding: 4px 0; }
.finance-horror .finance-legal-grid dt { color: #6f382a; font-weight: 700; }
.finance-horror .finance-legal-grid dd { text-align: left; margin-top: 2px; }
.finance-horror th { background: #c8ae7b; color: #493824; }
.finance-horror td { border-color: #947348; }
.finance-horror .footer {
  max-width: none;
  padding-right: max(24px, calc((100vw - 1232px) / 2));
  padding-left: max(24px, calc((100vw - 1232px) / 2));
  background: #43362a;
  color: #ccba93;
  border-top: 5px double #9b7c55;
}
.finance-horror :is(.calendar-panel, .life-control-panel, .persistent-day, .controls-launcher, .mail-launcher) {
  background: #ddcca2;
  background-image: repeating-linear-gradient(0deg, transparent 0 4px, #58381308 4px 5px);
  color: #413021;
  border: 1px solid #785b3d;
  border-radius: 0;
  box-shadow: 3px 4px 0 #39281940;
}
.finance-horror :is(.calendar-panel, .life-control-panel) { border-top: 5px solid #884132; }
.finance-horror .controls-launcher:hover { background-color: #c6a876; }
.finance-horror .controls-launcher[aria-expanded="true"] { background: #9c4b37; color: #f1dfb3; }
.finance-horror .controls-launcher[aria-expanded="true"] .launcher-arrow { color: #f1dfb3; }
.finance-horror .calendar-day { color: #493622; border-radius: 0; font-family: Georgia, "SimSun", serif; }
.finance-horror .calendar-day.past { background: #bda67f50; color: #80694e; }
.finance-horror .calendar-day.has-deadline { box-shadow: inset 0 0 0 1px #8c4634; }
.finance-horror .calendar-day.today { color: #f5e3b6; background: #8c3f30; }
.finance-horror .calendar-day.today:hover { background: #6c3025; }
.finance-horror .calendar-day.selected { outline-color: #79412c; }
.finance-horror :is(.ability-track, .control-resource-track) { background: #ac916c66; border-radius: 0; }
.finance-horror .control-resource-track > i { background: #8c6242; }
.finance-horror .control-mood .control-resource-track > i { background: #924636; }
.finance-horror .ability-base { background: #766349; }
.finance-horror .ability-today { background: #a16f3b; }
.finance-horror .ability-loan { background: #974332; }
.finance-horror .control-role-next { color: #6eafea; background: transparent; border: 0; border-radius: 0; box-shadow: none; }
.finance-horror .control-role-next:hover { color: #6eafea; background: transparent; }
.finance-horror .ability-sources { background: transparent; border-color: #94734e; border-radius: 0; }
.finance-horror .mail-notice-progress { background: #8b3e30; }
.finance-horror .mail-list-panel { background: #d6c197; }
.finance-horror .mail-row:hover { background: #c4a978; }
.finance-horror .mail-row.selected { background: #c9ac7d; box-shadow: inset 3px 0 #8d3c2d; }
.finance-horror .sender-avatar { border-radius: 0; background: #d5ba8d; border-color: #97734c; color: #6c3829; }
.finance-horror .sender-avatar img { background: #e6d4ac; filter: sepia(.6) saturate(.6); }
.finance-horror .mail-placeholder { color: #9c7950; }
dialog.finance-horror,
.toast.finance-horror,
.mail-notice.finance-horror {
  background-color: #e3d1a7;
  background-image: repeating-linear-gradient(1deg, #5132180a 0 1px, transparent 1px 5px);
  border: 2px solid #705238;
  border-radius: 0;
  box-shadow: 5px 6px 0 #2d211b66;
}
dialog.finance-horror::backdrop { background: #241a13b8; }
.toast.finance-horror.error { background-color: #d5b18b; color: #702c24; border-color: #8c3a2b; }
dialog.finance-horror.review-dialog { background: transparent; border: 0; box-shadow: none; }
.finance-horror .review-card { background: #e3d1a7; }
.finance-horror .review-changes > span { border-radius: 0; }
.finance-horror .contract-paper { color: #382a20; box-shadow: inset 0 0 24px #75502b1a; }
.finance-horror .contract-paper h2 { padding-bottom: 10px; border-bottom: 4px double #763d2b; margin-bottom: 10px; text-align: center; text-shadow: .7px .3px #8a3c2b55; }
.finance-horror .contract-meta { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 6px 0; color: #76583a; border-bottom: 1px solid #ac8b5d; font-size: 12px; }
.finance-horror .contract-paper .dialog-body { padding: 8px; border: 1px solid #916a47; background: #bea17826; box-shadow: inset 0 0 10px #72502c22; }
.finance-horror .contract-paper .dialog-body dl { margin-top: 0; }
.finance-horror .contract-paper .dialog-body dl > div { padding: 6px 0; }
.finance-horror .contract-paper .fine-print { font-size: 12px; line-height: 1.5; color: #57412c; }
.finance-horror .contract-signature { display: grid; justify-items: center; gap: 10px; padding-top: 14px; margin-top: 12px; border-top: 3px double #94724a; }
.finance-horror .contract-stamp {
  position: relative;
  display: grid;
  place-items: center;
  width: 166px;
  height: 176px;
  padding: 12px;
  border: 1px dashed #9a6146;
  border-radius: 0;
  background: #bda16a24;
  color: #7f3829;
  box-shadow: none;
  font-family: "SimSun", "Songti SC", serif;
  font-weight: 700;
  font-size: 17px;
}
.finance-horror button.contract-stamp:hover:not(:disabled) { background: #b9986538; border-color: #7f3829; }
.finance-horror .contract-stamp:disabled { cursor: default; opacity: 1; }
.finance-horror div.contract-stamp { width: 210px; height: auto; gap: 12px; border: 0; background: transparent; }
.finance-horror .contract-handprint { display: block; width: 166px; height: 184px; object-fit: contain; transform: rotate(-7deg); }
.finance-horror .contract-stamp > span { font-size: 14px; }

@media (min-width: 901px) {
  .finance-horror .footer { padding-inline: max(var(--page-padding),calc((100vw - var(--page-width)) / 2 + var(--page-padding))); }
}
@media (min-width: 901px) and (max-width: 1180px) {
  .finance-horror .product-list { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 900px) {
  .finance-horror .masthead { min-height: 78px; gap: 12px; }
  .finance-horror .top-nav { background: #d7c299; border-top: 4px double #6e4731; box-shadow: none; }
  .finance-horror .top-nav button { border-radius: 0; border-left: 1px solid #8b6b4655; }
  .finance-horror .top-nav button.active { background: #883c2e; }
  .finance-horror .dream-finance { padding: 12px; }
  .finance-horror .product-list { grid-template-columns: minmax(0, 1fr); gap: 12px; }
  .finance-horror .finance-hero { padding: 14px 12px 0; grid-template-columns: minmax(0, 1fr) minmax(130px, .65fr); gap: 8px; min-height: 260px; }
  .finance-horror .finance-portrait-block { height: 260px; }
  .finance-horror .finance-hero h1 { font-size: 40px; letter-spacing: -2px; }
  .finance-horror .finance-hero .section-description { font-size: 15px; }
  .finance-horror .finance-ad-strip { font-size: 13px; padding: 8px 10px; }
  .finance-horror .finance-legal-grid { grid-template-columns: minmax(0,1fr); gap: 6px; }
  .finance-horror .finance-legal-grid > :is(dl,p,div) + :is(dl,p,div) { padding-left: 0; padding-top: 6px; border-left: 0; border-top: 1px solid #96764b88; }
}
@media (max-width: 600px) {
  .finance-horror .dashboard { padding-top: 12px; }
  .finance-horror .day-heading h1 { font-size: 18px; letter-spacing: 0; }
  .finance-horror .dream-finance { padding: 10px; }
  .finance-horror .finance-hero { grid-template-columns: minmax(0, 1fr); min-height: 286px; padding: 14px 10px 0; }
  .finance-horror .finance-hero-copy { position: relative; width: 77%; }
  .finance-horror .finance-hero h1 { font-size: 36px; }
  .finance-horror .finance-portrait-block { position: absolute; bottom: 0; right: -20px; width: 45%; height: 250px; grid-column: auto; grid-row: auto; z-index: 0; opacity: .7; }
  .finance-horror .finance-portrait-caption { display: none; }
  .finance-horror .finance-hero .section-description { font-size: 14px; max-width: 190px; }
  .finance-horror .finance-hero .tag { font-size: 12px; }
  .finance-horror .finance-seal { padding: 5px; font-size: 10px; }
  .finance-horror .dream-finance .product-card { padding: 12px; }
  .finance-horror .ledger h2 { font-size: 20px; }
  .finance-horror .priority-control { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .finance-horror .mailbox-top { border-bottom-color: #9a7751; }
}

.finance-horror .product-description > small { display: block; margin-top: 3px; font-size: 12px; line-height: 1.5; }
.finance-horror .finance-legal-grid > div > strong { font-size: 13px; }
.finance-horror .finance-legal-grid > div > p { margin-top: 4px; }
.finance-horror .finance-linked-clauses { padding-top: 6px; margin-top: 8px; border-top: 1px dashed #96764b; }
