/* ════════════════════════════════════════════════════════
   Baptism & Baby Shower Invite Woo — card.css v1.0
   Boy Baptism (soft blue) · Girl Baptism (blush pink)
   Baby Shower (lavender-mint)
   White & Pastel Flowers · Gentle · Delicate · Serene
   ════════════════════════════════════════════════════════ */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,300;0,400;0,500;1,300;1,400&family=EB+Garamond:ital,wght@0,400;0,500;1,400&display=swap');

/* ── FORM ── */
.bapw-form-wrap {
    margin:1.4rem 0 1rem; padding:1.8rem 2rem;
    background:#0a0c0e;
    border:1px solid rgba(200,220,240,.15);
    border-radius:16px;
    font-family:'EB Garamond',Georgia,serif;
}
.bapw-form-header { display:flex; align-items:center; gap:14px; margin-bottom:1.3rem; }
.bapw-form-icon   { font-size:36px; }
.bapw-form-title  { font-size:17px; font-weight:400; color:#d8eaf8; font-family:'Cormorant Garamond',serif; letter-spacing:.05em; }
.bapw-form-sub    { font-size:13px; color:#5a6a7a; margin-top:3px; font-style:italic; }

/* Theme chips */
.bapw-theme-row  { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:1.2rem; }
.bapw-theme-label{ font-size:11px; color:#5a6a7a; font-weight:600; text-transform:uppercase; letter-spacing:.1em; }
.bapw-theme-opt  { cursor:pointer; }
.bapw-theme-opt input { display:none; }
.bapw-chip {
    display:inline-block; padding:7px 16px;
    border-radius:20px; border:1px solid rgba(255,255,255,.08);
    font-size:13px; font-family:'Cormorant Garamond',serif; font-weight:400; letter-spacing:.06em;
    color:#7a8a9a; background:rgba(255,255,255,.04);
    transition:all .25s; user-select:none;
}
.bapw-theme-opt input:checked ~ .bapw-chip { color:#fff; }
.bapw-theme-opt input:checked ~ .bapw-boy    { background:rgba(120,190,240,.18); border-color:#90c8f0; }
.bapw-theme-opt input:checked ~ .bapw-girl   { background:rgba(240,160,190,.18); border-color:#f0a0be; }
.bapw-theme-opt input:checked ~ .bapw-shower { background:rgba(180,160,240,.18); border-color:#c0b0f0; }

/* Fields */
.bapw-field       { margin-bottom:1rem; }
.bapw-field-hero  {
    background:rgba(200,220,240,.05); border:1px dashed rgba(200,220,240,.2);
    border-radius:10px; padding:.9rem 1.1rem; margin-bottom:1.2rem;
}
.bapw-field-row   { display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-bottom:1rem; }
.bapw-field-row .bapw-field { margin-bottom:0; }
.bapw-field label {
    display:block; font-size:11px; font-weight:400;
    color:#8a9aaa; letter-spacing:.1em; text-transform:uppercase; margin-bottom:7px;
    font-family:'EB Garamond',serif;
}
.bapw-lang-note { font-size:11px; color:#4a5a6a; text-transform:none; font-weight:400; letter-spacing:0; font-style:italic; }
.bapw-field input, .bapw-field textarea {
    width:100%; padding:11px 15px;
    background:rgba(255,255,255,.04); border:1px solid rgba(200,220,240,.12);
    border-radius:8px; font-size:15px; color:#e8f2fc;
    font-family:'EB Garamond',Georgia,serif; resize:vertical; outline:none;
    transition:border-color .22s, background .22s; box-sizing:border-box;
}
.bapw-field input::placeholder, .bapw-field textarea::placeholder { color:#364656; font-style:italic; }
.bapw-field input:focus, .bapw-field textarea:focus { border-color:#90c8f0; background:rgba(255,255,255,.07); }

/* Sound toggle */
.bapw-sound-toggle { margin-bottom:1.2rem; }
.bapw-toggle-label  { display:flex; align-items:center; gap:10px; cursor:pointer; user-select:none; }
.bapw-toggle-track  { position:relative; width:42px; height:24px; background:rgba(255,255,255,.07); border:1px solid rgba(200,220,240,.15); border-radius:12px; flex-shrink:0; transition:background .25s; }
.bapw-toggle-thumb  { position:absolute; top:3px; left:3px; width:16px; height:16px; border-radius:50%; background:#3a5070; transition:transform .25s, background .25s; }
.bapw-toggle-label input:checked ~ .bapw-toggle-track { background:rgba(144,200,240,.2); border-color:#90c8f0; }
.bapw-toggle-label input:checked ~ .bapw-toggle-track .bapw-toggle-thumb { transform:translateX(18px); background:#90c8f0; }
.bapw-toggle-label input { display:none; }
.bapw-toggle-text { font-size:14px; color:#8090a0; font-family:'EB Garamond',serif; font-style:italic; }

.bapw-preview-btn {
    width:100%; padding:14px;
    background:linear-gradient(135deg, #1a3050 0%, #2a5080 50%, #70b0e0 100%);
    color:#fff; border:none; border-radius:10px;
    font-size:15px; font-weight:400; font-family:'Cormorant Garamond',serif; letter-spacing:.12em;
    cursor:pointer; transition:opacity .2s, transform .15s;
}
.bapw-preview-btn:hover  { opacity:.86; }
.bapw-preview-btn:active { transform:scale(.98); }

/* ── MODAL ── */
.bapw-modal {
    position:fixed; inset:0; z-index:99999;
    background:rgba(0,0,0,.75);
    display:flex; align-items:center; justify-content:center;
    animation:bapwFadeIn .4s ease;
}
@keyframes bapwFadeIn { from{opacity:0} to{opacity:1} }
.bapw-modal-inner { width:min(96vw,560px); border-radius:22px; overflow:hidden; }

/* ── SCENE ── */
.bapw-scene {
    position:relative; width:100%; height:510px; overflow:hidden;
    background:radial-gradient(ellipse at 50% 30%, #0d1520 0%, #060c14 55%, #020608 100%);
    transition:background .5s;
}
.bapw-scene.theme-boy    { background:radial-gradient(ellipse at 50% 30%, #080e1a 0%, #040810 55%, #020508 100%); }
.bapw-scene.theme-girl   { background:radial-gradient(ellipse at 50% 30%, #140a12 0%, #0c060e 55%, #060408 100%); }
.bapw-scene.theme-shower { background:radial-gradient(ellipse at 50% 30%, #0c0a14 0%, #07050e 55%, #040308 100%); }

.bapw-layer-canvas { position:absolute; inset:0; width:100%; height:100%; pointer-events:none; }

/* Flowers */
.bapw-flowers-layer { position:absolute; inset:0; pointer-events:none; z-index:2; overflow:hidden; }
.bapw-flower-float  { position:absolute; bottom:-150px; animation:bapwFlowerRise ease-in-out infinite; }
@keyframes bapwFlowerRise {
    0%   { transform:translateY(0) rotate(-3deg) scale(.92); opacity:0; }
    7%   { opacity:.85; }
    50%  { transform:translateY(-250px) rotate(2deg) scale(1); }
    92%  { opacity:.5; }
    100% { transform:translateY(-580px) rotate(-2deg) scale(.88); opacity:0; }
}

/* Bokeh */
.bapw-bokeh-layer  { position:absolute; inset:0; pointer-events:none; z-index:2; }
.bapw-bokeh-dot    { position:absolute; border-radius:50%; animation:bapwBokeh ease-in-out infinite; filter:blur(6px); }
@keyframes bapwBokeh { 0%,100%{opacity:.06;transform:scale(.7)} 50%{opacity:.18;transform:scale(1.3)} }

/* Dust sparkles */
.bapw-dust-layer { position:absolute; inset:0; pointer-events:none; z-index:2; }
.bapw-dust { position:absolute; animation:bapwDust ease-in-out infinite; }
@keyframes bapwDust { 0%,100%{opacity:.1;transform:scale(.5)} 50%{opacity:.7;transform:scale(1.5)} }

/* ── LARGE 3-D CARD ── */
.bapw-scene-ui {
    position:absolute; inset:0; z-index:10;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:14px;
    pointer-events:none;
}
#bapw-card-wrap { perspective:1200px; cursor:pointer; pointer-events:all; }
#bapw-card3d {
    width:350px; height:238px;
    position:relative; transform-style:preserve-3d;
    transition:transform 1.1s cubic-bezier(.35,.1,.2,1);
    animation:bapwFloat 5.5s ease-in-out infinite;
}
#bapw-card3d.bapw-flipped {
    transform:rotateY(180deg);
    animation:bapwFloatF 5.5s ease-in-out infinite;
}
@keyframes bapwFloat  { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-9px)} }
@keyframes bapwFloatF { 0%,100%{transform:rotateY(180deg) translateY(0)} 50%{transform:rotateY(180deg) translateY(-9px)} }

.bapw-face {
    position:absolute; inset:0;
    backface-visibility:hidden; -webkit-backface-visibility:hidden;
    border-radius:14px; overflow:hidden;
    display:flex; flex-direction:column;
    align-items:center; justify-content:center;
    padding:14px 20px; text-align:center;
    gap:3px;
}

/* ── FRONT FACE — boy (default) ── */
.bapw-front {
    background:linear-gradient(155deg, #050d18 0%, #0d1e34 30%, #162d4e 55%, #0d1e34 75%, #050d18 100%);
    border:1px solid rgba(144,200,240,.35);
    box-shadow:0 0 40px rgba(100,170,230,.2), inset 0 0 35px rgba(0,0,0,.55);
    transition:background .5s, border-color .5s, box-shadow .5s;
}
.bapw-front.theme-girl {
    background:linear-gradient(155deg, #180610 0%, #2e0e20 30%, #461630 55%, #2e0e20 75%, #180610 100%);
    border-color:rgba(240,160,190,.35);
    box-shadow:0 0 40px rgba(220,120,165,.18), inset 0 0 35px rgba(0,0,0,.55);
}
.bapw-front.theme-shower {
    background:linear-gradient(155deg, #0c0816 0%, #16102a 30%, #22183e 55%, #16102a 75%, #0c0816 100%);
    border-color:rgba(200,180,245,.3);
    box-shadow:0 0 40px rgba(170,145,235,.15), inset 0 0 35px rgba(0,0,0,.55);
}

/* Very subtle, slow pearl-white shimmer */
.bapw-shine {
    position:absolute; inset:0; border-radius:14px; pointer-events:none;
    background:linear-gradient(108deg,
        transparent 22%, transparent 38%,
        rgba(255,255,255,.06) 46%, rgba(255,255,255,.14) 50%,
        rgba(255,255,255,.06) 54%, transparent 62%, transparent 100%);
    animation:bapwShine 5.5s ease-in-out infinite;
}
@keyframes bapwShine {
    0%,100%{ opacity:0; transform:translateX(-120%); }
    12%    { opacity:1; }
    65%    { opacity:1; transform:translateX(120%); }
    66%    { opacity:0; }
}

/* Wreath containers */
.bapw-top-wreath, .bapw-bottom-wreath { width:200px; height:24px; flex-shrink:0; }
.bapw-bottom-wreath { transform:rotate(180deg); }

/* Front typography */
.bapw-front-heading {
    font-family:'Cormorant Garamond',serif; font-size:14px; font-weight:300; font-style:italic;
    letter-spacing:.18em; line-height:1.3; word-break:break-word; max-width:310px;
    background:linear-gradient(180deg, #f0f8ff 0%, #b8d8f4 50%, #7ab0d8 100%);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    transition:filter .4s;
}
.bapw-front.theme-girl .bapw-front-heading {
    background:linear-gradient(180deg, #fff5f8 0%, #f4c0d0 50%, #d890aa 100%);
    -webkit-background-clip:text; background-clip:text;
}
.bapw-front.theme-shower .bapw-front-heading {
    background:linear-gradient(180deg, #f8f5ff 0%, #d4c4f8 50%, #a890e0 100%);
    -webkit-background-clip:text; background-clip:text;
}

.bapw-front-ornament {
    font-size:20px; opacity:.65; line-height:1;
    color:#90c8f0; margin:1px 0;
    font-family:'Cormorant Garamond',serif;
    transition:color .4s;
}
.bapw-front.theme-girl   .bapw-front-ornament { color:#f0a0be; }
.bapw-front.theme-shower .bapw-front-ornament { color:#c8b0f0; }

.bapw-front-name {
    font-family:'Cormorant Garamond',serif; font-size:21px; font-weight:400; font-style:italic;
    color:#dff0ff; letter-spacing:.06em; line-height:1.2;
    text-shadow:0 1px 8px rgba(100,175,230,.45);
    transition:color .4s, text-shadow .4s;
}
.bapw-front.theme-girl   .bapw-front-name { color:#fde8f0; text-shadow:0 1px 8px rgba(220,130,165,.4); }
.bapw-front.theme-shower .bapw-front-name { color:#efe8ff; text-shadow:0 1px 8px rgba(170,145,235,.38); }

.bapw-front-divider { width:50%; height:1px; background:rgba(200,230,255,.14); margin:3px 0; }
.bapw-front.theme-girl   .bapw-front-divider { background:rgba(240,180,210,.14); }
.bapw-front.theme-shower .bapw-front-divider { background:rgba(210,190,250,.14); }

.bapw-front-date {
    font-family:'Cormorant Garamond',serif; font-size:12px; font-style:italic;
    color:rgba(180,215,245,.55); letter-spacing:.12em;
    transition:color .4s;
}
.bapw-front.theme-girl   .bapw-front-date { color:rgba(245,185,210,.55); }
.bapw-front.theme-shower .bapw-front-date { color:rgba(210,190,245,.55); }
.bapw-front-hint { font-size:10px; color:rgba(180,215,245,.3); letter-spacing:.05em; margin-top:2px; font-family:'EB Garamond',serif; font-style:italic; }

/* ── BACK ── */
.bapw-back {
    background:linear-gradient(155deg, #030810 0%, #0a1220 40%, #060e18 70%, #030810 100%);
    border:1px solid rgba(144,200,240,.22);
    transform:rotateY(180deg);
    box-shadow:0 8px 45px rgba(60,120,180,.22);
    gap:4px;
}
.bapw-back-shine {
    position:absolute; inset:0; border-radius:14px;
    background:radial-gradient(ellipse at 50% 50%, rgba(144,200,240,.05) 0%, transparent 65%);
}
.bapw-back-top-ornament, .bapw-back-bottom-ornament {
    font-size:14px; color:rgba(144,200,240,.4);
    font-family:'Cormorant Garamond',serif; line-height:1;
}
.bapw-back-name-lg {
    font-family:'Cormorant Garamond',serif; font-size:18px; font-style:italic; font-weight:400;
    background:linear-gradient(180deg,#f0f8ff,#b8d8f4,#7ab0d8);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    letter-spacing:.06em; line-height:1.2;
}
.bapw-back-divider { width:50%; height:1px; background:linear-gradient(90deg,transparent,rgba(144,200,240,.22),transparent); margin:2px 0; }
.bapw-back-row {
    font-family:'Cormorant Garamond',serif; font-size:11.5px; color:#b0cce0;
    line-height:1.55; text-align:center; letter-spacing:.04em;
}
.bapw-back-row strong { color:#cce0f0; font-weight:500; }
.bapw-back-msg {
    font-family:'EB Garamond',serif; font-size:11px; color:#809ab0;
    line-height:1.65; font-style:italic; text-align:center;
    max-width:310px; word-break:break-word; margin-top:2px;
}
.bapw-back-hint { font-size:10px; color:rgba(144,200,240,.28); letter-spacing:.05em; font-family:'EB Garamond',serif; font-style:italic; }

/* Modal actions */
.bapw-modal-actions { display:flex; flex-direction:column; align-items:center; gap:9px; pointer-events:all; }
.bapw-sound-btn {
    padding:8px 24px;
    background:rgba(144,200,240,.08); border:1px solid rgba(144,200,240,.22);
    border-radius:20px; color:#90c8f0;
    font-size:13px; font-family:'Cormorant Garamond',serif; font-style:italic;
    cursor:pointer; letter-spacing:.08em; transition:background .2s;
}
.bapw-sound-btn:hover { background:rgba(144,200,240,.18); }
.bapw-close-btn {
    padding:11px 32px;
    background:linear-gradient(135deg, #1a3050, #2a5080, #70b0e0);
    color:#fff; border:none; border-radius:10px;
    font-size:14px; font-weight:400; font-family:'Cormorant Garamond',serif; letter-spacing:.1em;
    cursor:pointer; transition:opacity .2s;
}
.bapw-close-btn:hover { opacity:.86; }

/* ═══════════════════════════════
   THANK-YOU PAGE
   ═══════════════════════════════ */
.bapw-ty-wrap {
    margin:2rem 0; padding:2rem 1.8rem;
    background:#0a0c0e; border:1px solid rgba(200,220,240,.12);
    border-radius:18px; font-family:'EB Garamond',Georgia,serif;
}
.bapw-ty-heading {
    text-align:center; font-family:'Cormorant Garamond',serif; font-size:24px; font-style:italic; font-weight:300;
    background:linear-gradient(180deg,#f0f8ff,#b8d8f4,#7ab0d8);
    -webkit-background-clip:text; -webkit-text-fill-color:transparent; background-clip:text;
    letter-spacing:.06em; margin-bottom:.3rem;
}
.bapw-ty-heading.theme-girl   { background:linear-gradient(180deg,#fff5f8,#f4c0d0,#d890aa); -webkit-background-clip:text; background-clip:text; }
.bapw-ty-heading.theme-shower { background:linear-gradient(180deg,#f8f5ff,#d4c4f8,#a890e0); -webkit-background-clip:text; background-clip:text; }
.bapw-ty-sub  { text-align:center; font-size:14px; color:#4a6070; margin-bottom:1rem; font-style:italic; }

.bapw-ty-scene {
    position:relative; width:100%; height:400px;
    border-radius:14px; overflow:hidden; margin-bottom:1.4rem;
    background:radial-gradient(ellipse at 50% 30%, #0d1520 0%, #060c14 55%, #020608 100%);
}
.bapw-ty-scene.theme-boy    { background:radial-gradient(ellipse at 50% 30%, #080e1a 0%, #040810 55%, #020508 100%); }
.bapw-ty-scene.theme-girl   { background:radial-gradient(ellipse at 50% 30%, #140a12 0%, #0c060e 55%, #060408 100%); }
.bapw-ty-scene.theme-shower { background:radial-gradient(ellipse at 50% 30%, #0c0a14 0%, #07050e 55%, #040308 100%); }

#bapw-ty-card3d {
    width:330px; height:224px;
    position:relative; transform-style:preserve-3d;
    transition:transform 1.1s cubic-bezier(.35,.1,.2,1);
    animation:bapwFloat 5.5s ease-in-out infinite; cursor:pointer;
}
#bapw-ty-card3d.bapw-flipped { transform:rotateY(180deg); animation:bapwFloatF 5.5s ease-in-out infinite; }

/* Share */
.bapw-share-label {
    font-family:'Cormorant Garamond',serif; font-size:13px; font-style:italic;
    color:#4a6070; letter-spacing:.12em; text-align:center; margin-bottom:.8rem;
}
.bapw-share-grid  { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bapw-sh-btn {
    display:flex; align-items:center; justify-content:center; gap:8px;
    padding:12px 8px; border-radius:10px; border:1px solid;
    font-size:13px; font-family:'Cormorant Garamond',serif; font-style:italic; letter-spacing:.05em;
    cursor:pointer; background:none; text-decoration:none;
    transition:opacity .2s, transform .15s;
}
.bapw-sh-btn:hover  { opacity:.82; }
.bapw-sh-btn:active { transform:scale(.97); }
.bapw-sh-btn .ic { font-size:16px; font-style:normal; }
.bapw-sh-btn svg { width:20px; height:20px; flex-shrink:0; }

.sh-native { grid-column:1/-1; background:rgba(144,200,240,.1); border-color:rgba(144,200,240,.3); color:#90c8f0; }
.sh-viber  { background:rgba(115,96,242,.12); border-color:rgba(115,96,242,.3); color:#c0a0f0; }
.sh-wa     { background:rgba(37,211,102,.08); border-color:rgba(37,211,102,.25); color:#60e090; }
.sh-sms    { background:rgba(90,160,255,.08); border-color:rgba(90,160,255,.22); color:#80b8f0; }
.sh-copy   { background:rgba(255,255,255,.04); border-color:rgba(255,255,255,.1); color:#8090a0; }

.bapw-sound-ty-btn {
    display:flex; align-items:center; justify-content:center; gap:8px;
    width:100%; padding:11px; margin-bottom:10px;
    background:rgba(144,200,240,.07); border:1px solid rgba(144,200,240,.2);
    border-radius:10px; color:#90c8f0;
    font-size:14px; font-family:'Cormorant Garamond',serif; font-style:italic; letter-spacing:.06em;
    cursor:pointer; transition:background .2s;
}
.bapw-sound-ty-btn:hover { background:rgba(144,200,240,.16); }
