:root{--ink:#0b0907;--ink-2:#14110d;--ink-3:#1a1612;--paper:#f6f2ea;--gold:#c8a570;--gold-soft:#b89968;--gold-deep:#8c6f3f;--yellow:#f5d76e;--line:rgba(200,165,112,0.18);--line-strong:rgba(200,165,112,0.4);--muted:rgba(246,242,234,0.55)}*{box-sizing:border-box}body,html{margin:0;padding:0;background:radial-gradient(900px 500px at 50% -10%,rgba(200,165,112,.08),transparent 70%),var(--ink);color:var(--paper);font-family:Noto Sans JP,-apple-system,BlinkMacSystemFont,sans-serif;min-height:100vh;letter-spacing:.01em}button{cursor:pointer;border:none;background:none;color:inherit}button,input{font-family:inherit}input{outline:none}a{color:inherit;text-decoration:none}.serif{font-family:Cormorant Garamond,serif;letter-spacing:.02em;font-weight:500}.app{min-height:100vh;flex-direction:column;padding:0 16px;max-width:540px;margin:0 auto}.app,.app-header{display:flex;align-items:center}.app-header{width:100%;justify-content:space-between;padding:22px 4px 14px;border-bottom:1px solid var(--line);margin-bottom:24px}.app-brand{display:flex;align-items:baseline;gap:10px}.app-brand .serif{font-size:26px;color:var(--gold);letter-spacing:.06em}.app-brand-sub{font-size:10px;letter-spacing:.4em;color:var(--muted)}.app-link{font-size:11px;letter-spacing:.25em;color:var(--muted);border:1px solid var(--line);padding:8px 14px;border-radius:9999px;transition:color .2s,border-color .2s}.app-link:hover{color:var(--paper);border-color:var(--gold)}.hero-section{width:100%;position:relative;display:flex;flex-direction:column;align-items:center;padding:18px 8px 28px;text-align:center}.hero-orb{position:absolute;width:320px;height:320px;top:-40px;left:50%;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(245,215,110,.18) 0,rgba(200,165,112,.08) 35%,transparent 70%);filter:blur(20px);animation:orbFloat 8s ease-in-out infinite;pointer-events:none;z-index:0}@keyframes orbFloat{0%,to{transform:translate(-50%) scale(1)}50%{transform:translate(calc(-50% + 12px),-16px) scale(1.05)}}.hero-avatar{position:relative;z-index:1;filter:drop-shadow(0 16px 36px rgba(0,0,0,.55))}.float{animation:float 4s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.hero-meta{position:relative;z-index:1;margin-top:10px}.hero-name{font-size:32px;color:var(--paper);letter-spacing:.04em}.hero-role{font-size:11px;letter-spacing:.3em;color:var(--gold);margin-top:4px}.hero-tag{position:relative;z-index:1;margin-top:18px;display:inline-block;background:var(--paper);color:var(--ink);padding:9px 16px;border-radius:14px 14px 4px 14px;font-size:12px;font-weight:500;box-shadow:0 8px 22px rgba(0,0,0,.4);animation:tagPop 3.5s ease-in-out infinite}@keyframes tagPop{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}.chips-wrap{width:100%;margin:8px 0 14px}.chips-label{font-size:10px;letter-spacing:.3em;color:var(--gold);margin:0 4px 10px}.chips{width:100%;display:flex;gap:8px;overflow-x:auto;padding:2px 4px 8px;scrollbar-width:none}.chips::-webkit-scrollbar{display:none}.chip{white-space:nowrap;padding:8px 14px;border-radius:9999px;border:1px solid var(--line-strong);color:var(--gold);font-size:12px;background:transparent;letter-spacing:.02em;transition:background .15s,color .15s,border-color .15s}.chip:active,.chip:hover{background:var(--gold);color:var(--ink);border-color:var(--gold)}.chip:disabled{opacity:.4;cursor:not-allowed}.chatlog{flex:1 1;overflow-y:auto;padding:8px 4px 20px;flex-direction:column;gap:14px}.bubble-row,.chatlog{width:100%;display:flex}.bubble-row{align-items:flex-end;gap:8px}.bubble-row.user{justify-content:flex-end}.bubble-row.bot{justify-content:flex-start}.bubble-avatar{flex-shrink:0;width:36px;height:39px;filter:drop-shadow(0 4px 8px rgba(0,0,0,.4))}.bubble{padding:12px 16px;font-size:14px;line-height:1.7;max-width:80%;white-space:pre-wrap;word-wrap:break-word}.bubble.user{background:var(--gold);color:var(--ink);border-radius:18px 18px 4px 18px;font-weight:500;box-shadow:0 4px 14px rgba(200,165,112,.25)}.bubble.bot{background:rgba(255,255,255,.04);border:1px solid var(--line);color:var(--paper);border-radius:18px 18px 18px 4px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.bubble-text{font-size:14px}.typing{display:inline-flex;gap:3px;padding:4px 0}.typing span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--gold);animation:bob 1.2s infinite}.typing span:nth-child(2){animation-delay:.2s}.typing span:nth-child(3){animation-delay:.4s}@keyframes bob{0%,80%,to{transform:translateY(0);opacity:.3}40%{transform:translateY(-4px);opacity:1}}.cite{font-size:10px;letter-spacing:.04em;color:var(--muted);border-top:1px solid rgba(255,255,255,.1);margin-top:10px;padding-top:8px}.feedback{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap}.feedback button{font-size:11px;padding:5px 10px;border-radius:9999px;border:1px solid rgba(255,255,255,.16);color:rgba(246,242,234,.7);letter-spacing:.02em;transition:background .15s,color .15s}.feedback button:hover{background:rgba(255,255,255,.06);color:var(--paper)}.feedback .escalate{margin-left:auto;background:rgba(245,215,110,.12);color:var(--yellow);border-color:rgba(245,215,110,.35)}.input-bar{width:100%;display:flex;gap:10px;padding:14px 4px 22px;border-top:1px solid var(--line);background:linear-gradient(180deg,transparent 0,var(--ink) 30%);position:-webkit-sticky;position:sticky;bottom:0;z-index:10}.input-bar input{flex:1 1;background:rgba(255,255,255,.05);border:1px solid var(--line);border-radius:9999px;padding:12px 20px;color:var(--paper);font-size:14px;letter-spacing:.02em;transition:border-color .2s,background .2s}.input-bar input::placeholder{color:rgba(255,255,255,.35)}.input-bar input:focus{background:rgba(255,255,255,.08);border-color:var(--gold)}.input-bar button.send{width:44px;height:44px;border-radius:50%;background:var(--gold);color:var(--ink);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .2s,transform .2s,box-shadow .2s;box-shadow:0 4px 14px rgba(200,165,112,.3)}.input-bar button.send:hover:not(:disabled){background:var(--yellow);transform:translateY(-1px);box-shadow:0 6px 18px rgba(245,215,110,.4)}.input-bar button.send:disabled{opacity:.35;cursor:not-allowed;box-shadow:none}.footer-note{width:100%;font-size:10px;letter-spacing:.15em;color:var(--muted);text-align:center;padding:8px 0 18px}@media (max-width:480px){.app{padding:0 12px}.hero-orb{width:260px;height:260px}.hero-name{font-size:26px}.hero-role{font-size:10px}.bubble{max-width:78%;font-size:13.5px}}