/* CORE librarian. Prefix core- */
.core{position:fixed;left:0;top:0;width:0;height:0;z-index:8500;pointer-events:none;--cc:#ff3434;--cg:#ff3434aa;will-change:transform}
.core[hidden]{display:none}
.core[data-mood=think]{--cc:#ffb020;--cg:#ffb020aa}
.core[data-mood=happy]{--cc:#3fe0ff;--cg:#3fe0ffaa}
.core.asleep{--cc:#a3343c;--cg:#a3343c22}
.core[data-mode=write]:not([data-mood=think]){--cc:#a78bfa;--cg:#a78bfaaa}
.core[data-mode=write] .core-tip{max-width:min(340px,72vw)}
.core-lens{position:absolute;left:-120px;top:-120px;width:240px;height:240px;border-radius:50%;opacity:0;transition:opacity .8s;
  -webkit-mask:radial-gradient(circle,#000 52%,transparent 70%);mask:radial-gradient(circle,#000 52%,transparent 70%)}
.core-lens.on{opacity:1}
.core-lens.warp{-webkit-backdrop-filter:url(#core-warp);backdrop-filter:url(#core-warp)}
.core-lens.soft{-webkit-backdrop-filter:blur(1.4px) saturate(1.35) brightness(1.06);backdrop-filter:blur(1.4px) saturate(1.35) brightness(1.06)}
.core-er{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;
  box-shadow:0 0 0 1px #cfe8ff22,0 0 18px 2px #9fd8ff1c,inset 0 0 14px #9fd8ff22;opacity:.9}
.asleep .core-lens{opacity:.45}
.core-eye{position:absolute;left:-40px;top:-40px;width:80px;height:80px;padding:0;margin:0;border:0;border-radius:50%;background:none;cursor:pointer;
  pointer-events:auto;touch-action:none;filter:drop-shadow(0 0 12px var(--cg)) drop-shadow(0 6px 12px #000a);transition:filter .5s;-webkit-tap-highlight-color:transparent}
.core-eye:focus-visible{outline:2px solid #3fe0ff;outline-offset:6px}
.core-eye:hover{filter:drop-shadow(0 0 20px var(--cg)) drop-shadow(0 6px 14px #000a)}
.core-svg{width:100%;height:100%;overflow:visible;display:block}
.core-svg .cg0{stop-color:#fff6ec}
.core-svg .cg1{stop-color:var(--cc);transition:stop-color .6s}
.core-svg .cg2{stop-color:var(--cc);stop-opacity:0}
.core-tilt{transform:rotate(-20deg)}
.core-iris path{fill:none;stroke:var(--cc);stroke-width:3.4;stroke-linecap:round;opacity:.78;transition:stroke .6s}
.core-iris,.core-iris2{transform-box:fill-box;transform-origin:center;animation:core-spin 16s linear infinite}
.core-iris2{animation-duration:9s;animation-direction:reverse}
.core-iris2 rect{fill:var(--cc);opacity:.9}
.core-p{fill:#12040a}
.core-lid{transform-box:fill-box;transform-origin:center;transition:transform .09s}
.core.blink .core-lid{transform:scaleY(.08)}
.core.asleep .core-lid{transform:scaleY(.1);transition:transform .9s}
.core[data-mood=think] .core-iris{animation-duration:1.6s}
.core[data-mood=think] .core-iris2{animation-duration:1.1s}
.core.talk .core-c{animation:core-pulse 1.2s ease-in-out infinite}
.core.arrive .core-eye{animation:core-in 1.4s cubic-bezier(.2,.8,.2,1)}
@keyframes core-spin{to{transform:rotate(360deg)}}
@keyframes core-pulse{50%{opacity:.55}}
@keyframes core-in{0%{opacity:0;filter:blur(8px) drop-shadow(0 0 30px var(--cg))}100%{opacity:1}}
@media (prefers-reduced-motion:reduce){.core-iris,.core-iris2{animation:none}.core.talk .core-c{animation:none}}

/* speech tip */
.core-tip{position:absolute;right:50px;bottom:20px;width:max-content;max-width:min(300px,72vw);pointer-events:auto;padding:12px 14px 10px;border-radius:14px 14px 4px 14px;
  background:linear-gradient(160deg,#0d1726f2,#070b14f5);border:1px solid #3fe0ff55;box-shadow:0 10px 30px #000a,0 0 24px #3fe0ff1a;color:#e2edf7;
  font:600 clamp(14px,1.6vmin,17px)/1.42 "Quicksand",system-ui,sans-serif;animation:core-tip .35s cubic-bezier(.2,.9,.3,1.2)}
.core-tip.r{right:auto;left:50px;border-radius:14px 14px 14px 4px}
.core-tip.below{bottom:auto;top:20px}
.core-tip[hidden]{display:none}
.core-tip p{margin:0 0 9px}
.core-tip div{display:flex;flex-wrap:wrap;gap:6px}
.core-tip button{font:700 13px/1 "Quicksand",sans-serif;padding:8px 12px;border-radius:999px;border:1px solid #3fe0ff88;background:#3fe0ff1f;color:#dff7ff;cursor:pointer}
.core-tip button:hover{background:#3fe0ff38}
.core-tip .core-tn{border-color:#ffffff26;background:none;color:#9fb0c3}
@keyframes core-tip{from{opacity:0;transform:translateY(6px) scale(.96)}}

/* panel */
.core-pn{position:fixed;z-index:8600;width:400px;max-height:min(600px,calc(100vh - 24px));display:flex;flex-direction:column;color:#dbe7f3;
  background:linear-gradient(170deg,#0c1424f4,#060a12f8 60%);border:1px solid #3fe0ff44;border-radius:16px;box-shadow:0 24px 60px #000c,0 0 0 1px #000,0 0 40px #3fe0ff14;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transform:translateY(8px) scale(.98);transition:opacity .2s,transform .22s;font-family:"Quicksand",system-ui,sans-serif}
.core-pn[hidden]{display:none}
.core-pn.in{opacity:1;transform:none}
.core-pn::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px)}
.core-pn.core-sheet{left:0!important;right:0;bottom:0;top:auto!important;width:auto!important;max-height:80vh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}
.core-beam{position:absolute;height:1px;transform-origin:0 50%;pointer-events:none;background:linear-gradient(90deg,#3fe0ffcc,#3fe0ff11);box-shadow:0 0 8px #3fe0ff}
.core-hd{display:flex;align-items:center;gap:8px;padding:12px 12px 10px 16px;border-bottom:1px solid #3fe0ff26}
.core-hd>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.core-hd b{font:400 22px/1 "Orbitron","Antonio",sans-serif;letter-spacing:.14em;color:#fff;text-shadow:0 0 12px #3fe0ff88}
.core-hd small{font:12px/1 "Share Tech Mono",monospace;letter-spacing:.12em;color:#7dd3fc;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.core-hd button{font:700 12px/1 "Quicksand",sans-serif;padding:8px 11px;border-radius:999px;border:1px solid #ffffff22;background:#ffffff0a;color:#c7d5e3;cursor:pointer}
.core-hd button:hover{background:#ffffff1a}
.core-hd .core-q[aria-pressed=true]{border-color:#ffb02088;color:#ffd58a}
.core-log{flex:1;min-height:120px;overflow:auto;padding:12px 14px 6px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:#3fe0ff44 transparent}
.core-m{font-size:clamp(14px,1.55vmin,16px);line-height:1.45;animation:core-msg .3s ease-out}
.core-m.me{align-self:flex-end;max-width:85%;padding:8px 13px;border-radius:14px 14px 4px 14px;background:#1d2a3d;color:#eef5fb;font-weight:600}
.core-m.ai p{margin:0 0 7px}
.core-m.ai p:first-child{color:#f2f8fc}
@keyframes core-msg{from{opacity:0;transform:translateY(4px)}}
.core-sm{font-size:.9em;color:#9fb3c8}
.core-ol{margin:4px 0 8px;padding-left:22px;color:#c9d7e5}
.core-ol li{margin:3px 0}
.core-ol li::marker{color:#3fe0ff;font-family:"Share Tech Mono",monospace}
.core-ch{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.core-ch button{font:700 13px/1.1 "Quicksand",sans-serif;padding:8px 12px;border-radius:999px;border:1px solid #3fe0ff55;background:#3fe0ff10;color:#d9f6ff;cursor:pointer;text-align:left}
.core-ch button:hover{background:#3fe0ff2a}
.core-ch.act button{border-color:#ffb02077;background:#ffb02014;color:#ffe2a8}
.core-tl{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.core-tc{display:grid;grid-template-columns:44px 1fr auto;gap:10px;align-items:center;padding:8px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff12}
.core-tc.mini{grid-template-columns:32px 1fr auto;padding:6px 8px}
.core-ic{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:10px;overflow:hidden;background:var(--ib);flex:none}
.core-tc.mini .core-ic{width:32px;height:32px;border-radius:8px}
.core-ic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:1}
.core-ic em{font:700 18px/1 "Antonio",sans-serif;font-style:normal;color:#fff}
.core-tx{min-width:0}
.core-tx b{display:block;font-weight:700;color:#fff;font-size:.98em;line-height:1.2}
.core-tx p{margin:3px 0 0!important;font-size:.85em;color:#a9bbcd;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.core-bd{display:inline-block;margin-top:3px;font:700 10.5px/1 "Share Tech Mono",monospace;font-style:normal;letter-spacing:.06em;text-transform:uppercase;padding:3px 6px;border-radius:5px}
.core-bd.free{background:#16a34a26;color:#86efac}
.core-bd.plus{background:#0891b226;color:#67e8f9}
.core-bd.pro{background:#f59e0b26;color:#fcd34d}
.core-bd.pack{background:#8b5cf62e;color:#c4b5fd}
.core-bd.own{background:#3fe0ff26;color:#a5f3fc}
.core-ac{display:flex;flex-direction:column;gap:4px}
.core-ac button{font:700 12.5px/1 "Quicksand",sans-serif;padding:8px 12px;border-radius:9px;border:0;background:#3fe0ff;color:#03202a;cursor:pointer}
.core-ac button.g{background:#ffffff12;color:#cfe0ef}
.core-ac button:hover{filter:brightness(1.12)}
.core-cb{margin:6px 0;padding:10px 12px;border-radius:12px;border:1px solid #3fe0ff3a;background:linear-gradient(135deg,#3fe0ff12,#ff343408)}
.core-cb small{font:11px/1 "Share Tech Mono",monospace;letter-spacing:.14em;color:#7dd3fc}
.core-cb>b{display:block;margin:4px 0 8px;color:#fff;font-size:1.02em}
.core-flow{display:flex;align-items:flex-start;gap:4px;margin-bottom:6px}
.core-flow>button{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;gap:5px;padding:6px 2px;border:0;border-radius:10px;background:none;color:#dbe7f3;cursor:pointer;font:700 11.5px/1.15 "Quicksand",sans-serif;text-align:center}
.core-flow>button:hover{background:#ffffff0d}
.core-flow>button>span:last-child{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.core-flow>i{flex:0 0 14px;height:2px;margin-top:27px;background:linear-gradient(90deg,#3fe0ff,#ff3434);border-radius:2px;opacity:.7}
.core-pk{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.core-pk button{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:center;padding:7px 9px;border-radius:12px;border:1px solid #ffffff14;background:#ffffff08;color:#dbe7f3;cursor:pointer;text-align:left;font:inherit}
.core-pk button:hover{border-color:var(--pc)}
.core-pk img{width:40px;height:40px;border-radius:9px;object-fit:cover;background:var(--pc)}
.core-pk b{display:block;font-size:.92em;color:#fff}
.core-pk small{display:block;font-size:.8em;color:#9fb3c8;margin:2px 0 4px}
.core-pk span>i{display:block;height:4px;border-radius:4px;background:#ffffff14;position:relative;overflow:hidden}
.core-pk span>i::after{content:"";position:absolute;inset:0 auto 0 0;width:var(--w);background:var(--pc);border-radius:inherit}
.core-pk em{font:700 14px "Share Tech Mono",monospace;font-style:normal;color:#fcd34d}
.core-pr{width:100%;border-collapse:collapse;margin:4px 0 8px;font-size:.92em}
.core-pr th{text-align:left;font-weight:600;color:#c9d7e5;padding:5px 0;border-bottom:1px solid #ffffff10}
.core-pr td{text-align:right;padding:5px 0;border-bottom:1px solid #ffffff10;white-space:nowrap}
.core-pr b{color:#fcd34d}.core-pr s{color:#7b8a9a;margin-left:4px}
.core-in{display:flex;gap:8px;padding:10px 12px 12px;border-top:1px solid #3fe0ff1f}
.core-in input{flex:1;min-width:0;font:600 15px/1.2 "Quicksand",sans-serif;padding:11px 14px;border-radius:12px;border:1px solid #3fe0ff44;background:#03060c;color:#eef6fc;outline:none}
.core-in input:focus{border-color:#3fe0ff;box-shadow:0 0 0 3px #3fe0ff22}
.core-in input::placeholder{color:#64788c}
.core-in button{font:700 14px/1 "Orbitron","Antonio",sans-serif;letter-spacing:.08em;padding:0 16px;border-radius:12px;border:0;background:linear-gradient(135deg,#3fe0ff,#2aa7ff);color:#022231;cursor:pointer}
@media (max-width:640px){.core-tip{max-width:min(250px,64vw);font-size:14px}}
@media print{.core,.core-pn{display:none!important}}

/* settings row, ideas */
.core-hd .core-g[aria-expanded=true]{border-color:#3fe0ff88;color:#bff3ff}
.core-set{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px;border-bottom:1px solid #3fe0ff1f;background:#ffffff05}
.core-set[hidden]{display:none}
.core-set button{font:700 12px/1 "Quicksand",sans-serif;padding:7px 10px;border-radius:999px;border:1px solid #ffffff22;background:#ffffff0a;color:#c7d5e3;cursor:pointer}
.core-set button[aria-pressed=true]{border-color:#ffb02088;color:#ffd58a;background:#ffb02012}
.core-id{margin:4px 0 8px;padding:0;list-style:none;counter-reset:ci;display:flex;flex-direction:column;gap:8px}
.core-id li{counter-increment:ci;position:relative;padding:9px 10px 9px 38px;border-radius:12px;background:#ffffff07;border:1px solid #ffffff10}
.core-id li::before{content:counter(ci);position:absolute;left:10px;top:9px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;font:700 12px "Share Tech Mono",monospace;color:#03202a;background:#3fe0ff}
.core-id p{margin:0!important;color:#e6f0f8}
.core-wf{display:flex;flex-wrap:wrap;gap:5px;margin-top:6px}
.core-wf button{display:inline-flex;align-items:center;gap:6px;font:700 12px/1 "Quicksand",sans-serif;padding:4px 9px 4px 4px;border-radius:999px;border:1px solid #3fe0ff44;background:#3fe0ff10;color:#d9f6ff;cursor:pointer}
.core-wf .core-ic{width:22px;height:22px;border-radius:6px}
.core-wf .core-ic em{font-size:11px}
.core[data-mode=write]:not([data-mood=think]){--cc:#a78bfa;--cg:#a78bfaaa}
.core-qb{position:absolute;left:50%;top:44px;transform:translateX(-50%);display:none;gap:5px;white-space:nowrap;pointer-events:auto}
.core.qb-on .core-qb{display:flex;animation:core-tip .2s ease-out}
.core-qb button{font:700 12px/1 "Quicksand",sans-serif;padding:7px 10px;border-radius:999px;border:1px solid #ffffff2a;background:#070b14ee;color:#d4e2ee;cursor:pointer;box-shadow:0 4px 12px #000a}
.core-qb button:hover{border-color:#3fe0ff88;color:#fff}
.core-qb button.on{border-color:#ffb02088;color:#ffd58a}
.core-pp{display:flex;flex-direction:column;gap:6px;margin:6px 0}
.core-pi{display:grid;grid-template-columns:40px 1fr auto;gap:10px;align-items:start;padding:9px;border-radius:12px;background:#ffffff08;border:1px solid #ffffff12}
.core-pi .core-ic{width:40px;height:40px}
.core-pi .core-tx b{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.core-pi .core-tx p{-webkit-line-clamp:unset;display:block;margin:2px 0 0!important}
.core-pi .core-mk{color:#fff!important;font-weight:700;font-size:.9em}
.core-bd.link{background:#3fe0ff26;color:#a5f3fc;margin:0}

/* painted eye */
.core-img{position:absolute;inset:-6%;display:block;pointer-events:none;--gx:0;--gy:0;
  transform:translate(calc(var(--gx) * 2%), calc(var(--gy) * 2%));transition:transform .25s ease-out}
.core-img .ci{position:absolute;inset:0;width:100%;height:100%;opacity:0;transition:opacity .45s ease}
.core-img .ci-red{opacity:1}
.core[data-mode=write] .ci-violet{opacity:1}
.core:not([data-mode=write])[data-mood=happy] .ci-cyan{opacity:1}
.core[data-mood=think] .ci-amber{opacity:1}
.core.blink .ci-closed,.core.asleep .ci-closed{opacity:1;transition:opacity .07s}
.core.asleep .ci-closed{transition:opacity .9s}
.core-glow{position:absolute;left:49.8%;top:46.9%;width:34%;height:34%;border-radius:50%;
  transform:translate(calc(-50% + var(--gx) * 6%), calc(-50% + var(--gy) * 6%));
  background:radial-gradient(circle,#fff9 0,var(--cc) 22%,transparent 68%);mix-blend-mode:screen;opacity:.55;
  animation:core-breathe 4s ease-in-out infinite}
.core[data-mood=think] .core-glow{animation-duration:1.1s}
.core.talk .core-glow{animation-duration:1.6s}
.core.blink .core-glow,.core.asleep .core-glow{opacity:0;animation:none}
.ci-glass{position:absolute;inset:0;width:100%;height:100%;opacity:.35;transform:translate(calc(var(--gx) * -3%), calc(var(--gy) * -3%))}
@keyframes core-breathe{0%,100%{opacity:.35;scale:.92}50%{opacity:.75;scale:1.08}}
.core:not(.noimg) .core-svg{display:none}
.core.noimg .core-img{display:none}
.core-eye{filter:drop-shadow(0 0 10px var(--cg)) drop-shadow(0 6px 10px #000c)}
@media (prefers-reduced-motion:reduce){.core-glow{animation:none}.core-img{transition:none}}
