/* Zeniva Orvel — effets : curseur lumineux, boutons magnétiques, shell secret */
#cur-dot,#cur-ring,#cur-trail{position:fixed;left:0;top:0;pointer-events:none;z-index:9998;opacity:0;transition:opacity .3s}
#cur-trail{width:100vw;height:100vh;z-index:9996;mix-blend-mode:screen}
#cur-dot{width:6px;height:6px;margin:-3px 0 0 -3px;border-radius:50%;background:#fff;box-shadow:0 0 12px 3px #22e5ff,0 0 30px 8px rgba(34,229,255,.5);will-change:transform}
#cur-ring{width:38px;height:38px;margin:-19px 0 0 -19px;border-radius:50%;border:1px solid rgba(34,229,255,.55);will-change:transform;transition:opacity .3s,width .25s,height .25s,margin .25s,border-color .25s,background .25s}
#cur-ring.big{width:64px;height:64px;margin:-32px 0 0 -32px;border-color:rgba(232,184,90,.8);background:rgba(232,184,90,.06)}
#cur-ring.down{width:26px;height:26px;margin:-13px 0 0 -13px;border-color:#39ff88}
html.has-cursor.cur-on #cur-dot,html.has-cursor.cur-on #cur-ring,html.has-cursor.cur-on #cur-trail{opacity:1}
html.has-cursor.cur-on,html.has-cursor.cur-on a,html.has-cursor.cur-on button,html.has-cursor.cur-on .bcard,html.has-cursor.cur-on .btn,html.has-cursor.cur-on summary{cursor:none}
html.has-cursor.cur-on input,html.has-cursor.cur-on textarea,html.has-cursor.cur-on .shell-ov,html.has-cursor.cur-on .shell-ov *{cursor:auto}
.mag{transition:transform .22s cubic-bezier(.2,.8,.2,1),background .2s,color .2s,box-shadow .2s}
/* easter egg : faux shell */
.shell-ov{position:fixed;inset:0;z-index:10050;display:none;align-items:center;justify-content:center;background:rgba(1,3,6,.82);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:16px}
.shell-ov.open{display:flex;animation:shin .25s ease-out}
@keyframes shin{from{opacity:0;transform:scale(1.02)}to{opacity:1;transform:none}}
.shell{width:min(880px,100%);height:min(560px,86vh);display:flex;flex-direction:column;background:rgba(3,10,8,.94);border:1px solid rgba(57,255,136,.35);border-radius:14px;box-shadow:0 0 80px rgba(57,255,136,.15);font:14px/1.55 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#b8f5d0;overflow:hidden;position:relative}
.shell::after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,rgba(0,255,150,.035) 0 1px,transparent 1px 3px)}
.shell-bar{display:flex;align-items:center;gap:10px;padding:8px 14px;border-bottom:1px solid rgba(57,255,136,.25);color:#7fbf9f;font-size:12px}
.shell-bar b{color:#e8b85a;border:1px solid #e8b85a;border-radius:4px;padding:1px 7px;font-size:11px;letter-spacing:.06em}
.shell-bar button{margin-left:auto;background:none;border:1px solid rgba(57,255,136,.35);color:#b8f5d0;border-radius:6px;padding:2px 10px;cursor:pointer;font:inherit}
.shell-out{flex:1;overflow-y:auto;padding:14px 16px;white-space:pre-wrap;word-break:break-word;scrollbar-width:thin}
.shell-out .c{color:#7fe3ff}.shell-out .w{color:#ffc54d}.shell-out .o{color:#5dffa4}.shell-out .d{opacity:.6}
.shell-in{display:flex;gap:8px;padding:10px 16px;border-top:1px solid rgba(57,255,136,.25)}
.shell-in span{color:#5dffa4;white-space:nowrap}
.shell-in input{flex:1;min-width:0;background:none;border:0;outline:0;color:#e8fff3;font:inherit;caret-color:#5dffa4}
.shell-ov.matrix .shell-out{color:#39ff88;text-shadow:0 0 8px #39ff88}
@media(prefers-reduced-motion:reduce){.shell-ov.open{animation:none}}
@media(pointer:coarse){#cur-dot,#cur-ring,#cur-trail{display:none}}
