/* ============================================================
   Tools360Pro — design system
   Phase 7 palette: "Spectrum Worlds" — a bright, colourful,
   light-first theme. Warm off-white canvas, vivid spectrum
   brand gradient, and one vivid colour per category (each
   category is its own "world"). Deep-navy dark theme via
   [data-theme="dark"]. Light is the default (:root).
   ============================================================ */
@property --ang { syntax: "<angle>"; initial-value: 0deg; inherits: false; }

:root{
  /* Light (default) — Spectrum Worlds */
  --bg:#f7f4ef;
  --bg-2:#fffdf9;
  --bg-soft:#ffffff;
  --surface:rgba(255,255,255,.86);
  --surface-solid:#ffffff;
  --surface-2:rgba(35,30,90,.05);
  --surface-2-solid:#efedf7;
  --text:#1c1a38;
  --muted:#5d5a7d;
  --border:rgba(38,32,90,.11);
  --border-strong:rgba(38,32,90,.2);
  --shadow:0 1px 2px rgba(35,30,90,.05),0 10px 30px -12px rgba(35,30,90,.14);
  --shadow-lg:0 2px 6px rgba(35,30,90,.06),0 28px 60px -18px rgba(35,30,90,.22);
  --glass-blur:blur(16px) saturate(160%);
  --radius:18px;
  --radius-sm:11px;
  --violet:#7c3aed;
  --magenta:#d946ef;
  --cyan:#0891c4;
  --brand-1:#7c3aed;
  --brand-2:#f43f5e;
  --brand-grad:linear-gradient(120deg,#f43f5e,#f97316 26%,#eab308 48%,#22c55e 68%,#06b6d4 86%,#8b5cf6);
  --gold:#d97706;
  --gold-soft:#f59e0b;
  --emerald:#0d9d63;
  --mint:#0d9488;
  --ok:#0d9d63;
  --err:#e11d48;
  --warn:#d97706;
  --header-bg:rgba(255,255,255,.8);
  --input-bg:#ffffff;
  --cat-pdf:#e8442e;
  --cat-image:#ef6c00;
  --cat-text:#0d9488;
  --cat-converters:#0284c7;
  --cat-calculators:#7c3aed;
  --cat-developer:#4f46e5;
  --cat-generators:#db2777;
  --acc:var(--violet);
  --font:"Inter","Segoe UI",system-ui,-apple-system,Roboto,"Helvetica Neue",Arial,sans-serif;
  --mono:ui-monospace,"Cascadia Mono","SF Mono",Menlo,Consolas,monospace;
}
[data-theme="dark"]{
  /* Dark — deep navy, same vivid spectrum accents */
  --bg:#070b1e;
  --bg-2:#0a1030;
  --bg-soft:#0d1434;
  --surface:rgba(17,23,54,.74);
  --surface-solid:#111736;
  --surface-2:rgba(255,255,255,.06);
  --surface-2-solid:#1a2148;
  --text:#f2f3fd;
  --muted:#a4a9d1;
  --border:rgba(148,156,255,.15);
  --border-strong:rgba(148,156,255,.27);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px -12px rgba(0,0,0,.5);
  --shadow-lg:0 2px 6px rgba(0,0,0,.45),0 28px 60px -18px rgba(0,0,0,.65);
  --header-bg:rgba(8,12,32,.78);
  --input-bg:rgba(10,15,40,.7);
  --cyan:#22d3ee;
  --brand-grad:linear-gradient(120deg,#fb7185,#fb923c 26%,#facc15 48%,#4ade80 68%,#22d3ee 86%,#a78bfa);
  --gold:#fbbf24;
  --gold-soft:#fcd34d;
  --emerald:#34d399;
  --mint:#2dd4bf;
  --ok:#34d399;
  --err:#fb7185;
  --warn:#fbbf24;
  --cat-pdf:#fb6f5e;
  --cat-image:#fb923c;
  --cat-text:#2dd4bf;
  --cat-converters:#38bdf8;
  --cat-calculators:#a78bfa;
  --cat-developer:#818cf8;
  --cat-generators:#f472b6;
}
[data-cat="pdf"]{--acc:var(--cat-pdf)}
[data-cat="image"]{--acc:var(--cat-image)}
[data-cat="text"]{--acc:var(--cat-text)}
[data-cat="converters"]{--acc:var(--cat-converters)}
[data-cat="calculators"]{--acc:var(--cat-calculators)}
[data-cat="developer"]{--acc:var(--cat-developer)}
[data-cat="generators"]{--acc:var(--cat-generators)}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;color:var(--text);
  font-family:var(--font);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  background:
    radial-gradient(1100px 520px at 85% -10%,rgba(168,85,247,.10),transparent 60%),
    radial-gradient(1000px 560px at -10% 4%,rgba(249,115,22,.09),transparent 62%),
    radial-gradient(900px 700px at 50% 115%,rgba(6,182,212,.08),transparent 60%),
    linear-gradient(180deg,var(--bg-2),var(--bg) 340px);
  background-color:var(--bg);
  background-attachment:fixed;
  min-height:100vh;
  overflow-x:clip;
}
a{color:inherit;text-decoration:none}
button{font-family:inherit;cursor:pointer}
img,svg{display:block}
.container{max-width:1160px;margin:0 auto;padding:0 20px}
.hidden{display:none !important}
.mono{font-family:var(--mono)}
::selection{background:#7c3aed;color:#fff}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px;border-radius:6px}

/* ---------- Header (floating glass pill) ---------- */
.site-header{
  position:sticky;top:0;z-index:60;padding:14px 0 8px;
  background:transparent;pointer-events:none;
}
.header-inner{
  display:flex;align-items:center;gap:22px;height:62px;pointer-events:auto;
  background:var(--header-bg);
  backdrop-filter:blur(18px) saturate(160%);-webkit-backdrop-filter:blur(18px) saturate(160%);
  border:1px solid var(--border-strong);border-radius:999px;
  box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.08);
  padding:0 10px 0 20px;
}
.logo{display:flex;align-items:center;gap:11px;font-weight:800;font-size:1.24rem;letter-spacing:-.02em;flex:none;color:var(--text)}
.logo-svg{width:39px;height:39px;flex:none;filter:drop-shadow(0 4px 14px rgba(217,70,239,.4))}
.logo .logo-num{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.main-nav{display:flex;gap:4px;flex:1;overflow-x:auto;scrollbar-width:none}
.main-nav::-webkit-scrollbar{display:none}
.main-nav a{
  padding:7px 11px;border-radius:8px;color:var(--muted);font-size:.92rem;font-weight:600;white-space:nowrap;
  transition:color .15s ease,background .15s ease;
}
.main-nav a:hover{color:var(--text);background:var(--surface-2)}
.header-actions{display:flex;align-items:center;gap:8px;flex:none}
.search-btn{
  display:flex;align-items:center;gap:9px;background:var(--surface-2);border:1px solid var(--border);
  color:var(--muted);border-radius:11px;padding:9px 12px;font-size:.9rem;min-width:172px;min-height:44px;
  transition:border-color .15s ease,color .15s ease;
}
.search-btn:hover{border-color:var(--acc);color:var(--text)}
.search-btn .spacer{flex:1}
.kbd{
  font-family:var(--mono);font-size:.68rem;background:var(--surface-2);border:1px solid var(--border-strong);
  border-bottom-width:2px;border-radius:5px;padding:1px 5px;color:var(--muted);
}
.icon-btn{
  width:44px;height:44px;border-radius:11px;border:1px solid var(--border);background:var(--surface-2);
  color:var(--muted);display:flex;align-items:center;justify-content:center;
  transition:color .15s ease,border-color .15s ease;
}
.icon-btn:hover{color:var(--text);border-color:var(--acc)}

/* ---------- Hero (one big rounded panel: grid + aurora glow) ---------- */
.hero{position:relative;padding:22px 0 52px}
.hero-inner{
  position:relative;display:grid;grid-template-columns:1.02fr .98fr;gap:28px;align-items:center;
  border-radius:34px;border:1px solid var(--border);overflow:hidden;
  padding:56px 50px;
  background:linear-gradient(165deg,rgba(255,255,255,.05),rgba(255,255,255,.012) 58%);
  box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="light"] .hero-inner{background:linear-gradient(165deg,rgba(255,255,255,.78),rgba(255,255,255,.45) 58%)}
.hero-inner::before{ /* faint fine grid, fading out at the edges */
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background-image:
    linear-gradient(color-mix(in srgb,var(--text) 4.5%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--text) 4.5%,transparent) 1px,transparent 1px);
  background-size:46px 46px;
  -webkit-mask-image:radial-gradient(90% 95% at 50% 38%,#000 25%,transparent 100%);
  mask-image:radial-gradient(90% 95% at 50% 38%,#000 25%,transparent 100%);
}
.hero-inner::after{ /* radial aurora spotlight behind the 3D stage */
  content:"";position:absolute;z-index:0;pointer-events:none;border-radius:50%;
  width:660px;height:660px;right:-150px;top:50%;translate:0 -50%;
  background:radial-gradient(circle,rgba(10,122,85,.36),rgba(217,164,65,.17) 42%,rgba(47,191,143,.11) 60%,transparent 72%);
  filter:blur(6px);
}
.hero-copy{position:relative;z-index:3}
.hero-eyebrow-row{display:flex;align-items:center;gap:14px}
.eyebrow-rule{width:38px;height:3px;border-radius:99px;background:var(--brand-grad);box-shadow:0 0 12px rgba(217,164,65,.55);flex:none}
.hero-eyebrow{
  display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--border-strong);background:var(--surface);backdrop-filter:var(--glass-blur);
  font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);
}
.hero-eyebrow .dot{width:8px;height:8px;border-radius:50%;background:var(--brand-grad);box-shadow:0 0 12px 2px rgba(217,164,65,.65);animation:pulse-dot 2.6s ease-in-out infinite}
@keyframes pulse-dot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.35);opacity:.75}}
.hero h1{
  font-size:clamp(2.5rem,5.4vw,3.9rem);line-height:1.04;letter-spacing:-.035em;
  font-weight:850;margin:20px 0 16px;
}
.hero h1 .hl{background:var(--brand-grad);background-size:180% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:hl-shift 7s ease-in-out infinite}
@keyframes hl-shift{0%,100%{background-position:0% 50%}50%{background-position:100% 50%}}
.hero .sub{color:var(--muted);font-size:1.13rem;max-width:560px;margin:0 0 30px}
.hero-search{
  position:relative;max-width:600px;border-radius:19px;padding:1.5px;
  background:conic-gradient(from var(--ang),#f43f5e,#f97316,#eab308,#22c55e,#06b6d4,#8b5cf6,#f43f5e);
  box-shadow:0 18px 44px -14px rgba(10,122,85,.5);
}
@supports (background: conic-gradient(from var(--ang), red, blue)){
  .hero-search{animation:ang-spin 6s linear infinite}
}
@keyframes ang-spin{to{--ang:360deg}}
.hero-search .hs-shell{
  display:flex;align-items:center;background:var(--surface-solid);border-radius:17.5px;overflow:hidden;
}
[data-theme="dark"] .hero-search .hs-shell{background:#071a10}
.hero-search input{
  flex:1;min-width:0;padding:16px 14px 16px 6px;font-size:1.04rem;border:none;background:transparent;
  color:var(--text);outline:none;font-family:inherit;
}
.hero-search .hs-icon{display:flex;padding-left:17px;color:var(--muted);pointer-events:none}
.hero-search .kbd{margin-right:15px;flex:none}
.trust-chips{display:flex;gap:10px;flex-wrap:wrap;margin-top:22px}
.chip{
  display:inline-flex;align-items:center;gap:7px;background:var(--surface);border:1px solid var(--border);
  backdrop-filter:var(--glass-blur);
  padding:8px 14px;border-radius:999px;font-size:.88rem;font-weight:600;color:var(--muted);box-shadow:var(--shadow);
}
.chip svg{color:var(--ok)}

/* Hero 3D stage + graceful fallback composition */
.hero-stage{
  position:relative;z-index:2;height:520px;border-radius:28px;overflow:hidden;
  background:
    radial-gradient(420px 300px at 78% 12%,rgba(47,191,143,.20),transparent 62%),
    radial-gradient(460px 340px at 16% 84%,rgba(10,122,85,.26),transparent 62%),
    radial-gradient(300px 220px at 55% 45%,rgba(217,164,65,.14),transparent 65%),
    linear-gradient(160deg,rgba(255,255,255,.05),rgba(255,255,255,.015));
  border:1px solid var(--border);
  box-shadow:var(--shadow-lg),inset 0 1px 0 rgba(255,255,255,.07);
}
.hero-stage canvas{position:absolute;inset:0;width:100%;height:100%;display:block;opacity:0;transition:opacity .9s ease}
.hero-stage.webgl-on canvas{opacity:1}
.hero-fallback{position:absolute;inset:0;transition:opacity .7s ease}
.hero-stage.webgl-on .hero-fallback{opacity:.35}
.hf-ring{position:absolute;left:50%;top:50%;translate:-50% -50%;border-radius:50%;border:1.5px dashed rgba(167,139,250,.4)}
.hf-ring.r1{width:340px;height:340px}
.hf-ring.r2{width:225px;height:225px;border-style:solid;border-color:rgba(61,220,151,.28)}
.hf-logo{
  position:absolute;left:50%;top:50%;translate:-50% -50%;width:118px;height:118px;border-radius:32px;
  display:flex;align-items:center;justify-content:center;color:#f4f4fb;
  background:linear-gradient(150deg,rgba(10,122,85,.32),rgba(47,191,143,.20));
  border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  box-shadow:0 24px 60px -18px rgba(10,122,85,.65),inset 0 1px 0 rgba(255,255,255,.2);
}
.hf-logo svg{width:76px;height:76px}
.hf-chip{
  position:absolute;display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:16px;
  background:var(--surface);border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  color:var(--acc);box-shadow:var(--shadow);animation:floaty 9s ease-in-out infinite;
}
.hf-chip .tool-icon{width:26px;height:26px;background:none}
.hf-chip .tool-icon svg{width:26px;height:26px}
.hf-chip.c1{left:12%;top:16%}.hf-chip.c2{right:11%;top:24%;animation-delay:-3s}
.hf-chip.c3{left:16%;bottom:15%;animation-delay:-5.5s}.hf-chip.c4{right:15%;bottom:20%;animation-delay:-1.8s}
.hf-chip.c5{left:46%;top:7%;animation-delay:-7s}
@keyframes floaty{0%,100%{margin-top:0}50%{margin-top:-13px}}

/* ---------- Marquee ribbon ---------- */
.marquee{
  overflow:hidden;border-top:1px solid var(--border);border-bottom:1px solid var(--border);
  padding:15px 0;background:rgba(255,255,255,.02);
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent);
}
.marquee-track{display:flex;width:max-content}
.marquee-track.loop{animation:marquee 115s linear infinite}
.marquee:hover .marquee-track.loop{animation-play-state:paused}
.mq-set{display:flex;align-items:center;flex:none}
.mq-item{
  display:inline-flex;align-items:center;gap:26px;padding-right:26px;white-space:nowrap;
  font-weight:800;letter-spacing:.13em;font-size:.82rem;text-transform:uppercase;color:var(--muted);
}
.mq-item i{width:7px;height:7px;border-radius:2px;background:var(--brand-grad);transform:rotate(45deg);flex:none}
@keyframes marquee{to{transform:translateX(-50%)}}

/* ---------- Sections & cards ---------- */
.section{padding:40px 0 6px}
.section-head{display:flex;align-items:baseline;gap:14px;margin:0 0 18px}
.section-head h2{font-size:1.55rem;letter-spacing:-.02em;margin:0;font-weight:800}
.section-head h2 .bar{display:inline-block;width:10px;height:22px;border-radius:3px;background:var(--acc);margin-right:11px;vertical-align:-3px;box-shadow:0 0 14px 0 var(--acc)}
.section-head .count{
  color:var(--muted);font-size:.76rem;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;
}
.tool-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(252px,1fr));gap:14px}
.tool-card{
  --rx:0deg;--ry:0deg;--ty:0px;
  position:relative;display:flex;gap:13px;align-items:flex-start;
  background:var(--surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:var(--radius);padding:17px 16px;box-shadow:var(--shadow);
  transform:perspective(750px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--ty));
  transition:transform .18s ease,box-shadow .22s ease,border-color .22s ease;
}
.tool-card::after{
  content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .25s ease;
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--acc) 17%,transparent),transparent 65%);
}
a.tool-card:hover{--ty:-3px;box-shadow:var(--shadow-lg),0 14px 34px -14px var(--acc);border-color:color-mix(in srgb,var(--acc) 55%,transparent)}
a.tool-card:hover::after{opacity:1}
.tool-card.tilting{transition:box-shadow .22s ease,border-color .22s ease;will-change:transform}
.tool-icon{
  flex:none;width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;
  color:var(--acc);background:color-mix(in srgb,var(--acc) 13%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--acc) 22%,transparent),0 4px 14px -6px var(--acc);
}
.tool-icon svg{width:24px;height:24px}
.tool-card-body{display:flex;flex-direction:column;gap:2px;min-width:0;padding-right:20px}
.tool-name{font-weight:700;font-size:1rem;letter-spacing:-.01em}
.tool-desc{color:var(--muted);font-size:.86rem;line-height:1.42}
.tool-card.soon{opacity:.62;box-shadow:none;background:var(--bg-soft)}
.badge-soon{
  position:absolute;top:12px;right:12px;font-size:.66rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase;
  background:var(--surface-2);color:var(--muted);border:1px solid var(--border);padding:3px 8px;border-radius:999px;
}
.fav-btn{
  position:absolute;top:9px;right:9px;width:30px;height:30px;border:none;background:transparent;border-radius:8px;
  color:var(--muted);font-size:1.02rem;line-height:1;display:flex;align-items:center;justify-content:center;z-index:2;
}
.fav-btn:hover{background:var(--surface-2);color:var(--warn)}
.fav-btn.active{color:var(--warn)}
.tool-card:has(.badge-soon) .fav-btn{display:none}
.reveal{opacity:0;translate:0 16px;transition:opacity .55s ease,translate .55s ease}
.reveal.in{opacity:1;translate:0 0}

/* Trending leaderboard */
.trend-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.trend-row{
  position:relative;display:flex;align-items:center;gap:18px;
  background:var(--surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:16px;padding:14px 20px 14px 16px;box-shadow:var(--shadow);
  transition:transform .16s ease,border-color .16s ease,box-shadow .2s ease;
}
a.trend-row:hover{transform:translateX(4px);border-color:color-mix(in srgb,var(--acc) 55%,transparent);box-shadow:var(--shadow-lg),0 12px 30px -14px var(--acc)}
.trend-rank{
  font-size:1.55rem;font-weight:850;letter-spacing:-.02em;line-height:1;min-width:46px;text-align:center;
  background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  font-variant-numeric:tabular-nums;
}
.trend-row .tool-icon{width:46px;height:46px;flex:none}
.trend-body{display:flex;flex-direction:column;gap:1px;min-width:0;flex:1}
.trend-name{font-weight:750;font-size:1.02rem}
.trend-desc{color:var(--muted);font-size:.87rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.trend-open{
  flex:none;display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.86rem;color:var(--acc);
  border:1px solid color-mix(in srgb,var(--acc) 40%,transparent);border-radius:999px;padding:7px 13px;
  background:color-mix(in srgb,var(--acc) 9%,transparent);
}

/* Category overview cards */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(215px,1fr));gap:14px}
.cat-card{
  --rx:0deg;--ry:0deg;--ty:0px;
  background:var(--surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:var(--radius);padding:20px 18px;
  box-shadow:var(--shadow);display:flex;flex-direction:column;gap:7px;position:relative;overflow:hidden;
  transform:perspective(750px) rotateX(var(--rx)) rotateY(var(--ry)) translateY(var(--ty));
  transition:transform .18s ease,box-shadow .22s ease;
}
.cat-card::before{content:"";position:absolute;inset:0 auto 0 0;width:5px;background:var(--acc);box-shadow:0 0 16px 1px var(--acc)}
.cat-card:hover{--ty:-3px;box-shadow:var(--shadow-lg),0 14px 34px -14px var(--acc)}
.cat-card .tool-icon{width:48px;height:48px}
.cat-name{font-weight:800;font-size:1.06rem}
.cat-meta{color:var(--muted);font-size:.87rem}
.cat-go{color:var(--acc);font-weight:700;font-size:.88rem;margin-top:2px}

/* ---------- Orbit showcase ---------- */
.orbit-wrap{padding:8px 0 4px;overflow:clip}
.orbit-stage{position:relative;width:min(540px,94vw);aspect-ratio:1/1;margin:10px auto 4px}
.orbit-stage::before{
  content:"";position:absolute;inset:16%;border-radius:50%;
  background:radial-gradient(circle,rgba(139,92,246,.20),rgba(217,164,65,.07) 55%,transparent 72%);
}
.orbit-ring{position:absolute;inset:0;border-radius:50%;border:1.5px dashed color-mix(in srgb,var(--violet) 38%,transparent);animation:orbit-spin 52s linear infinite}
.orbit-ring.r2{inset:15.5%;border-style:solid;border-color:rgba(61,220,151,.22);animation:orbit-spin-rev 38s linear infinite}
.orbit-node{position:absolute;left:50%;top:50%;z-index:3}
.orbit-node .orbit-pos{display:block;transform:rotate(var(--a)) translate(var(--or)) rotate(calc(var(--a) * -1))}
.orbit-ring.r1{--or:min(262px,36vw)}
.orbit-ring.r2{--or:min(163px,25.2vw)}
.orbit-ring.r2 .orbit-chip{font-size:.82rem;padding:7px 12px 7px 8px}
.orbit-ring.r2 .orbit-chip .tool-icon{width:30px;height:30px}
.orbit-chip{
  display:flex;align-items:center;gap:9px;padding:9px 14px 9px 10px;border-radius:999px;
  background:var(--surface);border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow),0 8px 22px -10px var(--acc);color:var(--text);
  font-weight:700;font-size:.88rem;white-space:nowrap;translate:-50% -50%;
  transition:border-color .18s ease,box-shadow .18s ease;
}
.orbit-ring.r1 .orbit-chip{animation:orbit-spin-rev 52s linear infinite}
.orbit-ring.r2 .orbit-chip{animation:orbit-spin 38s linear infinite}
.orbit-chip:hover{border-color:var(--acc);box-shadow:var(--shadow-lg),0 10px 28px -8px var(--acc)}
.orbit-chip .tool-icon{width:34px;height:34px;border-radius:10px}
.orbit-chip .tool-icon svg{width:19px;height:19px}
@keyframes orbit-spin{to{transform:rotate(360deg)}}
@keyframes orbit-spin-rev{to{transform:rotate(-360deg)}}
.orbit-core{
  position:absolute;left:50%;top:50%;translate:-50% -50%;z-index:2;width:128px;height:128px;border-radius:36px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#f4f4fb;
  background:linear-gradient(150deg,rgba(10,122,85,.36),rgba(47,191,143,.22));
  border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  box-shadow:0 26px 64px -18px rgba(10,122,85,.7),inset 0 1px 0 rgba(255,255,255,.22);
}
.orbit-core svg{width:62px;height:62px}
.orbit-core span{font-size:.74rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}

/* Trust band */
.trust-band{
  margin:54px 0 8px;background:var(--surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:22px;
  padding:30px;display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:26px;box-shadow:var(--shadow);
}
.trust-item h3{margin:0 0 7px;font-size:1.03rem;display:flex;gap:9px;align-items:center}
.trust-item h3 svg{color:var(--violet)}
.trust-item p{margin:0;color:var(--muted);font-size:.93rem}

/* ---------- Buttons / forms ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:12px;border:1px solid var(--border);
  background:var(--surface);color:var(--text);font-weight:700;font-size:.95rem;padding:11px 18px;min-height:44px;
  transition:transform .12s ease,box-shadow .12s ease,background .12s ease,border-color .12s ease,filter .12s ease;
}
.btn:hover{border-color:var(--acc);transform:translateY(-1px)}
.btn:active{transform:translateY(0)}
.btn-primary{
  background:linear-gradient(120deg,var(--acc),color-mix(in srgb,var(--acc) 55%,var(--gold-soft)));
  border-color:transparent;color:#fff;box-shadow:0 10px 24px -9px var(--acc);
}
.btn-primary:hover{background:linear-gradient(120deg,var(--acc),color-mix(in srgb,var(--acc) 55%,var(--gold-soft)));filter:brightness(1.1);color:#fff;border-color:transparent}
.btn-ghost{background:transparent}
.btn-sm{padding:7px 12px;font-size:.86rem;border-radius:9px;min-height:38px}
.btn-lg{padding:14px 26px;font-size:1.02rem}
.btn[disabled]{opacity:.5;pointer-events:none}
.field{display:flex;flex-direction:column;gap:6px;min-width:0}
.field label{font-size:.86rem;font-weight:700;color:var(--muted)}
.input,.select,.textarea{
  width:100%;padding:11px 13px;border:1px solid var(--border);border-radius:12px;background:var(--input-bg);
  color:var(--text);font-family:inherit;font-size:.97rem;outline:none;min-height:44px;
}
.input:focus,.select:focus,.textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px color-mix(in srgb,var(--acc) 24%,transparent)}
.textarea{resize:vertical;min-height:110px;line-height:1.5}
input[type="range"]{accent-color:var(--acc);width:100%}
input[type="color"]{width:52px;height:40px;border:1px solid var(--border);border-radius:10px;background:var(--surface-solid);padding:3px;cursor:pointer}
input[type="checkbox"]{width:17px;height:17px;accent-color:var(--acc)}
.options-bar{display:flex;gap:12px;flex-wrap:wrap;align-items:flex-end;margin:16px 0}
.options-bar .field{flex:1;min-width:150px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.switch-row{display:flex;align-items:center;gap:9px;font-size:.93rem;font-weight:600;padding:6px 0}
.seg{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);border-radius:12px;padding:3px;gap:3px;flex-wrap:wrap}
.seg button{border:none;background:transparent;color:var(--muted);font-weight:700;font-size:.88rem;padding:9px 14px;border-radius:9px;min-height:40px}
.seg button:hover{color:var(--text)}
.seg button.active{background:var(--surface-solid);color:var(--text);box-shadow:var(--shadow)}
.range-wrap{display:flex;align-items:center;gap:12px}
.range-wrap output{font-weight:800;min-width:52px;text-align:right;font-variant-numeric:tabular-nums}

/* ---------- Tool pages ---------- */
.tool-page{padding-top:26px;padding-bottom:30px}
.breadcrumb{font-size:.88rem;color:var(--muted);display:flex;gap:7px;align-items:center;flex-wrap:wrap;margin-bottom:14px}
.breadcrumb a:hover{color:var(--acc)}
.breadcrumb .sep{opacity:.55}
.tool-page h1{font-size:clamp(1.7rem,3.6vw,2.3rem);letter-spacing:-.025em;margin:0 0 8px;font-weight:850}
.lede{color:var(--muted);font-size:1.06rem;margin:0 0 14px;max-width:720px}
.privacy-badge{
  display:inline-flex;align-items:center;gap:8px;background:color-mix(in srgb,var(--ok) 11%,transparent);
  color:var(--ok);border:1px solid color-mix(in srgb,var(--ok) 34%,transparent);
  font-size:.85rem;font-weight:700;padding:7px 13px;border-radius:999px;margin:0 0 20px;
}
.card{
  background:var(--surface);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);
  border:1px solid var(--border);border-radius:22px;box-shadow:var(--shadow);
}
.workspace{padding:24px;margin-bottom:34px}
.workspace h2{margin-top:0}
.tool-section{margin:0 0 32px}
.tool-section h2{font-size:1.32rem;letter-spacing:-.015em;margin:0 0 14px;font-weight:800}
.steps{margin:0;padding-left:21px;color:var(--muted);display:grid;gap:7px}
.steps li::marker{color:var(--acc);font-weight:800}
.faq details{
  background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 17px;margin-bottom:9px;
}
.faq summary{font-weight:700;cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:12px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--acc);font-weight:800;font-size:1.1rem}
.faq details[open ] summary::after{content:"–"}
.faq details p{color:var(--muted);margin:9px 0 2px}
.result-panel{
  background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:15px 17px;margin-top:16px;
}
.stat-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:16px}
.stat{
  flex:1;min-width:118px;background:var(--surface-2);border:1px solid var(--border);border-radius:14px;
  padding:13px 15px;display:flex;flex-direction:column;gap:1px;
}
.stat b{font-size:1.28rem;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stat span{color:var(--muted);font-size:.8rem;font-weight:600}
.out-box{
  font-family:var(--mono);font-size:.9rem;background:var(--surface-2);border:1px solid var(--border);
  border-radius:14px;padding:14px 16px;white-space:pre-wrap;word-break:break-all;max-height:340px;overflow:auto;width:100%;
}
.error-text{color:var(--err);font-weight:600;font-size:.93rem;margin-top:10px}
.success-text{color:var(--ok);font-weight:600;font-size:.93rem;margin-top:10px}

/* Dropzone & files */
.dropzone{
  border:2px dashed var(--border-strong);border-radius:18px;padding:38px 20px;text-align:center;color:var(--muted);
  transition:border-color .15s ease,background .15s ease;cursor:pointer;
  background:linear-gradient(160deg,color-mix(in srgb,var(--acc) 6%,transparent),transparent 55%);
}
.dropzone:hover{border-color:var(--acc)}
.dropzone.dragover{border-color:var(--acc);background:color-mix(in srgb,var(--acc) 10%,transparent);color:var(--text)}
.dropzone .dz-icon{margin:0 auto 12px;color:var(--acc);width:46px;height:46px}
.dropzone .dz-title{font-weight:800;color:var(--text);font-size:1.05rem}
.dropzone .dz-sub{font-size:.88rem;margin-top:4px}
.file-list{display:flex;flex-direction:column;gap:9px;margin-top:16px}
.file-chip{
  display:flex;align-items:center;gap:12px;background:var(--surface-2);border:1px solid var(--border);
  border-radius:13px;padding:9px 12px;font-size:.92rem;
}
.file-chip img{width:42px;height:42px;object-fit:cover;border-radius:8px;flex:none}
.file-chip .fc-main{flex:1;min-width:0}
.file-chip .fc-name{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.file-chip .fc-meta{color:var(--muted);font-size:.8rem}
.file-chip .fc-actions{display:flex;gap:5px;flex:none}
.chip-btn{
  width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface-solid);
  color:var(--muted);display:flex;align-items:center;justify-content:center;font-size:.85rem;
}
.chip-btn:hover{color:var(--text);border-color:var(--acc)}
.progress{height:8px;background:var(--surface-2);border-radius:99px;overflow:hidden;margin-top:14px}
.progress i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--acc),var(--magenta));border-radius:99px;transition:width .25s ease}

/* ---------- Footer ---------- */
.site-footer{margin-top:64px;border-top:1px solid var(--border);background:linear-gradient(180deg,transparent,rgba(124,58,237,.05))}
.footer-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:30px;padding:42px 0 30px}
.footer-grid h4{margin:0 0 13px;font-size:.92rem;letter-spacing:.01em}
.footer-grid ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.footer-grid ul a{color:var(--muted);font-size:.9rem}
.footer-grid ul a:hover{color:var(--acc)}
.footer-brand p{color:var(--muted);font-size:.92rem;max-width:300px}
.footer-links{display:flex;gap:9px 24px;flex-wrap:wrap;padding:0 0 17px}
.footer-links a{color:var(--muted);font-size:.9rem;font-weight:600}
.footer-links a:hover{color:var(--acc)}
.footer-bottom{
  border-top:1px solid var(--border);padding:17px 0;color:var(--muted);font-size:.86rem;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
}

/* ---------- Command palette ---------- */
.palette-overlay{
  position:fixed;inset:0;background:rgba(4,4,12,.62);backdrop-filter:blur(4px);z-index:100;
  display:none;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;
}
.palette-overlay.open{display:flex}
.palette{
  width:100%;max-width:600px;background:var(--surface-solid);border:1px solid var(--border-strong);border-radius:19px;
  box-shadow:var(--shadow-lg),0 0 0 1px rgba(168,85,247,.14),0 24px 70px -20px rgba(124,58,237,.4);overflow:hidden;animation:pal-in .16s ease;
}
@keyframes pal-in{from{opacity:0;transform:translateY(-8px) scale(.99)}to{opacity:1;transform:none}}
.palette input{
  width:100%;border:none;outline:none;background:transparent;color:var(--text);
  padding:17px 19px;font-size:1.05rem;font-family:inherit;border-bottom:1px solid var(--border);
}
.palette-list{max-height:380px;overflow:auto;padding:8px}
.palette-group{font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:9px 10px 4px}
.palette-item{
  display:flex;align-items:center;gap:12px;padding:10px;border-radius:12px;cursor:pointer;min-height:44px;
}
.palette-item .tool-icon{width:36px;height:36px;border-radius:10px}
.palette-item .tool-icon svg{width:20px;height:20px}
.palette-item .pi-name{font-weight:700;font-size:.95rem}
.palette-item .pi-cat{color:var(--muted);font-size:.79rem;margin-left:auto;flex:none}
.palette-item.sel{background:var(--surface-2)}
.palette-empty{padding:22px;text-align:center;color:var(--muted)}
.palette-foot{display:flex;gap:16px;padding:10px 16px;border-top:1px solid var(--border);color:var(--muted);font-size:.78rem}

/* Toast */
.toast{
  position:fixed;left:50%;bottom:26px;transform:translate(-50%,20px);background:var(--text);color:var(--bg);
  padding:11px 19px;border-radius:12px;font-weight:600;font-size:.92rem;opacity:0;pointer-events:none;
  transition:opacity .2s ease,transform .2s ease;z-index:200;box-shadow:var(--shadow-lg);max-width:90vw;text-align:center;
}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .hero-inner{grid-template-columns:1fr;gap:34px;padding:42px 32px}
  .hero-copy{text-align:center}
  .hero-eyebrow-row{justify-content:center}
  .hero .sub{margin-inline:auto}
  .hero-search{margin-inline:auto}
  .trust-chips{justify-content:center}
  .hero-stage{height:400px;max-width:560px;margin:0 auto;width:100%}
}
@media (max-width:900px){
  .footer-grid{grid-template-columns:1fr 1fr}
  .search-btn{min-width:44px}
  .search-btn .sb-label,.search-btn .kbd{display:none}
}
@media (max-width:640px){
  .grid-2{grid-template-columns:1fr}
  .main-nav{display:none}
  .header-inner{gap:10px;padding:0 8px 0 14px}
  .hero{padding:14px 0 34px}
  .hero-inner{padding:32px 20px;border-radius:26px}
  .trend-row{gap:12px;padding:12px 14px}
  .trend-rank{font-size:1.25rem;min-width:34px}
  .trend-desc{white-space:normal}
  .trend-open{padding:6px 10px}
  .hero-stage{height:320px}
  .hf-ring.r1{width:250px;height:250px}
  .hf-ring.r2{width:168px;height:168px}
  .hf-logo{width:92px;height:92px;border-radius:26px}
  .hf-logo svg{width:58px;height:58px}
  .hf-chip{width:44px;height:44px;border-radius:13px}
  .workspace{padding:18px}
  .footer-grid{grid-template-columns:1fr}
  .orbit-chip .oc-name{display:none}
  .orbit-chip{padding:9px}
  .marquee-track.loop{animation-duration:84s}
}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s !important;animation-iteration-count:1 !important;transition-duration:.001s !important}
  .reveal{opacity:1;translate:0 0}
  .hero-search{animation:none}
  .orbit-ring,.orbit-chip{animation:none !important}
}


/* ============================================================
   Phase 6 — Homepage: split hero + upright-label orbit,
   one-by-one tool showcases, arranged category grid.
   Palette: Emerald Ink & Gold (tokens above).
   ============================================================ */

/* ---------- Hero ---------- */
.h6-hero{padding:30px 0 26px}
.h6-hero-grid{display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center}
.h6-eyebrow{
  display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--border-strong);background:var(--surface);backdrop-filter:var(--glass-blur);
  font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.h6-eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-grad);box-shadow:0 0 12px 2px color-mix(in srgb,var(--mint) 65%,transparent);animation:pulse-dot 2.6s ease-in-out infinite}
.h6-brand{font-size:clamp(3.4rem,6.4vw,4.9rem);font-weight:850;letter-spacing:-.04em;line-height:1;margin:20px 0 8px}
.h6-brand .logo-num{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.h6-headline{font-size:clamp(1.28rem,2.2vw,1.55rem);font-weight:650;margin:0 0 14px;letter-spacing:-.01em}
.h6-desc{color:var(--muted);font-size:1.05rem;line-height:1.68;max-width:545px;margin:0 0 22px}
.h6-desc strong{color:var(--text);font-weight:700}
.h6-facts{display:flex;flex-wrap:wrap;gap:9px;list-style:none;margin:0 0 26px;padding:0}
.h6-facts li{
  display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;
  border:1px solid var(--border);background:var(--surface-2);font-size:.86rem;font-weight:650;
}
.h6-facts svg{color:var(--mint);flex:none}
.h6-copy{min-width:0}
.h6-search{
  display:flex;align-items:center;gap:11px;width:100%;max-width:560px;min-height:58px;min-width:0;
  padding:10px 12px 10px 18px;border-radius:17px;border:1px solid var(--border-strong);
  background:var(--input-bg);color:var(--muted);font-size:1rem;text-align:left;box-shadow:var(--shadow);
  transition:border-color .15s ease,color .15s ease;
}
.h6-search:hover{border-color:var(--emerald);color:var(--text)}
.h6-search-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.h6-popular{margin:14px 2px 0;color:var(--muted);font-size:.9rem}
.h6-popular a{color:var(--text);font-weight:650;border-bottom:1px solid color-mix(in srgb,var(--gold) 45%,transparent);transition:color .15s ease}
.h6-popular a:hover{color:var(--gold-soft)}

/* ---------- Orbit (labels never rotate: JS moves left/top only) ---------- */
.h6-orbit-wrap{position:relative;padding:6px 0 2px}
.h6-orbit{position:relative;width:min(560px,100%);aspect-ratio:1/1;margin:0 auto}
.h6-orbit::before{
  content:"";position:absolute;inset:6%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--emerald) 17%,transparent),color-mix(in srgb,var(--gold) 6%,transparent) 55%,transparent 72%);
}
.h6-ring{position:absolute;border-radius:50%;pointer-events:none}
.h6-ring-outer{inset:10%;border:1.5px solid color-mix(in srgb,var(--emerald) 38%,transparent)}
.h6-ring-inner{inset:23%;border:1px dashed color-mix(in srgb,var(--gold) 48%,transparent)}
.h6-chip{
  position:absolute;transform:translate(-50%,-50%);z-index:3;
  display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 14px 0 7px;border-radius:999px;
  background:var(--surface);border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow);font-weight:700;font-size:.9rem;color:var(--text);white-space:nowrap;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.h6-chip .tool-icon{width:33px;height:33px;border-radius:10px}
.h6-chip .tool-icon svg{width:19px;height:19px}
.h6-chip small{color:var(--gold);font-size:.78rem;font-weight:850}
.h6-chip:hover,.h6-chip:focus-visible{border-color:var(--acc);box-shadow:var(--shadow-lg),0 10px 26px -10px var(--acc)}
/* Inner ring: round icon nodes for popular tools (name in title/aria-label).
   At 46px wide they can never collide with the labelled outer chips. */
.h6-chip-tool{width:46px;height:46px;padding:0;justify-content:center;border-radius:50%}
.h6-chip-tool .tool-icon{width:32px;height:32px;border-radius:10px}
.h6-chip-tool .tool-icon svg{width:18px;height:18px}
.h6-core{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:138px;height:138px;border-radius:40px;padding:10px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:var(--surface);border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow-lg),0 0 64px -14px color-mix(in srgb,var(--emerald) 60%,transparent);
}
.h6-core svg{width:56px;height:56px}
.h6-core strong{font-size:.94rem;line-height:1.15}
.h6-core span{color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.h6-orbit-toggle{
  display:flex;align-items:center;gap:8px;margin:16px auto 0;min-height:44px;padding:9px 18px;
  border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);
  font-size:.86rem;font-weight:700;transition:color .15s ease,border-color .15s ease;
}
.h6-orbit-toggle:hover{color:var(--text);border-color:var(--emerald)}
.h6-orbit-toggle[disabled]{opacity:.65;cursor:default}

/* ---------- Sections & showcases ---------- */
.h6-section{padding:78px 0 6px}
.h6-kicker{display:block;color:var(--gold);font-size:.74rem;font-weight:850;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px}
.h6-show{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.h6-show-copy h2{font-size:clamp(1.7rem,3vw,2.25rem);letter-spacing:-.025em;line-height:1.12;margin:0 0 12px}
.h6-show-copy>p{color:var(--muted);line-height:1.68;margin:0 0 18px;max-width:490px}
.h6-ticks{list-style:none;padding:0;margin:0 0 24px;display:grid;gap:10px}
.h6-ticks li{display:flex;gap:9px;align-items:flex-start;font-weight:600;font-size:.97rem;line-height:1.45}
.h6-ticks svg{flex:none;margin-top:3px;color:var(--mint)}

/* Browser-frame presentation for real tool visuals */
.browser-frame{
  position:relative;border-radius:20px;border:1px solid var(--border-strong);
  background:var(--surface-solid);box-shadow:var(--shadow-lg);overflow:hidden;
  transition:transform .25s ease;will-change:transform;
}
.bf-bar{display:flex;align-items:center;gap:7px;padding:11px 14px;border-bottom:1px solid var(--border);background:var(--surface-2)}
.bf-dot{width:11px;height:11px;border-radius:50%;flex:none}
.bf-url{
  margin-left:8px;flex:1;min-width:0;font-family:var(--mono);font-size:.74rem;color:var(--muted);
  background:var(--input-bg);border:1px solid var(--border);border-radius:8px;padding:5px 10px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bf-body{padding:22px}
.h6-frame-shot img{width:100%;height:auto;display:block}
.qr-mini .field{margin-bottom:14px}
.qr-stage{background:#fff;border-radius:14px;padding:16px;display:flex;justify-content:center;box-shadow:inset 0 0 0 1px rgba(4,18,11,.08)}
.qr-stage canvas{width:232px;height:232px;max-width:100%;image-rendering:pixelated}
.qr-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:16px}
.qr-note{font-size:.83rem;color:var(--muted);margin:12px 0 0}

/* ---------- Categories ---------- */
.h6-cats-head{max-width:660px}
.h6-cats-head h2{font-size:clamp(1.8rem,3.2vw,2.4rem);letter-spacing:-.025em;line-height:1.12;margin:0 0 10px}
.h6-cats-head p{color:var(--muted);line-height:1.65;margin:0}
.h6-cat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:16px;margin-top:32px}
.h6-cat-card{
  background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:20px;
  backdrop-filter:var(--glass-blur);box-shadow:var(--shadow);scroll-margin-top:110px;
  transition:border-color .15s ease,transform .15s ease;
}
.h6-cat-card:hover{border-color:color-mix(in srgb,var(--acc) 55%,transparent);transform:translateY(-2px)}
.h6-cat-top{display:flex;align-items:center;gap:12px}
.h6-cat-top .tool-icon{width:42px;height:42px;border-radius:12px}
.h6-cat-top .tool-icon svg{width:23px;height:23px}
.h6-cat-top h3{margin:0;font-size:1.05rem;letter-spacing:-.01em}
.h6-cat-count{
  margin-left:auto;flex:none;font-size:.72rem;font-weight:800;color:var(--gold);
  border:1px solid color-mix(in srgb,var(--gold) 42%,transparent);border-radius:999px;padding:3px 9px;
}
.h6-cat-card>p{color:var(--muted);font-size:.9rem;margin:10px 0 4px}
.h6-cat-tools{list-style:none;margin:10px 0 0;padding:12px 0 0;border-top:1px solid var(--border);display:grid;gap:2px}
.h6-cat-tools a{
  display:flex;justify-content:space-between;align-items:center;gap:8px;
  padding:7px 9px;border-radius:9px;font-size:.92rem;font-weight:600;color:var(--text);
  transition:background .12s ease,color .12s ease;
}
.h6-cat-tools a span{color:var(--muted);transition:color .12s ease,transform .12s ease}
.h6-cat-tools a:hover{background:var(--surface-2);color:var(--mint)}
.h6-cat-tools a:hover span{color:var(--gold);transform:translateX(2px)}

/* ---------- Closing CTA ---------- */
.h6-cta{
  margin:84px 0 8px;border-radius:28px;border:1px solid var(--border-strong);
  background:linear-gradient(150deg,color-mix(in srgb,var(--emerald) 16%,transparent),transparent 55%),var(--surface);
  backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg);
  padding:48px 40px;text-align:center;
}
.h6-cta h2{font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.025em;margin:0 0 10px}
.h6-cta p{color:var(--muted);max-width:560px;margin:0 auto;line-height:1.65}
.h6-cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}
.marquee-footer{margin-top:58px}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .h6-hero-grid{grid-template-columns:1fr;gap:34px}
  .h6-desc{max-width:640px}
  .h6-orbit{width:min(520px,100%)}
  .h6-show{grid-template-columns:1fr;gap:32px}
  .h6-show-copy>p{max-width:640px}
  .h6-section{padding:58px 0 4px}
}
@media (min-width:1021px){
  /* Alternate showcase sides on desktop: Merge PDF visual goes left */
  #showcase-qr + .h6-section .h6-frame-shot{order:-1}
}
@media (max-width:560px){
  .h6-hero{padding-top:20px}
  .h6-search-label{font-size:.9rem}
  .h6-search .kbd{display:none}
  .h6-chip{height:44px;font-size:.8rem;padding:0 11px 0 6px;gap:6px}
  .h6-chip .tool-icon{width:29px;height:29px;border-radius:9px}
  .h6-chip .tool-icon svg{width:16px;height:16px}
  .h6-chip-tool{width:44px;height:44px}
  .h6-chip-tool .tool-icon{width:30px;height:30px}
  .h6-core{width:110px;height:110px;border-radius:31px}
  .h6-core svg{width:45px;height:45px}
  .h6-core strong{font-size:.82rem}
  .h6-core span{font-size:.56rem}
  .bf-body{padding:16px}
  .qr-stage canvas{width:208px;height:208px}
  .h6-cta{padding:32px 20px;margin-top:58px}
  .h6-cat-grid{grid-template-columns:1fr}
}
@media (prefers-reduced-motion: reduce){
  .browser-frame{transform:none !important;transition:none}
  .h6-eyebrow-dot{animation:none}
  .h6-cat-card,.h6-chip{transition:none}
}

/* ============================================================
   Phase 7 — "Spectrum Worlds" homepage: split hero with the
   upright-label orbit, slow marquee, and seven category worlds
   (every category owns a vivid colour; all of its tools are
   cards inside its own section).
   ============================================================ */

/* ---------- Hero ---------- */
.p7-hero{position:relative;padding:34px 0 30px;overflow:clip}
.p7-hero::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:
    radial-gradient(720px 420px at 88% 0%,color-mix(in srgb,var(--cat-generators) 13%,transparent),transparent 62%),
    radial-gradient(760px 460px at 4% 18%,color-mix(in srgb,var(--cat-image) 12%,transparent),transparent 62%),
    radial-gradient(620px 420px at 55% 108%,color-mix(in srgb,var(--cat-converters) 11%,transparent),transparent 62%);
}
.p7-shape{position:absolute;border-radius:26%;pointer-events:none;z-index:0;
  background:linear-gradient(150deg,color-mix(in srgb,var(--cat-calculators) 30%,transparent),color-mix(in srgb,var(--cat-converters) 18%,transparent));
  border:1px solid color-mix(in srgb,var(--cat-calculators) 30%,transparent);
  backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg);
  transform:perspective(700px) rotateX(18deg) rotateY(-22deg);
  animation:p7-float 11s ease-in-out infinite;
}
.p7-shape.s1{width:92px;height:92px;right:6%;top:26px}
.p7-shape.s2{width:54px;height:54px;right:42%;bottom:8px;border-radius:50%;
  background:linear-gradient(150deg,color-mix(in srgb,var(--cat-image) 34%,transparent),color-mix(in srgb,var(--cat-generators) 20%,transparent));
  border-color:color-mix(in srgb,var(--cat-image) 32%,transparent);animation-delay:-4s}
.p7-shape.s3{width:64px;height:64px;left:2.5%;top:120px;
  background:linear-gradient(150deg,color-mix(in srgb,var(--cat-text) 30%,transparent),color-mix(in srgb,var(--cat-converters) 16%,transparent));
  border-color:color-mix(in srgb,var(--cat-text) 30%,transparent);animation-delay:-7.5s}
@keyframes p7-float{0%,100%{margin-top:0}50%{margin-top:-14px}}
.p7-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.02fr .98fr;gap:48px;align-items:center}
.p7-copy{min-width:0}
.p7-eyebrow{
  display:inline-flex;align-items:center;gap:9px;padding:7px 14px;border-radius:999px;
  border:1px solid var(--border-strong);background:var(--surface);backdrop-filter:var(--glass-blur);
  font-size:.78rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);
}
.p7-eyebrow-dot{width:8px;height:8px;border-radius:50%;background:var(--brand-grad);box-shadow:0 0 12px 2px rgba(217,70,239,.5);animation:pulse-dot 2.6s ease-in-out infinite}
.p7-brand{font-size:clamp(3.4rem,6.4vw,4.9rem);font-weight:850;letter-spacing:-.04em;line-height:1;margin:20px 0 8px}
.p7-brand .logo-num{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.p7-headline{font-size:clamp(1.3rem,2.2vw,1.6rem);font-weight:650;margin:0 0 14px;letter-spacing:-.01em}
.p7-headline .hl{background:var(--brand-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.p7-desc{color:var(--muted);font-size:1.05rem;line-height:1.68;max-width:545px;margin:0 0 22px}
.p7-desc strong{color:var(--text);font-weight:700}
.p7-facts{display:flex;flex-wrap:wrap;gap:9px;list-style:none;margin:0 0 26px;padding:0}
.p7-facts li{
  display:inline-flex;align-items:center;gap:7px;padding:8px 13px;border-radius:999px;
  border:1px solid var(--border);background:var(--surface-2);font-size:.86rem;font-weight:650;
}
.p7-facts svg{color:var(--ok);flex:none}
.p7-search{
  display:flex;align-items:center;gap:11px;width:100%;max-width:560px;min-height:58px;min-width:0;
  padding:10px 12px 10px 18px;border-radius:17px;border:1px solid var(--border-strong);
  background:var(--input-bg);color:var(--muted);font-size:1rem;text-align:left;box-shadow:var(--shadow);
  transition:border-color .15s ease,color .15s ease;
}
.p7-search:hover{border-color:var(--violet);color:var(--text)}
.p7-search-label{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.p7-popular{margin:14px 2px 0;color:var(--muted);font-size:.9rem}
.p7-popular a{color:var(--text);font-weight:650;border-bottom:1px solid color-mix(in srgb,var(--magenta) 45%,transparent);transition:color .15s ease}
.p7-popular a:hover{color:var(--magenta)}

/* ---------- Orbit (labels never rotate: JS moves left/top only) ---------- */
.p7-orbit-wrap{position:relative;padding:6px 0 2px}
.p7-orbit{position:relative;width:min(560px,100%);aspect-ratio:1/1;margin:0 auto}
.p7-orbit::before{
  content:"";position:absolute;inset:6%;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--violet) 14%,transparent),color-mix(in srgb,var(--magenta) 6%,transparent) 55%,transparent 72%);
}
.p7-ring{position:absolute;border-radius:50%;pointer-events:none}
.p7-ring-outer{inset:10%;border:1.5px solid color-mix(in srgb,var(--violet) 34%,transparent)}
.p7-ring-inner{inset:23%;border:1px dashed color-mix(in srgb,var(--magenta) 42%,transparent)}
.p7-chip{
  position:absolute;transform:translate(-50%,-50%);z-index:3;
  display:inline-flex;align-items:center;gap:8px;height:46px;padding:0 14px 0 7px;border-radius:999px;
  background:var(--surface);border:1px solid color-mix(in srgb,var(--acc) 40%,var(--border-strong));backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow),0 8px 22px -10px var(--acc);font-weight:700;font-size:.9rem;color:var(--text);white-space:nowrap;
  transition:border-color .15s ease,box-shadow .15s ease;
}
.p7-chip .tool-icon{width:33px;height:33px;border-radius:10px}
.p7-chip .tool-icon svg{width:19px;height:19px}
.p7-chip small{color:var(--acc);font-size:.78rem;font-weight:850}
.p7-chip:hover,.p7-chip:focus-visible{border-color:var(--acc);box-shadow:var(--shadow-lg),0 10px 26px -10px var(--acc)}
.p7-chip-tool{width:46px;height:46px;padding:0;justify-content:center;border-radius:50%}
.p7-chip-tool .tool-icon{width:32px;height:32px;border-radius:10px}
.p7-chip-tool .tool-icon svg{width:18px;height:18px}
.p7-core{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:2;
  width:138px;height:138px;border-radius:40px;padding:10px;text-align:center;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  background:var(--surface);border:1px solid var(--border-strong);backdrop-filter:var(--glass-blur);
  box-shadow:var(--shadow-lg),0 0 64px -14px color-mix(in srgb,var(--violet) 55%,transparent);
}
.p7-core svg{width:56px;height:56px}
.p7-core strong{font-size:.94rem;line-height:1.15}
.p7-core span{color:var(--muted);font-size:.62rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase}
.p7-orbit-toggle{
  display:flex;align-items:center;gap:8px;margin:16px auto 0;min-height:44px;padding:9px 18px;
  border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--muted);
  font-size:.86rem;font-weight:700;transition:color .15s ease,border-color .15s ease;
}
.p7-orbit-toggle:hover{color:var(--text);border-color:var(--violet)}
.p7-orbit-toggle[disabled]{opacity:.65;cursor:default}

/* ---------- Spectrum Worlds (category sections) ---------- */
.p7-world{padding:30px 0 4px;scroll-margin-top:96px}
.p7-world-panel{
  border-radius:28px;padding:30px 30px 34px;position:relative;
  border:1px solid color-mix(in srgb,var(--acc) 20%,var(--border));
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--acc) 8%,transparent),transparent 300px),
    var(--surface);
  backdrop-filter:var(--glass-blur);box-shadow:var(--shadow);
}
.p7-world-head{display:flex;align-items:center;gap:16px;margin:0 0 22px;flex-wrap:wrap}
.p7-world-icon{width:56px;height:56px;border-radius:17px}
.p7-world-icon svg{width:30px;height:30px}
.p7-world-titles{min-width:0}
.p7-world-titles h2{margin:0;font-size:clamp(1.45rem,2.6vw,1.85rem);letter-spacing:-.025em;line-height:1.1}
.p7-world-titles p{margin:3px 0 0;color:var(--muted);font-size:.97rem}
.p7-world-count{
  margin-left:auto;flex:none;font-size:.76rem;font-weight:850;letter-spacing:.05em;text-transform:uppercase;
  color:var(--acc);border:1px solid color-mix(in srgb,var(--acc) 45%,transparent);
  background:color-mix(in srgb,var(--acc) 9%,transparent);
  border-radius:999px;padding:5px 12px;
}
.tool-open{display:inline-flex;align-items:center;gap:5px;margin-top:7px;font-size:.84rem;font-weight:750;color:var(--acc)}
.tool-open span{transition:transform .15s ease}
a.tool-card:hover .tool-open span{transform:translateX(3px)}

/* ---------- Why strip + CTA ---------- */
.p7-why-title{font-size:clamp(1.55rem,2.8vw,2rem);letter-spacing:-.025em;margin:56px 0 0}
.p7-why{margin-top:20px}
.p7-cta{
  margin:64px 0 8px;border-radius:28px;border:1px solid var(--border-strong);position:relative;overflow:hidden;
  background:linear-gradient(140deg,color-mix(in srgb,var(--violet) 13%,transparent),color-mix(in srgb,var(--magenta) 9%,transparent) 55%,color-mix(in srgb,var(--cat-image) 10%,transparent)),var(--surface);
  backdrop-filter:var(--glass-blur);box-shadow:var(--shadow-lg);
  padding:48px 40px;text-align:center;
}
.p7-cta h2{font-size:clamp(1.7rem,3vw,2.3rem);letter-spacing:-.025em;margin:0 0 10px}
.p7-cta p{color:var(--muted);max-width:560px;margin:0 auto;line-height:1.65}
.p7-cta-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:24px}

/* ---------- Responsive ---------- */
@media (max-width:1020px){
  .p7-hero-grid{grid-template-columns:1fr;gap:34px}
  .p7-desc{max-width:640px}
  .p7-orbit{width:min(520px,100%)}
  .p7-shape.s3{display:none}
}
@media (max-width:560px){
  .p7-hero{padding-top:22px}
  .p7-world{padding-top:20px}
  .p7-world-panel{padding:22px 16px 24px;border-radius:22px}
  .p7-world-icon{width:48px;height:48px;border-radius:14px}
  .p7-search-label{font-size:.9rem}
  .p7-search .kbd{display:none}
  .p7-chip{height:44px;font-size:.8rem;padding:0 11px 0 6px;gap:6px}
  .p7-chip .tool-icon{width:29px;height:29px;border-radius:9px}
  .p7-chip .tool-icon svg{width:16px;height:16px}
  .p7-chip-tool{width:44px;height:44px}
  .p7-chip-tool .tool-icon{width:30px;height:30px}
  .p7-core{width:110px;height:110px;border-radius:31px}
  .p7-core svg{width:45px;height:45px}
  .p7-core strong{font-size:.82rem}
  .p7-core span{font-size:.56rem}
  .p7-shape.s1{width:60px;height:60px;right:3%}
  .p7-shape.s2{display:none}
  .p7-cta{padding:32px 20px;margin-top:44px}
}
@media (prefers-reduced-motion: reduce){
  .p7-shape{animation:none}
  .p7-eyebrow-dot{animation:none}
  .p7-chip{transition:none}
}
/* QR card: slightly bigger inside its category grid (user's wording) —
   still a normal card in the Generators world, no showcase. */
@media (min-width:1024px){ .tool-card.p7-featured{grid-column:span 2} }
