#venn-form-root{
  --cream:#F5F1EA; --surface:#FFFFFF; --surface-2:#FAF7F2;
  --navy:#1B2D4F; --deep-navy:#14233F; --ink:#17223B; --muted:#5B6578; --faint:#8B93A3;
  --brass:#C4913A; --brass-tint:#F4E8D4; --brass-deep:#A0742A;
  --sage:#7A9E91; --sage-tint:#E3EDE8; --sage-deep:#4F7568;
  --line:#E4DDD3; --line-soft:#EFEAE2;
  --danger:#A8402C; --danger-tint:#F8E9E5;
  --r:12px; --r-sm:9px;
  --sans:"Inter",system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --display:"Manrope","Inter",system-ui,sans-serif;
  --ease:cubic-bezier(.4,.14,.3,1);
}
#venn-form-root{font-family:var(--sans);font-size:15px;line-height:1.6;color:var(--ink);
  -webkit-font-smoothing:antialiased}
#venn-form-root *{box-sizing:border-box}
#venn-form-root h1,#venn-form-root h2,#venn-form-root h3,#venn-form-root h4{font-family:var(--display);margin:0;color:var(--navy);text-wrap:balance}
#venn-form-root p{margin:0}
#venn-form-root .shell{max-width:1180px;margin:0 auto}

#venn-form-root .layout{display:grid;grid-template-columns:264px 1fr;gap:34px;align-items:start}
@media(max-width:920px){#venn-form-root .layout{grid-template-columns:1fr;gap:20px}}

#venn-form-root .rail{position:sticky;top:24px;display:flex;flex-direction:column;gap:18px}
#venn-form-root .railcard{background:rgba(255,255,255,.72);backdrop-filter:blur(6px);border:1px solid var(--line);
  border-radius:var(--r);padding:22px 20px}
#venn-form-root .bignum{font-family:var(--display);font-weight:800;font-size:44px;line-height:1;color:var(--navy);
  letter-spacing:-.04em}
#venn-form-root .steplabel{font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--brass-deep);margin-top:6px}
#venn-form-root .track{height:4px;background:var(--line-soft);border-radius:2px;margin:14px 0 18px;overflow:hidden}
#venn-form-root .railcard{padding:22px 18px}
#venn-form-root .track i{display:block;height:100%;width:12.5%;background:linear-gradient(90deg,var(--brass),var(--brass-deep));
  border-radius:2px;transition:width .5s var(--ease)}
#venn-form-root .steps{display:flex;flex-direction:column;gap:3px;list-style:none;margin:0;padding:0}
#venn-form-root .steps li>button{width:100%;display:flex;gap:12px;align-items:flex-start;text-align:left;background:none;border:0;
  padding:11px 11px;border-radius:var(--r-sm);cursor:default;font-family:var(--sans);transition:background .2s var(--ease)}
#venn-form-root .steps li.done>button{cursor:pointer}
#venn-form-root .steps li.done>button:hover{background:var(--sage-tint)}
#venn-form-root .steps li>button:focus-visible{outline:2px solid var(--brass);outline-offset:1px}
#venn-form-root .bullet{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--faint);
  background:#fff;transition:.25s var(--ease);margin-top:1px}
#venn-form-root .steps .txt2{display:block;min-width:0}
#venn-form-root .steps .t{display:block;font-size:14px;font-weight:600;color:var(--muted);line-height:1.35;transition:color .2s var(--ease)}
#venn-form-root .steps .s{display:block;font-size:12.5px;color:var(--faint);line-height:1.4;margin-top:1px}
#venn-form-root .steps li.current>button{background:#fff;box-shadow:0 1px 2px rgba(20,35,63,.05)}
#venn-form-root .steps li.current .bullet{background:var(--deep-navy);border-color:var(--deep-navy);color:#fff}
#venn-form-root .steps li.current .t,#venn-form-root .steps li.done .t{color:var(--navy)}
#venn-form-root .steps li.done .bullet{background:var(--sage);border-color:var(--sage);color:#fff}
#venn-form-root .bullet svg{width:12px;height:12px;stroke:#fff;stroke-width:2.6;fill:none;
  stroke-linecap:round;stroke-linejoin:round;animation:pop .3s var(--ease)}
@keyframes pop{from{transform:scale(.4);opacity:0}to{transform:scale(1);opacity:1}}

#venn-form-root .panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);
  padding:38px 42px 30px;box-shadow:0 1px 2px rgba(20,35,63,.04),0 16px 40px -22px rgba(20,35,63,.22)}
@media(max-width:620px){#venn-form-root .panel{padding:26px 20px 22px}}
#venn-form-root .stage{animation:enter .38s var(--ease)}
@keyframes enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
#venn-form-root .panel h2{font-size:26px;font-weight:700;letter-spacing:-.015em}
#venn-form-root .panel .sub{color:var(--muted);font-size:15px;margin-top:8px}
#venn-form-root .why{display:flex;gap:10px;background:var(--sage-tint);border:1px solid #D5E4DD;
  border-radius:var(--r-sm);padding:12px 15px;margin-top:20px;font-size:13.5px;color:var(--muted);line-height:1.55}
#venn-form-root .why b{color:var(--navy);font-weight:600}

#venn-form-root .fields{display:flex;flex-direction:column;gap:30px;margin-top:32px}
#venn-form-root .field{display:flex;flex-direction:column;gap:10px}
#venn-form-root .row2{display:grid;grid-template-columns:1fr 1fr;gap:30px 22px}
@media(max-width:620px){#venn-form-root .row2{grid-template-columns:1fr}}
#venn-form-root legend,#venn-form-root .lbl{font-size:14.5px;font-weight:600;color:var(--navy);padding:0;display:flex;align-items:center;gap:7px;line-height:1.4}
#venn-form-root .req{width:5px;height:5px;border-radius:50%;background:var(--brass);display:inline-block}
#venn-form-root .hint{font-size:13px;color:var(--muted);margin-top:0;margin-bottom:4px;line-height:1.55;opacity:.85}
#venn-form-root fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
#venn-form-root fieldset>legend{margin-bottom:10px}
#venn-form-root .lbl+.hint{margin-top:2px}

#venn-form-root input[type=text],#venn-form-root input[type=date],#venn-form-root input[type=email],#venn-form-root input[type=tel],#venn-form-root select{
  font-family:var(--sans);font-size:14.5px;color:var(--ink);background:#fff;
  border:1px solid var(--line);border-radius:var(--r-sm);padding:0 14px;height:48px;width:100%;
  transition:border-color .18s var(--ease),box-shadow .18s var(--ease)}
#venn-form-root select{appearance:none;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%235B6578' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 15px center;padding-right:38px;cursor:pointer}
#venn-form-root input:hover,#venn-form-root select:hover{border-color:#CFC5B6}
#venn-form-root input:focus,#venn-form-root select:focus{outline:0;border-color:var(--navy);box-shadow:0 0 0 3px rgba(196,145,58,.22)}
#venn-form-root input.bad,#venn-form-root select.bad{border-color:var(--danger);background:var(--danger-tint)}

#venn-form-root .opts{display:flex;flex-wrap:wrap;gap:10px}
#venn-form-root .opts.grid2{display:grid;grid-template-columns:repeat(2,1fr)}
#venn-form-root .opts.grid3{display:grid;grid-template-columns:repeat(3,1fr)}
#venn-form-root .opts.grid4{display:grid;grid-template-columns:repeat(4,1fr)}
#venn-form-root .opts.grid5{display:grid;grid-template-columns:repeat(5,1fr)}
#venn-form-root .opts.compact .opt label{padding:11px 10px;min-height:46px;justify-content:center;gap:0}
#venn-form-root .opts.compact .tick{display:none}
#venn-form-root .opts.compact .txt{flex:0 1 auto;text-align:center}
#venn-form-root .opts.grid7{display:grid;grid-template-columns:repeat(7,1fr)}
@media(max-width:1000px){#venn-form-root .opts.grid7{grid-template-columns:repeat(5,1fr)}}
@media(max-width:820px){#venn-form-root .opts.grid4,#venn-form-root .opts.grid5{grid-template-columns:repeat(3,1fr)}
  #venn-form-root .opts.grid7{grid-template-columns:repeat(4,1fr)}}
@media(max-width:620px){#venn-form-root .opts.grid3,#venn-form-root .opts.grid4,#venn-form-root .opts.grid5,#venn-form-root .opts.grid7{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){#venn-form-root .opts.grid2{grid-template-columns:1fr}}
#venn-form-root .opt{position:relative;min-width:0}
#venn-form-root .opt input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
#venn-form-root .opt label{display:flex;align-items:center;gap:12px;min-height:56px;padding:13px 15px;cursor:pointer;
  border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--navy);
  font-size:14.5px;font-weight:500;line-height:1.35;height:100%;
  transition:transform .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease),box-shadow .16s var(--ease)}
#venn-form-root .opt label:hover{border-color:var(--navy);transform:translateY(-1px);box-shadow:0 6px 16px -10px rgba(20,35,63,.5)}
#venn-form-root .opt .iw{flex:none;width:26px;height:26px;border-radius:7px;background:var(--surface-2);
  display:grid;place-items:center;transition:background .16s var(--ease)}
#venn-form-root .opt .txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
#venn-form-root .opt .t{font-weight:500}
#venn-form-root .opt .sm{font-size:12px;font-weight:400;color:var(--faint);line-height:1.3}
#venn-form-root .opt input:checked+label{background:var(--deep-navy);border-color:var(--deep-navy);color:#fff;transform:none}
#venn-form-root .opt input:checked+label .sm{color:rgba(255,255,255,.6)}
#venn-form-root .opt input:checked+label .iw{background:rgba(255,255,255,.12)}
#venn-form-root .opt input:checked+label svg.ic{stroke:#fff}
#venn-form-root .opt input:focus-visible+label{outline:2px solid var(--brass);outline-offset:2px}
#venn-form-root .opt svg.ic{width:16px;height:16px;flex:none;stroke:var(--sage-deep);stroke-width:1.9;fill:none;
  stroke-linecap:round;stroke-linejoin:round;transition:stroke .16s var(--ease)}
#venn-form-root .tick{flex:none;width:18px;height:18px;border-radius:50%;border:1.5px solid var(--line);
  display:grid;place-items:center;transition:.16s var(--ease)}
#venn-form-root .opt input:checked+label .tick{background:var(--brass);border-color:var(--brass);animation:pop .26s var(--ease)}
#venn-form-root .tick svg{width:10px;height:10px;stroke:#fff;stroke-width:3;fill:none;stroke-linecap:round;stroke-linejoin:round;opacity:0}
#venn-form-root .opt input:checked+label .tick svg{opacity:1}

#venn-form-root .cond:not(.open){margin-top:-30px}
#venn-form-root .cond{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .34s var(--ease),opacity .26s var(--ease);}
#venn-form-root .cond>div{overflow:hidden;min-height:0}
#venn-form-root .cond.open{grid-template-rows:1fr;opacity:1}

#venn-form-root .err{display:none;align-items:center;gap:6px;font-size:13px;color:var(--danger);font-weight:500}
#venn-form-root .err.show{display:flex;animation:shake .32s var(--ease)}
#venn-form-root .err svg{width:14px;height:14px;stroke:var(--danger);stroke-width:2;fill:none;flex:none}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}

#venn-form-root .slots{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:4px}
@media(max-width:620px){#venn-form-root .slots{grid-template-columns:1fr}}
#venn-form-root .slot{border:1.5px dashed var(--line);border-radius:10px;padding:11px 13px;min-height:60px;
  display:flex;flex-direction:column;justify-content:center;transition:.24s var(--ease);background:var(--surface-2)}
#venn-form-root .slot .rk{font-size:10.5px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--faint)}
#venn-form-root .slot .v{font-size:13.5px;font-weight:600;color:var(--faint);margin-top:2px}
#venn-form-root .slot.filled{border-style:solid;border-color:var(--brass);background:var(--brass-tint);animation:pop .3s var(--ease)}
#venn-form-root .slot.filled .rk{color:var(--brass-deep)}
#venn-form-root .slot.filled .v{color:var(--navy)}
#venn-form-root .opt.rank label{padding-left:13px}
#venn-form-root .opt.rank .iw{background:none;width:20px;height:20px}
#venn-form-root .badge{flex:none;width:24px;height:24px;border-radius:50%;border:1.5px solid var(--line);background:#fff;
  display:grid;place-items:center;font-size:12px;font-weight:700;color:var(--faint);
  font-family:var(--display);transition:.2s var(--ease)}
#venn-form-root .opt.rank input:checked+label{background:var(--brass-tint);border-color:var(--brass);color:var(--navy)}
#venn-form-root .opt.rank input:checked+label .badge{background:var(--brass);border-color:var(--brass);color:#fff;animation:pop .26s var(--ease)}
#venn-form-root .opt.rank input:disabled+label{opacity:.42;cursor:not-allowed}
#venn-form-root .opt.rank input:disabled+label:hover{transform:none;border-color:var(--line);box-shadow:none}
#venn-form-root .remain{font-size:12.5px;color:var(--faint);font-weight:500}

#venn-form-root .nav{display:flex;align-items:center;gap:12px;margin-top:30px;padding-top:22px;border-top:1px solid var(--line-soft)}
#venn-form-root .btn{font-family:var(--sans);font-size:14.5px;font-weight:600;border-radius:10px;padding:0 26px;height:50px;cursor:pointer;
  border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:9px;
  transition:transform .16s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)}
#venn-form-root .btn:focus-visible{outline:2px solid var(--brass);outline-offset:2px}
#venn-form-root .btn-primary{background:var(--deep-navy);color:#fff;margin-left:auto;
  box-shadow:0 8px 20px -12px rgba(20,35,63,.85)}
#venn-form-root .btn-primary:hover{background:var(--navy);transform:translateY(-1px);box-shadow:0 12px 26px -12px rgba(20,35,63,.9)}
#venn-form-root .btn-primary:active{transform:translateY(0)}
#venn-form-root .btn-primary svg{width:15px;height:15px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;transition:transform .2s var(--ease)}
#venn-form-root .btn-primary:hover svg{transform:translateX(3px)}
#venn-form-root .btn-ghost{background:transparent;color:var(--muted);border-color:var(--line)}
#venn-form-root .btn-ghost:hover{background:var(--surface-2);color:var(--navy)}
#venn-form-root .btn.busy{pointer-events:none;opacity:.85}
#venn-form-root .spin{width:15px;height:15px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:50%;
  animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
#venn-form-root .saved{font-size:12.5px;color:var(--sage-deep);display:flex;align-items:center;gap:6px;opacity:0;transition:opacity .4s var(--ease)}
#venn-form-root .saved.on{opacity:1}
#venn-form-root .saved svg{width:13px;height:13px;stroke:var(--sage-deep);stroke-width:2.4;fill:none;stroke-linecap:round;stroke-linejoin:round}

#venn-form-root #loader{position:fixed;top:0;left:0;height:3px;width:0;z-index:60;
  background:linear-gradient(90deg,var(--sage),var(--brass));
  box-shadow:0 0 12px rgba(196,145,58,.55);opacity:0;
  transition:width .42s var(--ease),opacity .3s var(--ease)}
#venn-form-root #loader.run{opacity:1}

#venn-form-root .panel-body{transition:opacity .2s var(--ease),transform .28s var(--ease)}
#venn-form-root .panel-body.leaving{opacity:0;transform:translateY(-8px)}

#venn-form-root .btn,#venn-form-root .opt label,#venn-form-root .check,#venn-form-root .steps li>button{position:relative;overflow:hidden}
#venn-form-root .ripple{position:absolute;border-radius:50%;transform:scale(0);pointer-events:none;
  background:currentColor;opacity:.22;animation:ripple .58s var(--ease) forwards}
@keyframes ripple{to{transform:scale(2.6);opacity:0}}
#venn-form-root .btn:active{transform:scale(.978)}
#venn-form-root .opt label:active{transform:scale(.988)}

#venn-form-root .lic{width:16px;height:16px;flex:none;stroke:var(--brass-deep);stroke-width:1.7;fill:none;
  stroke-linecap:round;stroke-linejoin:round}
#venn-form-root .h2row{display:flex;align-items:center;gap:14px}
#venn-form-root .hicon{flex:none;width:44px;height:44px;border-radius:13px;background:var(--brass-tint);
  display:grid;place-items:center;animation:pop .45s var(--ease)}
#venn-form-root .hicon svg{width:21px;height:21px;stroke:var(--brass-deep);stroke-width:1.7;fill:none;
  stroke-linecap:round;stroke-linejoin:round}

@media(max-width:920px){
  #venn-form-root .rail{position:static}
  #venn-form-root .bignum{font-size:36px}
  #venn-form-root .steps{flex-direction:row;gap:6px}
  #venn-form-root .steps li{flex:1;min-width:0}
  #venn-form-root .steps li>button{flex-direction:column;align-items:center;text-align:center;gap:7px;padding:10px 6px}
  #venn-form-root .steps .s{display:none}
  #venn-form-root .steps .t{font-size:12px;line-height:1.25}
  #venn-form-root .steps li.current>button{box-shadow:0 1px 2px rgba(20,35,63,.05)}
}

@media(prefers-reduced-motion:reduce){
  #venn-form-root *,#venn-form-root *::before,#venn-form-root *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important}
}

#venn-form-root .check{display:flex;align-items:flex-start;gap:11px;cursor:pointer;font-size:14px;
  color:var(--muted);line-height:1.55;max-width:70ch;position:relative}
#venn-form-root .check input{position:absolute;width:1px;height:1px;opacity:0;margin:0}
#venn-form-root .check a{color:var(--deep-navy);font-weight:600;text-decoration:underline;text-underline-offset:2px}
#venn-form-root .check a:hover{color:var(--navy)}
#venn-form-root .check .box{flex:none;width:19px;height:19px;margin-top:1px;border-radius:5px;
  border:1.5px solid #C9BFB0;background:#fff;display:grid;place-items:center;
  transition:background .16s var(--ease),border-color .16s var(--ease)}
#venn-form-root .check .box svg{width:12px;height:12px;stroke:#fff;stroke-width:3;fill:none;
  stroke-linecap:round;stroke-linejoin:round;opacity:0;transform:scale(.6);
  transition:opacity .16s var(--ease),transform .16s var(--ease)}
#venn-form-root .check:hover .box{border-color:var(--navy)}
#venn-form-root .check input:checked+.box{background:var(--deep-navy);border-color:var(--deep-navy)}
#venn-form-root .check input:checked+.box svg{opacity:1;transform:none}
#venn-form-root .check input:focus-visible+.box{outline:2px solid var(--brass);outline-offset:2px}
#venn-form-root .check input.bad+.box,#venn-form-root fieldset:has(.err.show) .check .box{border-color:var(--danger)}

#venn-form-root [hidden]{display:none!important}
#venn-form-root .vf-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
#venn-form-root .formerr{margin-top:14px;padding:12px 15px;border-radius:9px;font-size:13.5px;
  background:var(--danger-tint);border:1px solid #EBC9C0;color:var(--danger)}

#venn-form-root .codebox{max-width:560px}
