:root {
  color-scheme: dark;
  --background: #0c0c0c;
  --surface: #171717;
  --surface-raised: #222222;
  --text: #fdfcfd;
  --muted: #969595;
  --border: #262626;
  --accent: #f5e838;
  --accent-bright: #fff5a1;
  --on-accent: #211f0e;
  --error: #ff6474;
  --accent-soft: #fff5bf;
  --accent-surface: #2b2810;
  --accent-border: #756c29;
  --accent-line: #3a361f;
  --radius-card: 24px;
  --radius-pill: 999px;
  --body-font: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display-font: "Arial Rounded MT Bold", "ArialRoundedMTBold", ui-rounded, -apple-system, BlinkMacSystemFont, sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 36px; }
body { margin: 0; background: var(--background); color: var(--text); font-family: var(--body-font); -webkit-font-smoothing: antialiased; }
body, button, a { -webkit-tap-highlight-color: transparent; }
img { display: block; max-width: 100%; object-fit: cover; }
a { color: inherit; text-decoration: none; }
button { font: inherit; cursor: pointer; }
svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
button, a, summary { touch-action: manipulation; }
:focus-visible { outline: 3px solid var(--accent-bright); outline-offset: 6px; }
.wrap { width: min(1320px, calc(100% - 96px)); margin-inline: auto; }
.skip-link { position: absolute; top: -100px; left: 24px; padding: 14px 20px; background: var(--accent); color: var(--on-accent); border-radius: 12px; z-index: 20; }
.skip-link:focus { top: 16px; }
.site-header { display: flex; align-items: center; justify-content: space-between; height: 108px; gap: 32px; }
.wordmark { display: inline-flex; align-items: center; gap: 10px; white-space: nowrap; font-family: var(--display-font); font-size: 38px; letter-spacing: -1.8px; font-weight: 800; }
.brand-icon { width: 42px; height: 42px; border-radius: 23%; flex-shrink: 0; }
.wordmark span { margin-left: -10px; color: var(--accent-bright); }
.site-header nav { display: flex; gap: 35px; padding-left: 50px; }
.site-header nav a { color: #bbb9bd; font-size: 14px; padding-block: 15px; transition: color 150ms; }
.site-header nav a:hover { color: var(--text); }
.header-cta { display: inline-flex; align-items: center; gap: 15px; border: 1px solid #383838; padding: 13px 20px; border-radius: var(--radius-pill); font-size: 13px; font-weight: 600; white-space: nowrap; }
.header-cta svg { width: 16px; height: 18px; }
.hero { height: 790px; position: relative; }
.hero-copy { text-align: center; padding-top: 100px; position: relative; z-index: 2; width: max-content; max-width: 100%; margin: auto; }
.hero-intro { font-size: 14px; display: flex; justify-content: center; align-items: center; gap: 9px; color: #c9c7cd; margin: 0 0 23px; }
.mini-star { font-size: 23px; color: var(--accent-bright); }
h1, h2, p { margin-top: 0; }
h1, h2 { font-family: var(--display-font); font-weight: 800; }
h1 { font-size: clamp(64px, 6.5vw, 92px); line-height: 1.04; letter-spacing: -4.5px; margin-bottom: 28px; }
.hero-description { color: #aaa7ad; font-size: 17px; line-height: 1.7; margin-bottom: 30px; }
.button { min-height: 56px; padding: 0 26px; display: inline-flex; align-items: center; justify-content: center; gap: 18px; border-radius: var(--radius-pill); font-size: 15px; font-weight: 650; transition: background-color 150ms, transform 150ms; }
.button svg { width: 18px; height: 18px; }
.button-primary { background: var(--accent); color: var(--on-accent); }
.button-primary:hover { background: var(--accent-bright); transform: translateY(-2px); }
.hero-note { font-size: 12px; color: var(--muted); margin: 18px 0 0; }
.hero-cast { position: absolute; inset: 0; pointer-events: none; }
.portrait { position: absolute; overflow: hidden; border-radius: 25px; box-shadow: 0 16px 60px #00000038; }
.portrait img { width: 100%; height: 100%; }
.portrait::after { position: absolute; inset: 55% 0 0; content: ''; background: linear-gradient(transparent, #00000099); }
.portrait > span { position: absolute; left: 15px; bottom: 15px; z-index: 1; font-size: 14px; font-weight: 650; display: flex; align-items: center; gap: 7px; }
i { font-style: normal; font-size: 9px; font-weight: 500; border: 1px solid #ffffff44; border-radius: 5px; padding: 1px 4px; line-height: 1.4; }
.portrait-nina { width: 182px; height: 239px; left: 12px; top: 59px; transform: rotate(-11deg); }
.portrait-nina img { object-position: 38% center; }
.portrait-owen { width: 163px; height: 204px; right: 27px; top: 18px; transform: rotate(9deg); }
.portrait-june { width: 185px; height: 235px; left: 140px; top: 435px; transform: rotate(7deg); }
.portrait-andre { width: 205px; height: 248px; right: 65px; top: 381px; transform: rotate(-8deg); }
.floating-note { position: absolute; display: flex; align-items: center; gap: 9px; font-size: 12px; white-space: nowrap; background: var(--surface-raised); border: 1px solid #343434; padding: 14px 17px; border-radius: 14px; box-shadow: 0 8px 25px #00000026; }
.floating-note span { color: var(--accent-soft); font-size: 22px; }
.note-one { left: 2px; top: 333px; transform: rotate(-5deg); }
.note-two { right: 3px; top: 311px; transform: rotate(5deg); }
.hero-spark { position: absolute; fill: var(--accent-bright); stroke: none; }
.spark-one { width: 35px; height: 35px; left: 24%; top: 50px; transform: rotate(10deg); }
.spark-two { width: 50px; height: 50px; right: 27%; top: 571px; transform: rotate(-10deg); }
.hero-bottom { position: absolute; inset: auto 0 0; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding-block: 28px; color: var(--muted); font-size: 12px; }
.scroll-cue { font-size: 22px; }
.section { padding-block: 130px; }
.experience { display: grid; grid-template-columns: 0.85fr 1.15fr; align-items: center; gap: 100px; }
.section-icon { display: inline-flex; margin-bottom: 23px; color: var(--accent-soft); }
.section-icon svg { height: 28px; width: 28px; }
h2 { font-size: clamp(38px, 4.3vw, 58px); line-height: 1.07; letter-spacing: -2.5px; margin-bottom: 25px; }
.section-copy > p, .characters-header > p { color: #aaa7ad; font-size: 16px; line-height: 1.8; max-width: 375px; }
.moment-options { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; margin-top: 30px; }
.moment-option { display: inline-flex; align-items: center; gap: 12px; min-height: 47px; color: #bbb8c0; border: 1px solid transparent; background: transparent; padding: 10px 17px; margin-left: -17px; border-radius: 12px; font-size: 14px; transition: background 150ms, border-color 150ms; }
.moment-option:hover { background: var(--surface); }
.moment-option.is-active { color: white; background: var(--accent-surface); border-color: var(--accent-border); }
.moment-option span { font-size: 19px; }
.section-copy > .example-note { color: var(--muted); font-size: 11px; line-height: 1.6; margin: 20px 0 0; }
.moment-stage { position: relative; padding: 0 85px 70px 10px; }
.post-preview { background: var(--surface); overflow: hidden; border: 1px solid #343434; border-radius: 22px; transform: rotate(-3deg); box-shadow: 0 24px 80px #00000050; }
.post-top { display: flex; align-items: center; gap: 10px; padding: 14px; }
.post-top strong { font-size: 12px; display: block; font-weight: 650; }
.post-top small { color: var(--muted); display: block; margin-top: 3px; font-size: 10px; }
.you-avatar { width: 33px; height: 33px; display: grid; place-items: center; background: var(--accent); font-family: var(--display-font); border-radius: 50%; font-size: 19px; }
.post-menu { margin-left: auto; font-size: 13px; letter-spacing: 1px; }
.post-photo { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; }
.post-actions { padding: 14px 14px 8px; display: flex; gap: 13px; }
.post-actions svg { width: 20px; height: 20px; }
.post-preview > p { font-size: 12px; line-height: 1.5; margin: 0 14px 10px; }
.demo-label { display: block; color: var(--muted); font-size: 9px; margin: 0 14px 16px; }
.reply { position: absolute; display: flex; align-items: flex-start; gap: 10px; background: #252525; padding: 17px; border: 1px solid #414141; border-radius: 17px; width: 315px; box-shadow: 0 12px 30px #00000040; }
.reply > img { width: 38px; height: 38px; border-radius: 50%; }
.reply > div > span { display: flex; align-items: center; gap: 7px; }
.reply strong { font-size: 12px; }
.reply i { color: #c8c5cb; }
.reply p { margin: 6px 0 0; font-size: 12px; line-height: 1.55; }
.reply-one { right: -15px; top: 290px; transform: rotate(3deg); }
.reply-two { right: 13px; top: 432px; transform: rotate(-2deg); }
.characters { background: #111111; padding-bottom: 60px; }
.characters-header { display: flex; align-items: flex-end; justify-content: space-between; gap: 64px; margin-bottom: 54px; }
.characters-header h2 { margin-bottom: 0; }
.characters-header > p { margin-bottom: 3px; max-width: 385px; }
.character-track { display: flex; gap: 20px; overflow-x: auto; scrollbar-width: thin; scrollbar-color: var(--accent-border) transparent; padding: 12px max(48px, calc((100vw - 1320px) / 2)) 26px; scroll-snap-type: x mandatory; }
.character-card { position: relative; flex: 1 0 255px; max-width: 400px; height: 360px; overflow: hidden; border-radius: 18px; scroll-snap-align: center; }
.character-card > img { width: 100%; height: 100%; transition: transform 350ms; }
.character-card:hover > img { transform: scale(1.025); }
.character-card::after { position: absolute; content: ''; inset: 45% 0 0; background: linear-gradient(transparent, #000000d9); }
.character-card > div { position: absolute; bottom: 23px; left: 23px; right: 12px; z-index: 1; }
.character-name { font-size: 21px; font-weight: 650; display: flex; align-items: center; gap: 8px; letter-spacing: -0.5px; }
.character-card p { font-size: 12px; line-height: 1.5; color: #e0dedf; margin: 7px 0 0; }
.character-footnote { display: flex; justify-content: space-between; gap: 20px; color: var(--muted); font-size: 11px; margin-top: 4px; }
.drag-hint { display: none; }
.your-space { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 130px; }
.your-space > * { min-width: 0; }
.space-art { width: 100%; max-width: 470px; aspect-ratio: 1; position: relative; }
.orbit { position: absolute; border: 1px solid var(--accent-line); border-radius: 50%; }
.orbit-outer { inset: 5%; }
.orbit-inner { inset: 22%; border-style: dashed; border-color: var(--accent-border); }
.world-center { position: absolute; inset: 36%; background: var(--accent); color: var(--on-accent); border-radius: 36%; display: grid; place-items: center; font-size: 38px; letter-spacing: -2px; font-family: var(--display-font); transform: rotate(-7deg); }
.world-center span { position: absolute; right: -8px; top: -12px; background: var(--accent); color: var(--on-accent); height: 34px; width: 34px; font-size: 19px; display: grid; place-items: center; border-radius: 50%; border: 5px solid var(--background); box-sizing: content-box; }
.orbit-person { width: 19%; height: 19%; border: 6px solid var(--background); border-radius: 50%; position: absolute; }
.person-a { left: 9%; top: 12%; }
.person-b { right: 0%; top: 38%; }
.person-c { left: 10%; bottom: 10%; }
.person-d { right: 15%; bottom: 9%; }
.world-star { position: absolute; color: var(--accent-soft); font-size: 34px; left: 63%; top: 10%; }
.section-copy > .space-note { font-size: 14px; color: var(--text); margin-top: 25px; }
.faq { border-top: 1px solid var(--border); display: grid; grid-template-columns: 1fr 1.2fr; gap: 100px; padding-block: 100px; }
.faq h2 { font-size: 43px; }
.faq-list { padding-top: 0; }
details { border-bottom: 1px solid var(--border); }
details:first-child { border-top: 1px solid var(--border); }
summary { list-style: none; cursor: pointer; min-height: 77px; display: flex; align-items: center; justify-content: space-between; font-size: 15px; gap: 24px; }
summary::-webkit-details-marker { display: none; }
summary span { font-size: 26px; color: var(--muted); font-weight: 300; transition: transform 180ms; }
details[open] summary span { transform: rotate(45deg); }
details p { color: #aaa7ad; font-size: 14px; line-height: 1.8; margin-bottom: 24px; padding-right: 30px; }
.closing { padding: 92px 0 120px; text-align: center; }
.closing-flower { color: var(--accent-bright); font-size: 56px; display: block; margin-bottom: 25px; }
.closing h2 { font-size: clamp(50px, 6vw, 80px); line-height: 1.04; letter-spacing: -3.5px; margin-bottom: 22px; }
.closing p { color: var(--muted); font-size: 16px; margin-bottom: 29px; }
.availability-label { display: inline-flex; align-items: center; justify-content: center; gap: 12px; border: 1px solid #3f3f3f; min-height: 55px; border-radius: var(--radius-pill); padding: 0 24px; font-size: 15px; }
.availability-label svg { width: 19px; height: 21px; }
.site-footer { border-top: 1px solid var(--border); display: flex; align-items: center; gap: 30px; padding-block: 35px; }
.site-footer .wordmark { font-size: 30px; }
.site-footer p { margin: 0; color: var(--muted); font-size: 12px; }
.footer-links { margin-left: auto; display: flex; flex-wrap: wrap; gap: 4px 22px; }
.footer-links a { color: #bebbbf; font-size: 12px; padding-block: 12px; }
.footer-links a:hover, .footer-links a[aria-current="page"] { color: var(--text); }
.preview-label { color: var(--muted); font-size: 10px; border-left: 1px solid var(--border); padding-left: 20px; }
.noscript-note { padding: 20px; text-align: center; color: var(--muted); font-size: 13px; }
/* Legal pages (/privacy, /terms): one readable column on the same canvas. */
.legal { max-width: 760px; padding-block: 40px 110px; color: #cfcdd2; font-size: 16px; line-height: 1.75; }
.legal h1 { font-size: clamp(44px, 5vw, 64px); letter-spacing: -2.5px; margin-bottom: 14px; color: var(--text); }
.legal h2 { font-size: 24px; letter-spacing: -0.6px; line-height: 1.25; margin: 46px 0 12px; color: var(--text); }
.legal p { margin: 0 0 14px; }
.legal ul { margin: 0 0 14px; padding-left: 22px; }
.legal li { margin-bottom: 9px; }
.legal li::marker { color: var(--accent-bright); }
.legal strong { color: var(--text); font-weight: 650; }
.legal a { color: var(--accent-soft); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.legal a:hover { color: var(--text); }
.legal .legal-version { color: var(--muted); font-size: 13px; margin-bottom: 40px; }
.legal .legal-lead { color: var(--text); font-weight: 650; margin: 18px 0 8px; }
@media (min-width: 1600px) { .hero { height: 830px; } .hero-copy { padding-top: 125px; } }
@media (max-width: 1200px) {
  .wrap { width: calc(100% - 64px); }
  .site-header nav { padding-left: 0; gap: 24px; }
  .hero { height: 770px; }
  h1 { font-size: 76px; }
  .portrait-nina { width: 145px; height: 195px; left: 0; top: 45px; }
  .portrait-owen { width: 137px; height: 174px; right: 12px; top: 22px; }
  .portrait-june { left: 30px; top: 475px; width: 163px; height: 195px; }
  .portrait-andre { right: 20px; top: 448px; width: 166px; height: 208px; }
  .floating-note { font-size: 10px; padding: 10px 13px; }
  .note-one { top: 330px; left: -14px; max-width: 172px; white-space: normal; line-height: 1.4; }
  .note-two { top: 345px; right: -10px; max-width: 150px; white-space: normal; line-height: 1.4; }
  .spark-two { right: 25%; top: 594px; }
  .section { padding-block: 95px; }
  .experience { gap: 65px; }
  .moment-stage { padding-right: 35px; }
  .reply { width: 277px; padding: 14px; }
  .reply-one { top: 255px; right: -5px; }
  .reply-two { top: 385px; right: -10px; }
  .character-track { padding-inline: 32px; }
  .character-card { height: 315px; flex-basis: 230px; }
  .drag-hint { display: block; }
  .your-space { gap: 75px; }
  .faq { gap: 55px; }
}
@media (max-width: 900px) {
  .site-header { height: 88px; }
  .site-header nav { display: none; }
  .hero-copy { padding-top: 70px; }
  h1 { font-size: 72px; }
  .hero { height: 920px; }
  .portrait-nina { top: 535px; left: 1%; width: 145px; height: 190px; }
  .portrait-june { top: 610px; left: 28%; width: 142px; height: 178px; }
  .portrait-owen { top: 516px; right: 23%; width: 140px; height: 175px; }
  .portrait-andre { top: 620px; right: 1%; width: 149px; height: 180px; }
  .note-one { top: 752px; left: 0; max-width: none; }
  .note-two { top: 487px; right: 0; max-width: none; }
  .spark-one { left: 13%; top: 448px; width: 25px; height: 25px; }
  .spark-two { right: 24%; top: 775px; width: 30px; height: 30px; }
  .experience { grid-template-columns: 1fr 1fr; gap: 35px; }
  h2 { font-size: 43px; }
  .section-copy > p { font-size: 15px; }
  .moment-stage { padding-right: 0; padding-bottom: 145px; }
  .reply-one { top: 240px; right: -5px; width: 270px; }
  .reply-two { top: 358px; right: -5px; width: 270px; }
  .characters-header { gap: 30px; }
  .characters-header > p { max-width: 330px; font-size: 15px; }
  .your-space { gap: 45px; }
  .world-center { font-size: 28px; }
  .faq { grid-template-columns: 1fr; gap: 20px; }
  .faq h2 br { display: none; }
}
@media (max-width: 600px) {
  .legal { font-size: 15px; padding-block: 16px 72px; }
  .legal h1 { letter-spacing: -1.6px; }
  .legal h2 { font-size: 21px; margin-top: 38px; }
  .wrap { width: calc(100% - 40px); }
  .site-header { height: 85px; gap: 15px; }
  .wordmark { font-size: clamp(20px, 6vw, 28px); gap: 7px; }
  .wordmark span { margin-left: -7px; }
  .brand-icon { width: 30px; height: 30px; }
  .header-cta { font-size: 11px; padding: 10px 13px; gap: 8px; }
  .header-cta svg { height: 16px; width: 15px; }
  .hero { height: 834px; }
  .hero-copy { padding-top: 45px; }
  .hero-intro { font-size: 12px; margin-bottom: 21px; }
  .mini-star { font-size: 19px; }
  h1 { font-size: clamp(44px, 12.9vw, 70px); line-height: 1.06; letter-spacing: -2.9px; margin-bottom: 22px; }
  .hero-description { font-size: 13px; line-height: 1.8; margin-bottom: 24px; }
  .button { min-height: 53px; font-size: 14px; gap: 15px; padding-inline: 24px; }
  .hero-note { font-size: 10px; margin-top: 16px; }
  .portrait { border-radius: 17px; }
  .portrait > span { left: 11px; bottom: 11px; font-size: 11px; }
  .portrait-nina { top: 461px; width: 104px; height: 146px; left: 0; }
  .portrait-june { top: 571px; width: 104px; height: 143px; left: 30%; }
  .portrait-owen { top: 435px; width: 103px; height: 135px; right: 20%; }
  .portrait-andre { top: 574px; width: 110px; height: 151px; right: 0; }
  .floating-note { border-radius: 10px; font-size: 8px; gap: 6px; padding: 8px 10px; }
  .floating-note span { font-size: 15px; }
  .note-one { top: 645px; left: -1px; width: 128px; }
  .note-two { top: 410px; right: -2px; max-width: 144px; transform: rotate(5deg); }
  .spark-one { top: 416px; left: 11%; width: 25px; height: 25px; }
  .spark-two { top: 735px; right: 42%; width: 22px; height: 22px; }
  .hero-bottom { font-size: 9px; padding-block: 20px; }
  .scroll-cue { font-size: 19px; }
  .section { padding-block: 73px; }
  h2 { font-size: 42px; letter-spacing: -2px; margin-bottom: 22px; }
  .section-icon { margin-bottom: 18px; }
  .section-icon svg { height: 24px; width: 24px; }
  .experience { grid-template-columns: 1fr; gap: 48px; }
  .experience h2 br:last-child { display: none; }
  .section-copy > p, .characters-header > p { max-width: 100%; font-size: 14px; }
  .moment-options { flex-direction: row; flex-wrap: wrap; gap: 7px; margin-top: 24px; }
  .moment-option { margin-left: 0; font-size: 11px; min-height: 43px; padding: 8px 10px; gap: 6px; background: var(--surface); border-color: var(--border); }
  .moment-option span { font-size: 16px; }
  .section-copy > .example-note { margin-top: 14px; font-size: 10px; }
  .moment-stage { width: 100%; max-width: 390px; margin-inline: auto; padding: 0 28px 120px 6px; }
  .post-preview { transform: rotate(-2deg); }
  .reply { width: 266px; padding: 13px; gap: 9px; }
  .reply p { font-size: 11px; }
  .reply-one { top: 265px; right: -4px; }
  .reply-two { top: 375px; right: 5px; }
  .characters-header { display: block; margin-bottom: 30px; }
  .characters-header h2 { margin-bottom: 24px; }
  .character-track { padding-inline: 20px; gap: 13px; padding-bottom: 23px; }
  .character-card { flex: 0 0 235px; height: 320px; }
  .character-name { font-size: 19px; }
  .character-footnote { font-size: 9px; }
  .drag-hint { white-space: nowrap; }
  .character-footnote > span:first-child { max-width: 145px; line-height: 1.5; }
  .your-space { grid-template-columns: 1fr; gap: 28px; }
  .your-space .section-copy { order: -1; }
  .space-art { width: 100%; max-width: 360px; margin-inline: auto; }
  .world-center { font-size: 33px; }
  .faq { padding-block: 64px; gap: 12px; }
  .faq h2 { font-size: 36px; letter-spacing: -1.8px; }
  .faq h2 br { display: block; }
  summary { min-height: 74px; font-size: 13px; }
  details p { font-size: 13px; padding-right: 12px; }
  .closing { padding: 50px 0 85px; }
  .closing-flower { font-size: 44px; }
  .closing h2 { font-size: 48px; letter-spacing: -2.5px; }
  .closing p { font-size: 13px; }
  .availability-label { font-size: 13px; min-height: 50px; }
  .site-footer { display: grid; grid-template-columns: 1fr 1fr; gap: 9px 15px; padding-block: 26px; }
  .site-footer .wordmark { font-size: clamp(23px, 6.7vw, 29px); }
  .site-footer > p { grid-column: 1; grid-row: 2; font-size: 10px; }
  .footer-links { grid-column: 2; grid-row: 1; justify-content: flex-end; gap: 0 12px; }
  .footer-links a { font-size: 10px; padding-block: 6px; }
  .preview-label { grid-column: 2; grid-row: 2; text-align: right; border: 0; font-size: 9px; padding: 0; }
}
@media (max-width: 360px) {
  .hero { height: 815px; }
  .hero-description { font-size: 12px; }
  .portrait-nina { width: 96px; left: -4px; }
  .portrait-owen { right: 17%; width: 94px; }
  .portrait-june { left: 22%; width: 96px; }
  .portrait-andre { width: 100px; right: -2px; }
  .moment-stage { padding-right: 17px; padding-bottom: 148px; }
  .reply-one { top: 235px; }
  .reply-two { top: 348px; }
  .character-footnote { gap: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
}

@media (max-width: 360px) {
  .site-header { gap: 10px; }
  .brand-icon { width: 26px; height: 26px; }
  .header-cta { font-size: 10px; padding-inline: 10px; gap: 6px; }
}

/* Search landing pages extend the existing character-led design. */
.character-name:hover, .character-footnote a:hover { text-decoration: underline; }
.editorial { padding-block: 60px 100px; max-width: 1120px; }
.editorial > h1 { max-width: 950px; font-size: clamp(42px, 5.4vw, 72px); letter-spacing: -2.5px; }
.editorial p { max-width: 70ch; color: var(--muted); line-height: 1.8; }
.editorial .editorial-lead { font-size: 20px; color: var(--text); max-width: 65ch; }
.editorial h2 { font-size: 32px; letter-spacing: -1px; margin-top: 48px; }
.editorial .text-link, .source-note a { color: var(--text); text-decoration: underline; text-underline-offset: 4px; }
.cast-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 48px 32px; margin-block: 48px; }
.cast-grid img { width: 100%; aspect-ratio: 1; border-radius: var(--radius-card); }
.cast-grid h2 { margin-block: 20px 8px; }
.cast-grid a:hover h2 { text-decoration: underline; }
.character-story { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 56px; margin-top: 32px; }
.character-story figure { margin: 0; }
.character-story figure img { border-radius: var(--radius-card); width: 100%; height: auto; }
.character-story figcaption { color: var(--muted); font-size: 12px; line-height: 1.6; margin-top: 12px; }
.character-story h1 { font-size: clamp(40px, 4.2vw, 60px); letter-spacing: -2px; }
.character-story h1 i { vertical-align: middle; font-family: var(--body-font); letter-spacing: normal; }
.sample-exchange { border-left: 2px solid var(--accent); padding-left: 24px; margin-block: 30px; }
.sample-exchange strong { color: var(--text); }
.sample-exchange blockquote { margin: 20px 0 0; }
.sample-exchange blockquote p { color: var(--text); }
.sample-exchange cite { color: var(--muted); font-size: 12px; font-style: normal; }
.comparison-scroll { overflow-x: auto; margin-block: 40px 20px; }
.comparison-scroll table { border-collapse: collapse; width: 100%; min-width: 640px; text-align: left; line-height: 1.7; }
.comparison-scroll caption { text-align: left; color: var(--muted); font-size: 13px; margin-bottom: 16px; }
.comparison-scroll th, .comparison-scroll td { border-bottom: 1px solid var(--border); padding: 18px 20px 18px 0; vertical-align: top; }
.comparison-scroll tbody th { width: 20%; font-weight: 500; }
.comparison-scroll td { width: 40%; color: var(--muted); }
.comparison-scroll thead th { color: var(--accent-bright); }
.editorial .source-note { font-size: 13px; }
/* Topic pages pair one character-led opening with a quiet reading column. */
.search-hero { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); align-items: center; gap: 64px; margin-block: 32px 72px; }
.search-hero h1 { font-size: clamp(42px, 5vw, 68px); letter-spacing: -2.5px; }
.search-hero figure { margin: 0; }
.search-hero img { width: 100%; height: auto; border-radius: var(--radius-card); }
.search-hero figcaption, .search-page .search-caption { font-size: 12px; line-height: 1.6; color: var(--muted); margin-top: 14px; }
.search-reading { max-width: 760px; margin-inline: auto; }
.search-reading > .editorial-lead { font-size: 19px; }
.search-reading a:not(.button), .guide-links a { text-decoration: underline; text-underline-offset: 4px; color: var(--text); }
.reading-steps { padding-left: 24px; color: var(--muted); line-height: 1.8; }
.reading-steps li { padding-left: 8px; margin-block: 20px; }
.reading-steps strong { color: var(--text); }
.writing-brief { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 16px 24px; padding-block: 24px; border-block: 1px solid var(--border); line-height: 1.8; }
.writing-brief dt { font-weight: 600; }
.writing-brief dd { margin: 0; color: var(--muted); }
.related-reading { border-top: 1px solid var(--border); margin-top: 48px; }
.related-reading ul { list-style: none; padding-left: 0; line-height: 1.7; }
.related-reading li { margin-block: 16px; }
.explore-section { max-width: 1120px; }
.explore-section > .editorial-lead { max-width: 65ch; color: var(--muted); line-height: 1.8; }
.explore-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; margin-block: 32px; }
.explore-links > a { border-top: 1px solid var(--border); padding-block: 28px; }
.explore-links h3 { font-size: 23px; letter-spacing: -.5px; margin: 0 0 10px; }
.explore-links a:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
.explore-links p { margin: 0; max-width: 45ch; color: var(--muted); line-height: 1.8; }
.guide-links { display: flex; flex-wrap: wrap; gap: 20px 32px; font-size: 14px; line-height: 1.8; }
.tool-intro { max-width: 850px; margin-block: 40px 48px; }
.tool-intro h1 { font-size: clamp(40px, 5vw, 68px); letter-spacing: -2px; }
.character-tool { margin-block: 40px 72px; padding: clamp(20px, 4vw, 44px); border: 1px solid var(--border); border-radius: var(--radius-card); background: var(--surface); }
.character-tool > h2 { margin-top: 0; }
.tool-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; margin-block: 28px; }
.character-tool label { display: grid; gap: 10px; font-size: 15px; line-height: 1.6; }
.character-tool label span { color: var(--muted); font-size: 12px; }
.character-tool input, .character-tool select, .character-tool textarea { font: inherit; color: var(--text); background: var(--background); border: 1px solid #555; border-radius: 10px; padding: 12px; width: 100%; min-width: 0; }
.character-tool input, .character-tool select { min-height: 48px; }
.character-tool textarea { line-height: 1.8; resize: vertical; min-height: 220px; }
.character-tool :is(input, select, textarea):focus-visible { outline: 3px solid var(--accent-bright); outline-offset: 3px; }
.tool-result { margin-top: 32px; display: grid; gap: 12px; }
.tool-copy { justify-self: start; border: 1px solid #777; border-radius: var(--radius-pill); padding: 12px 20px; background: transparent; color: var(--text); }
.character-tool button:disabled { opacity: .5; cursor: default; }
.character-tool .tool-status { margin: 0; font-size: 14px; min-height: 25px; }
@media (max-width: 700px) {
  .editorial { padding-block: 32px 72px; }
  .editorial .editorial-lead { font-size: 17px; }
  .editorial h2 { font-size: 28px; }
  .cast-grid { grid-template-columns: 1fr; gap: 24px; }
  .character-story { grid-template-columns: 1fr; gap: 32px; }
  .character-story figure { max-width: 440px; }
  .search-hero { grid-template-columns: 1fr; gap: 32px; margin-bottom: 40px; }
  .search-hero figure { max-width: 400px; }
  .search-reading > .editorial-lead { font-size: 17px; }
  .writing-brief { grid-template-columns: 1fr; gap: 4px; }
  .writing-brief dd { margin-bottom: 16px; }
  .explore-links { grid-template-columns: 1fr; }
  .explore-links h3 { font-size: 21px; }
  .tool-fields { grid-template-columns: 1fr; gap: 20px; }
}
