/* 늘곁에서 — 한지 편지 */
:root{
  color-scheme: light;
  --paper:#F6EFE3; --paper2:#FBF7F0; --paper3:#EDE2D2; --ink:#2F2722; --dim:#8C7B6C; --faint:#B3A393;
  --accent:#9C5B3B; --dark:#3F332C; --line:rgba(90,70,50,.14); --mine:#E9D9C1; --glow:rgba(240,140,80,.22);
  --f-l:"Gowun Batang","Nanum Myeongjo","AppleMyungjo",serif;
  --f-ui:"Gowun Dodum","Apple SD Gothic Neo","Malgun Gothic",system-ui,sans-serif;
  --tabh:62px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;min-height:calc(var(--vvh,100vh) * 1);color:var(--ink);font-family:var(--f-ui);font-size:15px;line-height:1.6;-webkit-font-smoothing:antialiased;
  background:var(--paper) repeating-linear-gradient(90deg,rgba(150,120,90,.025) 0 2px,transparent 2px 7px)}
button,input,textarea{font:inherit;color:inherit}
button{cursor:pointer}
[hidden]{display:none!important}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
h1,h2{font-family:var(--f-l);font-weight:700;margin:0}

/* 틀 */
.appbar{position:sticky;top:0;z-index:5;display:flex;align-items:center;gap:8px;padding:calc(env(safe-area-inset-top,0px) + 10px) max(16px,env(safe-area-inset-left,0px)) 10px;
  background:rgba(246,239,227,.92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.brand{display:flex;align-items:center;gap:8px;font-family:var(--f-l);font-weight:700;letter-spacing:.12em;color:var(--ink);text-decoration:none;font-size:17px}
.brand img{width:26px;height:26px;border-radius:7px}
.appback{flex:none;height:34px;min-width:34px;padding:0 10px;border-radius:99px;border:1px solid var(--line);background:var(--paper2);color:var(--ink);font-size:15px}
.wrap{max-width:560px;margin:0 auto;padding:16px max(18px,env(safe-area-inset-left,0px)) calc(var(--tabh) + env(safe-area-inset-bottom,0px) + 28px);outline:none}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:9;display:grid;grid-template-columns:repeat(3,1fr);
  padding:6px 6px calc(env(safe-area-inset-bottom,0px) + 6px);background:rgba(242,233,219,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line)}
.tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 2px;color:var(--faint);text-decoration:none}
.tabbar [aria-current="true"]{color:var(--accent)}
.tabbar .ti{width:24px;height:24px}.tabbar span{font-size:11.5px}
body.chatting .tabbar{display:none}
body.chatting .wrap{padding-bottom:0}

/* 공통 */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:52px;padding:0 22px;border-radius:16px;border:1px solid var(--line);background:var(--paper2);color:var(--ink);font-size:16px;text-decoration:none}
.btn.primary{background:var(--dark);border-color:var(--dark);color:var(--paper);box-shadow:0 10px 24px rgba(63,51,44,.18)}
.btn.ghost{background:transparent}
.btn.wide{display:flex;width:100%}
.btn:disabled{opacity:.45}
.field{display:block;width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--line);background:var(--paper2);font-size:15px;outline:none}
.field:focus{border-color:var(--accent)}
textarea.field{resize:vertical;line-height:1.7}
.card{background:var(--paper2);border:1px solid var(--line);border-radius:16px}
.empty{text-align:center;color:var(--dim);white-space:pre-line;margin:40px 0}
.note{font-size:12.5px;color:var(--dim);margin:8px 0 0}
.meta{font-size:13.5px;color:var(--dim);margin:4px 0}
.lbl{font-size:12.5px;color:var(--dim);margin:0 0 6px}
.sub{color:var(--dim);font-size:14px;margin:4px 0 14px}
.agree{display:flex;gap:10px;align-items:flex-start;font-size:13px;color:var(--dim);margin:8px 0 14px}
.agree input{margin-top:3px;width:18px;height:18px;accent-color:var(--accent);flex:none}
.filebtn{position:relative;overflow:hidden}.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.filebtn.disabled{opacity:.45}.filebtn.disabled input{pointer-events:none}
.toast{position:fixed;left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 96px);transform:translateX(-50%);z-index:40;width:max-content;max-width:calc(100% - 32px);
  padding:11px 18px;border-radius:99px;background:rgba(47,39,34,.92);color:var(--paper);font-size:14px;text-align:center;animation:fade .3s}
@keyframes fade{from{opacity:0}to{opacity:1}}
.veil{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:rgba(47,39,34,.35);animation:fade .25s}
.sheet{position:relative;width:100%;max-width:560px;max-height:calc(var(--vvh,100vh) * 0.88);overflow:auto;padding:12px 22px calc(env(safe-area-inset-bottom,0px) + 26px);
  border-radius:26px 26px 0 0;background:var(--paper);box-shadow:0 -10px 40px rgba(60,40,20,.15);animation:up .3s cubic-bezier(.2,.7,.2,1)}
@keyframes up{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
.sheet h2{font-size:20px;margin:6px 0 6px}
.grab{width:40px;height:5px;border-radius:9px;background:var(--line);margin:0 auto 12px}
.sheet-x{position:absolute;right:14px;top:12px;width:34px;height:34px;border-radius:50%;border:0;background:var(--paper3);color:var(--dim);font-size:20px;line-height:1}

/* 처음 화면 · 카톡 올리기 */
.up{display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--vvh,100vh) * 0.09) 6px 0}
.up-logo{width:104px;height:104px;border-radius:26px;filter:drop-shadow(0 16px 28px var(--glow))}
.up-h{font-size:30px;line-height:1.38;margin-top:30px}
.up-sub{color:var(--dim);margin:10px 0 0}
.up-btn{margin-top:34px;position:relative;overflow:hidden}
.up-btn input{position:absolute;inset:0;opacity:0;cursor:pointer}
.up-how{margin-top:14px;background:none;border:0;color:var(--accent);font-size:14px;text-decoration:underline;text-underline-offset:4px}
.up-foot{margin-top:40px;font-size:12px;color:var(--faint)}
.how{margin:10px 0 0;padding-left:22px;line-height:2}.how b{color:var(--accent);font-weight:400}

/* 얼굴 */
.tk-av{display:inline-flex;align-items:center;justify-content:center;flex:none;border-radius:50%;overflow:hidden;background:#E6D7C2;color:#5A4433;font-family:var(--f-l);font-weight:700}
.tk-av img{width:100%;height:100%;object-fit:cover}
.tk-av.xs{width:32px;height:32px;font-size:13px}.tk-av.sm{width:40px;height:40px;font-size:16px}
.tk-av.md{width:88px;height:88px;font-size:34px}.tk-av.lg{width:108px;height:108px;font-size:42px;box-shadow:0 0 0 6px var(--paper2),0 16px 36px rgba(90,60,40,.18)}

/* 누구인가요 · 분석 */
.tk-step{margin:10px 0 2px;font-size:13px;color:var(--accent)}
.tk-h{font-size:23px;margin:2px 0 16px}.tk-guide{margin:-8px 0 14px;font-size:14px;color:var(--dim);line-height:1.6;word-break:keep-all}.tk-guide.on{color:var(--accent);font-weight:600}.tk-h2{font-size:16px;margin:22px 0 8px;font-family:var(--f-l)}
.tk-sub{color:var(--dim);font-size:14px;margin:4px 0 0}
.tk-pick{display:grid;gap:8px;margin-bottom:20px}
.tk-pick button{display:flex;justify-content:space-between;align-items:center;padding:15px 16px;border-radius:14px;background:var(--paper2);border:1px solid var(--line);text-align:left}
.tk-pick b{font-weight:400;font-size:16px}.tk-pick span{font-size:12.5px;color:var(--dim)}
.tk-pick button[aria-pressed=true]{border:2px solid var(--accent);padding:14px 15px}
.tk-pick:not(.tk-mine) button[aria-pressed=true] b::after{content:"상대방 ✓";margin-left:8px;padding:1px 8px;border-radius:99px;background:var(--accent);color:#fff;font-size:11.5px;vertical-align:2px}
.tk-pick button:disabled{opacity:.35}.tk-mine button[aria-pressed=true] b::after{content:"나 ✓";margin-left:8px;padding:1px 8px;border-radius:99px;background:var(--accent);color:#fff;font-size:11.5px;vertical-align:2px}
.tk-learn{display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--vvh,100vh) * 0.16) 0 0;gap:4px}
.tk-learn .tk-h{margin-top:18px}
.tk-dots{display:flex;gap:7px;margin-top:22px}
.tk-dots i,.tk-row.typing i{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:dot 1.2s infinite ease-in-out}
.tk-dots i:nth-child(2),.tk-row.typing i:nth-child(2){animation-delay:.18s}.tk-dots i:nth-child(3),.tk-row.typing i:nth-child(3){animation-delay:.36s}
@keyframes dot{0%,80%,100%{opacity:.25;transform:none}40%{opacity:1;transform:translateY(-4px)}}

/* 분석 결과 */
.rs{display:flex;flex-direction:column;align-items:center;text-align:center;padding:24px 0 10px}
.rs-pic{position:relative;border:0;background:none;padding:0}
.rs-pic i{position:absolute;right:2px;bottom:2px;width:32px;height:32px;border-radius:50%;background:var(--dark);color:var(--paper);font-style:normal;font-size:18px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px var(--paper)}
.rs-name{margin-top:18px;width:12em;text-align:center;border:0;border-bottom:1px dashed var(--line);background:none;font-family:var(--f-l);font-weight:700;font-size:26px;outline:none}
.rs-name:focus{border-bottom-color:var(--accent)}
.rs-l{align-self:flex-start;margin:24px 0 8px;font-size:13px;color:var(--dim)}
.rs-chips{align-self:flex-start;display:flex;flex-wrap:wrap;gap:6px}
.rs-chips span{padding:7px 13px;border-radius:99px;background:var(--paper3);font-family:var(--f-l);font-size:14px}
.rs-mem{align-self:stretch;text-align:left;margin:0 0 6px;padding:12px 14px;border-radius:14px;background:var(--paper2);border:1px solid var(--line);font-size:14px}
.rs .btn{margin-top:26px}
.rs-tiny{font-size:12.5px;color:var(--faint);margin:10px 0 0}
.rs-ai{font-size:12px;color:var(--faint);margin:4px 0 0}
.tk-sum{padding:16px;margin-bottom:16px}
.tk-f{display:block;margin-bottom:14px}.tk-f span{display:block;font-size:12.5px;color:var(--dim);margin-bottom:5px}
.tk-hint{font-size:12.5px;color:var(--dim);margin:-6px 0 14px}

/* 대화 */
.tk-head{position:sticky;top:calc(env(safe-area-inset-top,0px) + 55px);z-index:3;display:flex;align-items:center;gap:10px;margin:-16px -18px 6px;padding:10px 18px;background:rgba(246,239,227,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.tk-hd{flex:1;display:flex;flex-direction:column;line-height:1.3}.tk-hd b{font-family:var(--f-l);font-size:17px}.tk-hd span{font-size:11.5px;color:var(--faint)}
.tk-menu{background:none;border:0;color:var(--dim);font-size:22px;padding:4px 8px;line-height:1}
.tk-list{display:flex;flex-direction:column;gap:12px;padding:10px 0 14px;min-height:calc(var(--vvh,100vh) * 0.5)}
.tk-row{display:flex;gap:8px;align-items:flex-start;max-width:84%}
.tk-col{display:flex;flex-direction:column;gap:4px;align-items:flex-start}
.tk-n{margin:0 0 1px;font-size:12px;color:var(--dim)}
.tk-b{margin:0;padding:10px 14px;border-radius:4px 18px 18px 18px;background:var(--paper2);border:1px solid var(--line);font-family:var(--f-l);font-size:15px;line-height:1.55;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere}
.tk-row.me{align-self:flex-end}
.tk-row.me .tk-b{border-radius:18px 4px 18px 18px;background:var(--mine);border-color:transparent}
.tk-b.reply{background:#FFF8EC;border-color:rgba(240,150,90,.35);box-shadow:0 0 18px rgba(255,190,120,.25)}
.tk-row.typing .tk-b{display:flex;gap:5px;padding:14px}
.tk-help{margin:2px 0 4px 40px;padding:12px 14px;border-radius:14px;background:#EEF1F4;border:1px solid #D7DEE6}
.tk-help p{margin:0 0 8px;font-size:13px}
.tk-help div{display:flex;gap:8px;flex-wrap:wrap}
.tk-help a{display:flex;flex-direction:column;padding:8px 12px;border-radius:12px;background:#fff;color:var(--ink);text-decoration:none;line-height:1.3}
.tk-help a b{font-size:17px;color:#33557a}.tk-help a span{font-size:11px;color:var(--dim)}
.tk-help.flat{margin:0;background:none;border:0;padding:0}
.tk-letter{align-self:flex-end;max-width:86%;padding:14px 16px;border-radius:6px;background:#FFFDF8;border:1px solid var(--line);
  background-image:repeating-linear-gradient(180deg,transparent 0 27px,rgba(150,110,70,.1) 27px 28px);box-shadow:0 4px 20px rgba(120,80,40,.08)}
.tk-lt-h{display:flex;align-items:center;gap:8px;margin:0 0 6px;font-size:11.5px;color:var(--accent)}
.tk-lt-to{margin:0 0 4px;font-family:var(--f-l);font-weight:700}
.tk-lt-b{margin:0;font-family:var(--f-l);font-size:14.5px;line-height:1.8;white-space:pre-wrap;word-break:keep-all}
.tk-compose{position:sticky;bottom:0;margin:0 -18px;padding:6px 14px calc(env(safe-area-inset-bottom,0px) + 12px);background:linear-gradient(180deg,rgba(246,239,227,0),var(--paper) 22%)}
.tk-left{width:max-content;margin:0 auto 8px;padding:5px 12px;border-radius:99px;background:var(--paper3);color:var(--dim);font-size:12px}
.tk-chips{display:flex;gap:6px;overflow-x:auto;padding:2px 0 8px;scrollbar-width:none}.tk-chips::-webkit-scrollbar{display:none}
.tk-chips button{flex:none;padding:7px 13px;border-radius:99px;background:var(--paper2);border:1px solid var(--line);font-size:13px}
.tk-bar{display:flex;gap:8px;align-items:flex-end;padding:6px 6px 6px 8px;border-radius:24px;background:var(--paper2);border:1px solid var(--line);box-shadow:0 4px 18px rgba(90,60,40,.06)}
.tk-in{flex:1;resize:none;border:0;background:none;outline:none;padding:7px 0;min-height:24px;max-height:120px;font-size:15px;line-height:1.5}
.tk-send{width:36px;height:36px;flex:none;border-radius:50%;border:0;background:var(--dark);color:var(--paper);font-size:17px}
.tk-send:disabled,.tk-sky:disabled{opacity:.4}
.tk-sky{width:36px;height:36px;flex:none;border-radius:50%;border:1px solid var(--line);background:#FFF6EA;display:flex;align-items:center;justify-content:center}
.tk-sky i,.sky-rise .lan,.sky-lans .lan,.tk-lt-h i,.skybanner .lantern{display:block;width:11px;height:15px;border-radius:4px 4px 3px 3px;background:linear-gradient(#ffe6b8,#ee8150);box-shadow:0 0 10px 3px rgba(255,170,80,.35)}
.tk-lt-h i{width:8px;height:11px}

/* 대화 목록 · 나 */
.pl-h{font-size:22px;margin:10px 0 14px}
.pl-list{display:flex;flex-direction:column;gap:8px}
.pl-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;border-radius:16px;background:var(--paper2);border:1px solid var(--line)}
.pl-t{flex:1;min-width:0;display:flex;flex-direction:column}
.pl-t b{font-family:var(--f-l);font-size:16.5px}.pl-t b small{margin-left:6px;font-family:var(--f-ui);font-size:11px;font-weight:400;color:var(--accent)}
.pl-t>span{font-size:13px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pl-item em{font-style:normal;font-size:11.5px;color:var(--faint);align-self:flex-start;margin-top:4px}
.pl-add{display:block;width:100%;margin-top:10px;padding:15px;border-radius:16px;border:1px dashed rgba(156,91,59,.4);background:none;color:var(--accent);font-family:var(--f-l);font-size:15px}
.skybanner{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:15px 16px;border-radius:16px;border:1px solid var(--line);background:linear-gradient(160deg,#3A2C4A,#7A4E5E 70%,#C98A6E);color:#FFF4EA}
.skybanner .sb-t{flex:1;display:flex;flex-direction:column}.skybanner b{font-family:var(--f-l)}.skybanner .sb-t span{font-size:12px;color:#E9D3CC}
.skybanner .arrow{color:#FFD6A8}
.me-card{padding:14px 16px;margin-bottom:12px}
.me-row{display:flex;align-items:center;gap:10px;padding:6px 0}.me-row>span:not(.tk-av){flex:1}
.me-row button{background:none;border:1px solid var(--line);border-radius:99px;color:var(--dim);font-size:12px;padding:4px 10px}
.me-tag{color:var(--faint);font-size:12px}

/* 이용권 */
.pw-logo{display:block;width:60px;height:60px;border-radius:16px;margin:6px auto 0}
.pw-h{text-align:center;font-size:20px;margin:14px 0 4px;word-break:keep-all}
.pw-sub{text-align:center;color:var(--dim);font-size:13.5px;margin:0 0 18px}
.pw-plans{display:grid;gap:8px;margin-bottom:16px}
.pw-plan{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px 16px;border-radius:16px;background:var(--paper2);border:1px solid var(--line);text-align:left}
.pw-plan[aria-pressed=true]{border:2px solid var(--accent);padding:14px 15px}
.pw-plan>span:first-child{display:flex;flex-direction:column}
.pw-plan strong{font-weight:400;font-size:16px}.pw-plan em{font-style:normal;margin-left:6px;padding:1px 7px;border-radius:99px;background:var(--accent);color:#fff;font-size:11px}
.pw-plan small{font-size:12px;color:var(--dim)}
.pw-p b{font-size:17px;color:var(--accent)}.pw-p small{font-size:12px;color:var(--dim)}
.pw-foot{text-align:center;font-size:12px;color:var(--faint);margin:12px 0 0}
.pw-foot button{background:none;border:0;color:var(--dim);text-decoration:underline;font-size:12px;padding:0}

/* 하늘 우체국 */
.sky-rise{position:fixed;inset:0;z-index:30;pointer-events:none;background:radial-gradient(ellipse at 50% 100%,rgba(255,170,80,.18),rgba(0,0,0,0) 60%)}
.sky-rise .lan{position:absolute;left:50%;bottom:18%;width:26px;height:34px;margin-left:-13px;animation:lanup 2.5s cubic-bezier(.3,.6,.3,1) forwards}
@keyframes lanup{0%{transform:none;opacity:0}12%{opacity:1}100%{transform:translateY(-70vh) translateX(18px) scale(.45);opacity:0}}
.sky-paper .field{margin-bottom:8px}
.sky-hero{position:relative;overflow:hidden;margin:-16px -18px 18px;padding:56px 18px 36px;text-align:center;background:linear-gradient(180deg,#2E2442 0%,#5B3D5C 55%,#C97E6A 100%)}
.sky-hero h1{position:relative;font-size:26px;letter-spacing:.18em;color:#FFF4EA}
.sky-hero p{position:relative;white-space:pre-line;color:#E4CDC6;font-family:var(--f-l);font-size:14px;margin:8px 0 0}
.sky-lans{position:absolute;inset:0}
.sky-lans .lan{position:absolute;animation:drift 7s ease-in-out infinite alternate}
.sky-lans .lan:nth-child(1){left:9%;top:22%}.sky-lans .lan:nth-child(2){left:24%;top:62%;transform:scale(.7);animation-delay:-2s}.sky-lans .lan:nth-child(3){left:38%;top:12%;transform:scale(.6);animation-delay:-4s}
.sky-lans .lan:nth-child(4){left:62%;top:16%;animation-delay:-1s}.sky-lans .lan:nth-child(5){left:78%;top:50%;transform:scale(.8);animation-delay:-3s}.sky-lans .lan:nth-child(6){left:90%;top:20%;transform:scale(.55);animation-delay:-5s}
.sky-lans .lan:nth-child(7){left:52%;top:74%;transform:scale(.5);animation-delay:-6s}.sky-lans .lan:nth-child(8){left:14%;top:84%;transform:scale(.45)}.sky-lans .lan:nth-child(9){left:86%;top:80%;transform:scale(.5);animation-delay:-2.5s}
@keyframes drift{from{margin-top:0}to{margin-top:-10px}}
.sky-h{font-size:16px;margin:26px 0 10px}
.sky-list{display:flex;flex-direction:column;gap:8px}
.sky-item,.sky-pick{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 14px;border-radius:14px;background:var(--paper2);border:1px solid var(--line)}
.sky-item .dot{width:9px;height:12px;flex:none;border-radius:3px;background:linear-gradient(#ffe6b8,#ee8150);box-shadow:0 0 10px 3px rgba(255,170,80,.3)}
.sky-item>span{flex:1;min-width:0;display:flex;flex-direction:column}.sky-item b{font-family:var(--f-l);font-weight:400}
.sky-item>span>span{font-size:12.5px;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sky-item em{font-style:normal;font-size:11.5px;color:var(--faint)}
.sky-pick{margin-top:8px}.sky-pick b{font-family:var(--f-l);font-weight:400;font-size:15.5px}.sky-pick span{font-size:12px;color:var(--dim)}
@media (prefers-reduced-motion:reduce){*{animation:none!important}}

/* 하늘 우체국 (앱 안) */
.sky-hero{position:relative;height:330px;padding:0}
.sky-scene{position:absolute;inset:0}
.sky-lan{position:absolute;width:calc(14px*var(--s,1));height:calc(19px*var(--s,1));padding:0;border:0;border-radius:4px 4px 3px 3px;background:linear-gradient(#ffe6b8,#ee8150);
  box-shadow:0 0 14px 5px rgba(255,170,80,.35);animation:drift 7s ease-in-out infinite alternate;cursor:pointer}
.sky-lan::after{content:"";position:absolute;inset:-14px}
.sky-lan.mine{box-shadow:0 0 0 2px rgba(255,246,230,.7),0 0 16px 6px rgba(255,190,110,.45)}
.sky-title{position:absolute;left:0;right:0;bottom:22px;text-align:center;pointer-events:none}
.sky-title h1{font-size:25px;letter-spacing:.18em;color:#FFF4EA;text-shadow:0 0 18px rgba(255,190,120,.3)}
.sky-title p{margin:6px 0 0;color:#E9D3CC;font-family:var(--f-l);font-size:14px}
.sky-count{margin:6px 0 0!important;font-family:var(--f-ui)!important;font-size:12px!important;color:#FFD6A8!important}
.seg{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:6px 0 14px}
.seg button{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px;border-radius:14px;border:1px solid var(--line);background:var(--paper2)}
.seg button[aria-checked=true]{border:2px solid var(--accent);padding:11px}
.seg b{font-weight:400;font-size:14.5px}.seg span{font-size:11.5px;color:var(--dim)}
.letter{margin:8px 0 14px;padding:20px 18px;border-radius:6px;background:#FFFDF8;border:1px solid var(--line);background-image:repeating-linear-gradient(180deg,transparent 0 31px,rgba(150,110,70,.1) 31px 32px)}
.lt-to{margin:0 0 12px;font-family:var(--f-l);font-weight:700;font-size:18px}
.lt-body{margin:0 0 16px;font-family:var(--f-l);font-size:15.5px;line-height:2;white-space:pre-wrap;word-break:keep-all}
.lt-from,.lt-date{margin:0;text-align:right;font-size:13px;color:var(--dim)}.lt-date{font-size:12px;color:var(--faint)}
.heart{display:block;margin:0 auto;padding:11px 20px;border-radius:99px;border:1px solid rgba(156,91,59,.35);background:var(--paper2);color:var(--accent);font-size:14.5px}
.heart[aria-pressed=true]{background:#F7E3D6}
.pl-r{display:flex;flex-direction:column;align-items:flex-end;gap:4px;align-self:flex-start;margin-top:3px}
.pl-r em{font-style:normal;font-size:11.5px;color:var(--faint)}
.pl-badge{min-width:20px;height:20px;padding:0 6px;border-radius:99px;background:#E2603F;color:#fff;font-style:normal;font-size:11.5px;display:flex;align-items:center;justify-content:center}
.me-sw{display:flex;align-items:center;gap:12px}.me-sw>span{flex:1;display:flex;flex-direction:column}.me-sw b{font-weight:400}.me-sw small{font-size:12px;color:var(--dim)}
.me-sw input{width:46px;height:26px;appearance:none;-webkit-appearance:none;border-radius:99px;background:var(--paper3);position:relative;cursor:pointer;transition:background .2s}
.me-sw input::after{content:"";position:absolute;left:3px;top:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .2s}
.me-sw input:checked{background:var(--accent)}.me-sw input:checked::after{left:23px}
.rs-saved{margin:16px 0 0;font-size:12px;color:var(--faint)}.rs-saved+.rs-name{margin-top:2px}
.lt-report{display:block;margin:14px auto 0;background:none;border:0;color:var(--faint);font-size:12px;text-decoration:underline}
.me-links{text-align:center;font-size:13px;color:var(--faint);margin:6px 0 14px}.me-links a{color:var(--dim)}
.ob{display:flex;flex-direction:column;align-items:center;text-align:center;padding:calc(var(--vvh,100vh) * 0.06) 4px 0}
.ob-steps{list-style:none;margin:28px 0 6px;padding:0;width:100%;display:flex;flex-direction:column;gap:10px;text-align:left}
.ob-step{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:var(--paper2);border:1px solid var(--line)}
.ob-n{flex:none;width:28px;height:28px;border-radius:50%;background:var(--dark);color:var(--paper);display:flex;align-items:center;justify-content:center;font-family:var(--f-l);font-size:14px}
.ob-step b{font-family:var(--f-l);font-size:16px}.ob-step p{margin:2px 0 0;font-size:13px;color:var(--dim)}
.ob .up-btn{margin-top:22px}
.tk-cam{position:relative;width:36px;height:36px;flex:none;border-radius:50%;border:1px solid var(--line);background:var(--paper);display:flex;align-items:center;justify-content:center;cursor:pointer}
.tk-cam i{width:18px;height:14px;border:1.6px solid var(--dim);border-radius:4px;position:relative}
.tk-cam i::after{content:"";position:absolute;left:50%;top:50%;width:6px;height:6px;margin:-3px;border:1.6px solid var(--dim);border-radius:50%}
.tk-cam input{position:absolute;inset:0;opacity:0;cursor:pointer;width:100%}
.tk-col.me{align-items:flex-end}
.tk-photo-msg{display:block;max-width:220px;max-height:280px;border-radius:14px;object-fit:cover;border:1px solid var(--line)}

/* ===== 기억 공간 ===== */
.sp-head{position:sticky;top:calc(env(safe-area-inset-top,0px) + 55px);z-index:3;display:flex;align-items:center;gap:10px;margin:-16px -18px 12px;padding:10px 18px;background:rgba(246,239,227,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}
.sp-head b{font-family:var(--f-l);font-size:17px}
.sp-back{width:32px;height:32px;border-radius:50%;border:1px solid var(--line);background:var(--paper2);font-size:14px}
.sp-hero{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px 0 14px}
.sp-hero h1{font-size:25px;margin-top:14px}.sp-hero p{margin:4px 0 0;color:var(--dim);font-size:13px}
.sp-card{display:block;width:100%;text-align:left;background:var(--paper2);border:1px solid var(--line);border-radius:18px;padding:14px 16px;margin-bottom:10px;color:var(--ink)}
.sp-l{margin:0 0 6px;font-size:12.5px;color:var(--dim)}
.sp-q{margin:0;font-family:var(--f-l);font-size:17px;line-height:1.6;word-break:keep-all}.sp-q.sm{font-size:15px}
.sp-src{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px;font-size:11.5px;color:var(--accent)}
.sp-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:10px}
.sp-stats div{text-align:center;padding:14px 6px;border-radius:18px;background:var(--paper2);border:1px solid var(--line)}
.sp-stats b{display:block;font-family:var(--f-l);font-size:25px;color:var(--accent)}.sp-stats span{font-size:12px;color:var(--dim)}
.sp-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:8px}
.sp-grid button{display:flex;flex-direction:column;gap:2px;text-align:left;padding:14px;border-radius:16px;background:var(--paper2);border:1px solid var(--line)}
.sp-grid b{font-family:var(--f-l);font-size:15.5px}.sp-grid span{font-size:11.5px;color:var(--dim)}
.sp-next{display:block;margin:14px auto 0;background:none;border:0;color:var(--accent);font-size:13.5px}
.hb{flex:none;width:30px;height:30px;border-radius:50%;border:0;background:none;color:var(--faint);font-size:15px;line-height:1;align-self:center}
.hb[aria-pressed=true]{color:#D9694A}
.tk-row>.hb{align-self:flex-end;margin-left:-4px}
.real{margin:2px 0 4px 40px;padding:12px 14px;border-radius:14px;background:#FFF8EC;border:1px dashed rgba(156,91,59,.45)}
.real p{margin:0;font-family:var(--f-l);font-size:15px;line-height:1.6;white-space:pre-wrap;word-break:keep-all}
.real small{font-size:11px;color:var(--accent)}
.tk-memlink{align-self:flex-start;margin-top:2px;background:none;border:0;padding:2px 0;color:var(--accent);font-size:11.5px;text-decoration:underline;text-underline-offset:3px}
.tk-hd{background:none;border:0;text-align:left;padding:0}
/* 리포트 */
body.report{background:linear-gradient(180deg,#3A2C4A,#7A4E5E 55%,#C98A6E) fixed}
body.report .appbar{background:rgba(58,44,74,.7);border-color:rgba(255,255,255,.1)}body.report .brand{color:#FFF4EA}
.rp{text-align:center;color:#FFF4EA;padding:30px 6px 10px}
.rp-k{margin:0;color:#E9D3CC}.rp h1{font-size:28px;line-height:1.4;margin-top:10px}
.rp-box{margin:26px 0;text-align:left;background:rgba(255,255,255,.1);border-radius:18px;padding:12px 18px}
.rp-w{display:flex;justify-content:space-between;gap:10px;margin:6px 0;font-size:14.5px}.rp-w b{font-family:var(--f-l);font-weight:400}.rp-w em{font-style:normal;color:#FFD6A8;flex:none}
.rp-s{font-family:var(--f-l);font-size:17px;line-height:1.75;margin:0}.rp-s b{color:#FFD6A8;font-weight:400}
.rp-t{color:#E9D3CC;font-size:13px;margin:16px 0 0}
body.report .dna{background:rgba(251,247,240,.96)}
body.report .up-how{color:#FFE2C2}
.dna-r{display:flex;align-items:flex-start;gap:10px;padding:7px 0;border-top:1px solid var(--line)}
.dna-r>span{flex:none;width:92px;font-size:12.5px;color:var(--dim);padding-top:3px}
.dna-r>div{display:flex;flex-wrap:wrap;gap:5px}
.dna-c{padding:3px 10px;border-radius:99px;background:var(--paper3);font-size:13px}
.dna-s{margin:8px 0 0;font-size:13px;color:var(--dim);line-height:1.6}
/* 보관함 */
.sp-qwrap{display:flex;align-items:center;gap:8px;padding:0 14px;border-radius:14px;background:var(--paper2);border:1px solid var(--line);margin-bottom:10px}
.sp-search{flex:1;border:0;background:none;outline:none;padding:12px 0;font-size:14.5px}
.sp-seg{display:flex;gap:6px;overflow-x:auto;padding-bottom:10px;scrollbar-width:none}.sp-seg::-webkit-scrollbar{display:none}
.sp-seg button{flex:none;padding:7px 13px;border-radius:99px;background:var(--paper2);border:1px solid var(--line);font-size:13px}
.sp-seg button[aria-selected=true]{background:var(--dark);color:var(--paper);border-color:var(--dark)}
.sp-list{padding:4px 12px}
.sp-row{display:flex;gap:10px;align-items:flex-start;padding:10px 0;border-bottom:1px solid var(--line)}.sp-row:last-child{border:0}
.sp-row i{flex:none;width:68px;font-style:normal;font-size:11.5px;color:var(--faint);padding-top:3px}
.sp-row p{flex:1;margin:0;font-family:var(--f-l);font-size:15px;line-height:1.55;word-break:keep-all;overflow-wrap:anywhere}
.sp-note{text-align:center;font-size:12.5px;color:var(--faint);margin:8px 0}
.often{display:flex;align-items:center;gap:10px;width:100%;padding:10px 0;border:0;border-top:1px solid var(--line);background:none;text-align:left}
.often .rank{width:22px;height:22px;flex:none;border-radius:50%;background:var(--paper3);font-size:12px;display:flex;align-items:center;justify-content:center}
.often b{flex:1;font-family:var(--f-l);font-weight:400;font-size:15px}.often em{font-style:normal;color:var(--accent);font-size:13px}
.yr{display:flex;align-items:flex-end;gap:5px;height:96px;margin:8px 0 4px}.yr div{flex:1;border-radius:6px 6px 2px 2px;background:linear-gradient(#e9a273,#c97a4e)}
.yrl{display:flex;gap:5px;font-size:10.5px;color:var(--faint)}.yrl span{flex:1;text-align:center}
.tl{margin:18px 0 0;padding-left:14px;border-left:2px solid rgba(156,91,59,.25)}
.tl h3{font-size:17px;margin:0 0 8px;position:relative}.tl h3::before{content:"";position:absolute;left:-21px;top:5px;width:12px;height:12px;border-radius:50%;background:var(--accent)}
.tl h3 small{font-family:var(--f-ui);font-weight:400;font-size:12px;color:var(--faint)}
.tl-ev{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;width:100%;text-align:left;padding:10px 12px;margin-bottom:6px;border-radius:12px;background:var(--paper2);border:1px solid var(--line)}
.tl-ev i{font-style:normal;font-size:12px;color:var(--faint)}.tl-ev b{font-weight:400;font-family:var(--f-l)}.tl-ev span{flex-basis:100%;font-size:13px;color:var(--dim)}
.photos{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-bottom:8px}.photos img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:8px}
.sp-memo{margin:0;padding:9px 0;border-top:1px solid var(--line);font-size:14.5px}
.res{cursor:pointer}.res-l{margin:4px 0 0;font-size:14px;line-height:1.55}.res-l b{font-weight:400;color:var(--accent)}
mark{background:#FBE3C8;color:inherit;border-radius:3px;padding:0 1px}
.sp-saved{padding:10px 0;border-top:1px solid var(--line)}.sp-saved:first-of-type{border-top:0}
.sp-lrow{display:flex;justify-content:space-between;align-items:center}.sp-lrow .up-how{margin:0}
.day{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-top:1px solid var(--line)}.day b{font-weight:400}.day em{font-style:normal;color:var(--accent);font-size:13px}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chips button{padding:7px 13px;border-radius:99px;background:var(--paper3);border:0;font-size:13.5px}
.gb textarea{margin-top:4px}
/* 첫 화면 카드 */
.pc{display:block;width:100%;text-align:left;padding:14px 16px;border-radius:18px;background:var(--paper2);border:1px solid var(--line)}
.pc-h{display:flex;align-items:center;gap:12px}.pc-h .pl-t b{font-size:17px}
.pc-new{margin:10px 0 0;font-size:13.5px;color:var(--ink)}
.pc-t:not(:empty){margin-top:12px;padding-top:10px;border-top:1px solid var(--line)}.pc-t .sp-l{margin:0}.pc-t .sp-q{margin-top:4px}
.me-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}.me-btns .btn{min-height:46px;font-size:14.5px}

/* ===================== 앱 셸 v2 — 앱 크기 기준 ===================== */
:root{
  --app-w:430px; --side:20px; --nav-h:52px; --tab-h:56px;
  --fs-lt:28px; --fs-title:17px; --fs-body:16px; --fs-sub:14px; --fs-cap:12.5px;
  --r-btn:14px; --r-card:16px;
  --sys:-apple-system,BlinkMacSystemFont,"Apple SD Gothic Neo","Pretendard","Noto Sans KR","Malgun Gothic",system-ui,sans-serif;
  --safe-t:env(safe-area-inset-top,0px); --safe-b:env(safe-area-inset-bottom,0px);
  --tabh:calc(var(--tab-h) + var(--safe-b));
}
html{background:#E9E1D5;-webkit-tap-highlight-color:transparent;overscroll-behavior-y:none}
body{font-family:var(--sys);font-size:var(--fs-body);line-height:1.55;letter-spacing:-.01em;
  max-width:var(--app-w);margin:0 auto;min-height:var(--vvh,100dvh);position:relative;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:manipulation}
@media (min-width:500px){body{box-shadow:0 0 0 1px rgba(90,70,50,.08),0 20px 60px rgba(90,60,40,.12)}}
input,textarea,[contenteditable],.tk-b,.sp-q,.real p,.lt-body,.sp-row p,.a{-webkit-user-select:text;user-select:text}
input,textarea,select,.field,.tk-in,.sp-search,.rs-name{font-size:16px!important}
button,a,label{-webkit-tap-highlight-color:transparent}
button:active,.btn:active,.pc:active,.pl-item:active,.sp-grid button:active,.sky-item:active,.tk-pick button:active,.pw-plan:active,.tl-ev:active,.sp-today:active,.res:active{transform:scale(.98);opacity:.88;transition:transform .08s,opacity .08s}

/* 상단바 (안쪽 화면) */
.appbar{display:none!important}
.nav{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:48px 1fr 48px;align-items:center;height:calc(var(--nav-h) + var(--safe-t));padding:var(--safe-t) 4px 0;
  background:rgba(246,239,227,.86);-webkit-backdrop-filter:saturate(1.6) blur(14px);backdrop-filter:saturate(1.6) blur(14px);border-bottom:.5px solid rgba(90,70,50,.18)}
.nav-back{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:0;background:none;color:var(--accent);padding:0}
.nav-back svg{width:26px;height:26px}
.nav-title{margin:0;text-align:center;font-family:var(--sys);font-size:var(--fs-title);font-weight:600;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav-r{display:flex;justify-content:flex-end}
body.root .nav,body.chatting .nav{display:none}
body.report .nav{background:rgba(58,44,74,.6);border-color:rgba(255,255,255,.12)}body.report .nav-title,body.report .nav-back{color:#FFF4EA}

/* 본문 */
.wrap{max-width:none;padding:12px var(--side) calc(var(--tabh) + 24px)}
body.root .wrap{padding-top:calc(var(--safe-t) + 18px)}
.in-push{animation:inPush .32s cubic-bezier(.2,.8,.2,1)}.in-back{animation:inBack .28s cubic-bezier(.2,.8,.2,1)}.in-fade{animation:fade .2s}
@keyframes inPush{from{transform:translateX(28%);opacity:.4}to{transform:none;opacity:1}}
@keyframes inBack{from{transform:translateX(-18%);opacity:.5}to{transform:none;opacity:1}}

/* 큰 제목 */
.pl-h,.tk-h,.up-h,.sp-hero h1,.tk-title{font-family:var(--f-l);letter-spacing:-.02em}
.pl-h{font-size:var(--fs-lt);margin:4px 0 16px}
.tk-h{font-size:22px;line-height:1.35}
.up-h{font-size:var(--fs-lt);line-height:1.35}
.sp-hero h1{font-size:24px}

/* 탭바 */
.tabbar{left:50%;right:auto;transform:translateX(-50%);width:min(100%,var(--app-w));height:var(--tabh);padding:4px 8px var(--safe-b);
  background:rgba(246,239,227,.9);-webkit-backdrop-filter:saturate(1.6) blur(16px);backdrop-filter:saturate(1.6) blur(16px);border-top:.5px solid rgba(90,70,50,.2)}
.tabbar a{justify-content:center;gap:3px;padding:0}
.tabbar .ti{width:26px;height:26px}
.tabbar span{font-family:var(--sys);font-size:11px;font-weight:500;letter-spacing:0}
.tabbar [aria-current="true"] .ti{fill:currentColor;fill-opacity:.15}
body.chatting .tabbar{display:none}

/* 공통 크기 */
.btn{min-height:52px;border-radius:var(--r-btn);font-family:var(--sys);font-size:16px;font-weight:600}
.btn.primary{box-shadow:0 6px 16px rgba(63,51,44,.16)}
.field{min-height:48px;border-radius:12px;padding:12px 14px}
textarea.field{min-height:96px}
.card,.sp-card,.pc,.pl-item,.me-card,.sky-item,.pw-plan{border-radius:var(--r-card)}
.sp-l,.lbl{font-size:var(--fs-cap);font-weight:500;letter-spacing:0}
.sp-note,.note,.rs-tiny,.rs-ai,.up-foot{font-size:var(--fs-cap)}
.sub,.tk-sub,.up-sub,.meta,.muted{font-size:var(--fs-sub)}
.chips button,.rs-chips span,.dna-c,.sp-seg button,.tk-chips button{min-height:34px;display:inline-flex;align-items:center;font-size:14px}
.sp-seg button{padding:0 14px}
.toast{bottom:calc(var(--tabh) + 16px);font-family:var(--sys);font-size:14px}
.sheet{max-width:var(--app-w);padding:10px var(--side) calc(var(--safe-b) + 24px);border-radius:22px 22px 0 0}
.sheet h2{font-size:20px}
.veil{max-width:var(--app-w);margin:0 auto}

/* 목록 줄 높이 */
.pl-item,.pc{padding:14px 16px;min-height:72px}
.me-row{min-height:52px}.me-row button{min-height:32px}
.sp-row{min-height:56px}
.often{min-height:52px}
.tk-pick button{min-height:56px}
.sp-grid button{min-height:72px}

/* 첫 화면 · 올리기 */
.up,.ob{padding-top:calc(var(--vvh,100vh) * 0.08)}
.up-logo{width:92px;height:92px;border-radius:22px}
.up-btn,.ob .up-btn{margin-top:28px}
.up-how{min-height:44px;font-size:14.5px}
.ob-step{padding:14px}.ob-step b{font-size:16px}.ob-step p{font-size:13.5px}

/* 대화 화면 — 메신저처럼 위아래 고정 */
body.chatting .wrap{position:fixed;top:0;left:50%;transform:translateX(-50%);width:min(100%,var(--app-w));height:var(--vvh,var(--vvh,100dvh));
  display:flex;flex-direction:column;padding:0;overflow:hidden;animation:none}
body.chatting .tk-head{position:relative;top:0;margin:0;flex:none;min-height:calc(var(--nav-h) + var(--safe-t));padding:var(--safe-t) 8px 0 4px;gap:8px;
  background:rgba(246,239,227,.92);border-bottom:.5px solid rgba(90,70,50,.18)}
.tk-back{flex:none}
.tk-hd b{font-family:var(--sys);font-size:17px;font-weight:600}.tk-hd span{font-size:12px}
.tk-menu{width:44px;height:44px;font-size:22px}
body.chatting .tk-list{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:14px 14px 10px;gap:10px}
body.chatting .tk-compose{position:relative;bottom:auto;flex:none;margin:0;padding:6px 10px calc(var(--safe-b) + 8px);background:var(--paper);border-top:.5px solid rgba(90,70,50,.12)}
.tk-b{font-family:var(--sys);font-size:16px;line-height:1.5;padding:9px 13px}
.tk-row{max-width:82%}
.tk-av.xs{width:34px;height:34px}
.tk-n{font-size:12.5px}
.tk-bar{min-height:48px;padding:5px 5px 5px 6px;border-radius:24px}
.tk-in{font-size:16px;padding:8px 4px}
.tk-send,.tk-sky,.tk-cam{width:38px;height:38px}
.real p{font-family:var(--f-l);font-size:15.5px}

/* 기억 공간 */
.sp-hero .tk-av.lg{width:104px;height:104px}
.sp-q{font-size:17px}.sp-q.sm{font-size:15.5px}
.sp-stats b{font-size:26px}
.sp-row p{font-family:var(--sys);font-size:15.5px}
.rp h1{font-size:28px}

/* ===== 나 (설정) — 묶음 목록 ===== */
.mem-card{display:block;width:100%;text-align:left;margin:0 0 22px;padding:18px 18px 16px;border:0;border-radius:20px;color:#FFF4EA;
  background:linear-gradient(135deg,#4A3550 0%,#8A5A62 55%,#D4946E 100%);box-shadow:0 12px 28px rgba(90,50,50,.22)}
.mem-top{display:flex;justify-content:space-between;align-items:center}
.mem-k{font-size:13px;font-weight:600;padding:4px 10px;border-radius:99px;background:rgba(255,255,255,.18)}
.mem-go{font-size:13px;color:#FFE2C2}
.mem-big{margin:14px 0 10px;font-size:15px;color:#F3DDD3}.mem-big b{font-family:var(--f-l);font-size:34px;color:#fff;margin-right:4px}
.mem-bar{height:6px;border-radius:99px;background:rgba(255,255,255,.22);overflow:hidden}.mem-bar i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,#FFE2B8,#FFB27A)}
.mem-s{margin:10px 0 0;font-size:12.5px;color:#EBD3CB}
.grp{margin:0 0 22px}
.grp-h{margin:0 0 7px 6px;font-size:13px;font-weight:600;color:var(--dim)}
.grp-b{border-radius:16px;background:var(--paper2);border:.5px solid rgba(90,70,50,.14);overflow:hidden}
.row{position:relative;display:flex;align-items:center;gap:13px;width:100%;min-height:56px;padding:9px 14px;border:0;background:none;text-align:left;color:var(--ink);cursor:pointer}
.row+.row::before{content:"";position:absolute;top:0;left:57px;right:0;height:.5px;background:rgba(90,70,50,.16)}
.row:active{background:rgba(90,70,50,.06);transform:none;opacity:1}
.row-ic{flex:none;width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center}.row-ic svg{width:19px;height:19px}
.row-av{flex:none;width:30px;display:flex;justify-content:center}.row-av .tk-av.xs{width:30px;height:30px;font-size:12px;border-width:1.5px}
.row-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}
.row-t b{font-weight:500;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-t small{font-size:13px;color:var(--dim);margin-top:2px}
.row-chev{flex:none;width:18px;height:18px;color:#C2B3A3}.row-chev svg{width:18px;height:18px}
.sw{flex:none;width:51px;height:31px;appearance:none;-webkit-appearance:none;border-radius:99px;background:#E3D7C6;position:relative;cursor:pointer;transition:background .2s;margin:0}
.sw::after{content:"";position:absolute;left:2px;top:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 5px rgba(0,0,0,.18);transition:left .2s}
.sw:checked{background:#C77B52}.sw:checked::after{left:22px}
.me-ver{text-align:center;font-size:12px;color:var(--faint);margin:4px 0 0}
.nav-more{width:44px;height:44px;border:0;background:none;color:var(--accent);font-size:22px;line-height:1}
.mem-card{display:flex;justify-content:space-between;align-items:center;min-height:64px;padding:0 18px}
.mem-card>b{font-size:17px;font-weight:600}
.mem-card .mem-go{font-size:15px;font-weight:600;color:#FFE2C2}

/* 글이 단어 중간에서 끊기지 않게 */
body,button,p,span,b,small,em,h1,h2,h3,li,label,a{word-break:keep-all;overflow-wrap:anywhere}
.pw-plan{min-height:64px}
.pw-l{display:flex;flex-direction:column;gap:2px}
.pw-l strong{font-size:16px;font-weight:600;display:flex;align-items:center;gap:6px}
.pw-l em{font-style:normal;font-size:11.5px;font-weight:600;padding:2px 7px;border-radius:99px;background:var(--accent);color:#fff}
.pw-l small{font-size:12.5px;color:var(--dim)}
.pw-p{white-space:nowrap}.pw-p small{font-size:13px;color:var(--dim)}.pw-p b{font-size:18px;color:var(--accent)}
.pw-foot.one{white-space:nowrap;font-size:11.5px;margin-top:10px}
.pw-foot{white-space:nowrap;font-size:11.5px}

/* ===== 글자 한 단계 작게 (컴팩트) ===== */
:root{--fs-lt:24px;--fs-title:16px;--fs-body:15px;--fs-sub:13px;--fs-cap:12px;--side:16px;--nav-h:48px;--tab-h:52px}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{font-size:15px}
.pl-h{font-size:24px;margin:2px 0 14px}
.up-h{font-size:24px}.tk-h{font-size:19px}.sp-hero h1{font-size:21px}.rp h1{font-size:24px}
.btn{min-height:48px;font-size:15px;border-radius:13px}
.field,.tk-in,.sp-search{font-size:16px!important}
.row{min-height:48px;padding:7px 12px;gap:12px}
.row+.row::before{left:52px}
.row-ic{width:28px;height:28px;border-radius:7px}.row-ic svg{width:17px;height:17px}
.row-t b{font-size:15px}.row-t small{font-size:12px}
.row-chev,.row-chev svg{width:15px;height:15px}
.sw{width:46px;height:28px}.sw::after{width:24px;height:24px}.sw:checked::after{left:20px}
.grp{margin-bottom:18px}.grp-h{font-size:12px;margin-bottom:6px}
.mem-card{min-height:54px;padding:0 16px;margin-bottom:18px;border-radius:16px}
.mem-card>b{font-size:15px}.mem-card .mem-go{font-size:13.5px}
.tabbar .ti{width:24px;height:24px}.tabbar span{font-size:10.5px}
.tk-b{font-size:15px;padding:8px 12px}.tk-hd b{font-size:16px}
.sp-q{font-size:16px}.sp-q.sm{font-size:14.5px}.sp-row p{font-size:14.5px}
.pl-t b{font-size:15.5px}.pl-t>span{font-size:12.5px}
.sp-grid b{font-size:14.5px}.sp-grid span{font-size:11px}
.pw-l strong{font-size:15px}.pw-p b{font-size:16px}
.chips button,.rs-chips span,.dna-c,.sp-seg button,.tk-chips button{min-height:30px;font-size:13px}
.up-logo{width:80px;height:80px;border-radius:20px}

/* 폰에서는 화면 꽉 차게, 폭을 줄이는 건 PC(마우스)에서만 */
:root{--app-w:100%}
@media (min-width:600px) and (hover:hover) and (pointer:fine){:root{--app-w:430px}}
body{max-width:var(--app-w)}
@media not all and (min-width:600px) and (hover:hover) and (pointer:fine){body{box-shadow:none!important}html{background:var(--paper)}}
.ob,.up{min-height:calc(var(--vvh,100dvh) - var(--tabh) - var(--safe-t) - 40px);justify-content:center;padding-top:0!important}

/* ===== 처음 화면: 이런 앱이에요 ===== */
.ob2{display:flex;flex-direction:column;align-items:center;min-height:calc(var(--vvh,100dvh) - var(--tabh) - var(--safe-t) - 30px);padding-top:6px}
.ob-logo{width:46px;height:46px;border-radius:12px;filter:drop-shadow(0 8px 16px var(--glow))}
.ob-h{margin:10px 0 16px;font-family:var(--f-l);font-size:18px;letter-spacing:.02em;color:var(--dim)}
.ob-track{display:flex;width:calc(100% + var(--side) * 2);margin:0 calc(var(--side) * -1);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.ob-track::-webkit-scrollbar{display:none}
.ob-slide{flex:0 0 100%;scroll-snap-align:center;display:flex;flex-direction:column;align-items:center;padding:0 var(--side)}
.ob-mock{width:100%;height:300px;border-radius:22px;background:var(--paper2);border:.5px solid rgba(90,70,50,.14);box-shadow:0 14px 34px rgba(90,60,40,.1);display:flex;align-items:center;justify-content:center;padding:20px;overflow:hidden}
.ob-t{margin:22px 0 0;text-align:center;font-family:var(--f-l);font-size:21px;line-height:1.45;white-space:pre-line;letter-spacing:-.01em}
.ob-dots{display:flex;gap:6px;margin:18px 0 20px}.ob-dots i{width:6px;height:6px;border-radius:99px;background:#D8CBBA;transition:width .2s}.ob-dots i[aria-current=true]{width:18px;background:var(--accent)}
.ob2 .btn{margin-top:auto}
.ob-chat{display:grid;grid-template-columns:32px 1fr;gap:8px 8px;width:100%;align-items:start}
.ob-av{width:32px;height:32px;border-radius:50%;background:#E6D7C2;color:#5A4433;font-family:var(--f-l);font-weight:700;font-size:13px;display:flex;align-items:center;justify-content:center}
.ob-chat>div{display:flex;flex-direction:column;gap:5px;align-items:flex-start}
.ob-b{margin:0;padding:8px 12px;border-radius:4px 16px 16px 16px;background:#fff;border:.5px solid rgba(90,70,50,.14);font-size:14.5px;animation:pop .5s both}
.ob-b.me{grid-column:1 / -1;justify-self:end;border-radius:16px 4px 16px 16px;background:var(--mine);border:0}
.ob-chat>*:nth-child(2) .ob-b:nth-child(2){animation-delay:.4s}.ob-b.me{animation-delay:.9s}.ob-chat>*:last-child .ob-b{animation-delay:1.4s}
@keyframes pop{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.ob-card{width:100%;padding:18px;border-radius:16px;background:#fff;border:.5px solid rgba(90,70,50,.14);display:flex;flex-direction:column;gap:3px}
.ob-card b{font-family:var(--f-l);font-size:17px}.ob-card small{font-size:12.5px;color:var(--dim)}.ob-card i{height:.5px;background:rgba(90,70,50,.16);margin:10px 0}
.ob-card .ob-k{color:var(--accent)}.ob-card p{margin:4px 0 0;font-family:var(--f-l);font-size:16px}
.ob-real{width:100%;padding:20px 18px;border-radius:16px;background:#FFF8EC;border:1px dashed rgba(156,91,59,.45)}
.ob-real p{margin:0;font-family:var(--f-l);font-size:18px;line-height:1.6}.ob-real small{display:block;margin-top:10px;font-size:12px;color:var(--accent)}
.ob-mock:has(.ob-sky){background:linear-gradient(180deg,#2E2442,#5B3D5C 60%,#C97E6A);padding:0}
.ob-sky{position:relative;width:100%;height:100%}
.ob-sky i{position:absolute;width:14px;height:19px;border-radius:4px 4px 3px 3px;background:linear-gradient(#ffe6b8,#ee8150);box-shadow:0 0 14px 5px rgba(255,170,80,.35);animation:drift 6s ease-in-out infinite alternate}
.ob-sky i:nth-child(1){left:14%;top:22%}.ob-sky i:nth-child(2){left:34%;top:52%;transform:scale(.7);animation-delay:-2s}.ob-sky i:nth-child(3){left:52%;top:18%;transform:scale(.8);animation-delay:-4s}
.ob-sky i:nth-child(4){left:70%;top:40%;animation-delay:-1s}.ob-sky i:nth-child(5){left:84%;top:16%;transform:scale(.6);animation-delay:-3s}.ob-sky i:nth-child(6){left:24%;top:78%;transform:scale(.55)}.ob-sky i:nth-child(7){left:62%;top:74%;transform:scale(.65);animation-delay:-5s}

/* ===== 처음 화면: 그리운 그 사람의 카톡 ===== */
body.onb .tabbar,body.onb .nav{display:none}
body.onb .wrap{padding:0}
.kk{position:fixed;inset:0;left:50%;transform:translateX(-50%);width:min(100%,var(--app-w));display:flex;flex-direction:column;background:#BACEE0;font-family:var(--sys);z-index:5}
.kk-head{display:flex;align-items:center;gap:8px;padding:calc(var(--safe-t) + 10px) 12px 10px;background:#BACEE0}
.kk-back{font-size:28px;line-height:1;color:#333;width:24px}
.kk-head b{flex:1;font-size:16.5px;font-weight:600;color:#222}
.kk-demo{border:0;background:rgba(255,255,255,.55);color:#555;font-size:12.5px;padding:6px 11px;border-radius:99px}
.kk-list{flex:1;overflow-y:auto;padding:6px 12px 16px;display:flex;flex-direction:column;gap:6px}
.kk-day{align-self:center;margin:8px 0 14px;padding:4px 12px;border-radius:99px;background:rgba(0,0,0,.12);color:#fff;font-size:12px}
.kk-row{display:flex;gap:8px;align-items:flex-start;animation:pop .35s both}
.kk-row.cont .kk-av{visibility:hidden;height:0}
.kk-av{flex:none;width:38px;height:38px;border-radius:14px;background:#9FB3C8 url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 40 40'><circle cx='20' cy='15' r='7' fill='%23E9EEF3'/><path d='M7 36c2-8 7-12 13-12s11 4 13 12' fill='%23E9EEF3'/></svg>") center/cover}
.kk-row>div{display:flex;flex-direction:column;align-items:flex-start;gap:4px}
.kk-name{margin:0 0 1px;font-size:12.5px;color:#444}
.kk-line{display:flex;align-items:flex-end;gap:5px}
.kk-b{margin:0;max-width:240px;padding:8px 11px;border-radius:4px 14px 14px 14px;background:#fff;color:#111;font-size:15px;line-height:1.45}
.kk-row.cont .kk-b{border-radius:14px}
.kk-time{font-size:10.5px;color:#556;white-space:nowrap}
.kk-typing{display:flex;gap:4px;padding:12px 13px}.kk-typing i{width:6px;height:6px;border-radius:50%;background:#9AA;animation:dot 1.2s infinite}.kk-typing i:nth-child(2){animation-delay:.18s}.kk-typing i:nth-child(3){animation-delay:.36s}
.kk-bar{display:flex;align-items:center;gap:8px;margin:0;padding:8px 10px calc(var(--safe-b) + 8px);border:0;background:#fff;text-align:left;opacity:.55;transition:opacity .4s}
.kk-bar.ready{opacity:1}
.kk-plus{width:30px;height:30px;display:flex;align-items:center;justify-content:center;font-size:22px;color:#888}
.kk-in{flex:1;padding:9px 12px;border-radius:18px;background:#F3F3F3;color:#999;font-size:15px}
.kk-send{padding:8px 12px;border-radius:8px;background:#F5F5F5;color:#aaa;font-size:14px}
.kk-bar.ready .kk-send{background:#FEE500;color:#3A1D1D;animation:nudge 1.6s ease-in-out infinite}
@keyframes nudge{0%,100%{transform:none}50%{transform:scale(1.06)}}
.kk-tag{align-self:center;margin:22px 0 18px;text-align:center;animation:fade 1.4s both}
.kk-tag p{margin:0;font-family:var(--f-l);font-size:20px;line-height:1.55;color:#2c3440}
.kk-tag small{display:block;margin-top:10px;font-size:12px;color:#5b6876;letter-spacing:.04em}
.up-q{margin:12px 0 0;font-family:var(--f-l);font-size:15.5px;color:var(--dim)}
.up-ask{margin:14px 0 0;text-align:center;font-family:var(--f-l);font-size:19px;line-height:1.5}

/* ===== 대화방: 카톡 느낌 기본 + 배경 바꾸기 ===== */
body.chatting .wrap{background:var(--chat-bg,#BACEE0)!important}
body.chatting .tk-head{background:rgba(255,255,255,.28);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:0}
body.chatting .tk-b{background:#fff;border:0;color:#191919}
body.chatting .tk-row.me .tk-b{background:#FEE500;color:#191919}
body.chatting .tk-n{color:#424a52}
body.chatting .tk-compose{background:#fff;border-top:0}
body.chatting .tk-bar{background:#F4F4F4;border:0;box-shadow:none}
body.chatting .tk-chips button{background:rgba(255,255,255,.75);border:0}
body.chatting .tk-left{background:rgba(255,255,255,.75)}
body.chatting .hb{color:rgba(60,70,80,.45)}
.chat-dark .tk-n,.chat-dark .tk-hd b,.chat-dark .tk-hd span,.chat-dark .tk-back,.chat-dark .tk-menu{color:#fff!important}
.chat-dark .tk-head{background:rgba(0,0,0,.18)!important}
.chat-dark .hb{color:rgba(255,255,255,.55)}
.chat-dark .tk-memlink{color:#FFE2C2}
.bg-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:14px 0 6px}
.bg-sw{position:relative;aspect-ratio:3/4;border-radius:14px;border:.5px solid rgba(0,0,0,.1);overflow:hidden;padding:0;display:flex;align-items:flex-end}
.bg-sw span{width:100%;padding:6px 0;font-size:12.5px;font-weight:600;color:#333;background:rgba(255,255,255,.7)}
.bg-sw.photo{background:#F1ECE4;border:1.5px dashed #C9B8A3;align-items:center;justify-content:center}
.bg-sw.photo span{background:none;color:var(--accent);font-size:14px}
.kk-bar.ready .kk-in{color:#3A3A3A}

/* 점검 수정: 기억 보관함 탭 한 줄 · 하늘 우체국 화면 채우기 */
.sp-seg{overflow:visible}
.sp-seg button{flex:1 1 0;min-width:0;padding:0 4px!important;justify-content:center;white-space:nowrap;font-size:13px}

.up-h{margin-top:14px}

/* 그 사람 고르기 · 분석 흐름: 아래 탭 숨기고 버튼은 아래에 */
body.flow .tabbar{display:none}
body.flow .wrap{padding-bottom:calc(96px + var(--safe-b,0px))}
.tk-pick button{justify-content:flex-start;gap:12px}
.tk-pick button span{margin-left:auto}
.tk-pav{flex:none;width:38px;height:38px;border-radius:14px;background:#E6D7C2;color:#5A4433;font-style:normal;font-family:var(--f-l);font-weight:700;font-size:16px;display:flex;align-items:center;justify-content:center}
.tk-pick button[aria-pressed=true] .tk-pav{background:var(--accent);color:#fff}
.btn.tk-next{position:fixed;z-index:8;left:max(18px,calc(50% - var(--app-w,100vw)/2 + 18px));right:max(18px,calc(50% - var(--app-w,100vw)/2 + 18px));bottom:calc(14px + var(--safe-b,0px));width:auto!important;margin:0!important}
.tk-pick button.is-me b::after{content:"나";margin-left:8px;padding:1px 7px;border-radius:99px;background:#E6D7C2;color:#5A4433;font-size:11.5px;vertical-align:2px}
/* 분석 결과 채우기 */
.rs-stats{align-self:stretch;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:22px}
.rs-stats div{padding:12px 6px;border-radius:14px;background:var(--paper2);border:1px solid var(--line);text-align:center}
.rs-stats b{display:block;font-family:var(--f-l);font-size:20px;color:var(--accent)}
.rs-stats span{font-size:12px;color:var(--dim)}
.rs-dna{align-self:stretch;display:flex;gap:8px;margin-top:8px}
.rs-dna span{flex:1;padding:9px 12px;border-radius:12px;background:var(--paper3);font-size:13.5px;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rs-dna em{font-style:normal;color:var(--dim);font-size:12px;margin-right:8px}
.rs-often{align-self:stretch;display:flex;justify-content:space-between;gap:10px;margin:0 0 6px;padding:11px 14px;border-radius:14px;background:var(--paper2);border:1px solid var(--line);font-size:14px;text-align:left}
.rs-often b{flex:none;font-weight:600;color:var(--accent);font-size:13px}
.rs-ai{margin-bottom:8px}
/* 분석 진행률 */
.tk-learn .tk-h{margin-top:20px;font-size:18px}
.lp-n{display:block;margin-top:14px;font-family:var(--f-l);font-size:44px;line-height:1;color:var(--accent);font-variant-numeric:tabular-nums}
.lp-bar{width:min(260px,70%);height:8px;margin-top:16px;border-radius:99px;background:var(--paper3);overflow:hidden}
.lp-bar i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,#E0A27E,var(--accent));transition:width .25s ease-out}
.lp-s{margin:14px 0 0;font-size:14px;color:var(--ink)}
.lp-c{margin:4px 0 0;font-size:12.5px;color:var(--faint)}
/* 대화창: 화면 밀림 막기 */
html{overflow-x:clip}
body.chatting{position:fixed;inset:0;overflow:hidden;overscroll-behavior:none}
body.chatting .wrap{top:var(--vvt,0px)!important;max-width:100%}
body.chatting .tk-list{overflow-x:hidden;touch-action:pan-y}
body.chatting .tk-head,body.chatting .tk-compose{touch-action:manipulation}
/* ===== 대화방: 카톡 대화창 그대로 ===== */
body.chatting .kt-head{display:flex;align-items:center;gap:2px;padding:var(--safe-t) 6px 0 2px;min-height:calc(52px + var(--safe-t));background:transparent!important;border:0!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
.kt-title{flex:1;min-width:0;text-align:left;padding:0 4px;border:0;background:none;font-family:var(--sys);font-size:17px;font-weight:600;color:#191919;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kt-ic{flex:none;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:0;background:none;color:#2b2f33}
.kt-ic svg{width:23px;height:23px}
body.chatting .tk-list{padding:4px 10px 12px;gap:0}
.kt-day{align-self:center;margin:12px auto 6px;padding:3px 12px;border-radius:99px;background:rgba(40,55,70,.16);color:#fff;font-family:var(--sys);font-size:12px}
.kt-row{display:flex;align-items:flex-start;gap:8px;margin-top:3px}
.kt-row[hidden]{display:none}
.kt-row.head{margin-top:10px}
.kt-row .tk-av.xs,.kt-sp{flex:none;width:38px;height:38px;border-radius:15px}
.kt-col{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-width:0;max-width:74%}
.kt-row.me{justify-content:flex-end}
.kt-row.me .kt-col{align-items:flex-end;max-width:78%}
.kt-n{margin:0 0 1px 2px;font-family:var(--sys);font-size:12.5px;color:#3d4650}
.kt-b{position:relative;margin:0;padding:7px 11px;max-width:100%;border-radius:13px;background:#fff;color:#191919;font-family:var(--sys);font-size:15px;line-height:1.45;white-space:pre-wrap;word-break:keep-all;overflow-wrap:anywhere;-webkit-user-select:text;user-select:text}
.kt-row.me .kt-b{background:#FEE500}
.kt-b.tail::before{content:"";position:absolute;top:0;left:-6px;width:10px;height:11px;background:inherit;clip-path:polygon(0 0,100% 0,100% 100%)}
.kt-row.me .kt-b.tail::before{left:auto;right:-6px;clip-path:polygon(0 0,100% 0,0 100%)}
.kt-line{display:flex;align-items:flex-end;gap:5px;max-width:100%}
.kt-row.me .kt-line{justify-content:flex-end}
.kt-t{flex:none;margin-bottom:1px;font-family:var(--sys);font-size:10.5px;color:rgba(0,0,0,.45);white-space:nowrap}
.kt-col .tk-photo-msg{max-width:210px;border-radius:12px;display:block}
.kt-dots{display:flex;gap:4px;padding:11px 12px}
.kt-dots i{width:6px;height:6px;border-radius:50%;background:#b9c0c7;animation:dot 1.2s infinite ease-in-out}
.kt-dots i:nth-child(2){animation-delay:.18s}.kt-dots i:nth-child(3){animation-delay:.36s}
body.chatting .kt-compose{padding:6px 8px calc(var(--safe-b) + 6px);background:#fff!important;border-top:0}
.kt-compose .tk-cam{position:absolute;width:1px;height:1px;overflow:hidden;opacity:0;pointer-events:none}
.kt-bar{display:flex;align-items:flex-end;gap:6px}
.kt-plus{flex:none;width:38px;height:38px;border:0;background:none;color:#8b8b8b;font-size:28px;font-weight:300;line-height:1}
.kt-bar .tk-in{flex:1;min-height:38px;max-height:120px;padding:8px 12px!important;border-radius:19px;background:#F4F4F4;color:#191919;font-family:var(--sys)}
.kt-send{flex:none;height:38px;padding:0 13px;border:0;border-radius:8px;background:#F2F2F2;color:#B4B4B4;font-family:var(--sys);font-size:14px;font-weight:600}
.kt-send.on{background:#FEE500;color:#3A1D1D}
.kt-more{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;padding:8px 4px 6px}
.kt-more button{display:flex;flex-direction:column;align-items:center;gap:6px;border:0;background:none;font-size:12.5px;color:var(--ink)}
.kt-more i{width:52px;height:52px;border-radius:20px;display:block;background:#F2EDE4 center/26px no-repeat}
.kt-more .m-pic{background-color:#E3F0D9;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235E8B4A' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3.5' y='5' width='17' height='14' rx='2.5'/%3E%3Ccircle cx='9' cy='10' r='1.6'/%3E%3Cpath d='m20 16-4.5-4.5L7 19'/%3E%3C/svg%3E")}
.kt-more .m-sky{background-color:#F6E2D6;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23B8653F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8.5 6h7l1.5 9.5a2 2 0 0 1-2 2.3H9a2 2 0 0 1-2-2.3L8.5 6Z'/%3E%3Cpath d='M10 6V4.5h4V6M10 20.5h4'/%3E%3C/svg%3E")}
.chat-dark .kt-title,.chat-dark .kt-ic,.chat-dark .kt-n{color:#fff!important}
.chat-dark .kt-t{color:rgba(255,255,255,.6)}
.chat-dark .kt-day{background:rgba(255,255,255,.16)}
/* ===== 하단 탭: 카톡처럼 아이콘 4개 ===== */
.tabbar.kt-tabs{grid-template-columns:repeat(4,1fr)!important;background:#fff!important;border-top:.5px solid rgba(0,0,0,.08)!important;box-shadow:none!important}
.kt-tabs a{color:#A3A3A3!important;justify-content:center}
.kt-tabs a[aria-current="true"]{color:#191919!important}
.kt-tabs .ti{width:27px!important;height:27px!important;fill:none!important}
.kt-tabs a[aria-current="true"] .ti{fill:currentColor!important;fill-opacity:1!important;stroke:currentColor}
.kt-tabs a[data-tab="me"][aria-current="true"] .ti circle{fill:currentColor}
.kt-tabs span{display:none}
/* 채팅 목록 */
.kl-head{display:flex;align-items:center;justify-content:space-between;margin:2px 0 8px}
.kl-head h1{font-family:var(--sys);font-size:22px;font-weight:700;margin:0}
.kl-list{display:flex;flex-direction:column;margin:0 calc(var(--side,18px) * -1)}
.kl-row{display:flex;align-items:center;gap:12px;padding:9px var(--side,18px);border:0;background:none;text-align:left;width:100%}
.kl-row .tk-av.sm{flex:none;width:48px;height:48px;border-radius:18px;font-size:19px}
.kl-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.kl-mid b{font-family:var(--sys);font-size:15.5px;font-weight:600;color:#191919}
.kl-mid span{font-family:var(--sys);font-size:13.5px;color:#7d7d7d;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kl-r{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:5px;align-self:flex-start;padding-top:3px}
.kl-r small{font-family:var(--sys);font-size:11.5px;color:#a0a0a0}
.kl-badge{min-width:19px;height:19px;padding:0 6px;border-radius:99px;background:#FF5B3A;color:#fff;font-style:normal;font-family:var(--sys);font-size:11.5px;font-weight:700;display:flex;align-items:center;justify-content:center}
/* + 시트: 카톡처럼 */
.sheet.km{background:#fff!important;border-radius:26px 26px 0 0;padding:10px 0 calc(var(--safe-b,0px) + 10px)}
.sheet.km .sheet-x{display:none}
.km-top{display:flex;align-items:center;justify-content:space-between;padding:8px 20px 12px}
.km-top b{font-family:var(--sys);font-size:17px;font-weight:700;color:#191919}
.km-send{height:34px;padding:0 15px;border:0;border-radius:99px;background:#FEE500;color:#191919;font-family:var(--sys);font-size:14.5px;font-weight:600}
.km-send:disabled{background:#F0F0F0;color:#B0B0B0}
.km-row{display:flex;gap:7px;overflow-x:auto;padding:0 18px 6px;scrollbar-width:none}.km-row::-webkit-scrollbar{display:none}
.km-cam,.km-ph{flex:none;width:116px;height:116px;border:0;border-radius:16px;background:#A7A7A7 center/cover no-repeat;position:relative;display:flex;align-items:center;justify-content:center}
.km-cam svg{width:44px;height:44px}
.km-ph i{position:absolute;top:7px;right:7px;width:22px;height:22px;border-radius:50%;border:2px solid #fff;background:rgba(0,0,0,.15)}
.km-ph.on i{background:#FEE500;border-color:#FEE500}
.km-ph.on{outline:3px solid #FEE500;outline-offset:-3px}
.km-list{display:flex;flex-direction:column;margin-top:14px}
.km-list button{display:flex;align-items:center;gap:16px;padding:12px 22px;border:0;background:none;font-family:var(--sys);font-size:16px;color:#191919;text-align:left}
.km-ic{flex:none;width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center}
.km-ic svg{width:19px;height:19px}
/* 하단 탭 5개 (카톡처럼 꽉 찬 아이콘) */
.tabbar.kt-tabs{grid-template-columns:repeat(5,1fr)!important}
.kt-tabs a{position:relative;color:#C2C2C2!important}
.kt-tabs a[aria-current="true"]{color:#191919!important}
.kt-tabs .ti,.kt-tabs a[aria-current="true"] .ti{width:28px!important;height:28px!important;fill:currentColor!important;stroke:none!important}
.tb-badge{position:absolute;top:4px;left:calc(50% + 6px);min-width:18px;height:18px;padding:0 5px;border-radius:99px;background:#FF4B2B;color:#fff;font-style:normal;font-family:var(--sys);font-size:11px;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid #fff}
.tb-badge[hidden]{display:none}
.kl-head{gap:2px}.kl-head h1{flex:none}.kl-sp{flex:1}
.kl-head .kt-ic{color:#191919}
.kt-head .tk-back{color:#191919!important}
/* 마음 서랍 */
.dw-list{display:flex;flex-direction:column;gap:8px}
.dw-item{display:block;text-align:left;padding:14px 16px;border-radius:16px;background:var(--paper2);border:1px solid var(--line)}
.dw-q{margin:0;font-family:var(--f-l);font-size:15.5px;line-height:1.55;color:var(--ink)}
.dw-m{display:flex;justify-content:space-between;margin:8px 0 0;font-size:12px;color:var(--dim)}
.dw-empty{display:flex;flex-direction:column;align-items:center;padding-top:calc(var(--vvh,100vh) * 0.22);color:var(--dim);text-align:center}
.dw-empty i{width:56px;height:56px;border-radius:20px;background:var(--paper3) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23C9A27E'%3E%3Cpath d='M12 20s-7-4.4-7-10a4 4 0 0 1 7-2.6A4 4 0 0 1 19 10c0 5.6-7 10-7 10Z'/%3E%3C/svg%3E") center/28px no-repeat}
.dw-empty p{margin:14px 0 4px;font-size:15px;color:var(--ink)}
.dw-empty small{font-size:12.5px}
/* 안 읽음 1 (카톡처럼) */
.kt-meta{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:0;margin-bottom:1px}
.kt-1{font-family:var(--sys);font-size:11px;font-weight:700;line-height:1.1;color:#F2C300}
.chat-dark .kt-1{color:#FFE14D}
/* ===== 카톡 크기 ===== */
/* 목록 화면은 카톡처럼 흰 바탕 */
body.root:not(.onb){background:#fff}
body.root:not(.onb) .wrap{background:#fff}
body.root .kl-head{margin:6px 0 10px;min-height:44px}
.kl-head h1{font-size:23px!important;letter-spacing:-.02em}
.kl-head .kt-ic{width:44px;height:44px}.kl-head .kt-ic svg{width:26px;height:26px}
/* 채팅 목록 */
.kl-row{gap:14px;padding:10px var(--side,18px)}
.kl-row .tk-av.sm{width:56px!important;height:56px!important;border-radius:22px!important;font-size:22px!important}
.kl-mid{gap:4px}
.kl-mid b{font-size:17px!important}
.kl-mid span{font-size:15px!important;color:#8a8a8a}
.kl-r small{font-size:12.5px!important}
.kl-badge{min-width:22px;height:22px;font-size:12.5px}
/* 기억 공간 = 친구 목록 */
.fr-cap{margin:4px 0 4px;font-family:var(--sys);font-size:13px;color:#8a8a8a}
.fr-row{display:flex;align-items:center;gap:14px;width:100%;padding:9px var(--side,18px);border:0;background:none;text-align:left}
.fr-row .tk-av.sm{flex:none;width:52px!important;height:52px!important;border-radius:20px!important;font-size:21px!important}
.fr-mid{flex:1;min-width:0;display:flex;flex-direction:column;gap:3px}
.fr-mid b{font-family:var(--sys);font-size:17px;font-weight:600;color:#191919}
.fr-mid span{font-family:var(--sys);font-size:14px;color:#8a8a8a;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-tag{flex:none;max-width:40%;padding:5px 10px;border:1px solid #e3e3e3;border-radius:99px;font-family:var(--sys);font-size:12px;color:#555;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fr-tag[hidden]{display:none}
/* 하단 탭 */
.tabbar.kt-tabs{height:calc(60px + var(--safe-b,0px))!important;padding:0 6px var(--safe-b,0px)!important}
.kt-tabs .ti,.kt-tabs a[aria-current="true"] .ti{width:31px!important;height:31px!important}
.tb-badge{top:6px;left:calc(50% + 7px);min-width:21px;height:21px;font-size:12px}
:root{--tab-h:60px}
/* 대화방 */
.kt-title{font-size:18px!important}
.kt-ic svg{width:25px;height:25px}
.kt-row .tk-av.xs,.kt-sp{width:42px!important;height:42px!important;border-radius:16px!important;font-size:17px!important}
.kt-n{font-size:13.5px}
.kt-b{font-size:16px;line-height:1.45;padding:9px 13px;border-radius:16px}
.kt-t{font-size:11px}
.kt-day{font-size:13px;padding:5px 14px}
.kt-row.head{margin-top:12px}
.kt-row{margin-top:4px}
/* 입력창: 카톡처럼 둥근 흰 막대 */
body.chatting .kt-compose{background:transparent!important;padding:6px 10px calc(var(--safe-b) + 8px)}
.kt-bar{align-items:center;gap:4px;padding:5px;border-radius:28px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.kt-plus{width:42px;height:42px;border-radius:50%;background:#F2F2F2;color:#333;font-size:27px}
.kt-bar .tk-in{background:transparent!important;min-height:42px;font-size:16px!important;padding:10px 6px!important}
.kt-send{height:42px;min-width:42px;padding:0 14px;border-radius:21px}
/* 하단 바: 카톡 크기 (높이 64 · 아이콘 32) */
.tabbar.kt-tabs{height:calc(64px + var(--safe-b,0px))!important;align-items:stretch}
.kt-tabs a{min-height:64px}
.kt-tabs .ti,.kt-tabs a[aria-current="true"] .ti{width:32px!important;height:32px!important}
:root{--tab-h:64px}
/* 하단 바: 더 크게 (높이 72 · 아이콘 38) */
.tabbar.kt-tabs{height:calc(72px + var(--safe-b,0px))!important}
.kt-tabs a{min-height:72px}
.kt-tabs .ti,.kt-tabs a[aria-current="true"] .ti{width:38px!important;height:38px!important}
.tb-badge{top:7px;left:calc(50% + 8px);min-width:24px;height:24px;padding:0 7px;font-size:13.5px}
:root{--tab-h:72px}
/* 글자 크기 설정 */
.fs-seg{display:inline-flex;gap:2px;padding:3px;border-radius:10px;background:#F0ECE6;margin-left:auto}
.fs-seg button{border:0;background:none;padding:6px 11px;border-radius:8px;font-family:var(--sys);font-size:13.5px;color:#8a7f76}
.fs-seg button[aria-pressed=true]{background:#fff;color:#191919;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.08)}
/* 대화방 글자 크기 (≡ 메뉴에서 작게·중간·크게) */
.kt-b{font-size:var(--chat-fs,15px)}
.kt-n{font-size:calc(var(--chat-fs,15px) * .86)}
.kt-t{font-size:calc(var(--chat-fs,15px) * .7)}
.tk-list .real p,.tk-letter .tk-lt-b{font-size:var(--chat-fs,15px)}
.kt-bar .tk-in{font-size:max(16px,var(--chat-fs,15px))!important}
.fs-line{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding:8px 14px;border-radius:14px;background:var(--paper2);border:1px solid var(--line)}
.fs-line>span:first-child{font-size:15px}
/* 하늘 우체국: 제목 · 하늘(화면 절반) · 편지 쓰기 · 목록이 한 화면에 */
.sky-hero{height:calc(var(--vvh,100dvh) * .5)!important;min-height:260px;margin:0 0 14px!important;border-radius:22px}
.sky-title{bottom:18px}
.sky-title h1{display:none}
.sky-count{font-size:13px!important}
/* 시트: 키보드가 올라와도 보이는 화면 안에 */
.sheet{max-height:calc(var(--vvh,100vh) * .9)!important}
/* 말풍선 꼬리: 카톡처럼 첫 말풍선 윗모서리에 붙게 (모서리를 각지게 해서 꼬리와 이어지게) */
.kt-b.tail{border-top-left-radius:4px}
.kt-row.me .kt-b.tail{border-top-left-radius:16px;border-top-right-radius:4px}
.kt-b.tail::before{top:0;left:-6px;width:9px;height:9px;clip-path:polygon(0 0,100% 0,100% 100%)}
.kt-row.me .kt-b.tail::before{left:auto;right:-6px;clip-path:polygon(0 0,100% 0,0 100%)}
/* 말풍선 꼬리 다시: 카톡처럼 위 모서리에서 옆으로 살짝 휘어 나온 작은 꼬리 */
.kt-b.tail{border-top-left-radius:6px}
.kt-row.me .kt-b.tail{border-top-left-radius:16px;border-top-right-radius:6px}
.kt-b.tail::before{top:0;left:-8px;width:12px;height:10px;clip-path:path('M12 0 L1 0 Q0 0 1 1 Q6 4 12 10 Z')}
.kt-row.me .kt-b.tail::before{left:auto;right:-8px;clip-path:path('M0 0 L11 0 Q12 0 11 1 Q6 4 0 10 Z')}
/* 말풍선 꼬리 (카톡 그대로): 둥근 모서리는 그대로 두고, 모서리에서 귀처럼 뾰족하게 살짝 솟은 꼬리 */
.kt-b.tail,.kt-row.me .kt-b.tail{border-radius:16px}
.kt-b.tail::before{top:-1px;left:-2px;right:auto;width:12px;height:13px;clip-path:path('M12 1 Q5 2.2 0 0 Q2 5.5 2 13 L12 13 Z')}
.kt-row.me .kt-b.tail::before{left:auto;right:-2px;clip-path:path('M0 1 Q7 2.2 12 0 Q10 5.5 10 13 L0 13 Z')}
/* 카톡 사진 기준 맞춤 */
.kt-b,.kt-b.tail,.kt-row.me .kt-b.tail{padding:10px 13px;border-radius:18px}
.kt-col{max-width:78%}.kt-row.me .kt-col{max-width:80%}
.kt-b.tail::before{top:-3px;left:-4px;right:auto;width:14px;height:16px;clip-path:path('M14 3 Q6 4 0 0 Q3.5 6 4 16 L14 16 Z')}
.kt-row.me .kt-b.tail::before{left:auto;right:-4px;clip-path:path('M0 3 Q8 4 14 0 Q10.5 6 10 16 L0 16 Z')}
.kt-row.head{margin-top:14px}
.kt-day{background:rgba(30,45,60,.14);color:#fff}
.kt-bar .tk-in::placeholder{color:#9a9a9a}
.kt-send{display:none}
.kt-send.on{display:block;width:42px;padding:0;border-radius:50%;font-size:0;background:#FEE500 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23191919' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 19V5M5.5 11.5 12 5l6.5 6.5'/%3E%3C/svg%3E") center/22px no-repeat}
.kt-b.tail::before{top:-2px;left:-3px;right:auto;width:13px;height:21px;clip-path:path('M13 2 Q5.5 3 0 0 Q2.8 7 3 21 L13 21 Z')}
.kt-row.me .kt-b.tail::before{left:auto;right:-3px;clip-path:path('M0 2 Q7.5 3 13 0 Q10.2 7 10 21 L0 21 Z')}
.kt-b.tail::before{top:-2px;left:-3px;right:auto;width:22px;height:21px;clip-path:path('M22 2 C12 2 5 3.5 0 0 C2.4 6 3 12 3 21 L22 21 Z')}
.kt-row.me .kt-b.tail::before{left:auto;right:-3px;clip-path:path('M0 2 C10 2 17 3.5 22 0 C19.6 6 19 12 19 21 L0 21 Z')}
/* 꼬리는 글자 뒤로, 모서리에서 살짝 파였다가 솟는 카톡 모양 */
.kt-b{z-index:0}
.kt-b.tail::before{z-index:-1;clip-path:path('M22 2 C14 2 9 5 6 5.5 C4 5 2 3 0 0 C2 6 3 12 3 21 L22 21 Z')}
.kt-row.me .kt-b.tail::before{clip-path:path('M0 2 C8 2 13 5 16 5.5 C18 5 20 3 22 0 C20 6 19 12 19 21 L0 21 Z')}
.me-code{display:block;margin:4px auto 0;padding:10px;border:0;background:none;font-family:var(--sys);font-size:12.5px;color:#9a9a9a;letter-spacing:.04em}
/* 다음 대화까지 카운트다운 */
.pw-wait{display:flex;flex-direction:column;align-items:center;gap:2px;margin:-6px 0 16px}
.pw-wait span{font-size:13px;color:var(--dim)}
.pw-clock{font-family:var(--sys);font-size:30px;font-weight:700;letter-spacing:.02em;font-variant-numeric:tabular-nums;color:var(--ink)}
.pw-wait small{font-size:12.5px;color:var(--dim)}
/* ===== 첫 화면: 사용설명서 버튼 ===== */
.kk-cta{padding:10px 14px calc(var(--safe-b,0px) + 16px);text-align:center;opacity:.55;transition:opacity .4s}
.kk-cta.ready{opacity:1}
.kk-go{display:block;width:100%;border:0;border-radius:14px;background:#FEE500;color:#191919;font-family:var(--sys);font-weight:700;font-size:17px;padding:15px}
.kk-cta.ready .kk-go{animation:nudge 1.8s ease-in-out infinite}
.kk-cta small{display:block;margin-top:9px;font-family:var(--sys);font-size:13px;color:#4b5866}
/* ===== 사용설명서 · 대화 올리기 ===== */
.ob-tour,.ob-up{min-height:var(--vvh,100dvh);display:flex;flex-direction:column;background:#fff;font-family:var(--sys);color:#191919}
.ob-top{display:flex;align-items:center;padding:calc(var(--safe-t,0px) + 8px) 8px 0;min-height:52px}
.ob-back{width:44px;height:44px;border:0;background:none;font-size:24px;color:#191919}
.ob-dots{flex:1;display:flex;gap:6px;justify-content:center}.ob-dots i{width:7px;height:7px;border-radius:50%;background:#ddd}.ob-dots i.on{width:18px;border-radius:9px;background:#191919}
.ob-skip{border:0;background:none;color:#999;font-size:14px;padding:10px}
.ob-h{padding:14px 24px 6px}.ob-h small{color:#C9774F;font-weight:700;font-size:13.5px}
.ob-h h2{margin:6px 0 8px;font-family:var(--sys);font-size:25px;line-height:1.35;letter-spacing:-.02em;font-weight:700}
.ob-h p{margin:0;color:#777;font-size:14.5px;line-height:1.6}
.ob-vis{margin:14px 18px 0;border-radius:22px;background:#BACEE0;padding:14px 10px;flex:1;min-height:0;overflow:hidden}
.ob-vis.warm{background:#F6EFE3;padding:14px}
.ob-r{display:flex;align-items:flex-start;gap:8px;margin-top:5px}.ob-r.me{justify-content:flex-end;align-items:flex-end;gap:4px}
.ob-av{width:34px;height:34px;flex:none;border-radius:13px;background:#E6D7C2;color:#5A4433;font-family:var(--f-l);font-weight:700;display:flex;align-items:center;justify-content:center}
.ob-b{background:#fff;border-radius:15px;padding:7px 12px;font-size:14.5px;line-height:1.45}.ob-r.me .ob-b{background:#FEE500}
.ob-r:not(.me)+.ob-r:not(.me) .ob-av{visibility:hidden}
.ob-nm{margin:10px 0 0 44px;font-size:12px;color:#3d4650}
.ob-1{color:#F2C300;font-weight:700;font-size:11px}
.ob-b.ob-typing{display:flex;gap:4px;padding:11px 12px}.ob-b.ob-typing i{width:6px;height:6px;border-radius:50%;background:#b9c0c7;animation:dot 1.2s infinite ease-in-out}
.ob-b.ob-typing i:nth-child(2){animation-delay:.18s}.ob-b.ob-typing i:nth-child(3){animation-delay:.36s}
.ob-found{display:inline-block;margin:6px 0 0 42px;font-size:12px;color:#5b6876;background:rgba(255,255,255,.6);padding:4px 10px;border-radius:99px}
.ob-chip{display:inline-flex;gap:4px;background:#fff;border-radius:99px;padding:7px 12px;font-size:13.5px;margin:4px;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.ob-card{background:#fff;border-radius:16px;padding:11px 14px;margin:10px 4px 0;font-size:14px;line-height:1.55;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.ob-card small{display:block;color:#C9774F;font-size:12px;margin-bottom:2px}
.ob-foot{padding:14px 18px calc(var(--safe-b,0px) + 20px)}
.ob-next{display:block;width:100%;border:0;border-radius:14px;background:#3A2E28;color:#fff;font-weight:700;font-size:17px;padding:16px;text-align:center}
.ob-next.yellow{background:#FEE500;color:#191919}
.ob-free{display:inline-block;background:#FEE500;border-radius:99px;padding:4px 10px;font-size:12.5px;font-weight:700;color:#191919}
.ob-opt{display:flex;align-items:center;gap:14px;width:calc(100% - 44px);margin:6px 22px 4px;border:1.5px solid #eee;border-radius:16px;padding:14px 16px;background:#fff;text-align:left}
.ob-opt.on{border-color:#191919}.ob-opt b{display:block;font-size:16.5px}.ob-opt small{display:block;color:#999;font-size:13px}
.ob-ic{width:46px;height:46px;flex:none;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px}
.ob-steps{margin:10px 22px 0;background:#f7f7f7;border-radius:16px;padding:14px 16px;font-size:13.5px;line-height:1.85;color:#555}
.ob-steps b{color:#191919}.ob-pc{display:block;margin-top:4px;font-size:12px;color:#999;line-height:1.5}
.ob-up .ob-foot{margin-top:auto}

.ob-steps b{display:inline!important;font-weight:700}.ob-steps br{display:block}
.ob-steps{display:block!important}
.ob-up .ob-steps{width:auto!important;margin:10px 22px 0!important}
/* 사용설명서 버튼: 대화 바로 아래 */
.kk-list .kk-cta{padding:22px 2px 8px;margin-top:6px}
/* 휴대폰 번호로 시작하기 */
.ph-l{display:block;margin:26px 24px 0}.ph-l span{display:block;font-size:13px;color:#999;margin-bottom:4px}
.ph-in{width:100%;border:0;border-bottom:2px solid #191919;border-radius:0;background:none;font-family:var(--sys);font-size:24px!important;letter-spacing:.04em;padding:10px 2px;outline:none}
.ph-in.code{letter-spacing:.3em}
.ph-note{margin:0 0 12px;background:#FFF8E1;border-radius:14px;padding:12px 14px;font-size:13px;line-height:1.55;color:#6b5a20}
.ph-again{align-self:flex-start;margin:14px 22px 0;border:0;background:none;color:#999;font-size:13.5px;text-decoration:underline}
.ob-next:disabled{background:#f2f2f2!important;color:#b5b5b5!important}
.ph .ob-foot{margin-top:auto}
.kk-free{display:block;width:100%;margin-top:8px;border:0;border-radius:14px;background:rgba(255,255,255,.85);color:#191919;font-family:var(--sys);font-weight:600;font-size:16px;padding:14px}
.kt-1{font-size:9.5px!important;font-weight:600;line-height:1}
/* 하늘 우체국: 신고 · 차단 나란히 */
.lt-acts{display:flex;justify-content:center;gap:18px;margin:6px 0 0}
.lt-acts .lt-report{display:inline-block;margin:8px 0 0}
/* 결제 안내 · 사업자 정보 */
.pw-legal{font-size:11px;line-height:1.55;color:var(--faint,#9a8f86);margin:10px 4px 0;text-align:left;word-break:keep-all}
.me-biz{font-size:11px;line-height:1.6;color:var(--faint,#9a8f86);text-align:center;margin:18px 16px 28px;word-break:keep-all}
.me-del{display:block;margin:6px auto 0;background:none;border:0;color:#b5544a;font-size:13px;text-decoration:underline}
/* 가입 동의 (한 번) */
.ph-agree{display:flex;gap:8px;align-items:flex-start;text-align:left;font-size:12.5px;line-height:1.55;color:#6d5d50;margin:0 2px 10px;word-break:keep-all}
.ph-agree input{width:18px;height:18px;flex:none;margin-top:1px;accent-color:#3a2e28}
.ph-agree a{color:inherit;text-decoration:underline}
.kt-face{background:none;border:0;padding:0;margin:0;cursor:pointer;border-radius:50%;-webkit-tap-highlight-color:transparent}
/* 우리가 나눈 이야기 */
.story .st-sec{padding:12px 0;border-top:1px solid rgba(90,70,50,.12)}
.story .st-sec:first-of-type{border-top:0}
.story .st-h{font-size:13px;color:#8C7B6C;margin:0 0 8px}
.story .st-p{margin:0;line-height:1.7;word-break:keep-all}
.story .st-chips{display:flex;flex-wrap:wrap;gap:6px}
.story .st-list{margin:0;padding-left:18px;line-height:1.75;word-break:keep-all}
.story .st-y{display:grid;grid-template-columns:44px 1fr 56px;align-items:center;gap:8px;margin:5px 0;font-size:13px}
.story .st-y i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,#E9B98F,#C9825A)}
.story .st-y em{font-style:normal;color:#8C7B6C;text-align:right}
.story .st-story{margin:4px 0 14px;font-size:16px;line-height:1.85;color:#3a2e28;word-break:keep-all;font-family:"Gowun Batang",serif}
.story .st-nums{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.story .st-n{background:#FBF3EA;border-radius:14px;padding:12px 6px;text-align:center}
.story .st-n b{display:block;font-size:22px;color:#B8653F;font-variant-numeric:tabular-nums}
.story .st-n span{font-size:12.5px;color:#8C7B6C}
.story .st-q{margin:8px 0;line-height:1.65;font-family:"Gowun Batang",serif;word-break:keep-all}
.story .st-q small{display:block;font-family:inherit;font-size:11.5px;color:#a3927f;margin-top:2px}
.story .st-first{display:flex;flex-direction:column;gap:6px}
.story .st-first p{margin:0;max-width:80%;padding:7px 11px;border-radius:14px;font-size:13.5px;line-height:1.45;word-break:keep-all}
.story .st-first .them{background:#fff;align-self:flex-start;border:1px solid rgba(90,70,50,.1)}
.story .st-first .me{background:#FEE500;align-self:flex-end}
.story .st-tp{grid-template-columns:96px 1fr 56px}.story .st-tp span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* 요금제 자리가 다 찼을 때: 대기자 신청 */
.pw-l em.pw-full{display:none;background:#8a7f76}
.pw-plan.is-full .pw-l em.pw-full{display:inline-block}
.pw-plan.is-full .pw-l em:not(.pw-full){display:none}
.pw-plan.is-full .pw-p{opacity:.45}
.wl-in{width:100%;margin:16px 0 10px;padding:14px 16px;border-radius:14px;border:1px solid var(--line);background:var(--paper2);font-size:16px}
