/* Warm, luminous final overrides. Product art and application behavior stay in markup. */
:root {
  --paper: #fffaf5;
  --ink: #49375e;
  --gold: #b09059;
  --muted: #716477;
  --rule: #ded1e5;
  --wash: #f3edf9;
  --night: #5e477f;
  --spirit-purple: #5e477f;
  --spirit-rose: #e8c9d4;
  --spirit-shadow: 0 12px 40px #6347820b;
}

body {
  background: radial-gradient(ellipse at 100% 4%, #f0e4f650, transparent 42%), var(--paper);
  color: var(--ink);
  font-size: 16px;
  line-height: 1.95;
}
::selection { background: #e8d9ef; color: #49375e; }
h1, h2, h3 { color: var(--ink); letter-spacing: .025em; text-wrap: balance; }
img { color: var(--ink); }
:focus-visible, .fortune :is(a, button, input, select):focus-visible {
  outline: 3px solid #8663a5;
  outline-offset: 4px;
}
.l-kicker, .eyebrow, .fortune-eyebrow { color: #8a647f; }
.l-kicker { letter-spacing: .16em; }
.site-header {
  height: 92px;
  min-height: 92px;
  background: #fffaf5f5;
  color: var(--spirit-purple);
  border-bottom: 1px solid #e8dce8;
  padding-inline: 5.2%;
  gap: 28px;
}
.wordmark > span { color: var(--spirit-purple); }
.wordmark > small { color: #7b6b83; letter-spacing: .13em; }
.desktop-nav { gap: 26px; }
.desktop-nav a { color: #60506e; font-size: 14px; }
.desktop-nav a:hover { color: var(--spirit-purple); }
.desktop-nav a[aria-current] { text-decoration-color: #b68aaa; text-underline-offset: 8px; }
.desktop-nav a[href='/uranai/'] {
  border: 1px solid #d3bddd;
  background: #f3edf9;
  color: var(--spirit-purple);
  border-radius: 999px;
  padding: 7px 20px;
}
.menu-opener, .menu-closer { color: var(--spirit-purple); }
.l-button, .button, .fortune-button, .affiliate-link > a {
  min-height: 54px;
  background: var(--spirit-purple);
  border: 1px solid var(--spirit-purple);
  color: #fffaf5;
  border-radius: 999px;
  font-size: 15px;
  letter-spacing: .04em;
  line-height: 1.65;
  text-align: center;
  box-shadow: 0 5px 16px #5e477f12;
  transition: background .2s, border-color .2s, transform .2s;
}
.l-button:hover, .button:hover, .fortune-button:hover, .affiliate-link > a:hover {
  background: #4f396d;
  border-color: #4f396d;
  color: #fffaf5;
  transform: translateY(-2px);
  text-decoration: none;
}
.l-button-light, .button.secondary, .fortune-button-secondary {
  background: #fffaf5;
  border-color: #cbb5d7;
  color: var(--spirit-purple);
  box-shadow: none;
}
.l-button-light:hover, .button.secondary:hover, .fortune-button-secondary:hover {
  background: #f3edf9;
  border-color: #a786bb;
  color: var(--spirit-purple);
}
.l-text-link, .text-link, .fortune-text-link { color: var(--spirit-purple); }
.l-text-link { border-color: #c7a4bc; }
.l-text-link:hover { border-color: var(--spirit-purple); }
.l-container { max-width: 1180px; }

.l-intro { padding-block: 88px 70px; gap: 36px; align-items: start; }
.l-section-meta > span {
  width: 56px;
  height: 56px;
  display: grid;
  place-items: center;
  border: 1px solid #d8c6de;
  border-radius: 50%;
  background: #fbf6fc;
  color: #96779f;
  font: 400 24px/1 Georgia, serif;
  flex: none;
}
.l-section-meta > p { color: #806f89; font-size: 11px; padding-top: 9px; }
.l-intro-heading h2 { white-space: normal; font-size: 31px; line-height: 1.85; }
.l-intro-copy > p { color: #716477; font-size: 15px; line-height: 2.15; }
.l-reading-band {
  border: 1px solid #dfd1e8;
  background: linear-gradient(120deg, #f3edf9, #fbf1f4 70%, #fff9f1);
  border-radius: 24px;
  box-shadow: var(--spirit-shadow);
}
.l-reading-band h2 { font-size: 28px; line-height: 1.85; }
.l-reading-band p:not(.l-kicker) { color: #716477; }
.l-reading-number { color: #9274a8; }
.l-reading-number > span { color: #776781; }
.l-reading-topics { gap: 10px; }
.l-reading-topics > span {
  border: 1px solid #e5d9e9;
  padding: 8px 10px;
  text-align: center;
  color: #6d587d;
  background: #ffffff70;
  border-radius: 999px;
  font-size: 12px;
}
.l-reading-topics .l-button { margin-top: 14px; min-height: 50px; }

.l-collection { padding-block: 86px 82px; }
.l-section-header { margin-bottom: 34px; }
.l-section-header h2 { font-size: 34px; }
.l-section-header > div > p:not(.l-kicker) { color: #716477; }
.l-product-grid { gap: 25px; }
.l-product-card {
  background: #fffdfb;
  border: 1px solid #e9dfe9;
  border-radius: 18px;
  padding-bottom: 23px;
  overflow: hidden;
  box-shadow: var(--spirit-shadow);
}
.l-product-photo { background: #f5eef5; border-radius: 17px 17px 0 0; }
.l-product-photo img { aspect-ratio: 1.35; object-fit: contain; }
.l-product-photo > span {
  background: #fffaf5ef;
  border: 1px solid #e1d2e6;
  color: #6e587d;
  border-radius: 999px;
  padding: 4px 12px;
  bottom: 14px;
}
.l-product-stones { margin-inline: 22px; margin-top: 20px; color: #80698c; font-size: 13px; }
.l-product-line { margin-inline: 22px; flex-wrap: wrap; gap: 5px 12px; }
.l-product-line h3 { font-size: 18px; }
.l-product-line > p { color: #6a507f; font-size: 19px; }
.l-product-line small { color: #7c6e83; }
.l-image-note { color: #796d7e; }
.l-story {
  background: linear-gradient(120deg, #f0e6f5, #f9edf0 78%);
  color: var(--ink);
  position: relative;
  padding: 66px max(48px, calc((100vw - 1180px) / 2));
  gap: 62px;
  align-items: center;
}
.l-story-photo { min-height: 0; height: 540px; border-radius: 260px 260px 18px 18px; border: 8px solid #fffaf595; box-shadow: 0 14px 45px #86679a14; }
.l-story-photo > img { height: 100%; object-position: 50% 50%; }
.l-story-copy { padding: 22px 0; min-width: 0; }
.l-story .l-kicker { color: #987791; }
.l-story h2 { color: var(--spirit-purple); font-size: 35px; margin-top: 22px; }
.l-story-copy > p:not(.l-kicker) { color: #6f5f7b; line-height: 2.2; font-size: 15px; }
.l-story .l-text-link { color: var(--spirit-purple); border-color: #c5a6bf; }
.l-journal { padding-block: 86px; }
.l-journal .article-list { gap: 25px; }
.l-journal .article-row { border-radius: 16px; overflow: hidden; background: #fffdfb; box-shadow: var(--spirit-shadow); }
.l-journal .article-thumb { aspect-ratio: 1.7; }
.l-journal .article-row > div { margin: 0; padding: 21px 23px 24px; }
.l-journal .article-row h3 { font-size: 20px; line-height: 1.85; }
.l-journal .article-row .summary { color: #75667d; }
.l-journal .eyebrow { color: #92718f; }
.l-final {
  position: relative;
  background: radial-gradient(ellipse at 50% 0, #faf3ff 0, #eadff2 45%, #f3e0e6 100%);
  color: var(--spirit-purple);
  padding: 76px 24px 80px;
  border-top: 1px solid #e4d5e9;
}
.l-final .l-kicker { color: #916d88; }
.l-final h2 { color: var(--spirit-purple); font-size: 36px; }
.l-final p:not(.l-kicker), .l-final > span { color: #76637f; }
.l-final .l-button-light { background: var(--spirit-purple); color: #fffaf5; border-color: var(--spirit-purple); }
.l-final .l-button-light:hover { background: #4f396d; }
.site-footer { padding-block: 48px 35px; margin-top: 0; }
.site-footer .wordmark > span { color: var(--spirit-purple); }
.footer-purpose, .footer-note, .footer-owner { color: #7e6f86; }
.footer-links { color: #695578; gap: 8px 24px; }
.footer-links a:hover { text-decoration: underline; }
.mobile-menu {
  background: radial-gradient(ellipse at top right, #f4e7f2, transparent 55%), var(--paper);
  color: var(--ink);
  padding: 23px;
}
.mobile-menu::backdrop { background: #5e477f33; }
.menu-top, .mobile-nav a { border-color: #e6d9e9; }
.mobile-nav a { padding: 9px 6px; min-height: 58px; color: var(--spirit-purple); }
.mobile-nav a[aria-current] { color: #8c6186; }
.mobile-menu .site-footer { color: var(--ink); }
.mobile-menu .footer-purpose, .mobile-menu .footer-note, .mobile-menu .footer-owner { color: #7e6f86; }

.l-commerce-hero { gap: 64px; padding-block: 64px 54px; }
.l-commerce-intro h1 { font-size: 40px; color: var(--spirit-purple); }
.l-commerce-intro > p:not(.l-kicker) { color: #74627f; }
.l-commerce-intro > p.l-commerce-price { font: 400 30px/1.8 Georgia, serif; color: #80608e; }
.l-commerce-hero figure > img { border-radius: 220px 220px 18px 18px; aspect-ratio: 1.08; object-fit: contain; background: #f6eef6; border: 1px solid #e3d4e8; }
.l-service-strip { border: 1px solid #e7dbea; border-radius: 16px; background: #f7f1fa; padding: 25px 28px; }
.l-service-strip p { color: #716079; }
.l-service-strip span { color: #9d798e; font-size: 11px; }
.l-chooser { grid-template-columns: 1fr 1.2fr; gap: 42px; align-items: start; }
.l-chooser legend { color: var(--spirit-purple); }
.l-chooser legend > span {
  display: inline-grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 1px solid #dbc9e3;
  border-radius: 50%;
  color: #9470a8;
  background: #f5edf9;
  font: 400 17px/1 Georgia, serif;
}
.l-month-grid { gap: 9px; }
.l-month-grid button {
  border: 1px solid #ded0e7;
  background: #fffdfb;
  color: #796085;
  border-radius: 999px;
  min-height: 52px;
  font-size: 22px;
}
.l-theme-grid { gap: 10px; }
.l-theme-grid button {
  background: #fffdfb;
  border: 1px solid #ded0e7;
  border-radius: 14px;
  color: #6c527d;
  min-height: 72px;
  padding: 11px 7px;
}
.l-theme-grid small { color: #83728b; font-size: 12px; }
.l-month-grid button[aria-pressed=true], .l-theme-grid button[aria-pressed=true] {
  background: #5e477f;
  border-color: #5e477f;
  color: #fffaf5;
  box-shadow: 0 3px 12px #5e477f18;
}
.l-theme-grid button[aria-pressed=true] small { color: #eee1f6; }
.l-month-grid button:hover, .l-theme-grid button:hover { border-color: #9473ae; }
.l-chooser-help { color: #7c6d84; }
.l-product-preview { background: #f7f0f8; border: 1px solid #e3d5e9; border-radius: 18px; overflow: hidden; box-shadow: var(--spirit-shadow); }
.l-product-empty { background: radial-gradient(ellipse at center, #fffaf5, #f3edf9); }
.l-product-empty::before { content: '✧'; color: #b09059; font: 400 60px/1.3 Georgia, serif; margin-bottom: 24px; }
.l-product-empty h3 { color: #6c507f; margin-top: 20px; font-size: 29px; }
.l-product-empty > p:not(.l-kicker) { color: #7c6d84; }
.l-product-empty > span { color: #9b7c8e; border-color: #deccdf; }
.l-selected-product figure > img { aspect-ratio: 1.5; object-fit: contain; background: #f7f0f8; }
.l-selected-product figcaption { background: #fffaf5e8; border-radius: 999px; color: #7a6385; padding: 4px 12px; }
.l-selected-copy { padding: 25px 30px 30px; background: #fffdfb; }
.l-selected-copy h3 { color: #5e477f; }
.l-selected-copy > p:not(.l-kicker) { color: #786780; }
.l-selected-copy > p.l-selected-price { color: #77508b; }
.l-selected-copy .l-selected-notice { border-color: #e6dce9; }
.l-selected-copy .l-button { padding-inline: 16px; }
.l-commerce-guide { border-color: #e4d6e9; padding-block: 55px; }
.l-order-details details { border-color: #e4d6e9; }
.l-order-details summary { color: #624c76; }
.l-order-details details p { color: #75647e; }
.l-commerce-reading { background: linear-gradient(110deg, #f0e7f6, #fbf0f1); border: 1px solid #e6d7ea; border-radius: 20px; margin-bottom: 45px; }
.l-commerce-reading h2 { color: var(--spirit-purple); }
.l-commerce-reading p:not(.l-kicker) { color: #786780; }

.fortune { color: var(--ink); }
.fortune-breadcrumb { color: #8b7893; }
.fortune-entry { border: 1px solid #e0d1e8; border-radius: 22px; overflow: hidden; min-height: 590px; box-shadow: var(--spirit-shadow); }
.fortune-intro.fortune-night {
  padding: 54px 43px;
  min-height: 590px;
  background: linear-gradient(90deg, #f5eafaed 0%, #f5eafad9 55%, #f5eafa55 100%), url('/portal-assets/images/spirit-altar-960.webp') 65% 50% / cover;
  color: var(--spirit-purple);
  border-radius: 0;
}
.fortune-intro h1 { color: var(--spirit-purple); text-shadow: none; font-size: 40px; line-height: 1.75; }
.fortune-intro h1 > span { color: #9d648e; }
.fortune-intro .fortune-eyebrow { color: #977a8d; font-size: 12px; }
.fortune-intro .fortune-lead { color: #705878; text-shadow: none; font-size: 15px; line-height: 2.15; }
.fortune-free { color: #926781; font-size: 13px; }
.fortune-entry .fortune-form, .fortune-entry .fortune-unavailable {
  background: #fffcf9;
  align-self: stretch;
  padding: 48px 36px;
  justify-content: center;
}
.fortune-entry .fortune-unavailable { display: flex; flex-direction: column; justify-content: center; }
.fortune-form legend, .fortune-entry .fortune-form legend { color: #674d7d; font-size: 23px; }
.fortune-field label { color: #76627f; }
.fortune-field input, .fortune-field select, .fortune-entry .fortune-field input, .fortune-entry .fortune-field select {
  background: #fffaf5;
  color: #594069;
  border: 1px solid #c6add5;
  border-radius: 12px;
  min-height: 56px;
  font-size: 16px;
}
.fortune-field input::placeholder { color: #897590; }
.fortune-field input:focus, .fortune-field select:focus { border-color: #85609f; }
.fortune input[aria-invalid='true'], .fortune select[aria-invalid='true'] { border: 2px solid #ad4c67; }
.fortune-field-error, .fortune-error { color: #9d3858; }
.fortune-date-range, .fortune-form > .fortune-note, .fortune-note { color: #7b6982; }
.fortune-entry #fortune-privacy { border-color: #e6dce9; }
.fortune-about { text-align: left; padding-block: 5px 45px; gap: 38px; }
.fortune-about > section { padding: 27px 30px; background: #faf4fc; border: 1px solid #e6d8ec; border-radius: 16px; }
.fortune-about h2 { color: #6c507f; font-size: 24px; }
.fortune-method { margin-top: 0; }
.fortune-method::before { display: none; }
.fortune-method .fortune-note { border-color: #e3d4e8; padding-top: 22px; margin-top: 22px; }
.fortune-result-intro.fortune-night {
  background: linear-gradient(90deg, #f3e7f6f0, #fbf3f5e8 60%, #f6e8f0b8), url('/portal-assets/images/spirit-altar-1536.webp') 70% 50% / cover;
  color: var(--spirit-purple);
  border: 1px solid #dfcde8;
  border-radius: 24px;
  padding: 48px 55px;
  grid-template-columns: 215px minmax(0, 1fr);
  gap: 40px;
  margin-bottom: 42px;
  min-height: 370px;
}
.fortune-number {
  width: 196px;
  height: 196px;
  display: grid;
  place-items: center;
  border: 1px solid #bca3cf;
  border-radius: 50%;
  background: #fffaf570;
  color: #9270a7;
  box-shadow: inset 0 0 0 12px #fffaf570, inset 0 0 0 13px #dbc5e4;
  text-shadow: none;
  font: 400 106px/1 Georgia, serif;
  letter-spacing: -.04em;
}
.fortune-result-heading { display: block; border-left: 0; padding-left: 0; text-align: left; }
.fortune-result-intro h1 { color: #654779; text-shadow: none; font-size: 35px; line-height: 1.75; }
.fortune-title-phrase { white-space: normal; }
.fortune-result-heading .fortune-eyebrow, .fortune-result-intro .fortune-eyebrow { color: #927087; text-shadow: none; font-size: 12px; }
.fortune-result-intro .fortune-keywords { color: #9a6a87; font: 400 15px/1.9 var(--sans); letter-spacing: .04em; }
.fortune-result-lead { color: #79607f; text-shadow: none; font-size: 15px; }
.fortune-reading-intro { text-align: left; color: #75627d; padding-top: 4px; }
.fortune-readings { gap: 24px; margin-top: 30px; }
.fortune-readings > li {
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr);
  gap: 15px;
  padding: 27px 27px 30px;
  border: 1px solid #e7dceb;
  border-radius: 16px;
  background: #fffdfb;
}
.fortune-readings > li::before { color: #b294bc; border: 0; font: 400 24px/1.65 Georgia, serif; }
.fortune-readings h2 { color: #6b4e80; font-size: 23px; }
.fortune-readings section > p { color: #75657d; font-size: 15px; line-height: 2.1; }
.fortune-readings section > .fortune-note { color: #8a788f; font-size: 12px; }
.fortune-reflection { background: #f4eaf6; border: 1px solid #e1cfe8; border-radius: 18px; padding: 29px 33px; margin-block: 35px 45px; }
.fortune-reflection h2 { color: #78598a; }
.fortune-reflection > p { color: #79637f; }
.fortune-recommendation { border-color: #e1d0e6; padding-block: 47px; }
.fortune-recommendation > .fortune-eyebrow { color: #99758a; }
.fortune-recommendation > h2 { color: #6b4e80; font-size: 32px; }
.l-reading-stone { border-color: #c2a4cb; }
.l-reading-stone .fortune-theme-label { color: #99758a; border-color: #e2d2e8; }
.l-reading-stone h3 { color: #755587; }
.l-reading-stone > p:last-child, .l-picker-intro { color: #796880; }
.fortune-recommendation .l-chooser { gap: 36px; }
.fortune-equations { border-radius: 14px; background: #f3edf9; color: #80628e; border: 1px solid #e4d6eb; }
.fortune-calculation, .fortune-result-notes { border-color: #e3d5e8; }
.fortune-calculation h2, .fortune-empty h1 { color: #6b4e80; }
.fortune-calculation > p, .fortune-result-notes > p { color: #7d6b86; }
.fortune-empty { padding-block: 48px 64px; }
.fortune-empty-body { border-color: #ddcde5; }
.fortune-empty-phrase { white-space: normal; }

.filter { border-radius: 999px; background: #fffaf5; border-color: #decde6; color: #795989; }
.filter[aria-pressed=true] { background: #5e477f; border-color: #5e477f; }
.article-row { border-color: #e5d8eb; }
.article-thumb { border-radius: 12px; }
.quiet-cta, .readings-limit { background: #f3edf9; border: 1px solid #e4d4eb; border-radius: 16px; }
.step-number { color: #8e6ca1; background: #f3edf9; border: 1px solid #decde6; }
.comparison-labels, .consultation-mode h2 { background: #f3edf9; }
.consultation-comparison, .consultation-comparison :is(h2, p, dl > div, .comparison-labels > div, .consultation-action) { border-color: #e0d1e7; }

@media (max-width: 1100px) {
  .desktop-nav { gap: 16px; }
  .site-header { gap: 20px; }
  .l-intro { grid-template-columns: 95px minmax(0, 1fr); gap: 28px; }
  .l-intro-copy { grid-column: 2; }
  .l-story { padding: 54px 48px; gap: 35px; }
  .l-story-photo { height: 470px; }
  .l-story h2 { font-size: 31px; }
  .l-product-stones, .l-product-line { margin-inline: 17px; }
  .l-product-line h3 { font-size: 17px; }
  .l-commerce-hero { gap: 36px; }
  .l-commerce-intro h1 { font-size: 34px; }
  .l-chooser { gap: 28px; }
  .fortune-intro.fortune-night { padding: 42px 28px; }
  .fortune-intro h1 { font-size: 34px; }
  .fortune-entry .fortune-form, .fortune-entry .fortune-unavailable { padding: 36px 25px; }
  .fortune-entry .fortune-fields { grid-template-columns: 1fr 1fr; }
  .fortune-entry .fortune-year { grid-column: 1 / -1; }
  .fortune-result-intro.fortune-night { grid-template-columns: 165px minmax(0, 1fr); padding: 38px 32px; gap: 28px; }
  .fortune-number { width: 160px; height: 160px; font-size: 86px; }
  .fortune-result-intro h1 { font-size: 30px; }
}

@media (max-width: 780px) {
  html { scroll-padding-top: 84px; }
  .site-header { height: 80px; min-height: 80px; padding-inline: 21px; gap: 14px; }
  .site-header .wordmark > span { font-size: 25px; }
  .site-header .wordmark > small { font-size: 10px; margin-left: 0; letter-spacing: .06em; }
  .l-container, main > div:not(.l-home), main > section { width: calc(100% - 40px); }
  .l-button, .button, .fortune-button { font-size: 14px; padding: 12px 23px; min-height: 52px; }
  .l-intro { display: block; padding-block: 53px 42px; }
  .l-intro-heading h2 { font-size: 25px; }
  .l-intro-copy { margin-top: 24px; }
  .l-intro-copy > p { font-size: 14px; }
  .l-reading-band { border-radius: 19px; padding: 29px 22px; }
  .l-reading-band h2 { font-size: 22px; }
  .l-reading-topics { gap: 9px; }
  .l-reading-topics > span { font-size: 12px; padding: 7px 8px; }
  .l-collection { padding-block: 54px 50px; }
  .l-section-header h2 { font-size: 28px; }
  .l-section-header > div > p:not(.l-kicker) { font-size: 14px; }
  .l-product-grid { gap: 23px; }
  .l-product-card { padding-bottom: 21px; }
  .l-product-photo img { aspect-ratio: 1.5; }
  .l-product-stones, .l-product-line { margin-inline: 20px; }
  .l-product-line h3 { font-size: 18px; }
  .l-story { padding: 43px 23px 46px; grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .l-story-photo { width: min(100%, 410px); height: 360px; margin-inline: auto; border-width: 6px; }
  .l-story-copy { padding: 0 3px; }
  .l-story h2 { font-size: 29px; margin-top: 18px; }
  .l-story-copy > p:not(.l-kicker) { font-size: 14px; }
  .l-journal { padding-block: 53px; }
  .l-journal .article-list { gap: 20px; }
  .l-journal .article-row { grid-template-columns: 104px minmax(0, 1fr); gap: 0; }
  .l-journal .article-thumb { height: 100%; min-height: 166px; border-radius: 0; }
  .l-journal .article-row > div { padding: 16px 17px; }
  .l-journal .article-row h3 { font-size: 17px; line-height: 1.75; }
  .l-journal .article-row .summary { font-size: 13px; line-height: 1.9; }
  .l-journal .eyebrow { font-size: 11px; }
  .l-final { padding: 49px 20px 54px; }
  .l-final h2 { font-size: 28px; margin-top: 17px; }
  .l-final .l-button { min-width: 0; width: min(100%, 320px); }
  .site-footer { width: calc(100% - 44px); padding-block: 37px 30px; }
  .footer-purpose, .footer-links { font-size: 13px; }
  .mobile-menu { padding: 21px; }
  .l-commerce-hero { padding-block: 37px; gap: 30px; }
  .l-commerce-intro h1 { font-size: 30px; }
  .l-commerce-intro > p:not(.l-kicker) { font-size: 14px; }
  .l-commerce-hero figure > img { aspect-ratio: 1.2; border-radius: 160px 160px 16px 16px; }
  .l-service-strip { padding: 23px 20px; gap: 18px; }
  .l-service-strip p { display: block; font-size: 13px; }
  .l-service-strip span { display: block; width: auto; font-size: 10px; margin-bottom: 3px; }
  .l-commerce-collection { padding-block: 44px; }
  .l-chooser, .fortune-recommendation .l-chooser { grid-template-columns: minmax(0, 1fr); gap: 25px; }
  .l-chooser legend { font-size: 18px; }
  .l-month-grid { gap: 8px; }
  .l-month-grid button { min-height: 48px; font-size: 21px; }
  .l-theme-grid button { font-size: 15px; min-height: 70px; }
  .l-theme-grid small { font-size: 11px; }
  .l-product-preview, .l-product-empty { min-height: 300px; }
  .l-product-empty::before { font-size: 43px; margin-bottom: 15px; }
  .l-product-empty h3 { font-size: 25px; }
  .l-selected-copy { padding: 23px 22px 26px; }
  .l-selected-copy h3 { font-size: 24px; }
  .l-selected-copy .l-button { padding-inline: 12px; }
  .l-commerce-guide { padding-block: 38px; gap: 25px; }
  .l-commerce-guide h2 { font-size: 27px; }
  .l-commerce-reading { padding: 33px 21px 38px; margin-bottom: 25px; }
  .l-commerce-reading h2 { font-size: 24px; }
  .fortune-entry { min-height: 0; border-radius: 18px; margin-bottom: 30px; }
  .fortune-intro.fortune-night { min-height: 0; padding: 29px 26px; background-position: 70% 50%; }
  .fortune-intro h1 { font-size: 29px; line-height: 1.65; }
  .fortune-intro .fortune-eyebrow { font-size: 10px; letter-spacing: .08em; }
  .fortune-intro .fortune-lead { font-size: 14px; line-height: 1.95; margin-top: 16px; }
  .fortune-intro .fortune-free { margin-top: 13px; }
  .fortune-entry .fortune-form, .fortune-entry .fortune-unavailable { padding: 29px 23px 31px; }
  .fortune-entry .fortune-form legend { font-size: 22px; }
  .fortune-entry .fortune-fields { gap: 13px; }
  .fortune-entry .fortune-field input, .fortune-entry .fortune-field select { min-height: 52px; padding: 10px 12px; }
  .fortune-entry #fortune-privacy { margin-top: 23px; padding-top: 19px; }
  .fortune-about { grid-template-columns: minmax(0, 1fr); padding-top: 0; gap: 18px; }
  .fortune-about > section { padding: 24px 23px; }
  .fortune-about h2 { font-size: 22px; }
  .fortune-about p { font-size: 14px; }
  .fortune-result-intro.fortune-night { grid-template-columns: minmax(0, 1fr); padding: 31px 24px; gap: 24px; min-height: 0; margin-bottom: 30px; border-radius: 19px; }
  .fortune-number { width: 138px; height: 138px; font-size: 77px; margin: 0 auto; box-shadow: inset 0 0 0 9px #fffaf570, inset 0 0 0 10px #dbc5e4; }
  .fortune-result-heading { text-align: center; }
  .fortune-result-intro h1 { font-size: 27px; }
  .fortune-result-intro .fortune-keywords { font-size: 13px; }
  .fortune-result-lead { font-size: 14px; }
  .fortune-reading-intro { font-size: 15px; padding-top: 0; }
  .fortune-readings { margin-top: 28px; gap: 18px; }
  .fortune-readings > li { grid-template-columns: 25px minmax(0, 1fr); gap: 13px; padding: 23px 21px; }
  .fortune-readings > li::before { width: auto; font-size: 21px; margin: 0; }
  .fortune-readings h2 { font-size: 21px; }
  .fortune-readings section > p { font-size: 14px; line-height: 2.1; }
  .fortune-reflection { padding: 23px 24px; margin-block: 27px 34px; }
  .fortune-reflection h2 { font-size: 21px; }
  .fortune-reflection > p { font-size: 17px; }
  .fortune-recommendation { padding-block: 32px; }
  .fortune-recommendation > h2 { font-size: 27px; line-height: 1.8; }
  .l-reading-stone { padding-left: 19px; }
  .fortune-empty h1 { font-size: 27px; }
  .fortune-empty { padding-block: 28px 45px; }
  .fortune-actions { gap: 12px; }
}

@media (max-width: 360px) {
  .site-header { padding-inline: 16px; }
  .site-header .wordmark > span { font-size: 23px; letter-spacing: .17em; }
  .site-header .wordmark > small { font-size: 9px; }
  .l-container, main > div:not(.l-home), main > section { width: calc(100% - 32px); }
  .l-button, .button, .fortune-button { padding-inline: 17px; font-size: 13px; }
  .l-reading-band { padding: 25px 17px; }
  .l-reading-topics > span { font-size: 11px; }
  .l-section-header h2, .l-final h2 { font-size: 25px; }
  .l-story { padding-inline: 18px; }
  .l-story-photo { height: 315px; }
  .l-story h2 { font-size: 26px; }
  .l-journal .article-row { grid-template-columns: 82px minmax(0, 1fr); }
  .l-journal .article-row > div { padding: 14px 13px; }
  .l-journal .article-row h3 { font-size: 16px; }
  .l-product-stones, .l-product-line { margin-inline: 17px; }
  .l-product-line h3 { font-size: 17px; }
  .l-theme-grid button { font-size: 14px; }
  .l-month-grid { gap: 6px; }
  .l-month-grid small { margin-left: 3px; font-size: 10px; }
  .l-month-grid button { font-size: 20px; }
  .l-commerce-intro h1 { font-size: 27px; }
  .l-commerce-price small { display: block; margin-left: 0; }
  .l-selected-copy { padding-inline: 18px; }
  .fortune-intro.fortune-night { padding: 31px 22px; }
  .fortune-intro h1 { font-size: 27px; }
  .fortune-entry .fortune-form, .fortune-entry .fortune-unavailable { padding: 26px 18px; }
  .fortune-about > section { padding: 22px 20px; }
  .fortune-result-intro.fortune-night { padding-inline: 20px; }
  .fortune-result-intro h1 { font-size: 24px; }
  .fortune-readings > li { padding: 22px 17px; gap: 10px; }
  .fortune-readings h2 { font-size: 20px; }
  .fortune-recommendation > h2 { font-size: 25px; }
  .fortune-empty h1 { font-size: 24px; }
}

@media (prefers-reduced-motion: reduce) {
  .l-button, .button, .fortune-button, .affiliate-link > a { transition: none; }
  .l-button:hover, .button:hover, .fortune-button:hover, .affiliate-link > a:hover { transform: none; }
}
