:root{--paper:#f4eee4;--paper2:#ebe2d3;--ink:#3a1c10;--ink2:#6e5446;--wine:#6b1a20;--wine2:#4a1015;--gold:#a8854a;--line:#3a1c1024;--surface:#fbf7f0;--on-dark:#fbf5ec;--shadow-lift:0 18px 40px #3a1c1038;--radius:10px;--serif:"Gilda Display", Georgia, serif;--sans:"Albert Sans", system-ui, sans-serif;--script:"Ms Madi", cursive;--mark:"Josefin Sans", sans-serif;--pad:clamp(16px, 4vw, 48px);--max:1180px;--sec:clamp(40px, 7vw, 80px);--header-h:64px}@property --measure{syntax:"<length>";inherits:true;initial-value:0}*{box-sizing:border-box;margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;background:var(--paper);overflow-x:clip}body{background:var(--paper);color:var(--ink);font:400 clamp(.94rem, .9rem + .2vw, 1.03rem)/1.6 var(--sans);overflow-x:clip}img{max-width:100%;display:block}a{color:inherit}button{font:inherit;color:inherit;cursor:pointer}:focus-visible{outline:2px solid var(--wine);outline-offset:3px;border-radius:4px}.wrap{max-width:var(--max);padding:0 var(--pad);margin:0 auto}h1,h2,h3{font-family:var(--serif);letter-spacing:-.01em;font-weight:400;line-height:1.08}h2{text-wrap:pretty;font-size:clamp(1.55rem,1.2rem + 1.4vw,2.4rem)}.handwritten{font-family:var(--script);color:var(--wine);font-size:clamp(1.5rem,1.2rem + .9vw,2rem);line-height:1}.btn{border-radius:var(--radius);background:var(--wine);color:var(--on-dark);font:600 clamp(.88rem, .85rem + .15vw, .98rem)/1 var(--sans);letter-spacing:.01em;border:1px solid var(--wine);align-items:center;gap:10px;padding:13px 22px;text-decoration:none;transition:background .2s,transform .2s;display:inline-flex}.btn:hover{background:var(--wine2)}.btn.outline{color:var(--ink);background:0 0;border-color:#3a1c1059}.btn.outline:hover{background:#3a1c100f}.site-header{z-index:30;-webkit-backdrop-filter:blur(10px);background:#f4eee4db;border-bottom:1px solid #0000;transition:border-color .3s;position:sticky;top:0}.site-header.is-scrolled{border-bottom-color:var(--line)}.site-header .wrap{height:var(--header-h);justify-content:space-between;align-items:center;gap:20px;display:flex}.logo{flex-direction:column;line-height:1;text-decoration:none;display:flex}.logo b{font:600 1.32rem/1 var(--mark);letter-spacing:.12em}.site-header .btn{padding:10px 18px}.hero{isolation:isolate;min-height:calc(100svh - var(--header-h) - 1px);background:linear-gradient(180deg, var(--paper) 0%, #f1e9dc 55%, var(--paper) 100%);flex-direction:column;justify-content:center;display:flex;position:relative;overflow:clip}.hero .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto;grid-template-areas:"copy tray stage";align-items:center;gap:clamp(16px,3vw,44px);width:100%;padding-top:clamp(10px,2vh,24px);padding-bottom:clamp(14px,2.5vh,28px);display:grid}.hero-copy{--h1-size:clamp(1.95rem, 1.4rem + 2vw, 3.3rem);grid-area:copy;align-self:center;max-width:440px}.hero-copy .handwritten{margin-bottom:10px}.hero-copy h1{font-size:var(--h1-size)}@media (min-width:961px){.hero-copy h1{white-space:nowrap}}.hero-copy p.lede{color:var(--ink2);max-width:40ch;margin-top:16px}@media (min-width:761px){.hero-copy p.lede{max-width:none;width:calc(var(--h1-size) * 9.6)}}.actions{flex-wrap:wrap;gap:10px;margin-top:22px;display:flex}.booth{--stage-h:clamp(390px, calc((100svh - 160px) * .9), 570px);flex-direction:column;grid-area:stage;align-items:center;display:flex;position:relative}.booth:before{content:"";z-index:-1;width:calc(var(--stage-h) * .36);height:calc(var(--stage-h) * .62);pointer-events:none;background:radial-gradient(closest-side,#ffe2b68c,#ffe2b633 50%,#0000);position:absolute;top:74%;left:49.3%;transform:translate(-50%,-50%)}.booth-stage{z-index:2;height:var(--stage-h);aspect-ratio:420/1742;transform-origin:var(--zx,50%) var(--zy,40%);transition:transform .75s cubic-bezier(.3,.1,.2,1);position:relative}.booth-stage:not(.is-placed) :is(.booth-screen,.booth-glow){visibility:hidden}.booth-stage.is-zoomed{transform:scale(var(--zoom,1.6));z-index:7}.booth-stage picture img{height:auto;transform:scaleX(-1)}.booth-glow{z-index:1;pointer-events:none;opacity:.55;background:radial-gradient(closest-side,#ffe2b6bf,#ffd6a047 55%,#0000);border-radius:50%;transition:opacity .25s,transform .25s;position:absolute;transform:translate(-50%,-50%)scale(1)}.booth-glow.is-lit{opacity:1;transform:translate(-50%,-50%)scale(1.25)}.booth-screen{transform-origin:0 0;z-index:3;width:220px;height:310px;color:var(--ink);text-align:center;background:#f3ece1;border:0;border-radius:5px;padding:0;position:absolute;top:0;left:0;overflow:hidden}.booth-screen:focus-visible{outline:3px solid var(--wine);outline-offset:2px}.booth-screen>div{opacity:0;flex-direction:column;justify-content:center;align-items:center;gap:10px;padding:18px;transition:opacity .22s;display:flex;position:absolute;inset:0}.booth-screen[data-state=idle] .panel-idle,.booth-screen[data-state=ready] .panel-ready,.booth-screen[data-state=count] .panel-count,.booth-screen[data-state=shot] .panel-shot,.booth-screen[data-state=print] .panel-print,.booth-screen[data-state=thanks] .panel-thanks{opacity:1}.wordmark{font:600 34px/1 var(--mark);letter-spacing:.12em;margin-left:.2em}.wordmark+small{font:500 7.5px/1 var(--sans);letter-spacing:.08em;color:var(--ink2);margin-top:-4px}.panel-idle .tap-prompt{font:600 22px/1.2 var(--sans);letter-spacing:.06em;color:var(--wine);margin-top:30px;animation:1.6s ease-in-out infinite pulse}.panel-idle .tap-prompt i{border:4px solid var(--wine);border-radius:50%;width:78px;height:78px;margin:0 auto 12px;display:block;position:relative}.panel-idle .tap-prompt i:after{content:"";background:var(--wine);border-radius:50%;position:absolute;inset:10px}@keyframes pulse{50%{opacity:.45}}.panel-ready b{font:400 52px/1.1 var(--serif);color:var(--wine)}.panel-count b{font:400 190px/1 var(--serif);color:var(--wine)}.booth-screen>.panel-shot{background:#fff;padding:0}.panel-shot img{object-fit:cover;width:100%;height:100%}.panel-print b{font:400 22px/1.15 var(--serif)}.panel-print .progress-bar{background:var(--line);border-radius:2px;width:120px;height:4px;overflow:hidden}.panel-print .progress-bar i{background:var(--wine);width:0;height:100%;display:block}.booth-screen[data-state=print] .progress-bar i{animation:1.3s linear forwards fill}@keyframes fill{to{width:100%}}.panel-thanks p{font:600 12px/1.45 var(--sans);letter-spacing:.04em}.panel-thanks .heart{width:18px;height:16px;color:var(--wine)}.panel-thanks small{font:600 11px/1 var(--sans);letter-spacing:.06em}.tray-column{flex-direction:column;grid-area:tray;justify-content:center;place-self:stretch end;align-items:center;gap:14px;width:250px;margin-right:32px;display:flex;position:relative}.tray{aspect-ratio:3/2.5;width:min(100%,250px);position:relative}.tray-print{aspect-ratio:3/2;width:84%;transform:translate(-50%, -50%) translate(var(--x,0px), var(--y,0px)) rotate(var(--r,0deg));background:#fff;padding:2.2%;position:absolute;top:50%;left:50%;box-shadow:0 1px 1px #3a1c101f,0 10px 24px #3a1c1029}.tray-print img{object-fit:cover;width:100%;height:100%}.tray-caption{text-align:center;min-height:3.4em}.tray-caption .handwritten{font-size:clamp(1.5rem,1.3rem + .6vw,1.9rem);display:block}.tray-caption small{letter-spacing:.1em;color:var(--ink2);font-size:.8rem}.is-flying{z-index:1;pointer-events:none;position:absolute}.flash{z-index:60;opacity:0;pointer-events:none;background:#fffaf2;position:fixed;inset:0}.section{padding:var(--sec) 0}.features .wrap{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);align-items:center;gap:clamp(28px,5vw,72px);display:grid}.strip-figure{justify-self:center;padding-top:34px;position:relative}.strip-figure img{width:clamp(150px,18vw,210px);height:auto;box-shadow:var(--shadow-lift);transform:rotate(-2.5deg)}.strip-clip{z-index:2;width:62px;height:52px;position:absolute;top:0;left:50%;transform:translate(-50%)rotate(-2.5deg)}.features{--measure:52ch;padding-top:clamp(20px,3vw,36px)}.features h2{max-width:var(--measure)}.features .intro{color:var(--ink2);max-width:var(--measure);margin-top:14px}.kit-list{grid-template-columns:1fr 1fr;gap:22px 32px;margin-top:28px;padding:0;list-style:none;display:grid}.kit-list li{border-top:1px solid var(--line);padding-top:14px}.kit-list b{font:400 1.22rem/1.2 var(--serif);display:block}.kit-list span{color:var(--ink2);margin-top:4px;font-size:.92rem;display:block}.designer .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:clamp(28px,5vw,64px);display:grid}.designer{--measure:46ch}.designer h2{max-width:var(--measure)}.designer .intro{color:var(--ink2);max-width:var(--measure);margin-top:12px}.designer-form{gap:16px;margin-top:24px;display:grid}.field-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}label.field{letter-spacing:.03em;color:var(--ink2);gap:6px;font-size:.8rem;font-weight:600;display:grid}.field input{font:500 1rem/1.2 var(--sans);color:var(--ink);border-radius:var(--radius);background:var(--surface);letter-spacing:0;border:1px solid #3a1c1038;width:100%;min-width:0;padding:12px 14px}.field input:focus{border-color:var(--wine);outline:none;box-shadow:0 0 0 3px #6b1a2024}.segmented{border-radius:var(--radius);background:var(--surface);border:1px solid #3a1c102e;padding:4px;display:inline-flex}.segmented button{border-radius:calc(var(--radius) - 4px);background:0 0;border:0;padding:9px 16px;font-size:.88rem;font-weight:600}.segmented button[aria-pressed=true]{background:var(--ink);color:var(--on-dark)}.options{flex-wrap:wrap;align-items:center;gap:14px 24px;display:flex}.swatches{gap:10px;display:flex}.swatches button{border:2px solid var(--surface);background:var(--c);border-radius:50%;width:34px;height:34px;box-shadow:0 0 0 1px #3a1c1040}.swatches button[aria-pressed=true]{box-shadow:0 0 0 2px var(--ink)}.designer .actions{margin-top:6px}.preview{--strip-w:clamp(160px, 15vw, 200px);min-height:calc(var(--strip-w) * 3 + 40px);justify-content:center;align-items:center;display:flex}.strip-template{width:var(--strip-w);aspect-ratio:2/6;background:var(--tb);color:var(--tf);box-shadow:var(--shadow-lift);flex-direction:column;gap:4.5%;padding:7% 7% 0;transition:background .3s,color .3s;display:flex}.strip-template img{aspect-ratio:345/236;object-fit:cover;width:100%}.strip-template .strip-footer{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:6px;padding-bottom:6%;display:flex}.strip-template .names{font:400 clamp(.95rem, 1.15vw, 1.12rem)/1.15 var(--serif);letter-spacing:.12em;overflow-wrap:anywhere}.strip-template .names>span{display:block}.strip-template .names i{font:400 1.9em/0 var(--script);letter-spacing:0;vertical-align:-.22em;margin-right:.06em;font-style:normal}.strip-template .date{font:400 clamp(.7rem, .8vw, .82rem)/1 var(--serif);letter-spacing:.14em;white-space:nowrap}.strip-template .city{font:600 clamp(.48rem, .55vw, .56rem)/1 var(--sans);letter-spacing:.12em;opacity:.85}.print-template{aspect-ratio:3/2;width:min(100%,460px);box-shadow:var(--shadow-lift);background:#fff;position:relative;overflow:hidden}.print-template img{object-fit:cover;object-position:50% 70%;width:100%;height:100%;position:absolute;inset:0}.print-template .print-header{background:var(--tb);color:var(--tf);align-items:center;gap:12px;padding:3.5% 4.5%;transition:background .3s,color .3s;display:flex;position:absolute;top:0;left:0;right:0}.print-template .monogram{font:400 clamp(1.7rem, 3vw, 2.3rem)/1 var(--serif);flex:none;width:1.5em;height:1.2em;position:relative}.print-template .monogram span{position:absolute;top:0;left:0}.print-template .monogram em{font:400 1.15em/1 var(--script);font-style:normal;position:absolute;top:.18em;left:.5em}.print-template .names{font:400 clamp(.8rem, 1.5vw, 1.05rem)/1.2 var(--serif);letter-spacing:.08em}.print-template .date{font:400 clamp(.72rem, 1.2vw, .88rem)/1 var(--serif);letter-spacing:.1em;margin-top:3px;font-style:italic}.preview small{display:block}.preview-body{flex-direction:column;align-items:center;gap:14px;width:100%;display:flex}.preview-body>small{color:var(--ink2);text-align:center;font-size:.78rem}.nights{--measure:46ch;background:#efe6d8}.nights .wrap{grid-template-columns:minmax(0,.95fr) minmax(0,1.8fr);align-items:start;gap:clamp(28px,3.5vw,48px);display:grid}.nights h2{max-width:var(--measure)}.nights .intro{color:var(--ink2);max-width:var(--measure);margin-top:10px}.wall{grid-template-columns:1fr 1fr;gap:clamp(24px,3vw,32px) 24px;display:grid}.wall .wall-print img{aspect-ratio:3/2;object-fit:cover;background:#fff;width:100%;height:auto;padding:7px;box-shadow:0 1px 1px #3a1c101a,0 8px 20px #3a1c101a}.wall figcaption{justify-content:space-between;align-items:baseline;gap:10px;margin-top:10px;display:flex}.wall figcaption .handwritten{font-size:1.55rem}.wall figcaption small{letter-spacing:.12em;color:var(--ink2);white-space:nowrap;font-size:.76rem}.booking{color:#f6eee3;background:var(--wine2);--measure:46ch;padding-block:clamp(40px,10vw,112px);overflow:hidden}.booking .wrap{grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(28px,5vw,64px);display:grid}.booking .handwritten{color:#e9c98f}.booking h2{max-width:var(--measure);margin-top:8px}.booking p{color:#f6eee3d1;max-width:var(--measure);margin-top:14px}.booking .actions{margin-top:24px}.booking .btn{background:var(--paper);color:var(--wine2);border-color:var(--paper)}.booking .btn:hover{background:#fff}.booking .btn.outline{color:#f6eee3;background:0 0;border-color:#f6eee373}.booking figure img{border-radius:6px;width:100%;height:auto;box-shadow:0 20px 50px #00000059}footer.site-footer{border-top:1px solid var(--line);color:var(--ink2);padding:56px 0 48px;font-size:.92rem}.footer-grid{grid-template-columns:1fr auto;gap:clamp(28px,5vw,64px);display:grid}.footer-logo{font:600 1.32rem/1 var(--mark);letter-spacing:.12em;color:var(--ink)}.footer-brand p+p{max-width:32ch;margin-top:12px}.footer-heading{font:600 .9rem/1 var(--sans);letter-spacing:.02em;color:var(--ink);margin-bottom:14px}.footer-links{gap:10px;padding:0;list-style:none;display:grid}.footer-links a{overflow-wrap:anywhere;text-decoration:none}.footer-links a:hover{color:var(--ink);text-decoration:underline}.dock{display:none}@media (max-width:960px){.hero .wrap{grid-template-columns:minmax(0,1fr) minmax(0,1fr);grid-template-areas:"copy copy""tray stage"}.hero-copy{grid-area:copy;max-width:620px}.booth{--stage-h:clamp(380px, 56vw, 560px);grid-area:stage;justify-self:center}.tray-column{grid-area:tray}.features .wrap,.designer .wrap,.nights .wrap,.booking .wrap{grid-template-columns:1fr}.features .strip-figure{order:2}}@media (max-width:760px){:root{--header-h:56px}.site-header .btn{display:none}.hero .wrap{grid-template-columns:minmax(0,1fr) auto auto minmax(0,1fr);grid-template-areas:"copy copy copy copy"".tray stage.";gap:20px;padding-top:32px;padding-bottom:28px}.hero-copy{text-align:center}.hero-copy .handwritten{margin-bottom:6px;font-size:1.45rem}.hero-copy h1{font-size:clamp(1.9rem,8.4vw,2.3rem)}.hero-copy p.lede{margin-top:10px;margin-inline:auto;font-size:.95rem}.actions{margin-top:16px}.hero .actions{justify-content:center}.booth{--stage-h:clamp(220px, calc(100svh - 500px), 360px)}.tray{width:100%}.tray-column{justify-content:center;gap:6px;width:180px;margin-right:0}.tray-caption .handwritten{font-size:1.35rem}.tray-caption small{font-size:.66rem}.kit-list{grid-template-columns:1fr 1fr;gap:16px 18px;margin-top:22px}.kit-list b{font-size:1.05rem}.kit-list span{font-size:.84rem}.strip-figure img{width:150px}.wall{scroll-snap-type:x mandatory;margin:0 calc(var(--pad) * -1);padding:0 var(--pad) 8px;scrollbar-width:none;justify-content:flex-start;gap:14px;display:flex;overflow-x:auto}.wall::-webkit-scrollbar{display:none}.wall figure{scroll-snap-align:center;flex:0 0 82%}.preview{--strip-w:156px}.dock{left:12px;right:12px;bottom:calc(10px + env(safe-area-inset-bottom));z-index:40;gap:8px;transition:transform .35s;display:flex;position:fixed;transform:translateY(140%)}.dock.is-visible{transform:none}.dock a{white-space:nowrap;flex:1;justify-content:center;box-shadow:0 10px 26px #3a1c1040}.dock a:first-child{flex:1.6}.dock .outline{background:var(--surface)}.footer-grid{grid-template-columns:1fr}.section,.site-footer{text-align:center}.section h2,.section .intro,.booking p,.footer-brand p+p{margin-inline:auto}.section .actions,.options{justify-content:center}.designer-form .field{text-align:left}.footer-links{justify-items:center}footer.site-footer{padding:40px 0 90px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}html{scroll-behavior:auto}}
