:root{font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#1d2e39;background:#f5f1e9;--ink:#192e3b;--navy:#162c3a;--muted:#50616b;--gold:#b47c31;--line:#e4dac9;--paper:#fffdf8;--serif:Georgia,"Times New Roman",serif}
*,*::before,*::after{box-sizing:border-box}
body{margin:0} [hidden]{display:none!important}
a{color:inherit} img{display:block;max-width:100%}
button,input,select,textarea{font:inherit} button{cursor:pointer}
:focus-visible{outline:3px solid #b67b34;outline-offset:3px}
button:disabled{cursor:wait;opacity:.67}
label{display:block;font-size:.86rem;font-weight:640;line-height:1.4}
input:not([type=radio]),textarea,select{display:block;width:100%;min-width:0;border:1px solid #d6cbb8;border-radius:5.4px;background:#fffefa;color:#192e3b;padding:10px 11px;min-height:44px;margin-top:6px}
textarea{resize:vertical}
input::placeholder,textarea::placeholder{color:#68747b}
input[type=date],input[type=time]{appearance:none;max-width:100%}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left}
.btn,.text-btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;line-height:1.25;border:1px solid transparent;text-decoration:none;text-align:center;font-weight:680}
.btn{border-radius:5.4px;padding:10px 14px;min-height:44px;font-size:.86rem}
.primary{color:#fff8ed;background:#213f4a}.primary:hover{background:#172f3a}
.secondary{background:#fffdfa;border-color:#d9cdbb;color:#233946}.secondary:hover{background:#f6f0e4}
.subtle{background:#f4eee3;color:#394751;border-color:#eee4d3}.subtle:hover{background:#ede3d2}
.text-btn{background:none;padding:6px 0;min-height:40px;color:inherit;font-size:.84rem}.text-btn:hover{text-decoration:underline}
.optional{font-size:.75rem;color:#5b6770;font-weight:450}
.top{min-height:65px;display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px max(23px,calc((100vw - 1210px)/2));background:#142834;color:#fff8e9;border-bottom:2px solid #a87b45}
.brand{display:flex;align-items:center;gap:8px;text-decoration:none;font-family:var(--serif);font-size:1.33rem;letter-spacing:.05em;white-space:nowrap}
.brand img{width:36px;height:36px}.brand b{font:600 .65rem system-ui;letter-spacing:.14em;color:#f2d6ac}
.demo-link{font-size:.81rem;color:#f9e5c6;text-align:right;text-underline-offset:4px}.demo-link span{margin-left:4px}
.shell{max-width:1258px;margin:0 auto;padding:0 24px}
.intro{display:flex;align-items:end;justify-content:space-between;gap:20px;padding:34px 0 23px}
.eyebrow{color:#755522;font-size:.67rem;letter-spacing:.16em;font-weight:760;margin:0 0 7px}
.eyebrow span{font-size:1.05em;padding-right:4px}
.intro h1{font:400 clamp(3.4rem,8vw,6.1rem)/.94 var(--serif);letter-spacing:-.07em;margin:0;color:#172e3a}
.intro h1 span{color:#ad7036}.intro p:last-child{margin:13px 0 0;font-size:1rem;color:var(--muted)}
.studio-actions{display:flex;flex-wrap:wrap;align-items:center;gap:9px 17px;justify-content:flex-end}
.state-pill{display:inline-block;font-size:.64rem;color:#614727;font-weight:790;letter-spacing:.1em;border:1px solid #e6d4b9;border-radius:30px;background:#f4e8d3;padding:8px 11px;white-space:nowrap}
.state-pill.live{color:#244a3b;background:#e8efe6;border-color:#d0e2d2}
.jump{display:flex;gap:8px 19px;border-block:1px solid #ddd2bf;margin-bottom:22px;flex-wrap:wrap}
.jump a{font-size:.83rem;text-decoration:none;padding:13px 0;min-height:44px;font-weight:680}
.jump a:hover{text-decoration:underline}.jump span{font-size:.68rem;color:#835c29;margin-right:4px}
.studio-grid{display:grid;grid-template-columns:minmax(0,1fr) 345px;gap:24px;align-items:start}
.work{display:grid;gap:17px}
.panel{min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:10.2px;padding:24px;scroll-margin-top:16px;box-shadow:0 9px 30px #34271407}
.panel-heading{display:flex;justify-content:space-between;align-items:center;gap:10px 14px;flex-wrap:wrap}
.panel h2,dialog h2{font:400 clamp(1.7rem,4vw,2.4rem)/1.05 var(--serif);margin:0;letter-spacing:-.04em}
.section-help,.form-help,.empty{color:var(--muted);font-size:.89rem;line-height:1.55}
.section-help{margin:9px 0 18px}.form-help{margin:14px 0 9px}.empty{padding:12px 14px;background:#f5f0e6;border-radius:5.4px;margin:13px 0 0}
.field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 14px}.field-grid .wide{grid-column:1/-1}
.button-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.feedback{font-size:.86rem;color:#285547;margin:12px 0 0;overflow-wrap:anywhere}.feedback.bad{color:#8b3232}.feedback:empty{display:none}
.preview-side{position:sticky;top:18px;border:1px solid #dfd3c1;border-radius:10.2px;padding:11px 13px 13px;background:#eae1d1;min-width:0}
.preview-label{display:flex;justify-content:space-between;align-items:center;gap:7px;color:#263c47;font-size:.65rem;font-weight:800;letter-spacing:.13em;padding:0 4px}
.preview-label i{display:inline-block;width:7px;height:7px;border-radius:50%;background:#407467;margin-right:5px}
.preview-label button{font-size:.76rem;letter-spacing:normal}
.phone{position:relative;max-width:355px;margin:auto;border:7px solid #192a32;border-radius:18px;overflow:hidden;background:#132736;box-shadow:0 7px 22px #10233339}
.phone-camera{position:absolute;left:50%;top:7px;z-index:10;background:#15242d;border-radius:9px;width:38px;height:5px;transform:translateX(-50%);pointer-events:none}
.phone-screen{overflow:auto;height:570px;max-height:70vh;min-height:390px;scrollbar-width:none}.phone-screen::-webkit-scrollbar{display:none}
.preview-caption,.studio-footer{color:#514c40;font-size:.66rem;letter-spacing:.14em;font-weight:700;text-align:center;margin:13px 0 0}.preview-caption span,.studio-footer span{color:#996027}
.studio-footer{padding:13px 0 29px}
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:14px 0}
.stats div{background:#f4eee3;border-radius:5.4px;padding:10px 4px;text-align:center;display:grid;gap:3px}
.stats strong{font:400 1.75rem/1 var(--serif)}.stats span{font-size:.7rem;font-weight:700;color:#435561}
.add-guest{display:grid;grid-template-columns:minmax(0,1fr) 101px auto;gap:9px;align-items:end}
.guest-list{list-style:none;padding:0;margin:14px 0 0;display:grid;gap:8px}
.guest-list li{padding:10px 12px;border:1px solid #e8decf;border-radius:6px;display:flex;align-items:center;justify-content:space-between;gap:6px 10px;flex-wrap:wrap}
.guest-meta{display:flex;align-items:center;gap:6px 8px;flex-wrap:wrap;min-width:0;overflow-wrap:anywhere}
.guest-meta small{color:var(--muted)}.guest-meta strong{font-size:.91rem}.guest-note{width:100%;margin:0;font-size:.86rem;white-space:pre-wrap;color:#475761}
.reply-chip{border-radius:12px;background:#f0e8d8;color:#644c29;font-size:.69rem;padding:4px 7px;font-weight:720}
.reply-chip.yes{background:#e2efe7;color:#254a39}.reply-chip.no{background:#f6e7e7;color:#6e3d3d}
.guest-actions{display:flex;align-items:center;flex-wrap:wrap;gap:7px 12px}.guest-actions .revoke{color:#873a3c}
dialog{border:1px solid #d2c2aa;background:#fffdf8;border-radius:9.6px;color:var(--ink);padding:24px;width:min(480px,calc(100% - 28px))}
dialog::backdrop{background:#0a1826a6}dialog p{line-height:1.5;color:var(--muted)}
dialog label{margin:12px 0}dialog #close-dialog{margin-top:15px}

.guest-page{background:#080f1c;color:#fff6e7}
.loading,.guest-error{padding:45px 20px;text-align:center}.guest-error h1{font:400 3rem var(--serif)}
.invite-shell{position:relative;min-height:100%;container-type:inline-size}
.cover,.invite-hero{position:relative;isolation:isolate;overflow:hidden;text-align:center}
.cover{display:grid;place-items:center;min-height:100svh;padding:30px 0 42px;background:radial-gradient(ellipse at center,#1a2d42,#080f1c 74%);color:#fff4df}
.cover.handing-off{position:absolute;inset:0 0 auto}
.handing-off .sliding-card{visibility:hidden}
.handing-off + .revealed,.handing-off + .revealed .invite-hero{background:transparent}
.handing-off + .revealed .invite-hero::before,.handing-off + .revealed .invite-paper{animation:reveal-backdrop .8s ease-in-out both}
@keyframes reveal-backdrop{from{opacity:0}to{opacity:1}}
.invite-tag{position:absolute;z-index:6;top:19px;left:50%;transform:translateX(-50%);font-size:.6rem;font-weight:700;letter-spacing:.14em;border:1px solid #edcf9c6b;border-radius:18px;padding:6px 10px;background:#111e31;color:#f6e3bf;white-space:nowrap}
.photo-stage{position:relative;width:min(100%,470px);aspect-ratio:2/3;isolation:isolate;perspective:900px}
.stage-photo{position:absolute;inset:0;background-size:100% 100%;background-repeat:no-repeat;mask-image:linear-gradient(180deg,transparent,black 10% 87%,transparent)}
.stage-closed{background-image:url('/first-snow/static/first-snow-sealed.webp')}
.wax-patch{background-image:url('/first-snow/static/first-snow-unsealed.webp');opacity:0}
.open-pocket{background-image:url('/first-snow/static/first-snow-pocket.webp');clip-path:inset(34.6% 0 29%);opacity:0}
.motion-flap{position:absolute;inset:0;z-index:2;opacity:0;transform-origin:50% 34.6%;transform-style:preserve-3d;pointer-events:none}
.flap-face{position:absolute;inset:0;background-size:100% 100%;backface-visibility:hidden}
.flap-front{background-image:url('/first-snow/static/first-snow-unsealed.webp');clip-path:polygon(8.3% 34.6%,91.7% 34.6%,90.6% 38.7%,88.7% 40.3%,50% 59.7%,11% 40%,9.3% 38.5%)}
.flap-back{background-image:url('/first-snow/static/first-snow-pocket.webp');transform:rotateX(180deg);transform-origin:50% 34.6%;clip-path:polygon(8.2% 34.6%,11.1% 31.4%,50.2% 11%,88.8% 31.8%,91.8% 34.6%)}
.moving-seal{position:absolute;inset:0;z-index:4;pointer-events:none;background:url('/first-snow/static/first-snow-sealed.webp') center/100% 100%;opacity:0;transform-origin:49.8% 56.6%;clip-path:polygon(49% 51.5%,52% 51.4%,54% 52%,55.2% 53.4%,56.8% 54.2%,58% 56.1%,57.7% 57.5%,56.9% 59.3%,55% 60.9%,52% 61.6%,49.5% 62%,47.1% 61.4%,45% 60.6%,42.5% 59%,41.5% 57%,41.9% 55.5%,42.8% 54%,45% 52.7%,47.3% 52.1%)}
.card-window{position:absolute;inset:0;z-index:3;pointer-events:none;container-type:inline-size;clip-path:polygon(8.5% 0,91.5% 0,91.5% 34.7%,50% 56.6%,8.5% 34.7%)}
.cover-copy{position:absolute;z-index:3;top:15%;left:7%;right:7%;text-shadow:0 2px 16px #070c17}
.invite-kicker{color:#f2d49f;font-weight:700;font-size:.71rem;letter-spacing:.19em;margin:0}
.for{font:italic clamp(1.7rem,6cqw,3rem)/1.04 var(--serif);margin:9px auto 0;max-width:420px;overflow-wrap:anywhere;text-wrap:balance}
.seal{position:absolute;z-index:4;top:56.6%;left:49.8%;transform:translate(-50%,-50%);width:max(19%,50px);aspect-ratio:1;border:1px solid transparent;border-radius:50%;background:transparent;transition:box-shadow .25s}
.seal:hover,.seal:focus-visible{box-shadow:0 0 25px 5px #ffe2ac5c,inset 0 0 18px #ffe0aa44}
.tap-label{position:absolute;top:74%;left:0;right:0;color:#fff0d5;letter-spacing:.1em;font-size:.73rem;font-weight:650;margin:0;text-shadow:0 2px 9px #03070f}
.tap-label span{margin:0 .3em;color:#e5bb7f}
.cover-footer{position:absolute;bottom:16px;left:0;right:0;letter-spacing:.18em;color:#dfcba9;font-size:.58rem;font-weight:650}.cover-footer span{color:#d7a56d;padding:0 3px}
.sound-toggle{position:absolute;z-index:6;top:13px;right:12px;display:inline-flex;align-items:center;gap:5px;min-height:44px;padding:4px 11px;border-radius:18px;border:1px solid #edcf9c74;background:#111e31;color:#fff0d3;font-size:.72rem;font-weight:690}
.sound-toggle[aria-pressed="false"]{background:#0c1525;color:#ecd6b0}
.opening .seal,.opening .cover-copy,.opening .tap-label{animation:fade-away .35s ease-out both}
.opening .wax-patch{opacity:1}
.opening .moving-seal{opacity:1;animation:release-seal 1.33s .10s cubic-bezier(.22,.52,.26,1) both}
.opening .open-pocket{animation:open-photo .34s 1.53s ease-in both}
.opening .motion-flap{opacity:1;animation:lift-flap 1.36s 1.46s cubic-bezier(.38,.11,.37,1) both}
@keyframes lift-flap{to{transform:rotateX(180deg)}}
@keyframes fade-away{to{opacity:0}}
@keyframes open-photo{to{opacity:1}}
@keyframes release-seal{
  0%{transform:translate(0,0) scale(1)}
  20%{transform:translate(1%,1%) rotate(8deg) scale(1.10)}
  65%{transform:translate(23%,6%) rotate(21deg) scale(.82)}
  83%{transform:translate(26%,6.6%) rotate(27deg) scale(.85)}
  100%{transform:translate(27%,6.2%) rotate(30deg) scale(.83)}
}
.revealed{position:relative;background:#faf1df;color:#273943}.revealed:focus{outline:none}
.invite-hero{min-height:min(520px,85svh);padding:68px 24px 38px;display:grid;align-content:center;justify-items:center;background:#111e31;color:#142333}
.invite-hero::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(#0a15273b,#08111d8f),url('/first-snow/static/first-snow-open.webp') center 70%/cover no-repeat}
.invitation-heading{width:min(100%,540px);display:grid;gap:8px;justify-items:center;padding:20px 17px 25px;background:#fcf4e5;color:#142333;border:1px solid #f3e1bd;outline:1px solid #b89259;outline-offset:-7px;box-shadow:0 18px 45px #03091482}
.invitation-heading.sliding-card{position:absolute;top:15%;left:13%;width:74%;min-height:43.5%;padding:4.1% 3% 4.5%;gap:1cqw;align-content:start;outline-offset:-5px;opacity:0;transform:translateY(130%);box-shadow:0 3px 12px #03091478}
.opening .sliding-card{animation:draw-card 2.78s 2.82s cubic-bezier(.22,.59,.22,1) both}
@keyframes draw-card{
  0%{opacity:0;transform:translateY(130%)}
  8%{opacity:1}
  67%,100%{opacity:1;transform:translateY(0)}
}
.invite-hero .invitation-heading{transform-origin:top left}
.sliding-card .paper-flake{font-size:5cqw}
.sliding-card .invite-kicker{font-size:2.15cqw}
.sliding-card .dear{font-size:3.15cqw;margin:.7cqw 0 0}
.sliding-card .sliding-title{font:400 8.5cqw/.95 var(--serif);letter-spacing:-.055em;margin:0;max-width:100%;overflow-wrap:anywhere;text-wrap:balance;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.sliding-card .invite-host{font-size:2.65cqw;margin:.6cqw 0;max-width:100%}
.sliding-card .invite-cta{min-height:0;padding:1.3cqw 2.8cqw;font-size:2.4cqw}
.paper-flake{color:#94703e;font-size:1.5rem;line-height:1.2}
.invitation-heading .invite-kicker{color:#74562e;font-size:.66rem}
.dear{font:italic 1.02rem var(--serif);margin:6px 0 0;color:#6d5239;overflow-wrap:anywhere;max-width:100%}
.invite-hero h1{font:400 clamp(2.35rem,7.5cqw,4.8rem)/.98 var(--serif);letter-spacing:-.055em;margin:1px 0;max-width:100%;overflow-wrap:anywhere;text-wrap:balance}
.invite-host{color:#465462;font-size:.85rem;margin:2px 0 6px;overflow-wrap:anywhere;max-width:100%}
.invite-cta{color:#fff5e1;background:#192f42;border:1px solid #a58255;border-radius:30px;text-decoration:none;min-height:44px;padding:11px 17px;font-size:.76rem;font-weight:720;letter-spacing:.1em}.invite-cta:hover{background:#294559}
.invite-paper{padding:22px max(17px,calc((100% - 580px)/2)) 0;background:radial-gradient(ellipse at 50% 0,#fff9ed,#fbf0dc 65%)}
.ornament{text-align:center;font:400 2rem var(--serif);color:#885d32}
.invite-paper h2{font:400 clamp(1.7rem,5cqw,2.5rem)/1.12 var(--serif);margin:2px 0 8px;text-align:center;letter-spacing:-.035em}
.invite-message,.deadline{text-align:center;line-height:1.6;color:#4d5b63;font-size:.92rem;overflow-wrap:anywhere;white-space:pre-wrap;margin:0 auto 13px}
.event-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px;margin:16px 0}
.event-facts div{border:1px solid #e5d7bf;background:#fffaf0;padding:10px;border-radius:5.4px;text-align:center;overflow-wrap:anywhere}
.event-facts dt{font-size:.68rem;font-weight:760;letter-spacing:.13em;color:#795426}
.event-facts dd{font:400 1.04rem/1.3 var(--serif);margin:4px 0 0}.event-facts dd .venue-address{display:block;font:400 .8rem/1.4 system-ui;color:var(--muted);margin-top:3px}
.rsvp{background:#fffbf3;border:1px solid #e1d3ba;border-radius:7.8px;margin:18px 0;padding:17px;scroll-margin-top:12px}.rsvp .invite-kicker{color:#765021;text-align:center;font-size:.65rem}
.reply-form{display:grid;gap:11px}
.reply-form fieldset{min-width:0;border:0;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.reply-form legend{padding:0;margin-bottom:5px;font-size:.85rem;font-weight:700}
.reply-form fieldset label{display:flex;align-items:center;gap:4px;padding:7px 5px;min-height:44px;border:1px solid #e3d6c1;border-radius:4.8px;font-size:.76rem;cursor:pointer}
.reply-form fieldset label:has(:checked){border-color:#547472;background:#e7eee9}.reply-form input[type=radio]{accent-color:#284c58;flex:none}
.reply-status{font-size:.82rem;margin:0;color:#345554}.reply-status:empty{display:none}
.invite-end{padding:2px 0 21px;text-align:center;display:grid;justify-items:center;color:#475763;gap:6px}
.invite-end span{font-size:.62rem;letter-spacing:.11em}

/* Stationery finishing details. */
.cover::after{
  content:"";position:absolute;inset:10% 7% 12%;pointer-events:none;
  background:radial-gradient(circle at 9% 18%,#f7dfb7b0 0 1px,transparent 2px),
    radial-gradient(circle at 88% 29%,#f7dfb790 0 1px,transparent 2px),
    radial-gradient(circle at 16% 79%,#f7dfb775 0 1px,transparent 2px),
    radial-gradient(circle at 91% 73%,#f7dfb790 0 1px,transparent 2px);
  animation:stationery-glimmer 4s ease-in-out 2 alternate;
}
@keyframes stationery-glimmer{from{opacity:.3}to{opacity:.9}}
.seal::after{
  content:"";position:absolute;inset:-5px;border:1px solid #f3d9a34d;
  border-radius:50%;box-shadow:0 0 20px #ebc98c26;pointer-events:none;
  animation:seal-glow 3s ease-in-out 2;
}
@keyframes seal-glow{50%{box-shadow:0 0 27px #ebc98c55;border-color:#f3d9a399}}
.opening .seal::after{animation:none;opacity:0}
.cover-copy .invite-kicker{letter-spacing:.24em}
.cover-copy .for{margin-top:13px}
.invitation-heading{
  background-color:#fcf5e8;
  background-image:linear-gradient(135deg,#fffdf6b0,transparent 45%,#dfc59a24);
  border-color:#d6b57f;outline-color:#c7a36a;
}
.invite-hero .invitation-heading{
  position:relative;padding:28px 23px 30px;gap:10px;
  box-shadow:0 24px 50px #080e183d,0 4px 12px #080e1826;
}
.invite-hero .invitation-heading::after{
  content:"";position:absolute;inset:12px;pointer-events:none;
  border:1px solid #bb945b38;
}
.paper-flake{display:flex;align-items:center;justify-content:center;gap:12px}
.paper-flake::before,.paper-flake::after{
  content:"";height:1px;width:28px;background:linear-gradient(90deg,transparent,#a9844b99);
}
.paper-flake::after{transform:rotate(180deg)}
.sliding-card .paper-flake{gap:1.5cqw}
.sliding-card .paper-flake::before,.sliding-card .paper-flake::after{width:6cqw}
.invite-hero .dear{margin-top:8px}
.invite-hero h1{line-height:1.02;letter-spacing:-.045em}
.invite-hero .invite-host{margin:4px 0 9px}
.invite-cta{
  background-image:linear-gradient(145deg,#ffffff12,transparent 60%);
  box-shadow:inset 0 1px 0 #fff7df35,0 4px 9px #291b101a;
  transition:box-shadow .25s,background-color .25s;
}
.invite-cta:hover{box-shadow:inset 0 1px 0 #fff7df35,0 6px 15px #291b1030}
.invite-paper{padding-top:30px;border-top:1px solid #c9a36b}
.ornament{display:flex;align-items:center;justify-content:center;gap:18px;margin:0 auto 12px}
.ornament::before,.ornament::after{
  content:"";width:65px;height:1px;background:linear-gradient(90deg,transparent,#b68e51aa);
}
.ornament::after{transform:rotate(180deg)}
.invite-message{max-width:48ch;line-height:1.75;margin-bottom:22px}
.event-facts{gap:12px;margin:22px 0}
.event-facts div{padding:16px 12px;background:#fffaf085;border-radius:2.4px;border-color:#dcccaf}
.event-facts dt{letter-spacing:.18em;font-size:.63rem}
.event-facts dd{line-height:1.5;margin-top:7px}
.event-facts dd .venue-address{margin-top:5px;line-height:1.5}
.rsvp{padding:22px 18px;border-radius:4.8px;box-shadow:0 8px 24px #63432508}
.rsvp h2{margin-top:8px;margin-bottom:12px}
.reply-form fieldset label{border-radius:3px;transition:background-color .2s,border-color .2s}
.invite-end{gap:10px;padding-top:10px;padding-bottom:28px}

.invite-shell{--celebration-accent:#a9c8d9}

/* A small flourish at opening and after a successful acceptance. */
.photo-stage,.rsvp{position:relative}
.invitation-flourish{
  position:absolute;inset:0;z-index:7;overflow:hidden;pointer-events:none;
  border-radius:inherit;
}
.invitation-flourish i{
  position:absolute;left:var(--origin-x);top:var(--origin-y);
  display:block;width:6px;height:10px;background:#d3aa64;
  opacity:0;border-radius:0.6px;
  animation:invitation-confetti 2.4s var(--delay) cubic-bezier(.2,.6,.3,1) both;
}
.invitation-flourish i:nth-child(3n){background:var(--celebration-accent);width:7px;height:7px;border-radius:50%}
.invitation-flourish i:nth-child(4n){background:#f2ddb4;clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%);width:12px;height:12px}
.seal-sparkles i{
  width:8px;height:8px;background:#f7dfaa;border-radius:0;
  clip-path:polygon(50% 0,62% 36%,100% 50%,62% 64%,50% 100%,38% 64%,0 50%,38% 36%);
  animation-duration:1.35s;
}
@keyframes invitation-confetti{
  0%{opacity:0;transform:translate(-50%,-50%) scale(.3) rotate(0deg)}
  12%{opacity:1}
  48%{opacity:.95;transform:translate(var(--x),var(--rise)) scale(1) rotate(var(--turn))}
  100%{opacity:0;transform:translate(var(--x),var(--fall)) scale(.65) rotate(var(--turn))}
}
.reply-status.reply-saved{
  padding:12px 14px;border:1px solid #c8d9c6;border-radius:3.6px;
  background:#edf3e8;color:#304b37;
}
@media(prefers-reduced-motion:reduce){.invitation-flourish{display:none}}

.phone-screen .invite-shell{height:100%}
.phone-screen .cover{min-height:100%;padding:43px 0 35px}
.phone-screen .photo-stage{width:min(100%,285px)}
.phone-screen .invite-hero{min-height:365px;padding:60px 12px 28px}
.phone-screen .invite-paper{padding-inline:12px}
.phone-screen .invite-hero h1{font-size:clamp(1.9rem,9cqw,3rem)}
@media (min-width:620px){
  .guest-page .photo-stage{width:min(100%,470px,calc((100svh - 68px) * .667))}
  .guest-page .stage-photo{mask-image:radial-gradient(ellipse at 50% 53%,black 59%,transparent 89%)}
}
@container (max-width:520px){
  .invite-tag + .sound-toggle{top:49px}
  .invite-hero:has(.invite-tag){padding-top:96px}
}
@container (max-width:345px){.invite-kicker{font-size:.61rem}.event-facts{grid-template-columns:1fr}.rsvp{padding:12px}.reply-form fieldset{grid-template-columns:1fr}}
@media(max-width:950px){.studio-grid{grid-template-columns:minmax(0,1fr) 300px;gap:16px}.panel{padding:17px}.add-guest{grid-template-columns:minmax(0,1fr) 90px}.add-guest button{grid-column:1/-1}}
@media(max-width:760px){.shell{padding:0 14px}.top{padding-inline:14px}.intro{align-items:start;flex-direction:column;padding-top:23px;gap:5px}.intro p:last-child{font-size:.9rem}.studio-actions{justify-content:flex-start}.studio-grid{grid-template-columns:minmax(0,1fr)}.preview-side{position:static}.phone-screen{max-height:540px}.panel{padding:15px}.jump{margin-bottom:15px}.preview-side{scroll-margin-top:10px}}
@media(max-width:370px){.field-grid{grid-template-columns:1fr}.stats span{font-size:.62rem}.panel-heading{gap:8px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}

.invite-shell{--rsvp-halo:45,80,106}

/* Center the label and arrow as one group, with a gentle theme-colored glow. */
.invite-cta{display:inline-flex;align-items:center;justify-content:center;justify-self:center;gap:.38em;line-height:1;text-align:center;white-space:nowrap;letter-spacing:normal;animation:rsvp-glow 3.8s ease-in-out infinite;transition:transform .2s,background-color .2s}
.invite-cta .cta-label{display:block;line-height:1;letter-spacing:.08em}
.invite-cta svg{display:block;width:1em;height:1em;flex:none}
.sliding-card .invite-cta{animation:none}
@keyframes rsvp-glow{0%,100%{box-shadow:inset 0 1px 0 #ffffff35,0 3px 8px #241b1420,0 0 10px rgba(var(--rsvp-halo),.15)}50%{box-shadow:inset 0 1px 0 #ffffff45,0 4px 10px #241b1426,0 0 22px rgba(var(--rsvp-halo),.42)}}
@media(hover:hover){.invite-cta:hover{transform:translateY(-1px)}}
.invite-cta:active{transform:scale(.98)}
.guest-exports{margin:18px 0 14px;padding-top:14px;border-top:1px solid var(--line)}
.guest-exports .form-help{margin:8px 0 0;font-size:.79rem}
.guest-exports button:disabled{cursor:default}
@media(prefers-reduced-motion:reduce){.invite-cta{animation:none;transition:none;box-shadow:inset 0 1px 0 #ffffff35,0 3px 8px #241b1420}.invite-cta:hover,.invite-cta:active{transform:none}}

/* Compact icon-only music toggle, retaining the accessible pressed state. */
.sound-toggle{width:44px;height:44px;min-width:44px;min-height:44px;padding:11px;gap:0;justify-content:center;border-radius:50%}
.sound-toggle svg{display:block;width:20px;height:20px;flex:none}
.sound-toggle .sound-off-icon{display:none}
.sound-toggle[aria-pressed="false"] .sound-on-icon{display:none}
.sound-toggle[aria-pressed="false"] .sound-off-icon{display:block}
.sound-toggle .sound-label{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

.photo-editor{min-width:0;margin:20px 0 0;padding:15px;border:1px solid var(--line);border-radius:7.2px}
.photo-editor legend{font-size:.89rem;font-weight:700;padding:0 5px}
.photo-editor .form-help{margin:3px 0 12px;font-size:.8rem}
.photo-picker{position:relative;overflow:hidden;cursor:pointer}
.photo-picker input[type=file]{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;opacity:0;cursor:pointer}
.photo-picker:focus-within{outline:3px solid #b67b34;outline-offset:3px}
.photo-preview{margin:14px 0;padding:8px;background:var(--paper);border:1px solid var(--line);border-radius:6px}
.photo-preview img{width:100%;height:auto;max-height:240px;object-fit:contain;border-radius:3px}
.photo-editor #photo-description-label{margin:10px 0}
.photo-editor .feedback{margin-bottom:12px}
.invite-photo{max-width:580px;margin:0 auto 28px;padding:10px;background:var(--paper);border:1px solid var(--line);border-radius:7.2px;box-shadow:0 9px 25px #263b2e10}
.invite-photo img{display:block;width:100%;height:auto;max-height:560px;object-fit:contain;border-radius:3.6px}

/* A single return-envelope journey after the RSVP has saved successfully. */
.reply-delivery{color:var(--ink);margin:0 auto;max-width:360px;width:100%;text-align:center;pointer-events:none}
.reply-delivery svg{display:block;width:100%;height:auto;overflow:visible}
.reply-envelope{transform-box:fill-box;transform-origin:center;animation:reply-post 2.7s cubic-bezier(.35,.08,.3,1) both}
.reply-letter{animation:reply-tuck .55s ease-in both}
.reply-fold{transform-box:fill-box;transform-origin:center bottom;animation:reply-fold .55s .25s ease-in-out both}
.reply-seal{animation:reply-seal .3s .65s ease-out both}
.reply-delivered-check{transform-box:fill-box;transform-origin:center;animation:reply-received .4s 2.3s ease-out both}
.delivery-caption{display:block;font-size:.76rem;font-weight:650;letter-spacing:.03em;margin:2px 0 3px;animation:reply-received .4s 2.3s ease-out both}
@keyframes reply-tuck{to{transform:translateY(20px)}}
@keyframes reply-fold{to{transform:scaleY(-1)}}
@keyframes reply-seal{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
@keyframes reply-post{0%,30%{transform:translate(0,0) scale(1);opacity:1}45%{transform:translate(25px,-12px) rotate(-7deg) scale(.95);opacity:1}82%{transform:translate(210px,-12px) rotate(0) scale(.22);opacity:1}100%{transform:translate(222px,-12px) scale(.1);opacity:0}}
@keyframes reply-received{from{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}
@media(prefers-reduced-motion:reduce){.reply-envelope{display:none}.reply-delivery *{animation:none!important}.reply-delivered-check,.delivery-caption{opacity:1;transform:none}}

/* Guided host studio: one task per stage, with a separate RSVP dashboard. */
.flow-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin:0 0 20px;padding:0;border:0}
.flow-steps button{display:flex;align-items:center;gap:9px;min-height:60px;border:1px solid var(--line);border-radius:7.2px;padding:10px 12px;text-align:left;background:var(--paper);color:var(--ink);font-size:.84rem;font-weight:700}
.flow-steps .step-number{display:grid;place-items:center;flex:none;width:29px;height:29px;border:1px solid var(--line);border-radius:50%;font-size:.73rem;font-weight:750}
.flow-steps button[aria-current=step]{background:var(--navy);border-color:var(--navy);color:#fffdf8;box-shadow:0 5px 14px #172b3217}
.flow-steps button[aria-current=step] .step-number{background:#ffffff18;border-color:#ffffff65;color:inherit}
.flow-steps button:hover:not([aria-current=step]){border-color:var(--gold)}
#flow-status:not(:empty){padding:12px 15px;margin:0 0 18px;border:1px solid var(--line);border-radius:5.4px;background:var(--paper)}
.flow-panel h2:focus,#details h2:focus{outline:none}
.studio-grid.wide-work{grid-template-columns:minmax(0,1fr)}
.studio-grid.wide-work .work{max-width:100%;width:100%}
.flow-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:25px;padding-top:20px;border-top:1px solid var(--line);flex-wrap:wrap}
.flow-actions .btn{min-width:145px}
.sharing-options{border:0;padding:0;margin:22px 0;display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sharing-choice{position:relative;display:flex;align-items:start;gap:12px;border:1px solid var(--line);border-radius:7.2px;padding:20px;background:var(--paper);min-height:130px;cursor:pointer}
.sharing-choice:has(input:checked){border-color:var(--navy);box-shadow:inset 0 0 0 1px var(--navy);background:color-mix(in srgb,var(--navy) 5%,var(--paper))}
.sharing-choice input{margin:4px 0 0;accent-color:var(--navy);width:18px;height:18px;flex:none}
.sharing-choice strong{display:block;font:400 1.55rem/1.1 var(--serif);letter-spacing:-.025em;margin-bottom:9px}
.sharing-choice small{display:block;font-size:.86rem;line-height:1.5;font-weight:450;color:var(--muted)}
.choice-tag{position:absolute;right:12px;top:-12px;background:var(--navy);color:#fffdf8;padding:5px 10px;border-radius:12px;font-size:.65rem;font-weight:700}
.capacity-field{max-width:270px}.flow-note{padding:17px 19px;background:color-mix(in srgb,var(--navy) 5%,var(--paper));border:1px solid var(--line);border-radius:6px;margin:20px 0}
.flow-note strong{font-size:.93rem}.flow-note p{color:var(--muted);font-size:.87rem;line-height:1.55;margin:7px 0 0}
.flow-warning{padding:13px 16px;background:#fbefd8;border:1px solid #ddcaa9;border-radius:5.4px;color:#624820;font-size:.88rem;line-height:1.5}
.review-facts{margin:20px 0;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.review-facts div{padding:13px 0;border-bottom:1px solid var(--line);min-width:0}.review-facts dt{font-size:.72rem;font-weight:700;color:var(--muted);margin-bottom:5px}.review-facts dd{margin:0;font-size:.96rem;line-height:1.45;overflow-wrap:anywhere}
.review-facts div:first-child{grid-column:1/-1}.review-facts div:first-child dd{font:400 1.7rem/1.2 var(--serif)}
.share-card{border:1px solid var(--line);border-radius:7.8px;padding:22px;margin:20px 0;background:color-mix(in srgb,var(--navy) 3%,var(--paper))}.share-card h3{font:400 2rem/1.1 var(--serif);margin:10px 0 20px}.share-card .button-row{margin:14px 0 7px}.share-card input{font-size:.85rem;text-overflow:ellipsis}
.dashboard-insights{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin:18px 0}.dashboard-insights>div{padding:17px;border:1px solid var(--line);border-radius:6px;display:grid;gap:9px}.dashboard-insights span{font-size:.8rem;color:var(--muted);font-weight:600}.dashboard-insights strong{font:400 2rem/1 var(--serif)}.dashboard-insights small{font-size:.75rem;color:var(--muted)}.dashboard-insights progress{width:100%;height:8px;accent-color:var(--navy)}
.reply-tools{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:15px;margin:24px 0 16px}.list-count{font-size:.84rem;color:var(--muted);margin-top:20px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.reply-edit-link{padding-top:14px;margin-top:16px;border-top:1px solid var(--line)}.reply-edit-link p{font-size:.83rem;line-height:1.5}.reply-edit-link input{font-size:.8rem}.reply-edit-link .button-row{margin-top:10px}.shared-name{margin-bottom:15px}
@media(max-width:760px){.flow-steps{gap:4px}.flow-steps button{flex-direction:column;justify-content:center;gap:5px;padding:8px 2px;min-height:69px;font-size:.68rem;border-radius:4.8px}.flow-steps .step-number{width:24px;height:24px;font-size:.67rem}.sharing-options{grid-template-columns:1fr;gap:18px}.sharing-choice{min-height:110px;padding:19px 16px}.flow-actions{gap:9px}.flow-actions .btn{flex:1;min-width:0}.reply-tools{grid-template-columns:1fr 135px;gap:10px}.review-facts{grid-template-columns:1fr}.share-card{padding:16px}.dashboard-insights{gap:9px}.dashboard-insights>div{padding:12px}.guest-actions{gap:7px 9px}}
@media(prefers-reduced-motion:no-preference){.flow-panel:not([hidden]){animation:studio-step-in .22s ease-out}@keyframes studio-step-in{from{opacity:.4;transform:translateY(6px)}to{opacity:1;transform:none}}}

#studio-content select,.reply-form select{appearance:none;min-height:44px;padding-right:32px;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 50%,calc(100% - 13px) 50%;background-size:5px 5px;background-repeat:no-repeat}


/* Guest contact cards and studio-owned dialogs */
.guest-add-card{padding:20px;border:1px solid var(--line);border-radius:7.2px;background:color-mix(in srgb,var(--navy) 2%,var(--paper));margin-top:18px}
.guest-add-card h3{font:600 1.05rem/1.4 system-ui;margin:0 0 16px}
.add-guest{display:block}.guest-form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(160px,1fr);gap:16px}
.guest-form-grid label{min-width:0}.field-help{display:block;font-size:.75rem;font-weight:400;color:var(--muted);margin-top:7px;line-height:1.5}
.guest-add-footer{display:flex;justify-content:space-between;align-items:center;gap:16px;margin-top:16px}.guest-add-footer .form-help{margin:0;max-width:410px}.guest-add-footer button{flex:none}
.guest-list{gap:12px}.guest-list .guest-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;padding:20px;border-radius:7.2px;align-items:center}
.guest-row .guest-meta{display:grid;gap:8px;min-width:0}.guest-name-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}.guest-name-line strong{font-size:1rem}.guest-capacity{font-size:.75rem;color:var(--muted)}
.guest-contact{display:flex;flex-wrap:wrap;gap:5px 16px;font-size:.8rem;color:var(--muted);overflow-wrap:anywhere}.guest-contact-empty,.guest-replied{font-size:.75rem}.guest-note{line-height:1.5}.reply-chip{font-size:.75rem}
.guest-actions{display:flex;justify-content:flex-end;align-items:center;flex-wrap:nowrap;gap:12px}.guest-actions>.btn{white-space:nowrap}.guest-icon-actions{display:flex;gap:8px;flex:none}
.icon-action{width:44px;height:44px;min-width:44px;min-height:44px;padding:11px;border:1px solid var(--line);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:var(--paper);color:var(--ink);transition:background .15s,border-color .15s}
.icon-action svg{width:20px;height:20px;display:block;flex:none}.icon-action.edit{background:#f7eedf;color:#805b27;border-color:#e6d3b6}.icon-action.delete{background:#fcf0ed;color:#933f42;border-color:#ecd3ce}.icon-action:hover{background:#eee4d5;border-color:#b99a72}.icon-action.delete:hover{background:#f5ded9;border-color:#bd7674}
dialog{position:fixed;padding:28px;max-height:calc(100dvh - 32px);overflow:auto;overscroll-behavior:contain;width:min(560px,calc(100% - 32px));box-shadow:0 24px 80px #0718244d}
dialog h2{padding-right:44px}dialog .dialog-close{position:absolute;right:16px;top:16px}dialog #close-dialog{margin:0}.dialog-actions{display:flex;justify-content:flex-end;gap:12px;flex-wrap:wrap;margin-top:24px}.dialog-actions .btn{min-width:116px}.danger{background:#8b373c;color:#fff;border-color:#8b373c}.danger:hover{background:#72262b}
dialog .guest-form-grid{gap:4px 16px}dialog .eyebrow{padding-right:38px;margin:0 0 12px}dialog .feedback.bad{color:#8b3232}
.message-options{display:flex;gap:8px;margin:20px 0 12px}.message-options button{flex:1}.message-options [aria-pressed=true]{background:var(--navy);color:var(--paper);border-color:var(--navy)}
.share-channels{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.whatsapp{background:#e5f2e9;color:#225c3c;border-color:#bfdbc8}.whatsapp:hover{background:#d7eadd}.share-utilities{display:flex;flex-wrap:wrap;gap:8px}.share-utilities .btn{flex:1 1 140px}
@media(max-width:640px){.guest-list .guest-row{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px}.guest-actions{justify-content:flex-end;border-top:1px solid var(--line);padding-top:12px}.guest-add-card{padding:16px}.guest-add-footer{align-items:stretch;flex-direction:column}.guest-add-footer button{align-self:flex-end;min-width:120px}.guest-form-grid{grid-template-columns:minmax(0,1fr)}.guest-form-grid input{font-size:16px}dialog{padding:24px}dialog .guest-form-grid{grid-template-columns:1fr;gap:0}.dialog-actions .btn{flex:1;min-width:0}.guest-row .guest-meta{gap:8px}}
@media(prefers-reduced-motion:reduce){.icon-action{transition:none}}


/* A quiet, live countdown on the invitation stationery. */
.invite-hero .invitation-heading:has(.invite-countdown){padding-top:28px;padding-bottom:32px;gap:10px}
.invite-countdown{width:100%;max-width:350px;margin:8px 0 12px;text-align:center;color:inherit}
.countdown-date{font:400 1.05rem/1.5 var(--serif);margin:0;color:inherit}.countdown-date>span{padding:0 5px;color:var(--gold)}
.countdown-zone{margin:3px 0 17px;font-size:.75rem;line-height:1.5;color:var(--muted)}
.countdown-units{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-block:1px solid color-mix(in srgb,currentColor 18%,transparent);padding:16px 0}
.countdown-units>div{display:grid;gap:9px;padding:0 4px;min-width:0}.countdown-units>div+div{border-left:1px solid color-mix(in srgb,currentColor 18%,transparent)}
.countdown-units strong{font:400 clamp(1.5rem,6cqw,2.1rem)/1 var(--serif);font-variant-numeric:tabular-nums;color:color-mix(in srgb,var(--gold) 70%,var(--ink));letter-spacing:.06em}
.countdown-units span{font-size:.375rem;line-height:1.2;text-transform:lowercase;letter-spacing:0}.countdown-finished{font:italic 1.15rem/1.5 var(--serif);padding:12px 0;border-block:1px solid var(--line)}
.sliding-card .invite-countdown{margin:1cqw 0 1.5cqw}.sliding-card .countdown-date{font-size:2.5cqw}.sliding-card .countdown-zone{font-size:1.8cqw;margin:0 0 2cqw}.sliding-card .countdown-units{padding:2.5cqw 0}.sliding-card .countdown-units>div{gap:1cqw}.sliding-card .countdown-units strong{font-size:4cqw}.sliding-card .countdown-units span{font-size:.9cqw}.sliding-card .countdown-finished{font-size:2.8cqw;padding:2cqw 0}
@container(max-width:350px){.revealed .countdown-units span{letter-spacing:0}.revealed .countdown-units>div{padding:0 2px}}

/* RSVP analytics: counts by household, with responsive, full-size axis labels. */
.dashboard-charts{margin:26px 0 30px;--chart-yes:#38665a;--chart-no:#a15e42;--chart-pending:#b7a78e}
.dashboard-charts-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(260px,1fr);gap:18px;align-items:stretch}
.analytics-card{min-width:0;border:1px solid var(--line);border-radius:0;background:color-mix(in srgb,var(--paper) 94%,var(--gold));padding:22px}
.analytics-card h3{margin:0;font:400 1.65rem/1.2 var(--serif);color:var(--ink);letter-spacing:-.025em}
.analytics-card .eyebrow{font-size:.75rem;letter-spacing:.09em;line-height:1.5;margin:0 0 7px}
.analytics-heading{display:flex;align-items:start;justify-content:space-between;gap:16px}
.chart-range-label{min-width:130px;flex:none;font-size:.75rem;font-weight:600;color:var(--muted)}
.chart-range-label select{font-size:.8rem;background:var(--paper);margin-top:4px;padding:9px 28px 9px 10px}
.trend-key{display:flex;align-items:center;flex-wrap:wrap;gap:14px;margin:20px 0 10px;font-size:.8rem;line-height:1.5}
.chart-series{display:inline-flex;align-items:center;gap:7px}.chart-series strong{font-variant-numeric:tabular-nums;font-size:.95rem}.chart-series i{display:inline-block;width:18px;border-top:3px solid var(--chart-yes)}.chart-series.no i{border-top:3px dashed var(--chart-no)}
.chart-unit{font-size:.75rem;color:var(--muted);margin-left:auto}
.area-chart{position:relative;width:100%;min-width:0;min-height:246px;touch-action:pan-y;outline-offset:4px}
.area-chart-svg{width:100%;min-width:0}.area-chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart-axis{font:12px system-ui,sans-serif;fill:var(--muted)}.chart-gridline{stroke:var(--line);stroke-width:1;stroke-dasharray:3 4}
.chart-fill.yes{fill:var(--chart-yes);fill-opacity:.16}.chart-fill.no{fill:var(--chart-no);fill-opacity:.13}
.chart-line{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.chart-line.yes{stroke:var(--chart-yes)}.chart-line.no{stroke:var(--chart-no);stroke-dasharray:6 5}
.chart-point{stroke:var(--paper);stroke-width:1.5}.chart-point.yes{fill:var(--chart-yes)}.chart-point.no{fill:var(--chart-no)}
.chart-inspector{stroke:var(--muted);stroke-width:1;stroke-dasharray:2 4;opacity:.45}.area-chart:not(.has-replies) .chart-inspector{display:none}
.chart-empty{position:absolute;left:48px;right:12px;top:50px;display:grid;gap:8px;text-align:center;padding:16px;background:var(--paper);font-size:.8rem;line-height:1.5;pointer-events:none}.chart-empty strong{font-weight:650}.chart-empty span{color:var(--muted)}
.chart-readout{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin:2px 0 12px;padding:12px 0;border-block:1px solid var(--line);font-size:.8rem;min-height:43px;line-height:1.5}.chart-readout>span{flex:1 1 180px}.chart-readout strong{white-space:nowrap;font-variant-numeric:tabular-nums}.yes-text{color:var(--chart-yes)}.no-text{color:var(--chart-no)}
.chart-context,.breakdown-context{font-size:.75rem;color:var(--muted);line-height:1.6;margin:12px 0 0}
.chart-data{margin-top:12px;border-top:1px solid var(--line)}.chart-data summary{padding:14px 0;min-height:44px;font-size:.8rem;font-weight:600;cursor:pointer}.chart-table-wrap{max-height:230px;overflow:auto;padding-bottom:8px}.chart-data table{width:100%;border-collapse:collapse;font-size:.8rem;line-height:1.5}.chart-data caption{text-align:left;margin:0 0 12px;color:var(--muted)}.chart-data th,.chart-data td{text-align:right;padding:9px 8px;border-bottom:1px solid var(--line);font-variant-numeric:tabular-nums}.chart-data th:first-child{text-align:left;font-weight:500}.chart-data thead th{font-weight:700!important}
.reply-donut{position:relative;width:200px;height:200px;margin:24px auto 20px}.reply-donut svg{display:block;width:100%;height:100%;transform:rotate(-90deg)}.donut-track,.donut-segment{fill:none;stroke-width:17}.donut-track{stroke:color-mix(in srgb,var(--line) 65%,var(--paper))}.donut-segment.yes{stroke:var(--chart-yes)}.donut-segment.no{stroke:var(--chart-no)}.donut-segment.pending{stroke:var(--chart-pending)}
.donut-total{position:absolute;inset:40px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:7px;text-align:center}.donut-total strong{font:400 3.1rem/1 var(--serif);font-variant-numeric:tabular-nums;color:var(--ink)}.donut-total span{font-size:.8rem;line-height:1.5;color:var(--muted)}
.breakdown-row{display:grid;grid-template-columns:minmax(0,1fr) 36px 28px;gap:10px;align-items:center;min-height:44px;border-bottom:1px solid var(--line);font-size:.8rem;line-height:1.5}.breakdown-row>span{display:flex;align-items:center;gap:9px}.breakdown-row small{font-size:.75rem;color:var(--muted);text-align:right}.breakdown-row strong{text-align:right;font-variant-numeric:tabular-nums}.chart-dot{display:inline-block;width:10px;height:10px;flex:none;background:var(--chart-yes)}.chart-dot.no{background:var(--chart-no)}.chart-dot.pending{background:var(--chart-pending)}
/* Straight-edged summary surfaces, with circles reserved for icon controls. */
.stats>div,.dashboard-insights>div,.flow-note,.event-facts>div{border-radius:0}
.state-pill{border-radius:9px}.reply-chip,.choice-tag,.invite-tag{border-radius:6px}.invite-cta{border-radius:13.2px}
@media(max-width:1000px){.dashboard-charts-grid{grid-template-columns:minmax(0,1fr)}.response-breakdown{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 24px;align-items:center}.response-breakdown>.eyebrow,.response-breakdown>h3,.breakdown-context{grid-column:1/-1}.response-breakdown .reply-donut{margin:18px auto}}
@media(max-width:640px){.analytics-card{padding:16px}.analytics-heading{flex-direction:column;gap:14px}.chart-range-label{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;font-size:.8rem}.chart-range-label select{width:auto;min-width:140px;margin:0;font-size:16px}.chart-unit{width:100%;margin-left:0}.trend-key{gap:9px 16px;margin-top:16px}.response-breakdown{display:block}.reply-donut{margin:22px auto}.chart-readout{gap:6px 14px}.chart-readout>span{flex-basis:100%}}
@media print{.dashboard-charts-grid{display:block}.analytics-card{break-inside:avoid;margin:16px 0;background:#fff;box-shadow:none}.chart-range-label,.chart-data{display:none}.chart-context,.chart-axis,.breakdown-context{color:#444;fill:#444}}

/* After delivery, settle the mailbox above the centered confirmation. */
.reply-mailbox-position{animation:reply-mailbox-center .65s 2.7s cubic-bezier(.22,.7,.2,1) both}
@keyframes reply-mailbox-center{from{transform:translateX(0)}to{transform:translateX(-104px)}}
@media(prefers-reduced-motion:reduce){.reply-mailbox-position{transform:translateX(-104px)}}

/* Bulk guest import and sharing controls */
.guest-import-card{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px;padding:20px 0;border-block:1px solid var(--line)}
.guest-import-card h3{font:600 1rem/1.4 system-ui;margin:0 0 6px}.guest-import-card p{margin:0;max-width:50ch}.guest-import-actions{display:flex;gap:10px;flex-wrap:wrap;flex:none}.guest-import-actions a{display:inline-flex;align-items:center;text-align:center}
.csv-dialog{width:min(760px,calc(100% - 32px))}.csv-file{font-size:.85rem;overflow-wrap:anywhere}.csv-summary{padding:12px;background:#eaf1ec;color:#234735;font-weight:650;border:1px solid #c8dbce}.csv-warning{padding:12px;background:#fff0ed;color:#853535;border:1px solid #dfb5b0;font-weight:600}.csv-mapping summary{cursor:pointer;min-height:44px;display:flex;align-items:center;text-decoration:underline;text-underline-offset:3px}.csv-mapping dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:4px 0 16px}.csv-mapping dt{font-size:.75rem;color:var(--muted)}.csv-mapping dd{margin:3px 0 0;font-size:.85rem;overflow-wrap:anywhere}
.csv-preview-list{max-height:340px;overflow:auto;border:1px solid var(--line);overscroll-behavior:contain}.csv-preview-row{padding:14px;border-bottom:1px solid var(--line)}.csv-preview-row:last-child{border-bottom:0}.csv-preview-row.invalid{background:#fff0ed}.csv-preview-row.existing,.csv-preview-row.duplicate{background:#f1f0eb}.csv-row-title{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.csv-row-title strong{overflow-wrap:anywhere}.csv-row-title>span{font-size:.75rem;line-height:1.5;color:var(--muted)}.csv-row-values{display:grid;grid-template-columns:1.5fr 1.2fr .7fr;gap:12px;margin-top:10px;font-size:.85rem}.csv-row-values span{min-width:0;overflow-wrap:anywhere}.csv-row-values small{display:block;font-size:.75rem;color:var(--muted);margin-bottom:3px}.csv-row-error{color:#853535;margin:8px 0 0;font-size:.85rem;font-weight:600}#csv-progress{width:100%;height:12px}.csv-dialog .feedback{overflow-wrap:anywhere}
.icon-action.share{background:#e7eef3;color:#305771;border-color:#c8d9e5}.icon-action.share:hover{background:#d5e4ef;border-color:#7999ae}.guest-actions{gap:8px}
.share-utilities{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.share-utilities .btn{min-width:0;min-height:54px;margin:0;padding:9px 5px;font-size:.8rem;line-height:1.3;display:flex;align-items:center;justify-content:center;text-align:center;white-space:normal}.share-utilities #copy-message{background:#e9f0e9;color:#2f503d;border-color:#c6d8ca}.share-utilities #copy-invitation-link{background:#e7eef5;color:#305774;border-color:#c8d9e6}.share-utilities .share-preview{background:#f8edd9;color:#745626;border-color:#e6d4af}.share-utilities #share-more{background:#eee8f5;color:#61457c;border-color:#d9cce8}.share-utilities .btn:hover{filter:brightness(.96)}.share-delivery-note{padding:12px;border-left:3px solid var(--navy);background:color-mix(in srgb,var(--navy) 5%,var(--paper));color:var(--ink);line-height:1.55}.share-delivery-note strong{font-weight:750}.delivery-help{margin:0 0 18px}.more-share-apps{display:grid;grid-template-columns:1fr 1fr;gap:12px}.more-share-apps .btn{min-height:48px;text-align:center}.more-share-apps .telegram{background:#e3f1fa;color:#245f80;border-color:#c1deef}.more-share-apps .sms{background:#e7f1e7;color:#32573a;border-color:#c7ddc9}
@media(max-width:760px){.guest-import-card{align-items:stretch;flex-direction:column;gap:14px}.guest-import-actions{flex:none}.guest-import-actions .btn{flex:1;min-width:0}.csv-row-values{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.csv-row-values>span:last-child{grid-column:1/-1}.csv-mapping dl{grid-template-columns:minmax(0,1fr)}.share-utilities{gap:6px}.share-utilities .btn{font-size:.75rem}}
