/* ═══════════════════════════════════════════════════════════
   Shared by index.html, doghouse.html, gifts.html, levelup.html — the home page and the three tool pages.

   These 65 rules appeared as one unbroken run, in this exact order, in
   the inline <style> of every page listed above. Both halves of that
   matter.

   Identical on every member page is what makes it safe to move: no page
   gains a rule it did not already have. A first attempt pooled the rules
   shared by any four-or-more pages into one stylesheet every page
   loaded, which silently restyled the pages that had never had them —
   body{line-height:1.6} qualified on count alone, terms.html was not
   one of its pages, and terms.html went from 5719px to 10532px tall.

   Contiguous, and linked from the exact spot the run occupied, is what
   makes it safe to move it OUT. Extraction normally hoists rules to the
   front of the cascade, and anything the page overrode later then wins:
   pulling out .toc's base rule flipped it from static to sticky on
   mobile, and pulling out .tier-card's dropped background and box-shadow
   from its hover transition. Keeping the run whole and the <link> in
   position leaves document order exactly as it was.

   That is why this file is smaller than the full overlap between these
   pages. The rest of the shared CSS is interleaved with page-specific
   rules that override it, and cannot be moved without changing what
   those pages render.
   ═══════════════════════════════════════════════════════════ */

html{scroll-behavior:smooth;}
body{font-family:'Outfit',sans-serif;background:var(--cream);color:var(--charcoal);overflow-x:hidden;max-width:100vw;}
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:18px 60px;background:oklch(26.2% 0.064 5.4);border-bottom:1px solid var(--cream-a08);}
.nav-logo{font-family:'Fraunces',serif;font-size:19px;font-weight:700;color:var(--cream);text-decoration:none;flex-shrink:0;}
.nav-links{display:flex;gap:22px;list-style:none;align-items:center;}
.nav-links a{font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--cream-a72);text-decoration:none;transition:color 0.2s;white-space:nowrap;}
.nav-links a:hover,.nav-links a.active{color:var(--blush);}
#nav-saved-count{background:var(--rose);color:var(--cream-card);font-size:10px;font-weight:700;padding:2px 6px;border-radius:10px;margin-left:3px;display:none;vertical-align:middle;}
.btn-primary{background:var(--terra-fill);color:var(--cream);border:none;padding:15px 34px;font-family:'Outfit',sans-serif;font-size:14px;font-weight:500;letter-spacing:1px;cursor:pointer;text-decoration:none;transition:background 0.25s,transform 0.2s;display:inline-block;text-align:center;}
.btn-primary:hover{background:var(--deep-rose);transform:translateY(-2px);}
@keyframes shake{0%{transform:rotate(0);}15%{transform:rotate(-8deg);}30%{transform:rotate(8deg);}45%{transform:rotate(-5deg);}60%{transform:rotate(5deg);}75%{transform:rotate(-2deg);}90%{transform:rotate(2deg);}100%{transform:rotate(0);}}
.btn-primary.shaking{animation:shake 0.55s ease;}
section,.live-section{padding:110px 80px;}
.section-tag{font-size:11px;font-weight:500;letter-spacing:4px;text-transform:uppercase;color:var(--rose);margin-bottom:14px;}
.section-title{font-family:'Fraunces',serif;font-size:clamp(30px,3.8vw,52px);font-weight:900;line-height:1.1;color:var(--charcoal);margin-bottom:18px;}
.section-title em{font-style:italic;color:var(--rose);}
.section-sub{font-size:15px;font-weight:300;color:var(--warm-grey);line-height:1.8;max-width:520px;margin-bottom:30px;}
.live-layout{display:grid;grid-template-columns:290px 1fr;gap:60px;align-items:start;}
.live-sidebar{position:sticky;top:100px;}
.search-box{display:flex;flex-direction:column;gap:11px;margin-bottom:14px;}
.search-input,.search-select{width:100%;padding:11px 15px;border:1.5px solid var(--terra-a20);background:var(--cream-card);color:var(--charcoal);font-family:'Outfit',sans-serif;font-size:13px;outline:none;appearance:none;cursor:pointer;transition:border-color 0.2s;}
.search-input:focus,.search-select:focus{border-color:var(--rose);}
.search-lbl{font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--rose);margin-bottom:5px;display:block;}
.search-btn{background:var(--rose);color:var(--cream);border:none;padding:12px 22px;font-family:'Outfit',sans-serif;font-size:12px;font-weight:500;letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:background 0.2s,transform 0.2s;width:100%;}
.search-btn:hover{background:var(--deep-rose);transform:translateY(-1px);}
.api-note{font-size:10px;color:oklch(46.0% 0.021 45);margin-top:9px;line-height:1.6;}
.budget-filter{display:flex;gap:5px;margin-bottom:3px;}
.budget-btn{flex:1;padding:8px 3px;border:1.5px solid var(--terra-a20);background:transparent;color:var(--warm-grey);font-family:'Outfit',sans-serif;font-size:11px;font-weight:500;cursor:pointer;transition:all 0.2s;text-align:center;}
.budget-btn:hover{border-color:var(--rose);color:var(--rose);}
.budget-btn.active{background:var(--terra-fill);border-color:var(--rose);color:var(--cream-card);}
.results-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.results-grid.single-col{grid-template-columns:1fr;}
.result-card{background:var(--cream-card);border:1px solid var(--terra-a10);padding:24px 20px;transition:box-shadow 0.3s,transform 0.25s;animation:fadeUp 0.4s ease;position:relative;}
.result-card:hover{box-shadow:var(--lift-sm);transform:translateY(-3px);}
.result-badge{display:inline-block;font-size:10px;letter-spacing:2px;text-transform:uppercase;font-weight:500;color:var(--rose);background:var(--terra-a10);padding:3px 9px;margin-bottom:11px;}
.result-title{font-family:'Fraunces',serif;font-size:16px;font-weight:700;color:var(--charcoal);margin-bottom:7px;line-height:1.3;}
.result-desc{font-size:12px;font-weight:300;color:var(--warm-grey);line-height:1.7;margin-bottom:10px;}
.result-meta{font-size:11px;color:var(--warm-grey);display:flex;flex-wrap:wrap;gap:7px;align-items:center;}
.result-link{display:inline-block;margin-top:9px;margin-right:9px;font-size:11px;font-weight:500;letter-spacing:1.5px;text-transform:uppercase;color:var(--rose);text-decoration:none;border-bottom:1px solid var(--terra-a30);padding-bottom:2px;transition:border-color 0.2s;}
.result-link:hover{border-color:var(--rose);}
.heart-btn{position:absolute;top:12px;right:12px;background:none;border:none;font-size:19px;cursor:pointer;line-height:1;padding:3px;color:var(--terra-a80);transition:color 0.2s,transform 0.15s;}
.heart-btn:hover{color:var(--rose);transform:scale(1.2);}
.heart-btn.saved{color:var(--rose);}
.results-status{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:160px;flex-direction:column;gap:12px;color:var(--warm-grey);font-size:14px;text-align:center;}
.spinner{width:32px;height:32px;border:3px solid var(--terra-a20);border-top-color:var(--rose);border-radius:50%;animation:spin 0.8s linear infinite;}
.emergency{background:var(--terra-fill);padding:56px 80px;display:flex;align-items:center;justify-content:space-between;gap:36px;}
.emergency-text h2{font-family:'Fraunces',serif;font-size:30px;font-weight:900;color:var(--cream);margin-bottom:7px;}
.emergency-text p{font-size:14px;color:var(--cream-a95);}
.btn-emergency{background:var(--cream);color:var(--deep-rose);border:none;padding:16px 40px;font-family:'Outfit',sans-serif;font-size:13px;font-weight:600;letter-spacing:1px;text-transform:uppercase;cursor:pointer;white-space:nowrap;transition:background 0.2s,transform 0.2s;text-decoration:none;display:inline-block;}
.btn-emergency:hover{background:var(--burgundy);color:var(--cream);transform:scale(1.03);}
.legal-bar{background:oklch(20.8% 0.016 356.7 / 0.97);padding:12px 80px;text-align:center;}
.legal-bar p{font-size:10px;color:var(--cream-a62);line-height:1.6;max-width:800px;margin:0 auto;}
.legal-bar a{color:var(--cream-a72);text-decoration:underline;}
footer{background:var(--charcoal);padding:56px 80px 38px;}
.footer-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:44px;padding-bottom:44px;border-bottom:1px solid var(--cream-a08);}
.footer-brand p{font-size:12px;color:var(--cream-a72);margin-top:9px;max-width:260px;line-height:1.7;}
.footer-links h3{font-size:10px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);margin-bottom:18px;}
.footer-links li{margin-bottom:9px;}
.footer-links a{font-size:12px;color:var(--cream-a62);text-decoration:none;transition:color 0.2s;}
.footer-bottom p{font-size:11px;color:var(--cream-a62);}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
.fade-up{opacity:0;transform:translateY(28px);transition:opacity 0.6s ease,transform 0.6s ease;}
.fade-up.visible{opacity:1;transform:translateY(0);}
@media(max-width:1024px){nav{padding:14px 24px;}.nav-links{gap:14px;}section,.live-section{padding:80px 24px;}}
@media(max-width:860px){.nav-links{display:none;}section,.live-section{padding:72px 20px;}.live-layout,.footer-top{grid-template-columns:1fr;gap:24px;}.live-sidebar{position:static;}.results-grid{grid-template-columns:1fr;}.emergency{flex-direction:column;text-align:center;padding:40px 20px;}footer{padding:40px 20px 28px;}.footer-bottom{flex-direction:column;gap:12px;}.legal-bar{padding:12px 20px;}}
