:root{
	--oa-ink:#0e0722;
	--oa-ink-2:#2a1b55;
	--oa-muted:#6a5f8a;
	--oa-line:rgba(42,27,85,.10);
	--oa-line-2:rgba(42,27,85,.18);
	--oa-bg:#f6f3ff;
	--oa-bg-2:#efe9ff;
	--oa-card:#ffffff;
	--oa-violet:#6528f7;
	--oa-violet-2:#4b10d6;
	--oa-violet-3:#8a5cff;
	--oa-violet-4:#c6b2ff;
	--oa-violet-5:#eadfff;
	--oa-accent:#12f7c0;
	--oa-shadow:0 30px 80px -40px rgba(75,16,214,.45), 0 12px 30px -20px rgba(75,16,214,.25);
	--oa-font-display:"Fraunces",Georgia,serif;
	--oa-font-sans:"Bricolage Grotesque",system-ui,sans-serif;
	--oa-font-mono:"JetBrains Mono",ui-monospace,monospace;
}

/* ============ page canvas ============ */
body{background:var(--oa-bg);}
.oa-wrap{
	position:relative;
	min-height:100vh;
	padding:80px 0 100px;
	font-family:var(--oa-font-sans);
	color:var(--oa-ink);
	overflow:hidden;
	isolation:isolate;
}
.oa-wrap .container{max-width:1240px;}

/* background composition */
.oa-bg{position:absolute;inset:0;z-index:-1;pointer-events:none;}
.oa-grid{
	position:absolute;inset:0;
	background-image:
		linear-gradient(rgba(101,40,247,.08) 1px,transparent 1px),
		linear-gradient(90deg,rgba(101,40,247,.08) 1px,transparent 1px);
	background-size:64px 64px;
	mask-image:radial-gradient(ellipse at 50% 30%,#000 40%,transparent 75%);
	-webkit-mask-image:radial-gradient(ellipse at 50% 30%,#000 40%,transparent 75%);
}
.oa-orb{
	position:absolute;border-radius:50%;filter:blur(90px);opacity:.55;
	animation:oaFloat 14s ease-in-out infinite;
}
.oa-orb-1{width:520px;height:520px;top:-140px;left:-120px;background:radial-gradient(circle at 30% 30%,#a785ff,transparent 60%);}
.oa-orb-2{width:460px;height:460px;bottom:-120px;right:-100px;background:radial-gradient(circle at 60% 40%,#6528f7,transparent 65%);animation-delay:-6s;}
.oa-orb-3{width:360px;height:360px;top:40%;left:45%;background:radial-gradient(circle at 50% 50%,#12f7c0,transparent 70%);opacity:.18;animation-delay:-3s;}
@keyframes oaFloat{
	0%,100%{transform:translate3d(0,0,0) scale(1);}
	50%{transform:translate3d(20px,-30px,0) scale(1.05);}
}
.oa-noise{
	position:absolute;inset:0;opacity:.05;mix-blend-mode:overlay;
	background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%25' height='100%25' filter='url(%23n)' opacity='0.8'/></svg>");
}

/* ============ LEFT column ============ */
.oa-left{padding:20px 30px 0 10px;}
.oa-eyebrow{
	display:inline-flex;align-items:center;gap:10px;
	padding:9px 16px;border:1px solid var(--oa-line-2);border-radius:999px;
	background:rgba(255,255,255,.6);backdrop-filter:blur(10px);
	font-family:var(--oa-font-mono);font-size:11px;letter-spacing:.14em;
	color:var(--oa-ink-2);font-weight:500;
}
.oa-dot{
	width:7px;height:7px;border-radius:50%;background:var(--oa-accent);
	box-shadow:0 0 0 4px rgba(18,247,192,.25);animation:oaPulse 2s infinite;
}
@keyframes oaPulse{50%{box-shadow:0 0 0 7px rgba(18,247,192,0);}}

.oa-title{
	font-family:var(--oa-font-display);
	font-weight:300;
	font-size:clamp(54px,7vw,104px);
	line-height:.92;
	letter-spacing:-.035em;
	margin:28px 0 28px;
	color:var(--oa-ink);
	font-variation-settings:"opsz" 144,"SOFT" 30;
}
.oa-title em{
	font-style:italic;font-weight:500;
	background:linear-gradient(100deg,var(--oa-violet-2),var(--oa-violet-3) 60%,#12f7c0);
	-webkit-background-clip:text;background-clip:text;color:transparent;
	font-variation-settings:"opsz" 144,"SOFT" 100;
}
.oa-title-ink{color:var(--oa-violet);}

.oa-lede{
	font-size:18px;line-height:1.55;color:var(--oa-muted);max-width:440px;
	font-weight:400;margin-bottom:34px;
}

.oa-feature-list{list-style:none;padding:0;margin:0 0 42px;display:flex;flex-direction:column;gap:14px;}
.oa-feature-list li{
	display:flex;gap:14px;align-items:flex-start;
	padding:16px 18px;border:1px solid var(--oa-line);
	border-radius:16px;background:rgba(255,255,255,.55);
	backdrop-filter:blur(8px);
	transition:transform .35s cubic-bezier(.2,.8,.2,1),border-color .35s,box-shadow .35s;
}
.oa-feature-list li:hover{
	transform:translateX(6px);
	border-color:var(--oa-violet-4);
	box-shadow:0 12px 30px -20px rgba(75,16,214,.35);
}
.oa-ficon{
	flex:none;width:38px;height:38px;border-radius:11px;
	display:grid;place-items:center;color:#fff;
	background:linear-gradient(135deg,var(--oa-violet),var(--oa-violet-2));
	box-shadow:0 8px 20px -10px rgba(75,16,214,.6);
}
.oa-ficon svg{width:18px;height:18px;}
.oa-feature-list strong{display:block;font-size:15px;font-weight:600;color:var(--oa-ink);}
.oa-feature-list span{font-size:13px;color:var(--oa-muted);}

.oa-metric-row{
	display:grid;grid-template-columns:repeat(3,1fr);gap:14px;
	padding-top:26px;border-top:1px dashed var(--oa-line-2);
}
.oa-metric-num{
	font-family:var(--oa-font-display);
	font-weight:500;
	font-size:30px;line-height:1;color:var(--oa-ink-2);
	font-variation-settings:"opsz" 144;
}
.oa-metric-lbl{
	font-family:var(--oa-font-mono);font-size:10px;letter-spacing:.12em;
	text-transform:uppercase;color:var(--oa-muted);margin-top:6px;
}

/* ============ RIGHT card ============ */
.oa-right{position:relative;}
.oa-card{
	position:relative;
	background:var(--oa-card);
	border:1px solid var(--oa-line);
	border-radius:28px;
	box-shadow:var(--oa-shadow);
	overflow:hidden;
}
.oa-card::before{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:
		radial-gradient(1200px 300px at -10% -20%,rgba(101,40,247,.10),transparent 60%),
		radial-gradient(900px 260px at 120% 120%,rgba(18,247,192,.08),transparent 60%);
}
.oa-card::after{
	content:"";position:absolute;inset:0;border-radius:28px;padding:1px;
	background:linear-gradient(135deg,rgba(101,40,247,.5),transparent 40%,transparent 60%,rgba(18,247,192,.35));
	-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
	-webkit-mask-composite:xor;mask-composite:exclude;
	pointer-events:none;opacity:.7;
}

.oa-card-head{
	position:relative;display:flex;align-items:center;justify-content:space-between;
	padding:26px 34px;border-bottom:1px solid var(--oa-line);
	background:linear-gradient(180deg,rgba(246,243,255,.7),transparent);
}
.oa-steps{display:flex;gap:28px;}
.oa-step{display:flex;align-items:center;gap:10px;opacity:.45;transition:opacity .4s;}
.oa-step.is-active{opacity:1;}
.oa-step-n{
	font-family:var(--oa-font-mono);font-size:11px;font-weight:500;
	color:var(--oa-violet);letter-spacing:.06em;
	padding:5px 9px;border:1px solid var(--oa-violet-4);border-radius:7px;
	background:var(--oa-violet-5);
}
.oa-step.is-active .oa-step-n{
	background:var(--oa-violet);color:#fff;border-color:var(--oa-violet);
	box-shadow:0 6px 18px -8px rgba(101,40,247,.6);
}
.oa-step-l{
	font-size:13px;font-weight:500;color:var(--oa-ink-2);
}
.oa-lock{
	display:inline-flex;align-items:center;gap:8px;
	font-family:var(--oa-font-mono);font-size:11px;color:var(--oa-violet-2);
	padding:8px 12px;border:1px solid var(--oa-violet-4);border-radius:999px;
	background:var(--oa-violet-5);
}
.oa-lock svg{width:13px;height:13px;}

.oa-card-body{padding:38px 34px 34px;position:relative;}

/* ============ FORM ============ */
.oa-form .oa-field{position:relative;margin-top:6px;}
.oa-form label{
	display:block;
	font-family:var(--oa-font-mono);
	font-size:10.5px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;
	color:var(--oa-muted);margin-bottom:8px;
}
.oa-opt{
	color:var(--oa-violet);text-transform:none;letter-spacing:.02em;
	font-style:italic;margin-left:6px;font-weight:400;
}

.oa-form .form-control{
	height:54px;border-radius:14px;border:1.5px solid var(--oa-line-2);
	background:#fbfaff;color:var(--oa-ink);
	font-family:var(--oa-font-sans);font-size:15.5px;font-weight:500;
	padding:0 18px;
	transition:border-color .3s,box-shadow .3s,background .3s,transform .3s;
}
.oa-form .form-control::placeholder{color:#b5acd1;font-weight:400;}
.oa-form .form-control:hover{border-color:var(--oa-violet-4);}
.oa-form .form-control:focus{
	outline:none;background:#fff;
	border-color:var(--oa-violet);
	box-shadow:0 0 0 4px rgba(101,40,247,.12),0 10px 28px -20px rgba(101,40,247,.55);
}

/* input-group (password) */
.oa-input-group{border-radius:14px;overflow:hidden;}
.oa-input-group .form-control{border-radius:14px 0 0 14px !important;}
.oa-input-group .input-group-text{
	background:#fbfaff;border:1.5px solid var(--oa-line-2);border-left:0;
	border-radius:0 14px 14px 0;color:var(--oa-violet-2);
	transition:background .3s,color .3s;
}
.oa-input-group:focus-within .input-group-text{
	border-color:var(--oa-violet);background:#fff;color:var(--oa-violet);
}

/* select2 overrides */
.select2-container--default .select2-selection--single{
	height:54px !important;border:1.5px solid var(--oa-line-2) !important;
	border-radius:14px !important;background:#fbfaff !important;
	display:flex;align-items:center;padding:0 8px;
}
.select2-container--default .select2-selection--single .select2-selection__rendered{
	line-height:54px !important;color:var(--oa-ink) !important;
	font-family:var(--oa-font-sans);font-weight:500;padding-left:10px !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow{height:54px !important;}
.select2-container--default.select2-container--focus .select2-selection--single,
.select2-container--default.select2-container--open .select2-selection--single{
	border-color:var(--oa-violet) !important;
	box-shadow:0 0 0 4px rgba(101,40,247,.12);
}
.select2-dropdown{
	border-radius:14px !important;border:1.5px solid var(--oa-violet-4) !important;
	overflow:hidden;box-shadow:0 20px 50px -20px rgba(75,16,214,.35);
}
.select2-results__option--highlighted[aria-selected]{
	background:var(--oa-violet) !important;
}

/* datepicker overrides */
.datepicker.dropdown-menu{
	border-radius:16px;border:1.5px solid var(--oa-violet-4);
	box-shadow:0 20px 50px -20px rgba(75,16,214,.35);
	padding:10px;font-family:var(--oa-font-sans);
}
.datepicker table tr td.active,
.datepicker table tr td.active:hover,
.datepicker table tr td.active.active{
	background:var(--oa-violet) !important;border-color:var(--oa-violet) !important;
	border-radius:8px;
}
.datepicker table tr td.day:hover{background:var(--oa-violet-5);border-radius:8px;}

/* strength meter */
.oa-strength{display:flex;align-items:center;gap:5px;margin-top:10px;}
.oa-strength span{
	flex:1;height:4px;border-radius:3px;background:var(--oa-violet-5);
	transition:background .35s;
}
.oa-strength.lv1 span:nth-child(1){background:#ff6b8b;}
.oa-strength.lv2 span:nth-child(-n+2){background:#ffb547;}
.oa-strength.lv3 span:nth-child(-n+3){background:#8a5cff;}
.oa-strength.lv4 span:nth-child(-n+4){background:var(--oa-accent);}
.oa-strength-lbl{
	font-family:var(--oa-font-mono);font-size:10px;letter-spacing:.1em;
	text-transform:uppercase;color:var(--oa-muted);margin-left:8px;
}
.oa-match-hint{
	margin-top:10px;font-family:var(--oa-font-mono);font-size:10.5px;letter-spacing:.08em;
	text-transform:uppercase;color:var(--oa-muted);min-height:14px;
}
.oa-match-hint.ok{color:#0fb489;}
.oa-match-hint.no{color:#d84672;}

/* actions */
.oa-actions{display:flex;align-items:center;gap:14px;margin-top:34px;flex-wrap:wrap;}
.oa-btn{
	position:relative;display:inline-flex;align-items:center;gap:12px;
	padding:17px 30px;border-radius:14px;border:0;cursor:pointer;
	font-family:var(--oa-font-sans);font-size:15px;font-weight:600;letter-spacing:.01em;
	text-decoration:none;transition:transform .3s cubic-bezier(.2,.8,.2,1),box-shadow .3s,background .3s,color .3s;
	overflow:hidden;
}
.oa-btn-primary{
	color:#fff;
	background:linear-gradient(120deg,var(--oa-violet-2),var(--oa-violet) 55%,var(--oa-violet-3));
	box-shadow:0 18px 40px -18px rgba(75,16,214,.75),inset 0 1px 0 rgba(255,255,255,.25);
}
.oa-btn-primary::before{
	content:"";position:absolute;inset:0;
	background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);
	transform:translateX(-120%);transition:transform .8s;
}
.oa-btn-primary:hover{transform:translateY(-2px);color:#fff;box-shadow:0 28px 55px -20px rgba(75,16,214,.85);}
.oa-btn-primary:hover::before{transform:translateX(120%);}
.oa-btn-primary:active{transform:translateY(0);}
.oa-btn-icon{
	display:grid;place-items:center;width:26px;height:26px;
	background:rgba(255,255,255,.18);border-radius:7px;
	transition:transform .35s;
}
.oa-btn-primary:hover .oa-btn-icon{transform:translateX(4px);}
.oa-btn-icon svg{width:14px;height:14px;}

.oa-btn-ghost{
	background:transparent;color:var(--oa-ink-2);
	border:1.5px solid var(--oa-line-2);
}
.oa-btn-ghost svg{width:16px;height:16px;}
.oa-btn-ghost:hover{
	color:var(--oa-violet);border-color:var(--oa-violet);
	transform:translateX(-2px);
}

.oa-legal{
	margin-top:26px;padding-top:22px;border-top:1px dashed var(--oa-line-2);
	font-size:12.5px;color:var(--oa-muted);line-height:1.6;
}
.oa-legal a{
	color:var(--oa-violet-2);text-decoration:none;font-weight:600;
	border-bottom:1px solid var(--oa-violet-4);
}
.oa-legal a:hover{color:var(--oa-violet);}

/* ============ reveal animation ============ */
.reveal{opacity:0;transform:translateY(28px);filter:blur(6px);}
.reveal.is-in{
	opacity:1;transform:translateY(0);filter:blur(0);
	transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1),filter .9s;
}

/* ============ alert / validation errors ============ */
.oa-alert{
	position:relative;display:flex;gap:18px;align-items:flex-start;
	padding:22px 54px 22px 22px;margin-bottom:26px;
	border-radius:20px;
	background:
		linear-gradient(135deg,rgba(255,240,244,.95),rgba(255,230,240,.7) 40%,rgba(246,243,255,.85));
	border:1px solid rgba(216,70,114,.22);
	box-shadow:
		0 20px 50px -28px rgba(216,70,114,.45),
		inset 0 1px 0 rgba(255,255,255,.6);
	overflow:hidden;
	animation:oaAlertIn .7s cubic-bezier(.2,.8,.2,1) both;
}
.oa-alert::before{
	content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
	background:linear-gradient(180deg,#d84672,#a72555);
	box-shadow:0 0 18px rgba(216,70,114,.6);
}
.oa-alert::after{
	content:"";position:absolute;inset:0;pointer-events:none;
	background:radial-gradient(300px 120px at 10% 0%,rgba(216,70,114,.18),transparent 70%);
}
@keyframes oaAlertIn{
	0%{opacity:0;transform:translateY(-14px) scale(.98);filter:blur(6px);}
	100%{opacity:1;transform:translateY(0) scale(1);filter:blur(0);}
}
.oa-alert-icon{
	flex:none;width:44px;height:44px;border-radius:13px;
	display:grid;place-items:center;color:#fff;
	background:linear-gradient(135deg,#d84672,#a72555);
	box-shadow:0 10px 24px -10px rgba(216,70,114,.7);
	animation:oaAlertPulse 2.4s ease-in-out infinite;
}
.oa-alert-icon svg{width:20px;height:20px;}
@keyframes oaAlertPulse{
	0%,100%{box-shadow:0 10px 24px -10px rgba(216,70,114,.7),0 0 0 0 rgba(216,70,114,.35);}
	50%{box-shadow:0 10px 24px -10px rgba(216,70,114,.7),0 0 0 10px rgba(216,70,114,0);}
}
.oa-alert-body{flex:1;min-width:0;position:relative;}
.oa-alert-head{
	display:flex;align-items:center;justify-content:space-between;gap:12px;
	margin-bottom:10px;
}
.oa-alert-head strong{
	font-family:var(--oa-font-display);font-weight:500;font-style:italic;
	font-size:19px;color:#6b0e2e;letter-spacing:-.01em;
	font-variation-settings:"opsz" 144,"SOFT" 80;
}
.oa-alert-count{
	font-family:var(--oa-font-mono);font-size:10px;font-weight:500;
	letter-spacing:.1em;text-transform:uppercase;
	padding:5px 10px;border-radius:999px;color:#fff;
	background:#d84672;
}
.oa-alert-list{
	list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;
}
.oa-alert-list li{
	display:flex;align-items:flex-start;gap:9px;
	font-size:13.5px;line-height:1.5;color:#6b0e2e;font-weight:500;
	padding-left:0;
	animation:oaAlertItem .6s cubic-bezier(.2,.8,.2,1) both;
}
.oa-alert-list li svg{
	flex:none;width:14px;height:14px;margin-top:4px;color:#d84672;
}
.oa-alert-list li:nth-child(1){animation-delay:.1s;}
.oa-alert-list li:nth-child(2){animation-delay:.18s;}
.oa-alert-list li:nth-child(3){animation-delay:.26s;}
.oa-alert-list li:nth-child(4){animation-delay:.34s;}
.oa-alert-list li:nth-child(5){animation-delay:.42s;}
.oa-alert-list li:nth-child(n+6){animation-delay:.5s;}
@keyframes oaAlertItem{
	0%{opacity:0;transform:translateX(-10px);}
	100%{opacity:1;transform:translateX(0);}
}
.oa-alert-close{
	position:absolute;top:16px;right:16px;
	width:30px;height:30px;border-radius:9px;border:0;
	display:grid;place-items:center;cursor:pointer;
	background:rgba(216,70,114,.1);color:#a72555;
	transition:background .3s,transform .3s,color .3s;
}
.oa-alert-close svg{width:14px;height:14px;}
.oa-alert-close:hover{background:#d84672;color:#fff;transform:rotate(90deg);}

/* per-field inline error */
.oa-field.has-error .form-control,
.oa-field.has-error .select2-selection--single{
	border-color:#d84672 !important;
	background:#fff5f8 !important;
	box-shadow:0 0 0 4px rgba(216,70,114,.10) !important;
}
.oa-field.has-error label{color:#a72555;}
.oa-field-err{
	display:flex;align-items:center;gap:6px;
	margin-top:8px;font-family:var(--oa-font-mono);font-size:10.5px;
	letter-spacing:.06em;text-transform:uppercase;color:#a72555;font-weight:500;
}
.oa-field-err::before{
	content:"";display:inline-block;width:6px;height:6px;border-radius:50%;
	background:#d84672;box-shadow:0 0 0 3px rgba(216,70,114,.2);
}

/* shake on field error */
.oa-field.is-error .form-control{
	border-color:#d84672 !important;
	box-shadow:0 0 0 4px rgba(216,70,114,.12);
	animation:oaShake .45s cubic-bezier(.36,.07,.19,.97);
}
@keyframes oaShake{
	10%,90%{transform:translateX(-2px);}
	20%,80%{transform:translateX(3px);}
	30%,50%,70%{transform:translateX(-5px);}
	40%,60%{transform:translateX(5px);}
}

@media (max-width:991.98px){
	.oa-wrap{padding:50px 0 70px;}
	.oa-left{padding:0 12px;margin-bottom:40px;}
	.oa-card-head{padding:20px 22px;flex-wrap:wrap;gap:14px;}
	.oa-card-body{padding:28px 22px;}
	.oa-steps{gap:16px;}
}
@media (max-width:575.98px){
	.oa-steps .oa-step-l{display:none;}
	.oa-metric-row{grid-template-columns:1fr 1fr;}
	.oa-metric-row .oa-metric:last-child{grid-column:1/-1;}
}
