/* 星屿AI — warm minimalism / liquid glass. No external fonts or dependencies. */
:root{color-scheme:light;--bg:#f6f7f2;--surface:rgba(255,255,255,.65);--solid:#fff;--text:#262d28;--muted:#7c837b;--border:rgba(65,78,60,.12);--shine:rgba(255,255,255,.94);--accent:#2e483a;--accent-text:#f3f6ec;--sage:#e0e9d7;--sage-text:#496141;--sand:#f0e7d8;--shadow:0 12px 40px -22px rgba(34,46,28,.25);--glass-shadow:inset 0 1px 0 var(--shine),0 4px 16px -10px rgba(40,52,38,.2);--radius:20px;--ease:cubic-bezier(.22,.61,.36,1)}
:root[data-theme=dark]{color-scheme:dark;--bg:#141a17;--surface:rgba(38,47,41,.7);--solid:#263029;--text:#eef1e7;--muted:#a1aa9e;--border:rgba(202,215,195,.12);--shine:rgba(220,237,218,.09);--accent:#c6d8b4;--accent-text:#1e3024;--sage:#2c3d2e;--sage-text:#c3d5b3;--sand:#3d372c;--shadow:0 12px 40px -22px rgba(0,0,0,.6)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:90px}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,"SF Pro Display","Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.65;-webkit-font-smoothing:antialiased;transition:background .3s,color .3s}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 75% 10%,rgba(164,184,146,.12),transparent 55%)}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select,summary{transition:background .3s var(--ease),color .3s var(--ease),border-color .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease),opacity .3s var(--ease)}button{cursor:pointer;color:inherit}button:disabled{opacity:.5;cursor:not-allowed;transform:none!important}button,a{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--sage-text);outline-offset:4px}h1,h2,h3,h4,p{margin:0}h1,h2,h3{font-weight:650;letter-spacing:-.045em;line-height:1.2}p{color:var(--muted)}h1{font-size:clamp(38px,5vw,64px)}h2{font-size:clamp(27px,3vw,38px)}h3{font-size:21px}.icon{width:20px;height:20px;flex-shrink:0;vertical-align:middle}.glass,.glass-pill{background:var(--surface);border:1px solid var(--border);box-shadow:var(--glass-shadow);backdrop-filter:blur(24px) saturate(150%);-webkit-backdrop-filter:blur(24px) saturate(150%)}.glass{border-radius:20px}.glass-pill{border-radius:999px}.container{max-width:1120px;width:calc(100% - 64px);margin:auto}.site-header{height:64px;position:sticky;top:0;z-index:30;transition:background .3s,box-shadow .3s,backdrop-filter .3s}.site-header.scrolled{background:var(--surface);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);box-shadow:0 1px 0 var(--border)}.nav-inner{max-width:1440px;margin:auto;padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between;position:relative}.brand{display:flex;gap:9px;align-items:center;height:42px;padding:5px 14px 5px 6px;font-size:18px;letter-spacing:-.5px;font-weight:700}.brand-ai{font-weight:500;margin-left:3px}.main-nav{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;padding:6px;gap:3px;height:44px;align-items:center}.main-nav a{white-space:nowrap;border-radius:999px;padding:5px 20px;font-size:13px;color:var(--muted)}.main-nav a:hover{color:var(--text)}.main-nav a.active,.mobile-nav a.active{color:var(--text);background:rgba(140,160,124,.14);box-shadow:inset 0 1px 0 var(--shine)}.nav-actions{display:flex;align-items:center;padding:5px 6px;height:42px;gap:6px}.nav-divider{height:16px;border-left:1px solid var(--border)}.nav-login{font-size:12px;padding:6px 13px;border-radius:999px;display:inline-block;background:var(--text);color:var(--bg)}.icon-btn{border:0;background:transparent;display:inline-flex;align-items:center;justify-content:center;border-radius:12px;width:32px;height:32px;color:var(--muted)}.icon-btn:hover{background:var(--sage);color:var(--text)}.avatar{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:50%;background:var(--sage);color:var(--sage-text);font-weight:700;font-size:13px}.mobile-nav{display:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid var(--border);border-radius:14px;min-height:44px;padding:11px 19px;background:var(--surface);font-size:13px;font-weight:550;white-space:nowrap}.btn:hover{transform:translateY(-2px) scale(1.015);box-shadow:var(--shadow)}.btn.primary{background:var(--accent);color:var(--accent-text);border-color:transparent}.btn.small{min-height:36px;padding:7px 12px;font-size:12px}.btn.wide{width:100%}.text-link{display:inline-flex;gap:8px;align-items:center;color:var(--text);font-size:13px}.text-link:hover{gap:12px}.eyebrow{font-size:10px;letter-spacing:.2em;color:var(--sage-text);text-transform:uppercase;font-weight:650;margin-bottom:14px}.badge{display:inline-flex;align-items:center;gap:7px;padding:5px 11px;border:1px solid var(--border);border-radius:999px;font-size:11px;color:var(--sage-text);background:var(--surface)}.dot{width:5px;height:5px;background:var(--sage-text);border-radius:50%}.hero{padding:78px 0 55px;position:relative}.hero-layout{display:grid;grid-template-columns:1.02fr 1fr;align-items:center;gap:30px}.hero h1{margin-top:22px;line-height:1.13;letter-spacing:-.05em}.hero h1 em{font-style:normal;color:var(--sage-text)}.hero-copy>p{max-width:385px;margin-top:23px;line-height:1.9;font-size:15px}.hero-actions{display:flex;gap:12px;margin-top:30px}.hero-note{margin-top:23px;font-size:11px;color:var(--muted);display:flex;gap:16px}.hero-note .icon{width:13px;height:13px;color:var(--sage-text);margin-right:4px}.hero-art{height:400px;position:relative;display:grid;place-items:center;isolation:isolate}.art-grid{position:absolute;inset:5% 2%;opacity:.4;background-image:linear-gradient(var(--border) 1px,transparent 1px),linear-gradient(90deg,var(--border) 1px,transparent 1px);background-size:32px 32px;mask-image:radial-gradient(ellipse,#000 10%,transparent 70%)}.orbit{position:absolute;width:330px;height:170px;border:1px solid rgba(135,155,111,.3);border-radius:50%;transform:rotate(-30deg);box-shadow:inset 0 0 35px rgba(166,188,145,.08)}.orbit.two{transform:rotate(36deg);width:280px;height:320px;border-color:rgba(143,164,120,.14)}.orb{width:195px;height:195px;border-radius:50%;background:radial-gradient(circle at 29% 24%,#fff 0,#edf4dd 13%,#c4d3aa 35%,#8da474 62%,#50684b 88%);box-shadow:inset -14px -20px 32px rgba(43,72,42,.25),inset 10px 10px 25px rgba(255,255,255,.8),0 40px 65px -28px rgba(91,121,76,.45);position:relative;z-index:1;animation:float 7s ease-in-out infinite}.orb:after{content:"✦";color:rgba(255,255,255,.85);position:absolute;top:44px;left:68px;font-size:65px;filter:drop-shadow(0 0 14px #fff)}.float-card{position:absolute;z-index:3;padding:13px 17px;border-radius:16px;display:flex;gap:12px;align-items:center;font-size:12px;min-width:145px;animation:float 8s ease-in-out infinite}.float-card small{color:var(--muted);font-size:10px;display:block;margin-top:2px}.float-card .tool-icon{width:34px;height:34px;border-radius:11px}.float-card.one{top:32px;right:10px;transform:rotate(5deg)}.float-card.two{left:0;bottom:65px;animation-delay:-3s}.float-card.three{bottom:7px;right:12px;animation-delay:-5s}.art-caption{position:absolute;top:37px;left:0;font-size:9px;letter-spacing:.2em;color:var(--muted);writing-mode:vertical-rl}.star-dot{position:absolute;width:7px;height:7px;border-radius:50%;background:#a3b88a;top:130px;left:26px;box-shadow:0 0 0 6px rgba(140,164,114,.08)}.brand-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:24px 0;display:flex;align-items:center;justify-content:space-between;margin-top:44px;gap:25px}.brand-strip>span{font-size:11px;color:var(--muted)}.model-word{font-size:18px;font-weight:600;color:var(--muted);letter-spacing:-.6px}.model-word small{font-size:10px;font-weight:400;letter-spacing:.06em;margin-left:5px}.section{padding:64px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:29px}.section-head p{max-width:410px;font-size:13px;margin-top:12px}.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{padding:26px;box-shadow:var(--shadow)}.card:hover{border-color:rgba(100,129,81,.3)}.model-card{position:relative;display:flex;flex-direction:column;min-height:266px;transition:transform .3s,border-color .3s}.model-card:hover,.tool-card:hover{transform:translateY(-4px)}.tool-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:14px;background:var(--sage);color:var(--sage-text)}.tool-icon.sand{background:var(--sand);color:var(--text)}.tool-icon.ink{background:var(--text);color:var(--bg)}.model-label{position:absolute;right:23px;top:30px;font-size:10px;color:var(--muted)}.model-card h3{font-size:20px;margin:23px 0 10px}.model-card p{font-size:12px;line-height:1.9}.model-foot{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:20px}.tags{display:flex;gap:7px;flex-wrap:wrap}.tags span{font-size:10px;color:var(--muted);border:1px solid var(--border);border-radius:7px;padding:2px 6px}.round-arrow{display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;width:29px;height:29px}.round-arrow .icon{width:14px;height:14px}.feature-board{display:grid;grid-template-columns:1.15fr 1fr;gap:18px}.feature-main{padding:34px;overflow:hidden;position:relative;min-height:340px}.feature-main h3{font-size:26px;margin:18px 0 12px}.feature-main>p{max-width:320px;font-size:13px}.mini-chat{margin-top:34px;padding:20px;border:1px solid var(--border);background:var(--solid);border-radius:15px;transform:rotate(-2deg);box-shadow:var(--shadow);font-size:12px;max-width:360px}.mini-line{display:flex;gap:12px;align-items:start;margin:10px 0}.mini-line .icon{color:var(--sage-text);width:17px}.mini-line p{color:var(--text);font-size:11px}.feature-side{display:grid;gap:18px}.feature-small{padding:26px;display:flex;gap:20px;align-items:start}.feature-small h3{font-size:18px;margin:2px 0 10px}.feature-small p{font-size:12px}.feature-small .tool-icon{flex-shrink:0}.price-card{position:relative;display:flex;flex-direction:column;padding:28px}.price-card.popular{border-color:rgba(103,135,84,.4);background:linear-gradient(145deg,var(--surface),var(--sage))}.price-card .popular-tag{position:absolute;right:22px;top:22px;background:var(--accent);color:var(--accent-text);font-size:10px;padding:4px 8px;border-radius:7px}.price-card h3{font-size:19px}.price-card>p{font-size:11px;margin-top:8px}.price-value{font-size:40px;line-height:1.2;margin:26px 0 7px;font-weight:600;letter-spacing:-.04em}.price-value small{font-size:12px;color:var(--muted);font-weight:400;letter-spacing:0}.price-card .billing-note{font-size:10px;min-height:17px}.price-card ul{list-style:none;padding:20px 0;margin:0;flex:1;border-top:1px solid var(--border);margin-top:21px}.price-card li{font-size:12px;margin:12px 0;display:flex;gap:9px;align-items:center}.price-card li .icon{width:14px;height:14px;color:var(--sage-text)}.segmented{padding:4px;display:inline-flex;border-radius:999px;gap:3px}.segmented button{background:none;border:0;padding:6px 16px;border-radius:999px;color:var(--muted);font-size:12px}.segmented button.active{background:var(--solid);color:var(--text);box-shadow:0 2px 4px #00000008}.faq-layout{display:grid;grid-template-columns:.65fr 1fr;gap:60px}.faq-intro p{margin-top:16px;font-size:13px}.faq-list details{border-bottom:1px solid var(--border);padding:19px 0}.faq-list summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font-size:13px}.faq-list summary:after{content:'+';font-size:20px;color:var(--muted)}.faq-list details[open] summary:after{content:'−'}.faq-list details p{margin-top:16px;font-size:12px;line-height:1.9;animation:fade-in .3s}.closing{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:42px;background:var(--sage);border-radius:20px;margin-bottom:60px}.closing h2{font-size:30px}.closing p{font-size:12px;margin-top:12px}.site-footer{border-top:1px solid var(--border);padding:32px 0}.footer-top{display:flex;justify-content:space-between;align-items:start;gap:20px}.footer-brand{font-size:17px;font-weight:650;display:flex;align-items:center;gap:8px}.footer-brand img{width:24px;height:24px}.footer-caption{font-size:11px;margin-top:9px}.footer-links{display:flex;gap:26px;font-size:11px;color:var(--muted)}.footer-bottom{display:flex;justify-content:space-between;font-size:10px;color:var(--muted);margin-top:30px}.page-enter{animation:page-in .3s var(--ease)}.page-title{padding:52px 0 35px}.page-title h1{font-size:42px}.page-title p{margin-top:17px;font-size:14px}.page-title.center{text-align:center}.page-title.center p{max-width:500px;margin:17px auto 0}.page-body{padding-bottom:60px}.notice{padding:12px 16px;border:1px solid var(--border);border-radius:12px;background:var(--sage);font-size:11px;color:var(--sage-text);margin-top:20px}.comparison{overflow:auto;margin-top:36px;border-radius:20px;border:1px solid var(--border)}table{width:100%;border-collapse:collapse;font-size:12px}th,td{padding:19px;text-align:left;border-bottom:1px solid var(--border);white-space:nowrap}th{background:var(--surface);font-weight:600}td{color:var(--muted)}tr:last-child td{border-bottom:0}.table-title{margin-top:60px;font-size:23px}.toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:30px}.filters{display:flex;gap:7px;flex-wrap:wrap}.filter-btn{border:1px solid transparent;border-radius:999px;background:transparent;padding:7px 16px;font-size:12px;color:var(--muted)}.filter-btn.active{border-color:var(--border);background:var(--solid);color:var(--text)}.search-field{position:relative;max-width:260px}.search-field .icon{position:absolute;left:12px;top:12px;width:16px;color:var(--muted)}.search-field input{padding-left:37px}.tool-card{transition:transform .3s;display:flex;flex-direction:column;min-height:220px}.tool-card h3{margin:21px 0 11px;font-size:19px}.tool-card p{font-size:12px;margin-bottom:19px}.tool-card .text-link{margin-top:auto;font-size:12px}.tool-card-top{display:flex;justify-content:space-between;align-items:center}.tool-card-top .badge{font-size:10px;background:none}.tool-form label{display:block;margin:18px 0 8px;font-size:12px}.tool-form textarea{min-height:180px}.tool-form .btn{margin-top:18px}.auth-layout{min-height:calc(100dvh - 64px);display:grid;grid-template-columns:1fr 1fr;max-width:1080px;margin:auto;padding:55px 32px;align-items:center;gap:80px}.auth-art{padding:20px}.auth-art h1{font-size:44px;line-height:1.25;margin-top:24px}.auth-art p{margin-top:24px;max-width:350px;font-size:14px}.auth-decoration{height:160px;position:relative;margin-top:30px}.auth-decoration .orb{height:125px;width:125px;position:absolute;left:70px;top:20px}.auth-decoration .orb:after{font-size:42px;left:45px;top:27px}.auth-decoration .orbit{width:280px;height:100px;left:0;top:37px}.auth-card{padding:34px;width:100%;max-width:430px}.auth-card h2{font-size:27px}.auth-card>p{font-size:12px;margin-top:10px}.auth-switch{display:flex;margin:25px 0;background:var(--bg);padding:4px;border-radius:12px}.auth-switch a{flex:1;text-align:center;padding:8px;border-radius:9px;font-size:12px;color:var(--muted)}.auth-switch a.active{background:var(--solid);box-shadow:var(--shadow);color:var(--text)}.field{margin:18px 0}.field label{font-size:12px;display:block;margin-bottom:8px}.input,input:not([type=checkbox]),textarea,select{width:100%;border:1px solid var(--border);border-radius:12px;padding:11px 13px;background:var(--surface);color:var(--text);outline:none;font-size:13px}input:focus,textarea:focus,select:focus{border-color:var(--sage-text);box-shadow:0 0 0 3px rgba(113,144,88,.1)}textarea{resize:vertical;line-height:1.7}.password-field{position:relative}.password-field input{padding-right:54px}.password-field button{position:absolute;right:10px;top:9px;font-size:10px;border:0;background:none;color:var(--muted);padding:4px}.form-error{color:#b65848;font-size:12px;margin-bottom:12px;min-height:0}.agree{display:flex;gap:8px;align-items:start;font-size:11px;color:var(--muted);margin:20px 0}.agree input{accent-color:var(--sage-text);margin-top:4px}.form-note{font-size:10px;text-align:center;margin-top:18px;line-height:1.8}.chat-shell{height:calc(100dvh - 84px);min-height:450px;max-width:1400px;margin:10px auto;display:grid;grid-template-columns:250px 1fr;border:1px solid var(--border);border-radius:20px;overflow:hidden;background:var(--surface);box-shadow:var(--shadow)}.chat-sidebar{padding:20px 15px;display:flex;flex-direction:column;border-right:1px solid var(--border);background:rgba(143,163,124,.035);overflow:auto}.sidebar-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:22px;padding:0 6px;font-size:12px}.sidebar-title span{font-size:10px;color:var(--muted)}.conversation-list{margin:22px -4px;flex:1}.sidebar-label{font-size:10px;color:var(--muted);margin:0 12px 12px}.conversation{display:flex;align-items:center;gap:8px;border-radius:12px;margin-bottom:5px;padding-right:4px}.conversation.active{background:rgba(128,154,107,.13)}.conversation button{border:0;background:none;text-align:left;padding:11px 10px;flex:1;min-width:0;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-bottom{border-top:1px solid var(--border);padding:16px 6px 0;font-size:10px;color:var(--muted)}.chat-panel{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative}.chat-top{padding:16px 27px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.chat-top select{width:auto;border:0;background:transparent;padding:5px 25px 5px 0;font-size:13px;font-weight:600}.chat-top small{font-size:10px;color:var(--muted)}.chat-messages{flex:1;overflow:auto;padding:20px 32px;scroll-behavior:smooth}.chat-welcome{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;max-width:620px;margin:auto;text-align:center;min-height:230px}.chat-welcome .tool-icon{width:58px;height:58px;border-radius:20px;margin-bottom:23px}.chat-welcome h2{font-size:30px}.chat-welcome p{font-size:12px;margin:13px 0 25px}.suggestions{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:500px;width:100%}.suggestion{padding:13px;border:1px solid var(--border);border-radius:14px;text-align:left;background:var(--surface);font-size:11px}.suggestion:hover{border-color:var(--sage-text);transform:translateY(-2px)}.suggestion .icon{width:15px;height:15px;color:var(--sage-text);margin-right:6px}.message{display:flex;gap:14px;max-width:850px;margin:22px auto;animation:fade-in .3s}.message.user{flex-direction:row-reverse}.message-avatar{width:29px;height:29px;border-radius:10px;flex-shrink:0;background:var(--sage);display:grid;place-items:center;color:var(--sage-text);font-size:11px;margin-top:3px}.message-avatar .icon{width:16px;height:16px}.message-content{min-width:0;max-width:85%}.message-body{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.9}.message.user .message-body{background:var(--sage);border-radius:15px 3px 15px 15px;padding:12px 17px}.message.assistant .message-body{padding-top:4px}.message-actions{margin-top:7px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:10px}.message-actions .icon-btn{width:25px;height:25px}.message-actions .icon{width:13px;height:13px}.typing{display:flex;gap:4px;align-items:center;height:25px}.typing i{width:5px;height:5px;border-radius:50%;background:var(--muted);animation:pulse 1.2s infinite}.typing i:nth-child(2){animation-delay:.2s}.typing i:nth-child(3){animation-delay:.4s}.composer-wrap{padding:10px 32px 18px;max-width:915px;width:100%;margin:auto}.composer{border-radius:18px;padding:14px;border:1px solid var(--border);background:var(--solid);box-shadow:var(--shadow)}.composer textarea{border:0;background:none;padding:0;box-shadow:none;min-height:45px;max-height:145px;resize:none}.composer-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:9px}.composer-bottom span{font-size:10px;color:var(--muted)}.send-btn{background:var(--accent);color:var(--accent-text);width:33px;height:33px;border:0;border-radius:10px;display:grid;place-items:center}.composer-note{font-size:9px;color:var(--muted);text-align:center;margin-top:9px}.account-layout{display:grid;grid-template-columns:230px 1fr;gap:24px}.profile-card{padding:25px;height:max-content;text-align:center}.profile-card .avatar{width:60px;height:60px;font-size:22px;margin-bottom:15px}.profile-card h3{font-size:18px;overflow-wrap:anywhere}.profile-card p{font-size:11px;margin-top:7px;overflow-wrap:anywhere}.profile-card .badge{margin:17px 0 25px}.account-tabs{display:flex;flex-direction:column;gap:7px;text-align:left;border-top:1px solid var(--border);padding-top:17px}.account-tabs button{border:0;background:none;color:var(--muted);border-radius:10px;padding:10px;font-size:12px;text-align:left}.account-tabs button.active{background:var(--sage);color:var(--text)}.account-content h3{font-size:20px;margin-bottom:20px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:23px}.stat-card{padding:24px}.stat-card small{color:var(--muted);font-size:11px}.stat-card strong{font-size:34px;font-weight:600;display:block;margin:13px 0}.stat-card p{font-size:10px}.info-list{display:grid;grid-template-columns:1fr 1fr;gap:26px}.info-list dt{font-size:11px;color:var(--muted);margin-bottom:7px}.info-list dd{margin:0;font-size:13px;overflow-wrap:anywhere}.empty{padding:50px 20px;text-align:center;color:var(--muted);font-size:13px}.empty .icon{width:30px;height:30px;margin-bottom:15px}.empty p{margin-bottom:20px}.modal{color:var(--text);width:min(500px,calc(100% - 32px));padding:28px;background:var(--solid)}.modal::backdrop{background:rgba(19,29,21,.32);backdrop-filter:blur(8px)}.modal-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}.modal h3{font-size:22px}.modal p{font-size:12px;line-height:1.9}.modal-actions{display:flex;justify-content:end;gap:10px;margin-top:24px}.toasts{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);z-index:100;display:flex;flex-direction:column;gap:10px;width:max-content;max-width:calc(100% - 32px);pointer-events:none}.toast{background:var(--text);color:var(--bg);padding:12px 20px;border-radius:14px;font-size:12px;box-shadow:var(--shadow);animation:fade-in .3s}.toast.error{background:#7e453b;color:#fff}.loading{padding:100px 20px;text-align:center;color:var(--muted);font-size:13px}.loading:before{content:"";display:block;width:25px;height:25px;border:2px solid var(--border);border-top-color:var(--sage-text);border-radius:50%;margin:0 auto 16px;animation:spin 1s linear infinite}.skip-link{position:fixed;left:20px;top:-60px;z-index:200;background:var(--accent);color:var(--accent-text);padding:10px 15px;border-radius:10px}.skip-link:focus{top:10px}#main:focus{outline:none}.error-page{text-align:center;padding:110px 24px}.error-page h1{font-size:34px}.error-page p{margin:20px auto}.status-label{color:var(--sage-text);font-size:11px}.mock-label{font-size:10px;color:var(--muted);margin-top:14px;text-align:center}@keyframes float{0%,100%{translate:0 0}50%{translate:0 -12px}}@keyframes page-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes pulse{50%{opacity:.25;transform:translateY(-2px)}}@keyframes spin{to{transform:rotate(360deg)}}
@supports not ((backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px))){.glass,.glass-pill,.site-header.scrolled{background:var(--solid)}}
@media(min-width:1500px){.hero{padding-top:95px}.hero-art{height:440px}}
@media(max-width:1000px){.main-nav a{padding:5px 13px}.hero-art{height:330px}.orb{width:170px;height:170px}.orb:after{left:58px;top:35px}.orbit{width:270px}.float-card{padding:10px 12px;min-width:135px;font-size:11px}.float-card.one{right:0;top:10px}.float-card.two{left:-10px;bottom:60px}.float-card.three{right:0}.hero-note{gap:10px}.hero-note span:last-child{display:none}.auth-layout{gap:35px}.chat-shell{margin:10px 16px}.chat-sidebar{padding:16px 10px}.chat-shell{grid-template-columns:210px 1fr}.chat-messages{padding:15px 22px}}
@media(max-width:760px){.container{width:calc(100% - 36px)}.nav-inner{padding:0 18px}.main-nav{display:none}.mobile-nav{position:fixed;display:flex;justify-content:center;left:50%;transform:translateX(-50%);bottom:calc(13px + env(safe-area-inset-bottom));padding:5px;z-index:40;box-shadow:0 8px 32px #00000018}.mobile-nav a{padding:9px 17px;font-size:11px;border-radius:999px;white-space:nowrap}body{padding-bottom:82px}.hero{padding:45px 0 25px}.hero-layout{grid-template-columns:1fr;gap:15px}.hero-copy{text-align:center}.hero-copy>p{margin:20px auto 0;font-size:13px;max-width:310px}.hero h1{font-size:45px}.hero-actions,.hero-note{justify-content:center}.hero-note{font-size:10px}.hero-art{height:305px;max-width:440px;width:100%;margin:auto}.orb{width:155px;height:155px}.orb:after{font-size:54px;left:53px;top:32px}.float-card.one{right:12px;top:26px}.float-card.two{left:4px;bottom:52px}.float-card.three{right:12px;bottom:0}.art-caption{left:18px;top:30px}.orbit.two{height:265px;width:235px}.brand-strip{margin-top:32px;flex-wrap:wrap;gap:20px;justify-content:center;padding:23px 0}.brand-strip>span{width:100%;text-align:center}.model-word{font-size:15px}.model-word small{display:none}.section{padding:40px 0}.section-head{align-items:start}.section-head p{font-size:12px}.section-head>.text-link{margin-top:35px;white-space:nowrap;font-size:11px}.grid3{grid-template-columns:1fr}.model-card{min-height:230px}.model-card h3{margin-top:18px}.feature-board{grid-template-columns:1fr}.feature-main{padding:25px;min-height:330px}.feature-small{padding:23px}.price-card{padding:26px}.section-head:has(.segmented){flex-direction:column;gap:18px}.faq-layout{grid-template-columns:1fr;gap:17px}.closing{flex-direction:column;text-align:center;align-items:center;padding:32px 20px;margin-top:25px;margin-bottom:40px}.closing h2{font-size:27px}.footer-top{flex-direction:column;gap:25px}.footer-links{gap:22px}.footer-bottom{font-size:9px;gap:15px}.page-title{padding:35px 0 28px}.page-title h1{font-size:34px}.page-title p{font-size:12px}.toolbar{flex-direction:column;align-items:stretch;gap:15px}.search-field{max-width:none}.filters{gap:2px}.filter-btn{padding:6px 13px;font-size:11px}.auth-layout{grid-template-columns:1fr;padding:35px 18px;gap:25px;min-height:auto}.auth-art{display:none}.auth-card{margin:auto;padding:27px}.chat-shell{height:calc(100dvh - 148px - env(safe-area-inset-bottom));min-height:300px;margin:0 10px;grid-template-columns:1fr;border-radius:15px}.chat-sidebar{display:none}.chat-shell.history-open .chat-sidebar{display:flex;position:absolute;z-index:10;left:0;top:0;bottom:0;width:245px;background:var(--solid);box-shadow:20px 0 60px #00000030}.chat-shell.history-open .chat-panel:before{content:"";position:absolute;inset:0;background:#00000030;z-index:9}.chat-top{padding:12px 16px}.chat-top small{font-size:9px}.chat-top select{font-size:12px;max-width:180px}.chat-messages{padding:13px 15px}.chat-welcome h2{font-size:24px}.chat-welcome p{font-size:11px}.chat-welcome .tool-icon{margin-bottom:14px;width:45px;height:45px}.suggestions{gap:7px}.suggestion{font-size:10px;padding:10px}.composer-wrap{padding:8px 10px 12px}.composer textarea{font-size:12px;min-height:36px}.composer{padding:12px}.composer-note{font-size:8px}.composer-bottom span{font-size:9px}.message{gap:9px}.message-content{max-width:85%}.message-body{font-size:12px}.message-avatar{width:25px;height:25px}.account-layout{grid-template-columns:1fr}.profile-card{padding:23px}.account-tabs{flex-direction:row;justify-content:center;flex-wrap:wrap}.profile-card .badge{margin:13px 0 20px}.stat-card{padding:20px}.stat-card strong{font-size:28px}.info-list{grid-template-columns:1fr}.toasts{bottom:90px}.chat-history-toggle{display:inline-flex!important}.table-title{margin-top:40px}.modal{padding:23px}}
.chat-history-toggle{display:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* 对话内生图样式 */
.image-gen-btn { background: linear-gradient(135deg, #2d5016, #4a7c2c); color: white; border: none; padding: 6px 14px; border-radius: 8px; font-size: 13px; cursor: pointer; }
.image-gen-btn:hover { opacity: 0.9; }
.image-gen-form { padding: 16px 0; }
.image-gen-form .field { margin-bottom: 16px; }
.image-gen-form label { display: block; font-size: 13px; font-weight: 600; color: #2d3436; margin-bottom: 6px; }
.image-gen-form textarea, .image-gen-form select { width: 100%; padding: 10px 12px; border: 2px solid #e8ede0; border-radius: 8px; font-size: 14px; font-family: inherit; outline: none; }
.image-gen-form textarea:focus, .image-gen-form select:focus { border-color: #2d5016; }
.image-gen-form .field-row { display: flex; gap: 16px; }
.image-gen-form .field-row .field { flex: 1; }
.image-gen-hint { font-size: 12px; color: #636e72; margin-top: 8px; }
.chat-image-container { max-width: 100%; }
.chat-generated-image { max-width: 100%; max-height: 400px; border-radius: 12px; box-shadow: 0 4px 12px rgba(0,0,0,0.1); }
.chat-image-actions { margin-top: 12px; }
.chat-image-prompt { margin-top: 12px; padding: 10px 14px; background: #f5f7f0; border-radius: 8px; font-size: 13px; color: #636e72; }


/* ===== [mobile-fix] 手机端首屏精简 / 溢出修正 ===== */
@media (max-width:760px){
  html,body{overflow-x:hidden;max-width:100%}
  /* 隐藏首屏装饰动画（圆球/浮动卡片/轨道/竖排字），避免元素重叠冲突 */
  .hero-art,.art-grid,.orbit,.orb,.float-card,.art-caption,.star-dot{display:none!important}
  .hero{padding:30px 0 16px}
  .hero-layout{grid-template-columns:1fr;gap:0}
  .hero h1{font-size:clamp(28px,8.6vw,40px);margin-top:16px}
  .hero-copy>p{font-size:13px;margin-top:15px;max-width:330px}
  .hero-actions{gap:9px;margin-top:20px}
  .hero-actions .btn{flex:1 1 0;min-width:0;justify-content:center;padding:11px 10px;font-size:13px}
  .hero-note{margin-top:15px;font-size:10px;gap:9px}
  .brand-strip{margin-top:22px;padding:18px 0;gap:12px}
  /* 底部导航收窄，防止 6 项横向挤压溢出 */
  .mobile-nav{max-width:calc(100vw - 20px);gap:1px;padding:4px}
  .mobile-nav a{padding:9px 10px;font-size:10px}
  .toasts{bottom:98px}
  /* 聊天页历史抽屉限宽，避免整屏遮挡 */
  .chat-shell.history-open .chat-sidebar{width:min(78vw,260px)}
}

/* ===== 滑块人机校验（登录 / 注册页） =====
   「按钮贴紧胶囊」定版：
     1) 轨道 = 胶囊：height 48 / border-radius 24（=半高，两端全圆）；
     2) 按钮 = 胶囊左端盖：48 x 48（正好占满轨道全高），
        border-radius: 24px 0 0 24px
        —— 左侧弧线半径 24，与胶囊左端弧线完全同弧重合；
        —— 右缘为竖直线，因此按钮的上沿、下沿、左弧三边都紧压胶囊边缘，
           不再出现"两端倒圆、右上方/右下方让出底色"的椭圆片观感；
     3) 胶囊 1px 轮廓由 .hc::after 统一绘制并置顶（z-index:3），
        轮廓线连续不断，白钮嵌在轮廓内侧，视觉上属于同一个胶囊；
     4) 按钮默认正圆、只留一道极轻投影以呈现胶片质感；通过后收窄为右半圆，overflow:hidden 保证不越界。
*/
.hc{--hc-ok-w:24px;position:relative;margin:14px 0 6px;width:100%;box-sizing:border-box}
.hc::after{content:'';position:absolute;inset:0;border-radius:24px;
  box-shadow:inset 0 0 0 1px rgba(46,72,58,.20);pointer-events:none;z-index:3}
.hc-track{position:relative;height:48px;border-radius:24px;background:#f1efe8;
  overflow:hidden;box-sizing:border-box;
  user-select:none;-webkit-user-select:none;touch-action:none}
.hc-fill{position:absolute;left:0;top:0;bottom:0;width:0;border-radius:24px 0 0 24px;
  background:linear-gradient(90deg,rgba(46,72,58,.12),rgba(46,72,58,.22));
  pointer-events:none;transition:width .06s linear}
.hc-label{position:absolute;left:0;right:0;top:0;bottom:0;display:flex;align-items:center;
  justify-content:center;font-size:13px;line-height:1;color:#8b8a80;letter-spacing:.02em;
  pointer-events:none;transition:opacity .18s ease}
.hc--active .hc-label{opacity:0}
.hc-label--warn{color:#c0563d}

/* 左端盖：满高、左弧、右直，四边紧贴胶囊 */
.hc-thumb{position:absolute;left:0;top:0;z-index:2;width:48px;height:48px;padding:0;
  margin:0;border:0;border-radius:50%;background:#ffffff;color:#2e483a;
  display:flex;align-items:center;justify-content:center;
  cursor:grab;touch-action:none;box-sizing:border-box;
  box-shadow:0 1px 2px rgba(46,72,58,.16),0 2px 6px rgba(46,72,58,.10);
  transition:transform .26s cubic-bezier(.22,.61,.36,1),width .2s cubic-bezier(.22,.61,.36,1),border-radius .2s cubic-bezier(.22,.61,.36,1),background .2s,color .2s}
.hc-thumb:active{cursor:grabbing}
.hc--dragging .hc-thumb{cursor:grabbing}

.hc-spin,.hc-check{display:none}
.hc-spin{width:16px;height:16px;border-radius:50%;border:2px solid rgba(46,72,58,.20);
  border-top-color:#2e483a;animation:hcSpin .72s linear infinite}
@keyframes hcSpin{to{transform:rotate(360deg)}}
.hc--busy .hc-ico{display:none}
.hc--busy .hc-spin{display:block}

/* 通过态：按钮滑到最右，形状镜像为右端盖 */
.hc--ok .hc-ico{display:none}
.hc--ok .hc-check{display:block}
.hc--ok .hc-track{background:#e7eddc}
.hc--ok .hc-fill{background:linear-gradient(90deg,rgba(46,72,58,.10),rgba(46,72,58,.20))}
.hc--ok .hc-thumb{width:var(--hc-ok-w);background:#2e483a;color:#fff;cursor:default;
  border-radius:0 24px 24px 0}
.hc--ok .hc-label{color:#2e483a;font-weight:600}
.hc--ok::after{box-shadow:inset 0 0 0 1px rgba(46,72,58,.28)}

.hc--fail .hc-track{background:#f8ece7;animation:hcShake .4s ease}
.hc--fail .hc-fill{background:linear-gradient(90deg,rgba(192,86,61,.12),rgba(192,86,61,.24))}
.hc--fail .hc-thumb{color:#c0563d}
.hc--fail::after{box-shadow:inset 0 0 0 1px rgba(192,86,61,.45)}
@keyframes hcShake{0%,100%{transform:translateX(0)}15%{transform:translateX(-5px)}
  45%{transform:translateX(5px)}75%{transform:translateX(-3px)}}

/* ---------- 深色模式（媒体查询 + 站点属性/类，多路兜底） ---------- */
@media (prefers-color-scheme:dark){
  .hc::after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
  .hc-track{background:rgba(255,255,255,.07)}
  .hc-label{color:rgba(255,255,255,.55)}
  .hc-thumb{background:#5c6154;color:#eef3e2;box-shadow:0 1px 2px rgba(0,0,0,.35),0 2px 8px rgba(0,0,0,.26)}
  .hc--ok .hc-track{background:rgba(198,216,180,.16)}
  .hc--ok .hc-thumb{background:#c6d8b4;color:#1e3024}
  .hc--ok .hc-label{color:#c6d8b4}
  .hc--ok::after{box-shadow:inset 0 0 0 1px rgba(198,216,180,.42)}
  .hc--fail .hc-track{background:rgba(192,86,61,.14)}
  .hc--fail .hc-thumb{background:#6e544a;color:#f2bcaa}
  .hc--fail::after{box-shadow:inset 0 0 0 1px rgba(192,86,61,.48)}
}
[data-theme="dark"] .hc::after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
[data-theme="dark"] .hc-track{background:rgba(255,255,255,.07)}
[data-theme="dark"] .hc-label{color:rgba(255,255,255,.55)}
[data-theme="dark"] .hc-thumb{background:#5c6154;color:#eef3e2}
[data-theme="dark"] .hc--ok .hc-track{background:rgba(198,216,180,.16)}
[data-theme="dark"] .hc--ok .hc-thumb{background:#c6d8b4;color:#1e3024}
[data-theme="dark"] .hc--ok .hc-label{color:#c6d8b4}
[data-theme="dark"] .hc--ok::after{box-shadow:inset 0 0 0 1px rgba(198,216,180,.42)}
[data-theme="dark"] .hc--fail .hc-track{background:rgba(192,86,61,.14)}
[data-theme="dark"] .hc--fail .hc-thumb{background:#6e544a;color:#f2bcaa}
[data-theme="dark"] .hc--fail::after{box-shadow:inset 0 0 0 1px rgba(192,86,61,.48)}
.dark .hc::after,html.dark .hc::after{box-shadow:inset 0 0 0 1px rgba(255,255,255,.22)}
.dark .hc-track,html.dark .hc-track{background:rgba(255,255,255,.07)}
.dark .hc-label,html.dark .hc-label{color:rgba(255,255,255,.55)}
.dark .hc-thumb,html.dark .hc-thumb{background:#5c6154;color:#eef3e2}
.dark .hc--ok .hc-track,html.dark .hc--ok .hc-track{background:rgba(198,216,180,.16)}
.dark .hc--ok .hc-thumb,html.dark .hc--ok .hc-thumb{background:#c6d8b4;color:#1e3024}
.dark .hc--ok .hc-label,html.dark .hc--ok .hc-label{color:#c6d8b4}

@media (max-width:420px){
  .hc{--hc-ok-w:22px}
  .hc::after{border-radius:22px}
  .hc-track{height:44px;border-radius:22px}
  .hc-thumb{width:44px;height:44px;border-radius:50%}
  .hc--ok .hc-thumb{width:var(--hc-ok-w);border-radius:0 22px 22px 0}
  .hc-fill{border-radius:22px 0 0 22px}
  .hc-label{font-size:12px}
}

/* ---------- 通过/失败态收尾修正 ---------- */
/* 1) 完成后隐藏蓝色目标标记，避免与"验证通过"文字叠在一起 */
.hc--ok .hc-target,.hc--fail .hc-target{display:none}
/* 2) 通过态右端为半圆端盖，图标缩到 16px，避免被弧形裁掉一角 */
.hc--ok .hc-check{width:16px;height:16px;flex:0 0 auto}

/* ---------- 图形验证码控件 ---------- */
.hc.hc--cap{display:block;padding:10px 12px;border-radius:14px;background:#fbfaf6;
  box-shadow:inset 0 0 0 1px rgba(46,72,58,.14);margin:14px 0 10px}
.hc--cap .hc-cap-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.hc--cap .hc-cap-title{font-size:12px;color:#8b8a80;letter-spacing:.04em}
.hc--cap .hc-cap-reset{border:0;background:transparent;color:#2e483a;font-size:12px;cursor:pointer;
  padding:2px 4px;border-radius:6px;text-decoration:underline;text-underline-offset:2px}
.hc--cap .hc-cap-reset:hover{background:rgba(46,72,58,.08)}
.hc--cap .hc-cap-body{display:flex;align-items:center;gap:10px}
.hc--cap .hc-cap-img{width:132px;height:44px;border-radius:8px;cursor:pointer;flex:0 0 auto;
  background:#f6f9fd;object-fit:cover;will-change:transform,opacity;transform:translateZ(0)}
/* 换图动画：旧图下坠淡出 -> 新图自下浮入 */
.hc--cap .hc-cap-img.hc-img--out{animation:hcImgOut .2s cubic-bezier(.4,0,1,1) forwards}
.hc--cap .hc-cap-img.hc-img--in{animation:hcImgIn .34s cubic-bezier(.2,.8,.3,1) both}
.hc--cap .hc-cap-img.hc-img--loading{pointer-events:none}
@keyframes hcImgOut{
  0%{transform:translateY(0) scale(1);opacity:1}
  100%{transform:translateY(-10px) scale(.94);opacity:0}
}
@keyframes hcImgIn{
  0%{transform:translateY(12px) scale(.94);opacity:0}
  60%{opacity:1}
  100%{transform:translateY(0) scale(1);opacity:1}
}
@media (prefers-reduced-motion: reduce){
  .hc--cap .hc-cap-img.hc-img--out,
  .hc--cap .hc-cap-img.hc-img--in{animation:none}
}
.hc--cap .hc-cap-input{flex:1 1 auto;min-width:0;height:44px;padding:0 12px;border-radius:10px;
  border:1px solid rgba(46,72,58,.22);background:#fff;color:#2b3a4d;font-size:15px;
  letter-spacing:.22em;text-transform:lowercase;outline:none;box-sizing:border-box}
.hc--cap .hc-cap-input:focus{border-color:#2e483a;box-shadow:0 0 0 3px rgba(46,72,58,.10)}
.hc--cap .hc-cap-input::placeholder{letter-spacing:normal;color:#a9a79c;font-size:13px}
.hc--cap .hc-cap-tip{margin-top:8px;font-size:12px;line-height:1.4;color:#8b8a80}
.hc--cap .hc-cap-tip.hc-label--warn{color:#c0563d}
.hc--cap.hc--ok{background:#f0f5e8;box-shadow:inset 0 0 0 1px rgba(46,72,58,.28)}
.hc--cap.hc--ok .hc-cap-tip{color:#2e483a;font-weight:600}
.hc--cap.hc--ok .hc-cap-input{border-color:rgba(46,72,58,.30);background:#f7faf2}
.hc--cap.hc--busy .hc-cap-img:not(.hc-img--out):not(.hc-img--in){opacity:.45}
[data-theme="dark"] .hc.hc--cap,.dark .hc.hc--cap,html.dark .hc.hc--cap{background:rgba(255,255,255,.05);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.14)}
[data-theme="dark"] .hc--cap .hc-cap-input,.dark .hc--cap .hc-cap-input{background:rgba(255,255,255,.08);
  border-color:rgba(255,255,255,.18);color:#eef3e2}
[data-theme="dark"] .hc--cap .hc-cap-title,[data-theme="dark"] .hc--cap .hc-cap-tip{color:rgba(255,255,255,.55)}
[data-theme="dark"] .hc--cap .hc-cap-reset{color:#c6d8b4}
/* ---------- 同意项（服务条款/年龄确认） ---------- */
.hc--cap .hc-consent{margin-top:10px;padding-top:9px;border-top:1px solid rgba(46,72,58,.10);
  display:flex;flex-direction:column;gap:7px}
.hc--cap .hc-consent-item{display:flex;align-items:flex-start;gap:7px;cursor:pointer;
  font-size:12px;line-height:1.5;color:#6f6e64}
.hc--cap .hc-consent-box{flex:0 0 auto;width:14px;height:14px;margin:2px 0 0;cursor:pointer;
  accent-color:#2e483a}
.hc--cap .hc-consent-text{flex:1 1 auto;min-width:0}
.hc--cap .hc-consent-link{color:#2e483a;text-decoration:underline;text-underline-offset:2px;
  cursor:pointer}
.hc--cap .hc-consent-link:hover{color:#4a6b56}
/* 未勾选就提交时，整组轻微提示 */
.hc--cap .hc-consent.hc-consent--warn{border-top-color:rgba(192,86,61,.35)}
.hc--cap .hc-consent.hc-consent--warn .hc-consent-item{color:#c0563d}
.hc--cap .hc-consent.hc-consent--warn .hc-consent-box{outline:2px solid rgba(192,86,61,.28);
  outline-offset:1px;border-radius:3px}
[data-theme="dark"] .hc--cap .hc-consent,.dark .hc--cap .hc-consent{border-top-color:rgba(255,255,255,.12)}
[data-theme="dark"] .hc--cap .hc-consent-item,.dark .hc--cap .hc-consent-item{color:rgba(255,255,255,.58)}
[data-theme="dark"] .hc--cap .hc-consent-link,.dark .hc--cap .hc-consent-link{color:#c6d8b4}
/* ---------- 忘记密码：入口与重置弹层 ---------- */
/* 入口 */
.hc--cap .hc-forgot-row{margin-top:9px;text-align:right}
.hc--cap .hc-forgot{border:0;background:transparent;padding:2px 0;cursor:pointer;
  font-size:12px;color:#2e483a;text-decoration:underline;text-underline-offset:2px}
.hc--cap .hc-forgot:hover{color:#4a6b56}
[data-theme="dark"] .hc--cap .hc-forgot,.dark .hc--cap .hc-forgot{color:#c6d8b4}

/* 弹层 */
.hc-modal{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;
  padding:20px;background:rgba(20,28,24,.44);backdrop-filter:blur(3px);
  animation:hcFadeIn .18s ease both}
.hc-modal-card{width:100%;max-width:400px;max-height:calc(100vh - 40px);overflow-y:auto;
  background:#fffdf8;border-radius:18px;padding:22px 22px 18px;
  box-shadow:0 24px 60px -12px rgba(20,30,24,.32),0 0 0 1px rgba(46,72,58,.08);
  animation:hcModalIn .26s cubic-bezier(.2,.8,.3,1) both}
@keyframes hcFadeIn{from{opacity:0}to{opacity:1}}
@keyframes hcModalIn{from{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:none}}

.hc-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px}
.hc-modal-title{margin:0;font-size:17px;font-weight:700;color:#22302a;letter-spacing:.01em}
.hc-modal-close{border:0;background:transparent;font-size:24px;line-height:1;color:#9a978c;
  cursor:pointer;padding:0 2px;border-radius:6px}
.hc-modal-close:hover{color:#2e483a}
.hc-modal-desc{margin:0 0 16px;font-size:13px;line-height:1.6;color:#7d7c72}

.hc-field{display:block;margin-bottom:13px}
.hc-field-label{display:block;margin-bottom:6px;font-size:12px;color:#8b8a80;letter-spacing:.02em}
.hc-field-input{width:100%;height:42px;padding:0 12px;box-sizing:border-box;border-radius:10px;
  border:1px solid rgba(46,72,58,.20);background:#fff;color:#2b3a4d;font-size:14px;outline:none;
  transition:border-color .15s,box-shadow .15s}
.hc-field-input:focus{border-color:#2e483a;box-shadow:0 0 0 3px rgba(46,72,58,.10)}
.hc-field-input::placeholder{color:#b3b0a6}

.hc-code-row{display:flex;gap:8px}
.hc-code-input{flex:1 1 auto;min-width:0;letter-spacing:.16em}
.hc-code-send{flex:0 0 auto;height:42px;padding:0 13px;border-radius:10px;cursor:pointer;
  border:1px solid rgba(46,72,58,.24);background:#f4f6ee;color:#2e483a;font-size:13px;
  white-space:nowrap;transition:background .15s}
.hc-code-send:hover:not(:disabled){background:#e9eedd}
.hc-code-send:disabled{opacity:.55;cursor:not-allowed}

.hc-modal-tip{min-height:17px;margin:2px 0 10px;font-size:12px;line-height:1.5;color:#8b8a80}
.hc-modal-tip--warn{color:#c0563d}
.hc-modal-tip--ok{color:#3f7a4f}
.hc-modal-tip--info{color:#7d7c72}

.hc-modal-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:4px}
.hc-btn{height:40px;padding:0 18px;border-radius:10px;font-size:14px;cursor:pointer;
  border:1px solid transparent;transition:background .15s,opacity .15s}
.hc-btn-primary{background:#2e483a;color:#f7f9f2;font-weight:600}
.hc-btn-primary:hover:not(:disabled){background:#3a5948}
.hc-btn-primary:disabled{opacity:.6;cursor:not-allowed}
.hc-btn-ghost{background:transparent;color:#7d7c72;border-color:rgba(46,72,58,.18)}
.hc-btn-ghost:hover{background:rgba(46,72,58,.06)}

@media (max-width:420px){
  .hc-modal{padding:12px}
  .hc-modal-card{padding:18px 16px 14px;border-radius:16px}
}

[data-theme="dark"] .hc-modal-card,.dark .hc-modal-card{background:#232a26;
  box-shadow:0 24px 60px -12px rgba(0,0,0,.6),0 0 0 1px rgba(255,255,255,.08)}
[data-theme="dark"] .hc-modal-title,.dark .hc-modal-title{color:#eef3e2}
[data-theme="dark"] .hc-modal-desc,[data-theme="dark"] .hc-field-label,.dark .hc-modal-desc,.dark .hc-field-label{color:rgba(255,255,255,.55)}
[data-theme="dark"] .hc-field-input,.dark .hc-field-input{background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.16);color:#eef3e2}
[data-theme="dark"] .hc-code-send,.dark .hc-code-send{background:rgba(255,255,255,.06);
  border-color:rgba(255,255,255,.16);color:#c6d8b4}
[data-theme="dark"] .hc-btn-primary,.dark .hc-btn-primary{background:#c6d8b4;color:#1f2a23}
[data-theme="dark"] .hc-btn-ghost,.dark .hc-btn-ghost{color:rgba(255,255,255,.62);
  border-color:rgba(255,255,255,.16)}

/* ===== 拼图滑块（仿极验 v4）===== */
.hc--slider {
  display: block;
  margin: 14px 0 4px;
  padding: 0;
  border: 0;
  background: transparent;
}
.hc-sl-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.hc-sl-title {
  font-size: 13px;
  font-weight: 600;
  color: #3d4249;
  letter-spacing: .2px;
}
.hc-sl-reset {
  border: 0;
  background: transparent;
  color: #6b7280;
  font-size: 12px;
  cursor: pointer;
  padding: 2px 6px;
  border-radius: 6px;
  transition: background .18s ease, color .18s ease;
}
.hc-sl-reset:hover { background: #eef1f5; color: #2563eb; }

.hc-sl-body {
  position: relative;
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  background: #e9edf2;
  line-height: 0;
  user-select: none;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.06);
}
.hc-sl-bg {
  display: block;
  width: 100%;
  height: auto;
  -webkit-user-drag: none;
  user-select: none;
}
.hc-sl-piece {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  height: auto;
  pointer-events: none;
  -webkit-user-drag: none;
  user-select: none;
  filter: drop-shadow(0 2px 6px rgba(0,0,0,.35));
  transition: none;
}
.hc-sl-loading {
  position: absolute;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(233,237,242,.86);
  color: #7b8494;
  font-size: 12px;
  line-height: 1;
}
.hc-sl--loading .hc-sl-loading { display: flex; }

.hc-sl-rail {
  position: relative;
  height: 44px;
  margin-top: 12px;
  border-radius: 8px;
  background: #f1f3f6;
  box-shadow: inset 0 0 0 1px rgba(15,23,42,.07);
  overflow: hidden;
  user-select: none;
  touch-action: none;
}
.hc-sl-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 44px;
  background: linear-gradient(90deg, rgba(37,99,235,.14), rgba(37,99,235,.2));
  border-radius: 8px 0 0 8px;
  transition: none;
}
.hc-sl-text {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12.5px;
  color: #98a1ae;
  pointer-events: none;
  letter-spacing: .3px;
  transition: opacity .18s ease;
}
.hc-sl-btn {
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(15,23,42,.16), 0 0 0 1px rgba(15,23,42,.06);
  cursor: grab;
  touch-action: none;
  transition: box-shadow .18s ease, transform .1s ease;
  z-index: 2;
}
.hc-sl-btn:active { cursor: grabbing; }
.hc-sl-btn:hover { box-shadow: 0 2px 8px rgba(37,99,235,.22), 0 0 0 1px rgba(37,99,235,.22); }
.hc-sl-arrow {
  font-size: 16px;
  color: #8a919c;
  line-height: 1;
  transition: color .18s ease;
}
.hc-sl-btn:hover .hc-sl-arrow { color: #2563eb; }

/* 通过态 */
.hc--ok .hc-sl-btn {
  background: #22c55e;
  box-shadow: 0 1px 6px rgba(34,197,94,.4), 0 0 0 1px rgba(34,197,94,.4);
  cursor: default;
}
.hc--ok .hc-sl-btn .hc-sl-arrow { color: #fff; }
.hc--ok .hc-sl-fill { background: rgba(34,197,94,.18); }
.hc--ok .hc-sl-text { opacity: 0; }
.hc--ok .hc-sl-piece { filter: drop-shadow(0 0 6px rgba(34,197,94,.85)); }

.hc-sl-tip {
  margin-top: 8px;
  font-size: 12px;
  color: #98a1ae;
  min-height: 16px;
  transition: color .18s ease;
}
.hc-sl-tip.hc-label--warn { color: #e5484d; }
.hc--ok .hc-sl-tip { color: #16a34a; }

/* 失败抖动 */
@keyframes hcShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-6px); }
  40% { transform: translateX(6px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}
.hc--shake .hc-sl-body { animation: hcShake .42s ease; }
.hc--busy .hc-sl-btn { opacity: .7; cursor: progress; }

@media (prefers-reduced-motion: reduce) {
  .hc--shake .hc-sl-body { animation: none; }
}
/* ===== 行为验证：表单内触发器 + 点击弹出窗口（仿极验 float）===== */

/* ---- 表单内触发条 ---- */
.hc--float { display: block; margin: 14px 0 6px; }

.hc-trigger {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: 11px 14px;
  border: 1px solid rgba(15, 23, 42, .12);
  border-radius: 10px;
  background: #f7f8fa;
  color: #4b5563;
  font-size: 13.5px;
  font-weight: 500;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, box-shadow .18s ease;
  font-family: inherit;
}
.hc-trigger:hover {
  background: #fff;
  border-color: rgba(37, 99, 235, .45);
  box-shadow: 0 2px 10px rgba(37, 99, 235, .1);
}
.hc-trigger:active { transform: translateY(.5px); }
.hc-trigger:focus-visible { outline: 2px solid rgba(37, 99, 235, .5); outline-offset: 2px; }

.hc-trigger-dot {
  width: 8px; height: 8px; border-radius: 50%;
  background: #f59e0b; flex: none;
  box-shadow: 0 0 0 3px rgba(245, 158, 11, .16);
}
.hc-trigger-label { flex: 1 1 auto; }
.hc-trigger-check { display: none; color: #16a34a; font-size: 15px; font-weight: 700; }

/* 通过态 */
.hc--ok .hc-trigger {
  background: #f0fdf4;
  border-color: rgba(34, 197, 94, .45);
  color: #15803d;
  cursor: default;
}
.hc--ok .hc-trigger-dot { display: none; }
.hc--ok .hc-trigger-check { display: inline-block; }

.hc-tip {
  margin-top: 7px;
  min-height: 16px;
  font-size: 12px;
  color: #98a1ae;
  transition: color .18s ease;
}
.hc-tip.hc-label--warn { color: #e5484d; }
.hc--ok .hc-tip { color: #16a34a; }

/* ---- 弹出验证窗口 ---- */
.hc-pop {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(15, 23, 42, 0);
  padding: 20px;
  transition: background .18s ease;
}
.hc-pop--in { background: rgba(15, 23, 42, .42); }

.hc-pop-card {
  width: 100%;
  max-width: 340px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 20px 60px rgba(15, 23, 42, .28), 0 2px 8px rgba(15, 23, 42, .1);
  overflow: hidden;
  transform: translateY(8px) scale(.98);
  opacity: 0;
  transition: transform .2s cubic-bezier(.2, .8, .3, 1), opacity .2s ease;
}
.hc-pop--in .hc-pop-card { transform: translateY(0) scale(1); opacity: 1; }

.hc-pop-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px 10px;
  border-bottom: 1px solid rgba(15, 23, 42, .06);
}
.hc-pop-title { font-size: 14px; font-weight: 600; color: #1f2937; }
.hc-pop-close {
  border: 0; background: transparent; cursor: pointer;
  font-size: 20px; line-height: 1; color: #9ca3af;
  padding: 0 2px; border-radius: 6px;
  transition: color .16s ease, background .16s ease;
}
.hc-pop-close:hover { color: #4b5563; background: #f1f3f6; }

.hc-pop-body { padding: 18px 16px 14px; }

/* 滑块轨道 */
.hc-rail {
  position: relative;
  height: 46px;
  border-radius: 10px;
  background: #f2f4f7;
  box-shadow: inset 0 0 0 1px rgba(15, 23, 42, .08);
  overflow: hidden;
  user-select: none;
  touch-action: none;
}
.hc-rail-fill {
  position: absolute; left: 0; top: 0; height: 100%; width: 46px;
  background: linear-gradient(90deg, rgba(37, 99, 235, .13), rgba(37, 99, 235, .22));
  border-radius: 10px 0 0 10px;
}
.hc-rail-text {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; color: #9aa3b0; letter-spacing: .3px;
  pointer-events: none;
  transition: opacity .18s ease;
}
.hc-rail-btn {
  position: absolute; left: 0; top: 0;
  width: 46px; height: 46px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(15, 23, 42, .16), 0 0 0 1px rgba(15, 23, 42, .07);
  cursor: grab;
  touch-action: none;
  z-index: 2;
  transition: box-shadow .16s ease;
}
.hc-rail-btn:hover { box-shadow: 0 3px 10px rgba(37, 99, 235, .22), 0 0 0 1px rgba(37, 99, 235, .3); }
.hc-rail-btn:active { cursor: grabbing; }
.hc-rail-arrow { font-size: 17px; color: #8b939e; line-height: 1; transition: color .16s ease; }
.hc-rail-btn:hover .hc-rail-arrow { color: #2563eb; }

.hc-pop-tip {
  margin-top: 10px;
  min-height: 17px;
  font-size: 12px;
  color: #98a1ae;
  text-align: center;
  transition: color .18s ease;
}
.hc-pop-tip.hc-label--warn { color: #e5484d; }

.hc-pop-foot {
  padding: 10px 16px 12px;
  border-top: 1px solid rgba(15, 23, 42, .06);
  font-size: 11px;
  color: #a8aeb8;
  text-align: center;
}

/* 通过态 */
.hc-pop--ok .hc-rail-btn {
  background: #22c55e;
  box-shadow: 0 1px 8px rgba(34, 197, 94, .42), 0 0 0 1px rgba(34, 197, 94, .42);
  cursor: default;
}
.hc-pop--ok .hc-rail-btn .hc-rail-arrow { color: #fff; }
.hc-pop--ok .hc-rail-fill { background: rgba(34, 197, 94, .2); }
.hc-pop--ok .hc-rail-text { opacity: 0; }
.hc-pop--ok .hc-pop-tip { color: #16a34a; }
.hc-pop--busy .hc-rail-btn { opacity: .72; cursor: progress; }

@keyframes hcPopShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-7px); }
  40% { transform: translateX(7px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}
.hc-pop--shake { animation: hcPopShake .42s ease; }

@media (prefers-reduced-motion: reduce) {
  .hc-pop-card { transition: none; }
  .hc-pop--shake { animation: none; }
}

/* 深色主题适配（站点用 data-theme 切换） */
:root[data-theme="dark"] .hc-pop-card { background: #1c2028; }
:root[data-theme="dark"] .hc-pop-head { border-bottom-color: rgba(255, 255, 255, .08); }
:root[data-theme="dark"] .hc-pop-title { color: #e8eaee; }
:root[data-theme="dark"] .hc-pop-foot { border-top-color: rgba(255, 255, 255, .08); color: #7c848f; }
:root[data-theme="dark"] .hc-rail { background: #262b34; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .08); }
:root[data-theme="dark"] .hc-rail-btn { background: #3a414d; box-shadow: 0 1px 4px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .08); }
:root[data-theme="dark"] .hc-rail-arrow { color: #c3c9d2; }
:root[data-theme="dark"] .hc-trigger { background: #262b34; border-color: rgba(255, 255, 255, .1); color: #c3c9d2; }
:root[data-theme="dark"] .hc-trigger:hover { background: #2e343e; border-color: rgba(96, 165, 250, .5); }
:root[data-theme="dark"] .hc--ok .hc-trigger { background: rgba(34, 197, 94, .12); border-color: rgba(34, 197, 94, .45); color: #6ee7a8; }

/* ---------- 行为验证：内联触发条 + 同款弹层滑块 ---------- */
/* 配色与尺寸严格取自 .hc--cap / .hc-modal 现有变量，不引入新色值 */

/* 内联触发条：与 .hc-cap-input 同高同圆角，保证与图形验证码逐像素对齐 */
.hc--behavior .hc-cap-body { display: flex; align-items: center; gap: 10px; }

.hc--behavior .hc-bhv-trigger {
  flex: 1 1 auto;
  min-width: 0;
  height: 44px;
  padding: 0 12px;
  box-sizing: border-box;
  display: flex;
  align-items: center;
  gap: 8px;
  border-radius: 10px;
  border: 1px solid rgba(46, 72, 58, .22);
  background: #fff;
  color: #2b3a4d;
  font-family: inherit;
  font-size: 14px;
  text-align: left;
  cursor: pointer;
  transition: border-color .15s, box-shadow .15s, background .15s;
}
.hc--behavior .hc-bhv-trigger:hover { border-color: #2e483a; box-shadow: 0 0 0 3px rgba(46, 72, 58, .10); }
.hc--behavior .hc-bhv-trigger:focus-visible { outline: none; border-color: #2e483a; box-shadow: 0 0 0 3px rgba(46, 72, 58, .10); }

.hc-bhv-dot {
  flex: 0 0 auto;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #c0563d;
  box-shadow: 0 0 0 3px rgba(192, 86, 61, .14);
  transition: background .15s, box-shadow .15s;
}
.hc-bhv-text {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
  color: #6f6e64;
  letter-spacing: .01em;
}

/* 通过态：跟随 .hc--cap.hc--ok 的底色变化 */
.hc--behavior.hc--ok .hc-bhv-trigger {
  border-color: rgba(46, 72, 58, .30);
  background: #f7faf2;
  cursor: default;
}
.hc--behavior.hc--ok .hc-bhv-dot { background: #3f7a4f; box-shadow: 0 0 0 3px rgba(63, 122, 79, .16); }
.hc--behavior.hc--ok .hc-bhv-text { color: #2e483a; font-weight: 600; }

/* 弹层内滑块：轨道高度与 hc-field-input 一致 */
.hc-bhv-modal .hc-modal-card { max-width: 360px; }

.hc-bhv-rail {
  position: relative;
  height: 44px;
  box-sizing: border-box;
  border-radius: 10px;
  border: 1px solid rgba(46, 72, 58, .18);
  background: #f4f6ee;
  overflow: hidden;
  user-select: none;
  touch-action: none;
}
.hc-bhv-fill {
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 44px;
  background: rgba(46, 72, 58, .12);
}
.hc-bhv-label {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12.5px;
  color: #a9a79c;
  letter-spacing: .02em;
  pointer-events: none;
  transition: opacity .15s;
}
.hc-bhv-thumb {
  position: absolute;
  left: 0;
  top: 0;
  width: 44px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9px;
  background: #fff;
  box-shadow: 0 1px 4px rgba(46, 72, 58, .18), 0 0 0 1px rgba(46, 72, 58, .10);
  cursor: grab;
  touch-action: none;
  z-index: 2;
  transition: box-shadow .15s;
}
.hc-bhv-thumb:hover { box-shadow: 0 2px 8px rgba(46, 72, 58, .24), 0 0 0 1px rgba(46, 72, 58, .18); }
.hc-bhv-thumb:active { cursor: grabbing; }
.hc-bhv-thumb:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(46, 72, 58, .22); }
.hc-bhv-arrow { font-size: 15px; line-height: 1; color: #8b8a80; transition: color .15s; }
.hc-bhv-thumb:hover .hc-bhv-arrow { color: #2e483a; }

/* 弹层通过态：与 .hc-btn-primary 同色 */
.hc-bhv-rail.hc--ok .hc-bhv-thumb {
  background: #2e483a;
  box-shadow: 0 1px 6px rgba(46, 72, 58, .34), 0 0 0 1px rgba(46, 72, 58, .34);
  cursor: default;
}
.hc-bhv-rail.hc--ok .hc-bhv-arrow { color: #f7f9f2; }
.hc-bhv-rail.hc--ok .hc-bhv-fill { background: rgba(46, 72, 58, .18); }
.hc-bhv-rail.hc--ok .hc-bhv-label { opacity: 0; }

.hc-bhv-modal .hc-bhv-busy { pointer-events: none; }
.hc-bhv-modal .hc-bhv-busy .hc-bhv-thumb { opacity: .72; cursor: progress; }

@keyframes hcBhvShake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-7px); }
  40% { transform: translateX(7px); }
  60% { transform: translateX(-4px); }
  80% { transform: translateX(4px); }
}
.hc-bhv-modal .hc-bhv-shake { animation: hcBhvShake .42s ease; }

@media (prefers-reduced-motion: reduce) {
  .hc-bhv-modal .hc-bhv-shake { animation: none; }
}

/* 深色主题：仅覆盖底色与描边，色相沿用站点墨绿 */
[data-theme="dark"] .hc--behavior .hc-bhv-trigger,
.dark .hc--behavior .hc-bhv-trigger,
html.dark .hc--behavior .hc-bhv-trigger {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .18);
  color: #eef3e2;
}
[data-theme="dark"] .hc-bhv-text, .dark .hc-bhv-text, html.dark .hc-bhv-text { color: rgba(255, 255, 255, .62); }
[data-theme="dark"] .hc--behavior.hc--ok .hc-bhv-trigger,
.dark .hc--behavior.hc--ok .hc-bhv-trigger,
html.dark .hc--behavior.hc--ok .hc-bhv-trigger {
  background: rgba(198, 216, 180, .10);
  border-color: rgba(198, 216, 180, .34);
}
[data-theme="dark"] .hc--behavior.hc--ok .hc-bhv-text,
.dark .hc--behavior.hc--ok .hc-bhv-text,
html.dark .hc--behavior.hc--ok .hc-bhv-text { color: #c6d8b4; }

[data-theme="dark"] .hc-bhv-rail, .dark .hc-bhv-rail, html.dark .hc-bhv-rail {
  background: rgba(255, 255, 255, .06);
  border-color: rgba(255, 255, 255, .16);
}
[data-theme="dark"] .hc-bhv-thumb, .dark .hc-bhv-thumb, html.dark .hc-bhv-thumb {
  background: #3a414d;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .45), 0 0 0 1px rgba(255, 255, 255, .10);
}
[data-theme="dark"] .hc-bhv-arrow, .dark .hc-bhv-arrow, html.dark .hc-bhv-arrow { color: #c3c9d2; }
[data-theme="dark"] .hc-bhv-label, .dark .hc-bhv-label, html.dark .hc-bhv-label { color: rgba(255, 255, 255, .42); }
[data-theme="dark"] .hc-bhv-fill, .dark .hc-bhv-fill, html.dark .hc-bhv-fill { background: rgba(198, 216, 180, .14); }

/* 移动端：与 .hc--cap 的窄屏规则保持一致 */
@media (max-width: 420px) {
  .hc-bhv-modal .hc-modal-card { max-width: none; }
  .hc-bhv-rail { height: 46px; }
  .hc-bhv-thumb { width: 46px; height: 44px; }
}


/* ===== 滑块验证：触发按钮 + 弹层（v=p2） ===== */
.hc-sl-trigger{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;
 height:44px;border:1px solid #dfe3e8;border-radius:10px;background:#fff;color:#2b2f36;
 font-size:14px;cursor:pointer;transition:border-color .18s,box-shadow .18s}
.hc-sl-trigger:hover{border-color:#c9d0d8;box-shadow:0 1px 2px rgba(20,35,70,.06)}
.hc-sl-trigger--busy{cursor:progress;color:#8b929c}
.hc-sl-trigger-dot{width:7px;height:7px;border-radius:50%;background:#c3c9d1;flex:0 0 auto}
.hc-sl-trigger-dot--spin{background:transparent;border:2px solid #d5dae1;border-top-color:#52c15a;
 animation:hcSpin .7s linear infinite}
@keyframes hcSpin{to{transform:rotate(360deg)}}
/* 居中弹层：用 box-shadow 扩散做遮罩，避开负 z-index 压在自身背景上的问题 */
.hc-sl-panel{position:fixed;left:50%;top:50%;z-index:99999;
 width:min(360px,calc(100vw - 32px));padding:14px;border-radius:14px;background:#fff;
 border:1px solid #e8ebef;
 box-shadow:0 0 0 100vmax rgba(12,18,28,.42),
            0 18px 48px rgba(15,23,38,.22),
            0 2px 6px rgba(15,23,38,.08);
 animation:hcPanelIn .2s cubic-bezier(.2,.8,.3,1)}
@keyframes hcPanelIn{
 from{opacity:0;transform:translate(-50%,-46%) scale(.97)}
 to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
.hc-sl-panel:not([hidden]){transform:translate(-50%,-50%)}
.hc-sl-panel[hidden]{display:none!important}
.hc-sl-close{position:absolute;right:8px;top:8px;width:26px;height:26px;line-height:24px;
 border:0;background:transparent;color:#9aa1ab;font-size:18px;cursor:pointer;border-radius:6px;padding:0}
.hc-sl-close:hover{background:#f2f4f7;color:#4b5563}
.hc-sl-head{position:relative;padding-right:52px}

/* ===== 滑块验证：三区块隔离（v=p4） ===== */
/* 三个区块各自独立：验证卡有卡片外观，协议与动作行不带边框，
   用间距而不是边框分隔 —— 这是极验那种「分得开」的观感来源 */
.hc--slider .hc-sl-block,
.hc--slider .hc-agree,
.hc--slider .hc-act {
  display: block;
  box-sizing: border-box;
  width: 100%;
}

/* ---- 区块一：安全验证（唯一有卡片外观的部分）---- */
.hc--slider .hc-sl-block { position: relative; }

.hc--slider .hc-sl-block .hc-sl-trigger {
  height: 44px;
  border: 1px solid #dfe3e8;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 1px 2px rgba(20, 35, 70, .05);
}
.hc--slider .hc-sl-block .hc-sl-trigger[hidden] { display: none !important; }
.hc--slider.hc--ok .hc-sl-block .hc-sl-trigger {
  border-color: rgba(46, 72, 58, .30);
  background: #f4f8ee;
  color: #2e483a;
  font-weight: 600;
}

/* 验证通过后保留的小标识，替代收起后的触发条 */
.hc--slider .hc-sl-badge {
  display: flex;
  align-items: center;
  gap: 7px;
  height: 40px;
  padding: 0 12px;
  border: 1px solid rgba(46, 72, 58, .26);
  border-radius: 10px;
  background: #f4f8ee;
  font-size: 13px;
  color: #2e483a;
  box-sizing: border-box;
}
.hc--slider .hc-sl-badge[hidden] { display: none !important; }
.hc--slider .hc-sl-badge-dot {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  background: #52c15a;
  color: #fff;
  font-size: 10px;
  line-height: 1;
  flex: 0 0 auto;
}
.hc--slider .hc-sl-badge-text { font-weight: 600; letter-spacing: .2px; }

/* 通过瞬间：先给 600ms 视觉确认，再收起 */
.hc--slider .hc-sl-panel--pass {
  box-shadow: 0 0 0 100vmax rgba(12, 18, 28, .42),
              0 18px 48px rgba(46, 72, 58, .26),
              0 0 0 2px rgba(82, 193, 90, .55) inset;
  transition: box-shadow .2s ease;
}
.hc--slider .hc-sl-panel--pass .hc-sl-tip {
  color: #2e483a;
  font-weight: 600;
}

/* ---- 区块二：协议勾选（无背景、无边框）---- */
.hc--slider .hc-agree { margin: 14px 0 0; }
.hc--slider .hc-agree .hc-consent {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.hc--slider .hc-agree .hc-consent-item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin: 0;
  cursor: pointer;
  font-size: 13px;
  line-height: 1.55;
  color: #6f6e64;
}
.hc--slider .hc-agree .hc-consent-box {
  flex: 0 0 auto;
  width: 15px;
  height: 15px;
  margin: 3px 0 0;
  cursor: pointer;
  accent-color: #2e483a;
}
.hc--slider .hc-agree .hc-consent-text { flex: 1 1 auto; min-width: 0; }
.hc--slider .hc-agree .hc-consent-link {
  color: inherit;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.hc--slider .hc-agree .hc-consent-link:hover { color: #4a6b56; }

/* 未勾选就提交：只在这一组上提示，不外溢 */
.hc--slider .hc-agree .hc-consent--warn .hc-consent-item { color: #c0563d; }
.hc--slider .hc-agree .hc-consent--warn .hc-consent-box {
  outline: 2px solid rgba(192, 86, 61, .28);
  outline-offset: 1px;
  border-radius: 3px;
}

/* ---- 区块三：动作行 ---- */
.hc--slider .hc-act { margin: 12px 0 0; }
.hc--slider .hc-act .hc-forgot-row {
  margin: 0;
  padding: 0;
  text-align: right;
}
.hc--slider .hc-act .hc-forgot {
  border: 0;
  background: transparent;
  padding: 2px 0;
  cursor: pointer;
  font-size: 13px;
  color: #2e483a;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.hc--slider .hc-act .hc-forgot:hover { color: #4a6b56; }

/* ---- 深色主题 ---- */
[data-theme="dark"] .hc--slider .hc-sl-block .hc-sl-trigger,
.dark .hc--slider .hc-sl-block .hc-sl-trigger {
  background: rgba(255, 255, 255, .08);
  border-color: rgba(255, 255, 255, .18);
  color: #eef3e2;
}
[data-theme="dark"] .hc--slider.hc--ok .hc-sl-block .hc-sl-trigger,
.dark .hc--slider.hc--ok .hc-sl-block .hc-sl-trigger {
  background: rgba(82, 193, 90, .16);
  border-color: rgba(82, 193, 90, .40);
  color: #d7efc8;
}
[data-theme="dark"] .hc--slider .hc-sl-badge,
.dark .hc--slider .hc-sl-badge {
  background: rgba(82, 193, 90, .16);
  border-color: rgba(82, 193, 90, .38);
  color: #d7efc8;
}
[data-theme="dark"] .hc--slider .hc-agree .hc-consent-item,
.dark .hc--slider .hc-agree .hc-consent-item { color: rgba(255, 255, 255, .62); }
[data-theme="dark"] .hc--slider .hc-agree .hc-consent-link:hover,
.dark .hc--slider .hc-agree .hc-consent-link:hover { color: #c6d8b4; }
[data-theme="dark"] .hc--slider .hc-act .hc-forgot,
.dark .hc--slider .hc-act .hc-forgot { color: #c6d8b4; }

/* ---- 小屏 ---- */
@media (max-width: 420px) {
  .hc--slider .hc-agree .hc-consent-item { font-size: 12.5px; }
  .hc--slider .hc-act .hc-forgot { font-size: 12.5px; }
}

/* 空闲态不显示提示，避免与滑轨文案重复；有警告/通过文案时才占位 */
.hc--slider .hc-sl-panel .hc-sl-tip { min-height: 0; margin: 0; }
.hc--slider .hc-sl-panel .hc-sl-tip:empty { display: none; }
.hc--slider .hc-sl-panel .hc-sl-tip:not(:empty) { margin-top: 8px; }

/* ===== 滑块验证：手感与动效（v=p6） ===== */
/* 拖动深度变量：0 = 贴地，1 = 抬起。由 JS 在 applyRatio 里写入。
   所有"重量感"都从这个变量派生，不依赖额外的 DOM 节点。 */
.hc--slider { --d: 0; }

/* 拼图块：随拖动加深、加大投影 —— 这是"拿起一块木头"的关键反馈。
   原先只有位移，视觉上等同于一张贴纸在滑动。 */
.hc--slider .hc-sl-piece {
  filter:
    drop-shadow(0 calc(1.5px + 5px * var(--d)) calc(3px + 10px * var(--d)) rgba(10, 16, 26, .34))
    drop-shadow(0 1px 1px rgba(255, 255, 255, .5));
  transition: filter .12s linear;
  will-change: left, filter;
}
/* 通过态保留绿色辉光（覆盖上面的默认投影，避免被吃掉） */
.hc--slider.hc--ok .hc-sl-piece {
  filter: drop-shadow(0 0 9px rgba(82, 193, 90, .9));
}

/* 轨道填充：低透明渐变 + 右侧一条亮线，进度才有"推进"的方向感 */
.hc--slider .hc-sl-fill {
  background: linear-gradient(90deg, rgba(46, 72, 58, .08) 0%, rgba(46, 72, 58, .26) 100%);
  border-right: 1px solid rgba(82, 193, 90, .8);
  box-shadow: 1px 0 7px rgba(82, 193, 90, .30);
}
.hc--slider.hc--ok .hc-sl-fill {
  background: linear-gradient(90deg, rgba(82, 193, 90, .10) 0%, rgba(82, 193, 90, .26) 100%);
}

/* 空闲微呼吸：告诉用户"这里可以拖"，比静态箭头有效 */
@keyframes hcNudge {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(3px); }
}
.hc--slider:not(.hc--ok) .hc-sl-panel:not([hidden]) .hc-sl-btn {
  animation: hcNudge 2.4s ease-in-out infinite;
  will-change: transform;
}
/* 按下立刻停呼吸并微放大，手感才跟手 */
.hc--slider .hc-sl-btn:active {
  animation: none;
  transform: scale(1.05);
  box-shadow: 0 4px 14px rgba(46, 72, 58, .30);
}

/* 面板入场：轻微上浮 + 缩放，避免"啪"一下出现 */
@keyframes hcPanelIn {
  from { opacity: 0; transform: translateY(8px) scale(.985); }
  to   { opacity: 1; transform: none; }
}
.hc--slider .hc-sl-panel:not([hidden]) {
  animation: hcPanelIn .22s cubic-bezier(.2, .8, .3, 1);
}

/* 通过瞬间：绿色描边脉冲，600ms 窗口内让用户看清"成了" */
@keyframes hcPassPulse {
  0%   { box-shadow: 0 18px 48px rgba(46, 72, 58, .26), 0 0 0 2px rgba(82, 193, 90, .60) inset; }
  50%  { box-shadow: 0 18px 48px rgba(46, 72, 58, .26), 0 0 0 3px rgba(82, 193, 90, .95) inset,
                     0 0 0 8px rgba(82, 193, 90, .16); }
  100% { box-shadow: 0 18px 48px rgba(46, 72, 58, .26), 0 0 0 2px rgba(82, 193, 90, .60) inset; }
}
.hc--slider .hc-sl-panel--pass {
  animation: hcPassPulse .6s ease-out;
}

/* 对勾：描边画出来的动画（SVG path 才有 stroke-dashoffset） */
@keyframes hcCheckDraw {
  from { stroke-dashoffset: 22; }
  to   { stroke-dashoffset: 0; }
}
.hc--slider .hc-sl-badge-dot svg { display: block; }
.hc--slider .hc-sl-badge-dot svg path {
  stroke-dasharray: 22;
  stroke-dashoffset: 22;
  animation: hcCheckDraw .34s ease-out .06s forwards;
}

/* 已验证标识入场 */
@keyframes hcBadgeIn {
  from { opacity: 0; transform: translateY(-3px); }
  to   { opacity: 1; transform: none; }
}
.hc--slider .hc-sl-badge:not([hidden]) {
  animation: hcBadgeIn .24s ease-out;
}

/* 尊重系统"减少动态效果"设置 */
@media (prefers-reduced-motion: reduce) {
  .hc--slider .hc-sl-btn,
  .hc--slider .hc-sl-badge:not([hidden]),
  .hc--slider .hc-sl-panel:not([hidden]),
  .hc--slider .hc-sl-panel--pass { animation: none !important; }
  .hc--slider .hc-sl-badge-dot svg path { animation: none !important; stroke-dashoffset: 0; }
  .hc--slider .hc-sl-piece { transition: none; }
}

/* ===== 仿极验 v4 通过动效（v=p7）=====
   绿幕 clip-path 必须挂在 .hc-sl-body（图片容器）上，
   不能挂 .hc-sl-panel，否则会把滑轨一起盖住 200ms。 */
.hc-sl-veil {
  position: absolute; inset: 0; z-index: 3;
  background: #2ea043; opacity: 0;
  clip-path: circle(0% at 50% 50%);
  pointer-events: none;
}
.hc-sl-body--pass .hc-sl-veil {
  opacity: .92;
  animation: hcVeil .2s ease-out both;
}
@keyframes hcVeil {
  from { clip-path: circle(0% at 50% 50%); }
  to   { clip-path: circle(80% at 50% 50%); }
}
.hc-sl-mark {
  position: absolute; inset: 0; z-index: 4;
  display: flex; align-items: center; justify-content: center;
  opacity: 0; pointer-events: none;
}
.hc-sl-mark svg { width: 58px; height: 58px; }
.hc-sl-body--pass .hc-sl-mark { animation: hcMarkPop .12s .14s ease-out both; }
@keyframes hcMarkPop {
  from { opacity: 0; transform: scale(.82); }
  to   { opacity: 1; transform: scale(1); }
}
.hc-sl-mark .hc-sl-ck { stroke-dasharray: 34; stroke-dashoffset: 34; }
.hc-sl-body--pass .hc-sl-mark .hc-sl-ck { animation: hcCkDraw .18s .2s ease-out forwards; }
@keyframes hcCkDraw { to { stroke-dashoffset: 0; } }

@media (prefers-reduced-motion: reduce) {
  .hc-sl-body--pass .hc-sl-veil,
  .hc-sl-body--pass .hc-sl-mark,
  .hc-sl-body--pass .hc-sl-mark .hc-sl-ck { animation: none !important; }
  .hc-sl-body--pass .hc-sl-veil { opacity: .92; clip-path: circle(80% at 50% 50%); }
  .hc-sl-body--pass .hc-sl-mark { opacity: 1; }
  .hc-sl-body--pass .hc-sl-mark .hc-sl-ck { stroke-dashoffset: 0; }
}

/* ===== 注册页动作行（v=p8）=====
   注册页用户还没设过密码，“忘记密码”无意义，改为返回登录的出口 */
.hc--slider .hc-act-link {
  display: inline-flex;
  align-items: center;
  height: 32px;
  font-size: 12px;
  color: #6b7280;
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: color .16s ease, border-color .16s ease;
}
.hc--slider .hc-act-link:hover {
  color: #2e483a;
  border-bottom-color: rgba(46, 72, 58, .35);
}
