:root{--ink:#17201d;--muted:#64736e;--line:#dbe5df;--paper:#fbfbf7;--panel:#ffffff;--brand:#137267;--brand-dark:#0b514a;--gold:#d9a441;--rose:#c86e63}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;letter-spacing:0}a{color:inherit}button,input,select,textarea{font:inherit}.topbar{justify-content:space-between;gap:18px;padding:18px clamp(18px,4vw,52px);border-bottom:1px solid var(--line);background:rgba(251,251,247,.94);position:-webkit-sticky;position:sticky;top:0;z-index:10;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.brand,.topbar{display:flex;align-items:center}.brand{gap:12px;font-weight:900;text-decoration:none}.mark{width:38px;height:38px;display:grid;place-items:center;border-radius:8px;background:var(--brand);color:white}.nav{display:flex;gap:10px;flex-wrap:wrap}.container{width:min(1120px,calc(100% - 32px));margin:0 auto}.hero{min-height:calc(100vh - 76px);display:grid;align-items:center;padding:52px 0}.hero h1{margin:0;max-width:880px;font-size:clamp(2.6rem,7vw,6.5rem);line-height:.95}.hero p{max-width:680px;margin:22px 0 0;color:var(--muted);font-size:clamp(1.05rem,2vw,1.25rem);line-height:1.6}.button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;border-radius:8px;padding:11px 15px;background:var(--brand);color:white;font-weight:850;text-decoration:none;cursor:pointer}.button:hover{background:var(--brand-dark)}.button.secondary{background:white;color:var(--ink);border-color:var(--line)}.button.gold{background:var(--gold);color:#221703}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:16px;gap:16px;margin:28px 0 60px}.card,.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:20px}.card h2,.card h3,.panel h1,.panel h2{margin:0 0 10px}.price{font-size:2.3rem;font-weight:900;margin:12px 0}.muted{color:var(--muted)}.small-text{font-size:.9rem;margin-top:-4px}.form{display:grid;grid-gap:12px;gap:12px}.field{display:grid;grid-gap:7px;gap:7px}.field span{color:var(--muted);font-size:.88rem;font-weight:800}.input,.select,.textarea{width:100%;border:1px solid var(--line);border-radius:8px;padding:12px 13px;background:white}.textarea{min-height:100px;resize:vertical}.upload-page{min-height:100vh;display:grid;place-items:center;padding:24px}.upload-card{width:min(560px,100%)}.photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:12px;gap:12px}.photo-grid img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px;background:#07100e}.qr-card{width:min(220px,100%);aspect-ratio:1;display:grid;place-items:center;border:1px solid var(--line);border-radius:8px;background:white;margin:14px 0;padding:10px}.qr-card img{width:100%;height:100%;object-fit:contain}.breakable{overflow-wrap:anywhere}.notice{border-radius:8px;background:#edf7f4;color:var(--brand-dark);padding:12px}.notice.error{background:#fff1ef;color:#9f2f25}.manager-photos{margin-top:18px;border-top:1px solid var(--line);padding-top:14px}.manager-photos h4{margin:0 0 10px}.manager-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));grid-gap:10px;gap:10px}.manager-photo-grid.large{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:16px}.event-manager{margin:28px 0 16px}.manager-summary{display:grid;grid-template-columns:minmax(160px,220px) minmax(0,1fr);grid-gap:18px;gap:18px;align-items:center}.manager-photo{margin:0;display:grid;grid-gap:8px;gap:8px}.manager-photo img{width:100%;aspect-ratio:1;object-fit:cover;border:1px solid var(--line);border-radius:8px;background:#07100e}.manager-photo figcaption{display:grid;grid-gap:3px;gap:3px;min-height:38px;color:var(--muted);font-size:.85rem}.manager-photo figcaption span,.manager-photo figcaption strong{overflow-wrap:anywhere}@media (max-width:720px){.manager-summary{grid-template-columns:1fr}}.poster-page{padding:28px 0 56px}.poster-builder{display:grid;grid-template-columns:minmax(280px,360px) minmax(420px,1fr);grid-gap:22px;gap:22px;align-items:start}.poster-controls{position:-webkit-sticky;position:sticky;top:96px}.poster-preview{position:relative;width:min(100%,8.5in);min-height:11in;margin:0 auto;overflow:hidden;display:grid;grid-template-rows:1fr auto;justify-items:center;padding:.58in .48in .42in;border:1px solid var(--line);background:#fff9e8;color:#19233f;box-shadow:0 18px 55px rgba(23,32,29,.14)}.poster-preview:before{content:"";position:absolute;inset:.34in;border:1px solid rgba(217,164,65,.16);pointer-events:none}.poster-qr-frame{align-self:center;width:min(4.25in,72%);aspect-ratio:1;display:grid;place-items:center;padding:.26in;background:white;border:1px solid rgba(25,35,63,.12)}.poster-qr-frame img{width:100%;height:100%;object-fit:contain}.poster-copy{position:relative;z-index:1;width:min(5.8in,100%);text-align:center}.poster-eyebrow,.poster-footer,.poster-helper{margin:0}.poster-eyebrow{font-size:.18in;color:#19233f}.poster-copy h2{margin:.3in 0 .12in;font-family:Georgia,Times New Roman,serif;font-size:.42in;font-weight:500;line-height:1.18}.poster-copy h2 strong{font-weight:800}.poster-helper{max-width:4.6in;margin:0 auto;font-size:.14in;line-height:1.35}.poster-footer{margin-top:.18in;color:#c99122;font-size:.15in}.poster-cap{position:absolute;top:.64in;width:.92in;height:.62in}.poster-cap:before{left:.05in;top:.02in;width:.78in;height:.34in;-webkit-clip-path:polygon(50% 0,100% 34%,50% 68%,0 34%);clip-path:polygon(50% 0,100% 34%,50% 68%,0 34%)}.poster-cap:after,.poster-cap:before{content:"";position:absolute;background:#172a55}.poster-cap:after{left:.31in;top:.26in;width:.28in;height:.12in;border-radius:0 0 .03in .03in}.poster-cap span{position:absolute;left:.63in;top:.22in;width:.04in;height:.34in;background:#d9a441}.poster-cap span:before{left:-.05in;top:-.05in;width:.14in;height:.14in;border-radius:50%}.poster-cap span:after,.poster-cap span:before{content:"";position:absolute;background:#d9a441}.poster-cap span:after{left:-.04in;bottom:-.07in;width:.12in;height:.12in;border-radius:50% 50% 45% 45%}.poster-cap-left{left:.7in;transform:rotate(-8deg)}.poster-cap-right{right:.7in;transform:scaleX(-1) rotate(-8deg)}.poster-balloon,.poster-confetti{display:none}.poster-template-birthday{background:radial-gradient(circle at 14% 16%,rgba(255,196,87,.42) 0 .12in,transparent .13in),radial-gradient(circle at 86% 21%,rgba(242,114,132,.34) 0 .1in,transparent .11in),radial-gradient(circle at 18% 78%,rgba(66,177,196,.22) 0 .14in,transparent .15in),#fff6f2;color:#342042}.poster-template-birthday:before{inset:.36in;border:.03in solid rgba(242,114,132,.18);border-radius:.12in}.poster-template-birthday .poster-cap{display:none}.poster-template-birthday .poster-balloon,.poster-template-birthday .poster-confetti{display:block}.poster-template-birthday .poster-confetti{position:absolute;inset:0;background:linear-gradient(24deg,transparent 0 46%,#f27284 46% 54%,transparent 54%) .75in .72in /.22in .22in no-repeat,linear-gradient(112deg,transparent 0 45%,#42b1c4 45% 55%,transparent 55%) 7.24in .95in /.2in .2in no-repeat,linear-gradient(63deg,transparent 0 45%,#ffc457 45% 55%,transparent 55%) 1.05in 9.2in /.22in .22in no-repeat,linear-gradient(134deg,transparent 0 45%,#7f5fdb 45% 55%,transparent 55%) 7.08in 8.85in /.2in .2in no-repeat;pointer-events:none}.poster-template-birthday .poster-balloon{position:absolute;top:.7in;width:.62in;height:.82in;border-radius:50% 50% 46% 46%;background:#f27284;box-shadow:inset -.08in -.12in 0 rgba(52,32,66,.12)}.poster-template-birthday .poster-balloon:before{content:"";position:absolute;left:.18in;top:.12in;width:.14in;height:.2in;border-radius:50%;background:rgba(255,255,255,.48)}.poster-template-birthday .poster-balloon:after{content:"";position:absolute;left:.29in;top:.79in;width:.02in;height:1.04in;background:rgba(52,32,66,.34)}.poster-template-birthday .poster-balloon-left{left:.74in;transform:rotate(-8deg)}.poster-template-birthday .poster-balloon-right{right:.76in;background:#42b1c4;transform:rotate(7deg)}.poster-template-birthday .poster-qr-frame{border:.04in solid rgba(255,196,87,.62);border-radius:.18in;box-shadow:0 .16in 0 rgba(242,114,132,.18)}.poster-template-birthday .poster-eyebrow{color:#7d4a91;font-weight:850;text-transform:uppercase}.poster-template-birthday .poster-copy h2{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:.4in;font-weight:900}.poster-template-birthday .poster-footer{color:#d45b75;font-weight:850}.poster-template-simple{background:#fffdf8;color:#1f2422}.poster-template-simple:before{inset:.42in;border:.04in double rgba(23,32,29,.28)}.poster-template-simple:after{content:"";position:absolute;inset:.66in;border:1px solid rgba(23,32,29,.16);pointer-events:none}.poster-template-simple .poster-balloon,.poster-template-simple .poster-cap,.poster-template-simple .poster-confetti{display:none}.poster-template-simple .poster-qr-frame{border:1px solid rgba(23,32,29,.18)}.poster-template-simple .poster-eyebrow{color:#4c5651;letter-spacing:.04em;text-transform:uppercase}.poster-template-simple .poster-footer{color:#4c5651}.poster-template-crest{background:#f8fbf8;color:#153b34}.poster-template-crest:before{border-color:rgba(19,114,103,.2)}.poster-template-crest .poster-qr-frame{border-radius:50%;border-color:rgba(19,114,103,.22)}.poster-template-gallery{background:#f7f1ff;color:#241f3d}.poster-template-gallery:before{border-color:rgba(70,56,116,.18)}.poster-template-gallery .poster-qr-frame{transform:rotate(-1.5deg);box-shadow:0 16px 36px rgba(36,31,61,.12)}.poster-template-formal{background:#fbfbf7;color:#141b1a}.poster-template-formal:before{border-color:rgba(20,27,26,.18);inset:.5in}.poster-template-formal .poster-cap{display:none}@media (max-width:880px){.poster-builder{grid-template-columns:1fr}.poster-controls{position:static}.poster-preview{width:100%;min-height:auto;aspect-ratio:8.5/11}}.wall{min-height:100vh;background:#060908;color:white;display:grid;place-items:center;padding:42px}.wall img{max-width:100%;max-height:78vh;object-fit:contain}.wall-controls{position:fixed;top:18px;right:18px;display:flex;gap:8px;padding:8px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:rgba(6,9,8,.64);opacity:.28;transition:opacity .16s ease}.wall-controls:focus-within,.wall-controls:hover{opacity:1}.wall-controls button{min-width:72px;border:1px solid rgba(255,255,255,.22);border-radius:8px;padding:9px 11px;background:rgba(255,255,255,.1);color:white;font-weight:850;cursor:pointer}.wall-controls button:focus-visible,.wall-controls button:hover{background:rgba(255,255,255,.2)}.caption{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);width:min(860px,calc(100% - 40px));text-align:center;padding:16px 20px;border-radius:8px;background:rgba(6,9,8,.72)}@media print{@page{size:letter;margin:0}body{background:white}*,:after,:before{print-color-adjust:exact;-webkit-print-color-adjust:exact}.no-print{display:none!important}.container,.poster-page{width:100%;margin:0;padding:0}.poster-builder{display:block}.poster-preview{width:8.5in;min-height:11in;border:.01in solid transparent;box-shadow:none}.poster-balloon,.poster-balloon:after,.poster-balloon:before,.poster-cap,.poster-cap span,.poster-cap span:after,.poster-cap span:before,.poster-cap:after,.poster-cap:before,.poster-confetti,.poster-preview:after,.poster-preview:before{print-color-adjust:exact;-webkit-print-color-adjust:exact}}