.dip-invitation{background:var(--dip-color-background);color:var(--dip-color-ink);font-family:var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);-webkit-tap-highlight-color:transparent;text-rendering:optimizelegibility;--dip-bold-display:0px;--dip-bold-script:0px;--dip-bold-body:0px;-webkit-text-stroke-color:currentColor;paint-order:stroke fill;min-height:100dvh;font-size:17px;line-height:1.6;overflow-x:clip}.dip-sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.dip-main{padding-bottom:max(48px, env(safe-area-inset-bottom));position:relative}.dip-main[data-phase=idle]{content-visibility:hidden}[data-reveal]{opacity:var(--rv-o,1);translate:calc(var(--rv-x,0px) * var(--dip-motion-distance,1)) calc(var(--rv-y,0px) * var(--dip-motion-distance,1));rotate:calc(var(--rv-r,0deg) * var(--dip-motion-distance,1));scale:var(--rv-s,1);clip-path:var(--rv-clip,none);filter:var(--rv-blur,none);transition-property:opacity,translate,rotate,scale,clip-path,filter;transition-duration:calc(var(--rv-d,.7s) * var(--dip-motion-duration,1));transition-timing-function:cubic-bezier(.22,1,.36,1);transition-delay:calc(var(--rv-i,0) * var(--dip-motion-stagger,60ms))}[data-reveal][data-shown]{opacity:1;clip-path:var(--rv-clip-to,none);filter:var(--rv-blur-to,none);translate:none;rotate:none;scale:none}@keyframes dip-parallax{0%{translate:0 calc(40px * var(--px-depth,0) * var(--dip-motion-parallax,0))}to{translate:0 calc(-40px * var(--px-depth,0) * var(--dip-motion-parallax,0))}}@supports (animation-timeline:view()){@media (prefers-reduced-motion:no-preference){[data-parallax]{animation:linear both dip-parallax;animation-timeline:view()}}}.dip-main[data-phase=idle] *,.dip-main[data-phase=idle] :after{animation-play-state:paused!important}@media (min-width:768px){.dip-invitation{background:radial-gradient(120% 80% at 50% 0%, var(--dip-color-paper) 0%, var(--dip-color-background) 70%) fixed, var(--dip-color-background)}}.dip-section{padding:clamp(40px,9vw,88px) 20px;position:relative}.dip-flow{max-width:640px;margin-inline:auto}.dip-kicker{font-family:var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);letter-spacing:.24em;text-transform:uppercase;color:var(--dip-color-ink-muted);font-size:11px;font-weight:500}.dip-greeting{font-family:var(--dip-font-display);-webkit-text-stroke-width:var(--dip-bold-display);color:var(--dip-color-ink);margin:0 0 10px;font-size:clamp(18px,4.6vw,22px);font-style:italic}.dip-trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.dip-heading{font-family:var(--dip-font-display);-webkit-text-stroke-width:var(--dip-bold-display);letter-spacing:.01em;text-wrap:balance;font-size:clamp(28px,7vw,44px);font-weight:500;line-height:1.15}.dip-script{font-family:var(--dip-font-script);-webkit-text-stroke-width:var(--dip-bold-script);font-weight:400;line-height:1.1}.dip-rule{background:var(--dip-color-line);border:0;width:56px;height:1px;margin:20px auto}.dip-canvas{width:100%;max-width:560px;aspect-ratio:var(--aspect-m);margin-inline:auto;position:relative;container-type:inline-size}@media (min-width:768px){.dip-canvas[data-desktop]{max-width:1040px;aspect-ratio:var(--aspect-d)}}.dip-section[data-type=collage]{padding:clamp(16px,4vw,40px) 12px}.dip-item{left:var(--x);top:var(--y);width:var(--w);height:var(--h);transform:rotate(var(--r));z-index:var(--z);position:absolute;container-type:inline-size}@media (min-width:768px){.dip-item[data-desktop]{left:var(--xd);top:var(--yd);width:var(--wd);height:var(--hd);transform:rotate(var(--rd));z-index:var(--zd)}}.dip-item:not([data-hotspot]){pointer-events:none}.dip-item>*{width:100%;height:100%}.dip-art,.dip-art svg,.dip-art img{width:100%;height:auto;display:block}.dip-text-box{white-space:pre-line;text-wrap:balance;flex-direction:column;justify-content:center;display:flex;overflow:hidden}.dip-shadow-paper{filter:drop-shadow(0 1px 1.5px #2822141f)drop-shadow(0 8px 14px #2822141a)}.dip-shadow-lift{filter:drop-shadow(0 2px 3px #28221424)drop-shadow(0 16px 26px #28221424)}.dip-photo{object-fit:cover;width:100%;height:100%;display:block}.dip-polaroid{box-shadow:var(--dip-shadow-paper);background:#fdfcf9;flex-direction:column;padding:5% 5% 17%;display:flex}.dip-polaroid .dip-frame-window{aspect-ratio:4/5;overflow:hidden}.dip-polaroid .dip-caption{text-align:center;font-family:var(--dip-font-script);-webkit-text-stroke-width:var(--dip-bold-script);color:#5b574f;font-size:11cqw;line-height:1;position:absolute;bottom:3.5%;left:0;right:0}.dip-print{box-shadow:var(--dip-shadow-paper);background:#fdfcf9;padding:4%}.dip-plain{border-radius:var(--dip-radius-card);overflow:hidden}.dip-frame-window{width:100%;height:100%;position:relative;overflow:hidden}.dip-filter-mono img{filter:grayscale()contrast(1.05)}.dip-filter-warm img{filter:sepia(.18)saturate(1.1)}.dip-hotspot{width:100%;height:100%;color:inherit;font:inherit;text-align:inherit;cursor:pointer;background:0 0;border:0;padding:0;display:block;position:relative}.dip-hotspot:after{content:"";position:absolute;inset:-12px}.dip-hotspot:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:4px;border-radius:6px}.dip-hotspot-hint{pointer-events:none;animation:2.8s ease-in-out infinite dip-breathe;position:absolute;inset:0}.dip-hotspot>.dip-hotspot-body{width:100%;height:100%;animation:2.8s ease-in-out infinite dip-breathe;display:block}@keyframes dip-breathe{0%,to{transform:scale(1)}50%{transform:scale(1.025)}}.dip-opening{z-index:50;padding:max(24px, env(safe-area-inset-top)) 24px max(24px, env(safe-area-inset-bottom));background:var(--dip-color-paper);text-align:center;transition:opacity .5s ease var(--dip-open-fade,.95s);place-items:center;display:grid;position:fixed;inset:0;overflow:hidden}.dip-opening[data-state=opening]{opacity:0}.dip-opening[data-state=opened]{display:none}.dip-opening__inner{width:min(100%,440px)}.dip-opening__names{font-family:var(--dip-font-script);-webkit-text-stroke-width:var(--dip-bold-script);color:var(--dip-color-ink);margin-top:14px;font-size:clamp(42px,12vw,64px);font-weight:400;line-height:1.05}.dip-opening__date{font-family:var(--dip-font-display);-webkit-text-stroke-width:var(--dip-bold-display);letter-spacing:.18em;text-transform:uppercase;color:var(--dip-color-ink-muted);margin-top:10px;font-size:15px}.dip-opening__cta{border:1px solid var(--dip-color-line);border-radius:var(--dip-radius-button);min-height:44px;color:var(--dip-color-ink-muted);font:500 12px/1 var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);letter-spacing:.28em;text-transform:uppercase;cursor:pointer;background:0 0;margin-top:34px;padding:12px 28px;transition:border-color .2s,color .2s}.dip-opening__cta:hover{border-color:var(--dip-color-accent);color:var(--dip-color-ink)}.dip-opening__cta:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:4px}.dip-envelope{aspect-ratio:400/262;perspective:1000px;width:min(78vw,340px);margin:30px auto 0;animation:4.5s ease-in-out infinite dip-float;position:relative}.dip-envelope>*{position:absolute}.dip-envelope__letter{z-index:1;background:var(--dip-color-surface);border-radius:3px;transition:transform .6s cubic-bezier(.22,1,.36,1) .45s;inset:5% 6% 6%;box-shadow:0 1px 2px #2822141f}.dip-envelope__body{z-index:2;inset:0}.dip-envelope__flap{z-index:3;transform-origin:50% 0;height:60%;transition:transform .6s cubic-bezier(.4,0,.2,1) .15s,z-index 0s linear .45s;top:0;left:0;right:0}.dip-envelope__seal{z-index:4;width:22%;transition:transform .3s,opacity .3s;top:58%;left:50%;transform:translate(-50%,-50%)}.dip-envelope__sprig{z-index:5;width:40%;bottom:-12%;left:-9%}.dip-opening[data-state=opening] .dip-envelope{animation:none}.dip-opening[data-state=opening] .dip-envelope__seal{opacity:0;transform:translate(-50%,-50%)scale(.6)}.dip-opening[data-state=opening] .dip-envelope__flap{z-index:0;transform:rotateX(180deg)}.dip-opening[data-state=opening] .dip-envelope__letter{transform:translateY(-44%)}.dip-opening__ornament{width:72px;color:var(--dip-color-accent);margin:26px auto 0}@keyframes dip-float{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.dip-control{z-index:40;border:1px solid color-mix(in srgb, var(--dip-color-line) 70%, transparent);background:color-mix(in srgb, var(--dip-color-surface) 94%, transparent);min-width:44px;min-height:44px;color:var(--dip-color-ink);border-radius:999px;place-items:center;display:inline-grid;position:fixed;box-shadow:0 2px 10px #2822141a}.dip-control:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:3px}.dip-music-toggle{right:max(16px, env(safe-area-inset-right));bottom:max(16px, env(safe-area-inset-bottom))}.dip-languages{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));gap:2px;padding:3px;display:flex}.dip-languages a{min-width:40px;min-height:38px;font:500 12px/1 var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);letter-spacing:.08em;text-transform:uppercase;color:var(--dip-color-ink-muted);border-radius:999px;place-items:center;padding:0 8px;text-decoration:none;display:inline-grid}.dip-languages a[aria-current=true]{background:var(--dip-color-ink);color:var(--dip-color-paper)}dialog.dip-panel{background:var(--dip-color-paper);width:100%;max-width:100%;max-height:90dvh;color:var(--dip-color-ink);overscroll-behavior:contain;border:0;border-radius:20px 20px 0 0;margin:auto 0 0;padding:0;overflow:auto;box-shadow:0 -8px 40px #14120c2e}dialog.dip-panel[open]{animation:.35s cubic-bezier(.22,1,.36,1) dip-sheet-in}dialog.dip-panel::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#14120c73}.dip-panel__head{z-index:1;background:var(--dip-color-paper);justify-content:space-between;align-items:center;gap:12px;padding:14px 16px 10px 22px;display:flex;position:sticky;top:0}.dip-panel__close{min-width:44px;min-height:44px;color:var(--dip-color-ink-muted);cursor:pointer;background:0 0;border:0;border-radius:999px;place-items:center;display:inline-grid}.dip-panel__close:focus-visible{outline:2px solid var(--dip-color-accent)}.dip-panel .dip-section{padding:8px 22px 28px}@media (min-width:768px){dialog.dip-panel{border-radius:var(--dip-radius-card);max-width:560px;max-height:86dvh;margin:auto}}@keyframes dip-sheet-in{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}.dip-field{text-align:left;gap:6px;display:grid}.dip-field label,.dip-field legend{letter-spacing:.06em;color:var(--dip-color-ink-muted);font-size:13px}.dip-input{border:1px solid var(--dip-color-line);background:var(--dip-color-surface);width:100%;min-height:46px;color:var(--dip-color-ink);font:inherit;border-radius:10px;padding:10px 14px}.dip-input:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:1px}.dip-choice{border:1px solid var(--dip-color-line);cursor:pointer;border-radius:10px;align-items:center;gap:10px;min-height:46px;padding:10px 14px;display:flex}.dip-choice:has(input:checked){border-color:var(--dip-color-accent);background:color-mix(in srgb, var(--dip-color-accent) 12%, var(--dip-color-surface))}.dip-button{border-radius:var(--dip-radius-button);background:var(--dip-color-ink);min-height:48px;color:var(--dip-color-paper);font:500 14px/1 var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;border:0;padding:12px 26px}.dip-button:disabled{opacity:.6;cursor:progress}.dip-button:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:3px}.dip-link-button{border:1px solid var(--dip-color-line);border-radius:var(--dip-radius-button);min-height:44px;color:var(--dip-color-ink);font:500 13px/1 var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);letter-spacing:.06em;justify-content:center;align-items:center;padding:10px 18px;text-decoration:none;display:inline-flex}.dip-link-button:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:3px}.dip-vinyl{aspect-ratio:1;background:radial-gradient(circle at 50% 50%, var(--dip-color-seal) 0 17%, #111 17.5% 19%, transparent 19.5%), repeating-radial-gradient(circle at 50% 50%, #1b1b1b 0 1.2px, #232323 1.2px 2.6px);border-radius:50%;width:min(62vw,240px);margin-inline:auto;animation:6s linear infinite paused dip-spin;box-shadow:0 10px 30px #00000040}.dip-vinyl[data-playing=true]{animation-play-state:running}@keyframes dip-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.dip-envelope,.dip-hotspot-hint,.dip-hotspot>.dip-hotspot-body,.dip-vinyl{animation:none}.dip-opening{transition:opacity .3s}.dip-envelope__flap,.dip-envelope__letter,.dip-envelope__seal{transition:none}.dip-opening[data-state=opening] .dip-envelope__flap,.dip-opening[data-state=opening] .dip-envelope__letter,.dip-opening[data-state=opening] .dip-envelope__seal{transform:none}dialog.dip-panel[open]{animation:none}[data-reveal]{clip-path:none;filter:none;transition:opacity .25s;translate:none;rotate:none;scale:none}}.dip-ribbon{z-index:70;color:#fff;letter-spacing:.02em;pointer-events:none;background:#141816c7;border-radius:999px;padding:5px 10px;font:500 12px/1.2 system-ui,-apple-system,Segoe UI,sans-serif;position:fixed;top:10px;left:10px}.dip-scratch{margin-top:28px}.dip-scratch__card{border-radius:var(--dip-radius-card);background:var(--dip-color-paper);min-height:190px;box-shadow:0 0 0 1px var(--dip-color-line), inset 0 0 0 7px var(--dip-color-paper), inset 0 0 0 8px color-mix(in srgb, var(--dip-color-accent) 45%, transparent), 0 22px 40px -30px #00000073;place-items:center;padding:34px 26px;display:grid;position:relative;overflow:hidden}.dip-scratch__words{font-family:var(--dip-font-display);-webkit-text-stroke-width:var(--dip-bold-display);color:var(--dip-color-ink);text-wrap:pretty;font-size:clamp(19px,4.8vw,23px);font-style:italic;line-height:1.6}.dip-scratch__words p+p{margin-top:.8em}.dip-scratch__words:focus{outline:none}.dip-scratch__words:focus-visible{outline:2px solid var(--dip-color-accent);outline-offset:6px}.dip-scratch__foil{border-radius:calc(var(--dip-radius-card) * .6);background:linear-gradient(135deg, color-mix(in srgb, var(--dip-color-accent) 28%, #b7b7b4), color-mix(in srgb, var(--dip-color-accent) 28%, #eeeeea) 35%, color-mix(in srgb, var(--dip-color-accent) 28%, #a8a8a4) 50%, color-mix(in srgb, var(--dip-color-accent) 28%, #f5f5f1) 72%, color-mix(in srgb, var(--dip-color-accent) 28%, #b3b3af));place-items:center;transition:opacity .7s,scale .7s;display:grid;position:absolute;inset:12px;overflow:hidden}.dip-scratch__foil[data-painted]{background:0 0}.dip-scratch__label{font:600 13px/1 var(--dip-font-body);-webkit-text-stroke-width:var(--dip-bold-body);letter-spacing:.24em;text-transform:uppercase;color:var(--dip-color-ink);opacity:.75}.dip-scratch__foil[data-painted] .dip-scratch__label{visibility:hidden}.dip-scratch__canvas{touch-action:none;cursor:crosshair;width:100%;height:100%;position:absolute;inset:0}.dip-scratch[data-state=lifting] .dip-scratch__foil{opacity:0;pointer-events:none;scale:1.04}.dip-scratch__foot{flex-direction:column;align-items:center;gap:6px;margin-top:14px;display:flex}.dip-scratch__hint{color:var(--dip-color-ink-muted);font-size:13px}@media (prefers-reduced-motion:reduce){.dip-scratch__foil{transition:none}}#dip-main :is(h1,h2)[tabindex="-1"]:focus{outline:none}.dip-invitation[data-names-font] .dip-names-face{font-family:var(--dip-font-names)}.dip-invitation[data-bold-names] .dip-names-face{-webkit-text-stroke-width:var(--dip-bold-names)}
