:root{--bg-cream: #FAF7F0;--navy-primary: #0A1128;--navy-light: #1C2541;--gold-base: #C5A880;--gold-dark: #A57C1E;--gold-bright: #D4AF37;--gold-light: #F4EAD4;--white: #FFFFFF;--text-dark: #1E293B;--text-muted: #64748B;--font-display: "Cinzel Decorative", Georgia, serif;--font-serif: "Cormorant Garamond", serif;--font-sans: "Montserrat", sans-serif;--card-shadow: 0 20px 50px rgba(10, 17, 40, .15);--transition-smooth: all .5s cubic-bezier(.25, .8, .25, 1)}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;min-height:100vh;background-color:var(--bg-cream);color:var(--navy-primary);font-family:var(--font-serif);overflow-x:hidden;scroll-behavior:smooth}#bg-canvas{position:fixed;top:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none}.audio-control-wrapper{position:fixed;top:30px;right:30px;z-index:100}.music-toggle{width:55px;height:55px;border-radius:50%;background:linear-gradient(135deg,var(--navy-primary),var(--navy-light));border:2px solid var(--gold-bright);box-shadow:0 10px 20px #0003,inset 0 0 10px #d4af3733;cursor:pointer;display:flex;align-items:center;justify-content:center;outline:none;transition:var(--transition-smooth);position:relative}.music-toggle:hover{transform:scale(1.1);box-shadow:0 12px 24px #d4af374d,inset 0 0 15px #d4af3766}.music-toggle i{color:var(--gold-bright);font-size:20px;transition:var(--transition-smooth)}.music-toggle.playing{animation:spin 4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.audio-tooltip{position:absolute;right:70px;top:50%;transform:translateY(-50%) translate(10px);background:var(--navy-primary);color:var(--gold-light);font-family:var(--font-sans);font-size:11px;letter-spacing:1px;padding:8px 14px;border-radius:4px;border:1px solid var(--gold-base);opacity:0;pointer-events:none;transition:var(--transition-smooth);white-space:nowrap}.audio-control-wrapper:hover .audio-tooltip{opacity:1;transform:translateY(-50%) translate(0)}.envelope-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;align-items:center;justify-content:center;z-index:50;background:linear-gradient(to bottom,#faf7f0,#efece3);transition:opacity 1s cubic-bezier(.77,0,.175,1),visibility 1s}.envelope-container.opened{opacity:0;visibility:hidden;pointer-events:none}.envelope{position:relative;width:480px;height:340px;background:#111b35;box-shadow:0 30px 60px #0000004d;border-radius:8px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .8s cubic-bezier(.175,.885,.32,1.275);border:2px solid var(--gold-bright);overflow:hidden}.envelope:hover{transform:translateY(-10px) scale(1.02);box-shadow:0 40px 80px #d4af3726}.envelope:before{content:"";position:absolute;inset:0;border:1px solid rgba(212,175,55,.2);margin:10px;pointer-events:none}.wax-seal{width:90px;height:90px;background:radial-gradient(circle,#d4af37,#a57c1e 70%,#70520c);border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 20px #0006,inset 0 2px 4px #fff6;border:2px solid #8B6914;cursor:pointer;z-index:10;transition:transform .5s cubic-bezier(.175,.885,.32,1.275);position:relative}.wax-seal:after{content:"V";font-family:var(--font-display);color:#faf7f0;font-size:32px;font-weight:700;text-shadow:0 2px 4px rgba(0,0,0,.5)}.wax-seal:hover{transform:scale(1.15) rotate(5deg)}.envelope-text{color:var(--gold-light);font-family:var(--font-sans);font-size:10px;letter-spacing:2px;margin-top:20px;padding:0 30px;text-transform:uppercase;font-weight:300;text-align:center;line-height:1.8;opacity:.9}.envelope-invitee{color:var(--white);font-family:var(--font-serif);font-size:26px;letter-spacing:1px;margin-bottom:20px;font-weight:400;font-style:italic}.envelope-container.opening .wax-seal{transform:scale(3) rotate(20deg);opacity:0;transition:var(--transition-smooth)}.envelope-container.opening .envelope{transform:translateY(200px) scale(.6);opacity:0;transition:var(--transition-smooth)}.main-wrapper{position:relative;z-index:10;max-width:900px;margin:0 auto;padding:80px 20px;display:flex;flex-direction:column;align-items:center;gap:50px;opacity:0;transform:translateY(30px);transition:opacity 1.2s ease-out,transform 1.2s cubic-bezier(.25,.8,.25,1)}.main-wrapper.revealed{opacity:1;transform:translateY(0)}.invitation-card{background-color:var(--navy-primary);color:var(--white);width:100%;max-width:820px;padding:70px 60px;border-radius:12px;box-shadow:var(--card-shadow);border:3px double var(--gold-bright);position:relative;text-align:center;overflow:hidden;background-image:radial-gradient(circle at center,#142144,#0a1128)}.card-corner{position:absolute;width:60px;height:60px;stroke:var(--gold-bright);fill:none;stroke-width:1.5;opacity:.85;pointer-events:none}.corner-tl{top:20px;left:20px}.corner-tr{top:20px;right:20px;transform:rotate(90deg)}.corner-bl{bottom:20px;left:20px;transform:rotate(-90deg)}.corner-br{bottom:20px;right:20px;transform:rotate(180deg)}.inner-border-line{position:absolute;inset:25px;border:1px solid rgba(212,175,55,.25);pointer-events:none}.card-honor{font-family:var(--font-sans);font-size:11px;font-weight:300;letter-spacing:5px;color:var(--gold-base);text-transform:uppercase;margin-bottom:25px;animation:fadeInDown 1.2s ease}.card-title{font-family:var(--font-display);font-size:20px;letter-spacing:4px;font-weight:400;color:var(--white);margin-bottom:15px;line-height:1.4}.retiree-name{font-family:var(--font-display);font-size:46px;font-weight:700;color:var(--gold-bright);margin:25px 0;text-shadow:0 4px 10px rgba(0,0,0,.4);letter-spacing:2px;position:relative;display:inline-block}.retiree-name:after{content:"";position:absolute;left:15%;bottom:-8px;width:70%;height:1px;background:linear-gradient(to right,transparent,var(--gold-bright),transparent)}.tribute-text{font-size:20px;line-height:1.8;font-weight:300;color:var(--gold-light);max-width:600px;margin:30px auto 45px;font-style:italic}.ornate-divider{display:flex;align-items:center;justify-content:center;gap:15px;margin:40px 0}.ornate-divider .line{height:1px;width:80px;background:linear-gradient(to right,transparent,var(--gold-base),transparent)}.ornate-divider .line.line-rev{background:linear-gradient(to left,transparent,var(--gold-base),transparent)}.ornate-divider i{color:var(--gold-bright);font-size:14px}.details-container{display:grid;grid-template-columns:1fr 1fr;gap:30px;margin-top:20px;text-align:left}.detail-item{padding:25px;background:#1c254166;border:1px solid rgba(212,175,55,.15);border-radius:8px;transition:var(--transition-smooth)}.detail-item:hover{transform:translateY(-5px);border-color:var(--gold-bright);background:#1c254199}.detail-icon{color:var(--gold-bright);font-size:22px;margin-bottom:12px}.detail-label{font-family:var(--font-sans);font-size:10px;font-weight:500;letter-spacing:2px;text-transform:uppercase;color:var(--gold-base);margin-bottom:8px}.detail-value{font-size:19px;line-height:1.5;color:var(--white)}.detail-value strong{color:var(--gold-light);font-weight:600}.btn-maps{display:inline-flex;align-items:center;gap:10px;margin-top:15px;padding:10px 18px;background:transparent;border:1px solid var(--gold-base);color:var(--gold-light);text-decoration:none;font-family:var(--font-sans);font-size:11px;font-weight:500;letter-spacing:2px;text-transform:uppercase;border-radius:4px;transition:var(--transition-smooth);cursor:pointer}.btn-maps:hover{background:var(--gold-bright);color:var(--navy-primary);border-color:var(--gold-bright);box-shadow:0 0 15px #d4af374d}.countdown-wrapper{width:100%;max-width:820px;text-align:center;margin:20px 0}.countdown-title{font-family:var(--font-display);font-size:16px;letter-spacing:4px;color:var(--navy-primary);margin-bottom:35px;text-transform:uppercase;font-weight:700;position:relative;display:inline-block;padding-bottom:12px}.countdown-title:after{content:"";position:absolute;bottom:0;left:20%;width:60%;height:1px;background:linear-gradient(to right,transparent,var(--gold-base),transparent)}.countdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px}.countdown-card{background:#0d152d;padding:30px 15px;border-radius:8px;box-shadow:0 15px 35px #0a112840;border:1.5px solid var(--gold-base);transition:var(--transition-smooth);position:relative;overflow:hidden;background-image:radial-gradient(circle at center,#142144,#0d152d)}.countdown-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(to right,var(--gold-base),var(--gold-bright),var(--gold-dark));opacity:.9}.countdown-card:after{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:radial-gradient(circle,rgba(212,175,55,.04) 0%,transparent 60%);pointer-events:none;transition:var(--transition-smooth)}.countdown-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 20px 40px #d4af3740;border-color:var(--gold-bright)}.countdown-card:hover:after{background:radial-gradient(circle,rgba(212,175,55,.08) 0%,transparent 60%)}.countdown-val{font-family:var(--font-display);font-size:42px;font-weight:700;background:linear-gradient(135deg,#ffeaa5,#d4af37,#a57c1e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;line-height:1.1;margin-bottom:8px;letter-spacing:1px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));display:inline-block}.countdown-lbl{font-family:var(--font-sans);font-size:10px;letter-spacing:3px;text-transform:uppercase;color:#c5a880;font-weight:500;opacity:.9}.action-bar{margin-top:10px;display:flex;gap:20px;z-index:10}.btn-action{display:inline-flex;align-items:center;gap:10px;padding:15px 30px;background:var(--white);color:var(--navy-primary);border:1px solid var(--gold-base);font-family:var(--font-sans);font-size:11px;font-weight:600;letter-spacing:2px;text-transform:uppercase;border-radius:30px;box-shadow:0 4px 15px #0000000d;cursor:pointer;transition:var(--transition-smooth);outline:none}.btn-action:hover{transform:translateY(-3px);box-shadow:0 8px 25px #0a11281f;border-color:var(--navy-primary)}.btn-action-primary{background:linear-gradient(135deg,var(--navy-primary),var(--navy-light));color:var(--gold-light);border:1px solid var(--gold-bright)}.btn-action-primary:hover{background:var(--navy-light);box-shadow:0 8px 25px #d4af3740;border-color:var(--gold-bright)}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media(max-width:900px){.invitation-card{padding:50px 30px}.retiree-name{font-size:36px}.details-container{grid-template-columns:1fr;gap:20px}.detail-item{text-align:center;display:flex;flex-direction:column;align-items:center}}@media(max-width:600px){.envelope{width:90%;height:280px}.main-wrapper{padding:40px 12px;gap:30px;width:100%;box-sizing:border-box}.invitation-card{padding:45px 22px;width:100%;box-sizing:border-box}.inner-border-line{inset:12px}.card-corner{width:35px;height:35px}.corner-tl{top:8px;left:8px}.corner-tr{top:8px;right:8px}.corner-bl{bottom:8px;left:8px}.corner-br{bottom:8px;right:8px}.retiree-name{font-size:28px}.tribute-text{font-size:17px;margin:20px auto 30px}.countdown-grid{grid-template-columns:repeat(2,1fr);gap:15px}.countdown-val{font-size:30px}.audio-control-wrapper{top:15px;right:15px}.music-toggle{width:45px;height:45px}.music-toggle i{font-size:16px}.action-bar{flex-direction:column;width:100%}.btn-action{width:100%;justify-content:center}}@media print{*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}@page{size:A4 portrait;margin:0}body,html{background:#faf7f0!important;color:#0a1128!important;overflow:hidden!important;height:100%!important;margin:0!important;padding:0!important;font-size:12pt!important}#bg-canvas,.audio-control-wrapper,.envelope-container,.countdown-wrapper,.action-bar,.btn-maps{display:none!important}.main-wrapper{opacity:1!important;transform:none!important;padding:0!important;margin:0!important;width:100vw!important;height:100vh!important;max-width:100%!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;box-sizing:border-box!important}.invitation-card{background-color:#0a1128!important;background-image:radial-gradient(circle at center,#142144,#0a1128)!important;color:#fff!important;border:4px double #D4AF37!important;border-radius:8px!important;padding:50pt 40pt!important;margin:0 auto!important;width:90%!important;max-width:540pt!important;box-shadow:0 20px 50px #0a11284d!important;display:block!important;position:relative!important;page-break-after:avoid;page-break-inside:avoid}.card-corner{display:block!important;stroke:#d4af37!important;opacity:.95!important}.inner-border-line{display:block!important;border:1px solid rgba(212,175,55,.4)!important}.card-honor{color:#c5a880!important;font-size:10pt!important;letter-spacing:4pt!important;margin-bottom:20pt!important}.card-title{color:#fff!important;font-size:15pt!important;letter-spacing:3pt!important;margin-bottom:15pt!important;line-height:1.4!important}.retiree-name{color:#d4af37!important;font-size:34pt!important;margin:20pt 0!important;border-bottom:1pt solid #D4AF37!important;padding-bottom:5pt!important;display:inline-block!important}.retiree-name:after{display:none!important}.tribute-text{color:#faf7f0!important;font-size:13pt!important;line-height:1.8!important;max-width:85%!important;margin:20pt auto!important}.ornate-divider{margin:20pt 0!important;display:flex!important;align-items:center!important;justify-content:center!important;gap:15pt!important}.ornate-divider .line{display:block!important;width:80pt!important;background:#d4af37!important;height:1px!important}.ornate-divider i{display:inline-block!important;color:#d4af37!important;font-size:12pt!important}.details-container{display:grid!important;grid-template-columns:1fr 1fr!important;gap:20pt!important;margin-top:25pt!important;text-align:center!important}.detail-item{display:flex!important;flex-direction:column!important;align-items:center!important;padding:15pt!important;background:#1c254166!important;border:1px solid rgba(212,175,55,.2)!important;border-radius:6px!important}.detail-icon{display:block!important;color:#d4af37!important;font-size:18pt!important;margin-bottom:8pt!important}.detail-label{font-size:8pt!important;color:#c5a880!important;margin-bottom:4pt!important;letter-spacing:2px!important}.detail-value{font-size:11pt!important;color:#fff!important;line-height:1.4!important}}
