:root{color-scheme:light;--ink:#38352f;--gold:#aa884b;--ring-size:clamp(150px,20vw,270px)}
*{box-sizing:border-box}
html{background:#fff}
body{margin:0;color:var(--ink);background:#fff;font-family:Georgia,'Times New Roman',serif;-webkit-font-smoothing:antialiased}
.svg-definitions{position:absolute;width:0;height:0;overflow:hidden}
.scroll-story{height:150svh}
.scene{position:sticky;top:0;height:100svh;min-height:540px;overflow:hidden;background:#fff}
.rings{position:absolute;inset:0;pointer-events:none;z-index:1}
.ring{position:absolute;width:var(--ring-size);height:auto;overflow:visible;filter:drop-shadow(2px 9px 7px #85642318);will-change:transform}
.ring-top{left:82%;top:27%;transform:translate(-50%,-50%) rotate(-32deg)}
.ring-bottom{left:18%;top:78%;transform:translate(-50%,-50%) rotate(32deg)}
.invitation{position:absolute;top:40%;left:0;width:100%;text-align:center;padding:0 22px;opacity:0;transform:translateY(22px);will-change:opacity,transform;z-index:2}
.eyebrow{margin:0 0 21px;font-family:Arial,sans-serif;font-size:10px;font-weight:400;letter-spacing:3px;text-transform:uppercase;color:var(--gold)}
h1{margin:0;font-family:Georgia,'Times New Roman',serif;font-style:italic;font-weight:400;font-size:clamp(46px,6.1vw,88px);line-height:1.15;letter-spacing:-.035em}
.ampersand{display:inline-block;font-style:italic;font-size:.68em;font-weight:400;color:var(--gold);margin:0 .15em}
.gold-line{width:38px;height:1px;margin:25px auto;background:#c6ab77}
.invitation-copy{font-size:clamp(16px,1.7vw,21px);margin:0 0 17px;color:#686156}
.date{margin:0;font-size:clamp(26px,3vw,38px);color:#937338}
.date span{font-size:1.2em}
.message{font-size:15px;line-height:1.85;color:#8c857b;margin:23px 0 0}
.signature{font-size:15px;font-style:italic;color:#a28b64;margin:23px 0 0}
.scroll-hint{position:absolute;bottom:42px;left:50%;transform:translateX(-50%);display:flex;align-items:center;flex-direction:column;gap:15px;width:max-content;max-width:90%;background:none;border:0;padding:12px 20px;color:#9c8a6b;cursor:pointer;font:italic 16px Georgia,serif;-webkit-tap-highlight-color:transparent;z-index:2}
.scroll-hint:focus-visible{outline:1px solid #b7985d;outline-offset:5px;border-radius:2px}
.hint-line{width:1px;height:40px;background:linear-gradient(#dccaa5,#aa884b);transform-origin:top;animation:breathe 2.8s ease-in-out infinite}
.hint-action{font:9px Arial,sans-serif;text-transform:uppercase;letter-spacing:2.8px;color:#aaa196}
.footer-note{display:block;margin-top:34px;text-align:center;font:9px Arial,sans-serif;letter-spacing:3px;text-transform:uppercase;color:#b3a48a}
.day-plan{padding:clamp(76px,9vw,130px) 24px clamp(90px,10vw,140px);background:linear-gradient(#fff 0%,#faf8f4 100%)}
.day-plan-heading{text-align:center;max-width:600px;margin:0 auto 52px}
.day-plan-heading .eyebrow{margin-bottom:17px}
.day-plan-heading h2{margin:0;font-size:clamp(38px,4.5vw,62px);font-weight:400;letter-spacing:-1.7px}
.day-plan-heading .gold-line{margin:24px auto}
.day-plan-heading>p:last-child{margin:0;color:#8c857b;font-size:15px;line-height:1.6}
.events{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;max-width:1180px;margin:auto}
.event-card{min-width:0;overflow:hidden;background:#fff;border:1px solid #eee8db;box-shadow:0 14px 38px #60491b0b;transition:transform .3s ease,box-shadow .3s ease}
.event-card:hover{transform:translateY(-5px);box-shadow:0 22px 45px #60491b18}
.event-card>img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#eee7da}
.event-content{padding:26px 25px 28px}
.event-time{display:flex;align-items:baseline;gap:15px;margin:0 0 17px;color:#aa884b}
.event-time time{font-size:30px;line-height:1}
.event-time span{font:10px Arial,sans-serif;letter-spacing:1.8px;text-transform:uppercase;color:#a99a82}
.event-card h3{min-height:2.5em;margin:0 0 22px;font-size:clamp(20px,2vw,26px);font-weight:400;line-height:1.25}
.event-location{display:flex;align-items:center;gap:12px;border-top:1px solid #eee8db;padding-top:17px}
.event-location p{flex:1;min-width:0;margin:0;color:#81796e;font:13px/1.5 Arial,sans-serif}
.map-link{display:grid;flex:none;place-items:center;width:42px;height:42px;border:1px solid #d8c59d;border-radius:50%;color:#a27b3c;transition:background .2s ease,color .2s ease,transform .2s ease}
.map-link:hover{background:#aa884b;color:#fff;transform:translateY(-2px)}
.map-link:focus-visible{outline:2px solid #8b652d;outline-offset:3px}
.map-link svg{width:20px;height:20px}
@keyframes breathe{0%,100%{transform:scaleY(.7);opacity:.45}50%{transform:scaleY(1);opacity:1}}
@media(max-width:850px){.events{grid-template-columns:repeat(2,minmax(0,1fr))}.event-card:last-child{grid-column:1/-1;max-width:calc(50% - 10px);width:100%;justify-self:center}}
@media(max-width:600px){.day-plan{padding:76px 20px 90px}.day-plan-heading{margin-bottom:34px}.day-plan-heading h2{font-size:42px}.events{grid-template-columns:1fr;gap:20px;max-width:430px}.event-card:last-child{grid-column:auto;max-width:none}.event-card h3{min-height:0}.event-content{padding:23px 22px 25px}}
@media(hover:none){.event-card:hover{transform:none;box-shadow:0 14px 38px #60491b0b}.map-link:hover{background:transparent;color:#a27b3c;transform:none}}
@media(max-width:600px){:root{--ring-size:clamp(140px,40vw,205px)}.ring-top{left:78%;top:24%}.ring-bottom{left:22%;top:74%}.invitation{top:37%}.eyebrow{font-size:9px;letter-spacing:2.3px;margin-bottom:22px}h1{font-size:clamp(34px,9.4vw,55px);letter-spacing:-.035em}.gold-line{margin:23px auto}.message{font-size:14px;margin-top:23px}.scroll-hint{left:auto;right:2%;bottom:30px;width:43%;max-width:190px;transform:none;padding:10px 2px;font-size:14px;line-height:1.25;text-align:center}.signature{margin-top:23px}.footer-note{margin-top:30px}}
@media(max-height:700px){.invitation{top:35%}.eyebrow{margin-bottom:13px}.gold-line{margin:16px auto}.invitation-copy{margin-bottom:10px}.message{margin-top:15px}.signature{margin-top:15px}.footer-note{margin-top:22px}}
@media(prefers-reduced-motion:reduce){.hint-line{animation:none}.ring{will-change:auto}.invitation{will-change:auto}.event-card,.map-link{transition:none}.event-card:hover,.map-link:hover{transform:none}}
