:root{--color-paper:#f5f0e7;--color-paper-light:#faf7f2;--color-deep-paper:#e7dfd1;--color-olive:#696d50;--color-olive-dark:#52563d;--color-olive-light:#8a8f6c;--color-olive-soft:#d9dcbe;--color-ink:#38372f;--color-ink-light:#5a5950;--color-ink-muted:#7e7c71;--color-blush:#e8d8d1;--color-blush-dark:#cfafaa;--color-blush-soft:#f4eae6;--color-border:#d5ccbc;--color-border-dark:#b8ac96;--color-wax-red:#a33838;--color-wax-red-dark:#782323;--font-display:"Cormorant Garamond", "Playfair Display", Georgia, serif;--font-body:"DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-hand:"Caveat", cursive, "Brush Script MT", sans-serif;--space-xs:.25rem;--space-sm:.5rem;--space-md:1rem;--space-lg:1.5rem;--space-xl:2rem;--space-2xl:3rem;--space-3xl:4.5rem;--space-4xl:6rem;--max-width-editorial:1080px;--max-width-readable:680px;--max-width-narrow:520px;--shadow-paper:0 4px 20px -2px #38372f12, 0 2px 6px -1px #38372f0a;--shadow-polaroid:0 8px 24px -4px #38372f1f, 0 2px 8px -2px #38372f0f;--shadow-elevated:0 16px 36px -6px #38372f29, 0 4px 12px -2px #38372f14;--shadow-inner-paper:inset 0 2px 4px #38372f08;--tape-color:#e7dfd1bf;--tape-border:#b8ac9666;--radius-xs:2px;--radius-sm:4px;--radius-md:8px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--transition-fast:.15s ease;--transition-normal:.3s cubic-bezier(.16, 1, .3, 1);--transition-slow:.6s cubic-bezier(.16, 1, .3, 1)}@media (prefers-reduced-motion:reduce){:root{--transition-fast:0s!important;--transition-normal:0s!important;--transition-slow:0s!important}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;font-size:16px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background-color:var(--color-paper);min-height:100vh;color:var(--color-ink);font-family:var(--font-body);letter-spacing:-.01em;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:radial-gradient(var(--color-deep-paper) .75px, transparent .75px);background-size:24px 24px;font-weight:400;line-height:1.65;position:relative;overflow-x:hidden}.skip-to-content{background:var(--color-ink);color:var(--color-paper-light);border-radius:var(--radius-sm);z-index:9999;transition:top var(--transition-fast);padding:.75rem 1.25rem;font-weight:600;text-decoration:none;position:absolute;top:-100px;left:1rem}.skip-to-content:focus{outline:3px solid var(--color-olive);top:1rem}h1,h2,h3,h4,h5,h6{font-family:var(--font-display);color:var(--color-ink);font-weight:600;line-height:1.2}h1{letter-spacing:-.02em;font-size:clamp(2.25rem,5vw + 1rem,3.75rem)}h2{letter-spacing:-.015em;font-size:clamp(1.85rem,4vw + .5rem,2.75rem)}h3{font-size:clamp(1.4rem,2.5vw + .5rem,2rem)}p{margin-bottom:1rem}p:last-child{margin-bottom:0}.handwritten{font-family:var(--font-hand);color:var(--color-olive);font-size:1.35em;line-height:1.3;display:inline-block}.eyebrow{font-family:var(--font-body);text-transform:uppercase;letter-spacing:.15em;color:var(--color-olive);margin-bottom:.5rem;font-size:.75rem;font-weight:700;display:inline-block}:focus-visible{outline:2px solid var(--color-olive);outline-offset:3px}button,.btn{font-family:var(--font-body);border-radius:var(--radius-full);cursor:pointer;min-height:48px;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;border:1px solid #0000;justify-content:center;align-items:center;gap:.5rem;padding:.75rem 1.75rem;font-size:1rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background-color:var(--color-olive);color:#faf7f2;border-color:var(--color-olive-dark);box-shadow:0 4px 14px -2px #696d5059}.btn-primary:hover{background-color:var(--color-olive-dark);transform:translateY(-2px);box-shadow:0 8px 22px -2px #696d5073}.btn-pulse{animation:2.8s ease-in-out infinite gentlePulse}@keyframes gentlePulse{0%,to{box-shadow:0 4px 14px -2px #696d5059}50%{transform:translateY(-1px);box-shadow:0 6px 22px 2px #696d508c}}.btn-secondary{background-color:var(--color-paper-light);color:var(--color-ink);border-color:var(--color-border);box-shadow:var(--shadow-paper)}.btn-secondary:hover{background-color:var(--color-deep-paper);border-color:var(--color-border-dark);transform:translateY(-2px)}.btn-outline{color:var(--color-ink);border-color:var(--color-border-dark);background-color:#0000}.btn-outline:hover{background-color:var(--color-blush-soft);border-color:var(--color-olive);color:var(--color-olive-dark)}.paper-tape{background:var(--tape-color);border-left:1px dashed var(--tape-border);border-right:1px dashed var(--tape-border);pointer-events:none;z-index:2;height:22px;transition:transform var(--transition-fast);position:absolute;box-shadow:0 1px 3px #0000000f}.botanical-divider{opacity:.8;justify-content:center;align-items:center;gap:1rem;margin:2.5rem 0;display:flex}.botanical-divider:before,.botanical-divider:after{content:"";background-color:var(--color-border);width:60px;height:1px}.container{width:100%;max-width:var(--max-width-editorial);margin-left:auto;margin-right:auto;padding-left:clamp(1.25rem,5vw,2.5rem);padding-right:clamp(1.25rem,5vw,2.5rem)}.container-narrow{max-width:var(--max-width-readable)}.scene-section{border-bottom:1px dashed var(--color-border);padding:clamp(3.5rem,8vw,6rem) 0;scroll-margin-top:clamp(3.5rem,8vw,4.5rem);position:relative}.scene-section:last-of-type{border-bottom:none}.section-header{text-align:center;margin-bottom:clamp(2rem,5vw,3.5rem)}.section-header h2{margin-top:.25rem;margin-bottom:.75rem}.section-header .section-subtitle{color:var(--color-ink-muted);max-width:580px;margin-left:auto;margin-right:auto;font-size:1.05rem}.progress-nav-container{z-index:990;-webkit-backdrop-filter:blur(12px);border:1px solid var(--color-border);border-radius:var(--radius-full);box-sizing:border-box;scrollbar-width:none;-ms-overflow-style:none;background-color:#faf7f2f0;justify-content:space-between;align-items:center;width:calc(100% - 1.25rem);max-width:450px;padding:4px;display:flex;position:fixed;top:.75rem;left:50%;overflow:hidden;transform:translate(-50%);box-shadow:0 4px 20px #38372f1f}.progress-nav-container::-webkit-scrollbar{display:none}.progress-nav-item{min-width:0;height:36px;font-family:var(--font-body);color:var(--color-ink-light);border-radius:var(--radius-full);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;background:0 0;border:none;flex:1 1 0;justify-content:center;align-items:center;padding:0 4px;font-size:.76rem;font-weight:500;display:inline-flex}.progress-nav-item:hover{color:var(--color-ink);background-color:#696d5014}.progress-nav-item.is-active{color:#faf7f2;background-color:var(--color-olive);font-weight:700;box-shadow:0 2px 8px #696d5059}.nav-label-desktop{display:inline}.nav-label-mobile{display:none}@media (width<=440px){.progress-nav-container{width:calc(100% - 1rem);padding:3px;top:.5rem}.progress-nav-item{height:33px;padding:0 2px;font-size:.72rem}.nav-label-desktop{display:none}.nav-label-mobile{display:inline}}.reading-progress-track{z-index:1000;pointer-events:none;background:#d5ccbc59;height:4px;position:fixed;top:0;left:0;right:0}.reading-progress-fill{background:linear-gradient(90deg, var(--color-olive), #c98860, var(--color-ink));width:0%;height:100%;transition:width .1s linear}.scroll-reveal{opacity:0;will-change:opacity, transform;transition:opacity .7s cubic-bezier(.16,1,.3,1),transform .7s cubic-bezier(.16,1,.3,1);transform:translateY(26px)}.scroll-reveal.is-revealed{opacity:1;transform:translateY(0)}.scroll-reveal.slide-left{opacity:0;transform:translate(-32px)translateY(12px)}.scroll-reveal.slide-left.is-revealed{opacity:1;transform:translate(0)translateY(0)}.scroll-reveal.slide-right{opacity:0;transform:translate(32px)translateY(12px)}.scroll-reveal.slide-right.is-revealed{opacity:1;transform:translate(0)translateY(0)}.scroll-reveal.scale-up{opacity:0;transform:scale(.93)translateY(24px)}.scroll-reveal.scale-up.is-revealed{opacity:1;transform:scale(1)translateY(0)}.scroll-reveal.delay-1{transition-delay:90ms}.scroll-reveal.delay-2{transition-delay:.18s}.scroll-reveal.delay-3{transition-delay:.27s}.scroll-reveal.delay-4{transition-delay:.36s}.animate-fade-in{animation:.7s cubic-bezier(.16,1,.3,1) forwards fadeInUp}@keyframes fadeInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.animate-slide-in{animation:.4s cubic-bezier(.16,1,.3,1) forwards slideInLeft}@keyframes slideInLeft{0%{opacity:0;transform:translate(-12px)}to{opacity:1;transform:translate(0)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.scroll-reveal{opacity:1!important;transition:none!important;transform:none!important}}.envelope-intro-scene{background:radial-gradient(circle at 50% 30%, #faf7f2 0%, var(--color-paper) 60%, var(--color-deep-paper) 100%);text-align:center;flex-direction:column;justify-content:center;align-items:center;min-height:100dvh;padding:clamp(2.5rem,6vw,4.5rem) 1.25rem clamp(2rem,5vw,3.5rem);display:flex;position:relative;overflow:hidden}.ambient-sparkles{pointer-events:none;z-index:1;position:absolute;inset:0;overflow:hidden}.sparkle{color:var(--color-olive);opacity:.25;animation:6s ease-in-out infinite floatAndTwinkle;position:absolute}.sparkle.s1{font-size:1.4rem;animation-delay:0s;top:12%;left:10%}.sparkle.s2{font-size:1.1rem;animation-delay:2s;top:20%;right:12%}.sparkle.s3{font-size:1.2rem;animation-delay:4s;bottom:18%;left:15%}.sparkle.s4{font-size:1.5rem;animation-delay:1.5s;bottom:22%;right:12%}@keyframes floatAndTwinkle{0%,to{opacity:.15;transform:translateY(0)scale(.9)}50%{opacity:.45;transform:translateY(-14px)scale(1.15)}}.envelope-intro-header{z-index:10;max-width:680px;transition:transform var(--transition-normal);margin-bottom:clamp(7.5rem,15vw,10.5rem);position:relative}.envelope-intro-scene.is-open .envelope-intro-header{transform:translateY(-8px)}.envelope-intro-header h1{color:var(--color-ink);margin-bottom:.75rem;line-height:1.2}.envelope-intro-header .envelope-subtitle{color:var(--color-ink-muted);max-width:540px;margin-left:auto;margin-right:auto;font-size:clamp(1rem,2vw + .5rem,1.15rem);line-height:1.55}.envelope-stage{perspective:1200px;z-index:2;justify-content:center;width:100%;max-width:440px;height:280px;margin:0 auto clamp(2rem,4vw,3rem);display:flex;position:relative}@media (width<=420px){.envelope-stage{max-width:320px;height:240px}}.envelope-wrapper{background-color:var(--color-deep-paper);border-radius:var(--radius-sm);width:100%;height:100%;box-shadow:var(--shadow-elevated);border:1px solid var(--color-border);transform-style:preserve-3d;cursor:pointer;transition:transform var(--transition-normal), box-shadow var(--transition-normal);position:relative}.envelope-wrapper:hover{transform:translateY(-4px)scale(1.01);box-shadow:0 20px 42px -6px #38372f38}.envelope-inner{border-radius:var(--radius-sm);background-color:#dfd5c4;position:absolute;inset:0;overflow:hidden}.envelope-inner:after{content:"";border:1px dashed var(--color-border-dark);opacity:.5;position:absolute;inset:10px}.letter-sheet{border-radius:var(--radius-xs);border:1px solid var(--color-border);z-index:2;text-align:left;will-change:transform;background:#faf7f2;flex-direction:column;justify-content:center;width:90%;height:90%;padding:1.25rem 1.5rem;transition:transform .7s cubic-bezier(.2,.9,.3,1),box-shadow .7s;display:flex;position:absolute;bottom:8px;left:5%;transform:translateY(0);box-shadow:0 2px 10px #38372f14}@media (width<=420px){.letter-sheet{padding:1rem 1.15rem}}.letter-sheet.revealed{box-shadow:var(--shadow-elevated);z-index:6;animation:.6s cubic-bezier(.18,.89,.32,1.28) forwards letterBounceOut;transform:translateY(-70px)}@keyframes letterBounceOut{0%{transform:translateY(0)}60%{transform:translateY(-78px)}to{transform:translateY(-70px)}}@media (width<=420px){.letter-sheet.revealed{transform:translateY(-55px)}}.letter-sheet-eyebrow{font-family:var(--font-hand);color:var(--color-olive);margin-bottom:.25rem;font-size:1.15rem}.letter-sheet-heading{font-family:var(--font-display);color:var(--color-ink);margin-bottom:.4rem;font-size:1.35rem;font-weight:600}.letter-sheet-body{color:var(--color-ink-light);-webkit-line-clamp:4;-webkit-box-orient:vertical;font-size:.88rem;line-height:1.5;display:-webkit-box;overflow:hidden}.envelope-pocket{z-index:3;pointer-events:none;height:100%;position:absolute;bottom:0;left:0;right:0}.envelope-pocket:before{content:"";filter:drop-shadow(1px 0 2px #38372f0d);border:140px solid #0000;border-left:220px solid #e4dac9;border-right-width:0;width:0;height:0;position:absolute;bottom:0;left:0}.envelope-pocket:after{content:"";filter:drop-shadow(-1px 0 2px #38372f0d);border:140px solid #0000;border-left-width:0;border-right:220px solid #dfd5c4;width:0;height:0;position:absolute;bottom:0;right:0}@media (width<=420px){.envelope-pocket:before{border-width:120px 0 120px 160px}.envelope-pocket:after{border-width:120px 160px 120px 0}}.envelope-bottom-flap{z-index:4;pointer-events:none;filter:drop-shadow(0 -2px 3px #38372f0a);border:220px solid #0000;border-top-width:0;border-bottom:145px solid #e2d7c4;height:0;position:absolute;bottom:0;left:0;right:0}@media (width<=420px){.envelope-bottom-flap{border-width:0 160px 125px}}.envelope-top-flap{transform-origin:top;z-index:5;filter:drop-shadow(0 3px 5px #38372f1a);border:220px solid #0000;border-top:95px solid #dcd0bd;border-bottom-width:0;height:0;transition:transform .65s cubic-bezier(.4,0,.2,1),z-index 0s .3s;position:absolute;top:0;left:0;right:0}@media (width<=420px){.envelope-top-flap{border-width:75px 160px 0}}.envelope-wrapper.open .envelope-top-flap{z-index:1;filter:none;opacity:.9;transform:rotateX(180deg)}.wax-seal-container{z-index:6;pointer-events:none;flex-direction:column;align-items:center;transition:opacity .3s,transform .3s;display:flex;position:absolute;top:68px;left:50%;transform:translate(-50%)}@media (width<=420px){.wax-seal-container{top:52px}}.envelope-wax-seal{width:58px;height:58px;animation:3s ease-in-out infinite pulseWax}@media (width<=420px){.envelope-wax-seal{width:46px;height:46px}}@keyframes pulseWax{0%,to{filter:drop-shadow(0 4px 6px #38372f40);transform:scale(1)}50%{filter:drop-shadow(0 6px 12px #a3383859);transform:scale(1.08)}}.wax-seal-hint{font-family:var(--font-hand);color:var(--color-ink);border-radius:var(--radius-full);background:#faf7f2eb;align-items:center;gap:.25rem;margin-top:4px;padding:.15rem .55rem;font-size:.95rem;animation:2s ease-in-out infinite floatHint;display:flex;box-shadow:0 1px 4px #0000001a}@keyframes floatHint{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.envelope-wrapper.open .wax-seal-container{opacity:0;transform:translate(-50%)scale(.6)}.envelope-actions{z-index:10;flex-direction:column;align-items:center;gap:.85rem;display:flex}.envelope-skip-btn{color:var(--color-ink-muted);cursor:pointer;transition:color var(--transition-fast);background:0 0;border:none;padding:.35rem .75rem;font-size:.875rem;text-decoration:underline}.envelope-skip-btn:hover{color:var(--color-ink)}@media (prefers-reduced-motion:reduce){.envelope-top-flap,.letter-sheet,.envelope-wax-seal,.sparkle,.letter-sheet.revealed{transition:none!important;animation:none!important}}.memory-timeline-container{flex-direction:column;gap:clamp(2.5rem,6vw,4.5rem);display:flex;position:relative}@media (width>=768px){.memory-timeline-container:before{content:"";background:repeating-linear-gradient(to bottom, var(--color-border), var(--color-border) 6px, transparent 6px, transparent 12px);z-index:0;width:2px;position:absolute;top:2rem;bottom:2rem;left:50%;transform:translate(-50%)}}.memory-item{z-index:1;transition:transform var(--transition-normal);flex-direction:column;gap:1.5rem;display:flex;position:relative}@media (width>=768px){.memory-item{grid-template-columns:1fr 1fr;align-items:center;gap:3.5rem;display:grid}.memory-item:nth-child(2n) .memory-visual-col{order:2}.memory-item:nth-child(2n) .memory-text-col{text-align:right;order:1}}.polaroid-card{border-radius:var(--radius-xs);box-shadow:var(--shadow-polaroid);border:1px solid var(--color-border);cursor:pointer;background-color:#faf7f2;width:100%;max-width:440px;margin:0 auto;padding:14px 14px 24px;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s;position:relative}.polaroid-card:hover{box-shadow:0 18px 36px -4px #38372f33,0 4px 12px -2px #38372f1a;transform:translateY(-8px)scale(1.025)rotate(0)!important}.polaroid-card:focus-visible{outline:3px solid var(--color-olive);outline-offset:4px}.polaroid-tape{width:90px;top:-12px;left:50%;transform:translate(-50%)rotate(-2deg)}.memory-item:nth-child(2n) .polaroid-tape{transform:translate(-50%)rotate(2deg)}.polaroid-card:hover .polaroid-tape{transform:translate(-50%)rotate(0)scale(1.03)}.polaroid-image-frame{aspect-ratio:4/3;background-color:var(--color-deep-paper);border-radius:var(--radius-xs);border:1px solid #0000000a;width:100%;position:relative;overflow:hidden}.polaroid-image{object-fit:cover;width:100%;height:100%;transition:transform .5s cubic-bezier(.2,.8,.2,1)}.polaroid-card:hover .polaroid-image{transform:scale(1.04)}.polaroid-placeholder{background:linear-gradient(135deg, #faf7f2 0%, var(--color-deep-paper) 100%);width:100%;height:100%;color:var(--color-ink-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:1.5rem;display:flex}.polaroid-placeholder-icon{width:48px;height:48px;stroke:var(--color-olive);opacity:.7;margin-bottom:.75rem}.polaroid-expand-badge{color:#faf7f2;border-radius:var(--radius-full);opacity:0;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);transition:opacity var(--transition-fast), transform var(--transition-fast);background:#38372fc7;align-items:center;gap:.35rem;padding:.25rem .6rem;font-size:.75rem;display:flex;position:absolute;bottom:8px;right:8px;transform:translateY(4px)}.polaroid-card:hover .polaroid-expand-badge,.polaroid-card:focus-visible .polaroid-expand-badge{opacity:1;transform:translateY(0)}.polaroid-hand-label{font-family:var(--font-hand);color:var(--color-ink);text-align:center;margin-top:14px;font-size:1.25rem;line-height:1.2}.memory-text-col{flex-direction:column;display:flex}.memory-date-tag{font-family:var(--font-body);color:var(--color-olive);text-transform:uppercase;letter-spacing:.1em;align-items:center;gap:.35rem;margin-bottom:.5rem;font-size:.8rem;font-weight:600;display:inline-flex}.memory-title{font-family:var(--font-display);color:var(--color-ink);margin-bottom:.75rem;font-size:clamp(1.4rem,2.5vw,1.85rem);font-weight:600;line-height:1.25}.memory-caption{color:var(--color-ink-light);margin-bottom:0;font-size:1rem;line-height:1.65}.lightbox-backdrop{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;background:#23221dd9;justify-content:center;align-items:center;padding:clamp(1rem,3vw,2.5rem);animation:.25s forwards lightboxFadeIn;display:flex;position:fixed;inset:0}@keyframes lightboxFadeIn{0%{opacity:0}to{opacity:1}}.lightbox-content-box{border-radius:var(--radius-sm);border:1px solid var(--color-border);background:#faf7f2;flex-direction:column;width:100%;max-width:820px;max-height:90vh;animation:.32s cubic-bezier(.16,1,.3,1) forwards lightboxPopIn;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px #00000061}@keyframes lightboxPopIn{0%{opacity:0;transform:scale(.92)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.lightbox-close-btn{border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;width:44px;height:44px;color:var(--color-ink);z-index:10;transition:all var(--transition-fast);background:#faf7f2e6;justify-content:center;align-items:center;display:flex;position:absolute;top:1rem;right:1rem}.lightbox-close-btn:hover{background:var(--color-paper);transform:rotate(90deg)}.lightbox-img-area{background-color:var(--color-deep-paper);justify-content:center;align-items:center;width:100%;max-height:60vh;display:flex;overflow:hidden}.lightbox-img-area img{object-fit:contain;max-width:100%;max-height:60vh}.lightbox-details{padding:clamp(1.25rem,3vw,2rem);overflow-y:auto}.lightbox-details h3{font-family:var(--font-display);margin-bottom:.5rem;font-size:1.6rem}.lightbox-details p{color:var(--color-ink-light);font-size:1rem;line-height:1.6}@media (prefers-reduced-motion:reduce){.lightbox-backdrop,.lightbox-content-box,.polaroid-card:hover{animation:none!important;transform:none!important}}.certificate-section-wrapper{max-width:780px;margin:0 auto}.certificate-frame{border:2px solid var(--color-ink);box-shadow:var(--shadow-elevated);text-align:center;border-radius:var(--radius-sm);transition:transform var(--transition-normal), box-shadow var(--transition-normal);background-color:#faf7f2;padding:clamp(1.75rem,5vw,3.5rem);position:relative;overflow:hidden}.certificate-frame:hover{box-shadow:0 20px 48px -6px #38372f38}.certificate-frame:before{content:"";border:1px solid var(--color-olive);pointer-events:none;position:absolute;inset:8px}.certificate-frame:after{content:"";border:1px dashed var(--color-border-dark);pointer-events:none;position:absolute;inset:13px}.cert-corner{border-style:solid;border-color:var(--color-olive);pointer-events:none;z-index:2;width:24px;height:24px;transition:transform var(--transition-fast);position:absolute}.cert-corner-tl{border-width:3px 0 0 3px;top:18px;left:18px}.cert-corner-tr{border-width:3px 3px 0 0;top:18px;right:18px}.cert-corner-bl{border-width:0 0 3px 3px;bottom:18px;left:18px}.cert-corner-br{border-width:0 3px 3px 0;bottom:18px;right:18px}.cert-header{z-index:2;margin-bottom:1.5rem;position:relative}.cert-serial{font-family:var(--font-body);letter-spacing:.2em;color:var(--color-ink-muted);text-transform:uppercase;margin-top:.25rem;font-size:.75rem}.cert-title{font-family:var(--font-display);letter-spacing:.04em;color:var(--color-ink);text-transform:uppercase;margin:.5rem 0 .25rem;font-size:clamp(2rem,5vw,3.25rem);font-weight:700}.cert-couple-names{font-family:var(--font-display);color:var(--color-olive-dark);border-bottom:1px solid var(--color-border);transition:color var(--transition-fast);margin:1.25rem 0;padding:.25rem 0;font-size:clamp(1.8rem,4vw,2.75rem);font-style:italic;font-weight:600;display:inline-block}.cert-couple-names:hover{color:var(--color-ink)}.cert-body-text{color:var(--color-ink);max-width:600px;margin:0 auto 1.25rem;font-size:clamp(1.05rem,2vw,1.2rem);line-height:1.6}.cert-requirement-box{background-color:var(--color-paper);border:1px solid var(--color-border);border-radius:var(--radius-sm);max-width:540px;color:var(--color-ink-light);margin:0 auto 2rem;padding:1rem 1.25rem;font-size:.95rem;font-style:italic}.cert-seal-container{justify-content:center;align-items:center;margin-bottom:2rem;display:flex}.cert-stamp{border:3px double var(--color-wax-red);width:96px;height:96px;color:var(--color-wax-red);-webkit-user-select:none;user-select:none;transition:transform var(--transition-fast);background-color:#e8d8d133;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;padding:6px;display:flex;transform:rotate(-10deg);box-shadow:inset 0 0 0 2px #a338381a}.cert-stamp:hover{transform:rotate(-5deg)scale(1.08)}.certificate-section-wrapper .cert-stamp-animated{opacity:0;transform:scale(2.2)rotate(-30deg)}.certificate-section-wrapper.is-revealed .cert-stamp-animated{animation:.8s cubic-bezier(.18,.89,.32,1.28) .35s forwards stampSlam}@keyframes stampSlam{0%{opacity:0;transform:scale(2.4)rotate(-30deg)}60%{opacity:1;transform:scale(.95)rotate(-12deg)}to{opacity:1;transform:scale(1)rotate(-10deg)}}.cert-stamp-text{letter-spacing:.1em;text-transform:uppercase;font-size:.58rem;font-weight:800;line-height:1.2}.cert-stamp-star{margin:2px 0;font-size:.9rem}.cert-signatures{border-top:1px dashed var(--color-border);grid-template-columns:1fr 1fr;gap:1.5rem;margin-top:1.5rem;margin-bottom:2rem;padding-top:1.5rem;display:grid}.cert-sig-block{flex-direction:column;align-items:center;display:flex}.cert-sig-hand{font-family:var(--font-hand);color:var(--color-olive-dark);align-items:flex-end;height:40px;font-size:1.6rem;display:flex}.cert-sig-line{background-color:var(--color-ink-muted);width:140px;height:1px;margin:4px 0 6px}.cert-sig-title{text-transform:uppercase;letter-spacing:.08em;color:var(--color-ink-muted);font-size:.75rem}.cert-rules-toggle-wrapper{margin-top:1.5rem}.cert-rules-drawer{background-color:var(--color-deep-paper);border:1px solid var(--color-border);border-radius:var(--radius-sm);text-align:left;margin-top:1.5rem;padding:clamp(1.25rem,3vw,2rem);animation:.35s cubic-bezier(.16,1,.3,1) forwards drawerSlideDown}@keyframes drawerSlideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.cert-rules-title{font-family:var(--font-display);color:var(--color-ink);align-items:center;gap:.5rem;margin-bottom:1rem;font-size:1.35rem;display:flex}.cert-rules-list{flex-direction:column;gap:1rem;list-style:none;display:flex}.cert-rule-item{border-radius:var(--radius-xs);border-left:3px solid var(--color-olive);transition:transform var(--transition-fast), box-shadow var(--transition-fast);background:#faf7f2;padding:1rem 1.25rem}.cert-rule-item:hover{box-shadow:var(--shadow-paper);transform:translate(4px)}.cert-rule-item h4{font-family:var(--font-body);color:var(--color-ink);margin-bottom:.25rem;font-size:1rem;font-weight:700}.cert-rule-item p{color:var(--color-ink-light);margin-bottom:0;font-size:.92rem;line-height:1.55}@media (prefers-reduced-motion:reduce){.cert-rules-drawer,.cert-stamp-animated{animation:none!important}}.contributors-grid{grid-template-columns:1fr;gap:clamp(1.25rem,3vw,2rem);display:grid}@media (width>=600px){.contributors-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=960px){.contributors-grid{grid-template-columns:repeat(3,1fr)}}.contributor-card{border:1px solid var(--color-border);border-radius:var(--radius-sm);box-shadow:var(--shadow-paper);cursor:pointer;transition:transform .3s cubic-bezier(.2, .8, .2, 1), box-shadow .3s ease, border-color var(--transition-fast);text-align:left;background-color:#faf7f2;flex-direction:column;justify-content:space-between;padding:1.75rem 1.5rem 1.5rem;display:flex;position:relative;overflow:hidden}.contributor-card:before{content:"";border-style:solid;border-width:0 20px 20px 0;border-color:transparent var(--color-border) transparent transparent;pointer-events:none;width:0;height:0;transition:border-width .2s;position:absolute;top:0;right:0}.contributor-card:hover{border-color:var(--color-olive-soft);transform:translateY(-6px)scale(1.01);box-shadow:0 16px 32px -4px #38372f26,0 4px 10px -2px #38372f14}.contributor-card:hover:before{border-width:0 26px 26px 0;border-color:transparent var(--color-olive) transparent transparent}.contributor-card:focus-visible{outline:3px solid var(--color-olive);outline-offset:3px}.contributor-card-top{align-items:flex-start;gap:.85rem;margin-bottom:1rem;display:flex}.contributor-avatar{background-color:var(--color-deep-paper);border:1px solid var(--color-border);width:44px;height:44px;font-family:var(--font-display);color:var(--color-olive-dark);transition:transform var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:1.15rem;font-weight:700;display:flex;overflow:hidden}.contributor-card:hover .contributor-avatar{transform:scale(1.08)}.contributor-avatar img{object-fit:cover;border-radius:50%;width:100%;height:100%}.contributor-meta{flex:1}.contributor-name{font-family:var(--font-display);color:var(--color-ink);font-size:1.25rem;font-weight:600;line-height:1.2}.contributor-role{font-family:var(--font-hand);color:var(--color-olive);margin-top:2px;font-size:1.05rem}.contributor-teaser{color:var(--color-ink-light);-webkit-line-clamp:3;-webkit-box-orient:vertical;margin-bottom:1.25rem;font-size:.95rem;font-style:italic;line-height:1.55;display:-webkit-box;overflow:hidden}.contributor-read-btn{font-family:var(--font-body);color:var(--color-olive-dark);cursor:pointer;min-height:auto;transition:gap var(--transition-fast), color var(--transition-fast);background:0 0;border:none;align-items:center;gap:.35rem;margin-top:auto;padding:0;font-size:.85rem;font-weight:600;display:inline-flex}.contributor-card:hover .contributor-read-btn{color:var(--color-ink);gap:.55rem}.letter-modal-backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1000;background:#23221dc7;justify-content:center;align-items:center;padding:clamp(1rem,3vw,2.5rem);animation:.22s forwards modalFadeIn;display:flex;position:fixed;inset:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.letter-modal-dialog{border-radius:var(--radius-sm);border:1px solid var(--color-border);background-color:#faf7f2;flex-direction:column;width:100%;max-width:620px;max-height:90vh;animation:.28s cubic-bezier(.16,1,.3,1) forwards modalZoomIn;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 60px #00000059}@keyframes modalZoomIn{0%{opacity:0;transform:scale(.92)translateY(16px)}to{opacity:1;transform:scale(1)translateY(0)}}.letter-modal-header{border-bottom:1px dashed var(--color-border);background:var(--color-paper-light);justify-content:space-between;align-items:center;padding:1.5rem 1.75rem 1rem;display:flex}.letter-modal-sender-info{align-items:center;gap:1rem;display:flex}.letter-modal-close-btn{border-radius:var(--radius-full);border:1px solid var(--color-border);width:44px;height:44px;color:var(--color-ink);cursor:pointer;transition:all var(--transition-fast);background:#faf7f2;flex-shrink:0;justify-content:center;align-items:center;display:flex}.letter-modal-close-btn:hover{background:var(--color-deep-paper);transform:rotate(90deg)}.letter-modal-body{color:var(--color-ink);white-space:pre-line;padding:1.75rem;font-size:1.05rem;line-height:1.75;overflow-y:auto}.letter-modal-footer{border-top:1px solid var(--color-border);background:var(--color-paper);justify-content:space-between;align-items:center;padding:1rem 1.75rem;display:flex}.letter-nav-btn{border:1px solid var(--color-border);border-radius:var(--radius-full);min-height:44px;color:var(--color-ink);cursor:pointer;transition:all var(--transition-fast);background:0 0;align-items:center;gap:.4rem;padding:.5rem 1rem;font-size:.9rem;display:inline-flex}.letter-nav-btn:hover:not(:disabled){background:var(--color-deep-paper);transform:translateY(-1px)}.letter-nav-btn:disabled{opacity:.35;cursor:not-allowed}.letter-counter{color:var(--color-ink-muted);font-size:.85rem;font-weight:600}.closing-letter-wrapper{border-radius:var(--radius-sm);border:1px solid var(--color-border);max-width:720px;box-shadow:var(--shadow-paper);text-align:left;transition:box-shadow var(--transition-normal);background-color:#faf7f2;margin:0 auto;padding:clamp(2rem,6vw,4rem);position:relative}.closing-letter-wrapper:hover{box-shadow:var(--shadow-elevated)}.closing-letter-stamp{border:2px dashed var(--color-border-dark);opacity:.7;text-transform:uppercase;width:52px;height:64px;color:var(--color-olive-dark);pointer-events:none;flex-direction:column;justify-content:center;align-items:center;font-size:.65rem;animation:3s ease-in-out infinite floatHint;display:flex;position:absolute;top:1.5rem;right:1.5rem}.closing-letter-text{color:var(--color-ink);white-space:pre-line;margin-bottom:2rem;font-size:clamp(1.05rem,2vw,1.18rem);line-height:1.8}.closing-signature-block{border-top:1px dashed var(--color-border);flex-direction:column;align-items:flex-start;margin-top:2rem;padding-top:1.5rem;display:flex}.closing-sig-hand{font-family:var(--font-hand);color:var(--color-olive-dark);margin-top:.5rem;font-size:2rem}.closing-date{color:var(--color-ink-muted);margin-top:.25rem;font-size:.85rem}.closing-group-photo-area{text-align:center;margin-top:3.5rem}.closing-group-photo-frame{border-radius:var(--radius-xs);border:1px solid var(--color-border);max-width:680px;box-shadow:var(--shadow-polaroid);transition:transform var(--transition-normal), box-shadow var(--transition-normal);background:#faf7f2;margin:0 auto;padding:14px 14px 28px}.closing-group-photo-frame:hover{box-shadow:var(--shadow-elevated);transform:translateY(-5px)scale(1.01)}.closing-group-photo-frame img{aspect-ratio:16/10;object-fit:cover;border-radius:var(--radius-xs);width:100%}.closing-group-caption{font-family:var(--font-hand);color:var(--color-ink);margin-top:14px;font-size:1.35rem}.closing-actions-bar{text-align:center;flex-direction:column;align-items:center;gap:1.25rem;margin-top:3.5rem;display:flex}.closing-share-feedback{color:var(--color-olive-dark);border-radius:var(--radius-full);background:var(--color-olive-soft);padding:.4rem .9rem;font-size:.9rem;font-weight:600;animation:.2s modalFadeIn}.back-to-top-btn{font-family:var(--font-body);color:var(--color-ink-light);cursor:pointer;transition:color var(--transition-fast), transform var(--transition-fast);background:0 0;border:none;align-items:center;gap:.4rem;min-height:44px;font-size:.95rem;text-decoration:underline;display:inline-flex}.back-to-top-btn:hover{color:var(--color-ink);transform:translateY(-2px)}@media (prefers-reduced-motion:reduce){.letter-modal-backdrop,.letter-modal-dialog,.contributor-card:hover,.closing-letter-stamp{animation:none!important;transform:none!important}}
