:root{--accent:#b8873a;--accent2:#e4c982;--dark:#17120e;--paper:#f5efe4;--ink:#2b2119;--muted:#77695d;--serif:Georgia,'Times New Roman',serif;--sans:Inter,system-ui,sans-serif;--title:var(--serif)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--dark);color:var(--ink);font-family:var(--sans);line-height:1.65}button,input,textarea,select{font:inherit}button,a{cursor:pointer}.locked{height:100vh;overflow:hidden}.cover{position:fixed;z-index:100;inset:0;display:grid;place-items:center;color:white;text-align:center;background:#0f0b08;transition:opacity .8s,visibility .8s}.cover.hide{opacity:0;visibility:hidden}.cover>img{position:absolute;width:100%;height:100%;object-fit:cover;filter:saturate(.85)}.cover-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,3,2,.28),rgba(7,4,2,.75))}.cover-content{position:relative;padding:32px;max-width:650px}.eyebrow{font-size:.75rem;letter-spacing:.38em;text-transform:uppercase;color:var(--accent2)}h1,h2,h3{font-family:var(--title);font-weight:400;margin:.25em 0;line-height:1.08}h1{font-size:clamp(3rem,9vw,7.5rem)}h1 i{font-weight:400;color:var(--accent);font-size:.7em}.cover p{margin:24px 0 0}.cover strong{display:block;font-family:var(--serif);font-size:1.35rem;margin:4px 0 24px}.gold-line{height:1px;background:linear-gradient(90deg,transparent,var(--accent2),transparent);width:240px;margin:16px auto}.primary,.outline,.tool-btn,.danger{border:0;padding:12px 20px;border-radius:2px;text-decoration:none;display:inline-flex;justify-content:center;align-items:center;transition:.2s}.primary{background:var(--accent);color:#fff}.primary:hover{filter:brightness(1.12);transform:translateY(-1px)}.outline{border:1px solid var(--accent);background:transparent;color:inherit}.invitation{max-width:1500px;margin:auto;background:var(--paper);overflow:hidden}.hero{height:min(100vh,900px);position:relative;display:grid;place-items:center;color:#fff;text-align:center}.hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,6,3,.15),rgba(10,6,3,.72))}.hero-copy{position:relative}.section-paper{background:var(--paper);color:var(--ink)}.section-dark{background:var(--dark);color:#fff}.intro,.couple,.events,.gallery,.story,.rsvp,.gift,.quote,footer{padding:clamp(72px,10vw,140px) clamp(24px,7vw,100px);text-align:center}.intro{max-width:900px;margin:auto}.intro h2{font-size:clamp(1.6rem,4vw,2.5rem)}.intro p{color:var(--muted)}.ornament{font-size:3rem;color:var(--accent)}.kromo{font-family:var(--serif);font-style:italic}.section-heading span{font-size:.75rem;letter-spacing:.35em;text-transform:uppercase;color:var(--accent)}.section-heading h2{font-size:clamp(2.4rem,6vw,4.5rem);margin-bottom:50px}.couple-grid{display:grid;grid-template-columns:1fr auto 1fr;gap:clamp(24px,5vw,70px);align-items:center;max-width:1100px;margin:auto}.portrait{width:min(100%,360px);aspect-ratio:4/5;margin:auto;padding:8px;border:1px solid var(--accent);border-radius:50% 50% 4px 4px}.portrait img{width:100%;height:100%;object-fit:cover;border-radius:inherit}.person small{display:block;margin-top:25px;color:var(--accent);text-transform:uppercase;letter-spacing:.2em}.person h3{font-size:2rem}.person p{color:var(--muted)}.person a{color:var(--accent)}.ampersand{font:italic 4rem var(--serif);color:var(--accent)}.countdown{padding:55px 24px;text-align:center}.count-grid{display:flex;justify-content:center;gap:clamp(12px,4vw,48px);margin-top:24px}.count-grid div{min-width:70px}.count-grid strong{font:2.2rem var(--serif);display:block;color:var(--accent2)}.count-grid span{font-size:.7rem;letter-spacing:.16em;text-transform:uppercase}.event-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1000px;margin:auto}.event-card{padding:46px 30px;border:1px solid #ccb98f;background:rgba(255,255,255,.35);box-shadow:0 20px 60px rgba(40,25,10,.08)}.event-card h3{font-size:2rem}.event-card p{color:var(--muted)}.event-card .outline{margin-top:16px;color:var(--ink)}.event-icon{font-size:2rem;color:var(--accent)}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;max-width:1100px;margin:auto}.gallery figure{margin:0;overflow:hidden}.gallery .wide{grid-column:1/-1;aspect-ratio:16/8}.gallery figure:not(.wide){aspect-ratio:4/5}.gallery img{width:100%;height:100%;object-fit:cover;transition:transform .8s}.gallery figure:hover img{transform:scale(1.035)}.timeline{max-width:750px;margin:auto;text-align:left}.story-item{position:relative;padding:0 0 50px 45px;border-left:1px solid var(--accent)}.story-item:before{content:'';position:absolute;left:-6px;top:5px;width:11px;height:11px;border-radius:50%;background:var(--accent)}.story-item time{color:var(--accent);letter-spacing:.15em;font-size:.8rem}.quote p{font:italic clamp(1.5rem,4vw,3rem) var(--serif);max-width:1000px;margin:0 auto 20px}.quote small{color:var(--accent2)}.form-card{max-width:620px;margin:auto;display:grid;gap:16px;text-align:left}.form-card label,.editor label{display:grid;gap:6px;font-size:.85rem}.form-card input,.form-card textarea,.form-card select,.editor input,.editor textarea,.editor select{width:100%;padding:12px;border:1px solid #cbbda9;background:#fff}.form-card textarea,.editor textarea{min-height:95px;resize:vertical}.wishes{display:grid;gap:12px;max-width:620px;margin:35px auto 0;text-align:left}.wish{padding:18px;background:#fff;border-left:3px solid var(--accent)}.gift>p{color:#cfc4b9}.bank-card{max-width:440px;margin:30px auto;padding:35px;border:1px solid var(--accent);display:grid;gap:8px}.bank-card strong{font:2rem var(--serif);letter-spacing:.12em}.bank-card .outline{color:#fff;margin-top:15px}footer{background:#0c0907;color:white}footer h2{font-size:3rem}.edit-fab{position:fixed;z-index:50;right:20px;top:20px;border:1px solid rgba(255,255,255,.4);background:rgba(15,10,7,.78);backdrop-filter:blur(14px);color:#fff;padding:10px 16px;border-radius:30px}.editor{position:fixed;z-index:210;right:0;top:0;width:min(440px,94vw);height:100vh;background:#faf8f3;transform:translateX(105%);transition:.35s;box-shadow:-20px 0 70px rgba(0,0,0,.25);overflow:auto}.editor.open{transform:none}.editor-head{position:sticky;top:0;z-index:2;background:#17120e;color:#fff;padding:18px 20px;display:flex;justify-content:space-between;align-items:center}.editor-head h2{margin:0}.editor-head button{background:none;border:0;color:white;font-size:2rem}.editor-tabs{position:sticky;top:86px;z-index:2;display:grid;grid-template-columns:repeat(4,1fr);background:#eee5d9}.editor-tabs button{border:0;padding:13px 4px;background:transparent;font-size:.8rem}.editor-tabs button.active{background:var(--accent);color:#fff}.tab-panel{display:none;padding:20px}.tab-panel.active{display:grid;gap:14px}.editor details{border:1px solid #ddd1c1;padding:12px;background:#fff}.editor summary{font-weight:700;cursor:pointer}.editor details label{margin-top:12px}.hint{font-size:.78rem;color:#71665b}.tool-btn{background:#e8dfd2;color:#2b2119;width:100%}.danger{background:#5d2525;color:#fff;width:100%}.file-btn input{display:none}.editor-backdrop{position:fixed;z-index:200;inset:0;background:rgba(0,0,0,.45);opacity:0;visibility:hidden;transition:.3s}.editor-backdrop.show{opacity:1;visibility:visible}.music-button{position:fixed;z-index:45;left:20px;bottom:20px;width:48px;height:48px;border-radius:50%;border:1px solid var(--accent);background:rgba(15,10,7,.8);color:white;font-size:1.4rem}.music-button.playing{animation:pulse 2s infinite}.toast{position:fixed;z-index:300;left:50%;bottom:25px;transform:translate(-50%,30px);opacity:0;background:#17120e;color:#fff;padding:11px 18px;border-radius:4px;transition:.3s}.toast.show{transform:translate(-50%,0);opacity:1}.reveal{opacity:0;transform:translateY(22px);transition:.8s}.reveal.visible{opacity:1;transform:none}@keyframes pulse{50%{box-shadow:0 0 0 12px rgba(184,135,58,0)}}@media(max-width:700px){.couple-grid{grid-template-columns:1fr}.ampersand{font-size:3rem}.event-grid,.gallery-grid{grid-template-columns:1fr}.gallery .wide{grid-column:auto;aspect-ratio:4/5}.hero{height:86vh}.count-grid{gap:8px}.count-grid strong{font-size:1.65rem}.editor-tabs{top:85px}.edit-fab{top:auto;bottom:20px}.music-button{bottom:76px}}
