@font-face{font-family:Pinyon Script;src:url(assets/fonts/pinyon-script.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(assets/fonts/cormorant-garamond-regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Cormorant Garamond;src:url(assets/fonts/cormorant-garamond-italic.woff2) format("woff2");font-style:italic;font-weight:400 500;font-display:swap}@font-face{font-family:Jost;src:url(assets/fonts/jost-regular.woff2) format("woff2");font-weight:400;font-display:swap}:root{--paper:#f5efe3;--paper-light:#fffcf5;--ink:#68513e;--muted:#8c7963;--gold:#ab8b5b;--line:#bca78a;--script:"Pinyon Script","Brush Script MT",cursive;--serif:"Cormorant Garamond",Georgia,serif;--sans:Jost,Arial,sans-serif;--ease:cubic-bezier(.22,1,.36,1)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--serif);-webkit-font-smoothing:antialiased;overflow-x:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit}button:focus-visible,a:focus-visible{outline:2px solid var(--ink);outline-offset:7px}button{cursor:pointer}button:disabled{cursor:default}button,a{touch-action:manipulation}a{color:inherit}::selection{background:#d8c6a7;color:#483725}[hidden]{display:none!important}.screen-reader{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.ambient{position:fixed;inset:0;z-index:-2;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% 42%,#fffaf0,#f5efe3 58%,#eae3d4)}.botanical{position:absolute;inset:0;background-image:url(assets/botanical-paper.jpg);background-repeat:no-repeat;mix-blend-mode:multiply;opacity:.9;will-change:transform}.botanical--left{background-size:800px 1200px;background-position:left -180px bottom -230px;mask-image:linear-gradient(125deg,#000 0%,#000 15%,transparent 54%);animation:foliage-breathe 18s ease-in-out infinite alternate;transform-origin:bottom left}.botanical--right{background-size:830px 1245px;background-position:right -200px top -120px;mask-image:linear-gradient(300deg,transparent 45%,#000 80%);animation:foliage-breathe 22s ease-in-out -6s infinite alternate;transform-origin:top right}.sunlight{position:absolute;inset:-35%;background:linear-gradient(122deg,transparent 45%,#fff9e2aa 47%,transparent 52%,#fffdf133 56%,transparent 59%);transform:rotate(-8deg);animation:light-drift 24s ease-in-out infinite alternate;opacity:.5}.grain{position:fixed;inset:0;pointer-events:none;z-index:15;opacity:.035;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' filter='url(%23n)' opacity='.8' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}.site-header{position:absolute;top:0;width:100%;height:100px;padding:24px 5.2vw;display:flex;align-items:center;justify-content:space-between;z-index:10}.monogram{text-decoration:none;font-family:var(--script);font-size:39px;position:relative;line-height:1;width:48px}.monogram-star{position:absolute;font-family:var(--serif);font-size:15px;right:3px;top:-2px}.header-label,.header-year{font-family:var(--sans);font-size:10px;letter-spacing:2.5px}.header-label{position:absolute;left:50%;transform:translate(-50%);color:#99846b}.header-year{font-size:9px;letter-spacing:2px;display:flex;gap:10px;align-items:center}.header-year b{font-family:var(--serif);font-weight:400;font-size:21px;letter-spacing:1px}.welcome{min-height:100svh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:98px 24px 30px;position:relative;transition:opacity .8s ease,transform .8s var(--ease)}.welcome-title{text-align:center;z-index:2;animation:rise-in 1.5s var(--ease) both}.eyebrow{font-family:var(--sans);font-size:9px;letter-spacing:2.5px;font-weight:400}.welcome-eyebrow{margin:0 0 8px;color:#8a765c;font-size:8px;letter-spacing:3px}.welcome h1{font-family:var(--script);font-size:clamp(86px,9vw,132px);font-weight:400;line-height:1.12;margin:0 0 0 -18px;color:#755b43;text-shadow:0 1px 0 #fff}.graduation-label{font-size:17px;letter-spacing:9px;margin:0 0 15px;padding-left:9px}.little-divider{display:flex;align-items:center;justify-content:center;gap:15px;color:var(--gold)}.little-divider i{display:block;width:36px;height:1px;background:linear-gradient(90deg,transparent,#bda887)}.little-divider i:last-child{transform:rotate(180deg)}.little-divider span{font-size:17px}.envelope-scene{position:relative;width:min(540px,72vw);aspect-ratio:1.72;margin:43px 0 0;perspective:1600px;isolation:isolate;animation:envelope-arrive 1.9s var(--ease) both}.envelope-shadow{position:absolute;width:83%;height:28%;left:11%;bottom:-14%;background:#5b4024;filter:blur(28px);opacity:.19;transform:rotate(-5deg);transition:opacity 1s}.envelope{width:100%;height:100%;position:relative;transform:rotate(-5deg);transition:transform 1.4s var(--ease);transform-style:preserve-3d;filter:drop-shadow(0 12px 15px #6e4d2c15)}.envelope-back{position:absolute;inset:0;background:linear-gradient(140deg,#e5d9c1,#f1e8d6);border-radius:3px;box-shadow:0 1px 1px #fff inset,0 -1px 1px #9b825f44 inset}.envelope-left,.envelope-right,.envelope-bottom,.envelope-lining{position:absolute;inset:0;pointer-events:none}.envelope-lining{z-index:1;background:repeating-linear-gradient(45deg,#b8b69433 0px,#b8b69433 1px,transparent 1px,transparent 10px),#ded7c3;clip-path:polygon(0 0,100% 0,50% 65%)}.envelope-left{z-index:4;clip-path:polygon(0 0,54% 55%,0 100%);background:linear-gradient(35deg,#ebe1cc,#f7efdd);filter:drop-shadow(2px 0 1px #9d8765)}.envelope-right{z-index:4;clip-path:polygon(100% 0,46% 55%,100% 100%);background:linear-gradient(-30deg,#e9ddc5,#f5ecd9)}.envelope-bottom{z-index:5;clip-path:polygon(0 100%,0 97%,50% 42%,100% 97%,100% 100%);background:linear-gradient(168deg,#fff7e7,#eee4cf 85%);border-radius:0 0 3px 3px}.envelope-bottom:after{content:"";position:absolute;inset:0;background:linear-gradient(147deg,transparent 49.7%,#b9a98966 49.9%,#fff8ec 50%,transparent 50.3%);opacity:.4}.envelope-flap{position:absolute;inset:0;z-index:6;transform-origin:center top;transform-style:preserve-3d;transition:transform 1.3s var(--ease),z-index 0s .6s;filter:drop-shadow(0 2px 2px #7b603b26)}.flap-face{position:absolute;inset:0;clip-path:polygon(0 0,100% 0,51.8% 62.5%,50% 63.4%,48.2% 62.5%);background:linear-gradient(168deg,#faf3e4,#eee3ce 77%);backface-visibility:hidden}.flap-face:before{content:"";position:absolute;inset:0;background:linear-gradient(148deg,transparent 49.5%,#fffdf5 50%,transparent 50.5%);opacity:.45}.envelope-caption{position:absolute;z-index:7;bottom:25px;width:100%;text-align:center;font-family:var(--serif);font-style:italic;letter-spacing:.7px;font-size:13px;color:#a28b6a;pointer-events:none}.wax-seal{position:absolute;left:50%;top:55%;width:85px;height:84px;border:0;transform:translate(-50%,-50%);z-index:8;border-radius:43% 48% 45% 49%/47% 44% 50% 43%;background:radial-gradient(ellipse at 34% 25%,#c4a985,#ad8c66 33%,#b39672 51%,#95724e 76%,#a48660);box-shadow:inset 2px 3px 4px #e0c7a0,inset -2px -2px 3px #785a3a,2px 6px 9px #64442644;transition:transform .5s var(--ease),opacity .4s,filter .5s}.wax-seal:hover{transform:translate(-50%,-50%) scale(1.08) rotate(7deg);filter:brightness(1.06)}.seal-rim{position:absolute;inset:7px;border:1px solid #785a3a99;border-radius:50%;box-shadow:inset 1px 2px 2px #71503177,0 1px 1px #e0c8a1;display:flex;align-items:center;justify-content:center}.seal-rim:before{content:"";position:absolute;inset:4px;border:1px solid #e2c79c88;border-radius:50%}.seal-initial{font-family:var(--script);font-size:47px;margin-left:-6px;margin-top:-2px;color:#795d3e;text-shadow:0 1px 1px #e0c59c}.seal-leaf{position:absolute;bottom:0;right:14px;transform:rotate(-20deg);font-size:17px;color:#836342}.envelope-sprig{position:absolute;width:24%;height:78%;bottom:-11%;right:-14%;transform:rotate(15deg);z-index:-1;filter:drop-shadow(7px 9px 6px #54613919);opacity:.8}.envelope-sprig svg{width:100%;height:100%}.letter-peek{position:absolute;width:68%;height:91%;top:3%;left:16%;z-index:2;transform:translateY(8%);transition:transform 1.3s var(--ease) .75s;opacity:0}.peek-card{position:absolute;inset:0;z-index:2;background:var(--paper-light);padding:20px;text-align:center;box-shadow:0 2px 9px #56432525;transform:rotate(-2deg);display:flex;flex-direction:column;justify-content:center;align-items:center}.peek-card>span{font-family:var(--script);font-size:56px;line-height:1.05}.peek-card small{letter-spacing:5px;font-size:14px}.peek-card p{font-family:var(--sans);font-size:9px;letter-spacing:3px;margin:18px 0 0}.peek-photo{position:absolute;width:43%;height:81%;right:-24%;top:-23%;z-index:1;background:#fffcf5;padding:7px 7px 22px;transform:rotate(12deg);box-shadow:3px 8px 12px #57422826}.peek-photo img{width:100%;height:100%;object-fit:cover;object-position:center 30%}.opening-note{margin-top:40px;text-align:center;animation:rise-in 1.8s .4s var(--ease) both;transition:opacity .5s}.tiny-star{color:var(--gold);font-size:17px}.opening-note p{font-style:italic;font-size:20px;margin:8px 0 12px}.tap-hint{font-family:var(--sans);font-size:8px;letter-spacing:2.7px;color:#8d785e;animation:prompt-breathe 3s 3s ease-in-out infinite}.welcome-date{font-family:var(--sans);font-size:9px;letter-spacing:2.5px;margin:33px 0 0;color:#8c765c;animation:rise-in 2s .6s var(--ease) both}.welcome-date span{padding:0 8px}.is-opening .wax-seal{transform:translate(-50%,-50%) scale(1.3) rotate(16deg);opacity:0;pointer-events:none}.is-opening .envelope-flap{transform:rotateX(-180deg);z-index:1}.is-opening .envelope{transform:rotate(0) translateY(30px)}.is-opening .letter-peek{transform:translateY(-67%) rotate(-3deg);opacity:1}.is-opening .opening-note{opacity:0}.is-opening .envelope-shadow{opacity:.1}.welcome.is-leaving{opacity:0;transform:translateY(20px) scale(1.03);pointer-events:none}.invitation{max-width:1120px;margin:0 auto;padding:133px 36px 0;animation:invitation-arrive 1.4s var(--ease) both}.invitation-topline{display:flex;align-items:center;justify-content:space-between;padding:0 4px 20px}.invitation-topline .eyebrow{font-size:8px;letter-spacing:2px}.replay{border:0;background:none;font-family:var(--sans);font-size:10px;display:flex;align-items:center;gap:8px;padding:8px 0;color:var(--muted)}.replay svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:1.2}.replay:hover{color:#4c3727}.keepsake{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;background:#fbf7ed;box-shadow:0 25px 90px #65431d14,0 2px 3px #614a2810;isolation:isolate}.keepsake:after{content:"";position:absolute;inset:0;pointer-events:none;border:1px solid #fff8;z-index:2}.portrait-panel{position:relative;padding:41px 43px 32px;background:linear-gradient(100deg,#e8e7d9,#f2f0e4 92%,#d2cdbb);display:flex;flex-direction:column;align-items:center;overflow:hidden}.portrait-panel:before{content:"";position:absolute;inset:0;background:url(assets/botanical-paper.jpg) center/cover;mix-blend-mode:multiply;opacity:.6;pointer-events:none}.portrait-ornament{font-size:25px;line-height:1;margin-bottom:13px;color:#9a855d;z-index:1}.portrait-overline{font-family:var(--sans);font-size:7px;letter-spacing:2.6px;z-index:1;margin:0 0 25px}.portrait-frame{width:100%;position:relative;padding:9px;background:#fffaf0;box-shadow:4px 9px 16px #66513221;transform:rotate(-3deg);z-index:1;transition:transform 1s var(--ease)}.portrait-frame:hover{transform:rotate(0) translateY(-4px)}.portrait-inner{aspect-ratio:3/4;overflow:hidden;background:#6a5138}.portrait{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 20%;transition:transform 7s var(--ease)}.portrait-frame:hover .portrait{transform:scale(1.04)}.portrait-caption{font-family:var(--script);font-size:34px;line-height:1.1;transform:rotate(-3deg);margin:28px 0 5px;z-index:1;white-space:nowrap}.portrait-subcaption{font-family:var(--serif);font-style:italic;font-size:16px;z-index:1;margin:0}.portrait-signature{position:absolute;bottom:23px;right:25px;font-family:var(--script);font-size:26px;transform:rotate(-8deg);opacity:.3}.message-panel{position:relative;display:flex;flex-direction:column;align-items:center;text-align:center;padding:46px 34px 36px;background:radial-gradient(ellipse at top right,#fffdf5,#faf6ed);min-width:0}.inner-rule{position:absolute;inset:16px;border:1px solid #bfaa7b3b;pointer-events:none}.inner-rule:before,.inner-rule:after{content:"\2727";position:absolute;color:#b49d73;font-size:14px;background:#fbf7ee;left:50%;transform:translate(-50%);padding:0 9px}.inner-rule:before{top:-10px}.inner-rule:after{bottom:-9px}.graduation-cap{width:57px;height:43px;color:#69523e;margin:0 0 15px;animation:cap-arrive 1.4s .3s var(--ease) both}.message-eyebrow{font-size:7px;letter-spacing:2.4px;margin:0 0 23px;color:#947b58}.announcement{font-size:20px;line-height:1.55;margin:0;max-width:390px}.announce-intro{font-size:18px;margin:17px 0 0;font-style:italic}.message-panel h2{font-family:var(--script);font-size:clamp(56px,6.2vw,82px);line-height:1.3;font-weight:400;letter-spacing:-1.5px;margin:8px -16px 4px;color:#624a35;white-space:nowrap;outline:none}.message-panel h2 span{font-size:.7em}.blessing{font-size:17px;margin:1px 0 15px;font-style:italic}.date-ornament{display:flex;align-items:center;gap:13px;font-size:17px;color:#ad9267;margin:3px 0 11px}.date-ornament span{height:1px;width:31px;background:#bca88799}.date-label{font-family:var(--sans);font-size:8px;letter-spacing:4px;margin:0 0 7px}.graduation-date{font-size:36px;font-variant-numeric:lining-nums;letter-spacing:3px;font-weight:400;white-space:nowrap}.graduation-date span{font-size:23px;padding:0 8px;color:#b19772}.message-signoff{font-size:14px;font-style:italic;margin:25px 0 0;color:#8d775e}.signature{font-family:var(--script);font-size:40px;margin:4px 0 0;line-height:1.2}.scroll-cue{display:flex;flex-direction:column;align-items:center;gap:16px;margin:36px 0 0}.scroll-cue>span:first-child{font-family:var(--sans);font-size:7px;letter-spacing:2.5px;color:#927e62}.scroll-line{width:1px;height:44px;background:linear-gradient(#aa9168,transparent);animation:scroll-pulse 2.5s ease-in-out infinite;transform-origin:top}.countdown-section{text-align:center;padding:52px 0 87px}.countdown-section .little-divider{margin-bottom:32px}.countdown-section .eyebrow{font-size:8px;color:#8d785b;letter-spacing:2.3px}.countdown-section h3{font-family:var(--script);font-weight:400;font-size:58px;margin:15px 0 34px;line-height:1.25}.countdown{display:flex;justify-content:center;align-items:flex-start;gap:24px}.time-unit{display:flex;flex-direction:column;min-width:82px;gap:10px}.time-value{font-size:70px;line-height:1;font-variant-numeric:lining-nums tabular-nums;letter-spacing:2px;font-weight:400}.time-label{font-family:var(--sans);font-size:8px;letter-spacing:3px;color:#8c765b}.time-colon{font-size:30px;line-height:63px;color:#b09b7d}.countdown-message{font-style:italic;font-size:19px;color:#927d62;margin:31px 0 0}.invitation-footer{padding:28px 0 32px;text-align:center;border-top:1px solid #a8916a33;display:flex;align-items:center;flex-direction:column}.footer-monogram{font-family:var(--script);font-size:48px;line-height:1.1}.invitation-footer p{font-size:22px;line-height:1.35;font-style:italic;margin:10px 0 24px}.invitation-footer .eyebrow{font-size:7px;letter-spacing:2px}.back-to-envelope{border:0;background:none;font-family:var(--serif);font-style:italic;font-size:15px;margin-top:22px;padding:9px 15px;color:#8e7656}.back-to-envelope span{font-style:normal;font-size:16px;display:inline-block;margin-left:7px;transition:transform .3s}.back-to-envelope:hover span{transform:translate(3px,-3px)}.reveal{opacity:0;transform:translateY(24px);transition:opacity 1.3s ease,transform 1.3s var(--ease)}.reveal.is-visible{opacity:1;transform:none}.petals{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:12}.petal{position:absolute;top:-30px;width:9px;height:14px;border-radius:80% 5% 80% 15%;background:linear-gradient(45deg,#dcc4b6cc,#f0ddd2bb);opacity:0;animation:petal-fall var(--duration) var(--delay) linear infinite;left:var(--left)}.petal:nth-child(3n){background:linear-gradient(45deg,#b5b99999,#d7d8b6aa);width:7px;height:12px}.petal:nth-child(4n){background:linear-gradient(45deg,#dbc88a88,#f1d99a99);width:6px;height:10px}@keyframes rise-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes envelope-arrive{0%{opacity:0;transform:translateY(35px) rotate(3deg)}to{opacity:1;transform:none}}@keyframes invitation-arrive{0%{opacity:0;transform:translateY(25px) scale(.98)}to{opacity:1;transform:none}}@keyframes cap-arrive{0%{opacity:0;transform:translateY(-15px) rotate(-8deg)}to{opacity:1;transform:none}}@keyframes foliage-breathe{0%{transform:rotate(-1deg) scale(1.01)}to{transform:rotate(1deg) scale(1.035)}}@keyframes light-drift{0%{transform:translate(-2%) rotate(-8deg)}to{transform:translate(5%) rotate(-6deg)}}@keyframes prompt-breathe{0%,to{opacity:.65}50%{opacity:1}}@keyframes scroll-pulse{0%,to{transform:scaleY(.7);opacity:.6}50%{transform:scaleY(1);opacity:1}}@keyframes petal-fall{0%{transform:translate3d(0,-20px,0) rotate(0);opacity:0}8%{opacity:.65}85%{opacity:.5}to{transform:translate3d(100px,110vh,0) rotate(320deg);opacity:0}}@media(min-width:1600px){.botanical--left{background-size:1100px 1650px;background-position:left -230px bottom -310px}.botanical--right{background-size:1100px 1650px;background-position:right -250px top -160px}.welcome{padding-top:110px}.envelope-scene{width:580px;margin-top:50px}.opening-note{margin-top:50px}}@media(min-width:801px)and (max-height:820px){.welcome{padding-top:88px;padding-bottom:23px}.welcome h1{font-size:100px}.welcome-eyebrow{margin-bottom:1px}.graduation-label{font-size:14px;margin-bottom:9px}.envelope-scene{width:430px;margin-top:29px}.opening-note{margin-top:25px}.opening-note p{font-size:19px;margin:5px 0 9px}.welcome-date{margin-top:22px}.wax-seal{width:76px;height:75px}.envelope-caption{bottom:20px}}@media(max-width:800px){.site-header{height:80px;padding:18px 28px}.header-label{font-size:8px;letter-spacing:1.8px}.header-year{font-size:8px;gap:6px;letter-spacing:1px}.header-year b{font-size:18px}.monogram{font-size:33px}.monogram-star{right:10px;font-size:13px}.welcome{padding-top:102px;padding-bottom:32px}.welcome h1{font-size:104px}.welcome-eyebrow{font-size:7px;letter-spacing:2.5px}.graduation-label{font-size:15px;letter-spacing:7px}.envelope-scene{width:min(500px,77vw);margin-top:52px}.envelope-sprig{right:-12%;width:22%}.botanical--left{background-size:650px 975px;background-position:left -210px bottom -160px;opacity:.8}.botanical--right{background-size:650px 975px;background-position:right -210px top -80px;opacity:.8}.invitation{max-width:600px;padding:104px 27px 0}.invitation-topline .eyebrow{font-size:7px;letter-spacing:1.4px}.keepsake{grid-template-columns:1fr}.portrait-panel{padding:32px 70px 36px;background:linear-gradient(110deg,#e8e7d9,#f1f0e4)}.portrait-panel:before{background-size:cover;background-position:center 52%}.portrait-frame{max-width:270px;padding:8px 8px 24px}.portrait-inner{aspect-ratio:3/3.6}.portrait-overline{margin-bottom:22px}.portrait-caption{font-size:33px;margin-top:23px}.portrait-subcaption{font-size:15px}.portrait-signature{right:30px;bottom:25px;font-size:26px}.message-panel{padding:39px 28px 36px}.message-panel h2{font-size:77px}.announcement{font-size:21px}.message-eyebrow{font-size:7px;letter-spacing:2px}.message-signoff{margin-top:22px}.countdown-section{padding-top:43px;padding-bottom:60px}.countdown-section h3{font-size:51px}.countdown{gap:14px}.time-unit{min-width:64px}.time-value{font-size:61px}.time-colon{font-size:25px;line-height:57px}}@media(max-width:480px){.site-header{padding:17px 23px}.header-label{display:none}.welcome{padding:92px 18px 30px;justify-content:center;min-height:100svh}.welcome h1{font-size:96px}.welcome-eyebrow{font-size:6px;letter-spacing:2.5px}.graduation-label{font-size:13px;letter-spacing:6px;margin-bottom:15px}.little-divider{gap:13px}.little-divider i{width:26px}.envelope-scene{width:81vw;max-width:365px;margin-top:43px}.wax-seal{width:64px;height:63px}.seal-rim{inset:6px}.seal-rim:before{inset:3px}.seal-initial{font-size:36px;margin-top:-2px}.seal-leaf{font-size:12px;right:11px;bottom:0}.envelope-caption{font-size:10px;bottom:19px;letter-spacing:.3px}.envelope-sprig{right:-9%;bottom:-17%;width:25%}.opening-note{margin-top:43px}.opening-note p{font-size:19px;margin:8px 0 12px}.tap-hint{font-size:7px;letter-spacing:2.2px}.welcome-date{font-size:8px;letter-spacing:1.7px;margin-top:32px}.botanical--left{background-size:520px 780px;background-position:left -205px bottom -110px;opacity:.68;mask-image:linear-gradient(120deg,#000,transparent 68%)}.botanical--right{background-size:560px 840px;background-position:right -240px top -70px;opacity:.75;mask-image:linear-gradient(300deg,transparent 35%,#000 90%)}.peek-card{padding:14px}.peek-card>span{font-size:39px}.peek-card small{font-size:10px;letter-spacing:3px}.peek-card p{font-size:7px;letter-spacing:1.5px;margin-top:11px}.peek-photo{padding:5px 5px 14px;right:-17%;top:-19%}.is-opening .letter-peek{transform:translateY(-57%) rotate(-3deg)}.invitation{padding:94px 17px 0}.invitation-topline{padding:0 3px 13px}.invitation-topline .eyebrow{font-size:6px;letter-spacing:1.2px}.replay{font-size:9px;gap:5px}.replay svg{width:12px}.portrait-panel{padding:27px 56px 29px}.portrait-overline{font-size:6px;letter-spacing:1.8px;margin-bottom:19px;white-space:nowrap}.portrait-ornament{font-size:21px;margin-bottom:9px}.portrait-frame{padding:7px 7px 20px}.portrait-caption{font-size:29px;margin:23px 0 4px}.portrait-subcaption{font-size:14px}.portrait-signature{font-size:23px;bottom:13px;right:17px}.message-panel{padding:35px 24px 33px}.inner-rule{inset:12px}.graduation-cap{width:48px;height:36px;margin-bottom:14px}.message-eyebrow{font-size:6px;letter-spacing:1.8px;margin-bottom:22px}.announcement{font-size:19px;line-height:1.5}.announce-intro{font-size:17px;margin-top:17px}.message-panel h2{font-size:65px;letter-spacing:-1.4px;margin:10px -14px 6px}.blessing{font-size:16px}.graduation-date{font-size:32px;letter-spacing:2px}.graduation-date span{padding:0 5px;font-size:21px}.message-signoff{font-size:14px}.signature{font-size:37px}.scroll-cue{margin-top:28px;gap:13px}.scroll-cue>span:first-child{font-size:6px;letter-spacing:2px}.countdown-section{padding:35px 0 48px}.countdown-section .little-divider{margin-bottom:25px}.countdown-section .eyebrow{font-size:6px;letter-spacing:1.8px}.countdown-section h3{font-size:43px;margin:17px -4px 27px}.countdown{gap:9px}.time-unit{min-width:53px;gap:9px}.time-value{font-size:52px}.time-colon{font-size:21px;line-height:48px}.time-label{font-size:6px;letter-spacing:1.5px}.countdown-message{font-size:17px;margin-top:27px}.invitation-footer{padding:25px 0 27px}.invitation-footer p{font-size:21px}.invitation-footer .eyebrow{font-size:6px}}@media(max-width:360px){.message-panel h2{font-size:57px}.announcement{font-size:17px}.portrait-panel{padding-left:46px;padding-right:46px}.countdown-section h3{font-size:37px}.countdown{gap:6px}.time-unit{min-width:48px}.time-value{font-size:46px}.time-label{font-size:6px}.welcome h1{font-size:85px}.welcome-eyebrow{letter-spacing:1.8px}.welcome{padding-top:87px}.envelope-scene{margin-top:37px}.opening-note{margin-top:33px}}.botanical--left{inset:auto auto -22px -18px;width:680px;height:760px;background-size:680px 1020px;background-position:left bottom;mask-image:radial-gradient(ellipse at left bottom,#000 5%,#000b 38%,transparent 72%);opacity:.82}.screen-reader{top:0;left:0;margin:0}.welcome h1,.graduation-label,.portrait-caption,.portrait-subcaption,.signature,.countdown-section h3,.time-value,.graduation-date{color:#9a805f}.announcement,.announce-intro,.blessing,.opening-note p,.countdown-message,.invitation-footer p{color:#897154}.message-panel h2{color:#8b6f4d;-webkit-text-stroke:.35px currentColor;text-shadow:.3px 0 currentColor}.replay,.tap-hint,.time-label,.message-eyebrow,.welcome-eyebrow,.header-label,.welcome-date,.countdown-section .eyebrow,.scroll-cue>span:first-child,.message-signoff,.back-to-envelope{color:#78634c}.invitation-open .message-panel>.message-eyebrow{animation:rise-in 1s .2s var(--ease) both}.invitation-open .announcement{animation:rise-in 1.2s .35s var(--ease) both}.invitation-open .announce-intro{animation:rise-in 1.2s .5s var(--ease) both}.invitation-open .message-panel h2{animation:ink-reveal 1.8s .6s var(--ease) both}.invitation-open .blessing{animation:rise-in 1.2s .8s var(--ease) both}.invitation-open .graduation-date{animation:rise-in 1.3s 1s var(--ease) both}.invitation-open .signature{animation:ink-reveal 1.5s 1.2s var(--ease) both}@keyframes ink-reveal{0%{opacity:0;clip-path:inset(-20% 100% -20% -20%)}to{opacity:1;clip-path:inset(-20% -20% -20% -20%)}}.botanical--right{inset:-22px -12px auto auto;width:680px;height:760px;background-size:680px 1020px;background-position:right top;mask-image:radial-gradient(ellipse at right top,#000 5%,#000b 38%,transparent 72%);opacity:.82}.replay,.back-to-envelope{min-height:44px}@media(max-width:800px){.botanical--left{inset:auto auto -25px -40px;width:470px;height:570px;background-size:470px 705px}.botanical--right{inset:-25px -40px auto auto;width:470px;height:570px;background-size:470px 705px}}@media(max-width:480px){.botanical--left{inset:auto auto -20px -35px;width:340px;height:430px;background-size:340px 510px;opacity:.65}.botanical--right{inset:-8px -70px auto auto;width:340px;height:430px;background-size:340px 510px;opacity:.65}.welcome-eyebrow{font-size:8px;letter-spacing:1.8px}.tap-hint{font-size:9px;letter-spacing:1.5px}.welcome-date{font-size:9px}.message-eyebrow{font-size:8px;letter-spacing:1.1px}.portrait-overline{font-size:8px;letter-spacing:1.2px}.invitation-topline .eyebrow,.time-label,.countdown-section .eyebrow{font-size:8px;letter-spacing:1px}.scroll-cue>span:first-child{font-size:8px;letter-spacing:1px}.invitation-footer .eyebrow{font-size:8px;letter-spacing:1.5px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}.petals{display:none}.reveal{opacity:1;transform:none}}@media(max-width:480px){.botanical--right{right:-15px;top:-5px;opacity:.56}.botanical--left{left:-8px;bottom:-12px;opacity:.6}}@media(max-width:360px){.message-panel h2{font-size:50px;letter-spacing:-1px}.portrait-overline{font-size:7px;letter-spacing:.8px}}.portrait-panel{justify-content:center}.portrait-frame{max-width:260px}.academic-details{position:relative;z-index:1;width:100%;margin-top:25px;text-align:center;color:#80694e}.ledger-mark{width:43px;height:25px;margin:0 auto 12px;display:block;stroke:#a38b65;stroke-width:1.1;stroke-linecap:round;stroke-linejoin:round}.ledger-mark path{stroke-dasharray:1;stroke-dashoffset:0}.invitation-open .ledger-mark path{animation:ledger-draw 2.2s .4s var(--ease) both}.academic-overline{font-family:var(--sans);font-size:8px;letter-spacing:1.8px;margin:0 0 5px;line-height:1.5}.academic-details h3{font-family:var(--serif);font-size:35px;line-height:1.15;font-weight:400;letter-spacing:4px;margin:0 0 12px}.academic-major{font-family:var(--sans);font-size:9px;line-height:1.8;letter-spacing:.9px;margin:0}.academic-major span{display:block;font-size:7px;letter-spacing:2px;margin-bottom:1px}.academic-name{font-family:var(--script);font-size:33px;line-height:1.4;margin:16px -20px 9px;color:#8b6f4d}.academic-name span{font-family:var(--serif);font-style:italic;font-size:.55em}.academic-university{font-family:var(--sans);font-size:9px;letter-spacing:2px;line-height:1.6;margin:0}.academic-rule{display:flex;align-items:center;justify-content:center;gap:12px;margin:11px 0 7px;color:#a58c65}.academic-rule i{width:35px;height:1px;background:#ad9875;transform-origin:center}.academic-rule span{font-size:13px}.academic-class{font-family:var(--serif);font-size:19px;font-style:italic;letter-spacing:.5px;margin:0}.invitation-open .academic-details>p,.invitation-open .academic-details>h3{animation:rise-in 1.2s .7s var(--ease) both}.invitation-open .academic-details>.academic-name{animation:ink-reveal 1.8s 1s var(--ease) both}.invitation-open .academic-rule i{animation:ledger-rule 1.6s 1s var(--ease) both}@keyframes ledger-draw{0%{stroke-dashoffset:1}to{stroke-dashoffset:0}}@keyframes ledger-rule{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@media(max-width:800px){.portrait-panel{padding-left:45px;padding-right:45px}.portrait-frame{max-width:235px}.academic-details{margin-top:24px}}@media(max-width:480px){.portrait-panel{padding-left:30px;padding-right:30px}.portrait-frame{max-width:220px}.academic-details h3{font-size:32px;letter-spacing:3px}.academic-name{font-size:31px;margin-left:-12px;margin-right:-12px}.academic-major{font-size:8px;letter-spacing:.6px}.academic-overline{font-size:8px;letter-spacing:1.2px}.academic-university{font-size:8px;letter-spacing:1.6px}}@media(max-width:360px){.academic-name{font-size:27px}.academic-details h3{font-size:29px}.academic-major{font-size:8px;letter-spacing:.2px}.portrait-overline{font-size:7px;letter-spacing:.6px}}@media(prefers-reduced-motion:reduce){.invitation-open .academic-details>*,.invitation-open .ledger-mark path,.invitation-open .academic-rule i{animation:none!important}}
html,body,img{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}img{-webkit-user-drag:none}.credit{display:block;margin-top:10px;padding:8px;font:9px/1.4 Arial,Helvetica,sans-serif;letter-spacing:.06em;color:inherit;text-decoration:none;opacity:.5}@font-face{font-family:"Great Vibes";src:url(assets/fonts/great-vibes.woff2) format("woff2");font-display:block}.peek-card>span{font-family:"Great Vibes",cursive}