:root{--bg:#fffaf0;--bg2:#fff1d6;--fg:#1d2a44;--muted:#4f5a72;--accent:#1b8a8f;--accent2:#ff7a59;--on-accent:#fff;--card:#fff;--line:rgba(29,42,68,.12);--fh:"Baloo 2",system-ui,sans-serif;--fb:"Nunito",system-ui,sans-serif;--r:24px;--btnr:999px;--hh:70px;--fbg:#1d2a44}
h1,h2,h3{font-weight:800;letter-spacing:-.01em}
.top{height:var(--hh);background:var(--bg);border-bottom:2px solid var(--line)}
.top .w,.dock ul{height:100%;display:flex;align-items:center;justify-content:space-between;gap:14px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--fg);font:800 1.35rem/1 var(--fh)}
.logo svg{width:46px;height:46px}.logo small{display:block;font:700 12px/1.3 var(--fb);color:var(--muted)}
.dcta.small{padding:10px 16px}.show-s{display:none}
.hero{padding:44px 0 70px;background:radial-gradient(circle at 90% 0,#ffe7a8,transparent 45%),radial-gradient(circle at 0 100%,#d4f3ee,transparent 40%)}
.intro{display:grid;grid-template-columns:1fr 260px;gap:30px;align-items:end;margin-bottom:30px}
.hero h1{font-size:clamp(2.3rem,4.6vw,3.9rem);line-height:1.02}.hero h1 span{color:var(--accent2)}
.dog{width:100%;max-width:260px}
.tail{transform-origin:206px 222px;animation:wag .5s ease-in-out infinite alternate}
@keyframes wag{from{transform:rotate(-14deg)}to{transform:rotate(16deg)}}
.head{transform-origin:150px 180px;animation:tilt 5s ease-in-out infinite}
@keyframes tilt{0%,60%,100%{transform:none}70%,85%{transform:rotate(-8deg)}}
.eyes{transform-origin:150px 108px;animation:blink 4.5s infinite}
@keyframes blink{0%,95%,100%{transform:none}97%{transform:scaleY(.1)}}
.tiles{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tile{position:relative;display:grid;grid-template-columns:110px 1fr;grid-template-rows:auto auto;column-gap:16px;align-items:center;min-height:150px;padding:22px 24px;border-radius:var(--r);background:var(--c);color:var(--fg);text-decoration:none;box-shadow:0 6px 0 rgba(29,42,68,.9);border:3px solid var(--fg);transition:transform .25s cubic-bezier(.3,1.6,.5,1),box-shadow .25s;animation:pop .6s cubic-bezier(.3,1.5,.5,1) both;animation-delay:calc(var(--i)*70ms + 150ms)}
@keyframes pop{from{opacity:0;transform:scale(.85) translateY(16px)}}
.tile:hover,.tile:focus-visible{transform:translateY(-5px) rotate(-1deg);box-shadow:0 11px 0 rgba(29,42,68,.9)}
.tile:active{transform:translateY(3px);box-shadow:0 3px 0 rgba(29,42,68,.9)}
.tile .art{grid-row:1/3;width:110px;height:92px}.tile .art svg{width:100%;height:100%}
.tt{font:800 1.6rem/1.05 var(--fh);align-self:end}.ts{font-weight:700;color:rgba(29,42,68,.75);align-self:start}
.go{position:absolute;right:18px;top:14px;font:800 1.4rem var(--fh);transition:transform .3s}.tile:hover .go{transform:translateX(5px)}
.tile:hover .bounce{animation:bnc .6s ease-in-out infinite alternate}@keyframes bnc{to{transform:translateY(-12px)}}
.tile:hover .snip{transform-origin:60px 60px;animation:snp .3s ease-in-out infinite alternate}@keyframes snp{to{transform:rotate(6deg)}}
.tile:hover .tassel{animation:tas .5s ease-in-out infinite alternate;transform-origin:100px 41px}@keyframes tas{to{transform:rotate(18deg)}}
.tile:hover .pawpop,.tile:hover .tk,.tile:hover .zz{animation:pp .5s ease-in-out infinite alternate;transform-box:fill-box;transform-origin:center}@keyframes pp{to{transform:scale(1.15)}}
.bub circle{animation:float 3s ease-in-out infinite}.bub circle:nth-child(2){animation-delay:-1s}.bub circle:nth-child(3){animation-delay:-2s}@keyframes float{50%{transform:translateY(-6px)}}
.dock{position:fixed;top:0;left:0;right:0;z-index:50;height:64px;background:rgba(255,250,240,.94);backdrop-filter:blur(10px);border-bottom:2px solid var(--line);transform:translateY(-110%);transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.dock.show{transform:none}
.dock ul{list-style:none;margin:0 auto;padding:0 16px;max-width:var(--wrap);justify-content:center;gap:8px}
.dock a{display:flex;align-items:center;gap:8px;padding:6px 12px 6px 6px;border-radius:14px;border:2px solid transparent;color:var(--fg);text-decoration:none;font-weight:800;font-size:14.5px;white-space:nowrap;transition:background .25s,border-color .25s}
.dock .mini{width:38px;height:32px;border-radius:10px;background:var(--c);display:grid;place-items:center;padding:3px}.dock .mini svg{width:100%;height:100%}
.dock a:hover{background:#fff}.dock a.on{background:#fff;border-color:var(--fg)}
html{scroll-padding-top:80px}
[tabindex="-1"]:focus{outline:none}
.sec{padding:84px 0}.sec.alt{background:var(--bg2)}
.shead{display:flex;gap:20px;align-items:center;margin-bottom:34px}.shead h2{margin:0 0 4px}.shead .lead{margin:0}
.badge{flex:none;width:96px;height:84px;border-radius:22px;background:var(--c);border:3px solid var(--fg);display:grid;place-items:center;padding:8px}
.plist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.plist li{display:flex;justify-content:space-between;gap:14px;align-items:center;background:var(--card);border:2px solid var(--line);border-radius:18px;padding:18px 20px}
.plist small{display:block;color:var(--muted);font-size:14.5px}.plist em{font:800 1.2rem var(--fh);font-style:normal;color:var(--accent);white-space:nowrap}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pcard{background:var(--card);border:3px solid var(--fg);border-radius:var(--r);padding:24px;box-shadow:0 6px 0 var(--c)}
.pcard .big{display:block;font:800 2.6rem/1 var(--fh);color:var(--accent);margin:8px 0}.pcard p{margin:0;color:var(--muted)}
.hint{margin:22px 0 0;font-weight:700}
.sched{display:grid;gap:12px}.sched div{display:grid;grid-template-columns:150px 1fr auto;gap:16px;align-items:center;background:var(--card);border-left:8px solid var(--c);border-radius:14px;padding:16px 20px}
.sched em{font-style:normal;font-weight:800;color:var(--accent)}
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.checks li{display:flex;gap:12px;align-items:flex-start;background:var(--card);border-radius:16px;padding:16px 18px;border:2px solid var(--line);font-weight:700}
.checks svg{flex:none;width:26px;height:26px;padding:4px;border-radius:50%;background:var(--c);color:var(--fg)}
.bookgrid{display:grid;grid-template-columns:1.2fr .8fr;gap:40px;align-items:start}
.fcard{background:var(--card);border:3px solid var(--fg);border-radius:var(--r);padding:26px;box-shadow:0 8px 0 var(--c)}.fcard .ok{margin-top:14px}
.addr{margin-top:22px;font-weight:700;line-height:2}.addr svg{display:inline;width:18px;height:18px;vertical-align:-3px;color:var(--accent)}
.back{display:inline-block;margin-top:30px;font-weight:800;color:var(--muted)}
.df .base{margin-top:16px}
@media(max-width:1000px){.tiles{grid-template-columns:1fr 1fr}.dock a span:not(.mini){display:none}.dock a{padding:6px}}
@media(max-width:700px){
 .intro{grid-template-columns:1fr 120px;gap:12px}.dog{max-width:120px}
 .tiles{gap:12px}
 .tile{grid-template-columns:1fr;grid-template-rows:auto;min-height:0;padding:16px 14px 16px;text-align:left}
 .tile .art{grid-row:auto;width:76px;height:62px;margin-bottom:6px}.tt{font-size:1.25rem}.ts{font-size:13.5px}.go{display:none}
 .plist,.cards3,.checks,.bookgrid{grid-template-columns:1fr}
 .sched div{grid-template-columns:1fr;gap:2px}
 .shead{align-items:flex-start}.badge{width:68px;height:60px;border-radius:16px}
 .hide-s{display:none}.show-s{display:inline}
 .dock{height:58px}.dock ul{justify-content:space-between;padding:0 8px;gap:2px}.dock .mini{width:42px;height:36px}
 .sec{padding:64px 0}
}
@media (prefers-reduced-motion:reduce){.tile{animation:none}.dock{transition:none}}
