/* Reset */
*,*::before,*::after{box-sizing:border-box}html{min-height:100%;}body,h1,h2,h3,p{margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}svg{display:block}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:3px}
/* Tokens */
:root{--bg:#faf7f2;--surface:#fffefa;--ink:#2c2023;--muted:#73676b;--line:#e3d8cf;--pink:#86213e;--pink-strong:#62162c;--pink-faint:#f2e8df;--blue-flower:#ead3c6;--focus:#86213e;--phone-bg:#faf7f2;--phone-pink:#ead3c6;--shadow:0 20px 60px rgba(89,18,51,.09);--ui:'DM Sans',Arial,sans-serif;--display:'DM Serif Display',Georgia,serif;--content:900px;--radius-card:16px;--radius-pill:100px;--space-1:6px;--space-2:10px;--space-3:16px;--space-4:24px;--space-5:32px;--space-6:48px;--card-border:1px solid var(--line)}
/* Page */
body{background:var(--bg);background-image:radial-gradient(#a781710b .7px,transparent .7px);background-size:6px 6px;color:var(--ink);font:15px/1.5 var(--ui);-webkit-font-smoothing:antialiased} .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.accent-dot{color:var(--pink)}
.workspace{position:relative;isolation:isolate;display:flex;flex-direction:column;align-items:center;gap:var(--space-4);width:min(calc(100% - 40px),var(--content));min-height:100dvh;margin:auto;padding:var(--space-5) 0 var(--space-4)}
.workspace__language{position:absolute;top:5px;right:0;display:flex;align-items:center;gap:3px}.workspace__language button{border:0;background:transparent;padding:5px;color:var(--muted);font-size:12px;font-weight:700}.workspace__language button[aria-pressed=true]{color:var(--pink-strong);text-decoration:underline;text-underline-offset:4px}
.decor{position:fixed;z-index:-1;color:var(--pink-strong);opacity:.82;width:86px;height:86px;line-height:1;pointer-events:none}.decor svg{display:block;width:100%;height:100%;overflow:visible}.decor--one{top:10%;left:12%}.decor--two{top:22%;right:12%;width:70px;height:70px}.decor--three{top:47%;left:6%;width:58px;height:58px}.decor--four{top:57%;right:6%;width:76px;height:76px}.decor--five{top:75%;left:15%;width:62px;height:62px}.decor--six{top:70%;right:6%;width:52px;height:52px}
.progress{width:min(100%,620px);padding:0 15px}.progress__track{position:relative;height:12px;background:repeating-linear-gradient(115deg,#ead8ca 0 4px,#fffefa 4px 8px);border-radius:var(--radius-pill);border:1px solid var(--line)}.progress__fill{position:absolute;inset:0 auto 0 0;width:0;background:var(--pink);border-radius:var(--radius-pill);transition:width .2s ease}.progress__heart{position:absolute;top:50%;left:0;display:grid;place-items:center;transform:translate(-50%,-50%);color:var(--pink);line-height:1;text-shadow:0 2px var(--surface);transition:left .2s ease}.progress__heart svg{display:block;width:31px;height:31px;fill:var(--surface);stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.workspace__content{flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:var(--space-5);width:100%;min-height:0;padding-top:var(--space-3)}.step-heading{display:grid;justify-items:center;text-align:center;gap:var(--space-2)}.step-heading h1{max-width:600px;font:400 clamp(1.7rem,3vw,2.35rem)/1.12 var(--display);letter-spacing:-.025em;text-wrap:balance}.step-heading p{color:var(--muted);font-size:13px}.step-heading p:empty{display:none}
.step-layout{display:grid;grid-template-columns:1fr;gap:var(--space-5);align-items:start;width:min(100%,760px);margin:0 auto}.step-layout--preview{grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);width:100%;gap:var(--space-5)}.step-layout--preview .step-layout__form{order:2}.step-layout--preview .sample{order:1}.step-layout__form{min-width:0}#stepContent{display:grid;gap:var(--space-4)}
.choice-grid{display:grid;gap:var(--space-3)}.choice-grid--gender{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid--occasion{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid--opening{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid--media{grid-template-columns:repeat(3,minmax(0,1fr))}.choice{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:var(--space-3);min-width:0;min-height:120px;padding:var(--space-3);background:var(--surface);border:var(--card-border);border-radius:var(--radius-card);color:var(--ink);transition:border-color .15s,background .15s;text-align:center}.choice-grid--media .choice{min-height:112px;flex-direction:column;gap:5px;padding:8px}.choice-grid--media .choice__emoji{display:grid;place-items:center;width:76px;height:57px;flex:none}.choice-grid--media .choice__emoji img{display:block;width:100%;height:100%;object-fit:contain}.choice-grid--opening .choice__emoji{display:grid;place-items:center;width:112px;height:84px}.choice-grid--opening .choice__emoji img{display:block;width:100%;height:100%;object-fit:contain}.choice:hover{border-color:var(--pink)}.choice--selected{border:2px solid var(--pink);background:linear-gradient(145deg,var(--surface),var(--pink-faint));color:var(--pink-strong)}.choice__emoji{font:400 42px/1 var(--display);color:var(--pink-strong)}.choice__icon{display:grid;place-items:center;width:54px;height:54px;color:var(--pink-strong)}.choice__icon svg{display:block;width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.choice__title{font-size:14px;font-weight:600;line-height:1.35}
.choice-grid--gender .choice{min-height:206px}.choice-grid--gender .choice__emoji{width:112px;height:84px;display:grid;place-items:center}.choice-grid--gender .choice__emoji img{display:block;width:100%;height:100%;object-fit:contain}.choice-grid--gender .choice__title{font-weight:500;font-size:17px}.choice-grid--occasion .choice{min-height:188px;gap:8px;padding:14px;background:linear-gradient(155deg,var(--occasion-card),var(--surface) 78%)}.choice-grid--occasion [data-value=date]{--occasion-card:#f5e5df;--occasion-accent:#86213e}.choice-grid--occasion [data-value=friend]{--occasion-card:#f1e6ce;--occasion-accent:#6f4b24}.choice-grid--occasion [data-value=colleague]{--occasion-card:#e5eaed;--occasion-accent:#3d5262}.choice-grid--occasion [data-value=team]{--occasion-card:#e1ead8;--occasion-accent:#3e5d37}.choice-grid--occasion .choice--selected{border-color:var(--occasion-accent);background:linear-gradient(145deg,var(--occasion-card),var(--surface));color:var(--occasion-accent)}.workspace__footer{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);width:min(100%,760px);margin:0 auto;padding:var(--space-3);border:var(--card-border);background:var(--surface);border-radius:var(--radius-card)}.action{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-3);min-height:44px;border:0;border-radius:var(--radius-pill);padding:var(--space-2) var(--space-5);font-weight:600}.action--back{background:transparent;color:#585060}.action--back:disabled{opacity:.35;cursor:default}.action--next{background:var(--pink);color:white;min-width:155px}.action--next:disabled{background:#d3b6b4;cursor:not-allowed}.action--next:hover:not(:disabled){background:var(--pink-strong)}.restart{display:flex;align-items:center;gap:var(--space-2);background:none;border:0;color:var(--muted);font-size:12px;min-height:26px}.sample[hidden]{display:none}.sample__intro{font-size:12px;text-align:center;color:var(--muted);max-width:260px}.device{width:min(100%,335px);aspect-ratio:0.56;padding:7px;border:7px solid var(--invite-frame,#f7cddd);border-radius:42px;background:var(--invite-frame-inner,#fff0f6);box-shadow:var(--shadow);position:relative}.device__island{position:absolute;z-index:1;top:3px;left:50%;transform:translateX(-50%);width:33%;height:18px;background:var(--invite-frame,#f7cddd);border-radius:0 0 14px 14px}.device__screen{display:grid;place-items:center;width:100%;height:100%;border-radius:29px;overflow:hidden;background:linear-gradient(180deg,var(--invite-paper,#fff9f0),var(--invite-shade,#ead7c7));padding:20px 10px;transition:background .25s}.device__art{isolation:isolate;position:relative;width:100%;min-height:94%;max-height:100%;overflow-x:hidden;overflow-y:auto;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:15px;background:var(--invite-paper,#fff9f0);border-radius:20px;box-shadow:0 8px 22px #44282b18;padding:46px 3% 22px;text-align:center;transition:background .25s}.device__art--wavy{-webkit-mask-image:url('/assets/invitation-wave.svg');mask-image:url('/assets/invitation-wave.svg');-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.device__art--gate{min-height:72%}.device__screen--scratch{padding:0;background:var(--scratch-layer,#ed4f86)}.device__art--scratch-cover{width:100%;height:100%;max-height:none;overflow:visible;justify-content:center;padding:0;background:transparent;border-radius:0;box-shadow:none;-webkit-mask:none;mask:none}.device__edition{font-size:8px;font-weight:800;letter-spacing:.16em;color:var(--invite-accent,#86213e)}.device__emoji{font-size:34px;line-height:1;color:var(--invite-accent,#86213e)}.device__headline{font:700 20px/1.12 var(--ui);letter-spacing:-.025em}.device__message{color:var(--muted);font-size:11px;line-height:1.4}.device__responses,.phone-choices{display:grid;gap:9px;width:100%}.device__responses{position:relative;overflow:visible}.device__responses button,.device__art>button,.phone-choices button{width:100%;min-height:56px;border:0;border-radius:var(--radius-pill);padding:13px 16px;background:var(--invite-accent,#86213e);color:white;font-size:16px;font-weight:600}.phone-kiss{display:grid;place-items:center;min-height:38px;font-size:35px;line-height:1}.phone-burst{position:absolute;z-index:3;top:18px;left:50%;width:1px;height:1px;pointer-events:none}.phone-burst span{position:absolute;left:0;top:0;font-size:20px;line-height:1;animation:phone-heart-burst 760ms cubic-bezier(.16,.68,.25,1) both}@keyframes phone-heart-burst{0%{transform:translate(-50%,-50%) scale(.2);opacity:0}18%{transform:translate(-50%,-50%) scale(1.15);opacity:1}100%{transform:translate(calc(-50% + var(--burst-x)),calc(-50% + var(--burst-y))) rotate(var(--burst-r)) scale(.55);opacity:0}}.device__art>button:disabled{opacity:.5;cursor:not-allowed}.device__responses button+button{background:#d8d0e2;color:#554d60}.phone-media{display:block;max-width:100%;max-height:145px;object-fit:contain;border-radius:15px}.phone-audio{width:100%;height:34px}.phone-scratch{position:absolute;z-index:4;inset:0;isolation:isolate;width:100%;height:100%;border-radius:0;overflow:hidden;background:linear-gradient(180deg,var(--invite-paper,#fff9f0),var(--invite-shade,#ead7c7))}.phone-scratch__underlay{position:absolute;z-index:1;inset:7%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;overflow:hidden;padding:38px 8% 26px;border-radius:24px;background:var(--invite-paper,#fff);text-align:center}.phone-scratch__canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;z-index:2}.phone-date{display:grid;gap:8px;width:100%}.phone-date__field{display:grid;gap:4px;text-align:left;color:var(--invite-accent,#ed4f86);font-size:13px}.phone-input{width:100%;min-height:38px;border:1px solid color-mix(in srgb,var(--invite-accent,#ed4f86) 30%,white);border-radius:18px;padding:7px 10px;background:white;color:var(--ink);font-size:14px}.phone-error{min-height:12px;color:var(--pink-strong);font-size:10px}.phone-progress{position:absolute;z-index:1;top:34px;left:25%;width:50%;height:4px;border-radius:5px;background:#00000012}.phone-progress i{display:block;height:100%;border-radius:5px;background:var(--invite-accent,#86213e);transition:width .2s}
.field{display:grid;gap:var(--space-2)}.field label:not(.toggle-field):not(.file-choose){font-weight:700;font-size:13px}.field input:not([type=checkbox]),.field textarea{width:100%;min-height:44px;padding:var(--space-3);border:var(--card-border);background:white;border-radius:14px;color:var(--ink)}.field textarea{min-height:96px;resize:vertical}.toggle-field{display:flex;align-items:center;gap:10px;font-size:13px;font-weight:500}.toggle-field input[type=checkbox]{flex:0 0 18px;width:18px;height:18px;min-height:18px;margin:0;padding:0;accent-color:var(--pink)}.file-choose{position:relative;display:inline-flex;align-items:center;width:max-content;padding:var(--space-2) var(--space-4);border:var(--card-border);border-radius:var(--radius-pill);background:var(--surface);font-weight:600;cursor:pointer}.file-choose:focus-within{outline:3px solid var(--focus);outline-offset:3px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.choice-edit.field-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr) 42px;align-items:end}.choice-edit__remove:hover{border-color:var(--pink);color:var(--pink)}.swatches{display:flex;flex-wrap:wrap;gap:var(--space-2)}.swatch{width:36px;height:36px;border:2px solid white;outline:1px solid var(--line);background:var(--swatch);border-radius:50%}.swatch--selected{outline:2px solid var(--pink-strong)}.hint{padding:var(--space-3);background:var(--pink-faint);border-radius:14px;font-size:13px;color:var(--pink-strong)}.copy-link{overflow-wrap:anywhere;font-size:12px;background:white;padding:var(--space-3);border:var(--card-border);border-radius:14px}.copy-action{border:0;padding:var(--space-3) var(--space-4);background:var(--pink);color:white;border-radius:var(--radius-pill)}

@media(min-width:801px){.workspace{max-height:none}.workspace__content{justify-content:center}.workspace__footer{flex:none}}
@media(max-width:800px){.decor--one{left:2%}.decor--two{right:2%}.step-layout--preview{grid-template-columns:1fr;max-width:550px}.step-layout--preview .sample{order:2}.step-layout--preview .step-layout__form{order:1}}
@media(max-width:550px){.workspace{width:calc(100% - 28px);gap:var(--space-3);padding-top:var(--space-4)}.choice-grid--opening .choice__emoji{width:92px;height:69px}.choice-grid--media .choice__emoji{width:62px;height:47px}.choice-grid--media .choice{min-height:100px;gap:3px;padding:6px 3px}.choice-grid--media .choice__title{font-size:11px}.workspace__content{gap:var(--space-4)}.choice-grid--gender .choice{min-height:160px}.choice-grid--gender .choice__emoji{font-size:44px}.choice-grid--opening .choice{min-height:108px}.choice__title{font-size:12px}.choice-grid--occasion .choice{min-height:148px;padding:10px}.choice-grid--occasion .choice__emoji{width:108px;height:81px}.action{padding:var(--space-2) var(--space-3)}.action--next{min-width:125px}.decor{width:48px;height:48px;opacity:.7}.field-row{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.progress__fill,.progress__heart,.choice{transition:none}}

/* Custom dialogs: isolated component styles */
.confirm-dialog,
.notice-dialog {
  width: min(92vw, 410px);
  max-height: calc(100dvh - 40px);
  padding: 0;
  border: 1px solid var(--line);
  border-radius: var(--radius-card);
  background: var(--surface);
  color: var(--ink);
  box-shadow: 0 24px 80px rgba(44, 32, 35, .2);
}
.confirm-dialog::backdrop,
.notice-dialog::backdrop {
  background: rgba(44, 32, 35, .48);
  backdrop-filter: blur(5px);
}
.confirm-dialog__content,
.notice-dialog__content {
  display: grid;
  justify-items: center;
  gap: var(--space-3);
  padding: var(--space-5);
  text-align: center;
}
.confirm-dialog__symbol,
.notice-dialog__symbol {
  display: grid;
  place-items: center;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: var(--pink-faint);
  color: var(--pink);
  font: 400 30px/1 var(--display);
}
.confirm-dialog__title,
.notice-dialog__title {
  font: 400 clamp(1.7rem, 3vw, 2.1rem)/1.1 var(--display);
}
.confirm-dialog__text,
.notice-dialog__text {
  max-width: 31ch;
  color: var(--muted);
  font-size: 14px;
}
.confirm-dialog__actions {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
  width: 100%;
  padding-top: var(--space-2);
}
.confirm-dialog__button,
.notice-dialog__button {
  min-height: 44px;
  border-radius: var(--radius-pill);
  border: 1px solid transparent;
  padding: var(--space-2) var(--space-3);
  font-weight: 700;
}
.confirm-dialog__button--cancel {
  border-color: var(--line);
  background: var(--surface);
  color: var(--ink);
}
.confirm-dialog__button--confirm,
.notice-dialog__button {
  background: var(--pink);
  color: var(--surface);
}
.confirm-dialog__button--confirm:hover,
.notice-dialog__button:hover {
  background: var(--pink-strong);
}
.notice-dialog__button {
  min-width: 140px;
}

/* Opening gates: PIN keypad, envelope animation and timer states */
.phone-envelope{position:relative;display:block;width:min(100%,190px);height:118px;margin:10px auto 4px;padding:0;border:0;border-radius:12px;background:transparent;perspective:600px;overflow:visible;cursor:pointer}
.phone-envelope__back,.phone-envelope__front,.phone-envelope__flap{position:absolute;inset:0;border-radius:10px;box-shadow:0 8px 18px #47272b18}
.phone-envelope__front{z-index:2;background:#f2d6d0;clip-path:polygon(0 0,50% 56%,100% 0,100% 100%,0 100%)}
.phone-pin-slots{display:flex;gap:12px;justify-content:center;margin:4px 0 8px}.phone-pin-slots i{width:28px;height:30px;border-bottom:2px solid var(--invite-accent,#86213e);font-style:normal;color:var(--invite-accent,#86213e);font-size:14px}.phone-pin-slots.is-error{animation:phone-pin-shake .32s ease}@keyframes phone-pin-shake{25%{transform:translateX(-6px)}75%{transform:translateX(6px)}}
.phone-pin-pad{display:grid;grid-template-columns:repeat(3,minmax(42px,1fr));gap:6px;width:min(100%,210px)}.phone-pin-pad button{min-height:34px;border:1px solid var(--line);border-radius:18px;background:#fff;color:var(--ink);font:500 15px var(--ui)}
.phone-gate-art{display:flex;align-items:center;justify-content:center;gap:8px;width:160px;height:140px;filter:drop-shadow(0 5px 4px #64314518)}.phone-gate-art img{display:block;width:100%;height:100%;object-fit:contain}.phone-timer{font-variant-numeric:tabular-nums;font-size:24px;color:var(--muted)}.phone-timer-skip{opacity:.66}
.timer-presets{display:flex;flex-wrap:wrap;gap:7px;margin:8px 0}.timer-presets button,.segmented button{border:1px solid var(--line);border-radius:20px;padding:8px 12px;background:#fff;color:var(--ink)}.timer-presets button.is-selected,.segmented button[aria-pressed="true"]{border-color:var(--pink-strong);background:var(--pink-faint);color:var(--pink-strong)}.segmented{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0}

.phone-scratch.is-revealed{pointer-events:auto}
.phone-scratch__underlay .device__responses button{width:100%}
.device__art>button.phone-envelope{width:min(100%,190px);padding:0;background:transparent;border-radius:12px}
.device__art>button.phone-envelope:disabled{opacity:1;cursor:default}
.phone-envelope__back{background:linear-gradient(145deg,#f9e7de,#edcfc7);z-index:0}
.phone-envelope__flap{z-index:3;background:#e7c0b8;clip-path:polygon(0 0,100% 0,50% 58%);transform-origin:top;transition:transform 900ms cubic-bezier(.45,0,.2,1) 180ms,z-index 0s 630ms}
.phone-envelope__letter{position:absolute;z-index:1;left:15%;right:15%;top:14%;height:72%;display:grid;place-items:center;border-radius:7px;background:#fffaf4;color:var(--invite-accent,#86213e);font-size:30px;transition:transform 950ms cubic-bezier(.22,.61,.36,1) 650ms}
.phone-envelope__seal{position:absolute;z-index:4;left:calc(50% - 17px);top:45%;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--invite-accent,#86213e);color:white;transition:opacity 350ms ease,transform 450ms ease}
.phone-envelope.is-opening .phone-envelope__flap{transform:rotateX(175deg);z-index:0}
.phone-envelope.is-opening .phone-envelope__letter{transform:translateY(-65px);z-index:1}
.phone-envelope.is-opening .phone-envelope__seal{opacity:0;transform:scale(.85)}
@media(prefers-reduced-motion:reduce){.phone-envelope *{transition:none}}

/* Compact choice setup and recipient cards. */
.choice-grid--choiceType{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.choice-grid--choiceType .choice{min-height:48px;padding:8px 10px;flex-direction:column;gap:4px;border-radius:14px;border-width:1px}.choice-grid--choiceMode .choice{min-height:44px;padding:10px 14px;flex-direction:row;gap:8px;border-radius:16px;border-width:1px}
.choice-grid--choiceType .choice__emoji,.choice-grid--choiceMode .choice__emoji{font-size:20px}.choice-grid--choiceType .choice__emoji svg,.choice-grid--choiceMode .choice__emoji svg{display:block;width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.choice-grid--choiceMode .choice__emoji{display:grid;place-items:center;width:22px;height:22px}

.choice-grid--choiceMode{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.choice-copy{border:1px solid var(--line);border-radius:16px;padding:14px 16px}
.choice-copy summary{cursor:pointer;font-size:13px;font-weight:600}
.choice-copy[open] .field{margin-top:14px}
.choice-editor{display:grid;gap:8px}
.choice-edit{display:grid;grid-template-columns:48px minmax(0,1fr) 38px;align-items:center;gap:8px;padding:6px 8px;border:1px solid var(--line);border-radius:16px;background:var(--surface)}
.choice-edit input{min-width:0;width:100%;min-height:42px;border:0;border-radius:10px;background:transparent;color:var(--ink);padding:8px;font:inherit}
.choice-edit__emoji{text-align:center;font-size:23px;background:var(--pink-faint)}
.choice-edit__name{font-size:14px}
.choice-edit__remove{display:grid;place-items:center;width:38px;min-height:38px;padding:0;border:0;border-radius:50%;background:transparent;color:var(--muted);font-size:18px}
.phone-choices{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.phone-choices button{background:#fff;border:1px solid var(--line);color:var(--ink);text-align:center;position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:74px;padding:10px 7px;border-radius:16px;overflow-wrap:anywhere;transition:background 220ms ease,border-color 220ms ease,box-shadow 220ms ease}
.phone-choices button.is-selected{border:1px solid var(--invite-accent);background:var(--invite-shade);box-shadow:inset 0 0 0 1px var(--invite-accent)}
.food-choice__icon{display:grid;place-items:center;width:30px;height:30px;color:var(--invite-accent)}.food-choice__icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.choice-guidance{font-size:10px;color:var(--muted);line-height:1.4}

#stepContent.step-content--choices{gap:16px}
.choice-options{display:grid;gap:10px}
.choice-options h3{font-size:15px;line-height:1.4}
.choice-options>[data-add-choice]{justify-self:start;padding:9px 16px;background:var(--pink-faint);color:var(--pink-strong)}
.preview-panel{display:grid;gap:12px;padding:20px;border:1px solid var(--line);border-radius:18px;background:var(--pink-faint)}
.preview-panel h3{font-size:18px}
.preview-panel p{font-size:13px;color:var(--muted);line-height:1.5}
.preview-panel .copy-action{min-height:48px;font-weight:600}
.action--preview{border:1px solid var(--pink);color:var(--pink-strong);background:var(--surface);padding:10px 18px;font-size:13px}
.action--preview:hover{background:var(--pink-faint)}
@media(max-width:550px){.workspace__footer{position:sticky;bottom:10px;z-index:5;box-shadow:var(--shadow);flex-wrap:wrap}.action--preview{order:3;width:100%}.action--preview[hidden]{display:none}}

.action[hidden]{display:none}

.recipient-link,#paymentStatus{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%;overflow-wrap:anywhere}
.recipient-link{max-width:760px;padding:16px;border:1px solid var(--line);border-radius:16px}
.recipient-link[hidden]{display:none}
.recipient-link input,#paymentStatus input{width:100%;min-width:0;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);font-size:12px}
.recipient-checkout h3{margin:0;font-size:18px}
.recipient-checkout p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.recipient-checkout .copy-action{min-height:48px}
.preview-date-ticket{display:grid;grid-template-columns:1fr 1fr;gap:10px;width:100%;padding:13px;border:0;border-radius:16px;background:linear-gradient(145deg,var(--invite-accent),color-mix(in srgb,var(--invite-accent) 78%,#2c2023));color:#fff;font-size:12px;text-align:left;box-shadow:0 8px 18px color-mix(in srgb,var(--invite-accent) 18%,transparent)}
.preview-date-ticket>div{display:grid;gap:4px}
.preview-date-ticket>div>span{font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:#ffffffc7}
.preview-date-ticket strong{font-size:16px;line-height:1.2;color:#fff}
.preview-date-ticket__choice{grid-column:1/-1;padding-top:8px;border-top:1px dashed #ffffff70;color:#ffffffe8;text-align:center}.preview-date-ticket header{grid-column:1/-1;padding-bottom:8px;border-bottom:1px solid #ffffff45;color:#fff;font-size:9px;font-weight:700;letter-spacing:.13em}
.scroll-cue{display:flex;align-items:center;justify-content:center;gap:8px;width:max-content;max-width:100%;margin:-8px auto 0;padding:9px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);background:var(--surface);color:var(--pink-strong);font-size:12px;font-weight:600}.scroll-cue[hidden]{display:none}.scroll-cue svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:none}.sample{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);position:sticky;top:16px}
@media(max-width:800px){.sample{position:static}}
.recipient-checkout{display:grid;justify-items:center;gap:18px;width:min(100%,700px);margin:0 auto;padding:clamp(22px,4vw,42px);border-block:1px solid var(--line);background:var(--surface);text-align:center}.checkout-kicker{color:var(--pink);font-size:11px;font-weight:700;letter-spacing:.2em}.recipient-checkout .checkout-heart{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:var(--pink-faint);color:var(--pink-strong)}.recipient-checkout .checkout-heart svg{width:34px;height:34px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.recipient-checkout h2{max-width:520px;margin:0;color:var(--ink);font:400 clamp(28px,4vw,40px)/1.1 var(--display)}.checkout-intro{max-width:480px;color:var(--muted);font-size:15px;line-height:1.6}.checkout-benefits{display:grid;width:min(100%,500px);text-align:left}.checkout-benefits p{display:grid;grid-template-columns:34px 1fr;align-items:center;gap:10px;padding:13px 0;border-bottom:1px solid var(--line);color:var(--ink);font-size:14px}.checkout-benefits p:last-child{border:0}.checkout-benefits p span{color:var(--pink);font-size:10px;font-weight:700;letter-spacing:.1em}.recipient-checkout>[data-create-link]{width:min(100%,420px);min-height:54px;border:0;border-radius:12px;background:var(--pink);color:var(--surface);font-size:16px;font-weight:700;transition:background .18s,transform .18s}.recipient-checkout>[data-create-link]:hover{background:var(--pink-strong);transform:translateY(-1px)}.checkout-local{max-width:500px;color:var(--muted);font-size:12px;line-height:1.5}
.recipient-link__result{width:100%;display:grid;gap:10px}
.recipient-link__result:empty{display:none}
@media(max-width:550px){.recipient-checkout{padding:24px 16px}.checkout-intro{font-size:14px}.checkout-benefits p{font-size:13px}}

.workspace__account{margin-right:8px;color:var(--pink-strong);font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}.batch-field{display:grid;gap:8px;width:min(100%,500px);text-align:left;color:var(--ink);font-size:13px;font-weight:700}.batch-field textarea{width:100%;min-height:96px;resize:vertical;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--ink);font:14px/1.5 var(--ui)}.batch-field small{color:var(--muted);font-size:11px;font-weight:400;line-height:1.5}.account-inline-link{color:var(--pink-strong);font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.recipient-link__item{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 12px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.recipient-link__item>span{font-size:13px;font-weight:700}.recipient-link__item input{grid-column:1/-1;width:100%;min-width:0;padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg);color:var(--ink);font:11px var(--ui)}.recipient-link__item a{color:var(--pink-strong);font-size:12px;font-weight:700}.recipient-link__copy-all{justify-self:start}
@media(max-width:550px){.workspace__language{gap:2px}.workspace__account{margin-right:4px;font-size:10px}.recipient-link__item{grid-template-columns:1fr}.recipient-link__item a{justify-self:start}}

.device__occasion-art{position:absolute;z-index:-1;inset:0;overflow:hidden;pointer-events:none;color:var(--invite-accent)}
.device__occasion-icon{position:absolute;width:48px;height:48px;opacity:.17;stroke-width:1.25}
.device__occasion-icon:nth-child(1){top:11%;left:4%;transform:rotate(-12deg)}
.device__occasion-icon:nth-child(2){top:25%;right:3%;width:42px;height:42px;transform:rotate(9deg)}
.device__occasion-icon:nth-child(3){top:48%;left:2%;width:38px;height:38px;transform:rotate(7deg)}
.device__occasion-icon:nth-child(4){top:65%;right:3%;width:52px;height:52px;transform:rotate(-8deg)}
.device__occasion-icon:nth-child(5){top:78%;left:10%;width:34px;height:34px;transform:rotate(13deg)}
.device__occasion-icon:nth-child(6){top:89%;right:13%;width:42px;height:42px;transform:rotate(-14deg)}
.device__occasion-symbol{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;background:color-mix(in srgb,var(--invite-accent) 10%,white);color:var(--invite-accent)}
.device__occasion-symbol svg{width:27px;height:27px}
.device__responses button+button{background:color-mix(in srgb,var(--invite-accent) 16%,white);color:var(--invite-accent)}

.device__scene{position:absolute;z-index:0;inset:0;width:100%;height:100%;object-fit:cover;opacity:.16;pointer-events:none}.device__art>*:not(.device__scene){position:relative;z-index:1}.phone-envelope>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:10px;box-shadow:0 8px 18px #47272b18;transition:transform 900ms cubic-bezier(.22,.61,.36,1),opacity 450ms ease}.phone-envelope.is-opening>img{transform:translateY(-10px) scale(1.04);opacity:.72}

.scratch-settings{display:grid;gap:14px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-card);background:linear-gradient(145deg,var(--surface),var(--pink-faint))}
.scratch-settings__intro{display:flex;align-items:center;gap:12px}
.scratch-settings__intro>span{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:14px;background:var(--surface);color:var(--pink-strong)}
.scratch-settings__intro svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.scratch-settings__intro h3{margin:0;font-size:16px}
.scratch-settings__intro p{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.4}
.scratch-settings__color{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:12px;border-top:1px solid var(--line);font-size:13px;font-weight:700}
.scratch-settings input.scratch-settings__swatch{width:44px;height:44px;min-height:44px;padding:4px;border:1px solid var(--line);border-radius:13px;background:var(--surface)}
.scratch-settings>.field{padding-top:12px;border-top:1px solid var(--line)}
.choice__icon>svg{width:44px;height:44px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}

.choice-grid--theme{grid-template-columns:repeat(3,minmax(0,1fr))}
.choice-grid--theme .choice{min-height:142px;gap:8px}
.choice-grid--theme .choice__icon{display:grid;place-items:center;width:104px;height:78px;border-radius:0;background:transparent;color:var(--theme-icon)}
.choice-grid--theme .choice__icon img{display:block;width:100%;height:100%;object-fit:contain}.choice-grid--theme .choice__icon svg{width:52px;height:52px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.choice-grid--theme [data-value=pink]{--theme-swatch:#f7e6ec;--theme-icon:#a83256}
.choice-grid--theme [data-value=classic]{--theme-swatch:#eee4d9;--theme-icon:#795b42}
.choice-grid--theme [data-value=matcha]{--theme-swatch:#e7eedf;--theme-icon:#55734c}
body[data-occasion=friend]{background-color:#f7f0e2;background-image:radial-gradient(ellipse at 12% 18%,#e8d4aa88,transparent 34%),radial-gradient(ellipse at 88% 77%,#dce8d488,transparent 36%),radial-gradient(#93744d20 .7px,transparent .8px);background-size:auto,auto,8px 8px}
body[data-occasion=colleague]{background-color:#f2f4f4;background-image:radial-gradient(ellipse at 86% 15%,#cbd9e466,transparent 34%),radial-gradient(ellipse at 12% 78%,#e0d9ce88,transparent 38%),radial-gradient(#63778818 .7px,transparent .8px);background-size:auto,auto,9px 9px}
body[data-occasion=team]{background-color:#f1f4ea;background-image:radial-gradient(ellipse at 15% 18%,#d5e2c788,transparent 34%),radial-gradient(ellipse at 90% 76%,#e9dcc588,transparent 36%),radial-gradient(#647b551c .7px,transparent .8px);background-size:auto,auto,8px 8px}
.workspace[data-occasion=friend] .decor{color:#76502a;opacity:.94}
.workspace[data-occasion=colleague] .decor{color:#526777;opacity:.88}
.workspace[data-occasion=team] .decor{color:#54724b;opacity:.86}
body[data-occasion=friend] .choice-grid--theme [data-value=pink]{--theme-swatch:#f2dfb6;--theme-icon:#8a5a1f}
body[data-occasion=friend] .choice-grid--theme [data-value=classic]{--theme-swatch:#eddfd1;--theme-icon:#79513b}
body[data-occasion=friend] .choice-grid--theme [data-value=matcha]{--theme-swatch:#e4e8cf;--theme-icon:#667444}
body[data-occasion=colleague] .choice-grid--theme [data-value=pink]{--theme-swatch:#ece1e9;--theme-icon:#795b70}
body[data-occasion=colleague] .choice-grid--theme [data-value=classic]{--theme-swatch:#e1e8ec;--theme-icon:#526777}
body[data-occasion=colleague] .choice-grid--theme [data-value=matcha]{--theme-swatch:#e0e8e0;--theme-icon:#53695c}
body[data-occasion=team] .choice-grid--theme [data-value=pink]{--theme-swatch:#eadce2;--theme-icon:#8d3a5a}
body[data-occasion=team] .choice-grid--theme [data-value=classic]{--theme-swatch:#ebe2d8;--theme-icon:#735247}
body[data-occasion=team] .choice-grid--theme [data-value=matcha]{--theme-swatch:#dce9ce;--theme-icon:#54724b}
@media(max-width:550px){.choice-grid--theme{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid--theme .choice{min-height:140px}}

.choice-grid--occasion .choice__emoji{display:grid;place-items:center;flex:none;width:164px;height:123px}.choice-grid--occasion .choice__emoji img{display:block;width:100%;height:100%;object-fit:contain}

.image-picker{overflow:hidden;border:1px solid var(--line);border-radius:20px;background:var(--surface)}
.image-picker__heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;background:var(--pink-faint);font-size:16px}
.image-picker__options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:18px}.image-picker>.file-choose{display:flex;width:max-content;max-width:calc(100% - 36px);margin:0 18px 8px}.image-picker>small{display:block;margin:0 18px 15px;color:var(--muted);line-height:1.45}.image-picker>[data-clear-upload]{margin:0 18px 15px}
.gif-choice{display:grid;place-items:center;min-width:0;aspect-ratio:1;border:1px solid var(--line);border-radius:18px;background:var(--surface);color:var(--muted);overflow:hidden;transition:border-color .16s,background .16s,transform .16s}
.gif-choice:hover{transform:translateY(-2px);border-color:var(--pink)}
.gif-choice--selected{border:2px solid var(--pink);background:var(--pink-faint)}
.gif-choice img{display:block;width:100%;height:100%;object-fit:contain;padding:5px}
.gif-choice--more{font-size:16px;font-weight:600}
.gif-gallery{width:min(94vw,760px);max-width:760px;max-height:min(86dvh,760px);padding:24px;border:1px solid var(--line);border-radius:24px;background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.gif-gallery::backdrop{background:rgb(44 32 35 / 38%);backdrop-filter:blur(3px)}
.gif-gallery__header{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:12px;margin-bottom:20px}
.gif-gallery__header h2{font:400 clamp(1.4rem,3vw,2rem)/1.15 var(--display);text-align:center}
.gif-gallery__back{width:42px;height:42px;border:0;border-radius:50%;background:var(--pink-faint);color:var(--pink-strong);font-size:24px}
.gif-gallery__options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-height:calc(86dvh - 170px);overflow:auto;padding:2px}
.gif-gallery__upload{display:block;width:100%;min-height:52px;margin-top:18px;border:0;border-radius:var(--radius-pill);background:var(--pink);color:white;font-weight:700}
.choice-grid--choiceType .choice__emoji{display:grid;place-items:center;height:23px}
.choice-grid--choiceType .choice__title{font-size:12px}
@media(max-width:550px){.image-picker__options{gap:7px;padding:12px}.gif-choice{border-radius:14px}.gif-gallery{padding:16px}.gif-gallery__options{grid-template-columns:repeat(2,minmax(0,1fr))}.choice-grid--choiceType{grid-template-columns:repeat(3,minmax(0,1fr))}.choice-grid--choiceType .choice{min-height:66px}}
.device__art--friend{background:transparent;border-radius:0;box-shadow:none}.device__art--friend.device__art--wavy{-webkit-mask-image:none;mask-image:none}.device__art--friend .device__responses button,.device__art--friend>button{min-height:64px;font-size:17px}

.checkout-price{display:flex;align-items:center;justify-content:space-between;gap:16px;width:min(100%,520px);padding:16px 19px;border:1px solid var(--line);border-radius:16px;background:var(--paper);color:var(--muted);font-size:14px}.checkout-price strong{color:var(--accent);font-size:20px;white-space:nowrap}
