:root{--ivory:#fbf5e9;--ivory-deep:#eadcc7;--green:#5d5d5d;--green-soft:#80766b;--gold:#df9632;--rose:#f0d8c2;--ink:#4f4f4f;--muted:#746b60;--line:#5d5d5d2e;--paper:#f6efe2;--shadow:0 24px 70px #6f522e29}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 18% 10%, #df96321f, transparent 26%), radial-gradient(circle at 86% 12%, #f0d8c242, transparent 24%), var(--ivory);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.site-nav{z-index:30;width:min(100% - 28px,1080px);min-height:52px;color:var(--ink);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbf5e9d6;border:1px solid #df963247;border-radius:999px;justify-content:space-between;align-items:center;gap:14px;padding:8px 9px 8px 18px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 18px 50px #6f522e24}.nav-mark{flex:none;align-items:center;display:inline-flex}.nav-logo{object-fit:contain;width:46px;height:46px}.desktop-links{align-items:center;gap:6px;display:none}.desktop-links a,.mobile-panel a{color:#4f4f4fe0;border-radius:999px;padding:10px 13px;font-size:.86rem}.nav-rsvp{background:#df9632e6;font-weight:700;color:#fff8e8!important}.nav-current{background:#df963229;color:var(--ink)!important}.menu-button{width:38px;height:38px;color:var(--ink);background:#df963224;border:0;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.mobile-panel{opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbf5e9f5;border:1px solid #df963242;border-radius:18px;min-width:190px;padding:8px;transition:opacity .18s,transform .18s;display:grid;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden;transform:translateY(-8px)}.mobile-panel.is-open{opacity:1;pointer-events:auto;transform:translateY(0)}.hero{isolation:isolate;min-height:100svh;color:var(--ink);background:linear-gradient(#f6efe233,#f6efe2d1),url(/images/wedding-preview.png) 50%/cover no-repeat;place-items:center;display:grid;position:relative;overflow:hidden}.hero:after{z-index:3;content:"";background:linear-gradient(180deg, #fbf5e900, var(--ivory));pointer-events:none;height:16vh;min-height:92px;position:absolute;bottom:-1px;left:0;right:0}.hero-canvas,.hero-canvas canvas{z-index:0;width:100%;height:100%;position:absolute;inset:0}.hero-shade{z-index:1;background:radial-gradient(circle at 50% 44%,#fff8e8b8,#0000 34%),linear-gradient(#fbf5e947,#f6efe2b8 64%,#fbf5e9eb);position:absolute;inset:0}.hero-copy{z-index:4;text-align:center;text-shadow:0 2px 18px #fff8e8b8;width:min(100% - 32px,720px);padding-top:68px;position:relative}.eyebrow,.section-kicker{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;margin:0 0 14px;font-size:.76rem;font-weight:800}.hero h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(4rem,17vw,8.5rem);font-weight:400;line-height:.9}.hero-date,.hero-place{margin:18px 0 0;font-size:clamp(1.05rem,4vw,1.35rem)}.hero-place{color:#4f4f4fdb;margin-top:8px}.button{min-height:46px;font:inherit;cursor:pointer;border:0;border-radius:999px;justify-content:center;align-items:center;gap:9px;padding:12px 20px;font-size:.94rem;font-weight:800;transition:transform .18s,box-shadow .18s,background .18s;display:inline-flex}.button:hover{transform:translateY(-1px)}.hero-rsvp{background:var(--gold);color:#fff8e8;margin-top:28px;box-shadow:0 16px 44px #6f522e3d}.button-dark{background:var(--gold);color:#fff8e8}.button-light{background:var(--paper);color:var(--ink)}.button-muted{color:#4f4f4f94;cursor:not-allowed;background:#5d5d5d1a}.sound-button{z-index:8;max-width:46px;min-height:46px;color:var(--ink);cursor:pointer;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#fbf5e9b3;border:1px solid #df963247;border-radius:999px;justify-content:flex-start;align-items:center;gap:9px;padding:0 13px;transition:max-width .22s,background .18s;display:inline-flex;position:absolute;bottom:18px;right:18px;overflow:hidden}.sound-button:hover,.sound-button:focus-visible,.sound-button.is-on{background:#fbf5e9eb;max-width:180px}.sound-button span{opacity:0;white-space:nowrap;transition:opacity .18s}.sound-button:hover span,.sound-button:focus-visible span,.sound-button.is-on span{opacity:1}.floating-detail{z-index:6;max-width:min(300px,100% - 32px);color:var(--ink);opacity:0;pointer-events:none;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf5e9d1;border:1px solid #df963247;border-radius:18px;padding:13px 15px;font-size:.92rem;transition:opacity .18s,transform .18s;position:absolute;bottom:82px;right:16px;transform:translateY(12px)}.floating-detail.is-visible{opacity:1;transform:translateY(0)}.hero-loader{z-index:10;background:radial-gradient(circle at 50% 40%, #fff8e8, var(--ivory-deep) 62%);color:var(--ink);place-items:center;display:grid;position:absolute;inset:0}.hero-loader div{text-align:center;gap:8px;display:grid}.hero-loader span{font-family:Georgia,Times New Roman,serif;font-size:2.3rem}.hero-loader strong{color:#4f4f4fc7;font-size:.88rem;font-weight:600}.hero-loader i{background:#5d5d5d29;border-radius:999px;width:min(210px,54vw);height:2px;position:absolute;top:calc(50% + 62px);overflow:hidden}.hero-loader i:after{content:"";background:var(--gold);width:45%;height:100%;animation:1.25s ease-in-out infinite loading-slide;display:block}.section{width:min(100% - 32px,1080px);margin:0 auto;padding:82px 0}.section h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.3rem,9vw,4.4rem);font-weight:400;line-height:1}.section p{color:var(--muted);font-size:1rem;line-height:1.8}.story-grid,.section-heading-row{gap:28px;display:grid}.lead{max-width:650px}.name-panel{border-left:1px solid var(--line);color:var(--green);align-content:center;gap:8px;padding-left:22px;font-size:.98rem;display:grid}.name-panel em{color:var(--gold);font-family:Georgia,Times New Roman,serif;font-size:1.9rem;font-style:normal}.deep-section{background:var(--ivory-deep);width:100%;max-width:none;color:var(--ink);padding-left:max(16px,50% - 540px);padding-right:max(16px,50% - 540px)}.deep-section p{color:#4f4f4fbd}.timeline{gap:12px;margin-top:34px;display:grid}.timeline-item{background:#fbf5e96b;border:1px solid #5d5d5d24;border-radius:8px;grid-template-columns:minmax(88px,.45fr) 1fr;align-items:center;gap:18px;padding:18px;display:grid}.timeline-item time{color:var(--gold);font-weight:900}.timeline-item span{color:#4f4f4fdb}.notes-section{gap:28px;display:grid}.notes-grid{gap:12px;display:grid}.notes-grid article{border-top:1px solid var(--line);grid-template-columns:32px 1fr;align-items:start;gap:3px 14px;padding:18px 0;display:grid}.notes-grid svg{color:var(--gold);grid-row:span 2}.notes-grid span{color:var(--muted)}.venue-section{padding-top:28px}.map-frame{border:1px solid var(--line);height:clamp(330px,58vw,500px);box-shadow:var(--shadow);border-radius:8px;margin-top:32px;overflow:hidden}.map-frame iframe{filter:saturate(.78)contrast(.98);border:0;width:100%;height:100%}.gallery-section{background:var(--paper);width:100%;max-width:none;padding-left:max(16px,50% - 540px);padding-right:max(16px,50% - 540px)}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:28px;display:grid}.gallery-slot{background:linear-gradient(135deg,#df96325c,#f6efe22e),url(/images/wedding-preview.png) 50%/cover;border-radius:8px;min-height:180px;position:relative;overflow:hidden}.gallery-slot:after{content:"";border:1px solid #fff8e859;position:absolute;inset:14px}.gallery-slot span{opacity:.86;background:radial-gradient(circle,#f6d5cc,#d7b760 54%,#0000 56%);border-radius:999px;width:44px;height:44px;position:absolute;bottom:18px;right:18px}.slot-2,.slot-5{background-position:48% 58%}.slot-3,.slot-6{background-position:62%}.rsvp-section{justify-items:start;max-width:780px;padding-bottom:112px;display:grid}.rsvp-section p{max-width:650px}@keyframes loading-slide{0%{transform:translate(-100%)}to{transform:translate(230%)}}@media (min-width:760px){.site-nav{padding-right:10px;top:18px}.desktop-links{display:flex}.menu-button,.mobile-panel{display:none}.story-grid,.section-heading-row,.notes-section{grid-template-columns:1.1fr .9fr;align-items:end}.section-heading-row{align-items:center}.section-heading-row .button{justify-self:end}.notes-grid{grid-template-columns:1fr}.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-slot{min-height:240px}.gallery-slot:first-child,.gallery-slot:nth-child(5){min-height:310px}}@media (max-width:520px){.button{width:100%}.sound-button{bottom:14px;right:14px}.floating-detail{bottom:76px;right:14px}.timeline-item{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.001ms!important;animation-duration:.001ms!important;animation-iteration-count:1!important}}.game-shell{background:var(--ivory);min-height:100vh;color:var(--ink)}.game-hero{isolation:isolate;background:var(--ivory-deep);min-height:100svh;color:var(--ink);position:relative;overflow:hidden}.game-background{z-index:-2;background:linear-gradient(#f6efe2b8,#f6efe26b 42%,#eadcc7db),url(/images/wedding-preview.png) 50%/cover no-repeat;position:absolute;inset:0;transform:scale(1.02)}.game-background:after{content:"";background:radial-gradient(circle at 20% 22%,#f0d8c242,#0000 22%),radial-gradient(circle at 77% 18%,#df96322e,#0000 24%),linear-gradient(90deg,#fbf5e9b8,#0000 34%,#fbf5e980);position:absolute;inset:0}.game-topbar{z-index:20;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbf5e9db;border:1px solid #df963242;border-radius:999px;justify-content:space-between;align-items:center;width:min(100% - 28px,1100px);min-height:54px;padding:8px;display:flex;position:fixed;top:12px;left:50%;transform:translate(-50%);box-shadow:0 18px 54px #6f522e29}.game-mark{min-width:44px;height:38px;color:var(--ink);border-radius:999px;place-items:center;font-family:Georgia,Times New Roman,serif;font-weight:700;display:inline-grid}.game-actions{gap:6px;display:flex}.game-actions a,.game-actions button{width:38px;height:38px;color:var(--ink);cursor:pointer;background:#df963224;border:0;border-radius:999px;place-items:center;display:inline-grid}.game-layout{align-items:end;gap:22px;width:min(100% - 32px,1120px);min-height:48svh;margin:0 auto;padding:96px 0 24px;display:grid}.game-intro h1{text-shadow:0 8px 32px #fff8e8a3;max-width:760px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(4rem,17vw,8.2rem);font-weight:400;line-height:.88}.game-intro p:not(.eyebrow){color:#4f4f4fd6;max-width:560px;font-size:1rem;line-height:1.65}.game-cta-row{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.game-reset{color:var(--ink);background:#fbf5e9b3;border:1px solid #5d5d5d2e}.game-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbf5e9bd;border:1px solid #df96323d;border-radius:8px;align-self:end;gap:8px;padding:18px;display:grid;box-shadow:0 22px 60px #6f522e24}.game-card-icon{width:40px;height:40px;color:var(--gold);background:#df963229;border-radius:999px;place-items:center;display:inline-grid}.game-card p,.game-card strong,.game-card small{margin:0}.game-card p{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:.76rem;font-weight:900}.game-card strong{font-family:Georgia,Times New Roman,serif;font-size:2rem;font-weight:400}.game-card small{color:#4f4f4fc2;font-size:.92rem;line-height:1.55}.game-board-wrap{width:min(100% - 24px,1120px);margin:0 auto;padding-bottom:94px}.game-board{touch-action:manipulation;background:radial-gradient(circle at 50% 42%,#fff8e875,#0000 30%),linear-gradient(#fbf5e99e,#eadcc7b8);border:1px solid #df96323d;border-radius:8px;height:clamp(360px,46svh,560px);position:relative;overflow:hidden;box-shadow:inset 0 0 70px #6f522e1a,0 28px 80px #6f522e2e}.game-board canvas{position:absolute;inset:0;width:100%!important;height:100%!important}.game-board.is-fallback{background:radial-gradient(circle at 50% 42%,#fff8e875,#0000 30%),linear-gradient(#fbf5e99e,#eadcc7b8),url(/images/wedding-preview.png) 50%/cover no-repeat}.game-scene-loader{color:#4f4f4fd1;letter-spacing:.14em;text-transform:uppercase;place-items:center;font-size:.84rem;font-weight:800;display:grid;position:absolute;inset:0}.game-board:before,.game-board:after{content:"";background:radial-gradient(circle,#e8b8ad52,#c9a24f1f 36%,#0000 62%);border-radius:999px;width:270px;height:270px;position:absolute;bottom:-70px}.game-board:before{left:-80px}.game-board:after{right:-80px}.poruwa-stage{color:#4f4f4fcc;letter-spacing:.12em;text-transform:uppercase;background:linear-gradient(#f6e3b73d,#c9a24f26);border:1px solid #f6e3b766;border-radius:8px;place-items:center;width:min(330px,58%);height:116px;font-family:Georgia,Times New Roman,serif;display:grid;position:absolute;bottom:13%;left:50%;transform:translate(-50%)}.poruwa-stage span{border:6px solid #f6e3b770;border-bottom:0;border-radius:120px 120px 0 0;width:78%;height:92px;position:absolute;top:-84px}.charm{left:var(--x);top:var(--y);z-index:3;width:var(--size);height:var(--size);color:var(--ink);cursor:pointer;animation:3.4s ease-in-out infinite charm-float;animation-delay:var(--delay);background:radial-gradient(circle at 35% 28%,#fff8e8,#f2cf82 36%,#b88734 70%);border:1px solid #fff8e894;border-radius:999px;place-items:center;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #c9a24f1a,0 0 34px #f6d382a3}.charm.is-found{background:radial-gradient(circle at 35% 28%,#fff8e8,#f0d8c2 42%,#df9632 74%);box-shadow:0 0 0 8px #df96321f,0 0 30px #f0d8c285}.progress-panel{z-index:20;width:min(300px,100% - 28px);color:var(--ink);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf5e9db;border:1px solid #df96323d;border-radius:8px;gap:8px;padding:12px;display:grid;position:fixed;bottom:14px;right:14px}.progress-panel div{justify-content:space-between;align-items:center;gap:12px;display:flex}.progress-panel span{color:#4f4f4fb8;font-size:.82rem}.progress-panel meter{width:100%;height:8px}.reveal-section{width:min(100% - 32px,1120px);margin:0 auto;padding:82px 0 112px}.reveal-section h2{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.5rem,10vw,5rem);font-weight:400;line-height:.96}.reveal-grid{gap:12px;margin-top:30px;display:grid}.reveal-grid article{border:1px solid var(--line);color:#17251c75;background:#5d5d5d0d;border-radius:8px;align-content:start;gap:8px;min-height:180px;padding:18px;display:grid}.reveal-grid article.unlocked{color:var(--ink);box-shadow:var(--shadow);background:#fff9ef}.reveal-grid span{width:38px;height:38px;color:var(--gold);background:#c9a24f24;border-radius:999px;place-items:center;display:inline-grid}.reveal-grid p,.reveal-grid strong,.reveal-grid small{margin:0}.reveal-grid p{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;font-weight:900}.reveal-grid strong{font-family:Georgia,Times New Roman,serif;font-size:1.75rem;font-weight:400}.reveal-grid small{color:var(--muted);line-height:1.55}.final-actions{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}@keyframes charm-float{0%,to{transform:translate(-50%,-50%)translate(0,0)rotate(0)}50%{transform:translate(-50%,-50%)translate(10px,-14px)rotate(7deg)}}@media (min-width:800px){.game-layout{grid-template-columns:minmax(0,1.1fr) minmax(300px,.55fr);padding-top:116px}.game-card{margin-bottom:16px}.reveal-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (max-width:620px){.game-layout{min-height:auto}.game-cta-row .button,.final-actions .button{width:100%}.game-board-wrap{width:min(100% - 18px,1120px)}.game-board{height:430px}.charm{min-width:48px;min-height:48px}.progress-panel{width:auto;left:14px;right:14px}}.admin-shell{background:radial-gradient(circle at 18% 12%, #e8b8ad33, transparent 28%), radial-gradient(circle at 88% 10%, #c9a24f29, transparent 24%), var(--ivory);min-height:100vh;color:var(--ink);padding:28px}.admin-login{border:1px solid var(--line);width:min(100%,460px);box-shadow:var(--shadow);background:#fff9efdb;border-radius:8px;gap:16px;margin:12vh auto;padding:clamp(24px,5vw,38px);display:grid}.admin-login>span{width:46px;height:46px;color:var(--gold);background:#c9a24f24;border-radius:999px;place-items:center;display:inline-grid}.admin-login h1{margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,9vw,4rem);font-weight:400;line-height:.96}.admin-login form{gap:10px;display:grid}.admin-login label{color:var(--green);font-weight:800}.admin-login input{border:1px solid var(--line);min-height:48px;color:var(--ink);font:inherit;background:#fffbf3;border-radius:8px;padding:0 14px}.admin-login form p{color:#9f2f2f;margin:0;font-weight:800}.admin-login small{color:var(--muted);line-height:1.55}.admin-pdf-shell{gap:22px;display:grid}.admin-toolbar{justify-content:space-between;align-items:center;gap:14px;width:min(100%,980px);margin:0 auto;display:flex}.admin-toolbar>div{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-builder{align-items:start;gap:24px;width:min(100%,1280px);margin:0 auto;display:grid}.pdf-form{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff9efe0;border-radius:8px;gap:18px;padding:clamp(18px,4vw,28px);display:grid}.pdf-form h1{color:var(--green);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.2rem,8vw,3.5rem);font-weight:400;line-height:.96}.pdf-form fieldset{border:1px solid #5d5d5d24;border-radius:8px;gap:12px;min-width:0;margin:0;padding:14px;display:grid}.pdf-form legend{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;padding:0 8px;font-size:.76rem;font-weight:900}.pdf-form label{gap:6px;display:grid}.pdf-form label span{color:var(--green);font-size:.86rem;font-weight:800}.pdf-form input,.pdf-form textarea{border:1px solid var(--line);width:100%;min-height:42px;color:var(--ink);font:inherit;background:#fffbf3;border-radius:8px;padding:10px 12px}.pdf-form textarea{resize:vertical;line-height:1.5}.pdf-form-actions{flex-wrap:wrap;gap:10px;display:flex}.pdf-form small{color:var(--muted)}.invite-link-list{gap:10px;display:grid}.invite-link-list div{background:#fffbf3b8;border:1px solid #5d5d5d1f;border-radius:8px;gap:5px;padding:10px;display:grid}.invite-link-list span{color:var(--green);font-weight:800}.invite-link-list a{min-width:0;color:var(--muted);overflow-wrap:anywhere;word-break:break-word;align-items:center;gap:6px;font-size:.86rem;display:inline-flex}.personal-invite-shell{background:radial-gradient(circle at 18% 12%, #e8b8ad33, transparent 28%), radial-gradient(circle at 88% 10%, #c9a24f29, transparent 24%), var(--ivory);place-items:center;min-height:100vh;padding:28px;display:grid}.personal-invite-card{width:min(100%,860px);min-height:min(1000px,100vh - 56px);color:var(--green);text-align:center;box-shadow:var(--shadow);background:linear-gradient(#fffbf3eb,#fbf5e9f5),url(/images/wedding-preview.png) 50%/cover;border:1px solid #5d5d5d33;align-content:center;gap:18px;padding:clamp(42px,8vw,88px);display:grid;position:relative;overflow:hidden}.personal-invite-card:before{content:"";pointer-events:none;border:1px solid #c9a24f70;position:absolute;inset:28px}.personal-invite-card>*{z-index:1;position:relative}.personal-invite-card p{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.9rem;font-weight:900}.personal-invite-card h1{color:var(--green);margin:0;font-family:Snell Roundhand,cursive;font-size:clamp(4rem,14vw,7rem);font-weight:400;line-height:.92}.personal-invite-card h2{color:var(--ink);margin:0;font-family:Georgia,serif;font-size:clamp(1.8rem,6vw,2.4rem);font-weight:400}.personal-invite-card dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;width:min(100%,620px);margin:12px auto 0;display:grid}.personal-invite-card dl div{border-bottom:1px solid #5d5d5d1f;padding-bottom:12px}.personal-invite-card dt{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:900}.personal-invite-card dd{color:var(--ink);margin:4px 0 0}.personal-invite-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:10px;display:flex}@media (max-width:620px){.personal-invite-shell{padding:14px}.personal-invite-card{min-height:calc(100vh - 28px)}.personal-invite-card dl{grid-template-columns:1fr}.personal-invite-actions .button{width:100%}}.pdf-preview{place-items:center;gap:22px;padding:12px 0;display:grid}.pdf-card{width:min(100%,794px);min-height:1123px;color:var(--green);text-align:center;box-shadow:var(--shadow);page-break-after:always;break-after:page;background:linear-gradient(#fffbf3eb,#fbf5e9f5),url(/images/wedding-preview.png) 50%/cover;border:1px solid #5d5d5d33;align-content:center;gap:18px;padding:88px 74px;display:grid;position:relative;overflow:hidden}.pdf-card:last-child{page-break-after:auto;break-after:auto}.pdf-card:before{content:"";pointer-events:none;border:1px solid #c9a24f70;position:absolute;inset:28px}.pdf-card>*{z-index:1;position:relative}.pdf-card p{color:var(--gold);letter-spacing:.18em;text-transform:uppercase;margin:0;font-size:.9rem;font-weight:900}.pdf-card h1{color:var(--green);margin:0;font-family:Snell Roundhand,cursive;font-size:6rem;font-weight:400;line-height:.92}.pdf-guest{color:var(--muted);font-family:Georgia,serif;font-size:1.3rem}.pdf-card h2{color:var(--ink);margin:0;font-family:Georgia,serif;font-size:2.1rem;font-weight:400}.pdf-divider{background:var(--gold);width:160px;height:1px;margin:16px auto}.pdf-card dl{gap:14px;width:min(100%,520px);margin:12px auto 0;display:grid}.pdf-card dl div{border-bottom:1px solid #5d5d5d1f;gap:4px;padding-bottom:12px;display:grid}.pdf-card dt{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;font-weight:900}.pdf-card dd{color:var(--ink);margin:0;font-size:1.12rem}.pdf-map-link{color:var(--green);overflow-wrap:anywhere;text-underline-offset:3px;font-size:.86rem;-webkit-text-decoration:underline #c9a24fb8;text-decoration:underline #c9a24fb8}.pdf-note{width:min(100%,520px);line-height:1.7;color:var(--muted)!important;letter-spacing:0!important;text-transform:none!important;margin:18px auto 0!important;font-size:.95rem!important;font-weight:500!important}.pdf-names{color:var(--green);margin-top:12px;font-family:Georgia,serif;font-size:1.15rem}.pdf-ornament{opacity:.72;border:1px solid #c9a24f6b;border-left:0;border-right:0;width:220px;height:70px;position:absolute;left:50%;transform:translate(-50%)}.pdf-ornament.top{top:54px}.pdf-ornament.bottom{bottom:54px}.pdf-help{width:fit-content;color:var(--muted);align-items:center;gap:8px;margin:0 auto;font-size:.92rem;display:inline-flex}.pdf-card,.personal-invite-card{color:#101816;background:#fbfaeb;border:1px solid #5d5d5d1f;gap:16px;font-family:Georgia,serif;box-shadow:0 22px 46px #11221829}.pdf-card{padding:104px 78px}.personal-invite-card{padding:clamp(58px,8vw,104px)}.pdf-card:before,.personal-invite-card:before{border:1px solid #df96322e;inset:22px}.pdf-overline,.pdf-subline,.pdf-card p,.personal-invite-card p{color:#101816;letter-spacing:.22em;text-transform:uppercase;font-size:.78rem;font-weight:900}.pdf-card h1,.personal-invite-card h1{color:#0d1111;margin:8px 0 6px;font-family:Snell Roundhand,cursive;font-weight:400;line-height:.82}.pdf-card h1{font-size:6.7rem}.personal-invite-card h1{font-size:clamp(4.2rem,14vw,7.4rem)}.pdf-date-block{grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;width:min(100%,430px);margin:8px auto 0;display:grid}.pdf-date-block:before,.pdf-date-block:after{content:"";background:#101816;height:2px}.pdf-date-block span,.pdf-date-block strong{color:#101816;letter-spacing:.18em;text-transform:uppercase;font-weight:900;display:block}.pdf-date-block strong{letter-spacing:.16em;grid-column:1/-1;font-size:1.05rem}.pdf-divider{background:#df96325c;width:92px;margin:10px auto}.pdf-card dt,.personal-invite-card dt{color:var(--gold)}.pdf-floral{z-index:0;opacity:.96;pointer-events:none;width:230px;height:230px;position:absolute}.pdf-floral:before{content:"";filter:saturate(.92);background:radial-gradient(circle at 24% 35%,#f3b2a3 0 10%,#0000 11%),radial-gradient(circle at 34% 28%,#f8d7cc 0 8%,#0000 9%),radial-gradient(circle at 47% 38%,#e99a8a 0 7%,#0000 8%),radial-gradient(circle at 32% 52%,#d4a15f 0 9%,#0000 10%),radial-gradient(at 58% 46%,#bf8b4e 0 8%,#0000 9%),radial-gradient(at 44% 66%,#c99d6c 0 7%,#0000 8%),linear-gradient(48deg,#0000 47%,#bf8b4ea3 48% 51%,#0000 52%),linear-gradient(130deg,#0000 46%,#bf8b4e94 47% 50%,#0000 51%);position:absolute;inset:0}.floral-tl{top:18px;left:18px}.floral-tr{top:18px;right:18px;transform:scaleX(-1)}.floral-bl{bottom:16px;left:18px;transform:scaleY(-1)}.floral-br{bottom:16px;right:18px;transform:scale(-1)}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff;width:210mm;height:297mm}.admin-shell{background:#fff;min-height:0;padding:0}.admin-toolbar,.pdf-form,.pdf-help{display:none!important}.admin-builder{width:auto;margin:0;display:block}.pdf-preview{padding:0;display:block}.pdf-card{width:210mm;min-height:297mm;box-shadow:none;-webkit-print-color-adjust:exact;print-color-adjust:exact;border:0}}.pdf-card,.personal-invite-card{aspect-ratio:2/3;color:#111;background:linear-gradient(135deg,#fff3ec,#fbe3d7);min-height:auto;font-family:Georgia,serif;overflow:hidden;box-shadow:0 14px 28px #00000047}.pdf-card{width:min(100%,794px);padding:14% 12% 9%}.personal-invite-card{width:min(100%,430px);min-height:auto;padding:18% 12% 10%}.pdf-card:before,.personal-invite-card:before{display:none}.marble-top,.marble-right,.marble-bottom{z-index:0;pointer-events:none;opacity:.75;filter:blur(.2px);background:radial-gradient(circle at 25% 30%,#b5a6e073,#0000 34%),radial-gradient(circle at 70% 55%,#f6a69061,#0000 36%),linear-gradient(135deg,#0000 35%,#dbb55cd9 37%,#0000 41%);position:absolute}.marble-top{width:100%;height:30%;top:0;left:0}.marble-right{width:45%;height:46%;top:24%;right:-8%}.marble-bottom{width:100%;height:35%;bottom:-4%;left:0}.invite-floral{z-index:1;pointer-events:none;width:100%;position:absolute;left:0}.invite-floral-top{top:0}.invite-floral-bottom{bottom:0}.pdf-card>:not(.marble-top):not(.marble-right):not(.marble-bottom):not(.invite-floral),.personal-invite-card>:not(.marble-top):not(.marble-right):not(.marble-bottom):not(.invite-floral){z-index:2;position:relative}.pdf-card .pdf-overline,.personal-invite-card .pdf-overline{color:#111;letter-spacing:.08em;margin-bottom:24px;font-size:clamp(13px,2vw,17px);font-weight:700;line-height:1.25}.pdf-card .pdf-guest,.personal-invite-card .pdf-guest{color:#111;margin-bottom:10px;font-size:clamp(15px,2.8vw,19px)}.pdf-card h1,.personal-invite-card h1{color:#111;margin:0;font-family:Snell Roundhand,cursive;font-size:clamp(38px,8vw,64px);font-weight:400;line-height:1.05}.pdf-card .pdf-subline,.personal-invite-card .pdf-subline{color:#111;letter-spacing:0;text-transform:none;margin:34px 0 24px;font-family:Georgia,serif;font-size:clamp(18px,4vw,25px);font-weight:400;line-height:1.25}.pdf-date-block{justify-content:center;gap:0;width:auto;margin:0 0 16px;display:flex}.pdf-date-block:before,.pdf-date-block:after{display:none}.pdf-date-block span,.pdf-date-block strong{color:#111;letter-spacing:0;text-transform:none;font-size:clamp(18px,4vw,24px);font-weight:400}.pdf-date-block span:after{content:"";vertical-align:middle;background:#111;width:1px;height:32px;margin:0 16px;display:inline-block}.pdf-date-block strong{grid-column:auto}.pdf-divider{display:none}.pdf-card dl,.personal-invite-card dl{gap:7px;margin-top:6px}.pdf-card dl div,.personal-invite-card dl div{border-bottom:0;padding-bottom:0}.pdf-card dt,.personal-invite-card dt{color:#111;letter-spacing:.12em;font-size:.62rem}.pdf-card dd,.personal-invite-card dd{color:#111;font-size:.9rem}.pdf-note,.pdf-names{color:#111!important}@media print{.pdf-card{aspect-ratio:auto;width:210mm;height:297mm;min-height:auto;padding:38mm 25mm 28mm}}.world-shell{background:var(--ivory);min-height:100vh;color:var(--ink)}.world-scroll{min-height:600svh;position:relative}.world-canvas{z-index:0;background:var(--ivory-deep);height:100svh;position:sticky;top:0;overflow:hidden}.world-canvas canvas{display:block;width:100%!important;height:100%!important}.world-vignette{pointer-events:none;background:radial-gradient(circle at 50% 42%,#df96321f,#0000 34%),linear-gradient(90deg,#fbf5e99e,#fbf5e92e 42%,#eadcc780),linear-gradient(#fbf5e94d,#0000 42%,#eadcc794);position:absolute;inset:0}.world-loader{z-index:2;background:radial-gradient(circle at 50% 45%, #fff8e8, var(--ivory-deep) 62%);color:#4f4f4fd1;letter-spacing:.16em;text-transform:uppercase;place-items:center;font-size:.82rem;font-weight:900;display:grid;position:absolute;inset:0}.world-progress{z-index:35;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#fbf5e9db;border:1px solid #df96323d;border-radius:8px;gap:8px;width:min(250px,100% - 28px);padding:12px;display:grid;position:fixed;bottom:14px;right:14px}.world-progress span{color:#4f4f4fd1;font-size:.84rem;font-weight:800}.world-progress meter{width:100%;height:8px}.world-chapters{z-index:5;margin-top:-100svh;position:relative}.world-chapter{align-items:center;width:min(100% - 32px,1100px);min-height:100svh;margin:0 auto;padding:104px 0 92px;display:grid}.world-chapter:nth-child(2n){justify-items:end}.world-card{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#fbf5e9d1;border:1px solid #df963247;border-radius:8px;gap:10px;width:min(100%,430px);padding:clamp(18px,4vw,28px);display:grid;box-shadow:0 24px 72px #6f522e2e}.world-card.is-unlocked{background:#fbf5e9f0}.world-card-icon{width:42px;height:42px;color:var(--gold);background:#df963229;border-radius:999px;place-items:center;display:inline-grid}.world-card p,.world-card h1,.world-card small{margin:0}.world-card p{color:var(--gold);letter-spacing:.14em;text-transform:uppercase;font-size:.76rem;font-weight:900}.world-guest-name,.world-final-guest{color:#4f4f4fd6;font-family:Georgia,Times New Roman,serif;font-size:1.3rem}.world-final-guest{color:var(--muted);margin-bottom:10px}.world-card h1{color:var(--ink);text-shadow:0 6px 28px #fff8e8ad;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.6rem,10vw,5rem);font-weight:400;line-height:.94}.world-card small{color:#4f4f4fc7;font-size:.98rem;line-height:1.65}.world-card-footer{border-top:1px solid #5d5d5d29;justify-content:space-between;align-items:center;gap:12px;margin-top:8px;padding-top:12px;display:flex}.world-card-footer span,.world-card-footer a{color:#4f4f4fc7;font-size:.82rem;font-weight:800}.world-card-footer a{background:var(--gold);color:#fff8e8;border-radius:999px;padding:8px 13px}.fallback-world{background:linear-gradient(#fbf5e947,#eadcc7b8),url(/images/wedding-preview.png) 50%/cover no-repeat;position:absolute;inset:0}.fallback-charm{width:54px;height:54px;color:var(--ink);cursor:pointer;background:radial-gradient(circle at 35% 28%,#fff8e8,#f2cf82 36%,#b88734 70%);border:1px solid #fff8e894;border-radius:999px;place-items:center;animation:3.4s ease-in-out infinite charm-float;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 0 0 8px #c9a24f1a,0 0 34px #f6d382a3}.fallback-charm.is-active{width:68px;height:68px}.fallback-charm.is-found{background:radial-gradient(circle at 35% 28%,#fff8e8,#f0d8c2 42%,#df9632 74%)}.world-final{background:var(--ivory);width:min(100% - 32px,1120px);color:var(--ink);gap:30px;margin:0 auto;padding:88px 0 112px;display:grid}.world-final h2{max-width:760px;margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.4rem,9vw,5rem);font-weight:400;line-height:.96}.world-final-grid{gap:12px;display:grid}.world-final-grid article{border:1px solid var(--line);color:#17251c75;background:#5d5d5d0d;border-radius:8px;align-content:start;gap:8px;min-height:178px;padding:18px;display:grid}.world-final-grid article.is-unlocked{color:var(--ink);box-shadow:var(--shadow);background:#fff9ef}.world-final-grid span{width:38px;height:38px;color:var(--gold);background:#c9a24f24;border-radius:999px;place-items:center;display:inline-grid}.world-final-grid p,.world-final-grid strong,.world-final-grid small{margin:0}.world-final-grid p{color:var(--gold);letter-spacing:.12em;text-transform:uppercase;font-size:.74rem;font-weight:900}.world-final-grid strong{font-family:Georgia,Times New Roman,serif;font-size:1.75rem;font-weight:400}.world-final-grid small{color:var(--muted);line-height:1.55}.world-final-actions{flex-wrap:wrap;gap:10px;display:flex}@media (min-width:820px){.world-final-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-builder{grid-template-columns:minmax(320px,.42fr) minmax(0,.58fr)}.pdf-form{max-height:calc(100vh - 40px);position:sticky;top:20px;overflow:auto}}@media (max-width:620px){.world-chapter{align-items:end;width:min(100% - 24px,1100px);padding-bottom:112px}.world-chapter:nth-child(2n){justify-items:start}.world-card{width:100%}.world-progress{width:auto;bottom:10px;left:10px;right:10px}.world-final-actions .button{width:100%}.admin-shell{padding:18px}.admin-toolbar{align-items:flex-start}.admin-toolbar>div,.pdf-form-actions,.admin-toolbar .button,.pdf-form-actions .button{width:100%}.pdf-card{min-height:980px;padding:72px 26px}.pdf-card h1{font-size:4rem}}.invite-page{min-height:100svh;color:var(--ink);background:radial-gradient(circle at 20% 16%,#df963229,#0000 26%) 0 0/46px 46px,radial-gradient(circle at 82% 12%,#f0d8c247,#0000 24%) 0 0/46px 46px,linear-gradient(135deg,#fbf5e9 0%,#f6efe2 48%,#eadcc7 100%);place-items:center;padding:clamp(112px,12vw,150px) clamp(16px,3vw,38px) clamp(16px,3vw,38px);display:grid}.invite-card{isolation:isolate;background:#fbf5e9;border:1px solid #f6e3b752;border-radius:8px;width:min(100vw - 32px,559px);font-family:Georgia,serif;display:grid;position:relative;overflow:hidden;box-shadow:0 28px 80px #00000057}.invite-card:before,.invite-card:after{content:none}.invite-ui{width:100%;height:auto;display:block}.invite-venue-hotspot{z-index:3;color:#0000;cursor:pointer;border-radius:10px;width:40%;height:12%;text-decoration:none;display:block;position:absolute;top:72%;left:53%;overflow:hidden}.invite-venue-hotspot:focus-visible{outline-offset:4px;outline:2px solid #df9632f2}.invite-art{z-index:1;object-fit:cover;opacity:.88;pointer-events:none;-webkit-user-select:none;user-select:none;width:116%;height:48%;position:absolute;left:-8%}.invite-art-top{object-position:top center;opacity:.78;top:0}.invite-art-bottom{object-position:bottom center;z-index:1;opacity:.94;height:54%;bottom:-3%}.invite-content{z-index:2;text-align:center;align-content:center;justify-items:center;row-gap:6px;min-height:100%;padding:clamp(118px,24svh,184px) clamp(28px,7vw,58px) clamp(126px,22svh,178px);display:grid;position:relative}.invite-kicker,.invite-parents,.invite-greeting,.invite-request,.invite-host,.invite-date,.invite-note{margin:0}.invite-kicker{color:var(--gold);letter-spacing:.22em;text-transform:uppercase;font-size:.7rem;font-weight:800}.invite-parents{width:min(100%,520px);color:var(--green);letter-spacing:.16em;text-transform:uppercase;font-family:Georgia,serif;font-size:.84rem;font-weight:800;line-height:1.34}.invite-parents-together{color:var(--gold);letter-spacing:.22em;font-size:.74rem}.invite-greeting{color:var(--green);margin-top:4px;font-family:Georgia,serif;font-size:clamp(1.04rem,2.6vw,1.22rem)}.invite-request{width:min(100%,480px);color:var(--muted);letter-spacing:.14em;text-transform:uppercase;margin-top:2px;font-family:Georgia,serif;font-size:.74rem;font-weight:700;line-height:1.42}.invite-couple{color:var(--green);text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.24em;margin:10px 0 0;font-family:Snell Roundhand,cursive;font-size:clamp(2.85rem,10vw,4.8rem);font-weight:400;line-height:.95;display:flex}.invite-couple span:nth-child(2){color:var(--gold);margin:0 .05em;font-size:.52em;line-height:1}.invite-host{width:min(100%,470px);color:var(--ink);margin-top:8px;font-family:Georgia,serif;font-size:clamp(.92rem,2.5vw,1.06rem);line-height:1.32}.invite-date{width:min(100%,480px);color:var(--green);grid-template-columns:1fr auto 1fr;align-items:center;gap:12px;margin-top:18px;display:grid}.invite-date strong{letter-spacing:.06em;text-transform:uppercase;border-left:1px solid #5d5d5d6b;border-right:1px solid #5d5d5d6b;padding:2px 16px;font-family:Georgia,serif;font-size:clamp(1rem,3vw,1.2rem);font-weight:800}.invite-date span{letter-spacing:.08em;text-transform:uppercase;font-family:Georgia,serif;font-size:.86rem;font-weight:700}.invite-details{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;width:min(100%,500px);margin-top:20px;display:grid}.invite-details div{background:#fff8e8bd;border:1px solid #5d5d5d2e;border-radius:8px;align-content:center;justify-items:center;gap:8px;min-height:118px;padding:14px 10px;display:grid}.invite-venue-link{min-height:118px;color:inherit;background:#fff8e8bd;border:1px solid #5d5d5d2e;border-radius:8px;align-content:center;justify-items:center;gap:8px;padding:14px 10px;text-decoration:none;display:grid}.invite-venue-link:focus-visible{outline-offset:3px;outline:2px solid #c9a24feb}.invite-details svg,.invite-venue-link svg{color:var(--gold)}.invite-details span{color:#9a7936;letter-spacing:.14em;text-transform:uppercase;font-family:Georgia,serif;font-size:.68rem;font-weight:900}.invite-details strong{color:var(--green);font-family:Georgia,serif;font-size:1rem;font-weight:400;line-height:1.2}.invite-note{color:var(--muted);margin-top:18px;font-family:Georgia,serif;font-size:.9rem;line-height:1.38}.invite-actions{z-index:42;width:54px;height:54px;display:block;position:fixed;bottom:clamp(96px,10vw,140px);right:clamp(18px,4vw,30px);overflow:visible}.invite-action{background:var(--gold);color:#fffdf8;width:44px;height:44px;font:inherit;cursor:pointer;opacity:0;pointer-events:none;border:1px solid #ffffff5c;border-radius:999px;justify-content:center;align-items:center;padding:0;transition:opacity .18s,transform .18s,background .18s,box-shadow .18s;display:inline-flex;position:absolute;bottom:0;left:50%;transform:translate(-50%)translateY(0)scale(.72);box-shadow:0 10px 24px #00000038}.invite-action:nth-child(2){background:var(--gold);--action-lift:62px;transition-delay:0s}.invite-action:nth-child(3){color:var(--green);--action-lift:124px;background:#fbf5e9;border-color:#5d5d5d33;transition-delay:45ms}.invite-action:nth-child(4){background:var(--rose);color:var(--green);--action-lift:186px;transition-delay:90ms}.invite-action.invite-action-pdf{background:var(--gold);color:#fffdf8}.invite-action:disabled{cursor:wait}.invite-action[aria-busy=true]{opacity:1}.invite-action-spinner{border:2px solid #fffdf86b;border-top-color:#fffdf8;border-radius:999px;width:18px;height:18px;animation:.76s linear infinite invite-action-spin}@keyframes invite-action-spin{to{transform:rotate(360deg)}}.pdf-download-loader{z-index:80;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:radial-gradient(circle at 32% 22%,#df963229,#0000 32%),#fbf5e9c2;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.pdf-download-loader-card{min-width:min(280px,86vw);color:var(--ink);text-align:center;background:#fffdf8eb;border:1px solid #df963252;border-radius:28px;justify-items:center;gap:12px;padding:28px 30px;display:grid;box-shadow:0 24px 70px #6f522e33}.pdf-download-loader-card p{color:var(--green);margin:2px 0 0;font-family:Georgia,Times New Roman,serif;font-size:1.08rem;font-weight:700}.pdf-download-loader-card span:not(.pdf-download-loader-spinner){color:#4f4f4fb8;font-size:.88rem}.pdf-download-loader-spinner{border:4px solid #df96323d;border-top-color:var(--gold);border-radius:999px;width:46px;height:46px;animation:.76s linear infinite invite-action-spin}.pdf-download-loader-actions{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.pdf-download-share-button{background:var(--gold);color:#fffdf8;font:inherit;cursor:pointer;border:0;border-radius:999px;padding:12px 18px;font-weight:800;box-shadow:0 12px 28px #6f522e2e}.pdf-download-cancel-button{color:var(--ink);font:inherit;cursor:pointer;background:#fbf5e9e0;border:1px solid #4f4f4f29;border-radius:999px;padding:12px 18px;font-weight:800}.invite-actions[open] .invite-action{opacity:1;pointer-events:auto;transform:translateX(-50%) translateY(calc(-1 * var(--action-lift,0px))) scale(1)}.invite-action:hover{transform:translateX(-50%) translateY(calc(-1 * var(--action-lift,0px))) scale(1);box-shadow:0 10px 24px #00000038}.invite-action-toggle{background:var(--gold);color:#fffdf8;cursor:pointer;border:1px solid #ffffff57;border-radius:999px;justify-content:center;align-items:center;width:54px;height:54px;list-style:none;transition:background .18s,transform .18s;display:inline-flex;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 14px 34px #00000047}.invite-action-pdf{background:var(--gold)}.invite-actions[open] .invite-action-toggle{transform:translate(-50%)rotate(45deg)}.invite-action-toggle::-webkit-details-marker{display:none}.wallet-modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#4f4f4f47;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.wallet-toggle{opacity:0;pointer-events:none;position:absolute}.wallet-toggle:not(:checked)~.wallet-modal-backdrop{display:none}.wallet-toggle:not(:checked)~.wallet-launcher{display:inline-flex}.wallet-toggle:checked~.wallet-launcher{display:none}.wallet-modal{width:min(100%,520px);color:var(--ink);background:linear-gradient(#fffcf4fa,#fbf5e9fa),#fbf5e9;border:1px solid #c9a24f5c;border-radius:18px;gap:16px;padding:24px;display:grid;position:relative;box-shadow:0 30px 90px #00000057}.wallet-modal-close{width:34px;height:34px;color:var(--green);cursor:pointer;background:#ffffffb8;border:1px solid #5d5d5d1f;border-radius:999px;justify-content:center;align-items:center;display:inline-flex;position:absolute;top:14px;right:14px}.wallet-modal-badge{width:54px;height:54px;color:var(--green);background:#df96321f;border-radius:999px;justify-content:center;align-items:center;display:inline-flex}.wallet-modal-kicker{color:var(--gold);letter-spacing:.24em;text-transform:uppercase;margin:0;font-size:.72rem;font-weight:900}.wallet-modal h2{color:var(--green);margin:0;font-family:Georgia,serif;font-size:clamp(1.3rem,4vw,2rem);font-weight:400;line-height:1.15}.wallet-modal-copy{color:var(--muted);margin:0;font-family:Georgia,serif;font-size:.98rem;line-height:1.55}.wallet-modal-benefits{gap:10px;margin-top:2px;display:grid}.wallet-modal-benefits div{color:var(--ink);grid-template-columns:20px minmax(0,1fr);align-items:start;gap:10px;font-family:Georgia,serif;font-size:.92rem;line-height:1.4;display:grid}.wallet-modal-benefits svg{color:var(--gold);margin-top:2px}.wallet-modal-actions{flex-wrap:wrap;gap:10px;margin-top:4px;display:flex}.wallet-modal-primary{background:var(--gold);color:#fff8e8}.wallet-modal-secondary{color:var(--green);background:0 0;border:1px solid #5d5d5d29}.wallet-modal .button{flex:180px;min-width:0}.wallet-launcher{z-index:49;background:var(--gold);color:#fff8e8;cursor:pointer;border:1px solid #ffffff57;border-radius:999px;justify-content:center;align-items:center;width:58px;height:58px;display:inline-flex;position:fixed;bottom:clamp(18px,4vw,30px);right:clamp(18px,4vw,30px);box-shadow:0 16px 36px #0000003d}@media (max-width:560px){.invite-page{padding:86px 0 0}.invite-card{width:100%;box-shadow:none;border:0;border-radius:0}.invite-card:before{inset:10px}.invite-art{height:42%}.invite-content{padding:104px 22px 126px}.invite-parents{letter-spacing:.12em;width:min(100%,390px);font-size:.7rem}.invite-request{letter-spacing:.12em;width:min(100%,360px);font-size:.68rem;line-height:1.32}.invite-greeting{font-size:1rem}.invite-host{font-size:.88rem}.invite-date{grid-template-columns:1fr;gap:6px;margin-top:14px}.invite-date strong{border:0;padding:0}.invite-details{grid-template-columns:1fr;gap:8px;margin-top:16px}.invite-details div,.invite-venue-link{min-height:78px;padding:10px}.invite-details span{font-size:.6rem}.invite-details strong{font-size:.9rem}.invite-note{margin-top:12px;font-size:.82rem}.invite-actions{width:54px;height:54px;bottom:84px;right:14px}.wallet-modal{width:min(100%,420px);padding:22px 18px 18px}.wallet-modal .button{flex-basis:100%}.wallet-launcher{width:56px;height:56px;bottom:14px;right:14px}}@media print{@page{size:A4 portrait;margin:0}html,body{background:#fff;width:210mm;min-height:297mm;margin:0}body{-webkit-print-color-adjust:exact;print-color-adjust:exact}.site-nav,.invite-actions,.wallet-modal-backdrop,.wallet-launcher,.wallet-toggle{display:none!important}.invite-page{background:#fff;width:210mm;min-height:297mm;padding:0;display:block}.invite-card{width:210mm;height:297mm;box-shadow:none;page-break-after:avoid;break-after:avoid;-webkit-print-color-adjust:exact;print-color-adjust:exact;border:0;border-radius:0}.invite-card:before{content:none}.invite-ui{width:210mm;height:297mm}.invite-content{padding:48mm 22mm 42mm}.invite-couple{font-size:48pt}.invite-parents{letter-spacing:.12em;width:132mm;font-size:8.5pt}.invite-host{width:128mm}.invite-date,.invite-details{width:145mm}}.link-page{background:linear-gradient(90deg,#ffffff4d 1px,#0000 1px) 0 0/46px 46px,linear-gradient(#ffffff42 1px,#0000 1px) 0 0/46px 46px,linear-gradient(135deg,#f8efe1 0%,#f5e5db 42%,#edf1e8 100%);place-items:start center;min-height:100svh;padding:clamp(18px,4vw,48px);display:grid}.link-panel{background:#fffcf5e6;border:1px solid #5d5d5d24;border-radius:8px;gap:22px;width:min(100%,980px);padding:clamp(20px,4vw,38px);display:grid;box-shadow:0 24px 60px #3f2d1f29}.link-heading{align-items:center;gap:14px;display:flex}.link-heading>span{background:var(--gold);color:#fff8e8;border-radius:999px;justify-content:center;align-items:center;width:48px;height:48px;display:inline-flex}.link-kicker{color:var(--gold);letter-spacing:.2em;text-transform:uppercase;margin:0 0 5px;font-size:.74rem;font-weight:900}.link-heading h1{color:var(--ink);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2rem,5vw,3.25rem);font-weight:400;line-height:1}.link-input{color:var(--ink);gap:9px;font-weight:800;display:grid}.link-input textarea{resize:vertical;width:100%;min-height:230px;color:var(--ink);font:inherit;background:#fffdf8;border:1px solid #5d5d5d2e;border-radius:8px;outline:none;padding:14px;line-height:1.5}.link-input textarea:focus{border-color:#df9632b8;box-shadow:0 0 0 3px #df96321f}.link-summary{color:var(--muted);justify-content:space-between;align-items:center;gap:12px;font-weight:800;display:flex}.link-button,.icon-button{font:inherit;cursor:pointer;border:0;justify-content:center;align-items:center;font-weight:900;display:inline-flex}.link-button{background:var(--gold);color:#fff8e8;border-radius:999px;gap:8px;min-height:44px;padding:10px 18px}.link-button:disabled{opacity:.48;cursor:not-allowed}.guest-link-list{gap:10px;display:grid}.guest-link-card{background:#fffdf8c7;border:1px solid #5d5d5d1f;border-radius:8px;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;padding:14px;display:grid}.guest-link-card h2{color:var(--ink);margin:0 0 6px;font-size:1rem;line-height:1.2}.guest-link-card a{color:var(--muted);overflow-wrap:anywhere;font-size:.92rem}.guest-link-actions{gap:8px;display:flex}.icon-button{width:42px;height:42px;color:var(--ink);background:#df96321f;border-radius:999px}.icon-button:hover{background:#df96322e}.link-empty{color:var(--muted);text-align:center;border:1px dashed #5d5d5d38;border-radius:8px;margin:0;padding:18px}@media (max-width:640px){.link-page{padding:0}.link-panel{border:0;border-radius:0;min-height:100svh}.link-summary,.guest-link-card{grid-template-columns:1fr;align-items:stretch}.link-summary{flex-direction:column}.link-button{width:100%}.guest-link-actions{justify-content:flex-end}}
