/* Pippin the Yorkie — styles */
@font-face{font-family:"Fredoka";src:url("/assets/fonts/fredoka-v1.woff2") format("woff2");font-weight:400 700;font-display:swap}
@font-face{font-family:"Nunito";src:url("/assets/fonts/nunito-v1.woff2") format("woff2");font-weight:400 800;font-display:swap}

:root{
  --cream:#fff7ea; --paper:#fffdf8; --sand:#f6e6cb; --sand-2:#efd9b4;
  --tan:#d9a55b; --gold:#e8b04b; --gold-soft:#f6d48a; --caramel:#8a5a1f; --rust:#a0521d;
  --steel:#3d5a75; --steel-2:#4b6f8f; --steel-deep:#24405a; --navy:#1b2f43;
  --ink:#1e2a36; --muted:#5a4c3c; --blush:#f2b3a3;
  --radius:24px; --radius-sm:14px;
  --shadow:5px 5px 0 var(--ink);
  --shadow-lg:8px 8px 0 var(--ink);
  --font-display:"Fredoka","Baloo 2","Trebuchet MS",system-ui,sans-serif;
  --font-body:"Nunito",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --wrap:1180px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;font-family:var(--font-body);font-size:1.0625rem;line-height:1.6;color:var(--ink);background:var(--cream);overflow-x:clip;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 64 64'%3E%3Cg fill='%23d9a55b' fill-opacity='.09' transform='translate(16 16) scale(.5) rotate(-18 32 32)'%3E%3Cpath d='M32 33c-8.5 0-17 9.6-17 17.2 0 5.6 4.3 8.3 9 8.3 3.6 0 5.4-1.8 8-1.8s4.4 1.8 8 1.8c4.7 0 9-2.7 9-8.3C49 42.6 40.5 33 32 33z'/%3E%3Cellipse cx='13' cy='28' rx='6' ry='7.6'/%3E%3Cellipse cx='24.5' cy='16' rx='6.2' ry='8.4'/%3E%3Cellipse cx='39.5' cy='16' rx='6.2' ry='8.4'/%3E%3Cellipse cx='51' cy='28' rx='6' ry='7.6'/%3E%3C/g%3E%3C/svg%3E")}
img,svg{display:block;max-width:100%}
.sprite{position:absolute;width:0;height:0;overflow:hidden}
svg use{fill:currentColor}
a{color:var(--steel-deep);text-decoration-thickness:2px;text-underline-offset:3px}
a:hover{color:var(--rust)}
:focus-visible{outline:3px solid var(--steel-deep);outline-offset:3px;border-radius:8px;box-shadow:0 0 0 6px var(--gold-soft)}
h1,h2,h3{font-family:var(--font-display);line-height:1.05;margin:0 0 .5em;font-weight:700;letter-spacing:-.01em}
p{margin:0 0 1em}
.wrap{width:min(100% - 2.5rem, var(--wrap));margin-inline:auto}
.skip-link{position:absolute;left:1rem;top:-100px;z-index:100;background:var(--ink);color:var(--cream);padding:.6rem 1rem;border-radius:10px;font-weight:800}
.skip-link:focus{top:1rem;color:var(--cream)}

/* ---------- Header ---------- */
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,247,234,.96);backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:3px solid var(--ink)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:68px;flex-wrap:wrap}
.brand{display:inline-flex;align-items:center;gap:.6rem;text-decoration:none;color:var(--ink)}
.brand:hover{color:var(--ink)}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--gold);border:3px solid var(--ink);color:var(--ink);box-shadow:3px 3px 0 var(--ink);transition:transform .3s cubic-bezier(.3,1.6,.5,1)}
.brand-mark svg{width:24px;height:24px}
.brand:hover .brand-mark{transform:rotate(-14deg) scale(1.08)}
.brand-text{font-family:var(--font-display);font-weight:700;font-size:1.6rem;line-height:1;display:flex;flex-direction:column}
.brand-sub{font-size:.8rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--caramel);margin-top:2px}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:.25rem}
.site-nav a{display:block;padding:.5rem .85rem;border-radius:999px;font-family:var(--font-display);font-weight:600;font-size:1.02rem;color:var(--ink);text-decoration:none;transition:background .2s,transform .2s}
.site-nav a:hover{background:var(--gold-soft);color:var(--ink);transform:translateY(-1px)}
@media (max-width:860px){
  .header-inner{min-height:0;padding-top:.6rem;gap:.4rem}
  .site-nav{width:calc(100% + 2.5rem);margin-inline:-1.25rem;overflow-x:auto;scrollbar-width:none;-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 1.25rem,#000 calc(100% - 1.25rem),transparent)}
  .site-nav::-webkit-scrollbar{display:none}
  .site-nav ul{padding:0 1.25rem .55rem;width:max-content}
  .site-nav a{font-size:.95rem;padding:.4rem .75rem;background:var(--paper);border:2px solid var(--ink)}
}

/* ---------- Buttons ---------- */
.btn{--bg:var(--paper);display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:48px;padding:.7rem 1.25rem;border-radius:999px;border:3px solid var(--ink);background:var(--bg);color:var(--ink);font-family:var(--font-display);font-weight:600;font-size:1.08rem;line-height:1.1;text-decoration:none;cursor:pointer;box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,background .2s}
.btn svg{width:22px;height:22px;flex:none}
.btn:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--ink);color:var(--ink)}
.btn:active{transform:translate(3px,3px);box-shadow:2px 2px 0 var(--ink)}
.btn-gold{--bg:var(--gold)}
.btn-steel{--bg:var(--steel);color:#fff}
.btn-steel:hover{color:#fff}
.btn-ghost{--bg:var(--paper)}
.btn[aria-pressed="true"]{--bg:var(--steel-deep);color:var(--cream)}

/* ---------- Hero ---------- */
.hero{position:relative;overflow:hidden;padding:clamp(2.5rem,6vw,5.5rem) 0 clamp(3.5rem,7vw,6rem);
  background:radial-gradient(60% 70% at 85% 30%,rgba(232,176,75,.35),transparent 70%),radial-gradient(50% 60% at 0% 100%,rgba(61,90,117,.14),transparent 70%)}
.hero-grid{position:relative;display:grid;gap:3rem;align-items:center}
@media (min-width:900px){.hero-grid{grid-template-columns:1.1fr .9fr;gap:4rem}}
.eyebrow{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;font-size:.85rem;letter-spacing:.12em;text-transform:uppercase;color:var(--caramel);background:var(--paper);border:2px solid var(--ink);padding:.35rem .9rem .35rem .6rem;border-radius:999px;margin-bottom:1.4rem}
.eyebrow svg{width:26px;height:26px;color:#c0566b}
.hero-title{margin:0 0 1.2rem;display:flex;flex-direction:column;gap:.1em}
.ht-small{font-size:clamp(2.4rem,6.5vw,4.2rem);color:var(--steel-deep);font-weight:600}
.ht-big{position:relative;display:inline-block;align-self:flex-start;font-size:clamp(3.3rem,11vw,7.2rem);line-height:.95;color:var(--ink);transform:rotate(-2.5deg);transform-origin:left center;z-index:0;padding:0 .08em}
.ht-big::after{content:"";position:absolute;z-index:-1;left:-.06em;right:-.1em;bottom:.04em;height:.42em;background:var(--gold);border-radius:.3em .5em .25em .6em;transform:skewX(-8deg)}
.hero-lede{font-size:clamp(1.1rem,2.2vw,1.3rem);max-width:34em;color:var(--muted)}
.hero-lede strong{color:var(--ink)}
.hero-ctas{display:flex;flex-wrap:wrap;gap:.9rem;margin:1.8rem 0 1.6rem}
.hero-chips{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:0}
.hero-chips li{font-weight:700;font-size:.92rem;padding:.3rem .8rem;border-radius:999px;background:rgba(61,90,117,.1);color:var(--steel-deep);border:2px dashed rgba(36,64,90,.45)}

.hero-photo{position:relative;justify-self:center;width:min(100% - 1.5rem,420px)}
.polaroid{position:relative;margin:0;background:var(--paper);padding:16px 16px 0;border:3px solid var(--ink);border-radius:10px;box-shadow:var(--shadow-lg);transform:rotate(2.5deg)}
.polaroid-caption{font-family:var(--font-display);font-weight:500;font-size:1.25rem;text-align:center;padding:.85rem .5rem 1rem;color:var(--steel-deep)}
.tape{position:absolute;top:-16px;width:110px;height:32px;background:rgba(246,212,138,.85);border:1px solid rgba(138,90,31,.25);z-index:2}
.tape-l{left:-22px;transform:rotate(-28deg)}
.tape-r{right:-22px;transform:rotate(26deg)}
.photo{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;border-radius:6px;background:var(--sand)}

/* placeholders */
.ph{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.6rem;text-align:center;aspect-ratio:4/5;border-radius:6px;padding:1.2rem;color:var(--steel-deep);
  background:
    repeating-linear-gradient(135deg,rgba(61,90,117,.07) 0 14px,transparent 14px 28px),
    linear-gradient(160deg,#e6eef5,#d4e1ec);}
.ph::before{content:"";position:absolute;inset:10px;border:3px dashed rgba(36,64,90,.4);border-radius:6px;pointer-events:none}
.ph-icon{width:56px;height:56px;padding:12px;border-radius:50%;background:var(--paper);border:3px solid var(--steel-deep);color:var(--steel-deep);box-sizing:content-box}
.ph-title{font-family:var(--font-display);font-weight:700;font-size:1.35rem;line-height:1.1;margin:0}
.ph-note{font-size:.95rem;margin:0;max-width:18em;color:#2f4a63}
.ph--gold{background:repeating-linear-gradient(135deg,rgba(184,121,42,.09) 0 14px,transparent 14px 28px),linear-gradient(160deg,#fcefd2,#f6dfae);color:#6b4514}
.ph--gold::before{border-color:rgba(138,90,31,.4)}.ph--gold .ph-icon{border-color:#6b4514;color:#6b4514}.ph--gold .ph-note{color:#6b4514}.ph--gold .ph-badge{background:#6b4514}
.ph--blush{background:repeating-linear-gradient(135deg,rgba(160,82,29,.07) 0 14px,transparent 14px 28px),linear-gradient(160deg,#fbe6de,#f5cfc2);color:#7a3416}
.ph--blush::before{border-color:rgba(122,52,22,.35)}.ph--blush .ph-icon{border-color:#7a3416;color:#7a3416}.ph--blush .ph-note{color:#7a3416}.ph--blush .ph-badge{background:#7a3416}
.ph-badge{position:absolute;top:18px;left:18px;font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;background:var(--steel-deep);color:var(--cream);padding:.25rem .55rem;border-radius:6px}

.sticker-badge{position:absolute;right:-14px;bottom:56px;width:132px;height:132px;border-radius:50%;background:var(--gold);border:3px solid var(--ink);box-shadow:4px 4px 0 var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;transform:rotate(-12deg);z-index:3;text-align:center}
.sticker-badge::before{content:"";position:absolute;inset:6px;border-radius:50%;border:2px dashed rgba(30,42,54,.55)}
.sb-shield{width:38px;height:38px;color:var(--steel-deep);margin-bottom:4px}
.sb-text{font-family:var(--font-display);font-weight:700;font-size:1rem;line-height:1;text-transform:uppercase;letter-spacing:.03em}
@media (max-width:520px){.sticker-badge{width:104px;height:104px;right:-6px;bottom:48px}.sb-shield{width:28px;height:28px}.sb-text{font-size:.82rem}}

.hero-doodles .doodle{position:absolute;color:var(--tan);opacity:.55}
.d-paw1{width:54px;top:12%;left:4%;transform:rotate(-20deg)}
.d-bone1{width:70px;bottom:10%;left:42%;transform:rotate(25deg);color:var(--gold)!important}
.d-drum1{width:58px;top:8%;right:6%;transform:rotate(15deg);color:var(--rust)!important;opacity:.35!important}
.d-star1{width:30px;top:46%;left:48%;color:var(--gold)!important}
.d-paw2{width:40px;bottom:6%;right:4%;transform:rotate(18deg);color:var(--steel)!important;opacity:.3!important}
.d-zzz1{width:56px;top:22%;right:38%;color:var(--steel)!important;opacity:.35!important}
@media (max-width:899px){.d-star1,.d-zzz1,.d-drum1{display:none}.d-bone1{left:auto;right:8%;bottom:3%}}
@media (max-width:520px){.eyebrow{font-size:.72rem;letter-spacing:.08em}.hero-ctas .btn{flex:1 1 100%}}

/* ---------- Ticker ---------- */
.ticker{background:var(--steel-deep);color:var(--cream);border-block:3px solid var(--ink);overflow:hidden;padding:.85rem 0}
.ticker-track{display:flex;align-items:center;gap:1.6rem;width:max-content;font-family:var(--font-display);font-weight:600;font-size:1.5rem;text-transform:uppercase;letter-spacing:.06em}
.ticker-track svg{width:26px;height:26px;color:var(--gold)}

/* ---------- Sections ---------- */
.section{padding:clamp(4rem,9vw,7rem) 0;position:relative}
.kicker{display:inline-block;font-weight:800;font-size:.85rem;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);margin-bottom:.8rem}
.kicker--light{color:var(--gold-soft)}
.section-title{font-size:clamp(2.2rem,5.5vw,3.6rem)}
.section-head{max-width:44rem;margin-bottom:clamp(2.2rem,5vw,3.5rem)}
.section-lede{font-size:1.15rem;color:var(--muted)}
.section-head--light .section-title{color:var(--cream)}
.section-head--light .section-lede{color:#dbe6ef}
.card-title{font-size:1.6rem;margin-bottom:.2rem}
.card-sub{color:var(--muted);margin-bottom:1.4rem}
.fine-print{font-size:.9rem;color:var(--muted);margin:1.2rem 0 0;font-style:italic}

/* About */
.about-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:900px){.about-grid{grid-template-columns:1fr 1fr;gap:4.5rem}}
.about-copy p{font-size:1.15rem}
.about-card{background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:clamp(1.4rem,4vw,2.2rem);position:relative}
.bars{margin:0;display:grid;gap:1.1rem}
.bar-row{display:grid;gap:.35rem}
.bar-row dt{font-weight:800;font-size:.95rem}
.bar-row dd{margin:0;height:38px;background:var(--sand);border-radius:999px;border:2px solid var(--ink);position:relative}
.bar{position:absolute;inset:-2px auto -2px -2px;border-radius:999px;border:2px solid var(--ink);display:flex;align-items:center;padding-inline:.8rem;white-space:nowrap;transform-origin:left center}
.bar-label{font-family:var(--font-display);font-weight:600;font-size:.98rem}
.bar-size{width:18%;min-width:74px;background:var(--blush)}
.bar-attitude{width:calc(100% + 2px);background:var(--gold);border-radius:999px 0 0 999px;border-right:0}
.bar-chicken{width:calc(100% + 2px);background:var(--tan);border-radius:999px 0 0 999px;border-right:0}
.bar-attitude::after,.bar-chicken::after{content:"";position:absolute;right:-30px;top:50%;width:0;height:0;border-left:30px solid var(--ink);border-top:20px solid transparent;border-bottom:20px solid transparent;transform:translateY(-50%)}
.bar-attitude::before,.bar-chicken::before{content:"";position:absolute;right:-24px;top:50%;width:0;height:0;border-left:24px solid var(--gold);border-top:16px solid transparent;border-bottom:16px solid transparent;transform:translateY(-50%);z-index:1}
.bar-chicken::before{border-left-color:var(--tan)}

/* Favorites */
.favorites{background:linear-gradient(180deg,transparent,rgba(246,230,203,.7) 30%,rgba(246,230,203,.7) 70%,transparent)}
.fav-grid{list-style:none;margin:0;padding:0;display:grid;gap:1.8rem}
@media (min-width:760px){.fav-grid{grid-template-columns:repeat(3,1fr)}}
.fav-card{position:relative;background:var(--paper);border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.5rem 1.5rem 1.6rem;transition:transform .25s cubic-bezier(.3,1.5,.5,1),box-shadow .25s}
.fav-card:hover{transform:translate(-3px,-5px) rotate(-.6deg);box-shadow:12px 13px 0 var(--ink)}
.fav-art{border-radius:var(--radius-sm);border:2px solid var(--ink);margin-bottom:1.2rem;padding:.8rem 1rem .4rem;overflow:hidden}
.fav-chicken .fav-art{background:#fde7c4}
.fav-snacks .fav-art{background:#f8e2d6}
.fav-naps .fav-art{background:#dde7f0}
.fav-art svg{width:100%;height:auto}
.fav-rank{position:absolute;top:-16px;right:18px;background:var(--ink);color:var(--gold-soft);font-family:var(--font-display);font-weight:600;font-size:.95rem;padding:.3rem .8rem;border-radius:999px;transform:rotate(4deg)}
.fav-card h3{font-size:2rem;margin-bottom:.35rem}
.fav-card p{color:var(--muted);margin-bottom:.9rem}
.fav-tag{display:inline-block;margin:0!important;font-weight:800;font-size:.88rem;color:var(--ink)!important;background:var(--gold-soft);border-radius:8px;padding:.25rem .6rem}

/* Security */
.security{background:var(--steel-deep);color:var(--cream);
  background-image:repeating-linear-gradient(-45deg,rgba(255,255,255,.035) 0 22px,transparent 22px 44px);border-block:3px solid var(--ink)}
.security-grid{display:grid;gap:2.2rem;align-items:start}
@media (min-width:900px){.security-grid{grid-template-columns:.95fr 1.05fr;gap:3rem}}
.id-card{background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:20px;box-shadow:8px 8px 0 #0f1c28;overflow:hidden;transform:rotate(-1.5deg);position:relative}
.id-card::before{content:"";position:absolute;top:12px;left:50%;width:56px;height:10px;margin-left:-28px;border-radius:99px;background:var(--steel-deep);box-shadow:inset 0 2px 0 rgba(0,0,0,.35)}
.id-head{display:flex;align-items:center;gap:.9rem;background:var(--gold);padding:2rem 1.4rem 1rem;border-bottom:3px solid var(--ink)}
.id-seal{width:48px;height:48px;color:var(--steel-deep);flex:none}
.id-org{margin:0;font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.id-title{margin:0;font-size:1.8rem}
.id-body{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1.2rem;padding:1.4rem}
@media (max-width:440px){.id-body{grid-template-columns:104px minmax(0,1fr);gap:.9rem;padding:1.1rem}.id-body .ph-badge,.id-body .ph-note{display:none}.id-body .ph-title{font-size:.85rem}.id-fields dd{font-size:1rem}}
.id-body .ph{aspect-ratio:3/4;padding:.6rem;border-radius:10px;border:2px solid var(--ink)}
.id-body .ph::before{inset:6px;border-width:2px}
.id-body .ph-icon{width:30px;height:30px;padding:8px;border-width:2px}
.id-body .ph-title{font-size:1rem}
.id-body .ph-note{font-size:.8rem}
.id-body .photo{aspect-ratio:3/4;border-radius:10px;border:2px solid var(--ink)}
.id-fields{margin:0;display:grid;gap:.45rem;align-content:start}
.id-fields div{display:grid;gap:0;border-bottom:1px dashed #cdb894;padding-bottom:.35rem}
.id-fields dt{font-size:.72rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--caramel)}
.id-fields dd{margin:0;font-family:var(--font-display);font-weight:600;font-size:1.08rem;line-height:1.2}
.id-foot{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:0 1.4rem 1.3rem}
.barcode{flex:1;max-width:220px;height:44px;background:repeating-linear-gradient(90deg,var(--ink) 0 3px,transparent 3px 5px,var(--ink) 5px 6px,transparent 6px 10px,var(--ink) 10px 14px,transparent 14px 16px)}
.id-stamp{font-family:var(--font-display);font-weight:700;text-transform:uppercase;color:#b3261e;border:3px solid #b3261e;border-radius:10px;padding:.2rem .7rem;line-height:1.05;text-align:center;transform:rotate(-10deg);font-size:1.1rem}
.id-stamp small{font-size:.7rem;letter-spacing:.1em}

.report{background:var(--paper);color:var(--ink);border:3px solid var(--ink);border-radius:20px;box-shadow:8px 8px 0 #0f1c28;padding:1.6rem clamp(1.2rem,3vw,2rem) 1.6rem;position:relative}
.report::before{content:"";position:absolute;top:-16px;left:50%;width:110px;height:30px;margin-left:-55px;background:#9aa7b4;border:3px solid var(--ink);border-radius:10px 10px 6px 6px}
.report-head{border-bottom:3px solid var(--ink);margin-bottom:.6rem;padding-bottom:.8rem}
.report-title{font-size:1.75rem;margin:0}
.report-meta{margin:.2rem 0 0;font-size:.9rem;color:var(--muted);font-weight:700}
.threats{list-style:none;margin:0;padding:0}
.threats li{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.4rem 1rem;padding:.75rem 0;border-bottom:2px dashed #e2cfae}
.threat-name{font-weight:700}
.lvl{font-family:var(--font-display);font-weight:600;font-size:.9rem;padding:.2rem .7rem;border-radius:999px;border:2px solid var(--ink);white-space:nowrap}
.lvl-red{background:#b3261e;color:#fff}
.lvl-amber{background:#f2c14e;color:var(--ink)}
.lvl-blue{background:#cfe0ee;color:var(--ink)}
.lvl-green{background:#2e6f47;color:#fff}
.report-summary{margin-top:1.1rem;background:var(--sand);border-radius:12px;padding:.9rem 1.1rem}
.report-summary p{margin:.15rem 0}
.sec-oath{margin:3.2rem auto 0;max-width:46rem;text-align:center}
.sec-oath svg{width:40px;height:40px;margin:0 auto .8rem;color:var(--gold)}
.sec-oath p{font-family:var(--font-display);font-weight:500;font-size:clamp(1.35rem,3vw,1.85rem);line-height:1.3;color:var(--cream);margin-bottom:.5rem}
.oath-sign{font-weight:800;letter-spacing:.14em;text-transform:uppercase;font-size:.82rem;color:var(--gold-soft)}

/* Snack-o-meter */
.meter-section{background:radial-gradient(70% 60% at 100% 0%,rgba(232,176,75,.25),transparent 70%)}
.meter-grid{display:grid;gap:2.5rem;align-items:center}
@media (min-width:900px){.meter-grid{grid-template-columns:.85fr 1.15fr;gap:4rem}}
.meter-privacy{display:flex;gap:.6rem;align-items:center;font-weight:700;font-size:.95rem;color:var(--steel-deep);background:rgba(61,90,117,.1);border-radius:12px;padding:.6rem .9rem;max-width:30rem}
.meter-privacy svg{width:22px;height:22px;flex:none}
.meter-card{position:relative;background:var(--paper);border:3px solid var(--ink);border-radius:28px;box-shadow:var(--shadow-lg);padding:clamp(1.3rem,4vw,2.2rem);text-align:center;transition:background .6s}
.gauge-wrap{position:relative;max-width:380px;margin:0 auto}
.gauge{width:100%;height:auto;overflow:visible}
#gauge-fill{transition:stroke-dashoffset .9s cubic-bezier(.3,1.3,.5,1)}
.needle{transform-origin:120px 125px;transform:rotate(-68deg);transition:transform .9s cubic-bezier(.3,1.5,.5,1)}
.g-lbl{font-family:var(--font-body);font-weight:800;font-size:11px;fill:var(--muted);text-transform:uppercase;letter-spacing:.08em}
.meter-readout{display:flex;flex-direction:column;align-items:center;margin-top:.4rem}
.meter-num{font-family:var(--font-display);font-weight:700;font-size:3.2rem;line-height:1}
.meter-label{font-weight:800;font-size:.8rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.meter-mood{min-height:3.2em;font-family:var(--font-display);font-weight:500;font-size:1.2rem;color:var(--steel-deep);margin:.9rem auto 1.1rem;max-width:26em}
.meter-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}
@media (max-width:520px){.meter-actions{display:grid;grid-template-columns:1fr 1fr;gap:.7rem}.meter-actions .btn{font-size:1rem;padding:.6rem .7rem;gap:.4rem}.meter-actions #nap-btn{grid-column:1/-1}}
.meter-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin:1.6rem 0 0}
.meter-stats div{background:var(--sand);border-radius:14px;padding:.6rem .4rem}
.meter-stats dt{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.meter-stats dd{margin:0;font-family:var(--font-display);font-weight:700;font-size:1.6rem}
.meter-card.bump .meter-num{animation:bump .5s cubic-bezier(.3,1.8,.5,1)}
@keyframes bump{40%{transform:scale(1.25) rotate(-4deg)}}
.nap-overlay{position:absolute;inset:0;pointer-events:none;opacity:0;transition:opacity .6s}
.nap-z{position:absolute;width:44px;color:var(--steel-2)}
.nap-z.z1{top:10%;right:6%}
.nap-z.z2{top:-4%;right:22%;width:30px}
.nap-moon{position:absolute;top:2%;left:6%;width:40px;color:var(--gold)}
.meter-card.napping{background:#e4ecf3}
.meter-card.napping .nap-overlay{opacity:1}
.meter-card.napping .gauge{opacity:.55;filter:saturate(.4)}
.noscript-note{margin-top:1rem;font-weight:700}
.fx{position:absolute;pointer-events:none;width:36px;height:36px;color:var(--rust);z-index:5}

/* Gallery */
.gallery{background:linear-gradient(180deg,transparent,rgba(61,90,117,.08))}
.gallery-grid{list-style:none;margin:0;padding:0;display:grid;gap:1.2rem;grid-template-columns:repeat(2,minmax(0,1fr))}
@media (min-width:760px){.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:1.6rem}}
.g-item{margin:0}
.g-tile{position:relative;display:block;width:100%;padding:10px 10px 0;background:var(--paper);border:3px solid var(--ink);border-radius:12px;box-shadow:var(--shadow);transition:transform .25s cubic-bezier(.3,1.5,.5,1),box-shadow .25s;text-align:left;font:inherit;color:inherit}
.g-item:nth-child(3n+1) .g-tile{transform:rotate(-1.6deg)}
.g-item:nth-child(3n+2) .g-tile{transform:rotate(1.2deg)}
.g-item:nth-child(3n) .g-tile{transform:rotate(-.6deg)}
button.g-tile{cursor:zoom-in}
.g-tile:hover,button.g-tile:focus-visible{transform:rotate(0) translateY(-4px) scale(1.02);box-shadow:9px 9px 0 var(--ink)}
.g-tile .photo,.g-tile .ph{aspect-ratio:1/1;border-radius:6px}
.g-tile .ph{padding:1rem}
.g-tile .ph-icon{width:34px;height:34px;padding:9px}
.g-tile .ph-title{font-size:1.1rem}
.g-tile .ph-note{font-size:.85rem}
.g-cap{display:block;font-family:var(--font-display);font-weight:500;font-size:1.02rem;padding:.6rem .3rem .75rem;color:var(--steel-deep);line-height:1.25}
@media (max-width:520px){.g-tile .ph-note{display:none}.g-tile .ph--gold{background:repeating-linear-gradient(135deg,rgba(184,121,42,.09) 0 14px,transparent 14px 28px),linear-gradient(160deg,#fcefd2,#f6dfae);color:#6b4514}
.ph--gold::before{border-color:rgba(138,90,31,.4)}.ph--gold .ph-icon{border-color:#6b4514;color:#6b4514}.ph--gold .ph-note{color:#6b4514}.ph--gold .ph-badge{background:#6b4514}
.ph--blush{background:repeating-linear-gradient(135deg,rgba(160,82,29,.07) 0 14px,transparent 14px 28px),linear-gradient(160deg,#fbe6de,#f5cfc2);color:#7a3416}
.ph--blush::before{border-color:rgba(122,52,22,.35)}.ph--blush .ph-icon{border-color:#7a3416;color:#7a3416}.ph--blush .ph-note{color:#7a3416}.ph--blush .ph-badge{background:#7a3416}
.ph-badge{display:none}.g-cap{font-size:.92rem}}
.gallery-note{display:flex;gap:.8rem;align-items:flex-start;margin-top:2.4rem;background:var(--paper);border:3px dashed var(--steel);border-radius:16px;padding:1rem 1.2rem;max-width:46rem;color:var(--steel-deep);font-weight:600}
.gallery-note svg{width:30px;height:30px;flex:none;color:var(--steel)}
.gallery-note p{margin:0}

/* Lightbox */
.lightbox{border:3px solid var(--ink);border-radius:18px;padding:0;background:var(--paper);max-width:min(92vw,1000px);max-height:92vh;box-shadow:var(--shadow-lg);overflow:visible}
.lightbox::backdrop{background:rgba(27,47,67,.82)}
.lb-figure{margin:0;padding:12px}
.lb-img{max-width:100%;max-height:calc(92vh - 110px);margin:0 auto;border-radius:8px;object-fit:contain}
.lb-cap{text-align:center;font-family:var(--font-display);font-size:1.15rem;padding:.7rem 2.5rem .3rem;color:var(--steel-deep)}
.lightbox button{position:absolute;width:48px;height:48px;border-radius:50%;border:3px solid var(--ink);background:var(--gold);color:var(--ink);font-size:2rem;line-height:1;cursor:pointer;box-shadow:3px 3px 0 var(--ink);display:grid;place-items:center;padding:0 0 4px}
.lb-close{top:-18px;right:-18px}
.lb-prev{left:-18px;top:50%;margin-top:-24px}
.lb-next{right:-18px;top:50%;margin-top:-24px}
@media (max-width:600px){.lb-close{right:6px;top:6px}.lb-prev{left:6px}.lb-next{right:6px}}

/* Footer */
.site-footer{position:relative;background:var(--navy);color:#e3ebf2}
.footer-scallop{position:absolute;left:0;right:0;top:-22px;height:24px;background:radial-gradient(circle at 20px 24px,var(--navy) 19px,transparent 20px) 0 0/40px 24px repeat-x}
.footer-inner{padding:3.5rem 0 2rem;display:grid;gap:2rem}
@media (min-width:800px){.footer-inner{grid-template-columns:1fr 1.3fr}}
.footer-brand .brand-mark--lg{width:60px;height:60px;margin-bottom:1rem;box-shadow:3px 3px 0 #0c1824}
.footer-brand .brand-mark--lg svg{width:32px;height:32px}
.footer-title{font-family:var(--font-display);font-weight:700;font-size:1.9rem;color:var(--cream);margin:0 0 .2rem}
.footer-tag{color:var(--gold-soft);font-weight:700}
.footer-notes{list-style:none;margin:0;padding:0;display:grid;gap:.8rem;align-content:center}
.footer-notes li{display:flex;align-items:center;gap:.75rem}
.footer-notes svg{width:24px;height:24px;flex:none;color:var(--gold)}
.footer-legal{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.16);padding-top:1.4rem;margin:0;font-size:.92rem;color:#c3d1de;display:flex;flex-wrap:wrap;justify-content:space-between;gap:.8rem}
.site-footer a{color:var(--gold-soft)}
.site-footer a:hover{color:#fff}

/* 404 */
.nf{padding:clamp(2.5rem,7vw,5rem) 0 clamp(4rem,9vw,7rem);text-align:center;background:radial-gradient(50% 60% at 50% 30%,rgba(232,176,75,.3),transparent 70%)}
.nf-inner{max-width:44rem}
.nf-svg{width:min(100%,380px);height:auto;margin:0 auto 1rem;overflow:visible}
.nf-paws{color:var(--tan)}
.nf-404{font-family:var(--font-display);font-weight:700;font-size:44px;fill:var(--ink)}
.nf-title{font-size:clamp(2.6rem,8vw,4.8rem)}
.nf-lede{font-size:1.2rem;color:var(--muted)}
.nf-ctas{justify-content:center}

/* ---------- Motion (only when welcome) ---------- */
@media (prefers-reduced-motion:no-preference){
  .ticker-track{animation:marquee 32s linear infinite}
  @keyframes marquee{to{transform:translateX(-50%)}}
  .hero-doodles .doodle{animation:float 7s ease-in-out infinite}
  .d-bone1{animation-delay:-2s!important}.d-drum1{animation-delay:-4s!important}.d-paw2{animation-delay:-1s!important}.d-zzz1{animation-duration:4.5s!important}
  @keyframes float{50%{translate:0 -14px;rotate:6deg}}
  .sticker-badge{animation:wobble 5s ease-in-out infinite}
  @keyframes wobble{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(-4deg) scale(1.04)}}
  .hero-copy > *{animation:rise .8s cubic-bezier(.2,.8,.2,1) both}
  .hero-copy > :nth-child(2){animation-delay:.08s}.hero-copy > :nth-child(3){animation-delay:.16s}.hero-copy > :nth-child(4){animation-delay:.24s}.hero-copy > :nth-child(5){animation-delay:.32s}
  .polaroid--hero{animation:drop .9s .2s cubic-bezier(.3,1.4,.5,1) both}
  @keyframes rise{from{opacity:0;transform:translateY(22px)}}
  @keyframes drop{from{opacity:0;transform:translateY(-30px) rotate(-6deg)}}
  .ht-big::after{animation:swipe .7s .55s cubic-bezier(.6,0,.2,1) both;transform-origin:left}
  @keyframes swipe{from{scale:0 1}}
  .fav-art .steam path{animation:steam 2.6s ease-in-out infinite}
  .fav-art .steam path:nth-child(2){animation-delay:-.8s}.fav-art .steam path:nth-child(3){animation-delay:-1.6s}
  @keyframes steam{0%,100%{opacity:.25;translate:0 4px}50%{opacity:1;translate:0 -4px}}
  .fav-art .zzz path{animation:zz 3s ease-in-out infinite}
  .fav-art .zzz path:nth-child(2){animation-delay:-1s}.fav-art .zzz path:nth-child(3){animation-delay:-2s}
  @keyframes zz{0%,100%{opacity:.2}50%{opacity:1}}
  .meter-card.napping .nap-z{animation:znap 2.8s ease-in-out infinite}
  .meter-card.napping .nap-z.z2{animation-delay:-1.4s}
  @keyframes znap{0%{opacity:0;translate:-10px 20px}40%{opacity:1}100%{opacity:0;translate:14px -26px}}
  .nf-page{animation:nibble 2.4s ease-in-out infinite;transform-origin:160px 190px}
  @keyframes nibble{0%,100%{rotate:-2deg}50%{rotate:2deg}}
  .fx{animation:pop 1s ease-out forwards}
  @keyframes pop{0%{opacity:0;transform:translateY(0) scale(.4)}20%{opacity:1;transform:translateY(-10px) scale(1.1)}100%{opacity:0;transform:translateY(-90px) scale(.8) rotate(25deg)}}
  @supports (animation-timeline:view()){
    .reveal{animation:reveal linear both;animation-timeline:view();animation-range:entry 0% entry 70%}
    @keyframes reveal{from{opacity:0;translate:0 40px}}
    .bar{animation:grow linear both;animation-timeline:view();animation-range:entry 30% cover 40%}
    @keyframes grow{from{scale:0 1}}
  }
}
.visually-hidden{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ---------- Photos (from photos.json) ---------- */
picture{display:block}
.fav-art--photo{position:relative;padding:0;background:var(--sand)!important}
.fav-art--photo .photo{aspect-ratio:4/3;border-radius:0}
.fav-sticker{position:absolute;right:10px;bottom:10px;display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:var(--gold);border:3px solid var(--ink);box-shadow:3px 3px 0 var(--ink);color:var(--ink)}
.fav-sticker svg{width:24px;height:24px}
.fav-naps .fav-sticker{background:#cfe0ee}
.fav-snacks .fav-sticker{background:var(--blush)}
.field-photos{margin-top:clamp(2.4rem,5vw,3.5rem)}
.field-title{display:flex;align-items:center;gap:.6rem;color:var(--cream);font-size:clamp(1.4rem,3vw,1.8rem);margin-bottom:1.4rem}
.field-title svg{width:30px;height:30px;color:var(--gold-soft)}
.field-grid{list-style:none;margin:0;padding:0;display:grid;gap:2rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:700px){.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:2.6rem}}
.polaroid--field{transform:rotate(-1.4deg);max-width:460px;margin-inline:auto;box-shadow:8px 8px 0 #0f1d2b}
.field-grid li:nth-child(2n) .polaroid--field{transform:rotate(1.6deg)}
.polaroid--field .photo{aspect-ratio:4/3}
.polaroid--field .polaroid-caption{font-size:1.1rem}
.gallery-grid--photos .g-tile .photo{aspect-ratio:4/5}
@media (min-width:1000px){.gallery-grid--photos{grid-template-columns:repeat(4,minmax(0,1fr))}}
.gallery-grid--photos .g-item:nth-child(4n+1) .g-tile{transform:rotate(-1.4deg)}
.gallery-grid--photos .g-item:nth-child(4n+2) .g-tile{transform:rotate(1.1deg)}
.gallery-grid--photos .g-item:nth-child(4n+3) .g-tile{transform:rotate(-.5deg)}
.gallery-grid--photos .g-item:nth-child(4n) .g-tile{transform:rotate(1.6deg)}
.gallery-grid--photos .g-tile:hover,.gallery-grid--photos button.g-tile:focus-visible{transform:rotate(0) translateY(-4px) scale(1.02)}
.gallery-hint{margin:2rem 0 0;text-align:center;color:var(--muted);font-weight:700}

/* ---------- Nap cam ---------- */
.nap-cam{margin-top:clamp(2.6rem,6vw,4rem);background:#dde7f0;border:3px solid var(--ink);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:clamp(1.2rem,3.5vw,2.2rem)}
.nap-cam-head{display:flex;gap:1rem;align-items:flex-start;margin-bottom:1.4rem}
.nap-cam-icon{flex:none;width:52px;height:52px;padding:11px;border-radius:50%;background:var(--steel-deep);color:var(--gold-soft);border:3px solid var(--ink)}
.nap-cam-title{font-size:clamp(1.6rem,3.6vw,2.2rem);margin:.1rem 0 .3rem;color:var(--steel-deep)}
.nap-cam-lede{margin:0;color:var(--ink);max-width:40rem}
.nap-clips{list-style:none;margin:0;padding:0;display:grid;gap:1.6rem;grid-template-columns:minmax(0,1fr)}
@media (min-width:640px){.nap-clips{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}}
.nap-clip{margin:0 auto;max-width:400px;background:var(--paper);border:3px solid var(--ink);border-radius:12px;box-shadow:var(--shadow);padding:12px 12px 0;transform:rotate(-1deg)}
.nap-clips li:nth-child(2n) .nap-clip{transform:rotate(1.2deg)}
.clip-frame{position:relative;border-radius:6px;overflow:hidden;background:var(--steel-deep)}
.clip{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover}
.clip--pillows{object-position:50% 45%}
.clip--teeth{object-position:30% 20%}
.clip-toggle{position:absolute;left:10px;bottom:10px;display:inline-flex;align-items:center;gap:.4rem;min-height:44px;padding:.45rem .95rem .45rem .75rem;border-radius:999px;border:3px solid var(--ink);background:var(--paper);color:var(--ink);font:800 .95rem/1 var(--font-body);box-shadow:3px 3px 0 var(--ink);cursor:pointer}
.clip-toggle:hover{background:var(--gold-soft)}
.clip-toggle svg{width:18px;height:18px;fill:currentColor}
.clip-toggle .ic-pause{display:none}
.is-playing .clip-toggle .ic-pause{display:block}
.is-playing .clip-toggle .ic-play{display:none}
.nap-clip figcaption{font-family:var(--font-display);font-weight:500;font-size:1.15rem;text-align:center;padding:.8rem .4rem 1rem;color:var(--steel-deep)}

/* photo focal points (from photos.json) */
.op-1{object-position:50% 30%}
.op-2{object-position:28% 45%}
.op-3{object-position:35% 42%}
.op-4{object-position:35% 52%}
.op-5{object-position:55% 35%}
.op-6{object-position:50% 45%}
.op-7{object-position:62% 30%}
.op-8{object-position:45% 40%}
.op-9{object-position:30% 50%}
.op-10{object-position:35% 40%}
.op-11{object-position:55% 40%}
.op-12{object-position:45% 50%}
