:root{--bg:#fff8ef;--ink:#2a2140;--mute:#6b6280;--saf:#ff9933;--grn:#138808;--pink:#ff5d8f;--blu:#3b6cff;--vio:#8a5cff;--card:rgba(255,255,255,.82);--line:#f1e3cf}
*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;scroll-padding-top:70px}
body{font-family:Nunito,system-ui,sans-serif;background:linear-gradient(160deg,#fff8ef,#f3f6ff 50%,#f0fff4);background-attachment:fixed;color:var(--ink);line-height:1.65;overflow-x:hidden}
h1,h2,h3,.logo{font-family:Fraunces,Georgia,serif}
#bg{position:fixed;inset:0;width:100%;height:100%;z-index:-1}
.mandala{position:fixed;z-index:-1;color:rgba(255,153,51,.28);width:560px;animation:spin 90s linear infinite}
.m1{top:-180px;right:-180px}.m2{bottom:-220px;left:-200px;color:rgba(19,136,8,.2);animation-direction:reverse}
@keyframes spin{to{transform:rotate(360deg)}}
#bar{position:fixed;top:0;left:0;height:4px;width:0;background:linear-gradient(90deg,var(--saf),#fff,var(--grn));z-index:99}
.nav{position:fixed;inset:0 0 auto;display:flex;justify-content:space-between;align-items:center;padding:12px 5vw;background:rgba(255,248,239,.78);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);z-index:50}
.logo{font-size:1.7rem;font-weight:800;color:var(--ink);text-decoration:none}
nav{display:flex;gap:4px}nav a{color:var(--mute);text-decoration:none;padding:8px 14px;border-radius:99px;font-weight:600;transition:.25s}
nav a:hover{background:#fff;color:var(--pink);transform:translateY(-2px) rotate(-2deg)}nav .cta{background:var(--ink);color:#fff}nav .cta:hover{background:var(--pink);color:#fff}
.burger{display:none;background:none;border:0;font-size:1.6rem;cursor:pointer}
.hero{min-height:100vh;display:grid;place-items:center;position:relative;padding:100px 5vw 40px;overflow:hidden}
.hero-c{text-align:center;max-width:620px;position:relative;z-index:2}
.hi{color:var(--saf);font-weight:800;font-size:1.2rem}
h1{font-size:clamp(2.8rem,9vw,6rem);line-height:1;font-weight:800;animation:rise 1s both}
h1 em{font-style:normal;background:linear-gradient(100deg,var(--saf),var(--pink),var(--vio),var(--blu));background-size:250%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:shine 6s linear infinite}
@keyframes shine{to{background-position:250%}}@keyframes rise{from{opacity:0;transform:translateY(40px)}}
.role{font-size:1.5rem;font-weight:600;margin-top:12px}.role b{color:var(--blu)}
.caret{display:inline-block;width:3px;height:1.2em;background:var(--saf);margin-left:3px;vertical-align:-.2em;animation:bl 1s steps(1) infinite}@keyframes bl{50%{opacity:0}}
.lead{color:var(--mute);margin:14px 0 24px;font-size:1.1rem}
.btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.btn{padding:13px 26px;border-radius:99px;border:2px solid var(--ink);color:var(--ink);text-decoration:none;font-weight:800;transition:.3s}
.btn:hover{transform:translateY(-3px) rotate(-1.5deg);box-shadow:0 12px 22px rgba(255,93,143,.25);border-color:var(--pink);color:var(--pink)}
.btn.solid{background:linear-gradient(100deg,var(--saf),var(--pink));border-color:transparent;color:#fff}.btn.solid:hover{color:#fff}
.pol{position:absolute;z-index:1;background:#fff;padding:8px 8px 26px;box-shadow:0 14px 30px rgba(60,40,90,.22);width:clamp(110px,15vw,190px);animation:bob 7s ease-in-out infinite;transition:.4s}
.pol:hover{transform:scale(1.15) rotate(0)!important;z-index:5}.pol img{width:100%;aspect-ratio:3/4;object-fit:cover;display:block}
.hp1{top:16%;left:5%;--r:-8deg}.hp2{bottom:8%;left:14%;--r:6deg;animation-delay:-2s}.hp3{top:12%;right:6%;--r:7deg;animation-delay:-4s}
.hp4{bottom:10%;right:9%;--r:-6deg;animation-delay:-1s}.hp5{top:48%;left:-1%;--r:10deg;animation-delay:-5s}
@keyframes bob{50%{transform:translateY(-16px) rotate(var(--r))}0%,100%{transform:translateY(0) rotate(var(--r))}}
.sec{max-width:1050px;margin:auto;padding:90px 5vw 10px}.sec.wide{max-width:1250px}
h2{font-size:clamp(2rem,5vw,3.1rem);font-weight:800;display:inline-block}
h2::after{content:"";display:block;height:6px;width:70%;margin-top:6px;border-radius:9px;background:repeating-linear-gradient(90deg,var(--saf) 0 14px,#fff 14px 20px,var(--grn) 20px 34px,#fff 34px 40px)}
.sub{color:var(--mute);margin:12px 0 22px}
.tl{margin-top:28px;position:relative;display:grid;gap:30px}
.tl::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:3px;background:linear-gradient(var(--saf),var(--pink),var(--grn));transform:translateX(-50%)}
.step{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;opacity:0;transform:translateY(40px);transition:1s cubic-bezier(.2,.8,.2,1)}
.step.show{opacity:1;transform:none}.step:nth-child(even) img{order:2}
.step img{width:min(100%,280px);justify-self:end;border-radius:20px;border:6px solid #fff;box-shadow:0 12px 28px rgba(60,40,90,.2);aspect-ratio:4/3;object-fit:cover;transition:.4s}
.step:nth-child(even) img{justify-self:start}.step img:hover{transform:rotate(-3deg) scale(1.05)}
.step>div{background:var(--card);padding:18px 22px;border-radius:18px;border:1px solid var(--line)}.step h3{font-size:1.3rem}
.wall{columns:4 210px;column-gap:18px}
.wall figure{break-inside:avoid;margin:0 0 20px;background:#fff;padding:8px 8px 10px;box-shadow:0 8px 20px rgba(60,40,90,.16);cursor:zoom-in;transform:rotate(var(--r));transition:transform .35s,box-shadow .35s;opacity:0;animation:pop .6s forwards}
.wall figure:hover{transform:rotate(0) scale(1.07);box-shadow:0 20px 38px rgba(255,93,143,.3);z-index:3;position:relative}
.wall img{width:100%;display:block}.wall figcaption{text-align:center;font-weight:700;font-size:.9rem;margin-top:8px;color:var(--mute)}
@keyframes pop{from{opacity:0;transform:scale(.85) translateY(20px)}to{opacity:1}}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:18px;margin-top:22px}.cards.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:22px;text-align:center;text-decoration:none;color:var(--ink);transition:.35s;display:block}
.card:hover{transform:translateY(-8px) rotate(-1.5deg);box-shadow:0 18px 34px rgba(138,92,255,.18);border-color:var(--vio)}
.card .e{font-size:2.4rem;display:block;transition:.4s}.card:hover .e{transform:scale(1.3) rotate(12deg)}.card p{color:var(--mute)}
.family-photo{display:flex;gap:26px;align-items:center;flex-wrap:wrap;margin-top:28px;justify-content:center}
.family-photo img{width:220px;border-radius:20px;border:6px solid #fff;box-shadow:0 12px 28px rgba(60,40,90,.2);transform:rotate(-3deg);transition:.4s}.family-photo img:hover{transform:rotate(2deg) scale(1.05)}
.family-photo p{font-size:1.2rem;max-width:30ch}
.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:20px}.filters button{border:1.5px solid var(--line);background:#fff;padding:8px 18px;border-radius:99px;cursor:pointer;font:inherit;font-weight:700;color:var(--mute);transition:.25s}
.filters button:hover{border-color:var(--pink);color:var(--pink);transform:translateY(-2px)}.filters button.on{background:var(--ink);color:#fff;border-color:var(--ink)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.pc{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--c);border-radius:18px;padding:18px;animation:pop .5s both;transition:.3s}
.pc:hover{transform:translateY(-6px) rotate(1deg);box-shadow:0 16px 30px rgba(60,40,90,.15)}.pc em{font-style:normal;color:var(--c);font-weight:800;font-size:.85rem}.pc h3{font-size:1.25rem}.pc p{font-size:.93rem;color:var(--mute)}
.contact{padding-bottom:70px}footer{text-align:center;padding:26px;color:var(--mute);border-top:1px solid var(--line);background:rgba(255,255,255,.6)}
#lb{position:fixed;inset:0;background:rgba(30,20,50,.86);display:flex;align-items:center;justify-content:center;z-index:100;animation:fd .3s}#lb[hidden]{display:none}@keyframes fd{from{opacity:0}}
#lb figure{max-width:86vw;text-align:center;color:#fff}#li{max-width:86vw;max-height:78vh;border-radius:12px;border:6px solid #fff}#lb button{background:rgba(255,255,255,.18);border:0;color:#fff;font-size:2rem;width:52px;height:52px;border-radius:50%;cursor:pointer;margin:8px;transition:.25s}#lb button:hover{background:var(--pink);transform:scale(1.12)}#x{position:absolute;top:10px;right:10px}
a:focus-visible,button:focus-visible{outline:3px solid var(--saf);outline-offset:3px}
@media(max-width:820px){.burger{display:block}nav{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:#fff8ef;padding:12px;display:none}.open nav{display:flex}.pol{opacity:.55;width:90px}.hp5{display:none}.tl::before{left:12px}.step{grid-template-columns:1fr;gap:12px;padding-left:34px}.step img,.step:nth-child(even) img{order:0;justify-self:start}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.step,.wall figure{opacity:1;transform:none}}
