/* ProveHound v2 brand: receipt paper, verified green, hound amber */
:root{
  --bg:#f6f2e9;--surface:#fffcf5;--paper:#fffdf7;--ink:#16130f;--ink-2:#3b352d;--muted:#6a6155;--line:#e3dccd;--line-2:#d2c8b4;
  --brand:#0e6b45;--brand-deep:#0a4a31;--brand-ink:#fffcf5;--brand-soft:#e1eee4;
  --amber:#e8962e;--amber-deep:#9a5a0c;--amber-soft:#fbeed6;
  --good:#11653a;--good-soft:#e2f1e6;--warn:#9a5a0c;--warn-soft:#fbeed6;--bad:#b42318;--bad-soft:#fdeceb;
  --radius:12px;--shadow:0 1px 2px rgba(22,19,15,.05),0 10px 30px -12px rgba(22,19,15,.18);
  --display:"Bricolage Grotesque",ui-sans-serif,system-ui,sans-serif;
  --font:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --mono:"Atkinson Hyperlegible Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:17px/1.6 var(--font)}
a{color:var(--brand);text-underline-offset:3px}
img,svg{max-width:100%}
::selection{background:var(--amber-soft)}
.wrap{max-width:1120px;margin:0 auto;padding:0 16px}
.narrow{max-width:760px}.narrowp{max-width:640px}
h1,h2,h3{font-family:var(--display);line-height:1.08;letter-spacing:-.025em;margin:0 0 .45em;font-weight:750}
h1{font-size:clamp(2.1rem,6vw,3.6rem)}
h2{font-size:clamp(1.55rem,3.6vw,2.3rem)}
h3{font-size:1.15rem}
p{margin:0 0 1em}
.muted{color:var(--muted)}
.small{font-size:.88rem}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:99}
:focus-visible{outline:3px solid var(--amber);outline-offset:2px}

/* wordmark + header */
.wm{font-family:var(--display);font-weight:800;letter-spacing:-.035em;color:var(--ink)}
.wm b{color:var(--brand);font-weight:800}
.top{background:rgba(255,252,245,.86);backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}
.top-home{background:var(--bg);border-bottom-color:transparent;position:relative;backdrop-filter:none}
.top .wrap{display:flex;align-items:center;gap:16px;height:64px}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:1.25rem}
.logo svg{width:32px;height:32px;flex:none}
.top-home .logo{visibility:hidden}
.nav{display:flex;gap:2px;margin-left:auto;align-items:center}
.nav a{color:var(--ink-2);text-decoration:none;padding:8px 11px;border-radius:999px;font-weight:600;font-size:.94rem}
.nav a:hover,.nav a[aria-current=page]{background:var(--brand-soft);color:var(--brand-deep)}
.nav a[href="/claim/"]{border:1.5px solid var(--ink);color:var(--ink);margin-left:6px}
.nav a[href="/claim/"]:hover{background:var(--ink);color:var(--surface)}
.menu-btn{display:none;margin-left:auto;background:var(--surface);border:1.5px solid var(--line-2);border-radius:999px;padding:8px 14px;font:600 .95rem var(--font);cursor:pointer;color:var(--ink)}
@media (max-width:860px){
  .menu-btn{display:block}
  .nav{display:none;position:absolute;top:64px;left:0;right:0;background:var(--surface);flex-direction:column;align-items:stretch;padding:8px 16px 16px;border-bottom:1px solid var(--line);margin:0}
  .nav.open{display:flex}
  .nav a{padding:12px;border-radius:10px}
  .nav a[href="/claim/"]{margin:6px 0 0;text-align:center}
}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:2px solid var(--brand);background:var(--brand);color:var(--brand-ink);
  padding:11px 20px;border-radius:999px;font:700 1rem var(--font);text-decoration:none;cursor:pointer;min-height:46px;transition:transform .12s,background .12s}
.btn:hover{background:var(--brand-deep);border-color:var(--brand-deep)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--ink);border-color:var(--ink)}
.btn.ghost:hover{background:var(--ink);color:var(--surface)}
.btn.amber{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.btn.amber:hover{background:#f2a94b;border-color:#f2a94b}
.btn.small{padding:6px 14px;min-height:36px;font-size:.9rem}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.btn.danger{background:var(--bad);border-color:var(--bad)}

/* search bar */
.hero{padding:44px 0 28px}
.hero .sub{font-size:1.15rem;color:var(--ink-2);max-width:620px}
.searchbar{display:flex;align-items:center;gap:6px;background:var(--paper);border:1.5px solid var(--line-2);border-radius:999px;padding:6px 6px 6px 18px;
  box-shadow:var(--shadow);max-width:780px;transition:box-shadow .15s,border-color .15s}
.searchbar:focus-within{border-color:var(--ink);box-shadow:0 0 0 4px rgba(232,150,46,.22),var(--shadow)}
.sb-icon{display:flex;color:var(--muted);flex:none}
.searchbar input,.searchbar input[type=text],.searchbar input[type=search]{border:0;outline:0;background:transparent;box-shadow:none;font:1.08rem var(--font);padding:12px 8px;min-width:0;color:var(--ink);width:auto}
.searchbar input:focus{outline:none}
.searchbar input::placeholder{color:#8f8576}
.searchbar .q{flex:2}
.searchbar .near{flex:1;border-left:1.5px solid var(--line)!important;border-radius:0;padding-left:14px}
.searchbar input[type=search]::-webkit-search-cancel-button{display:none}
.nearme{flex:none;display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:999px;border:0;background:transparent;color:var(--brand);cursor:pointer}
.nearme:hover{background:var(--brand-soft)}
.nearme[disabled]{opacity:.5;cursor:wait}
.searchbar .go{min-width:112px}
.searchbar.big{max-width:820px;margin:0 auto}
.searchbar.big input{font-size:1.15rem;padding:15px 8px}
.searchbar.big .go{min-height:54px;padding:0 26px;font-size:1.05rem}
@media (max-width:640px){
  .searchbar,.searchbar.big{flex-wrap:wrap;border-radius:22px;padding:8px}
  .sb-icon{display:none}
  .searchbar .q{flex:1 1 100%;padding-left:10px;border-bottom:1.5px solid var(--line)!important}
  .searchbar .near{flex:1 1 auto;border-left:0!important;border-top:0!important;padding-left:10px}
  .searchbar .go,.searchbar.big .go{flex:1 1 100%;margin-top:4px}
}
.hero-ctas{display:flex;gap:10px;flex-wrap:wrap;margin-top:14px;align-items:center}
.chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.chip{border:1.5px solid var(--line-2);background:var(--paper);border-radius:999px;padding:6px 14px;font-size:.92rem;font-weight:600;color:var(--ink-2);text-decoration:none;cursor:pointer}
.chip:hover{border-color:var(--ink);color:var(--ink)}

/* home: open, centered */
.home{min-height:calc(100svh - 64px);display:flex;align-items:center;padding:24px 0 56px;position:relative;overflow:hidden;
  background:radial-gradient(900px 420px at 50% 8%,rgba(232,150,46,.16),transparent 70%),radial-gradient(700px 500px at 85% 100%,rgba(14,107,69,.10),transparent 70%),var(--bg)}
.home::before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:radial-gradient(rgba(22,19,15,.09) 1px,transparent 1px);background-size:22px 22px;mask-image:radial-gradient(ellipse at 50% 40%,#000 0%,transparent 70%)}
.home .wrap{text-align:center;max-width:880px;position:relative}
.brandmark{display:inline-flex;align-items:center;gap:16px;margin-bottom:22px}
.brandmark svg{width:76px;height:76px;filter:drop-shadow(0 8px 18px rgba(14,107,69,.28))}
.brandmark .wm{font-size:clamp(2.6rem,8vw,4.4rem);line-height:1}
.home h1{font-size:clamp(1.5rem,4vw,2.25rem);font-weight:700;margin:0 0 8px}
.home h1 em{font-style:normal;color:var(--brand);background:linear-gradient(transparent 62%,var(--amber-soft) 62%)}
.home .sub{margin:0 auto 26px;color:var(--ink-2);font-size:1.08rem;max-width:560px}
.home .chips{justify-content:center}
.doors{display:inline-flex;gap:4px;padding:4px;background:var(--surface);border:1.5px solid var(--line);border-radius:999px;margin-bottom:16px}
.doors button{border:0;background:transparent;font:700 .92rem var(--font);color:var(--muted);padding:8px 18px;border-radius:999px;cursor:pointer}
.doors button[aria-selected=true]{background:var(--ink);color:var(--surface)}
.agentbox{max-width:780px;margin:0 auto;text-align:left;background:var(--ink);color:#efe7d6;border-radius:22px;padding:18px 20px;box-shadow:var(--shadow)}
.agentbox .ab-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.ab-label{font:700 .75rem var(--font);letter-spacing:.1em;text-transform:uppercase;color:var(--amber)}
.agentbox code{flex:1;min-width:200px;background:#2a251e;border:1px solid #3d362c;color:#fffaf0;padding:10px 12px;border-radius:10px;font-size:.88rem;overflow-x:auto;white-space:nowrap}
.agentbox .muted{color:#b9ae9a}.agentbox a{color:var(--amber)}
.agentbox .btn{background:var(--amber);border-color:var(--amber);color:var(--ink)}
.stamps{list-style:none;padding:0;margin:28px 0 0;display:flex;gap:10px 22px;flex-wrap:wrap;justify-content:center;font-size:.92rem;color:var(--ink-2)}
.stamps li{display:flex;align-items:center;gap:8px}
.stamps li::before{content:"";width:18px;height:18px;flex:none;border-radius:50%;background:var(--brand) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6.5 12.5l3.5 3.5 7.5-8' fill='none' stroke='%23fffcf5' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/14px no-repeat}

/* sections */
section{padding:72px 0}
.grid{display:grid;gap:28px}
.g3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.g2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.center-y{align-items:center}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:22px;box-shadow:var(--shadow)}
.band{background:var(--surface);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.band.dark{background:var(--ink);color:#efe7d6;border:0}
.band.dark h2{color:#fffaf0}.band.dark .kicker{color:var(--amber)}
.kicker{font:700 .78rem var(--font);letter-spacing:.12em;text-transform:uppercase;color:var(--brand);margin-bottom:10px}
.factor{display:flex;justify-content:space-between;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line-2)}
.factor:last-child{border-bottom:0}
.factor b{white-space:nowrap}
code,.code{font:.9rem var(--mono);background:#efe8da;border:1px solid var(--line);border-radius:8px}
code{padding:2px 6px}
pre.code{padding:16px;overflow:auto;white-space:pre}
pre.term{background:#0f0d0a;color:#e9e0cc;border:1px solid #2e281f;border-radius:16px;padding:22px;font-size:.92rem;line-height:1.7;box-shadow:0 20px 50px -20px rgba(0,0,0,.6);margin:0}

/* receipt */
.receipt{margin:0;background:var(--paper);font-family:var(--mono);font-size:.9rem;padding:24px 24px 30px;max-width:440px;justify-self:center;width:100%;
  box-shadow:0 18px 40px -18px rgba(22,19,15,.35);transform:rotate(1.2deg);position:relative;
  -webkit-mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 10px repeat-x;
  mask:linear-gradient(#000 0 0) top/100% calc(100% - 10px) no-repeat,conic-gradient(from -45deg at bottom,#0000,#000 1deg 89deg,#0000 90deg) bottom/16px 10px repeat-x}
.r-head{display:flex;justify-content:space-between;font-weight:600;letter-spacing:.14em;font-size:.75rem;color:var(--muted);border-bottom:2px dashed var(--line-2);padding-bottom:10px;margin-bottom:12px}
.r-pro{font-family:var(--display);font-size:1.25rem;font-weight:750;margin-bottom:12px;letter-spacing:-.01em}
.r-pro small{display:block;font:400 .82rem var(--mono);color:var(--muted);letter-spacing:0}
.rl{display:flex;align-items:baseline;gap:8px;padding:5px 0}
.rl .dots{flex:1;border-bottom:2px dotted var(--line-2);transform:translateY(-4px)}
.rl.total{border-top:2px dashed var(--line-2);margin-top:10px;padding-top:12px;font-weight:600}
.rl.total b{font-family:var(--display);font-size:1.9rem;color:var(--brand);line-height:1}
.r-foot{margin-top:14px;font-size:.76rem;color:var(--muted)}

/* coverage */
.states{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.st{border:1.5px dashed var(--line-2);border-radius:999px;padding:6px 14px;font-weight:600;font-size:.92rem;color:var(--muted)}
.st.live{border:1.5px solid var(--brand);background:var(--brand-soft);color:var(--brand-deep)}
.st i{font-style:normal;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;background:var(--brand);color:var(--surface);border-radius:999px;padding:1px 7px;margin-left:6px}

/* results */
.results{display:grid;gap:12px;margin-top:16px}
.pro{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:start}
@media (max-width:640px){.pro{grid-template-columns:auto 1fr}.pro .act{grid-column:1/-1;display:flex;gap:8px}.pro .act .btn{flex:1}}
.pro h3{margin:0 0 2px}.pro h3 a{color:var(--ink);text-decoration:none}.pro h3 a:hover{color:var(--brand)}
.meta{font-size:.9rem;color:var(--muted)}
.receipts{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.rc{display:inline-flex;align-items:center;gap:5px;font-size:.8rem;padding:4px 9px;border-radius:999px;background:var(--good-soft);color:var(--good);font-weight:700}
.rc.miss{background:#efe9dd;color:var(--muted);font-weight:500}
.rc.flag{background:var(--bad-soft);color:var(--bad)}
.rc svg{width:13px;height:13px}
.act{display:flex;flex-direction:column;gap:8px}
.ring{width:64px;height:64px;position:relative;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font:800 1.25rem var(--display)}
.ring.big{width:120px;height:120px}.ring.big b{font-size:2.3rem}
.ring small{position:absolute;bottom:-18px;left:0;right:0;text-align:center;font-size:.7rem;color:var(--muted);font-weight:600}
.tag{display:inline-block;font-size:.75rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand-deep);vertical-align:middle}
.tag.warn{background:var(--warn-soft);color:var(--warn)}
.filters{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-top:14px;font-size:.92rem}
.filters select{font:inherit;padding:7px 10px;border:1.5px solid var(--line-2);border-radius:999px;background:var(--paper);width:auto}
.filters label{display:inline;margin:0}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* forms */
form .row{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
label{display:block;font-weight:700;font-size:.9rem;margin:10px 0 4px}
input[type=text],input[type=email],input[type=tel],input[type=date],input[type=url],textarea,select{width:100%;font:1rem var(--font);padding:11px 13px;border:1.5px solid var(--line-2);border-radius:10px;background:var(--paper);color:var(--ink)}
textarea{min-height:96px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:3px solid rgba(232,150,46,.45);outline-offset:0;border-color:var(--ink)}
.hp{position:absolute;left:-5000px}
.note{padding:12px 14px;border-radius:10px;background:var(--brand-soft);color:var(--ink);margin:12px 0}
.note.warn{background:var(--warn-soft)}.note.bad{background:var(--bad-soft)}.note.good{background:var(--good-soft)}
.demo-banner{background:var(--amber-soft);border-bottom:1px solid #efd3a3;font-size:.9rem;padding:8px 0;text-align:center}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top}
.tablewrap{overflow-x:auto}
.stars{color:var(--amber-deep);letter-spacing:1px}
.hidden{display:none!important}
details{border-bottom:1px solid var(--line);padding:12px 0}details:last-child{border-bottom:0}
summary{cursor:pointer}

/* footer */
footer{background:var(--surface);border-top:1px solid var(--line);padding:40px 0 14px;font-size:.92rem}
footer .cols{display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
footer .cols>div>b{display:block;font-family:var(--display);margin-bottom:6px}
footer a{color:var(--ink-2);text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:var(--brand)}
footer .logo{margin-bottom:8px}
.sig{display:flex;align-items:center;justify-content:center;gap:8px;padding:18px 0 6px}
.sig a{display:inline;color:var(--ink-2);font-weight:600}
.heart{width:18px;height:18px;animation:beat 1.2s infinite;transform-origin:center}
@keyframes beat{0%,100%{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.18)}}
@media (prefers-reduced-motion:reduce){.heart{animation:none}*{transition:none!important}}
.crumbs{font-size:.88rem;color:var(--muted);margin:14px auto 10px}.crumbs a{color:var(--muted)}
.guide h2{margin-top:32px}.guide li{margin-bottom:6px}
.byline{display:flex;gap:10px;align-items:center;font-size:.9rem;color:var(--muted);margin:6px 0 18px}
@media (max-width:640px){section{padding:52px 0}.home{padding-top:20px;align-items:flex-start}.brandmark svg{width:56px;height:56px}.receipt{transform:none}}

/* ---- toolkit ---- */
.tk-hero{padding:48px 0 28px}
.tk-load{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}
.tk-load input{flex:1;min-width:220px;border-radius:999px!important;padding:12px 18px!important}
.tk-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;border-bottom:1.5px solid var(--line);padding-bottom:10px}
.tk-tabs button{border:1.5px solid var(--line-2);background:var(--paper);border-radius:999px;padding:9px 16px;font:700 .94rem var(--font);color:var(--ink-2);cursor:pointer}
.tk-tabs button[aria-selected=true]{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.tk-grid{display:grid;gap:24px;grid-template-columns:minmax(0,320px) minmax(0,1fr)}
@media (max-width:820px){.tk-grid{grid-template-columns:1fr}}
.tk-controls select,.tk-controls input[type=text]{margin-bottom:6px}
.tk-check{display:flex;align-items:center;gap:8px;margin-top:14px;font-weight:600}
.tk-legend{display:grid;gap:4px;margin:12px 0;font-size:.88rem;color:var(--ink-2)}
.dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:8px;vertical-align:middle}
.dot.g{background:#0e6b45}.dot.a{background:#e8962e}.dot.r{background:#c0392b}
.tk-stage{min-height:200px;display:flex;align-items:center;justify-content:center;border-radius:16px;padding:28px;margin-bottom:14px;
  background:repeating-conic-gradient(#efe8da 0 25%,#f7f2e7 0 50%) 0 0/22px 22px;border:1px solid var(--line)}
.tk-stage svg{max-width:100%;height:auto}
.dark-stage{background:#2a251e}
.canvas-stage{padding:16px}
.canvas-stage canvas{max-width:100%;max-height:520px;height:auto;box-shadow:var(--shadow);border-radius:6px}
.tk-code{font:.82rem/1.5 var(--mono)!important;background:#16130f!important;color:#efe7d6!important;border-color:#16130f!important;border-radius:12px!important}
.tk-actions{display:flex;gap:8px;margin:10px 0 18px}
.sign{max-width:360px;margin:0 auto 14px;background:#fffcf5;border:3px solid var(--ink);border-radius:18px;padding:22px;text-align:center}
.sign-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.sign-top .wm{font-size:1.3rem}
.sign-v{font:800 .72rem var(--font);letter-spacing:.14em;background:var(--brand);color:#fffcf5;padding:4px 9px;border-radius:999px}
.qr-box{background:#fff;border-radius:10px;padding:8px}.qr-box svg{width:100%;height:auto;display:block}
.sign-name{font:800 1.35rem var(--display);margin-top:10px}
.sign-score{color:var(--brand);font-weight:700}
.sign-cta{margin-top:10px;background:var(--amber);color:var(--ink);font-weight:800;border-radius:999px;padding:8px}
@media print{body.print-sign *{visibility:hidden}body.print-sign #qr-sign,body.print-sign #qr-sign *{visibility:visible}
  body.print-sign #qr-sign{position:fixed;inset:0;margin:auto;max-width:6.5in;max-height:9in;border-width:6px}}

/* ---- brand page ---- */
.brand-hero{display:flex;align-items:center;justify-content:center;gap:24px;padding:48px 24px;background:radial-gradient(500px 220px at 50% 0,rgba(232,150,46,.18),transparent 70%),var(--surface)}
.brand-hero .wm{font-size:clamp(2.4rem,7vw,4rem)}
.swatches{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(160px,1fr))}
.sw{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:grid;padding-bottom:12px}
.sw span{height:84px;margin-bottom:10px;border-bottom:1px solid var(--line)}
.sw b,.sw code,.sw small{margin:0 12px}.sw code{background:none;border:0;padding:0;font-size:.8rem;color:var(--muted)}.sw small{color:var(--muted);font-size:.8rem}

/* ---- Ask the Hound bot ---- */
.hound-fab{position:fixed;right:18px;bottom:18px;z-index:40;display:flex;align-items:center;gap:10px;background:var(--ink);color:#fffcf5;border:0;border-radius:999px;
  padding:8px 18px 8px 8px;font:700 .95rem var(--font);cursor:pointer;box-shadow:0 14px 34px -10px rgba(22,19,15,.55)}
.hound-fab svg{width:38px;height:38px;border-radius:12px}
.hound-fab:hover{transform:translateY(-2px)}
.hound-fab .ping{width:9px;height:9px;border-radius:50%;background:#2ecc71;box-shadow:0 0 0 0 rgba(46,204,113,.6);animation:ping 2s infinite}
@keyframes ping{0%{box-shadow:0 0 0 0 rgba(46,204,113,.55)}70%,100%{box-shadow:0 0 0 10px rgba(46,204,113,0)}}
.hound-panel{position:fixed;right:18px;bottom:84px;z-index:41;width:min(390px,calc(100vw - 24px));height:min(560px,calc(100svh - 120px));
  display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:22px;box-shadow:0 30px 60px -20px rgba(22,19,15,.45);overflow:hidden;
  transform-origin:bottom right;animation:popIn .18s ease-out}
@keyframes popIn{from{opacity:0;transform:scale(.94) translateY(8px)}to{opacity:1;transform:none}}
.hp-head{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--ink);color:#fffcf5}
.hp-head svg{width:34px;height:34px;border-radius:10px}.hp-head b{font-family:var(--display);font-size:1.05rem}.hp-head small{display:block;color:#b9ae9a;font-size:.78rem}
.hp-head button{margin-left:auto;background:none;border:0;color:#fffcf5;font-size:1.4rem;cursor:pointer;line-height:1}
.hp-log{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}
.msg{max-width:88%;padding:10px 13px;border-radius:16px;font-size:.95rem;line-height:1.45;white-space:pre-wrap}
.msg.bot{background:var(--paper);border:1px solid var(--line);border-bottom-left-radius:4px;align-self:flex-start}
.msg.me{background:var(--brand);color:#fffcf5;border-bottom-right-radius:4px;align-self:flex-end}
.msg a{color:inherit;font-weight:700}
.msg.typing{display:flex;gap:4px}.msg.typing i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:typing 1s infinite}
.msg.typing i:nth-child(2){animation-delay:.15s}.msg.typing i:nth-child(3){animation-delay:.3s}
@keyframes typing{0%,100%{opacity:.25;transform:translateY(0)}50%{opacity:1;transform:translateY(-3px)}}
.hp-pros{display:grid;gap:6px}.hp-pro{display:flex;justify-content:space-between;gap:8px;padding:8px 10px;border:1px solid var(--line);border-radius:12px;text-decoration:none;color:var(--ink);background:#fff}
.hp-pro b{color:var(--brand)}
.hp-sugs{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 8px}
.hp-sugs button{border:1.5px solid var(--line-2);background:var(--paper);border-radius:999px;padding:5px 11px;font:600 .82rem var(--font);cursor:pointer;color:var(--ink-2)}
.hp-form{display:flex;gap:6px;padding:10px;border-top:1px solid var(--line)}
.hp-form input{flex:1;border-radius:999px!important}
.hp-form .btn{min-height:42px;padding:0 16px}
.hp-note{font-size:.72rem;color:var(--muted);text-align:center;padding:0 10px 8px}
@media (prefers-reduced-motion:reduce){.hound-fab .ping,.hound-panel{animation:none}}

/* ---- motion that means something ---- */
.reveal .rl{opacity:0;transform:translateX(-6px);transition:opacity .35s,transform .35s}
.reveal.on .rl{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal .rl{opacity:1;transform:none;transition:none}}
.st.live i{animation:liveDot 2.4s ease-in-out infinite}
@keyframes liveDot{0%,100%{box-shadow:0 0 0 0 rgba(14,107,69,.45)}60%{box-shadow:0 0 0 7px rgba(14,107,69,0)}}

/* ---- claymation Hound dock ---- */
.hound-dock{position:fixed;right:6px;bottom:4px;z-index:40;width:210px;pointer-events:none}
.hound-dock>*{pointer-events:auto}
.hd-stage{display:block;width:100%;background:none;border:0;padding:0;cursor:pointer;-webkit-tap-highlight-color:transparent}
.hd-svg{display:block;width:100%;height:auto;overflow:visible;filter:drop-shadow(0 6px 10px rgba(22,19,15,.18))}
.hd-bubble{position:absolute;right:92px;bottom:118px;display:flex;align-items:center;gap:2px;background:#fffcf5;border:2px solid #16130f;border-radius:18px 18px 4px 18px;
  padding:3px 4px 3px 12px;box-shadow:0 6px 0 -1px #16130f;white-space:nowrap;transition:opacity .2s,transform .2s;transform-origin:bottom right}
.hd-ask{background:none;border:0;font:600 .86rem var(--font);color:var(--ink);cursor:pointer;padding:4px 2px}
.hd-ask b{font-family:var(--display);color:var(--brand)}
.hd-shoo{background:none;border:0;width:24px;height:24px;border-radius:50%;font-size:1.1rem;line-height:1;color:var(--muted);cursor:pointer}
.hd-shoo:hover{background:#efe8da;color:var(--ink)}
.hound-dock:not(.is-awake) .hd-bubble,.hound-dock.chatting .hd-bubble{opacity:0;transform:scale(.6);pointer-events:none}
.hound-panel{bottom:150px}

/* stop-motion: every loop uses stepped timing so it reads as hand-moved clay */
.hd-dog,.hd-head,.hd-ear,.hd-tail,.hd-body,.hd-lid,.hd-leg,.hd-house,.hd-peek,.hd-zzz text{transform-box:fill-box}
.hd-tail{transform-origin:0% 100%;animation:hdWag .7s steps(4) infinite}
@keyframes hdWag{0%,100%{transform:rotate(-14deg)}50%{transform:rotate(16deg)}}
.hd-body{transform-origin:50% 100%;animation:hdBreathe 2.6s steps(6) infinite}
@keyframes hdBreathe{0%,100%{transform:scale(1,1)}50%{transform:scale(1.02,1.045)}}
.hd-head{transform-origin:80% 90%;animation:hdHead 5.2s steps(8) infinite}
@keyframes hdHead{0%,60%,100%{transform:rotate(0)}68%{transform:rotate(-7deg)}80%{transform:rotate(4deg)}}
.hd-ear{transform-origin:15% 5%;animation:hdEar 5.2s steps(8) infinite}
@keyframes hdEar{0%,62%,100%{transform:rotate(0)}70%{transform:rotate(9deg)}84%{transform:rotate(-5deg)}}
.hd-lid{transform-origin:50% 0;transform:scaleY(0);animation:hdBlink 4.4s steps(2) infinite}
@keyframes hdBlink{0%,92%,100%{transform:scaleY(0)}94%,97%{transform:scaleY(2.2)}}
.hd-stage:hover .hd-tail,.hd-stage:focus-visible .hd-tail{animation-duration:.32s}
.hd-stage:hover .hd-dog{animation:hdHop .5s steps(5)}
@keyframes hdHop{0%,100%{transform:translateY(0)}40%{transform:translateY(-7px)}}

/* house hidden while he's out */
.hd-house{transform-origin:50% 100%;transform:scale(0);opacity:0}
.hd-peek,.hd-zzz{opacity:0}

/* going home: house pops up (squash), dog turns, trots right, shrinks into the door */
.is-going .hd-house,.is-home .hd-house,.is-waking .hd-house{opacity:1;transform:scale(1)}
.is-going .hd-house{animation:hdPop .5s steps(5) both}
@keyframes hdPop{0%{transform:scale(0,0)}60%{transform:scale(1.12,.86)}80%{transform:scale(.95,1.06)}100%{transform:scale(1)}}
.is-going .hd-dog{transform-origin:86px 150px;animation:hdGoHome 1.7s steps(14) .35s both}
@keyframes hdGoHome{0%{transform:translateX(0) scaleX(1)}8%{transform:translateX(0) scaleX(-1)}
  30%{transform:translate(30px,-4px) scaleX(-1)}45%{transform:translate(52px,0) scaleX(-1)}60%{transform:translate(76px,-4px) scaleX(-1)}
  82%{transform:translate(104px,2px) scaleX(-.62) scaleY(.62);opacity:1}100%{transform:translate(110px,6px) scaleX(-.3) scaleY(.3);opacity:0}}
.is-going .hd-leg{animation:hdTrot .24s steps(2) infinite}
@keyframes hdTrot{0%,100%{transform:rotate(-12deg)}50%{transform:rotate(12deg)}}
.is-going .hd-tail{animation-duration:.25s}

/* napping: dog gone, sleepy eyes in the doorway, z's float */
.is-home .hd-dog{opacity:0;transform:translateX(110px) scale(.3)}
.is-home .hd-peek{opacity:1}
.is-home .hd-peek circle{transform-origin:50% 50%;animation:hdSleepy 5s steps(3) infinite}
@keyframes hdSleepy{0%,70%,100%{transform:scaleY(1)}76%,96%{transform:scaleY(.15)}}
.is-home .hd-zzz{opacity:1}
.is-home .hd-zzz text{animation:hdZ 2.8s steps(7) infinite;opacity:0}
.is-home .hd-zzz text:nth-child(2){animation-delay:.5s}.is-home .hd-zzz text:nth-child(3){animation-delay:1s}
@keyframes hdZ{0%{opacity:0;transform:translate(0,6px)}25%{opacity:1}100%{opacity:0;transform:translate(8px,-10px)}}
.is-home .hd-stage:hover .hd-house{animation:hdKnock .4s steps(4)}
@keyframes hdKnock{0%,100%{transform:rotate(0)}30%{transform:rotate(-2.5deg)}70%{transform:rotate(2deg)}}

/* waking: he pops back out of the door and trots home spot */
.is-waking .hd-dog{transform-origin:86px 150px;animation:hdComeOut 1.4s steps(12) both}
@keyframes hdComeOut{0%{transform:translate(110px,6px) scale(.3);opacity:0}15%{opacity:1}
  40%{transform:translate(80px,-6px) scale(.9)}70%{transform:translate(30px,0) scale(1)}100%{transform:translate(0,0) scale(1)}}
.is-waking .hd-house{animation:hdShrink .5s steps(4) 1s both}
@keyframes hdShrink{to{transform:scale(0);opacity:0}}
.is-waking .hd-leg{animation:hdTrot .24s steps(2) infinite}

@media (max-width:640px){.hound-dock{width:150px}.hd-bubble{right:60px;bottom:84px}.hd-ask{font-size:.8rem}.hound-panel{bottom:112px}}
@media (prefers-reduced-motion:reduce){.hound-dock *{animation:none!important}.is-home .hd-dog{opacity:0}}
