:root{--bg-deep-navy:#060d1f;--bg-midnight:#0b152d;--bg-card:#101d3abf;--bg-card-hover:#16274ed9;--paper-cream:#fffdf9;--paper-parchment:#f9f5eb;--paper-border:#e6dac3;--paper-text-primary:#1e2433;--paper-text-secondary:#576074;--paper-gold-border:#c8a356;--gold-primary:#d4af37;--gold-light:#f6e6b4;--gold-bright:gold;--gold-dark:#997a21;--gold-gradient:linear-gradient(135deg, #f7e09e 0%, #d4af37 50%, #997a21 100%);--gold-metallic:linear-gradient(120deg, #d4af37 0%, #fff2be 30%, #d4af37 60%, #a48123 100%);--gold-glow:0 0 24px #d4af3773;--envelope-navy:#0f1d3a;--envelope-navy-dark:#091225;--envelope-flap:#132448;--wax-seal-gold:#c59b27;--wax-seal-red:#a31d1d;--text-pure:#fff;--text-muted:#94a3b8;--text-light:#cbd5e1;--text-gold:#f3df9b;--font-serif:"Playfair Display", Georgia, serif;--font-garamond:"Cormorant Garamond", Georgia, serif;--font-script:"Alex Brush", cursive;--font-sans:"Montserrat", "Plus Jakarta Sans", system-ui, sans-serif;--glass-bg:#0f172aa6;--glass-border:#d4af3738;--glass-blur:blur(16px);--shadow-luxury:0 20px 40px -15px #0009, 0 0 25px #d4af3726;--shadow-paper:0 25px 50px -12px #00000059, 0 0 0 1px #d4af3733;--transition-smooth:all .35s cubic-bezier(.16, 1, .3, 1);--transition-spring:all .5s cubic-bezier(.34, 1.56, .64, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}body{font-family:var(--font-sans);background-color:var(--bg-deep-navy);color:var(--text-pure);background-image:radial-gradient(circle at 15% 20%,#1e3a8a59 0%,#0000 45%),radial-gradient(circle at 85% 70%,#d4af371f 0%,#0000 50%),radial-gradient(circle,#0d1b3ecc 0%,#060d1f 100%);background-attachment:fixed;min-height:100vh;line-height:1.6;overflow-x:hidden}::-webkit-scrollbar{width:9px}::-webkit-scrollbar-track{background:var(--bg-deep-navy)}::-webkit-scrollbar-thumb{border:2px solid var(--bg-deep-navy);background:linear-gradient(#d4af37,#1e3a8a);border-radius:999px}::-webkit-scrollbar-thumb:hover{background:var(--gold-light)}.text-gold-gradient{background:var(--gold-metallic);-webkit-text-fill-color:transparent;-webkit-background-clip:text;display:inline-block}.text-gold-static{color:var(--gold-primary)}.font-serif{font-family:var(--font-serif)}.font-garamond{font-family:var(--font-garamond)}.font-script{font-family:var(--font-script)}.glass-panel{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-luxury);border-radius:20px}.btn-gold{background:var(--gold-gradient);color:#0d1b2a;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-spring);border:none;border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 26px;font-size:.95rem;text-decoration:none;display:inline-flex;box-shadow:0 4px 18px #d4af3759}.btn-gold:hover{transform:translateY(-2px)scale(1.03);box-shadow:0 8px 24px #d4af378c}.btn-gold:active{transform:translateY(1px)scale(.98)}.btn-outline-gold{color:var(--gold-light);border:1px solid var(--gold-primary);cursor:pointer;transition:var(--transition-smooth);background:0 0;border-radius:999px;align-items:center;gap:8px;padding:10px 22px;font-size:.95rem;font-weight:500;text-decoration:none;display:inline-flex}.btn-outline-gold:hover{border-color:var(--gold-light);color:#fff;background:#d4af3726;transform:translateY(-2px)}.floating-particle{pointer-events:none;background:radial-gradient(circle,#ffe696cc 0%,#d4af3700 70%);border-radius:50%;animation:8s ease-in-out infinite floatParticle;position:absolute}@keyframes floatParticle{0%,to{opacity:.3;transform:translateY(0)scale(1)}50%{opacity:.75;transform:translateY(-30px)scale(1.25)}}@keyframes pulseGlow{0%,to{box-shadow:0 0 15px #d4af3766}50%{box-shadow:0 0 35px #d4af37cc,0 0 60px #d4af374d}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer-text{background:linear-gradient(90deg,#d4af37 0%,#fff7d6 50%,#d4af37 100%) 0 0/200%;-webkit-text-fill-color:transparent;-webkit-background-clip:text;animation:4s linear infinite shimmer}.container{width:100%;max-width:1160px;margin:0 auto;padding:0 20px}@media (width<=768px){.container{padding:0 16px}}.app-root{width:100%;min-height:100vh;position:relative;overflow-x:hidden}.stardust-container{pointer-events:none;z-index:1;position:fixed;inset:0;overflow:hidden}.stardust-particle{background:radial-gradient(circle,#ffe6a0e6 0%,#d4af3733 60%,#0000 100%);border-radius:50%;animation:linear infinite floatDust;position:absolute}@keyframes floatDust{0%{opacity:0;transform:translateY(105vh)translate(0)scale(.6)}15%{opacity:.8}85%{opacity:.8}to{opacity:0;transform:translateY(-10vh)translate(30px)scale(1.1)}}.revealed-content-container{z-index:5;transition:opacity .8s ease-in-out,transform .8s ease-in-out;position:relative}.revealed-content-container.hidden{opacity:0;pointer-events:none;max-height:0;overflow:hidden}.revealed-content-container.visible{opacity:1;pointer-events:auto;max-height:none}.envelope-wrapper{perspective:1500px;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:92vh;padding:40px 20px;display:flex;position:relative;overflow:hidden}.envelope-aurora{filter:blur(40px);pointer-events:none;z-index:0;background:radial-gradient(circle,#d4af3726 0%,#1e3a8a33 40%,#0000 70%);width:600px;height:600px;animation:6s ease-in-out infinite alternate pulseAurora;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}@keyframes pulseAurora{0%{opacity:.5;transform:translate(-50%,-50%)scale(.9)}to{opacity:.85;transform:translate(-50%,-50%)scale(1.15)}}.envelope-header-intro{text-align:center;z-index:2;margin-bottom:28px;animation:1s ease-out fadeInDown}.envelope-subtitle{font-family:var(--font-sans);text-transform:uppercase;letter-spacing:3px;color:var(--gold-light);opacity:.9;margin-bottom:6px;font-size:.85rem}.envelope-main-title{font-family:var(--font-serif);color:#fff;text-shadow:0 4px 20px #0009;font-size:clamp(2rem,5vw,3.2rem);font-weight:700;line-height:1.2}.envelope-main-title span{font-family:var(--font-script);color:var(--gold-primary);margin-top:-6px;font-size:clamp(2.4rem,6vw,3.8rem);font-weight:400;display:block}.envelope-3d-box{cursor:pointer;z-index:2;width:100%;max-width:540px;height:350px;transform-style:preserve-3d;background:linear-gradient(145deg,#101c38,#0a1327);border-radius:14px;transition:transform .4s cubic-bezier(.16,1,.3,1),box-shadow .4s;position:relative;box-shadow:0 25px 50px -12px #000000bf,0 0 0 1px #d4af374d,0 0 40px #d4af371f}.envelope-3d-box:hover:not(.is-open){transform:translateY(-8px)scale(1.015);box-shadow:0 35px 65px -15px #000000d9,0 0 0 1px #d4af3780,0 0 50px #d4af3740}.envelope-filigree{pointer-events:none;z-index:5;opacity:.75;width:32px;height:32px;position:absolute}.filigree-tl{border-top:2px solid var(--gold-primary);border-left:2px solid var(--gold-primary);top:10px;left:10px}.filigree-tr{border-top:2px solid var(--gold-primary);border-right:2px solid var(--gold-primary);top:10px;right:10px}.filigree-bl{border-bottom:2px solid var(--gold-primary);border-left:2px solid var(--gold-primary);bottom:10px;left:10px}.filigree-br{border-bottom:2px solid var(--gold-primary);border-right:2px solid var(--gold-primary);bottom:10px;right:10px}.envelope-fold-left{z-index:3;pointer-events:none;border:175px solid #0000;border-left:270px solid #0f1b36f2;border-right-width:0;width:0;height:0;position:absolute;bottom:0;left:0}.envelope-fold-right{z-index:3;pointer-events:none;border:175px solid #0000;border-left-width:0;border-right:270px solid #0c162df2;width:0;height:0;position:absolute;bottom:0;right:0}.envelope-fold-bottom{z-index:4;pointer-events:none;border:270px solid #0000;border-top-width:0;border-bottom:185px solid #122040fa;height:0;position:absolute;bottom:0;left:0;right:0}.envelope-recipient-badge{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);text-align:center;z-index:6;background:#080f1ed9;border:1px solid #d4af3773;border-radius:8px;max-width:85%;padding:10px 24px;position:absolute;bottom:28px;left:50%;transform:translate(-50%);box-shadow:0 10px 25px #00000080}.envelope-recipient-badge .label-to{letter-spacing:2px;text-transform:uppercase;color:var(--gold-light);margin-bottom:2px;font-size:.75rem;display:block}.envelope-recipient-badge .guest-name{font-family:var(--font-serif);color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:1.15rem;font-weight:600;overflow:hidden}.envelope-flap{transform-origin:top;z-index:5;filter:drop-shadow(0 6px 12px #00000073);border:270px solid #0000;border-top:185px solid #172a52;border-bottom-width:0;width:0;height:0;transition:transform .85s cubic-bezier(.4,0,.2,1),z-index .2s .4s;position:absolute;top:0;left:0}.envelope-flap.is-open{z-index:1;transform:rotateX(180deg)}.wax-seal{z-index:7;cursor:pointer;background:radial-gradient(circle at 35% 35%,#ffd768 0%,#d4af37 40%,#997a21 85%,#664f10 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:78px;height:78px;transition:all .3s cubic-bezier(.34,1.56,.64,1);animation:2.5s ease-in-out infinite sealPulse;display:flex;position:absolute;top:145px;left:50%;transform:translate(-50%,-50%);box-shadow:0 10px 22px #0009,0 0 0 3px #d4af3766,inset 0 2px 4px #fff9,inset 0 -3px 6px #00000080}.wax-seal:hover{transform:translate(-50%,-50%)scale(1.12);box-shadow:0 14px 28px #000000b3,0 0 25px #d4af37b3,inset 0 2px 4px #fffc}@keyframes sealPulse{0%,to{box-shadow:0 10px 22px #0009,0 0 15px #d4af3759}50%{box-shadow:0 12px 28px #000000b3,0 0 32px #d4af37bf}}.wax-seal-icon{filter:drop-shadow(0 2px 3px #0006);font-size:26px;line-height:1}.wax-seal-text{font-family:var(--font-sans);letter-spacing:1.5px;color:#3d2b05;text-transform:uppercase;margin-top:2px;font-size:.55rem;font-weight:800}.wax-seal.broken{opacity:0;pointer-events:none;transition:all .5s ease-out;transform:translate(-50%,-50%)scale(.6)}.letter-inside-peek{background:var(--paper-cream);border:1px solid var(--paper-border);z-index:2;text-align:center;border-radius:8px 8px 4px 4px;flex-direction:column;align-items:center;height:280px;padding:24px;transition:transform .85s cubic-bezier(.16,1,.3,1);display:flex;position:absolute;top:15px;left:25px;right:25px;overflow:hidden;box-shadow:0 5px 15px #00000040}.envelope-3d-box.is-open .letter-inside-peek{transform:translateY(-90px)}.letter-peek-crest{border:1px solid var(--gold-primary);background:#fdfaf0;border-radius:50%;justify-content:center;align-items:center;width:44px;height:44px;margin-bottom:12px;font-size:20px;display:flex}.letter-peek-title{font-family:var(--font-serif);color:#1e2433;letter-spacing:1px;font-size:1.1rem;font-weight:700}.letter-peek-name{font-family:var(--font-script);color:#997a21;margin-top:2px;font-size:1.7rem}.envelope-cta{text-align:center;z-index:2;margin-top:32px}.envelope-cta-btn{background:var(--gold-gradient);color:#0b152d;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-spring);border:none;border-radius:999px;align-items:center;gap:10px;padding:14px 34px;font-size:1.05rem;font-weight:700;display:inline-flex;box-shadow:0 10px 25px #d4af3766}.envelope-cta-btn:hover{transform:translateY(-3px)scale(1.04);box-shadow:0 15px 35px #d4af3799}.envelope-hint{color:var(--text-muted);justify-content:center;align-items:center;gap:6px;margin-top:10px;font-size:.85rem;display:flex}@media (width<=600px){.envelope-3d-box{height:290px}.envelope-fold-left{border-width:145px 0 145px 50vw}.envelope-fold-right{border-width:145px 50vw 145px 0}.envelope-fold-bottom{border-width:0 50vw 155px}.envelope-flap{border-width:155px 50vw 0}.wax-seal{width:68px;height:68px;top:120px}.envelope-recipient-badge{padding:8px 18px;bottom:18px}.envelope-recipient-badge .guest-name{font-size:1rem}}.letter-section{z-index:10;justify-content:center;padding:60px 20px 80px;display:flex;position:relative}.letter-scroll-anchor{position:absolute;top:-40px}.letter-parchment-sheet{background:var(--paper-cream);width:100%;max-width:860px;color:var(--paper-text-primary);box-shadow:0 25px 60px -15px #000000b3, 0 0 0 1px var(--paper-border), 0 0 40px #d4af3726;border-radius:20px;padding:60px 50px;animation:.8s cubic-bezier(.16,1,.3,1) forwards letterUnfold;position:relative}@keyframes letterUnfold{0%{opacity:0;transform:translateY(40px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.letter-inner-border{pointer-events:none;border:1.5px solid #c8a35673;border-radius:12px;position:absolute;inset:18px}.letter-corner-decor{pointer-events:none;border-style:solid;border-color:#c8a356;width:36px;height:36px;position:absolute}.corner-tl{border-width:2px 0 0 2px;top:24px;left:24px}.corner-tr{border-width:2px 2px 0 0;top:24px;right:24px}.corner-bl{border-width:0 0 2px 2px;bottom:24px;left:24px}.corner-br{border-width:0 2px 2px 0;bottom:24px;right:24px}.letter-crest-header{text-align:center;margin-bottom:35px}.letter-wreath-icon{border:2px solid var(--paper-gold-border);background:radial-gradient(circle,#fcf6e7 0%,#faecd0 100%);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto 12px;font-size:32px;display:flex;box-shadow:0 4px 15px #c8a35640}.letter-top-sub{font-family:var(--font-sans);letter-spacing:3px;text-transform:uppercase;color:#997a21;font-size:.85rem;font-weight:600}.letter-formal-heading{font-family:var(--font-serif);color:#141c2e;letter-spacing:1px;margin:6px 0 10px;font-size:clamp(1.8rem,4vw,2.6rem);font-weight:700}.letter-divider-gold{justify-content:center;align-items:center;gap:14px;max-width:260px;margin:16px auto 0;display:flex}.letter-divider-gold:before,.letter-divider-gold:after{content:"";background:linear-gradient(90deg,#0000,#c8a356,#0000);flex:1;height:1px}.letter-divider-gold span{color:#c8a356;font-size:14px}.graduate-spotlight-card{background:linear-gradient(135deg,#fdfaf3 0%,#f7f1e1 100%);border:1px solid #c8a35659;border-radius:16px;align-items:center;gap:32px;margin-bottom:35px;padding:28px;display:flex;box-shadow:0 8px 25px #0000000a}.graduate-avatar-frame{flex-shrink:0;position:relative}.graduate-photo{object-fit:cover;border:3px solid #fff;border-radius:12px;width:140px;height:180px;box-shadow:0 10px 25px #00000026,0 0 0 1px #c8a356}.graduate-honor-tag{background:var(--gold-gradient);color:#0b152d;white-space:nowrap;border-radius:999px;padding:4px 12px;font-size:.72rem;font-weight:700;position:absolute;bottom:-10px;left:50%;transform:translate(-50%);box-shadow:0 4px 10px #0003}.graduate-details{flex:1}.graduate-label-sub{letter-spacing:2px;text-transform:uppercase;color:#997a21;font-size:.8rem;font-weight:600}.graduate-name{font-family:var(--font-serif);color:#0f172a;margin:2px 0 6px;font-size:clamp(1.6rem,3.2vw,2.2rem);font-weight:700}.graduate-degree-name{color:#1e3a8a;margin-bottom:4px;font-size:.95rem;font-weight:600}.graduate-univ{color:#64748b;margin-bottom:12px;font-size:.88rem}.graduate-quote-box{font-style:italic;font-family:var(--font-garamond);color:#475569;border-left:2px solid #c8a356;padding-left:14px;font-size:1.05rem;line-height:1.5;position:relative}.letter-invitation-body{font-family:var(--font-garamond);color:#2b3345;text-align:justify;margin-bottom:35px;font-size:1.22rem;line-height:1.8}.letter-greeting-recipient{font-family:var(--font-serif);color:#0f172a;margin-bottom:12px;font-size:1.35rem;font-weight:700}.letter-greeting-recipient span{color:#b48518}.event-core-highlight-box{color:#fff;background:#0f1c38;border:1px solid #d4af3766;border-radius:16px;margin-bottom:35px;padding:30px;position:relative;overflow:hidden;box-shadow:0 15px 35px #0b173159}.event-core-highlight-box:before{content:"";pointer-events:none;background:radial-gradient(circle,#d4af3726 0%,#0000 70%);width:250px;height:250px;position:absolute;top:-50%;right:-20%}.event-highlight-grid{grid-template-columns:1fr 1fr;gap:24px;display:grid}.event-highlight-card{align-items:flex-start;gap:16px;display:flex}.highlight-card-icon{width:48px;height:48px;color:var(--gold-light);background:#d4af3726;border:1px solid #d4af3759;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.highlight-card-info h4{letter-spacing:1.5px;text-transform:uppercase;color:var(--gold-light);margin-bottom:4px;font-size:.8rem}.highlight-card-info .main-text{font-family:var(--font-serif);color:#fff;margin-bottom:4px;font-size:1.18rem;font-weight:600;line-height:1.35}.highlight-card-info .sub-text{color:#94a3b8;font-size:.85rem}.countdown-container{text-align:center;margin:35px 0}.countdown-title{font-family:var(--font-sans);letter-spacing:2px;text-transform:uppercase;color:#64748b;margin-bottom:16px;font-size:.85rem;font-weight:600}.countdown-digits-row{flex-wrap:wrap;justify-content:center;gap:14px;display:flex}.countdown-box{text-align:center;background:#fff;border:1px solid #c8a35659;border-radius:12px;min-width:82px;padding:12px 10px;transition:transform .2s;box-shadow:0 4px 15px #0000000d}.countdown-box:hover{border-color:#c8a356;transform:translateY(-3px)}.countdown-number{font-family:var(--font-serif);color:#0f172a;font-size:2rem;font-weight:700;line-height:1.1;display:block}.countdown-unit{text-transform:uppercase;letter-spacing:1.5px;color:#997a21;margin-top:4px;font-size:.72rem;font-weight:600;display:block}.letter-actions-bar{border-top:1px dashed #c8a35666;flex-wrap:wrap;justify-content:center;align-items:center;gap:14px;margin-top:35px;padding-top:30px;display:flex}.btn-letter-primary{background:var(--gold-gradient);color:#0b152d;cursor:pointer;transition:var(--transition-spring);border:none;border-radius:999px;align-items:center;gap:8px;padding:12px 24px;font-weight:700;text-decoration:none;display:inline-flex;box-shadow:0 4px 15px #d4af3759}.btn-letter-primary:hover{transform:translateY(-2px);box-shadow:0 8px 25px #d4af3780}.btn-letter-outline{color:#1e293b;cursor:pointer;transition:var(--transition-smooth);background:#fff;border:1px solid #cbd5e1;border-radius:999px;align-items:center;gap:8px;padding:12px 22px;font-weight:600;text-decoration:none;display:inline-flex}.btn-letter-outline:hover{color:#997a21;background:#fdfaf2;border-color:#c8a356;transform:translateY(-2px)}@media (width<=768px){.letter-parchment-sheet{padding:40px 22px}.graduate-spotlight-card{text-align:center;flex-direction:column;gap:20px}.graduate-quote-box{border-top:2px solid #c8a356;border-left:none;padding-top:10px;padding-left:0}.event-highlight-grid{grid-template-columns:1fr;gap:18px}.countdown-digits-row{gap:8px}.countdown-box{min-width:68px;padding:10px 6px}.countdown-number{font-size:1.6rem}}.location-section{padding:60px 20px;position:relative}.location-grid-layout{grid-template-columns:1fr 1fr;align-items:stretch;gap:32px;display:grid}.location-info-panel{background:var(--bg-card);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-luxury);border-radius:20px;flex-direction:column;justify-content:space-between;padding:38px;display:flex}.location-badge-top{letter-spacing:2px;text-transform:uppercase;color:var(--gold-light);align-items:center;gap:6px;margin-bottom:12px;font-size:.8rem;font-weight:600;display:inline-flex}.location-venue-name{font-family:var(--font-serif);color:#fff;margin-bottom:12px;font-size:clamp(1.6rem,3vw,2.2rem);font-weight:700;line-height:1.25}.location-address-row{color:var(--text-light);align-items:flex-start;gap:12px;margin-bottom:24px;font-size:1rem;display:flex}.location-address-row svg{color:var(--gold-primary);flex-shrink:0;margin-top:3px}.location-tips-grid{grid-template-columns:1fr;gap:14px;margin-bottom:28px;display:grid}.location-tip-card{background:#080f1e99;border:1px solid #d4af3733;border-radius:12px;align-items:flex-start;gap:12px;padding:16px;display:flex}.location-tip-card svg{color:var(--gold-light);flex-shrink:0;margin-top:2px}.tip-title{color:var(--gold-light);text-transform:uppercase;letter-spacing:1px;margin-bottom:3px;font-size:.85rem;font-weight:700}.tip-desc{color:var(--text-muted);font-size:.88rem}.location-buttons-group{flex-wrap:wrap;gap:12px;display:flex}.location-map-frame{border:1px solid var(--glass-border);min-height:420px;box-shadow:var(--shadow-luxury);background:#091225;border-radius:20px;position:relative;overflow:hidden}.location-map-frame iframe{filter:contrast(1.05)saturate(1.1);border:none;width:100%;height:100%;min-height:420px}.map-floating-overlay-tag{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:#fff;pointer-events:none;background:#0b152de0;border:1px solid #d4af3766;border-radius:999px;align-items:center;gap:6px;padding:8px 16px;font-size:.8rem;display:flex;position:absolute;top:16px;right:16px;box-shadow:0 4px 15px #0006}@media (width<=900px){.location-grid-layout{grid-template-columns:1fr}.location-info-panel{padding:26px}.location-map-frame,.location-map-frame iframe{min-height:320px}}.guestbook-section{padding:70px 20px;position:relative}.guestbook-layout-grid{grid-template-columns:400px 1fr;align-items:flex-start;gap:36px;display:grid}.wish-form-card{background:var(--bg-card);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-luxury);border-radius:20px;padding:30px;position:sticky;top:100px}.wish-form-title{font-family:var(--font-serif);color:#fff;align-items:center;gap:10px;margin-bottom:6px;font-size:1.4rem;font-weight:700;display:flex}.wish-form-sub{color:var(--text-muted);margin-bottom:22px;font-size:.88rem}.wish-input-group{margin-bottom:16px}.wish-label{color:var(--gold-light);text-transform:uppercase;letter-spacing:1px;margin-bottom:6px;font-size:.82rem;font-weight:600;display:block}.wish-input,.wish-select,.wish-textarea{color:#fff;width:100%;font-family:var(--font-sans);background:#080f1ebf;border:1px solid #d4af3740;border-radius:10px;outline:none;padding:12px 14px;font-size:.95rem;transition:all .2s}.wish-input:focus,.wish-select:focus,.wish-textarea:focus{border-color:var(--gold-primary);background:#0b152de6;box-shadow:0 0 12px #d4af374d}.wish-textarea{resize:vertical;min-height:100px;line-height:1.5}.wish-quick-emojis{flex-wrap:wrap;gap:8px;margin-bottom:20px;display:flex}.quick-emoji-btn{cursor:pointer;background:#ffffff0f;border:1px solid #ffffff1f;border-radius:8px;padding:4px 10px;font-size:1.1rem;transition:transform .15s,background .15s}.quick-emoji-btn:hover{border-color:var(--gold-primary);background:#d4af3733;transform:scale(1.2)}.btn-send-wish{background:var(--gold-gradient);color:#0b152d;width:100%;font-family:var(--font-sans);cursor:pointer;transition:var(--transition-spring);border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:14px;font-size:1rem;font-weight:700;display:flex;box-shadow:0 8px 20px #d4af3759}.btn-send-wish:hover{transform:translateY(-2px);box-shadow:0 12px 28px #d4af378c}.wishes-wall-container{flex-direction:column;gap:18px;display:flex}.wish-card-item{background:var(--bg-card);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:var(--shadow-luxury);border-radius:16px;padding:22px;transition:transform .25s,border-color .25s;animation:.4s ease-out slideInWish}@keyframes slideInWish{0%{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}.wish-card-item:hover{border-color:#d4af3773;transform:translate(4px)}.wish-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.wish-author-info{align-items:center;gap:12px;display:flex}.wish-avatar-circle{color:#fff;border:1px solid #fff3;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:1.1rem;font-weight:700;display:flex}.wish-author-name{font-family:var(--font-serif);color:#fff;font-size:1.05rem;font-weight:600}.wish-relation-tag{color:var(--gold-light);background:#d4af371f;border:1px solid #d4af3740;border-radius:6px;margin-left:6px;padding:2px 8px;font-size:.72rem;font-weight:600;display:inline-block}.wish-timestamp{color:var(--text-muted);font-size:.78rem}.wish-card-body{font-family:var(--font-sans);color:var(--text-light);white-space:pre-line;font-size:.95rem;line-height:1.6}@media (width<=900px){.guestbook-layout-grid{grid-template-columns:1fr}.wish-form-card{position:static}}.floating-nav-bar{z-index:1000;-webkit-backdrop-filter:blur(16px);background:#091124d9;border:1px solid #d4af3759;border-radius:999px;align-items:center;gap:12px;max-width:95vw;padding:8px 16px;transition:all .3s;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080,0 0 20px #d4af3726}.nav-links-list{align-items:center;gap:6px;list-style:none;display:flex}.nav-link-btn{color:var(--text-light);font-family:var(--font-sans);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:999px;padding:6px 14px;font-size:.85rem;font-weight:500;transition:all .2s}.nav-link-btn:hover{color:#fff;background:#d4af3726}.nav-divider-v{background:#d4af374d;width:1px;height:20px}.audio-toggle-btn{color:var(--gold-light);cursor:pointer;background:#d4af3726;border:1px solid #d4af3766;border-radius:999px;align-items:center;gap:8px;padding:6px 14px;font-size:.82rem;font-weight:600;transition:all .25s;display:flex}.audio-toggle-btn:hover{background:#d4af374d;transform:scale(1.04)}.audio-equalizer{align-items:flex-end;gap:2px;height:14px;display:flex}.audio-bar{background:var(--gold-bright);border-radius:2px;width:3px;animation:.8s ease-in-out infinite alternate equalizerBounce}.audio-bar:first-child{height:6px;animation-delay:.1s}.audio-bar:nth-child(2){height:14px;animation-delay:.3s}.audio-bar:nth-child(3){height:8px;animation-delay:.2s}@keyframes equalizerBounce{0%{height:3px}to{height:14px}}.envelope-reseal-btn{color:#fff;cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #fff3;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:.8rem;font-weight:500;transition:all .2s;display:flex}.envelope-reseal-btn:hover{border-color:var(--gold-primary);color:var(--gold-light);background:#ffffff2e}@media (width<=820px){.nav-links-list,.nav-divider-v{display:none}.floating-nav-bar{top:auto;bottom:20px}}.graduation-footer{text-align:center;color:var(--text-muted);background:#040916;border-top:1px solid #d4af3733;padding:60px 20px 40px;position:relative}.footer-crest{border:1px solid var(--gold-primary);background:#d4af3714;border-radius:50%;justify-content:center;align-items:center;width:58px;height:58px;margin:0 auto 16px;font-size:26px;display:flex}.footer-name{font-family:var(--font-serif);color:#fff;margin-bottom:4px;font-size:1.6rem;font-weight:700}.footer-degree{color:var(--gold-light);margin-bottom:20px;font-size:.9rem}.footer-contact-row{flex-wrap:wrap;justify-content:center;gap:24px;margin-bottom:30px;font-size:.9rem;display:flex}.footer-contact-item{color:var(--text-light);align-items:center;gap:8px;text-decoration:none;transition:color .2s;display:flex}.footer-contact-item:hover{color:var(--gold-light)}.footer-contact-item svg{color:var(--gold-primary)}.footer-copyright{color:#64748b;border-top:1px solid #ffffff0f;max-width:600px;margin:0 auto;padding-top:24px;font-size:.8rem}.modal-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10000;background:#030712e0;justify-content:center;align-items:center;padding:20px;animation:.25s ease-out modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-card{color:#fff;background:#0c1833;border:1px solid #d4af3766;border-radius:22px;width:100%;max-width:520px;padding:36px 30px;animation:.3s cubic-bezier(.16,1,.3,1) modalSlideUp;position:relative;box-shadow:0 25px 60px #000c,0 0 35px #d4af3733}@keyframes modalSlideUp{0%{opacity:0;transform:translateY(20px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.modal-close-btn{color:#fff;cursor:pointer;background:#ffffff14;border:1px solid #ffffff26;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex;position:absolute;top:18px;right:18px}.modal-close-btn:hover{background:#f43f5e;border-color:#f43f5e;transform:rotate(90deg)}.modal-header-center{text-align:center;margin-bottom:26px}.modal-icon-badge{width:60px;height:60px;color:var(--gold-light);background:radial-gradient(circle,#d4af3740 0%,#d4af370d 70%);border:1px solid #d4af3780;border-radius:50%;justify-content:center;align-items:center;margin:0 auto 12px;display:flex;box-shadow:0 0 20px #d4af374d}.modal-title{font-family:var(--font-serif);color:#fff;margin-bottom:6px;font-size:1.55rem;font-weight:700}.modal-subtitle{color:var(--text-muted);font-size:.9rem}.rsvp-options-grid{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:18px;display:grid}.rsvp-option-label{text-align:center;cursor:pointer;background:#080f1ea6;border:1px solid #ffffff1f;border-radius:12px;flex-direction:column;align-items:center;padding:16px 12px;transition:all .2s;display:flex}.rsvp-option-label:hover{background:#101d3acc;border-color:#d4af3766}.rsvp-option-label.active{border-color:var(--gold-primary);background:#d4af3726;box-shadow:0 0 15px #d4af3740}.rsvp-option-icon{margin-bottom:6px;font-size:24px}.rsvp-option-text{color:#fff;font-size:.9rem;font-weight:600}.share-link-box{background:#080f1ecc;border:1px solid #d4af374d;border-radius:12px;align-items:center;gap:10px;margin:18px 0;padding:10px 14px;display:flex}.share-link-input{color:var(--gold-light);text-overflow:ellipsis;white-space:nowrap;background:0 0;border:none;outline:none;flex:1;font-family:monospace;font-size:.88rem;overflow:hidden}.modal-success-box{text-align:center;padding:20px 0}.modal-success-icon{margin-bottom:14px;font-size:54px;animation:.4s cubic-bezier(.34,1.56,.64,1) popSuccess;display:inline-block}.form-error-message{color:#fda4af;text-align:center;margin:10px 0 0;font-size:.86rem}.btn-send-wish:disabled{cursor:wait;opacity:.7}.submit-spinner{animation:.8s linear infinite submitSpin}@keyframes submitSpin{to{transform:rotate(360deg)}}@keyframes popSuccess{0%{transform:scale(0)}to{transform:scale(1)}}
