.k{background:var(--bg);min-height:100svh;color:var(--ink);font-family:var(--font-body);padding-inline:16px;font-size:1.08rem;line-height:1.6;position:relative;overflow-x:clip}.k.locked main,.k.locked .k-rsvp,.k.locked .k-footer{visibility:hidden}.k a{color:inherit}.k :focus-visible{outline:2px solid var(--accent);outline-offset:3px}.k main,.k .k-rsvp,.k .k-footer{z-index:2;position:relative}.k main{opacity:0;max-width:940px;margin-inline:auto;transition:opacity 1.2s .2s}.k main.show{opacity:1}.k section{padding-block:clamp(44px,7vw,84px);position:relative}.k .k-gate-wrap{z-index:20;position:fixed;inset:0}.k .rv{opacity:0;transition:opacity .9s,transform 1s cubic-bezier(.2,.7,.2,1);transform:translateY(26px)}.k .rv.in{opacity:1;transform:none}.k .k-label{font-family:var(--font-label);letter-spacing:.32em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.72rem}.k .k-head{text-align:center}.k .k-h2{font-family:var(--font-display);text-wrap:balance;margin:12px 0 0;font-size:clamp(2rem,6vw,3.2rem);font-weight:400;line-height:1.1}.k .k-title{font-family:var(--font-display);margin:0;font-size:1.5rem;line-height:1.2}.k p{margin:0}.k .k-hero{text-align:center;align-content:center;justify-items:center;gap:12px;min-height:92svh;display:grid}.k .k-kicker{font-family:var(--font-label);letter-spacing:.4em;text-transform:uppercase;color:var(--accent);margin:0;font-size:.8rem}.k .k-names{font-family:var(--font-display);justify-items:center;margin:0;font-size:clamp(3.4rem,15vw,8.5rem);font-weight:400;line-height:1;display:grid}.k .k-amp{color:var(--accent);font-size:.4em}.k .k-date{font-family:var(--font-label);letter-spacing:.4em;border-block:1px solid var(--line);padding:12px 0 12px .4em;font-size:clamp(.9rem,3vw,1.15rem)}.k .k-when{color:var(--muted)}.k .k-subtitle{font-family:var(--font-body);color:var(--muted);font-size:clamp(1.1rem,3.6vw,1.4rem);font-style:italic}.k .k-cue{background:linear-gradient(var(--accent), transparent);transform-origin:top;width:1px;height:64px;margin-top:30px;animation:2.4s ease-in-out infinite k-cue}@keyframes k-cue{0%,to{transform:scaleY(.35)}50%{transform:scaleY(1)}}.k .k-music{text-align:center;justify-items:center;gap:14px;display:grid}.k .k-music-text{color:var(--muted)}.k .k-play{cursor:pointer;background:var(--accent);width:84px;height:84px;color:var(--bg);border:0;border-radius:50%;place-items:center;transition:transform .3s;display:grid}.k .k-play:hover{transform:scale(1.06)}.k .k-play svg{fill:currentColor;width:30px;height:30px}.k .k-eq{align-items:end;gap:4px;height:24px;display:flex}.k .k-eq i{background:var(--accent);border-radius:2px;width:3px;height:6px}.k .playing .k-eq i{animation:1s ease-in-out infinite k-eq}.k .k-eq i:nth-child(2n){animation-delay:-.3s}.k .k-eq i:nth-child(3n){animation-delay:-.6s}@keyframes k-eq{0%,to{height:6px}50%{height:24px}}.k .k-card{background:var(--surface);border:1px solid var(--line);padding:clamp(26px,5vw,40px)}.k .k-invite{text-align:center;gap:14px;max-width:600px;margin-inline:auto;display:grid}.k .k-who{font-family:var(--font-display);color:var(--accent);font-size:clamp(2rem,7vw,2.8rem);line-height:1.1}.k .k-row{flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:8px;display:flex}.k .k-btn{font-family:var(--font-label);letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--accent);color:var(--ink);justify-content:center;align-items:center;padding:12px 22px;font-size:.7rem;text-decoration:none;transition:background .25s,color .25s;display:inline-flex}.k .k-btn:hover{background:var(--accent);color:var(--bg)}.k .k-icon{fill:none;width:48px;height:48px;stroke:var(--accent);stroke-width:1.4px;stroke-linecap:round;stroke-linejoin:round}.k .k-places{grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));gap:24px;margin-top:40px;display:grid}.k .k-place{text-align:center;justify-items:center;gap:8px;display:grid}.k .k-place-name{font-family:var(--font-display);font-size:1.6rem;line-height:1.15}.k .k-addr{color:var(--muted);font-size:.98rem}.k .k-time{font-family:var(--font-label);letter-spacing:.14em;color:var(--accent)}.k .k-place .k-btn{margin-top:8px}.k .k-clock{flex-wrap:wrap;justify-content:center;gap:clamp(8px,2.6vw,18px);margin-top:32px;display:flex}.k .k-unit{text-align:center;background:var(--surface);border:1px solid var(--line);min-width:clamp(68px,19vw,108px);padding:16px 8px 12px}.k .k-unit b{font-family:var(--font-display);font-variant-numeric:tabular-nums;color:var(--accent);font-size:clamp(2.2rem,8vw,3.6rem);font-weight:400;line-height:1;animation:.45s k-tick;display:block}.k .k-unit span{font-family:var(--font-label);letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:8px;font-size:.58rem;display:block}@keyframes k-tick{0%{opacity:.35;transform:translateY(-.15em)}}.k .k-dress{grid-template-columns:auto 1fr;align-items:center;gap:22px;max-width:560px;margin:36px auto 0;display:grid}.k .k-dress .k-icon{width:70px;height:70px}.k .k-quote{text-align:center;max-width:620px;font-family:var(--font-display);text-wrap:balance;margin:44px auto 0;font-size:clamp(1.4rem,4vw,1.9rem);line-height:1.35}.k .k-gifts{text-align:center;max-width:620px;margin-inline:auto}.k .k-lead{color:var(--muted);margin:16px 0 30px}.k .k-flip{perspective:1200px;aspect-ratio:5/3.3;cursor:pointer;max-width:460px;margin-inline:auto}.k .k-flip-in{height:100%;transform-style:preserve-3d;transition:transform 1s cubic-bezier(.2,.8,.2,1);position:relative}.k .k-flip.on .k-flip-in{transform:rotateY(180deg)}.k .k-face{backface-visibility:hidden;background:var(--surface);border:1px solid var(--accent);align-content:center;gap:8px;padding:8% 9%;display:grid;position:absolute;inset:0}.k .k-front{justify-items:center}.k .k-front-title{font-family:var(--font-display);font-size:2rem;line-height:1.1}.k .k-back{text-align:left;transform:rotateY(180deg)}.k .k-acct{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;gap:10px;padding-block:8px;display:flex}.k .k-acct:last-child{border:0}.k .k-acct>div{min-width:0}.k .k-acct small{font-family:var(--font-label);letter-spacing:.22em;text-transform:uppercase;color:var(--accent);font-size:.6rem;display:block}.k .k-acct code{font-family:var(--font-label);word-break:break-all;font-size:clamp(.8rem,3.3vw,1rem)}.k .k-copy{border:1px solid var(--accent);color:var(--ink);font-family:var(--font-label);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;background:0 0;flex:none;padding:8px 12px;font-size:.56rem}.k .k-copy:hover{background:var(--accent);color:var(--bg)}.k .k-timeline{max-width:760px;margin:50px auto 0;padding:0;list-style:none;position:relative}.k .k-timeline:before,.k .k-timeline:after{content:"";background:var(--line);width:2px;position:absolute;top:8px;bottom:8px;left:21px}.k .k-timeline:after{background:var(--accent);transform-origin:top;transform:scaleY(var(--p,0))}.k .k-timeline li{grid-template-columns:44px 1fr;gap:20px;padding-bottom:32px;display:grid;position:relative}.k .k-timeline li:last-child{padding-bottom:0}.k .k-node{z-index:1;background:var(--bg);border:1px solid var(--line);border-radius:50%;place-items:center;width:44px;height:44px;transition:border-color .6s,box-shadow .6s;display:grid;position:relative}.k .k-node svg{fill:none;width:24px;height:24px;stroke:var(--accent);stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.k .k-node b{font-family:var(--font-label);color:var(--accent);font-size:.9rem}.k li.on .k-node{border-color:var(--accent);box-shadow:0 0 0 5px color-mix(in srgb, var(--accent) 15%, transparent)}.k .k-ev{opacity:.35;transition:opacity .8s,transform .8s cubic-bezier(.2,.7,.2,1);transform:translate(-10px)}.k li.on .k-ev{opacity:1;transform:none}.k .k-t{font-family:var(--font-label);color:var(--accent);letter-spacing:.06em;font-size:1.2rem}.k .k-t small{letter-spacing:.24em;margin-left:.5em;font-size:.62rem}.k .k-w{font-family:var(--font-display);font-size:1.35rem;line-height:1.25}.k .k-p{color:var(--muted)}@media (min-width:720px){.k .k-timeline:before,.k .k-timeline:after{margin-left:-1px;left:50%}.k .k-timeline li{grid-template-columns:1fr 44px 1fr;gap:30px}.k .k-timeline li .k-node{grid-area:1/2}.k .k-timeline li:nth-child(odd) .k-ev{text-align:right;grid-area:1/1;transform:translate(10px)}.k .k-timeline li:nth-child(2n) .k-ev{grid-column:3}.k .k-timeline li.on .k-ev{transform:none}}.k .k-gallery{columns:2 180px;column-gap:14px;margin-top:40px}.k .k-gallery figure{break-inside:avoid;margin:0 0 14px}.k .k-gallery img{width:100%;height:auto;display:block}.k .k-rsvp{padding:clamp(60px,9vw,110px) 0 40px}.k .k-rsvp-card{text-align:center;gap:16px;max-width:520px;margin-inline:auto;display:grid}.k .k-field{text-align:left;font-family:var(--font-label);letter-spacing:.24em;text-transform:uppercase;color:var(--accent);gap:8px;font-size:.62rem;display:grid}.k .k-field input{font:inherit;font-family:var(--font-body);letter-spacing:0;text-transform:none;color:var(--ink);border:0;border-bottom:1px solid var(--line);background:0 0;outline:none;padding:10px 2px;font-size:1.15rem}.k .k-field input:focus{border-bottom-color:var(--accent)}.k .k-field input::placeholder{color:var(--muted);opacity:.8}.k .k-hint{color:var(--accent);font-style:italic}.k .k-confirm{cursor:pointer;font-family:var(--font-label);letter-spacing:.24em;text-transform:uppercase;background:var(--accent);color:var(--bg);border:0;justify-self:center;padding:16px 32px;font-size:.78rem;transition:transform .25s,opacity .25s}.k .k-confirm:hover:not(:disabled){transform:translateY(-2px)}.k .k-confirm:disabled{cursor:default}.k .k-confirm.done{opacity:.75}.k .k-contact{font-family:var(--font-label);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line);justify-self:center;align-items:center;gap:8px;padding-bottom:3px;font-size:.64rem;text-decoration:none;display:inline-flex}.k .k-contact svg{fill:currentColor;width:16px;height:16px}.k .k-final{text-align:center;padding-top:56px}.k .k-final p{font-family:var(--font-display);color:var(--accent);font-size:clamp(2.8rem,11vw,5.6rem);line-height:1}.k .k-footer{text-align:center;color:var(--muted);border-top:1px solid var(--line);margin-inline:-16px;padding:22px 16px;font-size:.95rem}.k .k-gate{cursor:pointer;background:var(--bg);transition:opacity .9s;position:absolute;inset:0}.k .k-gate.fading{opacity:0;pointer-events:none}.k .k-gate canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.k .k-gate-ui{inset:auto 0 max(34px, env(safe-area-inset-bottom));pointer-events:none;text-align:center;justify-items:center;gap:12px;padding-inline:16px;display:grid;position:absolute}.k .k-gate-btn{pointer-events:auto;cursor:pointer;font-family:var(--font-label);letter-spacing:.3em;text-transform:uppercase;border:1px solid var(--accent);background:color-mix(in srgb, var(--bg) 60%, transparent);color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:15px 30px;font-size:.78rem}.k .k-gate-hint{font-family:var(--font-label);letter-spacing:.3em;text-transform:uppercase;color:var(--muted);font-size:.64rem}.k .k-bg{z-index:0;pointer-events:none;width:100%;height:100%;position:fixed;inset:0}@media (prefers-reduced-motion:reduce){.k .rv{opacity:1;transition:none;transform:none}.k .k-ev{opacity:1;transform:none}.k .k-cue,.k .playing .k-eq i,.k .k-unit b{animation:none}}.k .k-ambient{z-index:1;pointer-events:none;opacity:.7;width:100%;height:100%;position:fixed;inset:0}.k .k-simple{place-items:center;padding:24px;display:grid}.k .k-simple-card{text-align:center;justify-items:center;gap:14px;padding:56px 34px;animation:1.2s cubic-bezier(.2,.8,.2,1) both k-in;display:grid;position:relative}.k .k-simple-names{font-family:var(--font-display);color:var(--ink);font-size:clamp(2.8rem,13vw,6rem);line-height:1}.k .k-simple-ring{border:1px solid var(--line);aspect-ratio:1;border-radius:50%;width:min(86vw,420px);height:auto;margin:auto;animation:6s linear infinite k-ring;position:absolute;inset:-10px}.k .k-simple-ring:before{content:"";background:var(--accent);border-radius:50%;width:8px;height:8px;position:absolute;top:-4px;left:50%}.k .k-simple.opening .k-simple-card{animation:.9s forwards k-out}@keyframes k-in{0%{opacity:0;transform:translateY(20px)scale(.96)}}@keyframes k-out{to{opacity:0;filter:blur(6px);transform:scale(1.08)}}@keyframes k-ring{to{rotate:360deg}}@media (prefers-reduced-motion:reduce){.k .k-simple-card,.k .k-simple-ring{animation:none}}
