:root{--tf-ink: #0d0b09;--tf-ink-2: #16130f;--tf-ink-3: #1f1a14;--tf-ivory: #f4ecdc;--tf-muted: #a99d88;--tf-gold: #d8b878;--tf-gold-hi: #f0dca7;--tf-gold-deep: #a9874d;--tf-line: rgba(216, 184, 120, .32);--tf-error: #e19a86;--tf-serif: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif;--tf-caps: "Marcellus", "Cormorant Garamond", Georgia, serif;--tf-script: "Pinyon Script", "Cormorant Garamond", cursive;--tf-ease: cubic-bezier(.22, 1, .36, 1)}body.tf *,body.tf *:before,body.tf *:after{box-sizing:border-box}html:has(body.tf){background:var(--tf-ink)}body.tf{margin:0;min-height:100vh;color:var(--tf-ivory);background:radial-gradient(ellipse 70% 50% at 50% 0%,rgba(216,184,120,.09),transparent 70%),var(--tf-ink);font-family:var(--tf-serif);font-size:18px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}body.tf p,body.tf h1,body.tf h2{margin:0}body.tf ::selection{background:#d8b87859}.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}.tf-skiplink{position:absolute;left:12px;top:-60px;z-index:50;padding:10px 16px;background:var(--tf-ivory);color:var(--tf-ink);font-family:var(--tf-caps);font-size:13px;letter-spacing:.12em;text-decoration:none}.tf-skiplink:focus{top:12px}.label{font-family:var(--tf-caps);font-size:12px;letter-spacing:.28em;text-transform:uppercase;color:var(--tf-gold)}.script{font-family:var(--tf-script);font-weight:400;color:var(--tf-gold-hi);line-height:1.1}body.tf :focus-visible{outline:1px solid var(--tf-gold);outline-offset:4px}.stage{position:relative;min-height:100vh;min-height:100svh;display:grid;grid-template-rows:auto minmax(0,1fr) auto;padding:max(28px,env(safe-area-inset-top)) 16px max(18px,env(safe-area-inset-bottom));isolation:isolate;overflow:hidden}.stage:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;z-index:-1;background:radial-gradient(ellipse 46% 38% at 50% 72%,rgba(232,196,128,.14),transparent 70%),radial-gradient(ellipse 120% 80% at 50% 110%,rgba(0,0,0,.6),transparent 60%),radial-gradient(ellipse 90% 70% at 50% 40%,transparent 50%,rgba(0,0,0,.55) 100%);transition:opacity 1.6s var(--tf-ease)}.is-toasted .stage:before{opacity:.8}.stage-copy{display:grid;text-align:center;position:relative;z-index:2;pointer-events:none}.copy-intro,.copy-invite{grid-area:1 / 1;align-self:start}.intro-names{font-size:clamp(30px,6vw,40px)}.stage-title{margin-top:4px;font-weight:300;font-size:clamp(38px,9vw,64px);line-height:1.02;letter-spacing:.01em;color:var(--tf-ivory)}.stage-title em{font-style:italic;color:var(--tf-gold-hi);font-weight:300}.copy-intro .label{margin-top:14px}.copy-invite{visibility:hidden}.copy-invite>*{opacity:0;transform:translateY(14px)}.invite-names{margin:10px 0 6px;font-weight:300;font-size:clamp(40px,10vw,70px);line-height:1;color:var(--tf-ivory);outline:none}.invite-names .amp{font-family:var(--tf-script);color:var(--tf-gold);font-size:.8em;padding:0 .12em}.invite-lede{font-style:italic;font-size:clamp(18px,3.6vw,22px);color:var(--tf-muted)}.invite-date{margin-top:12px}.invite-to{margin-top:10px;font-style:italic;color:var(--tf-gold-hi)}.is-toasted .copy-intro{opacity:0;transform:translateY(-14px);transition:opacity .6s ease,transform .8s var(--tf-ease);visibility:hidden;transition-property:opacity,transform,visibility}.is-toasted .copy-invite{visibility:visible}.is-toasted .copy-invite>*{opacity:1;transform:none;transition:opacity 1.1s ease,transform 1.3s var(--tf-ease)}.is-toasted .copy-invite>:nth-child(1){transition-delay:.35s}.is-toasted .copy-invite>:nth-child(2){transition-delay:.55s}.is-toasted .copy-invite>:nth-child(3){transition-delay:.8s}.is-toasted .copy-invite>:nth-child(4){transition-delay:1s}.is-toasted .copy-invite>:nth-child(5){transition-delay:1.15s}.scene-wrap{position:relative;min-height:300px;margin:0 -16px}.scene{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.scene text{fill:#3a2c18}.scene .b-small{font-family:var(--tf-caps);font-size:4.4px;letter-spacing:1.3px;fill:#85683a}.scene .b-initials{font-family:var(--tf-serif);font-style:italic;font-size:13px;fill:#2c2216}.clink{pointer-events:none}.clink.is-on{animation:tf-clink 1.1s var(--tf-ease) forwards}@keyframes tf-clink{0%{opacity:0}12%{opacity:1}to{opacity:0}}.clink-rays{transform-origin:center;transform-box:fill-box}.clink.is-on .clink-rays{animation:tf-rays 1.1s var(--tf-ease) forwards}@keyframes tf-rays{0%{transform:scale(.4)}to{transform:scale(1.5) rotate(12deg)}}.pour{position:absolute;top:0;right:0;bottom:0;left:0;z-index:3;margin:0;padding:0;border:0;background:transparent;cursor:pointer;touch-action:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;user-select:none;-webkit-user-select:none}.pour[hidden]{display:none}.pour:focus-visible{outline:1px solid var(--tf-line);outline-offset:-12px;border-radius:18px}.is-ready .pour{cursor:grab}.stage-foot{position:relative;z-index:4;display:grid;justify-items:center;gap:8px;min-height:76px;text-align:center}.hint{font-family:var(--tf-caps);font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--tf-gold-hi);min-height:1.6em}.hint.is-new{animation:tf-hint-in .9s var(--tf-ease)}@keyframes tf-hint-in{0%{opacity:0;transform:translateY(6px);letter-spacing:.32em}to{opacity:1;transform:none}}.tf-js:not(.is-pouring) .hint,.is-ready .hint{animation:tf-breathe 2.8s ease-in-out infinite}@keyframes tf-breathe{0%,to{opacity:.55}50%{opacity:1}}.skip{padding:6px 10px;border:0;background:none;color:var(--tf-muted);font-family:var(--tf-serif);font-style:italic;font-size:15px;cursor:pointer;text-decoration:underline;text-decoration-color:#a99d8866;text-underline-offset:4px}.skip:hover{color:var(--tf-ivory)}.skip[hidden]{display:none}.is-toasting .skip{visibility:hidden}.scroll-cue{display:none;flex-direction:column;align-items:center;gap:8px;color:var(--tf-gold);text-decoration:none;font-family:var(--tf-caps);font-size:12px;letter-spacing:.28em;text-transform:uppercase}.scroll-cue i{width:1px;height:34px;background:linear-gradient(var(--tf-gold),transparent);animation:tf-drip 2.2s ease-in-out infinite;transform-origin:top}@keyframes tf-drip{0%{transform:scaleY(0);opacity:1}60%{transform:scaleY(1);opacity:1}to{transform:scaleY(1);opacity:0}}.is-toasted .scroll-cue{display:flex;animation:tf-fade-in 1.2s 1.4s both}.is-toasted .hint{display:none}@keyframes tf-fade-in{0%{opacity:0}to{opacity:1}}html:not(.tf-js) .scene-wrap,html:not(.tf-js) .stage-foot{display:none}html:not(.tf-js) .copy-invite{visibility:visible;grid-area:auto;margin-top:48px}html:not(.tf-js) .copy-invite>*{opacity:1;transform:none}html:not(.tf-js) .stage{min-height:0}.tf-js:not(.is-toasted) .tf-main{display:none}.sec{position:relative;padding:clamp(80px,14vh,140px) 16px;outline:none}.sec+.sec{border-top:1px solid rgba(216,184,120,.1)}.sec-head{text-align:center;max-width:620px;margin:0 auto}.sec-script{font-size:clamp(28px,6vw,38px)}.sec-title{margin-top:4px;font-weight:300;font-size:clamp(36px,7.5vw,54px);line-height:1.05;letter-spacing:.02em}[data-rise]{opacity:0;transform:translateY(24px);transition:opacity 1.1s ease,transform 1.2s var(--tf-ease)}[data-rise].is-in{opacity:1;transform:none}html:not(.tf-js) [data-rise]{opacity:1;transform:none}.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));max-width:920px;margin:56px auto 0;border-top:1px solid var(--tf-line);border-bottom:1px solid var(--tf-line)}.fact{padding:32px 20px;text-align:center}.fact+.fact{border-left:1px solid var(--tf-line)}.fact-main{margin-top:12px;font-size:23px;line-height:1.3}.fact-note{margin-top:4px;color:var(--tf-muted);font-style:italic}.fact .tf-link{margin-top:14px}.tf-link{display:inline-block;padding:0 0 3px;border:0;background:none;color:var(--tf-gold);font-family:var(--tf-caps);font-size:12px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--tf-line);cursor:pointer;transition:color .3s,border-color .3s}.tf-link:hover{color:var(--tf-gold-hi);border-color:var(--tf-gold)}.moments{list-style:none;max-width:560px;margin:56px auto 0;padding:0}.moment{display:grid;grid-template-columns:74px 1fr;column-gap:22px;padding:20px 0;border-bottom:1px solid rgba(216,184,120,.14)}.moment:last-child{border-bottom:0}.moment-time{grid-row:span 2;font-family:var(--tf-caps);font-size:15px;letter-spacing:.14em;color:var(--tf-gold);padding-top:5px}.moment-title{font-size:26px;line-height:1.2}.moment-note{color:var(--tf-muted);font-style:italic}.dress-note{max-width:34em;margin:20px auto 0;color:var(--tf-muted);font-size:20px;font-style:italic}.card{position:relative;max-width:460px;margin:0 auto;padding:48px clamp(22px,6vw,44px) 40px;text-align:center;background:radial-gradient(ellipse at 50% 0%,rgba(216,184,120,.09),transparent 65%),var(--tf-ink-2);border:1px solid var(--tf-line);box-shadow:0 30px 80px #00000080}.card:before{content:"";position:absolute;top:7px;right:7px;bottom:7px;left:7px;border:1px solid rgba(216,184,120,.14);pointer-events:none}.card-script{font-size:34px}.card-title{font-weight:300;font-size:46px;letter-spacing:.18em;line-height:1.1}.card-by{color:var(--tf-muted);font-style:italic;margin-top:4px}.card-form{margin-top:30px;text-align:left;display:grid;gap:20px}.card-form[hidden],.yes-only[hidden],.card-done[hidden]{display:none}.yes-only{display:grid;gap:20px}.field{display:grid;gap:6px;margin:0;padding:0;border:0;min-width:0}.field label,.field legend{font-family:var(--tf-caps);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--tf-gold);padding:0}.field input[type=text],.field select{width:100%;padding:10px 2px;border:0;border-bottom:1px solid var(--tf-line);border-radius:0;background:transparent;color:var(--tf-ivory);font:inherit;font-size:19px;outline:none;transition:border-color .3s}.field select{-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.field select option{background:var(--tf-ink-2);color:var(--tf-ivory)}.field input::placeholder{color:#a99d888c;font-style:italic}.field input:focus,.field select:focus{border-color:var(--tf-gold)}.choice{display:flex;flex-wrap:wrap;gap:10px}.choice legend{margin-bottom:10px;float:left;width:100%}.pill{position:relative;flex:1 1 160px;cursor:pointer}.pill input{position:absolute;opacity:0;top:0;right:0;bottom:0;left:0;margin:0;cursor:pointer}.pill span{display:block;padding:12px 10px;text-align:center;border:1px solid var(--tf-line);font-size:17px;transition:background .3s,border-color .3s,color .3s}.pill input:checked+span{background:#d8b87824;border-color:var(--tf-gold);color:var(--tf-gold-hi)}.pill input:focus-visible+span{outline:1px solid var(--tf-gold);outline-offset:3px}.card-error{min-height:1.4em;color:var(--tf-error);font-style:italic;text-align:center}.card-error:empty{min-height:0}.tf-btn{justify-self:center;min-width:200px;padding:14px 28px;border:1px solid var(--tf-gold);background:linear-gradient(180deg,#e6cb8f,#c19f61);color:#1a140c;font-family:var(--tf-caps);font-size:13px;letter-spacing:.24em;text-transform:uppercase;cursor:pointer;transition:filter .3s,transform .3s var(--tf-ease)}.tf-btn:hover{filter:brightness(1.08)}.tf-btn:active{transform:translateY(1px)}.tf-btn:disabled{opacity:.6;cursor:progress}.card-done{margin-top:30px;display:grid;gap:12px;justify-items:center;outline:none}.done-text{font-size:22px;font-style:italic}.finale{padding:clamp(90px,16vh,160px) 16px 40px;text-align:center;background:radial-gradient(ellipse 60% 50% at 50% 30%,rgba(216,184,120,.08),transparent 70%)}.finale-title{font-family:var(--tf-script);font-weight:400;font-size:clamp(46px,11vw,80px);color:var(--tf-gold-hi);line-height:1.1}.finale-rule{display:block;width:60px;height:1px;margin:26px auto;background:var(--tf-gold)}.finale-names{font-weight:300;font-size:clamp(28px,6vw,38px)}.finale-names .amp{font-family:var(--tf-script);color:var(--tf-gold)}.finale .label{margin-top:10px}.tf-foot{margin-top:clamp(70px,12vh,120px)}.tf-foot a{color:var(--tf-muted);font-family:var(--tf-caps);font-size:11px;letter-spacing:.24em;text-transform:uppercase;text-decoration:none}.tf-foot a:hover{color:var(--tf-gold)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;z-index:30;pointer-events:none}@media(max-width:680px){.facts{grid-template-columns:1fr}.fact+.fact{border-left:0;border-top:1px solid var(--tf-line)}.moment{grid-template-columns:58px 1fr;column-gap:16px}.moment-title{font-size:23px}}@media(prefers-reduced-motion:reduce){[data-rise]{transition-duration:.01s;transform:none}.hint,.scroll-cue i{animation:none!important}.clink.is-on .clink-rays{animation:none}}
