.luffi-welcome{margin:0;background:#25202c;color:#302732;font-family:Inter,-apple-system,BlinkMacSystemFont,sans-serif;-webkit-font-smoothing:antialiased}
.luffi-welcome *{box-sizing:border-box}
.luffi-welcome .hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;align-items:center;padding:24px 22px max(28px,env(safe-area-inset-bottom));background-repeat:no-repeat;background-attachment:fixed}
.luffi-welcome .logo-wrap{height:250px;flex-shrink:0;display:flex;align-items:center;justify-content:center;width:100%}
.luffi-welcome .logo{opacity:0;margin:0;font-size:50px}
.luffi-welcome a{color:#8c305d;text-underline-offset:3px}
.luffi-display-controls{position:absolute;right:16px;top:max(10px,env(safe-area-inset-top));display:flex;gap:8px}
.luffi-display-controls button{border:1px solid #ffffff4d;border-radius:24px;padding:8px 12px;background:#30273480;color:white;font:600 12px Inter,sans-serif;cursor:pointer}
.lf-card{width:100%;max-width:400px;padding:26px 24px;background:rgba(255,251,249,.96);border:1px solid #ffffffb3;border-radius:26px;box-shadow:0 15px 50px #1d12252b;backdrop-filter:blur(18px)}
.lf-card h2{font:600 32px/1.05 'Cormorant Garamond',Georgia,serif;text-align:center;margin:8px 0 14px;letter-spacing:-.3px}
.lf-card p{font-size:14px;line-height:1.55;margin:12px 0}
.lf-card .lf-sub{text-align:center;color:#6e6170;margin:0 0 22px}
.lf-progress{display:flex;gap:8px;margin:0 0 16px}
.lf-progress span{height:3px;background:#e8dce3;flex:1;border-radius:4px}
.lf-progress .done{background:#b23b71}
.lf-card label,.lf-birth-card label{display:block;font-size:13px;font-weight:500;margin:16px 0 7px}
.lf-card input:not([type=checkbox]):not([type=radio]),.lf-birth-card input{display:block;width:100%;max-width:100%;height:50px;padding:12px 14px;border-radius:15px;border:1px solid #ded3db;background:#fffdfd;color:#302732;font:400 16px Inter,sans-serif;min-width:0}
.lf-card input:focus,.lf-birth-card input:focus{outline:2px solid #b23b71;outline-offset:2px}
.lf-card fieldset{margin:16px 0 0;padding:0;border:0}
.lf-card legend{font-size:13px;font-weight:500;margin-bottom:8px}
.lf-genders{display:flex;gap:10px}
.lf-card .lf-gender{margin:0;flex:1;position:relative;font-size:14px}
.lf-gender input{position:absolute;opacity:0}
.lf-gender span{display:block;padding:15px 7px;border:1px solid #ded3db;border-radius:15px;text-align:center;background:#fffdfd}
.lf-gender input:checked+span{border-color:#a7396a;background:#f7e3eb;color:#8c305d;box-shadow:inset 0 0 0 1px #a7396a}
.lf-gender input:focus-visible+span{outline:2px solid #a7396a;outline-offset:3px}
.lf-primary,.lf-secondary{display:block;width:100%;border-radius:18px;padding:15px 18px;border:1px solid transparent;font:600 14px/1.4 Inter,-apple-system,sans-serif;cursor:pointer;margin-top:18px;text-align:center}
.lf-primary{background:#efd0dc;color:#57213b}
.lf-primary:hover{background:#e8bece}
.lf-primary:disabled{opacity:.55;cursor:wait}
.lf-secondary{background:transparent;border-color:#b6a7b3;color:inherit;margin-top:10px}
.lf-card .lf-text-button{display:block;border:0;background:none;color:#8c305d;font:400 13px/1.5 Inter,sans-serif;text-decoration:underline;text-underline-offset:4px;margin:18px auto 0;padding:4px;cursor:pointer}
.lf-card .lf-consent{display:flex;align-items:flex-start;gap:9px;font-weight:400;font-size:11px;line-height:1.5;color:#6e6170;margin:14px 0}
.lf-consent input{width:17px;height:17px;flex-shrink:0;margin:1px 0 0;accent-color:#a7396a}
.lf-card .lf-error,.lf-birth-card .lf-error{color:#aa214d;background:#fbe8ed;border-radius:10px;padding:10px 12px;font-size:13px;line-height:1.5}
.lf-error:empty{display:none}
.lf-card .lf-note{font-size:12px;color:#7d6d7c}
.lf-code{font-size:26px!important;letter-spacing:9px;text-align:center}
.lf-password{position:relative}
.lf-password input{padding-right:78px!important}
.lf-password button{position:absolute;right:10px;top:0;height:50px;border:0;background:none;color:#8c305d;font:500 11px Inter,sans-serif;cursor:pointer}
.lf-footer{display:flex;justify-content:center;flex-wrap:wrap;gap:10px 20px;margin:20px 0 0;font:400 11px/1.5 Inter,sans-serif}
.luffi-welcome .lf-footer a{color:#fff;text-shadow:0 1px 3px #271327}
.lf-birth-card{margin:14px 0;padding:18px;background:var(--color-card,var(--bg-card,#fff7fc));border:1px solid #b98aa466;border-radius:18px;color:var(--color-text,inherit)}
.lf-birth-card h3{margin:0 0 9px;font-size:17px}
.lf-birth-card p{font-size:13px;line-height:1.5}
.lf-birth-card .lf-birth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
#luffi-birth-card input[type=date],#luffi-birth-card input[type=time]{display:inline-flex;align-items:center;justify-content:flex-start;text-align:left;color-scheme:inherit}
#luffi-birth-card input::-webkit-date-and-time-value{margin:0;min-height:1.4em;text-align:left}
#luffi-birth-card input::-webkit-datetime-edit{padding:0}
.lf-birth-card label{margin-top:8px}
.lf-birth-card .lf-primary{margin-top:14px}
.lf-city-options{display:grid;gap:3px;margin-top:4px;max-height:190px;overflow:auto}
.lf-city-options button{font:400 13px/1.4 Inter,sans-serif;text-align:left;border:1px solid #b98aa455;background:var(--color-card,#fff7fc);color:inherit;border-radius:8px;padding:10px;cursor:pointer}
.lf-locked{position:relative}
.lf-lock-icon{width:12px;height:12px;margin-left:4px;vertical-align:middle;opacity:.65;flex-shrink:0}
.lf-dialog{position:fixed;inset:0;z-index:100500;display:flex;align-items:center;justify-content:center;padding:22px;background:#20152699;backdrop-filter:blur(6px)}
.lf-dialog .lf-card{color:#302732}
.lf-dialog button:focus-visible,.lf-card button:focus-visible{outline:2px solid #a7396a;outline-offset:3px}
@media(min-width:900px){.luffi-welcome .hero{padding-top:28px}.luffi-welcome .logo-wrap{height:max(200px,31vh,17.5vw)}.lf-card{max-width:420px;padding:30px}.lf-footer{margin-top:24px}}
@media(max-width:360px){.luffi-welcome .hero{padding-left:14px;padding-right:14px}.lf-card{padding:22px 18px}.lf-birth-grid{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){.lf-dialog,.lf-card{scroll-behavior:auto}}
html[data-lf-theme=dark] .luffi-welcome{color:#f5ebf2}
html[data-lf-theme=dark] .luffi-welcome .lf-card{background:rgba(35,26,41,.96);border-color:#6e526d}
html[data-lf-theme=dark] .luffi-welcome .lf-card input:not([type=checkbox]):not([type=radio]),html[data-lf-theme=dark] .luffi-welcome .lf-gender span{background:#382d3e;border-color:#71576d;color:#fff5fd}
html[data-lf-theme=dark] .luffi-welcome .lf-card .lf-sub,html[data-lf-theme=dark] .luffi-welcome .lf-card .lf-note,html[data-lf-theme=dark] .luffi-welcome .lf-card .lf-consent{color:#cfbfcf}
html[data-lf-theme=dark] .luffi-welcome .lf-card a,html[data-lf-theme=dark] .luffi-welcome .lf-card .lf-text-button,html[data-lf-theme=dark] .luffi-welcome .lf-password button{color:#f0b4d0}
html[data-lf-theme=dark] .luffi-welcome .lf-gender input:checked+span{background:#5e354e;border-color:#e59cbd}
.luffi-welcome .pd-cookie-banner{display:none;position:fixed;bottom:0;left:0;right:0;z-index:9000;padding:14px 18px max(14px,env(safe-area-inset-bottom));background:#211827f5;color:#f3e5ef;font-size:12px;line-height:1.5;box-shadow:0 -2px 20px #21182733}
.luffi-welcome .pd-cookie-banner.show{display:block}
.luffi-welcome .pd-cookie-banner__txt{max-width:720px;margin:0 auto 10px;text-align:center}
.luffi-welcome .pd-cookie-banner a{color:#f0b4d0}
.luffi-welcome .pd-cookie-banner__btns{text-align:center}
.luffi-welcome .pd-cookie-btn{border:0;border-radius:20px;padding:9px 22px;color:#57213b;background:#efd0dc;font:600 12px Inter,sans-serif;cursor:pointer}

/* Luffi uses a plain application background in both themes. */
html[data-site-brand=luffi] #stars-bg{display:none}

/* The shared compatibility button keeps its handler and label on both brands. */
html[data-site-brand=luffi] #screen-dating .d-btn-yin .star-pair{background:url('/assets/brands/luffi/compatibility-heart.png') center/88% auto no-repeat;filter:drop-shadow(0 5px 7px #14092361);transform-origin:50% 60%;animation:lf-compat-heart-sway 3.6s ease-in-out infinite;animation-duration:3.6s!important}
html[data-site-brand=luffi] #screen-dating .d-btn-yin .star-pair svg{display:none}
html[data-site-brand=luffi] #screen-dating .d-btn-yin:focus-visible{outline:2px solid #f6a5d2;outline-offset:4px}
@keyframes lf-compat-heart-sway{0%,100%{transform:translate3d(0,1px,0) rotate(-2deg) scale(1)}50%{transform:translate3d(0,-2px,0) rotate(2deg) scale(1.035)}}
@media(prefers-reduced-motion:reduce){html[data-site-brand=luffi] #screen-dating .d-btn-yin .star-pair{animation:none!important;transform:none}}
