.lp{--lp-bg: #e9e7e2;--lp-surface: #ffffff;--lp-text: #23262b;--lp-accent: #6b5d3f;--lp-heading-font: "Playfair Display", Georgia, serif;--lp-title-font: var(--lp-heading-font);--lp-body-font: "Poppins", "Helvetica Neue", Arial, sans-serif;--lp-bg-image: none;--lp-muted: color-mix(in srgb, var(--lp-text), transparent 45%);--lp-soft: color-mix(in srgb, var(--lp-accent) 15%, var(--lp-surface));--lp-on-accent: #ffffff;min-height:100dvh;background-color:var(--lp-bg);background-image:var(--lp-bg-image);background-size:var(--lp-bg-size, cover);background-position:var(--lp-bg-position, center);background-repeat:no-repeat;background-attachment:fixed;display:flex;flex-direction:column;color:var(--lp-text);font-family:var(--lp-body-font);container-type:inline-size}.lp-preview{min-height:0;pointer-events:none;border-radius:8px;overflow:hidden;background-attachment:scroll}.lp-preview .fab-stack{display:none}.lp-preview .lp-tributes{padding-bottom:24px}.lp-header{background:var(--lp-surface);padding:18px 5cqw;display:flex;align-items:center;justify-content:space-between;gap:16px}.lp-brand{display:flex;align-items:center;gap:14px;font-family:var(--lp-title-font);font-size:19px;letter-spacing:.14em;text-transform:uppercase;min-width:0}.lp-brand img{height:52px;object-fit:contain;flex-shrink:0}.lp-brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lp-header nav{flex-shrink:0}.lp-header nav a{color:var(--lp-text);text-decoration:none;font-size:13px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}.lp-header nav a:hover{text-decoration:underline}@media(max-width:600px){.lp-header{padding:12px 4cqw}.lp-brand{font-size:14px;gap:9px;letter-spacing:.1em}.lp-brand img{height:38px}.lp-header nav a{font-size:11px;letter-spacing:.08em}}.lp-notice{background:var(--lp-accent);color:var(--lp-on-accent);text-align:center;padding:14px 5cqw;font-size:14.5px}.lp-hero{display:flex;align-items:center;justify-content:center;gap:clamp(28px,6cqw,90px);padding:clamp(30px,6cqw,80px) 5cqw clamp(20px,3cqw,44px);flex-wrap:wrap}.lp-photo{width:clamp(220px,30cqw,400px);aspect-ratio:1;border-radius:50%;overflow:hidden;border:10px solid var(--lp-surface);box-shadow:0 14px 44px #00000024;flex-shrink:0}.lp-photo img{width:100%;height:100%;object-fit:cover;display:block}.lp-hero-text{max-width:640px;text-align:center}.lp-hero-text h1{font-family:var(--lp-heading-font);font-weight:500;font-size:clamp(34px,4.6cqw,58px);margin:0 0 14px;line-height:1.12}.lp-dates{font-size:clamp(14px,1.4cqw,18px);letter-spacing:.22em;text-transform:uppercase;color:var(--lp-muted);margin-bottom:26px}.lp-intro{font-size:clamp(15px,1.5cqw,19px);line-height:1.6;color:color-mix(in srgb,var(--lp-text),transparent 15%);margin:0 0 30px}.lp-enter{display:inline-flex;align-items:center;gap:14px;background:var(--lp-accent);color:var(--lp-on-accent);border:none;border-radius:999px;padding:16px 34px 16px 16px;font-family:inherit;font-size:clamp(14px,1.4cqw,17px);font-weight:500;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:transform .15s,box-shadow .15s}.lp-enter:hover{transform:translateY(-1px);box-shadow:0 10px 26px #00000040}.lp-enter .play{width:42px;height:42px;border-radius:50%;background:var(--lp-surface);color:var(--lp-accent);display:inline-flex;align-items:center;justify-content:center}.lp-enter .play svg{width:20px;height:20px;margin-left:2px}.lp-actions{display:flex;justify-content:center;gap:clamp(14px,2.4cqw,34px);padding:10px 5cqw clamp(36px,6cqw,80px);flex-wrap:wrap}.lp-action{background:var(--lp-surface);border:none;border-radius:10px;padding:18px 26px;min-width:min(280px,84cqw);display:flex;align-items:center;justify-content:space-between;gap:18px;text-decoration:none;cursor:pointer;color:var(--lp-accent);font-family:var(--lp-title-font);font-size:clamp(18px,1.9cqw,24px);box-shadow:0 3px 14px #0000000f;transition:transform .15s,box-shadow .15s}.lp-action:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0000001f}.lp-action .icon{width:52px;height:52px;border-radius:50%;background:var(--lp-soft);color:var(--lp-accent);display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.lp-action .icon svg{width:26px;height:26px}.lp-tributes{width:min(900px,92cqw);margin:0 auto;padding:0 0 clamp(40px,6vh,70px)}.lp-tributes-head{text-align:center;margin-bottom:26px}.lp-tributes-head .orn{display:block;color:var(--lp-accent);font-size:13px;margin-bottom:8px}.lp-tributes-head .lp-orn{display:inline-flex;width:22px;height:22px;margin-bottom:6px}.lp-tributes-head .lp-orn svg{width:100%;height:100%}.lp-tributes-head h2{font-family:var(--lp-heading-font);font-weight:500;font-size:clamp(24px,2.6cqw,34px);margin:0 0 6px}.lp-tributes-count{font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-muted)}.lp-tribute-filter{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin-bottom:20px}.lp-chip{display:inline-flex;align-items:center;gap:8px;background:var(--lp-surface);border:1.5px solid transparent;border-radius:999px;padding:6px 16px 6px 6px;font-family:inherit;font-size:13.5px;color:color-mix(in srgb,var(--lp-text),transparent 15%);cursor:pointer;box-shadow:0 2px 10px #0000000d;transition:border-color .15s,transform .15s,box-shadow .15s}.lp-chip:hover{transform:translateY(-1px);box-shadow:0 6px 16px #00000014}.lp-chip.active{border-color:var(--lp-accent);font-weight:600}.lp-chip-icon{width:30px;height:30px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.lp-chip-icon svg{width:16px;height:16px}.lp-chip-icon.all{background:var(--lp-accent);color:var(--lp-on-accent);font-size:10px}.lp-tribute-list{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}@media(max-width:720px){.lp-tribute-list{grid-template-columns:1fr}}.lp-tribute{position:relative;background:var(--lp-surface);border-radius:14px;padding:18px 20px;display:flex;align-items:flex-start;gap:14px;box-shadow:0 3px 14px #0000000d;transition:transform .15s,box-shadow .15s}.lp-tribute:hover{transform:translateY(-2px);box-shadow:0 10px 26px #00000017}.lp-tribute.with-message{grid-column:1 / -1}.lp-tribute-icon{width:46px;height:46px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000000a}.lp-tribute-icon svg{width:23px;height:23px}.lp-tribute-body{min-width:0;flex:1}.lp-tribute-line{font-size:15px;color:var(--lp-muted);padding-top:2px}.lp-tribute-name{font-family:var(--lp-title-font);font-size:17px;font-weight:600;color:var(--lp-text);margin-right:2px}.lp-tribute-detail{margin-top:4px;font-size:13px;font-weight:500;letter-spacing:.02em}.lp-tribute-message{margin:8px 0 0;font-family:var(--lp-title-font);font-style:italic;font-size:17.5px;line-height:1.6;color:color-mix(in srgb,var(--lp-text),transparent 10%)}.lp-tribute-time{position:absolute;top:14px;right:16px;font-size:11.5px;color:var(--lp-muted);letter-spacing:.04em}.lp-footer{margin-top:auto;text-align:center;padding:18px 5cqw 26px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--lp-muted);display:flex;flex-direction:column;align-items:center;gap:10px}.lp-footer-logo{height:34px;object-fit:contain}.os-page{container-type:inline-size;aspect-ratio:609 / 872;width:100%;position:relative;overflow:hidden;background:var(--os-grad-bottom, #9db4c0);color:var(--os-text, #fff);font-family:Poppins,Helvetica Neue,Arial,sans-serif;font-weight:300;-webkit-font-smoothing:antialiased}.os-page *{margin:0;box-sizing:border-box}.os-photo-bg{position:absolute;top:0;right:0;bottom:0;left:0;background-size:auto 100%;background-repeat:no-repeat}.os-photo-bg.right{background-position:right center}.os-photo-bg.left{background-position:left center}.os-photo-overlay{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.os-gradient-bg{position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,var(--os-grad-top, #45aece) 0%,var(--os-grad-bottom, #888c9a) 100%)}.os-content{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;text-align:center}.os-script{font-family:var(--os-name-font, "Great Vibes", cursive);font-weight:400;line-height:1.1}.os-divider{display:flex;align-items:center;justify-content:center;gap:2.6cqw}.os-divider .line{width:14cqw;height:.22cqw;background:currentColor}.os-divider .diamond,.os-diamond{width:1.7cqw;height:1.7cqw;background:currentColor;transform:rotate(45deg)}.os-page .orn-svg{width:3.4cqw;height:3.4cqw;background:none;transform:none;display:inline-flex}.os-page .orn-svg svg{width:100%;height:100%;display:block}.os-back .orn-svg.os-diamond{display:flex;margin-left:auto;margin-right:auto}.os-cover .os-photo-wrap{position:absolute;left:29.9%;top:18.8%;width:40.2%;height:52.2%}.os-cover .os-photo-card{position:relative;width:100%;height:100%;background:#fff;border:1.15cqw solid #fff;overflow:hidden;box-shadow:0 .5cqw 2cqw #00000040}.os-cover .os-photo-card img{width:100%;height:100%;object-fit:cover;display:block}.os-cover .os-photo-text{position:absolute;left:0;right:0;text-align:center;color:#fff;text-shadow:0 0 1.2cqw rgba(0,0,0,.35)}.os-cover .os-memory-label{top:54.5%;font-size:2.15cqw;letter-spacing:.05em}.os-cover .os-name{top:57.2%;font-size:7.4cqw;white-space:nowrap}.os-cover .os-dates{position:absolute;left:0;right:0;top:80.6%;text-align:center;font-size:2.5cqw;font-weight:400;letter-spacing:.04em;text-shadow:0 0 1.2cqw rgba(0,0,0,.3)}.os-arc{position:absolute;width:10cqw;height:10cqw;pointer-events:none;z-index:2}.os-arc svg{width:100%;height:100%;display:block}.os-arc.tl{left:-5cqw;top:-5cqw}.os-arc.tr{right:-5cqw;top:-5cqw}.os-arc.br{right:-5cqw;bottom:-5cqw}.os-arc.bl{left:-5cqw;bottom:-5cqw}.os-text-page .os-content{padding:6.5cqw 11cqw 5cqw}.os-text-page .os-script-title{font-size:8.2cqw;margin-top:4cqw}.os-text-page .os-subtitle{font-size:2.15cqw;letter-spacing:.06em;margin-top:1.8cqw}.os-text-page .os-divider{margin-top:4.4cqw}.os-poem-body{margin-top:4cqw;display:flex;flex-direction:column;gap:2.7cqw;width:108%}.os-poem-body p{font-size:2.1cqw;line-height:1.5;letter-spacing:.045em;white-space:pre-line}.os-order-body{margin-top:8cqw;display:flex;flex-direction:column;gap:6.6cqw;width:100%}.os-order-item .title{font-size:2.35cqw;font-weight:400;letter-spacing:.12em;text-transform:uppercase}.os-order-item .detail{font-size:2.2cqw;letter-spacing:.05em;margin-top:2.6cqw}.os-back .os-content{padding:11.5cqw 12cqw 5cqw}.os-collage{width:100%;display:flex;flex-direction:column;gap:1.1cqw;background:#fff;padding:1.1cqw;box-shadow:0 .5cqw 2cqw #0003}.os-collage .row{display:flex;gap:1.1cqw}.os-collage .row-1{height:29cqw}.os-collage .row-2{height:28cqw}.os-cell{height:100%;overflow:hidden;min-width:0;display:block}.os-collage img{width:100%;height:100%;object-fit:cover;display:block}.os-collage .row-1 .os-cell:nth-child(1){width:59%}.os-collage .row-1 .os-cell:nth-child(2){width:41%}.os-collage .row-2 .os-cell:nth-child(1){width:37.5%}.os-collage .row-2 .os-cell:nth-child(2){width:28.5%}.os-collage .row-2 .os-cell:nth-child(3){width:34%}.os-back p,.os-back .os-closing p{font-size:2.15cqw;line-height:1.5;letter-spacing:.05em;text-shadow:0 0 1.2cqw rgba(0,0,0,.3)}.os-back .os-thanks,.os-back .os-reception{max-width:60cqw;margin-left:auto;margin-right:auto}.os-back .os-thanks{margin-top:4.4cqw}.os-back .os-reception{margin-top:3.2cqw}.os-back .os-diamond{margin:3.6cqw auto 0}.os-back .os-closing{margin-top:3.2cqw;display:flex;flex-direction:column;gap:.4cqw}.os-brand-footer{margin-top:auto;padding-top:2.6cqw;display:flex;flex-direction:column;align-items:center;gap:.6cqw;flex-shrink:0}.os-brand-footer img{height:4.5cqw;object-fit:contain}.os-brand-footer .brand-line{font-size:1.6cqw;letter-spacing:.12em;text-transform:uppercase;opacity:.9;text-shadow:0 0 1cqw rgba(0,0,0,.4)}.os-cover .os-brand-footer{position:absolute;left:0;right:0;bottom:1.8cqw;margin:0;padding:0}.os-has-footer .os-content{padding-bottom:1.6cqw}.os-has-footer.os-text-page .os-poem-body{margin-top:3.4cqw;gap:2.5cqw}.os-has-footer.os-text-page .os-order-body{margin-top:6.5cqw;gap:5.8cqw}.os-has-footer.os-back .os-thanks{margin-top:3.8cqw}.os-has-footer.os-back .os-reception{margin-top:2.8cqw}.os-has-footer.os-back .os-diamond{margin-top:3cqw}.os-has-footer.os-back .os-closing{margin-top:2.8cqw;gap:.3cqw}.os-has-footer.os-back p{line-height:1.45}.book-view{height:100dvh;background:#23262b;display:flex;flex-direction:column;overflow:hidden;position:relative;--pw: min(44vw, calc((100dvh - 170px) * 609 / 872));--ph: calc(var(--pw) * 872 / 609)}.book-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 20px;color:#cfd4dc}.book-header .who{font-size:14px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.book-header .book-page-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8f96a1}.book-header .book-links{display:flex;gap:16px}.book-header a{color:#9fc7e8;font-size:13px;text-decoration:none;white-space:nowrap}.book-header a:hover{text-decoration:underline}.book-stage{flex:1;display:flex;align-items:center;justify-content:center;perspective:2600px;position:relative;touch-action:pan-x pan-y pinch-zoom}.viewer-controls{position:fixed;top:14px;right:14px;z-index:40;display:flex;align-items:center;gap:10px;opacity:0;transform:translateY(-6px);transition:opacity .3s ease,transform .3s ease;pointer-events:none;max-width:96vw;flex-wrap:wrap;justify-content:flex-end}.viewer-controls.shown{opacity:1;transform:translateY(0);pointer-events:auto}@media(max-width:640px){.viewer-controls{left:50%;right:auto;transform:translate(-50%,-6px);justify-content:center;flex-wrap:nowrap;gap:6px;max-width:98vw}.viewer-controls.shown{transform:translate(-50%)}.view-switch{padding:2px}.view-switch button{padding:6px 11px;font-size:12px}.viewer-link{padding:7px 11px;font-size:12px;white-space:nowrap}}.view-switch{display:inline-flex;background:#ffffff1f;border-radius:999px;padding:3px}.view-switch button{border:none;background:none;color:#cfd4dc;border-radius:999px;padding:7px 16px;font-family:inherit;font-size:13px;cursor:pointer;white-space:nowrap}.view-switch button.active{background:#fff;color:#23262b;font-weight:500}.viewer-link{color:#cfd4dc;font-size:13px;text-decoration:none;background:#ffffff1f;border-radius:999px;padding:8px 16px}.viewer-link:hover{background:#ffffff40;color:#fff}.book{position:relative;width:calc(var(--pw) * 2);height:var(--ph);transform-style:preserve-3d;transition:transform .9s cubic-bezier(.45,0,.2,1)}.book.pos-0{transform:translate(calc(var(--pw) / -2))}.book.pos-1{transform:translate(0)}.book.pos-2{transform:translate(calc(var(--pw) / 2))}.leaf{position:absolute;left:50%;top:0;width:50%;height:100%;transform-origin:left center;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.45,0,.2,1);transform:rotateY(0)}.leaf.flipped{transform:rotateY(-180deg)}.leaf .face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden;border-radius:3px;box-shadow:0 10px 40px #00000073;background:#9db4c0}.leaf .face.back{transform:rotateY(180deg)}.leaf .face .os-page{width:100%;height:100%;aspect-ratio:auto}.leaf .face:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.leaf .face.front:after{background:linear-gradient(90deg,rgba(0,0,0,.22),transparent 9%)}.leaf .face.back:after{background:linear-gradient(270deg,rgba(0,0,0,.22),transparent 9%)}.book-arrow{position:absolute;top:50%;transform:translateY(-50%);width:52px;height:52px;border-radius:50%;border:none;background:#ffffff1f;color:#fff;font-size:30px;line-height:1;cursor:pointer;z-index:40;transition:background .15s}.book-arrow:hover{background:#ffffff47}.book-arrow.left{left:max(12px,calc(50vw - var(--pw) - 76px))}.book-arrow.right{right:max(12px,calc(50vw - var(--pw) - 76px))}.fullflip{height:100dvh;display:flex;align-items:center;justify-content:center;perspective:2200px;touch-action:pan-x pan-y pinch-zoom}.fullflip-stage{position:relative;width:min(94vw,calc((100dvh - 70px) * 609 / 872));height:min(calc(94vw * 872 / 609),calc(100dvh - 70px));transform-style:preserve-3d}.fullleaf{position:absolute;top:0;right:0;bottom:0;left:0;transform-origin:left center;transform-style:preserve-3d;transition:transform .82s cubic-bezier(.42,.02,.28,1);transform:rotateY(0)}.fullleaf.turned{transform:rotateY(-180deg)}.fullleaf .face{position:absolute;top:0;right:0;bottom:0;left:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;border-radius:4px;overflow:hidden;box-shadow:0 14px 48px #00000080}.fullleaf .face.front .os-page{width:100%;height:100%;aspect-ratio:auto}.fullleaf .face.front:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(270deg,rgba(0,0,0,.3),transparent 45%);opacity:0;transition:opacity .82s ease}.fullleaf.turned .face.front:after{opacity:1}.deck-dots-h{position:fixed;left:50%;transform:translate(-50%);bottom:16px;z-index:20;display:flex;gap:10px}.deck-dots-h .dot{width:10px;height:10px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;padding:0;transition:background .2s,transform .2s}.deck-dots-h .dot.active{background:#d83e99;transform:scale(1.3)}.book-dots{display:flex;justify-content:center;gap:10px;padding:12px 0 2px}.book-dots .dot{width:10px;height:10px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;padding:0;transition:background .2s,transform .2s}.book-dots .dot.active{background:#d83e99;transform:scale(1.3)}.book-hint{text-align:center;color:#7c828d;font-size:12px;padding:4px 0 14px}.tribute-rail{position:fixed;left:18px;bottom:18px;z-index:30;display:flex;flex-direction:column;gap:8px;transition:opacity .35s ease,transform .35s ease}.tribute-rail.rail-hidden{opacity:0;transform:translate(-14px);pointer-events:none}.tribute-btn{display:inline-flex;align-items:center;gap:0;background:#ffffff1f;color:#fff;border:none;border-radius:999px;padding:9px;cursor:pointer;transition:background .15s;overflow:hidden;max-width:40px;transition:max-width .25s,background .15s,gap .2s;white-space:nowrap}.tribute-btn svg{width:22px;height:22px;flex-shrink:0}.tribute-btn .tribute-label{font-size:13px;opacity:0;transition:opacity .2s}.tribute-btn:hover{background:#fff;color:#23262b;max-width:240px;gap:8px;padding-right:16px}.tribute-btn:hover .tribute-label{opacity:1}.tribute-btn.expanded{max-width:240px;gap:8px;padding-right:16px;background:#ffffffeb;color:#23262b;animation:rail-pop .25s ease both}.tribute-btn.expanded .tribute-label{opacity:1}@keyframes rail-pop{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.tribute-toggle{display:inline-flex;align-items:center;gap:8px;background:#d83e99;color:#fff;border:none;border-radius:999px;padding:11px 18px 11px 12px;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:500;box-shadow:0 8px 24px #00000059;transition:filter .15s}.tribute-toggle:hover{filter:brightness(1.08)}.tribute-toggle svg{width:20px;height:20px}.tribute-toggle .tribute-label{opacity:1;font-size:13.5px}.tribute-toggle.open{background:#ffffffeb;color:#23262b;padding:11px 14px}.tribute-toggle .tt-x{font-size:15px;line-height:1}@media(max-width:700px){.book-view{--pw: min(47vw, calc((100dvh - 190px) * 609 / 872))}.book-arrow.left{left:6px}.book-arrow.right{right:6px}.book-arrow{width:40px;height:40px;font-size:24px;background:#fff3}}.qr-view{min-height:100dvh;background:#23262b;display:flex;flex-direction:column;align-items:center;gap:18px;padding:26px 14px 40px}.qr-card{width:min(480px,94vw);aspect-ratio:609 / 872;background-size:cover;background-position:right center;border-radius:6px;overflow:hidden;box-shadow:0 14px 48px #00000080;container-type:inline-size;color:#fff;font-family:Poppins,Helvetica Neue,Arial,sans-serif;font-weight:300}.qr-card-inner{height:100%;display:flex;flex-direction:column;align-items:center;text-align:center;padding:7cqw 8cqw;background:linear-gradient(180deg,#14181e2e,#14181e61)}.qr-head{width:100%;display:flex;flex-direction:column;align-items:center}.qr-photo{width:26cqw;height:26cqw;border-radius:50%;overflow:hidden;border:1cqw solid #fff;box-shadow:0 1cqw 4cqw #00000059}.qr-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 18%;display:block}.qr-memory{margin-top:3cqw;font-size:2.6cqw;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 1.4cqw rgba(0,0,0,.4)}.qr-name{font-family:Great Vibes,cursive;font-size:9.5cqw;line-height:1.15;margin-top:.6cqw;text-shadow:0 0 1.6cqw rgba(0,0,0,.4)}.qr-dates{font-size:2.7cqw;letter-spacing:.08em;margin-top:1cqw;text-shadow:0 0 1.4cqw rgba(0,0,0,.4)}.qr-box{margin-top:3.6cqw;background:#fff;border-radius:3cqw;padding:4.5cqw 4.5cqw 3.6cqw;box-shadow:0 1.4cqw 5cqw #00000059;display:flex;flex-direction:column;align-items:center}.qr-img{width:44cqw;height:44cqw;display:block}.qr-scan{margin-top:2.6cqw;font-size:2.8cqw;font-weight:500;letter-spacing:.06em}.qr-url{margin-top:.8cqw;font-size:2.1cqw;color:#667085;word-break:break-all}.qr-brand{margin-top:auto;padding-top:3cqw;display:flex;flex-direction:column;align-items:center;gap:2cqw;font-size:2cqw;letter-spacing:.14em;text-transform:uppercase;text-shadow:0 0 1.2cqw rgba(0,0,0,.45)}.qr-brand img{height:5.5cqw;max-width:40cqw;object-fit:contain;background:#fff;border-radius:1.6cqw;padding:2cqw 3.4cqw;box-sizing:content-box;box-shadow:0 .6cqw 2cqw #0000004d}.qr-actions{display:flex;gap:10px}@media print{html,body{height:auto;background:#fff}.qr-view{background:#fff;padding:0;min-height:0;display:block}.qr-actions{display:none}.qr-card{width:auto;height:96vh;max-width:96vw;margin:2vh auto;box-shadow:none;border-radius:0}.qr-view,.qr-card,.qr-card *{-webkit-print-color-adjust:exact;print-color-adjust:exact}@page{size:A4 portrait;margin:0}}.qr-sizes{display:flex;gap:8px;align-items:center;color:#c9cdd6;font-size:13.5px}.qr-sizes button{background:#2c3038;border:1px solid #3c414b;color:#e8eaee;border-radius:999px;padding:6px 14px;cursor:pointer;font:inherit}.qr-sizes button.on{background:#d83e99;border-color:#d83e99;color:#fff}.qr-note{color:#9aa1ad;font-size:12.5px;text-align:center;max-width:460px}@media print{.qr-sizes,.qr-note{display:none}}.tm{min-height:100dvh;background:#e9e7e2;display:flex;flex-direction:column;color:#23262b;font-family:Poppins,Helvetica Neue,Arial,sans-serif}.tm-main{width:min(1080px,92vw);margin:0 auto;padding:34px 0 70px;flex:1}.tm-hero{text-align:center;margin-bottom:34px;position:relative}.tm-close{position:absolute;top:0;right:0;width:40px;height:40px;border-radius:50%;border:none;background:#fff;color:#3c414b;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 3px 12px #00000014;transition:transform .15s,box-shadow .15s}.tm-close:hover{transform:scale(1.06);box-shadow:0 6px 16px #00000024}.tm-back{position:fixed;left:18px;bottom:18px;z-index:30;background:#191b1f;color:#fff;border:none;border-radius:999px;padding:12px 22px;font-family:inherit;font-size:14px;font-weight:500;letter-spacing:.06em;cursor:pointer;box-shadow:0 8px 24px #00000040}.tm-back:hover{box-shadow:0 10px 28px #00000059}.tm-hero-icon{display:inline-flex;width:64px;height:64px;border-radius:50%;background:#efe7d8;color:#3c414b;align-items:center;justify-content:center}.tm-hero-icon svg{width:30px;height:30px}.tm-hero h1{font-family:Playfair Display,Georgia,serif;font-weight:500;font-size:clamp(30px,3.6vw,44px);margin:12px 0 6px}.tm-hero p{color:#5a5f6a;margin:0 0 12px;font-size:16px}.tm-hero-for{display:inline-block;background:#fff;border-radius:999px;padding:8px 18px;font-size:13.5px;color:#5a5f6a}.tm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.tm-grid.three{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.tm-card{background:#fff;border-radius:12px;padding:18px;text-align:center;box-shadow:0 3px 14px #0000000f;display:flex;flex-direction:column;gap:8px;text-decoration:none;color:inherit}.tm-card.link{transition:transform .15s,box-shadow .15s}.tm-card.link:hover{transform:translateY(-2px);box-shadow:0 10px 24px #0000001f}.tm-card-art{height:130px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#6b5d3f}.tm-card-art svg{width:52px;height:52px}.tm-card-art.small{height:70px;background:#efe7d8}.tm-card-art.small svg{width:32px;height:32px}.tm-card-name{font-family:Playfair Display,Georgia,serif;font-size:19px}.tm-card-price{color:#6b5d3f;font-weight:500}.tm-card-sub{color:#6b7180;font-size:13.5px;line-height:1.55}.tm-btn{background:#191b1f;color:#fff;border:none;border-radius:999px;padding:11px 22px;font-family:inherit;font-size:14px;font-weight:500;letter-spacing:.05em;cursor:pointer;align-self:center}.tm-btn:hover{box-shadow:0 8px 20px #00000038}.tm-btn:disabled{opacity:.45;cursor:default;box-shadow:none}.tm-btn.ghost{background:#efe7d8;color:#23262b}.tm-form{max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:10px}.tm-form.boxed{background:#fff;border-radius:12px;padding:24px;box-shadow:0 3px 14px #0000000f;margin-top:26px}.tm-form h3,.tm-two-col h3{font-family:Playfair Display,Georgia,serif;font-weight:500;margin:0 0 6px}.tm-label{font-size:12.5px;color:#5a5f6a;letter-spacing:.04em}.tm-input{border:1px solid #d8d4cb;border-radius:8px;padding:10px 12px;font-size:14px;font-family:inherit;background:#fdfcfa;width:100%;box-sizing:border-box}.tm-input.slim{padding:6px 8px;width:70px;margin-top:4px}.tm-options{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}.tm-option{background:#fff;border:2px solid transparent;border-radius:10px;padding:14px 20px;font-family:inherit;font-size:14px;cursor:pointer;display:flex;flex-direction:column;gap:3px;align-items:center;box-shadow:0 3px 14px #0000000f}.tm-option.active{border-color:#191b1f}.tm-option.wide{width:100%;flex-direction:row;justify-content:center}.tm-two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:start;max-width:940px;margin:0 auto}@media(max-width:760px){.tm-two-col{grid-template-columns:1fr}}.tm-list{line-height:1.9;color:#3c414b;padding-left:20px}.tm-checkout-bar{position:sticky;bottom:14px;margin-top:22px;background:#191b1f;color:#fff;border-radius:999px;padding:12px 12px 12px 24px;display:flex;align-items:center;justify-content:space-between;gap:18px;max-width:460px;margin-left:auto;margin-right:auto;box-shadow:0 10px 30px #0000004d}.tm-checkout-bar .tm-btn{background:#fff;color:#191b1f}.tm-demo-note{text-align:center;color:#98938a;font-size:12.5px;margin-top:22px}.tm-success{background:#fff;border-radius:12px;padding:30px;text-align:center;max-width:460px;margin:0 auto;box-shadow:0 3px 14px #0000000f}.tm-success .tick{width:46px;height:46px;border-radius:50%;background:#e5efe6;color:#2e7d43;font-size:22px;display:inline-flex;align-items:center;justify-content:center;margin-bottom:8px}.tm-success h3{font-family:Playfair Display,Georgia,serif;margin:0 0 8px}.tm-success p{color:#5a5f6a;margin:0 0 16px}.tm-message{background:#fff;border-radius:10px;padding:14px 18px;margin-bottom:12px;box-shadow:0 3px 14px #0000000f}.tm-message p{margin:0 0 6px;font-style:italic;color:#3c414b}.tm-blanket-cloth{position:relative;border-radius:6px;overflow:visible;transform:rotate(-1.5deg);box-shadow:0 14px 34px #0000002e}.tm-blanket-cloth img{width:100%;display:block;border-radius:6px;border:10px solid #f4f2ee;box-sizing:border-box}.tm-blanket-cloth .fringe{position:absolute;left:4px;right:4px;bottom:-12px;height:12px;background:repeating-linear-gradient(90deg,#e3ded4 0 4px,transparent 4px 8px)}*{box-sizing:border-box}body{margin:0;font-family:Poppins,Helvetica Neue,Arial,sans-serif;background:#e9e7e2;color:#23262b}button{font-family:inherit}.deck-view{height:100dvh;background:#23262b;position:relative;overflow:hidden}.deck-header{position:fixed;top:0;left:0;right:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 20px;color:#cfd4dc;background:linear-gradient(180deg,#14161ad9,#14161a00);pointer-events:none}.deck-header>*{pointer-events:auto}.deck-header .who{font-size:14px;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.deck-header .deck-page-label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#8f96a1}.deck-header a{color:#9fc7e8;font-size:13px;text-decoration:none;white-space:nowrap}.deck-header a:hover{text-decoration:underline}.deck{height:100dvh;overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-width:none}.deck::-webkit-scrollbar{display:none}.deck-slide{height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;display:flex;align-items:center;justify-content:center;padding:22px 12px}.deck-slide .os-page{width:min(94vw,calc((100dvh - 88px) * 609 / 872));border-radius:4px;box-shadow:0 14px 48px #00000080;flex-shrink:0}.deck-dots{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:20;display:flex;flex-direction:column;gap:10px}.deck-dots .dot{width:10px;height:10px;border-radius:50%;border:none;background:#ffffff59;cursor:pointer;padding:0;transition:background .2s,transform .2s}.deck-dots .dot.active{background:#d83e99;transform:scale(1.3)}.deck-next{position:fixed;left:50%;bottom:10px;transform:translate(-50%);z-index:20;background:none;border:none;color:#ffffffbf;font-size:26px;line-height:1;cursor:pointer;animation:deck-bounce 2s infinite;padding:4px 16px}@keyframes deck-bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(5px)}}.fab-stack{position:fixed;right:18px;bottom:18px;z-index:20;display:flex;flex-direction:column;align-items:flex-end;gap:10px}.fab{border:none;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:500;letter-spacing:.03em;cursor:pointer;box-shadow:0 8px 24px #0006;text-decoration:none;display:inline-flex;align-items:center;gap:8px}.fab:hover{filter:brightness(1.08)}.manage-fab{background:#d83e99;color:#fff}.share-fab{background:#fff;color:#23262b}.center-note{min-height:60vh;display:flex;align-items:center;justify-content:center;color:#5a5f6a;font-size:15px}.loadbar{position:fixed;top:0;left:0;right:0;height:3px;z-index:100;opacity:0;transition:opacity .25s ease;pointer-events:none}.loadbar.visible{opacity:1}.loadbar-fill{height:100%;width:0;background:linear-gradient(90deg,#d83e99,#f06db8);border-radius:0 2px 2px 0;animation:loadbar-creep 10s cubic-bezier(.15,.6,.3,1) forwards;position:relative}.loadbar-glow{position:absolute;right:0;top:-2px;width:70px;height:7px;background:radial-gradient(closest-side,rgba(240,109,184,.75),transparent);filter:blur(2px)}@keyframes loadbar-creep{0%{width:0}10%{width:42%}30%{width:68%}60%{width:84%}to{width:95%}}@keyframes page-fade{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.lp,.tm,.book-view,.qr-view,.print-view,.portal-main>*{animation:page-fade .35s ease both}@media(prefers-reduced-motion:reduce){.lp,.tm,.book-view,.qr-view,.print-view,.portal-main>*{animation:none}.loadbar-fill{animation-duration:30s}}.print-view{background:#3a3e45;min-height:100vh;padding:20px;display:flex;flex-direction:column;align-items:center;gap:20px}.print-sheet{width:min(1100px,96vw);aspect-ratio:1218 / 872;display:flex;background:#fff;box-shadow:0 10px 30px #0006}.print-sheet .half{width:50%;height:100%}.print-sheet .half .os-page{height:100%}.print-actions{display:flex;gap:10px}.print-actions button,.print-actions a{background:#d83e99;border:none;color:#fff;border-radius:6px;padding:10px 18px;font-size:14px;cursor:pointer;text-decoration:none}@media print{body{background:#fff}.print-view{padding:0;background:#fff;gap:0}.print-actions{display:none}.print-sheet{width:100%;box-shadow:none;page-break-after:always}@page{size:letter landscape;margin:0}}.home{min-height:100vh;background:linear-gradient(180deg,#46b3d2,#8a8e9c);display:flex;align-items:center;justify-content:center;padding:24px}.home-card{background:#fff;border-radius:14px;padding:36px;max-width:520px;width:100%;box-shadow:0 20px 60px #00000040}.home-card h1{margin:0 0 4px;font-size:26px;font-weight:600}.home-card .tagline{color:#667085;font-size:14px;margin-bottom:22px}.home-links{display:flex;gap:10px;margin-bottom:26px}.home-links a{flex:1;text-align:center;padding:12px;border-radius:8px;text-decoration:none;font-size:14px;font-weight:500}.home-links a.primary{background:#d83e99;color:#fff}.home-links a.secondary{background:#eef1f5;color:#23262b}.sim-box{border-top:1px solid #e6e9ee;padding-top:20px}.sim-box h2{font-size:15px;margin:0 0 4px}.sim-box .hint{font-size:12.5px;color:#667085;margin-bottom:14px}.sim-result{margin-top:12px;font-size:13.5px;background:#f0faf4;border:1px solid #bce5cd;border-radius:8px;padding:10px 12px}.sim-result a{color:#1c7c46}.field{margin-bottom:14px}.field label{display:block;font-size:12.5px;font-weight:500;color:#475066;margin-bottom:5px;letter-spacing:.02em}.field input[type=text],.field input[type=email],.field textarea{width:100%;border:1px solid #d4dae3;border-radius:7px;padding:9px 11px;font-size:14px;font-family:inherit;background:#fff}.field textarea{resize:vertical;line-height:1.5}.field input:focus,.field textarea:focus{outline:2px solid #d83e9955;border-color:#d83e99}.btn{background:#d83e99;color:#fff;border:none;border-radius:7px;padding:10px 20px;font-size:14px;font-weight:500;cursor:pointer}.btn:disabled{opacity:.6;cursor:default}.btn.ghost{background:#eef1f5;color:#23262b}.btn.small{padding:6px 12px;font-size:12.5px}.error-text{color:#c0392b;font-size:13px;margin-top:10px}.ok-text{color:#1c7c46;font-size:13px;margin-top:10px}.portal{min-height:100vh;background:#f2f4f7}.portal-header{background:#fff;border-bottom:1px solid #e6e9ee;padding:14px 26px;display:flex;align-items:center;justify-content:space-between}.portal-header .brand{font-weight:600;font-size:16px;display:flex;align-items:center;gap:10px;color:#23262b;text-decoration:none}.portal-header .brand .dot{width:12px;height:12px;border-radius:3px;background:#d83e99;transform:rotate(45deg)}.portal-header nav{display:flex;gap:18px;align-items:center}.portal-header nav a{font-size:14px;color:#475066;text-decoration:none;padding:6px 2px}.portal-header nav a.active{color:#d83e99;font-weight:500}.portal-header .user{font-size:13px;color:#667085}.portal-main{max-width:1200px;margin:0 auto;padding:28px 26px 60px}.portal-main h1{font-size:22px;font-weight:600;margin:0 0 18px}.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#46b3d2,#8a8e9c);padding:20px}.login-card{background:#fff;border-radius:14px;padding:34px;width:100%;max-width:420px;box-shadow:0 20px 60px #00000040}.login-card h1{font-size:20px;margin:0 0 6px}.login-card .hint{font-size:13px;color:#667085;margin-bottom:20px}.page-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}.page-card{background:#fff;border-radius:12px;overflow:hidden;border:1px solid #e6e9ee;display:flex;flex-direction:column}.page-card .thumb{height:150px;background-size:cover;background-position:center 25%}.page-card .meta{padding:14px 16px 16px}.page-card .meta .name{font-weight:600;font-size:15px}.page-card .meta .sub{font-size:12.5px;color:#667085;margin-top:3px}.page-card .actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}.page-card .actions a,.page-card .actions button{min-width:30%}.page-card .actions a,.page-card .actions button{flex:1;text-align:center;font-size:13px;padding:8px 0;border-radius:7px;text-decoration:none;border:none;cursor:pointer;font-family:inherit}.page-card .actions .edit{background:#d83e99;color:#fff}.page-card .actions .view{background:#eef1f5;color:#23262b}.page-card .actions .publish{background:#1f9d55;color:#fff}.page-card .actions .unpublish{background:#fdecec;color:#b42318}.page-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.btn-primary{background:#d83e99;color:#fff;border:none;border-radius:8px;padding:10px 16px;font-size:14px;font-weight:500;cursor:pointer;font-family:inherit}.btn-primary:disabled{opacity:.6;cursor:default}.page-card .thumb{position:relative}.status-badge{position:absolute;top:8px;left:8px;font-size:11px;font-weight:600;letter-spacing:.03em;padding:3px 9px;border-radius:999px;color:#fff;text-transform:uppercase}.status-badge.published{background:#1f9d55eb}.status-badge.draft{background:#b42318eb}.page-card.is-draft .thumb{filter:grayscale(.35)}.status-pill{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.03em;padding:2px 9px;border-radius:999px;color:#fff;text-transform:uppercase;vertical-align:middle}.status-pill.published{background:#1f9d55}.status-pill.draft{background:#b42318}.status-row{display:flex;align-items:center;gap:12px;margin:-6px 0 18px;flex-wrap:wrap}.status-row .hint{font-size:12.5px;color:#667085}.theme-editor .theme-presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}.theme-swatch{display:flex;flex-direction:column;align-items:stretch;gap:6px;padding:0;border:2px solid transparent;border-radius:10px;background:none;cursor:pointer;font-family:inherit;overflow:hidden}.theme-swatch .swatch-fill{position:relative;height:54px;border-radius:8px;border:1px solid #e6e9ee;overflow:hidden}.swatch-lp{position:absolute;right:5px;bottom:5px;width:40%;height:46%;border-radius:5px;box-shadow:0 1px 3px #0003;display:flex;align-items:center;justify-content:center}.swatch-dot{width:9px;height:9px;border-radius:50%}.swatch-aa{font-size:13px;line-height:1;font-weight:600}.theme-hint{font-size:12.5px;color:#667085;margin:-4px 0 12px}.overlay-control{display:flex;align-items:center;gap:10px}.overlay-control input[type=color]{width:46px;height:34px;padding:2px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;cursor:pointer;flex-shrink:0}.overlay-control input[type=range]{flex:1}.overlay-val{font-size:12.5px;color:#667085;width:38px;text-align:right}.editor-tabs{display:flex;gap:6px;margin:6px 0 16px;border-bottom:1px solid #e6e9ee}.editor-tab{background:none;border:none;border-bottom:2px solid transparent;padding:9px 16px;font-size:14px;font-weight:500;color:#667085;cursor:pointer;font-family:inherit;margin-bottom:-1px}.editor-tab:hover{color:#23262b}.editor-tab.active{color:#d83e99;border-bottom-color:#d83e99}.theme-swatch .swatch-name{font-size:11.5px;color:#475467;text-align:center}.theme-swatch.active{border-color:#d83e99}.theme-swatch.active .swatch-name{color:#d83e99;font-weight:600}.theme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.theme-grid input[type=color]{width:100%;height:38px;padding:2px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;cursor:pointer}.theme-fonts{display:flex;gap:16px;flex-wrap:wrap}.editor-layout{display:grid;grid-template-columns:minmax(380px,1fr) minmax(300px,420px);gap:26px;align-items:start}@media(max-width:900px){.editor-layout{grid-template-columns:1fr}}.editor-form{background:#fff;border:1px solid #e6e9ee;border-radius:12px;padding:22px}.editor-form h2{font-size:14px;text-transform:uppercase;letter-spacing:.1em;color:#8a92a3;margin:26px 0 12px;padding-top:18px;border-top:1px solid #eef1f5}.editor-form h2:first-of-type{margin-top:0;border-top:none;padding-top:0}.editor-form.ed-cards{background:transparent;border:0;padding:0}.ed-card{background:#fff;border:1px solid #e6e9ee;border-radius:12px;padding:20px 22px 18px;margin-bottom:16px}.editor-form .ed-card h2,.editor-form .ed-card h2:first-of-type{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;text-transform:none;letter-spacing:0;color:#101828;margin:0 0 16px;padding:0 0 12px;border-top:0;border-bottom:1px solid #eef1f5}.ed-page{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:#d83e99;background:#fdeef6;border-radius:999px;padding:3px 9px}.editor-actions{position:sticky;bottom:0;z-index:20;margin-top:18px;display:flex;gap:12px;align-items:center;background:#fff;border:1px solid #e6e9ee;border-radius:12px;padding:12px 16px;box-shadow:0 -8px 24px #10182814}.editor-actions .spacer{flex:1}.editor-actions .btn-primary{text-decoration:none}.link-btn{background:none;border:0;padding:0;font:inherit;font-size:12.5px;color:#d83e99;cursor:pointer;text-decoration:underline}.link-btn:disabled{opacity:.5;cursor:default}.editor-preview{position:sticky;top:20px;max-height:calc(100vh - 110px);overflow-y:auto;padding-right:4px}.editor-preview .pages{display:flex;flex-direction:column;gap:14px}.lp-preview-frame{border:1px solid #e6e9ee;border-radius:8px;overflow:hidden;box-shadow:0 6px 20px #0000001f;background:#e9e7e2}.editor-preview .os-page{border-radius:3px;box-shadow:0 6px 20px #0003}.editor-preview .label{font-size:12px;color:#8a92a3;text-transform:uppercase;letter-spacing:.12em;margin-bottom:8px}.save-bar{position:sticky;bottom:0;background:linear-gradient(180deg,transparent,#f2f4f7 30%);padding:16px 0 4px;display:flex;gap:12px;align-items:center}.photo-field{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.photo-field .thumb{width:64px;height:64px;border-radius:8px;object-fit:cover;border:1px solid #d4dae3;background:#eef1f5}.photo-field input[type=file]{display:none}.img-adjuster{margin-top:10px;max-width:320px}.img-adjuster-frame{position:relative;width:100%;max-width:260px;overflow:hidden;border-radius:8px;border:1px solid #d4dae3;background:#eef1f5 repeating-conic-gradient(#e7ebf1,#e7ebf1 25%,#f4f6f9 0%,#f4f6f9 50%) 50% / 20px 20px;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.img-adjuster-frame:active{cursor:grabbing}.img-adjuster-frame.round{border-radius:50%;max-width:220px}.img-adjuster-frame img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}.img-adjuster-hint{position:absolute;left:50%;bottom:8px;transform:translate(-50%);font-size:11px;color:#fff;background:#00000073;padding:2px 8px;border-radius:999px;pointer-events:none}.img-adjuster-controls{display:flex;align-items:center;gap:8px;margin-top:8px;max-width:260px}.img-adjuster-controls input[type=range]{flex:1}.zoom-btn{width:30px;height:30px;border:1px solid #d0d5dd;background:#fff;border-radius:7px;font-size:18px;line-height:1;cursor:pointer;color:#23262b}.svc-row{display:flex;gap:8px;margin-bottom:8px;align-items:flex-start}.svc-row input{flex:1}.svc-row .rm{background:#eef1f5;border:none;border-radius:6px;width:32px;height:36px;cursor:pointer;color:#98a1b3;font-size:16px}.svc-row .rm:hover{color:#c0392b}.svc-item{margin-bottom:14px;padding-bottom:12px;border-bottom:1px dashed #e6e9ee}.svc-item .svc-row{margin-bottom:6px}.rte{border:1px solid #d0d5dd;border-radius:8px;overflow:hidden;background:#fff}.rte-toolbar{display:flex;align-items:center;gap:2px;padding:5px 6px;background:#f7f8fa;border-bottom:1px solid #e6e9ee;flex-wrap:wrap}.rte-btn{min-width:28px;height:28px;padding:0 7px;border:1px solid transparent;background:none;border-radius:6px;cursor:pointer;font-size:13px;color:#23262b;font-family:inherit;display:inline-flex;align-items:center;justify-content:center;position:relative}.rte-btn:hover{background:#e9edf2}.rte-color input[type=color]{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:pointer}.rte-sep{width:1px;height:18px;background:#d9dee5;margin:0 4px}.rte-input{padding:10px 12px;font-size:14px;line-height:1.5;outline:none;overflow-wrap:anywhere}.rte-input:focus{box-shadow:inset 0 0 0 2px #d83e9933}.rte-input:empty:before{content:attr(data-placeholder);color:#98a1b3}.color-field{display:flex;align-items:center;gap:10px}.color-field input[type=color]{width:44px;height:36px;border:1px solid #d4dae3;border-radius:7px;padding:2px;background:#fff;cursor:pointer}.color-field .hex{font-size:13px;color:#667085;font-family:monospace}.type-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px;border-bottom:2px solid #e6e9ee;padding-bottom:0}.type-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:8px 14px;font-family:inherit;font-size:13.5px;color:#475066;cursor:pointer}.type-tab:hover{color:#d83e99}.type-tab.active{color:#d83e99;font-weight:600;border-bottom-color:#d83e99}.tb-list{display:flex;flex-direction:column;gap:8px}.tb-row{display:flex;align-items:center;gap:12px;border:1px solid #e6e9ee;border-radius:10px;padding:9px 12px;background:#fafbfc}.tb-row.active{background:#fff;border-color:#d4dae3}.tb-icon{width:34px;height:34px;border-radius:50%;background:#efe7d8;color:#3c414b;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}.tb-icon svg{width:18px;height:18px}.tb-row:not(.active) .tb-icon{opacity:.45}.tb-name{font-size:14px;font-weight:500;min-width:130px}.tb-label-input{flex:1;border:1px solid #d4dae3;border-radius:7px;padding:7px 10px;font-size:14px;font-family:inherit;min-width:0;width:100%;box-sizing:border-box}.tb-field{display:flex;flex-direction:column;gap:3px;min-width:0}.tb-row .tb-field:has(.tb-label-input){flex:1}.tb-field-label{font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;color:#98a1b3}.tb-field select,.tb-field input{width:100%;box-sizing:border-box}.tb-row:not(.active) .tb-name{color:#98a1b3;font-weight:400}.tb-url{flex:1;border:1px solid #d4dae3;border-radius:7px;padding:7px 10px;font-size:13px;font-family:inherit}.tb-toggle{margin-left:auto;display:inline-flex;align-items:center;gap:8px;background:none;border:none;cursor:pointer;font-family:inherit;padding:4px}.tb-toggle .knob{width:34px;height:20px;border-radius:999px;background:#d4dae3;position:relative;transition:background .15s}.tb-toggle .knob:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;transition:left .15s;box-shadow:0 1px 3px #0003}.tb-toggle.on .knob{background:#d83e99}.tb-toggle.on .knob:after{left:16px}.tb-state{font-size:12.5px;color:#98a1b3;width:52px;text-align:left}.tb-toggle.on .tb-state{color:#1c7c46}.radio-row{display:flex;gap:16px;flex-wrap:wrap}.radio-opt{display:inline-flex;align-items:center;gap:6px;font-size:13.5px;color:#23262b;cursor:pointer}.radio-opt input{accent-color:#d83e99}.portal-header.admin{border-top:3px solid #23262b}.admin-dot{background:#23262b!important}.login-wrap.admin{background:linear-gradient(180deg,#3a3e45,#191b1f)}.stat-row{display:flex;gap:16px;margin-bottom:10px}.stat-card{background:#fff;border:1px solid #e6e9ee;border-radius:12px;padding:18px 26px;min-width:140px}.stat-card .num{font-size:30px;font-weight:600}.stat-card .lbl{font-size:12.5px;color:#667085;letter-spacing:.05em;text-transform:uppercase}.table-wrap{background:#fff;border:1px solid #e6e9ee;border-radius:12px;overflow-x:auto}.admin-table{width:100%;border-collapse:collapse;font-size:13.5px}.admin-table th{text-align:left;padding:11px 16px;font-size:11.5px;letter-spacing:.08em;text-transform:uppercase;color:#8a92a3;border-bottom:1px solid #e6e9ee}.admin-table td{padding:11px 16px;border-bottom:1px solid #f0f2f6}.admin-table tr:last-child td{border-bottom:none}.admin-table a{color:#d83e99;text-decoration:none}.admin-table a:hover{text-decoration:underline}.admin-table .row-actions{white-space:nowrap}.admin-table .row-actions a{color:#23262b}.btn.danger{color:#c0392b}.admin-h2{font-size:15px;text-transform:uppercase;letter-spacing:.08em;color:#475066;margin:28px 0 14px}@media(max-width:720px){.portal-header{flex-wrap:wrap;gap:10px}.portal-header nav{flex-wrap:wrap;gap:10px}.stat-row{flex-wrap:wrap}}.chart-card{background:#fff;border:1px solid #e6e9ee;border-radius:12px;padding:18px 20px 14px;margin:18px 0}.chart-title{font-size:13px;font-weight:500;letter-spacing:.04em;color:#475066;margin-bottom:10px}.chart-wrap{position:relative}.chart-wrap svg{width:100%;height:auto;display:block}.chart-tooltip{position:absolute;top:0;transform:translate(-50%);background:#23262b;color:#fff;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.5;pointer-events:none;white-space:nowrap;box-shadow:0 4px 14px #00000040}.chart-tooltip .tt-day{font-weight:600}.chart-tooltip .tt-sub{color:#b9bec7}.chart-tooltip .tt-swatch{display:inline-block;width:8px;height:8px;border-radius:2px;background:#d83e99;margin-right:4px}.chart-data{margin-top:8px}.chart-data summary{font-size:12.5px;color:#667085;cursor:pointer;padding:4px 0}.chart-data .table-wrap{margin-top:8px;max-height:260px;overflow-y:auto}.device-bars{display:flex;flex-direction:column;gap:10px;padding:4px 0 6px}.device-row{display:flex;align-items:center;gap:12px;font-size:13px}.device-row .dev-label{width:70px;color:#475066;text-transform:capitalize;text-align:right}.device-row .dev-track{flex:1;height:14px;background:#f0f2f6;border-radius:4px;overflow:hidden}.device-row .dev-fill{display:block;height:100%;background:#d83e99;border-radius:4px}.device-row .dev-val{width:90px;color:#667085;font-size:12.5px}.modal-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:#14161c73;display:flex;align-items:center;justify-content:center;padding:16px;z-index:50}.modal-card{background:#fff;border-radius:14px;padding:22px 24px;width:min(460px,100%);box-shadow:0 20px 60px #00000040}.modal-card h2{margin:0 0 14px;font-size:19px}.modal-card .hint{font-size:12.5px;color:#667085;margin-top:5px}.kind-choice,.pet-choice{display:flex;gap:8px;flex-wrap:wrap}.kind-choice button,.pet-choice button{flex:1;min-width:90px;padding:10px 12px;border:1.5px solid #d0d5dd;background:#fff;border-radius:9px;font:inherit;font-size:14px;cursor:pointer;color:#23262b}.kind-choice button.active,.pet-choice button.active{border-color:#d83e99;color:#d83e99;font-weight:600;background:#fdf2f8}.modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.kind-badge{position:absolute;top:8px;right:8px;font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;background:#ffffffeb;color:#6b4f2a}.pet-type-row{display:flex;align-items:center;gap:10px;margin-bottom:12px;flex-wrap:wrap}.pet-type-row select{padding:7px 10px;border:1px solid #d0d5dd;border-radius:7px;font:inherit}.status-pill.pet{background:#8a6a3f}.status-badge.archived{background:#475467eb}.status-pill.archived{background:#475467}.page-card.is-archived{opacity:.72}.page-card.is-archived .thumb{filter:grayscale(.7)}.filter-chips{display:flex;gap:8px;margin:0 0 16px;flex-wrap:wrap}.filter-chips button{background:#fff;border:1px solid #e4e7ec;color:#475467;border-radius:999px;padding:6px 14px;font:inherit;font-size:13px;cursor:pointer}.filter-chips button.on{background:#23262b;border-color:#23262b;color:#fff}.notice-line{margin:0 0 14px}.modal-card.wide{max-width:640px}.step-dots{display:flex;gap:14px;font-size:12.5px;color:#98a2b3;margin:-6px 0 16px}.step-dots span.on{color:#23262b;font-weight:500}.included-list{list-style:none;margin:0;padding:0;display:grid;gap:10px}.included-list li{display:flex;gap:10px;align-items:flex-start}.included-list .tick{flex:0 0 20px;height:20px;border-radius:50%;background:#1f9d55;color:#fff;font-size:12px;line-height:20px;text-align:center}.included-list strong{font-weight:500;font-size:14px}.addon-list{display:grid;gap:8px}.addon-list .addon-row{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:start;border:1px solid #e4e7ec;border-radius:10px;padding:11px 13px;cursor:pointer;background:#fff}.addon-list .addon-row.is-on{border-color:#d83e99;box-shadow:0 0 0 2px #d83e991f}.addon-list .addon-row.is-locked{cursor:default;background:#f9fafb;color:#475467}.addon-list .addon-row input[type=checkbox]{margin-top:3px}.addon-check{color:#1f9d55;text-align:center}.addon-text strong{display:block;font-weight:600;font-size:14.5px;color:#101828}.addon-text .hint{font-size:12.5px;line-height:1.45;color:#667085;margin-top:2px}.order-note{font-size:12.5px;color:#667085}.order-msg{margin:14px 0 0;padding:12px 14px;border-radius:10px;font-size:14px;font-weight:500;border:1px solid}.order-msg.ok{background:#ecfdf3;border-color:#abefc6;color:#067647}.order-msg.error{background:#fef3f2;border-color:#fecdca;color:#b42318}.addon-price{font-size:14px;font-weight:500;text-align:right;white-space:nowrap}.addon-tbc{display:block;font-size:11px;color:#98a2b3;font-weight:400}.addon-opts{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}.addon-opts label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:#475467}.addon-opts select{font:inherit;font-size:13px;padding:4px 8px;border:1px solid #d0d5dd;border-radius:7px;background:#fff;color:#101828}.addon-total{margin-top:12px;font-size:14px;font-weight:500}.order-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin:18px 0 6px}.addon-form{border:1px solid #e4e7ec;border-radius:12px;padding:16px;background:#fff;margin:0 0 18px}.addon-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.addon-form label{display:block;font-size:13px}.addon-form label>span{display:block;color:#667085;margin-bottom:4px}.addon-form input,.addon-form select,.addon-form textarea{width:100%;border:1px solid #d0d5dd;border-radius:8px;padding:8px 10px;font:inherit;font-size:14px}.addon-form-wide{margin-top:12px}.addon-form-flags{display:flex;gap:20px;flex-wrap:wrap;margin:12px 0 4px;font-size:13px}.addon-form-actions{display:flex;gap:10px;margin-top:12px}.btn.ghost.danger{color:#b42318;border-color:#f3c8c4}.admin-table tr.is-off{opacity:.6}.home-included{list-style:none;margin:14px 0 20px;padding:0;display:flex;gap:8px 18px;flex-wrap:wrap;justify-content:center;font-size:13.5px;color:#475467}.home-included li:before{content:"✓ ";color:#1f9d55}.order-summary{border:1px solid #e4e7ec;border-radius:10px;padding:12px 14px;background:#fbfcfd;font-size:14px}.order-line{display:flex;justify-content:space-between;gap:16px;padding:4px 0}.order-line.total{border-top:1px solid #e4e7ec;margin-top:6px;padding-top:8px;font-weight:600}.order-summary .hint{margin:8px 0 0}.warn-text{color:#b42318}.draft-note{color:#f5c26b;max-width:460px}.qr-card.size-a6{width:min(300px,70vw)}@media(max-width:560px){.modal-actions{flex-wrap:wrap}.modal-actions .btn,.modal-actions .btn-primary{flex:1 1 auto}}.modal-card.wide{max-width:660px;width:min(660px,94vw);max-height:min(88vh,900px);display:flex;flex-direction:column;padding:0;overflow:hidden}.modal-card.wide .modal-head{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 0}.modal-card.wide .modal-head h2{margin:0}.modal-close{border:0;background:none;font-size:26px;line-height:1;color:#98a2b3;cursor:pointer;padding:0 4px}.modal-close:hover{color:#23262b}.modal-card.wide .step-dots{list-style:none;display:flex;gap:8px;margin:14px 0 0;padding:0 24px 16px;border-bottom:1px solid #eef0f4;counter-reset:step}.modal-card.wide .step-dots li{counter-increment:step;font-size:12.5px;color:#98a2b3;display:flex;align-items:center;gap:6px}.modal-card.wide .step-dots li:before{content:counter(step);width:20px;height:20px;border-radius:50%;background:#eef0f4;color:#667085;display:grid;place-items:center;font-size:11.5px}.modal-card.wide .step-dots li+li:after{content:""}.modal-card.wide .step-dots li.on{color:#23262b;font-weight:500}.modal-card.wide .step-dots li.on:before{background:#d83e99;color:#fff}.modal-card.wide .step-dots li.done:before{background:#1f9d55;color:#fff;content:"✓"}.modal-body{padding:18px 24px;overflow-y:auto;flex:1}.modal-section+.modal-section{margin-top:22px}.modal-section h3{margin:0 0 10px;font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:#667085}.modal-section h3 .soft{text-transform:none;letter-spacing:0;color:#98a2b3;font-weight:400}.modal-card.wide .modal-actions{padding:14px 24px;border-top:1px solid #eef0f4;background:#fbfcfd;margin:0}.addon-list .addon-row{grid-template-columns:1fr auto auto;align-items:center}.qty-stepper{display:flex;align-items:center;gap:2px}.qty-stepper button{width:28px;height:28px;border:1px solid #d0d5dd;background:#fff;border-radius:7px;font-size:16px;line-height:1;cursor:pointer;color:#344054}.qty-stepper button:disabled{opacity:.4;cursor:default}.qty-stepper input{width:38px;height:28px;text-align:center;border:1px solid #d0d5dd;border-radius:7px;font:inherit;font-size:13.5px}.order-page .panel{border:1px solid #e4e7ec;border-radius:12px;background:#fff;padding:18px 20px;margin-bottom:16px}.order-page .panel h2{margin:0 0 10px;font-size:16px}.order-cols{max-width:720px}.card-actions{margin-top:12px;display:grid;gap:10px}.action-primary{display:flex;gap:8px;flex-wrap:wrap}.btn-act{flex:1 1 auto;text-align:center;font-size:13px;font-weight:500;padding:9px 12px;border-radius:8px;text-decoration:none;border:none;cursor:pointer;font-family:inherit;white-space:nowrap}.btn-act.edit{background:#d83e99;color:#fff}.btn-act.order{background:#23262b;color:#fff}.btn-act.publish{background:#1f9d55;color:#fff}.btn-act.unpublish{background:#fdecec;color:#b42318}.btn-act:disabled{opacity:.6;cursor:default}.action-group{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding-top:8px;border-top:1px solid #f0f2f6}.action-group .lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.08em;color:#98a2b3;width:58px;flex:0 0 58px}.action-group a,.action-group button{background:#f4f6f9;color:#344054;border:1px solid #e9ecf1;border-radius:999px;padding:5px 11px;font-size:12.5px;text-decoration:none;cursor:pointer;font-family:inherit}.action-group a:hover,.action-group button:hover{background:#e9edf3}.action-foot{display:flex;justify-content:flex-end}.action-foot button{background:none;border:none;color:#98a2b3;font-size:12.5px;cursor:pointer;font-family:inherit;padding:2px 0}.action-foot button:hover{color:#b42318;text-decoration:underline}.crumb{font-size:13px;color:#667085;text-decoration:none;display:inline-block;margin-bottom:4px}.crumb:hover{color:#23262b}.order-history{width:100%;border-collapse:collapse;font-size:13.5px}.order-history th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#98a2b3;padding:6px 8px;border-bottom:1px solid #eef0f4}.order-history td{padding:10px 8px;border-bottom:1px solid #f4f6f9;vertical-align:top}.order-state{display:inline-block;padding:3px 9px;border-radius:999px;font-size:12px;background:#eef1f5;color:#344054}.order-state.paid{background:#e6f6ec;color:#1f7a45}.order-state.pending,.order-state.checkout{background:#fff4e0;color:#9a5b00}.project-head{margin-bottom:18px}.project-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.project-title h1{margin:0}.project-title-actions{margin-left:auto;display:flex;gap:8px}.project-nav{display:flex;gap:4px;align-items:center;margin-top:12px;border-bottom:1px solid #e4e7ec;overflow-x:auto}.project-nav a{padding:8px 12px;font-size:13.5px;color:#667085;text-decoration:none;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}.project-nav a:hover{color:#23262b}.project-nav a.on{color:#d83e99;border-bottom-color:#d83e99;font-weight:500}.project-nav .sep{flex:1}.project-nav a[target=_blank]{color:#98a2b3;font-size:13px}.page-grid{grid-template-columns:repeat(auto-fill,minmax(300px,1fr))}.action-primary{flex-wrap:nowrap}.btn-act{flex:1 1 0;min-width:0;padding:9px 6px;font-size:12.5px;overflow:hidden;text-overflow:ellipsis}.btn-act.publish,.btn-act.unpublish{flex:1.7 1 0}.action-group{flex-wrap:nowrap;overflow:hidden}.action-group .lbl{width:52px;flex:0 0 52px}.action-group a,.action-group button{flex:0 1 auto;white-space:nowrap;padding:5px 9px;font-size:12px}.name-row{display:flex;align-items:center;justify-content:space-between;gap:10px}.status-toggle{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;color:#667085}.status-toggle .switch{width:36px;height:20px;border-radius:999px;border:none;background:#cfd4dc;position:relative;cursor:pointer;padding:0;transition:background .15s;flex:0 0 36px}.status-toggle .switch .knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 2px #00000040;transition:left .15s}.status-toggle .switch.on{background:#1f9d55}.status-toggle .switch.on .knob{left:18px}.status-toggle .switch:disabled{opacity:.6;cursor:default}.status-toggle .st-label{white-space:nowrap}.status-toggle .st-label.live{color:#1f7a45;font-weight:500}.status-toggle .st-link{background:none;border:none;color:#98a2b3;font-size:12px;cursor:pointer;font-family:inherit;padding:0}.status-toggle .st-link:hover{color:#b42318;text-decoration:underline}.status-toggle .st-err{color:#b42318;font-size:12px}.status-toggle.compact{font-size:12px;gap:6px}.status-toggle.compact .switch{width:32px;height:18px;flex-basis:32px}.status-toggle.compact .switch .knob{width:14px;height:14px}.status-toggle.compact .switch.on .knob{left:16px}.status-toggle.is-archived .st-label{color:#475467}.project-title .status-toggle{margin-left:4px}.order-layout{display:grid;grid-template-columns:200px 1fr;gap:18px;align-items:start}.vtabs{display:flex;flex-direction:column;gap:4px;position:sticky;top:16px}.vtabs button{text-align:left;background:#fff;border:1px solid #e4e7ec;border-radius:10px;padding:10px 12px;font:inherit;cursor:pointer;display:flex;flex-direction:column;gap:2px;color:#344054}.vtabs button small{color:#98a2b3;font-size:11.5px}.vtabs button.on{border-color:#d83e99;color:#d83e99;background:#fff5fa}.vtabs button.on small{color:#c85a97}.order-content .panel{margin-bottom:0}@media(max-width:720px){.order-layout{grid-template-columns:1fr}.vtabs{flex-direction:row;position:static;overflow-x:auto}.vtabs button{flex:1 0 auto}}.linkish{background:none;border:none;padding:0;color:#d83e99;cursor:pointer;font:inherit;text-decoration:underline}.pay-callout{margin-top:12px;padding:12px 14px;border-radius:10px;background:#fff4e0;color:#7a4b00;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.btn-primary.small{padding:7px 12px;font-size:13px}.pay-link{color:#d83e99;font-weight:500;font-size:12.5px}.order-history tr.is-unpaid td{background:#fffaf0}.included.is-collapsed .included-list{gap:6px}.included.is-collapsed .included-list strong{font-weight:500}.showmore{background:none;border:none;color:#d83e99;font:inherit;font-size:12.5px;padding:6px 0 0;cursor:pointer}.status-badge.unpublished{background:#b47818eb}.status-pill.unpublished{background:#b47818}.order-history .history-item{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:360px}.pay-callout.column{flex-direction:column;align-items:flex-start}.pay-items{list-style:none;margin:4px 0 2px;padding:0;width:100%;max-width:460px}.pay-items li{display:flex;justify-content:space-between;gap:16px;padding:3px 0;font-size:13.5px}.pay-items li.total{border-top:1px solid rgba(122,75,0,.25);margin-top:4px;padding-top:6px;font-weight:600}
