@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--ink:#f7f2e5;--muted:#c7d4cc;--gold:#ebcf93;--soft-gold:#a89368;--forest:#092822;--line:rgba(219,232,209,.22);--serif:'Cormorant Garamond',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}
*{box-sizing:border-box}html{font-size:16px;scroll-behavior:smooth}body{margin:0;background:#08251f;color:var(--ink);font-family:var(--sans);font-size:1rem;line-height:1.65;min-height:100vh}.backdrop{position:fixed;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(4,25,23,.77),rgba(4,25,23,.5)),url('garden.png') center/cover no-repeat;background-color:#092822}.backdrop:after{content:'';position:absolute;inset:0;background:linear-gradient(0deg,rgba(3,20,18,.8),transparent 40%,rgba(3,20,18,.35))}button,a,textarea{-webkit-tap-highlight-color:transparent}button,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:default}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible,textarea:focus-visible{outline:3px solid var(--gold);outline-offset:5px}h1:focus,h2:focus{outline:none}button{color:inherit}button[hidden],[hidden]{display:none!important}.topbar{max-width:1440px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{display:flex;align-items:center;gap:11px;font-family:var(--serif);font-size:1.35rem;letter-spacing:.01em}.brand-flower{font-family:Georgia,serif;color:var(--gold);font-size:2.1rem;line-height:1}.dedication{font-size:.75rem;font-weight:500;letter-spacing:.16em;color:var(--muted)}main{max-width:1220px;margin:0 auto;padding:0 40px}.steps{display:flex;align-items:center;justify-content:center;gap:18px;margin:28px auto 42px}.step{border:0;background:none;color:#b2c5bb;font-size:.875rem;padding:8px 0;white-space:nowrap}.step span{font-size:.75rem;color:#9eafa6;margin-right:8px}.step.active{color:var(--gold)}.step.active span{color:var(--gold)}.step-line{width:40px;height:1px;background:var(--line)}.game-layout{display:grid;grid-template-columns:1fr 1.13fr;gap:70px;align-items:center;min-height:520px;padding:10px 0 36px}.eyebrow{font-size:.75rem;font-weight:600;letter-spacing:.18em;color:var(--gold);margin:0 0 16px}.intro h1,h1{font-family:var(--serif);font-weight:400;font-size:clamp(3.5rem,5.6vw,5.25rem);line-height:.99;margin:0 0 25px;letter-spacing:-.025em}em{font-weight:400;color:var(--gold)}.welcome{font-size:1.1rem;max-width:340px;line-height:1.6;margin:0 0 15px}.instructions{color:var(--muted);max-width:370px;line-height:1.8;margin:0 0 16px}.gentle{font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--gold);margin:16px 0 25px}.garden-progress{margin:20px 0 22px}.progress-flowers{display:flex;gap:13px;font-family:Georgia,serif;font-size:1.7rem;line-height:1;color:#769183}.progress-flowers span{transition:color .6s,transform .6s;opacity:.6}.progress-flowers span.found{color:var(--gold);opacity:1;transform:rotate(30deg)}#progress-text{font-size:.875rem;color:var(--muted);margin:11px 0 0}progress{position:absolute;width:1px;height:1px;opacity:0}.text-button{border:0;background:none;padding:7px 0;font-size:.875rem;color:var(--muted);text-align:left;text-decoration:underline;text-decoration-color:rgba(218,235,221,.25);text-underline-offset:5px}.text-button:hover{color:var(--gold);text-decoration-color:var(--gold)}.text-button span{display:inline-block;margin-left:8px}.board-caption{display:flex;justify-content:space-between;gap:10px;font-size:.75rem;letter-spacing:.12em;color:#d5decf;margin:0 0 16px}.board-caption span:last-child{letter-spacing:0;color:var(--muted)}.board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.memory-card{display:block;aspect-ratio:.83;position:relative;background:transparent;border:0;padding:0;perspective:700px;border-radius:10px}.card-inner{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.22,.61,.36,1)}.memory-card.revealed .card-inner,.memory-card.matched .card-inner{transform:rotateY(180deg)}.card-face{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;align-items:center;backface-visibility:hidden;border:1px solid rgba(232,220,174,.35);border-radius:10px;overflow:hidden}.card-back{background:linear-gradient(145deg,rgba(35,74,58,.98),rgba(15,48,39,.98));box-shadow:0 8px 20px #00140e40}.card-back:before{content:'';position:absolute;inset:7px;border:1px solid rgba(232,220,174,.14);border-radius:5px}.card-mark{color:#d3c394;font-family:Georgia,serif;font-size:2.15rem;font-weight:400;transition:color .3s,transform .3s}.card-corner{position:absolute;font-size:.625rem;letter-spacing:.1em;color:#9aa995;top:12px;left:14px}.memory-card:not(.revealed):not(.matched):hover .card-back{background:linear-gradient(145deg,#355c43,#173e32);border-color:var(--gold)}.memory-card:not(.revealed):not(.matched):hover .card-mark{color:var(--gold);transform:scale(1.12)}.card-front{transform:rotateY(180deg);background:#eee7d5;color:#163f32;border-color:#f9e5b4}.pair-symbol{font-family:Georgia,serif;font-size:2.45rem;line-height:1.2}.pair-label{font-size:.75rem;margin-top:9px;font-weight:600}.memory-card.matched .card-front{background:#cbd8bb;border-color:#e7d394;box-shadow:0 0 20px #c5cf7c10}.matched-tick{position:absolute;right:9px;top:4px;font-size:.75rem;color:#28533d}.board-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0 0;font-size:.875rem;min-height:28px;color:var(--muted)}.board-note{text-align:center;font-family:var(--serif);font-size:1.1rem;font-style:italic;color:#b5c6b8;margin:19px 0 0}.candle-screen{text-align:center;padding:8px 0 32px;min-height:530px}.candle-screen h1{font-size:clamp(3rem,5vw,4.5rem);margin-bottom:8px}.candle-symbol{font-size:5.5rem;line-height:1.5;filter:grayscale(1) brightness(.55);transition:filter 1.5s;display:inline-block;margin:10px auto 0}.candle-symbol.lit{filter:drop-shadow(0 0 28px #ffc97b70);animation:candle-breathe 4s ease-in-out infinite}.candle-message{color:var(--muted);line-height:1.7;margin:7px 0 22px}.primary-button{display:inline-flex;justify-content:center;align-items:center;gap:24px;border:1px solid #e8d5a4;background:var(--gold);color:#163b30;padding:14px 24px;border-radius:5px;font-size:.9375rem;font-weight:600;line-height:1.4;transition:background .2s,transform .2s}.primary-button:hover{background:#f7dfb0;transform:translateY(-1px)}.birthday-line{font-family:var(--serif);font-size:1.8rem;line-height:1.4;color:var(--gold);margin:14px 0 0}.letter-link{display:block;margin:28px auto 0;text-align:center}.letter-screen{max-width:760px;margin:auto;padding:0 0 40px}.letter-card{background:#f2ecdf;color:#294336;padding:48px 60px 45px;box-shadow:0 15px 60px #00161155;border-radius:3px;position:relative}.letter-card:before{content:'';position:absolute;inset:12px;border:1px solid #b7a88155;pointer-events:none}.letter-card .eyebrow{color:#63735a}.letter-card h1{font-size:3.5rem;margin:20px 0 27px}.letter-card em{color:#486148}.letter-body p{font-size:1rem;line-height:1.9;margin:0 0 20px}.letter-body .letter-emphasis{font-family:var(--serif);font-size:1.8rem;line-height:1.3;margin:28px 0;color:#38523d}.signature{font-size:.875rem;margin:25px 0 0}.signature>span:first-of-type{font-family:var(--serif);font-style:italic;font-size:2rem;color:#405b40}.signature-heart{color:#8b7850;margin-left:14px;font-size:1.5rem}.letter-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:20px;margin-top:28px}.privacy-note{font-size:.75rem;line-height:1.6;text-align:center;color:var(--muted);margin:14px 0 0}.memory-journal{margin:35px 0 15px;padding:25px 25px 10px;background:#0d302be6;border:1px solid var(--line);border-radius:6px}.memory-journal h2{font-family:var(--serif);font-size:2rem;line-height:1.2;font-weight:400}.journal-entry{padding:14px 0;border-top:1px solid var(--line)}.journal-entry h3{font-size:.875rem;color:var(--gold);font-weight:500;margin:0 0 7px}.journal-entry p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 12px;font-size:1rem}footer{padding:22px 24px 28px;text-align:center;font-size:.75rem;letter-spacing:.04em;color:#b9c8bd}footer span{margin-left:9px;color:var(--gold);font-size:1.2rem}dialog{background:#f2ecdf;color:#284233;border:1px solid #d3c7a5;border-radius:12px;width:min(480px,calc(100% - 32px));padding:34px 35px 25px;box-shadow:0 25px 120px #0008;max-height:90dvh;overflow:auto}dialog::backdrop{background:#031a16bd;backdrop-filter:blur(7px)}dialog .eyebrow{color:#6f7456;margin:7px 0 9px;font-size:.75rem}dialog h2{font-family:var(--serif);font-size:2.5rem;font-weight:500;line-height:1.15;margin:0 0 12px}.memory-symbol{font-family:Georgia,serif;font-size:2.8rem;color:#496446;line-height:1.2}.close-button{position:absolute;right:15px;top:11px;border:0;background:none;color:#425641;font-size:1.8rem;width:40px;height:40px;line-height:1}#memory-prompt{font-size:1rem;line-height:1.7;margin:0 0 22px}dialog label{font-size:.875rem;display:block;margin-bottom:7px}dialog label span{color:#62705e;font-size:.75rem}textarea{background:#fffaf0;color:#284233;border:1px solid #9caa93;border-radius:5px;padding:11px 13px;width:100%;resize:vertical;min-height:100px;font-size:1rem;line-height:1.65}textarea::placeholder{color:#737d6d}.dialog-note{font-family:var(--serif);font-style:italic;font-size:1.1rem;color:#526448;margin:10px 0 19px}dialog .primary-button{width:100%;background:#244f3d;border-color:#244f3d;color:#f5e7c8}dialog .primary-button:hover{background:#34634c}dialog .privacy-note{color:#63735c;font-size:.75rem}.sr-only{position:absolute;width:1px;height:1px;clip:rect(0,0,0,0);overflow:hidden;white-space:nowrap}.noscript{padding:30px;text-align:center}body:has(dialog[open]){overflow:hidden}@keyframes candle-breathe{50%{filter:drop-shadow(0 0 42px #ffc97b99)}}
@media(min-width:1450px){main{padding-top:2vh}.steps{margin-bottom:60px}.game-layout{min-height:550px}.topbar{padding-top:35px}}
@media(max-width:900px){main{padding:0 28px}.game-layout{gap:35px;grid-template-columns:1fr 1.1fr}.board{gap:9px}.intro h1{font-size:3.8rem}.card-corner{top:8px;left:11px}.pair-label{font-size:.7rem}.steps{margin:15px auto 25px}.board-caption{font-size:.7rem;letter-spacing:.06em}.brand{font-size:1.2rem}.dedication{font-size:.7rem}}
@media(max-width:680px){.topbar{padding:20px 22px}.brand{font-size:1.1rem;gap:8px}.brand-flower{font-size:1.8rem}.dedication{display:none}main{padding:0 22px}.steps{gap:10px;margin:8px 0 27px;justify-content:space-between}.step{font-size:.8rem;white-space:normal}.step span{display:block;margin:0;font-size:.7rem}.step-line{width:20px;flex-shrink:1}.game-layout{display:flex;flex-direction:column;gap:28px;padding:0 0 10px;align-items:stretch}.intro .eyebrow{margin-bottom:12px}.intro h1{font-size:3.7rem;margin-bottom:16px}.intro h1 br{display:none}.welcome{font-size:1rem;max-width:none;margin-bottom:9px}.instructions{max-width:none;line-height:1.7;margin-bottom:10px}.gentle{margin:9px 0 0;font-size:1.15rem}.garden-progress{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:18px 0 6px}.progress-flowers{gap:10px;font-size:1.4rem}#progress-text{font-size:.75rem;margin:0}.candle-shortcut{font-size:.8rem}.board{gap:10px}.board-caption{font-size:.7rem}.memory-card{aspect-ratio:.87}.card-mark{font-size:1.8rem}.pair-symbol{font-size:2rem}.pair-label{font-size:.7rem;margin-top:5px}.card-corner{font-size:.625rem}.board-footer{font-size:.8rem}.board-note{margin-top:12px;font-size:1rem}.candle-screen{padding-top:15px}.candle-screen h1{font-size:3.5rem}.candle-message{font-size:1rem}.letter-card{padding:33px 29px}.letter-card h1{font-size:3rem}.letter-body p{line-height:1.8}.letter-body .letter-emphasis{font-size:1.7rem}.letter-actions{flex-direction:column;gap:12px}.letter-actions .primary-button{width:100%;font-size:.875rem}.privacy-note{font-size:.75rem}footer{font-size:.7rem;padding-top:26px}dialog{padding:28px 25px 22px}dialog h2{font-size:2.2rem}}
@media(max-width:360px){main{padding:0 16px}.topbar{padding:18px 16px}.intro h1{font-size:3.2rem}.board{gap:7px}.pair-label{font-size:.625rem}.board-caption{letter-spacing:0}.progress-flowers{gap:7px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}

.footer-download{display:block;width:fit-content;margin:12px auto 0;font-size:.75rem;text-decoration:underline;text-underline-offset:4px;color:var(--muted)}.footer-download:hover{color:var(--gold)}

/* A deeper welcome and a place for every memory. */
.intro h1{font-size:clamp(3.2rem,4.8vw,4.6rem);line-height:1.02}.welcome{max-width:400px}.gentle{max-width:390px}.notes-shortcut{display:block}.pair-label{font-size:.8rem;text-align:center;padding:0 5px}.notes-screen{max-width:830px;margin:0 auto;padding:5px 0 40px}.notes-screen h1{font-size:clamp(3.2rem,5vw,4.8rem);margin-bottom:22px}.notes-intro{font-size:1.1rem;color:var(--muted);max-width:660px;line-height:1.8}.notes-invitation{font-family:var(--serif);font-size:1.2rem;font-style:italic;color:var(--gold)}.notes-toolbar{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:26px 0 0}.notes-toolbar p{color:var(--muted);font-size:.875rem;margin:0}.notes-storage{text-align:left;margin:16px 0 22px}.question-section{background:rgba(12,44,35,.92);border:1px solid var(--line);border-radius:7px;margin:14px 0;overflow:hidden}.question-section summary{display:flex;align-items:center;gap:15px;cursor:pointer;padding:20px 24px;list-style:none}.question-section summary::-webkit-details-marker{display:none}.question-section summary:after{content:'+';color:var(--gold);font-size:1.5rem;line-height:1;margin-left:8px}.question-section[open] summary:after{content:'−'}.question-section summary:focus-visible{outline:3px solid var(--gold);outline-offset:-4px}.question-symbol{font-family:Georgia,serif;font-size:1.8rem;color:var(--gold);min-width:32px;text-align:center}.question-group-title{font-family:var(--serif);font-size:1.55rem;line-height:1.2;flex:1}.question-count{font-size:.75rem;color:var(--muted);white-space:nowrap}.question-entry{border-top:1px solid var(--line);margin:0 24px;padding:20px 0 17px}.question-entry label{display:block;font-size:1rem;line-height:1.65;margin-bottom:10px}.question-entry textarea,.free-note-section textarea{color:#254331;background:#f7f1e3;line-height:1.7;min-height:110px}.free-note-section{margin-top:35px;padding:30px;border:1px solid #d8c28b70;border-radius:7px;background:rgba(13,44,36,.95)}.free-note-section h2{font-family:var(--serif);font-weight:400;font-size:2.6rem;line-height:1.2;margin:0 0 20px}.free-note-section label{display:block;margin-bottom:10px;font-size:1rem}.free-note-section textarea{min-height:200px}.free-note-section .notes-invitation{font-size:1.1rem;margin-bottom:0}.prompt-navigation{display:flex;align-items:center;gap:10px;margin:14px 0 18px;font-size:.75rem;color:#627052}.prompt-back{width:36px;height:32px;background:transparent;border:1px solid #91a080;border-radius:4px;color:#294b36;font-size:1rem}.prompt-back:disabled{opacity:.3}.prompt-navigation #prompt-saved{margin-left:auto;font-style:italic}.dialog-return{display:block;margin:12px auto 0;background:none;border:0;color:#48623e;text-decoration:underline;text-underline-offset:4px;font-size:.875rem;padding:7px 4px}#memory-prompt:focus{outline:none}.letter-body .letter-birthday{font-family:var(--serif);font-size:1.6rem;line-height:1.35;color:#486148;margin-bottom:25px}
/* The light awakens slowly, then flickers with a warm, moving glow. */
.candle-symbol,.candle-symbol.lit{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;width:230px;height:190px;margin:26px auto 20px;filter:none;animation:none;font-size:7.8rem;line-height:1}.candle-glyph{display:block;position:relative;z-index:1;filter:grayscale(1) brightness(.5);transform-origin:50% 85%;transition:filter 1.4s}.candle-aura{position:absolute;inset:-60px -90px;z-index:0;pointer-events:none;background:radial-gradient(ellipse,rgba(255,207,104,.58) 0%,rgba(255,180,53,.24) 30%,rgba(242,160,45,.07) 53%,transparent 72%);opacity:0;transform:scale(.65);transition:opacity 1.8s,transform 1.8s}.lit .candle-aura{opacity:1;transform:scale(1);animation:glow-drift 3.6s ease-in-out infinite}.lit .candle-glyph{filter:brightness(1.25) saturate(1.2) drop-shadow(0 -8px 15px #ffe19be6) drop-shadow(0 -12px 40px #ffc867aa);animation:flame-flicker 2.3s ease-in-out infinite}.candle-is-lit .backdrop:after{background:linear-gradient(0deg,rgba(3,20,18,.65),transparent 40%,rgba(3,20,18,.25))}.candle-promise{font-family:var(--serif);font-size:1.6rem;font-style:italic;color:#f4d8a0;margin:22px auto 4px}.birthday-line{font-size:1.75rem;max-width:650px;margin:18px auto 0}.candle-screen h1{font-size:clamp(3rem,4.8vw,4.3rem)}
@keyframes flame-flicker{0%,100%{transform:rotate(-.7deg) scale(1);filter:brightness(1.22) saturate(1.2) drop-shadow(0 -8px 16px #ffe6a7f2) drop-shadow(0 -14px 42px #ffc45eb3)}22%{transform:rotate(.6deg) scale(1.01,1.025);filter:brightness(1.35) saturate(1.15) drop-shadow(2px -10px 22px #fff0c5) drop-shadow(0 -15px 50px #ffbf53cc)}48%{transform:rotate(-.3deg) scale(.998,1.008)}71%{transform:rotate(.8deg) scale(1.008,1.02);filter:brightness(1.28) saturate(1.25) drop-shadow(-2px -9px 19px #ffdfa0ed) drop-shadow(0 -13px 46px #ffb746c2)}}
@keyframes glow-drift{0%,100%{transform:translate(-3px,0) scale(.96);opacity:.8}45%{transform:translate(4px,-8px) scale(1.08);opacity:1}75%{transform:translate(-2px,-3px) scale(1.02);opacity:.91}}
@media(max-width:900px){.game-layout{gap:30px}.intro h1{font-size:3.6rem}.steps{gap:12px}.step-line{width:26px}.pair-label{font-size:.75rem}}
@media(max-width:680px){.intro h1{font-size:3.55rem;max-width:450px}.intro h1 br{display:block}.intro h1 br:after{content:''}.steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.step{font-size:.78rem;text-align:center;line-height:1.5}.step-line{display:none}.step span{margin-bottom:3px}.notes-toolbar{align-items:flex-start;flex-direction:column;gap:12px}.notes-toolbar .primary-button{padding:11px 18px}.notes-screen h1{font-size:3.25rem}.question-section summary{padding:18px 15px;gap:10px}.question-group-title{font-size:1.4rem}.question-symbol{font-size:1.5rem;min-width:24px}.question-entry{margin:0 18px}.question-count{font-size:.75rem}.free-note-section{padding:25px 20px}.candle-symbol,.candle-symbol.lit{width:180px;height:175px;margin:25px auto 15px;font-size:7rem}.candle-aura{inset:-35px -65px}.birthday-line{font-size:1.55rem}.candle-promise{font-size:1.45rem}.candle-screen h1{font-size:3rem}.candle-message{font-size:.95rem}.board-caption{font-size:.7rem;letter-spacing:.03em}.pair-label{font-size:.75rem}.notes-invitation{font-size:1.1rem}}
@media(max-width:360px){.intro h1{font-size:3.1rem}.board-caption{font-size:.65rem}.pair-label{font-size:.69rem}.question-count{display:none}}
