/* WeddingOS public experience */
:root{--bg:#090b12;--bg2:#111522;--text:#f7f3ea;--muted:#a4acc0;--accent:#d7b46a;--accent2:#72e2ff;--surface:rgba(255,255,255,.055);--line:rgba(255,255,255,.12);--radius:24px;--shadow:0 30px 90px rgba(0,0,0,.35);--display:"Cormorant Garamond",Georgia,serif;--sans:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg)}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;overflow-x:hidden}body::before{content:"";position:fixed;inset:0;pointer-events:none;background:radial-gradient(circle at 20% 10%,color-mix(in srgb,var(--accent2) 12%,transparent),transparent 32%),radial-gradient(circle at 80% 0,color-mix(in srgb,var(--accent) 13%,transparent),transparent 30%),linear-gradient(180deg,transparent,rgba(0,0,0,.12));z-index:-1}a{color:inherit}button,input,select,textarea{font:inherit}.hidden{display:none!important}.page-shell{min-height:100vh}.hero{position:relative;min-height:100svh;display:grid;place-items:center;padding:38px 20px 88px;isolation:isolate}.hero::after{content:"";position:absolute;inset:auto 0 0;height:180px;background:linear-gradient(transparent,var(--bg));z-index:-1}.hero-art{position:absolute;inset:0;z-index:-2;overflow:hidden}.orb{position:absolute;border-radius:50%;filter:blur(4px);opacity:.55}.orb.one{width:380px;height:380px;left:-130px;top:12%;background:radial-gradient(circle,color-mix(in srgb,var(--accent2) 30%,transparent),transparent 68%)}.orb.two{width:420px;height:420px;right:-120px;bottom:10%;background:radial-gradient(circle,color-mix(in srgb,var(--accent) 32%,transparent),transparent 68%)}.grid-lines{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:42px 42px;mask-image:linear-gradient(to bottom,black,transparent 90%)}.hero-card{width:min(900px,100%);text-align:center;padding:56px clamp(22px,6vw,72px);border:1px solid var(--line);background:linear-gradient(180deg,rgba(255,255,255,.075),rgba(255,255,255,.025));border-radius:36px;box-shadow:var(--shadow);backdrop-filter:blur(22px)}.eyebrow{text-transform:uppercase;letter-spacing:.22em;font-size:.78rem;color:var(--accent2);font-weight:700}.hero h1{font-family:var(--display);font-size:clamp(3.3rem,10vw,7.3rem);font-weight:500;line-height:.88;margin:18px 0}.hero h1 .amp{color:var(--accent);font-style:italic}.hero-subtitle{font-size:clamp(1rem,2vw,1.25rem);color:var(--muted);max-width:620px;margin:0 auto 26px;line-height:1.7}.hero-date{font-size:clamp(1.2rem,3vw,1.8rem);letter-spacing:.08em;margin-bottom:28px}.hero-actions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.btn{border:1px solid var(--line);background:rgba(255,255,255,.04);color:var(--text);padding:13px 18px;border-radius:15px;display:inline-flex;justify-content:center;align-items:center;gap:8px;text-decoration:none;cursor:pointer;transition:.2s ease}.btn:hover{transform:translateY(-1px);background:rgba(255,255,255,.08)}.btn.primary{background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 74%,white));color:#101014;border-color:transparent;font-weight:800}.btn.secondary{background:linear-gradient(135deg,var(--accent2),color-mix(in srgb,var(--accent2) 70%,white));color:#071016;border-color:transparent;font-weight:800}.scroll-hint{position:absolute;bottom:28px;color:var(--muted);font-size:.76rem;text-transform:uppercase;letter-spacing:.18em}.container{width:min(1120px,calc(100% - 32px));margin:0 auto}.section{padding:92px 0}.section-header{max-width:720px;margin-bottom:34px}.section-kicker{color:var(--accent2);font-size:.78rem;text-transform:uppercase;letter-spacing:.2em;font-weight:700}.section-title{font-family:var(--display);font-weight:500;font-size:clamp(2.4rem,6vw,4.6rem);line-height:1;margin:12px 0}.section-copy{color:var(--muted);line-height:1.8;font-size:1.03rem}.panel{border:1px solid var(--line);background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);backdrop-filter:blur(16px)}.guest-banner{padding:20px;display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:-50px;position:relative;z-index:4}.guest-banner strong{font-size:1.1rem}.guest-banner span{display:block;color:var(--muted);font-size:.88rem;margin-top:3px}.countdown{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:30px}.countdown-item{padding:18px 12px;text-align:center;border:1px solid var(--line);background:rgba(255,255,255,.035);border-radius:18px}.countdown-item strong{display:block;font-size:clamp(1.5rem,4vw,2.4rem)}.countdown-item span{color:var(--muted);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em}.cards-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.info-card{padding:24px}.info-card h3{font-family:var(--display);font-size:2rem;margin:0 0 12px}.info-card p{color:var(--muted);line-height:1.75;margin:0}.info-card img{width:100%;height:260px;object-fit:cover;border-radius:18px;margin-bottom:18px}.event-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:20px}.event-card{padding:28px}.event-meta{display:grid;gap:18px}.event-item{display:grid;grid-template-columns:42px 1fr;gap:13px}.event-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.06);color:var(--accent)}.event-item strong{display:block}.event-item span{display:block;color:var(--muted);margin-top:4px}.map-frame{min-height:390px;overflow:hidden}.map-frame iframe{border:0;width:100%;height:100%;min-height:390px}.timeline{display:grid;gap:0}.timeline-item{display:grid;grid-template-columns:90px 24px 1fr;gap:14px;position:relative}.timeline-time{color:var(--accent);font-weight:800;padding-top:3px}.timeline-line{position:relative}.timeline-line::before{content:"";position:absolute;left:10px;top:10px;bottom:-26px;width:1px;background:var(--line)}.timeline-item:last-child .timeline-line::before{display:none}.timeline-dot{width:21px;height:21px;border:5px solid color-mix(in srgb,var(--accent2) 40%,var(--bg));background:var(--accent2);border-radius:50%}.timeline-content{padding-bottom:28px}.timeline-content strong{font-size:1.05rem}.timeline-content p{color:var(--muted);margin:5px 0 0;line-height:1.6}.faq-list{display:grid;gap:12px}.faq-item{padding:0 20px}.faq-item button{width:100%;border:0;background:transparent;color:var(--text);padding:20px 0;text-align:left;display:flex;justify-content:space-between;gap:16px;font-weight:700}.faq-answer{color:var(--muted);line-height:1.75;padding:0 0 20px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.gallery img{width:100%;aspect-ratio:1/1;object-fit:cover;border-radius:18px;border:1px solid var(--line)}.rsvp-shell{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:22px}.rsvp-summary{padding:28px}.rsvp-summary h3{font-family:var(--display);font-size:2.5rem;margin:0 0 10px}.rsvp-summary p{color:var(--muted);line-height:1.8}.rsvp-form{padding:28px}.field{display:grid;gap:7px;margin-bottom:15px}.field label{font-size:.83rem;color:var(--muted)}.field input,.field select,.field textarea{width:100%;border:1px solid var(--line);background:rgba(0,0,0,.22);color:var(--text);padding:12px 13px;border-radius:14px;outline:none}.field input:focus,.field select:focus,.field textarea:focus{border-color:color-mix(in srgb,var(--accent2) 55%,transparent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent2) 10%,transparent)}.field textarea{min-height:100px;resize:vertical}.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.choice{border:1px solid var(--line);background:rgba(255,255,255,.025);border-radius:16px;padding:14px;display:flex;gap:10px;align-items:center;cursor:pointer}.choice:has(input:checked){border-color:color-mix(in srgb,var(--accent2) 45%,transparent);background:color-mix(in srgb,var(--accent2) 8%,transparent)}.companion-list{display:grid;gap:10px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.save-date-card{padding:34px;text-align:center}.save-date-card h3{font-family:var(--display);font-size:clamp(2.2rem,5vw,4rem);margin:0 0 12px}.save-date-card p{color:var(--muted);line-height:1.8;max-width:650px;margin:0 auto 20px}.notice{padding:18px;border-radius:16px;background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--muted)}.notice.success{border-color:color-mix(in srgb,#6fe6ae 30%,transparent);color:#c7f8df}.notice.error{border-color:color-mix(in srgb,#ff7d8f 30%,transparent);color:#ffd7dd}.footer{padding:54px 0 36px;text-align:center;color:var(--muted)}.footer strong{color:var(--text);font-family:var(--display);font-size:1.8rem}.footer p{margin:8px 0}.toast-stack{position:fixed;right:18px;bottom:18px;z-index:80;display:grid;gap:10px}.toast{background:#131823;border:1px solid var(--line);padding:12px 14px;border-radius:14px;box-shadow:var(--shadow);max-width:350px}.loading::before{content:"";position:fixed;inset:0;background:var(--bg);z-index:1000}.loading::after{content:"";position:fixed;left:50%;top:50%;width:38px;height:38px;margin:-19px;border:3px solid rgba(255,255,255,.12);border-top-color:var(--accent);border-radius:50%;animation:spin 1s linear infinite;z-index:1001}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:820px){.cards-grid,.event-grid,.rsvp-shell{grid-template-columns:1fr}.gallery{grid-template-columns:repeat(2,1fr)}.hero-card{padding:44px 22px}.guest-banner{align-items:flex-start;flex-direction:column}.section{padding:72px 0}.map-frame,.map-frame iframe{min-height:320px}}
@media(max-width:520px){.container{width:min(100% - 22px,1120px)}.hero{padding-inline:11px}.hero-card{border-radius:26px}.countdown{gap:7px}.countdown-item{padding:13px 6px;border-radius:14px}.countdown-item strong{font-size:1.45rem}.countdown-item span{font-size:.58rem}.choice-grid{grid-template-columns:1fr}.gallery{grid-template-columns:1fr 1fr}.timeline-item{grid-template-columns:68px 22px 1fr;gap:9px}.rsvp-form,.rsvp-summary,.event-card,.info-card{padding:20px}.hero-actions .btn{width:100%}}
