/* Four extra skins layered over design B. Each is scoped to a body class so
   the shared markup never changes.
   core-dream  C  Barbiecore, dreamhouse hot pink
   core-retro  D  Barbiecore, 1959 stripes
   core-ballet E  Balletcore, satin ribbon
   core-swan   F  Balletcore, white tulle with a black ribbon */

/* ---------- shared helpers ---------- */
body[class*="core-"] .hero-copy h1.foil{background:none;-webkit-background-clip:border-box;background-clip:border-box;
  -webkit-text-fill-color:currentColor;filter:none;text-shadow:none}
body[class*="core-"] .section-head h2,body[class*="core-"] .story h2{text-wrap:balance}

/* =====================================================================
   C · DREAMHOUSE
   ===================================================================== */
body.core-dream{--ink:#2B0F1E;--body:#4D2B3B;--muted:#80566A;--accent-ink:#E0218A;--shade-rgb:255,183,217;
  --display:'DM Serif Display',serif;background:#FFF5FA}
body.core-dream h1,body.core-dream h2,body.core-dream h3{font-family:'DM Serif Display',serif;font-weight:400;letter-spacing:0}
body.core-dream .section-head h2,body.core-dream .story h2{font-style:italic;color:#E0218A;font-size:clamp(2.3rem,4.6vw,3.5rem)}
body.core-dream header{background:#E0218A;border-bottom:0}
body.core-dream .nav a:not(.btn){color:#fff}
body.core-dream .nav a:not(.btn):hover{color:#FFD3EA}
body.core-dream .brand.has-logo img{filter:brightness(0) invert(1)}
body.core-dream .btn,body.core-dream header .btn,body.core-dream .nav a.btn{background:#E0218A;color:#fff;border:2px solid #2B0F1E;
  border-radius:999px;box-shadow:4px 4px 0 #2B0F1E;font-weight:600}
body.core-dream .btn:hover,body.core-dream header .btn:hover{background:#FF4FA8;transform:translate(2px,2px);box-shadow:2px 2px 0 #2B0F1E}
body.core-dream header .btn,body.core-dream .nav a.btn{background:#fff;color:#E0218A}
body.core-dream .btn-ghost{background:#fff;color:#E0218A;border:2px solid #2B0F1E}
body.core-dream .btn-ghost:hover{background:#FFD3EA;color:#E0218A;border-color:#2B0F1E}
body.core-dream .hero-copy h1.foil{color:#E0218A;font-style:italic;letter-spacing:-.01em;
  text-shadow:3px 3px 0 #fff,6px 6px 0 rgba(224,33,138,.25)}
body.core-dream .hero-copy h1 .l2{color:#2B0F1E;-webkit-text-fill-color:#2B0F1E;font-family:'Jost',sans-serif;font-style:normal;font-weight:600;text-shadow:none}
body.core-dream .hero-tag{background:#fff;color:#E0218A;display:inline-block;padding:.5em 1.1em;border-radius:999px;border:2px solid #E0218A}
body.core-dream .hero-script{color:#E0218A}
body.core-dream .strip{background:#E0218A;border:0}
body.core-dream .strip-item span{color:#fff}
body.core-dream .strip-item svg{stroke:#fff}
/* gingham ground */
body.core-dream #svc,body.core-dream .results{background:
  linear-gradient(rgba(255,120,185,.16) 50%,transparent 50%) 0 0/44px 44px,
  linear-gradient(90deg,rgba(255,120,185,.16) 50%,transparent 50%) 0 0/44px 44px,#FFF5FA}
body.core-dream #svc::before,body.core-dream #svc::after,body.core-dream .results::before,body.core-dream .results::after{display:none}
body.core-dream .svc,body.core-dream .ba,body.core-dream .rev{background:#fff;border:2px solid #2B0F1E;border-radius:26px;
  box-shadow:6px 6px 0 #FF8CC6;backdrop-filter:none}
body.core-dream .svc:hover{transform:translate(-2px,-2px);box-shadow:9px 9px 0 #E0218A}
body.core-dream .svc .price{color:#E0218A;font-family:'DM Serif Display',serif;font-size:2rem}
body.core-dream .svc .more{color:#E0218A}
body.core-dream .svc-bling{border-radius:26px;border:2px solid #2B0F1E;background:#E0218A;box-shadow:6px 6px 0 #FF8CC6}
body.core-dream .svc-bling .script-line{color:#fff;text-shadow:none}
body.core-dream .story{background:#FFC2E0}
body.core-dream .story-media img{border-radius:200px 200px 26px 26px;border:2px solid #2B0F1E;box-shadow:8px 8px 0 #E0218A}
body.core-dream .rev .hearts,body.core-dream .ba-pair figcaption{color:#E0218A}
body.core-dream .cta.cta-sign{background:#E0218A}
body.core-dream .cta.cta-sign .btn{background:#fff;color:#E0218A}
body.core-dream footer{background:#2B0F1E;color:#FFD3EA}

/* =====================================================================
   D · 1959
   ===================================================================== */
body.core-retro{--ink:#111;--body:#3A3235;--muted:#6F6368;--accent-ink:#E6007E;--shade-rgb:255,255,255;background:#fff}
body.core-retro h1,body.core-retro h2,body.core-retro h3{font-family:'Abril Fatface',serif;font-weight:400;letter-spacing:0;color:#111}
body.core-retro header{background:#fff;border-bottom:3px solid #111}
body.core-retro .btn,body.core-retro header .btn,body.core-retro .nav a.btn{background:#111;color:#fff;border-radius:0;box-shadow:5px 5px 0 #E6007E;font-weight:600}
body.core-retro .btn:hover,body.core-retro header .btn:hover{background:#E6007E;color:#fff;box-shadow:5px 5px 0 #111;transform:none}
body.core-retro .btn-ghost{background:#fff;color:#111;border:2px solid #111;box-shadow:none}
body.core-retro .btn-ghost:hover{background:#111;color:#fff;border-color:#111}
body.core-retro .hero-full{border-bottom:3px solid #111}
body.core-retro .hero-copy h1.foil{color:#111;font-size:clamp(3.4rem,7.4vw,6.6rem);line-height:.92}
body.core-retro .hero-copy h1 .l2{font-family:'Yellowtail',cursive;color:#E6007E;-webkit-text-fill-color:#E6007E;
  text-transform:none;letter-spacing:0;font-size:.62em;transform:rotate(-5deg);transform-origin:left;margin-top:.1em}
body.core-retro .hero-tag{color:#111;border-bottom:3px solid #E6007E;display:inline-block;padding-bottom:.4em}
body.core-retro .hero-bokeh,body.core-retro .hero .star{display:none}
body.core-retro .hero-script{font-family:'Yellowtail',cursive;color:#E6007E}
/* the swimsuit stripe */
body.core-retro .strip{background:repeating-linear-gradient(90deg,#111 0 34px,#fff 34px 68px);border:0;padding:1.6rem 0}
body.core-retro .strip-grid{background:#fff;border:3px solid #111;padding:1.4rem 1rem;box-shadow:6px 6px 0 #E6007E}
body.core-retro .strip-item svg{stroke:#E6007E}
body.core-retro .strip-item span{color:#111}
body.core-retro #svc,body.core-retro .results,body.core-retro #rev{background:#fff}
body.core-retro #svc::before,body.core-retro #svc::after,body.core-retro .results::before,body.core-retro .results::after{display:none}
body.core-retro .kicker{color:#E6007E;font-family:'Yellowtail',cursive;text-transform:none;letter-spacing:0;font-size:1.7rem;font-weight:400}
body.core-retro .svc,body.core-retro .ba,body.core-retro .rev{background:#fff;border:3px solid #111;border-radius:0;box-shadow:none;backdrop-filter:none}
body.core-retro .svc:hover{box-shadow:8px 8px 0 #E6007E;transform:translate(-3px,-3px)}
body.core-retro .svc .price{color:#E6007E;font-family:'Abril Fatface',serif;font-size:2rem}
body.core-retro .svc .more{color:#111;border-bottom:2px solid #E6007E}
body.core-retro .svc-bling{border-radius:0;border:3px solid #111;background:repeating-linear-gradient(135deg,#111 0 22px,#fff 22px 44px)}
body.core-retro .svc-bling .script-line{font-family:'Yellowtail',cursive;color:#fff;background:#E6007E;padding:.5em .7em;text-shadow:none;transform:rotate(-6deg)}
body.core-retro .svc-bling .diamond,body.core-retro .svc-bling .star{display:none}
body.core-retro .story{background:#E6007E}
body.core-retro .story h2,body.core-retro .story p{color:#fff}
body.core-retro .story .kicker{color:#fff}
body.core-retro .story .story-note{color:#fff}
body.core-retro .story-media img{border:3px solid #111;border-radius:0;box-shadow:12px 12px 0 #111}
body.core-retro .story-media .wall-script{font-family:'Yellowtail',cursive}
body.core-retro .story .btn-ghost{border-color:#111}
body.core-retro .brush{display:none}
body.core-retro .rev .hearts,body.core-retro .ba-pair figcaption{color:#E6007E}
body.core-retro .results .star{display:none}
body.core-retro .cta.cta-sign{background:repeating-linear-gradient(90deg,#111 0 40px,#1d1d1d 40px 80px)}
body.core-retro .cta.cta-sign p{color:#fff}
body.core-retro .cta.cta-sign .btn{background:#E6007E;color:#fff;box-shadow:5px 5px 0 #fff}
body.core-retro footer{background:#fff;color:#111;border-top:3px solid #111}

/* =====================================================================
   E · SATIN RIBBON
   ===================================================================== */
body.core-ballet{--ink:#4A3138;--body:#6A4E56;--muted:#8E727A;--accent-ink:#B9637B;--shade-rgb:248,224,228;background:#FFFAF8;
  --bow:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 120 90'%3E%3Cg fill='%23F3C4CF' stroke='%23D897A9' stroke-width='1.6' stroke-linejoin='round'%3E%3Cpath d='M60 34C44 10 16 6 8 18c-6 10 2 28 14 32 14 4 30-4 38-16z'/%3E%3Cpath d='M60 34c16-24 44-28 52-16 6 10-2 28-14 32-14 4-30-4-38-16z'/%3E%3Cpath d='M54 40C46 58 40 72 34 86l12-6 6 8c4-16 6-30 8-44z'/%3E%3Cpath d='M66 40c8 18 14 32 20 46l-12-6-6 8c-4-16-6-30-8-44z'/%3E%3Cellipse cx='60' cy='36' rx='9' ry='10' fill='%23EDB2C0'/%3E%3C/g%3E%3C/svg%3E")}
body.core-ballet h1,body.core-ballet h2,body.core-ballet h3{font-family:'Bodoni Moda',serif;font-weight:400;letter-spacing:.01em}
body.core-ballet .section-head h2,body.core-ballet .story h2{font-style:italic;font-size:clamp(2.2rem,4.2vw,3.2rem)}
body.core-ballet .section-head::before{content:"";display:block;width:74px;height:56px;margin:0 auto 1rem;background:var(--bow) center/contain no-repeat}
body.core-ballet .rule{display:none}
body.core-ballet header{background:rgba(255,250,248,.92);border-bottom:1px solid #F1D5DB}
body.core-ballet .btn,body.core-ballet header .btn,body.core-ballet .nav a.btn{background:linear-gradient(180deg,#F6CAD4,#E9A9B9 55%,#F1BFCB);
  color:#4A3138;border-radius:999px;font-weight:600;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 8px 20px rgba(201,128,148,.3)}
body.core-ballet .btn:hover,body.core-ballet header .btn:hover{background:linear-gradient(180deg,#F9D6DE,#EDB5C3 55%,#F5CBD5);color:#4A3138}
body.core-ballet .btn-ghost{background:transparent;color:#B9637B;border:1px solid #D897A9;box-shadow:none}
body.core-ballet .btn-ghost:hover{background:#F6CAD4;color:#4A3138;border-color:#D897A9}
body.core-ballet .hero-copy h1.foil{color:#4A3138;font-style:italic;font-weight:400;text-transform:none;letter-spacing:0;font-size:clamp(3.4rem,7vw,6.2rem)}
body.core-ballet .hero-copy h1.foil{font-variant:normal}
body.core-ballet .hero-copy h1 .l2{font-style:normal;color:#B9637B;-webkit-text-fill-color:#B9637B;font-family:'Jost',sans-serif;font-weight:500}
body.core-ballet .hero-script,body.core-ballet .script-line,body.core-ballet .story-media .wall-script{font-family:'Pinyon Script',cursive}
body.core-ballet .hero-script{font-size:clamp(2rem,3.4vw,3rem)}
body.core-ballet .hero .star{display:none}
body.core-ballet .strip{background:#FBE9EC;border-color:#F1D5DB}
body.core-ballet #svc,body.core-ballet .results{background:
  radial-gradient(60% 50% at 50% 0,rgba(246,202,212,.5),transparent 70%),#FFFAF8}
body.core-ballet #svc::before,body.core-ballet #svc::after,body.core-ballet .results::before,body.core-ballet .results::after{display:none}
body.core-ballet .svc,body.core-ballet .ba,body.core-ballet .rev{background:#fff;border:1px solid #F1D5DB;border-radius:4px;
  box-shadow:0 18px 40px rgba(185,99,123,.1);backdrop-filter:none}
body.core-ballet .svc{border-radius:160px 160px 4px 4px}
body.core-ballet .svc figure{border-radius:160px 160px 0 0;aspect-ratio:1/1}
body.core-ballet .svc-body{text-align:center}
body.core-ballet .svc .price{font-family:'Bodoni Moda',serif;font-style:italic;color:#B9637B}
body.core-ballet .svc-bling{border-radius:160px 160px 4px 4px;background:linear-gradient(160deg,#F9DDE3,#EFB9C6 45%,#F8D6DD 60%,#E9A9B9);border:0}
body.core-ballet .svc-bling .diamond,body.core-ballet .svc-bling .star{display:none}
body.core-ballet .svc-bling::before{content:"";position:absolute;left:50%;top:12%;width:110px;height:84px;transform:translateX(-50%);
  background:var(--bow) center/contain no-repeat;filter:brightness(1.12)}
body.core-ballet .svc-bling .script-line{color:#4A3138;text-shadow:none;font-size:2.5rem}
/* satin band */
body.core-ballet .story{background:linear-gradient(100deg,#F6CAD4 0%,#FBE3E8 18%,#F1BAC7 38%,#FADCE2 55%,#EDAFBE 78%,#F8D3DB 100%)}
body.core-ballet .story-media img{border-radius:300px 300px 4px 4px;box-shadow:0 30px 60px rgba(150,70,95,.25)}
body.core-ballet .brush{display:none}
body.core-ballet .results .star{display:none}
body.core-ballet .cta.cta-sign{background:radial-gradient(70% 90% at 50% 40%,#FDEBEF,transparent 70%),linear-gradient(100deg,#F6CAD4,#F1BAC7 40%,#FADCE2 60%,#EDAFBE)}
body.core-ballet .cta.cta-sign .star{display:none}
body.core-ballet .cta.cta-sign .signboard::before{display:none}
body.core-ballet .cta.cta-sign .sign{font-family:'Pinyon Script',cursive;color:#4A3138;-webkit-text-stroke:0;text-shadow:none;animation:none;
  font-size:clamp(3rem,6.4vw,5.4rem)}
body.core-ballet .cta.cta-sign p{color:#4A3138}
body.core-ballet .cta.cta-sign .btn{background:#4A3138;color:#fff;box-shadow:none}
body.core-ballet footer{background:#FBE9EC;color:#6A4E56}

/* =====================================================================
   F · SWAN
   ===================================================================== */
body.core-swan{--ink:#17131A;--body:#4B4349;--muted:#7A7077;--accent-ink:#B9637B;--shade-rgb:255,255,255;background:#fff}
body.core-swan h1,body.core-swan h2,body.core-swan h3{font-family:'Bodoni Moda',serif;font-weight:400}
body.core-swan .section-head h2,body.core-swan .story h2{font-size:clamp(2.2rem,4.2vw,3.2rem)}
body.core-swan .section-head h2 i,body.core-swan em{font-style:italic}
body.core-swan header{background:rgba(255,255,255,.94);border-bottom:1px solid #17131A}
body.core-swan .btn,body.core-swan header .btn,body.core-swan .nav a.btn{background:#17131A;color:#fff;border-radius:0;box-shadow:none;font-weight:500;letter-spacing:.2em}
body.core-swan .btn:hover,body.core-swan header .btn:hover{background:#B9637B;color:#fff;transform:none}
body.core-swan .btn-ghost{background:transparent;color:#17131A;border:1px solid #17131A}
body.core-swan .btn-ghost:hover{background:#17131A;color:#fff;border-color:#17131A}
body.core-swan .hero-copy h1.foil{color:#17131A;font-size:clamp(3.2rem,6.8vw,6rem);letter-spacing:.04em}
body.core-swan .hero-copy h1 .l2{color:#B9637B;-webkit-text-fill-color:#B9637B;font-style:italic;text-transform:none;letter-spacing:.02em;font-size:.6em;font-family:'Bodoni Moda',serif}
body.core-swan .hero-tag{color:#17131A}
body.core-swan .hero-bokeh i{opacity:calc(var(--o)*.6)}
body.core-swan .hero .star{display:none}
body.core-swan .hero-script,body.core-swan .script-line,body.core-swan .story-media .wall-script{font-family:'Pinyon Script',cursive}
body.core-swan .hero-script{color:#17131A;font-size:clamp(2rem,3.4vw,3rem)}
/* the black ribbon */
body.core-swan .strip{background:#17131A;border:0}
body.core-swan .strip-item span{color:#fff}
body.core-swan .strip-item svg{stroke:#F3C4CF}
body.core-swan #svc,body.core-swan .results{background:
  radial-gradient(50% 40% at 15% 10%,rgba(249,221,227,.7),transparent 70%),
  radial-gradient(50% 40% at 85% 90%,rgba(249,221,227,.7),transparent 70%),#fff}
body.core-swan #svc::before,body.core-swan #svc::after,body.core-swan .results::before,body.core-swan .results::after{display:none}
body.core-swan .kicker{color:#B9637B}
body.core-swan .svc,body.core-swan .ba,body.core-swan .rev{background:#fff;border:0;border-top:1px solid #17131A;border-radius:0;box-shadow:none;backdrop-filter:none}
body.core-swan .svc figure{aspect-ratio:4/5}
body.core-swan .svc .price{font-family:'Bodoni Moda',serif;font-style:italic;color:#B9637B}
body.core-swan .svc .more{color:#17131A;border-bottom:1px solid #17131A}
body.core-swan .svc-bling{border-radius:0;background:#F9DDE3;border:0;border-top:1px solid #17131A}
body.core-swan .svc-bling .diamond,body.core-swan .svc-bling .star{display:none}
body.core-swan .svc-bling .script-line{color:#17131A;text-shadow:none;font-size:2.5rem}
body.core-swan .story{background:#F9DDE3}
body.core-swan .story-media img{border-radius:0;box-shadow:none;outline:1px solid #17131A;outline-offset:12px}
body.core-swan .brush,body.core-swan .results .star{display:none}
body.core-swan .rev .hearts{color:#17131A}
body.core-swan footer{background:#fff;color:#17131A;border-top:1px solid #17131A}

@media (max-width:900px){
  body.core-ballet .svc,body.core-ballet .svc figure,body.core-ballet .svc-bling{border-radius:120px 120px 4px 4px}
}

/* the photo frame is on the wrapper, not the img */
body.core-dream .story-media{border-radius:200px 200px 26px 26px;border:2px solid #2B0F1E;box-shadow:8px 8px 0 #E0218A}
body.core-dream .story-media img{border:0;box-shadow:none;border-radius:0}
body.core-retro .story-media{border-radius:0;border:3px solid #111;box-shadow:12px 12px 0 #111}
body.core-retro .story-media img{border:0;box-shadow:none}
body.core-ballet .story-media{border-radius:300px 300px 4px 4px;box-shadow:0 30px 60px rgba(150,70,95,.25)}
body.core-swan .story-media{border-radius:0;box-shadow:none;overflow:visible;outline:1px solid #17131A;outline-offset:12px}
body.core-swan .story-media img{outline:0}
body.core-retro .hero-copy h1 .l2{text-transform:lowercase;font-size:.7em}

/* ── F · swan, finished pass ─────────────────────────────────────────── */
body.core-swan{--shade-rgb:252,238,241}
body.core-swan h1,body.core-swan h2,body.core-swan h3{font-optical-sizing:auto;font-weight:500;letter-spacing:0}
body.core-swan .hero-copy h1.foil{letter-spacing:.01em;font-weight:500;line-height:.98}
body.core-swan .hero-copy h1 .l2{font-weight:400;margin-top:.12em}
body.core-swan .section-head h2,body.core-swan .story h2{letter-spacing:0}
body.core-swan .lede{color:#2E272C}
/* white discs on the blush ground, the way light falls through tulle */
body.core-swan .hero-bokeh i{opacity:var(--o);filter:blur(3px);
  background:radial-gradient(circle,rgba(255,255,255,.85) 0%,rgba(255,255,255,.8) 60%,
    rgba(255,255,255,.98) 66%,rgba(255,255,255,0) 72%)}
body.core-swan .hero-full{border-bottom:0}
/* a hairline with a small diamond under each section title */
body.core-swan .section-head h2::after{content:"";display:block;width:120px;height:9px;margin:1.3rem auto 0;
  background:
    linear-gradient(45deg,transparent 35%,#17131A 35% 65%,transparent 65%) center/9px 9px no-repeat,
    linear-gradient(#17131A,#17131A) left center/48px 1px no-repeat,
    linear-gradient(#17131A,#17131A) right center/48px 1px no-repeat}
body.core-swan .rule{display:none}
body.core-swan .svc{display:flex;flex-direction:column;transition:transform .35s ease}
body.core-swan .svc-body{display:flex;flex-direction:column;flex:1;text-align:center;padding:1.6rem .6rem 0}
body.core-swan .svc .more{margin-top:auto;align-self:center}
body.core-swan .svc figure{overflow:hidden}
body.core-swan .svc figure img{transition:transform .8s ease}
body.core-swan .svc:hover figure img{transform:scale(1.05)}
body.core-swan .svc:hover{transform:none;box-shadow:none}
body.core-swan .svc h3{font-size:1.4rem}
body.core-swan .svc .price{font-size:1.5rem}
body.core-swan .svc-bling{box-shadow:none;align-items:center;justify-content:center}
body.core-swan .svc-bling::after{content:"";position:absolute;inset:14px;border:1px solid rgba(23,19,26,.55);pointer-events:none}
body.core-swan .ba{padding:14px 0 0}
body.core-swan .ba-pair figcaption{background:#fff;color:#17131A}
body.core-swan .rev{padding:2rem 0 0}
body.core-swan .rev blockquote{font-family:'Bodoni Moda',serif;font-style:italic;font-size:1.22rem;line-height:1.55}
body.core-swan .story h2{font-size:clamp(2.2rem,4vw,3.1rem)}
body.core-swan .story .story-note{color:#17131A}
body.core-swan .story-media .wall-script{color:#fff}
body.core-swan footer p:first-child{letter-spacing:.2em}
@media (max-width:900px){
  body.core-swan .story-media{outline-offset:8px}
  body.core-swan .hero-copy h1.foil{font-size:clamp(3rem,13vw,4.4rem)}
}

/* Bodoni's display cut drops its hairlines at headline sizes. Hold the
   optical size low so the thin strokes stay visible. */
body.core-swan h1,body.core-swan h2,body.core-swan h3,body.core-swan .svc .price,body.core-swan .rev blockquote,
body.core-swan .hero-copy h1 .l2{font-optical-sizing:none;font-variation-settings:"opsz" 14}
body.core-swan .section-head h2::after{height:7px;background:
    radial-gradient(circle,#17131A 0 3px,transparent 3.6px) center/9px 7px no-repeat,
    linear-gradient(#17131A,#17131A) left center/48px 1px no-repeat,
    linear-gradient(#17131A,#17131A) right center/48px 1px no-repeat}
body.core-swan .ba-pair,body.core-swan .ba-pair figure,body.core-swan .ba-pair img,body.core-swan .ba-pair figcaption{border-radius:0}
@media (max-width:900px){
  body.core-swan .hero-script{display:none}
  body.core-swan .svc figure{aspect-ratio:3/2}
}

/* ── F · swan, plus twenty percent ───────────────────────────────────────
   Same white-and-ribbon structure. What comes back: the dusty-pink bokeh
   ground, a glossy rose button, a satin tile, a few sparkles, and the pink
   neon sign at the foot of the page (the polish sheet's own, untouched). */
body.core-swan{--shade-rgb:238,204,204;
  --bokeh:
    radial-gradient(circle at 8% 22%,rgba(255,232,220,.75) 0 70px,rgba(255,240,230,.85) 71px 75px,transparent 78px),
    radial-gradient(circle at 16% 70%,rgba(255,232,220,.6) 0 96px,rgba(255,240,230,.7) 97px 101px,transparent 105px),
    radial-gradient(circle at 88% 16%,rgba(255,232,220,.6) 0 84px,rgba(255,240,230,.7) 85px 89px,transparent 93px),
    radial-gradient(circle at 94% 78%,rgba(255,232,220,.7) 0 60px,rgba(255,240,230,.8) 61px 65px,transparent 68px),
    radial-gradient(circle at 72% 92%,rgba(255,232,220,.45) 0 110px,transparent 116px)}
/* hero: warm cream discs on dusty pink, like the reference */
body.core-swan .hero-bokeh i{filter:blur(3px);
  background:radial-gradient(circle,rgba(255,234,220,.9) 0%,rgba(255,232,218,.86) 62%,
    rgba(255,244,234,.98) 67%,rgba(255,236,224,0) 72%)}
body.core-swan .hero .star{display:block}
body.core-swan .hero-script{color:#fff;text-shadow:0 2px 14px rgba(120,40,70,.45)}

/* glossy rose button, with a slow sheen across it */
body.core-swan .btn,body.core-swan .cta.cta-sign .btn{position:relative;overflow:hidden;border-radius:2px;color:#fff;
  background:linear-gradient(180deg,#F3A9C4 0%,#E277A3 48%,#D45E90 52%,#E88DB2 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),inset 0 -1px 0 rgba(140,40,85,.25),0 10px 24px rgba(212,94,144,.32);
  text-shadow:0 1px 1px rgba(140,40,85,.35)}
body.core-swan .btn::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.55) 50%,transparent 65%) -120% 0/220% 100% no-repeat;
  animation:swan-sheen 4.5s ease-in-out infinite}
@keyframes swan-sheen{0%,55%{background-position:-120% 0}100%{background-position:220% 0}}
body.core-swan .btn:hover{background:linear-gradient(180deg,#F7B9D0 0%,#E986AE 48%,#DC6C9B 52%,#EE9CBD 100%);color:#fff;transform:translateY(-1px)}
/* the header keeps the black ribbon button, the ghost stays a line */
body.core-swan header .btn,body.core-swan .nav a.btn{background:#17131A;box-shadow:none;text-shadow:none}
body.core-swan header .btn::after{display:none}
body.core-swan header .btn:hover{background:#D45E90}
body.core-swan .btn-ghost{background:transparent;color:#17131A;border:1px solid #17131A;box-shadow:none;text-shadow:none}
body.core-swan .btn-ghost::after{display:none}
body.core-swan .btn-ghost:hover{background:#17131A;color:#fff}
@media (prefers-reduced-motion:reduce){body.core-swan .btn::after{animation:none}}

/* the ribbon gets a rose hairline top and bottom */
body.core-swan .strip{box-shadow:inset 0 2px 0 #E9A0BC,inset 0 -2px 0 #E9A0BC}

/* pale sections: blush light with a few soft discs at the edges */
body.core-swan #svc,body.core-swan .results{background:var(--bokeh),
  radial-gradient(60% 50% at 50% 0,rgba(250,218,226,.75),transparent 70%),#FFF9FA}
body.core-swan #rev{background:#FFF9FA}
body.core-swan .results .star{display:block}

/* prices and hearts in rose foil */
body.core-swan .svc .price{background:linear-gradient(100deg,#C2527F,#EE9CBD 45%,#C2527F 70%,#E58AAE);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;font-size:1.7rem}
body.core-swan .rev .hearts{color:#DD6F9C}
body.core-swan .kicker{color:#CC5C8B}
body.core-swan .hero-copy h1 .l2{color:#D0608F;-webkit-text-fill-color:#D0608F}

/* satin tile */
body.core-swan .svc-bling{background:var(--bokeh),
  linear-gradient(160deg,#FBDCE6 0%,#F2ABC4 38%,#FAD3DF 55%,#EC9AB8 100%);border-top-color:#17131A}
body.core-swan .svc-bling .star{display:block}
body.core-swan .svc-bling::after{border-color:rgba(255,255,255,.85)}
body.core-swan .svc-bling .script-line{color:#fff;text-shadow:0 2px 12px rgba(150,45,90,.45)}

/* story band: satin pink with light discs */
body.core-swan .story{background:var(--bokeh),
  linear-gradient(100deg,#F8D3DD 0%,#FCE6EC 22%,#F3BFCF 46%,#FBDDE5 64%,#F0B3C6 100%)}
body.core-swan .story-media{outline-color:#fff;box-shadow:0 30px 60px rgba(150,60,95,.22)}
body.core-swan .ba-pair figcaption{color:#CC5C8B}
body.core-swan footer{background:#17131A;color:#F3D3DF;border-top:2px solid #E9A0BC}

/* the section discs read as stickers with a hard rim; melt the edges and
   keep them out of the card area */
body.core-swan{--bokeh:
    radial-gradient(circle at 5% 20%,rgba(255,228,214,.6) 0 58px,rgba(255,228,214,0) 92px),
    radial-gradient(circle at 12% 84%,rgba(255,228,214,.42) 0 80px,rgba(255,228,214,0) 124px),
    radial-gradient(circle at 93% 14%,rgba(255,228,214,.5) 0 70px,rgba(255,228,214,0) 110px),
    radial-gradient(circle at 97% 72%,rgba(255,228,214,.55) 0 50px,rgba(255,228,214,0) 84px)}
body.core-swan .svc-bling{background:
  radial-gradient(circle at 78% 14%,rgba(255,240,230,.5) 0 46px,rgba(255,240,230,0) 78px),
  radial-gradient(circle at 18% 80%,rgba(255,240,230,.42) 0 58px,rgba(255,240,230,0) 96px),
  linear-gradient(160deg,#FBDCE6 0%,#F2ABC4 38%,#FAD3DF 55%,#EC9AB8 100%)}
body.core-swan .hero-script{color:#9C2F62;text-shadow:0 0 14px rgba(255,255,255,.95),0 0 4px #fff}

/* The swan h2 weight (500) was being applied to the sign too. Sacramento has
   one weight, so the browser faked a bold and the tube went fat. Back to the
   true hairline, no stroke, and a tighter glow so the line stays fine. */
body.core-swan .cta.cta-sign .sign{font-weight:400;font-synthesis:none;-webkit-text-stroke:0;letter-spacing:.015em;
  font-variation-settings:normal;animation-name:swan-sign}
@keyframes swan-sign{
  0%,36%,50%,86%,100%{color:#fff;
    text-shadow:0 0 1px #fff,0 0 5px rgba(255,255,255,.9),0 0 11px #FFB8D9,0 0 22px #FF7DB8,
      0 0 44px rgba(255,77,158,.7),0 9px 9px rgba(105,10,55,.28)}
  43%,93%{color:#FFDDEB;
    text-shadow:0 0 1px #FFE3EF,0 0 4px rgba(255,184,217,.35),0 0 8px rgba(255,125,184,.2),
      0 0 12px rgba(255,77,158,0),0 0 16px rgba(255,77,158,0),0 9px 9px rgba(105,10,55,.12)}
}
@media (prefers-reduced-motion:reduce){body.core-swan .cta.cta-sign .sign{animation:none;
  text-shadow:0 0 1px #fff,0 0 5px rgba(255,255,255,.9),0 0 11px #FFB8D9,0 0 22px #FF7DB8,0 0 44px rgba(255,77,158,.7)}}

/* ── F · pink and white only ─────────────────────────────────────────────
   Every black surface and line becomes rose or white. Text stays a deep
   plum-brown so it still reads. */
body.core-swan{--ink:#3A1F2B;--body:#5A3E4A;--rose:#E58AAE;--rose-deep:#C94F83;--line:#F0B7CD}
body.core-swan header{border-bottom:1px solid var(--line)}
body.core-swan header .btn,body.core-swan .nav a.btn{color:#fff;
  background:linear-gradient(180deg,#F3A9C4 0%,#E277A3 48%,#D45E90 52%,#E88DB2 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.65),0 6px 16px rgba(212,94,144,.28)}
body.core-swan header .btn:hover{background:linear-gradient(180deg,#F7B9D0,#E986AE 48%,#DC6C9B 52%,#EE9CBD)}
body.core-swan .btn-ghost{color:var(--rose-deep);border-color:var(--rose)}
body.core-swan .btn-ghost:hover{background:var(--rose);border-color:var(--rose);color:#fff}
body.core-swan .hero-copy h1.foil,body.core-swan .hero-tag{color:var(--ink)}
/* the ribbon turns to pink satin */
body.core-swan .strip{background:linear-gradient(100deg,#F3A6C5 0%,#F8C4D8 30%,#EE93B9 55%,#F7BDD3 78%,#EC8CB4 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7),inset 0 -1px 0 rgba(255,255,255,.5)}
body.core-swan .strip-item span{color:#fff;text-shadow:0 1px 2px rgba(160,50,100,.35)}
body.core-swan .strip-item svg{stroke:#fff}
body.core-swan .strip-item + .strip-item{border-color:rgba(255,255,255,.6)}
body.core-swan .svc,body.core-swan .ba,body.core-swan .rev,body.core-swan .svc-bling{border-top-color:var(--rose)}
body.core-swan .svc .more{color:var(--rose-deep);border-bottom-color:var(--rose)}
body.core-swan .section-head h2::after{background:
    radial-gradient(circle,var(--rose) 0 3px,transparent 3.6px) center/9px 7px no-repeat,
    linear-gradient(var(--rose),var(--rose)) left center/48px 1px no-repeat,
    linear-gradient(var(--rose),var(--rose)) right center/48px 1px no-repeat}
body.core-swan .story .story-note,body.core-swan .hero-script{color:var(--rose-deep)}
body.core-swan footer{background:#FBE3EC;color:#6B3550;border-top:1px solid var(--line)}

/* closing band, as in the reference: soft candy pink, fine script in light,
   white pill, only pin-point sparkles */
body.core-swan .cta.cta-sign{background:
  radial-gradient(60% 70% at 50% 38%,rgba(255,214,232,.45),transparent 70%),
  linear-gradient(120deg,#F5ADCB 0%,#F2A0C3 45%,#EE95BE 100%)}
body.core-swan .cta.cta-sign .sign{font-family:'Parisienne',cursive;font-size:clamp(2.8rem,6vw,5rem);letter-spacing:0}
body.core-swan .cta.cta-sign .star{--s:14px !important;filter:drop-shadow(0 0 4px #fff)}
body.core-swan .cta.cta-sign p{color:#fff;opacity:.95}
body.core-swan .cta.cta-sign .btn{background:#FFF4F9;color:var(--rose-deep);border-radius:999px;padding:1.35em 3.2em;
  text-shadow:none;box-shadow:0 14px 30px rgba(190,70,125,.28)}
body.core-swan .cta.cta-sign .btn::after{display:none}
body.core-swan .cta.cta-sign .btn:hover{background:#fff;color:#B03C70}
/* white labels were faint on the pale satin; deepen the band one tone */
body.core-swan .strip{background:linear-gradient(100deg,#E987B2 0%,#F2A6C6 30%,#E274A5 55%,#F09DC0 78%,#DF6C9F 100%)}
body.core-swan .strip-item span{font-weight:600;text-shadow:0 1px 3px rgba(140,35,85,.45)}
/* the model close-ups are landscape */
body.core-swan .svc figure{aspect-ratio:3/2}

/* swan hero, one size down: the clip takes two thirds of the band instead of
   78%, and the band is shorter to match so the full frame still shows */
@media (min-width:901px){
  body.core-swan .hero-full{aspect-ratio:832/306;min-height:440px}
  body.core-swan .hero-video{width:66%}
  body.core-swan .hero-shade{background:linear-gradient(90deg,
    rgb(var(--shade-rgb)) 0%, rgb(var(--shade-rgb)) 36%,
    rgba(var(--shade-rgb),.8) 43%, rgba(var(--shade-rgb),.3) 51%,
    rgba(var(--shade-rgb),0) 58%)}
}
@media (min-width:901px){
  body.core-swan .hero-script{font-size:clamp(1.7rem,2.5vw,2.3rem);right:2.2%;bottom:6%}
}

/* keyword line inside the h1: reads as the small label it replaced */
.hero-copy h1 .h1-kw{display:block;font-family:'Jost',sans-serif;font-style:normal;font-size:.8rem;font-weight:500;
  letter-spacing:.24em;text-transform:uppercase;line-height:1.4;margin:0 0 1.1rem;
  color:var(--ink);-webkit-text-fill-color:currentColor;text-shadow:none;font-variation-settings:normal}
body.core-swan .rev-score{margin-top:1.2rem;color:var(--body)}
body.core-swan .rev-score b{color:#C94F83;font-weight:600}

/* home Q&A */
.qa{background:#FFF9FA}
.qa-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.6rem,3vw,2.8rem)}
.qa-item{border-top:1px solid #E58AAE;padding-top:1.6rem}
.qa-item h3{font-family:'Bodoni Moda',serif;font-weight:500;font-size:1.35rem;line-height:1.3;margin:0 0 .9rem;
  font-optical-sizing:none;font-variation-settings:"opsz" 14;color:var(--ink);text-wrap:balance}
.qa-item p{margin:0;font-size:1.02rem;line-height:1.7;color:var(--body);text-wrap:pretty}
.qa .results-cta{margin-top:clamp(2.2rem,4vw,3.2rem);text-align:center}
@media (max-width:900px){.qa-grid{grid-template-columns:1fr}}

/* ── audit fixes, 2026-09-19 ───────────────────────────────────────────
   Between 901 and 1200px the hero's min-height was being turned into a
   min-width by its aspect-ratio (440 x 832/306 = 1196px), which pushed the
   page sideways. Below 1200 the band takes a plain height instead. */
@media (min-width:901px) and (max-width:1200px){
  body.core-swan .hero-full{aspect-ratio:auto;min-height:0;height:440px}
}
body.core-swan{overflow-x:clip}
/* no single word left alone on a last line */
body.core-swan p,body.core-swan blockquote,body.core-swan figcaption{text-wrap:pretty}
body.core-swan h1,body.core-swan h2,body.core-swan h3{text-wrap:balance}
@media (max-width:600px){body.core-swan .hero-loc{letter-spacing:.14em;font-size:.72rem;white-space:nowrap}}

/* ── phone fixes ───────────────────────────────────────────────────────
   The crossfade copy of the hero clip sat in normal flow on phones and left
   a blank block the height of a second video. It always overlays the first. */
@media (max-width:900px){
  .hero-full{position:relative}
  .hero-full .hero-rest{position:absolute !important;top:0;left:0;right:0;width:100%;height:auto;aspect-ratio:832/464}
  body.core-swan .hero .star{display:none}
  body.core-swan .hero-full{background:linear-gradient(180deg,#FBE3EC 0,#FFF9FA 100%)}
  body.core-swan .hero-full .hero-copy{padding:2rem 0 2.6rem}
  body.core-swan .hero-copy h1 .h1-kw{font-size:.72rem;letter-spacing:.2em;margin-bottom:.8rem}
  body.core-swan .hero-copy .lede{font-size:1.05rem}
}
