@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=DM+Serif+Display:ital@0;1&display=swap');
:root{--paper:#faf6ef;--ink:#463d34;--muted:#796c60;--rose:#ae5f5c;--line:#e4d9ca;--blush:#f1e5dd}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;font-size:15px;line-height:1.7}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:3px solid var(--rose);outline-offset:5px}img{display:block;width:100%;object-fit:cover}header{max-width:1320px;margin:auto;height:106px;display:flex;align-items:center;justify-content:space-between;padding:0 50px;border-bottom:1px solid var(--line)}.brand{font-family:'DM Serif Display',Georgia,serif;font-size:32px;letter-spacing:-1.5px}.brand span{color:var(--rose)}.brand i{font:30px Georgia;margin-left:8px;color:var(--rose)}nav{display:flex;gap:35px;font-size:13px}nav a:hover{color:var(--rose)}.header-note,.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px}.header-note{color:var(--muted);font-size:9px}.wrap{max-width:1180px;margin:0 auto;padding:0 30px}.hero{display:grid;grid-template-columns:1fr 1fr;gap:30px;min-height:660px;align-items:center;padding-top:55px;padding-bottom:70px}.eyebrow{color:var(--rose)}h1,h2,h3{font-family:'DM Serif Display',Georgia,serif;font-weight:400;line-height:1.12;margin:20px 0}h1{font-size:66px;letter-spacing:-2px}em{font-weight:400;color:var(--rose)}.intro p{color:var(--muted);margin:24px 0;font-size:15px}.primary{display:inline-flex;align-items:center;gap:42px;background:var(--rose);color:white;border-radius:5px;padding:13px 23px;font-size:12px}.primary:hover{background:#944c4a}.handwritten,.signature{font:italic 18px Georgia,serif;color:var(--rose)}.intro .handwritten{margin-top:24px;font-size:16px}.hero-art{position:relative;height:500px}.polaroid{border:0;background:#fffcf7;box-shadow:0 12px 30px #4b372324;padding:13px 13px 0;display:block}.polaroid span{display:block;font:italic 17px Georgia;text-align:center;padding:19px 0 22px}.main-photo{position:absolute;top:10px;left:30px;width:83%;transform:rotate(-5deg)}.main-photo img{height:340px;object-position:44% center}.main-photo:before{content:'';position:absolute;width:105px;height:31px;background:#d7c5a6a8;top:-15px;left:37%;transform:rotate(3deg)}.little-photo{position:absolute;width:42%;right:-8px;bottom:-4px;transform:rotate(8deg);padding:9px 9px 0}.little-photo img{height:180px;object-position:center 29%}.little-photo span{font-size:14px;padding:14px 0}.doodle{position:absolute;left:-4px;top:-30px;font:68px Georgia;color:var(--rose);transform:rotate(-17deg)}.stamp{position:absolute;left:18px;bottom:0;background:#e6eadf;border:1px dashed #99a18b;outline:7px solid #e6eadf;border-radius:50%;width:105px;height:105px;text-align:center;padding-top:22px;line-height:1.25;font:24px Georgia;transform:rotate(-12deg)}.stamp small{font:8px sans-serif;letter-spacing:1px}.ribbon{display:flex;justify-content:center;gap:55px;align-items:center;background:var(--blush);padding:21px 20px;color:#756156;font:italic 18px Georgia}.ribbon b{color:var(--rose);font-weight:400}.stories{padding-top:90px;padding-bottom:90px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:38px}h2{font-size:42px;letter-spacing:-.7px}.section-heading h2{margin-bottom:0}.section-heading p{font-size:13px;color:var(--muted);margin:0 0 5px}.story-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.story-image{width:100%;padding:0;border:0;position:relative;overflow:hidden;border-radius:7px}.story-image img{height:240px;transition:transform .4s}.story-image:hover img{transform:scale(1.035)}.story-image span{position:absolute;bottom:15px;right:15px;background:#fff9efed;border-radius:20px;padding:5px 12px;font-size:10px}.meta{display:flex;justify-content:space-between;color:var(--rose);font-size:9px;letter-spacing:1.6px;margin-top:22px}.meta span{color:#a69787}h3{font-size:25px;margin:12px 0}article p{font-size:13px;color:var(--muted);line-height:1.8;margin:0}.album-section{background:#f1eee6;padding:75px 0 80px}.filters{display:flex;gap:10px;margin:30px 0}.filters button{border:1px solid #d8cec0;background:transparent;border-radius:30px;padding:7px 20px;font-size:12px}.filters .active{background:var(--ink);color:white;border-color:var(--ink)}#count{margin-left:auto;font-size:11px;color:var(--muted);align-self:center}.gallery{columns:4;column-gap:18px}.tile{width:100%;break-inside:avoid;margin:0 0 18px;padding:8px 8px 0;background:#fffcf7;border:none;border-radius:3px;transition:transform .2s}.tile:hover{transform:translateY(-4px)}.tile img{border-radius:2px;max-height:300px}.tile span{display:block;text-align:left;font-size:11px;padding:12px 5px}.family{display:grid;grid-template-columns:.85fr 1.15fr;gap:85px;align-items:center;padding-top:100px;padding-bottom:100px}.family-photo{background:#fffcf7;padding:12px;transform:rotate(-3deg);box-shadow:0 9px 24px #463d341c;max-width:350px;margin:auto}.family-photo img{height:390px;object-position:center 40%}.family-photo span{display:block;text-align:center;font:italic 17px Georgia;padding:20px 0 9px}.family h2{font-size:39px}.family p{color:var(--muted);font-size:14px}.signature{display:block;margin-top:27px}.closing{text-align:center;padding:54px 20px 60px;background:var(--blush)}.closing>span{color:var(--rose);font:40px Georgia}.closing h2{font-size:36px;margin:12px}.closing p{font-size:13px;color:var(--muted)}.closing a{font-size:11px;border-bottom:1px solid var(--rose);padding-bottom:5px;display:inline-block;margin-top:12px}footer{display:flex;align-items:center;justify-content:space-between;max-width:1240px;margin:auto;padding:35px 30px}footer>span{font-size:10px;color:var(--muted)}dialog{padding:0;border:0;border-radius:12px;background:var(--paper);width:min(900px,94vw);max-height:94dvh;overflow:auto;color:var(--ink)}dialog::backdrop{background:#211b17db;backdrop-filter:blur(6px)}#close{position:absolute;right:12px;top:12px;z-index:2;border:0;border-radius:50%;background:#fff7eb;width:40px;height:40px;font-size:27px}.viewer-image{position:relative;background:#24201c}.viewer-image img{width:100%;height:60dvh;object-fit:contain}.viewer-image button{position:absolute;top:45%;border:0;background:#fff7ebd9;border-radius:50%;height:42px;width:42px;font-size:30px;line-height:1}#prev{left:12px}#next{right:12px}.caption{padding:22px 30px}.caption h2{font-size:29px;margin:9px 0}.caption p{font-size:13px;margin:8px 0}.viewer-bottom{display:flex;justify-content:space-between;align-items:center;margin-top:15px;font-size:11px}#compare{background:none;border:1px solid var(--line);border-radius:20px;padding:6px 15px;font-size:11px}body.modal-open{overflow:hidden}@media(max-width:900px){.header-note{display:none}.hero{gap:0}h1{font-size:52px}.hero-art{height:430px}.main-photo img{height:280px}.little-photo img{height:140px}.ribbon{gap:25px}.gallery{columns:3}.family{gap:40px}.story-image img{height:200px}}@media(max-width:600px){header{height:85px;padding:0 22px}.brand{font-size:27px}nav{gap:16px;font-size:11px}nav a:last-child{display:none}.wrap{padding-left:24px;padding-right:24px}.hero{grid-template-columns:1fr;padding-top:38px;padding-bottom:45px}.eyebrow{font-size:9px;letter-spacing:1.7px}h1{font-size:52px;margin:17px 0}.intro p{font-size:14px}.hero-art{height:405px;margin-top:52px}.main-photo{left:15px;width:81%}.main-photo img{height:265px}.little-photo{width:43%;right:0;bottom:0}.little-photo img{height:145px}.stamp{width:80px;height:80px;font-size:20px;padding-top:16px;left:7px;bottom:12px}.stamp small{font-size:6px}.doodle{left:auto;right:4px;font-size:50px}.ribbon{gap:15px;font-size:13px;padding:19px 10px}.ribbon span:last-child,.ribbon b:last-of-type{display:none}.stories{padding-top:55px;padding-bottom:55px}.section-heading{display:block;margin-bottom:25px}h2{font-size:34px}.section-heading p,.section-heading .handwritten{display:block;margin-top:20px;font-size:13px}.story-grid{grid-template-columns:1fr;gap:32px}.story-image img{height:260px}.meta{margin-top:14px}h3{font-size:26px}.album-section{padding:50px 0}.filters{gap:6px;flex-wrap:wrap}.filters button{padding:6px 12px;font-size:11px}#count{width:100%;margin:4px 0 0}.gallery{columns:2;column-gap:12px}.tile{margin-bottom:12px;padding:5px 5px 0}.tile span{font-size:10px;padding:9px 3px}.family{grid-template-columns:1fr;padding-top:60px;padding-bottom:55px;gap:40px}.family-photo{max-width:280px}.family-photo img{height:340px}.family h2{font-size:34px}.closing h2{font-size:30px}footer{flex-wrap:wrap;gap:10px;padding:25px}footer>span:last-child{width:100%}.caption{padding:20px}.viewer-image img{height:55dvh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Jardín de Tessa: huellitas, flores y tonos de primavera */
body{background-color:#fff8ee;background-image:url('garden-pattern.svg'),radial-gradient(ellipse at 4% 10%,#f7dfdf 0,transparent 42%),radial-gradient(ellipse at 96% 30%,#e6edd9 0,transparent 40%),radial-gradient(ellipse at 15% 70%,#f8e8c8 0,transparent 45%);background-size:480px 480px,100% 1100px,100% 1400px,100% 1500px}
header{background:#fffaf2d9;border-bottom-color:#dccfbf;border-radius:0 0 20px 20px}
.intro{position:relative}.intro:before{content:'';position:absolute;inset:-20px -16px;z-index:-1;background:radial-gradient(ellipse,#fff8eef5 40%,#fff8ee00 73%)}
.ribbon{background:linear-gradient(100deg,#edcfd5,#f5e6be 50%,#dfe8ce);border-top:1px solid #e2c5bd;border-bottom:1px solid #e2c5bd}
.album-section{background-color:#eaf0e1;background-image:url('garden-pattern.svg'),linear-gradient(130deg,#e4eddbbd,#f8e9d8cc 50%,#eee2ecb8);background-size:480px 480px,100% 100%;border-top:1px solid #d5ddc7;border-bottom:1px solid #d5ddc7}
.story-grid article{background:#fffaf1e8;border-radius:10px;padding:10px 10px 18px;box-shadow:0 5px 18px #8e79500b}.story-grid article .meta,.story-grid article h3,.story-grid article p{margin-left:7px;margin-right:7px}
.family>div:last-child{background:#fffaf0e8;padding:25px;border-radius:24px 8px 28px 8px;border:1px solid #e9dfcbb8}
.closing{background-color:#f4dce1;background-image:url('garden-pattern.svg'),linear-gradient(110deg,#eed5e3b8,#fae5c9cc 55%,#e0e8d1ba);background-size:480px 480px,100% 100%;border-top:1px solid #ddc4ba}
footer{background:#fff9efbf}.filters button{background:#fffaf2ba}.filters .active{background:var(--ink)}
@media(max-width:600px){body,.album-section,.closing{background-size:360px 360px,100% 100%,100% 100%,100% 100%}.family>div:last-child{padding:21px}.story-grid{gap:26px}}
