:root{--red:#c92936;--ink:#25322e;--muted:#747b74;--paper:#faf9f5;--line:#dedfd7}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font:15px/1.6 Arial,sans-serif}button,input,a{-webkit-tap-highlight-color:transparent}button,input{font:inherit}a{color:inherit}button{cursor:pointer}header{height:92px;padding:0 5%;display:flex;align-items:center;justify-content:space-between;background:#fff;border-bottom:1px solid var(--line)}.logo{width:188px;display:block;filter:brightness(0) saturate(100%) invert(23%) sepia(67%) saturate(2600%) hue-rotate(335deg) brightness(90%) contrast(89%)}.brand small{display:block;letter-spacing:4px;font-size:9px;margin:4px 0 0 53px;color:var(--muted)}.preview{font-size:10px;background:#f6e9e8;color:#a63c43;padding:6px 11px;border-radius:30px;letter-spacing:1px}.layout{display:grid;grid-template-columns:48% 52%;max-width:1800px;margin:auto;align-items:start}.story{position:sticky;top:24px;margin:48px 0 0 28px;align-self:start;overflow:hidden;line-height:0;background:#e8e9e0;border-radius:8px}.story video{display:block;width:100%;aspect-ratio:16/9;object-fit:contain;height:auto}.form-side{min-width:0;padding:48px clamp(24px,4.5vw,80px) 30px}.eyebrow{font-size:10px;letter-spacing:2.4px;text-transform:uppercase;font-weight:700}.intro .eyebrow{color:var(--red)}h2{font:normal 39px/1.2 Georgia,serif;letter-spacing:-1px;margin:12px 0}.intro p{color:var(--muted);font-size:14px;max-width:450px}.required-note{font-size:11px;color:var(--muted);margin-top:26px}.star{color:var(--red)}section.fields{border-top:1px solid var(--line);padding-top:28px;margin-top:32px}.section-title{display:flex;align-items:baseline;gap:14px;margin-bottom:23px}.number{font:italic 16px Georgia;color:#8c977e}.section-title h3{font-size:16px;margin:0;font-weight:600}.grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.full{grid-column:1/-1}.field{display:block;font-size:12px;font-weight:600;min-width:0}.field input{display:block;width:100%;min-width:0;height:49px;border:1px solid var(--line);background:#fff;border-radius:6px;padding:12px;margin-top:7px;color:var(--ink);outline:none}.field input:focus{border-color:#7c8e79;box-shadow:0 0 0 3px #81927818}.field input::placeholder{color:#a4a99f;font-weight:400}.hint{font-size:11px;color:var(--muted);margin:8px 0}.date,.reference{font-size:11px;color:var(--muted);display:flex;justify-content:space-between;gap:12px;background:#f0f1ea;padding:10px 13px;border-radius:5px;margin-top:18px}.reference{flex-direction:column;gap:3px}.reference strong{color:#55634e}.read-button{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;border:1px solid #d8dece;background:#edf0e7;color:#40543e;padding:16px;text-align:left;border-radius:6px}.read-button strong{font-size:13px}.read-button small{display:block;font-size:11px;color:#71806b}.read-button span:last-child{font-size:23px}.check{display:flex;align-items:flex-start;gap:10px;font-size:12px;margin:17px 0 25px;cursor:pointer}.check input{accent-color:var(--red);width:17px;height:17px;flex-shrink:0;margin-top:2px}fieldset{margin:0 0 20px;padding:0;border:0;min-width:0}legend{font-size:12px;font-weight:600;padding:0;margin-bottom:6px}fieldset p{font-size:12px;color:var(--muted);margin:0 0 12px}.choices{display:flex;gap:10px;flex-wrap:wrap}.choice{border:1px solid var(--line);background:#fff;display:flex;align-items:center;gap:8px;padding:10px 18px;min-height:44px;border-radius:6px;font-size:12px;cursor:pointer}.choice:has(input:checked){border-color:#6e8465;background:#edf2e8}.choice input{accent-color:#536c48;margin:0}.amount-choices{display:grid;grid-template-columns:repeat(4,1fr)}.amount-choices .choice{padding:10px;justify-content:center}.signature-block{margin-top:24px;scroll-margin-top:30px}.signature-wrap{position:relative;background:#fff;border:1px dashed #bdc7b3;border-radius:7px;margin-top:8px}.signature-wrap canvas{width:100%;height:150px;display:block;touch-action:none}.signature-wrap canvas:focus-visible{outline:2px solid #7c8e79;outline-offset:3px}.sign-placeholder{position:absolute;inset:50px 0 auto;text-align:center;pointer-events:none;color:#a3aa9c;font:italic 19px Georgia}.clear{position:absolute;right:6px;bottom:0;border:0;background:transparent;color:#7d8479;font-size:11px;min-height:40px;padding:8px;text-decoration:underline}.submit{margin-top:30px;background:var(--red);border:0;border-radius:6px;color:white;width:100%;padding:17px 20px;font-weight:600;display:flex;justify-content:space-between}.submit:hover{background:#b01f2c}.quote{text-align:center;padding:36px 10px 25px;border-top:1px solid var(--line);margin-top:30px}.quote .sprig{font-size:24px;color:#829373}.quote blockquote{font:italic 22px/1.6 Georgia;margin:10px auto 16px;max-width:420px}.quote img{width:170px;mix-blend-mode:multiply;display:block;margin:0 auto 13px}.quote strong{font-size:10px;letter-spacing:1.5px}footer{font-size:9px;color:#92978d;border-top:1px solid var(--line);padding-top:20px;margin-top:20px}.photo-upload{display:flex;align-items:center;gap:18px;margin-top:10px;padding:16px;border:1px dashed #bdc7b3;border-radius:6px;min-width:0}.photo-upload>div:last-child{min-width:0}.photo-upload input{max-width:100%;font-size:11px}.photo-upload input::file-selector-button{border:1px solid var(--line);background:white;padding:10px;border-radius:4px;cursor:pointer}.photo-preview{width:68px;height:84px;flex-shrink:0;background:#eceee5;border-radius:4px;display:flex;justify-content:center;align-items:center;color:#94a18b;font-size:25px;overflow:hidden}.photo-preview img{width:100%;height:100%;object-fit:contain}.statement{font-size:13px;line-height:1.8;color:#5b6556}.recipient{display:flex;flex-direction:column;gap:4px;padding:18px;background:#f0f1ea;border-radius:6px;font-size:11px;margin-top:22px}.recipient .eyebrow{margin-bottom:5px;color:#728066}.sepa{border:1px solid #d8dece;border-radius:6px;margin-bottom:24px;background:#edf0e7}.sepa summary{font-size:12px;color:#40543e;font-weight:600;padding:16px;cursor:pointer}.legal{padding:0 18px 14px;background:#fafbf7;font-size:12px;line-height:1.8}.legal h4{margin-bottom:7px;padding-top:14px}.legal p{margin-top:0}.pdf-link{display:inline-block;color:var(--red);margin:12px 0;font-size:12px}dialog{border:0;border-radius:12px;padding:0;max-width:700px;width:calc(100% - 32px);max-height:85vh;color:var(--ink);box-shadow:0 30px 100px #0004}dialog::backdrop{background:#14231f99;backdrop-filter:blur(4px)}.modal-head{position:sticky;top:0;background:#fff;display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-bottom:1px solid var(--line);z-index:1}.modal-head h3{font-size:16px;margin:0}.close{border:0;background:#eff1eb;border-radius:50%;min-width:40px;height:40px;font-size:20px}.modal-body{padding:24px;font-size:13px}.modal-body h4{margin-bottom:6px}.modal-body p{margin-top:0}.success{padding:28px}.success h3{font:28px Georgia}.success button{padding:10px 25px;background:var(--red);border:0;color:#fff;border-radius:5px}[hidden]{display:none!important}@media(max-width:900px){html{scroll-padding-top:calc(min(56.25vw,32svh) + 20px)}header{height:77px;padding:0 6%}.logo{width:150px}.brand small{font-size:8px;margin-left:43px}.preview{font-size:8px}.layout{display:block}.story{position:sticky;top:0;margin:0;border-radius:0;z-index:5;box-shadow:0 5px 18px #23362c10}.story video{width:100%;height:auto;max-height:32svh;object-fit:contain;background:var(--paper)}.form-side{padding:32px 6% 25px}h2{font-size:34px}.intro p{font-size:13px}.grid{gap:16px}.field input{font-size:16px}.section-title{margin-bottom:20px}.signature-block{scroll-margin-top:calc(min(56.25vw,32svh) + 20px)}}@media(max-width:430px){.grid{grid-template-columns:1fr}.full{grid-column:auto}.photo-upload{gap:10px;padding:12px}.amount-choices{gap:6px}.amount-choices .choice{padding:10px 7px}.quote blockquote{font-size:21px}.modal-head{padding:14px 18px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
:root{--scene-dim:0;--reveal:0}
body{background:#14211b}
.layout{display:block;max-width:none;position:relative;z-index:1}
.video-stage{position:fixed;inset:0;z-index:0;overflow:hidden;background:#172b21}
.video-stage video{width:100%;height:100%;object-fit:cover;object-position:center;display:block}
.video-stage::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0616104a 0%,transparent 25%,#0b1c1644 100%);opacity:calc(.48 + var(--scene-dim)*.42);pointer-events:none}
.hero{min-height:100vh;min-height:100svh;position:relative;display:flex;justify-content:center;align-items:flex-start}
.hero-brand{position:absolute;top:clamp(35px,7.5vh,95px);left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:12px;height:auto;border:0;background:none;padding:0;color:white;text-shadow:0 2px 16px #0e1c13}
.hero-brand .logo{width:clamp(210px,22vw,310px);height:auto;filter:drop-shadow(0 2px 15px #00170b66)}
.hero-brand span{font-size:11px;letter-spacing:6px;font-weight:700}
.form-side{position:relative;max-width:850px;width:min(90%,850px);margin:0 auto 90px;padding:clamp(28px,5.2vw,70px);background:#faf9f599;backdrop-filter:blur(14px) saturate(1.05);-webkit-backdrop-filter:blur(14px) saturate(1.05);border:1px solid #ffffff8c;border-radius:22px;box-shadow:0 24px 95px #0925166e}
.intro h2{font-size:clamp(34px,4vw,49px)}
.form-side:before{content:"";position:absolute;inset:-40px -50px;z-index:-1;background:radial-gradient(ellipse at center,#f3f5e25e,transparent 72%);filter:blur(24px);pointer-events:none}
.form-side:before{left:0;right:0}
.form-side:before{display:none}
.fields{scroll-margin-top:26px}
.fields,.intro{transition:opacity .6s ease,transform .6s ease}
.js-motion .fields:not(.in-view){opacity:.72;transform:translateY(16px)}
.js-motion .fields.in-view{opacity:1;transform:translateY(0)}
.finale{position:relative;color:white}
.last-frame{height:100vh;height:100svh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.bloom{width:1px;height:1px;position:absolute;top:50%;left:50%;border-radius:50%;box-shadow:0 0 0 0 #fbfff0;pointer-events:none}
.finale.begin .bloom{animation:bloom 1.15s ease-out both}
@keyframes bloom{0%{box-shadow:0 0 0 0 #f6fff5b0,0 0 0 0 #ffffff80}55%{box-shadow:0 0 0 100px #f6fff516,0 0 0 205px #ffffff0c}100%{box-shadow:0 0 0 280px #f6fff500,0 0 0 450px #ffffff00}}
.scroll-symbol{position:absolute;bottom:8vh;left:50%;transform:translateX(-50%);font:34px Georgia;color:#fff;text-shadow:0 3px 12px #12291c;opacity:0;transition:opacity .5s ease}
.finale.ready .scroll-symbol{opacity:.9;animation:guide 2s ease-in-out infinite}
@keyframes guide{50%{transform:translate(-50%,9px)}}
.finale .quote{min-height:95vh;min-height:95svh;width:100%;margin:0;padding:12vh 20px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;border:0;background:#f8f7f0ee;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);color:var(--ink)}
.finale .quote .sprig{font-size:30px}
.finale .quote blockquote{font-size:clamp(25px,3.6vw,47px);line-height:1.45;max-width:850px;margin:10px auto 25px}
.finale .quote img{width:clamp(170px,22vw,260px);margin:0 auto 9px}
.finale .quote strong{font-size:12px;letter-spacing:2px}
@media(max-width:900px){html{scroll-padding-top:24px}.video-stage video{object-position:27% center}.hero-brand{top:8vh}.hero-brand .logo{width:clamp(190px,56vw,270px)}.hero-brand span{font-size:9px;letter-spacing:4px}.form-side{width:min(94%,700px);margin-bottom:45px;padding:clamp(23px,6vw,45px);border-radius:17px;background:#faf9f5ef}.signature-block{scroll-margin-top:30px}}
@media(max-width:430px){.form-side{width:90%;padding:24px 18px;background:#faf9f599}.grid{grid-template-columns:1fr}.full{grid-column:auto}.finale .quote blockquote{font-size:28px}.finale .quote strong{font-size:10px}}
.form-side{background:#faf9f599}
@media(prefers-reduced-motion:reduce){.fields,.intro{transition:none!important;transform:none!important;opacity:1!important}.finale.begin .bloom,.finale.ready .scroll-symbol{animation:none}.scroll-symbol{opacity:1}}


/* Transparent, full-screen closing sequence */
.submit-status{margin:16px 0 0;padding:13px 16px;border-radius:9px;background:#edf1e9d9;color:#244234;font-size:13px;font-weight:600;text-align:center;line-height:1.5}
.last-frame{position:relative}
.first-line{position:absolute;left:4%;right:4%;bottom:clamp(76px,13svh,140px);margin:0;text-align:center;color:#fff;font:italic clamp(25px,4vw,55px)/1.25 Georgia,serif;text-shadow:0 2px 12px #000,0 0 30px #000b}
.scroll-symbol{bottom:clamp(18px,5svh,52px)}
.finale .quote{min-height:100vh;min-height:100svh;position:relative;padding:30vh 5% 12vh;background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff;text-shadow:0 2px 13px #000,0 0 30px #0009}
.closing-brand{position:absolute;top:clamp(30px,7svh,90px);left:0;right:0;display:flex;align-items:center;flex-direction:column;gap:10px}
.finale .quote .closing-brand img{display:block;width:clamp(210px,22vw,310px);height:auto;margin:0;filter:drop-shadow(0 2px 14px #0009)}
.closing-brand span{font-size:11px;letter-spacing:5px;font-weight:700}
.finale .quote blockquote{margin:0 auto 24px;max-width:860px;font-size:clamp(27px,4vw,55px)}
.finale .quote img.closing-signature{width:clamp(180px,25vw,290px);height:auto;mix-blend-mode:normal;filter:brightness(0) invert(1) drop-shadow(0 2px 6px #0008);margin:0 auto 12px}
.finale .quote strong{color:#fff}
@media(max-width:600px){.first-line{font-size:clamp(27px,7vw,38px);bottom:clamp(82px,14svh,125px)}.finale .quote{padding:30svh 7% 10svh}.finale .quote .closing-brand img{width:clamp(190px,56vw,270px)}.closing-brand span{font-size:9px;letter-spacing:4px}.finale .quote blockquote{font-size:clamp(31px,8vw,44px)}.finale .quote img.closing-signature{width:clamp(195px,55vw,270px)}}
/* Closing scroll: quote follows the first line; brand rests at the bottom. */
.video-stage video{filter:blur(var(--closing-blur,0px));transform:scale(1.035)}
.first-line{bottom:clamp(24px,5svh,55px)}
.finale .quote{padding:clamp(42px,8svh,95px) 5% clamp(28px,6svh,70px);justify-content:flex-start}
.closing-brand{position:static;top:auto;left:auto;right:auto;margin-top:auto;padding-top:28px}
.finale .quote blockquote{font-size:clamp(36px,5vw,67px);line-height:1.25;margin:0 auto clamp(18px,3svh,30px)}
.finale .quote img.closing-signature{margin:0 auto 8px}
@media(max-width:600px){.first-line{bottom:clamp(24px,5svh,45px)}.finale .quote{padding:clamp(38px,8svh,70px) 7% clamp(24px,5svh,42px)}.finale .quote blockquote{font-size:clamp(36px,9vw,52px);line-height:1.22}.closing-brand{padding-top:24px}}
.submit:disabled{opacity:.65;cursor:wait}
.submit-status.error{background:#fbe9e8e8;color:#9a1a27}
