:root{--lipstick:#C8102E;--hotpink:#E8467C;--blush:#FBE3E8;--paper:#FFF8F6;--wine:#4A0E1C;--ink:#2A0A12;--script:'Pinyon Script',cursive;--display:'Bodoni Moda',Georgia,serif;--hand:'Caveat',cursive;--body:'Jost',system-ui,sans-serif}
*{box-sizing:border-box}html,body{margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:90px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{background:var(--blush);color:var(--ink);font:400 17px/1.65 var(--body);-webkit-font-smoothing:antialiased}
a{color:var(--lipstick);text-decoration:none}a:hover{color:var(--hotpink)}
img{max-width:100%;height:auto;display:block}
.topbar{background:var(--blush);color:var(--wine);position:sticky;top:0;z-index:50;border-bottom:1px solid #f0c3cd}
.topbar-inner{max-width:1040px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:10px}.brand a{font:400 38px/1 var(--script);color:var(--wine)}
.age{font:500 12px/1 var(--body);color:var(--lipstick);border:1.5px solid var(--hotpink);border-radius:20px;padding:4px 8px}
nav ul{list-style:none;margin:0;padding:0;display:flex;gap:26px;flex-wrap:wrap}
nav a{color:var(--wine);font:500 15px var(--body)}nav a:hover{color:var(--lipstick);border-bottom:2px solid var(--hotpink)}
.hero{background:var(--blush);padding:32px 24px 0}
.hero-frame{position:relative;max-width:1040px;margin:0 auto;aspect-ratio:16/8.5;min-height:320px;overflow:hidden;border:12px solid var(--paper);box-shadow:0 18px 40px -18px rgba(74,14,28,.45);display:block}
.hero-frame img{width:100%;height:100%;object-fit:cover;object-position:center 35%}
.hero-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(74,14,28,.75) 0%,rgba(74,14,28,0) 55%)}
.hero-copy{position:absolute;left:0;right:0;bottom:4%;z-index:2;padding:0 32px;color:#fff;text-align:center}
.hero-copy h1{font:400 clamp(56px,9vw,128px)/.9 var(--script);margin:0;text-shadow:0 4px 30px rgba(200,16,46,.6)}
.hero-copy p{font:italic 500 clamp(17px,2vw,22px)/1.4 var(--display);margin:30px 0 0;color:var(--blush);white-space:nowrap}
@media (max-width:760px){.hero-copy p{white-space:normal}}
.main-wrap{max-width:1040px;margin:0 auto;padding:56px 24px 64px}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:0 0 36px;border-bottom:2px solid var(--lipstick);padding-bottom:10px}
.section-head h2{font:700 clamp(28px,3.5vw,40px)/1.1 var(--display);margin:0;color:var(--wine)}.section-head span{font:500 26px var(--hand);color:var(--lipstick)}
.postcards{display:grid;grid-template-columns:repeat(3,1fr);gap:44px 36px}
.postcard{background:var(--paper);padding:14px 14px 18px;box-shadow:0 1px 0 #e9c3cc,0 14px 30px -12px rgba(74,14,28,.35);position:relative;transition:transform .25s ease}
.postcard:nth-child(3n+1){transform:rotate(-1.2deg)}.postcard:nth-child(3n+2){transform:rotate(.8deg)}.postcard:nth-child(3n){transform:rotate(-.5deg)}
.postcard:hover{transform:rotate(0) translateY(-4px)}
.photo{position:relative;display:block;aspect-ratio:4/3;overflow:hidden;background:linear-gradient(135deg,var(--hotpink),var(--lipstick))}
.photo img{width:100%;height:100%;object-fit:cover}
.stamp{position:absolute;top:22px;right:22px;z-index:2;width:58px;height:70px;background:var(--lipstick);color:#fff;display:grid;place-items:center;font:400 26px/1 var(--script);border:3px solid var(--paper);-webkit-mask:radial-gradient(circle 3px at 3px 3px,#0000 98%,#000) -3px -3px/7px 7px;mask:radial-gradient(circle 3px at 3px 3px,#0000 98%,#000) -3px -3px/7px 7px}
.card-back{display:grid;grid-template-columns:1fr auto;gap:12px;padding:16px 4px 0}
.card-back h3{font:700 21px/1.25 var(--display);margin:0 0 6px;color:var(--wine)}.card-back h3 a{color:inherit}.card-back h3 a:hover{color:var(--lipstick)}
.note{font:500 21px/1.3 var(--hand);color:#6b2a3a;margin:0}
.postmark{width:64px;height:64px;border:2px solid var(--hotpink);border-radius:50%;display:grid;place-items:center;text-align:center;color:var(--hotpink);font:500 11px/1.2 var(--body);transform:rotate(-14deg);align-self:start;opacity:.85}
.card-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding:10px 4px 0;border-top:1px dashed #e6aab8}
.label{font:500 13px var(--body);color:var(--lipstick);background:var(--blush);padding:3px 10px;border-radius:20px}.read{font:500 14px var(--body)}
.single{max-width:760px;margin:0 auto;background:var(--paper);padding:48px clamp(22px,5vw,64px);box-shadow:0 20px 40px -20px rgba(74,14,28,.35)}
.single>h1{font:700 clamp(32px,5vw,50px)/1.1 var(--display);color:var(--wine);margin:0 0 10px}
.meta{font:500 22px var(--hand);color:var(--lipstick);margin:0 0 28px}
.cover{margin:0 0 28px;border:10px solid #fff;box-shadow:0 10px 24px -10px rgba(74,14,28,.4)}
.back{display:inline-block;margin-top:30px;font:500 15px var(--body)}
.page-wrap{max-width:1040px;margin:0 auto;padding:48px 24px 64px}
.sonya-legal .face,.sonya-about .face{position:absolute;top:22px;right:22px;width:72px;height:72px;border-radius:50%}
.ask-box{margin:34px 0 0;padding:20px 22px;background:var(--blush);border:2px dashed var(--hotpink);text-align:center}
.ask-box p{margin:0 0 12px;font:500 22px/1.35 var(--hand);color:#6b2a3a}
.ask-box a{display:inline-block;background:var(--wine);color:#fff;padding:12px 28px;border-radius:40px;font:500 16px var(--body)}
.ask-box a:hover{background:var(--lipstick);color:#fff}
.ask-form label{display:block;font:500 15px var(--body);color:var(--wine);margin:16px 0 6px}
.ask-form input[type=text],.ask-form input[type=email],.ask-form textarea{width:100%;padding:12px 14px;border:1.5px solid #e6aab8;border-radius:8px;font:400 16px var(--body);background:#fff;color:var(--ink)}
.ask-form textarea{min-height:160px;resize:vertical}
.ask-form input:focus,.ask-form textarea:focus{outline:2px solid var(--hotpink);border-color:var(--hotpink)}
.ask-form .check{display:flex;gap:10px;align-items:flex-start;font:400 15px/1.5 var(--body);color:var(--ink);margin:14px 0 0}
.ask-form .check input{margin-top:4px;accent-color:var(--lipstick)}
.ask-form .hp{position:absolute;left:-9999px}
.ask-form button{margin-top:22px;background:var(--lipstick);color:#fff;border:0;padding:15px 34px;border-radius:40px;font:500 18px var(--body);cursor:pointer;box-shadow:0 10px 24px -10px rgba(200,16,46,.7)}
.ask-form button:hover{background:var(--hotpink)}
.ask-form button:disabled{opacity:.6;cursor:wait}
.ask-status{margin-top:16px;font:500 22px/1.35 var(--hand);color:var(--lipstick)}
.ask-note{font-size:14px;color:#7a3a4a;margin-top:22px}
@media (max-width:960px){.postcards{grid-template-columns:repeat(2,1fr)}}
@media (max-width:620px){.postcards{grid-template-columns:1fr;gap:36px}.postcard,.postcard:nth-child(n){transform:none}.topbar-inner{flex-direction:column;gap:6px}.hero-frame{aspect-ratio:4/5}}
@media (prefers-reduced-motion:reduce){.postcard{transition:none}}
/* CrakRevenue banner */
.sonya-banner{text-align:center;margin:30px auto;max-width:300px}
.sonya-banner .ad-label{display:block;font:500 11px/1.4 'Jost',sans-serif;letter-spacing:.12em;text-transform:uppercase;color:#7a3a4a;margin-bottom:4px}
.sonya-banner img{max-width:100%;height:auto;display:inline-block}
.photo img[src="/images/escort-scams.jpg"]{object-position:70% center}


.social{display:flex;align-items:center;gap:14px;margin-right:auto;margin-left:18px}
.social a{color:var(--wine);display:inline-flex;opacity:.85;transition:opacity .2s,transform .2s}
.social a:hover{opacity:1;transform:translateY(-2px)}
@media (max-width:620px){.social{margin:0}}
@media (max-width:620px){.topbar-inner{align-items:center;text-align:center}.brand{justify-content:center}.social{justify-content:center}nav{width:100%}nav ul{justify-content:center;gap:10px 22px}}
@media (max-width:620px){.hero{padding:20px 14px 0}.hero-frame{aspect-ratio:auto;min-height:0;background:var(--paper)}.hero-frame img{aspect-ratio:4/5;height:auto;object-position:center 30%}.hero-frame::after{display:none}.hero-copy{position:static;padding:16px 10px 20px;color:#4a0e1c}.hero-copy h1{font-size:clamp(40px,13vw,60px);text-shadow:none;color:#c8102e}.hero-copy p{margin:12px 0 0;color:#4a0e1c;font-size:16px}}
/* centered header: logo row, nav row with socials */
.topbar-inner{flex-direction:column;justify-content:center;align-items:center;gap:8px;text-align:center}
.brand{justify-content:center}
nav{width:100%}nav ul{justify-content:center;align-items:center;gap:10px 26px}
nav li.social{display:flex;align-items:center;gap:14px;margin:0}
nav li.social a:hover{border-bottom:0}
@media (max-width:620px){nav ul{gap:8px 18px}nav li.social{width:100%;justify-content:center}}
