/* BLESS account pages: sign in, create account, my account. Uses the theme's tokens when present, with its own fallbacks. */
.bacc{
	--c-wine:var(--bless-burgundy,#6F1728); --c-wine-d:var(--bless-burgundy-dark,#56101E); --c-gold:var(--bless-champagne,#C9A66B);
	--c-cream:var(--bless-cream,#F7F3EC); --c-ink:var(--bless-charcoal,#1E1B19); --c-rose:var(--bless-rose,#B98282);
	--serif:var(--font-serif,'Cormorant Garamond',Georgia,serif); --sans:var(--font-sans,'Jost','Helvetica Neue',Arial,sans-serif);
	position:relative;overflow:hidden;isolation:isolate;display:flex;align-items:center;justify-content:center;
	min-height:calc(100vh - 118px);padding:48px 16px 64px;background:radial-gradient(120% 90% at 50% 0%,#8a2037 0%,var(--c-wine) 38%,#3a0a15 100%);
	font-family:var(--sans);color:var(--c-ink);
}
.bacc *,.bacc *::before,.bacc *::after{box-sizing:border-box}

/* ---------- animated background (the site's own floral line-art) ---------- */
.bacc-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}
.bacc-pattern{position:absolute;inset:-260px;background-size:260px 260px;opacity:.9;animation:bacc-drift 90s linear infinite}
@keyframes bacc-drift{to{transform:translate3d(260px,260px,0)}}
.bacc-glow{position:absolute;left:50%;top:42%;width:min(900px,140vw);aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
	background:radial-gradient(closest-side,rgba(201,166,107,.28),rgba(201,166,107,0) 70%);animation:bacc-pulse 7s ease-in-out infinite}
@keyframes bacc-pulse{50%{opacity:.55;transform:translate(-50%,-50%) scale(1.08)}}
.bacc-arch{position:absolute;left:50%;bottom:-2%;height:112%;min-height:640px;width:auto;max-width:none;transform:translateX(-50%);
	filter:drop-shadow(0 0 10px rgba(201,166,107,.45));opacity:0;animation:bacc-arch-in 1.6s .1s cubic-bezier(.2,.7,.2,1) forwards,bacc-float 10s 1.7s ease-in-out infinite}
@keyframes bacc-arch-in{from{opacity:0;transform:translate(-50%,40px) scale(.96)}to{opacity:.95;transform:translate(-50%,0) scale(1)}}
@keyframes bacc-float{0%,100%{transform:translate(-50%,0)}50%{transform:translate(-50%,-10px)}}
.bacc-sprig{position:absolute;bottom:-30px;width:clamp(170px,22vw,330px);height:auto;opacity:.85;transform-origin:50% 100%;filter:drop-shadow(0 0 6px rgba(201,166,107,.35))}
.bacc-sprig--l{left:-2%;transform:rotate(-8deg);animation:bacc-sway-l 8s ease-in-out infinite alternate}
.bacc-sprig--r{right:-2%;transform:scaleX(-1) rotate(-8deg);animation:bacc-sway-r 9s ease-in-out infinite alternate}
@keyframes bacc-sway-l{to{transform:rotate(3deg)}}
@keyframes bacc-sway-r{to{transform:scaleX(-1) rotate(3deg)}}
.bacc-petal{position:absolute;left:var(--x);bottom:-30px;width:var(--s);height:calc(var(--s)*1.7);border-radius:100% 0 100% 0;
	background:linear-gradient(135deg,rgba(231,205,150,.95),rgba(201,166,107,.35));opacity:0;animation:bacc-rise var(--d) var(--w) linear infinite}
@keyframes bacc-rise{0%{opacity:0;transform:translate3d(0,0,0) rotate(0)}12%{opacity:.85}88%{opacity:.5}100%{opacity:0;transform:translate3d(34px,-105vh,0) rotate(300deg)}}

.bacc-wrap{position:relative;width:100%;max-width:470px;margin:0 auto}
.bacc-card--wide{max-width:none}
.bacc:has(.bacc-card--wide) .bacc-wrap{max-width:640px}

/* ---------- card ---------- */
.bacc-card{position:relative;background:rgba(247,243,236,.96);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
	border:1px solid rgba(201,166,107,.7);border-radius:22px 22px 18px 18px;padding:30px 30px 26px;
	box-shadow:0 30px 70px -20px rgba(20,0,6,.65),0 0 0 6px rgba(247,243,236,.08);animation:bacc-card-in .9s .15s cubic-bezier(.2,.7,.2,1) both}
@keyframes bacc-card-in{from{opacity:0;transform:translateY(34px) scale(.98)}to{opacity:1;transform:none}}
.bacc-brand{text-align:center;margin:0 0 14px}
.bacc-wordmark{display:block;font-family:var(--serif);font-size:34px;letter-spacing:.32em;text-indent:.32em;color:var(--c-wine);font-weight:500;line-height:1.1}
.bacc-logo{display:block;margin:0 auto;max-height:84px;width:auto}
.bacc-flourish{display:block;margin:6px auto 0;width:84px;height:auto;opacity:.9}
.bacc h1{font-family:var(--serif);font-weight:500;font-size:32px;line-height:1.1;margin:6px 0 4px;text-align:center;color:var(--c-ink);letter-spacing:0}
.bacc-sub{margin:0 0 18px;text-align:center;color:#6b5f5a;font-size:15px}

/* ---------- tabs ---------- */
.bacc-tabs{position:relative;display:grid;grid-template-columns:repeat(2,1fr);margin:6px 0 20px;padding:4px;border-radius:99px;background:rgba(111,23,40,.08)}
.bacc-tabs--3{grid-template-columns:repeat(3,1fr)}
.bacc-tabs a{position:relative;z-index:1;text-align:center;padding:10px 8px;font-size:14px;font-weight:500;letter-spacing:.06em;text-transform:uppercase;color:#6b5f5a;text-decoration:none;transition:color .3s}
.bacc-tabs a[aria-selected=true]{color:#fff}
.bacc-pill{position:absolute;z-index:0;top:4px;bottom:4px;left:4px;width:calc((100% - 8px)/2);border-radius:99px;background:linear-gradient(135deg,var(--c-wine),var(--c-wine-d));box-shadow:0 6px 16px -6px rgba(111,23,40,.7);transition:transform .45s cubic-bezier(.3,.8,.2,1)}
.bacc-tabs--3 .bacc-pill{width:calc((100% - 8px)/3)}
.bacc-tabs[data-active=register] .bacc-pill,.bacc-tabs[data-active=details] .bacc-pill{transform:translateX(100%)}
.bacc-tabs[data-active=password] .bacc-pill{transform:translateX(200%)}

/* ---------- panels ---------- */
.bacc-panel{display:none}
.bacc-panel.is-active{display:block;animation:bacc-panel .55s cubic-bezier(.2,.7,.2,1) both}
@keyframes bacc-panel{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.bacc-panel.is-active .bacc-field,.bacc-panel.is-active .bacc-btn,.bacc-panel.is-active .bacc-row,.bacc-panel.is-active .bacc-order{animation:bacc-panel .6s calc(var(--n,0)*70ms + 80ms) cubic-bezier(.2,.7,.2,1) both}
.bacc-form>*:nth-child(3){--n:1}.bacc-form>*:nth-child(4){--n:2}.bacc-form>*:nth-child(5){--n:3}.bacc-form>*:nth-child(6){--n:4}.bacc-form>*:nth-child(7){--n:5}.bacc-form>*:nth-child(8){--n:6}.bacc-form>*:nth-child(9){--n:7}.bacc-form>*:nth-child(10){--n:8}

/* ---------- fields ---------- */
.bacc-form{display:flex;flex-direction:column;gap:14px}
.bacc-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden;margin:0}
.bacc-two{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bacc-field{position:relative}
.bacc-field input{width:100%;height:56px;padding:22px 14px 6px 46px;border:1px solid #d8cdbf;border-radius:14px;background:#fff;color:var(--c-ink);font:400 16px/1.2 var(--sans);
	transition:border-color .25s,box-shadow .25s,background .25s;-webkit-appearance:none;appearance:none;margin:0}
.bacc-field.has-eye input{padding-right:48px}
.bacc-field input:hover{border-color:var(--c-gold)}
.bacc-field input:focus{outline:0;border-color:var(--c-wine);box-shadow:0 0 0 4px rgba(111,23,40,.12),0 8px 20px -10px rgba(111,23,40,.4)}
.bacc-field input:disabled{background:#f1ebe2;color:#8a7e78}
.bacc-field label{position:absolute;white-space:nowrap;max-width:calc(100% - 60px);overflow:hidden;text-overflow:ellipsis;left:46px;top:17px;font-size:15px;color:#8a7e78;pointer-events:none;transform-origin:0 0;transition:transform .2s,color .2s}
.bacc-field input:focus+label,.bacc-field input:not(:placeholder-shown)+label,.bacc-field.is-fixed label{transform:translateY(-10px) scale(.76);color:var(--c-wine)}
.bacc-field input[type=date]{min-height:56px;color:var(--c-ink)}
.bacc-ico{position:absolute;left:15px;top:17px;width:20px;height:20px;color:var(--c-gold);transition:color .25s,transform .3s}
.bacc-ico svg{display:block;width:100%;height:100%}
.bacc-field:focus-within .bacc-ico{color:var(--c-wine);transform:scale(1.12)}
.bacc-eye{position:absolute;right:6px;top:8px;width:40px;height:40px;border:0;background:none;color:#8a7e78;cursor:pointer;border-radius:50%;padding:9px;transition:color .2s,background .2s}
.bacc-eye:hover{color:var(--c-wine);background:rgba(111,23,40,.07)}
.bacc-eye svg{display:block;width:100%;height:100%}
.bacc-eye-slash{opacity:0;transition:opacity .2s}
.bacc-eye[aria-pressed=true] .bacc-eye-slash{opacity:1}
.bacc-err{display:block;min-height:0;color:#b32d2e;font-size:13px;margin:4px 4px 0}
.bacc-err:empty{display:none}
.bacc-field.has-error input{border-color:#b32d2e;animation:bacc-shake .4s}
@keyframes bacc-shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}
.bacc-hint{display:block;color:#8a7e78;font-size:12px;margin:4px 4px 0}
.bacc-alert{background:#f9e0e0;color:#8f1d1d;border:1px solid #efc2c2;padding:11px 14px;border-radius:12px;font-size:14px;margin:0 0 14px;animation:bacc-shake .4s}
.bacc-note{background:#e6f3e8;color:#17622e;border:1px solid #c5e3cb;padding:11px 14px;border-radius:12px;font-size:14px;margin:0 0 14px;text-align:center}

/* password meter */
.bacc-meter{display:grid;grid-template-columns:repeat(4,1fr) auto;gap:6px;align-items:center;margin:-6px 2px 0}
.bacc-meter i{height:4px;border-radius:4px;background:#e4dacd;transition:background .3s}
.bacc-meter span{font-size:12px;color:#8a7e78;margin-left:6px;min-width:84px}
.bacc-meter[data-s="1"] i:nth-child(-n+1){background:#c0392b}
.bacc-meter[data-s="2"] i:nth-child(-n+2){background:#d98a2b}
.bacc-meter[data-s="3"] i:nth-child(-n+3){background:#7da34a}
.bacc-meter[data-s="4"] i:nth-child(-n+4){background:#2e8b57}

/* rows, checkbox, buttons */
.bacc-row{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.bacc a{color:var(--c-wine)}
.bacc-row a,.bacc-switch a{text-decoration:none;border-bottom:1px solid rgba(111,23,40,.3);transition:border-color .2s}
.bacc-row a:hover,.bacc-switch a:hover{border-color:var(--c-wine)}
.bacc-check{display:flex;align-items:center;gap:9px;cursor:pointer;color:#5c514c}
.bacc-check input{position:absolute;opacity:0}
.bacc-check span{width:20px;height:20px;border:1.5px solid #cdbfae;border-radius:6px;background:#fff;display:inline-grid;place-items:center;transition:all .2s}
.bacc-check input:checked+span{background:var(--c-wine);border-color:var(--c-wine)}
.bacc-check input:checked+span::after{content:"";width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) translate(-1px,-1px)}
.bacc-check input:focus-visible+span{box-shadow:0 0 0 4px rgba(111,23,40,.18)}
.bacc-btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;justify-content:center;width:100%;min-height:54px;margin-top:4px;border:0;border-radius:14px;cursor:pointer;
	background:linear-gradient(135deg,var(--c-wine),var(--c-wine-d));color:#fff!important;font:500 15px var(--sans);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;
	box-shadow:0 14px 26px -12px rgba(111,23,40,.9);transition:transform .25s,box-shadow .25s}
.bacc-btn::after{content:"";position:absolute;top:0;bottom:0;left:-60%;width:40%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.35),transparent);transform:skewX(-20deg);transition:left .7s}
.bacc-btn:hover{transform:translateY(-2px);box-shadow:0 20px 30px -14px rgba(111,23,40,.9)}
.bacc-btn:hover::after{left:130%}
.bacc-btn:active{transform:translateY(0)}
.bacc-btn:focus-visible{outline:3px solid var(--c-gold);outline-offset:3px}
.bacc-btn.is-busy{pointer-events:none;opacity:.85}
.bacc-btn.is-busy span::after{content:"";display:inline-block;width:14px;height:14px;margin-left:10px;border:2px solid rgba(255,255,255,.5);border-top-color:#fff;border-radius:50%;vertical-align:-2px;animation:bacc-spin .7s linear infinite}
@keyframes bacc-spin{to{transform:rotate(360deg)}}
.bacc-btn--inline{width:auto;padding:0 26px}
.bacc-switch,.bacc-fine{text-align:center;font-size:14px;color:#6b5f5a;margin:16px 0 0}
.bacc-fine{font-size:12px;margin-top:12px;color:#8a7e78}

/* ---------- dashboard ---------- */
.bacc-bday{display:flex;align-items:center;justify-content:center;gap:8px;margin:0 0 16px;color:var(--c-wine);font-weight:500}
.bacc-bday svg{width:20px;height:20px}
.bacc-order{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:12px;padding:14px 16px;margin:0 0 10px;background:#fff;border:1px solid #e5dacb;border-radius:14px;color:var(--c-ink)!important;text-decoration:none;transition:transform .25s,border-color .25s,box-shadow .25s}
.bacc-order:hover{transform:translateY(-2px);border-color:var(--c-gold);box-shadow:0 12px 24px -16px rgba(111,23,40,.5)}
.bacc-order small{display:block;color:#8a7e78}
.bacc-badge{padding:4px 12px;border-radius:99px;background:rgba(201,166,107,.22);color:#6b4d12;font-size:12px;font-weight:500;white-space:nowrap}
.bacc-total{font-weight:500}
.bacc-empty{text-align:center;color:#6b5f5a;padding:18px 0}
.bacc-signout{text-align:center;margin:18px 0 0}
.bacc-signout button{background:none;border:0;color:#8a7e78;font:inherit;font-size:13px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-bottom:1px solid transparent}
.bacc-signout button:hover{color:var(--c-wine);border-color:var(--c-wine)}
.bacc-burst{position:absolute;left:50%;top:120px;width:0;height:0;pointer-events:none}
.bacc-burst b{position:absolute;width:8px;height:14px;border-radius:100% 0 100% 0;background:var(--c-gold);opacity:0;animation:bacc-burst 1.6s cubic-bezier(.15,.7,.3,1) forwards;transform:rotate(var(--a)) translateY(0)}
.bacc-burst b:nth-child(3n){background:var(--c-wine)}.bacc-burst b:nth-child(3n+1){background:var(--c-rose)}
@keyframes bacc-burst{0%{opacity:1;transform:rotate(var(--a)) translateY(0)}100%{opacity:0;transform:rotate(var(--a)) translateY(calc(var(--k)*-2.4)) rotate(200deg)}}

/* ---------- small screens ---------- */
@media (max-width:560px){
	.bacc{padding:28px 12px 44px;align-items:flex-start}
	.bacc-card{padding:24px 18px 22px;border-radius:20px}
	.bacc-two{grid-template-columns:1fr}
	.bacc h1{font-size:28px}
	.bacc-arch{opacity:.5!important;height:100%}
	.bacc-order{grid-template-columns:1fr auto}
	.bacc-total{grid-column:2;grid-row:1}
	.bacc-badge{grid-column:1;justify-self:start}
}
@media (prefers-reduced-motion:reduce){
	.bacc *,.bacc *::before,.bacc *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;animation-delay:0s!important}
	.bacc-petal{display:none}
	.bacc-arch{opacity:.95}
}
