*{box-sizing:border-box}html{background:#12080d;min-height:100%}body{color:#2d1821;background:#fff8fa;min-height:100%;margin:0;font-family:Arial,Helvetica,sans-serif}button,input,textarea,select{font:inherit}a{color:inherit}.site-shell{background:linear-gradient(145deg,#fff8fa,#f9e8ee);min-height:100vh;padding:32px}.site-nav{justify-content:space-between;align-items:center;gap:20px;max-width:1180px;margin:0 auto 50px;display:flex}.brand{letter-spacing:-.03em;font-size:1.25rem;font-weight:900;text-decoration:none}.brand span{color:#b41f50}.nav-actions{align-items:center;gap:12px;display:flex}.hero{grid-template-columns:1.1fr .9fr;align-items:center;gap:56px;max-width:1100px;margin:0 auto;padding:60px 0 100px;display:grid}.hero h1{letter-spacing:-.075em;margin:0 0 24px;font-size:clamp(3rem,8vw,6.8rem);line-height:.93}.hero p{color:#6e4d5b;max-width:650px;font-size:1.2rem;line-height:1.7}.hero-card{color:#fff;background:#32101d;border-radius:42px;flex-direction:column;justify-content:flex-end;min-height:470px;padding:36px;display:flex;position:relative;overflow:hidden;box-shadow:0 35px 100px #3d102040}.hero-card:before{content:"❤️";filter:drop-shadow(0 20px 30px #0000004d);font-size:12rem;position:absolute;top:20px;right:-30px;transform:rotate(12deg)}.hero-card small{text-transform:uppercase;letter-spacing:.18em;opacity:.65}.hero-card h2{max-width:380px;margin:12px 0;font:700 2.5rem Georgia,serif}.hero-card p{color:#f6dbe4;font-size:1rem}.button{cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:13px 20px;font-weight:800;text-decoration:none;transition:transform .18s,opacity .18s,box-shadow .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button-primary{color:#fff;background:#b41f50;box-shadow:0 12px 32px #b41f5040}.button-secondary{color:#4b2130;background:#fff;border:1px solid #ead3db}.button-danger{color:#fff;background:#7f162f}.button-small{padding:9px 14px;font-size:.9rem}.invite-root{--bg:#fff1f4;--surface:#ffffffd6;--surface-alt:#ffe1e9;--text:#4a1728;--muted:#875669;--primary:#c6285c;--primary-text:#fff;--accent:#f4a3b9;--border:#c6285c2e;--shadow:0 24px 80px #7c183d33;--radius:30px;--heading:Georgia, serif;--body:Arial, sans-serif;--pattern:none;min-height:100dvh;color:var(--text);font-family:var(--body);background-color:var(--bg);background-image:var(--pattern);background-size:80px 80px,100% 100%;overflow-x:hidden}.invite-stage{isolation:isolate;place-items:center;min-height:100dvh;padding:28px;display:grid;position:relative}.invite-stage:before,.invite-stage:after{content:"";filter:blur(4px);opacity:.38;pointer-events:none;z-index:-1;border-radius:50%;position:fixed}.invite-stage:before{background:var(--accent);width:360px;height:360px;top:-100px;left:-160px}.invite-stage:after{background:var(--primary);opacity:.12;width:430px;height:430px;bottom:-180px;right:-190px}.invite-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:min(720px,100%);min-height:520px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(22px);backdrop-filter:blur(22px);padding:clamp(28px,6vw,58px);animation:.5s both cardIn;position:relative;overflow:hidden}.invite-card h1,.invite-card h2{font-family:var(--heading);letter-spacing:-.035em;margin:0}.invite-card h1{font-size:clamp(2.5rem,9vw,5rem);line-height:.96}.invite-card h2{font-size:clamp(2rem,6vw,3.5rem);line-height:1.05}.invite-card p{color:var(--muted);line-height:1.7}.invite-eyebrow{text-transform:uppercase;letter-spacing:.18em;color:var(--primary);margin-bottom:18px;font-size:.72rem;font-weight:900}.invite-heart{font-size:3.2rem;animation:1.4s infinite heartbeat;display:inline-block}.invite-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:28px;display:flex}.invite-button{border:1px solid var(--border);background:var(--surface-alt);min-height:52px;color:var(--text);border-radius:max(10px, calc(var(--radius) * .55));cursor:pointer;justify-content:center;align-items:center;padding:13px 20px;font-weight:850;text-decoration:none;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s;display:inline-flex}.invite-button:hover,.invite-button.selected{border-color:var(--primary);box-shadow:0 10px 28px color-mix(in srgb, var(--primary) 20%, transparent);transform:translateY(-2px)}.invite-button.primary{color:var(--primary-text);background:var(--primary);border-color:var(--primary)}.invite-button.ghost{color:var(--muted);background:0 0}.invite-button:disabled{opacity:.48;cursor:not-allowed;transform:none}.invite-button:focus-visible,.option-card:focus-visible,.button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,a:focus-visible{outline:3px solid var(--primary,#b41f50);outline-offset:3px}.progress{z-index:4;gap:5px;display:flex;position:absolute;top:18px;left:24px;right:24px}.progress span{background:var(--border);border-radius:99px;flex:1;height:4px;overflow:hidden}.progress span:after{content:"";background:var(--primary);transform-origin:0;width:100%;height:100%;transition:transform .35s;display:block;transform:scaleX(0)}.progress span.done:after{transform:scaleX(1)}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;margin-top:26px;display:grid}.option-card{text-align:left;border:1px solid var(--border);background:var(--surface-alt);width:100%;color:var(--text);border-radius:max(12px, calc(var(--radius) * .55));cursor:pointer;min-height:92px;padding:18px 46px 18px 18px;transition:transform .18s,border-color .18s,box-shadow .18s,background .18s,color .18s;position:relative}.option-card:hover,.option-card.selected{border-color:var(--primary);box-shadow:0 14px 28px color-mix(in srgb, var(--primary) 18%, transparent);transform:translateY(-3px)}.option-card[aria-pressed=true]{background:var(--primary);color:var(--primary-text);border-color:var(--primary);box-shadow:0 14px 34px color-mix(in srgb, var(--primary) 34%, transparent)}.option-card[aria-pressed=true]:after{content:"✓";background:var(--primary-text);width:24px;height:24px;color:var(--primary);border-radius:50%;place-items:center;font-weight:950;display:grid;position:absolute;top:14px;right:15px}.option-card[aria-pressed=true] small{color:color-mix(in srgb, var(--primary-text) 82%, transparent)}.option-card strong{font-size:1rem;display:block}.option-card small{color:var(--muted);margin-top:7px;line-height:1.4;display:block}.option-icon{margin-right:8px;font-size:1.5rem}.form-field{margin-top:18px}.form-field label{color:var(--muted);margin-bottom:8px;font-size:.82rem;font-weight:900;display:block}.form-field input,.form-field textarea,.form-field select{border:1px solid var(--border);background:color-mix(in srgb, var(--surface) 88%, transparent);width:100%;color:var(--text);border-radius:14px;outline:none;padding:14px 15px}.form-field textarea{resize:vertical;min-height:90px}.form-field input:focus,.form-field textarea:focus{border-color:var(--primary);box-shadow:0 0 0 4px color-mix(in srgb, var(--primary) 12%, transparent)}.question-zone{margin-top:30px}.question-yes-row{z-index:3;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex;position:relative}.question-yes-row .invite-button{width:min(100%,360px)}.no-button-anchor{justify-content:center;align-items:center;min-height:68px;margin-top:12px;display:flex}.no-runaway{z-index:6;touch-action:manipulation;max-width:calc(100% - 24px)}.no-runaway.is-moving{width:auto;transition:left .16s,top .16s,transform .16s;position:absolute}.decline-after-attempts{margin-top:0}.playful-message{min-height:28px;color:var(--primary);text-align:center;margin-top:10px;font-weight:800}.review-list{gap:10px;margin:26px 0;display:grid}.review-row{border-bottom:1px dashed var(--border);justify-content:space-between;gap:18px;padding:14px 0;display:flex}.review-row span{color:var(--muted)}.review-row strong{text-align:right}.saved-response-link{color:var(--primary);text-align:center;text-underline-offset:3px;margin:-10px 0 28px;font-weight:800;display:block}.remember-response{color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:10px;margin-top:22px;font-weight:750;display:flex}.remember-response input{width:20px;height:20px;accent-color:var(--primary)}.invite-card .privacy-hint{text-align:center;max-width:470px;margin:7px auto 0;font-size:.82rem}.celebration{text-align:center;place-items:center;min-height:420px;display:grid}.celebration-burst{font-size:clamp(5rem,20vw,9rem);animation:.8s cubic-bezier(.2,.8,.2,1) both celebrate,1.8s 1s infinite heartbeat}.error-box{color:var(--text);background:#d449621f;border:1px solid #d44962;border-radius:14px;margin-top:18px;padding:12px 14px}.invite-root[data-layout=split-card] .invite-card{border-left:7px solid var(--accent);width:min(870px,100%);padding-left:clamp(32px,10vw,110px)}.invite-root[data-layout=scrapbook] .invite-card{border-width:2px;transform:rotate(-.5deg)}.invite-root[data-layout=scrapbook] .invite-card:after{content:"LOVE NOTE";background:var(--accent);letter-spacing:.12em;padding:7px 11px;font-size:.68rem;font-weight:900;position:absolute;top:22px;right:24px;transform:rotate(4deg)}.invite-root[data-layout=soft-panel] .invite-card{border-radius:48px 18px}.invite-root[data-layout=postcard] .invite-card{border:10px solid #ffffff8c}.invite-root[data-layout=postcard] .invite-card:after{content:"WITH LOVE";border:2px dashed var(--primary);color:var(--primary);letter-spacing:.12em;padding:10px;font-size:.64rem;position:absolute;top:26px;right:28px;transform:rotate(5deg)}.invite-root[data-layout=neon-panel] .invite-card{box-shadow:var(--shadow);border-width:2px}.invite-root[data-layout=neon-panel] .invite-card h1,.invite-root[data-layout=neon-panel] .invite-card h2{text-shadow:0 0 18px color-mix(in srgb, var(--primary) 70%, transparent)}.invite-root[data-layout=royal-card] .invite-card{border:1px solid var(--primary);outline:1px solid var(--primary);outline-offset:-10px}.invite-root[data-layout=minimal-paper] .invite-card{box-shadow:var(--shadow);border-radius:3px}.invite-root[data-layout=ocean-card] .invite-card{border-radius:70px 20px}.invite-root[data-layout=playful-card] .invite-card{border:3px solid var(--border)}.invite-root[data-layout=playful-card] .invite-button,.invite-root[data-layout=playful-card] .option-card{border:2px solid var(--border);box-shadow:4px 5px 0 var(--border)}.invite-root[data-layout=playful-card] .invite-button:hover,.invite-root[data-layout=playful-card] .option-card:hover{box-shadow:7px 8px 0 var(--border);transform:translate(-2px,-2px)}.loader-screen{text-align:center;background:var(--bg);background-image:var(--pattern);place-items:center;min-height:100dvh;padding:32px;display:grid}.loader-screen p{color:var(--muted);letter-spacing:.03em;font-weight:750}.loader-art{place-items:center;width:150px;height:150px;margin:0 auto 25px;display:grid;position:relative}.loader-art:before,.loader-art:after{content:"";position:absolute}.loader-art[data-loader=bloom]:before{background:var(--primary);width:76px;height:76px;box-shadow:45px 0 0 var(--accent), -45px 0 0 var(--accent), 0 45px 0 color-mix(in srgb, var(--primary) 70%, white), 0 -45px 0 color-mix(in srgb, var(--primary) 70%, white);border-radius:52% 48% 55% 45%;animation:2.2s ease-in-out infinite spin}.loader-art[data-loader=bloom]:after{content:"♥";color:#fff;z-index:2;font-size:2.4rem}.loader-art[data-loader=constellation]:before{border:1px solid var(--border);clip-path:polygon(50% 0,60% 36%,100% 50%,62% 62%,50% 100%,38% 62%,0 50%,38% 36%);background:radial-gradient(circle, var(--accent) 0 3px, transparent 4px);animation:5s linear infinite spin;inset:10px}.loader-art[data-loader=constellation]:after{content:"✦";color:var(--accent);font-size:4rem;animation:1.2s infinite pulse}.loader-art[data-loader=polaroid]:before{border:1px solid var(--border);width:88px;height:105px;box-shadow:var(--shadow);background:#fff;animation:1.8s infinite photoDrop;transform:rotate(-7deg)}.loader-art[data-loader=polaroid]:after{content:"♥";background:var(--surface-alt);width:68px;height:66px;color:var(--primary);place-items:center;font-size:2rem;display:grid;transform:translateY(-10px)rotate(-7deg)}.loader-art[data-loader=cloud]:before{background:#fff;border-radius:99px;width:110px;height:48px;animation:2.4s ease-in-out infinite float;box-shadow:-35px -15px 0 -2px #fff,25px -28px 0 4px #fff}.loader-art[data-loader=cloud]:after{content:"♥";color:var(--primary);font-size:2.6rem;animation:1.8s infinite fall}.loader-art[data-loader=sunset]:before{background:linear-gradient(var(--accent), var(--primary));width:100px;height:100px;box-shadow:0 0 45px var(--accent);border-radius:50%;animation:1.8s infinite pulse}.loader-art[data-loader=sunset]:after{background:repeating-radial-gradient(ellipse, transparent 0 6px, var(--primary) 7px 9px);border-radius:50%;width:150px;height:20px;bottom:10px}.loader-art[data-loader=neon]:before{content:"♥";color:var(--primary);text-shadow:0 0 12px var(--primary), 0 0 35px var(--primary), 0 0 55px var(--accent);font-size:6rem;animation:1s infinite heartbeat}.loader-art[data-loader=curtain]:before{background:linear-gradient(90deg, var(--accent) 0 48%, transparent 49% 51%, var(--accent) 52%);clip-path:polygon(0 0,100% 0,88% 100%,52% 82%,48% 82%,12% 100%);animation:2s ease-in-out infinite curtain;inset:0}.loader-art[data-loader=curtain]:after{content:"♛";color:var(--primary);z-index:2;font-size:3rem}.loader-art[data-loader=petals]:before{background:var(--accent);width:25px;height:60px;box-shadow:45px 20px 0 var(--accent), -35px 45px 0 color-mix(in srgb, var(--accent) 70%, white), 15px 70px 0 var(--accent);border-radius:80% 10%;animation:2.3s linear infinite petals}.loader-art[data-loader=petals]:after{content:"恋";color:var(--primary);font:2.8rem Georgia,serif}.loader-art[data-loader=waves]:before{border-bottom:8px solid var(--primary);width:130px;height:80px;box-shadow:0 16px 0 -4px var(--accent), 0 31px 0 -7px var(--primary);border-radius:50%;animation:1.4s infinite wave}.loader-art[data-loader=waves]:after{content:"☾";color:var(--accent);font-size:3rem;top:2px;right:20px}.loader-art[data-loader=candy]:before{background:repeating-linear-gradient(45deg, var(--primary) 0 10px, var(--accent) 10px 20px);border:3px solid var(--border);border-radius:50%;width:74px;height:74px;animation:1.3s linear infinite spin}.loader-art[data-loader=candy]:after{background:linear-gradient(45deg, transparent 0 48%, var(--accent) 49% 100%);clip-path:polygon(0 50%,25% 0,25% 100%,75% 100%,75% 0,100% 50%,75% 100%,25% 100%);z-index:-1;width:140px;height:42px}.admin-shell{color:#2d2226;background:#f6f4f5;min-height:100vh}.admin-header{color:#fff;z-index:20;background:#251019;justify-content:space-between;align-items:center;gap:20px;padding:16px 28px;display:flex;position:sticky;top:0}.admin-header nav{align-items:center;gap:10px;display:flex}.admin-header a{color:#f6dfe7;border-radius:10px;padding:9px 12px;text-decoration:none}.admin-header a:hover{background:#ffffff14}.admin-main{max-width:1280px;margin:0 auto;padding:36px 24px 80px}.admin-title-row{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:28px;display:flex}.admin-title-row h1{letter-spacing:-.04em;margin:0;font-size:2.4rem}.admin-title-row p{color:#78666e}.admin-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;display:grid}.admin-card{background:#fff;border:1px solid #e8e0e3;border-radius:18px;padding:20px;box-shadow:0 10px 30px #2d121c0d}.admin-card h2,.admin-card h3{margin-top:0}.help-text{color:#765363;font-size:.9rem;line-height:1.6}.status{letter-spacing:.06em;border-radius:999px;padding:6px 9px;font-size:.72rem;font-weight:900;display:inline-flex}.status-PUBLISHED{color:#175d34;background:#daf4e4}.status-DRAFT{color:#755315;background:#fff1c9}.status-ARCHIVED{color:#5e5257;background:#ece8ea}.admin-table{border-collapse:collapse;background:#fff;border:1px solid #e7dfe2;border-radius:18px;width:100%;overflow:hidden}.admin-table th,.admin-table td{text-align:left;vertical-align:top;border-bottom:1px solid #eee7ea;padding:15px 16px}.admin-table th{text-transform:uppercase;letter-spacing:.08em;color:#7c6a72;background:#fbfafb;font-size:.72rem}.pagination{grid-template-columns:1fr auto 1fr;align-items:center;gap:14px;margin-top:20px;display:grid}.pagination>:last-child{justify-self:end}.admin-table td small{color:#807077;margin-top:5px;display:block}.admin-form{gap:22px;display:grid}.form-section{background:#fff;border:1px solid #e8e0e3;border-radius:20px;padding:24px}.form-section h2{margin:0 0 6px}.form-section>p{color:#7a6971;margin-top:0}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.form-grid .full{grid-column:1/-1}.admin-field label{margin-bottom:7px;font-size:.78rem;font-weight:900;display:block}.admin-field input,.admin-field textarea,.admin-field select{color:#2d2226;background:#fff;border:1px solid #dcd1d6;border-radius:12px;width:100%;padding:12px 13px}.admin-field textarea{resize:vertical;min-height:110px}.checkbox-row{flex-wrap:wrap;gap:14px;display:flex}.checkbox-label{background:#f7f2f4;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;display:flex}.template-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;display:grid}.template-preview{border:1px solid #00000014;border-radius:24px;flex-direction:column;justify-content:flex-end;min-height:280px;padding:26px;display:flex;position:relative;overflow:hidden}.template-preview h2{font-family:var(--preview-heading);margin:0 0 8px}.template-preview p{opacity:.76;margin:0 0 18px;line-height:1.5}.login-page{background:radial-gradient(circle at 20% 15%,#f8cad7,#0000 32%),#251019;place-items:center;min-height:100vh;padding:24px;display:grid}.login-card{background:#fff;border-radius:28px;width:min(440px,100%);padding:36px;box-shadow:0 35px 100px #0000004d}.login-card h1{margin:0 0 6px;font-size:2rem}.login-card p{color:#7b6670}.notice{color:#674c10;background:#fff2c9;border-radius:12px;margin:14px 0;padding:13px 15px}.code-line{color:#fcebf2;word-break:break-all;background:#21171b;border-radius:10px;padding:10px 12px;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.82rem}.link-copy-row{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;display:grid}.google-place-search{width:100%;margin-top:10px}.google-place-search gmp-place-autocomplete,.google-place-autocomplete{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;width:100%;display:block}.invite-root .google-place-search{text-align:left;margin:22px 0 4px}.invite-root .google-place-search gmp-place-autocomplete{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.place-search-unavailable{border:1px solid var(--border);color:var(--muted);text-align:left;border-radius:12px;margin:20px 0 4px;padding:11px 13px;font-size:.86rem;line-height:1.5}@keyframes cardIn{0%{opacity:0;transform:translateY(16px)scale(.985)}to{opacity:1;transform:none}}@keyframes heartbeat{0%,to{transform:scale(1)}30%{transform:scale(1.12)}50%{transform:scale(.98)}70%{transform:scale(1.08)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.65;transform:scale(.82)}}@keyframes float{50%{transform:translateY(-13px)}}@keyframes fall{0%{opacity:0;transform:translateY(-30px)}50%{opacity:1}to{opacity:0;transform:translateY(52px)}}@keyframes photoDrop{0%,to{transform:rotate(-7deg)translateY(-8px)}50%{transform:rotate(3deg)translateY(8px)}}@keyframes curtain{50%{transform:scaleX(.72)}}@keyframes petals{to{opacity:.25;transform:translateY(55px)rotate(220deg)}}@keyframes wave{50%{transform:translateY(-9px)scaleX(.9)}}@keyframes celebrate{0%{opacity:0;transform:scale(.2)rotate(-20deg)}to{opacity:1;transform:scale(1)rotate(0)}}@media (max-width:850px){.hero{grid-template-columns:1fr;padding-top:20px}.admin-grid{grid-template-columns:1fr 1fr}.admin-table{display:block;overflow-x:auto}}@media (max-width:620px){.site-shell{padding:20px}.site-nav{align-items:flex-start}.hero h1{font-size:3.6rem}.hero-card{min-height:390px}.invite-stage{align-items:stretch;padding:14px}.invite-card{flex-direction:column;justify-content:flex-start;min-height:calc(100dvh - 28px);padding:54px 22px 28px;display:flex}.option-grid{grid-template-columns:1fr}.invite-actions{flex-direction:column;align-items:stretch}.invite-button,.question-yes-row .invite-button{width:100%}.no-runaway,.no-runaway.is-moving{width:auto;max-width:calc(100% - 24px)}.admin-header{flex-direction:column;align-items:flex-start}.admin-header nav{flex-wrap:wrap}.admin-grid,.template-preview-grid,.form-grid{grid-template-columns:1fr}.admin-title-row{flex-direction:column}.form-grid .full{grid-column:auto}.review-row{flex-direction:column;gap:5px}.review-row strong{text-align:left}.link-copy-row{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}
