.gate{--open-dur:1.6s;--open-ease:cubic-bezier(.45, .05, .2, 1);z-index:1000;perspective:2000px;justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden}.gate--locked .book{animation:.7s gateFade}.gate--opening{pointer-events:none}.gate-backdrop{background:radial-gradient(circle at 50% 38%, #f5c56b29, transparent 60%), radial-gradient(circle at 50% 40%, #2c2333, var(--navy) 72%);position:absolute;inset:0}.gate--opening .gate-backdrop{animation:.8s 1.55s forwards gateExit}.book{aspect-ratio:3/4;width:clamp(290px,80vw,440px);transform-style:preserve-3d;z-index:1;filter:drop-shadow(0 40px 60px #0000008c);position:relative}.book--shake{animation:.4s gateShake}.gate--opening .book{transform-origin:50%;animation:2.35s cubic-bezier(.45,0,.55,1) forwards bookZoom}.book-pages{background:radial-gradient(ellipse at 50% 40%, #f5c56b1f, transparent 60%), var(--cream);border:1px solid var(--parchment-edge);border-radius:2px 7px 7px 2px;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden;box-shadow:inset 0 0 60px #9a7b4240}.book-pages-mark{color:var(--gold);opacity:.5;font-size:2.4rem}.spark{background:radial-gradient(circle, var(--amber), #f5c56b00);opacity:0;border-radius:50%;width:5px;height:5px;position:absolute;bottom:12%}.gate--opening .spark{animation:1.7s ease-out forwards sparkUp}.book-cover{transform-origin:0;backface-visibility:hidden;background:linear-gradient(135deg, #ffffff0f, transparent 40%), linear-gradient(135deg, #5a4031, var(--walnut) 60%, #3a2820);box-shadow:inset 0 0 0 2px var(--gold-deep), inset 0 0 0 5px #4a342899, inset 0 0 0 6px var(--gold), inset 14px 0 24px #00000073;z-index:2;border-radius:2px 7px 7px 2px;justify-content:center;align-items:center;padding:2rem 1.6rem;display:flex;position:absolute;inset:0;transform:rotateY(0)}.gate--opening .book-cover{animation:coverOpen var(--open-dur) var(--open-ease) forwards}.book-cover-inner{text-align:center;width:320px;max-width:100%}.gate-crest{color:var(--gold);letter-spacing:.3em;font-size:1.5rem}.gate-label{font-family:var(--display);text-transform:uppercase;letter-spacing:.34em;color:var(--gold);margin-top:.5rem;font-size:.62rem}.gate-title{font-family:var(--display-fancy);color:var(--amber);text-shadow:0 1px 1px #00000080,0 0 18px #f5c56b40;margin:.4rem 0 .2rem;font-size:clamp(1.7rem,5vw,2.5rem)}.gate-sub{color:#e8d6ad;font-family:var(--serif-soft,serif);margin:0 0 1.2rem;font-size:.98rem;font-style:italic}.book-cover form{flex-direction:column;align-items:stretch;gap:.65rem;display:flex}.gate-input{font-family:var(--serif);text-align:center;letter-spacing:.05em;border:1px solid var(--gold);color:var(--ink);background:#fbf6eaf5;border-radius:2px;padding:.6rem .7rem;font-size:1rem}.gate-btn{font-family:var(--display);letter-spacing:.18em;text-transform:uppercase;border:1px solid var(--gold-deep);background:linear-gradient(180deg, #e7cd97, var(--gold) 45%, var(--gold-deep));color:var(--walnut);cursor:pointer;border-radius:2px;padding:.75rem;font-size:.78rem}.gate-btn:hover{filter:brightness(1.06)}.gate-btn:disabled{opacity:.7;cursor:default}.gate-error{color:#ffd2d2;margin:.1rem 0 0;font-size:.82rem}@keyframes coverOpen{0%{transform:rotateY(0)}8%{transform:rotateY(-6deg)}to{transform:rotateY(-164deg)}}@keyframes sparkUp{0%{opacity:0;transform:translateY(0)scale(.6)}25%{opacity:1}to{opacity:0;transform:translateY(-260px)scale(1)}}@keyframes bookZoom{0%{opacity:1;transform:scale(1)}65%{opacity:1;transform:scale(1.5)}to{opacity:0;transform:scale(2.5)}}@keyframes gateExit{to{opacity:0}}@keyframes gateFade{0%{opacity:0}to{opacity:1}}@keyframes gateShake{0%,to{transform:translate(0)}20%,60%{transform:translate(-9px)}40%,80%{transform:translate(9px)}}@media (prefers-reduced-motion:reduce){.gate--locked,.book--shake,.book-cover,.gate-backdrop,.book,.spark{animation-duration:.001ms!important;animation-iteration-count:1!important}}:root{--parchment-base:#ece0c4;--cream:#faf3e2;--parchment:#f0e4c9;--parchment-edge:#cdb98e;--oxblood:#6e2b3b;--gold:#c9a86a;--gold-deep:#9a7b42;--amber:#f5c56b;--walnut:#4a3428;--navy:#1e2438;--ink:#2a1c0e;--ink-soft:#5e4a32;--serif:"EB Garamond", Georgia, serif;--serif-soft:"Cormorant Garamond", "EB Garamond", serif;--display:"Cinzel", serif;--display-fancy:"Cinzel Decorative", "Cinzel", serif;--maxw:980px}*{box-sizing:border-box}html{font-size:18px}body{background-color:var(--parchment-base);color:var(--ink);font-family:var(--serif);margin:0;font-size:1.125rem;line-height:1.7}body:before{content:"";z-index:-2;pointer-events:none;background-color:var(--parchment-base);background-image:url(/parchment-noise.png),radial-gradient(at 22% 16%,#4a342812,#0000 45%),radial-gradient(at 82% 30%,#6e2b3b0f,#0000 42%),radial-gradient(at 50% 90%,#4a342814,#0000 55%),radial-gradient(circle at 50% 32%,#f5c56b1a,#0000 70%);background-repeat:repeat,no-repeat,no-repeat,no-repeat,no-repeat;background-size:128px 128px,cover,cover,cover,cover;position:fixed;inset:0}body:after{content:"";z-index:-2;pointer-events:none;background:radial-gradient(at 50% 38%,#0000 52%,#1e140c38);position:fixed;inset:0}h1,h2,h3{font-family:var(--display);color:var(--ink);font-weight:600}a{color:var(--oxblood)}.hero{text-align:center;background:radial-gradient(circle at 50% 30%,#f5c56b38,#0000 62%);flex-direction:column;justify-content:center;align-items:center;min-height:86vh;padding:2rem 1.5rem;display:flex}@media (width<=640px){.hero{min-height:70svh;padding:1.25rem}}.section{max-width:var(--maxw);margin:0 auto;padding:5rem 1.5rem;scroll-margin-top:3.5rem}.panel{max-width:var(--maxw);background:linear-gradient(180deg, #ffffff59, #fff0) , var(--cream);border:1px solid var(--gold);border-radius:3px;margin:2.5rem auto;padding:4rem 2rem;position:relative;box-shadow:inset 0 0 0 1px #9a7b4240,0 22px 50px -34px #1e140c99}.panel:before,.panel:after{content:"";opacity:.9;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48'%3E%3Cg fill='none' stroke='%23C9A86A' stroke-width='1.4'%3E%3Cpath d='M3 16 V3 H16'/%3E%3Cpath d='M8 22 Q8 8 22 8'/%3E%3C/g%3E%3Ccircle cx='8' cy='8' r='1.7' fill='%23C9A86A'/%3E%3C/svg%3E") 0 0/contain no-repeat;width:48px;height:48px;position:absolute}.panel:before{top:10px;left:10px}.panel:after{bottom:10px;right:10px;transform:rotate(180deg)}.reveal{opacity:0;filter:blur(6px);transition:opacity .9s,transform .9s,filter .9s;transform:translateY(30px)}.reveal.is-visible{opacity:1;filter:none;transform:none}.chapter-label{font-family:var(--display);text-transform:uppercase;letter-spacing:.35em;color:var(--oxblood);text-align:center;font-size:.72rem}.chapter-title{font-family:var(--display-fancy);text-align:center;color:var(--walnut);margin:.5rem 0 2rem;font-size:2.25rem}.has-dropcap>p:first-of-type:first-letter{font-family:var(--display-fancy);float:left;color:var(--gold-deep);text-shadow:0 1px #fff9;padding:.15rem .65rem 0 0;font-size:3.8rem;line-height:.7}.btn{font-family:var(--display);letter-spacing:.15em;text-transform:uppercase;border:1px solid var(--gold-deep);background:linear-gradient(180deg, #e7cd97, var(--gold) 45%, var(--gold-deep));color:var(--walnut);text-shadow:0 1px #fff6;cursor:pointer;border-radius:3px;padding:.85rem 1.9rem;font-size:.8rem;text-decoration:none;transition:filter .2s,transform .2s;display:inline-block;box-shadow:inset 0 1px #ffffff80,0 8px 18px -10px #1e140c99}.btn:hover{filter:brightness(1.06);transform:translateY(-1px)}.btn-ghost{color:var(--oxblood);border-color:var(--gold);text-shadow:none;box-shadow:none;background:0 0}.divider{color:var(--gold);font-family:var(--display-fancy);letter-spacing:.3em;justify-content:center;align-items:center;gap:1.1rem;margin:2rem 0;font-size:1.3rem;display:flex}.divider:before,.divider:after{content:"";background:linear-gradient(90deg, transparent, var(--gold-deep));width:clamp(50px,20vw,180px);height:1px}.divider:after{transform:scaleX(-1)}.leather{background:linear-gradient(180deg, #ffffff0a, #0000002e), var(--navy);color:var(--amber);border-bottom:1px solid var(--gold-deep)}.candle-glow{animation:4.5s ease-in-out infinite candle}@keyframes candle{0%,to{text-shadow:0 0 18px #f5c56b2e}50%{text-shadow:0 0 30px #f5c56b61}}.sparkles{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.sparkle{color:var(--amber);opacity:0;text-shadow:0 0 6px #f5c56b99;line-height:1;animation-name:twinkle;animation-timing-function:ease-in-out;animation-iteration-count:infinite;position:absolute}@keyframes twinkle{0%,to{opacity:0;transform:scale(.5)rotate(0)}50%{opacity:.7;transform:scale(1)rotate(20deg)}}.sparkles--front{z-index:5}.sparkle--front{color:#fff;text-shadow:0 0 8px #ffffffe6,0 0 16px #f5c56b99;animation-name:twinkleBright}@keyframes twinkleBright{0%,to{opacity:0;transform:scale(.4)rotate(0)}50%{opacity:1;transform:scale(1.25)rotate(25deg)}}.motes{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.mote{background:radial-gradient(circle,#f5c56bd9,#f5c56b00);border-radius:50%;animation:linear infinite drift;position:absolute;bottom:-12px}@keyframes drift{0%{opacity:0;transform:translate(0)}12%{opacity:.8}88%{opacity:.5}to{opacity:0;transform:translate(24px,-112vh)}}input,select,textarea{font-family:var(--serif);border:1px solid var(--parchment-edge);background:var(--cream);color:var(--ink);border-radius:2px;padding:.6rem .7rem;font-size:1rem}label{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:.3rem;font-size:.78rem;display:block}.photo-collage{grid-template-columns:repeat(3,1fr);gap:1.5rem 1.25rem;margin-top:2.5rem;display:grid}.photo-frame{border:1px solid var(--gold);background:#fffdf7;margin:0;padding:.5rem;transition:transform .4s,box-shadow .4s;overflow:hidden;box-shadow:0 12px 28px -16px #1e140ca6}.photo-frame--a{transform:rotate(-1.4deg)}.photo-frame--b{transform:rotate(1.4deg)}.photo-frame img{aspect-ratio:3/4;object-fit:cover;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;-webkit-user-drag:none;width:100%;transition:transform .6s;display:block}.photo-frame:hover{transform:rotate(0)translateY(-4px);box-shadow:0 20px 40px -18px #1e140cb3}.photo-frame:hover img{transform:scale(1.05)}@media (width<=760px){.photo-collage{grid-template-columns:repeat(2,1fr);gap:1rem .85rem}}@media (width<=460px){.photo-collage{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.photo-frame,.photo-frame img{transition:none}.photo-frame:hover,.photo-frame:hover img{transform:none}}.wax-seal{width:132px;height:132px;margin:1.5rem auto;animation:.7s cubic-bezier(.2,.8,.3,1.5) both sealStamp;position:relative}.wax-seal-img{object-fit:cover;border-radius:50%;width:100%;height:100%;display:block}.wax-spark{background:radial-gradient(circle, var(--amber), #f5c56b00);opacity:0;border-radius:50%;width:6px;height:6px;animation:.7s ease-out .16s both sealSpark;position:absolute;top:50%;left:50%}.wax-done-text{animation:.6s .5s both waxFadeIn}@keyframes sealStamp{0%{opacity:0;transform:translateY(-130px)scale(2.3)rotate(-12deg)}55%{opacity:1}70%{opacity:1;transform:translateY(0)scale(.88)rotate(0)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes sealSpark{0%{transform:translate(-50%, -50%) rotate(var(--a)) translateY(-6px) scale(.4);opacity:0}35%{opacity:1}to{transform:translate(-50%, -50%) rotate(var(--a)) translateY(-74px) scale(1);opacity:0}}@keyframes waxFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.admin-tabs{border-bottom:1px solid var(--parchment-edge);max-width:var(--maxw);flex-wrap:wrap;justify-content:center;gap:.25rem 1.5rem;margin:0 auto 1.5rem;padding:0 1rem;display:flex}.admin-tab{font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:.6rem .25rem;font-size:.78rem;text-decoration:none}.admin-tab:hover{color:var(--oxblood)}.admin-tab.active{color:var(--oxblood);border-bottom-color:var(--gold-deep)}nav.admin-tabs{margin-top:.5rem;margin-bottom:0}.admin-stats{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:.75rem;margin:0 0 1.75rem;display:grid}.admin-stat{text-align:center;background:var(--cream);border:1px solid var(--parchment-edge);border-radius:3px;padding:.75rem .5rem}.admin-stat-value{font-family:var(--display);color:var(--walnut);font-size:1.6rem}.admin-stat-label{letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);font-size:.72rem}.admin-table{border-collapse:collapse;width:100%;font-size:.95rem}.admin-table-fixed{table-layout:fixed}.admin-table-fixed td{overflow-wrap:anywhere}.admin-table thead tr{text-align:left;border-bottom:2px solid var(--gold)}.admin-table td,.admin-table th{vertical-align:top;padding:.35rem .5rem}.admin-table tbody tr{border-bottom:1px solid var(--parchment-edge)}.admin-table .admin-group-row th{text-align:left;font-family:var(--display);letter-spacing:.08em;color:var(--oxblood);border-bottom:1px solid var(--gold);padding-top:1.1rem;font-size:.82rem}.admin-group-count{float:right;color:var(--ink-soft);letter-spacing:0;font-family:inherit;font-weight:400}.admin-awaiting{background-color:#fff9c480}.admin-muted{color:var(--ink-soft);font-style:italic}.admin-toggle{letter-spacing:normal;text-transform:none;color:var(--ink);cursor:pointer;align-items:center;gap:.4rem;margin:0 0 .75rem;font-family:inherit;font-size:.85rem;display:inline-flex}.admin-note{text-align:center;color:var(--ink-soft);margin:-1rem 0 1.75rem;font-size:.8rem;font-style:italic}.admin-guest-label{color:var(--ink-soft);font-size:.88em;font-style:italic}.photo-group{background:var(--cream);border:1px solid var(--parchment-edge);border-radius:4px;margin:0 0 1rem;padding:.85rem 1rem}.photo-group-head{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.photo-group-handle{cursor:grab;color:var(--ink-soft);-webkit-user-select:none;user-select:none;padding:.2rem .1rem;font-size:1.1rem;line-height:1}.photo-group-handle:active{cursor:grabbing}.photo-drop-before{box-shadow:0 -3px 0 var(--gold-deep)}.photo-drop-after{box-shadow:0 3px 0 var(--gold-deep)}.photo-couple{cursor:pointer;letter-spacing:normal;text-transform:none;color:var(--ink);margin:0;padding-left:.4rem;padding-right:.6rem;font-family:inherit;font-size:.85rem}.photo-couple input{accent-color:var(--oxblood);cursor:pointer;margin:0 .15rem 0 0}.photo-couple.excluded{border-style:dashed;border-color:var(--parchment-edge);color:var(--ink-soft);background:0 0;text-decoration:line-through}.photo-group-number{font-family:var(--display);color:var(--oxblood);min-width:1.5rem;font-size:1.1rem}.photo-group-name{font-family:var(--display);flex:14rem;padding:.3rem .45rem;font-size:1rem}.photo-group-count{color:var(--ink-soft);font-size:.8rem}.photo-group-actions{gap:.3rem;display:flex}.photo-members{flex-wrap:wrap;align-items:center;gap:.4rem;margin:.7rem 0 0;padding:0;list-style:none;display:flex}.photo-member{border:1px solid;border-radius:999px;align-items:center;gap:.3rem;padding:.2rem .3rem .2rem .6rem;font-size:.85rem;display:inline-flex}.photo-member button{cursor:pointer;color:var(--ink-soft);background:0 0;border:none;padding:0 .2rem;font-size:.9rem;line-height:1}.photo-add{position:relative}.photo-add input{width:13rem;padding:.25rem .4rem;font-size:.85rem}.photo-suggestions{z-index:20;background:var(--cream);border:1px solid var(--parchment-edge);min-width:16rem;margin:.15rem 0 0;padding:0;list-style:none;position:absolute;top:100%;left:0;box-shadow:0 4px 10px #0000002e}.photo-suggestions button{width:100%;font:inherit;text-align:left;color:var(--ink);cursor:pointer;background:0 0;border:none;align-items:center;gap:.4rem;padding:.3rem .5rem;font-size:.82rem;display:flex}.photo-suggestions button.active{background:#c9a86a38}.photo-swatch{border:1px solid;border-radius:2px;flex:none;width:.7rem;height:.7rem}.photo-label{color:var(--ink-soft);font-size:.72rem;font-style:italic}.photo-party{white-space:nowrap;text-overflow:ellipsis;max-width:55%;color:var(--ink-soft);margin-left:auto;padding-left:.75rem;font-size:.7rem;overflow:hidden}.schedule-page{max-width:1200px}.schedule-questions{border:1px solid var(--gold);background:#f5c56b29;border-radius:4px;margin:0 0 2rem;padding:.9rem 1.1rem}.schedule-questions h3{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;margin:0 0 .5rem;font-size:.85rem}.schedule-questions ul{margin:0;padding-left:1.1rem;font-size:.9rem}.schedule-question-time{margin-right:.3rem;font-weight:600;text-decoration:none}.schedule-question{background:#f5c56b59;border-radius:2px;padding:0 .15rem}.schedule-question:before{content:"? ";color:var(--oxblood);font-weight:700}.schedule-day{margin-bottom:2.5rem}.schedule-day-label{font-family:var(--display);color:var(--oxblood);letter-spacing:.08em;margin:0 0 .5rem}.schedule-grid{grid-template-columns:7.5rem minmax(0,2fr) 7rem minmax(0,1.6fr);font-size:.9rem;display:grid}.schedule-grid>div{border-top:1px solid var(--parchment-edge);padding:.6rem}.schedule-head{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);border-bottom:2px solid var(--gold);font-size:.72rem;border-top:none!important}.schedule-time{white-space:nowrap;scroll-margin-top:1rem;font-weight:600}.schedule-location,.schedule-notes{color:var(--ink-soft)}.schedule-grid p{margin:0 0 .35rem}.schedule-grid ul,.schedule-grid ol{margin:0 0 .4rem;padding-left:1.2rem}.schedule-grid li ul{margin:.1rem 0 .2rem}.schedule-grid blockquote{border-left:3px solid var(--gold);background:#ffffff59;margin:.2rem 0 .5rem;padding:.4rem .7rem;font-style:italic}.schedule-editable{cursor:text;border-radius:3px;min-height:1.4rem;margin:-.25rem;padding:.25rem}.schedule-editable:hover,.schedule-editable:focus-visible{outline:1px dashed var(--gold);background:#ffffff73}.schedule-empty{color:var(--parchment-edge)}.schedule-editable:hover .schedule-empty{color:var(--ink-soft)}.schedule-editing textarea{width:100%;font:inherit;resize:vertical;padding:.35rem .45rem;font-size:.88rem;line-height:1.45}.schedule-hint{color:var(--ink-soft);margin-top:.2rem;font-size:.68rem}.schedule-line-input,.schedule-time-edit input{width:100%;font:inherit;padding:.25rem .35rem;font-size:.88rem}.schedule-time-edit input[aria-invalid=true]{border-color:var(--oxblood)}.schedule-error{color:var(--oxblood);white-space:normal;margin-top:.25rem;font-size:.72rem;font-weight:400;display:block}.schedule-time-cell{align-items:flex-start;gap:.2rem;display:flex}.schedule-delete{cursor:pointer;color:var(--ink-soft);opacity:0;background:0 0;border:none;padding:.3rem .2rem;font-size:.7rem}.schedule-time-cell:hover .schedule-delete,.schedule-delete:focus-visible{opacity:1}.schedule-add{flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.75rem;display:flex}.schedule-add input{width:11rem;font:inherit;padding:.3rem .45rem;font-size:.88rem}.schedule-add .btn{padding:.4rem .9rem;font-size:.72rem}.schedule-add .btn:disabled{opacity:.45;cursor:default;transform:none}@media (width<=760px){.schedule-delete{opacity:1}.schedule-grid{grid-template-columns:minmax(0,1fr)}.schedule-head{display:none}.schedule-grid>div{border-top:none;padding:.15rem 0}.schedule-time{border-top:1px solid var(--parchment-edge)!important;padding-top:.8rem!important}.schedule-location .schedule-editable:before{content:"📍 "}}.drafts-panel{border:1px solid var(--parchment-edge);background:#fff6;border-radius:4px;max-width:34rem;margin:0 auto 1rem;padding:.5rem .75rem;font-size:.78rem}.drafts-panel summary{cursor:pointer;font-family:var(--display);letter-spacing:.12em;text-transform:uppercase;font-size:.72rem}.floorplan-page{--plan-bg:#fbf7ee;--plan-grid:#9a7b422e;--plan-clearance:#8fb27a;--plan-furniture-label:#fbf3e4;--plan-highchair:#f5cf5b;max-width:1400px}.floor-toolbar{flex-wrap:wrap;align-items:center;gap:.35rem;margin:0 0 1rem;display:flex}.floor-toolbar .btn{letter-spacing:.06em;padding:.35rem .7rem;font-size:.68rem}.floor-toolbar .btn:disabled{opacity:.4;cursor:default;transform:none}.floor-toolbar-label{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin-right:.2rem;font-size:.72rem}.floor-toolbar-spacer{flex:1}.floor-legend{color:var(--ink-soft);flex-wrap:wrap;gap:.25rem 1rem;margin:-.4rem 0 1rem;padding:0;font-size:.72rem;list-style:none;display:flex}.floor-legend li{align-items:center;gap:.3rem;display:inline-flex}.floor-legend-swatch{border:1px solid var(--walnut);border-radius:2px;width:.8rem;height:.8rem}.floor-legend-swatch.editable{cursor:pointer;width:1rem;height:1rem;margin:0;position:relative}.floor-legend-swatch.editable:hover{outline:2px solid var(--gold);outline-offset:1px}.floor-legend-swatch.editable input{opacity:0;cursor:pointer;border:none;width:100%;height:100%;padding:0;position:absolute;inset:0}.floor-legend-reset{font:inherit;color:var(--oxblood);cursor:pointer;background:0 0;border:none;padding:0;text-decoration:underline}.floor-layout{grid-template-columns:minmax(0,1fr) 17rem;align-items:start;gap:1.25rem;display:grid}.floor-canvas{border:1px solid var(--parchment-edge);touch-action:none;-webkit-user-select:none;user-select:none;border-radius:4px;width:100%;height:auto;display:block}.floor-item{cursor:grab}.floor-item:active{cursor:grabbing}.floor-item.locked,.floor-item.locked:active{cursor:not-allowed}.floor-lock{background:#c9a86a1f;border-radius:3px;padding:.35rem .5rem}.floor-fieldset{border:none;min-width:0;margin:0;padding:0}.floor-fieldset:disabled{opacity:.55}.floor-side .btn:disabled{opacity:.4;cursor:default;transform:none}.floor-side-column{flex-direction:column;gap:.75rem;display:flex;position:sticky;top:1rem}.floor-side-column .drafts-panel{max-width:none;margin:0}.floor-side{background:var(--cream);border:1px solid var(--parchment-edge);border-radius:4px;padding:.9rem}.floor-inspector h3{font-family:var(--display);letter-spacing:.08em;text-transform:uppercase;margin:0 0 .75rem;font-size:.85rem}.floor-size{background:#c9a86a1f;border-radius:3px;grid-template-columns:auto 1fr;gap:.15rem .6rem;margin:0 0 .8rem;padding:.45rem .6rem;font-size:.8rem;display:grid}.floor-size dt{color:var(--ink-soft);align-self:center;font-size:.72rem}.floor-size dd{margin:0;font-weight:600}.floor-field{letter-spacing:normal;text-transform:none;color:var(--ink);margin:0 0 .6rem;font-family:inherit;font-size:.8rem;display:block}.floor-field>span{color:var(--ink-soft);margin-bottom:.15rem;font-size:.72rem;display:block}.floor-field input{width:100%;font:inherit;padding:.25rem .4rem}.floor-row{align-items:center;gap:.4rem;display:flex}.floor-row>*{flex:1;min-width:0}.floor-row .btn{letter-spacing:.04em;flex:none;padding:.3rem .5rem;font-size:.66rem}.floor-check{letter-spacing:normal;text-transform:none;color:var(--ink);align-items:center;gap:.35rem;margin:0 0 .4rem;font-family:inherit;font-size:.8rem;display:flex}.floor-guests{margin:0 0 .8rem;font-size:.78rem}.floor-guests h4{font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-soft);margin:0 0 .3rem;font-size:.7rem}.floor-guests ol{margin:0;padding:0;list-style:none}.floor-guests li{border-bottom:1px dotted var(--parchment-edge);gap:.5rem;padding:.1rem 0;display:flex}.floor-guests-where{color:var(--ink-soft);flex:0 0 3.6rem;font-size:.7rem}.floor-guests-highchair{color:var(--walnut);font-size:.68rem;display:block}.floor-highchair-key{text-align:center;background:var(--plan-highchair);border:1px solid var(--walnut);border-radius:3px;width:1.1em;font-size:.75em;font-weight:700;line-height:1.1em;display:inline-block}.floor-guests-empty{color:var(--parchment-edge);font-style:italic}.floor-guests-note{margin:0 0 .8rem}.floor-tip{color:var(--ink-soft);margin:.75rem 0 0;font-size:.72rem}@media (width<=900px){.floor-layout{grid-template-columns:minmax(0,1fr)}.floor-side-column{position:static}}.seating-page{max-width:1400px}.ceremony-page{max-width:1900px}.ceremony-sections{grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;min-width:1100px;display:grid}.seating-layout{grid-template-columns:minmax(11rem,15rem) minmax(0,1fr);align-items:start;gap:1.25rem;display:grid}.unseated-rail{max-height:calc(100vh - 2rem);position:sticky;top:1rem;overflow-y:auto}.reception-scroll,.ceremony-scroll{-webkit-overflow-scrolling:touch;overflow-x:auto}.scroll-hint{text-align:center;color:var(--ink-soft);margin:0 0 .5rem;font-size:.75rem;font-style:italic;display:none}.reception-room{--ft:28px;margin:0 auto;position:relative}.reception-placed{position:absolute}.table-card{flex-direction:column;gap:4px;width:258px;display:flex}.table-card-end{align-self:center;width:104px}.table-card-body{height:calc(var(--ft) * var(--table-len));grid-template-columns:104px 42px 104px;gap:4px;display:grid}.table-card-side{flex-direction:column;gap:4px;display:flex}.table-card-side>*{flex:1}.table-card-label{background:var(--parchment);border:1px solid var(--gold-deep);font-family:var(--display);letter-spacing:.1em;text-transform:uppercase;writing-mode:vertical-rl;border-radius:3px;justify-content:center;align-items:center;font-size:.6rem;display:flex}.sweetheart-table{border:1px solid var(--gold-deep);background:#c8dcf059;border-radius:4px;grid-template-rows:1fr 1fr;gap:4px;height:108px;padding:6px;display:grid}.dance-floor{border:1px dashed var(--gold-deep);height:52px;font-family:var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-soft);background:#c9a86a24;border-radius:4px;justify-content:center;align-items:center;font-size:.72rem;display:flex}.dj-box{border:1px solid var(--gold-deep);background:var(--parchment);height:52px;font-family:var(--display);letter-spacing:.22em;color:var(--ink-soft);border-radius:4px;justify-content:center;align-items:center;font-size:.72rem;display:flex}.seat-meal{font-size:.62rem;line-height:1;position:absolute;top:.15rem;left:.2rem}.seating-toggle{justify-content:center;display:flex}.seating-meals{flex-wrap:wrap;justify-content:center;gap:.25rem 1.1rem;margin:0 0 .9rem;font-size:.88rem;display:flex}.seating-layout.simple{grid-template-columns:minmax(0,1fr)}.seat-simple{border:1px solid var(--parchment-edge);background:var(--cream);text-align:center;border-radius:3px;flex-direction:column;justify-content:center;min-height:2.6rem;padding:.2rem .3rem;font-size:.72rem;line-height:1.25;display:flex;position:relative;overflow:hidden}.seat-simple.empty{background:0 0;border-style:dashed}.seating-warning{border:1px solid var(--oxblood);background:#6e2b3b12;border-radius:4px;max-width:48rem;margin:0 auto 1rem;padding:.6rem .9rem;font-size:.85rem}.seating-warning .btn{margin-left:.5rem;padding:.3rem .7rem;font-size:.7rem}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;filter:none;transition:none;transform:none}.candle-glow{animation:none}.motes,.sparkles{display:none}.wax-seal,.wax-done-text{animation:none}.wax-spark{display:none}}@media (width<=640px){.section{padding:2.75rem 1.1rem}.panel{margin:1.25rem auto;padding:2.25rem 1.15rem}.chapter-title{margin:.4rem 0 1.25rem;font-size:1.8rem}.chapter-label{letter-spacing:.28em}.divider{margin:1.25rem 0}.seating-layout{grid-template-columns:minmax(0,1fr)}.scroll-hint{display:block}.unseated-rail{max-height:60vh;position:static}}
