/* CORE writing coach, prefix cw- */
.cwx{position:fixed;left:0;top:0;z-index:850;width:0;pointer-events:none;--cw:#a78bfa;--cwg:#a78bfa99}
.cwx[hidden]{display:none}
.cwx.think{--cw:#ffb020;--cwg:#ffb02099}
.cw-line{position:absolute;left:-1px;top:0;width:2px;border-radius:2px;background:linear-gradient(180deg,transparent,var(--cw) 12%,var(--cw) 88%,transparent);opacity:.32;box-shadow:0 0 10px var(--cwg);transition:opacity .3s}
.cwx.open .cw-line,.cwx:hover .cw-line{opacity:.7}
.cw-eye{position:absolute;left:-19px;top:-19px;width:38px;height:38px;padding:0;border:0;border-radius:50%;background:none;cursor:pointer;pointer-events:auto;
  filter:drop-shadow(0 0 8px var(--cwg)) drop-shadow(0 3px 6px #000c);transition:transform .25s cubic-bezier(.2,.8,.2,1),filter .3s;-webkit-tap-highlight-color:transparent}
.cw-eye:hover,.cwx.open .cw-eye{filter:drop-shadow(0 0 14px var(--cwg)) drop-shadow(0 3px 6px #000c)}
.cw-eye:focus-visible{outline:2px solid var(--cw);outline-offset:4px}
.cw-eye svg{width:100%;height:100%;overflow:visible;display:block}
.cw-eye .cw-g1{stop-color:var(--cw)}.cw-eye .cw-g2{stop-color:var(--cw);stop-opacity:0}
.cw-iris path{fill:none;stroke:var(--cw);stroke-width:3.6;stroke-linecap:round;opacity:.85}
.cw-iris{transform-box:fill-box;transform-origin:center;animation:cw-spin 18s linear infinite}
.cwx.think .cw-iris{animation-duration:1.4s}
.cw-dot{position:absolute;right:-2px;top:-2px;width:10px;height:10px;border-radius:50%;background:var(--cw);box-shadow:0 0 10px var(--cw);opacity:0;transform:scale(.4);transition:.3s}
.cwx.idea .cw-dot{opacity:1;transform:none;animation:cw-pulse 1.8s ease-in-out infinite}
.cwx.inside .cw-line{opacity:.2}
@keyframes cw-spin{to{transform:rotate(360deg)}}
@keyframes cw-pulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.cw-iris{animation:none}.cwx.idea .cw-dot{animation:none}.cw-eye{transition:none}}

.cw-offchip{position:fixed;right:14px;bottom:14px;z-index:850;font:700 12px/1 "Quicksand",sans-serif;padding:8px 12px;border-radius:999px;border:1px solid #a78bfa55;background:#0b0a18e6;color:#c4b5fd;cursor:pointer}
.cw-offchip[hidden]{display:none}

.cw-card{position:fixed;z-index:860;width:380px;max-height:min(620px,calc(100vh - 24px));display:flex;flex-direction:column;color:#e4e0f5;font-family:"Quicksand",system-ui,sans-serif;
  background:linear-gradient(170deg,#141029f5,#08070ff8 60%);border:1px solid #a78bfa55;border-radius:16px;box-shadow:0 24px 60px #000c,0 0 36px #a78bfa18;
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;transform:translateY(6px) scale(.985);transition:opacity .18s,transform .2s}
.cw-card[hidden]{display:none}
.cw-card.in{opacity:1;transform:none}
.cw-card::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:repeating-linear-gradient(0deg,#ffffff05 0 1px,transparent 1px 3px)}
.cw-card.cw-sheet{left:0!important;right:0;bottom:0;top:auto!important;width:auto!important;max-height:52vh;border-radius:18px 18px 0 0;padding-bottom:env(safe-area-inset-bottom)}
.cw-beam{position:absolute;height:1px;transform-origin:0 50%;pointer-events:none;background:linear-gradient(90deg,#a78bfacc,#a78bfa11);box-shadow:0 0 8px #a78bfa}
.cw-hd{display:flex;align-items:center;gap:8px;padding:12px 12px 10px 16px;border-bottom:1px solid #a78bfa2e}
.cw-hd>div{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.cw-hd b{font:400 20px/1 "Orbitron","Antonio",sans-serif;letter-spacing:.14em;color:#fff;text-shadow:0 0 12px #a78bfa99}
.cw-sub{font:11.5px/1.25 "Share Tech Mono",monospace;letter-spacing:.1em;color:#c4b5fd}
.cw-hd button{font:700 12px/1 "Quicksand",sans-serif;padding:8px 11px;border-radius:999px;border:1px solid #ffffff22;background:#ffffff0a;color:#d6d0ea;cursor:pointer;white-space:nowrap}
.cw-hd button:hover{background:#ffffff1a}
.cw-hd .cw-eng{border-color:#a78bfa66;color:#ddd6fe}
.cw-log,.cw-set{flex:1;min-height:110px;overflow:auto;padding:12px 14px 6px;display:flex;flex-direction:column;gap:10px;scrollbar-width:thin;scrollbar-color:#a78bfa55 transparent}
.cw-log[hidden],.cw-set[hidden],.cw-qk[hidden],.cw-in[hidden]{display:none}
.cw-m{font-size:clamp(14px,1.5vmin,16px);line-height:1.45;animation:cw-msg .25s ease-out}
.cw-m p{margin:0 0 6px}
.cw-m.me{align-self:flex-end;max-width:86%;padding:8px 13px;border-radius:14px 14px 4px 14px;background:#2a2346;color:#f3f0ff;font-weight:600}
.cw-m.cw-warn{color:#fcd34d;font-size:.88em}
@keyframes cw-msg{from{opacity:0;transform:translateY(4px)}}
.cw-m ul{margin:4px 0 6px;padding:0;list-style:none;display:flex;flex-direction:column;gap:6px}
.cw-m ul li{position:relative;padding-left:20px}
.cw-m ul li::before{content:"";position:absolute;left:3px;top:.55em;width:8px;height:8px;border-radius:50%}
.cw-q li::before{background:#a78bfa;box-shadow:0 0 6px #a78bfa}
.cw-todo li::before{background:#ffb020;box-shadow:0 0 6px #ffb020}
.cw-ok li::before{background:#4ade80;box-shadow:0 0 6px #4ade80}
.cw-q li{color:#ece8ff}
.cw-ai ul li::before{background:#c4b5fd}
.cw-term{display:block;font:400 15px "Orbitron","Antonio",sans-serif;letter-spacing:.08em;text-transform:uppercase;color:#ddd6fe;margin-bottom:4px}
.cw-cards{display:flex;flex-direction:column;gap:7px}
.cw-cd{padding:9px 11px;border-radius:12px;border:1px solid #a78bfa33;background:#a78bfa0d}
.cw-cd small{font:10.5px/1 "Share Tech Mono",monospace;letter-spacing:.12em;text-transform:uppercase;color:#a78bfa}
.cw-cd b{display:block;margin:3px 0;color:#fff}
.cw-cd p{margin:0 0 4px;font-size:.9em;color:#b9b2d6}
.cw-cd em{display:block;font-style:normal;font-size:.92em;color:#ece8ff}
.cw-ch{display:flex;flex-wrap:wrap;gap:6px}
.cw-ch button,.cw-qk button{font:700 12.5px/1.1 "Quicksand",sans-serif;padding:8px 11px;border-radius:999px;border:1px solid #a78bfa66;background:#a78bfa14;color:#ece8ff;cursor:pointer;text-align:left}
.cw-ch button:hover,.cw-qk button:hover{background:#a78bfa30}
.cw-qk{display:flex;flex-wrap:wrap;gap:6px;padding:8px 12px 0}
.cw-dots{display:inline-flex;gap:3px;vertical-align:middle;margin-right:6px}
.cw-dots i{width:6px;height:6px;border-radius:50%;background:#ffb020;animation:cw-pulse 1s infinite}
.cw-dots i:nth-child(2){animation-delay:.2s}.cw-dots i:nth-child(3){animation-delay:.4s}
.cw-wait{color:#ffd58a;font-size:.9em}
.cw-in{display:flex;gap:8px;padding:10px 12px 6px}
.cw-in input{flex:1;min-width:0;font:600 15px/1.2 "Quicksand",sans-serif;padding:11px 13px;border-radius:12px;border:1px solid #a78bfa55;background:#05040b;color:#f3f0ff;outline:none}
.cw-in input:focus{border-color:#a78bfa;box-shadow:0 0 0 3px #a78bfa26}
.cw-in input::placeholder{color:#6f6890}
.cw-in button{font:700 14px/1 "Orbitron","Antonio",sans-serif;letter-spacing:.08em;padding:0 15px;border-radius:12px;border:0;background:linear-gradient(135deg,#c4b5fd,#8b5cf6);color:#160a33;cursor:pointer}
.cw-ft{margin:0;padding:0 14px 10px;font-size:11.5px;color:#8a83a8}
.cw-set h3{margin:0;font:400 15px "Orbitron","Antonio",sans-serif;letter-spacing:.1em;color:#ddd6fe}
.cw-opt{display:flex;gap:10px;align-items:flex-start;padding:8px 10px;border-radius:12px;border:1px solid #ffffff14;cursor:pointer}
.cw-opt input{margin-top:3px;accent-color:#a78bfa}
.cw-opt b,.cw-eng-row>b{display:block;color:#fff;font-size:.95em}
.cw-opt small,.cw-eng-row small{display:block;color:#a9a2c6;font-size:.84em;line-height:1.35;margin-top:2px}
.cw-eng-row{position:relative;padding:9px 10px;border-radius:12px;background:#ffffff07;border:1px solid #ffffff10}
.cw-st{position:absolute;right:10px;top:9px;font:11px/1 "Share Tech Mono",monospace;letter-spacing:.08em;text-transform:uppercase;padding:3px 6px;border-radius:5px;background:#ffffff12;color:#c9c3e0}
.cw-st.ok{background:#16a34a2e;color:#86efac}.cw-st.no{background:#dc26262a;color:#fca5a5}
.cw-row{display:flex;gap:6px;margin-top:7px}
.cw-row input{flex:1;min-width:0;font:13px "Share Tech Mono",monospace;padding:7px 9px;border-radius:8px;border:1px solid #a78bfa44;background:#05040b;color:#ece8ff}
.cw-row button,.cw-back{font:700 12.5px/1 "Quicksand",sans-serif;padding:8px 12px;border-radius:9px;border:1px solid #a78bfa66;background:#a78bfa1f;color:#ece8ff;cursor:pointer}
.cw-row button[hidden]{display:none}
.cw-row button:disabled{opacity:.5;cursor:default}
.cw-back{align-self:flex-start}
.cw-bar{position:relative;height:18px;margin-top:8px;border-radius:9px;background:#ffffff10;overflow:hidden}
.cw-bar[hidden]{display:none}
.cw-bar i{position:absolute;inset:0 auto 0 0;width:0;background:linear-gradient(90deg,#8b5cf6,#c4b5fd);transition:width .3s}
.cw-bar span{position:relative;display:block;text-align:center;font:11px/18px "Share Tech Mono",monospace;color:#fff}
@media print{.cwx,.cw-card,.cw-offchip{display:none!important}}

/* when the hub CORE is present it rides the rail, so the small eye hides */
.cwx.big .cw-eye{display:none}
.cwx.big .cw-line{opacity:.45;width:2px}
.cwx.big.dim .cw-line{opacity:0}
.cw-line{transition:opacity .4s}
