@import url('https://fonts.googleapis.com/css2?family=Fredoka:wght@500;600;700&family=Nunito:wght@400;600;700;800&display=swap');
:root{--cream:#fff7ef;--ink:#3f2d3c;--muted:#8a7580;--coral:#ff7a59;--coral-dark:#ef5f3c;--sky:#5cc6e8;--teal:#37c2a8;--sun:#ffca4b;--plum:#7a5aa8;--line:#f0e0d2;--radius:24px;}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Nunito',-apple-system,BlinkMacSystemFont,sans-serif;color:var(--ink);background:linear-gradient(170deg,#fff7ef,#ffe9d6);min-height:100vh;font-weight:600;line-height:1.6;-webkit-text-size-adjust:100%}
h1,h2,h3,h4,.brand,.logo{font-family:'Fredoka',sans-serif;font-weight:600}
a{color:var(--coral-dark)}
.wrap{max-width:960px;margin:0 auto;padding:0 20px}
.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:14px 20px;background:rgba(255,247,239,.92);backdrop-filter:blur(10px);border-bottom:2px solid var(--line)}
.home{color:var(--coral-dark);text-decoration:none;font-family:'Fredoka',sans-serif;font-weight:600;background:#fff;padding:9px 18px;border-radius:999px;box-shadow:0 4px 0 0 #f2d8cb;font-size:.95rem}
.home:active{transform:translateY(2px);box-shadow:0 2px 0 0 #f2d8cb}
.brand{font-weight:700;color:var(--ink);display:flex;gap:8px;align-items:center;font-size:1.05rem}
.brand .m{width:30px;height:30px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe3a1,var(--sun));display:flex;align-items:center;justify-content:center;font-size:16px}
.phead{text-align:center;padding:40px 0 8px}
.tagp{display:inline-block;background:#ffe6de;color:var(--coral-dark);font-family:'Fredoka',sans-serif;font-size:.78rem;text-transform:uppercase;letter-spacing:.6px;padding:6px 16px;border-radius:999px}
.phead h1{font-size:clamp(1.7rem,4.5vw,2.5rem);margin-top:12px}
.phead p{color:var(--muted);margin-top:8px;font-size:1.05rem;max-width:620px;margin-left:auto;margin-right:auto}
/* category sections + cards */
.catsec{padding:22px 0 6px}
.cathead{display:flex;align-items:center;gap:12px;margin:14px 0 16px}
.cathead .dic{width:46px;height:46px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.5rem;color:#fff;flex:none}
.cathead h2{font-size:1.4rem}
.cathead .cnt{color:var(--muted);font-size:.9rem;font-weight:700}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}
.scard{display:flex;flex-direction:column;background:#fff;border:2px solid var(--line);border-radius:var(--radius);padding:20px 20px 18px;text-decoration:none;color:var(--ink);transition:transform .16s,box-shadow .16s;position:relative;overflow:hidden}
.scard:hover{transform:translateY(-4px);box-shadow:0 14px 30px rgba(255,120,80,.14)}
.scard .st{font-family:'Fredoka',sans-serif;font-size:.66rem;text-transform:uppercase;letter-spacing:.5px;padding:4px 11px;border-radius:999px;align-self:flex-start;margin-bottom:12px;font-weight:600}
.scard h3{font-size:1.12rem;line-height:1.22;margin-bottom:auto}
.scard .go{margin-top:16px;font-family:'Fredoka',sans-serif;font-weight:600;font-size:.92rem;color:var(--coral-dark);display:flex;align-items:center;gap:6px}
.c-sky .st{background:#dcf3fb;color:#1f8fb8}.c-coral .st{background:#ffe6de;color:var(--coral-dark)}.c-plum .st{background:#efe6fb;color:#6a4c93}.c-sun .st{background:#fff2c9;color:#a9760a}
.c-sky .go{color:#1f8fb8}.c-plum .go{color:#6a4c93}.c-sun .go{color:#a9760a}
/* detail */
.detail{max-width:760px;margin:0 auto;padding:8px 20px 60px}
.crumb{margin:22px 0 8px;font-size:.92rem;font-weight:700}
.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--coral)}
.dcard{background:#fff;border:2px solid var(--line);border-radius:28px;padding:30px 30px 34px;box-shadow:0 16px 40px rgba(255,120,80,.08)}
.dtag{display:inline-block;font-family:'Fredoka',sans-serif;font-size:.72rem;text-transform:uppercase;letter-spacing:.6px;padding:6px 15px;border-radius:999px;margin-bottom:14px;font-weight:600}
.c-sky .dtag{background:#dcf3fb;color:#1f8fb8}.c-coral .dtag{background:#ffe6de;color:var(--coral-dark)}.c-plum .dtag{background:#efe6fb;color:#6a4c93}.c-sun .dtag{background:#fff2c9;color:#a9760a}
.dcard h1{font-size:clamp(1.5rem,4vw,2.1rem);line-height:1.15;margin-bottom:18px}
.photo{width:100%;border-radius:18px;overflow:hidden;margin:0 0 22px;background:#faf3ec;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.photo img{width:100%;max-height:420px;object-fit:contain;object-position:center;display:block}
.blurb{color:#5f4d57;font-size:1.06rem;line-height:1.7;margin-bottom:22px}
.points{list-style:none;display:flex;flex-direction:column;gap:12px;margin-bottom:26px}
.points li{position:relative;padding-left:32px;color:#4f3f48;font-size:1rem;line-height:1.5}
.points li::before{content:"✓";position:absolute;left:0;top:-1px;width:22px;height:22px;border-radius:50%;background:var(--coral);color:#fff;font-size:.8rem;display:flex;align-items:center;justify-content:center;font-weight:800}
.cta{background:linear-gradient(160deg,#e9f8fd,#fff2ec);border:2px solid #ffe0d3;border-radius:20px;padding:22px 24px;text-align:center;margin-top:6px}
.cta p{color:#6f5b64;margin-bottom:14px;font-size:1rem}
.cta .reach{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.cta a{background:#fff;border:2px solid var(--line);border-radius:14px;padding:11px 18px;text-decoration:none;color:var(--ink);font-weight:800;font-size:.95rem}
.pager{display:flex;justify-content:space-between;gap:12px;margin-top:26px}
.pager a{flex:1;background:#fff;border:2px solid var(--line);border-radius:16px;padding:14px 16px;text-decoration:none;color:var(--ink);font-weight:700;transition:transform .15s}
.pager a:hover{transform:translateY(-2px);border-color:#f0b79e}
.pager a.next{text-align:right}
.pager .lbl{display:block;font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:3px}
.pager .nm{font-family:'Fredoka',sans-serif;font-size:.95rem;color:var(--ink)}
.pager a.disabled{opacity:.4;pointer-events:none}
footer{padding:30px 20px;text-align:center;color:var(--muted);font-size:.85rem}
/* gate */
.gate{position:fixed;inset:0;z-index:100;background:linear-gradient(165deg,#ffe9d6,#ffd9c7 55%,#ffe7f0);display:flex;align-items:center;justify-content:center;padding:24px}
.gate .box{background:#fff;border-radius:28px;box-shadow:0 24px 60px rgba(255,120,80,.28);padding:44px 34px;max-width:400px;width:100%;text-align:center}
.gate .moon{width:64px;height:64px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffe3a1,var(--sun));display:flex;align-items:center;justify-content:center;font-size:32px;margin:0 auto 16px;box-shadow:0 8px 20px rgba(255,202,75,.5)}
.gate h2{font-size:1.5rem;margin-bottom:6px}
.gate p{color:var(--muted);font-size:.98rem;margin-bottom:20px}
.gate input{width:100%;padding:14px 18px;border:2px solid var(--line);border-radius:14px;font-family:'Nunito',sans-serif;font-size:1.05rem;font-weight:700;text-align:center;outline:none}
.gate input:focus{border-color:var(--coral)}
.gate button{margin-top:16px;width:100%;background:var(--coral);color:#fff;border:none;cursor:pointer;font-family:'Fredoka',sans-serif;font-weight:600;font-size:1.05rem;padding:15px;border-radius:14px;box-shadow:0 6px 0 0 var(--coral-dark)}
.gate button:active{transform:translateY(3px);box-shadow:0 3px 0 0 var(--coral-dark)}
.gate .err{color:#d64545;font-size:.9rem;margin-top:12px;min-height:18px;font-weight:700}
.gate .back{display:inline-block;margin-top:18px;color:var(--muted);text-decoration:none;font-size:.9rem;font-weight:700}
@media(max-width:600px){.detail{padding-left:16px;padding-right:16px}.dcard{padding:24px 20px 28px}}

/* rich doc content */
.dcard .intro{color:#5f4d57;font-size:1.08rem;line-height:1.72;margin-bottom:6px}
.dcard h2.sec{font-family:'Fredoka',sans-serif;font-size:1.24rem;line-height:1.25;margin:26px 0 10px;color:var(--ink);padding-top:4px}
.dcard h3.sub{font-family:'Fredoka',sans-serif;font-size:1.04rem;margin:18px 0 6px;color:var(--coral-dark)}
.dcard p{color:#5f4d57;font-size:1.04rem;line-height:1.72;margin-bottom:13px}
.dcard ul.dl{list-style:none;display:flex;flex-direction:column;gap:9px;margin:6px 0 16px}
.dcard ul.dl li{position:relative;padding-left:26px;color:#4f3f48;font-size:1.01rem;line-height:1.55}
.dcard ul.dl li::before{content:"✓";position:absolute;left:0;top:0;color:var(--coral);font-weight:800}
.photos{display:flex;flex-direction:column;gap:12px;margin:2px 0 20px}
.photos .ph{width:100%;border-radius:18px;overflow:hidden;background:#faf3ec;border:1px solid var(--line);display:flex;align-items:center;justify-content:center}
.photos .ph img{width:100%;max-height:440px;object-fit:contain;display:block}

/* sample reports */
.reports{margin:26px 0 4px;padding:20px 22px;background:#eef8fb;border:1px solid #cfeaf3;border-radius:18px}
.reports h2{font-family:'Fredoka',sans-serif;font-size:1.12rem;margin-bottom:4px;color:var(--ink)}
.reports .sub{color:var(--muted);font-size:.9rem;margin-bottom:14px}
.reports .rlist{display:flex;flex-direction:column;gap:10px}
.reports a{display:flex;align-items:center;gap:13px;background:#fff;border:2px solid var(--line);border-radius:14px;padding:13px 16px;text-decoration:none;color:var(--ink);font-weight:700;transition:transform .14s,border-color .14s}
.reports a:hover{border-color:var(--sky);transform:translateY(-2px)}
.reports a .pdf{flex:none;width:34px;height:34px;border-radius:9px;background:#ffe6de;color:var(--coral-dark);display:flex;align-items:center;justify-content:center;font-family:'Fredoka',sans-serif;font-weight:700;font-size:.62rem;letter-spacing:.3px}
.reports a .nm{font-size:1rem;line-height:1.25}
.reports a .dl{margin-left:auto;flex:none;color:#1f8fb8;font-weight:800;font-size:1.05rem}
.scard .rbadge{position:absolute;top:14px;right:14px;background:#eef8fb;color:#1f8fb8;border:1px solid #cfeaf3;font-family:'Fredoka',sans-serif;font-size:.6rem;text-transform:uppercase;letter-spacing:.4px;padding:3px 8px;border-radius:999px;font-weight:700}
.c-teal .st{background:#d7f6ef;color:#178a76}.c-teal .go{color:#178a76}.c-teal .dtag{background:#d7f6ef;color:#178a76}

/* factsheets */
.fsintro{text-align:center;max-width:680px;margin:0 auto 8px;color:var(--muted);font-size:1.02rem}
.fscat{padding:20px 0 4px}
.fslist{display:flex;flex-direction:column;gap:10px}
.fscard{display:flex;align-items:center;gap:14px;background:#fff;border:2px solid var(--line);border-radius:16px;padding:15px 18px;text-decoration:none;color:var(--ink);transition:transform .14s,border-color .14s}
.fscard:hover{transform:translateY(-2px);border-color:#f0b79e}
.fscard .pf{flex:none;width:38px;height:38px;border-radius:10px;background:#ffe6de;color:var(--coral-dark);display:flex;align-items:center;justify-content:center;font-family:'Fredoka',sans-serif;font-weight:700;font-size:.62rem;letter-spacing:.3px}
.fscard .nm{font-size:1rem;line-height:1.3;flex:1}
.fscard .dl{margin-left:auto;flex:none;color:#1f8fb8;font-weight:800;font-size:1.1rem}
.fscta{background:linear-gradient(160deg,#e9f8fd,#fff2ec);border:2px solid #ffe0d3;border-radius:24px;padding:32px 28px;text-align:center;margin-top:12px}
.fscta p{color:#6f5b64;margin-bottom:16px;font-size:1.02rem}
