:root{--ink:#1d1d1f;--sub:#6e6e73;--line:#e5e5e7;--blue:#1677ff;--blue-dark:#0865df;--blue-soft:#f5f5f7;--canvas:#f5f5f7;--red:#c93636;--red-soft:#fff0f0;--green:#16845b;--green-soft:#e9f8f1}
*{box-sizing:border-box}html{min-width:320px;overflow-y:scroll;scrollbar-gutter:stable}body{margin:0;color:var(--ink);background:var(--canvas);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","SF Pro Text","Helvetica Neue","PingFang SC","Microsoft YaHei",sans-serif;-webkit-font-smoothing:antialiased;letter-spacing:0}button,input,textarea{font:inherit;letter-spacing:0}button{cursor:pointer}[hidden]{display:none!important}
.site-header{height:162px;padding:0 max(28px,calc((100% - 1160px)/2));display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,.9);border-bottom:1px solid #d7e5f7;backdrop-filter:blur(18px)}.brand{display:block}.brand img{width:220px;height:auto;display:block}
.installer{width:min(980px,calc(100% - 40px));margin:44px auto 80px}.progress{padding:24px 34px;margin-bottom:24px;display:grid;grid-template-columns:repeat(4,1fr);background:rgba(255,255,255,.78);border:1px solid rgba(255,255,255,.95);border-radius:22px;box-shadow:0 18px 44px rgba(66,121,211,.12)}.progress-step{position:relative;color:#8da0b9;text-align:center}.progress-step:not(:last-child):after{content:"";position:absolute;left:calc(50% + 20px);right:calc(-50% + 20px);top:17px;height:2px;background:#c9d6e5}.progress-step span{position:relative;z-index:1;width:36px;height:36px;margin:0 auto 9px;display:grid;place-items:center;background:#f8fbff;border:2px solid #b8c9dc;border-radius:11px;font-size:13px;font-weight:600}.progress-step strong,.progress-step small{display:block}.progress-step strong{color:#6f8198;font-size:12px}.progress-step small{margin-top:3px;font-size:10px}.progress-step.active span,.progress-step.done span{color:#fff;background:var(--blue);border-color:var(--blue);box-shadow:0 6px 16px rgba(22,119,255,.24)}.progress-step.active strong{color:var(--ink)}.progress-step.done:after{background:var(--blue)}
.step{display:none;overflow:hidden;background:#fff;border:1px solid rgba(255,255,255,.94);border-radius:24px;box-shadow:0 30px 75px rgba(48,101,195,.17)}.step.active{display:block}.step-body{padding:58px 68px 50px}.eyebrow{margin:0 0 12px;color:var(--blue);font-size:13px;font-weight:700}.step .step-title{margin:0;font-size:38px;line-height:1.2;font-weight:700;letter-spacing:-.02em}.lead{max-width:none;margin:15px 0 30px;color:var(--sub);font-size:16px;line-height:1.7}.step-footer{min-height:82px;padding:14px 30px;display:flex;align-items:center;justify-content:space-between;gap:14px;background:#f8fbff;border-top:1px solid #dce8f6}
.primary,.secondary{min-height:46px;padding:0 22px;border-radius:11px;font-weight:650}.primary{color:#fff;background:var(--blue);border:1px solid var(--blue);box-shadow:0 7px 18px rgba(22,119,255,.2)}.primary:hover{background:var(--blue-dark)}.primary:disabled{cursor:wait;opacity:.42}.secondary{color:var(--ink);background:#fff;border:1px solid #c9d8ea}
.how-it-works{height:168px;margin:8px 0 34px;display:grid;grid-template-columns:1fr 60px 1fr 60px 1fr;align-items:center;background:#f5f9ff;border:1px solid #e2edfb;border-radius:18px}.how-it-works>div{text-align:center}.how-it-works>div>span{width:60px;height:60px;margin:0 auto 10px;display:grid;place-items:center;color:var(--blue);background:#e6f1ff;border:1px solid #bdd8ff;border-radius:17px;font-size:21px;font-weight:700}.how-it-works .featured>span{color:#fff;background:var(--blue);box-shadow:0 8px 20px rgba(22,119,255,.23)}.how-it-works strong,.how-it-works small{display:block}.how-it-works small{margin-top:4px;color:var(--sub);font-size:11px}.how-it-works>i{color:var(--blue);font-size:25px;font-style:normal;text-align:center}
.choice-list{display:grid;gap:12px}.choice{min-height:84px;padding:18px 21px;display:grid;grid-template-columns:22px 1fr auto;gap:14px;align-items:center;color:var(--ink);text-align:left;text-decoration:none;background:#fff;border:2px solid var(--line);border-radius:16px}.choice.selected{background:#edf6ff;border-color:var(--blue)}.choice>i{width:20px;height:20px;border:2px solid #aabbd0;border-radius:50%}.choice.selected>i{border:6px solid var(--blue)}.choice strong,.choice small{display:block}.choice small{margin-top:4px;color:var(--sub)}.choice b{color:var(--blue);font-size:20px}
.info-tip{margin:0 0 28px;padding:18px 20px;display:flex;gap:16px;align-items:center;background:#f2f7ff;border:1px solid #d5e5fb;border-radius:15px}.info-tip>span{width:40px;height:40px;flex:none;display:grid;place-items:center;color:#075fd1;background:#dcecff;border-radius:50%;font-weight:700}.info-tip p{margin:5px 0 0;color:#5b6d85;font-size:13px;line-height:1.55}.field{margin-top:20px}.field label{display:block;margin-bottom:8px;font-size:13px;font-weight:650}.field input,.field textarea{width:100%;color:var(--ink);background:#fff;border:1px solid #c8d7e9;border-radius:12px;outline:0}.field input{height:50px;padding:0 14px}.field textarea{min-height:145px;padding:13px 14px;resize:vertical;font-family:"SFMono-Regular",Consolas,monospace;line-height:1.55}.field input:focus,.field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(22,119,255,.12)}.field>small{display:block;margin-top:7px;color:#7b899b;font-size:11px}.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:5px;padding:5px;background:#edf2f8;border-radius:13px}.auth-tabs button{height:43px;color:#68788d;background:transparent;border:0;border-radius:9px;font-weight:650}.auth-tabs button.active{color:#075fc8;background:#fff;box-shadow:0 5px 15px rgba(52,90,145,.1)}.password-field{position:relative}.password-field input{padding-right:65px}.password-field button{position:absolute;right:6px;top:6px;height:38px;color:var(--blue);background:transparent;border:0;font-size:12px;font-weight:650}.privacy-note{margin:24px 0 0;color:#687789;font-size:12px}.privacy-note:before{content:"✓";width:21px;height:21px;margin-right:8px;display:inline-grid;place-items:center;color:#fff;background:var(--blue);border-radius:7px;font-size:10px;font-weight:700}.form-error{margin-top:18px;padding:13px 15px;color:var(--red);background:var(--red-soft);border-radius:11px;font-size:13px;font-weight:700}
.check-list{margin-top:8px;border-top:1px solid var(--line)}.check-row{min-height:82px;display:grid;grid-template-columns:27px 1fr auto;gap:13px;align-items:center;border-bottom:1px solid var(--line)}.check-row>i{width:24px;height:24px;display:grid;place-items:center;border:2px solid #c1cedd;border-radius:8px;font-style:normal}.check-row.running>i{border-color:#b8d5fb;border-top-color:var(--blue);animation:spin .8s linear infinite}.check-row.passed>i{color:#fff;background:var(--blue);border-color:var(--blue)}.check-row strong,.check-row small{display:block}.check-row small{margin-top:4px;color:var(--sub);font-size:12px}.check-row>b{color:#94a0b0;font-size:11px}.check-row.passed>b{color:var(--blue)}.ready-message{margin-top:22px;padding:15px 17px;color:#075fc8;background:#eaf4ff;border-radius:12px;font-size:13px;font-weight:650}
.friendly-error{margin-top:22px;padding:18px;color:#8d2727;background:var(--red-soft);border:1px solid #ffd2d2;border-radius:13px}.friendly-error>strong{font-size:15px}.friendly-error>p{margin:7px 0 0;line-height:1.6}.friendly-error details,.technical-log{margin-top:14px}.friendly-error summary,.technical-log summary{cursor:pointer;font-size:12px;font-weight:650}.friendly-error pre,.technical-log pre{max-height:240px;overflow:auto;padding:14px;color:#cde0ff;background:#10213e;border-radius:10px;white-space:pre-wrap;word-break:break-word;font:11px/1.6 "SFMono-Regular",Consolas,monospace}
.install-heading{text-align:center}.install-heading .lead{margin-inline:auto}.install-icon,.success-icon{margin:0 auto 23px;display:grid;place-items:center;color:#fff;background:var(--blue);box-shadow:0 10px 26px rgba(22,119,255,.25)}.install-icon{width:88px;height:88px;border:11px solid #dcecff;border-radius:24px;font-size:22px;font-weight:700}.install-progress{height:9px;margin-top:35px;overflow:hidden;background:#dbe6f4;border-radius:5px}.install-progress i{width:5%;height:100%;display:block;background:var(--blue);transition:width .35s}.install-percent{margin-top:13px;display:flex;justify-content:space-between}.install-percent span{color:var(--blue);font-weight:700}.install-stages{margin-top:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px}.install-stages>div{color:#95a1b1;text-align:center;font-size:11px}.install-stages i{width:23px;height:23px;margin:0 auto 7px;display:grid;place-items:center;border:2px solid #c5d2e1;border-radius:8px;font-style:normal}.install-stages .active{color:var(--ink);font-weight:650}.install-stages .active i{border:6px solid var(--blue)}.install-stages .done{color:var(--ink)}.install-stages .done i{color:#fff;background:var(--blue);border-color:var(--blue)}.technical-log{border-top:1px solid var(--line);padding-top:3px}.install-footer{color:#6c7b8e;font-size:12px}
.success-body{text-align:center}.success-icon{width:72px;height:72px;border-radius:20px;font-size:29px;font-weight:700}.success-body .lead{margin-inline:auto}.credentials{margin-top:30px;text-align:left;border:1px solid var(--line);border-radius:16px}.credentials>div{min-height:66px;padding:12px 15px;display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:center;border-bottom:1px solid var(--line)}.credentials>div:last-child{border:0}.credentials span{color:var(--sub);font-size:12px}.credentials strong{overflow-wrap:anywhere;font-size:13px}.credentials button{height:34px;padding:0 13px;color:#fff;background:var(--blue);border:0;border-radius:9px;font-weight:650}.result-warning{margin-top:17px;padding:16px 18px;color:#8b5a0b;background:#fff6df;border-radius:11px;text-align:left;line-height:1.6}
.result-warning p{margin:0}
.result-warning ul{margin:12px 0 0;padding-left:20px}
.result-warning li{margin-top:4px;font-weight:650;font-family:"SFMono-Regular",Consolas,monospace}
.result-warning .guide-link{margin-top:16px;padding:10px 18px;font-size:14px}.result-actions{justify-content:flex-end}.result-actions button{width:240px;height:48px;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.result-actions .secondary{box-shadow:0 2px 0 #d2d2d7}
@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:720px){.site-header{height:140px;padding:0 17px}.brand img{width:184px;height:auto}.installer{width:100%;margin:0}.progress{margin:18px 12px 20px;padding:16px 10px;border-radius:16px}.progress-step small{display:none}.progress-step strong{font-size:0}.progress-step span{width:30px;height:30px;border-radius:9px}.progress-step:not(:last-child):after{top:14px}.step{border-inline:0;border-radius:0;box-shadow:none}.step-body{padding:36px 20px}.step .step-title{font-size:29px}.how-it-works{height:135px;grid-template-columns:1fr 30px 1fr 30px 1fr}.how-it-works>div>span{width:45px;height:45px;border-radius:13px}.how-it-works small{display:none}.step-footer{padding:13px 20px}.install-stages{grid-template-columns:1fr;text-align:left}.install-stages>div{min-height:34px;padding-left:34px;text-align:left}.install-stages i{position:absolute;margin-left:-34px}.credentials>div{grid-template-columns:1fr auto}.credentials span{grid-column:1/-1}.result-actions{flex-direction:column-reverse}.result-actions button{width:100%}}
.buy-guide{margin:22px 0 0;padding:22px 24px;background:#f5f9ff;border:1px solid #dbe9fb;border-radius:16px}.buy-guide h2{margin:0 0 12px;font-size:17px}.buy-guide ol{margin:0;padding-left:22px;color:var(--sub);line-height:1.95}.buy-guide b{color:var(--ink)}.guide-link{margin-top:16px;display:inline-block;padding:12px 20px;color:#fff;text-decoration:none;background:var(--blue);border-radius:11px;font-weight:650}.guide-link:hover{background:var(--blue-dark)}
.check-list+#install-area{margin-top:26px}#install-area{padding-top:4px}
.next-steps{margin-top:26px;padding:22px 24px;text-align:left;background:#f5f9ff;border:1px solid #dbe9fb;border-radius:16px}.next-steps h2{margin:0 0 12px;font-size:16px}.next-steps ol{margin:0;padding-left:22px;color:var(--sub);line-height:1.9}.next-steps li{margin-bottom:10px}.next-steps li:last-child{margin-bottom:0}.next-steps b{color:var(--ink)}

/* Make the key-file label a drop-zone while retaining its native input. */
.field label.key-drop{display:flex;flex-direction:column;gap:7px;align-items:center;justify-content:center;min-height:128px;margin:0;padding:22px 18px;text-align:center;background:#f8fbff;border:2px dashed #b8cfe9;border-radius:14px;cursor:pointer;transition:border-color .15s,background .15s;font-weight:400}
.field label.key-drop:hover{background:#f0f7ff;border-color:var(--blue)}
.key-drop span{width:46px;height:46px;display:grid;place-items:center;color:var(--blue);background:#e6f1ff;border:1px solid #bdd8ff;border-radius:13px}
.key-drop span svg{width:22px;height:22px}
.how-it-works span svg{width:27px;height:27px}
/* SVG arrows need explicit dimensions. */
.how-it-works>i svg{width:34px;height:16px;display:block;margin:0 auto}

.key-drop strong{color:#075fc8;font-size:14px}
.key-drop small{max-width:420px;color:#7b899b;font-size:11px;line-height:1.55}
#key-file-status{margin:10px 0 0;padding:12px 15px;border-radius:11px;font-size:13px;font-weight:650;line-height:1.6}
#key-file-status.ok{color:#0a7a3d;background:#e8f7ee}
#key-file-status.bad{color:var(--red);background:var(--red-soft)}
.link-button{display:inline-block;margin-top:10px;padding:0;color:var(--blue);background:transparent;border:0;font-size:12px;font-weight:650;text-decoration:underline;text-underline-offset:3px}

/* Keep controls distinct from informational surfaces across installer steps. */
.site-header{height:154px;background:#fff;backdrop-filter:none}
.brand img{width:200px}
.installer{margin-top:28px}
.progress{padding:20px 28px;border-color:var(--line);border-radius:12px;background:#fff;box-shadow:none}
.progress-step.active span,.progress-step.done span{box-shadow:none}
.step{border-color:var(--line);border-radius:12px;box-shadow:none}
.step-body{padding:44px 54px 40px}
.step-footer{background:#fff}
.primary,.secondary,.guide-link,.credentials button{border-radius:8px;transition:background-color .15s,border-color .15s,box-shadow .15s,transform .15s}
.primary{box-shadow:0 2px 0 #0757b8}
.secondary:hover{border-color:var(--blue);background:var(--blue-soft);color:#075fc8}
.primary:not(:disabled):active,.secondary:active,.guide-link:active,.credentials button:active{transform:translateY(2px);box-shadow:none}
.choice{border-width:1px;border-radius:10px;transition:background-color .15s,border-color .15s,transform .15s}
.choice:hover{border-color:var(--blue);background:#f6faff}
.choice:active{transform:translateY(1px)}
.choice.selected{border-width:2px}
.how-it-works,.info-tip,.buy-guide,.next-steps{border-radius:10px;background:#f8fafc}
.how-it-works .featured>span,.install-icon,.success-icon{box-shadow:none}
.how-it-works>div>span,.how-it-works .featured>span{background:transparent;border:0;box-shadow:none}
.how-it-works>div>span img{display:block;width:44px;height:44px;object-fit:contain}
@media(max-width:720px){.how-it-works>div>span img{width:34px;height:34px}}
.field input,.field textarea{border-radius:8px}
.auth-tabs{border-radius:9px}
.auth-tabs button{border-radius:6px}
.auth-tabs button:not(.active):hover{color:var(--blue-dark);background:#e2eaf4}
.password-field button:hover{background:var(--blue-soft);border-radius:6px}
.primary:focus-visible,.secondary:focus-visible,.choice:focus-visible,.guide-link:focus-visible,.credentials button:focus-visible,.auth-tabs button:focus-visible,.password-field button:focus-visible,.link-button:focus-visible,.key-drop:focus-within{outline:3px solid rgba(22,119,255,.42);outline-offset:3px}
@media(max-width:720px){.site-header{height:132px}.brand img{width:184px}.installer{margin-top:0}.progress{padding:16px 10px}.step{border-radius:0}.step-body{padding:36px 20px}}

.site-header,.step-footer{border-color:var(--line)}
.how-it-works,.info-tip,.buy-guide,.next-steps{background:var(--canvas);border-color:var(--line)}
.progress-step{color:var(--sub)}
.progress-step strong,.progress-step small{color:#48484d;font-size:11px}
.progress-step span{background:var(--canvas);border-color:#d2d2d7}
.progress-step:not(:last-child):after{background:#d2d2d7}
.progress-step.done:after{background:var(--blue)}
.progress-step.active strong{color:var(--ink)}
.choice.selected,.choice:hover,.auth-tabs,.auth-tabs button:not(.active):hover{background:var(--canvas)}
.secondary,.field input,.field textarea{border-color:#d2d2d7}
.info-tip>span,.key-drop span,.ready-message{background:var(--canvas);border-color:var(--line)}
.field label.key-drop{background:var(--canvas);border-color:#d2d2d7}
.field label.key-drop:hover{background:#ededf0;border-color:var(--blue)}
.install-progress{background:#e8e8ed}
.install-icon{border-color:#e8e8ed}
.cf-turnstile{margin-top:20px}.cf-turnstile:empty{margin-top:0}
.credits{margin-bottom:24px;display:grid;grid-template-columns:1fr 1fr;gap:16px}.installer:not(:has(.step[data-step="1"].active)) .credits{display:none}
.credit-card{padding:20px 22px;display:flex;gap:16px;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px}
.credit-avatar{width:56px;height:56px;flex:none;border-radius:50%;border:1px solid var(--line);object-fit:cover}.credit-body{min-width:0}
.credit-card small{padding:2px 9px;color:var(--blue);background:#eef5ff;border-radius:999px;font-size:11px;font-weight:650}.credit-card strong{display:block;margin-top:6px;font-size:17px}.credit-card strong em{margin-left:6px;color:var(--sub);font-size:13px;font-weight:500;font-style:normal}.credit-card p{margin:3px 0 8px;color:var(--sub);font-size:13px;line-height:1.5}
.credit-links{display:flex;flex-wrap:wrap;gap:8px}.credit-links a{height:28px;padding:0 12px;display:inline-flex;align-items:center;color:var(--blue);background:#eef5ff;border-radius:999px;font-size:12px;font-weight:650;line-height:1;text-decoration:none;transition:background .15s}.credit-links a:hover{background:#dcebff}
@media(max-width:720px){.credits{margin:18px 12px 0;grid-template-columns:1fr;gap:12px}}
.install-progress i.running{background-image:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.45) 50%,transparent 70%);background-size:200% 100%;animation:progress-flow 1.6s linear infinite}
.install-progress i{transition:width 1s linear}
.install-stages .active i{animation:stage-pulse 1.4s ease-in-out infinite}
@keyframes progress-flow{from{background-position:150% 0}to{background-position:-50% 0}}
@keyframes stage-pulse{50%{transform:scale(.82)}}
@media(prefers-reduced-motion:reduce){.install-progress i.running,.install-stages .active i{animation:none}}
.site-header{height:auto;min-height:132px;padding-block:14px}
.brand{text-align:center;text-decoration:none}
.brand-tagline{margin-top:8px;display:block;color:#1d1d1f;font-size:15px;font-weight:500;letter-spacing:.32em;text-indent:.32em}
@media(max-width:720px){.brand-tagline{font-size:14px}}
.statement{margin-bottom:24px;padding:40px 44px;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:12px}
.statement-kicker{margin:0 0 14px;color:var(--sub);font-size:12px;font-weight:650;letter-spacing:.2em}
.statement h2{margin:0;font-size:32px;font-weight:800;line-height:1.25;letter-spacing:.02em}
.statement-lead{margin:12px 0 0;color:#48484d;font-size:17px;line-height:1.6}
.statement-points{margin-top:30px;padding:24px 0;display:grid;grid-template-columns:repeat(3,1fr);background:var(--canvas);border:1px solid var(--line);border-radius:10px}
.statement-points>div{padding:0 28px}.statement-points>div+div{border-left:1px solid #d2d2d7}
.statement-points strong{display:block;font-size:15px}
.statement-points span{margin-top:6px;display:block;color:var(--sub);font-size:13px;line-height:1.6}
.statement-points a{color:var(--ink);text-decoration:underline;text-underline-offset:3px;word-break:break-all}
.statement-points b{color:var(--ink);font-size:28px;font-weight:800;line-height:1}
.installer:not(:has(.step[data-step="1"].active)) .statement{display:none}
@media(max-width:720px){.statement{margin:12px 12px 0;padding:28px 22px}.statement-points{padding:4px 20px;grid-template-columns:1fr}.statement-points>div{padding:16px 0}.statement-points>div+div{border-left:0;border-top:1px solid #d2d2d7}.statement h2{font-size:24px}.statement-lead{font-size:15px}}
.brand-heading{margin:0;font-size:inherit;font-weight:inherit}
.faq{margin-top:24px;padding:36px 44px;background:#fff;border:1px solid var(--line);border-radius:12px}.faq h2{margin:0 0 12px;font-size:22px}
.faq details{border-top:1px solid var(--line)}.faq summary{padding:16px 0;display:flex;justify-content:space-between;gap:16px;cursor:pointer;list-style:none;font-size:15px;font-weight:650}.faq summary::-webkit-details-marker{display:none}.faq summary::after{content:"+";color:var(--sub);font-weight:400}.faq details[open] summary::after{content:"−"}.faq details p{margin:0 0 16px;color:#48484d;font-size:14px;line-height:1.7}
.installer:not(:has(.step[data-step="1"].active)) .faq{display:none}
@media(max-width:720px){.faq{margin:12px 12px 0;padding:28px 22px}}
