.luna-launcher{position:fixed;right:24px;bottom:24px;z-index:70;display:flex;align-items:center;gap:10px;min-height:50px;padding:12px 20px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:4px;font-size:15px;font-weight:600;box-shadow:0 5px 20px #1112}
.luna-launcher:hover{background:#35332e}.luna-launcher[aria-expanded=true]{visibility:hidden}
.luna-panel{position:fixed;right:24px;bottom:24px;z-index:71;width:min(440px,calc(100vw - 32px));height:min(690px,calc(100dvh - 48px));background:var(--paper);border:1px solid #d2cfc7;border-radius:8px;box-shadow:0 16px 64px #1113;display:flex;flex-direction:column;overflow:hidden;letter-spacing:0}
.luna-panel[hidden],.luna-launcher[hidden],.luna-panel [hidden]{display:none!important}
.luna-header{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 20px;border-bottom:1px solid var(--border);flex:none}.luna-header h2{font-size:32px;line-height:1.1;letter-spacing:-.03em}.luna-header h2 span{color:#85734f}.luna-header p{font-size:14px;color:var(--muted);margin:5px 0 0}.luna-header button{background:transparent;border:1px solid var(--border);border-radius:4px;color:var(--ink);width:40px;height:40px;font-size:26px;line-height:1}
.luna-content{flex:1;min-height:0;display:flex;flex-direction:column}.luna-content iframe{width:100%;height:100%;border:0;background:var(--paper);flex:1;min-height:0}.luna-welcome{padding:24px 20px;font-size:16px;line-height:1.6}.luna-status{margin:20px 0;color:var(--muted);font-size:14px}.luna-retry{display:inline-block;border:1px solid var(--border);border-radius:4px;background:transparent;color:var(--ink);padding:10px 14px;font-size:14px;cursor:pointer}
@media(max-width:600px){.luna-launcher{right:16px;bottom:16px}.luna-panel{right:8px;bottom:8px;width:calc(100vw - 16px);height:calc(100dvh - 16px);max-height:760px}.luna-header{padding:14px 16px}}
/* Until the conversation loads, the panel fits its short status message. */
.luna-panel:not(.has-chat){height:auto}
/* Match the portfolio's paper, serif headings and restrained framing. */
.luna-panel{width:min(410px,calc(100vw - 32px));height:min(590px,calc(100dvh - 48px));border:1px solid #d7d2c7;border-radius:4px;box-shadow:0 12px 44px #28231a1f}
.luna-header{padding:17px 22px;border-bottom:1px solid #e5e0d6}.luna-header h2{font-size:29px}.luna-header p{font-size:12px;color:var(--muted)}.luna-header button{width:30px;height:30px;border:0;font-size:23px;color:#827b6e}.luna-header button:hover{background:#eeece5;color:#111}
@media(max-width:600px){.luna-panel{width:calc(100vw - 24px);right:12px;bottom:12px;height:min(590px,calc(100dvh - 24px))}.luna-header{padding:16px 20px}}
