.letter-page{--letter-bg:#f4efe7;--letter-paper:#fffdf8;--letter-ink:#3d3833;--letter-muted:#857b70;--letter-border:#e2d9cd;--letter-cream:#f3ede4;background-color:var(--letter-bg);background-image:radial-gradient(circle at 20% 10%,#ffffffb3,#0000 55%),radial-gradient(circle at 80% 0,#b49a762e,#0000 55%),linear-gradient(#f4efe799,#f9f6f2e6)}.letter-stage{position:relative;overflow:hidden}.letter-body{color:var(--letter-ink);font-family:Noto Serif KR,Nanum Myeongjo,Apple SD Gothic Neo,serif}.letter-handwriting{letter-spacing:.02em;font-family:Nanum Pen Script,Segoe Script,Apple SD Gothic Neo,cursive}.letter-paper{border:1px solid var(--letter-border);background:var(--letter-paper);border-radius:28px;position:relative;overflow:hidden;box-shadow:0 24px 60px -45px #231c1473}.letter-paper:before{content:"";clip-path:polygon(0 0,100% 0,100% 100%);opacity:.18;background:linear-gradient(135deg,#0000001f,#0000 70%);width:80px;height:80px;position:absolute;top:0;right:0}.letter-paper:after{content:"";opacity:.12;pointer-events:none;background-image:radial-gradient(#3c322814 .5px,#0000 .5px);background-size:3px 3px;position:absolute;inset:0}.letter-envelope{aspect-ratio:16/11;perspective:1000px;width:clamp(220px,60vw,340px);display:block;position:relative}.letter-envelope-body{z-index:1;background:linear-gradient(150deg,#f7efe4,#efe2d3);border:1px solid #e1d5c8;border-radius:22px;position:absolute;inset:0;box-shadow:0 20px 40px -30px #0006}.letter-envelope-paper{border:1px solid var(--letter-border);background:var(--letter-paper);z-index:0;border-radius:14px;height:70%;transition:transform 1.2s .2s;position:absolute;bottom:14px;left:18px;right:18px;transform:translateY(20%);box-shadow:0 12px 28px -20px #00000059}.letter-envelope-flap{clip-path:polygon(0 0,50% 70%,100% 0,100% 100%,0 100%);transform-origin:top;backface-visibility:hidden;z-index:2;background:linear-gradient(155deg,#f3e6d7,#e8dacb);height:58%;transition:transform 1.1s;position:absolute;top:-1px;left:0;right:0}.letter-envelope.is-open .letter-envelope-flap{transform:rotateX(180deg)}.letter-envelope.is-open .letter-envelope-paper{transform:translateY(-35%)}.letter-signature{width:min(280px,80%);height:auto;color:var(--letter-ink);margin-top:8px}.letter-signature path{stroke-width:3px;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:420;stroke-dashoffset:420px;transition:stroke-dashoffset 2.4s}.letter-signature.is-drawn path{stroke-dashoffset:0}@media (prefers-reduced-motion:reduce){.letter-envelope,.letter-envelope *{transition:none!important}.letter-signature path{transition:none}}.letter2-page{--letter2-bg:#fafaf9;--letter2-ink:#1c1917;--letter2-muted:#78716c;--letter2-accent:#292524;--letter2-border:#d6d3d1;--letter2-surface:#f5f5f4;background-color:var(--letter2-bg)}.letter3-page{--letter3-bg:#f8f6f2;--letter3-ink:#2c2622;--letter3-muted:#8a7f75;--letter3-accent:#3a332d;--letter3-border:#ded7cf;--letter3-surface:#f2ede7;background-color:var(--letter3-bg)}.letter3-page .letter2-hero{background:linear-gradient(180deg,var(--letter3-bg)0%,var(--letter3-surface)100%)}.letter3-page .letter2-hero:before{background-image:linear-gradient(90deg,var(--letter3-border)1px,transparent 1px),linear-gradient(var(--letter3-border)1px,transparent 1px);opacity:.2}.letter3-page .letter2-story{background-color:var(--letter3-bg)}.letter3-page .letter2-story--highlight{background:linear-gradient(180deg,var(--letter3-surface)0%,var(--letter3-bg)100%)}.letter3-page .letter2-story--highlight:before{background:var(--letter3-border)}.letter3-page .letter2-typewriter:after{background-color:var(--letter3-ink)}.letter3-page .letter2-scroll-indicator{background:linear-gradient(180deg,var(--letter3-muted)0%,transparent 100%)}.letter3-page .letter2-closing{background:linear-gradient(180deg,var(--letter3-bg)0%,var(--letter3-surface)50%,var(--letter3-bg)100%)}.letter3-page .letter2-btn-primary{background-color:var(--letter3-ink);border-color:var(--letter3-ink)}.letter3-page .letter2-btn-primary:hover{color:var(--letter3-ink)}.letter3-page .letter2-btn-secondary{color:var(--letter3-muted);border-color:var(--letter3-border)}.letter3-page .letter2-btn-secondary:hover{border-color:var(--letter3-ink);color:var(--letter3-ink)}.letter2-serif{font-family:Noto Serif KR,Times New Roman,Georgia,serif;font-weight:300}.letter2-mono{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-weight:400}.letter2-hero{background:linear-gradient(180deg,var(--letter2-bg)0%,var(--letter2-surface)100%);min-height:100vh;position:relative}.letter2-hero:before{content:"";background-image:linear-gradient(90deg,var(--letter2-border)1px,transparent 1px),linear-gradient(var(--letter2-border)1px,transparent 1px);opacity:.3;background-size:80px 80px;position:absolute;inset:0}.letter2-typewriter{display:inline-block;position:relative}.letter2-typewriter:after{content:"";background-color:var(--letter2-ink);width:2px;height:.9em;animation:1s step-end infinite letter2-blink;position:absolute;top:50%;right:-8px;transform:translateY(-50%)}@keyframes letter2-blink{0%,to{opacity:1}50%{opacity:0}}.letter2-scroll-indicator{background:linear-gradient(180deg,var(--letter2-muted)0%,transparent 100%);width:1px;height:40px;animation:2s ease-in-out infinite letter2-scroll-bounce}@keyframes letter2-scroll-bounce{0%,to{opacity:.6;transform:translateY(0)}50%{opacity:1;transform:translateY(10px)}}.letter2-story{background-color:var(--letter2-bg);position:relative}.letter2-story--highlight{background:linear-gradient(180deg,var(--letter2-surface)0%,var(--letter2-bg)100%)}.letter2-story--highlight:before{content:"";background:var(--letter2-border);width:1px;height:80px;position:absolute;top:0;left:50%;transform:translate(-50%)}.letter2-photo{min-height:100vh;position:relative;overflow:hidden}.letter2-quote-mark{vertical-align:-.15em;opacity:.5;font-family:Georgia,serif;font-size:1.5em;line-height:0}.letter2-closing{background:linear-gradient(180deg,var(--letter2-bg)0%,var(--letter2-surface)50%,var(--letter2-bg)100%);position:relative}.letter2-signature-line{background:linear-gradient(90deg,transparent 0%,var(--letter2-border)30%,var(--letter2-border)70%,transparent 100%);width:120px;height:1px;margin:0 auto}.letter2-btn-primary{letter-spacing:.05em;color:#fff;background-color:var(--letter2-ink);border:1px solid var(--letter2-ink);border-radius:0;justify-content:center;align-items:center;padding:14px 32px;font-family:inherit;font-size:14px;font-weight:500;transition:all .3s;display:inline-flex}.letter2-btn-primary:hover{color:var(--letter2-ink);background-color:#0000}.letter2-btn-secondary{letter-spacing:.05em;color:var(--letter2-muted);border:1px solid var(--letter2-border);background-color:#0000;border-radius:0;justify-content:center;align-items:center;padding:14px 32px;font-family:inherit;font-size:14px;font-weight:500;transition:all .3s;display:inline-flex}.letter2-btn-secondary:hover{border-color:var(--letter2-ink);color:var(--letter2-ink)}@media (prefers-reduced-motion:reduce){.letter2-typewriter:after,.letter2-scroll-indicator{animation:none}}.letter4-page{--letter4-bg:#fffdf9;--letter4-ink:#2c2825;--letter4-muted:#8b8178;--letter4-accent:#5c534a;--letter4-warm:#d4a574;--letter4-cream:#f7f3ed;--letter4-border:#e8e2da;background-color:var(--letter4-bg)}.letter4-serif{letter-spacing:-.01em;font-family:Noto Serif KR,Georgia,Times New Roman,serif;font-weight:300}.letter4-handwritten{font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-style:italic;font-weight:400}.letter4-mono{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-weight:400}.letter4-hero{min-height:100vh;position:relative;overflow:hidden}.letter4-hero-bg{z-index:0;position:absolute;inset:0}.letter4-hero:after{content:"";pointer-events:none;background:radial-gradient(#0000 0%,#0000004d 100%);position:absolute;inset:0}.letter4-scroll-hint{animation:3s ease-in-out infinite letter4-float}@keyframes letter4-float{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(10px)}}.letter4-story{background-color:var(--letter4-bg);position:relative}.letter4-story em{color:var(--letter4-warm);font-style:normal;font-weight:400}.letter4-story--highlight{background:linear-gradient(180deg,var(--letter4-cream)0%,var(--letter4-bg)100%)}.letter4-story-decoration{flex-direction:column;align-items:center;display:flex;position:absolute;top:0;left:50%;transform:translate(-50%)}.letter4-story-decoration-line{background:linear-gradient(180deg,transparent 0%,var(--letter4-warm)50%,transparent 100%);width:1px;height:100px}.letter4-story-footer{position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.letter4-dot{background-color:var(--letter4-border);border-radius:50%;width:6px;height:6px}.letter4-photo{height:70vh;position:relative;overflow:hidden}@media (min-width:768px){.letter4-photo{height:80vh}}.letter4-photo-container{width:100%;height:100%;position:relative;overflow:hidden}.letter4-photo-image{background-repeat:no-repeat;background-size:cover;position:absolute;inset:-20px}.letter4-photo-overlay{pointer-events:none;background:linear-gradient(#fffdf91a 0%,#0000 30% 70%,#fffdf933 100%);position:absolute;inset:0}.letter4-film-grain{opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:absolute;inset:0}.letter4-quote{background:linear-gradient(180deg,var(--letter4-bg)0%,var(--letter4-cream)50%,var(--letter4-bg)100%);position:relative}.letter4-quote-decoration{color:var(--letter4-warm);opacity:.3;font-size:3em;line-height:1;position:absolute}.letter4-quote-decoration.left{top:-.3em;left:-.8em}.letter4-quote-decoration.right{bottom:-.5em;right:-.8em}@media (max-width:768px){.letter4-quote-decoration.left{left:-.4em}.letter4-quote-decoration.right{right:-.4em}}.letter4-closing{background-color:var(--letter4-bg);position:relative;overflow:hidden}.letter4-closing-bg{pointer-events:none;background:radial-gradient(at 30% 20%,#d4a57414 0%,#0000 50%),radial-gradient(at 70% 80%,#d4a5740d 0%,#0000 50%);position:absolute;inset:0}.letter4-closing em{font-style:normal;display:inline-block}.letter4-seal{border:2px solid var(--letter4-warm);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto;display:flex;position:relative}.letter4-seal:before{content:"";border:1px solid var(--letter4-warm);opacity:.5;border-radius:50%;position:absolute;inset:4px}.letter4-seal-text{color:var(--letter4-warm);letter-spacing:.05em;font-family:Noto Serif KR,serif;font-size:11px;font-weight:500}.letter4-footer-line{background:linear-gradient(90deg,transparent 0%,var(--letter4-border)50%,transparent 100%);width:60px;height:1px;margin:0 auto}.letter4-btn-primary{letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,var(--letter4-accent)0%,var(--letter4-ink)100%);border:none;border-radius:50px;justify-content:center;align-items:center;padding:16px 36px;font-family:inherit;font-size:14px;font-weight:500;transition:all .4s;display:inline-flex;box-shadow:0 4px 20px #2c282526}.letter4-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #2c282540}.letter4-btn-secondary{letter-spacing:.05em;color:var(--letter4-muted);border:1px solid var(--letter4-border);background-color:#0000;border-radius:50px;justify-content:center;align-items:center;padding:16px 36px;font-family:inherit;font-size:14px;font-weight:500;transition:all .4s;display:inline-flex}.letter4-btn-secondary:hover{border-color:var(--letter4-warm);color:var(--letter4-warm)}@media (prefers-reduced-motion:reduce){.letter4-scroll-hint{animation:none}.letter4-photo-image{transform:none!important}}.letter6-page{--letter6-bg:#fafaf7;--letter6-ink:#2f2b27;--letter6-muted:#7d756c;--letter6-border:#e7e0d7;--letter6-cream:#fafaf8;--letter6-accent:#6fb02d;--letter6-warm:#d4a574;background-color:var(--letter6-bg);color:var(--letter6-ink);background-image:radial-gradient(circle at 18% 8%,#ffffffe6,#0000 55%),radial-gradient(circle at 82% 0,#e7e0d78c,#0000 45%),linear-gradient(#fafaf7 0%,#f7f6f3 60%,#fff 100%)}.letter6-container{width:min(860px,100%);margin:0 auto;padding:0 24px}@media (max-width:640px){.letter6-container{padding:0 20px}}.letter6-serif{letter-spacing:-.01em;font-family:Noto Serif KR,Georgia,Times New Roman,serif;font-weight:300}.letter6-handwritten{color:var(--letter6-warm);font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-style:italic;font-weight:400}.letter6-mono{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-weight:400}.letter6-body{color:var(--letter6-ink);font-family:Noto Serif KR,Nanum Myeongjo,Georgia,serif;font-size:16px;font-weight:300;line-height:1.85}@media (min-width:768px){.letter6-body{font-size:17px}}.letter6-hero{min-height:100vh;position:relative;overflow:hidden}.letter6-hero-bg{z-index:0;position:absolute;inset:0}.letter6-hero:after{content:"";pointer-events:none;background:radial-gradient(#0000 0%,#0000004d 100%);position:absolute;inset:0}.letter6-scroll-hint{animation:3s ease-in-out infinite letter6-float}@keyframes letter6-float{0%,to{opacity:.5;transform:translateY(0)}50%{opacity:1;transform:translateY(10px)}}.letter6-section{padding-block:clamp(72px,12vh,120px)}.letter6-section--highlight{background-color:var(--letter6-cream);background-image:linear-gradient(#ffffffa6 0%,#fafaf8f2 100%);position:relative}.letter6-story{white-space:pre-line}.letter6-story em{color:var(--letter6-warm);font-style:normal;font-weight:400}.letter6-story--highlight{text-align:center;font-size:clamp(22px,4.5vw,34px);line-height:1.7}.letter6-story--highlight em{color:var(--letter6-accent)}.letter6-story--highlight strong{font-weight:500}.letter6-image-frame{border:1px solid var(--letter6-border);background-color:#fff;border-radius:18px;position:relative;overflow:hidden;box-shadow:0 24px 60px -50px #00000059}.letter6-image-frame--large{border-radius:22px;box-shadow:0 30px 70px -55px #0006}.letter6-image{object-fit:cover;width:100%;height:100%;display:block}.letter6-photo-wrapper{margin-block:clamp(48px,8vh,80px)}.letter6-photo{height:70vh;position:relative;overflow:hidden}@media (min-width:768px){.letter6-photo{height:80vh}}.letter6-photo-container{width:100%;height:100%;position:relative;overflow:hidden}.letter6-photo-image{object-fit:cover}.letter6-photo-overlay{pointer-events:none;background:linear-gradient(#fafaf71a 0%,#0000 30% 70%,#fafaf733 100%);position:absolute;inset:0}.letter6-film-grain{opacity:.03;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:absolute;inset:0}.letter6-quote-section{padding-block:clamp(64px,10vh,100px)}.letter6-quote{border-left:2px solid var(--letter6-border);color:var(--letter6-muted);background-color:#ffffffbf;border-radius:16px;padding:32px 28px;font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-size:clamp(18px,3.2vw,24px);font-style:italic;line-height:1.8}.letter6-quote--small{background-color:#fff9;font-size:clamp(16px,2.8vw,20px)}.letter6-closing{text-align:center;background:linear-gradient(#fafaf8b3 0%,#fffffff2 100%);padding-block:clamp(80px,14vh,140px)}.letter6-closing-paragraph{text-align:center}.letter6-closing-paragraph em{color:var(--letter6-warm);font-style:normal;font-weight:400}.letter6-closing-title{font-size:clamp(24px,4.5vw,34px);line-height:1.7}.letter6-closing-promise{text-align:center}.letter6-seal{border:2px solid var(--letter6-warm);border-radius:50%;justify-content:center;align-items:center;width:80px;height:80px;margin:0 auto;display:flex;position:relative}.letter6-seal:before{content:"";border:1px solid var(--letter6-warm);opacity:.5;border-radius:50%;position:absolute;inset:4px}.letter6-seal-text{color:var(--letter6-warm);letter-spacing:.05em;font-family:Noto Serif KR,serif;font-size:11px;font-weight:500}.letter6-signature,.letter6-cta-section{text-align:center}.letter6-footer-line{background:linear-gradient(90deg,transparent 0%,var(--letter6-border)50%,transparent 100%);width:60px;height:1px;margin:0 auto}.letter6-btn-primary{letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,var(--color-primary)0%,var(--color-primary-hover)100%);border:none;border-radius:50px;justify-content:center;align-items:center;padding:16px 36px;font-family:inherit;font-size:14px;font-weight:500;transition:all .4s;display:inline-flex;box-shadow:0 4px 20px #6fb02d40}.letter6-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6fb02d59}.letter6-btn-secondary{letter-spacing:.05em;color:var(--letter6-muted);border:1px solid var(--letter6-border);background-color:#0000;border-radius:50px;justify-content:center;align-items:center;padding:16px 36px;font-family:inherit;font-size:14px;font-weight:500;transition:all .4s;display:inline-flex}.letter6-btn-secondary:hover{border-color:var(--letter6-warm);color:var(--letter6-warm)}.letter6-reveal{opacity:0;transition:opacity .9s,transform .9s;transform:translateY(24px)}.letter6-reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.letter6-reveal{opacity:1;transition:none;transform:none}.letter6-scroll-hint{animation:none}}html.letter-scroll-snap,body.letter-scroll-snap{scroll-snap-type:y proximity;scroll-behavior:smooth;scroll-padding-top:72px}.letter-page{--letter-bg:#fafaf7;--letter-ink:#2f2b27;--letter-muted:#7d756c;--letter-border:#e7e0d7;--letter-cream:#fafaf8;--letter-accent:#6fb02d;--letter-warm:#c99a5e;background-color:var(--letter-bg);color:var(--letter-ink);background-image:radial-gradient(circle at 18% 8%,#ffffffe6,#0000 55%),radial-gradient(circle at 82% 0,#e7e0d773,#0000 45%),linear-gradient(#fafaf7 0%,#f7f6f3 60%,#fff 100%)}.letter-container{width:min(720px,100%);margin:0 auto;padding:0 28px}@media (max-width:640px){.letter-container{padding:0 24px}}.letter-serif{letter-spacing:-.01em;font-family:Noto Serif KR,Georgia,Times New Roman,serif;font-weight:300}.letter-handwritten{color:var(--letter-warm);font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-style:italic;font-weight:400}.letter-mono{font-family:JetBrains Mono,SF Mono,Consolas,monospace;font-weight:400}.letter-body{color:var(--letter-ink);text-align:center;font-family:Noto Serif KR,Nanum Myeongjo,Georgia,serif;font-size:15px;font-weight:300;line-height:2}@media (min-width:768px){.letter-body{font-size:17px;line-height:1.95}}.letter-slide{scroll-snap-align:start;min-height:100vh;scroll-margin-top:72px}.letter-slide-center{align-items:center;display:flex}.letter-hero{min-height:100vh;position:relative;overflow:hidden}.letter-hero-bg{z-index:0;position:absolute;inset:0}.letter-hero:after{content:"";pointer-events:none;background:radial-gradient(#0000 0%,#0003 100%);position:absolute;inset:0}.letter-scroll-hint{animation:3s ease-in-out infinite letter-float}@keyframes letter-float{0%,to{opacity:.5;transform:translate(-50%)translateY(0)}50%{opacity:1;transform:translate(-50%)translateY(8px)}}.letter-section{padding-block:clamp(60px,10vh,100px);position:relative}@media (min-width:768px){.letter-section{padding-block:clamp(72px,12vh,120px)}}.letter-section--highlight{background-color:var(--letter-cream);background-image:linear-gradient(#ffffff80 0%,#fafaf8f2 100%)}.letter-story em{color:var(--letter-warm);font-style:normal;font-weight:400}.letter-story--highlight{font-size:clamp(19px,4vw,32px);line-height:1.85}@media (min-width:768px){.letter-story--highlight{font-size:clamp(22px,4.6vw,36px);line-height:1.7}}.letter-story--highlight em{color:var(--letter-accent)}.letter-story--highlight strong{font-weight:500}.letter-photo{height:70vh;position:relative;overflow:hidden}@media (min-width:768px){.letter-photo{height:85vh}}.letter-photo--medium{scroll-snap-align:none;height:50vh}@media (min-width:768px){.letter-photo--medium{height:60vh}}.letter-photo--small{scroll-snap-align:none;height:40vh}@media (min-width:768px){.letter-photo--small{height:50vh}}.letter-photo-container{width:100%;height:100%;position:relative;overflow:hidden}.letter-photo-image{will-change:transform;background-repeat:no-repeat;background-size:cover;position:absolute;inset:-15px}@media (min-width:768px){.letter-photo-image{inset:-20px}}.letter-photo-overlay{pointer-events:none;background:linear-gradient(#fafaf714 0%,#0000 25% 75%,#fafaf726 100%);position:absolute;inset:0}.letter-photo-text-overlay{z-index:5;background:linear-gradient(#0003 0%,#00000073 50%,#0003 100%);justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.letter-photo-text-content{text-align:center;max-width:650px;padding:32px 24px}.letter-photo-text-content p{color:#fff;text-shadow:0 2px 25px #0009,0 1px 8px #0006,0 0 40px #0000004d;font-family:Noto Serif KR,Nanum Myeongjo,Georgia,serif;font-size:clamp(16px,3.2vw,22px);font-weight:300;line-height:1.85}.letter-photo-text-content p+p{margin-top:16px}@media (min-width:768px){.letter-photo-text-content{padding:40px 32px}.letter-photo-text-content p{font-size:clamp(19px,2.8vw,26px);line-height:1.8}.letter-photo-text-content p+p{margin-top:20px}}.letter-photo-text-content em{color:#fff;text-shadow:0 2px 25px #000000b3,0 1px 10px #00000080;background:linear-gradient(#0000 65%,#ffffff40 65%);font-style:normal;font-weight:400}.letter-film-grain{opacity:.025;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");position:absolute;inset:0}.letter-quote-section{padding-block:clamp(56px,9vh,90px)}@media (min-width:768px){.letter-quote-section{padding-block:clamp(64px,10vh,100px)}}.letter-quote{border-left:2px solid var(--letter-border);color:var(--letter-muted);text-align:center;background-color:#ffffffb3;border-radius:12px;padding:24px 20px;font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-size:clamp(16px,2.8vw,22px);font-style:italic;line-height:1.9}@media (min-width:768px){.letter-quote{border-radius:16px;padding:32px 28px;font-size:clamp(18px,3.2vw,24px);line-height:1.8}}.letter-quote--small{background-color:#ffffff8c;font-size:clamp(15px,2.5vw,18px)}@media (min-width:768px){.letter-quote--small{font-size:clamp(16px,2.8vw,20px)}}.letter-quote--highlight{border-left:4px solid var(--letter-warm);box-shadow:0 4px 30px #00000014,0 0 60px rgba(var(--letter-warm-rgb,180,130,100),.1);color:var(--letter-text);background:linear-gradient(135deg,#ffffffe6 0%,#faf8f5f2 100%);border-radius:16px;padding:32px 28px;font-size:clamp(20px,4vw,32px);font-style:normal;font-weight:400}@media (min-width:768px){.letter-quote--highlight{border-radius:20px;padding:48px 40px;font-size:clamp(26px,4.5vw,40px)}}.letter-quote--highlight strong{color:var(--letter-warm);font-weight:500}.letter-quote--box{text-align:center;color:var(--letter-text);background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23e8e4dc' fill-opacity='0.15'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),linear-gradient(135deg,#fffffff2 0%,#faf8f5e6 50%,#fffffff2 100%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:1px solid #b4a08c33;border-radius:20px;max-width:500px;margin:0 auto;padding:40px 32px;font-size:clamp(16px,3vw,22px);font-style:normal;font-weight:400;line-height:1.8;position:relative;box-shadow:0 8px 40px #0000000f,0 2px 10px #0000000a,inset 0 1px #fffc}@media (min-width:768px){.letter-quote--box{border-radius:24px;padding:56px 48px;font-size:clamp(18px,3.5vw,26px);line-height:1.75}}.letter-quote--box:before{content:"✦";color:var(--letter-warm);opacity:.6;font-size:12px;position:absolute;top:20px;left:50%;transform:translate(-50%)}@media (min-width:768px){.letter-quote--box:before{font-size:14px;top:24px}}.letter-quote--box strong{color:var(--letter-warm);font-weight:500}.letter-closing{text-align:center;background:linear-gradient(#fafaf899 0%,#fffffff2 100%);padding-block:clamp(64px,12vh,120px)}@media (min-width:768px){.letter-closing{padding-block:clamp(80px,14vh,140px)}}.letter-closing-paragraph{text-align:center}.letter-closing-paragraph em{color:var(--letter-warm);font-style:normal;font-weight:400}.letter-closing-title{text-align:center;font-size:clamp(16px,3vw,22px);line-height:1.8}@media (min-width:768px){.letter-closing-title{font-size:clamp(18px,3.5vw,26px);line-height:1.75}}.letter-closing-promise{text-align:center}.letter-seal{border:2px solid var(--letter-warm);border-radius:50%;justify-content:center;align-items:center;width:72px;height:72px;margin:0 auto;display:flex;position:relative}@media (min-width:768px){.letter-seal{width:80px;height:80px}}.letter-seal:before{content:"";border:1px solid var(--letter-warm);opacity:.5;border-radius:50%;position:absolute;inset:4px}.letter-seal-text{color:var(--letter-warm);letter-spacing:.05em;font-family:Noto Serif KR,serif;font-size:10px;font-weight:500}@media (min-width:768px){.letter-seal-text{font-size:11px}}.letter-seal--large{border-width:2.5px;width:110px;height:110px}@media (min-width:768px){.letter-seal--large{border-width:3px;width:130px;height:130px}}.letter-seal--large:before{border-width:1.5px;inset:6px}.letter-seal-text--large{letter-spacing:.08em;font-size:15px}@media (min-width:768px){.letter-seal-text--large{font-size:17px}}.letter-signature,.letter-cta-section{text-align:center}.letter-closing-box{text-align:center;position:relative}.letter-closing-box-inner{background-color:#0000;background-image:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23e8e4dc' fill-opacity='0.15'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E"),linear-gradient(135deg,#fffffff2 0%,#faf8f5e6 50%,#fffffff2 100%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:scroll;background-origin:padding-box;background-clip:border-box;border:1px solid #b4a08c33;border-radius:20px;max-width:420px;margin:0 auto;padding:40px 32px;position:relative;box-shadow:0 8px 40px #0000000f,0 2px 10px #0000000a,inset 0 1px #fffc}@media (min-width:768px){.letter-closing-box-inner{border-radius:24px;max-width:500px;padding:56px 48px}}.letter-closing-box-inner:before{content:"✦";color:var(--letter-warm);opacity:.6;font-size:12px;position:absolute;top:20px;left:50%;transform:translate(-50%)}@media (min-width:768px){.letter-closing-box-inner:before{font-size:14px;top:24px}}@media (min-width:768px){.letter-footer-line{width:60px}}.letter-btn-primary{letter-spacing:.08em;color:#fff;background:linear-gradient(135deg,var(--color-primary)0%,var(--color-primary-hover)100%);border:none;border-radius:50px;justify-content:center;align-items:center;padding:14px 28px;font-family:inherit;font-size:13px;font-weight:500;transition:all .4s;display:inline-flex;box-shadow:0 4px 16px #6fb02d38}@media (min-width:768px){.letter-btn-primary{padding:16px 36px;font-size:14px;box-shadow:0 4px 20px #6fb02d40}}.letter-btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 30px #6fb02d59}.letter-btn-secondary{letter-spacing:.05em;color:var(--letter-muted);border:1px solid var(--letter-border);background-color:#0000;border-radius:50px;justify-content:center;align-items:center;padding:14px 28px;font-family:inherit;font-size:13px;font-weight:500;transition:all .4s;display:inline-flex}@media (min-width:768px){.letter-btn-secondary{padding:16px 36px;font-size:14px}}.letter-btn-secondary:hover{border-color:var(--letter-warm);color:var(--letter-warm)}.letter-reveal{opacity:0;transition:opacity 1s,transform 1s;transform:translateY(28px)}.letter-reveal.is-visible{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){html.letter-scroll-snap,body.letter-scroll-snap{scroll-behavior:auto}.letter-reveal{opacity:1;transition:none;transform:none}.letter-photo-image{transform:none!important}.letter-scroll-hint{animation:none}}.letter-page{--letter-bg:#fafaf7;--letter-ink:#2f2b27;--letter-muted:#7d756c;--letter-border:#e7e0d7;--letter-cream:#fafaf8;--letter-accent:#6fb02d;--letter-warm:#c99a5e;background-color:var(--letter-bg);color:var(--letter-ink);overflow:hidden}.letter-carousel{width:100%;height:100dvh;position:relative}.letter-viewport{touch-action:pan-x pinch-zoom;width:100%;height:100%;overflow:hidden}.letter-container{flex-direction:column;width:100%;height:100%;margin:0;padding:0;display:flex}.letter-slide{flex:0 0 100%;justify-content:center;align-items:center;width:100%;height:100dvh;display:flex;position:relative;overflow:hidden}.letter-slide-bg{opacity:.9;background-position:50%;background-repeat:no-repeat;background-size:cover;transition:transform 1.5s ease-out,opacity 1s ease-out;position:absolute;inset:0;transform:scale(1.05)}.letter-slide-bg--visible{opacity:1;transform:scale(1)}.letter-slide-overlay{pointer-events:none;position:absolute;inset:0}.letter-slide-overlay--hero{background:linear-gradient(#0000004d 0%,#0000001a 40%,#0006 100%)}.letter-slide-overlay--photo{background:linear-gradient(#00000026 0%,#0006 50%,#00000026 100%)}.letter-slide--hero{text-align:center}.letter-hero-content{z-index:10;opacity:0;flex-direction:column;align-items:center;padding:24px;transition:all 1.2s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(30px)}.letter-hero-content--visible{opacity:1;transform:translateY(0)}.letter-hero-date{letter-spacing:.4em;color:#ffffffb3;margin-bottom:24px;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}@media (min-width:768px){.letter-hero-date{letter-spacing:.5em;margin-bottom:32px;font-size:12px}}.letter-hero-title{letter-spacing:.05em;color:#fff;font-family:Noto Serif KR,Georgia,Times New Roman,serif;font-size:26px;font-weight:300;line-height:1.5}@media (min-width:768px){.letter-hero-title{font-size:48px;line-height:1.6}}@media (min-width:1024px){.letter-hero-title{font-size:56px}}.letter-hero-accent{color:#c99a5e;font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-size:30px;font-style:italic}@media (min-width:768px){.letter-hero-accent{font-size:56px}}@media (min-width:1024px){.letter-hero-accent{font-size:64px}}.letter-scroll-hint{color:#ffffff80;flex-direction:column;align-items:center;gap:8px;animation:3s ease-in-out infinite letter-float;display:flex;position:absolute;bottom:40px;left:50%;transform:translate(-50%)}.letter-scroll-hint span{letter-spacing:.1em;font-size:11px}.letter-scroll-icon{width:20px;height:20px}.letter-slide--story{background-color:var(--letter-bg);background-image:radial-gradient(circle at 18% 8%,#ffffffe6,#0000 55%),radial-gradient(circle at 82% 0,#e7e0d773,#0000 45%),linear-gradient(#fafaf7 0%,#f7f6f3 60%,#fff 100%)}.letter-slide--highlight{background-color:var(--letter-cream);background-image:linear-gradient(#ffffff80 0%,#fafaf8f2 100%)}.letter-story-content{z-index:10;opacity:0;max-width:720px;padding:0 28px;transition:all 1s cubic-bezier(.16,1,.3,1);position:relative;transform:translateY(40px)}.letter-story-content--visible{opacity:1;transform:translateY(0)}.letter-story-text{letter-spacing:-.01em;color:var(--letter-ink);font-family:Noto Serif KR,Georgia,Times New Roman,serif;font-size:clamp(17px,3.5vw,24px);font-weight:300;line-height:2}@media (min-width:768px){.letter-story-text{font-size:clamp(20px,4vw,30px);line-height:1.95}}.letter-story-text em{color:var(--letter-warm);font-style:normal;font-weight:400}.letter-slide--highlight .letter-story-text{font-size:clamp(19px,4vw,32px);line-height:1.85}@media (min-width:768px){.letter-slide--highlight .letter-story-text{font-size:clamp(22px,4.6vw,36px);line-height:1.7}}.letter-slide--photo{background-color:#1a1a1a}.letter-photo-text{z-index:10;text-align:center;opacity:0;max-width:650px;padding:32px 24px;transition:all 1s cubic-bezier(.16,1,.3,1) .3s;position:relative;transform:translateY(30px)}.letter-photo-text--visible{opacity:1;transform:translateY(0)}.letter-photo-text p{color:#fff;text-shadow:0 2px 25px #0009,0 1px 8px #0006,0 0 40px #0000004d;font-family:Noto Serif KR,Nanum Myeongjo,Georgia,serif;font-size:clamp(16px,3.2vw,22px);font-weight:300;line-height:1.85}.letter-photo-text p+p{margin-top:16px}@media (min-width:768px){.letter-photo-text{padding:40px 32px}.letter-photo-text p{font-size:clamp(19px,2.8vw,26px);line-height:1.8}.letter-photo-text p+p{margin-top:20px}}.letter-photo-text em{color:#fff;background:linear-gradient(#0000 65%,#ffffff40 65%);font-style:normal;font-weight:400}.letter-slide--quote{background-color:var(--letter-cream);background-image:linear-gradient(#fffc 0%,#fafaf8 50%,#fffc 100%)}.letter-quote-content{z-index:10;opacity:0;max-width:720px;padding:0 28px;transition:all 1s cubic-bezier(.16,1,.3,1);position:relative;transform:scale(.95)}.letter-quote-content--visible{opacity:1;transform:scale(1)}.letter-quote-text{text-align:center;color:var(--letter-ink);border:1px solid var(--letter-border);background:#fff9;padding:32px;font-family:Noto Serif KR,Georgia,serif;font-size:clamp(18px,4vw,28px);font-weight:300;line-height:1.9;box-shadow:0 4px 40px #0000000d}@media (min-width:768px){.letter-quote-text{padding:48px 56px;font-size:clamp(22px,4.5vw,34px)}}.letter-quote-text strong{color:var(--letter-warm);font-weight:400}.letter-slide--closing{background-color:var(--letter-bg);overscroll-behavior:contain;touch-action:pan-y;background-image:radial-gradient(circle at 18% 8%,#ffffffe6,#0000 55%),linear-gradient(#fafaf7 0%,#f7f6f3 60%,#fff 100%);padding:40px 24px;overflow-y:auto}.letter-closing-content{z-index:10;opacity:0;flex-direction:column;align-items:center;gap:32px;width:100%;max-width:720px;transition:all 1s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(30px)}.letter-closing-content--visible{opacity:1;transform:translateY(0)}.letter-closing-text{text-align:center;color:var(--letter-ink);font-family:Noto Serif KR,Georgia,serif;font-size:clamp(15px,3vw,20px);font-weight:300;line-height:2}.letter-closing-text em{color:var(--letter-warm);font-style:normal;font-weight:400}.letter-closing-box{border:1px solid var(--letter-border);text-align:center;background:#ffffffb3;padding:28px 32px}.letter-closing-box p{color:var(--letter-ink);font-family:Noto Serif KR,Georgia,serif;font-size:clamp(16px,3.2vw,22px);font-weight:300;line-height:1.8}.letter-handwritten{color:var(--letter-warm);font-family:Nanum Myeongjo,Noto Serif KR,Georgia,serif;font-size:1.1em;font-style:italic}.letter-seal{border:2px solid var(--letter-warm);width:80px;height:80px;color:var(--letter-warm);letter-spacing:.05em;border-radius:50%;justify-content:center;align-items:center;font-family:Noto Serif KR,Georgia,serif;font-size:11px;font-weight:500;display:flex}@media (min-width:768px){.letter-seal{width:100px;height:100px;font-size:13px}}.letter-cta{text-align:center}.letter-cta-text{color:var(--letter-muted);margin-bottom:20px;font-family:Noto Serif KR,Georgia,serif;font-size:clamp(14px,2.8vw,17px);font-weight:300;line-height:1.8}.letter-cta-buttons{flex-direction:column;align-items:center;gap:12px;display:flex}@media (min-width:640px){.letter-cta-buttons{flex-direction:row;justify-content:center;gap:16px}}.letter-btn-primary{background:var(--letter-ink);color:#fff;letter-spacing:.05em;justify-content:center;align-items:center;padding:14px 32px;font-family:Noto Serif KR,Georgia,serif;font-size:14px;font-weight:400;text-decoration:none;transition:all .3s;display:inline-flex}.letter-btn-primary:hover{background:#1a1714;transform:translateY(-2px)}.letter-btn-secondary{border:1px solid var(--letter-border);color:var(--letter-ink);letter-spacing:.05em;background:0 0;justify-content:center;align-items:center;padding:14px 24px;font-family:Noto Serif KR,Georgia,serif;font-size:14px;font-weight:400;text-decoration:none;transition:all .3s;display:inline-flex}.letter-btn-secondary:hover{border-color:var(--letter-ink);background:#00000008}.letter-footer{text-align:center;width:100%;max-width:400px}.letter-footer-line{background:var(--letter-border);width:60px;height:1px;margin:0 auto 16px}.letter-footer-text{letter-spacing:.4em;color:var(--letter-muted);text-transform:uppercase;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.letter-slide--cta{background-color:var(--letter-bg);background-image:radial-gradient(circle at 18% 8%,#ffffffe6,#0000 55%),linear-gradient(#fafaf7 0%,#f7f6f3 60%,#fff 100%);padding:40px 24px}.letter-cta-content{z-index:10;opacity:0;flex-direction:column;align-items:center;gap:40px;width:100%;max-width:720px;transition:all 1s cubic-bezier(.16,1,.3,1);display:flex;position:relative;transform:translateY(30px)}.letter-cta-content--visible{opacity:1;transform:translateY(0)}.letter-seal--large{width:100px;height:100px;font-size:13px}@media (min-width:768px){.letter-seal--large{width:120px;height:120px;font-size:15px}}.letter-cta-message{text-align:center;color:var(--letter-ink);font-family:Noto Serif KR,Georgia,serif;font-size:clamp(18px,3.5vw,24px);font-weight:300;line-height:2}.letter-cta-message em{color:var(--letter-warm);font-style:normal;font-weight:400}.letter-home-link{margin-top:8px}.letter-home-link a{color:var(--letter-muted);align-items:center;gap:8px;font-family:Noto Serif KR,Georgia,serif;font-size:clamp(13px,2.5vw,15px);font-weight:300;text-decoration:none;transition:color .3s;display:inline-flex}.letter-home-link a:hover{color:var(--letter-ink)}.letter-progress{z-index:100;flex-direction:column;align-items:center;gap:16px;display:flex;position:fixed;top:50%;right:20px;transform:translateY(-50%)}@media (max-width:767px){.letter-progress{right:12px}}.letter-progress-track{flex-direction:column;gap:8px;display:flex}.letter-progress-dot{cursor:pointer;background:#0003;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:all .3s}.letter-progress-dot:hover{background:#0006;transform:scale(1.2)}.letter-progress-dot--active{background:var(--letter-warm);transform:scale(1.3)}.letter-progress-counter{letter-spacing:.1em;color:var(--letter-muted);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px}.letter-progress-current{color:var(--letter-ink);font-weight:500}.letter-navigation{z-index:100;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:30px;right:20px}@media (max-width:767px){.letter-navigation{bottom:20px;right:12px}}.letter-nav-btn{border:1px solid var(--letter-border);cursor:pointer;background:#ffffffe6;border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:all .3s;display:flex;box-shadow:0 2px 10px #0000001a}.letter-nav-btn:hover:not(.letter-nav-btn--disabled){background:#fff;transform:scale(1.1);box-shadow:0 4px 15px #00000026}.letter-nav-btn--disabled{opacity:.3;cursor:not-allowed}.letter-nav-icon{width:18px;height:18px;color:var(--letter-ink)}@media (max-width:767px){.letter-progress-track{gap:6px}.letter-progress-dot{width:6px;height:6px}.letter-nav-btn{width:36px;height:36px}}@media (prefers-reduced-motion:reduce){.letter-hero-content,.letter-story-content,.letter-photo-text,.letter-quote-content,.letter-closing-content,.letter-slide-bg{opacity:1;transition:none;transform:none}.letter-scroll-hint{animation:none}}
