/* Supporting pages: pricing, download, the craft, handoff. Shares base.css. */
.page-hero { padding-block: calc(76px + var(--s20)) var(--s12); }
.page-hero .lede { margin-top: var(--s6); }
.handoff { padding-top: 76px; max-width: 60rem; display: grid; gap: var(--s6); }
.handoff__facts { margin: var(--s4) 0; display: grid; gap: var(--s4); }
.handoff__facts div { display: grid; gap: .25rem; padding: var(--s4) 0; border-top: 1px solid var(--line); }
.handoff__facts dt { font-family: var(--mono); font-size: var(--t-micro); color: var(--fg-muted); }
.handoff__facts dd { margin: 0; color: var(--fg-2); line-height: 1.6; }
.closing__inner { display: flex; flex-direction: column; align-items: center; text-align: center; gap: var(--s6); }

/* ---------- Pricing ---------- */
.pricing-hero { display: grid; gap: var(--s10) var(--gutter); grid-template-columns: 1fr; align-items: end; }
@media (min-width: 1040px) { .pricing-hero { grid-template-columns: 1.6fr 1fr; } }
.currency { display: grid; gap: var(--s2); justify-items: start; }
.currency__opts { display: inline-flex; padding: 4px; border-radius: var(--pill); background: var(--paper-warm); }
.currency__opts button { min-height: 40px; padding: 0 16px; border: 0; border-radius: var(--pill); background: transparent; cursor: pointer; font: 500 .9375rem/1 var(--sans); color: var(--ink-2); transition: background-color var(--d-ink) var(--e-paper), color var(--d-ink) var(--e-paper); }
.currency__opts button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
.plans-section { padding-bottom: var(--s16); }
.plans { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gutter); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); align-items: stretch; }
.plan { position: relative; display: flex; flex-direction: column; gap: var(--s4); padding: clamp(24px, 2.6vw, 36px); border-radius: var(--radius-lg); background: var(--surface); border: 1px solid var(--line); }
.plan--free { background: transparent; }
.plan--lifetime { background: var(--night); color: var(--on-night); border-color: transparent; box-shadow: var(--shadow-lg); }
.plan__name { font-family: var(--serif); font-size: 1.75rem; font-weight: 400; letter-spacing: -.015em; display: flex; align-items: center; gap: .6rem; flex-wrap: wrap; }
.plan__tag { font: 500 .75rem/1 var(--sans); padding: .35rem .6rem; border-radius: var(--pill); background: color-mix(in srgb, var(--terracotta) 12%, transparent); color: var(--accent-text); letter-spacing: .01em; }
.plan__price { display: flex; align-items: baseline; flex-wrap: wrap; gap: .45rem; }
.plan__amount { font-family: var(--serif); font-variant-numeric: lining-nums; font-size: clamp(2.6rem, 2rem + 1.6vw, 3.4rem); font-weight: 300; letter-spacing: -.03em; line-height: 1; display: inline-flex; overflow: hidden; }
.plan__amount .roll { display: inline-block; }
.plan__per { color: var(--fg-muted); font-size: .9375rem; }
.plan__was { color: var(--fg-muted); font-size: 1rem; }
.plan__lede { color: var(--fg-2); line-height: 1.55; min-height: 3.1em; }
.plan__cta { align-self: stretch; }
.plan__list { list-style: none; margin: var(--s2) 0 0; padding: var(--s4) 0 0; border-top: 1px solid var(--line); display: grid; gap: var(--s3); font-size: .9375rem; line-height: 1.5; color: var(--fg-2); }
.plan__list li { position: relative; padding-left: 1.4rem; }
.plan__list li::before { content: ''; position: absolute; left: 1px; top: .5em; width: 8px; height: 4.5px; border: solid var(--accent-text); border-width: 0 0 1.5px 1.5px; transform: rotate(-45deg); }
.plan__ribbon { display: flex; justify-content: space-between; gap: var(--s3); font-size: .8125rem; color: var(--terracotta-on-night); margin-bottom: -.25rem; }
.plan__klarna { color: var(--on-night-muted); margin-top: auto; }
.plans__terms { margin-top: var(--s8); display: grid; gap: var(--s3); max-width: 50rem; }
.code summary { cursor: pointer; color: var(--accent-text); font-weight: 500; width: max-content; }
.code__form { display: flex; gap: var(--s2); margin-top: var(--s3); flex-wrap: wrap; }
.code__form input { min-height: 48px; padding: 0 16px; border-radius: var(--pill); border: 1px solid var(--line); background: var(--surface); font: 1rem var(--mono); color: var(--ink); text-transform: uppercase; }
.compare__wrap { margin-top: var(--s12); overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius-lg); background: var(--surface); }
.compare__table { width: 100%; min-width: 560px; border-collapse: collapse; font-size: .9375rem; }
.compare__table th, .compare__table td { padding: 16px 20px; text-align: left; border-bottom: 1px solid var(--rule-soft); vertical-align: top; }
.compare__table thead th { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }
.compare__table tbody th { font-weight: 400; color: var(--ink-2); width: 56%; }
.compare__table tr:last-child > * { border-bottom: 0; }
.yes { color: var(--success); font-weight: 500; }
.no { color: var(--fg-muted); }
.compare__note { margin-top: var(--s4); max-width: 54rem; }
.faq__grid { display: grid; gap: var(--s12) var(--gutter); grid-template-columns: 1fr; }
@media (min-width: 1040px) { .faq__grid { grid-template-columns: 1fr 1.5fr; } }
.faq__list details { border-top: 1px solid var(--line); }
.faq__list details:last-child { border-bottom: 1px solid var(--line); }
.faq__list summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: var(--s4); padding: 22px 0; font-family: var(--serif); font-size: 1.3rem; }
.faq__list summary::-webkit-details-marker { display: none; }
.faq__list summary::after { content: '+'; font-family: var(--sans); color: var(--accent-text); transition: transform var(--d-leaf) var(--e-settle); }
.faq__list details[open] summary::after { transform: rotate(45deg); }
.faq__list p { padding-bottom: 22px; color: var(--fg-2); line-height: 1.65; max-width: 40em; }

/* ---------- Download ---------- */
.platforms { list-style: none; margin: var(--s6) 0 0; padding: 0; display: grid; gap: var(--gutter); grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr)); }
.platform { display: flex; flex-direction: column; gap: var(--s3); padding: clamp(22px, 2.4vw, 32px); border-radius: var(--radius-lg); border: 1px solid var(--line); background: var(--surface); transition: border-color var(--d-ink) var(--e-paper), transform var(--d-leaf) var(--e-settle), box-shadow var(--d-leaf) var(--e-settle); }
.platform__icon { width: 34px; height: 34px; color: var(--ink-2); }
.platform__name { font-family: var(--serif); font-size: 1.6rem; font-weight: 400; letter-spacing: -.01em; }
.platform__req { color: var(--fg-muted); font-size: .9375rem; line-height: 1.5; flex: 1; }
.platform.is-yours { border-color: var(--terracotta); box-shadow: var(--shadow-lg); }
.platform.is-yours .platform__name::after { content: 'Your system'; margin-left: .6rem; font: 500 .75rem/1 var(--sans); vertical-align: middle; padding: .35rem .6rem; border-radius: var(--pill); background: color-mix(in srgb, var(--terracotta) 12%, transparent); color: var(--terracotta); }
.platform .btn { align-self: flex-start; }
.dl-note { margin-top: var(--s6); max-width: 56rem; }
.companions__list { list-style: none; margin: var(--s6) 0 0; padding: 0; display: grid; gap: var(--s8) var(--gutter); grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }
.companions__list li { display: grid; gap: var(--s3); align-content: start; padding-top: var(--s4); border-top: 1px solid var(--line); }
.companions__list h3 { font-family: var(--serif); font-weight: 400; font-size: 1.4rem; display: flex; gap: .5rem; align-items: center; }
.companions__list p { color: var(--fg-2); line-height: 1.6; }
.journey { background: var(--night); color: var(--on-night); }
.journey__grid { display: grid; gap: var(--s12) var(--gutter); grid-template-columns: 1fr; }
@media (min-width: 1040px) { .journey__grid { grid-template-columns: 1fr 1.3fr; } }
.journey__grid .lede { margin-top: var(--s6); color: var(--on-night-2); }
.journey__steps { position: relative; list-style: none; margin: 0; padding: 0 0 0 3.6rem; display: grid; gap: var(--s10); }
.journey__line { position: absolute; left: 1.2rem; top: .6rem; bottom: .6rem; width: 2px; height: calc(100% - 1.2rem); overflow: visible; }
.journey__line path { stroke: var(--terracotta-on-night); stroke-width: 1.5; fill: none; vector-effect: non-scaling-stroke; }
.journey__steps li { position: relative; }
.journey__n { position: absolute; left: -3.6rem; top: -.15rem; width: 2.4rem; height: 2.4rem; border-radius: 50%; display: grid; place-items: center; background: var(--night); border: 1px solid var(--terracotta-on-night); color: var(--on-night); font-size: .875rem; }
.journey__steps h3 { font-family: var(--serif); font-weight: 400; font-size: 1.5rem; letter-spacing: -.01em; }
.journey__steps p { margin-top: var(--s2); color: var(--on-night-2); line-height: 1.6; max-width: 34em; }
.install__grid { margin-top: var(--s6); display: grid; gap: 0 var(--gutter); grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); }
.install__grid details { border-top: 1px solid var(--line); padding: 18px 0; }
.install__grid summary { cursor: pointer; font-family: var(--serif); font-size: 1.25rem; }
.install__grid p { margin-top: var(--s3); color: var(--fg-2); line-height: 1.6; }

/* ---------- The craft ---------- */
.craft { display: grid; grid-template-columns: 1fr; gap: var(--s12) var(--gutter); padding-bottom: var(--section); }
.craft__index { display: none; }
@media (min-width: 1100px) {
  .craft { grid-template-columns: 240px minmax(0, 1fr); }
  .craft__index { display: block; position: sticky; top: 110px; align-self: start; }
}
.craft__index ol { list-style: none; margin: 0; padding: 0; display: grid; gap: .3rem; }
.craft__index a { display: flex; gap: .6rem; padding: .45rem .2rem; text-decoration: none; color: var(--fg-muted); font-family: var(--serif); font-size: 1.1rem; transition: color var(--d-ink) var(--e-paper), transform var(--d-leaf) var(--e-settle); }
.craft__index a.is-current { color: var(--ink); font-style: italic; transform: translateX(.3rem); }
.craft__body { display: grid; gap: var(--section); }
.chapter { display: grid; gap: var(--s6); max-width: 58rem; scroll-margin-top: 100px; }
.chapter__num { font-family: var(--serif); font-style: italic; color: var(--terracotta); font-size: 1.1rem; }
.specs { margin: var(--s4) 0 0; display: grid; gap: 0; grid-template-columns: 1fr; }
.specs div { display: grid; grid-template-columns: 1fr; gap: .3rem var(--gutter); padding: 18px 0; border-top: 1px solid var(--line); }
@media (min-width: 760px) { .specs div { grid-template-columns: 15rem 1fr; } }
.specs dt { font-family: var(--serif); font-size: 1.2rem; }
.specs dt .num { font-size: .8rem; color: var(--fg-muted); }
.specs dd { margin: 0; color: var(--fg-2); line-height: 1.6; }
.openers { list-style: none; margin: var(--s4) 0 0; padding: 0; display: grid; gap: clamp(10px, 1.6vw, 20px); grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 640px) { .openers { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.openers img { width: 100%; aspect-ratio: .64; object-fit: cover; object-position: 50% 0; box-shadow: var(--shadow-lg); }
.craft__shot img { width: 100%; border-radius: 10px; box-shadow: var(--shadow-lg); }

/* Account first, then the download */
.dl-gate { display: grid; grid-template-columns: 1fr auto; gap: var(--s6); align-items: center; margin-bottom: var(--s10); padding: clamp(22px, 3vw, 36px); border-radius: var(--radius-lg); background: var(--night); color: var(--on-night); --fg: var(--on-night); --fg-muted: var(--on-night-muted); --accent-text: var(--terracotta-on-night); --line: var(--rule-night); }
.dl-gate .h3 { margin: var(--s2) 0; }
.dl-gate p:not(.label) { color: var(--on-night-muted); max-width: 46ch; }
.dl-gate__actions { display: grid; gap: var(--s3); }
.dl-gate .btn--ghost { --btn-fg: var(--on-night); --btn-bd: var(--rule-night); }
@media (max-width: 760px) { .dl-gate { grid-template-columns: 1fr; } }
.dl-ready { display: flex; align-items: center; gap: .7rem; margin-bottom: var(--s8); font-size: 1rem; }
.dl-ready img { width: 36px; height: 36px; border-radius: 50%; }
.platform.is-chosen { outline: 2px solid var(--terracotta); outline-offset: 4px; }

/* Release notes */
.releases { display: grid; gap: var(--s20); padding-bottom: var(--s20); }
.release__head { display: grid; gap: var(--s3); margin-bottom: var(--s8); max-width: 52rem; }
.release__meta { display: flex; flex-wrap: wrap; gap: .4rem 1.1rem; margin: 0; font-size: var(--t-small); color: var(--fg-muted); }
.release__meta .num { color: var(--accent-text); font-weight: 500; }
.releases__more { margin-top: calc(var(--s8) * -1); }

/* ---------- Pricing: Lifetime first ---------- */
.lifetime { position: relative; display: grid; gap: clamp(28px, 4vw, 64px); padding: clamp(26px, 4vw, 56px); border-radius: calc(var(--radius-lg) + 6px); overflow: hidden; isolation: isolate;
  background: radial-gradient(70% 90% at 0% 0%, rgba(185, 68, 52, .32), transparent 60%), radial-gradient(60% 80% at 100% 100%, rgba(201, 164, 106, .14), transparent 65%), var(--night);
  color: var(--on-night); box-shadow: 0 40px 90px -40px rgba(15, 12, 10, .8); }
.lifetime::before { content: ''; position: absolute; inset: 0; z-index: -1; border-radius: inherit; padding: 1px; background: linear-gradient(140deg, rgba(204,107,87,.7), rgba(243,236,221,.08) 40%, rgba(201,164,106,.5)); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite: xor; mask-composite: exclude; }
@media (min-width: 980px) { .lifetime { grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr); } }
.lifetime__main { display: flex; flex-direction: column; gap: var(--s4); }
.lifetime__kicker .label { color: var(--terracotta-on-night); }
.lifetime__name { font-family: var(--serif); font-weight: 300; font-size: clamp(3.4rem, 2.4rem + 3.6vw, 5.6rem); line-height: .92; letter-spacing: -.035em; }
.lifetime__pitch { font-family: var(--serif); font-size: clamp(1.25rem, 1.1rem + .6vw, 1.6rem); line-height: 1.3; color: var(--on-night); max-width: 26ch; }
.lifetime__price .plan__amount { font-size: clamp(3.2rem, 2.4rem + 2.6vw, 4.6rem); }
.lifetime__price .plan__per, .lifetime__price .plan__was { color: var(--on-night-muted); }
.founder-meter { height: 6px; border-radius: 3px; background: rgba(243,236,221,.12); overflow: hidden; }
.founder-meter span { display: block; width: var(--claimed); height: 100%; border-radius: inherit; background: linear-gradient(90deg, var(--terracotta-lt), var(--terracotta-on-night)); }
.lifetime__count { color: var(--on-night-muted); margin-top: -.4rem; }
.lifetime__count b { color: var(--on-night); font-weight: 500; }
.lifetime__cta { align-self: flex-start; min-width: 15rem; }
.lifetime .plan__list { border-top-color: var(--rule-night); color: var(--on-night-muted); }
.lifetime .plan__list li::before { border-color: var(--terracotta-on-night); }
.lifetime__side { display: grid; align-content: start; gap: var(--s6); }
.lifetime__fact { font-family: var(--serif); font-size: clamp(1.5rem, 1.2rem + 1.2vw, 2.2rem); line-height: 1.15; letter-spacing: -.015em; }
.lifetime__fact .num { color: var(--terracotta-on-night); }
.calc { display: grid; gap: var(--s3); padding: var(--s5); border-radius: var(--radius-lg); background: rgba(243,236,221,.04); box-shadow: 0 0 0 1px var(--rule-night); }
.calc__label { font-size: .9375rem; color: var(--on-night-muted); }
.calc__label output { color: var(--on-night); font-weight: 600; }
.calc__range { width: 100%; accent-color: var(--terracotta-lt); }
.calc__rows { display: grid; gap: .55rem; margin: var(--s2) 0 0; }
.calc__row { display: grid; grid-template-columns: 5.2rem 1fr; align-items: center; gap: var(--s3); }
.calc__row dt { font-size: .875rem; color: var(--on-night-muted); }
.calc__row dd { margin: 0; display: grid; grid-template-columns: 1fr 6rem; align-items: center; gap: var(--s3); }
.calc__bar { height: 10px; border-radius: 5px; background: rgba(243,236,221,.06); overflow: hidden; }
.calc__bar i { display: block; width: 3%; height: 100%; border-radius: inherit; background: rgba(243,236,221,.35); }
.calc__row--life .calc__bar i { background: linear-gradient(90deg, var(--terracotta-lt), var(--terracotta-on-night)); }
.calc__row--life dt, .calc__row--life b { color: var(--on-night); }
.calc__row b { text-align: right; font-weight: 500; font-size: .9375rem; }
.calc__note { margin: var(--s2) 0 0; font-family: var(--serif); font-size: 1.15rem; color: var(--on-night); }
.calc__fine { color: var(--on-night-muted); }
.lifetime__note { margin: 0; padding-top: var(--s5); border-top: 1px solid var(--rule-night); }
.lifetime__note blockquote { margin: 0; }
.lifetime__note blockquote p { margin: 0; font-family: var(--serif); font-size: 1.1rem; line-height: 1.5; color: var(--on-night); }
.lifetime__note .signoff { margin-top: var(--s4); max-width: 15rem; font-size: .875rem; color: var(--on-night-muted); line-height: 1.4; }
.lifetime__note .signoff [data-signature] { color: var(--on-night); margin-bottom: .2rem; }
.lifetime__note .signoff b { display: block; color: var(--on-night); font-weight: 500; }
.plans__alt { margin: var(--s16) 0 var(--s6); font-family: var(--serif); font-weight: 300; font-size: clamp(1.6rem, 1.3rem + 1vw, 2.2rem); }
.plans--rest { grid-template-columns: repeat(auto-fit, minmax(min(100%, 280px), 1fr)); }

.lifetime__main { position: relative; }
.lifetime__stamp { position: absolute; top: -6px; right: 0; --stamp-size: clamp(108px, 11vw, 148px); transform: rotate(-8deg); }
@media (max-width: 560px) { .lifetime__stamp { top: -14px; right: -10px; --stamp-size: 92px; } }

/* ---------- Documents: legal pages, guides, principles ---------- */
.doc__hero { padding: calc(var(--s24) + 40px) 0 var(--s10); border-bottom: 1px solid var(--line); background: linear-gradient(180deg, var(--paper-warm), var(--paper)); }
.doc__hero .wrap { display: grid; gap: var(--s4); }
.doc__meta { margin: 0; font-size: var(--t-small); color: var(--fg-muted); }
.doc__lede { max-width: 44rem; }
.doc__siblings { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: var(--s3); }
.doc__siblings a { padding: .45rem .85rem; border-radius: var(--pill); border: 1px solid var(--line); font-size: .875rem; text-decoration: none; color: var(--fg); }
.doc__siblings a:hover { border-color: color-mix(in srgb, var(--fg) 40%, transparent); }
.doc__siblings a[aria-current="page"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.doc__grid { display: grid; gap: var(--s10); padding-block: var(--s12) var(--s24); }
@media (min-width: 1000px) { .doc__grid { grid-template-columns: 17rem minmax(0, 44rem); justify-content: space-between; } }
.doc__toc { align-self: start; }
@media (min-width: 1000px) { .doc__toc { position: sticky; top: 104px; max-height: calc(100dvh - 128px); overflow-y: auto; } }
.doc__toc ol { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; gap: 2px; border-left: 1px solid var(--line); }
.doc__toc a { display: grid; grid-template-columns: 1.8rem 1fr; gap: .3rem; padding: .38rem .7rem; margin-left: -1px; border-left: 2px solid transparent; font-size: .875rem; line-height: 1.35; color: var(--fg-muted); text-decoration: none; transition: color var(--d-ink), border-color var(--d-ink); }
.doc__toc a .num { font-size: .75rem; padding-top: .1em; }
.doc__toc a:hover { color: var(--fg); }
.doc__toc a.is-current { color: var(--fg); border-left-color: var(--terracotta); font-weight: 500; }
@media (max-width: 999px) { .doc__toc ol { grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr)); border-left: 0; } .doc__toc { padding: var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); } }
.doc__body { font-family: var(--serif); font-size: var(--t-prose); line-height: 1.65; color: var(--ink-2); counter-reset: none; }
.doc__body > * + * { margin-top: 1em; }
.doc__body h2 { position: relative; margin-top: 2.6em; padding-top: 1.1em; border-top: 1px solid var(--line); font-size: clamp(1.6rem, 1.3rem + 1vw, 2.1rem); font-weight: 400; letter-spacing: -.015em; line-height: 1.15; color: var(--ink); scroll-margin-top: 96px; }
.doc__body h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.doc__n { display: inline-block; min-width: 2.2rem; color: var(--terracotta); font-variant-numeric: lining-nums tabular-nums; font-weight: 300; }
@media (min-width: 1200px) { .doc__n { position: absolute; left: -3.2rem; text-align: right; min-width: 2.4rem; } }
.doc__body h3 { margin-top: 1.8em; font-family: var(--sans); font-size: 1.0625rem; font-weight: 600; letter-spacing: 0; color: var(--ink); }
.doc__body h4 { margin-top: 1.4em; font-family: var(--sans); font-size: 1rem; font-weight: 600; }
.doc__body ul, .doc__body ol { padding-left: 1.3em; }
.doc__body li + li { margin-top: .45em; }
.doc__body li::marker { color: var(--terracotta); }
.doc__body strong, .doc__body b { color: var(--ink); font-weight: 600; }
.doc__body a { color: var(--accent-text); text-decoration-color: color-mix(in srgb, currentColor 40%, transparent); text-underline-offset: .15em; }
.doc__body code { font-family: var(--mono); font-size: .82em; padding: .1em .35em; border-radius: 4px; background: color-mix(in srgb, var(--ink) 6%, transparent); }
.doc__body table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: .9375rem; }
.doc__body th, .doc__body td { padding: .6rem .7rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.doc__body blockquote { margin-left: 0; padding-left: 1.2em; border-left: 2px solid var(--terracotta); font-style: italic; }
.doc__progress { position: fixed; left: 0; right: 0; top: 0; z-index: 120; height: 2px; background: var(--terracotta); transform-origin: left; transform: scaleX(0); pointer-events: none; }
@media print { .masthead, .doc__toc, .footer, .preview-ctl, .doc__siblings, .doc__progress { display: none !important; } .doc__grid { display: block; padding: 0; } .doc__hero { padding: 0 0 1em; background: none; } }

/* AI principles */
.aip__list { list-style: none; margin: 0 auto; padding: 0; display: grid; }
.aip__row { display: grid; gap: var(--s4) var(--s10); padding-block: var(--s12); border-top: 1px solid var(--line); scroll-margin-top: 96px; }
.aip__row:first-child { border-top: 0; padding-top: var(--s4); }
@media (min-width: 960px) { .aip__row { grid-template-columns: 7rem minmax(0, 1fr) 17rem; align-items: start; } }
.aip__num { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(3rem, 2rem + 3vw, 5rem); line-height: .9; color: var(--terracotta); }
.aip__h { margin: var(--s2) 0 var(--s4); font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.8rem); font-weight: 300; line-height: 1.08; letter-spacing: -.02em; }
.aip__text p:not(.label) { max-width: 40rem; font-family: var(--serif); font-size: var(--t-prose); line-height: 1.6; color: var(--ink-2); }
.aip__text a { color: var(--accent-text); }
.aip__chips { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.aip__chips li { display: grid; gap: .15rem; padding: var(--s4) var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.aip__chips b { font-weight: 600; }
.aip__chips span { font-size: .875rem; color: var(--fg-muted); }
.aip__close { padding-block: var(--section); background: var(--night); color: var(--on-night); }
.aip__close-inner { max-width: 48rem; display: grid; gap: var(--s4); }
.aip__close p:not(.label) { font-family: var(--serif); font-size: 1.2rem; line-height: 1.6; color: var(--on-night-2, var(--on-night)); }
.aip__close a { color: var(--terracotta-on-night); }

/* ---------- Everything in Alhora (features) ---------- */
.fx-hero { padding: calc(var(--s24) + 40px) 0 var(--s12); background: radial-gradient(60% 70% at 85% 0%, rgba(185,68,52,.08), transparent 60%), linear-gradient(180deg, var(--paper-warm), var(--paper)); }
.fx-hero .wrap:first-child { display: grid; gap: var(--s4); max-width: 60rem; margin-inline: auto; text-align: center; justify-items: center; }
.fx-rail { display: grid; gap: var(--s4); margin-top: var(--s12); }
@media (min-width: 900px) { .fx-rail { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.fx-rail__group { padding: var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.fx-rail__label { margin: 0 0 var(--s3); font: 500 var(--t-micro)/1 var(--mono); letter-spacing: .08em; text-transform: uppercase; color: var(--fg-muted); }
.fx-rail__label .num { color: var(--terracotta); margin-right: .3rem; }
.fx-rail ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 2px; }
.fx-rail a { display: grid; gap: .1rem; padding: .55rem .65rem; margin-inline: -.65rem; border-radius: 10px; text-decoration: none; color: var(--fg); transition: background-color var(--d-ink); }
.fx-rail a:hover { background: color-mix(in srgb, var(--terracotta) 7%, transparent); }
.fx-rail a b { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }
.fx-rail a span { font-size: .8125rem; line-height: 1.4; color: var(--fg-muted); }
.fx-rail__note { margin-top: var(--s5); color: var(--fg-muted); text-align: center; }
.fx-chapters { position: sticky; top: 64px; z-index: 40; background: color-mix(in srgb, var(--paper) 90%, transparent); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border-block: 1px solid var(--line); }
.fx-chapters .wrap { display: flex; align-items: center; gap: var(--s2); overflow-x: auto; padding-block: .55rem; scrollbar-width: none; }
.fx-chapters a { flex: none; padding: .45rem .8rem; border-radius: var(--pill); font-size: .875rem; text-decoration: none; color: var(--fg-muted); white-space: nowrap; }
.fx-chapters a .num { color: var(--terracotta); margin-right: .25rem; }
.fx-chapters a.is-current { background: var(--ink); color: var(--paper); }
.fx-chapters a.is-current .num { color: var(--terracotta-on-night); }
.fx-chapters__cta { margin-left: auto; background: var(--terracotta); color: var(--paper) !important; font-weight: 500; }
.fx-chapter { padding-top: var(--section); scroll-margin-top: 110px; }
.fx-chapter__head { display: grid; gap: var(--s3); margin-bottom: var(--s12); }
.fx-chapter__num { margin: 0; font-family: var(--serif); font-weight: 300; font-size: clamp(3.5rem, 2rem + 5vw, 7rem); line-height: .8; color: var(--terracotta); }
.fx-feature { display: grid; gap: var(--s8); align-items: center; padding-block: var(--s12); scroll-margin-top: 120px; }
@media (min-width: 1000px) { .fx-feature { grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); gap: var(--s16); } .fx-feature--flip .fx-feature__copy { order: 2; } }
.fx-feature__copy { display: grid; gap: var(--s4); align-content: start; }
.fx-feature__h { font-size: clamp(1.8rem, 1.3rem + 1.8vw, 2.8rem); font-weight: 300; line-height: 1.08; letter-spacing: -.02em; }
.fx-feature__copy > p:not(.label) { font-family: var(--serif); font-size: var(--t-prose); line-height: 1.6; color: var(--fg-2); }
.fx-points { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); font-size: .9375rem; line-height: 1.55; color: var(--fg-2); }
.fx-points li { position: relative; padding-left: 1.4rem; }
.fx-points li::before { content: ''; position: absolute; left: 1px; top: .5em; width: 8px; height: 4.5px; border: solid var(--accent-text); border-width: 0 0 1.5px 1.5px; transform: rotate(-45deg); }
.fx-points b { color: var(--fg); font-weight: 600; }
.fx-tag { position: absolute; z-index: 2; top: 12px; left: 12px; padding: .3rem .6rem; border-radius: var(--pill); background: rgba(33,26,18,.78); color: var(--paper); font: 500 .6875rem/1 var(--mono); letter-spacing: .04em; }
.fx-tag--night { background: rgba(243,236,221,.14); color: var(--on-night); }
.fx-shot { position: relative; margin: 0; overflow: hidden; border-radius: var(--radius-lg); box-shadow: 0 0 0 1px var(--rule), 0 40px 80px -40px rgba(33,26,18,.45); }
.fx-shot img { display: block; width: 100%; height: auto; }
.fx-illus { position: relative; margin: 0; min-height: 300px; padding: clamp(28px, 4vw, 48px); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); overflow: hidden; display: grid; place-items: center; }
.fx-illus--drafts { grid-template-columns: 1fr 1fr; gap: var(--s4); place-items: stretch; align-content: center; }
.fx-draft { display: grid; gap: 10px; align-content: start; padding: var(--s5); border-radius: 12px; background: var(--paper); box-shadow: var(--shadow); }
.fx-draft b { font-family: var(--serif); font-weight: 400; font-size: 1.1rem; margin-bottom: 6px; }
.fx-draft i { display: block; height: 7px; border-radius: 4px; background: color-mix(in srgb, var(--ink) 12%, transparent); }
.fx-draft i.short { width: 60%; } .fx-draft i.del { background: rgba(166,58,43,.35); } .fx-draft i.ins { background: rgba(48,79,70,.45); }
.fx-draft--b { transform: translateY(18px) rotate(1.5deg); }
.fx-illus--index { place-items: start; align-content: center; font-family: var(--serif); font-size: 1.05rem; }
.fx-illus--index p { margin: .2rem 0; } .fx-index__h { font-size: 1.6rem; font-style: italic; margin-bottom: .6rem !important; }
.fx-world { margin-block: var(--s16); padding-block: var(--section); background: radial-gradient(60% 50% at 70% 30%, rgba(185,68,52,.16), transparent 60%), var(--night); color: var(--on-night); scroll-margin-top: 110px; }
.fx-world__head { display: grid; gap: var(--s4); max-width: 46rem; }
.fx-constellation { position: relative; margin: var(--s10) 0; padding: var(--s6); border-radius: var(--radius-lg); background: rgba(243,236,221,.03); box-shadow: 0 0 0 1px var(--rule-night); }
.fx-constellation svg { display: block; width: 100%; height: auto; }
.fx-c__links path { fill: none; stroke: rgba(243,236,221,.22); stroke-width: 1.2; stroke-dasharray: 3 5; }
.fx-c__nodes circle { fill: rgba(204,107,87,.16); stroke: var(--terracotta-on-night); stroke-width: 1.2; }
.fx-c__nodes text { fill: var(--on-night); font: 400 15px var(--serif); text-anchor: middle; }
.fx-c__nodes text.k { fill: var(--on-night-muted); font: 500 10px var(--mono); letter-spacing: .08em; text-transform: uppercase; }
html.motion .fx-c__links path { animation: fx-dash 30s linear infinite; }
@keyframes fx-dash { to { stroke-dashoffset: -400; } }
.fx-world__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1px; background: var(--rule-night); border-radius: var(--radius-lg); overflow: hidden; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.fx-world__grid li { padding: var(--s6); background: var(--night); }
.fx-world__grid h4 { margin: 0 0 .4rem; font-family: var(--serif); font-weight: 400; font-size: 1.25rem; color: var(--on-night); }
.fx-world__grid p { margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--on-night-muted); }
.fx-illus--health { grid-template-columns: auto 1fr; gap: var(--s8); }
.fx-score { display: grid; place-items: center; width: 140px; aspect-ratio: 1; border-radius: 50%; background: conic-gradient(var(--terracotta) 0 94%, color-mix(in srgb, var(--ink) 10%, transparent) 0); position: relative; }
.fx-score::before { content: ''; position: absolute; inset: 10px; border-radius: 50%; background: var(--surface); }
.fx-score b, .fx-score span { position: relative; } .fx-score b { font-family: var(--serif); font-weight: 300; font-size: 2.6rem; line-height: 1; } .fx-score span { font-size: .75rem; color: var(--fg-muted); margin-top: -1.6rem; }
.fx-illus--health ul { list-style: none; margin: 0; padding: 0; display: grid; gap: .55rem; font-size: .9375rem; }
.fx-illus--health li { display: flex; align-items: center; gap: .55rem; }
.fx-illus--health li::before { content: '✓'; display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; background: rgba(48,79,70,.14); color: #304f46; font-size: .75rem; }
.fx-illus--health li.warn::before { content: '!'; background: rgba(166,58,43,.14); color: var(--terracotta); font-weight: 700; }
.fx-wrap { display: grid; grid-template-columns: 1fr 64px 1fr; width: min(100%, 460px); aspect-ratio: 2.3; border-radius: 6px; overflow: hidden; box-shadow: var(--shadow-lg); }
.fx-wrap span { display: grid; place-items: center; background: #2b3b50; color: #e9dfc7; font-family: var(--serif); font-style: italic; }
.fx-wrap .spine { background: #22303f; writing-mode: vertical-rl; font-size: .8rem; font-style: normal; font-family: var(--mono); }
.fx-illus--wrap p { margin-top: var(--s4); color: var(--fg-muted); }
.fx-illus--files ul { list-style: none; margin: 0; padding: 0; width: min(100%, 420px); display: grid; gap: .55rem; }
.fx-illus--files li { display: flex; justify-content: space-between; gap: var(--s4); padding: .8rem 1rem; border-radius: 12px; background: var(--paper); box-shadow: 0 0 0 1px var(--line); }
.fx-illus--files li span { font-size: .8125rem; color: var(--fg-muted); }
.fx-proof { padding-block: var(--section); background: linear-gradient(180deg, var(--paper-warm), var(--paper)); scroll-margin-top: 110px; }
.fx-proof__grid { display: grid; gap: var(--s12); align-items: center; }
@media (min-width: 1000px) { .fx-proof__grid { grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); } }
.fx-proof__grid > div { display: grid; gap: var(--s4); }
.fx-proof__limit { color: var(--fg-muted); max-width: 52ch; }
.fx-cert { position: relative; margin: 0; padding: var(--s8) var(--s6); }
.fx-cert__paper { position: relative; padding: clamp(28px, 4vw, 44px); border-radius: 6px; background: #fbf7ee; box-shadow: 0 0 0 1px rgba(33,26,18,.12), 0 30px 70px -30px rgba(33,26,18,.45); transform: rotate(-1.5deg);
  background-image: radial-gradient(circle at 100% 0, rgba(185,68,52,.08), transparent 40%), repeating-linear-gradient(0deg, transparent 0 22px, rgba(33,26,18,.025) 22px 23px); }
.fx-cert__paper::before { content: ''; position: absolute; inset: 10px; border: 1px solid rgba(166,58,43,.35); border-radius: 3px; pointer-events: none; }
.fx-cert__kicker { margin: 0; font: 500 .7rem/1 var(--mono); letter-spacing: .14em; text-transform: uppercase; color: var(--terracotta); }
.fx-cert__title { margin: .8rem 0 .2rem; font-family: var(--serif); font-size: 2rem; line-height: 1.1; }
.fx-cert__by { margin: 0 0 1.2rem; color: var(--ink-2); }
.fx-cert dl { margin: 0; display: grid; gap: .45rem; font-size: .875rem; }
.fx-cert dl div { display: flex; justify-content: space-between; gap: var(--s4); padding-bottom: .45rem; border-bottom: 1px dashed rgba(33,26,18,.15); }
.fx-cert dt { color: var(--ink-muted); } .fx-cert dd { margin: 0; font-weight: 500; text-align: right; }
.fx-cert__foot { display: flex; align-items: center; gap: var(--s4); margin-top: 1.2rem; font-size: .8125rem; color: var(--ink-muted); }
.fx-cert__qr { width: 58px; height: 58px; border-radius: 4px; background: conic-gradient(from 90deg at 30% 30%, var(--ink) 25%, transparent 0) 0 0/14px 14px, conic-gradient(from 0deg at 70% 70%, var(--ink) 25%, transparent 0) 7px 7px/14px 14px, #fff; box-shadow: 0 0 0 4px #fff, 0 0 0 5px rgba(33,26,18,.2); }
.fx-illus--series .fx-spines { display: flex; align-items: flex-end; gap: 6px; height: 220px; }
.fx-spines span { display: grid; place-items: center; width: 46px; height: calc(170px + var(--i, 0) * 10px); border-radius: 3px; background: var(--c); color: #e9dfc7; writing-mode: vertical-rl; font-family: var(--serif); font-style: italic; box-shadow: inset -4px 0 8px rgba(0,0,0,.25); }
.fx-spines span:nth-child(2) { height: 196px; } .fx-spines span:nth-child(3) { height: 184px; } .fx-spines span:nth-child(4) { height: 206px; }
.fx-illus--series p { margin-top: var(--s4); color: var(--fg-muted); }
.fx-shop { padding-block: var(--section); background: color-mix(in srgb, var(--paper-deep) 45%, var(--paper)); scroll-margin-top: 110px; }
.fx-shop__grid { display: grid; gap: var(--s12); align-items: center; }
@media (min-width: 1000px) { .fx-shop__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }
.fx-shop__grid > div { display: grid; gap: var(--s4); justify-items: start; }
.fx-storefront { position: relative; margin: 0; padding: var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line), 0 40px 80px -40px rgba(33,26,18,.4); }
.fx-storefront__bar { display: flex; justify-content: space-between; align-items: baseline; gap: var(--s4); padding: var(--s6) var(--s2) var(--s4); border-bottom: 1px solid var(--line); font-size: .8125rem; color: var(--fg-muted); }
.fx-storefront__bar .wordmark { font-size: 1.5rem; color: var(--ink); }
.fx-storefront__books { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--s4); padding: var(--s5) var(--s2); }
.fx-storefront__books div { display: grid; gap: .3rem; font-size: .8125rem; }
.fx-storefront__books img { width: 100%; aspect-ratio: 2 / 3; object-fit: cover; border-radius: 2px 5px 5px 2px; box-shadow: 0 18px 30px -18px rgba(33,26,18,.6), 0 1px 3px rgba(33,26,18,.2); }
.fx-storefront__books b { font-family: var(--serif); font-weight: 400; font-size: .95rem; line-height: 1.2; }
.fx-storefront__books span { color: var(--fg-muted); }
.fx-storefront__seal { display: flex; align-items: center; gap: var(--s3); margin: 0; padding: var(--s3) var(--s2) 0; border-top: 1px solid var(--line); font-size: .8125rem; color: var(--fg-muted); }
.fx-storefront__seal .stamp { --stamp-size: 54px; }
.fx-illus--author { padding: 0; place-items: stretch; }
.fx-author__hero { width: 100%; height: 100%; min-height: 300px; object-fit: cover; }
.fx-author__card { position: absolute; left: 20px; right: 20px; bottom: 20px; display: flex; align-items: center; gap: var(--s3); padding: var(--s4); border-radius: 14px; background: rgba(251,247,238,.94); box-shadow: var(--shadow-lg); }
.fx-author__card img { border-radius: 50%; } .fx-author__card div { display: grid; } .fx-author__card b { font-family: var(--serif); font-weight: 400; font-size: 1.3rem; } .fx-author__card span { font-size: .8125rem; color: var(--fg-muted); }
.fx-illus--guild ul { list-style: none; margin: 0; padding: 0; width: min(100%, 460px); display: grid; gap: .6rem; }
.fx-illus--guild li { display: grid; grid-template-columns: 40px 1fr auto; align-items: center; gap: var(--s3); padding: .8rem 1rem; border-radius: 12px; background: var(--paper); box-shadow: 0 0 0 1px var(--line); }
.fx-illus--guild img { border-radius: 50%; } .fx-illus--guild div { display: grid; } .fx-illus--guild li span { font-size: .8125rem; color: var(--fg-muted); }
.fx-illus--guild em { font-style: normal; font-size: .6875rem; padding: .25rem .5rem; border-radius: var(--pill); background: rgba(48,79,70,.12); color: #304f46; white-space: nowrap; }
.fx-you { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); padding-bottom: var(--section); }
.fx-you__card { display: grid; align-content: start; gap: var(--s3); padding: var(--s8); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); scroll-margin-top: 120px; }
.fx-you__card h3 { font-size: 1.6rem; font-weight: 300; line-height: 1.15; }
.fx-you__card p:not(.label) { color: var(--fg-2); line-height: 1.6; }
.fx-you__card--ink { background: var(--night); color: var(--on-night); box-shadow: none; }
.fx-you__card--ink p:not(.label) { color: var(--on-night-muted); }
.fx-streak { display: grid; grid-template-columns: repeat(14, 1fr); gap: 4px; margin-top: var(--s2); }
.fx-streak i { aspect-ratio: 1; border-radius: 4px; background: color-mix(in srgb, var(--terracotta) 70%, transparent); }
.fx-streak i.r { background: color-mix(in srgb, var(--ink) 10%, transparent); } .fx-streak i.today { box-shadow: 0 0 0 2px var(--surface), 0 0 0 3.5px var(--terracotta); }
.fx-swatches { display: flex; gap: 6px; margin-top: var(--s2); } .fx-swatches i { flex: 1; height: 38px; border-radius: 8px; background: var(--c); box-shadow: inset 0 0 0 1px rgba(33,26,18,.1); }
.fx-close { padding-block: var(--section); background: var(--night); color: var(--on-night); text-align: center; }
.fx-close__inner { display: grid; gap: var(--s5); justify-items: center; }
.fx-close__ctas { display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s3); }
[data-theme="night"] .btn--ghost { --btn-bd: var(--rule-night); }
@media (min-width: 900px) { .fx-world__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.fx-hero h1 { max-width: 16ch; }
.doc__body details { border-top: 1px solid var(--line); padding: .9rem 0; }
.doc__body details + details { margin-top: 0; }
.doc__body summary { cursor: pointer; font-family: var(--sans); font-weight: 600; font-size: 1rem; color: var(--ink); list-style: none; display: flex; justify-content: space-between; gap: 1rem; }
.doc__body summary::after { content: '+'; color: var(--terracotta); font-weight: 400; font-size: 1.3rem; line-height: 1; }
.doc__body details[open] summary::after { content: '–'; }
.doc__body summary::-webkit-details-marker { display: none; }
.doc__body blockquote { font-style: normal; padding: var(--s4) var(--s5); border-left: 0; border-radius: var(--radius); background: color-mix(in srgb, var(--terracotta) 7%, transparent); font-family: var(--sans); font-size: .9375rem; }
.doc__lede p + p { margin-top: .6em; }
.doc-cta { padding-block: var(--section); background: var(--night); color: var(--on-night); }
.doc-cta__inner { display: grid; gap: var(--s4); justify-items: center; text-align: center; }
.doc-cta__btns { display: flex; flex-wrap: wrap; gap: var(--s3); justify-content: center; }

/* ---------- Free tools ---------- */
.tool { margin-top: calc(var(--s8) * -1); position: relative; z-index: 1; padding: clamp(22px, 3.4vw, 44px); border-radius: calc(var(--radius-lg) + 4px); background: var(--surface); box-shadow: 0 0 0 1px var(--line), 0 40px 90px -50px rgba(33,26,18,.5); }
.tool__h { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 300; margin-bottom: var(--s6); }
.tool__grid { display: grid; gap: var(--s8); }
@media (min-width: 960px) { .tool__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }
.tool__fields { display: grid; gap: var(--s5); align-content: start; }
.tool__choice { margin: 0; padding: 0; border: 0; display: grid; gap: .45rem; }
.tool__choice legend { font-weight: 500; font-size: .9375rem; margin-bottom: .45rem; }
.tool__choice--row { grid-template-columns: 1fr 1fr; }
.tool__choice label { position: relative; display: block; cursor: pointer; }
.tool__choice input { position: absolute; opacity: 0; inset: 0; margin: 0; cursor: pointer; }
.tool__choice span { display: grid; gap: .1rem; padding: .75rem .95rem; border-radius: var(--radius); border: 1px solid color-mix(in srgb, var(--fg) 22%, transparent); transition: border-color .2s, background-color .2s; }
.tool__choice small { color: var(--fg-muted); font-size: .8125rem; }
.tool__choice input:checked + span { border-color: var(--terracotta); background: color-mix(in srgb, var(--terracotta) 7%, transparent); }
.tool__choice input:focus-visible + span { outline: 2px solid var(--terracotta); outline-offset: 2px; }
.field__opt { font-weight: 400; color: var(--fg-muted); }
.tool__out { display: grid; gap: var(--s3); align-content: start; padding: var(--s6); border-radius: var(--radius-lg); background: var(--night); color: var(--on-night); }
.tool__primary { margin: var(--s3) 0 0; font-family: var(--serif); font-weight: 300; font-size: clamp(2.6rem, 2rem + 2.4vw, 4rem); line-height: 1; color: var(--on-night); }
.tool__secondary { margin: 0; color: var(--on-night-muted); }
.tool__rows { display: grid; gap: .5rem; margin: var(--s3) 0 0; font-size: .9375rem; }
.tool__rows div { display: flex; justify-content: space-between; gap: var(--s4); padding-top: .5rem; border-top: 1px solid var(--rule-night); }
.tool__rows dt { color: var(--on-night-muted); } .tool__rows dd { margin: 0; text-align: right; }
.tool__visual { display: grid; place-items: center; min-height: 170px; border-radius: var(--radius); background: rgba(243,236,221,.04); }
.tool__cover { display: flex; height: 130px; box-shadow: 0 20px 40px -20px rgba(0,0,0,.8); }
.tool__back, .tool__front { display: grid; place-items: center; width: 100px; background: #2b3b50; color: #e9dfc7; font: italic 400 .95rem var(--serif); }
.tool__front { background: #34485f; }
.tool__spine { display: grid; place-items: center; overflow: hidden; background: #22303f; color: #e9dfc7; transition: width .45s var(--e-settle); }
.tool__spine i { writing-mode: vertical-rl; font: 500 .62rem/1 var(--mono); letter-spacing: .06em; font-style: normal; white-space: nowrap; }
.tool__spine.is-blank { background: repeating-linear-gradient(45deg, #22303f 0 4px, #2c3c4e 4px 8px); }
.tool__visual--range { place-items: stretch; align-content: center; padding: var(--s5); gap: var(--s3); }
.tool__track { position: relative; height: 16px; border-radius: 8px; background: rgba(243,236,221,.08); }
.tool__band { position: absolute; top: 0; bottom: 0; border-radius: 8px; background: linear-gradient(90deg, rgba(204,107,87,.55), var(--terracotta-on-night)); transition: left .45s var(--e-settle), width .45s var(--e-settle); }
.tool__mark { position: absolute; top: -6px; width: 3px; height: 28px; margin-left: -1.5px; border-radius: 2px; background: var(--on-night); transition: left .45s var(--e-settle); }
.tool__scale { display: flex; justify-content: space-between; font: 400 .7rem var(--mono); color: var(--on-night-muted); }
.tool__caveat { margin-top: var(--s5); color: var(--fg-muted); max-width: 70ch; }
.tool__next { display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); padding-bottom: var(--s20); }
.tool__next-card { display: grid; gap: .3rem; padding: var(--s6); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); text-decoration: none; color: var(--fg); transition: transform var(--d-leaf) var(--e-settle); }
.tool__next-card:hover { transform: translateY(-2px); }
.tool__next-card b { font-family: var(--serif); font-weight: 400; font-size: 1.4rem; }
.tool__next-card span:last-child { color: var(--fg-muted); font-size: .9375rem; }
.tool__next-card--app { background: var(--night); color: var(--on-night); box-shadow: none; }
.tool__next-card--app span:last-child { color: var(--on-night-muted); }
html.reduce-motion .tool__spine, html.reduce-motion .tool__band, html.reduce-motion .tool__mark { transition: none; }

/* ---------- Feature requests ---------- */
.rq-counts { display: flex; flex-wrap: wrap; gap: var(--s8); margin: var(--s4) 0 0; }
.rq-counts dt { font: 500 var(--t-micro)/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); }
.rq-counts dd { margin: .3rem 0 0; font-family: var(--serif); font-size: 2.4rem; font-weight: 300; line-height: 1; }
.rq-layout { display: grid; gap: var(--s10); padding-block: var(--s10) var(--s20); }
@media (min-width: 1000px) { .rq-layout { grid-template-columns: 18rem minmax(0, 1fr); } .rq-ask { position: sticky; top: 100px; align-self: start; } }
.rq-ask { display: grid; gap: var(--s3); padding: var(--s6); border-radius: var(--radius-lg); background: var(--night); color: var(--on-night); }
.rq-ask p { margin: 0; color: var(--on-night-muted); } .rq-ask .btn { justify-self: start; }
.rq-ask .text-link { color: var(--terracotta-on-night); }
.rq-tools { display: grid; gap: var(--s3); margin-bottom: var(--s4); }
.rq-lanes, .rq-cats { display: flex; flex-wrap: wrap; gap: .35rem; }
.rq-lanes button, .rq-cats button { padding: .45rem .8rem; border-radius: var(--pill); border: 1px solid var(--line); background: none; font: 500 .8125rem/1 var(--sans); color: var(--fg-muted); cursor: pointer; }
.rq-lanes button[aria-pressed="true"], .rq-cats button[aria-pressed="true"] { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.rq-search .field__input { max-width: 26rem; }
.rq-snapshot { color: var(--fg-muted); }
.rq-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s3); }
.rq-card { display: grid; grid-template-columns: 56px 1fr; gap: var(--s4); padding: var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.rq-card[hidden] { display: none; }
.rq-vote { display: grid; justify-items: center; align-content: center; gap: .1rem; width: 56px; height: 64px; border-radius: 12px; border: 1px solid var(--line); color: var(--fg); text-decoration: none; transition: border-color var(--d-ink), background-color var(--d-ink); }
.rq-vote:hover { border-color: var(--terracotta); background: color-mix(in srgb, var(--terracotta) 6%, transparent); }
.rq-vote svg { width: 12px; height: 8px; fill: none; stroke: var(--terracotta); stroke-width: 1.6; }
.rq-vote .num { font-size: 1.05rem; font-weight: 600; }
.rq-vote--lg { width: 68px; height: 78px; }
.rq-card__title { font-size: 1.3rem; font-weight: 400; } .rq-card__title a { color: inherit; text-decoration: none; } .rq-card__title a:hover { color: var(--accent-text); }
.rq-card__ex { margin: .35rem 0 0; color: var(--fg-2); font-size: .9375rem; line-height: 1.55; }
.rq-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .8rem; margin: .7rem 0 0; font-size: .8125rem; color: var(--fg-muted); }
.rq-lane { padding: .2rem .55rem; border-radius: var(--pill); font-weight: 600; font-size: .75rem; }
.rq-lane--shipped { background: rgba(48,79,70,.13); color: #304f46; }
.rq-lane--roadmap { background: color-mix(in srgb, var(--terracotta) 12%, transparent); color: var(--accent-text); }
.rq-lane--community { background: color-mix(in srgb, var(--ink) 8%, transparent); color: var(--fg); }
.rq-cat { color: var(--fg); }
.rq-reply { margin-top: var(--s3); padding: var(--s3) var(--s4); border-left: 2px solid var(--terracotta); border-radius: 0 10px 10px 0; background: color-mix(in srgb, var(--terracotta) 5%, transparent); font-size: .9375rem; }
.rq-reply p { margin: 0; } .rq-reply p + p { margin-top: .35rem; }
.rq-reply__label { font: 500 var(--t-micro)/1.4 var(--mono) !important; letter-spacing: .06em; text-transform: uppercase; color: var(--accent-text); margin-bottom: .3rem !important; }
.rq-shipped { font-size: .8125rem; color: #304f46; font-weight: 600; }
.rq-empty { padding: var(--s8); text-align: center; color: var(--fg-muted); }
.rq-detail { max-width: 52rem; padding-block: calc(var(--s24) + 40px) var(--s20); }
.rq-back { display: inline-block; margin-bottom: var(--s5); color: var(--fg-muted); text-decoration: none; font-size: .9375rem; }
.rq-detail__card { padding: clamp(22px, 4vw, 40px); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.rq-detail__head { display: grid; grid-template-columns: auto 1fr; gap: var(--s5); align-items: start; }
.rq-detail__title { font-size: clamp(1.8rem, 1.4rem + 1.6vw, 2.8rem); font-weight: 300; line-height: 1.08; }
.rq-detail__body { margin-top: var(--s6); font-family: var(--serif); font-size: var(--t-prose); line-height: 1.6; color: var(--ink-2); }
.rq-reply--lg { margin-top: var(--s6); }
.rq-noreply { margin-top: var(--s5); color: var(--fg-muted); }
.rq-detail__foot { margin-top: var(--s6); color: var(--fg-muted); }

/* ---------- Compare ---------- */
.cmp-hub { padding-block: var(--s10) var(--s16); }
.cmp-cards { list-style: none; margin: var(--s5) 0 0; padding: 0; display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.cmp-card { position: relative; display: grid; gap: var(--s3); height: 100%; padding: var(--s6) var(--s6) var(--s8); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); text-decoration: none; color: var(--fg); transition: transform var(--d-leaf) var(--e-settle), box-shadow var(--d-ink); }
.cmp-card:hover { transform: translateY(-3px); box-shadow: 0 0 0 1px color-mix(in srgb, var(--fg) 30%, transparent), var(--shadow-lg); }
.cmp-card__vs { font-family: var(--serif); font-size: 1.7rem; font-weight: 300; line-height: 1.1; }
.cmp-card__vs i { color: var(--terracotta); font-size: .8em; }
.cmp-card__d { font-size: .9375rem; color: var(--fg-muted); line-height: 1.5; }
.cmp-card__go { position: absolute; right: var(--s5); bottom: var(--s4); color: var(--terracotta); font-size: 1.3rem; }
.doc__body table { margin: var(--s5) 0; display: block; overflow-x: auto; }
.doc__body caption { caption-side: top; text-align: left; padding-bottom: .5rem; font-size: .875rem; color: var(--fg-muted); }
.doc__body tr.is-group th { padding-top: 1.2rem; font: 500 var(--t-micro)/1 var(--mono); letter-spacing: .06em; text-transform: uppercase; color: var(--fg-muted); border-bottom-color: var(--ink); }
.doc__body td.is-us, .doc__body th.is-us { background: color-mix(in srgb, var(--terracotta) 6%, transparent); color: var(--ink); }
.doc__body thead th { font-weight: 600; }

/* ---------- Tutorials ---------- */
.tut-layout { display: grid; gap: var(--s10); padding-block: var(--s10) var(--s20); }
@media (min-width: 1000px) { .tut-layout { grid-template-columns: 17rem minmax(0, 1fr); } .tut-index { position: sticky; top: 100px; align-self: start; } }
.tut-index ol { list-style: none; margin: var(--s3) 0 0; padding: 0; display: grid; gap: 2px; }
.tut-index a { display: grid; grid-template-columns: 1.8rem 1fr auto; gap: .4rem; padding: .45rem .6rem; border-radius: 8px; font-size: .875rem; color: var(--fg-muted); text-decoration: none; }
.tut-index a:hover { background: var(--surface); color: var(--fg); }
.tut-index__d { color: var(--fg-muted); font-size: .75rem; }
.tut-list { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--s8); }
.tut { display: grid; gap: var(--s5); align-items: center; scroll-margin-top: 100px; }
@media (min-width: 760px) { .tut { grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); } }
.tut__play, .tut__frame { position: relative; display: block; width: 100%; aspect-ratio: 16 / 9; padding: 0; border: 0; border-radius: var(--radius-lg); overflow: hidden; background: var(--night); cursor: pointer; box-shadow: 0 30px 60px -36px rgba(33,26,18,.6); }
.tut__play img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--e-settle); }
.tut__play:hover img { transform: scale(1.03); }
.tut__btn { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 64px; height: 64px; margin: -32px 0 0 -32px; border-radius: 50%; background: rgba(251,247,238,.94); box-shadow: var(--shadow-lg); }
.tut__btn svg { width: 24px; height: 24px; fill: var(--terracotta); margin-left: 3px; }
.tut__dur { position: absolute; right: 10px; bottom: 10px; padding: .25rem .5rem; border-radius: 6px; background: rgba(15,12,10,.8); color: var(--on-night); font-size: .75rem; }
.tut__h { font-size: clamp(1.5rem, 1.2rem + 1vw, 2rem); font-weight: 300; margin: .3rem 0 .5rem; }
.tut__text p:not(.label) { color: var(--fg-2); line-height: 1.6; }

/* ---------- The Guild ---------- */
.guild-hero { background: radial-gradient(60% 80% at 80% 0%, rgba(185,68,52,.25), transparent 60%), var(--night); color: var(--on-night); border-bottom: 0; }
.guild-hero__ctas { display: flex; flex-wrap: wrap; gap: var(--s3); margin-top: var(--s3); }
.guild-promises { list-style: none; margin: var(--s5) 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: .4rem; }
.guild-promises li { padding: .4rem .8rem; border-radius: var(--pill); border: 1px solid var(--rule-night); font-size: .8125rem; color: var(--on-night-muted); }
.guild-register { padding-block: var(--s16); }
.guild-register__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: var(--s4); margin-bottom: var(--s6); }
.guild-gatherings { list-style: none; margin: 0 0 var(--s6); padding: 0; display: grid; gap: var(--s3); grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); }
.guild-gatherings li { padding: var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); font-family: var(--serif); font-size: 1.2rem; }
.guild-empty { display: grid; gap: var(--s3); justify-items: center; text-align: center; padding: var(--s12) var(--s6); border-radius: var(--radius-lg); border: 1px dashed color-mix(in srgb, var(--fg) 25%, transparent); }
.guild-empty p:not(.guild-empty__orn) { max-width: 46ch; color: var(--fg-2); }
.guild-empty__orn { margin: 0; font-family: var(--serif); font-size: 2.2rem; color: var(--terracotta); }
.guild-how { padding-block: var(--section); background: var(--night); color: var(--on-night); }
.guild-how__list { list-style: none; margin: var(--s8) 0 0; padding: 0; display: grid; gap: 1px; background: var(--rule-night); border-radius: var(--radius-lg); overflow: hidden; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.guild-how__list li { display: grid; gap: .5rem; align-content: start; padding: var(--s6); background: var(--night); }
.guild-how__list b { font-family: var(--serif); font-weight: 400; font-size: 1.25rem; }
.guild-how__list span { color: var(--on-night-muted); font-size: .9375rem; line-height: 1.55; }
.guild-how__note { margin-top: var(--s6); color: var(--on-night-muted); }
.guild-record { padding-block: var(--s16) var(--s20); }
.guild-record .small { color: var(--fg-muted); }
.guild-record__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: var(--s4); margin: var(--s5) 0 0; }
.guild-record__grid div { padding: var(--s5); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.guild-record__grid dt { font-size: .8125rem; color: var(--fg-muted); } .guild-record__grid dd { margin: .3rem 0 0; font-family: var(--serif); font-size: 2.4rem; font-weight: 300; }

/* ---------- The Bookshop ---------- */
.shop-browse, .shop-author { padding-block: var(--s10) var(--s20); }
.shop-author { padding-top: calc(var(--s24) + 40px); }
.shop-filters { display: flex; flex-wrap: wrap; gap: var(--s3); align-items: center; margin-bottom: var(--s4); }
.shop-filters label:first-child { flex: 1 1 260px; }
.shop-filters select { width: auto; }
.shop-filters__check { display: inline-flex; align-items: center; gap: .45rem; font-size: .9375rem; }
.shop-count, .shop-note { color: var(--fg-muted); }
.shop-note { margin-top: var(--s8); max-width: 70ch; }
.shop-grid { list-style: none; margin: var(--s5) 0 0; padding: 0; display: grid; gap: var(--s6); grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); }
.shop-book { display: grid; gap: .35rem; text-decoration: none; color: var(--fg); }
.shop-book img { width: 100%; aspect-ratio: .68; object-fit: cover; border-radius: 3px 6px 6px 3px; box-shadow: var(--shadow-book); transition: transform var(--d-leaf) var(--e-settle); }
.shop-book:hover img { transform: translateY(-4px) rotate(-1deg); }
.shop-book b { margin-top: .5rem; font-family: var(--serif); font-weight: 400; font-size: 1.15rem; }
.shop-book span { font-size: .875rem; color: var(--fg-muted); }
.shop-author__head { display: flex; align-items: center; gap: var(--s6); margin: var(--s4) 0 var(--s12); }
.shop-author__head img { border-radius: 50%; }
.shop-author__facts { display: flex; flex-wrap: wrap; gap: var(--s6); margin: var(--s3) 0 0; font-size: .9375rem; }
.shop-author__facts dt { font-size: .75rem; color: var(--fg-muted); } .shop-author__facts dd { margin: .15rem 0 0; }
.shop-newsletter { display: grid; gap: var(--s3); margin-top: var(--s12); padding: var(--s6); border-radius: var(--radius-lg); background: var(--paper-warm); }
.shop-newsletter p { margin: 0; color: var(--fg-2); max-width: 56ch; }
.shop-bookpage { padding-block: calc(var(--s24) + 40px) var(--s20); }
.shop-bookpage__grid { display: grid; gap: var(--s12); align-items: start; margin-top: var(--s5); }
@media (min-width: 960px) { .shop-bookpage__grid { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); } }
.shop-bookpage__text { display: grid; gap: var(--s4); }
.shop-bookpage__by { margin: 0; font-size: 1.05rem; }
.shop-bookpage__state { margin: 0; padding: .6rem .9rem; border-radius: var(--radius); background: var(--surface); box-shadow: 0 0 0 1px var(--line); font-size: .9375rem; }
.shop-bookpage__blurb { font-family: var(--serif); font-size: var(--t-prose); line-height: 1.6; color: var(--ink-2); }
.shop-bookpage__blurb p + p { margin-top: .8em; }
.shop-bookpage__facts { display: grid; gap: .5rem; margin: 0; font-size: .9375rem; }
.shop-bookpage__facts div { display: grid; grid-template-columns: 7rem 1fr; padding-top: .5rem; border-top: 1px solid var(--line); }
.shop-bookpage__facts dt { color: var(--fg-muted); }
.shop-bookpage__cover img { width: min(100%, 420px); border-radius: 3px 8px 8px 3px; box-shadow: var(--shadow-book); }
.shop-editions { list-style: none; margin: 0; padding: 0; display: grid; gap: .5rem; }
.shop-editions li { display: grid; grid-template-columns: 1fr auto; gap: .1rem var(--s4); padding: .75rem 1rem; border-radius: var(--radius); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.shop-editions small { grid-column: 1 / -1; color: var(--fg-muted); }
.book3d { margin: 0; display: grid; gap: var(--s4); justify-items: center; cursor: grab; touch-action: pan-y; user-select: none; }
.book3d:active { cursor: grabbing; }
.book3d__stage { perspective: 1600px; padding: var(--s6); }
.book3d__obj { --w: min(320px, 70vw); --h: calc(var(--w) * 1.4725); --d: calc(var(--w) * .1386); position: relative; width: var(--w); height: var(--h); transform-style: preserve-3d; transition: transform .9s var(--e-settle); }
.book3d__obj img { position: absolute; top: 0; height: var(--h); max-width: none; backface-visibility: hidden; }
.book3d__front { left: 0; width: var(--w); transform: translateZ(calc(var(--d) / 2)); border-radius: 0 4px 4px 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.2); }
.book3d__back { left: 0; width: var(--w); transform: rotateY(180deg) translateZ(calc(var(--d) / 2)); }
.book3d__spine { left: calc(var(--d) / -2); width: var(--d); transform: rotateY(-90deg); }
.book3d figcaption { display: grid; gap: .4rem; justify-items: center; text-align: center; }
.book3d figcaption .small { color: var(--fg-muted); }
html.reduce-motion .book3d__obj { transition: none; }

/* ---------- Pricing: AI add-on and publisher plans ---------- */
.ai-plans__head { display: grid; gap: var(--s4); max-width: 50rem; margin-bottom: var(--s10); }
.ai-plans__grid { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--gutter); grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); }
.ai-plans__grid > li { display: grid; gap: var(--s3); align-content: start; padding: var(--s6); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); }
.ai-plans__grid > li.is-pick { box-shadow: 0 0 0 1.5px var(--terracotta); }
.ai-plans__price { display: flex; align-items: baseline; gap: .4rem; margin: 0; }
.ai-plans__price .num { font-family: var(--serif); font-size: 2.6rem; font-weight: 300; line-height: 1; }
.ai-plans__price span:last-child { color: var(--fg-muted); font-size: .9375rem; }
.ai-plans__grid > li > p:not(.label):not(.ai-plans__price) { margin: 0; color: var(--fg-2); }
.ai-plans__note { margin-top: var(--s5); color: var(--fg-muted); max-width: 70ch; }
.publisher { display: grid; gap: var(--s6); align-items: center; margin-top: var(--s12); padding: clamp(22px, 3vw, 36px); border-radius: var(--radius-lg); background: var(--night); color: var(--on-night); }
@media (min-width: 900px) { .publisher { grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); } }
.publisher p:not(.label) { color: var(--on-night-muted); margin-top: .5rem; }
.publisher__plans { display: grid; gap: var(--s3); margin: 0; }
.publisher__plans div { padding: var(--s4); border-radius: var(--radius); box-shadow: 0 0 0 1px var(--rule-night); }
.publisher__plans dt { font-family: var(--serif); font-size: 1.2rem; } .publisher__plans dd { margin: .2rem 0 0; color: var(--on-night-muted); }

.tool__next-card--app .label, .publisher .label { color: var(--on-night-muted); }
.doc__grid, .acct__grid, .tut-layout, .rq-layout { grid-template-columns: minmax(0, 1fr); }
@media (min-width: 1000px) { .doc__grid { grid-template-columns: 17rem minmax(0, 44rem); } .tut-layout { grid-template-columns: 17rem minmax(0, 1fr); } .rq-layout { grid-template-columns: 18rem minmax(0, 1fr); } }
.doc__body { overflow-wrap: anywhere; }
.field__input { min-width: 0; max-width: 100%; }
select.field__input { width: 100%; text-overflow: ellipsis; }

/* Features: the World in three sets, and Working together (round six) */
.fx-world__sets { display: grid; gap: var(--s10); }
.fx-world__setlabel { margin: 0 0 var(--s4); font: 500 var(--t-micro)/1 var(--mono); letter-spacing: .1em; text-transform: uppercase; color: var(--on-night-muted); }
.fx-world__setlabel .num { color: var(--terracotta-on-night); margin-right: .4rem; }
.fx-rail__across { display: grid; gap: var(--s2) var(--s6); margin-top: var(--s4); padding: var(--s5); border-radius: var(--radius-lg); background: color-mix(in srgb, var(--terracotta) 6%, var(--surface)); box-shadow: 0 0 0 1px var(--line); }
@media (min-width: 900px) { .fx-rail__across { grid-template-columns: auto repeat(3, minmax(0, 1fr)); align-items: center; } .fx-rail__across .fx-rail__label { margin: 0; } }
.fx-rail__across a { display: grid; gap: .1rem; padding: .45rem .65rem; margin-inline: -.65rem; border-radius: 10px; text-decoration: none; color: var(--fg); }
.fx-rail__across a:hover { background: color-mix(in srgb, var(--terracotta) 9%, transparent); }
.fx-rail__across a b { font-family: var(--serif); font-size: 1.15rem; font-weight: 400; }
.fx-rail__across a span { font-size: .8125rem; line-height: 1.4; color: var(--fg-muted); }

.fx-together { padding-block: var(--section); scroll-margin-top: 110px; background: radial-gradient(50% 60% at 85% 20%, rgba(59,107,90,.10), transparent 70%), linear-gradient(180deg, var(--paper), var(--paper-warm)); }
.fx-together__head { display: grid; gap: var(--s4); max-width: 46rem; margin-bottom: var(--s12); }
.fx-together__live { display: grid; gap: var(--s10); align-items: center; }
@media (min-width: 1000px) { .fx-together__live { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: var(--s16); } }
.fx-together__copy { display: grid; gap: var(--s3); }
.fx-together__copy > p:not(.fx-together__step) { margin: 0 0 var(--s4); font-family: var(--serif); font-size: var(--t-prose); line-height: 1.6; color: var(--fg-2); }
.fx-together__copy b { color: var(--fg); font-weight: 600; font-family: var(--sans); font-size: .92em; }
.fx-together__step { margin: 0; font: 500 .8125rem/1.2 var(--sans); letter-spacing: .01em; color: var(--fg); }
.fx-together__step .num { display: inline-grid; place-items: center; width: 1.9rem; height: 1.9rem; margin-right: .55rem; border-radius: 50%; background: var(--ink); color: var(--paper); font-size: .7rem; }

.fx-session { position: relative; margin: 0; padding: 56px clamp(16px, 3vw, 32px) clamp(20px, 3vw, 36px); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line), 0 50px 90px -50px rgba(33,26,18,.5); }
.fx-session__bar { display: flex; align-items: center; gap: .6rem; padding: .6rem .8rem; margin-bottom: var(--s4); border-radius: 12px; background: var(--paper); box-shadow: 0 0 0 1px var(--line); font-size: .8125rem; }
.fx-session__dot { width: 8px; height: 8px; border-radius: 50%; background: #3b8a5a; box-shadow: 0 0 0 4px rgba(59,138,90,.15); }
html.motion .fx-session__dot { animation: fx-pulse 2.4s ease-in-out infinite; }
@keyframes fx-pulse { 50% { box-shadow: 0 0 0 7px rgba(59,138,90,0); } }
.fx-session__code { color: var(--fg-muted); font-size: .75rem; letter-spacing: .06em; }
.fx-session__faces { margin-left: auto; display: flex; }
.fx-session__faces i { display: grid; place-items: center; width: 26px; height: 26px; margin-left: -6px; border-radius: 50%; background: var(--c); color: #fff; font: 600 .7rem/1 var(--sans); font-style: normal; box-shadow: 0 0 0 2px var(--surface); }
.fx-session__page { position: relative; padding: clamp(18px, 3vw, 32px); border-radius: 10px; background: #fbf7ee; box-shadow: 0 0 0 1px rgba(33,26,18,.08); font-family: var(--serif); font-size: clamp(.98rem, .9rem + .3vw, 1.12rem); line-height: 1.75; color: #2a221a; }
.fx-session__page p { margin: 0 0 .8em; }
.fx-session__ch { font: 500 .68rem/1 var(--mono) !important; letter-spacing: .12em; text-transform: uppercase; color: var(--terracotta); margin-bottom: 1.1em !important; }
.fx-session__page del { color: #8a3a2c; text-decoration-color: rgba(166,58,43,.7); background: rgba(166,58,43,.08); }
.fx-session__page ins { text-decoration: none; color: #24493c; background: rgba(59,107,90,.14); box-shadow: 0 1.5px 0 rgba(59,107,90,.6); }
.fx-caret { position: relative; display: inline-block; width: 2px; height: 1.2em; margin-left: 1px; vertical-align: -.2em; background: var(--c); }
.fx-caret span { position: absolute; left: -1px; bottom: 100%; padding: 2px 6px; border-radius: 6px 6px 6px 0; background: var(--c); color: #fff; font: 600 .62rem/1.2 var(--sans); white-space: nowrap; }
html.motion .fx-caret { animation: fx-blink 1.1s steps(1) infinite; }
@keyframes fx-blink { 50% { background: transparent; } }
.fx-session__suggest { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin-top: .4rem; font: 400 .78rem/1 var(--sans); color: #5a4f43; }
.fx-session__suggest span { margin-right: auto; }
.fx-session__suggest b { padding: .45rem .75rem; border-radius: var(--pill); background: #24493c; color: #fff; font-weight: 500; }
.fx-session__suggest b.ghost { background: transparent; color: #2a221a; box-shadow: inset 0 0 0 1px rgba(33,26,18,.2); }
.fx-session__note { position: relative; z-index: 1; width: min(78%, 300px); margin: -14px 0 0 auto; padding: .8rem 1rem; border-radius: 12px 12px 4px 12px; background: var(--ink); color: var(--paper); font-size: .84rem; line-height: 1.45; box-shadow: 0 20px 40px -20px rgba(33,26,18,.6); transform: rotate(1deg); }
.fx-session__note b { font-size: .72rem; letter-spacing: .04em; color: #9fd0b9; }
.fx-session__note p { margin: .2rem 0 0; }

.fx-together__more { list-style: none; margin: var(--s16) 0 0; padding: 0; display: grid; gap: var(--s4); grid-template-columns: repeat(auto-fit, minmax(min(100%, 250px), 1fr)); }
.fx-together__more li { display: grid; align-content: start; gap: var(--s3); padding: var(--s6); border-radius: var(--radius-lg); background: var(--surface); box-shadow: 0 0 0 1px var(--line); scroll-margin-top: 120px; }
.fx-together__more h3 { font-size: 1.4rem; font-weight: 300; line-height: 1.15; }
.fx-together__more p:not(.label) { margin: 0; font-size: .9375rem; line-height: 1.55; color: var(--fg-2); }
@media (min-width: 1100px) { .fx-together__more { grid-template-columns: 1.4fr 1fr 1fr 1fr; } }
.fx-rr { display: grid; gap: .45rem; margin-top: var(--s2); font-size: .78rem; }
.fx-rr span { display: grid; grid-template-columns: 3.2rem 1fr; align-items: center; gap: .5rem; }
.fx-rr i { position: relative; height: 6px; border-radius: 3px; background: color-mix(in srgb, var(--ink) 9%, transparent); overflow: hidden; }
.fx-rr i::before { content: ''; position: absolute; inset: 0 auto 0 0; width: var(--w); border-radius: inherit; background: var(--terracotta); }
.fx-rr .off { grid-template-columns: 3.2rem auto 1fr; } .fx-rr .off i { display: none; } .fx-rr em { font-style: normal; color: var(--fg-muted); }
@media (min-width: 900px) {
  .fx-world__grid li:last-child:nth-child(3n + 2) { grid-column: span 2; }
  .fx-world__grid li:last-child:nth-child(3n + 1) { grid-column: span 3; }
}
.fx-cta-row { display: flex; flex-wrap: wrap; gap: var(--s3); }

.fx-storefront__mark { width: 30px; height: 30px; flex: none; border-radius: 50%; box-shadow: inset 0 0 0 1.5px var(--terracotta), inset 0 0 0 5px var(--surface), inset 0 0 0 6px color-mix(in srgb, var(--terracotta) 45%, transparent); }

/* ---------- Production wiring (Django) ----------
   Server-rendered prices: the currency switch is three links, a local figure
   carries a "billed as £…" line, and checkout.js fills each card's discount
   line and the code entry's status. */
.currency__opts a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 16px; border-radius: var(--pill); font: 500 .9375rem/1 var(--sans); color: var(--ink-2); text-decoration: none; transition: background-color var(--d-ink) var(--e-paper), color var(--d-ink) var(--e-paper); }
.currency__opts a:hover { color: var(--ink); }
.currency__opts a[aria-current="true"] { background: var(--ink); color: var(--paper); }
.pricing-currency { margin-right: .02em; }
.plans__terms .pricing-note { margin: 0; font-size: var(--t-small); color: var(--fg-muted); }
.plans__terms .pricing-reassurance { text-align: left !important; margin: 0 !important; }
.pricing-billed { margin: -.35rem 0 0; font: 400 var(--t-micro)/1.4 var(--mono); letter-spacing: .02em; color: var(--fg-muted); }
.plan__discount { margin: 0; font-size: .875rem; line-height: 1.45; color: var(--fg-2); }
.plan__discount.is-applied { color: var(--accent-text); font-weight: 500; }
.code__result { display: flex; align-items: baseline; gap: var(--s3); flex-wrap: wrap; margin-top: var(--s2); }
.code__status:empty { display: none; }
.code__status:focus { outline: none; }
.code__remove { font-size: .875rem; }
.doc__grid--single { max-width: 44rem; }
@media (min-width: 1000px) { .doc__grid.doc__grid--single { grid-template-columns: minmax(0, 44rem); } }
.platform .anchor { position: absolute; }
/* Legal documents opened from the mobile apps: no masthead, so less top room. */
.page-store-doc .doc__hero { padding-top: var(--s12); }
.footer--store { padding-block: var(--s10); border-top: 1px solid var(--line); }
.footer__store-nav { display: flex; flex-wrap: wrap; gap: var(--s5); margin-bottom: var(--s5); }
.footer__store-nav a { color: inherit; }
