@font-face{font-family:Invitation;src:url('assets/CormorantGaramond-Variable.subset.woff2') format('woff2');font-style:normal;font-weight:300 700;font-display:swap}
:root{color-scheme:light;--paper:#f7f3eb;--ink:#3b4034;--muted:#766b56;--gold:#977439;--rule:#cbb994;--serif:Invitation,Georgia,'Times New Roman',serif;--sans:Arial,Helvetica,sans-serif}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-text-size-adjust:100%;text-size-adjust:100%}
button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button{font:inherit}button,a{color:inherit}
button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:5px}
[hidden]{display:none!important}
.invite-components{width:min(100% - 40px,420px);margin:0 auto;padding:64px 0 max(32px,env(safe-area-inset-bottom));text-align:center}
.intro{margin-bottom:34px}
.eyebrow{font:10px/1.6 var(--sans);letter-spacing:.24em;text-transform:uppercase;color:var(--gold);margin:0 0 9px}
h1{font-size:clamp(40px,10vw,51px);font-weight:500;line-height:1.05;margin:0}
.couple{font-size:24px;line-height:1.3;margin:12px 0 0}.couple em{font-family:Georgia,serif;font-style:italic;font-size:17px;color:var(--gold);margin:0 5px}
.scratch-card{isolation:isolate;position:relative;overflow:hidden;min-height:154px;border-radius:14px;background:#eee6d7;box-shadow:inset 0 0 0 1px #bca57775}
.date-content{min-height:154px;display:flex;flex-direction:column;justify-content:center;padding:19px 10px 17px}
.date-weekday{font:10px/1.5 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:var(--gold);margin:0 0 2px}
.date-line{display:flex;align-items:center;justify-content:center;gap:13px;margin:0;line-height:1.1;font-weight:600}
.date-line span{font-size:19px;letter-spacing:.045em;text-transform:uppercase}.date-line strong{font-size:53px;font-weight:600;line-height:1.05}
.date-time{font:10px/1.5 var(--sans);letter-spacing:.10em;text-transform:uppercase;margin:8px 0 0}
.date-timezone{font:9px/1.5 var(--sans);letter-spacing:.04em;color:var(--muted);margin-top:4px}
.scratch-coating{display:block;position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:crosshair;transition:opacity .48s ease;user-select:none;-webkit-user-select:none}
.scratch-card.is-revealed .scratch-coating{opacity:0;pointer-events:none}
.reveal-control{min-height:43px;display:flex;align-items:center;justify-content:center}
.text-button{min-height:44px;padding:10px 12px;border:0;background:transparent;color:var(--gold);font:11px/1.4 var(--sans);text-decoration:underline;text-underline-offset:4px;cursor:pointer}
.text-button span{display:inline-block;margin-left:5px;text-decoration:none}
.reveal-status{margin:0;color:var(--muted);font:10px/1.4 var(--sans)}
.no-script{font-size:16px}
.countdown-component{margin:20px 0 0}.countdown-heading{font-size:9px;letter-spacing:.17em;margin-bottom:14px}
.countdown{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
.countdown-unit{min-width:0;min-height:79px;border:1px solid #cbb9949c;border-radius:9px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#eee6d74d}
.countdown-number{font-size:33px;font-weight:600;line-height:1;font-variant-numeric:tabular-nums}
.countdown-label{font:8px/1.5 var(--sans);letter-spacing:.13em;text-transform:uppercase;color:var(--muted);margin-top:7px}
.countdown-message{font-size:19px;margin:12px 0 0;color:var(--gold)}
.venue-component{margin-top:37px}.venue-symbol{width:23px;height:28px;stroke:var(--gold);stroke-width:1.3;margin-bottom:12px}
.venue-component .eyebrow{font-size:9px;letter-spacing:.23em;margin-bottom:5px}
h2{font-size:32px;line-height:1.2;font-weight:600;margin:0 0 9px}
address{font-style:normal;font-size:17px;line-height:1.5;color:var(--muted)}
.event-actions{display:flex;flex-direction:column;gap:11px;margin-top:25px}
.action-button{display:flex;align-items:center;justify-content:center;gap:10px;min-height:49px;padding:13px 15px;border:1px solid var(--gold);border-radius:7px;text-decoration:none;font:12px/1.5 var(--sans);cursor:pointer;transition:background-color .2s ease,box-shadow .2s ease}
.action-button svg{width:17px;height:19px;flex:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.action-map{background:#98763b;color:#fffaf1;box-shadow:0 3px 8px #88672f12}.action-map:hover{background:#80612f}
.action-calendar{color:#795e31;background:transparent;list-style:none}.action-calendar::-webkit-details-marker{display:none}.action-calendar:hover{background:#eee6d7}
.calendar-chevron{font-size:16px;line-height:1;margin-left:1px}.calendar-options[open] .calendar-chevron{transform:rotate(180deg)}
.calendar-menu{margin-top:7px;border:1px solid #cbb994;border-radius:7px;background:var(--paper);overflow:hidden;text-align:left}
.calendar-menu a{display:flex;justify-content:space-between;align-items:center;min-height:51px;gap:10px;padding:14px 18px;text-decoration:none;font:12px/1.4 var(--sans)}
.calendar-menu a+a{border-top:1px solid #cbb99466}.calendar-menu a:hover{background:#eee6d7}.calendar-menu small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.study-controls{margin:30px 0 0;min-height:44px}.study-controls .text-button{font-size:10px;color:var(--muted)}
@media(min-width:700px){.invite-components{padding-top:70px}}
@media(max-width:350px){.invite-components{width:calc(100% - 32px);padding-top:40px}.date-line{gap:9px}.date-line span{font-size:16px}.countdown{gap:7px}.countdown-number{font-size:30px}.countdown-label{font-size:7px;letter-spacing:.09em}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition:none!important;scroll-behavior:auto!important}}
