/* ════════════════════════════════════════════════════════════════════
   PixelFlow — styles.css
   Dark family aesthetic with violet accent (#8b5cf6)
   ════════════════════════════════════════════════════════════════════ */
:root{
  --bg:#0a0d14; --grid:#11151f;
  --surface:#141823; --surface2:#1c2130; --surface3:#252b3d;
  --border:#2a3148; --border2:#3a4262;
  --ink:#e7e9f0; --soft:#b0b5c4; --mute:#7d859a;

  --accent:#8b5cf6;
  --accent-light:#a78bfa;
  --accent-deep:#7c3aed;
  --accent-bg:rgba(139,92,246,.12);
  --accent-glow:rgba(139,92,246,.35);

  --emerald:#34d399; --emerald-bg:rgba(52,211,153,.1);
  --rose:#f87171; --rose-bg:rgba(248,113,113,.1);
  --gold:#f5a44e; --gold-bg:rgba(245,164,78,.1);
  --cyan:#22d3ee;

  --mono:"JetBrains Mono","SF Mono","Courier New",monospace;
  --serif:"Times New Roman",Georgia,serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg);
  color:var(--ink);
  font-family:var(--sans);
  font-size:15px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  background-image:
    linear-gradient(var(--grid) 1px,transparent 1px),
    linear-gradient(90deg,var(--grid) 1px,transparent 1px);
  background-size:40px 40px;
  min-height:100vh;
}
a{color:var(--accent-light);text-decoration:none;}
a:hover{text-decoration:underline;}
code{font-family:var(--mono);font-size:.9em;color:var(--accent-light);background:var(--accent-bg);padding:1px 6px;border-radius:4px;}
::selection{background:var(--accent);color:#1a1029;}

/* ── Layout ─────────────────────────────────────────────────── */
.wrap{max-width:1240px;margin:0 auto;padding:0 28px;}
.section{padding:50px 0;}

/* ── Masthead ───────────────────────────────────────────────── */
.masthead{
  display:flex;align-items:center;justify-content:space-between;
  padding:22px 0;
  border-bottom:1px solid var(--border);
  flex-wrap:wrap;gap:14px;
}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;}
.brand:hover{text-decoration:none;}
.brand__mark{
  width:36px;height:36px;border-radius:9px;
  background:var(--accent);
  display:inline-flex;align-items:center;justify-content:center;
  color:#1a1029;font-weight:800;font-family:var(--sans);font-size:18px;
  letter-spacing:-.01em;
}
.brand__name{font-family:var(--serif);font-style:italic;font-weight:400;font-size:22px;color:var(--ink);}
.brand__tag{
  font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;
  color:var(--accent);border:1px solid var(--accent);border-radius:4px;padding:3px 8px;
}
.masthead__nav{display:flex;gap:18px;font-size:14px;}
.masthead__nav a{color:var(--soft);}
.masthead__nav a:hover{color:var(--ink);text-decoration:none;}

/* ── Hero ──────────────────────────────────────────────────── */
.hero{padding:60px 0 30px;text-align:center;}
.hero__kicker{
  font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.2em;
  color:var(--accent);margin:0 0 16px;
}
.hero__kicker::before{content:'\25C6\00A0';}
.hero h1{
  font-family:var(--serif);font-weight:400;font-size:clamp(34px,5.5vw,52px);
  line-height:1.12;margin:0 0 18px;color:var(--ink);
}
.hero h1 em{color:var(--accent-light);font-style:italic;}
.hero__lede{
  max-width:680px;margin:0 auto;color:var(--soft);font-size:18px;line-height:1.6;
}
.hero__pillrow{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:24px;}
.pill{
  font-family:var(--mono);font-size:11.5px;color:var(--soft);
  border:1px solid var(--border);border-radius:99px;padding:6px 14px;
}
.pill__dot{display:inline-block;width:7px;height:7px;border-radius:99px;background:var(--accent);margin-right:6px;vertical-align:1px;}

/* ── EuKosmos banner ──────────────────────────────────────── */
.euk-banner{
  background:linear-gradient(135deg,var(--surface),var(--surface2));
  border:1px solid var(--gold);
  border-radius:14px;
  padding:26px 32px;
  display:grid;grid-template-columns:1fr auto;gap:32px;align-items:center;
  margin:40px 0;
  position:relative;overflow:hidden;
}
.euk-banner::before{
  content:'';position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 100% 0%,var(--gold-bg),transparent 55%);
}
.euk-banner__body{position:relative;z-index:1;}
.euk-banner__kicker{
  font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:.18em;
  color:var(--gold);margin:0 0 8px;
}
.euk-banner__kicker::before{content:'\25C6\00A0';}
.euk-banner h2{
  font-family:var(--serif);font-weight:400;font-size:24px;margin:0 0 10px;color:var(--ink);
}
.euk-banner h2 em{color:var(--gold);font-style:italic;}
.euk-banner p{color:var(--soft);margin:0 0 14px;max-width:680px;}
.euk-banner__bullets{margin:0;padding:0;list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:4px 22px;}
.euk-banner__bullets li{position:relative;padding:3px 0 3px 18px;color:var(--soft);font-size:13px;}
.euk-banner__bullets li::before{content:'\25C6';position:absolute;left:0;top:5px;color:var(--gold);font-size:10px;}
.euk-banner__cta{position:relative;z-index:1;}
@media (max-width:800px){
  .euk-banner{grid-template-columns:1fr;}
  .euk-banner__bullets{grid-template-columns:1fr;}
}

/* ── Tool grid (home) ─────────────────────────────────────── */
.section-head{margin:0 0 22px;display:flex;align-items:baseline;justify-content:space-between;gap:14px;}
.section-head h2{font-family:var(--mono);font-size:11.5px;text-transform:uppercase;letter-spacing:.2em;color:var(--accent);margin:0;}
.section-head h2::before{content:'\25C6\00A0';}
.section-head__count{font-size:13px;color:var(--mute);}

.tool-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(248px,1fr));
  gap:14px;
}
.tool-card{
  display:block;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:12px;
  padding:20px 22px;
  text-decoration:none;
  color:var(--ink);
  transition:all .15s ease;
  position:relative;
}
.tool-card:hover{
  border-color:var(--accent);
  background:var(--surface2);
  transform:translateY(-1px);
  box-shadow:0 8px 24px -12px var(--accent-glow);
  text-decoration:none;
}
.tool-card__icon{
  width:34px;height:34px;border-radius:8px;
  background:var(--accent-bg);color:var(--accent-light);
  display:inline-flex;align-items:center;justify-content:center;
  font-size:18px;margin-bottom:12px;
}
.tool-card__title{
  font-family:var(--serif);font-weight:400;font-size:18px;margin:0 0 6px;color:var(--ink);
}
.tool-card__desc{font-size:13px;color:var(--soft);margin:0;line-height:1.5;}
.tool-card__badge{
  position:absolute;top:14px;right:14px;
  font-family:var(--mono);font-size:9px;text-transform:uppercase;letter-spacing:.16em;
  background:var(--accent);color:#1a1029;border-radius:99px;padding:3px 8px;
}

/* ── Tool page ─────────────────────────────────────────────── */
.tool-hero{padding:42px 0 24px;}
.back-link{font-size:13px;color:var(--mute);}
.back-link:hover{color:var(--accent-light);text-decoration:none;}
.back-link::before{content:'\2190\00A0';}
.tool-hero h1{
  font-family:var(--serif);font-weight:400;font-size:clamp(28px,4vw,38px);
  margin:14px 0 10px;line-height:1.2;
}
.tool-hero p{color:var(--soft);font-size:16px;margin:0;max-width:680px;}

/* ── Drop zone ─────────────────────────────────────────────── */
.drop-zone{
  background:var(--surface);
  border:2px dashed var(--border2);
  border-radius:14px;
  padding:60px 32px;
  text-align:center;
  cursor:pointer;
  transition:all .15s ease;
  display:block;
}
.drop-zone:hover,.drop-zone.is-dragover{
  border-color:var(--accent);background:var(--surface2);
}
.drop-zone__icon{font-size:42px;color:var(--accent);margin-bottom:14px;line-height:1;}
.drop-zone__title{font-family:var(--serif);font-size:22px;font-weight:400;margin:0 0 6px;}
.drop-zone__desc{color:var(--soft);font-size:14px;margin:0;}
.drop-zone__hint{margin-top:10px;font-family:var(--mono);font-size:11px;letter-spacing:.1em;color:var(--mute);text-transform:uppercase;}
.drop-zone input[type=file]{display:none;}

/* ── Tool body / panels ───────────────────────────────────── */
.tool-body{margin-top:24px;}
.panel{
  background:var(--surface);border:1px solid var(--border);border-radius:12px;
  padding:24px;margin-bottom:18px;
}
.panel h3{
  font-family:var(--mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;
  color:var(--accent);margin:0 0 16px;
}
.panel h3::before{content:'\25C6\00A0';}
.panel--split{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
@media (max-width:900px){.panel--split{grid-template-columns:1fr;}}

.field{margin-bottom:14px;}
.field__label{display:block;font-size:12.5px;color:var(--soft);margin-bottom:6px;}
.field__input,.field__select,.field__textarea{
  width:100%;background:var(--bg);border:1px solid var(--border);border-radius:8px;
  padding:10px 12px;color:var(--ink);font-family:var(--mono);font-size:13px;color-scheme:dark;
}
.field__input:focus,.field__select:focus,.field__textarea:focus{
  outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-bg);
}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.field-row--3{grid-template-columns:1fr 1fr 1fr;}
.field-row--4{grid-template-columns:1fr 1fr 1fr 1fr;}
@media (max-width:600px){.field-row,.field-row--3,.field-row--4{grid-template-columns:1fr;}}

.range{
  -webkit-appearance:none;appearance:none;width:100%;height:6px;
  background:var(--surface3);border-radius:99px;outline:none;color-scheme:dark;
}
.range::-webkit-slider-thumb{
  -webkit-appearance:none;width:18px;height:18px;border-radius:99px;background:var(--accent);
  border:2px solid var(--surface);cursor:pointer;transition:transform .1s;
}
.range::-webkit-slider-thumb:hover{transform:scale(1.15);}
.range::-moz-range-thumb{width:18px;height:18px;border-radius:99px;background:var(--accent);border:2px solid var(--surface);cursor:pointer;}
.range-row{display:flex;align-items:center;gap:12px;}
.range-row .range{flex:1;}
.range-row__val{font-family:var(--mono);font-size:13px;color:var(--accent-light);min-width:54px;text-align:right;}

.color-input{
  height:38px;width:60px;background:var(--bg);border:1px solid var(--border);
  border-radius:8px;cursor:pointer;color-scheme:dark;padding:3px;
}

.checkbox{display:flex;align-items:center;gap:9px;cursor:pointer;user-select:none;font-size:14px;color:var(--soft);}
.checkbox input{width:auto;accent-color:var(--accent);}

/* ── Buttons ──────────────────────────────────────────────── */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  background:transparent;border:1px solid var(--border);color:var(--soft);
  padding:10px 18px;border-radius:8px;font-family:var(--sans);font-size:14px;
  font-weight:500;cursor:pointer;transition:all .12s ease;text-decoration:none;
}
.btn:hover{color:var(--ink);border-color:var(--accent);text-decoration:none;}
.btn:disabled{opacity:.45;cursor:not-allowed;}
.btn--primary{background:var(--accent);color:#1a1029;border-color:var(--accent);font-weight:600;}
.btn--primary:hover{background:var(--accent-light);color:#1a1029;}
.btn--lg{padding:14px 28px;font-size:15px;}
.btn--ghost{background:transparent;}
.btn-row{display:flex;gap:10px;flex-wrap:wrap;}

/* ── Image preview / canvas area ──────────────────────────── */
.preview{
  background:repeating-conic-gradient(#1a1f2c 0% 25%,#11151f 0% 50%) 50%/24px 24px;
  border:1px solid var(--border);border-radius:10px;
  display:flex;align-items:center;justify-content:center;
  min-height:300px;max-height:560px;overflow:auto;padding:16px;
}
.preview img,.preview canvas{max-width:100%;max-height:520px;display:block;border-radius:4px;box-shadow:0 8px 24px rgba(0,0,0,.4);}
.preview--multi{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;padding:14px;align-items:start;justify-content:start;}
.preview--multi .thumb{position:relative;background:var(--surface2);border-radius:6px;overflow:hidden;}
.preview--multi .thumb img{width:100%;height:auto;display:block;}
.preview--multi .thumb__label{position:absolute;top:6px;left:6px;font-family:var(--mono);font-size:10px;background:rgba(0,0,0,.6);color:#fff;padding:2px 6px;border-radius:4px;}
.preview--multi .thumb__close{position:absolute;top:6px;right:6px;background:rgba(0,0,0,.6);color:#fff;border:none;border-radius:99px;width:20px;height:20px;cursor:pointer;font-size:11px;line-height:1;}

.preview-wrap{position:relative;}
.crop-overlay-canvas{position:absolute;top:0;left:0;pointer-events:auto;}

/* ── Progress / status ────────────────────────────────────── */
.progress{
  background:var(--surface2);border-radius:99px;height:8px;overflow:hidden;margin:14px 0 8px;
}
.progress__bar{height:100%;background:var(--accent);width:0%;transition:width .25s ease;border-radius:99px;}
.status{font-family:var(--mono);font-size:12px;color:var(--soft);}
.status--ok{color:var(--emerald);}
.status--warn{color:var(--gold);}
.status--err{color:var(--rose);}

.notice{
  background:var(--gold-bg);border:1px solid var(--gold);border-radius:10px;
  padding:12px 16px;font-size:13.5px;color:#f4c994;margin:12px 0;
}
.notice strong{color:var(--gold);}
.notice--info{background:var(--accent-bg);border-color:var(--accent);color:#cbb8fd;}
.notice--info strong{color:var(--accent-light);}

/* ── Result ───────────────────────────────────────────────── */
.result{
  background:var(--surface);border:1px solid var(--emerald);border-radius:12px;
  padding:24px;margin-top:24px;
}
.result h3{margin:0 0 6px;font-family:var(--serif);font-size:22px;font-weight:400;color:var(--emerald);}
.result p{color:var(--soft);margin:0 0 16px;}
.result__meta{font-family:var(--mono);font-size:12px;color:var(--mute);margin-top:10px;}

/* ── Footer ───────────────────────────────────────────────── */
.footer{
  border-top:1px solid var(--border);
  padding:30px 0;margin-top:60px;
  color:var(--mute);font-size:13px;
  text-align:center;
}
.footer a{color:var(--soft);}
.footer__row{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-bottom:8px;}
