:root{color-scheme:light;--font-sans: ui-rounded, "SF Pro Rounded", "Segoe UI Rounded", "Avenir Next Rounded", "Helvetica Rounded", "Arial Rounded MT Bold", Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-display: "Trebuchet MS", "Segoe UI", sans-serif;--bg-sky: #cfeeff;--bg-sky-deep: #a9ddff;--bg-grass: #b9dfa1;--card: rgba(243, 252, 255, .8);--card-strong: rgba(235, 248, 255, .92);--card-border: rgba(88, 145, 184, .22);--text: #12344b;--muted: #456a81;--muted-strong: #6d94aa;--accent: #f4b400;--accent-strong: #e59f00;--shadow: 0 24px 70px rgba(73, 128, 160, .18)}*{box-sizing:border-box}html,body,#root{min-height:100%}body{margin:0;font-family:var(--font-sans);background:radial-gradient(circle at 6% 8%,rgba(255,228,114,.56),rgba(255,228,114,.2) 18%,transparent 34%),radial-gradient(circle at top right,rgba(255,255,255,.45),transparent 28%),linear-gradient(180deg,#f3fbff 0%,var(--bg-sky) 22%,var(--bg-sky-deep) 62%,var(--bg-grass) 100%);color:var(--text)}button,input{font:inherit}button{cursor:pointer}.app-shell{min-height:100vh;position:relative;overflow:hidden}.app-shell:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,#f3fbffc2,#cfeeff85 42%,#b9dfa170),url(/images/kukat.jpg) center / cover no-repeat;transform:scale(1.08);pointer-events:none}.page{width:min(1120px,calc(100vw - 24px));margin:0 auto;padding:0;position:relative;z-index:1;display:grid;gap:18px}.page-card{background:var(--card);border:1px solid var(--card-border);border-radius:28px;box-shadow:var(--shadow);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.hero-card,.loading-card{padding:22px}.hero-card h1,.loading-card h1,.hero-header h1{margin:8px 0 12px;font-size:clamp(2.2rem,6vw,4rem);line-height:1.5;letter-spacing:-.05em}h1,h2,.section-heading,.eyebrow{font-family:var(--font-display)}.lead,.body-copy{margin:0;color:var(--muted);line-height:1.55;font-size:1rem}.eyebrow{margin:0;color:var(--accent-strong);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:700}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}.hero-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.ghost-button{border:1px solid rgba(94,145,176,.24);background:#ffffff94;color:var(--text);border-radius:999px;padding:10px 14px}.primary-button{border:0;border-radius:999px;padding:13px 18px;background:linear-gradient(135deg,#ffd54f,var(--accent));color:#5c4300;font-weight:700;box-shadow:0 12px 24px #e59f0038}.primary-button:disabled,.ghost-button:disabled{opacity:.7;cursor:progress}.gate-form,.rsvp-form{margin-top:22px;display:grid;gap:14px}.field{display:grid;gap:8px}.field span{color:var(--muted);font-size:.95rem}.field input{width:100%;border:1px solid rgba(94,145,176,.2);border-radius:18px;background:#ffffffb8;color:var(--text);padding:14px 16px;outline:none}.field input::placeholder{color:var(--muted-strong)}.field input:focus{border-color:#e59f00a6;box-shadow:0 0 0 3px #ffd54f47}.status-message{margin:0;color:var(--muted);min-height:1.4em}.invite-page{gap:24px;--invite-panel-width: min(95vw, calc(95vh * 2007 / 2560))}.invite-page .hero{min-height:100vh;display:flex;align-items:center;justify-content:center}.invite-page .hero-visual{width:var(--invite-panel-width);max-width:95vw}.invite-page .hero-image{width:auto;height:95vh;max-width:95vw;min-height:0;object-fit:contain}.invite-page .hero-header h1{margin:0;text-shadow:0 8px 18px rgba(45,24,0,.28);font-size:48px;padding-bottom:.08em}.invite-page .hero-header h1 span{display:block}.invite-page .hero-header{width:fit-content;padding:16px 18px;border-radius:26px;background:linear-gradient(180deg,#0915282e,#12223c38);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);box-shadow:0 18px 44px #07101e33}.invite-page .hero-title-text{background:linear-gradient(135deg,#7fd34c,#b7ea5e 46%,#fff08a);color:transparent;-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:.45px rgba(88,57,0,.22);filter:drop-shadow(0 8px 18px rgba(45,24,0,.28))}.invite-page .hero-title-emoji{color:initial;-webkit-background-clip:initial;background-clip:initial;-webkit-text-stroke:0}.hero{min-height:100svh}.hero-visual{position:relative;height:95vh;border-radius:34px;overflow:hidden;box-shadow:0 30px 90px #3a6c8c38;margin:auto}.hero-image{width:auto;height:100%;min-height:95vh;object-fit:cover;object-position:center top;display:block;filter:grayscale(.12) contrast(1.04)}.hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:space-between;padding:22px;background:linear-gradient(180deg,#112c3b29,#112c3b0a 28%,#0a232db8),linear-gradient(120deg,rgba(255,231,140,.28),transparent 34%);color:#f8fbff}.hero-button{background:#f4fbff38;border-color:#ffffff47;color:#f8fbff;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.hero-header{display:grid}.landing-page .hero-header{max-width:30rem;align-self:flex-start}.landing-page .hero-header h1{background:linear-gradient(135deg,#dff2a6,#f6e06b,#fff8d4);color:transparent;-webkit-background-clip:text;background-clip:text;-webkit-text-stroke:.5px rgba(17,44,59,.18);text-shadow:none;font-size:48px;line-height:1.08;filter:drop-shadow(0 8px 18px rgba(9,27,38,.36));margin-bottom:5px}.landing-page .hero-header h1 span{display:block}.hero-header h1{margin:0;font-size:clamp(3rem,8vw,6.2rem);color:#fffef7;text-shadow:0 10px 28px rgba(9,27,38,.34)}.hero-form{width:min(420px,100%);padding:18px;background:#f4fafd42;border:1px solid rgba(255,255,255,.24);border-radius:24px;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);display:grid;gap:12px}.hero-text{margin:0;color:#f8fbfff0;line-height:1.5}.hero-form .status-message{color:#f8fbffe6}.hero-form input{width:100%;border:1px solid rgba(255,255,255,.28);border-radius:18px;background:#ffffffe0;color:var(--text);padding:14px 16px;outline:none}.hero-form input::placeholder{color:var(--muted-strong)}.hero-form input:focus{border-color:#e59f00a6;box-shadow:0 0 0 3px #ffd54f47}.landing-page{width:100vw;height:100vh;min-height:100vh;padding:0;margin:0;overflow:hidden}.landing-page .hero{height:100%;min-height:100%;width:100%;margin:0 auto;display:flex;align-items:center;justify-content:center}.landing-page .hero-visual{width:auto;max-width:95vw}.landing-page .hero-image{width:auto;height:95vh;max-width:95vw;min-height:0;object-fit:contain}.landing-page .hero-overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;justify-content:end;padding:22px;background:linear-gradient(180deg,#112c3b14,#112c3b1f 36%,#0a232dd1),linear-gradient(120deg,rgba(255,231,140,.22),transparent 32%);color:#f8fbff}.landing-page .hero-form{margin-bottom:0}.content-card{padding:20px}.invite-panel,.admin-card{border:1px solid rgba(94,145,176,.16);border-radius:24px;background:linear-gradient(180deg,#f5faf4b8,#f2f9ef8a),url(/images/kukat_keltainen.jpg) center / cover no-repeat;padding:18px}.invite-panel,.invite-rsvp-card{width:var(--invite-panel-width);margin:0 auto 28px}.admin-card h2{margin:0 0 8px;font-size:1.2rem}.admin-card{margin-top:12px}.invite-copy{display:grid;gap:10px}.invite-copy-line,.invite-form-text{margin:0;color:var(--muted);line-height:1.7;font-family:"Avenir Next Rounded","Segoe UI Rounded","Trebuchet MS",var(--font-sans);font-size:clamp(1.08rem,2vw,1.32rem);letter-spacing:-.01em}.invite-form{margin-top:18px;display:grid;gap:14px}.guest-rows{display:grid;gap:12px}.button-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.invite-form .ghost-button{background:linear-gradient(135deg,#74c95d,#9be06f);border-color:#52823438;color:#214016;font-weight:700;letter-spacing:0;box-shadow:0 12px 24px #5d9e3a33}.admin-list{display:grid;gap:12px;margin-top:16px}.admin-item{border:1px solid rgba(94,145,176,.14);border-radius:18px;background:#ffffff9e;padding:14px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.admin-delete-button{flex:none;white-space:nowrap;background:linear-gradient(135deg,#f7b3b3,#ef8f8f);border-color:#993d3d2e;color:#5c1616;box-shadow:0 10px 18px #a3404024}.background-glow{position:absolute;width:36rem;height:36rem;border-radius:999px;filter:blur(54px);opacity:.34;pointer-events:none}.background-glow-left{top:-14rem;left:-12rem;background:#ffdd5794}.background-glow-right{top:7rem;right:-16rem;background:#ffffff6b}.muted{color:var(--muted-strong)}
