@font-face{font-family:"온글잎 박다현체";src:url("./webfonts/온글잎 박다현체.ttf?v=38") format("truetype");font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:"Pretendard Variable";src:url("./webfonts/PretendardVariable.woff2?v=39") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"Noto Sans KR";src:url("./webfonts/NotoSansKR-VariableFont_wght.woff2?v=39") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
@font-face{font-family:"KoPub Dotum Medium";src:url("https://raw.githubusercontent.com/unfail-human/DearLog/main/KoPubWorld%20Dotum%20Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:"KoPub Batang Medium";src:url("https://raw.githubusercontent.com/unfail-human/DearLog/main/KoPubWorld%20Batang%20Medium.ttf") format("truetype");font-weight:500;font-style:normal;font-display:swap}
:root{--line:#e6e2db;--line-strong:#d7d2ca;--text:#2e2c29;--muted:#918d86;--panel:#fbfaf8;--work:#dedbd4;--white:#fff;--soft:#f3f0eb;--hover:#efede8;--theme:#9b8f7f;--theme-soft:#d8cec2;--theme-text:#2e2c29;--active-font:"Pretendard Variable",sans-serif;--tweet-font-size:15px;--shadow:0 16px 52px rgba(40,35,30,.09)}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{margin:0;min-height:100%}
body,.app,.editor,.tweet,button,input,textarea,select{font-family:var(--active-font)!important}body{color:var(--text);background:var(--work);font-size:13px;letter-spacing:-.012em}button,input,textarea,select{color:inherit}
button{cursor:pointer}
header{height:58px;padding:0 22px;display:flex;align-items:center;justify-content:space-between;background:color-mix(in srgb,var(--panel) 96%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20;backdrop-filter:blur(16px)}
header b{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;letter-spacing:.08em}.brand-sparkle{display:inline-block;width:12px;height:12px;flex:0 0 12px;background:var(--theme);clip-path:polygon(50% 0,61% 35%,100% 50%,61% 65%,50% 100%,39% 65%,0 50%,39% 35%)}
header span{font-size:9px;color:var(--muted)}.header-state{display:flex;align-items:center;gap:14px}.header-state #saveState{display:flex;align-items:center;gap:5px}.header-state #saveState i{width:6px;height:6px;border-radius:50%;background:#aaa59d}.header-state #saveState.saving i{background:#b59b70;animation:pulse 1s infinite}.header-state #saveState.saved i{background:#7f9a7f}@keyframes pulse{50%{opacity:.35}}
main{padding:22px 20px 48px}
.hero{max-width:1120px;margin:0 auto;padding:18px 2px 14px;text-align:left}
.hero small{font-size:8px;letter-spacing:.17em;color:#aaa59d;font-weight:750}
.hero h1{font-size:20px;line-height:1.25;letter-spacing:-.035em;margin:6px 0 5px;font-weight:760}.hero h1 br{display:none}
.hero h1 em{font-style:normal;color:#77726b}
.hero p{font-size:9px;line-height:1.5;color:var(--muted);margin:0}
.app{max-width:1120px;min-height:660px;margin:auto;display:grid;grid-template-columns:330px minmax(0,1fr);background:var(--panel);border:1px solid var(--line-strong);border-radius:12px;overflow:hidden;box-shadow:var(--shadow)}
aside{padding:26px 24px 36px;background:var(--panel);border-right:1px solid var(--line);overflow:auto}
h3{font-size:11px;margin:0 0 14px;font-weight:800;letter-spacing:-.01em}
label{display:block;font-size:9px;font-weight:650;color:#77726b;margin:12px 0}
input:not([type=checkbox]):not([type=color]),select{display:block;width:100%;min-height:38px;margin-top:7px;padding:8px 10px;border:1px solid var(--line-strong);border-radius:7px;background:var(--white);outline:none;font-size:10px}
input:focus,select:focus,textarea:focus{border-color:#bbb4aa!important;box-shadow:0 0 0 3px rgba(120,110,100,.07)}
aside>button{width:100%;min-height:38px;margin-top:10px;border:1px solid color-mix(in srgb,var(--theme) 55%,#bbb);border-radius:7px;background:var(--theme);color:var(--theme-text);font-size:10px;font-weight:750;transition:background .18s,filter .18s,transform .18s,box-shadow .18s}aside>button:not(:disabled):hover{filter:saturate(1.25) brightness(.86);transform:translateY(-1px);box-shadow:0 6px 14px color-mix(in srgb,var(--theme) 28%,transparent)}aside>button:not(:disabled):active{transform:translateY(0);box-shadow:none}aside>button:disabled{border-color:var(--line-strong);background:#dedbd6;color:#aaa49c;cursor:not-allowed;filter:none;box-shadow:none}
.import-status{display:grid;grid-template-columns:15px 1fr auto;align-items:center;gap:7px;min-height:32px;margin:8px 0 0;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:#fff;font-size:9px;color:var(--muted)}.import-status[hidden]{display:none}.import-status i{width:12px;height:12px;border:2px solid #d8d3cb;border-top-color:var(--theme);border-radius:50%;animation:spin .8s linear infinite}.import-status b{font-size:9px;color:#77726b}.import-status.done i{border:0;animation:none}.import-status.done i:before{content:"✓";display:block;color:#6f8e72;font-size:13px;font-weight:800}.import-status.error i{border:0;animation:none}.import-status.error i:before{content:"!";display:grid;place-items:center;width:13px;height:13px;border-radius:50%;background:#aa7777;color:#fff;font-size:8px;font-weight:800}@keyframes spin{to{transform:rotate(360deg)}}
hr{border:0;border-top:1px solid var(--line);margin:24px 0}
.theme-row{display:grid;grid-template-columns:1fr;gap:6px;margin-bottom:8px}.theme-row>label:first-child{margin:4px 0}.theme-row>label:first-child input{display:block;width:100%;height:34px;margin-top:6px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff}.auto-palette{display:flex!important;align-items:center;justify-content:space-between;gap:12px;margin:5px 0 1px!important;padding:8px 0;border-top:1px solid var(--line)}.auto-palette span{display:grid;gap:2px}.auto-palette b{font-size:9px;color:var(--text)}.auto-palette small{font-size:7px;font-weight:500;color:var(--muted)}.auto-palette input{width:16px!important;height:16px!important;flex:0 0 16px;margin:0!important;accent-color:var(--theme)}.colors{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.reset-colors{margin-top:6px!important;min-height:30px!important;background:#fff!important;color:#6e675f!important}.archive-help{margin:7px 0 10px;font-size:8px;line-height:1.55;color:var(--muted)}.archive-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.archive-upload span{display:grid;place-items:center;width:100%;min-height:38px;margin-top:7px;border:1px dashed var(--line-strong);border-radius:7px;background:#fff;color:#625e58;font-size:10px;font-weight:750;cursor:pointer}.archive-upload span:hover{background:var(--hover)}
.colors label{margin-top:4px}
.colors input{display:block;width:100%;height:32px;margin-top:6px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff}
.gradient-panel{display:grid;gap:10px;margin:9px 0 12px;padding:11px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--panel) 45%,#fff)}.gradient-preview{height:52px;border:1px solid var(--line-strong);border-radius:7px}.gradient-colors{display:grid;grid-template-columns:1fr 1fr;gap:8px}.gradient-colors label,.gradient-angle{margin:0}.gradient-colors input{display:block;width:100%;height:34px;margin-top:6px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff}.gradient-angle span{display:flex;justify-content:space-between;align-items:center}.gradient-angle b{color:var(--text);font-size:9px}.gradient-angle input{margin-top:8px}
input[type=range]{accent-color:#8f8980}
input[type=checkbox]{width:15px;height:15px;accent-color:#7e786f;vertical-align:-3px;margin-right:6px}
.editor{min-width:0;display:flex;flex-direction:column;background:color-mix(in srgb,var(--panel) 35%,#fff)}
.editor nav{display:flex;gap:5px;padding:14px 18px;background:var(--panel);border-bottom:1px solid var(--line)}
nav button{border:1px solid var(--line);border-radius:9px;background:#fff;padding:8px 13px;font-size:9px;font-weight:700;color:#757169;transition:background .16s,border-color .16s,color .16s,transform .16s,box-shadow .16s}
nav button:hover{background:var(--hover)}
nav button.on{background:var(--theme-soft);border-color:color-mix(in srgb,var(--theme) 35%,#ddd);color:var(--theme-text)}
.editor nav .copy-rich{margin-left:auto;background:var(--theme);border-color:var(--theme);color:var(--theme-text);box-shadow:0 5px 13px color-mix(in srgb,var(--theme) 18%,transparent)}.editor nav .copy-rich:hover{background:color-mix(in srgb,var(--theme) 88%,#292520);border-color:color-mix(in srgb,var(--theme) 88%,#292520);color:#fff;transform:translateY(-1px)}.editor nav .copy-rich:active{transform:translateY(0);box-shadow:none}.editor nav .copy-rich.copied{background:#66836d;border-color:#66836d;color:#fff}.editor nav .copy-rich.copy-error{background:#a56f69;border-color:#a56f69;color:#fff}
#textView{flex:1;padding:20px 28px 30px;background:color-mix(in srgb,var(--panel) 22%,#fff)}
.tweet{position:relative;display:grid;grid-template-columns:46px minmax(0,1fr);gap:13px;padding:20px 16px 18px;border:1px solid var(--line);border-bottom:0;background:color-mix(in srgb,var(--panel) 24%,#fff)}.tweet:first-child{border-radius:14px 14px 0 0}.tweet:last-child{border-bottom:1px solid var(--line);border-radius:0 0 14px 14px}.tweet:only-child{border-radius:14px}.tweet:not(:last-child):before{content:"";position:absolute;left:38px;top:62px;bottom:-20px;width:2px;border-radius:2px;background:color-mix(in srgb,var(--theme) 24%,var(--line))}
.avatar{position:relative;z-index:1;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:var(--theme-soft);color:var(--theme-text);font-size:10px;font-weight:800;overflow:hidden;box-shadow:0 0 0 4px color-mix(in srgb,var(--panel) 24%,#fff)}
.avatar img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.meta{min-width:0;display:grid;gap:4px}.meta-name{display:block;overflow:hidden;margin-right:0!important;color:var(--text);font-size:var(--tweet-font-size);font-style:normal;font-weight:750;line-height:1.15;white-space:nowrap;text-overflow:ellipsis}.meta-sub{display:flex;align-items:center;gap:6px;overflow:hidden;color:var(--muted);font-size:calc(var(--tweet-font-size) - 2px);font-weight:400;line-height:1.2;white-space:nowrap;text-overflow:ellipsis}.meta-sub i{color:#b5afa6;font-style:normal}
.tweet-head{display:flex;align-items:center;gap:10px}.tweet-head .meta{flex:1;min-width:0}.tweet-actions{display:flex;justify-content:flex-end;gap:6px;margin:7px 0 0}.tweet-actions button{display:grid;place-items:center;width:28px;height:28px;flex:0 0 28px;border:1px solid var(--line-strong);border-radius:50%;background:#fff;color:#706960;font-size:16px;line-height:1;transition:.16s}.tweet-actions button:hover{background:var(--theme);border-color:var(--theme);color:var(--theme-text);transform:scale(1.06)}.tweet-actions .delete-tweet:hover{background:#a86f68;border-color:#a86f68;color:#fff}.thread-insert{display:grid;grid-template-columns:1fr auto;gap:6px;margin-top:8px;padding:9px;border:1px solid var(--line);border-radius:7px;background:var(--soft)}.thread-insert input{min-height:32px!important;margin:0!important}.thread-insert button{border:1px solid var(--line-strong);border-radius:6px;background:var(--theme);padding:0 13px;font-size:9px;font-weight:750;color:var(--theme-text)}
.meta b{font-size:var(--tweet-font-size);color:var(--text);margin-right:6px}.tweet-body{min-width:0}.tweet textarea{display:block;width:100%;min-height:44px;margin-top:7px;padding:6px 7px;border:1px solid transparent;border-radius:7px;background:transparent;resize:none;overflow:hidden;outline:none;font-family:var(--active-font);font-size:var(--tweet-font-size);line-height:1.65;letter-spacing:-.015em}.tweet textarea:hover{background:rgba(255,255,255,.55)}.tweet textarea:focus{background:#fff;border-color:var(--line)!important}
#imageView{flex:1;padding:28px;background:#e3dfd8;overflow:auto}
canvas{display:block;width:min(100%,720px);height:auto;margin:auto;border:1px solid rgba(205,199,190,.9);border-radius:7px;box-shadow:0 14px 38px rgba(45,40,35,.14)}
.editor footer{display:flex;justify-content:flex-end;gap:6px;padding:14px 18px;background:color-mix(in srgb,var(--panel) 96%,transparent);border-top:1px solid var(--line)}.editor footer[hidden]{display:none}
.editor footer button{min-width:88px;border:1px solid var(--line-strong);border-radius:7px;background:#fff;color:#625e58;padding:8px 12px;font-size:9px;font-weight:700}
.editor footer button:hover{background:var(--hover)}
.editor footer button:last-child{background:var(--theme-soft);border-color:color-mix(in srgb,var(--theme) 35%,#ddd);color:var(--theme-text)}
@media(max-width:760px){header span{display:none}main{padding:12px 0 32px}.app{grid-template-columns:1fr;margin:0 12px;border-radius:10px}.app aside{border-right:0;border-bottom:1px solid var(--line)}#textView{padding:10px 14px}.editor footer{flex-wrap:wrap}.editor footer button{flex:1}#imageView{padding:14px}}
.photo-editor-backdrop{position:fixed;inset:0;z-index:1000;display:grid;place-items:center;padding:20px;background:rgba(42,38,34,.45);backdrop-filter:blur(5px)}.photo-editor-backdrop[hidden]{display:none}.photo-editor-modal{width:min(760px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid var(--line);border-radius:13px;background:#f7f5f1;box-shadow:0 24px 80px rgba(30,26,22,.24)}.photo-editor-head{display:flex;justify-content:space-between;gap:20px;padding:20px 22px;background:#fff;border-bottom:1px solid var(--line)}.photo-editor-head small{font-size:8px;letter-spacing:.16em;color:#aaa59d}.photo-editor-head h2{font-size:18px;margin:4px 0}.photo-editor-head p{font-size:10px;color:var(--muted);margin:0}.photo-editor-close{width:30px;height:30px;border:0;background:transparent;color:#777;font-size:23px}.photo-editor-work{display:grid;grid-template-columns:420px 1fr;gap:22px;padding:22px}.photo-editor-canvas-wrap{position:relative;width:420px;height:420px;border-radius:10px;overflow:hidden;background:#dedbd4;cursor:grab;touch-action:none}.photo-editor-canvas-wrap.is-dragging{cursor:grabbing}.photo-editor-canvas-wrap canvas{width:420px;height:420px;border:0;border-radius:0;box-shadow:none}.photo-editor-circle-guide{position:absolute;inset:0;border:2px solid rgba(255,255,255,.95);border-radius:50%;box-shadow:0 0 0 999px rgba(40,36,32,.42);pointer-events:none}.photo-editor-controls{display:flex;flex-direction:column;gap:13px}.photo-editor-controls label{display:grid;grid-template-columns:42px 1fr 42px;align-items:center;gap:8px;margin:0;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fff}.photo-editor-controls label b{font-size:9px;text-align:right;color:var(--muted)}.photo-editor-controls button,.photo-editor-actions button{border:1px solid var(--line-strong);border-radius:7px;background:#fff;padding:9px 12px;font-size:10px;font-weight:700}.photo-editor-preview{display:grid;gap:8px;margin-top:4px;font-size:9px;color:var(--muted)}.photo-editor-preview canvas{width:112px;height:112px;margin:0;border-radius:50%;border:1px solid var(--line);box-shadow:none}.photo-editor-actions{display:flex;justify-content:flex-end;gap:7px;padding:14px 22px;background:#fff;border-top:1px solid var(--line)}#photoEditorApply{background:var(--theme-soft);border-color:color-mix(in srgb,var(--theme) 35%,#ddd);color:var(--theme-text)}@media(max-width:720px){.photo-editor-work{grid-template-columns:1fr}.photo-editor-canvas-wrap{width:min(420px,100%);height:auto;aspect-ratio:1}.photo-editor-canvas-wrap canvas{width:100%;height:100%}.photo-editor-head p{display:none}}
.tweet-media{display:grid;gap:8px;margin:8px 0 4px}.tweet-media img{display:block;width:100%;height:auto;max-height:none;object-fit:contain;border:1px solid var(--line);border-radius:9px;background:#f6f4f0}.notice-backdrop{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:20px;background:rgba(42,38,34,.42);backdrop-filter:blur(5px)}.notice-backdrop[hidden]{display:none}.notice-modal{width:min(430px,100%);padding:25px;border:1px solid var(--line);border-radius:13px;background:#f7f5f1;box-shadow:0 24px 80px rgba(30,26,22,.22)}.notice-kicker{font-size:8px;font-weight:800;letter-spacing:.16em;color:#aaa59d}.notice-modal h2{margin:6px 0 17px;font-size:19px}.notice-content{padding:15px;border:1px solid var(--line);border-radius:9px;background:#fff;font-size:10px;line-height:1.65;color:#716c65}.notice-content b{font-size:9px;letter-spacing:.1em}.notice-content ul{margin:8px 0 0;padding-left:18px}.notice-check{margin:15px 0 12px;font-size:9px}.notice-modal>button{width:100%;border:1px solid color-mix(in srgb,var(--theme) 35%,#ddd);border-radius:7px;background:var(--theme-soft);padding:9px;font-size:10px;font-weight:750}
.tweet-media-tools{display:flex;align-items:center;gap:6px;margin-top:8px}.tweet-media-tools label,.tweet-media-tools button{margin:0;border:1px solid var(--line);border-radius:6px;background:#fff;padding:6px 9px;font-size:8px;font-weight:700;color:#746e66;cursor:pointer}.tweet-media-tools label:hover,.tweet-media-tools button:hover{background:var(--hover)}.tweet-media-tools input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.tweet-media{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;margin-top:16px;padding:5px;border:1px solid color-mix(in srgb,var(--theme) 20%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--theme) 10%,#fff)}.tweet-media img{width:100%;height:100%;min-height:120px;max-height:360px;border:0;border-radius:8px;object-fit:contain;background:color-mix(in srgb,var(--theme) 18%,#fff)}.tweet-media img:only-child{grid-column:1/-1}.tweet-actions{margin-top:9px}.tweet-media-tools{opacity:.72;transition:.15s}.tweet:hover .tweet-media-tools{opacity:1}


/* 2026-08-19 · 전체 UI 가독성 확대 */
body{font-size:12px;overflow:hidden}
header{height:64px;padding:0 24px}
header b{font-size:19px;gap:9px;letter-spacing:-.02em}
header span{font-size:9px}
.brand-sparkle{width:30px;height:30px;flex:0 0 30px;border-radius:9px;background:#edf3fc;clip-path:none;display:grid;place-items:center}.brand-sparkle:before{content:"✦";color:#5e7fb6;font-size:14px;line-height:1;font-style:normal}
main{width:100%;height:calc(100vh - 64px);min-width:0;padding:12px 16px 24px;overflow:auto;display:grid;grid-template-rows:auto auto;align-content:safe center;justify-items:safe center}
.hero{width:min(1120px,100%);margin:0 auto;padding:8px 2px 10px}
.hero small{font-size:9px}
.hero h1{font-size:20px;margin:4px 0 3px;line-height:1.18}
.hero p{font-size:9px;line-height:1.4}
.app{width:min(1120px,100%);min-width:860px;min-height:620px;margin:0 auto;grid-template-columns:320px minmax(0,1fr)}
aside{padding:22px 20px 28px}
h3{font-size:12px;margin-bottom:12px}
label{font-size:12px;margin:10px 0}
input:not([type=checkbox]):not([type=color]),select{min-height:38px;margin-top:6px;padding:8px 10px;font-size:12px}
aside>button{min-height:38px;margin-top:8px;font-size:12px}
.import-status{grid-template-columns:15px 1fr auto;min-height:32px;padding:7px 9px;font-size:9px}
.import-status b{font-size:9px}
.import-status.done i:before{font-size:12px}
.import-status.error i:before{font-size:9px}
hr{margin:18px 0}
.auto-palette{padding:7px 0}
.auto-palette span{gap:2px}
.auto-palette b{font-size:12px}
.auto-palette small{font-size:9px;line-height:1.4}
.auto-palette input{width:16px!important;height:16px!important;flex-basis:16px}
.reset-colors{min-height:32px!important}
.archive-help{margin:6px 0 9px;font-size:9px;line-height:1.5}
.archive-upload span{min-height:38px;font-size:12px}
.theme-row>label:first-child input,.gradient-colors input{height:34px}
.colors input{height:32px}
.gradient-panel{gap:9px;padding:10px;margin-top:7px}
.gradient-preview{height:46px}
.gradient-angle b{font-size:9px}
.editor nav{gap:6px;padding:10px 14px}
nav button{min-height:35px;padding:8px 12px;font-size:12px}
#textView{padding:22px 28px 28px;background:color-mix(in srgb,var(--panel) 22%,#fff)}
.tweet{grid-template-columns:46px minmax(0,1fr);gap:13px;padding:18px 15px 16px;background:var(--image-card,#eee8df)}
.tweet:first-child{border-radius:18px 18px 0 0}.tweet:last-child{border-radius:0 0 18px 18px}.tweet:only-child{border-radius:18px}
.avatar{width:42px;height:42px;font-size:12px}
.tweet-actions button{width:30px;height:30px;flex-basis:30px;font-size:15px}
.thread-insert{gap:6px;padding:8px}
.thread-insert input{min-height:35px!important}
.thread-insert button{min-height:35px;padding:0 12px;font-size:12px}
.editor footer{padding:10px 14px}
.editor footer button{min-width:88px;min-height:35px;padding:8px 11px;font-size:12px}
.photo-editor-head small{font-size:9px}
.photo-editor-head h2{font-size:20px}
.photo-editor-head p{font-size:9px}
.photo-editor-controls label b{font-size:9px}
.photo-editor-controls button,.photo-editor-actions button{padding:8px 10px;font-size:12px}
.photo-editor-preview{font-size:9px}
.notice-kicker{font-size:9px}
.notice-modal h2{font-size:20px}
.notice-content{font-size:12px}
.notice-content b{font-size:9px}
.notice-check{font-size:9px}
.notice-modal>button{padding:9px;font-size:12px}
.tweet-media-tools label,.tweet-media-tools button{padding:6px 9px;font-size:9px}
@media(max-width:900px){main{justify-items:start}.app{width:860px;min-width:860px;margin:0}.hero{width:860px;min-width:860px;margin:0}}
@media(max-width:760px){body{overflow:auto}header{height:58px;padding:0 15px}header b{font-size:18px}.brand-sparkle{width:28px;height:28px;flex-basis:28px}main{height:auto;min-height:calc(100vh - 58px);display:block;padding:10px 8px 24px}.app{grid-template-columns:1fr;width:auto;min-width:0;margin:0 8px}.hero{width:auto;min-width:0;margin:0 8px}.hero h1{font-size:19px}aside{padding:20px 17px 25px}#textView{padding:16px}.editor nav{flex-wrap:wrap}.editor nav .copy-rich{margin-left:0}}


/* 2026-08-19 · WeLog와 동일한 헤더 브랜드 규격 */
header .brand{display:flex;align-items:baseline;gap:8px;color:#26231f;text-decoration:none;font-family:Georgia,"Times New Roman",serif;white-space:nowrap}
header .brand span{display:inline;color:#b69a62;font:400 13px/1 Georgia,"Times New Roman",serif}
header .brand b{display:inline;font:700 16px/1 Georgia,"Times New Roman",serif;letter-spacing:0;color:#26231f}
header .brand small{display:inline;font:400 7px/1 Arial,sans-serif;letter-spacing:.2em;color:#978e82;white-space:nowrap}

/* 2026-08-19 · 이미지 전용 그라데이션 섹션 */
.image-card-title{margin:0 0 4px}.image-card-help{margin:0 0 10px;color:var(--muted);font-size:9px;line-height:1.5}

/* 2026-08-19 · 내보내기 버튼 고정 위치 */
.editor nav .save-png{margin-left:auto;background:var(--theme);border-color:var(--theme);color:var(--theme-text);box-shadow:0 5px 13px color-mix(in srgb,var(--theme) 18%,transparent)}
.editor nav .save-png:hover{background:color-mix(in srgb,var(--theme) 88%,#292520);border-color:color-mix(in srgb,var(--theme) 88%,#292520);color:#fff;transform:translateY(-1px)}
.editor nav .save-png:active{transform:translateY(0);box-shadow:none}
.editor nav .save-png:disabled{cursor:wait;opacity:.72}
@media(max-width:760px){.editor nav .save-png,.editor nav .copy-rich{margin-left:auto}}

/* 2026-08-19 · 게시글 편집과 동일한 DOM 기반 이미지 미리보기 */
#imageView{padding:28px;overflow:auto;background:#e3dfd8}
#imageCapture{width:max-content;min-width:100%;padding:28px;background:linear-gradient(var(--capture-angle,135deg),var(--capture-bg-1,#f6f2eb),var(--capture-bg-2,#ded4c7));box-sizing:border-box}
#imagePreviewContent{margin:auto;box-sizing:border-box}
#imagePreviewContent .preview-text{display:block;width:100%;min-height:44px;margin-top:7px;padding:6px 7px;border:1px solid transparent;border-radius:7px;background:transparent;color:var(--text);font-family:var(--active-font);font-size:var(--tweet-font-size);line-height:1.65;letter-spacing:-.015em;white-space:pre-wrap;overflow-wrap:anywhere}
#imagePreviewContent .tweet-media img{pointer-events:none}
@media(max-width:760px){#imageView{padding:14px}#imageCapture{padding:16px}}

/* 2026-08-20 · 게시글 편집과 동일한 미리보기 작업 폭 */
.app{width:min(1120px,calc(100vw - 32px));max-width:1120px;grid-template-columns:310px minmax(0,1fr)}
#imageView{width:100%;min-width:0}
#imageCapture{min-width:100%;max-width:none}
@media(max-width:900px){.app{width:auto;max-width:none;grid-template-columns:1fr}}

/* 2026-08-20 · 미리보기는 게시글 편집의 정적 복제본 */
#imageView{padding:0;background:transparent}
#imageCapture{display:block;width:100%;min-width:0;padding:0;background:transparent}
#imagePreviewContent{width:100%!important;max-width:none;margin:0}

/* 2026-08-20 · 미리보기 서식 여백 */
#imageView{padding:18px;background:#e3dfd8}
#imageCapture{width:100%;min-width:0;padding:0;box-sizing:border-box}
#imagePreviewContent{width:100%!important;border-radius:10px;overflow:hidden;box-shadow:0 8px 24px rgba(45,40,35,.10)}
@media(max-width:760px){#imageView{padding:12px}}

/* 2026-08-25 · 긴 타래 안정화 및 연속형 타래 레이아웃 */
.app,.editor{min-height:0}
.editor{overflow:hidden}
#textView{min-height:0;overflow:auto;overscroll-behavior:contain}
.tweet{align-items:stretch;border:0!important;border-radius:0!important;padding-top:18px;padding-bottom:0}
.tweet:first-child{border-radius:18px 18px 0 0!important}
.tweet:last-child{border-radius:0 0 18px 18px!important}
.tweet:only-child{border-radius:18px!important}
.tweet-body{position:relative;min-width:0;padding-bottom:18px;border-bottom:1px solid color-mix(in srgb,var(--theme) 16%,var(--line))}
.tweet:last-child .tweet-body{border-bottom:0}
.tweet:not(:last-child):before{left:36px;top:57px;bottom:-1px;width:2px;background:color-mix(in srgb,var(--theme) 42%,var(--line));z-index:0}
.avatar{z-index:2;align-self:start;box-shadow:0 0 0 4px var(--image-card,#eee8df)}
.tweet textarea{height:auto;max-height:none;overflow:hidden;overflow-wrap:anywhere;word-break:break-word}
#imagePreviewContent{background:var(--image-card,#eee8df)}
#imagePreviewContent .tweet{background:transparent}
#imagePreviewContent .tweet-body{padding-bottom:20px}
#imagePreviewContent .tweet:not(:first-child){padding-top:16px}
#imagePreviewContent .tweet:not(:last-child):before{top:55px;bottom:-1px}
#imagePreviewContent .preview-text{height:auto;min-height:0;margin-top:8px;padding:0;border:0;line-height:1.72;overflow-wrap:anywhere;word-break:break-word}
#imagePreviewContent .avatar{box-shadow:0 0 0 4px var(--image-card,#eee8df)}

/* 2026-08-25 · 저장 타래 외곽선 — 캔버스 가장자리에서 잘리지 않도록 안쪽에 표시 */
#imagePreviewContent{border:0;box-shadow:inset 0 0 0 1px var(--line-strong),0 8px 24px rgba(45,40,35,.10)}


/* 2026-08-25 · 게시글 본문 편집 영역 가독성 */
#textView .tweet textarea{min-height:120px;resize:vertical;field-sizing:content}


/* 2026-08-25 · 티스토리 서식 복사 도움말 */
.editor nav .copy-help{width:35px;min-width:35px;padding:0;border-radius:50%;font-weight:800}
.copy-help-modal .notice-content ol{margin:12px 0;padding-left:20px}
.copy-help-modal .notice-content li+li{margin-top:7px}
.copy-help-modal .notice-content p{margin:14px 0 0;color:var(--muted)}
@media(max-width:760px){.editor nav .copy-help{margin-left:0}}
