@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600;700&family=DM+Sans:wght@400;500;600;700&family=Caveat:wght@400;500;600&display=swap');
:root{--background:#fff9f5;--surface:#fff;--primary:#d98791;--secondary:#ebc5c7;--accent:#a96f75;--text:#39302f;--muted:#93827f;--paper:#f5eae1;--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',sans-serif;--hand:'Caveat',cursive}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--background);color:var(--text);font:16px/1.65 var(--sans);overflow-x:hidden}body.gate-locked{overflow:hidden}body.modal-open{overflow:hidden}.access-gate{position:fixed;inset:0;z-index:100;overflow:auto;background:radial-gradient(ellipse at 50% 40%,#fff 0%,var(--background) 68%);display:grid;place-items:center;padding:max(28px,env(safe-area-inset-top)) 20px max(24px,env(safe-area-inset-bottom));transition:opacity .6s,visibility .6s}.access-gate[hidden]{display:none}.access-gate.gate-opened{opacity:0;visibility:hidden}.gate-card{width:min(100%,470px);text-align:center;padding:30px 0}.gate-flower{display:block;color:var(--primary);font-size:25px;margin:14px 0 0}.gate-card h1{font-size:clamp(2.8rem,12vw,4rem);margin:5px 0 12px}.gate-intro{font:1.15rem var(--serif);color:var(--muted);margin:0 auto 26px;max-width:330px}.gate-question{border:0;border-top:1px solid #eadbd4;padding:15px 0 14px;margin:0;text-align:left}.gate-question:last-of-type{border-bottom:1px solid #eadbd4}.gate-question legend{float:left;width:100%;padding:0 0 11px;font-size:.82rem;font-weight:600}.gate-question legend span{color:var(--accent);font-size:.6rem;letter-spacing:.12em;margin-right:9px}.gate-question legend small{float:right;color:var(--muted);font-size:.53rem;letter-spacing:.1em;font-weight:500}.code-boxes{display:flex;justify-content:center;gap:8px;clear:both}.code-boxes input{width:clamp(39px,11vw,48px);height:48px;border:1px solid #e6d5cc;border-radius:4px;background:#fffdf9;text-align:center;font:600 1.05rem var(--sans);text-transform:uppercase;color:var(--accent);outline:none;transition:border-color .2s,box-shadow .2s}.code-boxes input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #a96f751c}.gate-error{min-height:24px;margin:8px 0;color:var(--accent);font:1.1rem var(--hand)}.gate-submit{width:100%;margin:3px 0}.gate-submit:disabled{opacity:.55;cursor:not-allowed}.gate-foot{color:var(--muted);font:1.15rem var(--hand);margin:15px 0 0}@keyframes gate-shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}.gate-shake{animation:gate-shake .25s ease}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--accent);outline-offset:4px}h1,h2,h3,p,figure{margin-top:0}h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.04}h1{font-size:clamp(3.2rem,12vw,6rem);letter-spacing:-.035em}h2{font-size:clamp(2.7rem,9vw,4.7rem);letter-spacing:-.025em}h3{font-size:2rem}em{color:var(--accent);font-weight:400}.eyebrow{font-size:.63rem;letter-spacing:.19em;font-weight:700;color:var(--accent);margin-bottom:18px}.lead{font:1.18rem/1.55 var(--serif);max-width:460px}.body-copy{color:#685b58;max-width:450px;font-size:.93rem}.section-pad{padding:100px max(7vw,24px);position:relative}.full-screen{min-height:100svh;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:70px 24px}.opening{background:radial-gradient(ellipse at 50% 43%,#fff 0%,var(--background) 64%);overflow:hidden}.opening-confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:5}.opening h1{margin:8px 0 10px}.opening-sub{color:var(--muted);font:1.22rem var(--serif)}.opening-foot{position:absolute;bottom:22px;font-size:.55rem;letter-spacing:.2em;color:#ab9994}.sprinkle{position:absolute;color:#d8a2a0;font-size:24px;animation:drift 5s ease-in-out infinite}.s1{left:12%;top:22%}.s2{right:13%;top:35%;animation-delay:-2s}.s3{right:20%;bottom:20%;animation-delay:-3s}.envelope{border:0;background:transparent;width:176px;height:126px;position:relative;margin:22px auto 8px;cursor:pointer;filter:drop-shadow(0 14px 13px #6b44421c);transition:transform .3s}.envelope:hover{transform:translateY(-4px)}.env-front{position:absolute;inset:22px 0 0;background:#dca9a6;clip-path:polygon(0 0,50% 60%,100% 0,100% 100%,0 100%);border-radius:4px;z-index:3}.env-flap{position:absolute;inset:20px 0 0;background:#e8c0b9;clip-path:polygon(0 0,100% 0,50% 62%);transform-origin:top;transition:transform .55s;z-index:4}.env-letter{position:absolute;z-index:2;top:14px;left:18px;right:18px;height:90px;padding-top:20px;background:#fffdf9;font:1.2rem var(--hand);color:var(--accent);transition:transform .55s}.opening-envelope .env-letter{padding:7px 3px 0;font-size:1rem;line-height:1.08}.envelope.opened .env-flap{transform:rotateX(180deg);z-index:1}.envelope.opened .env-letter{transform:translateY(-45px)}.opening-reveal{animation:fade-up .6s both}.opening-reveal h2{font-size:2rem;margin:10px}.tap-hint{font-size:.72rem;color:var(--muted);letter-spacing:.08em}.button{border:0;border-radius:99px;min-height:48px;padding:12px 23px;cursor:pointer;font-weight:600}.primary{background:var(--accent);color:white;box-shadow:0 5px 18px #a96f752d}.primary span{padding-left:12px}.text-button{background:none;border:0;color:var(--accent);padding:12px 0;min-height:44px;cursor:pointer;font-size:.8rem}.progress-track{height:3px;position:fixed;z-index:30;top:0;left:0;right:0;background:#f0e5df}.progress-track span{display:block;width:0;height:100%;background:var(--accent)}.menu-toggle{position:fixed;z-index:32;right:15px;top:18px;width:42px;height:42px;border-radius:50%;border:1px solid #dfcfca;background:#fff9f5ef;font-size:17px;cursor:pointer}.section-menu{position:fixed;z-index:31;right:15px;top:68px;width:220px;padding:10px;background:#fffdf9;border:1px solid #eadbd4;border-radius:12px;box-shadow:0 12px 35px #54342b1c;display:none}.section-menu.open{display:grid}.section-menu a{padding:9px 10px;text-decoration:none;color:var(--text);font-size:.7rem;border-bottom:1px solid #f0e9e4}.section-menu a:last-child{border:0}.section-menu a:first-letter{color:var(--accent)}
.intro{min-height:90svh;display:grid;grid-template-columns:1.1fr .9fr;align-items:center;gap:50px;background:#f8eee8}.intro-copy h2{margin:0 0 20px}.polaroid{background:white;padding:12px 12px 36px;box-shadow:0 12px 30px #633e3217;transform:rotate(3deg);max-width:300px}.intro-photo{justify-self:center;width:min(76%,290px)}.photo-placeholder{aspect-ratio:4/3;background:linear-gradient(145deg,#e9d2c6,#f3e6da 58%,#dfc8bd);display:grid;place-items:center;position:relative;overflow:hidden;color:#896e68}.photo-placeholder:before,.photo-placeholder:after{content:'';position:absolute;border-radius:50%;background:#fff6;width:120px;height:120px;right:-35px;top:-38px}.photo-placeholder:after{width:80px;height:80px;right:auto;left:-30px;top:auto;bottom:-30px}.photo-placeholder>span:first-child{font-size:.55rem;letter-spacing:.13em;text-align:center;padding:15px;z-index:1}.photo-tall{aspect-ratio:3/4}.photo-sun{position:absolute;right:16px;bottom:13px;font-size:26px}.polaroid figcaption{font:1.15rem var(--hand);text-align:center;padding-top:9px;color:#67514d}.polaroid figcaption span{color:var(--primary);margin-left:10px}.scroll-cue{position:absolute;bottom:23px;left:50%;transform:translateX(-50%);text-decoration:none;color:var(--muted);font-size:.7rem}.scroll-cue span{display:block;font-size:19px;color:var(--accent)}
.story{background:#fffdfb}.section-heading{text-align:center;max-width:760px;margin:0 auto 55px}.date-stamp{margin:34px auto 0;display:grid;gap:4px}.date-stamp span,.memory-copy .eyebrow{font-size:.58rem;letter-spacing:.16em}.date-stamp strong{font:2.5rem var(--serif);color:var(--accent)}.date-stamp small{font:1rem var(--serif);color:var(--muted)}.timeline{max-width:850px;margin:auto;position:relative}.timeline:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#e7d4cd}.memory-card{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;position:relative;padding:28px 0}.memory-card:before{content:'✳';position:absolute;left:calc(50% - 9px);top:50px;background:#fffdfb;color:var(--primary);z-index:1}.memory-card.reverse .memory-image{order:2}.memory-card.reverse .memory-copy{order:1;text-align:right}.memory-image{position:relative;padding:10px;background:white;box-shadow:0 8px 25px #452d2518;cursor:zoom-in;transform:rotate(-2deg)}.memory-card.reverse .memory-image{transform:rotate(2deg)}.memory-photo{width:100%;aspect-ratio:4/3;object-fit:cover;display:block}.memory-image .photo-placeholder{aspect-ratio:4/3}.image-zoom{position:absolute;bottom:13px;right:14px;color:var(--accent)}.memory-year{font:3rem var(--serif);color:var(--accent)}.memory-copy h3{margin:2px 0 10px}.memory-copy>p:not(.eyebrow){font-size:.86rem;color:#71615e}.extra-memory{padding-top:5px}.interlude{max-width:610px;margin:100px auto 5px;text-align:center;padding:45px 25px;background:#f7eee8;position:relative}.interlude h3{font-size:2.5rem;margin:0 0 15px}.interlude>p:last-child{color:#756762;font-size:.9rem}.interlude-mark{font-size:22px;color:var(--primary)}
.people{background:#f6ece6}.people .section-heading{margin-bottom:40px}.people-list{max-width:800px;margin:auto;display:grid;grid-template-columns:1fr 1fr;gap:14px}.person-chapter{border:0;text-align:left;border-radius:5px;padding:24px 20px;min-height:170px;display:grid;grid-template-columns:38px 1fr 20px;gap:8px;align-items:start;cursor:pointer;transition:transform .25s,box-shadow .25s}.person-chapter:hover{transform:translateY(-3px);box-shadow:0 9px 20px #44312a12}.person-chapter:nth-child(5){grid-column:1/-1}.rose{background:#f2dfdc}.sage{background:#e7ece3}.butter{background:#f2ead5}.lilac{background:#eae5ee}.peach{background:#f3e3d7}.chapter-num{font-size:.58rem;letter-spacing:.12em;color:var(--accent)}.chapter-icon{font-size:24px;color:var(--accent)}.chapter-text{display:grid}.chapter-text small{font-size:.58rem;letter-spacing:.14em;color:#8e6d68}.chapter-text strong{font:1.6rem var(--serif);padding:3px 0 7px}.chapter-text>span{font-size:.76rem;color:#655956;line-height:1.5}.chapter-arrow{color:var(--accent)}
.notes-section{background:#fffdfb}.notes-grid{max-width:820px;margin:auto;display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.note-card{height:190px;border:0;background:#f3e9df;padding:0;cursor:pointer;position:relative;transform:rotate(-1deg);transition:transform .35s;perspective:700px}.note-card:nth-child(even){transform:rotate(1.4deg);background:#f5e9e4}.note-card:nth-child(3n){background:#eef0e7}.note-card:hover{transform:translateY(-4px) rotate(0)}.note-front,.note-back{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px;backface-visibility:hidden;transition:transform .5s}.note-front{color:#8b716a}.note-front small{font-size:.5rem;letter-spacing:.1em;margin:20px 0 8px}.note-front b{font:1.1rem var(--hand);font-weight:500}.note-mark{font-size:21px;color:var(--primary)}.note-back{background:#fffdf8;font:1.3rem/1.25 var(--hand);color:#594642;transform:rotateY(180deg);box-shadow:inset 0 0 0 1px #eee3dc}.note-card.flipped .note-front{transform:rotateY(180deg)}.note-card.flipped .note-back{transform:rotateY(0)}
.quiz-section{background:#f4eae3}.quiz-paper{max-width:620px;margin:auto;background:#fffdf9;padding:42px clamp(22px,6vw,55px);box-shadow:0 8px 30px #54372b10;text-align:center}.quiz-paper h2{font-size:3.2rem}.quiz-progress{text-align:left;margin:28px 0}.quiz-progress span{font-size:.58rem;letter-spacing:.13em;color:var(--muted)}.quiz-progress div{height:3px;background:#eee4dd;margin-top:8px}.quiz-progress i{display:block;height:3px;background:var(--primary);transition:width .4s}.quiz-question{font-size:1.7rem;margin:26px 0}.quiz-options{display:grid;gap:9px}.quiz-option{min-height:52px;border:1px solid #eadbd4;background:white;text-align:left;padding:12px 16px;border-radius:3px;cursor:pointer;font-size:.85rem}.quiz-option span{float:right;color:var(--accent)}.quiz-option:disabled{opacity:.7}.quiz-feedback{min-height:26px;color:var(--accent);font:1.2rem var(--hand)}.quiz-result{padding:20px}.quiz-result h3{font-size:2rem}.result-flower{font-size:30px;color:var(--primary)}.outline{border:1px solid var(--accent);background:transparent;color:var(--accent)}
.letters-section{background:#fffdfb}.letter-grid{max-width:850px;margin:auto;display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.small-envelope{min-height:145px;background:#f5ebe4;border:1px solid #eddfd6;text-align:left;padding:20px;cursor:pointer;display:grid;grid-template-columns:45px 1fr;align-items:center;transition:transform .25s}.small-envelope:hover{transform:translateY(-3px)}.letter-icon{font-size:28px;color:var(--accent);grid-row:span 2}.small-envelope>span:nth-child(2){font:1.45rem var(--serif)}.small-envelope small{font-size:.52rem;letter-spacing:.13em;color:var(--muted)}.letter-modal,.lightbox{position:fixed;inset:0;z-index:50;background:#332724b8;display:grid;place-items:center;padding:22px;overflow:auto}.letter-modal[hidden],.lightbox[hidden]{display:none}.letter-paper{background:#fffaf2;width:min(100%,500px);min-height:300px;padding:45px 35px;box-shadow:0 15px 50px #0003;position:relative;background-image:repeating-linear-gradient(transparent,transparent 30px,#eee6db 31px)}.letter-paper h3{font-size:2.1rem}.letter-paper>p:not(.handwritten){white-space:pre-line}.handwritten{font:1.5rem var(--hand);color:var(--accent)}.signoff{margin-top:32px}.close-modal{position:absolute;right:18px;top:12px;border:0;background:transparent;color:inherit;font-size:30px;width:44px;height:44px;cursor:pointer;z-index:2}.letter-modal .close-modal{color:white}
.jar-section{background:#f6ece6;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:35px;min-height:550px}.jar-copy{max-width:440px;margin:auto}.jar-copy h2{margin-bottom:20px}.jar-copy .primary{margin:15px 0}.reason-result{min-height:50px;max-width:400px;font:1.5rem/1.3 var(--hand);color:var(--accent);opacity:.65}.reason-result.show{animation:fade-up .4s forwards;opacity:1}.jar-illustration{height:330px;width:240px;position:relative;margin:auto;display:flex;align-items:end;justify-content:center}.jar-glass{height:245px;width:205px;border:3px solid #b9a29b;border-radius:22px 22px 42px 42px;background:linear-gradient(100deg,#ffffff88,#fff4 52%,#ffffff9c);box-shadow:inset 12px 0 18px #fff9,0 15px 30px #53382b15;position:relative;display:flex;align-items:center;justify-content:center;gap:4px;flex-wrap:wrap;padding:40px 20px 15px;transform:rotate(-2deg)}.jar-glass span,.jar-glass i,.jar-glass b{font:1.4rem var(--hand);color:#bd8585;background:#f2d8d0;padding:5px 8px;transform:rotate(8deg)}.jar-glass i{background:#f0e1ad;font-style:normal;transform:rotate(-8deg)}.jar-glass b{background:#dce5d7;font-weight:400}.jar-neck{position:absolute;top:37px;width:160px;height:22px;border:3px solid #b9a29b;background:#ffffff99}.jar-lid{position:absolute;top:24px;width:174px;height:18px;background:#b8887c;border-radius:4px;z-index:2;box-shadow:0 3px 0 #8e635e}
.big-letter{background:#f5eae1;text-align:center;padding-top:100px;padding-bottom:100px}.big-letter h2{font-size:clamp(2.5rem,8vw,4rem)}.sealed-letter{margin:30px auto 8px}.big-letter-paper{max-width:650px;margin:24px auto 0;padding:40px clamp(22px,7vw,65px);text-align:left;background:#fffdf8;box-shadow:0 12px 38px #513a2c16;background-image:repeating-linear-gradient(transparent,transparent 31px,#eee8df 32px);animation:fade-up .8s}.big-letter-paper p{font:1.1rem/1.8 var(--serif);margin:0 0 18px}.big-letter-paper .signoff{font:1.5rem/1.3 var(--hand);color:var(--accent)}.finale{background:#fbf0e9;overflow:hidden}.finale h2{margin:10px 0 15px}.finale .lead{max-width:450px}.finale-stars{font-size:20px;color:#c28c84;margin-bottom:15px;letter-spacing:.2em}.cake{height:155px;width:180px;position:relative;margin:0 auto 20px}.cake-body{position:absolute;bottom:16px;left:20px;width:140px;height:70px;border-radius:8px 8px 20px 20px;background:#e4b3a8;box-shadow:inset 0 12px #f7ddd0}.cake-body i{display:inline-block;background:#fff0df;width:10px;height:14px;border-radius:0 0 9px 9px;margin:14px}.cake-top{position:absolute;bottom:73px;left:20px;width:140px;height:27px;background:#fff2e5;border-radius:50%}.cake-plate{position:absolute;bottom:6px;left:5px;width:170px;height:15px;border-radius:50%;background:#d6b3a4}.candle{position:absolute;z-index:2;top:25px;left:88px;width:7px;height:45px;background:repeating-linear-gradient(0deg,#d98791 0 5px,#fff7e8 5px 10px)}.cake>span{position:absolute;z-index:2;left:82px;top:2px;color:#e4a46d;animation:drift 2s infinite}.finale-photo{width:170px;padding:8px 8px 25px;margin:20px auto 25px;transform:rotate(-2deg)}.finale-photo .photo-placeholder{aspect-ratio:1}.finale-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 35%}.finale-photo figcaption{font-size:.95rem}.finale .lead{margin-left:auto;margin-right:auto}.finale .button{position:relative;z-index:2}#confetti{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:1}.lightbox{z-index:60;color:white}.lightbox-content{max-width:90vw;max-height:85vh;text-align:center}.lightbox-content img{max-width:100%;max-height:75vh;object-fit:contain}.lightbox-content p{font:1.4rem var(--hand)}.lightbox-placeholder{background:#f1e4da;color:#725e58;padding:80px 50px}.lightbox-placeholder span{letter-spacing:.15em;font-size:.7rem}footer{text-align:center;padding:22px;font-size:.55rem;letter-spacing:.18em;color:#a18b84}footer span{color:var(--primary);font-size:15px;margin-left:8px}
@media(max-width:650px){.section-pad{padding:78px 23px}.full-screen{padding:68px 22px}.opening h1{font-size:3.35rem}.opening-sub{font-size:1.05rem}.intro{min-height:auto;grid-template-columns:1fr;gap:12px;padding-top:85px;padding-bottom:90px}.intro-copy{text-align:center}.intro-copy .lead,.intro-copy .body-copy{margin-left:auto;margin-right:auto}.intro-photo{width:66%;max-width:245px;margin:20px auto}.intro-copy h2{font-size:3.3rem}.story .section-heading h2{font-size:2.9rem}.timeline{max-width:500px}.timeline:before{left:9px}.memory-card,.memory-card.reverse{grid-template-columns:34px 1fr;gap:13px;padding:25px 0}.memory-card:before{left:1px;top:38px}.memory-image,.memory-card.reverse .memory-image{grid-column:2;grid-row:1;order:initial;transform:rotate(-1deg)}.memory-copy,.memory-card.reverse .memory-copy{grid-column:2;grid-row:2;order:initial;text-align:left}.memory-year{font-size:2.5rem}.memory-copy h3{font-size:1.8rem}.interlude{margin:65px auto 0;padding:35px 24px}.interlude h3{font-size:2.2rem}.people .section-heading h2{font-size:2.85rem}.people-list{grid-template-columns:1fr;gap:10px}.person-chapter{min-height:145px;padding:21px 17px}.person-chapter:nth-child(5){grid-column:auto}.chapter-text strong{font-size:1.5rem}.notes-grid{grid-template-columns:repeat(2,1fr);gap:12px}.note-card{height:165px}.notes-section .section-heading h2{font-size:2.8rem}.quiz-paper{padding:34px 20px}.quiz-paper h2{font-size:2.8rem}.quiz-question{font-size:1.55rem}.letter-grid{grid-template-columns:1fr;gap:12px}.small-envelope{min-height:118px}.jar-section{grid-template-columns:1fr;gap:20px;text-align:center;padding-top:76px;padding-bottom:65px}.jar-copy{max-width:440px}.jar-copy .lead{margin:0 auto}.jar-illustration{height:275px;transform:scale(.88);margin-top:-5px}.reason-result{margin:0 auto}.big-letter{padding-top:78px;padding-bottom:80px}.big-letter h2{font-size:2.75rem}.big-letter-paper{padding:32px 23px}.finale h2{font-size:3.3rem}.finale .lead{font-size:1.1rem}.section-menu{right:12px;top:65px}.menu-toggle{top:12px;right:12px}.gate-card{padding:22px 0}.gate-question{padding:13px 0}.gate-question legend{font-size:.76rem}.gate-question legend small{font-size:.48rem}.code-boxes{gap:6px}.code-boxes input{height:45px}}
@media(min-width:651px) and (max-width:900px){.section-pad{padding-left:6vw;padding-right:6vw}.people-list{gap:10px}.chapter-text strong{font-size:1.35rem}}@media(min-width:1100px){.section-pad{padding-top:125px;padding-bottom:125px}.opening,.intro{min-height:100vh}.memory-card{padding:35px 0}.note-card{height:210px}}
.childhood{background:linear-gradient(135deg,#f2e4dc,#fbf4ee 55%,#f4e8e0);overflow:hidden}.childhood-inner{max-width:1000px;margin:auto;display:grid;grid-template-columns:minmax(0, .95fr) minmax(0, 1.05fr);align-items:center;gap:clamp(42px,8vw,100px)}.childhood-photo{width:min(100%,290px);margin:0 auto;padding:10px 10px 42px;background:#fffdf9;box-shadow:0 18px 45px #57392c20;transform:rotate(-2deg);border:1px solid #f1e9e2}.childhood-photo img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center 43%}.childhood-photo figcaption{padding-top:11px;text-align:center;font:1.35rem var(--hand);color:#67514d}.childhood-photo figcaption span{color:var(--primary);margin-left:8px}.childhood-copy{position:relative;max-width:450px}.childhood-copy h2{font-size:clamp(2.8rem,6vw,4.5rem);margin:0 0 20px}.childhood-copy .lead{color:#756460}.childhood-sparkle{display:inline-block;margin-top:20px;color:var(--primary);font-size:2rem;animation:drift 4s ease-in-out infinite}@media(max-width:650px){.childhood-inner{grid-template-columns:1fr;gap:38px}.childhood-photo{width:min(72%,245px)}.childhood-copy{text-align:center;margin:auto}.childhood-copy h2{font-size:3rem}.childhood-copy .lead{margin-left:auto;margin-right:auto}}
.see-you{background:radial-gradient(ellipse at 18% 42%,#fff7f4 0%,#f6e9e6 54%,#f1e3e2 100%);overflow:hidden}.see-you-inner{max-width:1040px;margin:auto;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);align-items:center;gap:clamp(38px,7vw,86px)}.see-you-copy{max-width:440px;position:relative}.see-you-copy h2{font-size:clamp(3rem,6vw,4.7rem);margin:0 0 22px}.see-you-note{font:clamp(1.7rem,3vw,2.25rem)/1.28 var(--hand);color:#72575a;margin:0;max-width:440px}.see-you-heart{display:block;color:#c98790;font:2rem var(--serif);margin-top:18px}.see-you-photo{width:100%;margin:0;padding:12px 12px 40px;background:#fffdf9;border:1px solid #f0e4df;box-shadow:0 18px 48px #57392c20;transform:rotate(1.3deg)}.see-you-photo img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 44%}.see-you-photo figcaption{padding-top:11px;text-align:center;font:1.3rem var(--hand);color:#67514d}.see-you-photo figcaption span{color:var(--primary);margin-left:7px}@media(max-width:650px){.see-you-inner{grid-template-columns:1fr;gap:32px}.see-you-copy{text-align:center;margin:0 auto}.see-you-copy h2{font-size:3.15rem}.see-you-note{font-size:1.75rem}.see-you-heart{margin-top:12px}.see-you-photo{width:min(100%,430px);margin:0 auto;transform:rotate(.5deg)}}
.magic-tree{background:linear-gradient(160deg,#fff9f4,#f5e8e3 62%,#f0e3e1);text-align:center;overflow:hidden}.magic-tree-inner{max-width:760px;margin:auto}.magic-tree h2{font-size:clamp(2.8rem,7vw,4.5rem);margin:0 0 15px}.magic-tree h2 em{white-space:nowrap}.magic-tree-prompt{font:1.35rem/1.5 var(--serif);color:#776361;max-width:550px;margin:0 auto 25px}.magic-tree-action{display:block;width:min(100%,410px);padding:0;margin:0 auto;border:0;background:transparent;cursor:pointer}.magic-tree-action:disabled{cursor:default}.magic-tree-frame{display:block;position:relative;padding:11px;background:#fffdf9;border:1px solid #f0e4df;box-shadow:0 18px 48px #57392c20;transform:rotate(-1deg);transition:transform .35s,box-shadow .35s}.magic-tree-action:not(:disabled):hover .magic-tree-frame{transform:rotate(0) translateY(-4px);box-shadow:0 22px 50px #57392c2c}.magic-tree-frame>img{display:block;width:100%;aspect-ratio:3/4;object-fit:cover;object-position:center;transition:opacity .4s}.magic-tree-touch{display:block;padding:15px 8px 3px;font:1.5rem var(--hand);color:var(--accent)}.magic-tree-touch span{color:var(--primary);margin-left:5px}.magic-loader{position:absolute;inset:11px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;background:#362b38c9;color:white;backdrop-filter:blur(3px);z-index:2}.magic-loader[hidden]{display:none}.magic-spinner{font-size:3rem;color:#ffd8e3;animation:magic-spin 1.1s ease-in-out infinite}.magic-loader-text{font:1.8rem var(--hand);text-shadow:0 2px 12px #0006}.magic-progress{width:min(72%,230px);height:4px;overflow:hidden;border-radius:9px;background:#ffffff4a}.magic-progress i{display:block;width:0;height:100%;background:#ffd4df;animation:magic-fill 4s linear forwards}.magic-tree-reveal{font:1.7rem var(--hand);color:var(--accent);margin:23px 0 0;animation:fade-up .7s both}@keyframes magic-spin{50%{transform:rotate(180deg) scale(1.15)}100%{transform:rotate(360deg)}}@keyframes magic-fill{to{width:100%}}@media(max-width:650px){.magic-tree-prompt{font-size:1.2rem;margin-bottom:21px}.magic-tree-action{width:min(100%,370px)}.magic-tree-frame{padding:8px}.magic-loader{inset:8px}.magic-loader-text{font-size:1.65rem}.magic-tree-touch{padding-top:13px}}
.quiz-answer-key{max-width:470px;margin:28px auto 0;padding:22px 0;border-top:1px solid #eadbd4;border-bottom:1px solid #eadbd4;text-align:left}.quiz-answer-key h4{font:1.7rem var(--serif);text-align:center;margin:0 0 16px;color:var(--accent)}.quiz-answer-key ol{list-style:none;padding:0;margin:0;display:grid;gap:10px}.quiz-answer-key li{display:flex;align-items:flex-start;gap:12px;padding:10px 12px;background:#f8efea;border-radius:4px;font-size:.85rem}.answer-number{flex:0 0 32px;font-weight:700;color:var(--accent)}.quiz-malayalam{font:1.55rem/1.5 'Noto Sans Malayalam',sans-serif;color:var(--accent);margin:22px auto}.quiz-result h3{font-size:clamp(1.8rem,6vw,2.4rem)}@media(max-width:650px){.quiz-answer-key li{font-size:.78rem;padding:9px}.quiz-malayalam{font-size:1.35rem}}
.birthday-wish{background:linear-gradient(145deg,#f8ece6,#fff8f3 55%,#f1e2df)}.wish-card{max-width:650px;margin:auto;padding:clamp(28px,6vw,54px);background:#fffdf9;border:1px solid #f0e4df;box-shadow:0 15px 42px #57392c14;text-align:center}.wish-card h2{font-size:clamp(2.6rem,7vw,4rem);margin:0 0 16px}.wish-card>.lead{margin:0 auto 26px;color:#756460}.wish-card form{text-align:left}.wish-card label{display:block;margin-bottom:8px;font-size:.78rem;font-weight:700;color:var(--accent)}.wish-card textarea{display:block;width:100%;min-height:145px;resize:vertical;border:1px solid #e4d4cc;border-radius:5px;background:#fffefa;padding:14px;color:var(--text);font:1rem/1.55 var(--sans)}.wish-card textarea:focus{outline:2px solid #a96f754d;border-color:var(--accent)}.wish-privacy{font-size:.68rem;color:var(--muted);margin:8px 0 15px}.wish-card button{display:block;margin:0 auto}.wish-card button:disabled{opacity:.65;cursor:wait}.wish-status{min-height:26px;margin:14px 0 0;text-align:center;font-size:.82rem;color:var(--muted)}.wish-status.success{color:#577456}.wish-status.error{color:#a34f53}footer{position:relative;z-index:2;min-height:64px;padding:18px 16px max(22px,env(safe-area-inset-bottom))}@media(max-width:650px){.wish-card{padding:28px 20px}.wish-card h2{font-size:2.8rem}.wish-card textarea{font-size:16px}footer{padding-left:14px;padding-right:14px}}
.quiz-cover{min-height:390px;display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:center;gap:clamp(25px,5vw,48px);text-align:left}.quiz-cover-photo{width:min(100%,245px);margin:0 auto;padding:10px 10px 34px;background:#fff;border:1px solid #f0e4df;box-shadow:0 15px 36px #54372b20;transform:rotate(-2deg)}.quiz-cover-photo img{display:block;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 20%}.quiz-cover-photo figcaption{padding-top:9px;text-align:center;font:1.15rem var(--hand);color:#67514d}.quiz-cover-copy h2{font-size:clamp(2.4rem,5vw,3.55rem);margin:0 0 16px}.quiz-cover-copy .lead{font-size:1.1rem;margin-bottom:22px}.quiz-cover-copy .button{white-space:nowrap}.quiz-cover[hidden],.quiz-start[hidden]{display:none}.quiz-cover-leaving{animation:quiz-cover-out .28s ease forwards}.quiz-started{animation:quiz-enter .6s ease both}.quiz-option{animation:quiz-card-in .38s ease both}.quiz-option:nth-child(2){animation-delay:.07s}.quiz-option:nth-child(3){animation-delay:.14s}@keyframes quiz-cover-out{to{opacity:0;transform:translateY(-12px) scale(.98)}}@keyframes quiz-enter{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes quiz-card-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@media(max-width:650px){.quiz-cover{grid-template-columns:1fr;gap:24px;text-align:center;padding:10px 0}.quiz-cover-photo{width:min(65%,230px)}.quiz-cover-copy{margin:auto}.quiz-cover-copy h2{font-size:2.7rem}.quiz-cover-copy .lead{font-size:1rem;margin-left:auto;margin-right:auto}.quiz-cover-copy .button{margin:auto}}
.you-are-best{background:linear-gradient(145deg,#fff8f4,#f3e7e3);text-align:center;overflow:hidden}.you-are-best-inner{max-width:740px;margin:auto}.you-are-best h2{font-size:clamp(2.7rem,7vw,4rem);margin:0 0 14px}.you-are-best .lead{margin:0 auto 25px;color:#756460}.role-card{min-height:315px;max-width:430px;margin:0 auto 20px;display:flex;flex-direction:column;align-items:center;justify-content:center}.role-card-prompt{font:1.8rem var(--hand);color:var(--accent)}.role-card-photo{width:min(100%,360px);margin:0 auto;padding:10px 10px 34px;background:#fffdf9;border:1px solid #f0e4df;box-shadow:0 16px 38px #57392c20;transform:rotate(-1deg)}.role-card-photo img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 42%}.role-card-photo figcaption{padding-top:8px;font:1.25rem var(--hand);color:#67514d}.role-card-message{font:2rem/1.25 var(--hand);color:var(--accent);margin:19px 0 0}.role-card-message strong{font-weight:600}.role-card-show{animation:fade-up .5s both}.role-card-next{min-width:165px}@media(max-width:650px){.you-are-best h2{font-size:2.9rem}.you-are-best .lead{font-size:1.05rem}.role-card{min-height:280px}.role-card-photo{width:min(100%,330px)}.role-card-message{font-size:1.8rem}}
