@font-face{font-family:Garamond;src:url(/fonts/eb-garamond-latin-400-normal.woff2) format("woff2");font-display:swap}@font-face{font-family:Garamond;src:url(/fonts/eb-garamond-latin-400-italic.woff2) format("woff2");font-style:italic;font-display:swap}@font-face{font-family:Bodoni;src:url(/fonts/bodoni-moda-latin-400-italic.woff2) format("woff2");font-style:italic;font-display:swap}:root{color-scheme:dark;--soot:#100f0d;--bone:#e4dccb;--dim:#b5aa96;--line:#635949}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--soot);color:var(--bone);font:20px/1.45 Garamond,Georgia,serif;-webkit-font-smoothing:antialiased}body:not([data-state=altar]){overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button{border:0}button:focus-visible,a:focus-visible{outline:1px solid var(--bone);outline-offset:7px}button[hidden],[hidden]{display:none!important}a{color:inherit;text-decoration:none}button:disabled{cursor:wait}.ceremony{position:relative;height:100svh;min-height:580px;overflow:hidden;isolation:isolate;background:#100f0d}#scene,.fallback,.vignette{position:absolute;inset:0}#scene{z-index:-2;opacity:0;transition:opacity .8s}#scene.ready{opacity:1}#scene canvas{display:block;width:100%;height:100%}.vignette{pointer-events:none;z-index:-1;background:linear-gradient(0deg,#100f0d 0%,#100f0d33 24%,transparent 52%),radial-gradient(ellipse at 50% 40%,transparent 30%,#0e0d0bbb 100%)}.fallback{z-index:-3;display:grid;place-items:center;background:#181612 url(/textures/stone.webp) center/640px;background-blend-mode:multiply}.fallback-door{height:94%;width:min(62vw,600px);border-radius:50% 50% 0 0;border:14px ridge #37332a;display:flex;overflow:hidden;box-shadow:0 0 60px #080706}.fallback-door>div{width:50%;border:8px ridge #24201a;background:#24201a url(/textures/oak.webp) center/200px 100%;background-blend-mode:multiply}.fallback img{display:none;width:min(60vw,390px);height:65%;object-fit:contain}.ready~.fallback{visibility:hidden}.threshold{position:absolute;inset:auto 24px 10%;text-align:center;transition:opacity .7s,transform .7s}.eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.19em;line-height:1.6;margin:0 0 22px}.entrance-title{font-size:clamp(38px,4vw,61px);line-height:1.08;margin:0 0 30px;text-shadow:0 2px 30px #080706}.entrance-title i{font-family:Bodoni,Georgia,serif;font-weight:400}.enter-button{display:inline-flex;align-items:center;gap:38px;min-height:54px;padding:9px 6px;background:none;border-top:1px solid #b5aa9688;border-bottom:1px solid #b5aa9688;font-size:18px;letter-spacing:.05em;transition:background .3s,padding .3s}.enter-button:hover{background:#d7c9a811;padding-left:15px;padding-right:15px}.enter-button svg{width:26px;fill:none;stroke:currentColor;stroke-width:1}.quiet{font-size:14px;letter-spacing:.045em;background:transparent;min-height:44px;padding:8px 0;color:var(--dim);border-bottom:1px solid transparent}.quiet:hover{color:var(--bone);border-color:var(--line)}.skip{position:absolute;right:38px;bottom:28px}.skip span{padding-left:12px}.pause{position:absolute;left:38px;bottom:28px}.journey{position:absolute;left:50%;bottom:10%;transform:translate(-50%);text-align:center;font-style:italic;font-size:23px;opacity:0;pointer-events:none;transition:opacity 1s;white-space:nowrap}.progress{height:1px;width:110px;margin:20px auto;background:#b5aa9633}.progress i{display:block;height:1px;background:#cabc9f;transform-origin:left;transform:scaleX(var(--progress,0))}.arrival-heading{position:absolute;inset:auto 20px 18px;text-align:center;opacity:0;pointer-events:none;transition:opacity 1.8s}.arrival-heading .eyebrow{font-size:11px;margin-bottom:6px}.arrival-heading h1{font:italic 400 clamp(68px,8vw,118px)/1.07 Bodoni,Georgia,serif;margin:0 0 16px;letter-spacing:-.065em;outline:none}.read-invitation{font-size:15px;letter-spacing:.06em}.read-invitation span{display:inline-block;margin-left:12px}.invitation{position:relative;max-width:630px;margin:auto;padding:40px 28px 0;text-align:center}.hairline{height:43px;width:1px;background:#672e29;margin:0 auto 40px}.salutation{font:italic 29px/1.2 Bodoni,Georgia,serif;margin:0 0 23px}.invitation-copy{font-size:28px;line-height:1.45;margin:0 0 35px}.small-caps{font-size:.73em;letter-spacing:.08em}.details{font-size:21px;line-height:1.55;margin:0 0 26px}.privacy{font-style:italic;font-size:18px;line-height:1.55;color:var(--dim);max-width:420px;margin:0 auto 44px}.purchase{background:#ddd3bf;color:#231f19;display:flex;align-items:center;justify-content:space-between;gap:45px;padding:15px 24px;min-height:59px;font-size:20px;min-width:300px;margin:0 auto;transition:background .2s}.purchase:hover{background:#f0e5ce}.purchase[aria-expanded=true]{background:#c7baa1}.box-office{margin:28px auto 8px;max-width:360px;padding:20px 15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);text-align:left}.box-office h2{font:italic 28px/1.3 Garamond,Georgia,serif;margin:0 0 20px;outline:none}.box-office p{line-height:1.9;margin:0}.box-office p span{float:right}.box-office .box-note{font-size:16px;color:var(--dim);margin-top:12px}.sponsor{display:block;margin:12px auto 0;min-width:90px}.sponsor-note{font-size:17px;color:var(--dim);margin:8px 0}.invitation footer{margin:70px -5vw 0;padding:25px 0 36px;border-top:1px solid #62584955;display:flex;align-items:center;justify-content:space-between;gap:20px;font-size:13px;color:var(--dim)}footer .quiet{font-size:13px}.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}.focus-link:focus{position:fixed;z-index:100;top:20px;left:20px;width:auto;height:auto;clip:auto;padding:15px;background:var(--soot)}body[data-state=walking] .threshold,body[data-state=altar] .threshold{opacity:0;pointer-events:none;transform:translateY(15px)}body[data-state=walking] .journey{opacity:1}body[data-state=altar] .arrival-heading{opacity:1;pointer-events:auto}body[data-state=altar] .skip,body[data-state=altar] .pause{display:none}body[data-state=altar] .ceremony{height:90svh;min-height:620px}body.fallback-mode[data-state=altar] .fallback-door{display:none}body.fallback-mode[data-state=altar] .fallback img{display:block}body.fallback-mode[data-state=altar] .fallback{background-image:none}.noscript{text-align:center;padding:30px}@media(min-width:1000px){.threshold{bottom:11%}.invitation{padding-top:25px}}@media(max-width:600px){.ceremony{min-height:540px}.eyebrow{font-size:10px;letter-spacing:.14em}.threshold{bottom:15%}.entrance-title{font-size:40px}.skip{right:24px;bottom:22px;font-size:12px}.pause{left:24px;bottom:22px;font-size:12px}.journey{font-size:20px;bottom:15%}.arrival-heading{bottom:20px}.arrival-heading h1{font-size:69px;margin-bottom:16px}.arrival-heading .eyebrow{font-size:9px}.read-invitation{font-size:13px}body[data-state=altar] .ceremony{height:82svh;min-height:580px}.invitation{padding:20px 30px 0}.hairline{height:31px;margin-bottom:32px}.salutation{font-size:26px}.invitation-copy{font-size:24px;margin-bottom:26px}.details{font-size:19px}.privacy{font-size:17px;margin-bottom:33px}.purchase{min-width:100%;font-size:19px;padding:14px 18px}.invitation footer{flex-direction:column;gap:2px;margin-top:50px;padding-bottom:25px}.fallback-door,.fallback img{width:90vw}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important;animation:none!important}}body[data-state=altar] .ceremony{height:100svh;min-height:580px}body:after{content:"";position:fixed;inset:0;z-index:4;pointer-events:none;background:url(/textures/grain.png) repeat;opacity:.026;mix-blend-mode:soft-light}#scene{transition:opacity 1.2s cubic-bezier(.22,.61,.36,1)}.threshold{transition:opacity .85s cubic-bezier(.22,.61,.36,1),transform 1.2s cubic-bezier(.22,.61,.36,1)}.arrival-heading{transition:opacity 1.8s cubic-bezier(.22,.61,.36,1)}@media(max-width:600px){body[data-state=altar] .ceremony{min-height:540px}.vignette{background:linear-gradient(0deg,#100f0d 0%,#100f0d44 24%,transparent 52%),radial-gradient(ellipse at 50% 40%,transparent 35%,#0e0d0b99 100%)}}.fallback{background:#100f0d url(/textures/threshold-1440.webp) center/cover no-repeat;background-blend-mode:normal}.fallback-door{display:none}@media(max-width:600px){.fallback{background-image:url(/textures/threshold-390.webp)}}@media(prefers-reduced-motion:reduce){#scene,.threshold,.arrival-heading{transition:none}}
