:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#402e50;background:#f5eafa;font-size:16px}*{box-sizing:border-box}body{margin:0}button,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:wait;opacity:.65}a{color:#8c3671}a:focus-visible,button:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #8f59b4;outline-offset:3px}.skip-link{position:absolute;top:-60px;left:10px;background:#fff;padding:10px;z-index:30}.skip-link:focus{top:10px}.app-shell{display:grid;grid-template-columns:minmax(260px,330px) minmax(0,1fr);min-height:100vh}.sidebar{background:#eadcf4;color:#f5eafa;padding:28px 25px;display:flex;flex-direction:column;gap:28px}.brand{display:flex;align-items:center;gap:13px;font-size:1.03rem;font-weight:800;line-height:1.08;letter-spacing:-.03em}.brand-mark{display:grid;place-items:center;width:43px;height:43px;border:2px solid #c35c91;border-radius:13px;color:#c35c91;font-size:1.9rem;line-height:1}.side-image{position:relative;height:225px;border-radius:20px;overflow:hidden;background:#684278}.side-image img{width:100%;height:100%;object-fit:cover;object-position:68% center;display:block}.side-image:after{content:"";position:absolute;inset:46% 0 0;background:linear-gradient(transparent,rgba(10,36,38,.85))}.side-image span{position:absolute;z-index:1;left:18px;bottom:17px;max-width:225px;font-weight:750;font-size:1.25rem;line-height:1.2}.eyebrow{margin:0;color:#a43b78;font-size:.76rem;font-weight:800;letter-spacing:.11em}.sidebar .eyebrow{color:#c35c91}.side-copy h2{font-size:2.15rem;line-height:1.08;letter-spacing:-.055em;margin:12px 0 14px}.side-copy p:last-child{color:#dfcbe9;line-height:1.55;margin:0}.side-foot{border-top:1px solid #684278;padding-top:16px;margin-top:auto;color:#dfcbe9;font-size:.88rem;line-height:1.45}.side-foot p{margin:0 0 14px}.side-foot strong{color:#fff}.main{min-width:0;padding:34px clamp(20px,4vw,58px) 22px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:26px}.topbar h1{font-size:clamp(1.75rem,3vw,2.55rem);letter-spacing:-.052em;line-height:1.13;margin:7px 0 0}.text-button{border:0;background:transparent;color:#8c3671;text-decoration:underline;text-underline-offset:4px;white-space:nowrap;padding:7px 0}.workspace{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(250px,.84fr);gap:22px;align-items:start}.conversation,.profile-panel{background:#fff;border:1px solid #dfcbe9;border-radius:20px;box-shadow:0 8px 24px rgba(23,57,67,.04)}.conversation{padding:22px}.messages{display:flex;flex-direction:column;gap:14px;max-height:340px;overflow-y:auto;margin-bottom:18px}.message{display:flex;align-items:flex-start;gap:11px}.message.user{justify-content:flex-end}.avatar{width:32px;height:32px;border-radius:11px;background:#eee3f4;color:#8c3671;display:grid;place-items:center;font-weight:900;flex:none}.bubble{background:#eee3f4;border-radius:4px 17px 17px 17px;padding:12px 15px;line-height:1.45;max-width:90%}.bubble strong{font-size:.94rem}.bubble p{margin:5px 0 0}.message.user .bubble{background:#704284;color:#fff;border-radius:17px 4px 17px 17px}.question-card{background:#f5eafa;border:1px solid #dfcbe9;border-radius:16px;padding:16px;margin:0 0 17px}.question-card strong{display:block;margin-bottom:11px;line-height:1.4}.quick-options{display:flex;gap:8px;flex-wrap:wrap}.quick-options button,.examples button{border:1px solid #dfcbe9;background:#fff;color:#8c3671;border-radius:999px;padding:8px 12px;font-size:.85rem;line-height:1.25}.quick-options button:hover,.examples button:hover{background:#eee3f4}.composer{border:1px solid #dfcbe9;border-radius:16px;padding:14px 14px 11px}.composer label{display:block;font-weight:750;font-size:.93rem;margin-bottom:9px}.composer textarea{display:block;width:100%;resize:vertical;min-height:80px;border:0;outline:0;line-height:1.45;color:#402e50}.composer textarea:focus-visible{outline:0}.composer:focus-within{outline:3px solid #8f59b4;outline-offset:2px}.composer-actions{display:flex;justify-content:space-between;gap:12px;align-items:center}.composer-actions span{font-size:.77rem;color:#644d70}.primary-button{background:#ad407b;color:#fff;border:0;border-radius:10px;padding:10px 17px;font-weight:750;white-space:nowrap}.primary-button:hover{background:#8d2f64}.primary-button span{font-size:1rem;margin-left:5px}.examples{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin-top:15px}.examples>span{font-size:.8rem;color:#644d70;margin-right:3px}.error{background:#fff0f7;border:1px solid #d986ac;border-radius:10px;padding:11px;color:#7c2d58}.profile-panel{padding:20px}.profile-heading{display:flex;justify-content:space-between;gap:8px}.profile-heading h2{font-size:1.24rem;letter-spacing:-.03em;margin:6px 0 15px}.edit-hint{font-size:.75rem;color:#644d70;white-space:nowrap;padding-top:2px}.profile-summary{display:grid;gap:12px;margin:0 0 17px}.profile-summary p{color:#644d70;line-height:1.5;margin:0}.profile-field label{display:block;font-size:.78rem;font-weight:750;color:#684278;margin-bottom:5px}.profile-field select{width:100%;border:1px solid #dfcbe9;border-radius:9px;background:#fff;color:#402e50;padding:8px}.profile-extra{font-size:.83rem;color:#684278;background:#f5eafa;border-radius:9px;padding:10px;line-height:1.4}.secondary-button{width:100%;border:1px solid #8c3671;background:#fff;color:#8c3671;border-radius:10px;padding:11px;font-weight:750}.secondary-button:hover{background:#eee3f4}.panel-note{font-size:.76rem;color:#644d70;line-height:1.35;margin:10px 0 0}.results{margin-top:34px}.results-empty{border-top:1px solid #dfcbe9;padding-top:24px}.results-empty h2{font-size:1.6rem;letter-spacing:-.04em;margin:6px 0 7px}.results-empty p:last-child{color:#644d70;margin:0}.results-head{display:flex;align-items:end;justify-content:space-between;gap:15px;margin-bottom:16px}.results-head h2{font-size:1.75rem;letter-spacing:-.045em;margin:6px 0 0}.results-head p:last-child{font-size:.84rem;color:#644d70;max-width:410px;line-height:1.4;margin:0}.notice{background:#fff0f7;border-left:4px solid #ca6397;padding:12px 15px;margin-bottom:16px;border-radius:0 9px 9px 0;line-height:1.45}.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.dog-card{border:1px solid #dfcbe9;border-radius:17px;background:#fff;overflow:hidden;display:flex;flex-direction:column}.card-art{height:84px;background:linear-gradient(135deg,#dfcbe9,#f8d9ea);display:flex;align-items:center;justify-content:space-between;padding:15px 20px;color:#684278}.card-art span:first-child{font-size:2rem;font-weight:900;letter-spacing:-.08em;opacity:.8}.card-art span:last-child{font-size:.76rem;font-weight:750;background:#fff9;padding:6px 9px;border-radius:20px}.card-body{padding:16px;flex:1}.card-top{display:flex;align-items:start;justify-content:space-between;gap:8px}.card-top h3{font-size:1.19rem;letter-spacing:-.03em;line-height:1.15;margin:0}.fit-tag{display:inline-block;background:#f8e6f2;color:#5b3d77;border-radius:20px;padding:5px 8px;font-size:.69rem;font-weight:800;white-space:nowrap}.fit-tag.explore{background:#ffe5f1;color:#813453}.card-sub{font-size:.83rem;color:#644d70;line-height:1.4;margin:9px 0 13px}.facts{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:12px}.facts span{font-size:.76rem;background:#f5eafa;border-radius:7px;padding:5px 7px}.dog-card h4{font-size:.78rem;text-transform:uppercase;letter-spacing:.07em;color:#644d70;margin:14px 0 5px}.dog-card ul{padding-left:18px;margin:0;line-height:1.45;font-size:.84rem}.dog-card li{margin:5px 0}.dog-card details{border-top:1px solid #dfcbe9;margin-top:13px;padding-top:10px;font-size:.79rem;line-height:1.4}.dog-card details summary{cursor:pointer;font-weight:700;color:#8c3671}.dog-card details p{margin:8px 0}.dog-card details ul{font-size:.78rem;word-break:break-word}.compare-pick{display:flex;align-items:center;gap:7px;border-top:1px solid #dfcbe9;padding:12px 16px;font-size:.82rem;font-weight:650}.compare-pick input{width:17px;height:17px;accent-color:#8c3671}.guidance{background:#fff;border:1px solid #dfcbe9;border-radius:16px;padding:20px;max-width:800px}.guidance h2{margin:7px 0 9px;letter-spacing:-.04em}.guidance li{margin:8px 0;line-height:1.45}.comparison{margin-top:28px;background:#fff;border:1px solid #dfcbe9;border-radius:16px;padding:19px;overflow-x:auto}.comparison h2{margin:0 0 13px;font-size:1.35rem}.comparison table{width:100%;border-collapse:collapse;min-width:480px;font-size:.84rem}.comparison th,.comparison td{text-align:left;vertical-align:top;border-bottom:1px solid #dfcbe9;padding:10px}.comparison th{background:#f5eafa}.main footer{color:#644d70;font-size:.75rem;margin-top:35px;padding:16px 0;border-top:1px solid #dfcbe9}@media(max-width:1020px){.app-shell{grid-template-columns:240px 1fr}.workspace{grid-template-columns:1fr}.profile-panel{order:-1}.profile-summary{grid-template-columns:repeat(2,1fr)}}@media(max-width:720px){.app-shell{display:block}.sidebar{padding:15px 20px;gap:0}.brand{font-size:.92rem}.brand-mark{width:35px;height:35px}.side-image,.side-copy,.side-foot{display:none}.main{padding:22px 16px}.topbar{margin-bottom:18px}.topbar h1{font-size:1.65rem}.workspace{gap:15px}.profile-panel{order:0}.profile-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.conversation{padding:16px}.messages{max-height:280px}.results-head{display:block}.results-head p:last-child{margin-top:7px}.card-grid{grid-template-columns:1fr}.composer-actions span{max-width:60%}}@media(max-width:420px){.profile-summary{grid-template-columns:1fr}.topbar{align-items:start}.text-button{font-size:.84rem}.composer-actions span{display:none}}

.end-notice{margin-top:18px}
.alternative-notice{display:flex;align-items:center;gap:13px;background:#f8edf8;border-left-color:#9a5baf}
.alternative-notice img{width:72px;height:72px;object-fit:cover;border-radius:11px;flex:none}
.alternative-notice div{max-width:70ch}
.adoptions{margin-top:26px;border-top:1px solid #dfcbe9;padding-top:22px}.adoption-group-title{margin:18px 0 9px;font-size:1.05rem}.adoption-group-note{margin:-2px 0 12px;font-size:.85rem;color:#644d70}.adoption-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.adoption-card{background:#fff;border:1px solid #dfcbe9;border-radius:16px;overflow:hidden}.adoption-card>img,.adoption-photo-missing{display:block;width:100%;height:175px;object-fit:cover;background:#eee3f4}.adoption-photo-missing{display:grid;place-items:center;color:#684278;font-size:.84rem}.adoption-card-body{padding:15px}.adoption-card h3{margin:5px 0 8px;font-size:1.18rem}.adoption-card p{line-height:1.4}.adoption-card .eyebrow{font-size:.67rem;margin:0}.adoption-facts{font-size:.79rem;color:#644d70}.adoption-connection{font-size:.79rem;background:#f5eafa;border-radius:8px;padding:8px;color:#5b3d77}.adoption-conflict{background:#fff0ee;color:#8d3a3a}.adoption-summary{font-size:.82rem;color:#402e50}.adoption-link{display:inline-block;font-size:.83rem;font-weight:750;margin-top:5px}.adoption-more{margin-top:14px}.adoption-directory{margin-top:17px;font-size:.84rem}.adoption-directory summary{cursor:pointer;color:#8c3671;font-weight:750}.adoption-directory ul{padding-left:20px;line-height:1.6}.adoption-directory li span{color:#644d70}
.breeders{margin-top:26px;border-top:1px solid #dfcbe9;padding-top:22px}.breeder-intro{font-size:.88rem;line-height:1.5;color:#644d70}.breeder-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;list-style:none;padding:0;margin:10px 0 0}.breeder-links li{background:#fff;border:1px solid #dfcbe9;border-radius:12px;padding:13px;line-height:1.35}.breeder-links a{font-weight:750;font-size:.88rem}.breeder-links span{display:block;color:#644d70;font-size:.77rem;margin-top:5px}
.cross-card{border:1px solid #dfcbe9;border-radius:17px;overflow:hidden;background:#fff;margin-bottom:18px}.cross-parent-photos{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));background:#f5eafa}.cross-parent-photos figure{margin:0;min-width:0}.cross-parent-photos img{width:100%;height:190px;object-fit:cover;display:block}.cross-parent-photos figcaption{padding:8px 12px;font-size:.77rem;color:#644d70}.cross-parent-photos figure+figure{border-left:1px solid #dfcbe9}.cross-card-body{padding:18px}.cross-card-body h3{font-size:1.5rem;margin:5px 0 8px}.cross-card-body p{line-height:1.45}.cross-card-body ul{padding-left:20px;line-height:1.5}.cross-card-body li{margin:10px 0}.cross-photo-note{font-size:.84rem;color:#644d70}.cross-card+.guidance{margin-top:14px}@media(max-width:720px){.cross-parent-photos img{height:135px}}
.results-inline{margin-top:18px}
.results-inline .results-empty{padding-top:17px}
@media(max-width:720px){.composer textarea{min-height:124px}}
.card-photo{position:relative;margin:0;height:190px;background:#eee3f4;overflow:hidden}.card-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.card-photo figcaption{position:absolute;right:8px;bottom:8px;max-width:calc(100% - 16px);text-align:right;overflow-wrap:anywhere;background:rgba(255,255,255,.94);border-radius:6px;padding:4px 7px;font-size:.68rem;font-weight:700}.card-photo figcaption a{color:#8c3671}.card-photo-missing{display:grid;place-items:center;height:190px;background:#eee3f4;color:#684278;font-size:.83rem}
.admin-main{max-width:900px;margin:40px auto;padding:20px}.admin-input{display:block;padding:10px;width:100%;max-width:400px;margin:8px 0 16px;border:1px solid #dfcbe9;border-radius:9px}.admin-table{width:100%;border-collapse:collapse}.admin-table th,.admin-table td{padding:8px;border-bottom:1px solid #dfcbe9;text-align:left;vertical-align:top}.admin-table th{background:#f5eafa}@media(max-width:720px){.admin-main{margin:0}.admin-table{display:block;overflow-x:auto}}
.reviewed-results{margin-top:36px;border-top:1px solid #dfcbe9;padding-top:24px}.narrative-card p{font-size:.84rem;line-height:1.45}.narrative-card .card-body>p{margin:11px 0}.narrative-card details li{margin:9px 0}
.narrative-card:first-child{border-color:#b45291;box-shadow:0 6px 22px rgba(140,54,113,.13)}.narrative-card:first-child .card-sub{color:#78345f;font-weight:700}
.vocal-evidence{margin:12px 0;padding:10px 12px;border-left:3px solid #a43b78;background:#fff0f7;border-radius:0 8px 8px 0}.vocal-evidence h4{margin:0 0 6px}.vocal-evidence ul{padding-left:18px}.vocal-evidence li{font-size:.79rem;line-height:1.4}

.marketplace{margin-top:26px;border-top:1px solid #dfcbe9;padding-top:22px}
.marketplace-subtitle{font-size:.9rem;color:#644d70;margin:17px 0 10px}
.marketplace-card .adoption-card-body{display:flex;flex-direction:column;min-height:165px}
.marketplace-card .adoption-link{margin-top:auto}
.marketplace-photo-note{font-size:.76rem;color:#644d70}
.marketplace-search-links{font-size:.83rem;color:#644d70;margin:15px 0 0}


/* Grace's soft lavender and rose palette. */
.sidebar{background:linear-gradient(160deg,#f3e8fa 0%,#e9d8f4 65%,#f7e4f0 100%);color:#402e50}
.sidebar .eyebrow{color:#9a356f}
.side-copy p:last-child,.side-foot{color:#60476e}
.side-foot{border-top-color:#ceb7dc}
.side-foot strong{color:#402e50}
.brand-mark{background:#fff3fa;border-color:#c2619d;color:#a43878;font-size:2rem}
.side-image:after{background:linear-gradient(transparent,rgba(57,28,69,.85))}
.side-image span{color:#fff}
.main{background:radial-gradient(circle at 90% 0,#fff0f8 0,#fbf7fd 33%,#faf7fc 72%)}
.mobile-tagline{display:none}
@media(max-width:720px){.mobile-tagline{display:block;margin:6px 0 0;font-size:.82rem;font-weight:650;color:#664d74}}

/* Browse ranked matches one card at a time. */
.featured-adoptions{margin-top:22px}
.featured-adoptions+.results{margin-top:25px}
.match-carousel{background:#fff;border:1px solid #dfcbe9;border-radius:22px;padding:13px;box-shadow:0 14px 32px rgba(91,61,119,.10)}
.carousel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:2px 3px 12px}
.carousel-count{color:#684278;font-size:.83rem;font-weight:800;letter-spacing:.03em}
.carousel-controls{display:flex;gap:8px}
.carousel-controls button{display:grid;place-items:center;width:43px;height:43px;border:1px solid #b97daf;border-radius:50%;background:#fff6fb;color:#8c3671;font-size:1.25rem;font-weight:800;cursor:pointer}
.carousel-controls button:hover:not(:disabled){background:#f7ddeb}
.carousel-controls button:disabled{opacity:.35;cursor:default}
.carousel-stage{border-radius:15px;outline:none}
.carousel-stage:focus-visible{outline:3px solid #8f59b4;outline-offset:3px}
.carousel-slide[hidden]{display:none}
.carousel-track{height:5px;margin:13px 3px 1px;border-radius:99px;background:#f1e4f4;overflow:hidden}
.carousel-track span{display:block;height:100%;background:linear-gradient(90deg,#aa62c4,#d968a1);border-radius:99px;transition:width .2s ease}
.carousel-footnote{color:#644d70;font-size:.8rem;line-height:1.45;margin:10px 3px 0}
.dating-card{display:grid;grid-template-columns:minmax(210px,41%) minmax(0,1fr);min-height:390px;overflow:hidden;border:1px solid #ead7eb;border-radius:16px;background:#fffafc}
.dating-photo{position:relative;min-height:390px;background:#eee3f4}
.dating-photo img,.dating-photo .adoption-photo-missing{width:100%;height:100%;min-height:390px;object-fit:cover}
.photo-label{position:absolute;left:15px;bottom:15px;padding:7px 11px;background:#fff9;color:#71396a;border-radius:99px;font-size:.76rem;font-weight:800}
.dating-body{display:flex;flex-direction:column;align-items:flex-start;padding:clamp(18px,2.5vw,30px)}
.dating-body h3{font-size:clamp(1.85rem,3vw,2.7rem);letter-spacing:-.06em;margin:4px 0 7px;color:#402e50}
.dating-facts{font-size:.87rem;color:#60476e;line-height:1.5;margin:0 0 12px}
.dating-note{width:100%;background:#f6ecfa;border-radius:13px;padding:11px 14px;margin:7px 0}
.dating-note.caution{background:#fff0f5}
.dating-note h4{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:#864576;margin:0 0 6px}
.dating-note ul{padding-left:17px;margin:0;font-size:.83rem;line-height:1.45}
.dating-note li{margin:4px 0}
.dating-source-notes{font-size:.78rem;color:#644d70;line-height:1.4}
.dating-link{display:inline-block;background:#ad407b;color:#fff;border-radius:11px;padding:11px 16px;text-decoration:none;font-size:.84rem;font-weight:800;margin-top:auto}
.dating-link:hover{background:#8d2f64;color:#fff}
.adoption-browse{border:1px solid #dfcbe9;border-radius:12px;background:#fff;padding:13px 16px}
.adoption-browse .adoption-grid{margin-top:14px}
.mixed-guides{margin:20px 0 24px}
.mixed-guides .results-head{display:block}
.mixed-guides .results-head p:last-child{max-width:none;margin-top:8px}
.mix-guide-link{display:inline-block;font-size:.82rem;font-weight:750;margin:0 0 12px}
.mix-guide-card{border:1px solid #ead7eb;border-radius:15px;background:#fffafc;overflow:hidden}
.mix-guide-photos{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));background:#eee3f4}
.mix-guide-photos figure{margin:0}
.mix-guide-photos img{display:block;width:100%;height:215px;object-fit:cover}
.mix-guide-photos figcaption{padding:7px 12px;color:#684278;font-size:.75rem}
.mix-guide-body{padding:20px}
.mix-guide-body h3{font-size:1.8rem;letter-spacing:-.05em;margin:5px 0 8px}
.mix-guide-body p,.mix-guide-body li{font-size:.85rem;line-height:1.5}
.mix-guide-body ul{padding-left:20px;margin:11px 0}
.mix-guide-body li{margin:7px 0}
.mix-guide-body details{border-top:1px solid #dfcbe9;padding-top:10px;margin-top:14px}
.mix-guide-body summary{color:#8c3671;font-weight:750;cursor:pointer}
.mix-connection{background:#f5eafa;border-radius:9px;padding:9px 12px;color:#5b3d77}
.cross-parent-photos.one-parent{grid-template-columns:1fr}
.carousel-slide .narrative-card,.carousel-slide .dog-card{display:grid;grid-template-columns:minmax(210px,38%) minmax(0,1fr);border:1px solid #ead7eb;box-shadow:none}
.carousel-slide .narrative-card .card-photo,.carousel-slide .dog-card .card-photo{height:100%;min-height:430px}
.carousel-slide .narrative-card .card-body,.carousel-slide .dog-card .card-body{max-height:570px;overflow-y:auto;padding:23px}
.carousel-slide .narrative-card .card-top h3,.carousel-slide .dog-card .card-top h3{font-size:clamp(1.55rem,2.4vw,2rem)}
.carousel-slide .dog-card .compare-pick{grid-column:2}
@media(max-width:1450px){.featured-adoptions .results-head{display:block}.featured-adoptions .results-head p:last-child{max-width:none;margin-top:8px}.dating-card,.carousel-slide .narrative-card,.carousel-slide .dog-card{display:block}.dating-photo,.dating-photo img,.dating-photo .adoption-photo-missing{min-height:0;height:285px}.carousel-slide .narrative-card .card-photo,.carousel-slide .dog-card .card-photo{min-height:0;height:285px}.carousel-slide .narrative-card .card-body,.carousel-slide .dog-card .card-body{max-height:none;overflow:visible}.carousel-slide .dog-card .compare-pick{grid-column:auto}}
@media(max-width:800px){.dating-card,.carousel-slide .narrative-card,.carousel-slide .dog-card{display:block}.dating-photo,.dating-photo img,.dating-photo .adoption-photo-missing{min-height:0;height:260px}.carousel-slide .narrative-card .card-photo,.carousel-slide .dog-card .card-photo{min-height:0;height:260px}.carousel-slide .narrative-card .card-body,.carousel-slide .dog-card .card-body{max-height:none;overflow:visible}.carousel-slide .dog-card .compare-pick{grid-column:auto}}

/* Shared search and browse layout */
:root { background: #fdfbfe; color: #37293e; }
.app-shell { display: block; min-height: 100vh; }
.masthead { background: #fff; border-bottom: 1px solid #ecdfec; }
.masthead-inner, .main { max-width: 1184px; margin: auto; padding-inline: clamp(18px, 4vw, 48px); }
.masthead-inner { min-height: 80px; display:flex; align-items:center; justify-content:space-between; gap:24px; }
.wordmark { display:inline-flex; align-items:center; gap:11px; text-decoration:none; color:#522f55; font-size:1.25rem; font-weight:780; letter-spacing:-.035em; }
.brand-mark { width:36px; height:36px; border-radius:12px; border:0; background:#f6e6f2; line-height:1; }
.browse-nav { display:flex; gap:6px; align-items:center; }
.browse-nav a { padding:10px 15px; text-decoration:none; border-radius:50px; color:#624e69; font-size:.94rem; font-weight:650; }
.browse-nav a:hover, .browse-nav a[aria-current] { background:#f4e8f4; color:#792b68; }
.main { background:transparent; padding-top:24px; padding-bottom:28px; }
.main[data-view=find] #dogs,
.main[data-view=dogs] :is(.search-space,#results,#featured-adoptions,#comparison) { display:none; }
.welcome { isolation:isolate; position:relative; overflow:hidden; display:grid; grid-template-columns:1.15fr 1fr; min-height:220px; background:#f4eaf6; border-radius:24px; }
.welcome-copy { padding:clamp(23px,3.5vw,46px); align-self:center; }
.welcome h1 { max-width:18ch; font-size:clamp(2rem,4.1vw,3.55rem); line-height:1.04; letter-spacing:-.025em; word-spacing:.035em; font-weight:700; margin:10px 0 12px; text-wrap:balance; }
.welcome-copy>p:last-child,.browse-heading>p:last-child { color:#67556e; line-height:1.55; max-width:53ch; margin:0; }
.welcome img { width:100%; height:100%; min-height:0; object-fit:cover; object-position:83% center; position:absolute; inset:0 0 0 auto; width:46.5%; }
.search-surface { padding:20px 0 0; }
.messages:empty { display:none; }
.messages { margin-bottom:12px; }
.composer { background:white; border-radius:20px; padding:18px 22px; border:1px solid #d7c4d9; box-shadow:0 4px 16px #492d540a; }
.composer label { font-size:1.05rem; letter-spacing:-.015em; }
.composer textarea { min-height:52px; line-height:1.55; margin:0; font-size:1rem; background:#fff; }
.primary-button,.load-more { background:#973b76; color:white; border:0; padding:12px 19px; border-radius:99px; font-weight:700; }
.primary-button span { color:inherit; }
.examples,.search-tools { display:flex; gap:8px 12px; flex-wrap:wrap; align-items:center; }
.examples { margin:14px 0 0; }
.search-tools { margin:10px 0 0; align-items:flex-start; justify-content:space-between; }
.brief-editor { flex:1; max-width:900px; }
.brief-editor summary,.source-note summary { cursor:pointer; font-weight:650; color:#71395f; padding:8px 0; }
.brief-editor .profile-summary { grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr)); padding:16px 0 0; }
.brief-editor .secondary-button { width:auto; }
.question-card { margin:12px 0; }
.eyebrow { color:#88366d; font-size:.7rem; letter-spacing:.13em; line-height:1.5; }
.results-inline,.featured-adoptions { margin-top:20px; }
.results-empty { border:1px dashed #dbc7df; border-radius:18px; padding:17px 22px; background:#faf5fb; }
.results-empty h2 { font-size:1.28rem; letter-spacing:-.025em; }
.results-head { display:block; }
.results-head h2,.browse-heading h1 { letter-spacing:-.04em; line-height:1.15; }
.results-head>p:last-child { max-width:72ch; margin:8px 0 0; line-height:1.6; }
.card-top { flex-wrap:wrap; align-items:center; gap:8px 16px; }
.card-top h3,.adoption-card h3 { overflow-wrap:anywhere; }
.card-body { min-width:0; }
.card-body .facts { gap:8px; }
.card-body .facts span { padding:6px 10px; border-radius:10px; line-height:1.45; }
.card-body ul,.adoption-card p,.dating-body p { line-height:1.55; }
.match-carousel { padding:12px; border-radius:22px; box-shadow:none; }
.carousel-slide .dog-card .card-body,.carousel-slide .narrative-card .card-body { max-height:none; overflow:visible; padding:clamp(18px,2.5vw,30px); }
.carousel-slide .card-photo img { position:absolute; inset:0; }
@media(min-width:740px) {
  .carousel-slide .dog-card,.carousel-slide .narrative-card,.dating-card { display:grid; grid-template-columns:minmax(220px,38%) minmax(0,1fr); }
  .carousel-slide .dog-card .card-photo,.carousel-slide .narrative-card .card-photo,.dating-photo { min-height:275px; height:100%; }
  .dating-photo img { position:absolute; inset:0; min-height:0; height:100%; }
  .carousel-slide .dog-card .compare-pick { grid-column:2; }
}
.browse-heading { padding:16px 0 18px; }
.browse-heading h1 { font-size:clamp(2rem,4vw,3rem); margin:8px 0 10px; }
.adoptions,.marketplace { border:0; padding-top:0; margin:0; }
.filter-row { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; padding:15px 0 20px; border-top:1px solid #e7dce9; }
.filter-row label { display:flex; align-items:center; flex-wrap:wrap; gap:10px; font-size:.85rem; font-weight:700; }
.filter-row select { border:1px solid #d7c4d9; border-radius:24px; padding:9px; background:white; color:#503553; max-width:100%; }
.filter-row p { margin:0; color:#65546c; font-size:.92rem; }
.adoption-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,228px),1fr)); gap:24px 18px; }
.adoption-card { border:0; background:transparent; border-radius:0; min-width:0; }
.adoption-card>img,.adoption-photo-missing { width:100%; height:auto; aspect-ratio:4/3; border-radius:16px; }
.adoption-card-body,.marketplace-card .adoption-card-body { padding:12px 3px 4px; min-height:0; }
.adoption-card-body h3 { margin:4px 0 6px; font-size:1.25rem; letter-spacing:-.025em; }
.adoption-card .adoption-facts,.adoption-card .adoption-summary { margin:5px 0 8px; font-size:.88rem; }
.adoption-link { padding-block:5px; text-underline-offset:3px; }
.load-more { display:block; margin:24px auto; }
.source-note { margin:14px 0; border-top:1px solid #e5d9e7; padding-top:6px; }
.source-note p { max-width:70ch; line-height:1.55; }
.directory-list { display:grid; gap:12px; padding-left:20px; }
.directory-list li span { display:block; font-size:.82rem; color:#68586d; }
.main footer { line-height:1.55; }
.main footer summary { cursor:pointer; margin-top:8px; }
@media(max-width:650px) {
  .masthead-inner { align-items:flex-start; flex-direction:column; gap:10px; padding-block:12px; }
  .browse-nav { width:100%; justify-content:space-between; gap:2px; }
  .browse-nav a { font-size:.86rem; padding:9px 10px; }
  .main { padding-top:16px; }
  .welcome { grid-template-columns:1fr; min-height:0; border-radius:18px; }
  .welcome-copy { padding:19px; padding-right:32%; }
  .welcome h1 { font-size:clamp(1.65rem,6.5vw,2.25rem); }
  .welcome-copy>p:last-child { font-size:.87rem; }
  .welcome img { width:29%; object-position:69% center; }
  .composer { padding:15px; }
  .composer textarea { min-height:72px; }
  .composer-actions { justify-content:flex-end; }
  .examples { gap:7px; }
  .examples button { font-size:.8rem; }
  .dating-body,.carousel-slide .dog-card .card-body { padding:16px; }
  .adoption-grid { grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr)); }
  .filter-row { align-items:flex-end; }
  .filter-row label { display:grid; gap:4px; }
}

.dog-description { margin:8px 0; color:#684c67; font-size:.85rem; }
.dog-description summary { cursor:pointer; padding:4px 0; }
progress.carousel-track{display:block;appearance:none;border:0;width:calc(100% - 6px)}
progress.carousel-track::-webkit-progress-bar{background:#f1e4f4}
progress.carousel-track::-webkit-progress-value{background:#a05aaf;border-radius:99px}
progress.carousel-track::-moz-progress-bar{background:#a05aaf;border-radius:99px}
.sale-preview{margin:2.5rem 0;padding-top:1.5rem;border-top:1px solid #e7dce9}
.sale-preview h2{margin:.4rem 0}
.sale-invite a,.sale-preview a{font-weight:650}

.grace-story { max-width: 1050px; }
.grace-intro { display: grid; grid-template-columns: 3fr 2fr; gap: clamp(24px, 5vw, 70px); align-items: center; padding: clamp(24px, 4vw, 54px); background: #f6edf7; border-radius: 24px; }
.grace-intro h1 { font-size: clamp(2.4rem, 6vw, 4.5rem); line-height: 1.05; margin: .2em 0 .4em; letter-spacing: -.045em; }
.grace-intro p:not(.eyebrow) { line-height: 1.62; font-size: clamp(1rem, 1.6vw, 1.18rem); max-width: 42ch; }
.grace-intro img { width: 100%; height: auto; display: block; border: 6px solid white; border-radius: 14px; transform: rotate(2deg); }
.grace-signature { font: italic 1.7rem Georgia, serif; color: #863967; }
.grace-story h2 { font-size: clamp(1.6rem, 4vw, 2.3rem); margin: 1.4em 0 .2em; letter-spacing: -.03em; }
.grace-story h2 + p { margin: 0 0 1.2rem; color: #67556e; }
.grace-album { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(14px, 3vw, 32px); }
.grace-album figure { margin: 0; padding: 8px; border: 1px solid #ecdfec; border-radius: 14px; background: #fff; }
.grace-album img { display: block; width: 100%; height: auto; border-radius: 8px; }
.grace-album figcaption { padding: .7rem .4rem .25rem; color: #604a62; }
.grace-back { margin: 2rem 0; font-weight: 700; }
@media (max-width: 650px) {
  .browse-nav { flex-wrap: wrap; justify-content: flex-start; }
  .browse-nav a { padding: 8px; }
  .grace-intro, .grace-album { grid-template-columns: 1fr; }
  .grace-intro img { max-width: 270px; justify-self: center; }
}

/* Unified listing directory */
#dogs [hidden] { display:none; }
#dogs .browse-heading { padding-bottom:20px; }
.dog-tools { padding:clamp(14px,2.4vw,22px); background:#faf5fa; border:1px solid #e7d9e7; border-radius:20px; }
.dog-tools>label { display:block; font-size:.9rem; color:#4f3651; font-weight:700; margin-bottom:7px; }
#dog-search { display:block; background:white; color:#3d2b43; width:100%; border:1px solid #cbb5ce; padding:12px 15px; border-radius:12px; font:inherit; }
#dog-search:focus-visible,.dog-tools select:focus-visible { outline:3px solid #825395; outline-offset:2px; }
.dog-filter-line { display:flex; align-items:center; flex-wrap:wrap; gap:12px 22px; margin-top:14px; }
.dog-types { display:inline-flex; gap:3px; padding:3px; border:1px solid #dac8dc; border-radius:24px; background:white; }
.dog-types button { min-height:38px; padding:6px 14px; border:none; border-radius:22px; background:transparent; font-weight:650; color:#634e69; }
.dog-types button:hover { background:#f8eff8; }
.dog-types button[aria-pressed=true] { background:#763466; color:white; }
.dog-breed-label { display:flex; align-items:center; gap:8px; font-size:.88rem; font-weight:650; color:#50395a; max-width:100%; }
.dog-breed-label select { background:white; border:1px solid #d7c4d9; padding:9px 10px; border-radius:12px; color:inherit; min-width:0; max-width:100%; }
.dog-tally { display:flex; align-items:center; gap:14px; justify-content:space-between; min-height:54px; padding-block:12px; }
#dog-count { margin:0; font-size:.93rem; color:#59475e; font-weight:650; }
#dog-empty { border:1px dashed #d9c6dc; padding:22px; border-radius:16px; }
#dog-grid .adoption-card { position:relative; }
.listing-badge { display:inline-block; position:absolute; top:9px; left:9px; padding:5px 11px; border-radius:20px; font-size:.78rem; line-height:1.4; font-weight:750; }
.rescue-badge { color:#4d296a; background:#f4e9ff; }
.sale-badge { color:#7a3059; background:#ffedf4; }
#dog-resources { margin-top:26px; }
@media(max-width:480px) {
  .dog-filter-line { align-items:flex-start; gap:12px; }
  .dog-breed-label { width:100%; }
  .dog-breed-label select { flex:1; }
  .dog-types button { min-height:42px; }
}
