:root{color-scheme:light;--ink:#1e1f24;--muted:#6d717b;--paper:#fffaf4;--surface:#ffffff;--line:#e8ded2;--rose:#b85f6a;--moss:#596b4f;--gold:#ad8542}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}.shell{display:flex;flex-direction:column}.cover,.shell{min-height:100vh}.cover{display:grid;grid-template-rows:auto 1fr auto;padding:24px;position:relative;overflow:hidden;background:linear-gradient(rgba(255,250,244,.76),rgba(255,250,244,.96)),url(https://images.unsplash.com/photo-1519741497674-611481863552?auto=format&fit=crop&w=1600&q=80);background-size:cover;background-position:50%}.cover-public-demo .cover-main{width:min(100%,760px);justify-self:center}.cover-public-demo .names{color:#102a21;font-family:Arial,Helvetica,sans-serif;font-weight:900}.public-demo-notice{display:grid;grid-template-columns:28px 1fr;grid-gap:12px;gap:12px;width:min(100%,620px);padding:16px 18px;border:1px solid #9bb89e;border-radius:8px;background:rgba(255,255,255,.9);text-align:left}.public-demo-notice svg{color:var(--moss)}.public-demo-notice strong{display:block;margin-bottom:4px}.public-demo-notice p{margin:0;color:#48584f;font-size:.9rem;line-height:1.45}.cover-birthday,.cover-celebration,.cover-graduation{background:linear-gradient(rgba(255,250,244,.72),rgba(255,250,244,.94)),url(https://images.unsplash.com/photo-1492684223066-81342ee5ff30?auto=format&fit=crop&w=1600&q=80);background-position:50%;background-size:cover}.cover.cover-public-demo{isolation:isolate;color:#102a21;background:#edf3e9 url(/images/events-hero.jpg) 50%/cover no-repeat}.cover.cover-public-demo:before{content:"";position:absolute;z-index:0;inset:0;background:rgba(237,243,233,.84);pointer-events:none}.cover.cover-public-demo>*{position:relative;z-index:1}.cover-public-demo>.event-brand{justify-self:center;padding:10px 16px;border:1px solid #b8cbb8;border-radius:8px;background:#fff}.cover-public-demo>.event-brand .brand-mark{width:44px;height:44px}.cover-public-demo>.event-brand strong{font-size:30px}.cover.cover-custom-image{background-position:50%;background-size:cover;background-color:#081525;color:#fff}.cover-event-logo{position:absolute;top:30px;right:30px;z-index:1;width:84px;height:84px;padding:8px;border:1px solid rgba(255,255,255,.28);border-radius:22px;background:rgba(10,23,31,.42);box-shadow:0 12px 28px rgba(0,0,0,.16);object-fit:contain}.cover-custom-image .brand,.cover-custom-image .date,.cover-custom-image .powered-by,.cover-custom-image .status{color:#fff;text-shadow:0 2px 12px rgba(0,0,0,.72)}.cover-custom-image .names{text-shadow:0 3px 22px rgba(0,0,0,.76)}.cover-bar-manolo .names{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:min(100%,900px);text-shadow:none}.cover-bar-manolo .cover-title-intro{display:inline-flex;align-items:center;gap:14px;color:#d7e681;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:clamp(.85rem,1.3vw,1.05rem);font-weight:700;letter-spacing:.27em;line-height:1;text-transform:uppercase;text-shadow:0 3px 16px rgba(0,0,0,.8)}.cover-bar-manolo .cover-title-intro:after,.cover-bar-manolo .cover-title-intro:before{content:"";width:clamp(26px,4vw,46px);height:1px;background:linear-gradient(90deg,transparent,#d7e681)}.cover-bar-manolo .cover-title-intro:after{transform:rotate(180deg)}.cover-bar-manolo .cover-title-main{color:#fffaf0;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:clamp(3.3rem,6.4vw,5.5rem);font-weight:800;letter-spacing:-.055em;line-height:.98;text-wrap:balance;text-shadow:0 2px 0 rgba(5,14,27,.9),0 10px 30px rgba(0,0,0,.7),0 0 42px rgba(245,213,123,.2)}.cover-bar-manolo .date{display:flex;align-items:center;gap:13px;color:#f4e8c7;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:.85rem;font-weight:700;letter-spacing:.18em}.cover-bar-manolo .date:after,.cover-bar-manolo .date:before{content:"";width:25px;height:1px;background:rgba(244,232,199,.7)}.cover-bar-manolo .actions .button{border:1px solid rgba(255,255,255,.14);box-shadow:0 10px 26px rgba(0,0,0,.24);font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;letter-spacing:.015em}.brand{color:var(--moss);font-size:.82rem;font-weight:700;letter-spacing:0;text-transform:uppercase}.event-brand{gap:9px;color:var(--moss);text-decoration:none;text-transform:none}.event-brand .brand-mark{width:36px;height:36px;border-width:2px}.event-brand .brand-mark svg{width:21px;height:21px}.event-brand strong{font-size:24px}.cover-main{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px}.names{font-family:Georgia,Times New Roman,serif;font-size:3.2rem;font-weight:400;line-height:.95;margin:0}.cover-birthday .names,.cover-celebration .names,.cover-concert .names,.cover-corporate .names,.cover-graduation .names{font-size:2.8rem}.date{color:var(--moss);font-size:1rem;font-weight:700}.actions{width:min(100%,360px);display:grid;grid-gap:12px;gap:12px}.button{min-height:52px;border:0;border-radius:8px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:0 18px;color:#fff;background:var(--rose);font-weight:700;cursor:pointer}.button.secondary{color:var(--ink);background:var(--surface);border:1px solid var(--line)}.button.accent{background:var(--moss)}.button.danger{color:#fff;background:#a33d49}.button:disabled{opacity:.48;cursor:not-allowed}.panel{padding:24px;background:var(--surface);border-top:1px solid var(--line)}.panel h2{margin:0 0 12px;font-size:1.25rem}.uploader{display:grid;grid-gap:10px;gap:10px}.file-input{min-height:46px;padding:10px;border:1px solid var(--line);border-radius:8px;background:#fff}.gallery-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px}.photo-tile{position:relative;aspect-ratio:1;border-radius:6px;border:1px solid var(--line);background:#f3eadf;display:grid;place-items:center;color:var(--muted);text-decoration:none;font-size:.8rem;overflow:hidden}.photo-tile img{width:100%;height:100%;object-fit:cover}.tile-download{position:absolute;right:8px;bottom:8px;padding:3px;border:0;border-radius:6px;color:#fff;background:rgba(0,0,0,.45);cursor:pointer}.tile-delete{position:absolute;z-index:3;top:8px;right:8px;display:grid;place-items:center;width:36px;height:36px;padding:0;border:1px solid rgba(255,255,255,.55);border-radius:7px;color:#fff;background:rgba(142,42,50,.9);cursor:pointer}.tile-delete:disabled{cursor:wait;opacity:.55}.tile-open{width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.tile-download,.tile-privacy{z-index:2}.tile-original{position:absolute;top:8px;left:8px;right:8px;z-index:2;display:inline-flex;align-items:center;justify-content:center;gap:5px;min-height:32px;padding:6px 9px;border:1px solid rgb(255 255 255/45%);border-radius:999px;color:#fff;background:rgb(48 78 55/88%);font-size:.7rem;font-weight:800;text-decoration:none;cursor:pointer}.tile-original:disabled{cursor:wait;opacity:.78}.tile-original.selected{color:#fff;border-color:#315a49;background:#315a49;box-shadow:0 0 0 2px #fff,0 0 0 4px #315a49}.original-request-form{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(2,minmax(170px,1fr));grid-gap:12px;gap:12px;align-items:end;margin-top:16px;padding:18px;border:1px solid var(--line);border-radius:16px;background:#fffaf0}.original-request-form>div{align-self:center}.original-request-form>div>span{color:var(--green);font-size:.72rem;font-weight:900;letter-spacing:.08em;text-transform:uppercase}.original-request-form h3{margin:3px 0 5px}.original-request-form p{margin:0;color:var(--muted);font-size:.82rem;line-height:1.45}.original-request-form label{display:grid;grid-gap:6px;gap:6px;color:var(--muted);font-size:.76rem;font-weight:800}.original-request-form input{min-width:0;min-height:44px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:#fff;font:inherit}.original-request-form>small{grid-column:2/span 2;color:var(--muted);line-height:1.4}.original-request-form>button{grid-column:2/span 2;justify-content:center}.original-request-feedback{grid-column:2/span 2;margin:0;padding:11px 13px;border:1px solid transparent;border-radius:9px;font-size:.82rem;font-weight:800;line-height:1.4}.original-request-feedback.info{color:#315a49;border-color:#b9cfb0;background:#edf5e9}.original-request-feedback.success{color:#22543d;border-color:#9bc5a6;background:#e6f5e9}.original-request-feedback.error{color:#8b2f2f;border-color:#e1aaa4;background:#fff0ed}@media (max-width:760px){.original-request-form{grid-template-columns:1fr}.original-request-feedback,.original-request-form>button,.original-request-form>small{grid-column:auto}}.photo-lightbox{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px;background:rgb(5 15 12/88%);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.photo-lightbox-content{position:relative;display:grid;place-items:center;grid-gap:12px;gap:12px;width:min(100%,1100px);height:min(100%,900px)}.photo-lightbox-content>img{min-height:0;max-width:100%;max-height:calc(100vh - 180px);border-radius:10px;object-fit:contain;box-shadow:0 22px 65px rgb(0 0 0/45%)}.photo-lightbox-close{position:absolute;z-index:2;top:8px;right:8px;display:grid;place-items:center;width:44px;height:44px;border:1px solid rgb(255 255 255/35%);border-radius:999px;color:#fff;background:rgb(5 15 12/72%);cursor:pointer}.photo-lightbox-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:8px}.photo-lightbox-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:42px;padding:9px 14px;border:1px solid rgb(255 255 255/35%);border-radius:8px;color:#102019;background:#fff;font:inherit;font-weight:800;cursor:pointer}.photo-lightbox-actions button.vote{color:#fff;border-color:var(--rose);background:var(--rose)}.photo-lightbox-actions button.danger{color:#fff;border-color:#a33d49;background:#a33d49}.photo-lightbox-actions button:disabled{cursor:wait;opacity:.6}.photo-lightbox-feedback{margin:0;color:#fff;font-size:.86rem;font-weight:750;text-align:center}.tile-privacy{position:absolute;left:7px;bottom:7px;display:inline-flex;align-items:center;gap:5px;min-height:30px;padding:5px 8px;border:0;border-radius:999px;color:#fff;background:rgba(15,42,33,.82);font-size:.7rem;font-weight:700;cursor:pointer}.adult-verification-notice{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:12px 14px;border:1px solid #e5bd76;border-radius:12px;background:#fff6dc}.adult-verification-notice div{display:flex;align-items:center;gap:8px;font-weight:750}.adult-verification-notice button{min-height:38px;padding:8px 12px;border:0;border-radius:8px;color:#fff;background:var(--rose);font-weight:800;cursor:pointer}.adult-verification-notice button:disabled{cursor:not-allowed;opacity:.55}.adult-verification-notice .biometric-withdrawal{display:inline-flex;align-items:center;gap:7px;background:#7d2530}.adult-verification-notice small{flex-basis:100%;color:var(--ink-soft);font-weight:700}.face-results-message{margin:-4px 0 14px;color:var(--moss);font-size:.9rem;font-weight:700}.face-results-panel{scroll-margin-top:12px}.face-results-heading{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px}.face-results-heading>div>span{color:var(--moss);font-size:.72rem;font-weight:850;letter-spacing:.08em;text-transform:uppercase}.face-results-heading h2{margin:4px 0 3px}.face-results-heading p{margin:0;color:var(--muted);font-size:.9rem}.face-results-panel .gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.face-results-panel .photo-tile{border-radius:12px;box-shadow:0 8px 22px rgb(40 31 22/10%)}.tile-open-label{position:absolute;left:8px;bottom:8px;z-index:2;padding:6px 9px;border-radius:999px;color:#fff;background:rgb(8 28 21/78%);font-size:.68rem;font-weight:800;pointer-events:none}.face-results-jump{position:fixed;right:max(16px,env(safe-area-inset-right));bottom:max(18px,env(safe-area-inset-bottom));z-index:18;display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:52px;padding:12px 18px;border:0;border-radius:999px;color:#fff;background:var(--moss);box-shadow:0 14px 38px rgb(8 28 21/32%);font-size:.92rem;font-weight:850;cursor:pointer}.story-builder-cta{display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 18px;padding:18px;border-radius:16px;color:#fff;background:radial-gradient(circle at 100% 0,rgb(228 119 91/58%),transparent 42%),linear-gradient(135deg,#10251e,#254c3f);box-shadow:0 14px 35px rgb(16 37 30/16%)}.story-builder-cta>div{display:flex;align-items:center;gap:12px;min-width:0}.story-builder-cta>div>svg{flex:0 0 auto;color:#ff9b80}.story-builder-cta span{display:grid;grid-gap:3px;gap:3px}.story-builder-cta strong{font-size:.96rem}.story-builder-cta small{color:rgb(255 255 255/72%);line-height:1.35}.story-builder-cta .button{flex:0 0 auto;min-height:42px;background:#fff;color:#17382d}.story-composer{position:fixed;inset:0;z-index:70;display:grid;place-items:center;padding:22px;background:rgb(4 13 10/92%);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.story-composer-card{position:relative;display:grid;grid-template-columns:minmax(300px,430px) minmax(380px,1fr);width:min(100%,1040px);max-height:calc(100svh - 44px);overflow:hidden;border:1px solid rgb(255 255 255/14%);border-radius:24px;background:#f7f2e9;box-shadow:0 32px 90px rgb(0 0 0/48%)}.story-composer-close{position:absolute;top:14px;right:14px;z-index:3;display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid rgb(16 37 30/14%);border-radius:999px;color:#10251e;background:rgb(255 255 255/90%);cursor:pointer}.story-preview-shell{position:relative;min-height:0;aspect-ratio:9/16;max-height:calc(100svh - 44px);overflow:hidden;background:#07120e}.story-live-preview{position:absolute;inset:0;overflow:hidden;color:#fff;background:#07120e}.story-live-preview:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,transparent 58%,rgb(7 18 14/94%));pointer-events:none}.story-live-preview>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.025);transition:opacity .45s ease,transform 2.2s ease-out}.story-live-preview>img.active{z-index:1;opacity:1;transform:scale(1)}.story-live-brand{display:grid;place-items:center;width:106px;height:34px;margin-bottom:5px;border-radius:9px;background:rgb(255 252 246/94%)}.story-live-brand img{display:block;width:82px;height:auto}.story-live-copy{position:absolute;right:17px;bottom:28px;left:17px;z-index:3;display:grid;grid-gap:5px;gap:5px;text-shadow:0 2px 12px rgb(0 0 0/42%)}.story-live-copy small{font-size:.58rem;font-weight:900;letter-spacing:.03em}.story-live-copy strong{max-width:95%;font-size:1.45rem;line-height:1.02}.story-live-copy span{margin-top:4px;font-size:.69rem}.story-live-copy b{font-size:.66rem}.story-preview-loading{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;grid-gap:12px;gap:12px;padding:30px;color:#fff;background:rgb(7 18 14/76%);font-weight:800;text-align:center}.story-preview-loading svg{animation:story-spinner 1s linear infinite}.story-preview-loading.error svg{animation:none}@keyframes story-spinner{to{transform:rotate(1turn)}}.story-composer-controls{min-height:0;overflow-y:auto;padding:clamp(32px,5vw,60px);color:#10251e}.story-composer-kicker{color:#64806e;font-size:.7rem;font-weight:900;letter-spacing:.09em}.story-composer-controls h2{max-width:480px;margin:8px 0 10px;font-size:clamp(1.75rem,3.2vw,2.7rem);line-height:1.02}.story-composer-controls>div:first-child>p{max-width:520px;margin:0;color:#5d6b65;line-height:1.5}.story-photo-picker{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:9px;gap:9px;margin-top:28px}.story-photo-picker button{position:relative;aspect-ratio:1;overflow:hidden;padding:0;border:2px solid transparent;border-radius:12px;background:#e7e3dc;cursor:pointer}.story-photo-picker button.selected{border-color:#eb7157;box-shadow:0 0 0 2px #f7f2e9,0 0 0 4px #eb7157}.story-photo-picker img{display:block;width:100%;height:100%;object-fit:cover}.story-photo-picker button>span{position:absolute;top:6px;right:6px;display:grid;place-items:center;width:27px;height:27px;border:1px solid rgb(255 255 255/68%);border-radius:999px;color:#fff;background:rgb(10 30 23/66%);font-size:.76rem;font-weight:900}.story-photo-picker button.selected>span{border-color:#eb7157;background:#eb7157}.story-selection-count{margin:13px 0 0;color:#61716a;font-size:.78rem;font-weight:800}.story-composer-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}.story-composer-actions .button{min-height:46px}.story-composer-actions .button:disabled{opacity:.5;cursor:wait}.story-composer-feedback{margin:14px 0 0;padding:11px 13px;border-radius:10px;color:#24533f;background:#e4efdf;font-size:.82rem;font-weight:800;line-height:1.4}.photo-lightbox-actions button.story{color:#fff;border-color:#355f4f;background:#355f4f}.demo-uploads-panel{background:#f5f8f2}.demo-uploads-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.demo-empty-state{display:flex;align-items:center;gap:10px;min-height:92px;color:var(--muted)}.demo-empty-state p{margin:0}.demo-loading-screen{align-content:center;gap:14px;background:#edf3e9}.demo-loading-screen img{width:161px;height:36px}.public-gallery-shell{min-height:100vh;padding:clamp(20px,4vw,56px);background:#f3f4ed}.public-gallery-header{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:flex-start;max-width:1120px;margin:0 auto 24px;padding:clamp(28px,5vw,60px);overflow:hidden;border-radius:28px;color:#fff;background:radial-gradient(circle at 90% 15%,#37604b 0,transparent 34%),linear-gradient(130deg,#101e2b,#173b33 75%);box-shadow:0 22px 55px rgba(16,30,43,.14)}.public-gallery-header:before{content:"";position:absolute;z-index:-1;top:-160px;right:-100px;width:460px;height:460px;border:1px solid rgba(214,230,129,.25);border-radius:50%;box-shadow:0 0 0 75px rgba(214,230,129,.035),0 0 0 150px rgba(214,230,129,.025);pointer-events:none}.public-gallery-logo{position:absolute;top:52px;right:52px;width:104px;height:104px;padding:9px;border:1px solid rgba(255,255,255,.22);border-radius:24px;background:rgba(255,255,255,.1);object-fit:contain}.public-gallery-return{display:inline-flex;align-items:center;gap:8px;margin-bottom:46px;padding:9px 13px;border:1px solid rgba(255,255,255,.23);border-radius:999px;color:#fff;background:rgba(255,255,255,.08);font-size:.88rem;font-weight:700;text-decoration:none;transition:background .18s ease,transform .18s ease}.public-gallery-return:hover{background:rgba(255,255,255,.18);transform:translateY(-2px)}.public-gallery-return:focus-visible{outline:2px solid #d6e681;outline-offset:3px}.public-gallery-eyebrow{display:inline-flex;align-items:center;gap:9px;color:#d6e681;font-size:.74rem;font-weight:800;letter-spacing:.19em}.public-gallery-eyebrow:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 14px currentColor}.public-gallery-header h1{max-width:920px;margin:14px 0;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;font-size:clamp(2.7rem,5.5vw,5rem);font-weight:800;letter-spacing:-.055em;line-height:1.04;overflow-wrap:anywhere;text-wrap:balance}.public-gallery-header p{max-width:590px;margin:0;color:#dae5df;font-size:1.02rem;line-height:1.5}.public-gallery-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:30px}.public-gallery-meta span{display:inline-flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(255,255,255,.17);border-radius:999px;color:#eef5ec;background:rgba(255,255,255,.08);font-size:.8rem;font-weight:700}.public-gallery-header .status:empty{display:none}.public-gallery-header .status:not(:empty){margin-top:15px;color:#eef5ec}.public-gallery-grid{max-width:1120px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:18px;gap:18px}.public-gallery-no-photos{display:flex;flex-direction:column;align-items:center;justify-content:center;max-width:1120px;min-height:300px;margin:0 auto;padding:36px 24px;border:1px solid #e0e7da;border-radius:24px;background:#fff;text-align:center;box-shadow:0 12px 32px rgba(16,30,43,.045)}.public-gallery-empty-visual{display:grid;place-items:center;width:76px;height:76px;margin-bottom:22px;border:1px solid #dce8d0;border-radius:22px;color:#3e6950;background:linear-gradient(145deg,#f1f7e9,#fff);transform:rotate(-6deg);box-shadow:10px 10px 0 #e7eddf}.public-gallery-empty-visual svg{transform:rotate(6deg)}.public-gallery-empty-label{margin-bottom:10px;color:#668156;font-size:.7rem;font-weight:800;letter-spacing:.16em}.public-gallery-no-photos h2{margin:0 0 8px;color:#142b2b;font-size:clamp(1.35rem,3vw,1.8rem);letter-spacing:-.035em}.public-gallery-no-photos p{max-width:360px;margin:0;color:#66736c;line-height:1.5}.public-photo{overflow:hidden;border:1px solid #e0e7da;border-radius:18px;background:#fff;box-shadow:0 12px 28px rgba(16,30,43,.07);transition:transform .18s ease,box-shadow .18s ease}.public-photo:hover{transform:translateY(-4px);box-shadow:0 20px 36px rgba(16,30,43,.12)}.public-photo.winner{border:2px solid #c69634}.public-photo img{width:100%;aspect-ratio:1;object-fit:cover;display:block}.public-photo-open{display:block;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in}.public-photo footer{display:flex;align-items:center;justify-content:space-between;padding:10px 12px}.public-photo footer button,.public-photo footer span{display:inline-flex;align-items:center;gap:6px;font-weight:700}.public-photo footer button{border:0;border-radius:999px;padding:7px 11px;color:#fff;background:var(--rose);cursor:pointer}.public-photo footer button:disabled{opacity:.45;cursor:default}.public-gallery-empty{min-height:100vh;display:grid;place-items:center;padding:24px}@media (max-width:759px){.public-gallery-shell{padding:14px 14px max(28px,env(safe-area-inset-bottom))}.public-gallery-header{margin-bottom:14px;padding:26px 24px 30px;border-radius:22px}.public-gallery-header:before{top:-140px;right:-220px}.public-gallery-logo{top:25px;right:24px;width:65px;height:65px;padding:6px;border-radius:16px}.public-gallery-return{margin-bottom:52px}.public-gallery-header h1{font-size:clamp(2.4rem,10vw,3.3rem);line-height:1.06}.public-gallery-header p{font-size:.95rem}.public-gallery-meta{margin-top:26px}.public-gallery-no-photos{min-height:265px;padding:30px 20px;border-radius:22px}.public-gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.public-photo{border-radius:13px}.public-photo footer{padding:8px;font-size:.75rem}}.status{min-height:24px;color:var(--muted);font-size:.92rem}.powered-by{justify-self:center;color:var(--muted);font-size:.78rem;text-decoration:none}.powered-by a{color:inherit;font-weight:700;text-underline-offset:3px}.camera-overlay{position:fixed;inset:0;z-index:20;display:grid;grid-template-rows:auto minmax(0,1fr) auto auto auto;grid-gap:16px;gap:16px;padding:18px;background:#151515;color:#fff}.camera-status{margin:0;padding:8px 12px;border-radius:8px;color:#fff;background:rgb(0 0 0/35%);text-align:center;font-size:.88rem;font-weight:700}.camera-topbar{display:flex;align-items:center;justify-content:space-between;gap:16px}.camera-topbar h2{margin:0;font-size:1rem}.icon-button{width:44px;height:44px;border:1px solid rgba(255,255,255,.22);border-radius:8px;display:inline-grid;place-items:center;color:#fff;background:rgba(255,255,255,.12);cursor:pointer}.camera-stage{min-height:0;display:grid;place-items:center}.camera-preview{width:min(100%,520px);aspect-ratio:1;border-radius:8px;object-fit:cover;background:#050505}.camera-fallback{width:min(100%,520px);min-height:min(72vh,520px);padding:32px 22px;border:1px solid rgba(255,255,255,.2);border-radius:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;background:#202020}.camera-fallback strong{max-width:320px;font-size:1.25rem}.camera-fallback p{max-width:340px;margin:0 0 10px;color:rgba(255,255,255,.72);line-height:1.5}.camera-fallback .button{width:min(100%,340px)}.face-consent{width:min(100%,520px);margin:0 auto;display:flex;align-items:flex-start;gap:10px;color:rgba(255,255,255,.86);font-size:.82rem;line-height:1.35}.face-consent input{width:20px;height:20px;margin:0;flex:0 0 auto;accent-color:var(--moss)}.face-consent a{color:#fff;font-weight:800;text-decoration:underline;text-underline-offset:3px}.camera-actions{min-height:72px;display:flex;align-items:center;justify-content:center;gap:12px}.shutter{width:72px;height:72px;border:5px solid #fff;border-radius:50%;display:inline-grid;place-items:center;color:var(--ink);background:#fff;cursor:pointer}.admin-shell{min-height:100vh;padding:20px;background:#f7f3ed}.admin-header{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1040px;margin:0 auto 18px}.admin-header h1{margin:4px 0 0;font-size:2rem}.button.compact{min-height:42px;padding:0 14px;font-size:.92rem}.admin-token{max-width:1040px;margin:0 auto 14px;display:grid;grid-gap:6px;gap:6px}.admin-token label{color:var(--muted);font-size:.85rem;font-weight:700}.admin-token input{width:100%;min-height:42px;padding:8px 10px}.admin-token input,.reservation-inbox{border:1px solid var(--line);border-radius:8px;background:#fff}.reservation-inbox{max-width:1040px;margin:0 auto 20px;overflow:hidden}.reservation-inbox-heading,.reservation-request>summary{display:flex;align-items:center;justify-content:space-between;gap:12px}.reservation-inbox-heading{padding:17px;border-bottom:1px solid var(--line)}.reservation-inbox-heading>div>span{display:flex;align-items:center;gap:7px;color:var(--moss);font-size:.72rem;font-weight:900;text-transform:uppercase}.reservation-inbox-heading h2{margin:5px 0 0;font-size:1.25rem}.reservation-inbox-heading>strong,.reservation-request-statuses>span{padding:5px 8px;border-radius:999px;font-size:.7rem;font-weight:800;white-space:nowrap}.reservation-inbox-heading>strong{color:#fff;background:var(--moss)}.reservation-request+.reservation-request{border-top:1px solid var(--line)}.reservation-request>summary{padding:15px 17px;cursor:pointer;list-style:none}.reservation-request>summary::-webkit-details-marker{display:none}.reservation-request>summary>div:first-child{min-width:0;display:grid;grid-gap:3px;gap:3px}.reservation-request>summary>div:first-child span{overflow:hidden;color:var(--muted);font-size:.8rem;text-overflow:ellipsis;white-space:nowrap}.reservation-request-statuses{display:flex;align-items:center;gap:6px}.request-status{color:#fff;background:var(--gold)}.request-contacted{background:#617186}.payment-paid,.request-confirmed{color:#fff!important;background:var(--moss)!important}.request-closed{background:var(--muted)}.payment-status{color:var(--ink);background:#eee9e1}.payment-failed{color:#fff;background:var(--rose)}.reservation-request summary svg{flex:0 0 auto;transition:transform .16s ease}.reservation-request[open] summary>.reservation-request-statuses>svg{transform:rotate(180deg)}.reservation-request-content{padding:0 17px 17px;border-top:1px solid var(--line)}.reservation-request-content dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px;gap:14px;margin:16px 0}.reservation-request-content dt{display:flex;align-items:center;gap:5px;color:var(--muted);font-size:.74rem}.reservation-request-content dd{margin:4px 0 0;font-weight:800;text-transform:capitalize}.reservation-request-message{margin:0 0 16px!important;padding:13px;border-left:3px solid var(--moss);color:var(--ink)!important;background:#f7f3ed;line-height:1.45;white-space:pre-wrap}.reservation-request-actions{display:flex;align-items:flex-end;flex-wrap:wrap;gap:8px}.reservation-request-actions>label{display:grid;grid-gap:4px;gap:4px;color:var(--muted);font-size:.72rem;font-weight:800}.reservation-request-actions select{min-height:42px;padding:7px 32px 7px 10px;border:1px solid var(--line);border-radius:7px;color:var(--ink);background:#fff;font:inherit}.reservation-inbox-empty{margin:0;padding:24px 17px;color:var(--muted)}@media (max-width:620px){.reservation-request>summary{align-items:flex-start;flex-direction:column}.reservation-request-statuses{width:100%}.reservation-request-statuses>svg{margin-left:auto}.reservation-request-actions .button{width:100%}}.wedding-list{max-width:1040px;margin:0 auto;display:grid;grid-gap:12px;gap:12px}.wedding-card{border:1px solid var(--line);border-radius:8px;background:#fff;overflow:hidden}.wedding-card-summary{padding:16px;cursor:pointer;list-style:none}.wedding-card-summary::-webkit-details-marker{display:none}.wedding-card-content{padding:0 16px 16px;border-top:1px solid var(--line)}.wedding-card-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.wedding-card h2{margin:0;font-size:1.2rem}.wedding-card p{margin:4px 0 0;color:var(--muted)}.wedding-card-status{display:flex;align-items:center;gap:10px}.wedding-card-chevron{flex:0 0 auto;transition:transform .16s ease}.wedding-card[open] .wedding-card-chevron{transform:rotate(180deg)}.phase{flex:0 0 auto;padding:5px 8px;border-radius:999px;color:#fff;background:var(--gold);font-size:.76rem;font-weight:700}.phase-ready{background:var(--moss)}.phase-error,.phase-suspended{background:var(--rose)}.metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px;margin:16px 0}.metrics div{min-width:0}.metrics dt{color:var(--muted);font-size:.78rem}.metrics dd{margin:3px 0 0;font-weight:700}.guest-url{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:8px;gap:8px;padding:8px;border:1px solid var(--line);border-radius:8px;background:#fbf8f4}.guest-url span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.85rem}.icon-button.light{color:var(--ink);border-color:var(--line);background:#fff}.qr-row{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:14px}.qr-row img{width:112px;height:112px;border:1px solid var(--line);border-radius:8px;background:#fff}.admin-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}.admin-photo-manager{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.admin-photo-actions,.admin-photo-heading{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.admin-photo-heading{justify-content:space-between}.admin-photo-heading h3{margin:0;font-size:1rem}.admin-photo-caption,.admin-photo-empty,.admin-photo-message{margin:10px 0 0;color:var(--muted);font-size:.86rem}.admin-photo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(92px,1fr));grid-gap:8px;gap:8px;margin-top:12px}.admin-photo-item{position:relative;aspect-ratio:1;overflow:hidden;border:1px solid var(--line);border-radius:6px;background:#f3eadf}.admin-photo-item.is-selected{border-color:var(--rose);box-shadow:0 0 0 2px var(--rose)}.admin-photo-item a,.admin-photo-item img{width:100%;height:100%;display:block}.admin-photo-item img{object-fit:cover}.admin-photo-delete{position:absolute;top:6px;right:6px;width:34px;height:34px;color:#fff;border-color:rgba(255,255,255,.7);background:rgba(78,20,28,.82)}.admin-photo-select{position:absolute;top:8px;left:8px;width:24px;height:24px;margin:0;accent-color:var(--rose);cursor:pointer}.qr-materials{margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.qr-materials h3{margin:0 0 12px;font-size:1rem}.qr-material-editor{display:grid;grid-template-columns:minmax(118px,.42fr) minmax(0,1.58fr);align-items:start;grid-gap:14px;gap:14px}.qr-theme-preview{position:relative;display:block;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff;aspect-ratio:9/16}.qr-theme-preview img{display:block;width:100%;height:100%;object-fit:cover}.qr-theme-preview span{position:absolute;right:7px;bottom:7px;padding:4px 7px;border-radius:999px;color:#fff;background:rgba(15,23,42,.78);font-size:.67rem;font-weight:800}.qr-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.qr-controls label{min-width:0;display:grid;grid-gap:5px;gap:5px;color:var(--muted);font-size:.78rem;font-weight:700}.qr-controls input,.qr-controls select{width:100%;min-height:38px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;color:var(--ink);background:#fff}@media (max-width:720px){.qr-material-editor{grid-template-columns:96px minmax(0,1fr)}.qr-controls{grid-template-columns:1fr}}.material-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.host-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.host-list span{padding:5px 8px;border-radius:999px;color:var(--moss);background:#edf3e8;font-size:.78rem;font-weight:700}.marketing-shell{min-height:100vh;background:#fbf8f4}.marketing-hero{position:relative;height:100svh;min-height:640px;display:grid;grid-template-rows:auto 1fr auto;overflow:hidden;padding:16px 16px max(18px,env(safe-area-inset-bottom));background:#f6efe6}.marketing-hero:after{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:linear-gradient(rgba(255,250,244,.78),rgba(255,250,244,.3) 8%,rgba(255,250,244,0) 18%)}.landing-poster{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;object-position:center top}.marketing-nav{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:1060px;width:100%;margin:0 auto}.marketing-nav.flat{padding:22px}.marketing-nav a,.marketing-nav strong{color:var(--ink);font-weight:700;text-decoration:none}.marketing-nav div{display:flex;gap:14px}.marketing-copy{max-width:900px;align-self:center;margin:0 auto;text-align:center}.marketing-copy h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,11vw,4.9rem);font-weight:400;line-height:1.02}.marketing-copy p,.pricing-lead{max-width:620px;margin:16px auto;color:var(--muted);font-size:1.04rem;line-height:1.5}.marketing-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:10px}.marketing-actions .button{min-width:min(100%,150px)}.marketing-actions .button.secondary{color:var(--ink);background:rgba(255,255,255,.84);border:1px solid rgba(30,31,36,.12)}.landing-actions{position:relative;z-index:1;grid-row:3;align-self:end;justify-self:center}.landing-actions .button{min-height:46px;padding:0 16px;font-size:.94rem}.hero-accessible-copy{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.landing-examples{display:grid;grid-gap:1px;gap:1px;background:var(--line)}.landing-examples-intro{min-height:194px;display:flex;flex-direction:column;justify-content:center;gap:10px;padding:28px 20px;background:var(--paper)}.landing-examples-intro h2{max-width:340px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:400;line-height:1.05}.landing-examples article{min-height:100svh;display:grid;grid-template-rows:1fr auto;background:var(--paper)}.landing-examples img{width:100%;height:100%;min-height:0;object-fit:cover}.landing-examples article>div{padding:22px 20px max(28px,env(safe-area-inset-bottom));background:var(--paper)}.landing-examples h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,9vw,3.4rem);font-weight:400;line-height:1}.landing-examples p{margin:10px 0 0;color:var(--muted);font-size:1rem;line-height:1.45}.pricing-band{max-width:1060px;margin:0 auto;padding:34px 22px 48px}.pricing-band.standalone{padding-top:20px}.pricing-band h1,.pricing-band h2{margin:0 0 18px;font-size:2rem}.pricing-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:6px;gap:6px;margin-bottom:18px;padding:4px;border:1px solid var(--line);border-radius:8px;background:#fff}.pricing-tabs button{min-height:44px;border:0;border-radius:6px;color:var(--muted);background:transparent;font-weight:800;cursor:pointer}.pricing-tabs button.active{color:#fff;background:var(--moss)}.pricing-plan-panel{padding-bottom:8px}.plan-price{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:6px 0 18px}.plan-price span{font-size:1.1rem;font-weight:800}.plan-price strong{font-size:2.6rem}.pricing-plan-panel dl{margin:0}.pricing-plan-panel dl div{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:62px;border-top:1px solid #dfdfdf}.pricing-plan-panel dd,.pricing-plan-panel dt{margin:0;font-size:1.05rem}.pricing-plan-panel dt{color:var(--ink)}.pricing-plan-panel dd{color:var(--ink);font-weight:800;text-align:right}.pricing-table-wrap{display:none}.pricing-table{width:100%;min-width:720px;border-collapse:collapse;table-layout:fixed}.pricing-table td,.pricing-table th{border-top:1px solid #dfdfdf;padding:22px 0;color:var(--ink);font-size:1.25rem;line-height:1.2;text-align:center}.pricing-table thead th{padding-top:0;border-top:0;font-size:1.15rem;font-weight:800}.pricing-table tbody th{width:36%;padding-right:22px;font-weight:400;text-align:left}.pricing-table .domain-row th{font-weight:800}.available-icon{color:#10a52a;vertical-align:-4px}.unavailable-icon{color:#e60000;stroke-width:4;vertical-align:-5px}.included-domain{display:table-cell;font-weight:800}.join-screen{min-height:100vh;display:grid;place-items:center;padding:24px;background:var(--paper);color:var(--muted)}@media (min-width:760px){.cover{padding:40px}.names{font-size:6.8rem}.cover-birthday .names,.cover-celebration .names,.cover-concert .names,.cover-corporate .names,.cover-graduation .names{font-size:5.2rem}.panel{padding:32px max(32px,calc((100vw - 760px) / 2))}.face-results-panel .gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-shell{padding:32px}.marketing-hero{width:min(100%,66.6667svh);min-height:100svh;margin:0 auto;padding:18px 28px 24px}.landing-poster{object-fit:contain}.landing-examples{grid-template-columns:repeat(3,minmax(0,1fr));gap:0}.landing-examples-intro{grid-column:1/-1;align-items:center;text-align:center}.landing-examples article{min-height:100svh}.landing-examples article>div{min-height:178px;padding:28px}.pricing-plan-panel,.pricing-tabs{display:none}.pricing-table-wrap{display:block;width:100%;overflow-x:auto}.pricing-table td,.pricing-table th{padding:26px 0;font-size:1.4rem}}@media (max-width:759px){html{scrollbar-width:none}html::-webkit-scrollbar{display:none}.cover.cover-custom-image:not(.cover-public-demo){min-height:100svh;padding:max(18px,env(safe-area-inset-top)) 18px max(18px,env(safe-area-inset-bottom))}.cover-event-logo{top:max(18px,env(safe-area-inset-top));right:18px;width:62px;height:62px;padding:6px;border-radius:16px}.cover-custom-image:not(.cover-public-demo)>.event-brand{align-self:start;gap:7px}.cover-custom-image:not(.cover-public-demo)>.event-brand .brand-mark{width:30px;height:30px;border-width:1.5px}.cover-custom-image:not(.cover-public-demo)>.event-brand .brand-mark svg{width:17px;height:17px}.cover-custom-image:not(.cover-public-demo)>.event-brand strong{font-size:19px}.cover-custom-image:not(.cover-public-demo) .cover-main{align-self:start;justify-content:flex-start;width:min(100%,360px);gap:10px;margin-top:clamp(190px,36svh,360px)}.cover-custom-image:not(.cover-public-demo) .names{max-width:16ch;font-size:clamp(2rem,8vw,2.55rem);line-height:1.04;text-wrap:balance}.cover-celebration.cover-custom-image:not(.cover-public-demo) .names{font-family:Georgia,Times New Roman,serif;font-weight:400;letter-spacing:-.025em}.cover-bar-manolo.cover-custom-image:not(.cover-public-demo) .names{max-width:100%;gap:9px;font-family:Avenir Next,Helvetica Neue,Arial,sans-serif;letter-spacing:0}.cover-bar-manolo .cover-title-intro{gap:10px;font-size:.78rem;letter-spacing:.22em}.cover-bar-manolo .cover-title-intro:after,.cover-bar-manolo .cover-title-intro:before{width:22px}.cover-bar-manolo .cover-title-main{font-size:clamp(2.35rem,9vw,3.05rem);letter-spacing:-.055em}.cover-bar-manolo .date{font-size:.78rem;letter-spacing:.15em}.cover-custom-image:not(.cover-public-demo) .date{font-size:.82rem;letter-spacing:.08em}.cover-custom-image:not(.cover-public-demo) .actions{width:min(100%,320px);gap:8px;margin-top:10px}.cover-custom-image:not(.cover-public-demo) .actions .button{min-height:48px;border-radius:8px;font-size:.94rem}.cover-custom-image:not(.cover-public-demo) .status:empty{display:none}.cover-custom-image:not(.cover-public-demo)>.powered-by{font-size:.7rem}.cover.cover-public-demo{background-position:62%}.cover.cover-public-demo:before{background:rgba(237,243,233,.88)}.cover-public-demo>.event-brand{padding:8px 12px}.cover-public-demo>.event-brand .brand-mark{width:38px;height:38px}.cover-public-demo>.event-brand strong{font-size:25px}.cover-public-demo .names{font-size:2.65rem}.public-demo-notice{grid-template-columns:24px 1fr;padding:14px}.demo-uploads-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.story-builder-cta{align-items:stretch;flex-direction:column;padding:16px}.story-builder-cta .button{width:100%}.story-composer{place-items:stretch;padding:0}.story-composer-card{grid-template-columns:1fr;grid-template-rows:minmax(260px,44svh) minmax(0,1fr);width:100%;height:100svh;max-height:none;border:0;border-radius:0}.story-preview-shell{width:100%;height:100%;max-height:none;aspect-ratio:auto}.story-composer-controls{padding:24px 18px max(24px,env(safe-area-inset-bottom))}.story-composer-controls h2{padding-right:34px;font-size:1.8rem}.story-photo-picker{margin-top:20px}.story-composer-actions{display:grid;grid-template-columns:1fr 1fr;margin-top:20px}.story-composer-actions .button{min-width:0;padding-inline:10px}}