@font-face {
  font-family: Manrope;
  src: url("/assets/manrope.8c2def024c1b.woff2") format("woff2");
  font-weight: 400 800;
  font-style: normal;
  font-display: swap;
}

:root {
  color-scheme: light;
  --ink: #281b25;
  --muted: #604c57;
  --plum: #3d2336;
  --red: #aa243d;
  --red-hover: #86172d;
  --paper: #fcf8f3;
  --white: #fffdfb;
  --line: #e8dcd3;
  --blush: #fae8e6;
  --focus: #13577b;
  --wrap: min(100% - 80px, 1240px);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--paper);
  color: var(--ink);
  font: 500 1rem/1.65 Manrope, system-ui, sans-serif;
}
img { display: block; max-width: 100%; height: auto; }
a { color: var(--red); text-underline-offset: .22em; }
button, summary { font: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid var(--focus); outline-offset: 4px; }
[hidden] { display: none !important; }
h1, h2, h3, p, figure, dl { margin: 0; }
h1, h2, h3 { font-weight: 800; line-height: 1.07; letter-spacing: -.053em; }
h2 { font-size: clamp(2rem, 3.4vw, 3.38rem); }
h3 { font-size: 1.25rem; letter-spacing: -.035em; }
p { text-wrap: pretty; }
section[id] { scroll-margin-top: 1.25rem; }
.wrap { width: var(--wrap); margin-inline: auto; }
.icon { display: inline-block; width: 1em; height: 1em; flex: 0 0 auto; vertical-align: -.12em; }
.eyebrow {
  display: flex;
  align-items: center;
  gap: .55rem;
  color: var(--red);
  font-size: .69rem;
  font-weight: 800;
  letter-spacing: .17em;
  text-transform: uppercase;
}
.eyebrow .icon { width: 1.1em; height: 1.1em; }
.skip {
  position: fixed;
  z-index: 8;
  top: 12px;
  left: 12px;
  padding: .65rem 1rem;
  border-radius: .5rem;
  transform: translateY(-150%);
  color: white;
  background: var(--plum);
}
.skip:focus { transform: none; }

.masthead { border-bottom: 1px solid var(--line); background: var(--white); }
.header-inner { display: flex; align-items: center; gap: 1rem; min-height: 78px; }
.brand { display: flex; align-items: center; gap: .65rem; text-decoration: none; color: var(--ink); flex: 0 0 auto; }
.brand img { width: 137px; height: auto; }
.brand-word { display: block; padding: 3px 0 1px 29px; font-size: .61rem; line-height: 1; letter-spacing: .22em; font-weight: 800; text-transform: uppercase; }
.nav { margin-left: auto; display: flex; align-items: center; gap: clamp(.1rem, 1.5vw, 1.25rem); }
.nav a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .45rem;
  min-height: 44px;
  padding: .45rem .4rem;
  color: var(--muted);
  font-size: .86rem;
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
}
.nav a:hover, .nav a[aria-current="page"] { color: var(--red); }
.nav a[aria-current="page"]:not(.nav-sheet) { text-decoration: underline; text-underline-offset: .4rem; }
.nav a.nav-sheet {
  min-height: 44px;
  padding: .52rem .94rem;
  margin-left: .42rem;
  border-radius: 999px;
  color: #fff;
  background: var(--plum);
}
.nav a.nav-sheet:hover { background: var(--red-hover); }
.menu-toggle { display: none; }

.button-row { display: flex; align-items: center; flex-wrap: wrap; gap: .65rem; }
.button {
  position: relative;
  isolation: isolate;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .65rem;
  min-height: 52px;
  padding: .77rem 1.04rem;
  border: 1px solid transparent;
  border-radius: .73rem;
  font-size: .9rem;
  font-weight: 800;
  line-height: 1.23;
  text-decoration: none;
  transition: background-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.button .icon { width: 1.05rem; height: 1.05rem; }
.button:active { transform: translateY(2px); }
.button-primary {
  background: var(--red);
  color: white;
  box-shadow: 0 3px 0 #731b2b;
}
.button-primary:hover, .button-primary:focus-visible { background: var(--red-hover); }
.button-secondary {
  color: var(--plum);
  background: #fff7e9;
  border-color: #a97772;
}
.button-secondary:hover, .button-secondary:focus-visible { background: #ffe8d0; }
.button-shine { overflow: hidden; }
.button-shine::after {
  content: "";
  position: absolute;
  z-index: -1;
  inset: 0;
  border-radius: inherit;
  background: linear-gradient(108deg, transparent 22%, #ffffff80 48%, transparent 73%);
  transform: translateX(-105%);
  pointer-events: none;
  animation: sweep 1.55s .12s 2 ease-in-out;
}
@keyframes sweep { 70%, 100% { transform: translateX(105%); } }

.hero {
  margin-top: 34px;
  display: grid;
  grid-template-columns: 1.01fr 1fr;
  border-radius: 28px;
  overflow: hidden;
  background: #f9e8e2;
  border: 1px solid #ebd4ce;
}
.hero-copy { align-self: center; min-width: 0; padding: clamp(1.8rem, 3.7vw, 3.25rem) clamp(2rem, 4.4vw, 4rem); }
.hero h1 {
  margin-top: .8rem;
  font-size: clamp(2.9rem, 5.8vw, 5.55rem);
  line-height: .99;
  letter-spacing: -.075em;
}
.hero p:not(.eyebrow) { margin: 1.2rem 0 1.55rem; max-width: 35ch; font-size: 1.04rem; color: var(--muted); }
.hero-picture { position: relative; display: grid; min-width: 0; min-height: clamp(410px, 35.5vw, 492px); background: #f89572; }
.hero-picture img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center center; }
.hero-picture figcaption {
  position: absolute;
  bottom: 1rem;
  right: 1rem;
  padding: .35rem .65rem;
  color: #502c2b;
  background: #fff1e5;
  border-radius: 999px;
  font-size: .65rem;
  font-weight: 800;
  letter-spacing: .1em;
  text-transform: uppercase;
}
.hero-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .9rem; margin-top: 1.2rem; color: #684955; font-size: .75rem; font-weight: 800; }
.hero-meta span { display: inline-flex; align-items: center; gap: .36rem; }
.hero-meta .icon { width: .89rem; height: .89rem; }
.coupon {
  margin-top: 16px;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: .8rem 1rem;
  padding: .78rem 1.1rem;
  border: 1px dashed #be918a;
  border-radius: 1rem;
  background: #fff3e2;
}
.coupon-icon {
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: .62rem;
  color: var(--red);
  background: #f8dbd0;
}
.coupon-icon .icon { width: 1.35rem; height: 1.35rem; }
.coupon strong { display: block; font-weight: 800; font-size: .92rem; line-height: 1.25; }
.coupon p { color: var(--muted); font-size: .74rem; margin-top: .17rem; }
.coupon a { display: inline-flex; align-items: center; gap: .45rem; font-size: .88rem; font-weight: 800; padding: .55rem .3rem; }

.block { margin-block: clamp(3.25rem, 7vw, 6.5rem); }
#categories.block { margin-top: clamp(2.6rem, 5.3vw, 4.35rem); }
.section-head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1rem 2rem;
  margin-bottom: 1.55rem;
}
.section-head h2 { margin-top: .4rem; }
.section-head p:not(.eyebrow) { max-width: 46ch; color: var(--muted); margin-top: .62rem; }
.section-head > a { flex: 0 0 auto; }
.text-link {
  display: inline-flex;
  align-items: center;
  gap: .38rem;
  color: var(--red);
  font-size: .91rem;
  font-weight: 800;
}
.text-link:hover { color: var(--red-hover); }
.section-chip {
  flex: 0 0 auto;
  align-self: center;
  padding: .32rem .68rem;
  border: 1px solid #d8b4b4;
  border-radius: 999px;
  color: var(--red-hover);
  font-size: .73rem;
  font-weight: 800;
}

.category-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.category-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: var(--white);
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.category-card:hover { border-color: #aa6770; box-shadow: 0 7px 14px #542e3812; transform: translateY(-3px); }
.category-card:active { transform: translateY(1px); }
.category-art {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 105px;
  background-color: var(--card-color, var(--blush));
  background-image: radial-gradient(ellipse at 50% 60%, #ffffff5c 0 34%, transparent 66%);
}
.theme-rose { --card-color: #f7dbdb; }
.theme-peach { --card-color: #fce5ce; }
.theme-lilac { --card-color: #eae0f3; }
.theme-mint { --card-color: #dcece5; }
.theme-blue { --card-color: #dfe8f5; }
.theme-butter { --card-color: #f5ebcd; }
.category-best .category-art {
  color: #fff3e8;
  background-color: #502b43;
  background-image: radial-gradient(ellipse at 53% 75%, #8f536e 5%, transparent 74%);
}
.category-art img { width: min(86%, 164px); }
.category-index {
  position: absolute;
  left: .63rem;
  top: .46rem;
  font-size: .62rem;
  font-weight: 800;
  letter-spacing: .13em;
  color: #624752;
}
.category-best .category-index { color: #ffe0db; }
.category-arrow {
  position: absolute;
  right: .52rem;
  top: .47rem;
  display: grid;
  place-items: center;
  border: 1px solid #3d233644;
  background: #fffdf9c9;
  color: var(--plum);
  width: 26px;
  height: 26px;
  border-radius: 50%;
  transition: background-color .2s ease, color .2s ease;
}
.category-card:hover .category-arrow, .category-card:focus-visible .category-arrow { background: var(--plum); color: white; }
.category-arrow .icon { width: .73rem; height: .73rem; }
.category-card-body { flex: 1; padding: .74rem .74rem .85rem; }
.category-card-body strong {
  display: block;
  font-weight: 800;
  line-height: 1.2;
  font-size: .95rem;
  letter-spacing: -.025em;
}
.category-card-body span { display: block; margin-top: .32rem; color: var(--muted); font-size: .73rem; line-height: 1.47; }

.editorial {
  display: grid;
  grid-template-columns: 1fr 1.22fr;
  gap: clamp(1.8rem, 5vw, 5rem);
  align-items: center;
  border-block: 1px solid var(--line);
  padding-block: clamp(2rem, 5vw, 4.15rem);
}
.editorial h2 { margin-top: .55rem; max-width: 15ch; }
.editorial-copy p { margin-bottom: .87rem; color: var(--muted); max-width: 57ch; }
.editorial-copy a { margin-top: .1rem; }

.guide-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; }
.guide-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border: 1px solid var(--line);
  border-radius: 1.2rem;
  overflow: hidden;
  background: var(--white);
  color: var(--ink);
  text-decoration: none;
  transition: border-color .2s ease, transform .2s ease;
}
.guide-card:hover { border-color: #aa6770; transform: translateY(-3px); }
.guide-card img { width: 100%; aspect-ratio: 1200 / 630; object-fit: cover; background: var(--blush); }
.guide-card-body { padding: 1.02rem 1.13rem 1.18rem; flex: 1; display: flex; flex-direction: column; gap: .48rem; }
.guide-card h3 { font-size: 1.26rem; line-height: 1.16; }
.guide-card p:not(.eyebrow) { color: var(--muted); font-size: .85rem; line-height: 1.58; }
.guide-card .text-link { margin-top: auto; padding-top: .2rem; }

.workflow {
  padding: clamp(1.5rem, 4.5vw, 3.5rem);
  border-radius: 1.55rem;
  background: #42273c;
  color: #fff9f1;
}
.workflow .eyebrow { color: #ffb1a9; }
.workflow h2 { margin: .5rem 0 1.25rem; }
.steps { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; list-style: none; padding: 0; margin: 0 0 1.5rem; }
.steps li { border: 1px solid #8b687e; border-radius: .92rem; padding: 1rem; }
.step-number { display: block; color: #ffc0b9; font-size: .72rem; font-weight: 800; letter-spacing: .16em; margin-bottom: .4rem; }
.steps p { color: #f5dfed; margin-top: .35rem; font-size: .88rem; }
.workflow .button-secondary { border-color: #f3beaa; }

.faq-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 1rem 3.5rem; align-items: start; }
.faq-grid h2 { margin: .5rem 0 .7rem; }
.faq-grid .text-link { margin-top: .2rem; }
.questions { display: grid; gap: .66rem; }
.questions details {
  border: 1px solid var(--line);
  border-radius: .83rem;
  background: var(--white);
}
.questions summary {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: .6rem;
  border-radius: .83rem;
  padding: .88rem 1rem;
  min-height: 48px;
  cursor: pointer;
  list-style: none;
  font-size: .94rem;
  font-weight: 800;
  line-height: 1.45;
}
.questions summary::-webkit-details-marker { display: none; }
.questions summary .icon { color: var(--red); }
.questions details[open] summary .icon { transform: rotate(45deg); }
.questions details p { color: var(--muted); padding: 0 1rem 1rem; font-size: .94rem; }
.questions details a { font-weight: 800; }

.shortcut {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: .85rem 1.3rem;
  margin-top: 1.35rem;
  padding: .95rem 1.2rem;
  background: #f6e5e6;
  border: 1px solid #e6ced0;
  border-radius: 1.12rem;
}
.shortcut-title { margin-top: .17rem; font-size: clamp(1.12rem, 2.45vw, 1.55rem); line-height: 1.14; letter-spacing: -.05em; font-weight: 800; }
.shortcut .button { min-height: 45px; font-size: .83rem; padding: .67rem .88rem; }
.mobile-label { display: none; }
.subhead { margin-block: clamp(2.15rem, 5.7vw, 4.55rem) 1.7rem; }
.subhead h1, .article-header h1 { font-size: clamp(2.25rem, 5.9vw, 4.55rem); line-height: 1.02; letter-spacing: -.065em; overflow-wrap: break-word; }
.subhead h1 { margin-top: .55rem; max-width: 20ch; }
.subhead p:not(.eyebrow) { color: var(--muted); font-size: clamp(.98rem, 1.6vw, 1.12rem); max-width: 59ch; margin-top: .82rem; }
.sub-content { margin-bottom: clamp(3rem, 6vw, 5rem); }
.sub-content .category-grid { margin-top: 1rem; }
.sub-content > .questions { max-width: 830px; }

.breadcrumb {
  margin: 1.8rem 0 .9rem;
  font-size: .76rem;
  color: var(--muted);
}
.breadcrumb a { color: var(--muted); font-weight: 800; }
.article-shell { width: min(var(--wrap), 950px); margin: 0 auto clamp(3.25rem, 6vw, 6rem); }
.article-header { margin: 1.4rem 0 1.6rem; }
.article-header h1 { margin: .47rem 0 .85rem; }
.article-header .deck { max-width: 68ch; color: var(--muted); font-size: clamp(1rem, 1.8vw, 1.14rem); }
.article-header .byline { margin-top: .75rem; font-weight: 800; color: var(--muted); font-size: .76rem; }
.article-cover { overflow: hidden; border-radius: 1.2rem; border: 1px solid var(--line); margin-bottom: 1.8rem; }
.article-cover img { width: 100%; aspect-ratio: 1200 / 630; object-fit: cover; background: var(--blush); }
.article-cover figcaption { font-size: .72rem; color: var(--muted); background: var(--white); padding: .4rem .85rem; }
.prose { max-width: 70ch; }
.article-shell > .prose { margin-inline: auto; }
.prose h2 { font-size: clamp(1.45rem, 3vw, 2.18rem); margin-top: 1.75rem; margin-bottom: .55rem; }
.prose h2:first-child { margin-top: 0; }
.prose h3 { margin: 1.4rem 0 .4rem; }
.prose p, .prose ul, .prose ol { margin-bottom: .9rem; }
.prose ul, .prose ol { padding-left: 1.33rem; }
.prose li + li { margin-top: .26rem; }
.prose a { font-weight: 800; overflow-wrap: anywhere; }
.prose .note {
  padding: .9rem 1.08rem;
  border-left: 3px solid #aa6170;
  border-radius: 0 .65rem .65rem 0;
  background: #f9e9e7;
}
.related { border-top: 1px solid var(--line); margin-top: 2.2rem; padding-top: 1.55rem; }
.related h2 { font-size: clamp(1.5rem, 3vw, 2.1rem); margin-bottom: .8rem; }
.related .guide-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.legal { max-width: 76ch; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 1rem; max-width: 900px; }
.contact-grid section { padding: 1.25rem; border: 1px solid var(--line); background: var(--white); border-radius: 1.05rem; min-width: 0; }
.contact-grid h2 { font-size: 1.55rem; margin-bottom: .6rem; }
.contact-grid p + p { margin-top: .65rem; }
.contact-grid a { overflow-wrap: anywhere; }

.site-footer { background: #392638; color: #fff8f1; }
.footer-grid { display: grid; grid-template-columns: 1.5fr .74fr 1fr; gap: 1.5rem 2rem; padding-block: 2.6rem 1.75rem; }
.footer-title { display: flex; align-items: center; gap: .63rem; font-size: 1.17rem; font-weight: 800; }
.footer-grid p { margin-top: .65rem; color: #efdae9; font-size: .86rem; max-width: 40ch; }
.footer-nav h2 { font-size: 1rem; color: #ffb9b0; letter-spacing: -.018em; margin-bottom: .52rem; }
.footer-nav a { color: #fff6f2; display: block; width: fit-content; padding-block: .12rem; font-size: .83rem; overflow-wrap: anywhere; }
.footer-bottom { padding-block: .95rem 1.16rem; border-top: 1px solid #765b71; font-size: .75rem; color: #efdae9; }
.site-footer a:focus-visible, .workflow a:focus-visible { outline-color: #ffbd8b; }

@media (max-width: 1120px) {
  .category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .hero-copy { padding: clamp(1.75rem, 4vw, 3.1rem); }
}
@media (max-width: 900px) {
  :root { --wrap: min(100% - 48px, 1240px); }
  .header-inner { gap: .55rem; }
  .nav { gap: .32rem; }
  .nav a { font-size: .8rem; padding-inline: .33rem; }
  .nav a.nav-sheet { padding-inline: .7rem; }
  .hero h1 { font-size: clamp(2.65rem, 6.05vw, 4.5rem); }
  .hero-picture { min-height: 385px; }
  .faq-grid { gap: 1rem 2rem; }
}
@media (max-width: 735px) {
  :root { --wrap: min(100% - 32px, 1240px); }
  .header-inner { position: relative; min-height: 66px; flex-wrap: wrap; justify-content: space-between; padding-block: .62rem; }
  .brand img { width: 124px; }
  .brand-word { font-size: .55rem; padding-left: 25px; }
  .nav { flex: 0 0 100%; flex-wrap: wrap; margin-left: 0; gap: .12rem .42rem; padding-bottom: .35rem; }
  .nav a { padding-inline: .55rem; }
  .nav a.nav-sheet { margin-left: 0; }
  .has-js .menu-toggle {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: .4rem;
    color: var(--plum);
    background: #fff5ed;
    border: 1px solid #d6b7b5;
    border-radius: .65rem;
    min-height: 44px;
    padding: .4rem .66rem;
    font-size: .82rem;
    font-weight: 800;
  }
  .has-js .nav[data-open="false"] { display: none; }
  .hero { grid-template-columns: 1fr; margin-top: 16px; border-radius: 1.25rem; }
  .hero-copy { padding: 1.4rem clamp(1rem, 5vw, 2rem) 1.3rem; }
  .hero h1 { font-size: clamp(2.65rem, 9.25vw, 4.65rem); }
  .hero p:not(.eyebrow) { margin: .86rem 0 1rem; font-size: .96rem; }
  .hero-meta { margin-top: .9rem; }
  .hero-picture { min-height: 0; aspect-ratio: 16 / 10; }
  .hero-picture figcaption { bottom: .57rem; right: .57rem; font-size: .55rem; }
  .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .editorial, .faq-grid { grid-template-columns: 1fr; }
  .editorial h2 { max-width: unset; }
  .guide-grid { gap: .75rem; }
  .guide-card-body { padding: .85rem; }
  .guide-card h3 { font-size: 1.1rem; }
  .steps { gap: .65rem; }
  .steps li { padding: .7rem; }
  .steps h3 { font-size: 1.06rem; }
  .shortcut { gap: .72rem; padding: .82rem .9rem .93rem; grid-template-columns: 1fr; margin-top: 1rem; }
  .shortcut .button { min-height: 44px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > div:first-child { grid-column: 1 / -1; }
}
@media (max-width: 530px) {
  .section-head { align-items: start; flex-direction: column; gap: .6rem; }
  .section-chip { align-self: start; }
  .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
  .category-art { min-height: 89px; }
  .category-card-body { padding: .65rem .62rem .72rem; }
  .category-card-body strong { font-size: .9rem; }
  .guide-grid, .related .guide-grid, .contact-grid { grid-template-columns: 1fr; }
  .guide-card h3 { font-size: 1.2rem; }
  .steps { grid-template-columns: 1fr; }
  .steps li { padding: .83rem; }
  .coupon { grid-template-columns: auto 1fr; gap: .25rem .6rem; padding: .61rem .8rem; }
  .coupon a { grid-column: 2; justify-self: start; padding-inline: 0; }
  .shortcut .button { padding-inline: .68rem; font-size: .79rem; gap: .42rem; }
  .shortcut .button .icon { width: .9rem; height: .9rem; }
  .mobile-label { display: inline; }
  .desktop-label { display: none; }
}
@media (max-width: 355px) {
  :root { --wrap: min(100% - 26px, 1240px); }
  .hero .button { padding-inline: .7rem; font-size: .8rem; gap: .44rem; min-height: 46px; }
  .hero .button .icon { width: .88rem; height: .88rem; }
  .shortcut .button { padding-inline: .59rem; font-size: .77rem; gap: .4rem; }
  .shortcut .button .icon { width: .8rem; height: .8rem; }
  .button-row { gap: .48rem; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
  .button:active, .category-card:hover, .category-card:active, .guide-card:hover { transform: none; }
}

.guide-section:first-child { margin-top: 0; }

@font-face {
  font-family: "Space Grotesk";
  src: url("/assets/space-grotesk.0640890476fc.woff2") format("woff2");
  font-style: normal;
  font-weight: 500 700;
  font-display: swap;
}
@font-face {
  font-family: "Barlow Condensed";
  src: url("/assets/barlow-condensed.2515494e8cc2.woff2") format("woff2");
  font-style: normal;
  font-weight: 800;
  font-display: swap;
}

.theme-night-drop {
  color-scheme: dark;
  --paper: #101114;
  --white: #1a1c21;
  --ink: #f6f3ee;
  --muted: #bab9bf;
  --line: #33353e;
  --plum: #eceaf0;
  --red: #ff865e;
  --red-hover: #ffa782;
  --focus: #ffae8c;
  --action: #ff754e;
  --action-hover: #ff9c78;
  --action-ink: #1d1411;
  --secondary: #202127;
  --secondary-hover: #30323a;
  --outline: #575a65;
  --offer: #231a18;
  --offer-line: #724633;
  --accent-wash: #39261f;
  --hero-surface: #151518;
  --hero-edge: #36343a;
  --foot: #15161a;
  --heading: "Space Grotesk", Manrope, system-ui, sans-serif;
  --corner: .8rem;
}
.theme-court-issue {
  color-scheme: light;
  --paper: #f5f2e8;
  --white: #fffdf5;
  --ink: #141c32;
  --muted: #454f64;
  --line: #d4cfc1;
  --plum: #14203e;
  --red: #173da9;
  --red-hover: #102e8a;
  --focus: #142c8a;
  --action: #1741ba;
  --action-hover: #0f328f;
  --action-ink: #fffdf7;
  --secondary: #fffdf1;
  --secondary-hover: #f4e9c1;
  --outline: #666c7b;
  --offer: #f0e6b9;
  --offer-line: #958653;
  --accent-wash: #e7dca9;
  --hero-surface: #f5f2e8;
  --hero-edge: #2b3453;
  --foot: #152448;
  --heading: "Barlow Condensed", Manrope, system-ui, sans-serif;
  --corner: .22rem;
}
.theme-gridline {
  color-scheme: dark;
  --paper: #0a1020;
  --white: #131d32;
  --ink: #f3f7ff;
  --muted: #b0bed8;
  --line: #273655;
  --plum: #e4eeff;
  --red: #d7fa80;
  --red-hover: #e8ffab;
  --focus: #d5f77d;
  --action: #d4f776;
  --action-hover: #ebffab;
  --action-ink: #131a09;
  --secondary: #1a2742;
  --secondary-hover: #25395c;
  --outline: #506485;
  --offer: #182519;
  --offer-line: #526c39;
  --accent-wash: #253b24;
  --hero-surface: #101a30;
  --hero-edge: #304266;
  --foot: #0d1528;
  --heading: "Space Grotesk", Manrope, system-ui, sans-serif;
  --corner: .48rem;
}

h1, h2, h3 { font-family: var(--heading); }
.eyebrow { letter-spacing: .15em; }
.skip { background: var(--action); color: var(--action-ink); }
.brand { gap: .54rem; }
.brand-mark {
  display: block;
  position: relative;
  width: 34px;
  height: 32px;
  overflow: hidden;
  flex: 0 0 auto;
}
.brand-mark img {
  position: absolute;
  inset: 0 auto auto 0;
  width: 172.97px;
  max-width: none;
  height: 32px;
}
.brand-lockup { font-family: var(--heading); font-size: 1.32rem; font-weight: 800; line-height: .94; letter-spacing: -.045em; }
.brand-word { margin-top: 4px; padding: 0; font-family: Manrope, system-ui, sans-serif; font-size: .56rem; letter-spacing: .16em; }
.masthead { background: var(--paper); }
.header-inner { min-height: 72px; }
.nav a { color: var(--muted); }
.nav a.nav-sheet {
  color: var(--ink);
  background: var(--secondary);
  border: 1px solid var(--outline);
  border-radius: var(--corner);
}
.nav a.nav-sheet:hover { background: var(--secondary-hover); color: var(--red); }
.button { border-radius: var(--corner); }
.button-primary { color: var(--action-ink); background: var(--action); box-shadow: none; }
.button-primary:hover, .button-primary:focus-visible { background: var(--action-hover); }
.button-secondary { color: var(--ink); background: var(--secondary); border-color: var(--outline); }
.button-secondary:hover, .button-secondary:focus-visible { background: var(--secondary-hover); }

.hero {
  position: relative;
  border-color: var(--hero-edge);
  background: var(--hero-surface);
  border-radius: calc(var(--corner) * 1.45);
  margin-top: clamp(1.2rem, 2.6vw, 2.5rem);
}
.hero-copy { position: relative; z-index: 2; }
.hero-kicker {
  display: flex;
  align-items: center;
  gap: .75rem;
  margin-bottom: .8rem;
}
.hero-kicker .eyebrow { font-size: .68rem; }
.hero-serial {
  border-left: 1px solid var(--outline);
  padding-left: .73rem;
  color: var(--muted);
  font: 700 .72rem/1 "Space Grotesk", system-ui, sans-serif;
  letter-spacing: .08em;
}
.hero h1 { margin-top: 0; font-size: clamp(3rem, 6.15vw, 6.25rem); font-weight: 700; letter-spacing: -.073em; }
.hero p.hero-lede { max-width: 39ch; margin: 1.15rem 0 1.55rem; }
.hero-meta { color: var(--muted); margin-top: 1.15rem; gap: .5rem .65rem; }
.hero-meta span {
  border: 1px solid var(--line);
  border-radius: 99px;
  background: var(--hero-surface);
  padding: .2rem .64rem;
  font-size: .7rem;
}
.hero-picture { background: var(--hero-surface); }
.hero-picture figcaption {
  z-index: 1;
  color: var(--ink);
  background: var(--paper);
  border: 1px solid var(--outline);
  border-radius: var(--corner);
}
.hero-picture figcaption span { color: var(--red); }

.theme-night-drop .hero {
  min-height: clamp(440px, 40vw, 544px);
  grid-template-columns: minmax(0, 1fr);
  align-items: center;
  isolation: isolate;
}
.theme-night-drop .hero-copy { width: min(70%, 745px); padding: clamp(2.4rem, 5.2vw, 4.7rem); }
.theme-night-drop .hero-picture {
  position: absolute;
  inset: 0 0 0 29%;
  min-height: 0;
  border-radius: 0;
}
.theme-night-drop .hero-picture img { object-position: 62% 50%; }
.theme-night-drop .hero-picture::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #151518 0%, #151518d9 12%, #15151855 33%, transparent 51%);
  pointer-events: none;
}
.theme-night-drop .hero-picture figcaption { top: 1rem; right: 1rem; bottom: auto; }
.theme-night-drop .hero-meta span { background: #19191dd9; }

.theme-court-issue .masthead { border-bottom: 2px solid var(--hero-edge); }
.theme-court-issue .brand-lockup { font-family: "Space Grotesk", Manrope, sans-serif; }
.theme-court-issue .hero {
  grid-template-columns: .98fr 1.02fr;
  border-width: 2px 0;
  border-radius: 0;
  gap: clamp(1rem, 3vw, 2.65rem);
  padding: clamp(.8rem, 2.35vw, 2rem) 0;
  background-image: repeating-linear-gradient(0deg, transparent 0 35px, #2447a20c 35px 36px);
}
.theme-court-issue .hero-copy { padding: 1.5rem .6rem 1.5rem clamp(0rem, 1.9vw, 1.5rem); }
.theme-court-issue .hero h1 {
  text-transform: uppercase;
  font-weight: 800;
  font-size: clamp(3.4rem, 7.55vw, 7.2rem);
  letter-spacing: -.032em;
  line-height: .83;
}
.theme-court-issue .hero-picture {
  min-height: clamp(370px, 34.5vw, 484px);
  border: 2px solid var(--hero-edge);
  box-shadow: 5px 5px 0 var(--action);
}
.theme-court-issue .hero-picture img { object-position: center 52%; }
.theme-court-issue .hero-picture figcaption { left: .75rem; right: auto; bottom: .75rem; }
.theme-court-issue h2 { text-transform: uppercase; font-size: clamp(2.4rem, 4.1vw, 3.9rem); font-weight: 800; letter-spacing: -.026em; }
.theme-court-issue .subhead h1, .theme-court-issue .article-header h1 {
  font-weight: 800;
  letter-spacing: -.025em;
  font-size: clamp(2.75rem, 6.5vw, 5.3rem);
}
.theme-court-issue .prose h2 { font-size: clamp(1.8rem, 3.55vw, 2.55rem); }
.theme-court-issue .footer-nav h2 { font: 800 1rem/1.2 Manrope, system-ui, sans-serif; text-transform: none; letter-spacing: 0; }

.theme-gridline .hero {
  grid-template-columns: 1fr 1.02fr;
  align-items: stretch;
  gap: .7rem;
  padding: .78rem;
  background-image:
    linear-gradient(#8ab2ff10 1px, transparent 1px),
    linear-gradient(90deg, #8ab2ff10 1px, transparent 1px);
  background-size: 32px 32px;
}
.theme-gridline .hero-copy { padding: clamp(1.5rem, 3.9vw, 3.6rem); }
.theme-gridline .hero h1 {
  font-size: clamp(2.7rem, 5.62vw, 5.5rem);
  inline-size: min-content;
  max-inline-size: 100%;
}
@supports (background-clip: text) {
  .theme-gridline .hero h1 {
    background-image: linear-gradient(to bottom, var(--ink) 53%, var(--red) 53%);
    background-clip: text;
    color: transparent;
  }
}
@media (forced-colors: active) {
  .theme-gridline .hero h1 { background: none; color: CanvasText; }
}
.theme-gridline .hero-kicker .eyebrow { padding: .33rem .57rem; border: 1px solid #597551; background: #20321f; }
.theme-gridline .hero-picture {
  min-height: clamp(385px, 34vw, 475px);
  border: 1px solid var(--outline);
  border-radius: var(--corner);
  overflow: hidden;
}
.theme-gridline .hero-picture figcaption { right: .7rem; bottom: .65rem; }
.theme-gridline .hero-meta span { border-radius: var(--corner); }
.quick-tabs {
  display: flex;
  align-items: center;
  gap: .35rem .65rem;
  flex-wrap: wrap;
  margin-top: .95rem;
  color: var(--muted);
}
.quick-tabs strong { color: var(--ink); font-size: .76rem; margin-right: .15rem; text-transform: uppercase; letter-spacing: .08em; }
.quick-tab {
  display: inline-flex;
  align-items: center;
  gap: .4rem;
  min-height: 42px;
  padding: .35rem .68rem;
  color: var(--muted);
  background: var(--white);
  border: 1px solid var(--line);
  border-radius: var(--corner);
  font-size: .81rem;
  font-weight: 800;
  text-decoration: none;
}
.quick-tab:hover { border-color: var(--red); color: var(--red); }

.coupon {
  grid-template-columns: auto minmax(0, 1fr) auto;
  border: 1px solid var(--offer-line);
  border-radius: var(--corner);
  background: var(--offer);
  padding: .85rem 1.14rem;
}
.coupon-icon { color: var(--red); background: var(--accent-wash); border-radius: var(--corner); width: 46px; height: 46px; }
.coupon-icon .icon { width: 1.4rem; height: 1.4rem; }
.coupon p.coupon-kicker { margin: 0 0 .14rem; font-size: .64rem; letter-spacing: .12em; font-weight: 800; text-transform: uppercase; }
.coupon strong { font-family: "Space Grotesk", Manrope, system-ui, sans-serif; font-size: clamp(1.16rem, 2.2vw, 1.6rem); }
.coupon p.coupon-note { margin-top: .23rem; color: var(--red); font-size: .72rem; font-weight: 800; }
.coupon .button-offer {
  justify-self: end;
  min-height: 44px;
  padding: .62rem .87rem;
  background: var(--action);
  color: var(--action-ink);
  font-weight: 800;
  text-decoration: none;
}
.coupon .button-offer:hover { background: var(--action-hover); }
.theme-court-issue .coupon { border-style: dashed; }
.theme-gridline .coupon { border-inline-start: 4px solid var(--action); }

#categories.block { margin-top: clamp(2rem, 4vw, 3.6rem); }
.category-card, .guide-card { border-radius: var(--corner); }
.category-card:hover, .guide-card:hover { border-color: var(--red); box-shadow: 0 7px 18px #090a1230; }
.category-card-body strong { font-size: 1rem; }
.category-index { font-family: "Space Grotesk", system-ui, sans-serif; font-weight: 700; }
.category-arrow { color: #19233b; }
.category-card:hover .category-arrow, .category-card:focus-visible .category-arrow { color: var(--action-ink); background: var(--action); }
.theme-night-drop .category-art, .theme-gridline .category-art {
  background-image: radial-gradient(ellipse at 49% 62%, #ffffff14 0 32%, transparent 70%);
}
.theme-night-drop .category-index, .theme-gridline .category-index { color: #e5e2e5; }
.theme-night-drop .category-best .category-art { background-color: #56313a; }
.theme-night-drop .theme-rose { --card-color: #503038; }
.theme-night-drop .theme-peach { --card-color: #503a31; }
.theme-night-drop .theme-lilac { --card-color: #3c344a; }
.theme-night-drop .theme-mint { --card-color: #273e3b; }
.theme-night-drop .theme-blue { --card-color: #303c55; }
.theme-night-drop .theme-butter { --card-color: #4b422e; }
.theme-gridline .category-best .category-art { background-color: #34462c; }
.theme-gridline .theme-rose { --card-color: #47344f; }
.theme-gridline .theme-peach { --card-color: #433a43; }
.theme-gridline .theme-lilac { --card-color: #393655; }
.theme-gridline .theme-mint { --card-color: #263f44; }
.theme-gridline .theme-blue { --card-color: #2a3d5e; }
.theme-gridline .theme-butter { --card-color: #404632; }
.theme-gridline .category-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.theme-gridline .category-art { border-bottom: 1px solid var(--line); }
.theme-court-issue .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.theme-court-issue .category-card { display: grid; grid-template-columns: 104px minmax(0, 1fr); min-height: 106px; }
.theme-court-issue .category-art { min-height: 96px; }
.theme-court-issue .category-card-body { align-self: center; padding: .65rem .85rem; }
.theme-court-issue .category-arrow { right: .34rem; top: .34rem; width: 22px; height: 22px; }

.shortcut {
  color: var(--ink);
  background: var(--white);
  border-color: var(--line);
  border-inline-start: 3px solid var(--action);
  border-radius: var(--corner);
}
.shortcut-title { font-family: "Space Grotesk", Manrope, system-ui, sans-serif; }
.section-chip { border-color: var(--outline); color: var(--red); }
.workflow {
  border: 1px solid var(--line);
  border-radius: calc(var(--corner) * 1.35);
  background: var(--white);
  color: var(--ink);
}
.workflow .eyebrow, .step-number { color: var(--red); }
.workflow .button-secondary, .steps li { border-color: var(--outline); }
.steps li { border-radius: var(--corner); }
.steps p, .prose .note { color: var(--muted); }
.prose .note { border-left-color: var(--action); background: var(--white); }
.questions details, .questions summary, .contact-grid section, .article-cover { border-radius: var(--corner); }
.site-footer { background: var(--foot); color: #f7f7f8; }
.footer-nav h2 { color: #ffbb9c; }
.theme-court-issue .footer-nav h2 { color: #ffeb9a; }
.theme-gridline .footer-nav h2 { color: #d7fa80; }
.footer-nav a, .footer-grid p, .footer-bottom { color: #e5e8f0; }
.footer-bottom { border-color: #565b71; }

@media (prefers-reduced-motion: no-preference) {
  .theme-gridline .shortcut .button-shine {
    animation: shortcut-glow 1.55s .12s 3 ease-out;
  }
  .theme-gridline .shortcut .button-shine::after { animation-iteration-count: 3; }
  .theme-gridline .shortcut .button-shine:is(:hover, :focus-visible) {
    animation: none;
    box-shadow: 0 0 0 3px #d7fa8070, 0 0 16px #d7fa8038;
  }
  .theme-gridline .hero-picture img {
    animation: hero-settle 1.05s cubic-bezier(.22, 1, .36, 1) both;
  }
  .category-art img, .category-arrow .icon { transition: transform .22s ease; }
  .category-card:is(:hover, :focus-visible, :active) .category-art img {
    transform: translateY(-3px) scale(1.06);
  }
  .category-card:is(:hover, :focus-visible, :active) .category-arrow .icon {
    transform: translate(1px, -1px);
  }
}
@keyframes shortcut-glow {
  0% { box-shadow: 0 0 0 1px #d7fa80a0, 0 0 11px #d7fa8050; }
  68%, 100% { box-shadow: 0 0 0 10px #d7fa8000, 0 0 22px #d7fa8000; }
}
@keyframes hero-settle {
  from { transform: scale(1.045); }
  to { transform: scale(1); }
}

@media (max-width: 1120px) {
  .theme-night-drop .hero-copy { width: min(74%, 655px); padding: clamp(1.7rem, 4.6vw, 3.6rem); }
  .theme-court-issue .category-card { grid-template-columns: 86px minmax(0, 1fr); }
}
@media (max-width: 900px) {
  .theme-court-issue .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .theme-gridline .category-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .theme-court-issue .hero-picture { min-height: 356px; }
  .theme-gridline .hero-picture { min-height: 350px; }
  .theme-night-drop .hero h1 { font-size: clamp(2.75rem, 6.65vw, 5.7rem); }
}
@media (max-width: 735px) {
  .header-inner { min-height: 66px; }
  .has-js .menu-toggle {
    background: var(--secondary);
    color: var(--ink);
    border-color: var(--outline);
    border-radius: var(--corner);
  }
  .hero-kicker { margin-bottom: .63rem; }
  .hero .hero-copy h1 { font-size: clamp(2.62rem, 9.1vw, 4.65rem); }
  .hero p.hero-lede { font-size: .94rem; margin: .75rem 0 .95rem; }
  .hero-meta { margin-top: .8rem; }
  .hero-meta span { font-size: .65rem; }
  .hero .hero-copy, .theme-night-drop .hero-copy, .theme-gridline .hero-copy, .theme-court-issue .hero-copy {
    width: auto;
    padding: 1.35rem clamp(1rem, 4.4vw, 1.85rem);
  }
  .theme-night-drop .hero, .theme-court-issue .hero, .theme-gridline .hero { grid-template-columns: minmax(0, 1fr); }
  .theme-night-drop .hero { min-height: 0; }
  .theme-night-drop .hero-picture { position: relative; inset: auto; }
  .theme-night-drop .hero-picture::after { content: none; }
  .theme-night-drop .hero-picture figcaption { top: auto; bottom: .55rem; right: .55rem; }
  .theme-court-issue .hero { gap: .15rem; padding: .15rem 0 .72rem; }
  .theme-court-issue .hero .hero-copy h1 { font-size: clamp(3.15rem, 10.1vw, 5.8rem); }
  .theme-court-issue .hero-copy { padding-inline: .3rem; }
  .theme-court-issue .hero-picture { min-height: 0; box-shadow: 3px 3px 0 var(--action); }
  .theme-gridline .hero { gap: 0; padding: .45rem; }
  .theme-gridline .hero .hero-copy { padding: 1.12rem .76rem; }
  .theme-gridline .hero-picture { min-height: 0; }
}
@media (max-width: 530px) {
  .theme-gridline .category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .theme-court-issue .category-card { display: flex; }
  .theme-court-issue .category-card-body { align-self: stretch; padding: .65rem .62rem .72rem; }
  .coupon { grid-template-columns: auto minmax(0, 1fr); gap: .43rem .62rem; padding: .65rem .8rem .78rem; }
  .coupon-icon { width: 37px; height: 37px; }
  .coupon .button-offer { grid-column: 2; justify-self: start; }
  .hero-serial { padding-left: .5rem; }
  .hero-kicker { gap: .52rem; }
  .hero-kicker .eyebrow { font-size: .61rem; }
  .category-card-body strong { font-size: .91rem; }
}
