@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Libre+Caslon+Display&display=swap";:root{--ink:#243c4e;--blue:#577991;--paper:#faf9f5;--line:#dddeda;--muted:#697780}*{box-sizing:border-box}body{background:var(--paper);color:var(--ink);margin:0;font-family:DM Sans,Arial,sans-serif;font-size:15px}button,input,a{-webkit-tap-highlight-color:transparent}button,a{color:inherit}button{font:inherit;cursor:pointer}a{text-decoration:none}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible{outline-offset:4px;outline:3px solid #8ca8bc}header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;height:106px;padding:0 6%;display:flex}.brand{letter-spacing:-1px;font-family:Libre Caslon Display,Georgia,serif;font-size:34px}.brand i{color:var(--blue)}.brand span{letter-spacing:3px;margin-top:7px;font:9px DM Sans,sans-serif;display:block}nav{align-items:center;gap:28px;display:flex}.prototype{letter-spacing:1.8px;border:1px solid var(--line);border-radius:30px;padding:8px 12px;font-size:9px}h1,h2,h3{margin:0;font-family:Libre Caslon Display,Georgia,serif;font-weight:400}h1{letter-spacing:-1.5px;font-size:58px;line-height:1.06}h2{font-size:34px}h3{font-size:28px}p{line-height:1.7}button.text,a.text{background:0 0;border:0;align-items:center;gap:8px;padding:10px 0;font-size:13px;display:inline-flex}.primary,.secondary{border:1px solid var(--blue);border-radius:4px;justify-content:center;align-items:center;gap:10px;padding:15px 23px;font:500 13px DM Sans,sans-serif;transition:background .2s;display:inline-flex}.primary{background:var(--blue);color:#fff}.primary:hover{background:#3f647e}.secondary{background:0 0}.secondary:hover{background:#eaf0f3}.eyebrow{letter-spacing:2.3px;margin:0 0 22px;font-size:10px;font-weight:600}.hero{grid-template-columns:1.2fr 1fr;align-items:center;gap:60px;max-width:1400px;margin:auto;padding:82px 7% 90px;display:grid}.hero h1{font-size:clamp(58px,5.6vw,84px);line-height:1.06}.hero em{color:var(--blue);font-weight:400}.intro{max-width:425px;color:var(--muted);margin:27px 0 30px;font-size:16px}.fine{color:var(--muted);font-size:11px;line-height:1.7}.stationery{background:repeating-linear-gradient(90deg,#e7edf0 0 17px,#f0f3f3 17px 34px);border-radius:160px 160px 6px 6px;max-width:470px;padding:35px 35px 45px;position:relative}.annotation{text-align:center;margin:2px 0 22px;font-family:Georgia,serif;font-size:12px;font-style:italic;display:block}.paper{text-align:center;outline-offset:-16px;background:#fffdf8;border:8px solid #fffdf8;outline:1px solid #c8d1d5;padding:23px 25px 34px;transform:rotate(-5deg);box-shadow:0 18px 40px #263d4c19}.ornament{color:var(--blue);margin-bottom:10px;font-size:44px;line-height:1.3}.paper h2{font-size:37px;line-height:1.06}.paper .eyebrow{margin:12px 0;font-size:8px}.paper p{font-size:12px}.monogram{border:1px solid #aebec7;border-radius:50%;justify-content:center;align-items:center;gap:6px;width:83px;height:83px;margin:20px auto 5px;font-family:Georgia,serif;font-size:26px;display:flex}.monogram i{font-size:20px}.rule{background:#aabac5;width:40px;height:1px;margin:18px auto;display:block}.paper small{letter-spacing:1.5px;font-size:8px}.paper-tag{background:#fffdf8;align-items:center;gap:17px;padding:17px 25px;font-size:11px;line-height:1.7;display:flex;position:absolute;bottom:22px;right:-23px;transform:rotate(4deg);box-shadow:0 6px 22px #20374b17}.steps{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:#f0f2ed;grid-template-columns:repeat(3,1fr);gap:60px;padding:45px 7%;display:grid}.steps>div{padding-left:35px;position:relative}.steps span{color:var(--blue);font-size:11px;position:absolute;top:8px;left:0}.steps h3{font-size:26px}.steps p{color:var(--muted);max-width:275px;font-size:13px}.narrow{max-width:680px;margin:auto;padding:50px 25px 90px}.back{background:0 0;border:0;align-items:center;gap:8px;margin-bottom:30px;padding:0;font-size:12px;display:flex}.muted{color:var(--muted)}form{margin-top:35px}label{margin-bottom:24px;font-size:12px;font-weight:500;display:block}input{width:100%;color:var(--ink);background:#fff;border:1px solid #ccd4d7;border-radius:4px;margin-top:9px;padding:14px;font:14px DM Sans,sans-serif;display:block}.formgrid{grid-template-columns:1fr 1.3fr;gap:20px;display:grid}.workspace{max-width:1380px;margin:auto;padding:45px 6% 80px}.titlebar{justify-content:space-between;align-items:center;gap:20px;margin-bottom:40px;display:flex}.titlebar .eyebrow{margin-bottom:12px}.dot{padding:0 10px}.dashboard{grid-template-columns:minmax(0,1fr) 290px;gap:42px;display:grid}.gallerybar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;padding-bottom:18px;display:flex}.gallerybar h3{white-space:nowrap;font-size:25px}.gallerybar input{max-width:210px;margin:0;padding:10px;font-size:11px}.count{vertical-align:middle;background:#e6ecef;border-radius:20px;margin-left:8px;padding:3px 8px;font:11px DM Sans}.sharecard{text-align:center;background:#edf1f3;border:1px solid #dbe2e6;border-radius:7px;padding:25px 22px}.sharecard .eyebrow{margin-bottom:14px}.sharecard h2{font-size:33px;line-height:1.12}.qr{width:174px;height:174px;margin:22px auto}.sharecard .primary,.sharecard .secondary{width:100%;margin-bottom:10px;font-size:12px}.sharecard .text{justify-content:center;width:100%}.tip{align-items:start;gap:12px;margin-top:20px;display:flex}.tip svg{flex-shrink:0;margin-top:4px}.tip p{margin:0;font-size:12px}.tip span{color:var(--muted)}.empty{text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:270px;padding:35px 20px;display:flex}.empty svg{color:#8ca6b6;margin-bottom:20px}.empty h2{font-size:32px}.empty p{color:var(--muted);max-width:360px;font-size:13px}.upload{text-align:center;cursor:pointer;background:#f1f4f3;border:1px dashed #a6bac6;border-radius:6px;flex-direction:column;align-items:center;gap:8px;margin:20px 0;padding:25px 15px;display:flex;position:relative}.upload input{opacity:0;cursor:pointer;width:100%;height:100%;margin:0;position:absolute;inset:0}.upload strong{font-size:15px;font-weight:500}.upload span,.upload small{color:var(--muted);font-size:11px}.upload small{margin-top:7px}.photo-grid{grid-template-columns:repeat(3,1fr);gap:15px;margin:22px 0;display:grid}.photo{border:1px solid var(--line);text-align:left;background:#fff;border-radius:4px;padding:0;overflow:hidden}.photo img,.heic{object-fit:cover;width:100%;height:190px}.photo>span{padding:12px;font-size:12px;display:block}.photo small{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);margin-top:4px;font-size:10px;display:block;overflow:hidden}.heic{color:var(--muted);background:#e8edef;flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.guest{text-align:center;max-width:620px;margin:0 auto;padding:45px 25px 70px}.guest h1{margin:15px 0;font-size:65px}.guest h2{margin:35px 0 8px}.guest>p{color:var(--muted);font-size:14px}.guestname{text-align:left;margin:30px 0 20px}.guestname span{color:var(--muted);font-weight:400}.guest .upload{justify-content:center;min-height:220px}.notice{z-index:10;background:#e7edf2;justify-content:space-between;gap:20px;padding:14px 6%;font-size:13px;display:flex;position:sticky;top:0;box-shadow:0 2px 8px #00000008}.notice button{background:0 0;border:0}.album-grid{grid-template-columns:repeat(3,1fr);gap:24px;display:grid}.album-card{border:1px solid var(--line);text-align:left;background:#fff;border-radius:6px;padding:0 0 20px;overflow:hidden}.album-art{height:180px;color:var(--blue);background:repeating-linear-gradient(90deg,#e7edf0 0 17px,#f0f3f3 17px 34px);place-items:center;display:grid}.album-card h2{margin:20px 20px 5px}.album-card p{color:var(--muted);margin:0 20px 16px;font-size:11px}.album-card>span{gap:10px;margin:0 20px;font-size:12px;display:flex}.modal{z-index:20;background:#152b3beb;justify-content:center;align-items:center;padding:25px;display:flex;position:fixed;inset:0}.modal>div{background:var(--paper);max-width:850px;max-height:95vh;padding:20px;position:relative;overflow:auto}.modal img{object-fit:contain;max-width:100%;max-height:65vh;margin:auto;display:block}.modal .close{z-index:2;background:#fff;border:0;border-radius:30px;padding:8px;position:absolute;top:25px;right:25px}.modal p{font-size:12px}.actions{gap:12px;display:flex}.printview{padding:40px 20px 70px}.print-controls{justify-content:space-between;align-items:center;max-width:750px;margin:0 auto 25px;display:flex}.print-controls .back{margin:0}.print-card{text-align:center;outline-offset:-12px;background:#fff;outline:1px solid #9eb4c4;width:450px;max-width:100%;margin:auto;padding:35px 25px;box-shadow:0 4px 25px #243c4e15}.print-card h1{font-size:53px}.print-card p{font-size:14px}.print-card img{width:200px;margin:10px auto;display:block}.print-card h2{margin:12px 0}.print-card small{font-size:10px}footer{border-top:1px solid var(--line);justify-content:space-between;align-items:center;gap:20px;padding:30px 6%;display:flex}footer>span{font:25px Libre Caslon Display,Georgia,serif}footer p,footer small{color:var(--muted);font-size:10px}@media (width<=850px){.hero{gap:35px;padding:55px 6%}.hero h1{font-size:58px}.stationery{padding:25px}.paper-tag{right:-12px}.dashboard{grid-template-columns:minmax(0,1fr) 240px;gap:20px}.photo-grid{grid-template-columns:repeat(2,1fr)}.gallerybar{flex-wrap:wrap}.steps{gap:20px}.steps>div{padding-left:0}.steps span{margin-bottom:10px;display:block;position:static}}@media (width<=620px){header{height:88px;padding:0 6%}.brand{font-size:28px}.brand span{letter-spacing:2px;font-size:7px}nav{gap:10px}.prototype{display:none}.hero{grid-template-columns:1fr;padding:45px 7% 55px}.hero h1{font-size:59px}.stationery{width:85%;margin:20px auto 0}.steps{grid-template-columns:1fr;gap:25px;padding:35px 7%}.steps p{max-width:100%;margin:8px 0}.steps h3{font-size:28px}.eyebrow{font-size:9px}.titlebar{flex-direction:column;align-items:flex-start}.dashboard{grid-template-columns:1fr}.dashboard aside{grid-row:1}.sharecard{grid-template-columns:1fr 1fr;align-items:center;gap:8px;display:grid}.sharecard .eyebrow,.sharecard h2{grid-column:1}.sharecard .qr{grid-area:1/2/3;width:120px;height:120px;margin:0 auto}.sharecard .fine{grid-column:1/-1}.sharecard h2{font-size:27px}.sharecard .primary,.sharecard .secondary{padding:12px 6px;font-size:11px}.tip{display:none}.formgrid{grid-template-columns:1fr;gap:0}h1{font-size:45px}.guest h1{font-size:55px}.album-grid{grid-template-columns:1fr}.gallerybar input{flex:1;max-width:100%}.photo img,.heic{height:170px}footer{flex-wrap:wrap}footer p{display:none}.actions{flex-wrap:wrap}}@media print{header,footer,.notice,.print-controls{display:none!important}body{background:#fff}.printview{padding:0}.print-card{box-shadow:none;break-inside:avoid;width:5in;min-height:7in;margin:0 auto;padding-top:40px}@page{margin:.5in}}.gallery-setting{border:1px solid var(--line);background:#fff;border-radius:7px;margin-bottom:18px;padding:22px}.gallery-setting .eyebrow{margin-bottom:16px}.setting-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.setting-row h3{font-size:25px;line-height:1.1}.gallery-setting p:not(.eyebrow){color:var(--muted);margin:14px 0 7px;font-size:12px}.gallery-setting small{color:var(--muted);font-size:10px}.toggle{background:#ccd4d7;border:0;border-radius:20px;width:46px;min-width:46px;height:26px;padding:3px;transition:background .2s}.toggle span{background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;display:block;box-shadow:0 1px 3px #0002}.toggle.on{background:var(--blue)}.toggle.on span{transform:translate(20px)}.guest-gallery{border-top:1px solid var(--line);margin-top:45px;padding-top:35px}.guest-gallery h2{margin-top:8px}.guest-gallery .photo-grid{grid-template-columns:repeat(2,1fr)}.upload-selection{text-align:left;margin:16px 0}.upload-selection p{color:var(--muted);font-size:13px}.upload-selection ul{max-height:220px;margin:0;padding:0;list-style:none;overflow:auto}.upload-selection li{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:12px;font-size:13px;display:flex}.upload-selection li span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.upload-selection li button{flex-shrink:0}.upload-submit{min-width:150px;margin-top:16px}.upload-confirmation{text-align:left;border:1px solid var(--blue);color:var(--ink);background:#eaf0f3;border-radius:7px;align-items:center;gap:18px;margin:22px 0;padding:24px;display:flex}.upload-confirmation-icon{background:var(--blue);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.upload-confirmation h3{font-size:30px;line-height:1.15}.upload-confirmation p{margin:9px 0 0;font-size:14px;line-height:1.6}.upload-failed{background:var(--paper)}@media (width<=620px){.upload-confirmation{gap:13px;padding:20px 16px}.upload-confirmation h3{font-size:26px}.upload-confirmation-icon{width:44px;height:44px}}
