:root{--bg:#f6efe2;--bg-2:#efe5d2;--card:#fffaf0;--line:#e3d6bd;--text:#2f2721;--muted:#84776a;--accent:#a8322a;--accent-2:#7d241e;--ok:#2f6b47;--warn:#b0661a;--radius:18px;--shadow:0 10px 30px #50371e1f;--font:"Pretendard Variable", Pretendard, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Malgun Gothic", sans-serif;--serif:"Gowun Batang", "Noto Serif KR", Georgia, serif}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);min-height:100vh;color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;background-image:radial-gradient(900px 500px at 50% -150px,#fff8ea 0%,#0000 70%);line-height:1.6}a{color:var(--accent)}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;background:0 0;border:0}button:disabled{cursor:progress;opacity:.6}[hidden]{display:none!important}#app{max-width:600px;margin:0 auto;padding:0 16px 40px}.lang-banner{background:var(--text);color:#fff;justify-content:center;align-items:center;gap:8px;margin:0 -16px;padding:8px 16px;font-size:14px;display:flex}.lang-banner a{color:#fff;font-weight:700;text-decoration:none}.lang-banner-close{color:#fff;padding-inline:6px;font-size:18px}.inapp-banner{color:#191919;background:#fee500;align-items:center;gap:12px;margin:0 -16px;padding:12px 16px;font-size:14px;line-height:1.45;display:flex}.inapp-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.inapp-text strong{font-size:15px}.inapp-how{font-weight:700}.inapp-actions{flex:none;align-items:center;gap:4px;display:flex}.inapp-actions .btn{min-height:40px;padding:0 14px;font-size:14px}.inapp-actions .btn.primary{box-shadow:none;background:#191919;border-color:#191919}.inapp-close{color:#191919;width:32px;height:32px;font-size:20px}.site-header{justify-content:space-between;align-items:center;gap:12px;padding:16px 0;display:flex}.site-header .logo{flex:auto;min-width:0}.logo span{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.logo{color:var(--text);align-items:center;gap:6px;font-size:18px;font-weight:800;text-decoration:none;display:flex}.site-nav{flex:none;align-items:center;gap:10px;display:flex}.site-nav a{color:var(--text);white-space:nowrap;font-size:15px;font-weight:600;text-decoration:none}.site-nav a.active{color:var(--accent)}.nav-label{margin-inline-start:4px}.lang-select{border:1px solid var(--line);background:var(--card);border-radius:10px;max-width:104px;padding:6px 4px;font-size:14px}.badge{background:var(--accent);color:#fff;vertical-align:1px;border-radius:999px;margin-inline-start:4px;padding:0 7px;font-size:12px;font-weight:700;line-height:20px;display:inline-block}.site-footer{color:var(--muted);flex-wrap:wrap;justify-content:center;gap:6px;margin-top:48px;font-size:13px;display:flex}.site-footer a{color:var(--muted)}.page-title{margin:8px 0 18px;font-size:26px;font-weight:800}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:14px;padding:18px}.card h2{margin-bottom:8px;font-size:17px}.lead{color:var(--muted);font-size:16px}.hint{color:var(--muted);margin-top:8px;font-size:13px}.center{text-align:center;justify-content:center}.error{color:var(--accent);min-height:1.2em;margin-top:8px;font-size:14px;font-weight:600}.btn{background:var(--card);border:1px solid var(--line);min-height:46px;color:var(--text);white-space:nowrap;border-radius:14px;justify-content:center;align-items:center;gap:6px;padding:0 18px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .1s,background .2s;display:inline-flex}.btn:active:not(:disabled){transform:scale(.97)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;box-shadow:0 6px 18px #a8322a47}.btn.primary:hover{background:var(--accent-2)}.btn.big{min-height:54px;padding:0 22px;font-size:17px}.btn-row{flex-wrap:wrap;gap:8px;margin-top:12px;display:flex}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:8px 14px;font-size:14px;font-weight:600}.chip.selected{background:var(--text);border-color:var(--text);color:#fff}.toast{inset-inline-start:50%;z-index:100;opacity:0;pointer-events:none;background:var(--text);color:#fff;text-align:center;border-radius:16px;max-width:calc(100% - 32px);padding:10px 18px;font-size:14px;font-weight:600;transition:all .25s;position:fixed;bottom:28px;transform:translate(-50%,16px)}[dir=rtl] .toast{transform:translate(50%,16px)}.toast.show{opacity:1;transform:translate(-50%)}[dir=rtl] .toast.show{transform:translate(50%)}.empty{text-align:center;padding:40px 0}.empty-icon{margin-bottom:8px;font-size:48px}.empty h1{margin-bottom:6px;font-size:22px}.empty p{color:var(--muted);margin-bottom:16px}.envelope{aspect-ratio:3/2;perspective:900px;width:100%;max-width:360px;margin:0 auto;position:relative}.envelope.small{max-width:240px}.env-back,.env-front{border-radius:10px;position:absolute;inset:0}.env-back{background:var(--flap);box-shadow:var(--shadow)}.env-front{background:var(--envelope);clip-path:polygon(0 0,50% 52%,100% 0,100% 100%,0 100%);font-family:var(--serif);color:var(--ink);flex-direction:column;justify-content:flex-end;padding:16px 20px;display:flex}.env-to{margin-bottom:2px;font-size:17px;font-weight:700}.env-from{opacity:.8;text-align:end;font-size:14px}.env-to span,.env-from span{opacity:.6;font-size:.85em}.envelope.small .env-to{font-size:14px}.envelope.small .env-from{font-size:12px}.env-flap{background:var(--flap);clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;filter:brightness(.97);border-radius:10px 10px 0 0;height:56%;transition:transform .7s .35s;position:absolute;inset:0 0 auto}.env-seal{inset-inline-start:50%;margin-inline-start:-27px;background:radial-gradient(circle at 35% 30%, #ffffff59, transparent 45%), var(--seal);border-radius:50%;width:54px;height:54px;margin-top:-27px;transition:transform .4s,opacity .4s;position:absolute;top:46%;box-shadow:0 3px 8px #00000040,inset 0 0 0 4px #00000014}.env-seal:after{content:"";border:2px solid color-mix(in srgb, var(--seal-ink) 45%, transparent);border-radius:50%;position:absolute;inset:22%;box-shadow:inset 0 1px 2px #0000002e}.envelope.small .env-seal{margin-inline-start:-20px;width:40px;height:40px;margin-top:-20px}.envelope.stamping .env-seal{animation:.7s cubic-bezier(.2,1.4,.4,1) .3s both stamp}@keyframes stamp{0%{opacity:0;transform:scale(2.4)rotate(-20deg)}to{opacity:1;transform:scale(1)rotate(0)}}.envelope.opening .env-seal{opacity:0;transform:scale(1.3)}.envelope.opening .env-flap{z-index:-1;transform:rotateX(180deg)}.envelope.opening{animation:1.4s forwards lift}@keyframes lift{70%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-20px)}}.float{animation:5s ease-in-out infinite float}@keyframes float{50%{transform:translateY(-8px)rotate(-1deg)}}.hero{text-align:center;padding:20px 0 28px}.hero-envelope{margin-bottom:26px;position:relative}.hero-lock{inset-inline-end:6%;background:var(--text);color:#fff;border-radius:999px;padding:4px 10px;font-size:13px;font-weight:700;position:absolute;top:-10px}.hero h1{white-space:pre-line;word-break:keep-all;margin-bottom:12px;font-size:30px;font-weight:800;line-height:1.3}.hero .lead{word-break:keep-all;max-width:440px;margin:0 auto 22px}.cta-row{flex-wrap:wrap;justify-content:center;gap:10px;display:flex}.steps{gap:10px;margin-bottom:28px;display:grid}.step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);align-items:flex-start;gap:14px;padding:14px 16px;display:flex}.step-icon{font-size:24px;line-height:1.2}.step p{color:var(--muted);font-size:14px}.occasions h2{margin-bottom:10px;font-size:18px}.occasion-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.occasion{border-radius:var(--radius);background:var(--card);border:1px solid var(--line);color:var(--text);flex-direction:column;gap:2px;padding:14px;text-decoration:none;transition:transform .15s,box-shadow .15s;display:flex}.occasion:hover{box-shadow:var(--shadow);transform:translateY(-2px)}.occasion-emoji{font-size:24px}.occasion small{color:var(--muted);font-size:13px}.trust p{color:var(--muted);margin-bottom:8px;font-size:14px}.write-form fieldset{border:1px solid var(--line)}.write-form legend{margin-inline-start:-6px;padding:0 6px;font-weight:700}.paper{background:var(--paper);color:var(--ink);box-shadow:var(--shadow);font-family:var(--serif);background-image:repeating-linear-gradient(#0000 0 31px,#0000000f 31px 32px);border-radius:6px;margin-bottom:16px;padding:22px 20px 14px}.paper input,.paper textarea{color:var(--ink);font-family:var(--serif);background:0 0;border:0;outline:none}.paper input::placeholder,.paper textarea::placeholder{color:var(--ink);opacity:.4}.field-inline{align-items:baseline;gap:8px;font-size:17px;display:flex}.field-inline span{opacity:.55;font-size:14px}.field-inline input{flex:1;min-width:0;font-size:18px;font-weight:700}.field-inline.end{justify-content:flex-end}.field-inline.end input{text-align:end;flex:0 180px}.paper textarea{resize:vertical;width:100%;min-height:260px;margin:10px 0;font-size:17px;line-height:32px;display:block}.paper-meta{font-family:var(--font);opacity:.55;justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.paper-meta .warn{color:var(--warn);opacity:1;font-weight:700}.presets{margin-bottom:14px}.presets .chip{padding:10px 16px;font-size:15px}.pick-label{color:var(--muted);margin-bottom:6px;font-size:13px;display:block}.custom-date{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:100%;min-height:50px;padding:10px 14px;font-size:16px;font-weight:600;display:block}.when-summary{color:var(--muted);margin-top:10px;font-size:14px}.when-summary strong{color:var(--text)}.themes{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.theme-swatch{flex-direction:column;align-items:center;gap:4px;display:flex}.theme-swatch span{aspect-ratio:1;background:var(--envelope);border:2px solid #0000;border-radius:12px;width:100%;position:relative;box-shadow:inset 0 0 0 1px #0000000f}.theme-swatch span:after{content:"";inset-inline-start:50%;background:var(--seal);border-radius:50%;width:30%;height:30%;position:absolute;top:50%;transform:translate(-50%,-50%)}[dir=rtl] .theme-swatch span:after{transform:translate(50%,-50%)}.theme-swatch small{color:var(--muted);text-align:center;-webkit-hyphens:auto;hyphens:auto;word-break:keep-all;overflow-wrap:break-word;max-width:100%;font-size:11px;line-height:1.25}.theme-swatch.selected span{border-color:var(--text)}.custom-swatch span{background:conic-gradient(#e85d5d,#f2c14e,#7bc96f,#4fb3d9,#7d6be0,#e06bb8,#e85d5d)}.custom-swatch span:after{background:#fff;box-shadow:0 0 0 2px #0000001f}.custom-colors{flex-wrap:wrap;gap:10px;margin-top:14px;display:flex}.custom-colors label{border:1px solid var(--line);background:var(--bg);cursor:pointer;border-radius:12px;flex:140px;align-items:center;gap:10px;padding:8px 12px;font-size:14px;font-weight:600;display:flex}.custom-colors input[type=color]{cursor:pointer;background:0 0;border:0;border-radius:50%;flex:none;width:36px;height:36px;padding:0}.custom-colors input[type=color]::-webkit-color-swatch-wrapper{padding:0}.custom-colors input[type=color]::-webkit-color-swatch{border:2px solid #0000001f;border-radius:50%}.custom-colors input[type=color]::-moz-color-swatch{border:2px solid #0000001f;border-radius:50%}.theme-swatch.selected small{color:var(--text);font-weight:700}.preview{margin:8px 0 4px}.sticky-bottom{padding:12px 0 calc(12px + env(safe-area-inset-bottom));text-align:center;background:linear-gradient(transparent, var(--bg) 30%);position:sticky;bottom:0}.sticky-bottom .btn{width:100%}.sealed-hero{text-align:center;padding:18px 0 22px}.stamp-scene{margin-bottom:22px}.sealed-hero h1{margin-bottom:6px;font-size:28px}.sealed-hero .lead strong{color:var(--text)}.link-box{gap:8px;display:flex}.link-box input{border:1px solid var(--line);background:var(--bg);min-width:0;height:46px;color:var(--muted);border-radius:12px;flex:1;padding:0 12px;font-size:13px}.qr{place-items:center;margin-top:14px;display:grid}.qr svg{background:#fff;border-radius:8px;width:min(280px,100%);height:auto}.warn-card{background:#fff3e0;border-color:#f0d2a8}.warn-card p{color:#6b4a2a;margin-top:4px;font-size:14px}.backup-card{margin-top:18px}.backup-card>p{color:var(--muted);font-size:14px}.backup-card.warn-card>p{color:#6b4a2a}.backup-status{margin-top:8px;font-weight:700}.open-hero{text-align:center;padding:12px 0 18px}.eyebrow{color:var(--accent);margin-bottom:18px;font-size:14px;font-weight:700}.open-envelope{margin-bottom:20px}.open-date{color:var(--muted)}.open-date strong{color:var(--text)}.countdown{justify-content:center;gap:8px;min-height:76px;margin:16px 0;display:flex}.cd-cell{background:var(--card);border:1px solid var(--line);border-radius:14px;flex-direction:column;align-items:center;min-width:70px;padding:10px 6px;display:flex}.cd-cell b{font-variant-numeric:tabular-nums;font-size:26px;font-weight:800;line-height:1.2}.cd-cell span{color:var(--muted);font-size:12px}.countdown .ready{color:var(--ok);align-self:center;font-size:18px;font-weight:800}#open-btn{animation:1.8s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 10px #a8322a1f}}.saved-note{margin-top:12px}.cta-card{text-align:center}.cta-card p{color:var(--muted);margin-bottom:10px}.letter{background:var(--paper);color:var(--ink);font-family:var(--serif);box-shadow:var(--shadow);background-image:repeating-linear-gradient(#0000 0 33px,#0000000d 33px 34px);border-radius:6px;margin:12px 0 16px;padding:32px 26px}.letter.reveal{animation:.9s cubic-bezier(.2,.8,.3,1) both reveal}@keyframes reveal{0%{opacity:0;transform:translateY(40px)scale(.97)}to{opacity:1;transform:none}}.letter-to{margin-bottom:14px;font-size:19px;font-weight:700}.letter-body{white-space:pre-wrap;word-break:break-word;font-size:17px;line-height:34px}.letter-from{text-align:end;margin-top:22px;font-size:17px;font-weight:700}.letter-meta{text-align:end;font-family:var(--font);opacity:.5;margin-top:8px;font-size:12px}.tabs{gap:6px;margin-bottom:14px;display:flex}.tab{background:var(--bg-2);color:var(--muted);border-radius:12px;flex:1;padding:10px;font-weight:700}.tab small{opacity:.7;font-weight:600}.tab.active{background:var(--text);color:#fff}.box-list{gap:8px;list-style:none;display:grid}.box-item{background:var(--card);border:1px solid var(--line);border-radius:14px;align-items:center;display:flex;position:relative}.box-item.is-ready{border-color:var(--accent);box-shadow:0 0 0 3px #a8322a1a}.box-item a{min-width:0;color:var(--text);flex:1;align-items:center;gap:12px;padding:14px;text-decoration:none;display:flex}.box-seal{border-radius:50%;flex:none;width:30px;height:30px;box-shadow:inset 0 0 0 3px #0000001f}.box-main{flex-direction:column;flex:1;min-width:0;display:flex}.box-main strong{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.box-main small{color:var(--muted);font-size:12px}.box-status{color:var(--muted);flex:none;font-size:13px;font-weight:800}.is-ready .box-status{color:var(--accent)}.box-delete{width:40px;height:40px;color:var(--muted);border-radius:10px;flex:none;margin-inline-end:6px;font-size:20px}.box-delete:hover{background:var(--bg-2)}.prose p,.prose li{font-size:15px}.how-list{gap:10px;margin:6px 0 4px;padding-inline-start:20px;display:grid}.faq h2{margin:22px 0 10px;font-size:18px}.faq details{padding:0}.faq summary{cursor:pointer;padding:16px 18px;font-weight:700;list-style:none}.faq summary::-webkit-details-marker{display:none}.faq summary:after{content:"+";float:inline-end;color:var(--muted)}.faq details[open] summary:after{content:"−"}.faq details p{color:var(--muted);padding:0 18px 16px;font-size:15px}@media (max-width:480px){.nav-label{display:none}}@media (max-width:380px){.hero h1{font-size:25px}.themes{grid-template-columns:repeat(4,minmax(0,1fr))}.cd-cell{min-width:60px}.cd-cell b{font-size:22px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}.group-lead{word-break:keep-all;margin:-6px 0 18px}.field{flex-direction:column;gap:6px;font-size:14px;font-weight:700;display:flex}.field input,.group-fields input,.group-fields textarea,.merge-card textarea{border:1px solid var(--line);background:var(--bg);border-radius:12px;width:100%;padding:12px 14px;font-size:16px;font-weight:500}.group-fields{gap:8px;display:grid}.group-fields textarea,.merge-card textarea{resize:vertical;font-family:var(--serif);line-height:1.6}.group-fields .paper-meta{opacity:.7}.themes.themes-6{grid-template-columns:repeat(6,minmax(0,1fr))}.group-hero .open-envelope .envelope{max-width:260px}.group-title{word-break:keep-all;margin:16px 0 4px;font-size:26px;font-weight:800}.group-members{color:var(--muted);margin-bottom:6px;font-weight:600}.notice{text-align:center;color:var(--ok);margin-bottom:12px;font-size:14px;font-weight:600}.warn-text{color:var(--warn);font-weight:600}#write-form .btn{width:100%;margin-top:10px}.merge-card summary{cursor:pointer;font-weight:700}.merge-card textarea{font-family:var(--font);margin:10px 0;font-size:13px}.group-opened{text-align:center;padding-top:8px}.group-grid{text-align:start;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px;margin:18px 0;display:grid}.group-card{margin:0;padding:22px 20px}.group-card .letter-body{font-size:16px;line-height:30px}.group-card .letter-from{margin-top:14px;font-size:15px}
