:root{
  --ink:#132332;
  --muted:#66717c;
  --teal:#38b9b3;
  --teal-deep:#249f9a;
  --teal-wash:#d9f3f1;
  --blue:#083c91;
  --line:#dfe6e9;
  --panel:#fff;
  --shadow:0 18px 50px rgba(11,55,71,.11);
  font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--ink);
  background:#fff;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;line-height:1.55;background:#fff;color:var(--ink)}
a{color:inherit}
.landing-hero{position:relative;background:var(--teal)}
.hero-inner{width:min(1080px,calc(100% - 48px));margin:0 auto;padding:24px 0 28px}
.landing-logo{display:block;width:min(320px,58vw);margin:0 auto 12px;text-decoration:none}
.landing-logo img{display:block;width:100%;height:auto}
.hero-grid{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:28px}
.hero-copy{max-width:560px}
.hero-art{display:flex;justify-content:center;align-self:end}
.hero-art img{display:block;width:480px;max-width:100%;height:auto;filter:drop-shadow(0 18px 22px rgba(7,52,66,.12))}
/* #172: dark ink on the solid teal (6.6:1); the earlier translucent panel lowered the eyebrow and lede below 4.5:1. */
.eyebrow{margin:0 0 8px;font-size:.76rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.eyebrow{color:#0b2530}
.hero-copy h1{margin:0;font-family:"Trebuchet MS",ui-rounded,system-ui,sans-serif;font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.08;letter-spacing:-.03em;color:#0b2530}
.hero-lede{max-width:36rem;margin:14px 0 20px;font-size:1.06rem;color:#0b2530}
.hero-lede a{color:#0b2530;font-weight:700;text-underline-offset:2px}
.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;border-radius:11px;padding:11px 18px;font-weight:800;text-decoration:none}
.button-primary{background:var(--blue);color:white;box-shadow:0 8px 20px rgba(8,60,145,.18)}
.button-primary:hover{background:#062f74}
.button:focus-visible,.tool-card:focus-visible,.landing-logo:focus-visible,.hero-lede a:focus-visible{outline:3px solid #fff;outline-offset:4px}
main{background:#fff}
.tool-directory{width:min(1080px,calc(100% - 48px));margin:0 auto;padding:28px 0 64px}
.tool-directory h2{margin:0 0 12px;font-family:"Trebuchet MS",ui-rounded,system-ui,sans-serif;font-size:clamp(1.7rem,2.6vw,2.3rem);letter-spacing:-.02em}
.category-nav{display:flex;flex-direction:column;align-items:flex-start;gap:6px;margin:-6px -6px 0;padding:6px}
.category-nav::-webkit-scrollbar,.category-nav-group::-webkit-scrollbar{display:none}
/* Desktop: one row per group. A desktop mouse cannot scroll a row whose scrollbar is hidden, so a group
   that does not fit wraps instead of being cut off (#269); every link stays visible. Below 1000 px each
   group is a sideways-scrolling row that a finger can swipe (#226). The padding keeps focus rings visible. */
.category-nav-group{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.category-nav a{flex:none;white-space:nowrap}
/* The umbrella heading follows the jump links directly, so the group's label is its accessible name only. */
.category-nav-label{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.category-nav a{display:inline-flex;align-items:center;min-height:36px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:.88rem;font-weight:700;color:#16706c;text-decoration:none;background:#f6fbfb}
.category-nav a:hover{border-color:#16706c}
.category-nav a:focus-visible{outline:3px solid var(--blue);outline-offset:2px}
/* Desktop pills are a little more compact so the five Digital File Utilities links fit one row at 1280 px even
   with wide fallback fonts (DejaVu Sans), keeping the first card within its target (#138, #269). */
@media(min-width:1000px){.category-nav a{padding:6px 11px;font-size:.84rem}}
/* Group level (#225): the Digital File Utilities umbrella and the stand-alone QR Code Tools and Calculators sections use H3; the umbrella's categories use H4. */
.tool-group,.tool-category{scroll-margin-top:16px}
.tool-group>h3,.tool-directory>.tool-category>h3{margin:30px 0 12px;font-size:1.3rem;font-weight:800;color:var(--ink)}
.tool-group>h3{margin-bottom:0}
.tool-category h4{margin:18px 0 12px;font-size:1.08rem;font-weight:800;color:var(--ink)}
.tool-group>h3,.tool-directory>.tool-category>h3,.tool-category h4{line-height:1.25}
.tool-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.tool-card{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:start;padding:16px;border:1px solid var(--line);border-radius:16px;background:#fff;box-shadow:var(--shadow);text-decoration:none;transition:transform .15s ease,box-shadow .15s ease}
.tool-card:hover{transform:translateY(-2px);box-shadow:0 22px 55px rgba(11,55,71,.15)}
.tool-card:focus-visible{outline-color:var(--blue)}
.tool-card-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:12px;background:var(--teal-wash);color:#16706c;font-size:1.4rem;font-weight:900}
.tool-card strong{display:block;margin-bottom:3px;font-size:1rem}
.tool-card span span{display:block;color:var(--muted);font-size:.9rem}
.tool-card-arrow{font-size:1.25rem;font-weight:900;color:var(--blue);align-self:center}
.coming-soon{margin:0;max-width:760px;padding:12px 16px;border:1px dashed #b9c6cb;border-radius:12px;background:#f8fafb;color:#3f4a54;font-size:.95rem}
.coming-soon strong{color:var(--ink)}
footer{display:flex;justify-content:space-between;gap:24px;width:min(1080px,calc(100% - 48px));margin:0 auto;padding:28px 0 42px;border-top:1px solid var(--line);color:var(--muted);font-size:.82rem;letter-spacing:.02em}

@media(max-width:999px){
  .tool-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hero-art img{width:420px}
}
@media(max-width:800px){
  .hero-grid{grid-template-columns:1fr;gap:10px;justify-items:center;text-align:center}
  .hero-copy{max-width:640px}
  .hero-lede{margin-left:auto;margin-right:auto}
}
@media(max-width:639px){
  .tool-grid{grid-template-columns:1fr}
}
/* Below desktop: one sideways-scrolling row per group, edge to edge, so QR Code Tools and Calculators stay in view. */
@media(max-width:999px){
  .category-nav{flex-direction:column;align-items:stretch;gap:0;margin:-6px 0 0;padding:0;overflow:visible}
  .category-nav-group{flex-wrap:nowrap;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;margin:0 -24px;padding:6px 24px}
}
@media(max-width:520px){
  .hero-inner,.tool-directory,footer{width:calc(100% - 32px)}
  .hero-inner{padding-top:14px;padding-bottom:12px}
  .landing-logo{width:min(240px,66vw);margin-bottom:6px}
  .hero-copy h1{font-size:1.75rem}
  .hero-lede{font-size:.97rem;margin:10px auto 14px}
  /* Tucker 180 px tall on phones (3:2 image), with explicit dimensions so nothing shifts. */
  .hero-art img{width:270px;height:180px}
  .category-nav,.category-nav-group{gap:6px}
  .category-nav a{min-height:32px;padding:4px 10px;font-size:.82rem}
  .category-nav{margin-bottom:2px}
  .category-nav-group{margin:0 -16px;padding:6px 16px}
  .category-nav-group+.category-nav-group{padding-left:16px}
  .tool-group>h3,.tool-directory>.tool-category>h3{margin-top:14px;font-size:1.2rem}
  .tool-category h4{margin:10px 0 8px}
  .tool-group>h3+.tool-category h4{margin-top:4px}
  .tool-directory{padding-top:16px}
  .tool-card{grid-template-columns:auto 1fr;padding:14px}
  .tool-card-arrow{display:none}
  footer{flex-direction:column;padding-bottom:30px}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .tool-card{transition:none}
}

/* Shared footer links: About, Contact, Privacy Policy, Terms of Use (#98). */
.footer-links{display:flex;flex-wrap:wrap;gap:6px 18px}
footer a{text-decoration:underline;text-underline-offset:2px}
/* Raised ™ after the Doodleden name (#260): small, and never taller than the line. */
.brand-tm{font-size:.55em;line-height:0;vertical-align:super;margin-left:.04em;font-weight:inherit;letter-spacing:0}
/* The banner's ™ sits in the clear space above the end of the word "Doodleden" in the image
   (about x 820–870 and y 150–200 of the 1200 × 400 banner, left of Tucker's fur), so it scales with the banner. */
.landing-logo{position:relative}
.landing-logo .brand-tm-banner{position:absolute;left:68.5%;top:36.5%;margin:0;font:800 calc(min(320px,58vw)*.05)/1 ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;color:#13286b;vertical-align:baseline}
@media(max-width:520px){.landing-logo .brand-tm-banner{font-size:calc(min(240px,66vw)*.05)}}
