@font-face{font-family:Chancery;src:url('assets/chancery.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
@font-face{font-family:CoastalSerif;src:url('assets/serif.woff') format('woff');font-style:normal;font-weight:400;font-display:swap}
:root{color-scheme:dark;--ink:#21112c;--cream:#f7e6d5;--orange:#f7b15f;--purple:#b786da;--line:rgba(247,230,213,.22)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:2rem}body{margin:0;background:var(--ink);color:var(--cream);font-family:CoastalSerif,Georgia,serif;-webkit-font-smoothing:antialiased}a{color:inherit}a:focus-visible{outline:3px solid #fff;outline-offset:6px;border-radius:3px}.skip-link{position:fixed;left:1rem;top:1rem;z-index:10;transform:translateY(-200%);padding:1rem;background:var(--ink)}.skip-link:focus{transform:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.anniversary{position:relative;isolation:isolate;container-type:inline-size;aspect-ratio:3/2;max-width:2100px;margin:auto;overflow:hidden}.coast{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.scene-shade{position:absolute;inset:0;background:linear-gradient(0deg,rgba(25,9,31,.4),transparent 21%),linear-gradient(90deg,transparent 52%,rgba(43,16,34,.04))}.dedication{position:absolute;top:4.5%;right:3.8%;width:43%;text-align:center;color:#3e1524}.location{font-size:clamp(14px,1.2cqw,25px);text-transform:uppercase;letter-spacing:.48em;margin:0 0 .85rem;color:#fff3ea;text-shadow:0 1px 6px #3a1c3c}.chapter{border-top:1px solid rgba(255,242,229,.7);padding-top:.8rem;margin:0;font-size:clamp(12px,.9cqw,19px);letter-spacing:.16em;text-transform:uppercase;color:#fff3ea;text-shadow:0 1px 6px #3a1c3c}h1{margin:2cqw 0 0;font-weight:400;line-height:.8;font-family:Chancery,'Brush Script MT',cursive}.happy{display:block;color:#873507;font-size:7.8cqw;text-align:left;padding-left:4cqw;text-shadow:0 1px 0 rgba(255,197,121,.45)}.years{display:block;position:relative;font-family:CoastalSerif,Georgia,serif;font-style:italic;font-size:15cqw;letter-spacing:-.055em;color:#602370;line-height:.95;text-shadow:0 1px 0 rgba(244,185,214,.35)}.ordinal{font-family:Chancery,cursive;font-size:5.5cqw;letter-spacing:0;display:inline-block;vertical-align:top;padding-top:4cqw;padding-left:.45cqw}.occasion{display:block;color:#873507;font-size:7.4cqw;line-height:1.04;letter-spacing:-.02em;white-space:nowrap}.sentiment{margin:1.2cqw 0 1cqw;text-transform:uppercase;font-size:clamp(15px,1.2cqw,25px);line-height:1.65;letter-spacing:.14em;text-shadow:0 1px 3px rgba(255,213,154,.7)}.signature{font-family:Chancery,cursive;font-size:3.6cqw;line-height:.88;margin:1.5cqw 0 1.4cqw}.signature::before{content:'';display:block;width:4rem;height:1px;background:currentColor;opacity:.6;margin:0 auto 1cqw}.signature span{display:inline-block;padding-left:3cqw}.note-link{display:inline-flex;min-height:44px;align-items:center;justify-content:center;padding:.7rem 1.4rem;border:1px solid rgba(62,21,36,.6);border-radius:30px;background:rgba(255,229,190,.8);font-family:Arial,sans-serif;font-size:14px;text-decoration:none;transition:background .2s,transform .2s}.note-link:hover{background:#fff0d7;transform:translateY(-2px)}
.tribute{position:absolute;left:11.8%;top:54.3%;width:18.7%;height:17.6%;display:grid;grid-template-columns:45% 55%;grid-template-rows:1fr auto;align-items:center;text-decoration:none;transform:rotate(-3.7deg);color:#ffe4c9;transition:filter .25s;filter:drop-shadow(0 1px 2px #231018)}.tribute:hover{filter:drop-shadow(0 0 9px rgba(255,177,72,.6))}.qr{width:100%;height:auto;display:block;box-shadow:0 1px 7px rgba(0,0,0,.35);border-radius:3px}.tribute-copy{padding-left:.85cqw;font-family:Chancery,cursive;font-size:2.8cqw;line-height:.82;text-align:center}.small-heart{display:block;font-family:Georgia,serif;font-size:2.2cqw;line-height:1.2;padding-top:.5cqw}.tribute-domain{grid-column:1/-1;text-align:center;font-size:clamp(12px,1cqw,21px);letter-spacing:.16em;text-transform:uppercase;padding-top:.5cqw}.scene-footer{position:absolute;bottom:3.8%;right:4.8%;margin:0;font-family:Arial,sans-serif;font-size:clamp(12px,1cqw,21px);text-transform:uppercase;letter-spacing:.3em;color:#fff0df;text-shadow:0 1px 4px #170b1e;display:flex;align-items:center;gap:1.7cqw}.scene-footer span{font-size:1.7em;color:#f5a449}.scene-footer .footer-dot{font-size:1em;color:#e1becd}
.note{max-width:1180px;margin:auto;padding:7rem 3rem 6rem;display:grid;grid-template-columns:1fr 1.1fr;gap:7rem;border-bottom:1px solid var(--line)}.eyebrow{font:12px/1.6 Arial,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:#dbc8e7;margin:0 0 2rem}h2{font-size:clamp(48px,5vw,76px);font-weight:400;line-height:1.09;letter-spacing:-.035em;margin:0 0 2rem}h2 em{color:var(--orange);font-weight:400}.date{font-size:14px;line-height:1.8;color:#dbc8e7}.date span{color:var(--orange);padding:0 .6rem}.letter{font-size:19px;line-height:1.75}.letter>p{margin:0 0 1.4rem}.letter .salutation{font-family:Chancery,cursive;color:var(--purple);font-size:44px;line-height:1;margin-bottom:1.4rem}.letter .letter-signature{font-family:Chancery,cursive;font-size:38px;line-height:1;color:var(--orange);margin:2rem 0}.letter-signature span{padding-left:2rem}.tribute-link{display:inline-block;font-family:Arial,sans-serif;font-size:14px;text-underline-offset:6px;text-decoration-color:#b786da;padding:10px 0}.tribute-link:hover{color:var(--orange)}.page-footer{padding:2.5rem 2rem 3rem;display:flex;align-items:center;justify-content:center;gap:.75rem;font-family:Chancery,cursive;font-size:30px}.robert{color:var(--orange)}.kellie{color:var(--purple)}.footer-year{font:12px/1.6 Arial,sans-serif;letter-spacing:.12em;padding-left:1.2rem;margin-left:.6rem;border-left:1px solid var(--line);text-transform:uppercase}
@media(min-width:981px){.dedication{animation:arrive 1s ease-out both}.tribute{animation:plaque-arrive 1.1s ease-out both}}
@media(max-width:1100px) and (min-width:981px){.dedication{top:3.7%;right:3.5%;width:44%}.chapter{font-size:12px;padding-top:.55rem}.location{letter-spacing:.35em;margin-bottom:.6rem}.sentiment{font-size:15px;letter-spacing:.1em}.signature{margin:1cqw 0}.note-link{padding:.45rem 1rem}.scene-footer{letter-spacing:.18em;bottom:3%}.tribute-domain{letter-spacing:.08em}.note{gap:4rem;padding:5rem 3rem}}
@media(max-width:980px){.anniversary{aspect-ratio:auto;overflow:hidden;display:flex;flex-direction:column;padding-bottom:2.5rem;background:#21112c}.coast{position:relative;inset:auto;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;order:0;mask-image:linear-gradient(#000 82%,transparent 100%)}.scene-shade{display:none}.dedication{position:relative;top:auto;right:auto;width:auto;order:1;padding:1.1rem 1.3rem 1.5rem;margin-top:-1rem;color:var(--cream)}.location{font-size:14px;letter-spacing:.27em;margin:0 0 .8rem}.chapter{font-size:12px;padding-top:.8rem;letter-spacing:.08em;max-width:440px;margin:auto}h1{margin:2rem auto 0;max-width:460px}.happy{font-size:clamp(58px,14vw,92px);padding-left:0;text-align:center;color:var(--orange)}.years{font-size:clamp(126px,32vw,205px);color:var(--purple);line-height:.94;margin-top:.15rem}.ordinal{font-size:clamp(44px,11vw,70px);padding-top:clamp(34px,8vw,52px)}.occasion{font-size:clamp(58px,14vw,92px);color:var(--orange)}.sentiment{font-size:14px;line-height:1.8;margin:1.6rem 0 0;letter-spacing:.1em;text-shadow:none}.signature{font-size:43px;margin:1.8rem 0 1.6rem}.signature::before{margin-bottom:1.2rem;background:#b786da}.signature span{padding-left:2rem}.note-link{background:#f8d8ae;color:#38202f;border-color:transparent;font-size:14px;padding:.65rem 1.3rem}.tribute{position:relative;left:auto;top:auto;order:2;width:min(330px,calc(100% - 3rem));height:auto;min-height:205px;margin:1.6rem auto 1.9rem;padding:1.4rem 1.5rem .8rem;transform:rotate(-2deg);grid-template-columns:46% 54%;background:#352014 url('assets/monterey-sunset.webp') 13% 65%/720% auto;border:1px solid #936248;border-radius:8px;box-shadow:0 8px 20px #10081699;color:#ffe4c9}.tribute-copy{padding-left:1rem;font-size:39px}.small-heart{font-size:25px;padding-top:.5rem}.tribute-domain{font-size:12px;padding-top:1rem;letter-spacing:.12em}.scene-footer{position:relative;order:3;bottom:auto;right:auto;justify-content:center;flex-wrap:wrap;font-size:10px;letter-spacing:.16em;gap:.8rem;text-shadow:none;padding:0 1rem}.scene-footer span{font-size:18px}.note{padding:3.5rem 1.5rem;grid-template-columns:1fr;gap:2rem}.note-heading{text-align:center}.eyebrow{margin-bottom:1.5rem}h2{font-size:54px}h2 br{display:none}h2 em{display:block}.date{font-size:12px}.letter{max-width:540px;margin:auto;font-size:18px}.page-footer{padding:2rem 1rem;flex-wrap:wrap}.footer-year{flex-basis:100%;border:0;padding:0;margin:.5rem 0 0;text-align:center;font-size:10px}}
@media(max-width:360px){.sentiment{font-size:13px;letter-spacing:.07em}.location{font-size:13px}.chapter{font-size:11px}.tribute-copy{font-size:34px}.scene-footer{gap:.55rem;letter-spacing:.08em}.date{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
@media print{body{background:#fff;color:#21112c}.anniversary{break-inside:avoid}.coast{-webkit-print-color-adjust:exact;print-color-adjust:exact}.note-link,.skip-link{display:none}.note{padding:2rem;gap:2rem}.page-footer{display:none}.letter .salutation,.letter .letter-signature,h2 em{color:#602370}}
@keyframes arrive{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes plaque-arrive{from{opacity:0}to{opacity:1}}
