@keyframes fadeIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes bounce{0%,to{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:1}}@keyframes spin{to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes slideIn{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}@keyframes promoShimmer{0%{transform:translate3d(-14%,0,0) rotate(8deg)}to{transform:translate3d(14%,0,0) rotate(8deg)}}@keyframes promoSparkle{0%,to{opacity:.22;transform:scale(.7)}50%{opacity:1;transform:scale(1.2)}}@keyframes newChunk{0%{opacity:.3}to{opacity:1}}@keyframes fadeInChar{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes charFadeIn{0%{opacity:0}to{opacity:1}}@keyframes cursorBlink{0%,to{opacity:1}50%{opacity:0}}@keyframes luday-blink{0%,to{opacity:1}50%{opacity:0}}@keyframes originalShimmer{0%,25%{transform:translateX(-180%)}75%,to{transform:translateX(260%)}}.original-badge{position:relative;background:linear-gradient(135deg,#7c2d12,#c2410c 50%,#7c2d12);overflow:hidden;color:rgba(255,255,255,.95)!important}.original-badge:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 20%,rgba(254,215,170,.38) 50%,transparent 80%);transform:translateX(-180%);animation:originalShimmer 5.5s ease-in-out infinite;pointer-events:none}.new-badge{position:relative;overflow:hidden;background:linear-gradient(135deg,#047857,#22c55e 50%,#065f46)!important;color:rgba(255,255,255,.96)!important}.new-badge:after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,transparent 20%,rgba(187,247,208,.42) 50%,transparent 80%);transform:translateX(-180%);animation:originalShimmer 5.5s ease-in-out infinite;pointer-events:none}@keyframes fabPulse{0%,to{box-shadow:0 4px 20px rgba(103,38,255,.45),0 0 0 0 rgba(103,38,255,.25)}50%{box-shadow:0 6px 28px rgba(103,38,255,.6),0 0 0 10px rgba(103,38,255,0)}}.fab-pulse{animation:fabPulse 2.8s ease-in-out infinite}@keyframes feedItemEnter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.feed-item-enter{animation:feedItemEnter .22s cubic-bezier(.25,.46,.45,.94) both}@keyframes heartPop{0%{transform:scale(1)}15%{transform:scale(1.5)}30%{transform:scale(.85)}45%{transform:scale(1.25)}60%{transform:scale(.95)}80%{transform:scale(1.1)}to{transform:scale(1)}}.heart-pop{animation:heartPop .55s cubic-bezier(.36,.07,.19,.97) forwards}@keyframes bottomSheetSlideUp{0%{transform:translateX(-50%) translateY(40px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}.bottom-sheet-anim{animation:bottomSheetSlideUp .26s cubic-bezier(.32,.72,0,1)}@keyframes bottomSheetSlideUpSimple{0%{transform:translateY(40px);opacity:0}to{transform:translateY(0);opacity:1}}.bottom-sheet-anim-simple{animation:bottomSheetSlideUpSimple .26s cubic-bezier(.32,.72,0,1)}.skeleton{background:linear-gradient(90deg,var(--bg-secondary) 25%,var(--bg-tertiary) 50%,var(--bg-secondary) 75%);background-size:200% 100%;animation:shimmer .75s infinite;border-radius:6px;will-change:background-position}.chat-item-enter{animation:slideIn .2s ease forwards}.message-enter{animation:fadeIn .25s ease forwards}.stream-new{animation:newChunk .2s ease-out forwards}.streaming-text{animation:fadeInChar .15s ease forwards}.streaming-cursor:after{content:"▋";display:inline-block;margin-left:1px;font-size:.85em;color:var(--text-muted);animation:cursorBlink .7s ease infinite;vertical-align:text-bottom}.toast{background:var(--accent);color:var(--user-text);padding:10px 20px;border-radius:99px;font-size:13px;font-family:var(--font);font-weight:500;animation:fadeInUp .2s ease;white-space:nowrap;box-shadow:0 4px 20px rgba(0,0,0,.2);pointer-events:none}.no-transition,.skeleton{transition:none!important}@font-face{font-family:Apple SD Gothic Neo;src:url(/AppleSDGothicNeoB.ttf) format("truetype");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Pretendard;src:url(/Pretendard-Regular.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Pretendard;src:url(/Pretendard-Medium.woff2) format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:Pretendard;src:url(/Pretendard-SemiBold.woff2) format("woff2");font-weight:600;font-style:normal;font-display:swap}*,:after,:before{box-sizing:border-box;margin:0;padding:0}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}[contenteditable],input,select,textarea{-webkit-touch-callout:default}[role=button],a,button{touch-action:manipulation}:root{--app-max-width:480px;--safe-top:env(safe-area-inset-top,0px);--safe-right:env(safe-area-inset-right,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--native-safe-top:0px;--native-safe-bottom:0px;--ios-top-guard:0px;--visual-vh:100dvh;--visual-offset-top:0px;--keyboard-height:0px;--app-top-extra:0px;--app-bottom-extra:0px;--bg:#151515;--bg-secondary:#1e1e1e;--bg-tertiary:#252525;--sidebar-bg:#111111;--border:#262626;--text:#f5f5f5;--text-muted:#a0a0a0;--text-subtle:#4a4a4a;--accent:#7c3aed;--user-bubble:#6d28d9;--user-text:#ffffff;--nav-accent:#ffffff;--nav-accent-text:#111111;--input-bg:#141414;--shadow:0 1px 4px rgba(0,0,0,0.4);--shadow-lg:0 4px 24px rgba(0,0,0,0.4);--radius:10px;--font:"Apple SD Gothic Neo",-apple-system,BlinkMacSystemFont,sans-serif;--font-mono:"Apple SD Gothic Neo","Fira Code",monospace;--chat-font:"Pretendard","Noto Serif KR","Apple SD Gothic Neo",serif;--sidebar-w:256px;--header-h:52px;--chat-font-size:14.5px;--msg-gap:16px;--msg-padding:12px;--surface-base:#151515;--surface-elevated:#1e1e1e;--surface-card:#1e1e1e;--border-subtle:#262626;--border-strong:#3a3a3a;--text-primary:#f5f5f5;--text-secondary:#a0a0a0;--color-like:#f87171;--color-bookmark:#22c55e;--color-creator:#a78bfa;--color-creator-light:#c4b5fd;--color-danger:#ef4444;--color-warning:#f59e0b;--color-orange:#f97316;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:999px;--fs-xs:11px;--fs-sm:12px;--fs-base:13px;--fs-md:14px;--fs-lg:17px;--fs-xl:22px}html{min-height:100%;width:100%;-webkit-text-size-adjust:100%;text-size-adjust:100%}body,html{background:#000000;overscroll-behavior:none}body{min-height:100svh;min-height:var(--real-vh,100svh);font-family:var(--font);color:var(--text);-webkit-font-smoothing:antialiased;font-size:15px;display:flex;justify-content:center;align-items:flex-start;margin:0;padding:0;overflow-x:hidden;touch-action:manipulation}html.luday-ios-app,html.luday-ios-app body{background:var(--bg)}html.luday-ios-app{--safe-top:max(env(safe-area-inset-top,0px),var(--native-safe-top));--safe-bottom:max(env(safe-area-inset-bottom,0px),var(--native-safe-bottom),18px);--ios-top-guard:0px;--ios-top-bar-safe:max(0px,calc(var(--safe-top) - 5px));--app-top-extra:0px;--app-bottom-extra:12px}html.luday-ios-app .app-frame{padding-top:0!important}html.luday-ios-app .app-top-bar{min-height:calc(52px + var(--ios-top-bar-safe))!important;padding-top:var(--ios-top-bar-safe)!important}html.keyboard-open,html.keyboard-open body{height:100%;min-height:100svh;overflow:hidden}.app-top-bar{min-height:calc(56px + var(--app-top-extra));padding-top:var(--app-top-extra)}.network-status-banner{position:fixed;top:calc(var(--safe-top) + 8px);left:50%;z-index:700;width:min(calc(100vw - 32px),420px);min-height:40px;padding:10px 14px;border:1px solid rgba(251,191,36,.32);border-radius:8px;background:rgba(24,18,10,.96);box-shadow:var(--shadow-lg);color:#fbbf24;font-size:13px;font-weight:700;line-height:1.45;text-align:center;transform:translateX(-50%)}.app-bottom-safe{padding-bottom:calc(var(--safe-bottom) + var(--app-bottom-extra))}html.keyboard-open .bottom-tab-bar{display:none!important}.chat-input-dock{transition:margin .18s ease}html.keyboard-open .chat-input-area{padding-bottom:10px!important}.chat-keyboard-spacer{height:0;flex:0 0 auto;transition:height .18s ease}html.keyboard-open .chat-keyboard-spacer{height:var(--keyboard-height)}.app-frame>*{animation:pageFadeIn .15s ease}@keyframes pageFadeIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}::-webkit-scrollbar{width:4px;height:4px}.prose{font-size:15px;line-height:1.75;color:var(--text)}.prose p{margin-bottom:1em;line-height:1.8}.prose p:last-child{margin-bottom:0}.prose ul{list-style-type:disc}.prose ol,.prose ul{padding-left:1.8em;margin-bottom:1em}.prose li{margin-bottom:.4em;line-height:1.75}.prose li::marker{color:var(--text-muted)}.prose h1,.prose h2,.prose h3{font-weight:700;line-height:1.35;color:var(--text)}.prose h1{font-size:1.5em;margin:1.5em 0 .6em}.prose h2{font-size:1.25em;margin:1.4em 0 .5em;border-bottom:1px solid var(--border);padding-bottom:.3em}.prose h3{font-size:1.1em;margin:1.2em 0 .4em}.prose strong{font-weight:700;color:var(--text)}.prose em{font-style:italic}.prose blockquote{border-left:3px solid var(--accent);padding:.5em 1em;color:var(--text-muted);margin:1em 0;background:var(--bg-secondary);border-radius:0 8px 8px 0;font-style:italic}.prose table{width:100%;border-collapse:collapse;margin:1em 0;font-size:.9em}.prose td,.prose th{border:1px solid var(--border);padding:.6em .9em;text-align:left}.prose th{background:var(--bg-tertiary);font-weight:600}.prose tr:nth-child(2n){background:var(--bg-secondary)}.prose a{color:#3b82f6;text-decoration:underline;text-underline-offset:3px}.prose a:hover{color:#2563eb}.prose hr{border:none;border-top:1px solid var(--border);margin:1.5em 0}.prose pre{margin:0}p code{background:var(--bg-tertiary);padding:2px 6px;border-radius:4px;font-size:.85em;font-family:var(--font-mono);border:1px solid var(--border)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 16px;border-radius:9px;border:none;cursor:pointer;font-size:13px;font-family:var(--font);font-weight:500;transition:background .15s,color .15s;outline:none!important;box-shadow:none!important}.btn-primary{background:var(--accent);color:var(--user-text)}.btn-primary:hover{opacity:.85}.btn-primary:disabled{opacity:.5;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--text-muted);border:none!important;outline:none!important;box-shadow:none!important}.btn-ghost:hover{background:var(--bg-tertiary);color:var(--text);border:none!important}.btn-ghost:active,.btn-ghost:focus,.btn-ghost:focus-visible{outline:none!important;box-shadow:none!important;border:none!important;background:var(--bg-tertiary)}.input-focus:focus-within{border-color:var(--border)!important;box-shadow:none!important}.scroll-btn{position:fixed;bottom:90px;right:24px;width:36px;height:36px;border-radius:50%;background:var(--bg-secondary);border:1px solid var(--border);cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--text-muted);box-shadow:var(--shadow);transition:all .2s;z-index:10}.scroll-btn:hover{background:var(--bg-tertiary);color:var(--text);transform:translateY(-2px)}.char-count{font-size:10px;color:var(--text-subtle);text-align:right;padding-right:2px;transition:color .2s}.char-count.warning{color:#f59e0b}.char-count.danger{color:#ef4444}body{user-select:none;-webkit-user-select:none}.prose,.prose *,.user-bubble,input,textarea{user-select:text!important;-webkit-user-select:text!important}::selection{background:#7dd3fc;color:#0c4a6e}::-moz-selection{background:#7dd3fc;color:#0c4a6e}.user-bubble ::selection{background:#7dd3fc;color:#0c4a6e}@media (max-width:768px){input,select,textarea{font-size:16px!important}input::placeholder,textarea::placeholder{font-size:16px}.app-frame{width:100vw!important;max-width:var(--app-max-width)!important;height:var(--real-vh,100dvh)!important;max-height:var(--real-vh,100dvh)!important}html.luday-ios-app .app-frame{max-width:100vw!important}.modal-container{width:min(100vw,var(--app-max-width))!important;max-width:var(--app-max-width)!important;margin:0!important;border-radius:20px 20px 0 0!important;top:auto!important;bottom:0!important;transform:translateX(-50%)!important;max-height:92vh!important}.prose{font-size:14px!important;line-height:1.75!important}.user-bubble{max-width:85%!important}.char-modal-container{max-height:96dvh!important}}.no-select{user-select:none!important}.logo-light{display:none!important}.logo-dark{display:block!important}a,button{transition:background-color .15s ease,color .1s ease,opacity .15s ease,transform .1s ease,box-shadow .15s ease!important}input,textarea{transition:border-color .15s ease!important}.prose{word-break:break-word}.prose p{animation:none}*,:after,:before{outline:none!important;-webkit-tap-highlight-color:transparent!important}[tabindex],a,a:active,a:focus,a:focus-visible,a:hover,button,button:active,button:focus,button:focus-visible,button:hover,input,input:active,input:focus,select,textarea,textarea:active,textarea:focus{outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important}img,img:active,img:focus{outline:none!important;border:none!important;user-select:none!important;-webkit-user-drag:none!important}.btn-ghost,.btn-ghost:active,.btn-ghost:focus,.btn-ghost:focus-visible,.btn-ghost:hover{outline:none!important;box-shadow:none!important;border:none!important}.btn-primary{background:var(--accent)!important}.sidebar-collapsed-btn{position:relative}.sidebar-collapsed-btn[data-tooltip]:after{content:attr(data-tooltip);position:fixed;top:50%;left:calc(100% + 8px);transform:translateY(-50%) scale(.92);background:rgba(18,18,18,.96);color:#f0f0f0;font-size:11px;font-weight:500;padding:5px 10px;border-radius:7px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:9999;box-shadow:0 4px 16px rgba(0,0,0,.4);font-family:var(--font)}.sidebar-collapsed-btn[data-tooltip]:hover:after{opacity:1;transform:translateY(-50%) scale(1)}[data-tooltip]{position:relative}[data-tooltip]:not(.sidebar-collapsed-btn):after{content:attr(data-tooltip);position:absolute;top:calc(100% + 6px);left:50%;transform:translateX(-50%) scale(.92);background:rgba(18,18,18,.96);color:#f0f0f0;font-size:11px;font-weight:500;padding:5px 10px;border-radius:7px;white-space:nowrap;pointer-events:none;opacity:0;transition:opacity .12s ease,transform .12s ease;z-index:9999;font-family:var(--font)}[data-tooltip]:not(.sidebar-collapsed-btn):hover:after{opacity:1;transform:translateX(-50%) scale(1)}@media (max-width:768px){:root{--sidebar-w:min(100vw,var(--app-max-width))}[data-tooltip]:after{display:none!important}}.legal-content,.legal-content *{user-select:text!important;-webkit-user-select:text!important}.chat-row:hover .chat-menu-btn{opacity:1!important}.chat-menu-btn{opacity:0;transition:opacity .15s}.logo-area button:hover{background:var(--bg-secondary)!important}.btn-primary{color:var(--user-text)!important}*{outline:none!important}button,input,select,textarea{font-family:var(--font)}button{-webkit-tap-highlight-color:transparent!important;-webkit-appearance:none;appearance:none}button,button:focus{outline:none!important;box-shadow:none!important}button:focus-visible{outline:none!important;box-shadow:none!important}a,button:active{outline:none!important;box-shadow:none!important}a{-webkit-tap-highlight-color:transparent!important}a:active,a:focus,a:focus-visible{outline:none!important;box-shadow:none!important}input,select,textarea{outline:none!important}input:focus,select:focus,textarea:focus{outline:none!important;box-shadow:none!important}img{outline:none!important;border:none!important;-webkit-user-drag:none;user-select:none}[role=button],[role=button]:focus,div[tabindex],div[tabindex]:focus{outline:none!important;box-shadow:none!important}.btn-ghost,.btn-ghost:active,.btn-ghost:focus,.btn-ghost:focus-visible,.btn-ghost:focus:not(:focus-visible),.btn-ghost:hover{outline:none!important;box-shadow:none!important;border:none!important}[tabindex="-1"],[tabindex="-1"]:focus,[tabindex="-1"]:focus-visible{outline:none!important;box-shadow:none!important}button:focus:not(:focus-visible){outline:none!important;box-shadow:none!important}:active,:focus,:focus-visible,:focus-within,:hover{outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important}input:focus-within,textarea:focus-within{outline:none!important;box-shadow:none!important}[role=button]{outline:none!important;box-shadow:none!important;-webkit-tap-highlight-color:transparent!important;user-select:none!important}[role=button]:active,[role=button]:focus,[role=button]:focus-visible{outline:none!important;box-shadow:none!important}@supports (-webkit-touch-callout:none){.chat-layout-root{height:var(--real-vh,100dvh)}.chat-input-area{padding-bottom:env(safe-area-inset-bottom,0)}}@media (max-width:768px){.chat-input-area{padding-bottom:calc(14px + var(--safe-bottom))}.btn-ghost,[role=button],a,button{min-height:auto;min-width:auto}.overflow-scroll,[style*="overflow-y: auto"],[style*="overflowY: auto"]{-webkit-overflow-scrolling:touch}.mobile-safe-bottom{padding-bottom:env(safe-area-inset-bottom,16px)}.mobile-fixed-bottom{left:50%!important;bottom:0!important;width:min(100vw,var(--app-max-width))!important;max-width:var(--app-max-width)!important;transform:translateX(-50%)!important;padding-bottom:calc(12px + var(--safe-bottom))!important}html.luday-ios-app .mobile-fixed-bottom{width:100vw!important;max-width:100vw!important}body,html{overscroll-behavior-y:none}body{-webkit-text-size-adjust:100%;text-size-adjust:100%}.no-select-mobile{user-select:none;-webkit-user-select:none}.char-modal-container{transition:transform .3s cubic-bezier(.4,0,.2,1)!important}}@media (hover:none) and (pointer:coarse){a:hover,button:hover{opacity:1!important}}.tab-bar-item{-webkit-tap-highlight-color:transparent}.tab-bar-item:active{opacity:.7}button[style*="var(--accent)"]{color:var(--user-text)!important}.tab-icon-inactive{opacity:.5}.btn-accent{background:var(--accent)!important;color:var(--user-text)!important}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:99px}::-webkit-scrollbar-thumb:hover{background:var(--text-subtle)}.bottom-tab-bar{border-top:1px solid var(--border);background:var(--bg);padding-bottom:calc(var(--safe-bottom) + var(--app-bottom-extra))!important}html.luday-ios-app .bottom-tab-bar>button{transform:translateY(8px)}.app-frame.keyboard-open .bottom-tab-bar,.app-frame.keyboard-open .fab-pulse{display:none!important}@media (min-width:521px){.app-frame{border-left:1px solid var(--border);border-right:1px solid var(--border)}}@media (max-width:520px){[style*="position: fixed"][style*="translate(-50%, -50%)"],[style*="position: fixed"][style*="translate(-50%,-50%)"]{width:min(460px,96vw)!important;max-width:460px!important}}.btn-primary,button[class*=btn-primary]{background:var(--accent)!important;color:var(--user-text)!important}.btn-pill{padding:6px 16px;border-radius:99px;border:1px solid var(--border);background:var(--bg-secondary);color:var(--text);font-size:13px;font-weight:500;cursor:pointer;font-family:var(--font)}.btn-pill.active{background:var(--accent);color:var(--user-text);border-color:var(--accent);font-weight:700}.mypage-hoverable{transition:filter .14s ease,background-color .14s ease,border-color .14s ease,transform .14s ease}@media (hover:hover) and (pointer:fine){.mypage-hoverable:hover{filter:brightness(.9)}}.mypage-hoverable:active{filter:brightness(.84);transform:translateY(1px)}.bottom-sheet-anim,.bottom-sheet-anim-simple{max-width:480px;box-sizing:border-box;overscroll-behavior:contain;max-height:calc(var(--visual-vh, 100dvh) - var(--safe-top) - 12px);overflow-y:auto;-webkit-overflow-scrolling:touch}@media (max-width:520px){.bottom-sheet-anim,.bottom-sheet-anim-simple{width:100vw!important;max-width:100vw!important;padding-bottom:max(20px,calc(16px + var(--safe-bottom)))!important}}