:root{--ink:#283f4c;--blue:#b8d9e4;--blue-soft:#e9f4f7;--pink:#f4d5ea;--gold:#76612e;--paper:#fffefa;--line:#dce5e6;--max:1160px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Hiragino Kaku Gothic ProN','Noto Sans JP',Meiryo,sans-serif;font-size:16px;line-height:1.9}a{color:inherit}a:focus-visible,button:focus-visible{outline:3px solid #4a798c;outline-offset:4px}img{max-width:100%;height:auto}.skip{position:absolute;left:-999px;top:8px;background:white;padding:8px;z-index:20}.skip:focus{left:8px}.site-header{background:rgba(255,254,250,.97);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;backdrop-filter:blur(12px)}.header-inner{max-width:1280px;margin:auto;padding:10px 28px;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-size:12px;line-height:1.4;letter-spacing:.06em;white-space:nowrap}.brand img{width:54px;height:54px;object-fit:contain}.brand strong{font-family:Georgia,serif;font-size:18px;font-weight:600;letter-spacing:.08em}nav{display:flex;gap:25px;align-items:center}nav a{font-size:14px;text-decoration:none;white-space:nowrap;transition:color .2s}nav a:hover,nav a[aria-current]{color:#4a7c8c}nav a[aria-current]{border-bottom:1px solid #4a7c8c}.menu-toggle{display:none}.hero{min-height:640px;background:linear-gradient(115deg,#f9fcfc 4%,#e8f3f6 55%,#f9eaf4 100%);display:grid;grid-template-columns:1fr 1fr;align-items:center;overflow:hidden}.hero-copy{max-width:650px;margin-left:max(7vw,calc((100vw - 1160px)/2));padding:80px 24px 85px 0;position:relative;z-index:1}.eyebrow{color:var(--gold);font:600 12px/1.5 Georgia,serif;letter-spacing:.22em;margin:0 0 18px}.hero h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500;font-size:clamp(38px,4.7vw,68px);letter-spacing:.08em;line-height:1.5;margin:0 0 27px}.hero h1 em{font-style:normal;color:#4c8395}.hero-lead{font-size:17px;line-height:2.1;letter-spacing:.04em}.hero-art{height:100%;display:flex;align-items:center;justify-content:center;position:relative;padding:50px 60px}.hero-art:before{content:'';position:absolute;width:620px;height:620px;border:1px solid rgba(118,97,46,.25);border-radius:50%;transform:translate(8%,6%)}.logo-halo{width:min(80%,440px);aspect-ratio:1;border-radius:50%;box-shadow:0 22px 70px #55727f20;background:#fff;overflow:hidden;position:relative}.logo-halo img{width:100%;height:100%;object-fit:cover}.hero-caption{position:absolute;right:28px;bottom:35px;font-family:'Yu Mincho',serif;font-size:15px;letter-spacing:.12em}.actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 25px;border-radius:3px;text-decoration:none;font-size:14px;font-weight:600;letter-spacing:.05em;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:var(--ink);color:white}.primary:hover{background:#416371}.outline{border:1px solid var(--ink)}.outline:hover{background:white}.light{background:#fff;color:var(--ink)}.section{padding:100px 28px}.narrow{max-width:740px;margin:0 auto}.wide{max-width:920px;margin:auto}.section h2,.page-hero h1{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500;letter-spacing:.08em;line-height:1.5}.section h2{font-size:clamp(28px,3vw,42px);margin:0 0 30px}.story-section{text-align:center;background:white}.story-section p:not(.eyebrow){line-height:2.25;letter-spacing:.04em}.story-intro{font-size:20px;font-family:'Yu Mincho',serif;margin-bottom:35px}.text-link{display:inline-block;color:#2c6578;text-decoration:none;border-bottom:1px solid currentColor;padding-bottom:3px;margin-top:15px;font-weight:600;font-size:14px}.text-link:hover{color:#123a4d}.paths{background:#f1f8f9}.section-heading{text-align:center;max-width:740px;margin:0 auto 45px}.section-heading h2{margin-bottom:12px}.card-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card{background:white;padding:40px 34px 35px;min-height:310px;border:1px solid #e0e9ea}.card-icon{font-family:Georgia,serif;font-size:30px;color:#80b5c6}.card:nth-child(2) .card-icon{color:#b890ab}.card:nth-child(3) .card-icon{color:var(--gold)}.card h3,.support-grid h3{font-family:'Yu Mincho',serif;font-size:24px;font-weight:500;letter-spacing:.06em;margin:15px 0}.card p{min-height:85px}.social-band{background:var(--ink);color:white;display:flex;align-items:center;justify-content:space-between;gap:30px;padding-left:max(28px,calc((100vw - 1160px)/2));padding-right:max(28px,calc((100vw - 1160px)/2))}.social-band .eyebrow{color:#e5c79f}.social-band h2{margin-bottom:12px}.social-band p:last-child{margin:0}.page-hero{text-align:center;padding:95px 20px 85px;background:linear-gradient(120deg,#e8f4f7,#f8eef5)}.page-hero h1{font-size:clamp(38px,5vw,58px);margin:0 0 12px}.page-hero>p:last-child{margin:0}.prose p{line-height:2.2}.prose blockquote{font-family:'Yu Mincho',serif;color:#407386;border-left:3px solid var(--blue);font-size:25px;margin:48px 0;padding:10px 0 10px 30px;line-height:1.7}.tint{background:#edf6f7}.split{max-width:var(--max);margin:auto;display:grid;grid-template-columns:1fr 1.15fr;gap:80px;align-items:start}.split p{margin-top:0}.centered{text-align:center}.center{justify-content:center}.empty-list{padding:75px 45px;text-align:center;background:white;border:1px solid var(--line)}.empty-mark{font-size:54px;color:#9bc6d3}.empty-list h2{font-size:31px}.empty-list p{max-width:590px;margin:0 auto}.empty-list .button{margin-top:28px}.steps article{display:grid;grid-template-columns:80px 1fr;gap:30px;border-bottom:1px solid var(--line);padding:24px 0 35px}.steps article:first-child{padding-top:0}.steps span{font-family:Georgia,serif;color:#7daebd;font-size:29px}.steps h2{font-size:27px;margin:0 0 8px}.steps p{margin:0}.note{margin-top:55px;padding:35px 40px;background:#edf6f7}.note h3{margin:0 0 8px}.support-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.support-grid article{background:#fff;border:1px solid var(--line);padding:35px}.number{color:var(--gold);font:600 12px Georgia,serif;letter-spacing:.13em}.contact-box{text-align:center;padding:60px 45px;border:1px solid var(--line);background:#f1f8f9}.contact-box h2{margin:10px 0 16px}.contact-box .button{margin-top:22px}.contact-note{text-align:center;font-size:14px;margin-top:30px}.site-footer{background:#f7f8f6;border-top:1px solid var(--line);padding:55px 28px 25px}.footer-inner{max-width:var(--max);margin:auto;display:flex;justify-content:space-between;gap:40px}.footer-inner img{width:90px;height:90px;object-fit:contain}.footer-inner p{margin:4px 0}.footer-inner small{color:#657d85}.footer-links{display:grid;grid-template-columns:repeat(2,max-content);gap:8px 35px;align-content:start}.footer-links a{text-decoration:none;font-size:14px}.footer-links a:hover{text-decoration:underline}.copyright{text-align:center;font-size:12px;color:#667c83;margin:45px 0 0}@media(max-width:900px){.header-inner{padding:8px 20px}nav{gap:13px}nav a{font-size:12px}.hero{min-height:570px}.hero-copy{margin-left:4vw}.hero-art{padding:30px}.card{padding:30px 24px}.support-grid{grid-template-columns:1fr}.support-grid article{min-height:0}}@media(max-width:700px){body{font-size:16px}.header-inner{flex-wrap:wrap}.brand img{width:48px;height:48px}.menu-toggle{display:block;margin-left:auto;border:1px solid var(--line);background:white;padding:8px 12px;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}nav{display:none;flex-basis:100%;padding:10px 0 18px;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav a{font-size:16px;padding:10px 8px;border-bottom:1px solid var(--line)}nav a[aria-current]{border-bottom:1px solid #4a7c8c}.hero{display:flex;flex-direction:column-reverse;min-height:0}.hero-art{height:320px;width:100%;padding:28px}.hero-art:before{width:340px;height:340px}.logo-halo{width:270px}.hero-caption{display:none}.hero-copy{margin:0;padding:30px 26px 65px;width:100%}.hero h1{font-size:clamp(35px,10vw,49px);margin-bottom:18px}.hero-lead{font-size:16px}.actions{gap:10px}.button{width:100%}.section{padding:70px 24px}.section h2{font-size:30px}.story-section p br,.hero-lead br{display:none}.story-intro{font-size:18px}.card-grid{grid-template-columns:1fr}.card{min-height:0}.card p{min-height:0}.social-band{display:block}.social-band .button{margin-top:28px}.page-hero{padding:70px 20px}.page-hero h1{font-size:38px}.split{grid-template-columns:1fr;gap:12px}.prose blockquote{font-size:21px;margin:35px 0}.empty-list{padding:50px 22px}.steps article{grid-template-columns:50px 1fr;gap:15px}.steps h2{font-size:23px}.note{padding:28px}.footer-inner{display:block}.footer-links{margin-top:30px;grid-template-columns:1fr 1fr;gap:10px}.copyright{text-align:left}}
/* Photo-led direction */
:root{--paper:#fff;--ink:#2d3d45;--blue-soft:#f2f9fb;--line:#e2e9e9}
.hero{display:block;position:relative;min-height:0;background:#fff;overflow:visible;padding-bottom:72px}
.hero-art{display:block;height:clamp(440px,48vw,680px);padding:0;width:100%;overflow:hidden}
.hero-art:before{display:none}
.hero-art>img{display:block;width:100%;height:100%;object-fit:cover;object-position:center 53%}
.hero-copy{position:relative;z-index:1;width:min(610px,48vw);max-width:none;margin:-178px max(4vw,calc((100vw - 1160px)/2)) 0 auto;padding:38px 48px 44px;background:rgba(255,255,255,.97);box-shadow:0 16px 45px rgba(29,54,65,.08)}
.hero h1{font-size:clamp(34px,3.5vw,52px);line-height:1.45;margin-bottom:16px}
.hero-lead{font-size:16px;margin:0}
.hero .actions{margin-top:22px}
.hero .button{min-height:48px}
.story-section{padding-top:70px}
.paths{background:#f7fbfc}
.photo-grid{max-width:var(--max);margin:auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.photo-card{background:#fff;overflow:hidden;border-radius:26px 26px 4px 4px;box-shadow:0 4px 25px rgba(45,70,80,.055)}
.photo-card>img{display:block;width:100%;height:270px;object-fit:cover}
.photo-card:nth-child(1)>img{object-position:center 37%}
.photo-card:nth-child(2)>img{object-position:center 56%}
.photo-card:nth-child(3)>img{object-position:center 48%}
.photo-card>div{padding:26px 26px 35px}
.photo-card .eyebrow{margin-bottom:6px}
.photo-card h3{font-size:26px;font-family:'Yu Mincho','Hiragino Mincho ProN',serif;font-weight:500;letter-spacing:.05em;margin:0 0 8px}
.photo-card p:not(.eyebrow){margin:0;min-height:58px}
.social-band{background:#e6f3f7;color:var(--ink)}
.social-band .eyebrow{color:var(--gold)}
.social-band .light{background:var(--ink);color:white}
@media(max-width:900px){.hero-copy{width:min(600px,60vw);padding:30px 35px;margin-top:-125px}.photo-card>img{height:220px}}
@media(max-width:700px){.hero{display:block;padding-bottom:0}.hero-art{height:clamp(300px,68vw,440px);padding:0}.hero-art>img{object-position:49% 52%}.hero-copy{width:100%;margin:0;padding:32px 25px 58px;box-shadow:none}.hero h1{font-size:clamp(33px,9vw,46px)}.hero .actions{margin-top:27px}.story-section{padding-top:65px}.photo-grid{grid-template-columns:1fr;gap:26px}.photo-card>img{height:58vw;max-height:350px}.photo-card p:not(.eyebrow){min-height:0}.photo-card>div{padding:24px 25px 30px}}
.photo-page-hero{min-height:400px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;padding:80px max(28px,calc((100vw - 1160px)/2));background-size:cover;background-position:center;color:var(--ink)}
.photo-page-hero .eyebrow,.photo-page-hero h1,.photo-page-hero>p:last-child{position:relative;max-width:540px}
.about-photo-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.87) 36%,rgba(255,255,255,.04) 73%),url('sleeping-dog.jpeg');background-position:center,center 52%}
.family-photo-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.88) 29%,rgba(255,255,255,.06) 73%),url('family-puppies.jpeg');background-position:center,center 64%}
.adoption-photo-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.85) 36%,rgba(255,255,255,.02) 76%),url('hero-dogs.jpeg');background-position:center,center 48%}
.support-photo-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 36%,rgba(255,255,255,.02) 78%),url('sleeping-kitten.jpeg');background-position:center,center 46%}
@media(max-width:700px){.photo-page-hero{min-height:0;height:auto;display:block;padding:300px 24px 46px;background-size:100% auto;background-repeat:no-repeat;background-position:top center;background-color:white}.photo-page-hero .eyebrow{margin-top:12px}.about-photo-hero{background-image:url('sleeping-dog.jpeg');background-position:center top}.family-photo-hero{background-image:url('family-puppies.jpeg');background-position:center 70%}.adoption-photo-hero{background-image:url('hero-dogs.jpeg');background-position:center top}.support-photo-hero{background-image:url('sleeping-kitten.jpeg');background-position:center top}}
.site-footer .footer-inner img{mix-blend-mode:multiply}
@media(max-width:700px){.story-section p br{display:initial}}

.grooming-photo-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.97) 0%,rgba(255,255,255,.88) 38%,rgba(255,255,255,.06) 78%),url('volunteer-grooming.jpeg');background-position:center,center 48%}
.grooming-care-photo{max-width:900px;margin:28px auto 0;padding:0 28px}.grooming-care-photo img{display:block;width:100%;height:auto}
@media(max-width:700px){.grooming-care-photo{margin-top:0;padding:0 24px}}
.foster-photo-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.84) 36%,rgba(255,255,255,.03) 76%),url('sleeping-dog.jpeg');background-position:center,center 50%}
@media(max-width:1600px){.header-inner{flex-wrap:wrap}.menu-toggle{display:block;margin-left:auto;border:1px solid var(--line);background:white;padding:8px 12px;color:var(--ink);font:inherit;font-size:14px;cursor:pointer}nav{display:none;flex-basis:100%;padding:10px 0 18px;flex-direction:column;align-items:stretch;gap:0}nav.open{display:flex}nav a{font-size:16px;padding:10px 8px;border-bottom:1px solid var(--line)}}
@media(max-width:700px){.grooming-photo-hero{background-image:url('volunteer-grooming.jpeg');background-position:center top}.foster-photo-hero{background-image:url('sleeping-dog.jpeg');background-position:center top}}
@media(max-width:700px){
 .photo-page-hero{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;min-height:0;padding:0 24px 44px;background:none;background-color:white}
 .photo-page-hero::before{content:"";display:block;align-self:stretch;height:clamp(260px,78vw,410px);margin:0 -24px 30px;background-size:cover;background-position:center}
 .photo-page-hero .eyebrow{margin:0 0 12px}
 .photo-page-hero h1{font-size:clamp(32px,8vw,42px);line-height:1.4;margin:0 0 10px}
 .about-photo-hero::before{background-image:url('sleeping-dog.jpeg');background-position:center 48%}
 .family-photo-hero::before{background-image:url('family-puppies.jpeg');background-position:center 70%}
 .adoption-photo-hero::before{background-image:url('hero-dogs.jpeg');background-position:center 48%}
 .support-photo-hero::before{background-image:url('sleeping-kitten.jpeg');background-position:center 48%}
 .grooming-photo-hero::before{background-image:url('volunteer-grooming.jpeg');background-position:center 50%}
 .foster-photo-hero::before{background-image:url('sleeping-dog.jpeg');background-position:center 48%}
}

.contact-lead{text-align:center;line-height:2;margin:0 0 35px}.contact-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.contact-option{padding:36px 20px;background:#f1f8f9;border:1px solid var(--line);text-align:center}.contact-option h2{font-size:24px;margin:12px 0 26px}.contact-option .button{width:100%;padding-inline:12px}.contact-option .number{display:block}
@media(max-width:700px){.contact-options{grid-template-columns:1fr;gap:14px}.contact-option{padding:28px 22px}.contact-option h2{margin-bottom:18px}.contact-lead br{display:initial}}

@media(max-width:700px){.family-meet .split{gap:4px}.family-meet h2{margin-bottom:0}}
.pet-section{padding-top:72px;padding-bottom:80px}.pet-profile{max-width:1080px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start}.pet-gallery{min-width:0}.pet-slides{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-inline:contain;scrollbar-width:none;aspect-ratio:4/5;border-radius:18px;background:#eaf4f5}.pet-slides::-webkit-scrollbar{display:none}.pet-slide{flex:0 0 100%;scroll-snap-align:start;min-width:0}.pet-slide img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}.pet-gallery-controls{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:12px;font-size:14px;color:#55717b}.pet-gallery-controls>div{display:flex;gap:8px}.pet-gallery-controls button{width:42px;height:42px;border:1px solid var(--line);border-radius:50%;background:white;color:var(--ink);font:normal 26px/1 sans-serif;cursor:pointer}.pet-story h2{margin:0 0 8px}.pet-story h3{font-size:21px;margin:33px 0 8px}.pet-story p{margin:0 0 18px;line-height:2}.pet-story .eyebrow{margin-bottom:8px}.pet-meta{color:#56717d;font-weight:600}.pet-intro{font-size:18px}.pet-message{background:var(--blue-soft);padding:22px 26px;margin-top:34px}.pet-message h3{margin:0 0 8px}.pet-message p{margin:0}.pet-story .actions{margin-top:28px}
.pet-profile+.pet-profile{margin-top:90px;padding-top:80px;border-top:1px solid var(--line)}
@media(max-width:800px){.pet-profile{grid-template-columns:1fr;gap:30px;max-width:620px}.pet-section{padding-top:44px;padding-bottom:64px}.pet-slides{aspect-ratio:4/5}.pet-story h3{margin-top:28px}.pet-intro{font-size:17px}}
@media(max-width:800px){.pet-profile+.pet-profile{margin-top:64px;padding-top:55px}}

.elle-moments{margin:32px 0 48px}.elle-moments figcaption{font-family:'Yu Mincho','Hiragino Mincho ProN',serif;color:#476f7b;font-size:21px;letter-spacing:.06em;margin-bottom:17px}.elle-moments-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.elle-moments img{display:block;width:100%;height:270px;object-fit:contain;background:#f5f3ee;border-radius:16px}.elle-moments.after{margin-top:46px;margin-bottom:0}.elle-moments.after img{height:340px}
@media(max-width:700px){.elle-moments{margin:24px 0 35px}.elle-moments figcaption{font-size:18px}.elle-moments-grid{gap:10px}.elle-moments.rescue img{height:32vw;min-height:120px}.elle-moments.after .elle-moments-grid{grid-template-columns:1fr;gap:16px}.elle-moments.after img{height:auto;max-height:440px;object-fit:contain}.elle-moments.after{margin-top:35px}}

.donation-methods{display:grid;gap:12px;margin-top:22px}.payment-box{padding:15px;background:#f4f8f8;border:1px solid var(--line);border-radius:8px}.payment-box strong{display:block;font-size:15px;margin-bottom:7px}.payment-box p{font-size:14px;line-height:1.75;margin:0;min-height:0;overflow-wrap:anywhere}.payment-box .text-link{font-size:14px;line-height:1.6;overflow-wrap:anywhere}.support-grid .text-link{margin-top:12px}
@media(max-width:900px){.support-grid{grid-template-columns:1fr}.support-grid article{padding:30px}}

.support-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.support-grid article:first-child{grid-column:1/-1}.donation-methods{grid-template-columns:repeat(3,minmax(0,1fr))}.donation-reason{max-width:720px;line-height:1.9}.volunteer-list{padding-left:1.3em;margin:18px 0 25px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 20px;line-height:1.7}.volunteer-list li::marker{color:#80b5c6}
@media(max-width:900px){.support-grid{grid-template-columns:1fr}.support-grid article:first-child{grid-column:auto}.donation-methods,.volunteer-list{grid-template-columns:1fr}.donation-reason br{display:none}}

/* Adoption process illustrations */
.steps .illustrated-step{grid-template-columns:56px minmax(180px,270px) minmax(0,1fr);gap:24px;align-items:center;padding:35px 0}
.adoption-art{position:relative;width:100%;aspect-ratio:768/430;overflow:hidden;background:#fff;border-radius:12px}
.adoption-art img{position:absolute;top:0;left:0;width:200%;max-width:none;height:auto;display:block}
.adoption-art-2 img{transform:translateX(-50%)}
.adoption-art-3 img{transform:translateY(-48%)}
.adoption-art-4 img{transform:translate(-50%,-48%)}
@media(max-width:700px){.steps .illustrated-step{grid-template-columns:40px minmax(0,1fr);gap:12px 16px;align-items:start}.illustrated-step>span{grid-column:1;grid-row:1}.adoption-art{grid-column:2;grid-row:1;width:min(100%,300px);justify-self:center}.illustrated-step .step-copy{grid-column:2;grid-row:2}.steps .illustrated-step:first-child{padding-top:0}}

/* Happy tails: photo and name only, ordered newest first by build.py. */
.graduates-wrap{max-width:var(--max);margin:auto}
.graduate-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 26px}
.graduate-card{margin:0;min-width:0;text-align:center}
.graduate-card img{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.graduate-card figcaption{margin-top:14px;font-size:20px;line-height:1.6;overflow-wrap:anywhere}
@media(max-width:700px){.graduate-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 16px}.graduate-card figcaption{font-size:18px;margin-top:10px}}
