:root{--ink:#11100f;--muted:#6f6b65;--paper:#f8f6f1;--paper-deep:#ede8df;--line:#11100f29;--inverse:#fbfaf7;--max:1120px;--serif:Georgia, "Times New Roman", serif;--sans:Inter, "Segoe UI", Arial, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:radial-gradient(circle at 15% 5%, #11100f0f, transparent 28rem), linear-gradient(180deg, var(--paper), #fffaf4 55%, var(--paper));color:var(--ink);font-family:var(--sans);margin:0;line-height:1.5;overflow-x:hidden}body:before{z-index:-1;pointer-events:none;content:"";opacity:.18;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.55'/%3E%3C/svg%3E");position:fixed;inset:0}.intro-pending{overflow:hidden}.site-intro{display:none}.intro-pending .site-intro,.intro-revealing .site-intro{z-index:100;background:var(--paper);place-items:center;transition:opacity .56s,visibility .56s;display:grid;position:fixed;inset:0}.intro-pending .page-progress,.intro-pending .site-header,.intro-pending main,.intro-pending .site-footer{opacity:0}.intro-revealing .page-progress,.intro-revealing .site-header,.intro-revealing main,.intro-revealing .site-footer{animation:.64s both intro-page-reveal}.site-intro.is-leaving{visibility:hidden;opacity:0}.intro-envelope{perspective:600px;width:156px;height:116px;animation:1.1s ease-in-out infinite intro-envelope-pulse;position:relative}.intro-envelope-body{z-index:3;border:1px solid var(--ink);background:linear-gradient(34deg, transparent 49.4%, var(--line) 49.8%, var(--line) 50.2%, transparent 50.6%) left bottom / 51% 100% no-repeat, linear-gradient(-34deg, transparent 49.4%, var(--line) 49.8%, var(--line) 50.2%, transparent 50.6%) right bottom / 51% 100% no-repeat, var(--paper);position:absolute;inset:30px 0 0;overflow:hidden}.intro-envelope-flap{z-index:4;border-top:1px solid var(--ink);background:var(--paper-deep);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;width:100%;height:62px;transition:transform .58s cubic-bezier(.65,0,.35,1);position:absolute;top:30px;left:0}.intro-letter{z-index:2;border:1px solid var(--line);background:var(--inverse);text-align:center;place-content:center;width:calc(100% - 24px);height:68px;transition:transform .62s cubic-bezier(.22,1,.36,1) .3s;display:grid;position:absolute;top:39px;left:12px}.intro-letter span{font-family:var(--serif);font-size:20px}.intro-letter small{color:var(--muted);letter-spacing:.16em;margin-top:4px;font-size:8px;font-weight:700}.intro-seal{z-index:5;background:var(--ink);width:35px;height:35px;color:var(--inverse);font-family:var(--serif);border-radius:50%;place-items:center;font-size:9px;transition:opacity .18s,transform .18s;display:grid;position:absolute;top:62px;left:50%;transform:translate(-50%)}.intro-envelope.is-opening{animation:none}.intro-envelope.is-opening .intro-envelope-flap{z-index:1;transform:rotateX(180deg)}.intro-envelope.is-opening .intro-letter{transform:translateY(-48px)}.intro-envelope.is-opening .intro-seal{opacity:0;transform:translate(-50%)scale(.7)}@keyframes intro-envelope-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.035)}}@keyframes intro-page-reveal{0%{opacity:0}to{opacity:1}}a{color:inherit;text-decoration:none}button,a{-webkit-tap-highlight-color:transparent}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.page-progress{z-index:20;background:var(--ink);width:0;height:3px;position:fixed;inset:0 auto auto 0}.site-header{z-index:10;width:min(100% - 32px, var(--max));background:#f8f6f1;border:1px solid #11100f1a;border-radius:999px;justify-content:space-between;align-items:center;margin:18px auto 0;padding:12px 14px;display:flex;position:fixed;top:0;left:0;right:0}.brand{background:var(--ink);width:42px;height:42px;color:var(--inverse);font-family:var(--serif);border-radius:50%;place-items:center;font-size:15px;display:grid}.nav-links{gap:6px;display:flex}.nav-links a{color:var(--muted);text-transform:uppercase;letter-spacing:.08em;border-radius:999px;padding:10px 14px;font-size:13px;font-weight:600;transition:color .18s,background .18s}.nav-links a:hover{color:var(--ink);background:#11100f0f}.hero{min-height:100svh;width:min(100% - 32px, var(--max));grid-template-columns:minmax(0,1fr) minmax(280px,390px);align-items:center;gap:clamp(28px,6vw,72px);margin:0 auto;padding:132px 0 84px;display:grid;position:relative}.hero:before{content:"";background:linear-gradient(transparent, var(--line), transparent);width:1px;height:calc(100% - 190px);position:absolute;top:108px;right:410px}.eyebrow,.section-kicker{color:var(--muted);letter-spacing:.16em;text-transform:uppercase;margin:0 0 18px;font-size:12px;font-weight:700}h1,h2{font-family:var(--serif);letter-spacing:0;margin:0;font-weight:600}h1{max-width:760px;font-size:clamp(76px,9vw,121px);line-height:.82}h2{font-size:clamp(34px,6vw,72px);line-height:.95}.hero-text{max-width:520px;color:var(--muted);margin:28px 0 0;font-size:clamp(18px,2vw,22px)}.hero-copy,.hero-card,.calendar-wrap,.countdown-panel,.place-copy,.detail-block,.photo-copy{min-width:0}.hero-actions{flex-wrap:wrap;gap:12px;margin-top:34px;display:flex}.button{border:1px solid var(--ink);min-height:48px;font:700 13px/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;border-radius:999px;justify-content:center;align-items:center;padding:0 20px;transition:transform .18s,background .18s,color .18s;display:inline-flex}.button:hover{transform:translateY(-2px)}.button.primary{background:var(--ink);color:var(--inverse)}.button.secondary{color:var(--ink);background:0 0}.hero-card{border:1px solid var(--line);min-height:540px;color:var(--inverse);background:#11100f;align-content:center;padding:34px;display:grid;position:relative;overflow:hidden}.hero-card-photo{object-fit:cover;object-position:center 58%;opacity:.68;filter:grayscale()contrast(1.08);width:100%;height:100%;position:absolute;inset:0}.hero-card:before,.hero-card:after{z-index:2;content:"";border:1px solid #fbfaf72e;position:absolute}.hero-card:before{inset:18px}.hero-card:after{border-top:0;height:38%;inset:auto 34px 34px}.hero-card-label{z-index:3;font-family:var(--serif);font-size:clamp(132px,18vw,220px);line-height:.8;position:relative}.hero-card-month,.hero-card-year{z-index:3;letter-spacing:.16em;text-transform:uppercase;font-weight:700;display:block;position:relative}.hero-card-month{margin-top:26px;font-size:20px}.hero-card-year{color:#fbfaf7a3;margin-top:8px;font-size:14px}.scroll-cue{border:1px solid var(--line);border-radius:999px;place-items:center;width:36px;height:62px;display:grid;position:absolute;bottom:30px;left:0}.scroll-cue span{background:var(--ink);border-radius:50%;width:5px;height:5px;animation:1.7s ease-in-out infinite scrollDot}.section{width:min(100% - 32px, var(--max));margin:0 auto;padding:clamp(72px,12vw,144px) 0}.date-grid{grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);align-items:start;gap:clamp(22px,5vw,64px);display:grid}.place-layout{grid-template-columns:minmax(0,760px);display:grid}.calendar-wrap,.countdown-panel,.detail-block{border-top:1px solid var(--line);padding-top:28px}.calendar-header{font-family:var(--serif);justify-content:space-between;gap:16px;margin-bottom:24px;font-size:clamp(42px,7vw,82px);line-height:1;display:flex}.calendar-header p{margin:0}.calendar-header span{color:var(--muted)}.calendar{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px 8px;display:grid}.calendar span,.calendar time,.calendar i{aspect-ratio:1;place-items:center;font-style:normal;display:grid}.calendar span{aspect-ratio:1.8;color:var(--muted);letter-spacing:.1em;text-transform:uppercase;font-size:12px;font-weight:700}.calendar time{color:#11100fbd;background:0 0;border:0;border-radius:50%;width:clamp(34px,5vw,48px);margin:0 auto;font-weight:600;position:relative}.calendar .is-wedding-day{background:var(--ink);color:var(--inverse)}.calendar .is-wedding-day:after{border:1px solid var(--ink);content:"";border-radius:50%;position:absolute;inset:-6px}.event-start{border-top:1px solid var(--line);margin-top:32px;padding-top:22px}.event-date,.event-moment span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:12px;font-weight:700}.event-timing{grid-template-columns:minmax(100px,.62fr) minmax(170px,1fr);align-items:end;gap:clamp(24px,5vw,56px);margin-top:22px;display:grid}.event-moment{gap:10px;display:grid}.event-moment time{font-family:var(--serif);line-height:.86}.event-arrival time{color:var(--muted);font-size:clamp(28px,4vw,38px)}.event-begin{text-align:right;justify-items:end}.event-begin time{font-size:clamp(52px,9vw,86px)}.countdown-panel{position:sticky;top:108px}.countdown{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(4,minmax(0,1fr));gap:0;display:grid}.countdown div{border-right:1px solid var(--line);background:0 0;min-height:84px;padding:14px 16px 12px}.countdown div:last-child{border-right:0}.countdown strong{font-family:var(--serif);font-size:clamp(34px,5vw,54px);line-height:.9;display:block}.countdown span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;margin-top:8px;font-size:11px;font-weight:700;display:block}.photo-copy p,.place-copy p,.detail-block p{color:var(--muted);font-size:17px}.photo-section{width:min(100% - 32px, var(--max));grid-template-columns:minmax(280px,.82fr) minmax(0,1fr);align-items:center;gap:clamp(28px,6vw,78px);margin:0 auto;padding:clamp(72px,12vw,132px) 0;display:grid}.photo-frame{background:var(--ink);min-height:620px;position:relative;overflow:hidden}.photo-frame:after{content:"";pointer-events:none;border:1px solid #fbfaf752;position:absolute;inset:18px}.photo-frame img{object-fit:cover;filter:grayscale()contrast(1.08);width:100%;height:100%;min-height:620px}.photo-placeholder{color:var(--inverse);text-align:center;place-items:center;padding:28px;display:none;position:absolute;inset:0}.photo-frame.is-placeholder .photo-placeholder{display:grid}.photo-placeholder span{font-family:var(--serif);font-size:clamp(42px,8vw,72px);line-height:.95}.photo-placeholder p{color:#fbfaf794;letter-spacing:.1em;text-transform:uppercase;margin:18px 0 0;font-size:13px;font-weight:700}.photo-copy p{max-width:560px;margin:24px 0 0}.place-copy h2,.detail-block h2{max-width:760px}.place-copy p{margin:24px 0 28px}.details-section{padding-top:40px}.detail-block p{max-width:520px;margin:22px 0 0}.swatches{gap:10px;margin-top:26px;display:flex}.swatches span{border:1px solid var(--line);background:var(--color);border-radius:50%;width:46px;height:46px}.kindness-section{width:min(100% - 32px, var(--max));border-top:1px solid var(--line);grid-template-columns:minmax(0,1fr) minmax(280px,.68fr);align-items:center;gap:clamp(36px,7vw,92px);margin:0 auto;padding:clamp(72px,12vw,132px) 0;display:grid}.kindness-copy{min-width:0}.kindness-copy h2{max-width:760px}.kindness-copy>p:not(.eyebrow){max-width:650px;color:var(--muted);margin:24px 0 0;font-size:17px}.kindness-copy .kindness-note{border-left:1px solid var(--ink);max-width:600px;color:var(--ink);padding-left:18px}.paw-illustration{min-height:360px;position:relative}.paw{width:170px;height:160px;position:absolute}.paw span,.paw i{background:var(--ink);display:block;position:absolute}.paw span{border-radius:50%;width:36px;height:46px}.paw span:first-child{top:42px;left:6px;transform:rotate(-24deg)}.paw span:nth-child(2){top:7px;left:43px;transform:rotate(-8deg)}.paw span:nth-child(3){top:7px;right:43px;transform:rotate(8deg)}.paw span:nth-child(4){top:42px;right:6px;transform:rotate(24deg)}.paw i{border-radius:52% 52% 46% 46%;width:92px;height:76px;bottom:4px;left:50%;transform:translate(-50%)}.paw-dog{bottom:8px;left:0;transform:rotate(-13deg)}.paw-cat{top:2px;right:0;transform:rotate(15deg)scale(.72)}.game-section{width:min(100% - 32px, var(--max));border-top:1px solid var(--line);margin:0 auto;padding:clamp(72px,12vw,132px) 0}.game-heading{max-width:760px}.game-description{max-width:680px;color:var(--muted);margin:22px 0 0;font-size:17px;line-height:1.6}.game-shell{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);width:min(100%,960px);margin:42px auto 0}.game-hud{min-height:48px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;font-size:11px;font-weight:700;display:grid}.game-hud span{text-align:center;padding:0 14px}.game-hud span+span{border-left:1px solid var(--line)}.game-hud strong{color:var(--ink);font-family:var(--serif);margin-left:6px;font-size:18px}.game-stage{aspect-ratio:2;border-top:1px solid var(--line);background:var(--paper);position:relative;overflow:hidden}#wedding-game-canvas{touch-action:none;width:100%;height:100%;display:block}.game-effect{z-index:1;border:1px solid var(--ink);max-width:calc(100% - 96px);color:var(--ink);letter-spacing:.08em;text-transform:uppercase;background:#f8f6f1eb;border-radius:2px;padding:7px 10px;font-size:10px;font-weight:700;line-height:1.25;position:absolute;top:14px;left:14px}.game-effect[hidden]{display:none}.game-overlay{z-index:2;text-align:center;background:#f8f6f1f0;place-content:center;justify-items:center;padding:28px;transition:opacity .22s;display:grid;position:absolute;inset:0}.game-overlay.is-hidden{opacity:0;pointer-events:none}.game-overlay>strong{max-width:560px;font-family:var(--serif);font-size:clamp(34px,6vw,64px);line-height:.95}.game-overlay>p:not(.eyebrow){color:var(--muted);margin:16px 0 22px}.game-jump{z-index:1;border:1px solid var(--ink);width:54px;height:54px;color:var(--ink);font:600 25px/1 var(--sans);cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;opacity:0;pointer-events:none;background:#f8f6f1e6;border-radius:50%;place-items:center;transition:opacity .18s,transform .18s;display:grid;position:absolute;bottom:18px;right:18px}.game-shell.is-playing .game-jump{opacity:1;pointer-events:auto}.game-jump:active{transform:translateY(-3px)}.game-result-entry{border-top:1px solid var(--line);grid-template-columns:minmax(0,.8fr) minmax(320px,1fr);align-items:center;gap:32px;padding:24px 0;display:grid}.game-result-entry[hidden]{display:none}.game-result-copy .eyebrow{margin-bottom:6px}.game-result-copy>strong{font-family:var(--serif);font-size:25px;font-weight:600}.game-result-form{min-width:0}.game-result-help{max-width:520px;color:var(--muted);margin:0 0 12px;font-size:13px;line-height:1.45}.game-result-help[hidden],.game-result-controls[hidden]{display:none}.game-result-controls{grid-template-columns:minmax(0,1fr) auto;gap:10px;display:grid}.game-result-controls input{border:1px solid var(--line);width:100%;min-width:0;min-height:48px;color:var(--ink);font:inherit;background:#fbfaf7b8;border-radius:0;outline:none;padding:0 16px;transition:border-color .18s}.game-result-controls input:focus{border-color:var(--ink)}.game-result-controls input::placeholder{color:var(--muted)}.game-result-controls .button{min-height:48px}.game-result-controls .button:disabled{cursor:default;opacity:.48}.game-result-status{min-height:18px;color:var(--muted);margin:7px 0 0;font-size:11px}.leaderboard{width:min(100%,960px);margin:clamp(52px,8vw,84px) auto 0}.leaderboard-heading{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}.leaderboard-heading .eyebrow{margin-bottom:10px}.leaderboard-heading h3{font-family:var(--serif);margin:0;font-size:clamp(34px,5vw,54px);font-weight:600;line-height:.95}.leaderboard-heading>span{color:var(--muted);letter-spacing:.12em;text-transform:uppercase;white-space:nowrap;padding-bottom:4px;font-size:11px;font-weight:700}.leaderboard-table{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}.leaderboard-columns,.leaderboard-row{grid-template-columns:76px minmax(0,1fr) 110px;align-items:center;gap:18px;display:grid}.leaderboard-columns{min-height:42px;color:var(--muted);letter-spacing:.12em;text-transform:uppercase;font-size:10px;font-weight:700}.leaderboard-columns span:last-child,.leaderboard-score{text-align:right}.leaderboard-list{margin:0;padding:0;list-style:none}.leaderboard-row{border-top:1px solid var(--line);min-height:58px}.leaderboard-message{border-top:1px solid var(--line);min-height:88px;color:var(--muted);text-align:center;place-items:center;padding:20px;font-size:13px;display:grid}.leaderboard:not(.is-expanded) .leaderboard-row:nth-child(n+6){display:none}.leaderboard-rank{color:var(--muted);font-family:var(--serif);font-size:20px}.leaderboard-row:nth-child(-n+3) .leaderboard-rank{color:var(--ink);font-size:24px}.leaderboard-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:15px;font-weight:600;overflow:hidden}.leaderboard-score{font-family:var(--serif);font-size:24px}.leaderboard-row:first-child .leaderboard-name,.leaderboard-row:first-child .leaderboard-score{font-weight:700}.leaderboard-toggle{border:0;border-bottom:1px solid var(--line);width:100%;min-height:54px;color:var(--ink);font:inherit;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;background:0 0;justify-content:space-between;align-items:center;padding:0;font-size:11px;font-weight:700;display:flex}.leaderboard-toggle i{border-bottom:1px solid;border-right:1px solid;width:10px;height:10px;margin-right:4px;transition:transform .18s;transform:rotate(45deg)translateY(-3px)}.leaderboard-toggle[aria-expanded=true] i{transform:rotate(225deg)translate(-2px,-2px)}.leaderboard-toggle:hover{color:var(--muted)}.site-footer{width:min(100% - 32px, var(--max));border-top:1px solid var(--line);color:var(--muted);letter-spacing:.12em;text-transform:uppercase;justify-content:space-between;gap:16px;margin:0 auto;padding:28px 0 38px;font-size:13px;font-weight:700;display:flex}.site-footer p{margin:0}.section-reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(34px)}.section-reveal.is-visible{opacity:1;transform:translateY(0)}@keyframes scrollDot{0%,to{opacity:.35;transform:translateY(-13px)}50%{opacity:1;transform:translateY(13px)}}@media (width>=1000px){.hero-card{align-content:start;padding-top:64px}}@media (width<=820px){.site-header{width:calc(100% - 24px);margin-top:12px}.nav-links a{padding:10px 9px;font-size:11px}.hero,.date-grid,.place-layout,.photo-section{grid-template-columns:1fr}.hero{min-height:auto;padding-top:116px;padding-bottom:34px}.hero:before{display:none}h1{font-size:clamp(58px,17vw,92px)}.hero-card{min-height:420px}.hero-card-photo{object-position:center 88%}.scroll-cue{display:none}.countdown-panel{position:static}.photo-frame,.photo-frame img{min-height:460px}.photo-copy{order:-1}.kindness-section{grid-template-columns:1fr}.paw-illustration{min-height:280px}.paw-dog{left:12%}.paw-cat{right:12%}}@media (width<=520px){.hero,.section,.photo-section,.kindness-section,.game-section,.site-footer{width:calc(100% - 24px)}.section{padding:54px 0}.date-section{padding-top:0}.hero-card{min-height:320px;padding:24px}.hero-card-photo{object-position:center 98%}.hero-card:before{inset:14px}.hero-card:after{inset:auto 24px 24px}.hero-card-label{font-size:clamp(100px,30vw,132px)}.brand{width:38px;height:38px;font-size:13px}.calendar{gap:5px}.calendar time{font-size:13px}.countdown div{min-height:72px;padding:12px 8px 10px}.countdown strong{font-size:clamp(30px,9vw,38px)}.countdown span{font-size:9px}.site-footer{display:grid}.kindness-section,.game-section{padding:54px 0}.game-shell{margin-top:30px}.game-hud{letter-spacing:.08em;font-size:9px}.game-hud span{padding:0 5px}.game-hud strong{margin:2px 0 0;font-size:16px;display:block}.game-overlay{padding:18px}.game-overlay .eyebrow,.game-overlay>p:not(.eyebrow){margin-bottom:10px}.game-overlay .button{min-height:42px;padding:0 16px;font-size:11px}.game-jump{width:46px;height:46px;bottom:10px;right:10px}.game-result-entry{grid-template-columns:1fr;gap:16px;padding:20px 0}.game-result-controls input{padding:0 12px}.game-result-controls .button{padding:0 14px;font-size:10px}.leaderboard{margin-top:48px}.leaderboard-heading{gap:12px;margin-bottom:22px;display:grid}.leaderboard-heading>span{padding:0}.leaderboard-columns,.leaderboard-row{grid-template-columns:48px minmax(0,1fr) 74px;gap:10px}.leaderboard-columns{letter-spacing:.08em;font-size:8px}.leaderboard-row{min-height:54px}.leaderboard-name{font-size:14px}.leaderboard-score{font-size:21px}.paw-illustration{min-height:230px}.paw-dog{bottom:0;left:2%;transform:rotate(-13deg)scale(.86)}.paw-cat{top:-10px;right:0;transform:rotate(15deg)scale(.62)}}@media (width<=410px){.game-stage{aspect-ratio:1.75}.game-effect{top:18px;left:14px}.game-overlay{padding-block:24px}.game-jump{bottom:16px;right:14px}}@media (prefers-reduced-motion:reduce){html.intro-pending{overflow:auto}.intro-pending .site-intro{display:none}.intro-pending .page-progress,.intro-pending .site-header,.intro-pending main,.intro-pending .site-footer{opacity:1}*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
