*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#090a0c;color:#f2f3f5;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;line-height:1.5}a{color:inherit;text-decoration:none}button,input,select{font:inherit}

/* ---------- header ---------- */
.site-header{height:76px;max-width:1180px;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between;gap:20px;border-bottom:1px solid #1c1e22;position:relative}
.site-header:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:1px;background:linear-gradient(90deg,transparent,#777,transparent);opacity:.18;animation:headerScan 5s ease-in-out infinite}
.logo{font-size:20px;font-weight:750;letter-spacing:-.04em;display:flex;align-items:center;gap:10px;flex-shrink:0}
.logo-mark{width:31px;height:31px;display:grid;place-items:center;border-radius:9px;background:linear-gradient(135deg,#7c3aed,#ec4899 45%,#f59e0b);color:#fff;font-weight:900;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s}
.logo:hover .logo-mark{transform:rotate(-8deg) scale(1.08);box-shadow:0 0 25px #ec489966}
.pet-badge{font-size:10px;letter-spacing:.16em;color:#70757d;text-transform:uppercase;font-weight:700;padding:6px 12px;border:1px solid #24272c;border-radius:99px;background:#101215;white-space:nowrap;animation:badgeGlow 4s ease-in-out infinite}
.site-header nav{display:flex;gap:8px;flex-shrink:0}
.site-header nav a{padding:9px 14px;border-radius:9px;color:#92969e;font-size:14px;transition:color .25s,background .25s}
.site-header nav a:hover,.site-header nav a.active{color:#fff;background:#14161a}

/* ---------- hero ---------- */
.hero{position:relative;max-width:1180px;margin:auto;min-height:600px;padding:105px 28px 80px;display:grid;grid-template-columns:1.1fr .9fr;gap:60px;align-items:center;overflow:hidden}
.hero-glow{position:absolute;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,#3a2f5c 0,rgba(9,10,12,0) 68%);right:-80px;top:30px;pointer-events:none;animation:glowFloat 8s ease-in-out infinite}
.eyebrow{margin:0 0 18px;color:#858a93;font-size:11px;text-transform:uppercase;letter-spacing:.18em;font-weight:700}
.hero h1,.page-heading h1{font-size:clamp(46px,6vw,76px);line-height:.98;letter-spacing:-.065em;margin:0 0 25px;font-weight:800}
.hero h1 span,.page-heading h1 span{color:#777d87}
.hero-text{max-width:600px;color:#9a9fa7;font-size:17px;line-height:1.7}
.hero-actions{display:flex;gap:12px;margin-top:34px;flex-wrap:wrap}
.hero-content{animation:fadeUp .8s cubic-bezier(.2,.8,.2,1) both}
.hero-card{animation:heroCardIn 1s .12s cubic-bezier(.2,.8,.2,1) both;display:flex;flex-direction:column;align-items:center;min-height:360px;justify-content:center}

/* ---------- buttons ---------- */
.btn{display:inline-flex;justify-content:center;align-items:center;gap:20px;border:0;border-radius:11px;padding:13px 18px;cursor:pointer;font-weight:700;font-size:14px;transition:transform .25s,background .25s,box-shadow .25s}
.btn-primary{background:#f1f2f4;color:#0b0c0e}
.btn-primary:hover{background:#fff;transform:translateY(-1px);box-shadow:0 10px 35px #fff1}
.btn-secondary{border:1px solid #2b2e34;color:#e7e8eb}
.btn-secondary:hover{background:#15171b;transform:translateY(-2px);border-color:#50545c}
.full{width:100%}
.ghost-button{width:100%;border:0;background:transparent;color:#777c84;padding:14px 0 0;cursor:pointer;font-size:12px;transition:color .2s,transform .2s}
.ghost-button:hover{color:#fff;transform:translateY(-1px)}

/* ---------- mini-card (hero) ---------- */
.mini-card{width:360px;padding:28px;border:1px solid #282b30;background:linear-gradient(145deg,#14161a,#0e0f11);border-radius:20px;box-shadow:0 30px 90px #0008;transform:rotate(2deg);transition:transform .4s,box-shadow .4s;animation:cardFloat 5s ease-in-out infinite;position:relative;z-index:2}
.mini-card:hover{transform:rotate(0deg) translateY(-7px);box-shadow:0 40px 110px #000b}
.mini-top{font-size:11px;color:#70757d;text-transform:uppercase;letter-spacing:.1em;display:flex;gap:8px;align-items:center}
.dot{width:7px;height:7px;border-radius:50%}
.green{background:#b8d7bd}
.palette-strip{display:flex;height:90px;border-radius:12px;overflow:hidden;margin:24px 0 14px;box-shadow:0 12px 30px #0006}
.palette-strip span{flex:1;transition:transform .3s}
.palette-strip span:hover{transform:scaleY(1.08)}
.hex-row{display:flex;gap:6px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:10px;color:#9a9fa7}
.hex-row span{flex:1;text-align:center;letter-spacing:.02em}
.mini-card small{display:block;color:#71767e;margin-top:16px;font-size:11px}
.live-status{width:360px;margin-top:18px;padding:11px 14px;border:1px solid #202328;border-radius:10px;background:#0d0f11cc;backdrop-filter:blur(10px);font-size:10px;color:#626870;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:7px;animation:statusPulse 3s ease-in-out infinite}
.live-status b{justify-self:end;color:#8d929a;font-weight:500}
.live-dot{width:6px;height:6px;border-radius:50%;background:#b8d7bd;box-shadow:0 0 0 0 #b8d7bd66;animation:livePulse 1.8s infinite}
.live-changing{animation:liveChange .22s ease-out}

/* ---------- features ---------- */
.features{max-width:1180px;margin:auto;padding:70px 28px 100px;border-top:1px solid #1c1e22;display:grid;grid-template-columns:repeat(3,1fr);gap:45px}
.features article{opacity:0;animation:fadeUp .7s both;transition:transform .3s}
.features article:nth-child(2){animation-delay:.1s}
.features article:nth-child(3){animation-delay:.2s}
.features article:hover{transform:translateY(-5px)}
.feature-icon{font-size:11px;color:#71767e;margin-bottom:22px;transition:transform .3s,color .3s}
.features article:hover .feature-icon{transform:translateX(7px);color:#d8dbe0}
.features h2{font-size:20px;margin:0 0 10px;letter-spacing:-.03em}
.features p{color:#81868e;font-size:14px;line-height:1.7;margin:0;max-width:330px}

/* ---------- history card ---------- */
.history-card{max-width:1180px;margin:0 auto 80px;padding:34px;border:1px solid #24272c;border-radius:18px;background:linear-gradient(135deg,#0e1013,#0b0c0e);display:grid;grid-template-columns:auto 1fr;gap:28px;align-items:center;position:relative;overflow:hidden;transition:border-color .3s}
.history-card:before{content:"";position:absolute;width:280px;height:280px;left:-120px;top:-140px;border-radius:50%;background:radial-gradient(circle,#ec489933,transparent 70%);filter:blur(10px);pointer-events:none}
.history-card:hover{border-color:#343840}
.history-icon{font-size:38px;line-height:1;filter:grayscale(.3);opacity:.8}
.history-body .eyebrow{margin-bottom:8px}
.history-body p:last-child{color:#9a9fa7;font-size:14px;line-height:1.7;margin:0;max-width:820px}

/* ---------- tool page ---------- */
.tool-page{max-width:1060px;margin:auto;padding:82px 28px 100px;animation:pageIn .65s cubic-bezier(.2,.8,.2,1) both}
.page-heading{max-width:760px;margin-bottom:55px;animation:fadeUp .7s both}
.page-heading h1{font-size:clamp(44px,6vw,68px)}
.page-heading>p:last-child{color:#858a93;max-width:620px}
.generator-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.panel{border:1px solid #24272c;background:#101215;border-radius:18px;padding:27px;transition:border-color .3s,transform .3s,box-shadow .3s}
.panel:hover{border-color:#343840;box-shadow:0 18px 55px #0005}
.panel-label{font-size:10px;text-transform:uppercase;letter-spacing:.16em;color:#70757d;font-weight:750;margin-bottom:24px}

/* ---------- palette result ---------- */
.palette-result{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;min-height:180px;margin-bottom:20px}
.palette-result .swatch{position:relative;border-radius:12px;cursor:pointer;overflow:hidden;transition:transform .3s,box-shadow .3s;display:flex;flex-direction:column;justify-content:flex-end;padding:12px 10px;min-height:180px}
.palette-result .swatch:hover{transform:translateY(-5px) scale(1.02);box-shadow:0 18px 40px #0008;z-index:2}
.palette-result .swatch .hex{font-family:ui-monospace,monospace;font-size:11px;font-weight:600;letter-spacing:.02em;text-shadow:0 1px 3px #0008}
.palette-result .swatch .lock{position:absolute;top:8px;right:8px;font-size:12px;opacity:0;transition:opacity .25s}
.palette-result .swatch:hover .lock{opacity:.85}
.palette-result .swatch.copied:after{content:"скопировано";position:absolute;inset:0;display:grid;place-items:center;background:#000000cc;color:#fff;font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;animation:copyFlash .8s ease-out}
.result-meta{display:flex;justify-content:space-between;color:#70757d;font-size:11px;margin:20px 0 9px}
.result-meta span:first-child{color:#b8d7bd}

/* ---------- export row ---------- */
.export-row{display:grid;grid-template-columns:repeat(6,1fr);gap:6px;margin-top:20px}
.export-btn{background:#0b0c0e;border:1px solid #24272c;color:#8a8f97;border-radius:8px;padding:9px 4px;font-size:10px;font-weight:700;letter-spacing:.08em;cursor:pointer;transition:all .25s}
.export-btn:hover{border-color:#565b64;color:#fff;background:#111318;transform:translateY(-1px)}
.export-btn.ok{border-color:#b8d7bd;color:#b8d7bd}

/* ---------- options panel ---------- */
.field{display:block;margin-bottom:18px}
.field span{display:block;font-size:11px;color:#7d828a;margin-bottom:8px}
.field input,.field select{width:100%;background:#0a0b0d;border:1px solid #2a2d32;color:#eee;border-radius:10px;padding:13px 14px;outline:0;transition:border-color .25s,box-shadow .25s,transform .2s}
.field input:focus,.field select:focus{border-color:#555a62;box-shadow:0 0 0 3px #fff08;transform:translateY(-1px)}
.range-label{display:flex;justify-content:space-between;color:#a5a9b0;font-size:13px;margin-top:12px}
.range-label strong{color:#fff}
input[type=range]{width:100%;margin:14px 0 20px;accent-color:#ec4899}
.switch-row{border-top:1px solid #272a2f;padding-top:20px;margin-top:16px;display:flex;align-items:center;justify-content:space-between;color:#a1a5ac;font-size:12px}
.switch-row small{display:block;color:#60656d;margin-top:3px}
.switch-row>label{display:inline-flex}
.switch-row input{display:none}
.switch-row i{display:block;width:38px;height:21px;border-radius:20px;background:#2a2d32;position:relative;cursor:pointer;transition:background .25s}
.switch-row i:after{content:"";width:15px;height:15px;position:absolute;left:3px;top:3px;background:#898e95;border-radius:50%;transition:.2s}
.switch-row input:checked+i{background:#ec4899}
.switch-row input:checked+i:after{left:20px;background:#fff}

/* ---------- info card ---------- */
.info-card{margin-top:70px;padding:34px;border:1px solid #24272c;border-radius:18px;background:#0d0f11;display:grid;grid-template-columns:1fr 1.3fr;gap:60px;position:relative;overflow:hidden;transition:border-color .3s}
.info-card:after{content:"";position:absolute;width:240px;height:240px;right:-100px;top:-130px;border-radius:50%;background:#fff;opacity:.025;filter:blur(8px);transition:transform .7s}
.info-card:hover{border-color:#343840}
.info-card:hover:after{transform:scale(1.5)}
.info-card h2{font-size:30px;line-height:1.1;letter-spacing:-.04em;margin:0}
.info-copy{color:#858a92;font-size:14px;line-height:1.75}
.info-copy p{margin:0 0 17px}
.info-copy strong{color:#d7d9dd}

/* ---------- footer ---------- */
footer{max-width:1180px;margin:auto;padding:28px;border-top:1px solid #1c1e22;color:#62666d;font-size:12px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}

/* ---------- background ---------- */
body{overflow-x:hidden}
body:before{content:"";position:fixed;inset:0;pointer-events:none;opacity:.035;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:24px 24px;mask-image:linear-gradient(to bottom,black,transparent 75%);z-index:-1}
body:after{content:"";position:fixed;width:420px;height:420px;left:var(--mx,50%);top:var(--my,20%);transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,#ec48990f,transparent 68%);pointer-events:none;z-index:-1;opacity:.045;transition:left .5s ease-out,top .5s ease-out}
.hero:after{content:"";position:absolute;left:5%;right:5%;bottom:25px;height:1px;background:linear-gradient(90deg,transparent,#fff2,transparent);transform-origin:center;animation:scanLine 4s ease-in-out infinite}

/* ---------- animations ---------- */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes pageIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes heroCardIn{from{opacity:0;transform:translate(25px,10px) scale(.96)}to{opacity:1;transform:none}}
@keyframes glowFloat{0%,100%{transform:translate3d(0,0,0) scale(1)}50%{transform:translate3d(-30px,25px,0) scale(1.08)}}
@keyframes cardFloat{0%,100%{transform:rotate(2deg) translateY(0)}50%{transform:rotate(1deg) translateY(-8px)}}
@keyframes headerScan{0%,100%{opacity:0;transform:scaleX(.2)}50%{opacity:.25;transform:scaleX(1)}}
@keyframes statusPulse{0%,100%{border-color:#202328}50%{border-color:#34383f}}
@keyframes livePulse{0%{box-shadow:0 0 0 0 #b8d7bd55}70%{box-shadow:0 0 0 9px transparent}100%{box-shadow:0 0 0 0 transparent}}
@keyframes liveChange{0%{opacity:.35;transform:translateY(3px);filter:blur(2px)}100%{opacity:1;transform:none;filter:none}}
@keyframes scanLine{0%,100%{transform:scaleX(.1);opacity:0}20%,80%{transform:scaleX(1);opacity:.35}}
@keyframes copyFlash{0%{opacity:0}30%{opacity:1}100%{opacity:0}}
@keyframes badgeGlow{0%,100%{border-color:#24272c}50%{border-color:#ec489944}}
@keyframes swatchIn{from{opacity:0;transform:translateY(8px) scale(.96)}to{opacity:1;transform:none}}

/* ---------- responsive ---------- */
@media(max-width:880px){.pet-badge{display:none}}
@media(max-width:760px){
  .site-header{padding:0 18px}
  .site-header nav a{padding:8px}
  .hero{grid-template-columns:1fr;padding:75px 20px 60px}
  .hero-card{display:none}
  .features,.generator-grid,.info-card{grid-template-columns:1fr}
  .features{padding:55px 20px 70px}
  .tool-page{padding:60px 20px 70px}
  .info-card{gap:30px}
  .history-card{grid-template-columns:1fr;padding:26px;margin:0 20px 60px}
  .history-icon{font-size:30px}
  footer{padding:25px 20px}
  .hero h1,.page-heading h1{font-size:48px}
  .export-row{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:430px){
  .site-header nav a{font-size:12px;padding:7px}
  .logo{font-size:18px}
  .palette-result{grid-template-columns:repeat(3,1fr)}
  .palette-result .swatch{min-height:120px}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}body:after{display:none}}