:root {
  --ink:#20203a; --muted:#62627a; --purple:#6c3cf0; --pink:#ff4f91; --yellow:#ffd34d;
  --blue:#36b8ff; --paper:#fff; --soft:#f6f3ff; --line:#e6e0f6;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:linear-gradient(180deg,#fff 0,#fff 68%,#f8f4ff 100%);font-family:"Nunito",sans-serif;font-size:16px;line-height:1.55}
button,input,textarea,select{font:inherit}
button,a{touch-action:manipulation}
a{color:inherit}
.topbar{height:72px;max-width:1200px;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:800}.brand-name{font-family:"Baloo 2",sans-serif;font-size:1.45rem;line-height:.9}.brand-name small{display:block;font-family:"Nunito",sans-serif;font-size:.66rem;letter-spacing:.08em;color:var(--muted);margin-top:5px}
.brand-mark{display:grid;place-items:center;width:36px;height:36px;border-radius:12px;color:white;background:linear-gradient(135deg,var(--purple),var(--pink));box-shadow:0 8px 20px #6c3cf044}
nav{display:flex;gap:28px}nav a{text-decoration:none;font-weight:700;color:#56536b}nav a:hover{color:var(--purple)}
.creator-shell{position:relative;overflow:hidden;padding:64px 28px 88px;background-image:linear-gradient(180deg,#ffffffd9 0%,#fffaf2ee 46%,#f8f3ffff 73%),url("./celebration-hero.png");background-size:cover,cover;background-position:center,center top}
.creator-shell:before,.creator-shell:after{content:"";position:absolute;border-radius:999px;filter:blur(2px);opacity:.45;pointer-events:none}.creator-shell:before{width:260px;height:260px;background:#ff6eaa;right:-150px;bottom:4%}.creator-shell:after{width:190px;height:190px;background:#6c3cf0;left:-120px;bottom:8%}
.intro{max-width:830px;margin:0 auto 42px;text-align:center}
.eyebrow{display:inline-block;color:var(--purple);font-size:.78rem;letter-spacing:.14em;font-weight:800}
h1,h2,h3{font-family:"Baloo 2",sans-serif;line-height:1.05;margin-top:0}
.intro h1{font-size:clamp(2.5rem,6vw,4.8rem);letter-spacing:-.04em;margin:12px 0 18px}
.intro p{font-size:1.15rem;color:var(--muted);max-width:680px;margin:auto}
.workspace{position:relative;z-index:1;max-width:1120px;margin:auto;display:grid;grid-template-columns:1.05fr .95fr;background:white;border:1px solid #eee8ff;border-radius:28px;box-shadow:0 30px 80px #3320681f;overflow:hidden}
.editor{padding:38px}.editor fieldset{border:0;padding:0;margin:0 0 26px}.editor legend,.editor label>span{display:block;font-weight:800;margin-bottom:10px}
.occasion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.occasion-button{border:2px solid transparent;border-radius:15px;padding:12px 8px;background:var(--soft);color:var(--ink);font-weight:800;cursor:pointer}.occasion-button span{display:block;font-size:1.4rem}.occasion-button:hover,.occasion-button.active{border-color:var(--purple);background:#f0eaff;color:var(--purple)}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
label:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid #36b8ff88;outline-offset:2px}
input,select,textarea{width:100%;border:1.5px solid var(--line);border-radius:13px;padding:12px 14px;background:#fff;color:var(--ink)}select{margin-bottom:10px}textarea{resize:vertical;min-height:105px}.editor small{display:block;text-align:right;color:var(--muted);margin-top:4px}
.theme-grid{display:flex;gap:12px}.theme-button{width:38px;height:38px;border-radius:50%;border:3px solid white;box-shadow:0 0 0 1px var(--line);cursor:pointer}.theme-button.active{box-shadow:0 0 0 3px var(--ink)}
.theme-button[data-theme=confetti]{background:linear-gradient(135deg,#6c3cf0 50%,#ffd34d 50%)}.theme-button[data-theme=sunset]{background:linear-gradient(135deg,#ff4f91,#ffb54d)}.theme-button[data-theme=ocean]{background:linear-gradient(135deg,#0466c8,#46d9c6)}.theme-button[data-theme=garden]{background:linear-gradient(135deg,#087f5b,#ffd43b)}
.actions{display:grid;grid-template-columns:1fr auto;gap:10px}.primary,.secondary{border:0;border-radius:14px;padding:14px 18px;font-weight:800;cursor:pointer}.primary{color:white;background:linear-gradient(135deg,var(--purple),#8a52ff);box-shadow:0 10px 24px #6c3cf04d}.primary:hover{transform:translateY(-1px)}.secondary{background:#f2eefb;color:var(--purple)}.feedback{min-height:24px;margin:8px 0 0;color:#087f5b;font-weight:700}
.preview-panel{padding:38px;background:#f4f0ff;display:flex;flex-direction:column;justify-content:center}.preview-label{text-align:center;font-size:.82rem;font-weight:800;color:var(--muted);margin-bottom:12px;text-transform:uppercase;letter-spacing:.08em}
.greeting-card{position:relative;min-height:470px;border-radius:24px;padding:54px 38px 40px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;color:white;overflow:hidden;box-shadow:0 24px 55px #2a17543d}
.theme-confetti{background:linear-gradient(145deg,#5e2fd7,#9a55ef 60%,#ff5b9e)}.theme-sunset{background:linear-gradient(145deg,#ed3b76,#ff7b54 58%,#ffc34b)}.theme-ocean{background:linear-gradient(145deg,#0755ad,#1596c7 58%,#42d5bf)}.theme-garden{background:linear-gradient(145deg,#086f55,#29a86f 58%,#d4c62a)}
.sparkles i{position:absolute;font-style:normal;animation:float 3.2s ease-in-out infinite}.sparkles i:nth-child(1){left:12%;top:14%;font-size:1.8rem}.sparkles i:nth-child(2){right:16%;top:12%;color:#ffd34d;animation-delay:.6s}.sparkles i:nth-child(3){right:10%;bottom:21%;font-size:2rem;animation-delay:1.1s}.sparkles i:nth-child(4){left:12%;bottom:16%;color:#55e6e6;animation-delay:1.5s}.sparkles i:nth-child(5){left:50%;top:7%;animation-delay:2s}
@keyframes float{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-12px) rotate(12deg)}}.card-icon{font-size:4.2rem;filter:drop-shadow(0 8px 12px #27114755);animation:pop 2.6s ease-in-out infinite}@keyframes pop{0%,100%{transform:scale(1) rotate(-3deg)}50%{transform:scale(1.08) rotate(3deg)}}.to{margin:18px 0 5px;font-weight:800;opacity:.9}.greeting-card h2{font-size:2.25rem;margin:0 0 18px}.card-message{max-width:360px;font-size:1.05rem;margin:0;white-space:pre-wrap}.signature{font-weight:800;margin:24px 0 0}.preview-hint{text-align:center;color:var(--muted);font-size:.86rem;margin:12px 0 0}
.ideas,.about,.content-note{max-width:1120px;margin:auto;padding:90px 28px}.section-heading{max-width:650px}.section-heading h2,.about h2,.content-note h2{font-size:clamp(2rem,4vw,3.2rem);margin:10px 0 14px}.section-heading p,.content-note p{color:var(--muted);font-size:1.08rem}.idea-cards{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:38px}.idea-cards>a{text-decoration:none}.idea-cards article{height:100%;padding:26px;border:1px solid var(--line);border-radius:20px;background:white;transition:.2s ease}.idea-cards a:hover article{transform:translateY(-4px);border-color:#cdbdff;box-shadow:0 15px 35px #4f2d8f15}.idea-cards article>span{font-size:2.1rem}.idea-cards h3{font-size:1.35rem;margin:15px 0 7px}.idea-cards p{margin:0;color:var(--muted)}
.about{display:grid;grid-template-columns:1fr 1fr;gap:80px;background:var(--ink);color:white;border-radius:32px;padding:60px;margin-top:20px}.about .eyebrow{color:#ffd34d}.about ol{list-style:none;padding:0;margin:0;counter-reset:steps}.about li{position:relative;padding:4px 0 24px 52px}.about li:before{counter-increment:steps;content:counter(steps);position:absolute;left:0;top:0;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#ffd34d;color:var(--ink);font-weight:800}.about li b,.about li span{display:block}.about li b{font-size:1.1rem}.about li span{color:#d6d3e2}.content-note{max-width:850px;text-align:center}
footer{max-width:1120px;margin:auto;padding:30px 28px 45px;border-top:1px solid var(--line);display:flex;justify-content:space-between;color:var(--muted)}footer p{margin:0;font-weight:700}footer div{display:flex;gap:20px}footer a{text-decoration:none}
.legal-page{background:var(--soft)}.legal{max-width:760px;margin:45px auto;padding:48px;background:white;border-radius:24px;box-shadow:0 20px 60px #33206817}.legal h1{font-size:3rem;margin:10px 0 25px}.legal h2{margin:32px 0 8px}.inline-button{display:inline-block;text-decoration:none;margin-top:20px}
.receiver-page{min-height:100vh;background-image:linear-gradient(180deg,#25153acc,#161124ef),url("./celebration-hero.png");background-size:cover;background-position:center;display:grid;place-items:center;padding:24px}.receiver-wrap{width:min(100%,560px);text-align:center}.receiver-brand{display:inline-flex;color:white;margin-bottom:18px}.receiver-brand .brand-name small{color:#ffffffbb}.envelope{border:0;background:white;border-radius:26px;padding:42px 30px;width:100%;box-shadow:0 35px 90px #09051299;cursor:pointer;color:var(--ink)}.envelope-icon{display:block;font-size:4rem;animation:pop 2.6s ease-in-out infinite}.envelope h1{font-size:clamp(2rem,8vw,3rem);margin:15px 0 8px}.envelope p{color:var(--muted);margin:0}.received-card{display:none}.received-card h1{font-size:2.25rem;margin:0 0 18px}.receiver-wrap.opened .envelope{display:none}.receiver-wrap.opened .received-card{display:flex;animation:reveal .6s cubic-bezier(.2,.8,.2,1)}@keyframes reveal{from{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:none}}.receiver-actions{display:none;margin-top:18px}.receiver-wrap.opened .receiver-actions{display:flex;justify-content:center;gap:10px}.receiver-actions a{text-decoration:none}.receiver-note{color:#ffffffb3;font-size:.86rem;margin-top:14px}.message-library{max-width:950px;margin:40px auto 90px;padding:0 24px}.message-library>header{text-align:center;padding:55px 0 35px}.message-library h1{font-size:clamp(2.4rem,6vw,4rem);margin:10px 0}.message-section{scroll-margin-top:25px;background:white;border:1px solid var(--line);border-radius:22px;padding:32px;margin:18px 0}.message-section h2{font-size:2rem;margin-bottom:10px}.message-section>p{color:var(--muted)}.message-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:22px}.message-list blockquote{margin:0;padding:18px;border-radius:14px;background:var(--soft);border-left:4px solid var(--purple)}.library-cta{text-align:center;margin-top:35px}
@media(max-width:850px){nav{display:none}.workspace{grid-template-columns:1fr}.preview-panel{order:-1;padding:22px}.greeting-card{min-height:370px}.editor{padding:26px}.idea-cards{grid-template-columns:1fr 1fr}.about{margin:20px 18px 0;grid-template-columns:1fr;gap:25px;padding:38px}.creator-shell{padding-top:40px}}
@media(max-width:540px){.topbar{padding:0 18px}.brand-name{font-size:1.3rem}.creator-shell{padding-left:14px;padding-right:14px}.intro{text-align:left}.intro h1{font-size:2.6rem}.workspace{border-radius:22px}.occasion-grid{grid-template-columns:repeat(2,1fr)}.field-row,.actions{grid-template-columns:1fr}.greeting-card{min-height:330px;padding:45px 25px}.greeting-card h2{font-size:1.8rem}.idea-cards{grid-template-columns:1fr}.ideas{padding:70px 20px}.about{border-radius:24px}.content-note{padding:70px 22px}footer{flex-direction:column;gap:20px}.legal{margin:18px;padding:28px}.message-list{grid-template-columns:1fr}.receiver-actions{flex-direction:column}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.sparkles i,.card-icon{animation:none}}
