/* Allure — présence, lumière et portraits authentiques. */
:root { --paper:#f8f1e7; --card:#fffaf2; --wine:#54283b; --wine-dark:#2d1927; --rose:#e6bdb0; --copper:#c8a17f; --muted:#716258; --rule:#dccab6 }
body { font-size:16px; background:radial-gradient(ellipse at 0 45%,#e7d3bc45,transparent 55%),var(--paper) }
.demo-bar { background:#251922; color:#e2cfc0; font-size:9px }
.site-header { min-height:100px; background:#321b2a }
.wordmark { font-size:34px; gap:14px; letter-spacing:-1.1px; line-height:1 }
.wordmark small { display:block; margin:8px 0 0 2px; color:#d4b4a0; font:8px/1.2 var(--sans); letter-spacing:.12em }
.site-header nav { font-size:12px }
.site-header:after { background:#dfb78c35 }
.hero { padding-top:58px; padding-bottom:68px; grid-template-columns:1.15fr 1fr; gap:8%; background:#321b2a }
.hero:before { inset:0; background:radial-gradient(ellipse at 12% 40%,#9c526650,transparent 57%),radial-gradient(ellipse at 78% 15%,#d8a77f25,transparent 48%),linear-gradient(125deg,#2d1829,#542739 70%,#301c2b) }
.hero:after { inset:0; width:auto; height:auto; border:0; border-radius:0; transform:none; opacity:.1; background:linear-gradient(116deg,transparent 10%,#f2d0ac13 34%,transparent 54%,#e5ac8720 76%,transparent 85%); pointer-events:none }
.hero-copy { position:relative; z-index:2 }
.hero .eyebrow { font-size:9px; letter-spacing:.16em; color:#e4c3ad }
.hero h1 { font-size:clamp(60px,6.45vw,94px); letter-spacing:-3.3px; line-height:1.06; margin:28px 0 29px }
.hero h1 em { color:#e7bdb0 }
.hero-description { max-width:400px; color:#ead8ca; font-size:16px; line-height:1.85; margin-bottom:29px }
.hero-actions { display:flex; align-items:center; flex-wrap:wrap; gap:17px 26px }
.hero-actions .button { font-size:13px; min-height:56px; padding:16px 23px; box-shadow:0 9px 30px #190c1829 }
.hero-secondary { display:inline-flex; align-items:center; gap:14px; min-height:44px; padding:7px 0; color:#ead0bb; border-bottom:1px solid #b98b6b; text-decoration:none; font-size:11px }
.hero-secondary:hover { color:#fff6e8 }
.hero-signature { font-size:11px; line-height:1.8; color:#dec2ae; margin-top:25px }
.hero-signature strong { color:#fff2df }
.hero-art { z-index:1; max-width:480px; margin:0; padding:0 21px 0 0; transform:none }
.portrait-halo { position:absolute; z-index:-1; inset:-18px -3px 45px 20px; border:1px solid #d8ad8b50; border-radius:250px 250px 8px 8px; transform:rotate(5deg); background:radial-gradient(ellipse at 30% 20%,#dcaa7f26,transparent 65%); box-shadow:0 0 95px #d9a07417 }
.portrait-frame { position:relative; aspect-ratio:.75; overflow:hidden; background:#5e5551; border-radius:230px 230px 5px 5px; border:1px solid #edcaa760; box-shadow:18px 25px 65px #160d1a6b }
.portrait-frame picture { display:block; width:100%; height:100% }
.portrait-photo { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 25% }
.portrait-frame:after { content:''; position:absolute; inset:55% 0 0; background:linear-gradient(transparent,#201622df); pointer-events:none }
.portrait-caption { position:absolute; z-index:1; right:29px; bottom:27px; text-align:right; color:#fff1df }
.portrait-caption span { display:block; font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:#eed2bc }
.portrait-caption strong { display:block; font:italic 42px/1.3 var(--serif) }
.hero-art figcaption { margin:21px 0 0 18px; color:#dcbca4; font-size:9px; letter-spacing:.12em }
.rose-note { position:absolute; bottom:82px; left:-66px; width:147px; padding:7px 7px 9px; background:#f7ead8; color:var(--wine); transform:rotate(-10deg); box-shadow:5px 12px 24px #20101e40 }
.rose-note img { display:block; width:100%; height:131px; object-fit:cover; object-position:50% 55% }
.rose-note span { display:block; padding:10px 5px 4px; font:italic 16px/1.2 var(--serif) }
.interlude { padding:25px 24px; font-size:17px; background:linear-gradient(100deg,#e5cbb0,#f0dfc8 48%,#e4cdb7); border-color:#c8a48275 }
.interlude .line { width:67px }
.letter-section { padding-top:83px; padding-bottom:86px }
.section-aside { padding-top:7px }
.aside-heading { display:flex; align-items:center; gap:18px; margin:0 0 24px }
.aside-heading .eyebrow { margin:0; font-size:10px }
.aside-heading .section-number { font-size:40px; color:#8b6650 }
.aside-portrait { width:190px; aspect-ratio:.86; border:6px solid #fff8ed; outline:1px solid #d7bfa4; box-shadow:3px 9px 22px #553b2312; overflow:hidden; transform:rotate(-3deg) }
.aside-portrait img { display:block; width:100%; height:100%; object-fit:cover; object-position:50% 17% }
.aside-message { color:#79604e; font:italic 21px/1.55 var(--serif); margin:27px 0 14px }
.aside-signature { display:block; color:var(--wine); font:italic 28px var(--serif) }
.letter { background:linear-gradient(125deg,#fffaf1,#fcf4e8); border-color:#cfb391; box-shadow:8px 9px 0 #e7d7c2,0 22px 65px #52371e10 }
.letter summary { padding:42px 40px }
.letter summary .eyebrow { color:#806048; font-size:10px }
.letter-summary { max-width:410px; font-size:34px; letter-spacing:-.8px }
.letter-content { padding:38px 43px 43px }
.letter-content h2 { font-size:34px }
.letter-content p { color:#67564a; font-size:16px; line-height:1.9 }
.letter-content .text-link { font-size:13px }
.letter-signature span { font-size:36px }
.invitation-section { padding-top:74px; padding-bottom:85px; gap:9% }
.invitation-copy .eyebrow { font-size:10px }
.invitation-copy h2 { font-size:clamp(44px,4.4vw,62px) }
.invitation-copy>p:not(.eyebrow) { max-width:350px; font-size:16px; line-height:1.9 }
.privacy-note p { font-size:11px }
.handwritten { font-size:25px }
.form-paper { padding:33px; border-color:#d2b99b; background:linear-gradient(140deg,#fffaf2,#fcf5e9); box-shadow:0 20px 60px #5732200d }
.form-topline .eyebrow { font-size:10px; letter-spacing:.14em }
.adult-note { font-size:11px }
.form-field>label,fieldset>legend { font-size:13px }
.form-field input:not([type=radio]):not([type=checkbox]),.contact-fieldset>input,.form-field textarea { font-size:15px; padding:13px }
.idea-option>span { min-height:91px; gap:9px; font-size:11px }
.idea-option input:checked+span { background:#ebd8d0 }
.contact-tabs span { font-size:12px }
.field-hint,.form-footnote { color:#786252; font-size:11px }
.check-label { font-size:11px; line-height:1.8 }
.optional { font-size:10px }
.submit-button { min-height:57px }
.submit-button #submit-label { font-size:13px }
.closing-note { background:radial-gradient(ellipse at 0 0,#ddbfa35e,transparent 60%),linear-gradient(140deg,#efddc7,#f4e7d5 60%,#e6ceb5) }
.closing-note>p { font-size:39px }
.site-footer { background:#321b2a; padding-top:27px; padding-bottom:29px; font-size:10px }
@media(max-width:1050px) {
  .hero { gap:7%; padding-top:50px; padding-bottom:58px }
  .hero h1 { font-size:6.6vw; letter-spacing:-2.5px }
  .hero-description { font-size:15px }
  .hero-art { padding-right:12px }
  .rose-note { width:119px; left:-29px; bottom:72px; padding:6px 6px 8px }
  .rose-note img { height:108px }
  .rose-note span { font-size:14px; padding:7px 3px 2px }
  .portrait-caption { right:23px; bottom:23px }
  .portrait-caption strong { font-size:34px }
  .hero-art figcaption { font-size:8px; letter-spacing:.06em; margin-left:7px }
  .aside-portrait { width:160px }
  .letter summary { padding:35px 30px }
  .letter-summary { font-size:30px }
  .letter-content { padding:30px }
  .letter-content h2 { font-size:30px }
  .invitation-copy h2 { font-size:46px }
  .form-paper { padding:25px }
  .form-topline .eyebrow { font-size:9px }
}
@media(max-width:700px) {
  .demo-bar { font-size:8px }
  .site-header { min-height:88px; padding:0 23px }
  .wordmark { font-size:28px; gap:9px }
  .wordmark small { font-size:7px; letter-spacing:.055em; margin-top:6px }
  .wordmark img { width:18px }
  .site-header nav { font-size:10px }
  .hero { display:flex; flex-direction:column; gap:38px; padding:36px 25px 41px }
  .hero .eyebrow { font-size:8px; letter-spacing:.1em }
  .hero h1 { margin:23px 0 22px; font-size:clamp(37px,11.4vw,61px); line-height:1.11; letter-spacing:-1.8px }
  .hero-description { max-width:100%; font-size:14px; line-height:1.85; margin-bottom:25px }
  .hero-actions { gap:14px 23px }
  .hero-actions .button { padding:14px 20px; min-height:53px; font-size:12px; gap:28px }
  .hero-secondary { font-size:10px }
  .hero-signature { margin-top:20px; font-size:10px; line-height:1.8; gap:11px }
  .hero-art { max-width:420px; width:calc(100% - 28px); padding:0; margin:auto }
  .portrait-frame { border-radius:210px 210px 4px 4px; aspect-ratio:.8 }
  .portrait-photo { object-position:50% 17% }
  .portrait-halo { inset:-12px -9px 34px 8px; border-radius:210px 210px 5px 5px; transform:rotate(4deg) }
  .portrait-caption { right:22px; bottom:24px }
  .portrait-caption span { font-size:8px }
  .portrait-caption strong { font-size:33px }
  .hero-art figcaption { font-size:8px; margin-top:17px; margin-left:0; letter-spacing:.08em }
  .rose-note { width:113px; left:-20px; bottom:59px; padding:6px 6px 7px; transform:rotate(-9deg) }
  .rose-note img { height:101px }
  .rose-note span { font-size:13px; padding:6px 3px 2px }
  .interlude { padding:21px 22px; font-size:13px; line-height:1.4; gap:14px }
  .interlude .line { width:25px; flex-shrink:0 }
  .letter-section { padding:38px 25px 47px }
  .section-aside { display:grid; grid-template-columns:90px 1fr; align-items:center; gap:0 20px; margin-bottom:27px; padding:0 }
  .aside-heading { grid-column:1/-1; margin-bottom:21px; gap:13px }
  .aside-heading .section-number { font-size:28px }
  .aside-heading .eyebrow { font-size:9px }
  .aside-portrait { width:90px; border-width:4px; grid-column:1; grid-row:2; transform:rotate(-4deg) }
  .aside-message { grid-column:2; grid-row:2; color:#79604e; font-size:19px; line-height:1.5; margin:0 }
  .aside-signature { display:none }
  .letter summary { padding:29px 24px; gap:21px }
  .letter summary .eyebrow { font-size:8px }
  .letter-summary { max-width:240px; font-size:27px; line-height:1.33 }
  .letter-content { padding:27px 23px 31px }
  .letter-content h2 { font-size:29px }
  .letter-content p { font-size:15px; line-height:1.9 }
  .letter-content .text-link { font-size:12px; gap:15px }
  .invitation-section { padding:42px 25px 49px }
  .invitation-copy .eyebrow { font-size:9px }
  .invitation-copy h2 { font-size:44px }
  .invitation-copy>p:not(.eyebrow) { font-size:15px; line-height:1.9 }
  .handwritten { font-size:22px }
  .form-paper { padding:25px 20px }
  .form-topline .eyebrow { font-size:9px }
  .adult-note { font-size:11px }
  .form-field input:not([type=radio]):not([type=checkbox]),.contact-fieldset>input,.form-field textarea { font-size:16px; padding:12px }
  .form-field>label,fieldset>legend { font-size:13px }
  .idea-option>span { font-size:11px; min-height:86px }
  .check-label { font-size:11px }
  .field-hint,.form-footnote { font-size:10px }
  .submit-button #submit-label { font-size:13px }
  .closing-note>p { font-size:29px }
  .site-footer { font-size:9px }
}
@media(prefers-reduced-motion:reduce) {
  .portrait-halo,.rose-note,.aside-portrait { transform:none }
}
