:root{--navy:#071631;--navy2:#0b2851;--gold:#ffca69;--cream:#fff8e9;--ink:#182039;--pink:#ff7891;--coral:#ff765f;--muted:#777f91;--line:#e8e8ef;--lantern:#ff7891}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:"Noto Sans KR","Apple SD Gothic Neo","Malgun Gothic",sans-serif;background:#dfe4ec;color:var(--ink)}button{font:inherit}.app-shell{position:relative;width:min(100%,430px);min-height:100vh;margin:auto;background:#fff;overflow:hidden;box-shadow:0 0 50px #55607038}.topbar{height:58px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 14px;position:absolute;top:0;z-index:20;width:100%;color:#fff}.brand{justify-self:center;color:inherit;border:0;background:none;font-weight:900;letter-spacing:-.6px;cursor:pointer}.icon-btn{justify-self:start;border:0;background:#ffffff18;color:inherit;width:36px;height:36px;border-radius:50%;font-size:18px;cursor:pointer}.phase-badge{justify-self:end;white-space:nowrap;font-size:8px;font-weight:800;padding:5px 8px;border-radius:20px;background:#ffffff1c;border:1px solid #ffffff26}.screen{display:none;min-height:100vh;padding-top:58px;background:#fff}.screen.active{display:block}.night-screen{color:#fff;background:var(--navy)}
.hero{height:65vh;min-height:535px;position:relative;overflow:hidden;background:radial-gradient(circle at 72% 20%,#153f70 0,#0a254b 32%,#06162f 75%)}.stars,.stars:before{position:absolute;inset:0;content:"";background-image:radial-gradient(#fff 1px,transparent 1px);background-size:33px 39px;opacity:.35}.stars:before{transform:translate(17px,13px);background-size:49px 54px}.moon{position:absolute;width:38px;height:38px;border-radius:50%;right:42px;top:68px;background:#ffd782;box-shadow:0 0 25px #ffd78288}.castle{position:absolute;bottom:27%;left:0;width:100%;height:75px;display:flex;gap:3px;align-items:end;justify-content:center;filter:drop-shadow(0 0 10px #ffc76666)}.castle span{width:92px;height:36px;background:#101b26;border-top:5px solid #e4a74d;clip-path:polygon(0 10%,42% 10%,47% 0,53% 0,58% 10%,100% 10%,90% 35%,86% 35%,86% 100%,14% 100%,14% 35%,10% 35%)}.castle span:nth-child(2){height:62px;width:110px}.river{position:absolute;bottom:0;height:29%;width:100%;background:linear-gradient(#112b4d,#071c3d);border-top:1px solid #ffc76644}.river:after{content:"";position:absolute;inset:0;background:repeating-linear-gradient(170deg,transparent 0 13px,#ffca6915 14px 16px);animation:water 8s linear infinite}.float-lantern{position:absolute;z-index:2;width:17px;height:20px;background:#ffc767;border-radius:3px;box-shadow:0 0 12px #ffb73d;animation:float 3s ease-in-out infinite}.l1{left:8%;top:22%}.l2{left:27%;top:60%;animation-delay:-1s}.l3{left:46%;top:30%;animation-delay:-2s}.l4{left:62%;top:65%}.l5{left:78%;top:20%;animation-delay:-1.4s}.l6{left:90%;top:53%;animation-delay:-2.4s}.hero-copy{position:absolute;top:91px;left:27px;z-index:3}.eyebrow{font-size:10px;font-weight:900;letter-spacing:2px;color:var(--gold);margin:0 0 11px}.eyebrow.dark{color:#d87559}.hero h1{font-size:30px;line-height:1.3;letter-spacing:-1.5px;margin:0 0 15px}.hero h1 em{color:var(--gold);font-style:normal}.hero-copy>p:last-child{font-size:14px;line-height:1.7;color:#d4dded}.home-card{position:relative;margin:-25px 17px 24px;border-radius:25px;background:#fff;padding:19px 16px 28px;z-index:5;color:var(--ink);box-shadow:0 16px 34px #020b1d52}.free-chip{font-size:12px;color:#586071;text-align:center;margin-bottom:14px}.free-chip span{display:inline-block;background:#fff0e9;color:#dc664e;font-weight:900;border-radius:20px;padding:4px 8px;margin-right:5px}.primary,.secondary{width:100%;min-height:54px;border-radius:14px;font-weight:900;border:0;cursor:pointer}.primary{background:linear-gradient(135deg,#ff735f,#ff9d72);color:#fff;box-shadow:0 10px 24px #ff82683c;padding:0 18px}.primary b{float:right;font-size:18px}.secondary{background:#f2f4f8;color:#3a4252;margin-top:10px;padding:0 15px}.secondary small{float:right;color:#a0a6b3;font-size:9px}.mini-note{text-align:center;font-size:10px;color:#9299a8;margin:12px 0 0;line-height:1.55}.step-head{padding:13px 22px 0;display:flex;align-items:center;gap:12px}.step-head span{font-size:10px;font-weight:900;color:#df7355}.step-head div{height:5px;flex:1;background:#eee;border-radius:10px;overflow:hidden}.step-head i{display:block;height:100%;background:linear-gradient(90deg,#ff735f,#ffba72)}.content{padding:26px 22px 112px}.content h2{font-size:29px;letter-spacing:-1.4px;line-height:1.28;margin:0 0 10px}.sub{font-size:13px;line-height:1.6;color:var(--muted);margin:0 0 23px}.wish-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.wish{min-height:107px;border:1.5px solid var(--line);background:#fff;border-radius:17px;padding:13px;text-align:left;color:var(--ink);transition:.2s;cursor:pointer}.wish.wide{grid-column:1/-1;min-height:84px}.wish.selected{border-color:var(--lantern);background:#fff8f7;box-shadow:0 5px 16px #ff789120;transform:translateY(-1px)}.wish span{display:block;width:33px;height:33px;border-radius:11px;background:#f6f7fa;text-align:center;line-height:33px;color:#d96474;margin-bottom:8px;font-weight:900}.wish.wide span{display:inline-block;margin:0 10px 0 0;vertical-align:middle}.wish.wide b,.wish.wide small{display:inline-block}.wish.wide small{margin-left:8px}.wish b,.wish small{display:block}.wish b{font-size:14px}.wish small{font-size:10px;color:#9298a5;margin-top:3px}.recommend{display:flex;gap:10px;align-items:center;background:#fff8e9;border:1px solid #f0dfbc;border-radius:14px;padding:12px;margin-top:14px}.recommend>span{background:#e9805c;color:#fff;border-radius:20px;padding:5px 8px;font-size:9px;font-weight:900}.recommend p{margin:0}.recommend b,.recommend small{display:block}.recommend b{font-size:11px}.recommend small{font-size:9px;color:#8d8271;margin-top:3px}.sticky{position:fixed;z-index:30;bottom:0;width:min(100%,430px);padding:12px 20px max(18px,env(safe-area-inset-bottom));background:linear-gradient(transparent,#fff 28%)}
.decorate-content{padding-bottom:130px}.selection-line{display:flex;justify-content:space-between;align-items:center;margin-top:18px}.selection-line span{background:#fff0e9;color:#d76650;padding:6px 10px;border-radius:20px;font-size:10px;font-weight:900}.selection-line small{color:#8b92a1}.lantern-stage{height:295px;border-radius:22px;background:radial-gradient(circle at 50% 46%,#234f76,#081a37 70%);display:grid;place-items:center;position:relative;overflow:hidden;margin:14px 0}.stage-stars{position:absolute;inset:0;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:29px 31px;opacity:.2}.halo{position:absolute;width:190px;height:190px;border-radius:50%;background:var(--lantern);opacity:.25;filter:blur(21px)}.big-lantern{position:relative;width:117px;z-index:2;filter:drop-shadow(0 12px 18px #0004);transition:.25s}.big-lantern .cap,.big-lantern .base{height:15px;background:#785332;border-radius:8px;transition:.25s}.big-lantern .cap{width:84px;margin:auto}.big-lantern .body{height:142px;border:7px solid #95633a;background-color:var(--lantern);display:grid;place-items:center;box-shadow:inset 0 0 25px #fff9,0 0 35px var(--lantern);transition:.25s}.shape-round .body{border-radius:28px 28px 18px 18px}.shape-square .body{border-radius:8px}.shape-square .cap{width:100px}.shape-jar .body{border-radius:46% 46% 30% 30%;transform:scaleX(1.16)}.shape-jar .base{width:78px}.big-lantern .body span{font-size:42px;color:#fff8df;text-shadow:0 2px 5px #714b4d;z-index:2}.pattern-flower .body{background-image:radial-gradient(circle at 25% 25%,#fff5 0 5px,transparent 6px),radial-gradient(circle at 75% 70%,#fff4 0 5px,transparent 6px)}.pattern-wave .body{background-image:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 13px,#fff4 14px 16px)}.pattern-plain .body{background-image:none}.big-lantern .base{width:106px;margin:auto}.tassel{width:6px;height:55px;background:#b85c47;margin:auto;position:relative}.tassel:after{content:"";position:absolute;width:30px;height:38px;background:#d36d55;clip-path:polygon(25% 0,75% 0,100% 100%,0 100%);left:-12px;bottom:-29px}.tassel-ribbon:after{clip-path:polygon(0 0,45% 20%,50% 0,55% 20%,100% 0,75% 100%,50% 65%,25% 100%)}.tassel-none{display:none}.lantern-stage>p{position:absolute;bottom:12px;color:#b9c6d8;font-size:9px}.custom-panel{border:1px solid var(--line);border-radius:18px;padding:4px 14px}.control-group{padding:14px 0;border-bottom:1px solid #eff0f3}.control-group.last{border:0}.control-title{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.control-title b{font-size:12px}.control-title small{font-size:9px;color:#e17158}.option-row{display:flex;gap:7px}.option{flex:1;border:1px solid var(--line);border-radius:10px;background:#f8f9fb;color:#737b8b;padding:9px 4px;font-size:10px;cursor:pointer}.option.active{background:#fff0e9;border-color:#f3a18d;color:#d85f49;font-weight:900}.swatches{display:flex;justify-content:space-between;padding:3px}.swatch{width:34px;height:34px;border-radius:50%;background:var(--c);border:3px solid #fff;box-shadow:0 0 0 1px #ddd;cursor:pointer}.swatch.active{box-shadow:0 0 0 2px #2a3346}.complete-scene{min-height:100vh;padding:78px 22px 120px;text-align:center;background:radial-gradient(circle at 50% 35%,#174c78,#071832 68%);position:relative;overflow:hidden}.complete-scene>*:not(.stars){position:relative;z-index:2}.complete-scene h2{font-size:27px;line-height:1.4;margin:0 0 20px}.preview-card{background:#ffffff12;border:1px solid #ffffff26;border-radius:21px;padding:20px;backdrop-filter:blur(8px)}.mini-lantern{width:74px;height:92px;border:5px solid #95633a;border-radius:20px;background:var(--lantern);display:grid;place-items:center;margin:3px auto 17px;box-shadow:0 0 38px var(--lantern)}.mini-lantern span{font-size:28px;color:#fff8df}.wish-pill{display:inline-block;padding:5px 9px;border-radius:20px;background:#fff1df;color:#d16a4e;font-size:9px;font-weight:900}.preview-card p{font-size:11px;color:#c9d4e3;margin:11px 0 0}.next-step-card{text-align:left;background:#fff;border-radius:18px;color:var(--ink);padding:17px;margin-top:13px}.next-step-card>span{font-size:9px;color:#db6b53;font-weight:900}.next-step-card h3{font-size:15px;line-height:1.55;margin:6px 0}.next-step-card p{font-size:10px;line-height:1.55;color:#858c9a;margin:0}.sticky.transparent{background:linear-gradient(transparent,#071832 34%)}.toast{position:fixed;z-index:100;bottom:25px;left:50%;transform:translate(-50%,30px);background:#17223a;color:#fff;padding:12px 18px;border-radius:12px;font-size:11px;opacity:0;pointer-events:none;transition:.3s;width:max-content;max-width:calc(100% - 40px);text-align:center}.toast.show{opacity:1;transform:translate(-50%,0)}
button:focus-visible{outline:3px solid #ffca69;outline-offset:2px}@keyframes float{50%{transform:translateY(-8px)}}@keyframes water{to{background-position:150px 0}}@media(max-width:370px){.content{padding-left:17px;padding-right:17px}.hero h1{font-size:27px}.wish{padding:11px}.swatch{width:30px;height:30px}}@media(min-width:431px){body{padding:22px 0}.app-shell{min-height:900px;border-radius:28px}.screen{min-height:900px}.sticky{left:50%;transform:translateX(-50%)}.toast{bottom:45px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

/* 1.3: restore the original phase-one fortune pouch. */
.shape-jar{width:117px;padding-top:0}
.shape-jar .cap{width:84px;height:15px;background:#785332;border:0;border-radius:8px;clip-path:none;transform:none;position:static}
.shape-jar .body{width:auto;height:142px;margin:0;border:7px solid #95633a;border-radius:46% 46% 30% 30%;transform:scaleX(1.16);position:static}
.shape-jar .body:before,.shape-jar .body:after{content:none}
.shape-jar .base{width:78px;height:15px;margin:auto}
.shape-jar .tassel{margin-top:0}

/* Frame options replace animated light effects. */
.frame-wood .cap,.frame-wood .base{background:linear-gradient(90deg,#5e3d25,#8d633e,#5e3d25)}
.frame-wood .body{border-color:#95633a}
.frame-gold .cap,.frame-gold .base{background:linear-gradient(90deg,#80643b,#b99a61,#8e7041);box-shadow:0 0 5px #a8894b40}
.frame-gold .body{border-color:#ad8b55;box-shadow:inset 0 0 25px #fff9,0 0 35px var(--lantern),0 0 5px #9c7c444d}
.mini-lantern.frame-wood{border-color:#95633a}
.mini-lantern.frame-gold{border-color:#ad8b55;box-shadow:0 0 38px var(--lantern),0 0 5px #9c7c444d}

/* Phase 2: wish writing, moderation, Namgang launch and personal lantern. */
.story-content{padding-bottom:130px}.field{display:block;margin:22px 0}.field>span{display:flex;justify-content:space-between;align-items:center;margin-bottom:9px}.field b{font-size:12px}.field small{font-size:9px;color:#9aa1af}.field em{font-style:normal;color:#e37258}.field input,.field textarea{width:100%;border:1.5px solid var(--line);background:#f8f9fb;border-radius:14px;padding:14px;color:var(--ink);outline:none;transition:.2s}.field textarea{height:132px;resize:none;line-height:1.65}.field input:focus,.field textarea:focus{border-color:#ed8a72;background:#fff}.field input.invalid,.field textarea.invalid{border-color:#dc4d57;background:#fff5f5}.moderation-error{border:1px solid #efb5b8;background:#fff4f4;border-radius:14px;padding:13px;color:#a43742;margin:14px 0}.moderation-error b{font-size:11px}.moderation-error p{font-size:9px;line-height:1.55;margin:4px 0 0}.safety-card{display:flex;align-items:center;gap:10px;border-radius:14px;background:#f2f6f4;padding:13px;color:#425d51}.safety-card>span{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#dcebe2;font-weight:900}.safety-card p{margin:0}.safety-card b,.safety-card small{display:block}.safety-card b{font-size:10px}.safety-card small{font-size:8px;color:#7f9188;margin-top:3px}.primary:disabled{background:#cfd3da;box-shadow:none;color:#f5f6f8;cursor:not-allowed}
.launch-scene-v2{min-height:100vh;padding:80px 22px 125px;text-align:center;background:radial-gradient(circle at 50% 40%,#174d79,#071832 70%);position:relative;overflow:hidden}.launch-scene-v2>*:not(.stars):not(.river-lines){position:relative;z-index:3}.launch-moon{top:68px;right:28px;width:31px;height:31px;opacity:.9}.launch-copy h2{font-size:24px;line-height:1.42;margin:0;color:#fff}.launch-copy h2 span{color:var(--gold)}.launch-lantern-wrap{height:280px;display:flex;align-items:center;justify-content:center;flex-direction:column}.launching{animation:launchFloat 3s ease-in-out infinite;transform:scale(.77)}.launching.shape-jar{transform:scale(.77)}.water-rings{width:180px;height:22px;border:2px solid #ffca6970;border-radius:50%;margin-top:-5px;box-shadow:0 0 0 11px #ffca691a,0 0 0 23px #ffca690c}.launch-wish-card{background:#ffffff13;border:1px solid #ffffff27;border-radius:16px;padding:14px 16px;color:#fff;backdrop-filter:blur(8px)}.launch-wish-card span{font-size:9px;color:var(--gold);font-weight:900}.launch-wish-card p{font-size:12px;line-height:1.6;margin:7px 0 0;word-break:keep-all}.river-lines{position:absolute;left:-20%;right:-20%;bottom:-5%;height:42%;background:repeating-linear-gradient(171deg,transparent 0 15px,#ffca6914 16px 18px);animation:water 8s linear infinite}.personal-content{padding-bottom:55px}.personal-card{border-radius:21px;overflow:hidden;border:1px solid var(--line);box-shadow:0 12px 30px #18203916}.personal-night{height:250px;background:radial-gradient(circle at 50% 45%,#174d79,#071832 72%);display:flex;flex-direction:column;align-items:center;justify-content:center}.personal-night .mini-lantern{margin:0 0 19px}.personal-copy{padding:18px}.personal-copy strong{font-size:13px;color:#d96d55}.personal-copy blockquote{font-size:14px;line-height:1.7;margin:12px 0;padding:0;border:0;word-break:keep-all}.personal-copy p{font-size:9px;color:#858c9a;border-top:1px solid var(--line);padding-top:12px;margin:0 0 8px}.personal-copy>small{font-size:8px;color:#a5aab5}.next-step-card.light{background:#fff8e9;border:1px solid #f0dfbc;margin:15px 0}.personal-content>.secondary{margin-top:0}@keyframes launchFloat{0%,100%{transform:translateY(8px) scale(.77)}50%{transform:translateY(-7px) scale(.77)}}

.tassel{transition:.25s}
.tassel-classic{width:7px;height:54px;background:linear-gradient(90deg,#8f372e,#d47459,#8f372e)}
.tassel-classic:before{content:"";position:absolute;left:-7px;top:10px;width:19px;height:19px;border:3px double #f0c06c;background:#b84e3f;transform:rotate(45deg);border-radius:4px}
.tassel-classic:after{content:"";position:absolute;left:-13px;top:31px;width:33px;height:42px;background:repeating-linear-gradient(90deg,#9e3e33 0 3px,#e1775c 3px 6px);clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);border-radius:4px}
.tassel-ribbon{width:5px;height:40px;background:linear-gradient(90deg,#7f293e,#db6b83,#7f293e)}
.tassel-ribbon:before{content:"";position:absolute;left:-24px;top:12px;width:53px;height:28px;background:linear-gradient(135deg,#f4a2b0,#b84562);clip-path:polygon(0 12%,42% 38%,50% 0,58% 38%,100% 12%,82% 88%,55% 60%,50% 100%,45% 60%,18% 88%);filter:drop-shadow(0 3px 2px #50162944)}
.tassel-ribbon:after{content:"";position:absolute;left:-14px;top:35px;width:33px;height:39px;background:linear-gradient(90deg,#bd4963,#f197a8,#bd4963);clip-path:polygon(0 0,46% 12%,50% 0,54% 12%,100% 0,78% 100%,50% 68%,22% 100%)}
.tassel-none{display:none}
.launch-scene-v2 .launch-moon{position:absolute!important}
input,textarea{font:inherit}

/* Phase 3: media wall choice, optional greeting, save and souvenirs. */
.mediawall-card{margin-top:15px;border:1px solid #e5dfcf;background:#fffaf0;border-radius:18px;padding:15px}.mediawall-card>div>span{font-size:8px;font-weight:900;color:#d86b53}.mediawall-card h3{font-size:14px;margin:5px 0}.mediawall-card p{font-size:9px;color:#858b98;margin:0}.mediawall-card p.public{color:#c4624d;font-weight:900}.mediawall-card>small{display:block;font-size:8px;line-height:1.5;color:#9b927f;border-top:1px solid #eee3cd;padding-top:10px;margin-top:11px}.toggle{display:flex;align-items:center;gap:9px;margin-top:13px;cursor:pointer}.toggle input{position:absolute;opacity:0}.toggle>span{width:42px;height:24px;border-radius:20px;background:#cdd1d8;position:relative;transition:.2s}.toggle>span:after{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;border-radius:50%;background:#fff;box-shadow:0 2px 5px #0002;transition:.2s}.toggle input:checked+span{background:#ed8068}.toggle input:checked+span:after{transform:translateX(18px)}.toggle em{font-style:normal;font-size:10px;font-weight:800}.personal-actions{display:grid;gap:9px;margin:13px 0}.personal-actions button{display:flex;flex-direction:column;align-items:flex-start;border:1px solid var(--line);border-radius:14px;background:#fff;padding:13px 15px;cursor:pointer;color:var(--ink)}.personal-actions button:first-child{background:#fff4ee;border-color:#f1c4b8}.personal-actions span{font-size:12px;font-weight:900}.personal-actions small{font-size:9px;color:#8d94a2;margin-top:3px}
.greeting-content,.souvenir-content{padding-top:35px;padding-bottom:50px}.greeting-lantern{display:flex;align-items:center;gap:16px;background:radial-gradient(circle at 15% 50%,#174d79,#071832 68%);border-radius:18px;padding:16px;color:#fff;margin:20px 0}.greeting-lantern .mini-lantern{width:54px;height:68px;margin:0;flex:0 0 auto}.greeting-lantern .mini-lantern span{font-size:21px}.greeting-lantern p{margin:0}.greeting-lantern b,.greeting-lantern small{display:block}.greeting-lantern b{font-size:12px;color:var(--gold)}.greeting-lantern small{font-size:9px;color:#becadd;margin-top:4px}.quick-messages{display:flex;gap:6px;overflow-x:auto;padding-bottom:4px}.quick-messages button{white-space:nowrap;border:1px solid #eadbcf;background:#fff8f1;border-radius:20px;padding:7px 10px;color:#b35f4d;font-size:9px;cursor:pointer}.kakao-button{width:100%;height:54px;border:0;border-radius:14px;background:#fee500;color:#191919;font-weight:900;cursor:pointer}.kakao-button:disabled{background:#e9e9e9;color:#aaa;cursor:not-allowed}.text-button{display:block;margin:15px auto 0;border:0;background:none;color:#7e8593;font-size:10px;text-decoration:underline;cursor:pointer}
.souvenir-tabs{display:flex;background:#f1f2f5;border-radius:12px;padding:4px;margin:20px 0 14px}.souvenir-tabs button{flex:1;border:0;background:none;border-radius:9px;padding:9px;color:#7f8694;font-size:10px;cursor:pointer}.souvenir-tabs button.active{background:#fff;color:#d6654f;font-weight:900;box-shadow:0 3px 8px #1c243012}.souvenir-preview{display:flex;justify-content:center;perspective:900px;padding:14px 0}.souvenir-river{width:235px;height:345px;border-radius:18px;background:linear-gradient(#071831,#0e426d);color:#fff;text-align:center;padding:20px;position:relative;overflow:hidden;box-shadow:0 18px 35px #18203930;transition:.3s}.souvenir-river:after{content:"";position:absolute;left:-20%;right:-20%;bottom:0;height:31%;background:repeating-linear-gradient(171deg,transparent 0 12px,#ffca6917 13px 15px)}.souvenir-river>span{font-size:8px;letter-spacing:1.5px;color:var(--gold);font-weight:900}.souvenir-river .mini-lantern{margin:34px auto 19px;position:relative;z-index:2}.souvenir-river h3{font-size:13px;margin:0;color:var(--gold)}.souvenir-river p{font-size:11px;line-height:1.55;margin:10px 0;position:relative;z-index:2}.souvenir-river small{font-size:7px;color:#aabbd0;position:relative;z-index:2}.talisman-mode .souvenir-river{width:205px;height:365px;border-radius:70px 70px 18px 18px;background:linear-gradient(#801f27,#c5513e 60%,#7d1d25);border:7px double #e7b653}.talisman-mode .souvenir-river:before{content:"福";position:absolute;inset:34px 0 auto;font-size:170px;color:#f8d77b10}.talisman-mode .souvenir-river:after{background:repeating-linear-gradient(135deg,transparent 0 9px,#f8d77b12 10px 12px)}.souvenir-info{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:14px 0 8px;font-size:10px}.souvenir-info b{color:#d56a52}.safety-note{font-size:9px;line-height:1.55;color:#9299a7;background:#f6f7f9;border-radius:11px;padding:11px;margin:0 0 12px}
.souvenir-river .mini-lantern b{font-size:28px;color:#fff8df;position:relative;z-index:2}

/* Media wall application: explicit consent and moderation-pending state. */
.mediawall-guide{font-size:9px!important;line-height:1.55;color:#8f8778!important;margin:11px 0 12px!important}.mediawall-apply{width:100%;height:43px;border:0;border-radius:12px;background:#ed8068;color:#fff;font-size:10px;font-weight:900;cursor:pointer}.mediawall-cancel{width:100%;height:39px;border:1px solid #e2d8c5;border-radius:11px;background:#fff;color:#8c8272;font-size:9px;font-weight:800;cursor:pointer}.mediawall-card button[hidden],.mediawall-modal[hidden]{display:none!important}.mediawall-modal{position:fixed;z-index:80;inset:0 auto 0 50%;width:min(100%,430px);transform:translateX(-50%);background:#0716319e;display:flex;align-items:flex-end;padding:18px}.mediawall-sheet{width:100%;background:#fff;color:var(--ink);border-radius:24px;padding:22px 19px max(20px,env(safe-area-inset-bottom));box-shadow:0 -12px 35px #0003}.sheet-label{font-size:8px;font-weight:900;color:#dd6f57}.mediawall-sheet h3{font-size:20px;line-height:1.4;margin:6px 0 8px}.mediawall-sheet>p{font-size:10px;line-height:1.6;color:#7d8492;margin:0 0 15px}.public-info,.private-info{border-radius:13px;padding:12px 13px;margin:8px 0}.public-info{background:#fff6ec;border:1px solid #f1dfc4}.private-info{background:#f3f5f8;border:1px solid #e4e7ec}.public-info b,.private-info b{font-size:10px}.public-info p,.private-info p{font-size:9px;line-height:1.55;color:#777f8d;margin:4px 0 0}.mediawall-sheet .primary{margin-top:9px}.sheet-close{display:block;margin:11px auto 0;border:0;background:none;color:#7e8593;font-size:10px;text-decoration:underline;cursor:pointer}

/* 3.4: sender completion screen after opening the share flow. */
.finished-scene{min-height:100vh;padding:82px 22px 52px;background:radial-gradient(circle at 50% 36%,#174d79,#071832 70%);position:relative;overflow:hidden;text-align:center;color:#fff}.finished-scene>*:not(.stars):not(.finished-moon){position:relative;z-index:3}.finished-moon{position:absolute;right:31px;top:75px;width:32px;height:32px}.finished-copy h2{font-size:25px;line-height:1.42;margin:0}.finished-copy h2 span{color:var(--gold)}.finished-copy>p:last-child{font-size:10px;color:#bdcada;margin:10px 0 0}.finished-lantern-wrap{height:245px;display:flex;flex-direction:column;align-items:center;justify-content:center}.finished-lantern-wrap .big-lantern{transform:scale(.7);animation:finishedFloat 3s ease-in-out infinite}.finished-halo{position:absolute;width:175px;height:175px;border-radius:50%;background:var(--lantern);opacity:.22;filter:blur(24px)}.finished-lantern-wrap .water-rings{margin-top:-22px}.finished-summary{background:#fff;border-radius:18px;color:var(--ink);padding:15px 16px;text-align:left;box-shadow:0 15px 32px #0003}.finished-summary>div{display:flex;justify-content:space-between;gap:15px;padding:7px 0}.finished-summary>div+div{border-top:1px solid var(--line)}.finished-summary span{font-size:9px;color:#858c9a}.finished-summary b{font-size:9px;text-align:right}.finished-summary p{font-size:8px;line-height:1.55;color:#9299a7;border-top:1px solid var(--line);padding-top:10px;margin:5px 0 0}.finished-share-note{font-size:9px;line-height:1.55;color:#c5d1df;margin:14px 0}.finished-actions{display:grid;gap:8px}.finished-actions .primary{margin:0}.finished-secondary{height:48px;border:1px solid #ffffff45;border-radius:14px;background:#ffffff12;color:#fff;font-weight:800;cursor:pointer}.finished-home{border:0;background:none;color:#aebdce;text-decoration:underline;font-size:10px;padding:8px;cursor:pointer}@keyframes finishedFloat{0%,100%{transform:translateY(7px) scale(.7)}50%{transform:translateY(-7px) scale(.7)}}

/* 3.1: make the post-launch choice screen the main focus. */
.compact-card{display:flex;min-height:116px}.compact-card .personal-night{width:112px;height:auto;min-height:116px;flex:0 0 112px}.compact-card .personal-night .mini-lantern{width:46px;height:58px;border-width:4px;margin:0 0 8px}.compact-card .personal-night .mini-lantern span{font-size:18px}.compact-card .wish-pill{font-size:7px;padding:4px 7px}.compact-card .personal-copy{flex:1;padding:13px 14px;min-width:0}.compact-card .personal-copy strong{font-size:11px}.compact-card .personal-copy blockquote{font-size:11px;line-height:1.5;margin:7px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.compact-card .personal-copy p{font-size:7px;padding-top:7px;margin-bottom:5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.compact-card .personal-copy>small{font-size:7px}.personal-content{padding-top:23px}.personal-content>h2{font-size:25px}.personal-content>.sub{margin-bottom:15px}
.personal-actions button.greeting-action{position:relative;padding:19px 17px;background:linear-gradient(135deg,#fff3ed,#fff8f4);border:1.5px solid #f1a18d;box-shadow:0 8px 20px #e9856f1f}.personal-actions .greeting-action:after{content:"→";position:absolute;right:17px;top:50%;transform:translateY(-50%);font-size:20px;color:#df7159}.personal-actions .greeting-action span{font-size:14px;color:#9f3f30;padding-right:28px}.personal-actions .greeting-action small{font-size:10px;color:#bd6b59}.personal-actions button:not(.greeting-action){padding:15px 17px}.personal-content>.secondary{height:60px;font-size:15px;margin-top:5px}

/* 3.2: Kakao card preview and greeting recipient landing page. */
.received-scene{min-height:100vh;padding:82px 22px 130px;background:radial-gradient(circle at 50% 40%,#174d79,#071832 70%);position:relative;overflow:hidden;text-align:center}.received-scene>*:not(.stars):not(.received-moon){position:relative;z-index:3}.received-moon{position:absolute;right:34px;top:76px;width:32px;height:32px}.received-copy h2{font-size:25px;line-height:1.42;margin:0;color:#fff}.received-copy h2 span{color:var(--gold)}.received-copy>p:last-child{font-size:10px;color:#bdcada}.received-lantern-stage{height:280px;display:flex;flex-direction:column;align-items:center;justify-content:center}.received-lantern-stage .big-lantern{transform:scale(.72);animation:float 3s ease-in-out infinite}.received-halo{position:absolute;width:175px;height:175px;border-radius:50%;background:var(--lantern);opacity:.22;filter:blur(24px)}.received-lantern-stage .water-rings{margin-top:-19px}.received-letter{background:#fff;border-radius:19px;color:var(--ink);padding:17px;text-align:left;box-shadow:0 15px 32px #0003}.received-letter>span{display:inline-block;background:#fff0e9;color:#d66750;border-radius:20px;padding:5px 9px;font-size:8px;font-weight:900}.received-letter blockquote{font-size:14px;line-height:1.65;margin:13px 0;padding-left:12px;border-left:3px solid #f1a18c;word-break:keep-all}.received-letter>div{border-top:1px solid var(--line);padding-top:10px}.received-letter b,.received-letter small{display:block}.received-letter b{font-size:9px;color:#717887}.received-letter small{font-size:7px;color:#a4a9b4;margin-top:5px}
