:root{
  --bg:#fbf8f5; --paper:#ffffff; --ink:#211c33; --soft:#5d566f; --faint:#8a83a0;
  --pink:#ff3d9a; --pink-deep:#e21d7e; --peri:#6f7bf0; --lime:#7bbf2a;
  --line:#ece6ef; --chip:#fdeef6;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0; color:var(--ink); font-family:'Inter',system-ui,sans-serif; font-size:19px; line-height:1.75; -webkit-font-smoothing:antialiased; background:radial-gradient(900px 380px at 92% -6%,#ffe6f4 0,transparent 58%),radial-gradient(700px 320px at 2% 0,#e6ecff 0,transparent 52%),var(--bg)}
body::before{content:"";position:fixed;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--pink),var(--peri),var(--lime));z-index:50}
a{color:var(--pink-deep)}
.wrap{max-width:720px; margin:0 auto; padding:0 24px}
.nav{max-width:1040px; margin:0 auto 4px; padding:14px 22px; display:flex; align-items:center; justify-content:space-between; background:linear-gradient(180deg,#ffffff,#ffe9f4); border:1px solid #f4d6e6; border-radius:0 0 18px 18px; box-shadow:0 4px 14px rgba(226,29,126,.08)}
.brand{display:flex; align-items:center; gap:10px; text-decoration:none; color:var(--ink); font-family:'Fraunces'; font-weight:700; font-size:19px}
.brand .dot{width:24px; height:24px; border-radius:50%; background:radial-gradient(circle at 30% 30%, #fff, var(--pink) 48%, var(--peri) 95%); box-shadow:0 0 0 2px #fff,0 2px 8px rgba(226,29,126,.35)}
.nav a.back{font-size:14px; color:var(--soft); text-decoration:none; font-weight:500}
.nav a.back:hover{color:var(--pink-deep)}
.hero{padding:30px 0 6px}
.kicker{display:inline-block; font-weight:700; font-size:12.5px; letter-spacing:1.6px; text-transform:uppercase; color:var(--pink-deep); background:var(--chip); padding:6px 13px; border-radius:999px}
h1{font-family:'Fraunces'; font-weight:700; font-size:clamp(32px,5.6vw,50px); line-height:1.08; letter-spacing:-.01em; margin:18px 0 14px}
.byline{display:flex; align-items:center; gap:12px; margin:18px 0 6px}
.byline img{width:46px; height:46px; border-radius:50%; object-fit:cover; border:2px solid #fff; box-shadow:0 2px 10px rgba(120,90,160,.18)}
.byline .who{font-size:15px; line-height:1.35}
.byline .who b{color:var(--ink)}
.byline .who span{color:var(--soft)}
.rule{height:4px; border:0; margin:26px 0 6px; border-radius:4px; background:linear-gradient(90deg,var(--pink),var(--peri),var(--lime))}
.disclosure{margin:24px 0; padding:14px 18px; font-size:15px; color:var(--soft); background:#fff; border:1px solid var(--line); border-left:4px solid var(--peri); border-radius:12px}
.note{margin:24px 0; padding:16px 18px; font-size:17px; color:var(--ink); background:var(--chip); border:1px solid #f6d6e6; border-radius:14px; line-height:1.6}
.note strong{color:var(--pink-deep)}
p{margin:18px 0}
strong{color:var(--ink)}
h2{font-family:'Fraunces'; font-weight:600; font-size:clamp(24px,4vw,32px); line-height:1.18; margin:44px 0 6px; letter-spacing:-.01em}
figure{margin:30px 0}
figure img{width:100%; border-radius:18px; display:block}
figure.portrait{text-align:center}
figure.portrait img{width:auto; max-width:min(100%,460px); margin:0 auto}
figcaption{font-size:14px; color:var(--soft); margin-top:8px; text-align:center}
ul.checks{list-style:none; padding:0; margin:18px 0}
ul.checks li{position:relative; padding:9px 0 9px 32px}
ul.checks li:before{content:"\2713"; position:absolute; left:0; top:11px; color:#fff; background:var(--pink); width:20px; height:20px; border-radius:50%; font-size:12px; text-align:center; line-height:20px; font-weight:700}
ul.checks li strong{color:var(--ink)}
.pick{background:#fff; border:1px solid var(--line); border-radius:16px; padding:18px 20px; margin:16px 0; box-shadow:0 6px 18px rgba(120,90,160,.05)}
.pick h3{margin:0 0 4px; font-family:'Fraunces'; font-weight:600; font-size:20px}
.pick p{margin:6px 0 10px; color:var(--soft); font-size:16.5px}
.pick a.buy{font-weight:700; color:var(--pink-deep); font-size:15px}
.pull{font-family:'Fraunces'; font-weight:600; font-size:25px; line-height:1.35; color:var(--ink); border-left:4px solid var(--pink); padding:4px 0 4px 22px; margin:34px 0}
.cta{margin:34px 0; padding:30px 26px; border-radius:22px; text-align:center; color:#fff; background:linear-gradient(135deg,#ff5aa8,#7b6ff0)}
.cta h3{color:#fff; margin:0 0 6px; font-size:23px; font-family:'Fraunces'}
.cta p{color:rgba(255,255,255,.92); margin:6px auto 14px; max-width:460px}
.btn{display:inline-block; font-weight:700; font-size:17px; color:var(--pink-deep); background:linear-gradient(180deg,#fff,#ffe7f2); text-decoration:none; padding:14px 30px; border-radius:999px; box-shadow:0 10px 24px rgba(0,0,0,.16), inset 0 1px 0 #fff}
.btn:hover{transform:translateY(-1px)}
.cta .fine{display:block; margin-top:12px; font-size:13px; color:rgba(255,255,255,.8)}
.faq details{border-bottom:1px solid var(--line); padding:16px 0}
.faq summary{cursor:pointer; font-weight:700; font-size:18px; list-style:none; display:flex; justify-content:space-between; gap:14px}
.faq summary::-webkit-details-marker{display:none}
.faq summary:after{content:"+"; color:var(--pink-deep); font-weight:700}
.faq details[open] summary:after{content:"\2013"}
.faq details p{margin:12px 0 2px; color:var(--soft); font-size:17px}
.author{display:flex; gap:18px; align-items:center; margin:44px 0 10px; padding:22px; background:#fff; border:1px solid var(--line); border-radius:20px}
.author img{width:78px; height:78px; border-radius:50%; object-fit:cover; flex:none}
.author .b h4{margin:0 0 4px; font-family:'Fraunces'; font-size:19px}
.author .b p{margin:0; font-size:15px; color:var(--soft); line-height:1.55}
.author .b a{font-weight:600}
.readnext{margin:40px 0 10px; padding:22px 24px; border-radius:20px; background:linear-gradient(135deg,#fdeef6,#eef0ff); border:1px solid var(--line)}
.readnext .rn-label{font-weight:700; font-size:12px; letter-spacing:1.4px; text-transform:uppercase; color:var(--peri)}
.readnext h3{font-family:'Fraunces'; font-weight:600; font-size:21px; margin:8px 0 6px; color:var(--ink)}
.readnext p{margin:0 0 12px; color:var(--soft); font-size:16px}
.readnext a.rn-go{display:inline-block; font-weight:700; font-size:15px; color:var(--pink-deep)}
.src{font-size:14px; color:var(--soft); margin:26px 0}
.src a{color:var(--soft)}
footer{margin:44px 0 50px; padding-top:22px; border-top:1px solid var(--line); color:var(--soft); font-size:14px; text-align:center}
footer a{color:var(--peri); text-decoration:none; font-weight:600}

/* Line-stacking fix (Destiny notes): stop single-word widows on headings + tidy paragraph orphans */
h1, h2, h3, .pull, .kicker, .cta h3, .readnext h3, .pick h3 { text-wrap: balance; }

/* TikTok Shop / GO affiliate blocks */
.tspot{background:#fff; border:1px solid var(--line); border-radius:20px; padding:20px 20px 22px; margin:34px 0; box-shadow:0 8px 22px rgba(120,90,160,.06)}
.tspot .tdisc{font-size:13.5px; color:var(--soft); background:var(--chip); border:1px solid #f6d6e6; border-radius:10px; padding:9px 13px; margin:0 0 16px; line-height:1.5}
.tspot .tembed{max-width:340px; margin:0 auto 16px; border-radius:14px; overflow:hidden}
.tspot .tembed blockquote,.tspot .tembed iframe{margin:0 auto !important; max-width:100% !important}
.tspot .tembed .tph{display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; aspect-ratio:9/16; background:linear-gradient(160deg,#fff0f7,#eef0ff); border:1px dashed #e6b9d4; border-radius:14px; color:var(--faint); font-size:14px; text-align:center; padding:18px}
.tspot h3{margin:0 0 4px; font-family:'Fraunces'; font-weight:600; font-size:21px}
.tspot p{margin:6px 0 16px; color:var(--soft); font-size:16.5px}
.tbtn{display:inline-flex; align-items:center; gap:9px; font-weight:800; font-size:16px; color:#fff; background:linear-gradient(135deg,#ff3d9a,#7b6ff0); text-decoration:none; padding:14px 26px; border-radius:999px; box-shadow:0 10px 24px rgba(226,29,126,.25)}
.tbtn:hover{transform:translateY(-1px); color:#fff}
.tspot.center{text-align:center}
p, li, .byline .who, figcaption, .note, .disclosure { text-wrap: pretty; }

/* Isolated review copy: improve small text contrast without altering the live site. */
:root{--faint:#5d566f;--pink-deep:#aa1459;--peri:#4651b0}
.cta{background:linear-gradient(135deg,#8d164f,#514099)}
.cta .fine{color:#fff;font-size:14px;line-height:1.6}
ul.checks li:before{background:#b11c61}
.nav{gap:18px;flex-wrap:wrap}
a:focus-visible,summary:focus-visible{outline:3px solid #4651b0;outline-offset:5px}
.review-banner{max-width:1040px;margin:18px auto;padding:16px 22px;background:#fff6df;border:2px solid #846423;border-radius:14px;color:#44340f;font-size:15px;line-height:1.6}
.review-banner strong{color:#44340f}
.review-banner a{color:#70430a;font-weight:700}
.housegrid{display:grid;gap:10px;margin:22px 0}
.house{background:#fff;border:1px solid var(--line);border-radius:14px;padding:14px 16px;display:flex;gap:12px;align-items:flex-start}
.house .num{flex:0 0 30px;height:30px;border-radius:50%;background:#b11c61;color:#fff;font-weight:700;font-size:13px;text-align:center;line-height:30px;font-family:'Fraunces',Georgia,serif}
.house b{display:block}
.house span{color:#5d566f;font-size:14px}
.house.skipped{border-style:dashed;background:#faf7fc}
.house.skipped .num{background:#625872}
.house.favorite{border-color:#ad3c72;background:#fff7fb}
.house.favorite span{color:#92214f;font-weight:600}
.visit-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:24px 0}
.visit-facts div{padding:15px 17px;border:1px solid var(--line);background:#fff;border-radius:14px}
.visit-facts dt{font-size:13px;color:var(--soft)}
.visit-facts dd{margin:2px 0 0;font-size:18px;font-weight:700}
.sources{font-size:15px;line-height:1.7}
.sources li{margin:10px 0}
@media(max-width:480px){.author{align-items:flex-start;gap:14px;padding:18px}.author img{width:52px;height:52px}.cta{padding:24px 18px}.visit-facts{grid-template-columns:1fr}.review-banner{margin:12px;border-radius:12px}.btn{padding:13px 20px;font-size:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.btn:hover{transform:none}}

/* Visit photos: preserve the full image composition. */
.visit-photo img{width:100%;max-width:420px;height:auto}.photo-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.photo-pair figure{margin:24px 0}.photo-pair img{width:100%;height:auto}.photo-pair figcaption{line-height:1.5} @media(max-width:480px){.photo-pair{grid-template-columns:1fr;gap:0}.visit-photo img{max-width:100%}}
