:root{--bg: #0a0a12;--bg-soft: #12121f;--text: #f5f5fa;--text-dim: #9a9ab0;--accent: #7c5cff;--accent-2: #ff5c8a;--accent-3: #00c2a8;--radius: 20px;font-family:Segoe UI,PingFang SC,Microsoft YaHei,system-ui,sans-serif}*{margin:0;padding:0;box-sizing:border-box}html,body{background:var(--bg);color:var(--text);min-height:100%}a{color:inherit;text-decoration:none}button{font-family:inherit;cursor:pointer}input,textarea,select{font-family:inherit}.bg-flow{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;overflow:hidden;background:var(--bg)}.bg-flow:before,.bg-flow:after{content:"";position:absolute;width:60vmax;height:60vmax;border-radius:50%;filter:blur(90px);opacity:.35}.bg-flow:before{background:radial-gradient(circle,var(--accent),transparent 70%);top:-20vmax;left:-15vmax;animation:drift-a 18s ease-in-out infinite alternate}.bg-flow:after{background:radial-gradient(circle,var(--accent-2),transparent 70%);bottom:-25vmax;right:-15vmax;animation:drift-b 22s ease-in-out infinite alternate}@keyframes drift-a{to{transform:translate(12vmax,8vmax) scale(1.15)}}@keyframes drift-b{to{transform:translate(-10vmax,-6vmax) scale(1.1)}}.hero{min-height:62vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:96px 24px 40px;position:relative}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:8px 18px;border-radius:999px;border:1px solid rgba(255,255,255,.15);background:#ffffff0d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:14px;color:var(--text-dim);margin-bottom:28px;animation:fade-up .8s ease both}.hero-title{font-size:clamp(48px,9vw,110px);font-weight:900;line-height:1.05;letter-spacing:-.02em;background:linear-gradient(120deg,#fff 20%,var(--accent) 50%,var(--accent-2) 80%);background-size:200% 200%;-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;animation:fade-up .8s ease .1s both,shine 6s linear infinite}@keyframes shine{to{background-position:200% 200%}}.hero-subtitle{margin-top:22px;font-size:clamp(16px,2.4vw,22px);color:var(--text-dim);max-width:640px;animation:fade-up .8s ease .2s both}@keyframes fade-up{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.tag-bar{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;padding:8px 24px 32px}.tag-chip{padding:8px 20px;border-radius:999px;border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:var(--text-dim);font-size:14px;transition:all .25s ease}.tag-chip:hover{border-color:#ffffff4d;color:var(--text)}.tag-chip.active{background:linear-gradient(120deg,var(--accent),var(--accent-2));border-color:transparent;color:#fff;font-weight:600}.site-grid{max-width:1200px;margin:0 auto;padding:0 24px 96px;display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:28px}.site-card{position:relative;border-radius:var(--radius);padding:2px;background:linear-gradient(140deg,var(--card-color, var(--accent)) 0%,transparent 55%);opacity:0;transform:translateY(36px);transition:opacity .6s ease,transform .6s ease}.site-card.in-view{opacity:1;transform:translateY(0)}.site-card-inner{display:flex;flex-direction:column;gap:14px;height:100%;padding:28px;border-radius:calc(var(--radius) - 2px);background:#12121fd9;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);transition:transform .3s ease,box-shadow .3s ease}.site-card:hover .site-card-inner{transform:translateY(-6px);box-shadow:0 18px 48px -12px var(--card-color, var(--accent))}.site-card-icon{width:58px;height:58px;display:flex;align-items:center;justify-content:center;font-size:30px;border-radius:16px;background:color-mix(in srgb,var(--card-color, var(--accent)) 22%,transparent);border:1px solid color-mix(in srgb,var(--card-color, var(--accent)) 45%,transparent)}.site-card-name{font-size:22px;font-weight:800}.site-card-desc{color:var(--text-dim);font-size:15px;line-height:1.7;flex:1}.site-card-tags{display:flex;flex-wrap:wrap;gap:8px}.site-card-tags span{font-size:12px;padding:4px 12px;border-radius:999px;color:var(--text-dim);border:1px solid rgba(255,255,255,.12)}.site-card-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;color:var(--card-color, var(--accent));transition:gap .2s ease}.site-card:hover .site-card-link{gap:12px}.empty-state{grid-column:1 / -1;text-align:center;padding:80px 0;color:var(--text-dim)}.portal-footer{text-align:center;padding:40px 24px 56px;color:var(--text-dim);font-size:14px;border-top:1px solid rgba(255,255,255,.06)}.portal-footer a{color:var(--text-dim);margin-left:16px;transition:color .2s}.portal-footer a:hover{color:var(--text)}.contact-btn{margin-left:16px;padding:6px 16px;border-radius:999px;border:1px solid rgba(255,255,255,.14);background:#ffffff0a;color:var(--text-dim);font-size:13px;transition:all .25s}.contact-btn:hover{border-color:var(--accent);color:var(--text);box-shadow:0 0 18px -6px var(--accent)}.admin-page{max-width:960px;margin:0 auto;padding:40px 24px 96px}.admin-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;margin-bottom:32px}.admin-header h1{font-size:28px;font-weight:800}.admin-header .actions{display:flex;gap:10px}.btn{padding:10px 20px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#ffffff0d;color:var(--text);font-size:14px;transition:all .2s}.btn:hover{background:#ffffff1a}.btn-primary{background:linear-gradient(120deg,var(--accent),var(--accent-2));border-color:transparent;font-weight:600}.btn-primary:hover{opacity:.9}.btn-danger{color:#ff7a90;border-color:#ff5c8a59}.btn-small{padding:6px 14px;font-size:13px;border-radius:10px}.admin-list{display:flex;flex-direction:column;gap:12px}.admin-row{display:flex;align-items:center;gap:14px;padding:16px 20px;border-radius:16px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;flex-wrap:wrap}.admin-row.hidden-site{opacity:.5}.admin-row-emoji{font-size:26px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;border-radius:12px;background:#ffffff0d;flex-shrink:0}.admin-row-info{flex:1;min-width:200px}.admin-row-info .name{font-weight:700;font-size:16px}.admin-row-info .url{font-size:13px;color:var(--text-dim);word-break:break-all}.admin-row-actions{display:flex;gap:8px;flex-wrap:wrap}.form-panel{margin-top:28px;padding:28px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.1);background:#ffffff08}.form-panel h2{font-size:20px;margin-bottom:20px}.form-panel-header{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.form-panel-header h2{margin-bottom:0}.ai-btn{border-color:color-mix(in srgb,var(--accent) 55%,transparent);background:color-mix(in srgb,var(--accent) 16%,transparent);color:#cdbcff;font-weight:600;transition:all .25s}.ai-btn:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 30%,transparent);box-shadow:0 0 18px -6px var(--accent)}.ai-btn:disabled{opacity:.5;cursor:not-allowed}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-field{display:flex;flex-direction:column;gap:6px}.form-field.full{grid-column:1 / -1}.form-field label{font-size:13px;color:var(--text-dim)}.form-field input,.form-field textarea{padding:10px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0000004d;color:var(--text);font-size:14px;outline:none;transition:border-color .2s}.form-field input:focus,.form-field textarea:focus{border-color:var(--accent)}.form-field input[type=color]{padding:4px;height:42px;cursor:pointer}.form-actions{margin-top:22px;display:flex;gap:10px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px;padding:40px 32px;border-radius:var(--radius);border:1px solid rgba(255,255,255,.1);background:#12121fcc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);text-align:center}.login-card h1{font-size:24px;margin-bottom:8px}.login-card p{color:var(--text-dim);font-size:14px;margin-bottom:24px}.login-card input{width:100%;padding:12px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:#0000004d;color:var(--text);font-size:15px;outline:none;margin-bottom:16px}.login-card input:focus{border-color:var(--accent)}.login-card .btn-primary{width:100%;padding:12px}.error-msg{color:#ff7a90;font-size:13px;margin-bottom:12px}.confirm-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;padding:24px;background:#05050cb3;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);animation:confirm-fade .2s ease both}@keyframes confirm-fade{0%{opacity:0}to{opacity:1}}.confirm-dialog{width:100%;max-width:400px;padding:32px;border-radius:var(--radius);border:1px solid rgba(255,92,138,.25);background:#161422f2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 24px 64px -16px #0009;animation:confirm-pop .25s cubic-bezier(.34,1.56,.64,1) both}@keyframes confirm-pop{0%{opacity:0;transform:scale(.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}.confirm-dialog h3{font-size:20px;font-weight:800;margin-bottom:10px}.confirm-dialog p{color:var(--text-dim);font-size:15px;line-height:1.7;margin-bottom:26px;word-break:break-all}.dialog-fields{display:flex;flex-direction:column;gap:12px;margin-bottom:8px}.dialog-fields input{width:100%;padding:11px 14px;border-radius:10px;border:1px solid rgba(255,255,255,.14);background:#0000004d;color:var(--text);font-size:14px;outline:none;transition:border-color .2s}.dialog-fields input:focus{border-color:var(--accent)}.confirm-actions{display:flex;justify-content:flex-end;gap:10px}.confirm-actions .btn-danger{background:linear-gradient(120deg,#ff5c8a,#ff7a5c);border-color:transparent;color:#fff;font-weight:600}.confirm-actions .btn-danger:hover{opacity:.9}@media (max-width: 640px){.form-grid{grid-template-columns:1fr}.hero{padding-top:64px}}
