:root { --font-ui: 'Nocturne Sans', sans-serif; --font-editorial: 'Nocturne Serif', serif; --font-section: var(--font-editorial); --control-radius: 3px; }
.surface { max-width: 1240px; border-radius: 20px; }
.nocturne-entry { grid-template-columns: 1fr 1fr; }
.entry-visual { min-height: min(640px, calc(100svh - 34px)); }
.invitation { padding: 64px clamp(32px, 4.5vw, 64px); }
.invitation h1 { font-size: clamp(34px, 3.6vw, 46px); font-weight: 600; line-height: 1.5; letter-spacing: .025em; margin-top: 0; }
.title-edition { display: block; font-size: .61em; letter-spacing: .035em; margin-top: 8px; }
.invitation-line { font-size: 23px; line-height: 1.75; letter-spacing: .015em; margin-top: 30px; }
.invitation-copy { font-size: 15px; line-height: 1.95; margin-top: 24px; max-width: 29em; }
.invitation .primary { margin-top: 32px; }
.entry-meta { font-size: 13px; margin-top: 18px; letter-spacing: .01em; }
.question-layout { padding-top: 28px; padding-bottom: 40px; }
.question-layout:before { height: 86px; }
.question-body { margin-top: 56px; }
.question-body h1 { font-size: clamp(24px, 2.55vw, 29px); line-height: 1.7; }
.question-context { font-size: 12px; letter-spacing: .035em; }
.option { border-radius: 4px; }
.option-label { font-size: 15px; line-height: 1.8; }
.letter-photo { min-height: 340px; }
.letter-title { padding: 48px max(40px, calc((100% - 740px) / 2)) 40px; }
.letter-title h1 { font-size: clamp(34px, 4.5vw, 54px); font-weight: 500; letter-spacing: .025em; line-height: 1.5; }
.eyebrow { font-size: 12px; letter-spacing: .035em; }
.type-english { font-family: var(--font-ui); font-size: 13px; letter-spacing: .06em; }
.love-quote { font-size: 25px; line-height: 1.85; letter-spacing: .015em; padding-top: 36px; }
.letter-body { max-width: 820px; padding: 0 40px; }
.identity-intro { font-size: 15px; line-height: 1.95; margin-top: 28px; }
.type-tags { font-size: 13px; letter-spacing: .015em; }
.letter-section { padding-top: 32px; margin-top: 36px; }
.letter-section h2 { font-size: 22px; font-weight: 500; letter-spacing: .01em; margin-bottom: 18px; }
.letter-section p { font-size: 15px; line-height: 1.95; }
.attraction-scene { padding: 28px 32px; border-radius: 2px; }
.attraction-scene h2 { font-family: var(--font-ui); font-size: 16px; font-weight: 500; }
.attraction-scene p { font-family: var(--font-editorial); font-size: 17px; line-height: 2; }
.reason-list { gap: 24px; }
.reason-list h3 { font-family: var(--font-ui); font-size: 16px; font-weight: 500; margin-bottom: 8px; }
.type-preview { border-radius: 3px; background: #ebe5ee; padding: 22px; }
.type-preview summary span { font-size: 19px; font-weight: 500; }
.type-preview summary small { font-size: 12px; }
.type-preview p { font-size: 14px; line-height: 1.95; }
.type-preview .type-phrase { font-size: 16px; }
.preference-fold>summary { font-family: var(--font-ui); font-size: 14px; }
.preference-row { font-size: 14px; gap: 20px; }
.nocturne-result>.actions, .nocturne-result>.result-links, .nocturne-result>.notice { max-width: 740px; margin-left: auto; margin-right: auto; }
@media (max-width: 850px) and (min-width: 621px) {
  .invitation { padding: 48px 32px; }
  .invitation h1 { font-size: 34px; }
  .nocturne-result>.actions, .nocturne-result>.result-links, .nocturne-result>.notice { margin-left: 40px; margin-right: 40px; }
}
@media (max-width: 620px) {
  .surface { border-radius: 16px; }
  .entry-visual { min-height: 0; height: 240px; }
  .invitation { padding: 30px 24px 36px; }
  .invitation h1 { font-size: 32px; margin-top: 0; }
  .title-edition { display: block; font-size: 20px; margin-top: 6px; }
  .invitation-line { font-size: 22px; margin-top: 24px; }
  .invitation-copy { font-size: 14px; line-height: 1.95; margin-top: 22px; }
  .entry-meta { font-size: 12px; margin-top: 16px; }
  .question-layout { padding: 22px 24px 34px; }
  .question-layout:before { height: 80px; }
  .question-body { margin-top: 48px; }
  .question-body h1 { font-size: 23px; line-height: 1.65; }
  .option-label { font-size: 14px; }
  .letter-photo { min-height: 280px; }
  .letter-title { padding: 36px 24px 30px; }
  .letter-title h1 { font-size: 33px; letter-spacing: .025em; }
  .type-english { font-size: 12px; letter-spacing: .035em; }
  .love-quote { font-size: 21px; padding: 28px 24px 0; }
  .letter-body { padding-left: 24px; padding-right: 24px; }
  .identity-intro, .letter-section p { font-size: 14px; line-height: 1.95; }
  .letter-section { margin-top: 28px; padding-top: 26px; }
  .letter-section h2 { font-size: 20px; }
  .attraction-scene { padding: 24px 20px; }
  .attraction-scene p { font-size: 16px; line-height: 2; }
  .type-tags { font-size: 12px; }
  .type-preview p { font-size: 14px; }
  .preference-row { grid-template-columns: 100px 1fr; gap: 16px; font-size: 13px; }
  .nocturne-result>.actions, .nocturne-result>.result-links, .nocturne-result>.notice { margin-left: 24px; margin-right: 24px; }
}
@media (max-width: 360px) {
  .invitation h1 { font-size: 30px; }
  .letter-title h1 { font-size: 30px; }
  .preference-row { grid-template-columns: 1fr; gap: 5px; }
}
