.inv-phone{aspect-ratio:9/18.5;background:var(--color-camera-ground);border-radius:2.6rem;width:min(100%,18rem);padding:.55rem;box-shadow:inset 0 0 0 1px #ffffff12,0 40px 80px #24232040}.inv-glass{background:linear-gradient(170deg, var(--color-warm-ivory), var(--color-sand));perspective:900px;border-radius:2.1rem;height:100%;position:relative;overflow:hidden}.inv-notch{z-index:5;background:var(--color-camera-ground);border-radius:9999px;width:4.5rem;height:1.2rem;position:absolute;top:.6rem;left:50%;translate:-50%}.inv-card{background:var(--color-soft-white);color:var(--color-charcoal);text-align:center;border-radius:1rem;flex-direction:column;justify-content:center;align-items:center;gap:.45rem;padding:1.25rem .8rem;display:flex;position:absolute;inset:2.6rem .8rem 1.1rem;box-shadow:0 14px 30px #2423201f}.inv-card:before{content:"";pointer-events:none;border:1px solid #2423201f;border-radius:.65rem;position:absolute;inset:.45rem}.inv-kicker{letter-spacing:.24em;text-transform:uppercase;color:var(--color-terracotta-deep);font-size:.55rem;font-weight:700}.inv-couple{font-size:1.5rem;font-weight:700;line-height:1.8rem}.inv-rule{background:var(--color-terracotta);width:2rem;height:1px}.inv-date{font-family:var(--font-mono);letter-spacing:.06em;color:var(--color-taupe-deep);font-size:.6rem}.inv-count{grid-template-columns:repeat(4,minmax(0,1fr));gap:.3rem;width:100%;margin-top:.5rem;display:grid}.inv-cell{background:var(--color-warm-ivory);border-radius:.5rem;flex-direction:column;align-items:center;padding:.35rem 0;display:flex}.inv-num{height:1.2rem;font-family:var(--font-mono);font-size:1rem;font-weight:700;line-height:1.2rem;display:flex;overflow:hidden}.inv-roll{height:1.2rem;display:block;overflow:hidden}.inv-roll>span{word-break:break-all;width:1ch;display:block}.inv-unit{letter-spacing:.1em;text-transform:uppercase;color:var(--color-taupe-deep);font-size:.5rem}.inv-extras{flex-wrap:wrap;justify-content:center;gap:.35rem;margin-top:.4rem;display:flex}.inv-chip{border:1px solid #24232026;border-radius:9999px;align-items:center;gap:.35rem;padding:.3rem .55rem;font-size:.58rem;display:inline-flex}.inv-pin{background:var(--color-terracotta);border-radius:50% 50% 50% 0;width:.5rem;height:.5rem;rotate:-45deg}.inv-eq{align-items:flex-end;gap:2px;height:.7rem;display:inline-flex}.inv-eq i{background:var(--color-terracotta);transform-origin:bottom;width:2px;height:100%;transform:scaleY(.55)}.inv-eq-lg{gap:5px;height:2.75rem}.inv-eq-lg i{border-radius:3px;width:6px}.inv-envelope{z-index:2;background:linear-gradient(160deg, #e5dfd5, var(--color-sand));opacity:0;visibility:hidden;border-radius:.7rem;height:40%;position:absolute;top:30%;left:.8rem;right:.8rem;transform:translateY(40%);box-shadow:0 18px 40px #24232033}.inv-env-flap{clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;background:linear-gradient(#d9d0c4,#cdc3b6);height:62%;position:absolute;inset:0 0 auto;transform:rotateX(180deg)}.inv-env-label{color:var(--color-charcoal);flex-direction:column;align-items:center;gap:.15rem;display:flex;position:absolute;inset:auto 0 14%}.inv-env-to{letter-spacing:.2em;text-transform:uppercase;color:var(--color-taupe-deep);font-size:.5rem}.inv-env-guest{font-size:.85rem;font-weight:700}.inv-env-seal{background:var(--color-terracotta-deep);width:1.8rem;height:1.8rem;color:var(--color-soft-white);opacity:0;border-radius:9999px;place-items:center;font-size:.75rem;font-weight:700;display:grid;position:absolute;top:60%;left:50%;translate:-50% -50%}[data-phase=waiting] .inv-phone{opacity:0;transform:translateY(2rem)}[data-phase=seen] .inv-phone{transition:opacity .7s ease .2s, transform 1.1s var(--ease-expo) .2s}[data-phase=waiting] .inv-envelope{opacity:1;visibility:visible;transform:none}[data-phase=seen] .inv-envelope{transition:opacity .6s ease 2.1s, transform .9s var(--ease-expo) 2.1s, visibility 0s linear 2.7s}[data-phase=waiting] .inv-env-seal{opacity:1}[data-phase=seen] .inv-env-seal{transition:opacity .25s 1.1s}[data-phase=waiting] .inv-env-flap{transform:rotateX(0)}[data-phase=seen] .inv-env-flap{transition:transform .9s var(--ease-expo) 1.3s}[data-phase=waiting] .inv-card{opacity:0;transform:translateY(18%)scale(.92)}[data-phase=seen] .inv-card{transition:opacity .5s ease 1.8s, transform 1.1s var(--ease-expo) 1.8s}.inv-feature{border:1px solid var(--border);background:var(--surface);border-radius:1.5rem;padding:1.25rem 1.25rem 1.75rem}.inv-art{aspect-ratio:4/3;background:var(--background);border-radius:1rem;display:block;position:relative;overflow:hidden}.inv-art-story>span{aspect-ratio:4/5;background:var(--color-soft-white);width:34%;translate:calc(-50% + var(--x)) -50%;rotate:var(--r);padding:.3rem .3rem 1rem;position:absolute;top:50%;left:50%;box-shadow:0 10px 24px #24232029}.inv-art-story>span:before{content:"";background:linear-gradient(160deg, var(--color-sand), #878b87 55%, #424a4c);height:100%;display:block}.inv-art-story>span:first-child{--x:-38%;--r:-10deg}.inv-art-story>span:nth-child(2){--x:38%;--r:9deg}.inv-art-story>span:nth-child(2):before{background:linear-gradient(160deg, #e5dfd5, var(--color-sand), #aaa094)}.inv-art-story>span:nth-child(3){--x:0%;--r:-2deg}.inv-art-story>span:nth-child(3):before{background:linear-gradient(160deg, #424a4c, #2c302f 60%, var(--color-camera-ground))}.inv-art-map{background:repeating-linear-gradient(0deg,#2423200d 0 1px,#0000 1px 22px),repeating-linear-gradient(90deg,#2423200d 0 1px,#0000 1px 22px);position:absolute;inset:0}.inv-art-map svg{width:100%;height:100%;position:absolute;inset:0}.inv-art-map path{fill:none;stroke:var(--color-sand);stroke-width:9px;stroke-linecap:round}.inv-art-pin{background:var(--color-terracotta);border-radius:50% 50% 50% 0;width:1.7rem;height:1.7rem;position:absolute;top:38%;left:50%;translate:-50% -50%;rotate:-45deg;box-shadow:0 8px 16px #a2503a59}.inv-art-pin:after{content:"";background:var(--color-soft-white);border-radius:9999px;position:absolute;inset:30%}.inv-art-map:after{content:"";border:1.5px solid var(--color-terracotta);opacity:.5;border-radius:50%;width:1.2rem;height:.5rem;position:absolute;top:calc(38% + 1.3rem);left:50%;translate:-50% -50%}.inv-art-days{background:var(--color-charcoal);color:var(--color-soft-white);font-family:var(--font-mono);border-radius:.5rem;padding:.25rem .6rem;font-size:.9rem;font-weight:700;position:absolute;bottom:.75rem;right:.75rem}.inv-art-music{justify-content:center;align-items:center;gap:1.5rem;display:flex;position:absolute;inset:0}.inv-art-disc{aspect-ratio:1;background:radial-gradient(circle, var(--color-soft-white) 0 4%, var(--color-terracotta) 4.5% 18%, transparent 18.5%), repeating-radial-gradient(circle, #2c302f 0 2px, var(--color-camera-ground) 2px 4px);border-radius:9999px;width:48%;box-shadow:0 12px 26px #24232040}[data-phase=waiting] .inv-art-pin{opacity:0;transform:translateY(-3rem)}[data-phase=seen] .inv-art-pin{transition:opacity .4s ease calc(var(--d,0s) + .5s), transform .9s var(--ease-expo) calc(var(--d,0s) + .5s)}.inv-merge{align-items:center;gap:1rem;display:grid}@media (min-width:48rem){.inv-merge{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr)}}.inv-sheet{border:1px solid var(--border-strong);background:var(--color-soft-white);color:var(--color-charcoal);box-shadow:var(--shadow-soft);border-radius:1rem;font-size:.75rem;overflow:hidden}.inv-sheet-file{background:var(--color-warm-ivory);font-family:var(--font-mono);color:var(--color-taupe-deep);border-bottom:1px solid #2423201a;padding:.6rem .9rem;font-size:.65rem}.inv-sheet-row{border-bottom:1px solid #24232014;grid-template-columns:1.25rem minmax(0,1fr) auto;gap:.6rem;padding:.6rem .9rem;display:grid}.inv-sheet-row:last-child{border-bottom:0}.inv-sheet-head{letter-spacing:.12em;text-transform:uppercase;color:var(--color-taupe-deep);font-size:.58rem;font-weight:700}.inv-merge-arrow{color:var(--accent);justify-self:center;font-size:1.5rem;rotate:90deg}@media (min-width:48rem){.inv-merge-arrow{rotate:0deg}}.inv-chat{background:var(--color-charcoal);border-radius:1.25rem;padding:1rem}.inv-chat-head{color:#f7f3ecb3;align-items:center;gap:.4rem;margin-bottom:.4rem;font-size:.7rem;display:flex}.inv-bubble{background:var(--color-warm-ivory);max-width:94%;color:var(--color-charcoal);border-radius:.9rem .9rem .25rem;margin:.5rem 0 0 auto;padding:.6rem .8rem;font-size:.75rem;line-height:1.1rem}.inv-bubble b{color:var(--color-terracotta-deep)}.inv-bubble-link{font-family:var(--font-mono);color:var(--color-taupe-deep);margin-top:.3rem;font-size:.6rem;text-decoration:underline;display:block}[data-phase=seen] .inv-sheet-data{animation:inv-hl 1.3s ease calc(.6s + var(--i,0) * .9s) both}[data-phase=waiting] .inv-bubble{opacity:0;transform:translateY(.6rem)scale(.96)}[data-phase=seen] .inv-bubble{transform-origin:100% 100%;transition:opacity .5s ease calc(1s + var(--i,0) * .9s), transform .8s var(--ease-expo) calc(1s + var(--i,0) * .9s)}@keyframes inv-hl{0%,to{background:0 0}30%,60%{background:#bd654c24}}.inv-rsvp{border:1px solid var(--border);background:var(--surface);border-radius:1.75rem;padding:1.75rem}@media (min-width:40rem){.inv-rsvp{padding:2.25rem}}.inv-rsvp-yes,.inv-rsvp-no{border:1px solid var(--border-strong);text-align:center;border-radius:.9rem;place-items:center;min-height:2.75rem;padding:.5rem;font-size:.85rem;font-weight:700;display:grid}.inv-rsvp-yes{border-color:var(--primary);background:var(--primary);color:var(--primary-foreground)}.inv-rsvp-no{color:var(--muted)}.inv-stepper{border:1px solid var(--border);border-radius:.9rem;justify-content:space-between;align-items:center;padding:.75rem 1rem;display:flex}.inv-stepper-ctrl{align-items:center;gap:1rem;font-weight:700;display:flex}.inv-stepper-num{font-family:var(--font-mono);display:inline-grid}.inv-stepper-num>span{grid-area:1/1}.inv-n1{opacity:0}.inv-thanks{background:var(--success-bg);color:var(--success);text-align:center;border-radius:.75rem;margin-top:1.25rem;padding:.6rem .9rem;font-size:.8rem;font-weight:700}.inv-dash{background:var(--background);color:var(--foreground);border-radius:1.75rem;padding:1.75rem}@media (min-width:40rem){.inv-dash{padding:2.25rem}}.inv-dash-num{font-variant-numeric:tabular-nums;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;line-height:1;display:block}.inv-wishes{height:9.5rem;overflow:hidden;-webkit-mask-image:linear-gradient(#0000,#000 15% 85%,#0000);mask-image:linear-gradient(#0000,#000 15% 85%,#0000)}.inv-wish{border-bottom:1px solid var(--border);padding:.75rem 0;display:block}[data-phase=seen] .inv-rsvp-yes{animation:.6s 1.1s backwards inv-pick}[data-phase=seen] .inv-n1{animation:1.9s step-end inv-keep}[data-phase=seen] .inv-n2{animation:1.9s step-end inv-hide}[data-phase=seen] .inv-stepper-plus{animation:.4s 1.7s inv-tap}[data-phase=seen] .inv-thanks{animation:inv-pop .7s var(--ease-expo) 2.3s backwards}@keyframes inv-pick{0%{color:var(--foreground);border-color:var(--border-strong);background:0 0;scale:1}40%{scale:.94}to{scale:1}}@keyframes inv-keep{0%,to{opacity:1}}@keyframes inv-hide{0%,to{opacity:0}}@keyframes inv-tap{50%{color:var(--accent-text);scale:.8}}@keyframes inv-pop{0%{opacity:0;transform:translateY(.5rem)}}.inv-step{max-width:28rem}.inv-board{border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-soft);border-radius:1.75rem;padding:1.5rem}.inv-board-qr{background:var(--color-soft-white);border-radius:.4rem;width:2.4rem;padding:.2rem;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #2423201f}.inv-board-scan{background:var(--color-terracotta-light);height:2px;box-shadow:0 0 8px var(--color-terracotta-light);position:absolute;top:50%;left:0;right:0}.inv-board-bar{background:var(--border);border-radius:9999px;height:.35rem;margin-top:1rem;display:block}.inv-board-bar>span{border-radius:inherit;background:var(--accent);transform-origin:0;width:72.5%;height:100%;display:block}[data-phase=waiting] .inv-board-bar>span{transform:scaleX(0)}[data-phase=seen] .inv-board-bar>span{transition:transform 1.6s var(--ease-expo) .6s}.inv-board-row{border-top:1px solid var(--border);grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:.75rem;padding:.7rem 0;font-size:.85rem;display:grid}.inv-status{display:inline-grid}.inv-status>span{letter-spacing:.08em;text-align:center;text-transform:uppercase;border-radius:9999px;grid-area:1/1;padding:.2rem .55rem;font-size:.6rem;font-weight:700}.inv-status-wait{border:1px solid var(--border-strong);color:var(--subtle);opacity:0}.inv-status-in{background:var(--success-bg);color:var(--success)}.inv-souvenir{color:var(--muted);align-items:center;gap:.35rem;font-size:.7rem;display:inline-flex}.inv-check{border:1.5px solid var(--success);background:var(--success);border-radius:.25rem;width:.9rem;height:.9rem;position:relative}.inv-check:after{content:"";border:solid var(--color-soft-white);border-width:0 2px 2px 0;width:.22rem;height:.45rem;position:absolute;top:.02rem;left:.2rem;rotate:45deg}.inv-camlink{border:1px solid var(--border);border-radius:1.25rem;align-items:center;gap:1rem;padding:1rem 1.25rem;transition:background-color .3s,border-color .3s;display:flex}.inv-camlink:hover{border-color:var(--border-strong);background:var(--surface)}.inv-camlink:focus-visible{outline:2px solid var(--color-terracotta);outline-offset:3px}.inv-viewfinder{aspect-ratio:3/4;background:linear-gradient(170deg, #424a4c, #2c302f 60%, var(--color-camera-ground));width:4rem;color:var(--color-soft-white);border-radius:.6rem;flex-direction:column;flex-shrink:0;justify-content:space-between;align-items:center;padding:.4rem;display:flex}.inv-shutter{border:2px solid var(--color-soft-white);background:var(--color-shutter);background-clip:content-box;border-radius:9999px;width:1.1rem;height:1.1rem;padding:2px}@media (prefers-reduced-motion:no-preference){.inv-roll-ones>span{animation:10s steps(10,end) infinite inv-roll10}.inv-roll-tens>span{animation:60s steps(6,end) infinite inv-roll6}.inv-eq i{animation:.9s ease-in-out infinite alternate inv-eq}.inv-eq i:nth-child(2){animation-duration:.7s;animation-delay:-.3s}.inv-eq i:nth-child(3){animation-duration:1.1s;animation-delay:-.6s}.inv-eq i:nth-child(4){animation-duration:.8s;animation-delay:-.2s}.inv-eq i:nth-child(5){animation-duration:1s;animation-delay:-.5s}.inv-art-story>span{animation:5s ease-in-out infinite alternate inv-fan}.inv-art-map:after{animation:2.4s ease-out 1.5s infinite inv-ripple}.inv-art-disc{animation:6s linear infinite inv-spin}.inv-wishes-track{animation:22s linear infinite inv-scroll}.inv-board-scan{animation:1.6s ease-in-out infinite alternate inv-scan}.inv-status-wait{animation:inv-wait 9s ease calc(var(--i,0) * 1.4s) infinite both}.inv-status-in{animation:inv-in 9s ease calc(var(--i,0) * 1.4s) infinite both}.inv-board-row .inv-check{animation:inv-tick 9s ease calc(var(--i,0) * 1.4s) infinite both}.inv-board-row .inv-check:after{animation:inv-tick-mark 9s ease calc(var(--i,0) * 1.4s) infinite both}.inv-shutter{animation:3s 2s infinite inv-shutter}}@keyframes inv-roll10{to{transform:translateY(-100%)}}@keyframes inv-roll6{to{transform:translateY(-100%)}}@keyframes inv-eq{0%{transform:scaleY(.25)}to{transform:scaleY(1)}}@keyframes inv-fan{to{rotate:calc(var(--r) * 1.8);translate:calc(-50% + var(--x) * 1.3) -52%}}@keyframes inv-ripple{0%{opacity:.6;scale:1}to{opacity:0;scale:3}}@keyframes inv-spin{to{rotate:360deg}}@keyframes inv-scroll{to{transform:translateY(-50%)}}@keyframes inv-scan{0%{top:10%}to{top:90%}}@keyframes inv-wait{0%,22%{opacity:1}25%,92%{opacity:0}96%,to{opacity:1}}@keyframes inv-in{0%,22%{opacity:0}25%,92%{opacity:1}96%,to{opacity:0}}@keyframes inv-tick{0%,32%{background:0 0}35%,92%{background:var(--success)}96%,to{background:0 0}}@keyframes inv-tick-mark{0%,32%{opacity:0}35%,92%{opacity:1}96%,to{opacity:0}}@keyframes inv-shutter{0%,85%,to{scale:1}90%{scale:.8}}
