@import"https://fonts.googleapis.com/css2?family=Charm:wght@400;700&display=swap";:root{--sage-50: #f6f8f2;--sage-100: #edf2e8;--sage-200: #dde5d4;--sage-300: #cad5c1;--sage-400: #b0bea4;--sage-500: #95a88a;--sage-700: #586954;--ink-900: #1f2d23;--ink-700: #465749;--ink-500: #67766a;--surface: #ffffffe2;--surface-soft: #f8fbf5bf;--line: #d2dcc7;--accent: #7a8f6f;--accent-strong: #5d7253;--danger: #984040;--success: #2f6d4f;--shadow-lg: 0 28px 70px #23312320;color:var(--ink-900);font-family:Manrope,Avenir Next,Trebuchet MS,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;color:var(--ink-900);background:radial-gradient(120% 80% at -10% -20%,#eef4e8,#eef4e800 60%),radial-gradient(95% 80% at 108% 8%,#d2deca,#d2deca00 58%),radial-gradient(80% 70% at 50% 118%,#dee8d1,#dee8d100 72%),linear-gradient(180deg,#f8f9f3,#f0f4eb 48%,#e8eee2)}#root{min-height:100vh;position:relative;isolation:isolate;overflow-x:clip}#root:before{content:"";position:fixed;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,#f8fbf5de,#eef4e9c4 42%,#e7eee1e0),url(/meadow-image.png) center / cover no-repeat;opacity:.74;filter:saturate(.86) contrast(.94) brightness(1.02)}#root:after{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(120% 90% at 50% 8%,#f7fbf6af,#f7fbf600 56%),radial-gradient(100% 90% at 50% 104%,#dce7d085,#dce7d000 70%)}a{color:var(--accent-strong);text-decoration-thickness:.08em;text-underline-offset:.13em}a:hover{color:#43593b}h1,h2,h3,h4,h5,h6{margin:0;font-family:Cormorant Garamond,Palatino Linotype,serif;letter-spacing:.02em;text-wrap:balance;scroll-margin-top:1.25rem}p{margin:0;overflow-wrap:anywhere}.skip-link{position:absolute;left:1rem;top:-2.8rem;z-index:50;padding:.55rem .9rem;border-radius:999px;background:#1f2d23;color:#f8fbf4;text-decoration:none;transition:top .18s ease}.skip-link:focus-visible{top:1rem}.page{min-height:100vh;display:grid;place-items:center;padding:clamp(1rem,2.5vw,2.5rem);animation:page-enter .5s ease-out}.page-guest{padding-top:clamp(1.2rem,3vw,2.8rem)}.panel{width:min(960px,100%);background:linear-gradient(145deg,var(--surface),var(--surface-soft)),linear-gradient(160deg,#ffffff8c,#e9f1dfa1);border:1px solid #f5f8f1ca;border-radius:28px;box-shadow:var(--shadow-lg);padding:clamp(1.2rem,2.6vw,2.3rem);-webkit-backdrop-filter:blur(11px) saturate(1.02);backdrop-filter:blur(11px) saturate(1.02)}.panel-landing{width:min(1180px,100%);display:grid;gap:clamp(1rem,2vw,1.8rem);position:relative;isolation:isolate;background:linear-gradient(145deg,#eef4e7f2,#e4eddcf0),linear-gradient(160deg,#f8fcf3b8,#dbe7cfb3);border-color:#dfe8d4}.panel-landing:before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(170deg,#ffffff38 8%,#e6efdc54),url(/meadow-image.png) center / cover no-repeat;opacity:.22;mix-blend-mode:soft-light}.panel-landing>*{position:relative;z-index:1}.landing-hero{position:relative;overflow:hidden}.landing-hero:after{content:"";position:absolute;width:clamp(220px,28vw,360px);aspect-ratio:1;right:-14%;top:-14%;border-radius:50%;background:radial-gradient(circle,#d3dfc7,#d3dfc700 72%);pointer-events:none;z-index:0}.hero-intro{display:grid;gap:.7rem;align-content:start}.hero-intro-centered{justify-items:center;text-align:center}.eyebrow{margin:0;color:var(--sage-700);font-size:1rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.title{margin:0;font-size:clamp(2.4rem,6vw,4.6rem);line-height:.97;font-weight:600}.subtitle{margin:0;max-width:72ch;color:var(--ink-700);line-height:1.62;font-size:clamp(1rem,1.5vw,1.18rem)}.hero-meta-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.85rem;margin-top:.55rem}.hero-meta-card{background:#f8fbf4d8;border:1px solid #ecf1e6;border-radius:16px;padding:.9rem 1rem;display:grid;gap:.35rem;box-shadow:0 10px 24px #25342410}.hero-meta-card h2{font-family:Manrope,Avenir Next,sans-serif;font-size:.87rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-900)}.hero-meta-card p{color:var(--ink-700);font-size:.92rem;line-height:1.5}.entry-center{width:min(100%,720px);justify-self:center;display:grid;gap:1rem;place-items:center}.invitation-morph{width:min(100%,760px);perspective:1600px}.invitation-morph-shell{position:relative;width:min(100%,560px);margin-inline:auto;aspect-ratio:590 / 430;transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.2,.75,.2,1),width 1.2s cubic-bezier(.2,.75,.2,1),border-radius 1.2s cubic-bezier(.2,.75,.2,1),box-shadow 1.2s ease;border-radius:24px;box-shadow:0 16px 28px #2030201f}.invitation-morph-opened .invitation-morph-shell{width:min(100%,760px);aspect-ratio:2048 / 1499;border-radius:26px;transform:rotateY(180deg);box-shadow:0 26px 38px #1425112e,0 52px 90px #101f0d40}.invitation-morph-face{position:absolute;inset:0;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden;overflow:hidden}.invitation-morph-face-placeholder{border:1px dashed #c5d1b8;background:linear-gradient(155deg,#f4f8efb5,#e6edde94),url(/meadow-image.png) center / cover no-repeat;background-blend-mode:soft-light,normal;box-shadow:inset 0 0 0 1px #fafcf7;animation:envelope-breathing 4.6s ease-in-out infinite}.invitation-morph-face-invitation{border:1px solid #f2f7ec;background:#d7dfcd;transform:rotateY(180deg)}.invitation-morph-face-invitation img{display:block;width:100%;height:100%;object-fit:cover}.landing-side{background:#fcfdf9c7;border:1px solid #eef3e8d2;border-radius:22px;padding:clamp(1rem,2vw,1.45rem);display:grid;gap:.85rem;align-content:start;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.landing-side h2{font-size:clamp(1.55rem,3.5vw,2.1rem);line-height:1.08}.landing-side p{color:var(--ink-700);line-height:1.58}.prep-summary{display:grid;gap:.62rem}.prep-summary-item{display:grid;gap:.3rem;padding:.72rem .82rem;border:1px solid #dbe6d2;border-radius:12px;background:linear-gradient(140deg,#f7fbf2,#eef5e5)}.prep-summary-label{font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5f715d}.prep-summary-value{color:#253427;font-size:.96rem;line-height:1.45;font-weight:700}.prep-summary-pill{display:inline-flex;align-items:center;width:fit-content;border-radius:999px;padding:.24rem .62rem;background:#e8eee0}.prep-summary-pills{display:flex;flex-wrap:wrap;gap:.42rem}.prep-summary-pill-attending{background:#d8e7d4;color:#25573b}.prep-summary-pill-declined{background:#f1dbdb;color:#793333}.prep-summary-pill-pending{background:#e8eee0;color:#2f3f2f}.prep-summary-item .status-chip{margin-left:0;width:fit-content;border-radius:8px;padding:.16rem .5rem;font-size:.8rem;letter-spacing:.02em;text-transform:none}.prep-summary-panel{border-style:solid}.prep-summary-panel .prep-summary-item{position:relative}.prep-summary-panel .prep-summary-item:before{content:"";position:absolute;inset-inline-start:0;inset-block:0;width:4px;border-radius:12px 0 0 12px;background:#c4d8b8}.guest-participant-name{font-family:Cormorant Garamond,Palatino Linotype,serif;font-size:clamp(1.35rem,2.8vw,1.8rem);line-height:1.08;font-weight:600;color:#223223;letter-spacing:.01em}.prep-guide-list{margin:.2rem 0 0;padding-left:1.1rem;display:grid;gap:.52rem}.prep-guide-list li{color:#2f3f2f;line-height:1.5}.prep-guide-list strong{color:#243324}.entry-form{display:grid;gap:.55rem}.entry-panel-centered{width:min(100%,510px);justify-items:center;text-align:center}.entry-panel-centered .form-row{width:100%}.form-row{display:grid;gap:.5rem;margin:.2rem 0}.transport-follow-up{margin-left:.85rem;padding-left:.85rem;border-left:2px solid #d4dec9}label{color:var(--ink-700);font-size:.9rem;font-weight:700}input,textarea,select,button{font:inherit}input,textarea,select{width:100%;border:1px solid var(--line);border-radius:14px;padding:.74rem .86rem;background:#fff;color:var(--ink-900);transition:border-color .16s ease,box-shadow .16s ease,background-color .16s ease}textarea{resize:vertical;min-height:96px}button{border:1px solid transparent;border-radius:999px;padding:.72rem 1.2rem;background:linear-gradient(130deg,var(--accent),var(--accent-strong));color:#f9fbf6;font-weight:700;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .18s ease,box-shadow .18s ease,filter .18s ease}button:hover{transform:translateY(-1px);box-shadow:0 10px 20px #24332430;filter:saturate(1.04)}button:disabled{opacity:.7;cursor:progress;transform:none;box-shadow:none}.muted-button{background:linear-gradient(130deg,#edf2e6,#dbe7ce);color:var(--ink-900);border-color:#d4dec9}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid #8fa787;outline-offset:2px;box-shadow:0 0 0 4px #dce8d2}.actions{display:flex;flex-wrap:wrap;gap:.68rem;margin-top:.35rem}.actions-center{justify-content:center}.inline-note{color:var(--ink-500);font-size:.9rem}.error,.ok{margin:.2rem 0;font-size:.92rem}.error{color:var(--danger)}.ok{color:var(--success)}.status-chip{display:inline-flex;align-items:center;margin-left:.35rem;border-radius:999px;padding:.2rem .62rem;background:#e8eee0;color:var(--ink-900);font-size:.82rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.status-chip-attending{background:#d8e7d4;color:#25573b}.status-chip-declined{background:#f1dbdb;color:#793333}.guest-experience{align-content:start}.centerpiece{display:grid;place-items:center;margin-top:.4rem;margin-bottom:.5rem;gap:.75rem}.centerpiece-note{margin:0;text-align:center;color:var(--ink-700);font-size:.93rem}.wedding-date-highlight{display:inline-flex;margin:.2rem auto .1rem;padding:1.5rem 1.5rem .5rem;border-radius:999px;color:#273627;font-family:Manrope,Avenir Next,sans-serif;font-size:1.3rem;font-weight:800;letter-spacing:.08em}.guest-content-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:clamp(.9rem,2vw,1.2rem);max-width:900px;margin-inline:auto}.wedding-plan-list{margin:0;padding:0;list-style:none;display:grid;gap:.62rem}.wedding-plan-date{margin:0;color:#4b6149;font-size:.92rem;font-weight:700;letter-spacing:.03em}.wedding-plan-item{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.62rem;align-items:center;padding:.72rem .82rem;border:1px solid #dce7d2;border-radius:12px;background:linear-gradient(140deg,#f8fbf4,#eef5e7)}.wedding-plan-time{display:inline-flex;align-items:center;justify-content:center;min-width:4.1rem;padding:.28rem .48rem;border-radius:999px;background:#e1ecd8;color:#2b3a2a;font-family:Manrope,Avenir Next,sans-serif;font-weight:800;letter-spacing:.04em}.wedding-plan-event{color:#253427;font-weight:600;line-height:1.45}.locations-section{display:grid;gap:clamp(.9rem,1.9vw,1.3rem);border-radius:24px;border:1px solid #e2ebd7;background:linear-gradient(150deg,#fbfdf9cb,#eff5e7b7);padding:clamp(.9rem,2vw,1.35rem);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px)}.locations-header{display:grid;gap:.42rem;justify-items:center;text-align:center}.locations-header p{color:var(--ink-700);max-width:68ch}.locations-map-shell{border-radius:20px;overflow:hidden;border:1px solid #d4dfc8;background:#e4ecda;box-shadow:0 20px 44px #1e2f1a2d}.wedding-map{width:100%;height:min(52vh,420px);min-height:290px}.wedding-map .leaflet-tile{filter:saturate(.8) contrast(.93) hue-rotate(-12deg) brightness(1.02)}.wedding-map .leaflet-marker-icon{filter:drop-shadow(0 8px 10px #1f2f1c4d)}.wedding-map .leaflet-tooltip{border:1px solid #d3ddc8;border-radius:999px;padding:.28rem .56rem;background:#f7fbf4ee;color:var(--ink-900);font-family:Manrope,Avenir Next,sans-serif;font-size:.76rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;box-shadow:0 8px 18px #23332324}.wedding-map .leaflet-tooltip.wedding-location-tooltip{padding:0;border:1px solid #cfdbc2;border-radius:14px;background:#f7fbf4f0;box-shadow:0 12px 28px #2333232f}.wedding-map .leaflet-tooltip.wedding-location-tooltip .leaflet-tooltip-content{margin:0}.wedding-location-card{width:170px;display:grid;gap:.34rem;padding:.42rem}.wedding-location-label{margin:0;color:var(--ink-900);font-family:Manrope,Avenir Next,sans-serif;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;line-height:1.25}.wedding-location-card img{width:100%;height:108px;border-radius:10px;display:block;object-fit:cover}.wedding-map .leaflet-tooltip:before{display:none}.locations-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.82rem}.location-card{background:#fffc;border:1px solid #e3ebd9;border-radius:16px;padding:.9rem 1rem;display:grid;gap:.46rem;box-shadow:0 12px 24px #22332112}.location-card h3{font-family:Manrope,Avenir Next,sans-serif;font-size:.96rem;letter-spacing:.07em;text-transform:uppercase}.location-card p{color:var(--ink-700)}.vinyl-panel{align-content:start}.vinyl-results{display:grid;gap:.45rem;max-height:300px;overflow-y:auto;padding-right:.2rem}.vinyl-result-item{display:grid;grid-template-columns:56px minmax(0,1fr);gap:.62rem;align-items:center;text-align:left;border-radius:14px;border:1px solid #dce6d3;background:#fffc;color:var(--ink-900);padding:.45rem}.vinyl-result-item:hover{transform:none;box-shadow:0 8px 18px #2433241a}.vinyl-result-item img{width:56px;height:56px;border-radius:10px;object-fit:cover}.vinyl-result-item-active{border-color:#9db092;background:#f2f8ec}.vinyl-cover-fallback{width:56px;height:56px;border-radius:10px;display:grid;place-items:center;background:#dde8d2;color:var(--ink-700);font-family:Manrope,Avenir Next,sans-serif;font-weight:700;letter-spacing:.06em}.vinyl-others-list{margin:0;padding-left:1.1rem;display:grid;gap:.5rem}.vinyl-others-list li{color:var(--ink-700)}.vinyl-custom-fields{margin-top:.4rem;padding:.75rem;border:1px dashed #c9d8bd;border-radius:14px;background:#f7fbf2}.vinyl-toast{position:fixed;right:1.2rem;bottom:1.2rem;z-index:40;max-width:min(90vw,340px);padding:.72rem .95rem;border-radius:12px;border:1px solid #bfd6b5;background:#eef9e9;color:#1d4c35;box-shadow:0 14px 34px #18341f33;font-size:.9rem;opacity:1;transform:translateY(0);transition:opacity .8s ease,transform .8s ease}.vinyl-toast-fade{opacity:0;transform:translateY(8px)}.add-song-button{display:block;width:60%;min-width:220px;margin-inline:auto}.rsvp-submit-button{width:100%;margin-top:.45rem}.rsvp-toast{position:fixed;right:1.2rem;bottom:5.4rem;z-index:40;max-width:min(90vw,340px);padding:.72rem .95rem;border-radius:12px;border:1px solid #bfd6b5;background:#eef9e9;color:#1d4c35;box-shadow:0 14px 34px #18341f33;font-size:.9rem;opacity:1;transform:translateY(0);transition:opacity .8s ease,transform .8s ease}.rsvp-toast-fade{opacity:0;transform:translateY(8px)}.route-link{width:fit-content;font-weight:700}.site-footnote{width:min(960px,100%);margin-top:.95rem;margin-bottom:.2rem;padding-inline:.5rem;text-align:center;color:#4f6155;font-size:.84rem;opacity:.9}.invitation{--card-rotate-x: 0deg;--card-rotate-y: 0deg;position:relative;width:min(100%,760px);border:1px solid #f2f7ec;border-radius:26px;overflow:hidden;padding:0;display:block;background:#d7dfcd;box-shadow:0 26px 38px #1425112e,0 52px 90px #101f0d40;transform-style:preserve-3d;transform:perspective(1350px) rotateX(var(--card-rotate-x)) rotateY(var(--card-rotate-y));transition:transform .28s cubic-bezier(.2,.9,.2,1),box-shadow .28s ease;isolation:isolate}.invitation:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,#ffffff30,#fff0 46%);pointer-events:none;z-index:2}.invitation-openable{cursor:pointer}.invitation-openable:hover,.invitation-interactive:hover{box-shadow:0 34px 54px #14251138,0 66px 112px #101f0d4d}.invitation-static{cursor:default}.invitation-interactive{cursor:grab;touch-action:none}.invitation-dragging{cursor:grabbing;-webkit-user-select:none;user-select:none;box-shadow:0 42px 64px #1425113a,0 78px 132px #101f0d55}.invitation-media{display:block;transform:translateZ(24px)}.invitation-media img{display:block;width:100%;height:auto;aspect-ratio:2048 / 1499;object-fit:cover}.invitation-shimmer{position:absolute;inset:-30%;z-index:1;pointer-events:none;mix-blend-mode:screen;opacity:.56;transform:translateZ(60px);background:radial-gradient(circle at 18% 16%,#fff8,#fff0 58%)}.invitation-caption{position:absolute;inset:auto 0 0;display:grid;gap:.2rem;padding:1.06rem 1.2rem;text-align:left;z-index:3;color:#f2f8ee;background:linear-gradient(180deg,#1b261d00,#1b261da8 57%,#1b261de8)}.invitation-headline{font-family:Cormorant Garamond,Palatino Linotype,serif;font-size:clamp(1.05rem,2vw,1.55rem);letter-spacing:.08em;text-transform:uppercase}.invitation-recipient{font-family:Cormorant Garamond,Palatino Linotype,serif;font-size:clamp(1.5rem,3vw,2.25rem);line-height:1.08;font-weight:600}.invitation-supporting{font-size:.92rem;color:#e9f2e2}.invitation-clean:before,.invitation-clean .invitation-shimmer,.invitation-clean .invitation-caption{display:none}.invitation-name-overlay{position:absolute;inset:0;pointer-events:none;z-index:4}.invitation-name-line{position:absolute;left:var(--line-x, 69.8%);width:34.72%;top:var(--line-y, 50%);transform:translate(-50%,-50%);text-align:center;font-family:Charm,Brush Script MT,cursive;font-weight:var(--line-weight, 400);font-size:var(--line-size, 1.15rem);line-height:1;color:#283025;text-shadow:0 1px 0 #ffffff5e}.invitation-name-overlay-preview .invitation-name-line{font-size:var(--line-size, 1.2rem)}.invitation-fullscreen{position:fixed;inset:0;z-index:90;background:#111813f0;display:grid;grid-template-rows:auto minmax(0,1fr)}.invitation-fullscreen-close{justify-self:end;margin:.8rem .8rem 0;display:flex;align-items:center;justify-content:center;padding:0;border:0;border-radius:999px;width:2.6rem;height:2.6rem;background:#f0f5eb;color:#1b261d;font-size:0;cursor:pointer}.invitation-fullscreen-close-icon{display:block;font-size:1.55rem;font-weight:700;line-height:1;transform:translateY(-1px)}.invitation-fullscreen-stage{min-height:0;overflow:auto;padding:.6rem .9rem 1rem;display:grid;place-items:start center}.invitation-fullscreen-image{width:auto;max-width:min(96vw,1180px);max-height:none;height:auto;border-radius:16px;box-shadow:0 24px 64px #0006}@media(max-width:760px){.invitation-fullscreen-stage{place-items:start center;padding:.5rem .45rem .8rem}.invitation-fullscreen-image{width:100%;max-width:100%;max-height:none;border-radius:12px}}.panel h2{font-size:clamp(1.45rem,3vw,1.95rem);line-height:1.1}.panel ul{margin:0;padding-left:1.1rem;display:grid;gap:.7rem}.panel li{color:var(--ink-700)}.admin-panel{width:min(1240px,100%);gap:1rem}.admin-create-form{display:grid;gap:.55rem}.admin-table-shell{overflow-x:auto;border:1px solid #dce6d1;border-radius:18px;background:#fbfdf9d9}.admin-guest-table{width:100%;border-collapse:collapse;min-width:980px}.admin-guest-table th,.admin-guest-table td{padding:.82rem .92rem;text-align:left;border-bottom:1px solid #e6ecdd;vertical-align:middle}.admin-guest-table thead th{position:sticky;top:0;z-index:1;background:#edf3e5f2;color:var(--ink-900);font-family:Manrope,Avenir Next,sans-serif;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.admin-guest-table tbody tr:hover{background:#f4f8ef}.admin-guest-table tbody tr:last-child td{border-bottom:none}.controls-cell{width:46%}.guest-row-controls{display:grid;grid-template-columns:auto minmax(180px,1fr) auto auto;gap:.5rem;align-items:center}.guest-row-controls input{min-width:0}.guest-row-controls button{white-space:nowrap}.guest-token-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;align-items:center}.qr-generator-panel{border:1px solid #dce6d1;border-radius:18px;background:#fbfdf9d9;padding:.8rem;display:grid;gap:.65rem}.qr-generator-actions{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.qr-size-control{display:grid;gap:.2rem;font-size:.82rem;color:var(--ink-700)}.qr-size-control input{width:7rem}.qr-batch-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:.7rem}.qr-preview-card{border:1px solid #d4e0ca;border-radius:16px;background:#f6faef;padding:.65rem;display:grid;justify-items:center;align-content:start;gap:.2rem}.qr-preview-name,.qr-preview-link{margin:0;text-align:center}.qr-preview-name{color:var(--ink-900);font-weight:700;line-height:1.15;position:relative;z-index:2}.qr-name-line{display:block}.qr-image-wrap{padding:.3rem;border-radius:14px;border:1px solid #d6e2cc;background:#fff;margin-top:-.3rem;position:relative;z-index:1}.qr-preview-link{color:var(--ink-700);display:grid;justify-items:center;max-width:100%;overflow:visible;line-height:1.1;margin-top:-.38rem;position:relative;z-index:2}.qr-link-domain,.qr-link-path{white-space:nowrap}.qr-link-domain{font-size:.66rem;letter-spacing:.01em}.qr-link-path{font-family:Fira Code,Consolas,monospace;font-size:.62rem;letter-spacing:-.005em}.qr-remove-button{width:100%}.qr-empty-state,.qr-preview-inline{border:1px dashed #ccdbc2;border-radius:12px;padding:.65rem;background:#f9fcf6}.qr-print-sheet{display:none}@media print{@page{size:A4 portrait;margin:8mm}body{background:#fff}#root:before,#root:after{display:none!important}.page{display:block;padding:0;min-height:auto;background:#fff}.panel,.admin-panel{width:100%;max-width:none;border:none;box-shadow:none;background:#fff;padding:0;margin:0}.admin-panel>*{display:none!important}.admin-panel>.qr-print-sheet{display:block!important}.qr-print-sheet{width:100%}.qr-print-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--qr-card-width-cm),var(--qr-card-width-cm)));justify-content:center;align-content:start;gap:6mm}.qr-print-card{break-inside:avoid;page-break-inside:avoid;border:.45mm solid #a8a8a8;border-radius:4mm;width:var(--qr-card-width-cm);height:var(--qr-card-height-cm);min-height:var(--qr-card-height-cm);padding:3mm 2.7mm;background:#fff;display:grid;justify-items:center;align-content:start;gap:1.3mm;box-sizing:border-box;overflow:visible}.qr-print-card .qr-preview-name{font-size:.84rem;line-height:1.1}.qr-print-card .qr-preview-link{max-width:100%;line-height:1.05;margin-top:-1.9mm}.qr-print-card .qr-link-domain{font-size:.62rem}.qr-print-card .qr-link-path{font-size:.68rem}.qr-image-wrap{border:none;padding:0;background:transparent;margin-top:-1.3mm}.qr-image-wrap svg{width:var(--qr-size-cm)!important;height:var(--qr-size-cm)!important;display:block}}.guest-lines-editor{margin-top:.62rem;border-top:1px solid #dfe8d5;padding-top:.62rem;display:grid;gap:.6rem}.guest-lines-grid{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.45rem .52rem;align-items:center}.guest-lines-grid label{font-size:.78rem;text-transform:uppercase;letter-spacing:.05em}.guest-lines-actions{margin-top:0}.guest-style-grid{display:grid;grid-template-columns:5.2rem repeat(3,minmax(70px,1fr));gap:.42rem;align-items:center}.guest-style-grid span{font-size:.78rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--ink-700)}.guest-bold-row{display:grid;grid-template-columns:auto minmax(160px,1fr);gap:.5rem;align-items:center}.row-preview{position:relative;border:1px solid #d6e1cb;border-radius:14px;background:#f7fbf3;padding:.6rem;display:grid;gap:.48rem}.preview-close{justify-self:start}.row-preview-media{position:relative;border-radius:12px;overflow:hidden;border:1px solid #d2deca;background:#dce7d3}.row-preview-media img{display:block;width:100%;height:auto;aspect-ratio:2048 / 1499;object-fit:cover}@keyframes page-enter{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes envelope-breathing{0%,to{transform:translateY(0);box-shadow:inset 0 0 0 1px #fafcf7,0 16px 28px #2030201f}50%{transform:translateY(-13px);box-shadow:inset 0 0 0 1px #fafcf7,0 30px 44px #20302030}}@media(max-width:1050px){.hero-meta-grid,.guest-content-grid,.locations-grid{grid-template-columns:1fr}.invitation-morph-shell{width:min(100%,500px)}}@media(max-width:640px){.page{padding:.7rem}.panel{border-radius:22px;padding:1rem}.actions{flex-direction:column}.actions button{width:100%;justify-content:center}.locations-section{border-radius:20px;padding:.85rem}.wedding-map{height:300px;min-height:240px}.admin-table-shell{border-radius:14px}.admin-guest-table{min-width:860px}.guest-lines-grid{grid-template-columns:1fr;gap:.36rem}.guest-style-grid,.guest-bold-row{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){.page,.invitation-morph-face-placeholder{animation:none}.invitation-morph-shell,.invitation{transition-duration:0ms}}
