:root{font-family:Poppins,sans-serif;font-synthesis:none;color:#181518;background:#e5e5ea;--ink:#181518;--paper:#e5e5ea;--gold:#cba86b;--muted:#c9c2cc}
*{box-sizing:border-box}
body{margin:0}
h1,h2,h3,p{margin:0}
h1,h2,h3{font-family:'Playfair Display',serif;font-weight:400}
button,input,select,textarea{font:inherit}
button,a{touch-action:manipulation}
button{min-height:44px;padding:12px 18px;border:1px solid #88818d;border-radius:12px;background:transparent;color:inherit;cursor:pointer;font-size:13px;line-height:1.4}
button:hover{background:#ffffff16}
button:disabled{opacity:.45;cursor:not-allowed}
button:active:not(:disabled){transform:translateY(1px)}
a{color:inherit;text-underline-offset:4px}
button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--gold);outline-offset:4px}
::selection{background:#cba86b;color:#181518}
input,textarea{caret-color:var(--gold)}
.review-header,.review-footer,.option-intro{max-width:1220px;margin:auto}
.review-header{padding:32px 36px 22px}
.back-link{font-size:12px}
.review-header h1{font-size:44px;line-height:1.13;margin:24px 0 12px;letter-spacing:-.025em}
.review-header p,.review-footer p{font-size:13px;line-height:1.7;max-width:800px;color:#514953}
.variant-nav{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}
.variant-nav button{background:#d4d4dc;border:0;font-weight:500;color:#181518}
.variant-nav button:hover{background:#c8c8d3}
.variant-nav button[aria-pressed=true]{background:#181518;color:#fff}
.option-intro{padding:4px 36px 24px;display:flex;gap:24px;align-items:center;justify-content:space-between}
.option-intro h2{font-family:Poppins,sans-serif;font-size:15px;font-weight:500;margin-bottom:6px}
.option-intro p{font-size:12px;line-height:1.7;color:#514953;max-width:820px}
.reset{flex:none;border:0;text-decoration:underline;text-underline-offset:4px;font-size:12px;padding-right:0}
.app-surface{max-width:1220px;margin:0 auto;padding:28px 30px 36px;position:relative;isolation:isolate;background:#e5e5ea;border-radius:24px}
.app-surface:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background:url('/templates/black-cat-v1/art/pattern-v2.png') center/720px;filter:grayscale(1);mix-blend-mode:multiply;opacity:.3;border-radius:inherit}
.app-header{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#181518;color:white;padding:21px 30px;border-radius:20px;margin-bottom:18px}
.wordmark{display:block;font:400 25px/1.2 'Playfair Display',serif}
.app-context{display:block;font-size:11px;color:#d0c9d3;text-align:right;line-height:1.6}
.workspace{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(300px,.85fr);align-items:start;gap:24px}
.form-panel{background:#181518;color:#fff;border-radius:22px;min-height:642px;padding:32px 34px;min-width:0}
.flow-nav{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 30px;padding:0;list-style:none}
.flow-nav button{display:flex;align-items:center;gap:7px;padding:4px 10px 4px 0;border:0;font-size:11px;min-height:35px;color:#c9c2cc}
.flow-nav button[aria-current=step]{color:#fff}
.flow-nav .number{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:#3a343f;font-size:10px;flex:none}
.flow-nav button[aria-current=step] .number{background:#cba86b;color:#181518}
.form-panel h2{font-size:35px;line-height:1.14;letter-spacing:-.02em;max-width:440px;margin-bottom:13px}
.intro{font-size:13px;line-height:1.7;color:#d4ccd8;max-width:430px;margin-bottom:26px}
.language-choices{display:grid;gap:12px;margin:26px 0}
.language-choices button{display:flex;align-items:center;justify-content:space-between;font-size:17px;min-height:68px;padding:16px 20px;border-radius:14px;border-color:#8c838f;text-align:left}
.language-choices button span{font-size:11px;font-weight:400}
.language-choices button[aria-pressed=true]{background:#fff;color:#181518;border-color:transparent;font-weight:500}
.language-choices button:hover{background:#38313c}
.language-choices button[aria-pressed=true]:hover{background:#e5e1e8}
.small-note{font-size:11px;line-height:1.7;color:#c9c2cc}
.language-preview-note{margin-top:24px;max-width:400px}
.field-label{display:block;font-size:12px;line-height:1.5;margin:22px 0 8px}
input,select,textarea{background:#292529;color:#fff;border:1px solid #938995;border-radius:12px;padding:13px 14px;width:100%;min-height:48px;font-size:14px;line-height:1.45;max-width:100%}
input::placeholder,textarea::placeholder{color:#c9c2cc;opacity:1}
select{color-scheme:dark;padding-right:28px;cursor:pointer}
textarea{resize:vertical;min-height:100px}
.counter{font-size:10px;color:#c9c2cc;display:block;text-align:right;margin-top:4px;font-variant-numeric:tabular-nums}
.suggestion-label{display:block;font-size:11px;color:#c9c2cc;margin-top:18px}
.suggestions{display:flex;flex-wrap:wrap;gap:8px;margin:9px 0 25px}
.suggestions button{font-size:11px;padding:10px 13px;text-align:left}
.version-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px}
.version-tabs button{border:0;background:#38313c;padding:10px 14px;font-size:12px}
.version-tabs button[aria-pressed=true]{background:#fff;color:#181518}
.shared-details{font-size:11px;line-height:1.7;color:#d4ccd8;margin:20px 0 24px}
.shared-details strong{color:#fff;display:block;font-weight:500;margin-bottom:4px}
.optional-fields{margin-top:30px}
.optional-fields summary{font-size:12px;cursor:pointer;min-height:44px;padding:12px 0;text-decoration:underline;text-underline-offset:4px}
.signoff-field{margin-top:32px}
.actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:32px}
.actions .primary{margin-left:auto}
.primary{background:#fff;color:#181518;border-color:transparent;min-height:48px;padding:13px 24px;font-weight:500}
.primary:hover{background:#e3dfe7}
.secondary{border:0;padding-left:0}
.guest-list{display:grid;gap:26px;margin:24px 0 28px}
.guest-row{display:grid;grid-template-columns:minmax(0,1fr) minmax(130px,.9fr);align-items:center;gap:16px}
.guest-name{font-size:16px;font-weight:500;display:block}
.guest-channel{font-size:11px;line-height:1.6;color:#c9c2cc;display:block;margin-top:4px;overflow-wrap:anywhere}
.guest-row label{font-size:10px;color:#c9c2cc}
.guest-row label select{margin-top:5px}
.language-summary{background:#302a32;padding:17px 19px;border-radius:14px;font-size:12px;line-height:1.8}
.language-summary strong{font-weight:500;display:block;margin-bottom:4px}
.version-list{display:grid;gap:12px;margin:24px 0}
.version-row{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#302a32;border-radius:14px;padding:18px}
.version-row h3{font:500 15px Poppins,sans-serif}
.version-row p{font-size:11px;line-height:1.6;color:#d4ccd8;margin-top:4px}
.version-row button{font-size:12px;background:transparent}
.add-version{margin-top:28px}
.add-controls{display:flex;align-items:center;gap:10px;margin-top:8px}
.add-controls select{flex:1;min-width:0}
.add-controls button{flex:none;padding:12px 18px}
.assignment-note{margin:20px 0 0}
.review-recipients{display:grid;gap:12px;margin:24px 0}
.recipient{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;border:0;background:#302a32;padding:15px 18px;border-radius:14px}
.recipient[aria-pressed=true]{background:#fff;color:#181518}
.recipient span:last-child{text-align:right;font-size:11px;line-height:1.8}
.recipient strong{font-size:14px;font-weight:500}
.recipient .channel{display:block;font-size:10px;opacity:.8}
.preview-panel{min-width:0;position:sticky;top:24px;align-self:start;padding:17px 24px 24px;background:#d9d9e1;border-radius:18px}
.preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;font-size:12px}
.preview-head p{font-weight:500}
.preview-head select{background:#fff;color:#181518;color-scheme:light;font-size:11px;min-height:42px;width:125px;border:0;padding:8px 25px 8px 12px}
.card-container{width:100%;max-width:380px;margin:auto;container-type:inline-size;filter:drop-shadow(0 12px 14px #18151825)}
.invitation-card{position:relative;aspect-ratio:406/507;color:#fff;isolation:isolate}
.invitation-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;z-index:-1}
.front-copy{position:absolute;left:24%;top:39%;width:52%;height:34%;display:flex;flex-direction:column;align-items:center;gap:1.7cqw;text-align:center;--scale:1}
.front-copy p,.front-copy h3{margin:0;width:100%;flex:none;overflow-wrap:anywhere;color:#fff}
.greeting{font:400 calc(4.3cqw * var(--scale))/1.4 'Source Serif 4',serif;white-space:pre-line}
.card-title{font:400 calc(7cqw * var(--scale))/1.12 'Playfair Display',serif}
.front-copy .card-description{margin-top:2cqw;font:400 calc(4cqw * var(--scale))/1.35 'Source Serif 4',serif;max-width:96%;white-space:pre-line;text-wrap:balance}
.back-copy{position:absolute;left:23%;top:18%;width:54%;height:60%;text-align:center;font:400 4cqw/1.4 'Source Serif 4',serif;--scale:1}
.back-copy h3{font:400 calc(6.5cqw * var(--scale))/1.2 'Playfair Display',serif;color:#c5ff00;margin-bottom:2.5cqw;overflow-wrap:anywhere}
.back-copy .weekday{display:block;font:400 calc(3.5cqw * var(--scale))/1.4 'Source Serif 4',serif;color:white;margin-bottom:1.5cqw;text-transform:capitalize}
.back-copy p{font:400 calc(4cqw * var(--scale))/1.4 'Source Serif 4',serif;white-space:pre-line;overflow-wrap:anywhere}
.card-address{margin:4.5cqw 0 4cqw}
.back-copy footer{margin-top:7cqw}
.back-copy footer p{font-size:calc(3.5cqw * var(--scale))}
.signature{display:block;font:400 calc(5.3cqw * var(--scale))/1.2 Allura,cursive;margin-top:1cqw}
.card-switch{display:flex;justify-content:center;margin:12px 0 0;gap:16px}
.card-switch button{border:0;font-size:12px;text-decoration:underline;text-underline-offset:4px}
.preview-note{font-size:10px;line-height:1.6;text-align:center;color:#514953;margin-top:7px}
.guest-replies{display:flex;justify-content:center;flex-wrap:wrap;gap:8px}
.guest-replies button{border:0;text-decoration:underline;text-underline-offset:4px;font-size:12px}
.reply-content{font-size:12px;text-align:center;line-height:1.6;margin-top:12px}
.reply-content h3{font-size:23px;margin-bottom:12px}
.reply-choices{display:flex;justify-content:center;gap:8px}
.reply-choices button{background:transparent;padding:9px 14px}
.reply-choices button[aria-pressed=true]{background:#181518;color:#fff}
.fit-message{font-size:11px;color:#ffd8b1;line-height:1.6;margin-top:12px}
.fit-message:empty{display:none}
.review-footer{padding:24px 36px 48px;display:grid;gap:10px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@media(max-width:1000px){.app-surface{margin:0 20px;padding:20px}.form-panel{padding:27px 24px}.workspace{gap:18px;grid-template-columns:minmax(0,1fr) minmax(285px,.85fr)}.preview-panel{padding:17px}.form-panel h2{font-size:30px}.wordmark{font-size:23px}}
@media(max-width:740px){.review-header{padding:26px 20px 20px}.review-header h1{font-size:34px}.review-header p{font-size:12px}.variant-nav{display:grid;grid-template-columns:1fr;gap:7px;margin-top:20px}.variant-nav button{text-align:left}.option-intro{padding:0 20px 22px;align-items:flex-start;gap:10px}.option-intro h2{font-size:14px}.option-intro p{font-size:11px}.reset{font-size:11px;padding:0;min-width:48px}.app-surface{margin:0 10px;padding:12px;border-radius:18px}.app-header{padding:20px;display:block;border-radius:16px;margin-bottom:12px}.wordmark{font-size:23px}.app-context{text-align:left;margin-top:8px;font-size:10px}.workspace{display:flex;flex-direction:column;gap:16px}.form-panel{width:100%;min-height:0;padding:24px 20px;border-radius:18px}.form-panel h2{font-size:30px}.flow-nav{margin-bottom:23px;gap:0}.flow-nav button{font-size:10px;gap:5px;padding-right:11px}.flow-nav .number{width:21px;height:21px}.intro{font-size:12px}.preview-panel{width:100%;position:static;padding:20px;order:2}.guest-row{grid-template-columns:minmax(0,1fr) minmax(126px,.9fr);gap:10px}.guest-name{font-size:15px}.guest-channel{font-size:10px}.guest-row select{font-size:12px;padding-left:10px}.language-choices button{font-size:16px}.review-footer{padding:25px 20px}.review-footer p{font-size:11px}.actions .primary{padding:13px 17px}.version-tabs{gap:6px}.version-tabs button{padding:10px 12px;font-size:11px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
