button{font:inherit;color:inherit}

.hero{position:relative;background:var(--sun);padding:56px 0 110px;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:1.2fr .8fr;gap:30px;align-items:center}
.hero h1{font-size:clamp(3rem,9vw,6rem);font-weight:800;margin:10px 0 12px}
.hero h1 em{font-style:normal;background:var(--coral);color:#fff;padding:0 .2em;border-radius:.3em;display:inline-block;transform:rotate(-3deg)}
.hero p{font-size:1.15rem;max-width:32em}
.chips{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
.chip{background:#fff;font-weight:800;padding:8px 18px;border-radius:999px;border:2px solid var(--ink);box-shadow:0 4px 0 var(--ink);font-size:.92rem}
.art{position:relative;height:250px;max-width:320px;margin-inline:auto;width:100%}
.art span{position:absolute;display:grid;place-items:center;border:3px solid var(--ink);box-shadow:0 7px 0 var(--ink);font-size:3.2rem;animation:float 5s ease-in-out infinite}
.art .a1{inset:0 48% 50% 0;background:#fff;border-radius:24px}
.art .a2{inset:8% 0 40% 55%;background:var(--sky);border-radius:50%;animation-delay:-1.4s}
.art .a3{inset:56% 52% 0 6%;background:var(--mint);border-radius:50%;animation-delay:-2.8s}
.art .a4{inset:52% 2% 2% 52%;background:var(--coral);border-radius:24px;animation-delay:-4s}
@keyframes float{50%{transform:translateY(-12px) rotate(4deg)}}
.wave{position:absolute;bottom:-1px;left:0;width:100%;height:70px}

.toc{margin-top:-52px;position:relative;z-index:5}
.toccard{background:var(--grape);color:#fff;border:3px solid var(--ink);border-radius:30px;box-shadow:0 9px 0 var(--ink);padding:24px 28px;display:grid;grid-template-columns:auto 1fr auto;gap:22px;align-items:center}
.toccard .ic{font-size:2.6rem;width:70px;height:70px;border-radius:22px;background:var(--sun);border:3px solid var(--ink);display:grid;place-items:center;transform:rotate(-5deg)}
.toccard h2{font-size:1.6rem;font-weight:800}
.toccard p{color:#e8e2ff;font-size:.95rem}
.btn{display:inline-flex;gap:8px;align-items:center;padding:12px 22px;border-radius:999px;font-weight:800;border:2px solid var(--ink);background:var(--sun);color:var(--ink);box-shadow:0 5px 0 var(--ink);transition:.15s;white-space:nowrap}
.btn:hover{transform:translateY(3px);box-shadow:0 2px 0 var(--ink)}
.btn.w{background:#fff}

.tools{margin-top:46px;display:flex;gap:14px;flex-wrap:wrap;align-items:center}
.search{flex:1 1 300px;display:flex;align-items:center;gap:10px;background:#fff;border:3px solid var(--ink);border-radius:999px;padding:6px 20px;box-shadow:0 6px 0 var(--ink)}
.search input{flex:1;border:0;outline:0;font:inherit;font-weight:700;padding:10px 0;background:transparent;color:var(--ink);min-width:0}
.filters{display:flex;gap:8px;flex-wrap:wrap}
.filters button{font-weight:800;border:2px solid var(--ink);background:#fff;border-radius:999px;padding:9px 15px;cursor:pointer;transition:.15s}
.filters button:hover{background:#fff3d6}
.filters button.on{background:var(--grape);color:#fff;box-shadow:0 4px 0 var(--accent-deep)}
.count{margin:26px 0 16px;font-weight:800;color:var(--muted)}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:22px;padding-bottom:80px}
.craft{background:#fff;border:3px solid var(--ink);border-radius:26px;padding:18px;box-shadow:0 8px 0 var(--ink);display:flex;flex-direction:column;gap:12px;transition:.18s;position:relative}
.craft:hover{transform:translateY(4px) rotate(-.6deg);box-shadow:0 4px 0 var(--ink)}
.pic{height:110px;border-radius:18px;border:3px solid var(--ink);display:grid;place-items:center;font-size:3.6rem}
.pic.photo{height:170px;overflow:hidden;background:#fff}
.pic.photo img{width:100%;height:100%;object-fit:cover;display:block}
.pic.scan img{object-position:top}
.lv{position:absolute;top:-12px;right:16px;font-weight:800;font-size:.75rem;letter-spacing:.06em;border:2px solid var(--ink);border-radius:999px;padding:1px 12px}
.lv.e{background:var(--mint)}.lv.a{background:var(--sky)}.lv.x{background:var(--sun)}
.craft h3{font-size:1.2rem;font-weight:800;line-height:1.2;flex:1}
.acts{display:flex;gap:8px;flex-wrap:wrap}
.act{font-weight:800;font-size:.82rem;padding:6px 13px;border-radius:999px;border:2px solid var(--ink);background:var(--sun);transition:.12s}
.act:hover{background:var(--mint)}
.act.alt{background:#fff}.act.alt:hover{background:var(--sun)}
.grp{margin-bottom:34px}.grp .grid{padding-bottom:0}#grid{padding-bottom:60px}
.grp-head{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:12px 18px 12px 12px;border:3px solid var(--ink);border-radius:24px;box-shadow:0 6px 0 var(--ink)}
.grp.e .grp-head{background:#c8f6e6}.grp.a .grp-head{background:#e4dcff}.grp.x .grp-head{background:#fff1b8}
.grp-head h2{font-size:1.6rem;font-weight:800;line-height:1.1}
.grp-head p{color:var(--muted);font-weight:700;font-size:.9rem}
.grp-head .gn{margin-left:auto;font-weight:800;background:#fff;border:2px solid var(--ink);border-radius:999px;padding:4px 14px;white-space:nowrap}
.empty{text-align:center;padding:50px 0;font-weight:700;color:var(--muted);display:none;font-size:1.15rem}
footer{background:var(--ink);color:#d9d4ff;padding:36px 0;text-align:center;font-size:.9rem}
@media(max-width:760px){
  .hero .wrap{grid-template-columns:1fr}.art{display:none}.back span{display:none}
  .toccard{grid-template-columns:1fr;text-align:center;justify-items:center}
}
/* "Save offline" (css/site.css) beside the Table of Contents button */
.tocacts{display:flex;flex-direction:column;align-items:center;gap:10px}
/* "Open PDF" and "Save offline" (css/site.css) on one line in a craft card: slightly tighter buttons */
.craft{padding:18px 14px}
.craft .acts{gap:6px}
.craft .act,.craft button.offl{padding:6px 9px;font-size:.8rem}
