@font-face{font-family:Century;src:url('assets/fonts/century.ttf') format('truetype');font-weight:400;font-display:swap}@font-face{font-family:Century;src:url('assets/fonts/century-2.ttf') format('truetype');font-weight:700;font-display:swap}@font-face{font-family:OlgaCTT;src:url('assets/fonts/olga-web.ttf') format('truetype');font-weight:400;font-display:swap;ascent-override:100%;descent-override:40%;line-gap-override:0%}
*{box-sizing:border-box}html,body{margin:0;background:#230606;color:#fff}body{overflow-x:hidden;font-family:Century,serif}button,input{font:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}button:disabled{cursor:default}button:focus-visible{outline:2px solid #f2d5b2;outline-offset:5px}[hidden]{display:none!important}#stage{position:relative;min-height:100svh;overflow:hidden}.scene{position:absolute;width:425px;height:815px;transform-origin:0 0;isolation:isolate}.backdrop{position:absolute;inset:0;z-index:-2;background:url('assets/4669fda0-f958-450b-8b57-d25bdf206e2f.png') center/cover}.dim{position:absolute;inset:0;background:#000;opacity:0;pointer-events:none;transition:opacity 1.8s;z-index:-1}.brand{position:absolute;left:96px;top:67px;width:233px;height:36px}.brand img{position:absolute;left:-8.358px;top:-8.358px}.card-slot{position:absolute;left:24px;top:151px;width:375px;height:502px;perspective:1600px}.card{position:absolute;inset:0;transform-style:preserve-3d;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);filter:drop-shadow(0 0 20px #000b);will-change:transform}.face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden}.front{transform:rotateY(0deg)}.back{transform:rotateY(180deg);color:#8a6652}.paper{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;pointer-events:none}.flip-mark{position:absolute;left:25.6px;top:453.6px}.invitation-copy{position:absolute;left:39px;top:43px;width:204px;margin:0;font-weight:400;font-size:15px;line-height:18px;letter-spacing:-.3px;text-align:center}.field{position:absolute;left:38px;right:42px;height:28px;display:flex;align-items:flex-start;gap:10px;font-size:12px;letter-spacing:-.24px;line-height:14px}.email-field{top:169px}.name-field{top:217px}.field label{flex-shrink:0;white-space:nowrap}.field label span{margin-left:3px}.field input{min-width:0;flex:1;padding:0 0 4px;border:0;border-radius:0;outline:none;background:transparent;color:#000c6a;font-family:OlgaCTT,cursive;font-size:20px;line-height:18px;letter-spacing:0;margin-top:-3px;height:26px}.field:focus-within:after{content:'';position:absolute;bottom:6px;left:0;right:0;border-bottom:1px solid #8a665270}.consent{position:absolute;left:43px;right:40px;height:32px;cursor:pointer;display:flex;align-items:flex-start;gap:8px}.privacy{top:256px}.marketing{top:305px}.consent input{position:absolute;width:100%;height:38px;inset:-5px 0;opacity:0;margin:0;cursor:pointer}.check-box{display:block;width:15px;height:15px;flex-shrink:0;border:1px solid #8a6652;border-radius:5px;margin-top:6px}.check-stroke{position:absolute;left:-2.64px;top:-6.11px;opacity:0;transition:opacity .15s;pointer-events:none}.marketing .check-stroke{left:-.62px;top:-5.31px}.consent:has(input:checked) .check-stroke{opacity:1}.consent:has(input:focus-visible) .check-box{outline:2px solid #000c6a;outline-offset:3px}.consent-copy{font-size:12px;line-height:12px;letter-spacing:-.43px}.code-area{position:absolute;left:43px;top:355.2647px;width:287px;height:67.9507px}.code-template{display:block}.code-slots{position:absolute;left:46.91px;top:18.266px;height:49.685px;display:flex;gap:18.12px}.digit-slot{width:24.26px;height:49.685px;position:relative;flex-shrink:0}.digit-slot img{position:absolute;left:0;top:0;transform-origin:0 0;filter:invert(7%) sepia(98%) saturate(3683%) hue-rotate(234deg) brightness(65%);animation:ink-in .22s ease-out}.digit-slot.active:after{content:'';position:absolute;bottom:-3px;left:0;right:0;height:2px;background:#000c6a;animation:caret 1.1s infinite}.code-area>input{position:absolute;inset:16px 0 0 40px;width:247px;height:54px;font-size:24px;color:transparent;caret-color:transparent;border:none;background:transparent;outline:none;letter-spacing:17px;opacity:0}.code-area:has(input:focus-visible){outline:1px dashed #8a6652;outline-offset:8px}.code-caption{position:absolute;left:28px;top:440px;width:322px;height:25px;margin:0;font-size:12px;line-height:12px;letter-spacing:-.43px;text-align:center}.code-caption button{padding:0;border:0;color:inherit;background:none;text-decoration:underline;letter-spacing:inherit;font-size:inherit;line-height:inherit}.code-caption button:disabled{opacity:1;cursor:default}.form-error{position:absolute;left:26px;right:26px;top:463px;margin:0;font:11px/13px Century,serif;color:#8b2721;text-align:center}.action-wrap{position:absolute;left:40.7632px;top:702px;width:343.4737px;height:52px}.slider,.primary{position:relative;width:100%;height:100%;border:0;border-radius:26px;background:#ff6b6b26;backdrop-filter:blur(16.421px);color:white;user-select:none}.slider-label{position:absolute;left:61.2368px;top:19px;width:282px;height:17px;pointer-events:none}.slider-label img,.primary>img{display:block;width:auto;height:auto}.slider-thumb{position:absolute;left:4.1053px;top:4.1053px;width:75.2632px;height:43.7895px;border:0;border-radius:21.895px;background:#ffffff1a;box-shadow:0 5.474px 9.716px #0004;backdrop-filter:blur(13.684px);display:grid;place-items:center;touch-action:none;transition:background .2s}.slider-thumb:hover{background:#ffffff24}.primary{display:flex;align-items:center;justify-content:center;transition:background .3s,opacity .3s}.primary:not(:disabled){background:#ff6b6b4d}.primary:disabled{opacity:1}.success{position:absolute;left:61px;top:382px;width:304px;text-align:center}.success p{margin:0;font-size:24px;line-height:26px;letter-spacing:-.48px}.status{position:absolute;left:20px;right:20px;top:768px;margin:0;font:12px/17px Century,serif;text-align:center;color:#e8d8cb}.status:empty{display:none}#burn-canvas,#particles-canvas{position:absolute;inset:0;pointer-events:none;width:100%;height:100%;z-index:4;display:none}#particles-canvas{z-index:5}.action-wrap{transition:opacity 520ms cubic-bezier(.16,1,.3,1)}#stage[data-state=burning] .action-wrap{opacity:0}#stage[data-state=success] .dim{opacity:.85}#stage[data-state=success] .primary{background:#ffffff4d}#stage[data-state=success] .card-slot{visibility:hidden}.card.flipped{transform:rotateY(180deg)}@keyframes caret{50%{opacity:0}}@keyframes ink-in{from{opacity:0;filter:blur(3px) invert(7%) sepia(98%) saturate(3683%) hue-rotate(234deg) brightness(65%)}to{opacity:1}}
@media(min-width:768px){.scene{width:1311px;height:749px}.backdrop{width:762px;height:1366px;left:275px;top:-315px;transform:rotate(90deg);background-size:100% 100%}.brand{left:525px;top:49px;width:261px;height:40px}.brand img{left:-7.3px;top:-7.3px}.card-slot{left:263px;top:111px;width:786px;height:527px}.flip-mark{display:none}.invitation-copy{left:148px;top:60px;width:490px;font-size:24px;line-height:29px;letter-spacing:-.48px}.field{left:55px;right:58px;font-size:14px;line-height:17px;letter-spacing:-.28px}.email-field{top:215px}.name-field{top:266.6px}.field input{font-size:24px;height:30px;line-height:24px;max-width:590px;margin-top:-4px}.consent{left:55px;right:auto;width:355px;height:33px;gap:8.6px}.privacy{top:308.525px}.marketing{top:361.2px}.consent-copy{font-size:14px;line-height:12.9px;letter-spacing:-.46225px}.check-box{width:16.125px;height:16.125px;border-width:1.075px;border-radius:5.375px;margin-top:6.45px}.check-stroke{transform:scale(1.075);transform-origin:0 0}.code-area{left:425px;top:296.04px;width:286.001px;height:67.714px}.code-slots{transform:scale(.9965);transform-origin:0 0}.code-caption{left:450px;top:373px;width:322px}.form-error{left:420px;right:45px;top:406px;font-size:12px;line-height:15px}.action-wrap{left:493px;top:655px;width:325px;height:50px}.slider,.primary{border-radius:24.602px;backdrop-filter:blur(15.538px)}.slider-thumb{left:5px;top:4px;width:71px;height:42px;border-radius:20.717px}.slider-label{left:58.27px;top:18.23px}.slider-label img{transform:translateX(-7.63px)}.success{left:263px;top:357px;width:786px}.success p{font-size:28px;line-height:34.039px;letter-spacing:-.56px}.mobile-break{display:none}.status{top:719px;font-size:12px}.primary>img{transform:translateY(0px)}}
@media(prefers-reduced-motion:reduce){.card,.dim,.primary,.action-wrap{transition:none!important}.digit-slot img{animation:none}.digit-slot.active:after{animation:none}}
/* The exported lettering keeps Decima's exact glyph shapes. */
.slider-label{display:grid;place-items:center}.slider-label img{transform:none}.backdrop{z-index:0;background-size:100% 100%;pointer-events:none}.scene{z-index:1}.dim{z-index:1}.brand,.card-slot,.action-wrap,.success,.status{z-index:2}.dim{transition:none}.primary>img{pointer-events:none}.consent-copy{pointer-events:none}#stage[data-state=burning] .card{filter:none}.face{overflow:visible}
@media(min-width:768px){.slider-label{width:266.733px}.slider-label img{transform:none}}
/* A filter on the 3D parent flattens its faces in Chromium/WebKit. */
.card{filter:none}.face{filter:drop-shadow(0 0 20px #000b)}#stage[data-state=burning] .face{filter:none}
.form-error{top:515px;left:0;right:0;color:#f1d3bf;font-size:12px;line-height:15px}
@media(min-width:768px){.form-error{top:527px;left:0;right:0}}
body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.face{filter:none}.paper{filter:drop-shadow(0 0 20px #000b)}#stage[data-state=burning] .paper{filter:none}
.button-copy{width:282px;height:17px;display:grid;place-items:center;transform:translateY(1.5px)}.button-copy img{display:block;pointer-events:none}
@media(min-width:768px){.button-copy{width:266.733px;transform:translateY(.73px)}}
.paper{filter:none;box-shadow:none}.primary:not(:disabled){background:#ff6b6b4d}#stage[data-state=ready] .primary{background:#ff6b6b4d}#stage[data-state=success] .primary{background:#ffffff4d}.brand img{width:249.716px;height:52.7159px}.flip-mark{width:27.8px;height:24.1855px}.slider-thumb img{width:39.6842px;height:19.1579px}
@media(min-width:768px){.brand img{width:275.6px;height:54.6px}.slider-thumb img{width:37.55px;height:18.127px}}
/* Keep the pivot fixed; volume comes from the paper edge, light and contact shadow. */
.card{transition:none;transform-origin:50% 50%;touch-action:pan-y;cursor:grab}.card.is-moving{cursor:grabbing;user-select:none}.front{transform:translateZ(.7px)}.back{transform:rotateY(180deg) translateZ(.7px)}.paper-light{position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,#fff6,#1f130acc);opacity:var(--paper-shade,0);border-radius:1px}.card-ground-shadow{position:absolute;inset:5px;background:#000;filter:blur(22px);opacity:0;pointer-events:none;transform-origin:center;will-change:transform,opacity}.paper-edge{position:absolute;display:block;pointer-events:none;background:linear-gradient(90deg,#765239,#dec6a0 40%,#b59a76 75%,#765239);backface-visibility:visible}.edge-left,.edge-right{width:1.4px;height:100%;top:0;transform:rotateY(90deg);transform-origin:center}.edge-left{left:-.7px}.edge-right{right:-.7px}.edge-top,.edge-bottom{height:1.4px;width:100%;left:0;transform:rotateX(90deg);transform-origin:center}.edge-top{top:-.7px}.edge-bottom{bottom:-.7px}#stage[data-state=burning] .paper-light,#stage[data-state=burning] .paper-edge,#stage[data-state=burning] .card-ground-shadow{display:none}
@media(prefers-reduced-motion:reduce){.paper-light,.card-ground-shadow{display:none}}
.card{--paper-inset-x:11px;--paper-inset-y:8px}.paper-light{inset:var(--paper-inset-y) var(--paper-inset-x);border-radius:5px}.paper-edge{opacity:0}.is-moving .paper-edge{opacity:1}.edge-left,.edge-right{height:calc(100% - 2 * var(--paper-inset-y));top:var(--paper-inset-y)}.edge-left{left:calc(var(--paper-inset-x) - .7px)}.edge-right{right:calc(var(--paper-inset-x) - .7px)}.edge-top,.edge-bottom{width:calc(100% - 2 * var(--paper-inset-x));left:var(--paper-inset-x)}.edge-top{top:calc(var(--paper-inset-y) - .7px)}.edge-bottom{bottom:calc(var(--paper-inset-y) - .7px)}
@media(min-width:768px){.card{--paper-inset-x:21px;--paper-inset-y:24px}}
/* Match the separate handwriting layers while keeping full-height native inputs. */
.field input{position:absolute;right:0;font-family:OlgaCTT,Century,serif;height:42px;line-height:28px}.email-field input{left:49px;margin-top:-15px}.name-field input{position:relative;left:auto;right:auto;max-width:none;margin-top:-12px}
@media(min-width:768px){.field input{height:46px;line-height:32px}.email-field input{left:54px;margin-top:-17px}.name-field input{left:auto;margin-top:-13px}}
/* The paper already includes its writing line. Leave room for Olga's tails
   beyond its declared descent without moving the writing baseline. */
.field:focus-within:after{content:none}
/* Clip the browser's autofill paint to the glyphs so the actual paper stays visible. */
.field input{appearance:none;-webkit-appearance:none;-webkit-text-fill-color:#000c6a;caret-color:#000c6a;-webkit-background-clip:text;background-clip:text}
.field input:is(:autofill,:-webkit-autofill){-webkit-text-fill-color:#000c6a;caret-color:#000c6a;-webkit-background-clip:text;background-clip:text}
.ink-reveal{position:absolute;pointer-events:none;z-index:1}
.slider{background:rgba(255,107,107,.15)}
.slider-fill{position:absolute;inset:0;overflow:hidden;border-radius:inherit;pointer-events:none}
.slider-trail{position:absolute;left:.2368px;top:0;height:100%;width:var(--trail-width,0px);border-radius:26px 0 0 26px;background:rgba(255,107,107,.15);backdrop-filter:blur(16.421px);-webkit-mask-image:linear-gradient(to right,#000 62.019%,transparent 100%);mask-image:linear-gradient(to right,#000 62.019%,transparent 100%);opacity:var(--trail-strength,0)}
.slider-thumb{background:rgba(255,255,255,.10);transition:none}
.slider-thumb:hover{background:rgba(255,255,255,.14)}
.slider.is-engaged .slider-thumb{background:rgba(255,255,255,.10)}
@media(min-width:768px){.slider-trail{left:.224px;border-radius:24.602px 0 0 24.602px;backdrop-filter:blur(15.538px)}}
.success p{opacity:0}
#stage[data-state=success] .button-copy{transform:translateY(-1.354px)}
@media(prefers-reduced-motion:reduce){.success p{opacity:1}}

/* Reading a consent document and ticking its checkbox are separate actions.
   Hit areas stay at least 44 physical pixels inside the scaled scene. */
.consent{display:block;cursor:default}
.consent-check{position:absolute;left:calc(7.5px - 22px / var(--scene-scale,1));top:calc(13.5px - 22px / var(--scene-scale,1));width:calc(44px / var(--scene-scale,1));height:calc(44px / var(--scene-scale,1));cursor:pointer}
.consent-check input{inset:0;width:100%;height:100%}
.consent-check .check-box{position:absolute;left:calc(22px / var(--scene-scale,1) - 7.5px);top:calc(22px / var(--scene-scale,1) - 7.5px);margin:0}
.consent-copy{position:absolute;left:calc(7.5px + 22px / var(--scene-scale,1) + 3px);right:0;top:calc(13.5px - 22px / var(--scene-scale,1));min-height:calc(44px / var(--scene-scale,1));padding-block:calc(22px / var(--scene-scale,1) - 13.5px);pointer-events:auto;color:inherit;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;cursor:pointer}
.consent-copy:focus-visible{outline:2px solid #000c6a;outline-offset:2px;border-radius:2px}
@media(max-width:767px){.marketing{top:calc(305px + max(0px,46px / var(--scene-scale,1) - 49px))}.code-area{top:calc(355.2647px + max(0px,37px / var(--scene-scale,1) - 44px))}}
@media(min-width:768px){.consent-check{left:calc(8.0625px - 22px / var(--scene-scale,1));top:calc(14.5125px - 22px / var(--scene-scale,1))}.consent-check .check-box{left:calc(22px / var(--scene-scale,1) - 8.0625px);top:calc(22px / var(--scene-scale,1) - 8.0625px)}.consent-copy{left:calc(8.0625px + 22px / var(--scene-scale,1) + 3px);top:calc(14.5125px - 22px / var(--scene-scale,1));padding-block:calc(22px / var(--scene-scale,1) - 14.5125px)}}
#legal-dialog{width:min(680px,calc(100vw - 32px));max-height:calc(100dvh - 32px);padding:24px;border:0;border-radius:14px;background:#fffaf4;color:#231917;box-shadow:0 24px 80px #0007;font:16px/1.6 Century,serif}
#legal-dialog[open]{animation:legal-reveal 240ms cubic-bezier(.16,1,.3,1)}
#legal-dialog::backdrop{background:#150606b3;backdrop-filter:blur(5px)}
.legal-header{display:flex;align-items:start;gap:16px;justify-content:space-between}.legal-header h2{font-size:24px;line-height:1.3;margin:0}.legal-header button{flex-shrink:0;width:44px;height:44px;border:0;border-radius:50%;background:#861c1c;color:#fff;font:30px/1 Century,serif}
#legal-content h3{font-size:18px;line-height:1.4;margin:24px 0 8px}#legal-content p{margin:0}.legal-version{font:12px/1.5 Century,serif;color:#796c64;overflow-wrap:anywhere;margin-top:16px!important}
@keyframes legal-reveal{from{opacity:0;filter:blur(6px)}to{opacity:1;filter:blur(0)}}
@media(prefers-reduced-motion:reduce){#legal-dialog[open]{animation:none}}
.form-error{top:505px}
@media(min-width:768px){.form-error{top:527px}}

/* Native inputs clip ink at the editable content edge, even with padding.
   Indent the text inside that edge, then compensate the control's position
   so handwriting and labels keep their existing paper coordinates. */
.field input{--ink-gutter:.5em;--ink-inset:.2em;padding-inline:var(--ink-gutter);text-indent:var(--ink-inset)}
.email-field input{left:calc(49px - var(--ink-gutter) - var(--ink-inset))}
.name-field input{margin-left:calc(-1 * (var(--ink-gutter) + var(--ink-inset)))}
@media(min-width:768px){.email-field input{left:calc(54px - var(--ink-gutter) - var(--ink-inset))}}

/* Decorative paper, labels and buttons cannot be selected by dragging or
   long pressing. Native text editing, caret and selection remain available. */
#stage{-webkit-user-select:none;user-select:none}
#stage input{-webkit-user-select:text;user-select:text}
#stage :is(button,a,img){-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent}
#stage:not([data-input-modality=keyboard]) button:focus-visible{outline:none}
