@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');

:root { --paper:#fff8ea; --ink:#18304a; --coral:#ee6a55; --yellow:#f8cb55; --lavender:#b9a7e8; --mint:#abd8bd; --line:#dbcdb6; --white:#fffdf8; }
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--ink); background:var(--paper); font-family:"DM Sans",sans-serif; }
button,input,textarea,select { font:inherit; }
button { color:inherit; }
.site-header { height:78px; display:flex; align-items:center; justify-content:space-between; max-width:1240px; margin:auto; padding:0 28px; }
.brand { display:flex; align-items:center; gap:10px; color:inherit; text-decoration:none; font-size:21px; line-height:.9; }
.brand strong { color:var(--coral); }.brand small { display:block; margin-top:7px; font-size:9px; letter-spacing:.15em; text-transform:uppercase; }
.goose { width:37px; height:37px; display:grid; place-items:center; border:2px solid var(--ink); border-radius:50% 50% 42% 58%; background:var(--yellow); transform:rotate(-8deg); font-size:25px; }
.privacy { font-size:12px; border:1px solid var(--line); border-radius:999px; padding:8px 12px; background:rgba(255,255,255,.45); }
main { max-width:1240px; margin:auto; padding:35px 28px 90px; }
.intro { max-width:810px; margin:40px 0 64px; position:relative; }
.intro:after { content:""; position:absolute; right:-260px; top:-52px; width:210px; height:160px; border:2px solid var(--coral); border-radius:48% 52% 42% 58%; transform:rotate(11deg); opacity:.35; }
.eyebrow { color:var(--coral); font-weight:700; font-size:12px; letter-spacing:.18em; }
h1 { font:700 clamp(46px,7vw,86px)/.96 "Fraunces",serif; letter-spacing:-.045em; margin:18px 0 24px; }
h1 em { color:var(--coral); font-style:italic; }
.lede { font-size:19px; line-height:1.65; max-width:680px; color:#536275; }
.mini-proof { display:flex; gap:20px; flex-wrap:wrap; font-size:13px; font-weight:600; margin-top:25px; }.mini-proof span::first-letter{color:var(--coral)}
.studio { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(390px,.95fr); gap:70px; align-items:start; }
.form-side { background:var(--white); border:1px solid var(--line); border-radius:28px; padding:34px; box-shadow:0 18px 60px rgba(45,39,25,.06); }
.section-title { display:flex; gap:14px; align-items:flex-start; margin-bottom:18px; }.section-title>span { width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;background:var(--yellow);font-weight:700;font-size:12px;}
h2 { font:700 25px/1.1 "Fraunces",serif; margin:2px 0 7px; }.section-title p { margin:0;color:#718092;font-size:13px; }
.photo-picker { min-height:240px; border:2px dashed #cfbfa7; border-radius:20px; background:#fffaf0; padding:18px; display:grid; place-items:center; position:relative; transition:.2s; }
.photo-picker.drag { border-color:var(--coral); background:#fff1e5; transform:scale(1.01); }
.empty-picker { text-align:center; }.empty-picker>b,.empty-picker>small { display:block; }.empty-picker>b { font:600 21px "Fraunces",serif; }.empty-picker>small { color:#7e887f;margin:6px 0 18px; }.picker-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;justify-content:center;max-width:390px}.picker-actions .ghost{grid-column:1/-1}.scribble { position:absolute; top:20px; right:28px; font-size:28px; color:var(--coral); transform:rotate(-20deg); }
.button { min-height:45px; border:0; border-radius:12px; padding:0 18px; font-weight:700; cursor:pointer; transition:transform .15s,box-shadow .15s; }.button:hover{transform:translateY(-1px)}.button:disabled{opacity:.55;cursor:wait;transform:none}
.primary { background:var(--ink); color:white; box-shadow:0 5px 0 #0d1b2a; }.ghost { background:white;border:1px solid var(--line); }.secondary { background:#fff0ca;border:1px solid #efd393; }.google{background:white;border:1px solid #c9cdd2;color:#3c4043;box-shadow:0 2px 3px rgba(60,64,67,.15)}.google i{font-style:normal;font-weight:800;margin-right:7px;background:conic-gradient(from -45deg,#4285f4 0 25%,#34a853 0 50%,#fbbc05 0 75%,#ea4335 0);color:transparent;background-clip:text}.google-status{min-height:14px;margin:10px 0 0!important;color:#66717c!important;font-size:10px}.google-status.error{color:#b34032!important}
.photo-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:10px; width:100%; }.photo-thumb { aspect-ratio:1; border-radius:12px; overflow:hidden; position:relative; background:#eee; }.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-thumb button{position:absolute;right:6px;top:6px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(19,35,52,.85);color:white;cursor:pointer}.photo-thumb:first-child:after{content:"MAIN";position:absolute;bottom:7px;left:7px;background:var(--yellow);font-size:9px;font-weight:700;padding:4px 6px;border-radius:5px;letter-spacing:.08em}
.add-actions{display:flex;gap:12px;justify-content:center;margin-top:12px}.add-photo { border:0;background:none;color:var(--coral);font-weight:700;cursor:pointer; }
.details-title { margin-top:34px; }.fields { display:grid;grid-template-columns:1fr 1fr;gap:16px}.fields label,.copy-fields label{display:flex;flex-direction:column;gap:7px}.fields label>span,.copy-fields label>span,.styles legend{font-size:12px;font-weight:700;letter-spacing:.04em}.fields .wide{grid-column:1/-1}.fields input,.fields select,.fields textarea,.copy-fields input,.refine-box textarea{width:100%;border:1px solid var(--line);border-radius:11px;background:white;padding:12px 13px;color:var(--ink);outline:none}.fields input:focus,.fields select:focus,.fields textarea:focus,.copy-fields input:focus,.refine-box textarea:focus{border-color:var(--coral);box-shadow:0 0 0 3px rgba(238,106,85,.12)}.fields textarea,.refine-box textarea{resize:vertical}.fields label>small{font-size:11px;color:#7b8790}
.styles { border:0;padding:0;margin:25px 0 22px;display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.styles legend{margin-bottom:10px}.styles label{cursor:pointer}.styles input{position:absolute;opacity:0}.styles label>span{height:92px;border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;transition:.15s}.styles i{font-style:normal;font-size:19px}.styles b{font-size:11px;margin:5px 0 2px}.styles small{font-size:9px;color:#7c8790}.styles input:checked+span{border:2px solid var(--coral);background:#fff3ec;transform:rotate(-1deg)}
.create { width:100%;height:57px;background:var(--coral);color:white;display:flex;align-items:center;justify-content:space-between;padding:0 22px;box-shadow:0 6px 0 #b54839;font-size:15px}.create i{font-style:normal;font-size:23px}.consent{text-align:center;font-size:10px;color:#89918e;margin:14px 0 0}
.result-sticky{position:sticky;top:24px}.preview-head{display:flex;justify-content:space-between;align-items:center;font-size:11px;letter-spacing:.15em;font-weight:700;margin-bottom:12px}.preview-head button{border:0;background:none;color:var(--coral);font-size:11px;letter-spacing:0;cursor:pointer}
.card-shell{width:100%;aspect-ratio:1;background:#efe5d3;border-radius:6px;box-shadow:0 22px 70px rgba(30,41,50,.17),0 2px 5px rgba(30,41,50,.12);overflow:hidden;position:relative;transform:rotate(1deg)}.placeholder-card{position:absolute;inset:0;background:#f6ddae;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}.placeholder-card:before{content:"";position:absolute;width:88%;height:88%;border:1px solid rgba(24,48,74,.25);}.placeholder-card p{font:600 28px/1.15 "Fraunces",serif;z-index:2;margin:0 0 12px}.placeholder-card small{z-index:2;line-height:1.5;color:#6d6049}.sun{position:absolute;right:13%;top:11%;font-size:38px;color:var(--coral)}.polaroid{position:absolute;width:25%;height:32%;background:white;border:1px solid #d8cdb8;box-shadow:0 5px 12px rgba(55,44,26,.12)}.polaroid:before{content:"";position:absolute;inset:8px 8px 25px;background:var(--lavender)}.polaroid.one{left:7%;top:8%;transform:rotate(-10deg)}.polaroid.two{right:6%;bottom:8%;transform:rotate(9deg)}.polaroid.two:before{background:var(--mint)}
#cardCanvas{display:block;width:100%;height:100%}.working{position:absolute;inset:0;background:rgba(255,248,234,.94);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.working span{width:54px;height:54px;border:4px solid #ead9be;border-top-color:var(--coral);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:18px}.working b{font:600 21px "Fraunces",serif}.working small{color:#72808c;margin-top:7px}@keyframes spin{to{transform:rotate(360deg)}}
.result-controls{margin-top:23px}.copy-fields{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}.refine-box{border-top:1px solid var(--line);margin-top:18px;padding-top:17px}.refine-box>span{font-weight:700;font-size:12px}.chips{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0}.chips button{border:1px solid var(--line);background:white;border-radius:999px;padding:7px 10px;font-size:10px;cursor:pointer}.chips button.active{background:var(--yellow);border-color:#dfb338}.refine-box textarea{font-size:12px;margin-bottom:8px}.refine-box .button{width:100%}.download-row{display:grid;grid-template-columns:1.5fr 1fr;gap:9px;margin-top:10px}.status{min-height:18px;font-size:11px;color:#59715d;text-align:center}.status.error{color:#b34032}
footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;max-width:1240px;margin:auto;padding:24px 28px 35px;font-size:11px;color:#78847f}footer a{color:var(--coral);font-weight:700}
@media(max-width:850px){.site-header{height:65px;padding:0 18px}.privacy{font-size:9px}.site-header .brand{font-size:18px}.goose{width:32px;height:32px}main{padding:18px 14px 65px}.intro{margin:27px 7px 36px}.intro:after{display:none}h1{font-size:48px}.lede{font-size:16px}.mini-proof{gap:11px;font-size:11px}.studio{display:block}.form-side{padding:21px;border-radius:21px}.result-side{margin-top:42px}.result-sticky{position:static}.fields{grid-template-columns:1fr}.fields .wide{grid-column:auto}.styles{grid-template-columns:repeat(2,1fr)}.copy-fields{grid-template-columns:1fr}.photo-picker{min-height:215px}.download-row{position:sticky;bottom:10px;z-index:3;background:rgba(255,248,234,.9);padding:8px;border-radius:15px;backdrop-filter:blur(10px)}footer{display:block;padding:20px 22px}.intro br{display:none}}
@media(max-width:380px){h1{font-size:42px}.privacy{display:none}.form-side{padding:17px}.button{padding:0 13px}.picker-actions{grid-template-columns:1fr}.picker-actions .ghost{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;animation-duration:.01ms!important}}
