/* Full theme */
:root{ --bg:#fff; --ink:#111827; --muted:#6b7280; --card:#fff; --soft:#f7f8fc; --c1:#FF7A7A; --c2:#FFCC70; --c3:#7BDFF2; --c4:#B28DFF; --radius:18px; --shadow:0 12px 28px rgba(22,25,45,.08); }
*{box-sizing:border-box} html,body{height:100%} body{margin:0;font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.65}
.site-header{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.75);backdrop-filter:blur(8px);border-bottom:1px solid rgba(0,0,0,.06)}
.site-header .wrap{max-width:1100px;margin:0 auto;padding:12px 18px;display:flex;align-items:center;justify-content:space-between}
.brand{font-weight:900;letter-spacing:.3px;text-decoration:none;color:var(--ink)} .brand span{color:var(--c1)} .nav a{color:var(--muted);text-decoration:none;margin-left:16px;font-weight:700} .nav a:hover{color:var(--ink)}
.hero{position:relative;overflow:hidden}.hero .hero-inner{max-width:1100px;margin:0 auto;padding:96px 18px 110px;text-align:center}
.hero h1{font-family:'Playfair Display',serif;font-size:clamp(44px,7.5vw,86px);line-height:1.05;margin:0 0 8px}.hero h1 span{color:var(--c4)} .hero p{color:var(--muted);margin:0 0 14px;font-size:clamp(16px,2.3vw,20px)} .hero .tagline{color:#374151;font-weight:700}
.cta{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.btn{display:inline-block;padding:10px 16px;border-radius:999px;text-decoration:none;font-weight:800;border:2px solid transparent}.btn.primary{background:linear-gradient(135deg,var(--c1),var(--c2));color:#381b18;box-shadow:var(--shadow)}.btn.ghost{background:#fff;border-color:rgba(0,0,0,.08);color:var(--ink)}
.hero-blobs .blob{position:absolute;filter:blur(50px);opacity:.4;border-radius:50%;transform:translate(-50%,-50%)} .blob.b1{background:var(--c1);width:420px;height:420px;left:12%;top:10%} .blob.b2{background:var(--c3);width:500px;height:500px;left:85%;top:0%} .blob.b3{background:var(--c4);width:420px;height:420px;left:50%;top:95%}
.section{padding:80px 18px}.section.soft{background:var(--soft)} .wrap{max-width:1100px;margin:0 auto}.center{text-align:center}.muted{color:var(--muted)} .grid-2{display:grid;grid-template-columns:1fr;gap:18px}@media (min-width:900px){.grid-2{grid-template-columns:1.2fr .8fr}}
.card{background:var(--card);border:1px solid rgba(0,0,0,.06);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow)} .card.note{background:linear-gradient(180deg,rgba(148,247,197,.35),rgba(255,255,255,.85))}
.timeline{position:relative;list-style:none;padding-left:0;margin:26px 0 0}.timeline::before{content:'';position:absolute;left:50%;top:0;bottom:0;width:3px;background:rgba(0,0,0,.06);transform:translateX(-50%)} .timeline-fill{position:absolute;left:50%;top:0;width:3px;height:0;transform:translateX(-50%);background:linear-gradient(var(--c3),var(--c4));box-shadow:0 0 12px rgba(178,141,255,.45);border-radius:6px}
.t-item{display:grid;grid-template-columns:1fr;gap:12px;margin:28px 0;position:relative}.t-item .t-icon{position:absolute;left:calc(50% - 25px);top:-26px;width:50px;height:50px;border-radius:50%;background:#fff;border:3px solid #fff;box-shadow:var(--shadow);display:grid;place-items:center;z-index:2}.t-item.endcap .t-card{padding-top:26px}
.t-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:16px;padding:18px;box-shadow:var(--shadow)} .t-card time{display:inline-block;font-weight:800;color:var(--c4)} .t-card h3{margin:4px 0 6px;font-size:20px} .t-card p{margin:0 0 14px;color:var(--ink)}
.postcards.two{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.polaroid{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:12px;padding:8px 8px 10px;width:180px;box-shadow:var(--shadow);position:relative;transition:transform .2s ease,box-shadow .2s ease}.polaroid img{display:block;width:100%;height:130px;object-fit:cover;border-radius:8px}.polaroid:hover{transform:translateY(-3px) rotate(-1deg)} .tilt-l{transform:rotate(-3.5deg)} .tilt-r{transform:rotate(2.5deg)}
.memory.attach{position:relative}.memory.attach::before{content:'';position:absolute;left:50%;top:-14px;width:3px;height:14px;background:linear-gradient(var(--c3),var(--c4));transform:translateX(-50%)} .memory .memory-inner{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.bubble{max-width:96%;padding:10px 14px;border-radius:16px;line-height:1.5;box-shadow:var(--shadow)} .bubble.j{align-self:flex-start;background:#FFF6F6;border:1px solid rgba(255,122,122,.35)} .bubble.t{align-self:flex-end;background:#F5FFFA;border:1px solid rgba(148,247,197,.5)} .pov{margin-top:4px;text-align:center;color:var(--muted);font-size:14px;background:#fff;padding:8px 10px;border-radius:10px;border:1px solid rgba(0,0,0,.06);box-shadow:var(--shadow)}
@media (min-width:900px){.t-item{grid-template-columns:1fr 1fr}.t-item.left .t-card{grid-column:1/2;padding-right:26px}.t-item.left .memory{grid-column:1/2}.t-item.left::after{content:'';position:absolute;left:50%;top:28px;width:24px;height:3px;background:linear-gradient(90deg,transparent,var(--c3))}.t-item.right .t-card{grid-column:2/3;padding-left:26px}.t-item.right .memory{grid-column:2/3}.t-item.right::after{content:'';position:absolute;right:50%;top:28px;width:24px;height:3px;background:linear-gradient(90deg,var(--c4),transparent)} .t-item.center .t-card{grid-column:1/-1}}
.globe3d{width:100%;max-width:760px;aspect-ratio:1/1;margin:16px auto 0;border-radius:20px;background:radial-gradient(120% 120% at 50% 40%,rgba(255,255,255,.85),rgba(244,232,255,.8));box-shadow:var(--shadow);border:1px solid rgba(0,0,0,.06);position:relative;overflow:hidden}
.globe3d canvas{display:block;width:100% !important;height:100% !important}
.gallery{display:grid;gap:16px;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));margin-top:20px}.g-card{background:#fff;border:1px solid rgba(0,0,0,.06);border-radius:14px;overflow:hidden;box-shadow:var(--shadow)} .g-card img{display:block;width:100%;height:200px;object-fit:cover}
.site-footer{border-top:1px solid rgba(0,0,0,.06);background:#fff}.site-footer .wrap{max-width:1100px;margin:0 auto;padding:16px 18px;display:flex;align-items:center;justify-content:space-between}.site-footer .made{color:var(--muted)}
[data-reveal]{opacity:0;transform:translateY(14px)} .revealed{opacity:1 !important;transform:translateY(0) !important;transition:opacity .6s ease,transform .6s cubic-bezier(.2,.8,.2,1)}
@media (max-width:520px){.polaroid{width:calc(50% - 8px)} .polaroid img{height:110px} .tilt-l,.tilt-r{transform:rotate(.5deg)} .bubble{max-width:98%}}
