*{box-sizing:border-box}body{font-family:system-ui,-apple-system,BlinkMacSystemFont,segoe ui,sans-serif;max-width:1100px;margin:0 auto;padding:2rem;line-height:1.6;color:#222}main>h1{margin-top:0}a{color:inherit;text-decoration:none}.site-header{padding:2rem 0}.brand h1{font-size:clamp(2.5rem,6vw,4rem);font-weight:600;letter-spacing:-.05em;margin:0}.brand a{text-decoration:none}.tagline{font-size:1.1rem;color:#666;margin-top:.5rem}.main-nav{margin-top:2.5rem}.main-nav ul{display:flex;flex-wrap:wrap;gap:2rem;list-style:none;padding:0;margin:0}.main-nav a{font-size:1rem;transition:opacity .2s ease}.main-nav a:hover{opacity:.6}.main-nav a.active{font-weight:600}main{margin-bottom:5rem}.hero{display:grid;gap:3rem}.hero-image{height:min(60vh,600px);border-radius:1rem;background-color:#eee;overflow:hidden}.hero-image img{width:100%;height:100%;object-fit:cover;object-position:center 30%;display:block}.hero-text{max-width:1200px}.hero-text h2{font-size:clamp(1.8rem,3vw,2.5rem);line-height:1.2;font-weight:500}.hero-text p{max-width:700px}.page{max-width:1200px;margin:0}.page h1{font-size:clamp(1.8rem,3vw,2.4rem);font-weight:500;margin-bottom:2rem}.page p{max-width:700px}footer{margin-top:5rem;padding-top:2rem}.footer-credits{font-weight:100}.dogs{margin-top:5rem}.dog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.dog-card{padding:1.5rem;border-radius:1rem;transition:transform .2s ease}.dog-card-link{display:block;color:inherit;text-decoration:none;height:100%}.dog-card:hover{transform:translateY(-4px)}.dog-card p{color:#666}.dog-image{aspect-ratio:1/1;background-color:#eee;border-radius:1rem;margin-bottom:1rem;overflow:hidden}.dog-image img{width:100%;height:100%;object-fit:cover;display:block}.dog-card h3{font-size:1.5rem;font-weight:500}.experiences{margin-top:5rem}.experience-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem;align-items:stretch}.experience-card{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;height:100%;padding:1.5rem;border-radius:1rem;background:#f5f5f5;transition:transform .2s ease}.experience-link{display:flex;gap:1.5rem;width:100%;color:inherit}.experience-card:hover{transform:translateY(-4px)}.experience-card h3{margin-top:0}.experience-icon{width:80px;height:80px;margin-bottom:1rem}.experience-icon img{display:block;width:80px;height:80px;object-fit:contain}.activities{margin-top:5rem}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:2rem}.gallery figure{margin:0;overflow:hidden;opacity:0;transform:scale(1);transition:opacity .3s ease,transform .3s ease}.gallery figure:not(.hidden){opacity:1;transform:scale(1)}.gallery figure.hidden{opacity:0;transform:scale(.95);pointer-events:none}.gallery img{display:block;width:100%;aspect-ratio:16/9;border-radius:1rem;object-fit:cover}.gallery figure:hover{transform:scale(1.03);cursor:pointer}.gallery figcaption{text-align:center;margin-top:.5rem;font-size:.9rem;color:#666}.image-viewer{display:none;position:fixed;z-index:1000;inset:0;background:rgba(0,0,0,.98);flex-direction:column;justify-content:flex-start;align-items:center;padding:2rem;touch-action:pan-y}.image-viewer .viewer-image-container{flex:1;min-height:0;display:flex;justify-content:center;align-items:center;position:relative}.image-viewer .viewer-image-container img{display:block;max-width:90vw;max-height:100%;width:auto;height:auto;border-radius:1rem}.image-viewer #viewer-image{position:relative}.image-viewer #viewer-image-next{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);max-width:90vw;max-height:100%;width:auto;height:auto;border-radius:1rem;opacity:0;transition:opacity .4s ease}.image-viewer .viewer-footer{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;width:min(90vw,1200px);margin-top:1rem}.image-viewer #viewer-caption{flex:1;min-width:0;color:#ccc;text-align:center;font-size:.95rem;overflow-wrap:anywhere;margin:0}.image-viewer #viewer-counter{flex:none;color:#777;white-space:nowrap;font-size:.8rem;text-align:right}.image-loader{position:absolute;inset:0;display:none;justify-content:center;align-items:center;z-index:20;background:rgba(0,0,0,.3)}.spinner{width:48px;height:48px;border:5px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.image-viewer .image-close{position:absolute;top:1rem;right:3rem;color:#fff;font-size:3rem;cursor:pointer}.image-viewer .image-prev,.image-viewer .image-next{position:absolute;top:50%;transform:translateY(-50%);background:0 0;border:none;color:#fff;font-size:3rem;cursor:pointer}.image-viewer .image-prev{left:2rem}.image-viewer .image-next{right:2rem}.filters{display:flex;flex-wrap:wrap;gap:.5rem;margin:2rem 0}.filters button{border:1px solid #ccc;background:0 0;padding:.25rem 1rem;border-radius:2rem;cursor:pointer;font-size:.85rem;transition:background-color .25s ease,color .25s ease,border-color .25s ease}.filters button:hover{border-color:#777}.filters button.active{background:#ddd;color:#222;border-color:#999;font-weight:500}.filters .filter-reset{margin-right:1.5rem;background:#f5f5f5;border-color:#ccc}.filters .filter-reset:hover{border-color:#999;background:#eee}.filters .filter-reset.active{background:#f5f5f5;color:inherit;border-color:#ccc;font-weight:inherit}.dog-profile-image{text-align:left}.dog-profile-image img{display:block;width:100%;max-width:500px;border-radius:1rem}.dog-profile-content{margin-top:3rem}.dog-profile-content a{color:#8b5e3c;text-decoration:none;border-bottom:1px solid #8b5e3c}.dog-profile-content a:hover{color:#5c3a24;border-bottom-color:transparent}.dog-nicknames{margin-top:3rem}.dog-nicknames h2{color:#8b5e3c}.dog-nicknames ul{padding-left:1.5rem}.dog-nicknames .comment{opacity:.75;margin-left:.3rem;color:#8b5e3c}.activity-image{float:left;margin-right:2rem}.activity-image img{width:180px;height:auto;border-radius:.5rem}.activity-content{margin-top:2rem}.activity-content::after{content:"";display:block;clear:both}.activity-content a{color:#8b5e3c;text-decoration:none;border-bottom:1px solid #8b5e3c}.activity-content a:hover{color:#5c3a24;border-bottom-color:transparent}@media(max-width:700px){.gallery{grid-template-columns:repeat(2,1fr);gap:1rem}.dog-grid{grid-template-columns:1fr}.experience-grid{grid-template-columns:1fr}.experience-card{flex-direction:column;align-items:flex-start}.experience-icon{width:100%;max-width:200px}.hero-image img{object-position:40% center}}@media(max-width:400px){.gallery{grid-template-columns:1fr}}