:root{--bg:#05070b;--panel:#151a20;--line:#35414d;--cyan:#20e3ff;--green:#42ff75;--red:#ff496c;--text:#d8e7e9;--muted:#829399}*{box-sizing:border-box}html,body{height:100%;margin:0;overflow:hidden;background:#000;color:var(--text);font-family:Inter,Ubuntu,Arial,sans-serif}.hidden{display:none!important}button,input,textarea{font:inherit}.boot{height:100%;padding:7vh 8vw;background:#020303;color:var(--green);font:14px/1.55 "Courier New",monospace}.boot-mark{font-size:clamp(28px,7vw,72px);letter-spacing:.18em;color:#dff;text-shadow:0 0 28px var(--cyan);margin-bottom:30px}.cursor{animation:blink .72s infinite}@keyframes blink{50%{opacity:0}}.desktop{height:100%;position:relative;background:#02050a}.wallpaper{position:absolute;inset:0;background:radial-gradient(circle at 70% 35%,#09242c 0,transparent 28%),linear-gradient(135deg,#020408,#071019 55%,#020406);overflow:hidden}.wallpaper canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.25}.sigil{position:absolute;right:10%;top:18%;width:250px;height:250px;border:2px solid rgba(32,227,255,.35);border-radius:50%;display:grid;place-items:center;font:700 90px monospace;color:rgba(32,227,255,.2);box-shadow:0 0 80px rgba(32,227,255,.15),inset 0 0 60px rgba(32,227,255,.1);animation:sigil 12s linear infinite}.sigil:before,.sigil:after{content:"";position:absolute;inset:22px;border:1px dashed rgba(66,255,117,.3);border-radius:50%}.sigil:after{inset:55px;border-style:solid}@keyframes sigil{to{transform:rotate(360deg)}}.vignette{position:absolute;inset:0;background:radial-gradient(circle,transparent 40%,rgba(0,0,0,.7));pointer-events:none}.panel{position:absolute;left:0;right:0;height:34px;background:rgba(18,23,29,.96);border-color:#2c343c;display:flex;align-items:center;z-index:900;box-shadow:0 0 0 1px #06080a}.top{top:0}.bottom{bottom:0}.menu-head,.quick,#bottomMenu,.bottom-power{height:29px;border:0;background:transparent;color:#d7e0e5;padding:0 11px;cursor:pointer}.menu-head:hover,.quick:hover,#bottomMenu:hover,.bottom-power:hover{background:#29343f}.quick{margin-left:3px;background:#202a33;border:1px solid #384650;border-radius:2px}.quick.alert{color:var(--red);text-shadow:0 0 9px var(--red)}.meters{margin-left:auto;display:flex;gap:4px}.meters i{width:52px;height:18px;border:1px solid #29414b;background:repeating-linear-gradient(90deg,rgba(66,255,117,.75) 0 4px,transparent 4px 7px);opacity:.7}.tray,.clock{padding:0 10px;font:12px monospace}.icons{position:absolute;top:55px;left:24px;display:grid;grid-template-columns:repeat(2,90px);gap:15px 12px;z-index:5}.icon{width:90px;min-height:78px;border:1px solid transparent;background:transparent;color:#eaf7f8;text-shadow:1px 2px 3px #000;padding:4px;cursor:pointer}.icon:hover{background:rgba(32,227,255,.12);border-color:rgba(32,227,255,.38)}.icon span{display:block;font:38px monospace;color:#8ff7ff;filter:drop-shadow(0 0 6px #078ca0)}.icon.special span{color:var(--red);filter:drop-shadow(0 0 8px var(--red))}.menu{position:absolute;top:34px;left:5px;width:288px;max-height:calc(100vh - 70px);overflow:auto;background:#141a20;border:1px solid #47545f;z-index:1000;box-shadow:0 16px 38px #000}.menu-title{padding:12px;background:#090d11;color:var(--cyan);font-weight:700;letter-spacing:.08em}.menu button{display:block;width:100%;padding:9px 12px;text-align:left;background:transparent;border:0;color:#e0eaed;cursor:pointer}.menu button:hover{background:#263b45;color:#fff}.menu-separator{height:1px;background:#36434d;margin:5px}.danger-menu{color:#ff8198!important}.window{position:absolute;width:min(720px,calc(100vw - 28px));min-height:280px;background:#0e1419;border:1px solid #52616c;box-shadow:0 16px 45px rgba(0,0,0,.85);z-index:50}.titlebar{height:32px;background:linear-gradient(#293640,#172028);display:flex;justify-content:space-between;align-items:center;padding-left:10px;cursor:move;border-bottom:1px solid #53636e}.titlebar .title{font-size:13px;font-weight:700}.titlebar button{width:29px;height:25px;background:#11181e;color:#fff;border:1px solid #4d5b64;margin:1px;cursor:pointer}.body{padding:13px;max-height:min(570px,calc(100vh - 100px));overflow:auto}.terminal{height:430px;overflow:auto;background:#020403;color:var(--green);border:1px solid #25442d;padding:11px;font:14px/1.45 "Courier New",monospace;box-shadow:inset 0 0 25px #000}.log{white-space:pre-wrap}.terminal-input{display:flex}.prompt{color:var(--cyan)}.terminal input{flex:1;background:transparent;border:0;outline:0;color:var(--green);font:inherit}.row{display:flex;gap:7px;margin:9px 0;flex-wrap:wrap}.row input{flex:1;min-width:180px;background:#050a0e;color:#dff;border:1px solid #405560;padding:9px}.action{background:#123c48;color:#e9fdff;border:1px solid #2ea8bb;padding:8px 12px;cursor:pointer}.action:hover{filter:brightness(1.25)}.action.danger{background:#491420;border-color:#b42b48}.output,textarea{width:100%;min-height:155px;background:#03080b;color:#bfffd0;border:1px solid #354b55;padding:10px;white-space:pre-wrap;font:13px/1.45 monospace}.smallout{min-height:110px}.muted{color:var(--muted)}.warning{color:#ffd56a}.critical{color:#ff718b}.ok{color:#70ff9d}.scan{color:#66e8ff}.tool-table{width:100%;border-collapse:collapse}.tool-table th,.tool-table td{border:1px solid #35434c;padding:8px}.tool-table th{background:#202d35}.file{padding:9px;border-bottom:1px solid #26333b}.tasks{display:flex;gap:4px;flex:1;overflow:hidden}.task{height:27px;max-width:180px;overflow:hidden;background:#254657;color:#fff;border:1px solid #387085;margin-left:4px;cursor:pointer}.overlay,.power-overlay{position:absolute;inset:0;background:rgba(0,0,0,.84);z-index:2000;display:grid;place-items:center}.overlay-box,.power-box{width:min(620px,90vw);text-align:center;color:#88f7ff;font:16px/1.6 monospace}.radar{width:210px;height:210px;margin:auto;border-radius:50%;border:2px solid #1bdbb0;background:repeating-radial-gradient(circle,transparent 0 28px,rgba(43,255,184,.28) 29px 30px),conic-gradient(from 0deg,transparent 0 82%,rgba(43,255,184,.5));box-shadow:0 0 45px rgba(43,255,184,.35);animation:spin 1.4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.power-icon{font-size:80px;color:var(--red);text-shadow:0 0 30px var(--red)}.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.card{background:#121c22;border:1px solid #344852;padding:13px}.card h3{margin:0 0 6px;color:#76efff}.signal-box{font-size:30px;letter-spacing:.18em;text-align:center;padding:24px;border:1px dashed #41616b;background:#050b0e}.progress{height:15px;border:1px solid #3c5059;background:#05090b;margin:10px 0}.progress i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,#33d2be 0 8px,#1a8278 8px 12px);transition:width .25s}.archive-list button{display:block;width:100%;text-align:left;padding:10px;background:#10191f;color:#dce8eb;border:1px solid #2e4049;margin:5px 0;cursor:pointer}.archive-list button:hover{background:#1e3038}.glitch{animation:glitch .13s infinite alternate}@keyframes glitch{to{transform:translate(1px,-1px);filter:hue-rotate(30deg)}}@media(max-width:720px){.icons{grid-template-columns:repeat(2,74px);left:10px;gap:8px}.icon{width:74px;font-size:11px}.sigil{right:-50px;top:22%;width:210px;height:210px}.menu-head:nth-of-type(2),.menu-head:nth-of-type(3),.meters,.tray{display:none}.window{left:8px!important;top:42px!important}.body{max-height:calc(100vh - 112px)}.terminal{height:calc(100vh - 170px)}}
.virus-quick,.virus-icon span{color:#ff375f!important;text-shadow:0 0 12px #ff1744}.fm{display:grid;grid-template-columns:185px 1fr;min-height:430px;background:#11171c;border:1px solid #3a4650}.fm-side{background:#182027;border-right:1px solid #394650;padding:12px 8px}.fm-side b{display:block;color:#8da0aa;padding:7px}.fm-side button{display:block;width:100%;text-align:left;border:0;background:transparent;color:#d7e2e6;padding:8px;cursor:pointer}.fm-side button:hover{background:#2a3942}.fm-side hr{border:0;border-top:1px solid #34414a}.fm-main{min-width:0}.fm-toolbar{height:43px;display:flex;align-items:center;gap:6px;padding:6px;background:#202930;border-bottom:1px solid #3d4952}.fm-toolbar button{background:#303c45;color:#fff;border:1px solid #4d5c66;padding:5px 10px}.fm-toolbar span{padding-left:8px;font:13px monospace;color:#b8ccd4;overflow:hidden;text-overflow:ellipsis}.fm-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(95px,1fr));align-content:start;gap:8px;padding:13px;max-height:430px;overflow:auto}.fm-item{min-height:82px;background:transparent;color:#dfeaec;border:1px solid transparent;cursor:pointer}.fm-item:hover{background:#24343d;border-color:#42606e}.fm-item span{display:block;font-size:36px}.fm-item small{display:block;overflow-wrap:anywhere}.nano{background:#07111a;color:#e7edf2;border:1px solid #7b8791;font:14px/1.5 monospace;min-height:390px;display:flex;flex-direction:column}.nano-head,.nano-help{background:#d7dde1;color:#081018;text-align:center;padding:3px}.nano pre{flex:1;white-space:pre-wrap;padding:12px;margin:0}.trace-map{height:190px;position:relative;overflow:hidden;border:1px solid #31535f;background:linear-gradient(rgba(17,64,69,.35) 1px,transparent 1px),linear-gradient(90deg,rgba(17,64,69,.35) 1px,transparent 1px),radial-gradient(circle at center,#102831,#03080b);background-size:25px 25px,25px 25px,auto}.trace-map:before{content:"";position:absolute;inset:18%;border:1px solid #33e6c1;border-radius:50%;box-shadow:0 0 30px #16ba9b}.trace-map i{position:absolute;width:13px;height:13px;background:#ff315d;border-radius:50%;box-shadow:0 0 18px #ff315d;transition:.5s}.trace-map span{position:absolute;bottom:8px;left:10px;font:12px monospace;color:#7af6da}.phone{width:230px;height:350px;margin:8px auto;border:8px solid #1e282f;border-radius:25px;background:#030608;box-shadow:0 0 20px #000}.phone-top{font:10px monospace;text-align:center;padding:8px;color:#72f5ff}.phone-screen{height:300px;display:grid;place-items:center;text-align:center;padding:12px;color:#5ef5b6;background:repeating-linear-gradient(0deg,rgba(21,255,183,.04) 0 2px,transparent 2px 5px)}.fake-camera{font:14px/1.8 monospace;color:#ff637f}.cookie-jar{padding:18px;background:#05090c;border:1px dashed #ff5d79;color:#ff8da1;font:16px monospace;overflow-wrap:anywhere}.virus-readme{border:2px solid #a51431;background:radial-gradient(circle at top,#38101a,#090507 60%);padding:18px;box-shadow:inset 0 0 40px #000}.virus-readme h2{color:#ff3f64;text-shadow:0 0 12px #ff1744}.virus-readme pre{white-space:pre-wrap;color:#ffc2ce;background:#080405;padding:15px;border:1px solid #6f1729}.virus-open{width:100%;font-weight:800;animation:virusPulse .8s infinite alternate}@keyframes virusPulse{to{filter:brightness(1.5);box-shadow:0 0 20px #ff1744}}.infection-layer{position:fixed;inset:0;pointer-events:none;z-index:2900;background:repeating-linear-gradient(0deg,rgba(255,0,50,.035) 0 2px,transparent 2px 5px)}.infection-banner{position:absolute;top:34px;left:0;right:0;padding:8px;background:#a40023;color:#fff;text-align:center;font:800 18px monospace;letter-spacing:.15em;box-shadow:0 0 25px #ff1744}.infection-banner span{float:right;margin-right:18px}.infection-popup{position:fixed;width:min(330px,88vw);background:#16050a;border:2px solid #ff315d;color:#ffdbe2;box-shadow:0 0 30px #000,0 0 18px #ff1744;font:13px monospace;animation:popupShake .16s infinite alternate}.infection-popup header{display:flex;justify-content:space-between;background:#a60025;color:white;padding:7px;font-weight:bold}.infection-popup header button{background:#250008;color:white;border:1px solid white}.infection-popup>div{padding:16px}.malware-progress{height:13px;margin:12px 0;background:#020203;border:1px solid #98233a}.malware-progress i{display:block;height:100%;background:repeating-linear-gradient(90deg,#ff1744 0 7px,#8e0824 7px 11px)}body.infected .wallpaper{animation:infectHue .22s infinite alternate}body.infected .window:not(.infection-popup){filter:hue-rotate(15deg) contrast(1.25)}@keyframes popupShake{to{transform:translate(2px,-1px)}}@keyframes infectHue{to{filter:hue-rotate(45deg) saturate(1.8)}}
@media(max-width:720px){.fm{grid-template-columns:1fr}.fm-side{display:flex;overflow:auto;border-right:0;border-bottom:1px solid #394650}.fm-side b,.fm-side hr{display:none}.fm-side button{min-width:130px}.fm-grid{grid-template-columns:repeat(3,1fr);max-height:calc(100vh - 245px)}.infection-popup{left:5vw!important;top:18vh!important}.infection-banner{font-size:12px}}

.icons{left:50%;transform:translateX(-50%);top:54px;grid-template-columns:repeat(5,92px);max-height:calc(100vh - 105px);overflow:auto;padding:6px 10px 20px;scrollbar-width:none}
.icons::-webkit-scrollbar{display:none}
@media(max-width:900px){.icons{grid-template-columns:repeat(4,82px)}}
@media(max-width:560px){.icons{grid-template-columns:repeat(3,76px);top:48px;max-height:calc(100vh - 94px)}}
body.infected:before,body.infected:after{content:"";position:fixed;inset:0;z-index:2895;pointer-events:none}
body.infected:before{background:linear-gradient(transparent var(--tear,45%),rgba(255,255,255,.14) var(--tear),rgba(255,0,55,.35) calc(var(--tear) + 2px),transparent calc(var(--tear) + 8px));animation:tearShift .11s infinite steps(2)}
body.infected:after{background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(0,255,255,.025) 7px 9px);mix-blend-mode:screen;animation:rgbSplit .16s infinite alternate}
@keyframes tearShift{to{transform:translateX(12px) skewX(2deg)}}@keyframes rgbSplit{to{transform:translateX(-7px);filter:hue-rotate(110deg)}}
.glitch-hard{animation:hardGlitch .12s infinite steps(2)!important}@keyframes hardGlitch{0%{transform:translate(0)}25%{transform:translate(-4px,2px);filter:hue-rotate(80deg)}50%{transform:translate(5px,-2px);clip-path:inset(18% 0 44% 0)}75%{transform:translate(-2px,4px);clip-path:inset(55% 0 8% 0)}100%{transform:translate(0)}}
.encrypt-panel{position:fixed;right:18px;bottom:52px;width:min(430px,92vw);z-index:3100;background:#090205;border:2px solid #ff1744;color:#ffd7df;padding:14px;font:12px monospace;box-shadow:0 0 35px #ff1744}.encrypt-panel h3{margin:0 0 8px;color:#ff315d}.encrypt-current{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.encrypt-bar{height:14px;background:#18050a;border:1px solid #aa1735;margin:8px 0}.encrypt-bar i{display:block;height:100%;width:0;background:repeating-linear-gradient(90deg,#ff1744 0 8px,#70051b 8px 12px);transition:width .5s}.encrypt-list{max-height:155px;overflow:hidden}.encrypt-list div{display:flex;justify-content:space-between;border-top:1px solid #42101c;padding:4px}.encrypt-list b{color:#ff365d}.encrypted-file{filter:hue-rotate(100deg) grayscale(1);text-decoration:line-through}.screen-tear{position:fixed;left:0;right:0;top:42%;z-index:5000;background:#fff;color:#000;font:900 clamp(22px,6vw,70px) monospace;text-align:center;letter-spacing:.12em;mix-blend-mode:difference;animation:screenTear .08s infinite alternate}@keyframes screenTear{to{transform:translate(15px,-5px) skewX(-8deg)}}
.watcher-eye{width:180px;height:100px;margin:20px auto;border:2px solid #ff315d;border-radius:100% 0 100% 0;transform:rotate(45deg);display:grid;place-items:center;box-shadow:0 0 35px #ff1744}.watcher-eye i{width:48px;height:48px;border-radius:50%;background:#050505;border:10px solid #ff315d;box-shadow:0 0 20px #ff1744;animation:eyeMove 2s infinite alternate}@keyframes eyeMove{to{transform:translate(25px,-15px)}}
.remote-cursor{position:fixed;z-index:4500;color:#ff315d;font:700 11px monospace;text-shadow:0 0 8px #ff1744;pointer-events:none;transition:.2s}.remote-cursor:before{content:"➤";font-size:28px;display:block}.dead-terminal{min-height:390px;background:#000;color:#ff315d;padding:16px;font:15px/1.55 monospace}.dead-face{text-align:center;font-size:54px;margin-top:80px;animation:blink .5s infinite alternate}
/* V5: iconos libres y NOCTI */
.icons.free-icons{position:absolute;inset:0;left:0;top:0;transform:none;display:block;max-height:none;overflow:visible;padding:0;pointer-events:none}
.icons.free-icons .icon{position:absolute;width:92px;min-height:86px;pointer-events:auto;touch-action:none;cursor:grab;user-select:none;transition:filter .15s,transform .15s}
.icons.free-icons .icon.dragging{cursor:grabbing;transform:scale(1.08);filter:drop-shadow(0 0 12px #38ffd1);z-index:90}
.tamagochi-icon span{color:#ff537e;text-shadow:0 0 12px #ff1744}
.tamagochi-shell{background:linear-gradient(#1d2227,#0a0d10);border:1px solid #46505a;padding:12px;max-width:510px;margin:auto;box-shadow:inset 0 0 30px #000}
.tamagochi-screen{position:relative;height:270px;overflow:hidden;border:7px solid #2a3035;border-radius:18px;background:radial-gradient(circle at 50% 35%,#273038,#080a0c 58%,#000);box-shadow:inset 0 0 55px #000,0 0 18px rgba(255,23,68,.22)}
.tama-static{position:absolute;inset:0;opacity:.13;background:repeating-linear-gradient(0deg,transparent 0 3px,#fff 3px 4px);animation:tamaNoise .22s steps(2) infinite}.tama-moon{position:absolute;right:18px;top:12px;color:#71808b;font-size:34px}
.tama-creature{position:absolute;left:50%;top:48%;width:142px;height:142px;transform:translate(-50%,-50%);border-radius:48% 52% 44% 46%;background:radial-gradient(circle at 45% 30%,#3c4145,#111417 70%);box-shadow:0 25px 28px #000,0 0 25px rgba(255,40,88,.18);animation:tamaBreathe 2.6s infinite ease-in-out}
.tama-creature .ear{position:absolute;top:-21px;width:46px;height:64px;background:#15191c;clip-path:polygon(50% 0,100% 100%,0 80%)}.tama-creature .left{left:8px;transform:rotate(-17deg)}.tama-creature .right{right:8px;transform:rotate(17deg)}
.tama-face{position:absolute;inset:0}.eye{position:absolute;top:51px;width:19px;height:25px;border-radius:50%;background:#ff315d;box-shadow:0 0 14px #ff1744}.e1{left:36px}.e2{right:36px}.mouth{position:absolute;left:50%;top:91px;width:34px;height:12px;transform:translateX(-50%);border-bottom:3px solid #c7d0d4;border-radius:50%}
.tama-shadow{position:absolute;left:15%;right:15%;bottom:-26px;height:18px;border-radius:50%;background:#000;filter:blur(5px)}.tama-message{position:absolute;left:10px;right:10px;bottom:8px;background:rgba(0,0,0,.72);border:1px solid #5c2533;color:#ffd3dc;padding:8px;text-align:center;font:12px monospace}
.tama-bars{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:10px 0}.tama-bars label{font:11px monospace;color:#bbc7cc}.tama-bars span{display:block;height:8px;background:#050607;border:1px solid #364047}.tama-bars i{display:block;height:100%;background:repeating-linear-gradient(90deg,#ff315d 0 7px,#731128 7px 10px);transition:width .35s}
.tama-controls{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}.tama-controls button{background:#20282e;color:#dce7ea;border:1px solid #46545e;padding:8px;cursor:pointer}.tama-controls button:hover{background:#3a1824;color:#fff}.tama-log{height:84px;overflow:auto;background:#030506;color:#8ea0a7;border:1px solid #2c353b;padding:8px;white-space:pre-wrap;font-size:11px}
.tama-creature[data-mood="possessed"]{animation:tamaPossessed .11s infinite steps(2);background:#24040c}.tama-creature[data-mood="possessed"] .eye{background:#fff;box-shadow:0 0 18px #fff}.tama-creature[data-mood="sleep"] .eye{height:2px;top:62px}.tama-creature[data-mood="hungry"] .mouth{height:25px;border:3px solid #ff315d;border-top:0}.tama-creature[data-mood="read"]{transform:translate(-50%,-50%) rotate(-4deg)}
.tama-possessed{animation:hardGlitch .12s infinite steps(2)}.tama-roaming-shadow{position:fixed;z-index:4400;color:#ff315d;font-size:42px;text-shadow:0 0 18px #ff1744;pointer-events:none;transition:.15s;filter:blur(1px)}
@keyframes tamaBreathe{50%{transform:translate(-50%,-52%) scale(1.03)}}@keyframes tamaNoise{to{transform:translateY(4px)}}@keyframes tamaPossessed{to{transform:translate(-50%,-50%) scale(1.06) rotate(2deg);filter:hue-rotate(90deg)}}
@media(max-width:600px){.tama-controls{grid-template-columns:1fr 1fr}.tamagochi-screen{height:240px}.icons.free-icons .icon{width:78px;font-size:11px}}

/* NOCTI floating desktop companion */
.nocti-pet{position:absolute;width:88px;height:108px;z-index:2600;user-select:none;touch-action:none;filter:drop-shadow(0 8px 8px #000);transition:filter .2s;pointer-events:none}.nocti-body{position:absolute;left:8px;top:18px;width:72px;height:78px;border-radius:48% 48% 42% 42%;background:radial-gradient(circle at 50% 35%,#a6f6db 0 4%,#183b39 6%,#071113 62%,#020405);border:1px solid #39c9aa;box-shadow:inset 0 0 18px #16b99255,0 0 13px #16b99255;cursor:grab;pointer-events:auto}.nocti-body:active{cursor:grabbing}.nocti-ear{position:absolute;top:-13px;width:24px;height:28px;background:#071113;border:1px solid #39c9aa;clip-path:polygon(50% 0,100% 100%,0 75%)}.nocti-ear.l{left:5px;transform:rotate(-18deg)}.nocti-ear.r{right:5px;transform:rotate(18deg)}.nocti-face{position:absolute;inset:25px 13px 13px}.nocti-face b{position:absolute;top:0;width:10px;height:13px;border-radius:50%;background:#bffff1;box-shadow:0 0 9px #5dffe0}.nocti-face b:first-child{left:4px}.nocti-face b:nth-child(2){right:4px}.nocti-face em{position:absolute;left:50%;top:24px;width:16px;height:7px;border-bottom:2px solid #7effd6;border-radius:50%;transform:translateX(-50%)}.nocti-feet{position:absolute;bottom:-10px;left:22px;color:#58ebc4;font:22px monospace}.nocti-bubble{position:absolute;right:62px;bottom:78px;min-width:150px;max-width:230px;padding:8px 10px;background:#e8fff7;color:#07110f;border:2px solid #15221e;border-radius:12px 12px 2px 12px;font:12px/1.25 monospace;box-shadow:0 8px 22px #000;pointer-events:none}.nocti-menu{position:absolute;left:-72px;bottom:101px;width:230px;padding:7px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:#10181acc;border:1px solid #4ce7c0;border-radius:10px;backdrop-filter:blur(8px);box-shadow:0 12px 35px #000;pointer-events:auto}.nocti-menu button{padding:7px 3px;border:1px solid #355b53;background:#0d1718;color:#dbfff7;border-radius:6px;cursor:pointer;font-size:16px}.nocti-menu button:hover{background:#18332f}.nocti-menu span{display:block;font-size:9px;margin-top:2px}.nocti-status{position:absolute;right:80px;top:8px;width:230px;padding:10px;background:#0b1113f2;border:1px solid #4ce7c0;border-radius:7px;box-shadow:0 15px 40px #000;pointer-events:auto}.nocti-status header{display:flex;justify-content:space-between;color:#65ffd8;font:11px monospace;margin-bottom:8px}.nocti-status header button{background:none;border:0;color:#fff;cursor:pointer}.nocti-status label{display:block;font:10px monospace;margin:5px 0}.nocti-status label span{display:block;height:6px;background:#1d292b;margin-top:2px}.nocti-status label i{display:block;height:100%;background:linear-gradient(90deg,#38e3b8,#f5ff61)}.nocti-status small{color:#81938e}.nocti-pet[data-mood="sleep"] .nocti-face b{height:2px;top:6px}.nocti-pet[data-mood="angry"] .nocti-body{animation:noctiShake .13s infinite}.nocti-pet[data-mood="fear"] .nocti-face b{transform:scale(1.45)}.nocti-pet.dragging{filter:drop-shadow(0 16px 12px #000)}.nocti-possessed{filter:drop-shadow(0 0 16px #ff003c) saturate(2)}.nocti-possessed .nocti-body{background:#100006;border-color:#ff164e;box-shadow:inset 0 0 24px #ff003c,0 0 24px #ff003c;animation:noctiPossessed .12s infinite}.nocti-possessed .nocti-face b{background:#ff164e;box-shadow:0 0 13px #ff003c}.nocti-possessed .nocti-face em{border-color:#ff164e;transform:translateX(-50%) rotate(180deg)}.nocti-possessed .nocti-bubble{background:#170006;color:#ff668a;border-color:#ff164e}.nocti-peek{z-index:45!important}.nocti-walking .nocti-body{animation:noctiHop .28s infinite alternate}.nocti-vanish{opacity:0!important;transition:opacity .2s}.nocti-touched{animation:noctiIcon .15s 6}.nocti-scribble{position:absolute;z-index:1800;color:#ff5278;font:700 44px/1 monospace;transform:rotate(-12deg);text-shadow:0 0 10px #f03;pointer-events:none}.nocti-cursor-trail{position:fixed;z-index:9999;color:#66ffdf;font:30px monospace;pointer-events:none;animation:trailFade .65s forwards}.mystery-desktop-file,.rare-device{position:absolute!important;z-index:20!important}.rare-device span{color:#ff4770!important;animation:blink .3s infinite}.rare-frame:after{content:"";position:fixed;inset:0;z-index:9998;background:radial-gradient(circle at center,transparent 0 10%,#050005 11% 55%,#27000a);mix-blend-mode:screen;pointer-events:none}.nocti-bump{animation:noctiBump .08s 8}.tama-roaming-shadow{position:fixed;z-index:2400;color:#000;font-size:52px;filter:drop-shadow(0 0 8px #ff174d);pointer-events:none;transition:left .16s,top .16s}
@keyframes noctiShake{50%{transform:translateX(3px) rotate(2deg)}}@keyframes noctiPossessed{0%{transform:translate(0)}25%{transform:translate(3px,-2px)}50%{transform:translate(-3px,2px)}75%{transform:skewX(5deg)}}@keyframes noctiHop{to{transform:translateY(-8px) rotate(4deg)}}@keyframes noctiIcon{50%{transform:rotate(8deg) scale(1.08)}}@keyframes trailFade{to{opacity:0;transform:scale(2)}}@keyframes noctiBump{50%{transform:translate(4px,2px)}}
@media(max-width:700px){.nocti-pet{transform:scale(.88);transform-origin:bottom right}.nocti-menu{left:-120px}.nocti-status{right:55px;width:205px}}


/* NoctiOS identity */
.boot-logo{display:flex;align-items:center;gap:18px;margin-bottom:22px;letter-spacing:.18em}.boot-logo b{display:block;font:800 clamp(28px,5vw,58px)/1 monospace;color:#9fffe9;text-shadow:0 0 22px #24e6bd}.boot-logo small{display:block;margin-top:7px;color:#658b83;font:12px monospace;letter-spacing:.35em}.nocti-logo-eye{position:relative;display:inline-block;width:58px;height:42px;border:2px solid #55f5cf;border-radius:70% 25% 70% 25%;transform:rotate(45deg);box-shadow:0 0 18px #24e6bd88,inset 0 0 18px #24e6bd33}.nocti-logo-eye:before{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;border-radius:50%;background:#05090a;border:4px solid #baffed;transform:translate(-50%,-50%);box-shadow:0 0 14px #67ffde}.nocti-logo-eye:after{content:"13";position:absolute;right:-15px;bottom:-15px;transform:rotate(-45deg);font:700 9px monospace;color:#ff5278}.noctios-sigil{display:flex!important;flex-direction:column;align-items:center;justify-content:center;gap:8px;opacity:.18!important}.noctios-sigil .nocti-logo-eye{width:92px;height:66px}.noctios-sigil b{font:800 28px monospace;letter-spacing:.2em}.noctios-sigil small{font:10px monospace;letter-spacing:.3em}.mini-brand{display:flex;align-items:center;gap:8px}.mini-brand .nocti-logo-eye{width:20px;height:14px;border-width:1px}.mini-brand .nocti-logo-eye:before{width:5px;height:5px;border-width:2px}.mini-brand .nocti-logo-eye:after{display:none}.menu-title small{display:block;color:#658b83;font-size:9px;margin:4px 0 0 29px;letter-spacing:.18em}

/* NOCTI facial life and attention system */
.nocti-face b{transform-origin:center;transition:transform .12s,height .12s,top .12s}
.nocti-face em{transform-origin:center;transition:width .12s,height .12s,top .12s,border .12s,transform .12s}
.nocti-blink .nocti-face b{height:2px!important;top:6px!important;box-shadow:none!important}
.nocti-glance .nocti-face b:first-child{transform:translateX(3px)}
.nocti-glance .nocti-face b:nth-child(2){transform:translateX(3px)}
.nocti-talking .nocti-face em{animation:noctiMouth .22s steps(2,end) infinite;border:2px solid #7effd6;border-top:0;background:#03110d}
.nocti-breathe .nocti-body{animation:noctiBreathe 1.1s ease-in-out 2}
.nocti-look-around .nocti-face{animation:noctiLook 1.8s ease-in-out}
.nocti-hop-once .nocti-body{animation:noctiHopOnce .65s ease}
.nocti-attention .nocti-body{animation:noctiAttention .32s ease-in-out 5}
.nocti-droop .nocti-body{transform:rotate(7deg) translateY(6px)}
.nocti-pet[data-mood="hungry"] .nocti-face em{width:11px;height:11px;border:2px solid #7effd6;border-radius:50%;border-top-color:transparent}
.nocti-pet[data-mood="lonely"] .nocti-face em{width:18px;height:8px;border-top:2px solid #7effd6;border-bottom:0;top:29px}
@keyframes noctiMouth{0%{width:9px;height:4px;top:25px}100%{width:17px;height:12px;top:21px}}
@keyframes noctiBreathe{50%{transform:scale(1.04,1.07) translateY(-2px)}}
@keyframes noctiLook{0%,100%{transform:translateX(0)}30%{transform:translateX(-5px)}70%{transform:translateX(5px)}}
@keyframes noctiHopOnce{35%{transform:translateY(-13px) rotate(-5deg)}70%{transform:translateY(0) rotate(4deg)}}
@keyframes noctiAttention{25%{transform:translateY(-7px) rotate(-4deg)}75%{transform:translateY(1px) rotate(4deg)}}

/* ================================================================
   NOCTIOS V11 — APARIENCIAS DE LAS PERSONALIDADES DE NOCTI
   Cada selector usa data-personality, asignado desde nocti.js.
   Puedes cambiar aquí colores, ojos, boca y movimiento sin tocar JS.
   ================================================================ */
.nocti-pet.personality-shift .nocti-body{animation:noctiPersonalityShift .85s ease}
@keyframes noctiPersonalityShift{0%{filter:brightness(1);transform:scale(1)}35%{filter:brightness(3) hue-rotate(120deg);transform:scale(.82) rotate(-8deg)}70%{filter:brightness(.6);transform:scale(1.13) rotate(6deg)}100%{filter:brightness(1);transform:scale(1)}}

.nocti-pet[data-personality="timid"] .nocti-body{filter:saturate(.72);transform:scale(.94)}
.nocti-pet[data-personality="timid"] .nocti-face b{transform:scale(.82)}
.nocti-pet[data-personality="timid"] .nocti-face em{width:11px;transform:translateX(-50%) rotate(6deg)}

.nocti-pet[data-personality="curious"] .nocti-face b{height:16px;transform:scale(1.12)}
.nocti-pet[data-personality="curious"] .nocti-body{box-shadow:inset 0 0 18px #16b99255,0 0 18px #16b99277}

.nocti-pet[data-personality="chaotic"] .nocti-body{animation:noctiChaoticIdle .8s steps(2,end) infinite}
.nocti-pet[data-personality="chaotic"] .nocti-face b:first-child{top:-2px}.nocti-pet[data-personality="chaotic"] .nocti-face b:nth-child(2){top:4px}
@keyframes noctiChaoticIdle{50%{transform:rotate(2deg) translateX(1px)}}

.nocti-pet[data-personality="sleepy"] .nocti-face b{height:3px;top:6px;box-shadow:none}
.nocti-pet[data-personality="sleepy"] .nocti-body{transform:rotate(3deg);filter:brightness(.82)}

.nocti-pet[data-personality="joker"] .nocti-face em{width:22px;height:9px;border-bottom-width:3px}
.nocti-pet[data-personality="joker"] .nocti-ear.r{transform:rotate(34deg)}

.nocti-pet[data-personality="guardian"] .nocti-body{border-color:#73a8ff;box-shadow:inset 0 0 18px #3675ff66,0 0 16px #3675ff66}
.nocti-pet[data-personality="guardian"] .nocti-face b{background:#d8e8ff;box-shadow:0 0 10px #6aa0ff}

.nocti-pet[data-personality="cryptic"] .nocti-body{border-color:#ba76ff;box-shadow:inset 0 0 18px #7a1cff66,0 0 18px #7a1cff66}
.nocti-pet[data-personality="cryptic"] .nocti-face b:nth-child(2){height:3px;top:6px}
.nocti-pet[data-personality="cryptic"] .nocti-face em{transform:translateX(-50%) rotate(-7deg)}

.nocti-pet[data-personality="glitch"] .nocti-body{animation:noctiGlitchPersona .34s steps(2,end) infinite;border-color:#ff497c}
.nocti-pet[data-personality="glitch"] .nocti-face b:first-child{background:#33eaff}.nocti-pet[data-personality="glitch"] .nocti-face b:nth-child(2){background:#ff396e}
@keyframes noctiGlitchPersona{0%,100%{transform:translate(0)}33%{transform:translate(2px,-1px) skewX(3deg)}66%{transform:translate(-2px,1px) skewX(-3deg)}}

.nocti-pet[data-personality="dramatic"] .nocti-body{border-color:#ffd76a;box-shadow:inset 0 0 18px #ff9d0044,0 0 18px #ff9d0066}
.nocti-pet[data-personality="dramatic"] .nocti-face em{width:13px;height:13px;border:2px solid #ffd76a;border-radius:50%;border-top-color:transparent}

.nocti-pet[data-personality="hungry"] .nocti-face em{width:18px;height:14px;border:2px solid #7effd6;border-radius:3px 3px 50% 50%;background:#020706}
.nocti-pet[data-personality="hungry"] .nocti-body{animation:noctiHungryPersona 1.3s ease-in-out infinite}
@keyframes noctiHungryPersona{50%{transform:translateY(2px) scaleX(1.035)}}

.nocti-pet[data-personality="paranoid"] .nocti-face b{height:16px;animation:noctiParanoidEyes .75s ease-in-out infinite alternate}
@keyframes noctiParanoidEyes{to{transform:translateX(4px)}}
.nocti-pet[data-personality="paranoid"] .nocti-body{filter:drop-shadow(0 0 6px #ff315c)}

.nocti-pet[data-personality="affectionate"] .nocti-body{border-color:#ff72b5;box-shadow:inset 0 0 18px #ff5cab44,0 0 18px #ff5cab66}
.nocti-pet[data-personality="affectionate"] .nocti-face em{width:19px;border-color:#ff9cc9}

.nocti-pet[data-personality="silent"] .nocti-face b{height:7px;top:3px;box-shadow:0 0 4px #5dffe0}
.nocti-pet[data-personality="silent"] .nocti-body{filter:brightness(.65) saturate(.45)}
.nocti-pet[data-personality="silent"] .nocti-feet{opacity:.35}

.nocti-pet[data-personality="explorer"] .nocti-body{border-color:#f4c657;box-shadow:inset 0 0 18px #d79b2055,0 0 15px #d79b2055}
.nocti-pet[data-personality="explorer"] .nocti-ear.l{transform:rotate(-30deg)}.nocti-pet[data-personality="explorer"] .nocti-ear.r{transform:rotate(30deg)}

/* ================================================================
   NOCTIOS V11 — PANEL Y SELECTOR DE PERSONALIDAD
   ================================================================ */
.nocti-personality-panel{position:absolute;right:80px;top:-105px;width:300px;max-height:330px;overflow:auto;padding:10px;background:#0b1113f5;border:1px solid #ff557f;border-radius:8px;box-shadow:0 16px 44px #000;pointer-events:auto}
.nocti-personality-panel header{display:flex;justify-content:space-between;align-items:center;color:#ff7898;font:700 11px monospace;margin-bottom:5px}.nocti-personality-panel header button{background:none;border:0;color:#fff;cursor:pointer}.nocti-personality-panel p{margin:0 0 8px;color:#8fa39e;font:9px/1.35 monospace}.nocti-personality-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.nocti-personality-grid button{padding:7px 4px;background:#111b1d;color:#c8fff1;border:1px solid #31514b;border-radius:5px;font:9px monospace;cursor:pointer}.nocti-personality-grid button:hover{background:#30131d;border-color:#ff557f}.nocti-personality-grid button.active{background:#432030;color:#fff;border-color:#ff7898;box-shadow:0 0 10px #ff315d66}.nocti-current-personality{padding:7px;margin-bottom:8px;background:#101a1c;border:1px solid #2f5950;border-radius:5px}.nocti-current-personality b{display:block;color:#7e958f;font:9px monospace}.nocti-current-personality strong{display:block;margin:2px 0;color:#ff7898;font:700 14px monospace}.nocti-current-personality em{display:block;color:#b8d6cf;font:9px/1.35 monospace;font-style:normal}

/* Nuevas apariencias V11 */
.nocti-pet[data-personality="grumpy"] .nocti-body{border-color:#ff744f;box-shadow:inset 0 0 18px #ff4b2444,0 0 15px #ff4b2466;transform:rotate(-2deg)}
.nocti-pet[data-personality="grumpy"] .nocti-face b{height:6px;top:4px;transform:rotate(-12deg)}.nocti-pet[data-personality="grumpy"] .nocti-face b:nth-child(2){transform:rotate(12deg)}
.nocti-pet[data-personality="grumpy"] .nocti-face em{width:18px;border-bottom:0;border-top:2px solid #ffb199;top:29px}
.nocti-pet[data-personality="brave"] .nocti-body{border-color:#4fa8ff;box-shadow:inset 0 0 18px #1d70ff55,0 0 19px #1d70ff77}
.nocti-pet[data-personality="brave"] .nocti-face b{height:15px;background:#e5f3ff;box-shadow:0 0 10px #4fa8ff}.nocti-pet[data-personality="brave"] .nocti-face em{width:20px;border-bottom-width:3px}
.nocti-pet[data-personality="artist"] .nocti-body{border-color:#ff63d5;box-shadow:inset 0 0 18px #994cff55,0 0 18px #ff4fc377;animation:noctiArtistHue 4s linear infinite}
.nocti-pet[data-personality="artist"] .nocti-face b:first-child{background:#70f7ff}.nocti-pet[data-personality="artist"] .nocti-face b:nth-child(2){background:#ff77d9}
@keyframes noctiArtistHue{to{filter:hue-rotate(360deg)}}
.nocti-pet[data-personality="mimic"] .nocti-body{border-color:#d4d4d4;box-shadow:inset 0 0 18px #fff3,0 0 14px #fff5;animation:noctiMimic 1.6s ease-in-out infinite alternate}
.nocti-pet[data-personality="mimic"] .nocti-face b{animation:noctiMimicEyes .8s steps(2,end) infinite}.nocti-pet[data-personality="mimic"] .nocti-face em{width:12px}
@keyframes noctiMimic{to{transform:translateX(2px) scaleX(-1)}}@keyframes noctiMimicEyes{50%{height:3px;top:6px}}

@media(max-width:700px){.nocti-personality-panel{right:45px;top:-130px;width:260px}.nocti-personality-grid{grid-template-columns:repeat(2,1fr)}}

/* Travesuras visuales adicionales de NOCTI V11.1 */
body.nocti-flicker #desktop{animation:noctiFlicker .16s steps(2,end) 5}
body.nocti-dim #desktop{filter:brightness(.28) contrast(1.25);transition:filter .18s}
.nocti-task-blink{animation:noctiTaskBlink .22s steps(2,end) 6!important}
@keyframes noctiFlicker{0%,100%{opacity:1}45%{opacity:.35;filter:contrast(1.8)}70%{opacity:.75}}
@keyframes noctiTaskBlink{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:.25;transform:translateY(2px)}}

/* Travesuras visuales adicionales de NOCTI V11.1 */
body.nocti-flicker #desktop{animation:noctiFlicker .16s steps(2,end) 5}
body.nocti-dim #desktop{filter:brightness(.28) contrast(1.25);transition:filter .18s}
.nocti-task-blink{animation:noctiTaskBlink .22s steps(2,end) 6!important}
@keyframes noctiFlicker{0%,100%{opacity:1}45%{opacity:.35;filter:contrast(1.8)}70%{opacity:.75}}
@keyframes noctiTaskBlink{0%,100%{opacity:1;transform:translateY(0)}50%{opacity:.25;transform:translateY(2px)}}


/* NOCTI VISIBLE — mirada al cursor y microexpresiones por personalidad */
.nocti-pet{--nocti-look-x:0px;--nocti-look-y:0px}
.nocti-pet:not(.nocti-blink) .nocti-face b{translate:var(--nocti-look-x) var(--nocti-look-y)}
.nocti-yawn .nocti-face b{height:2px!important;top:6px!important;box-shadow:none!important}
.nocti-yawn .nocti-face em{width:18px!important;height:18px!important;top:19px!important;border:2px solid currentColor!important;border-radius:50%!important;background:#010404!important;animation:noctiYawnMouth .7s ease-in-out infinite alternate!important}
.nocti-yawn .nocti-body:after{content:"z z";position:absolute;right:-24px;top:-23px;color:#9fffe9;font:700 12px monospace;animation:noctiZzz 1.2s ease-out infinite}
.nocti-wink .nocti-face b:first-child{height:2px!important;top:6px!important;box-shadow:none!important}
.nocti-smirk .nocti-face em{width:23px!important;height:10px!important;transform:translateX(-50%) rotate(-7deg)!important;border-bottom-width:3px!important}
.nocti-shiver .nocti-body{animation:noctiVisibleShiver .1s steps(2,end) 9!important}
.nocti-scan .nocti-face b{animation:noctiEyeScan .85s ease-in-out 2!important}
.nocti-heartbeat .nocti-body{animation:noctiHeartbeat .45s ease-in-out 3!important}
.nocti-heartbeat .nocti-body:after{content:"♥";position:absolute;right:-15px;top:-18px;color:#ff72b5;font:18px monospace;text-shadow:0 0 9px #ff72b5;animation:noctiHeartFloat 1.35s ease-out forwards}
.nocti-pet[data-personality="sleepy"] .nocti-face em{border-color:#89c9bc}
.nocti-pet[data-personality="joker"] .nocti-face em{transform:translateX(-50%) rotate(-4deg)}
.nocti-pet[data-personality="timid"] .nocti-ear{animation:noctiTimidEars 2.2s ease-in-out infinite alternate}
.nocti-pet[data-personality="curious"] .nocti-ear{animation:noctiCuriousEars 1.4s ease-in-out infinite alternate}
@keyframes noctiYawnMouth{to{transform:translateX(-50%) scale(.72,1.1)}}
@keyframes noctiZzz{from{opacity:0;transform:translate(0,5px)}50%{opacity:1}to{opacity:0;transform:translate(11px,-13px)}}
@keyframes noctiVisibleShiver{50%{transform:translateX(3px) skewX(-2deg)}}
@keyframes noctiEyeScan{0%,100%{translate:-3px 0}50%{translate:3px 0}}
@keyframes noctiHeartbeat{50%{transform:scale(1.08)}}
@keyframes noctiHeartFloat{to{opacity:0;transform:translate(8px,-22px) scale(1.5)}}
@keyframes noctiTimidEars{to{transform:rotate(-10deg) translateY(2px)}}
@keyframes noctiCuriousEars{to{transform:rotate(8deg) translateY(-2px)}}

/* ================================================================
   NOCTIOS — EVENTOS RAROS Y PRESENCIAS
   ================================================================ */
.nocti-foreign-frame{position:fixed;inset:0;z-index:20000;display:grid;place-items:center;background:#000;color:#ff315d;font:700 clamp(16px,3vw,38px) monospace;letter-spacing:.16em;pointer-events:none;text-shadow:0 0 12px #ff315d}
.nocti-phantom-file-flash{position:absolute;z-index:9999;display:flex;flex-direction:column;align-items:center;gap:3px;color:#d9fff4;font:10px monospace;text-shadow:0 0 8px #5fffd2;pointer-events:none}
.nocti-phantom-file-flash span{font-size:30px;color:#ff557f}
.nocti-second-cursor{position:fixed;z-index:19000;color:#ff557f;font:22px monospace;transform:rotate(-28deg);text-shadow:0 0 9px #ff315d;pointer-events:none}
.nocti-whisper{position:fixed;left:50%;bottom:74px;z-index:18000;transform:translateX(-50%);padding:7px 12px;background:#020303d9;border:1px solid #492532;color:#c9b6bd;font:11px monospace;letter-spacing:.12em;pointer-events:none;animation:noctiWhisper 2.1s ease both}
.nocti-window-watched{box-shadow:0 0 0 1px #ff315d,0 0 22px #ff315d66!important}
.nocti-false-task{color:#ff7898!important;border-color:#5b2636!important;animation:noctiFalseTask .28s steps(2,end) infinite}
.nocti-wall-shadow{position:fixed;right:-60px;bottom:42px;z-index:12000;width:45px;height:150px;background:linear-gradient(#050606,#000);border-radius:50% 50% 8px 8px;filter:blur(3px);opacity:0;pointer-events:none;box-shadow:0 0 28px #000}
.nocti-wall-shadow:before{content:"";position:absolute;left:6px;top:-32px;width:34px;height:38px;border-radius:50%;background:#030404;box-shadow:12px 11px 0 -9px #ff315d}
.nocti-wall-shadow.seen{animation:noctiWallShadow 1.7s ease both}
.nocti-look-beyond .nocti-face b{translate:8px -1px!important;transition:translate .15s!important}
.nocti-look-beyond .nocti-body{transform:rotate(5deg)!important}
.you-found-me-file{animation:noctiFoundPulse 1.1s ease-in-out infinite!important}
@keyframes noctiWhisper{0%{opacity:0;filter:blur(5px);transform:translate(-50%,8px)}20%,75%{opacity:.86;filter:none}100%{opacity:0;filter:blur(4px);transform:translate(-50%,-5px)}}
@keyframes noctiFalseTask{50%{opacity:.3}}
@keyframes noctiWallShadow{0%{right:-60px;opacity:0}25%,72%{right:8px;opacity:.68}100%{right:-60px;opacity:0}}
@keyframes noctiFoundPulse{50%{filter:drop-shadow(0 0 8px #ff315d);transform:translateY(-2px)}}

/* ================================================================
   NOCTIOS — SNAKE 1313
   ================================================================ */
.snake-app{width:min(72vw,560px);min-width:430px;padding:12px;background:linear-gradient(180deg,#07110f,#020706);color:#bfffe9;font-family:monospace;outline:none}
.snake-hud{display:grid;grid-template-columns:repeat(3,1fr) 1.3fr;gap:7px;margin-bottom:9px}
.snake-hud>div{padding:7px 9px;background:#091713;border:1px solid #214f42;border-radius:5px;text-align:center;box-shadow:inset 0 0 12px #001}
.snake-hud small{display:block;color:#67998b;font-size:8px;letter-spacing:.12em}.snake-hud strong{display:block;color:#d9fff4;font-size:17px;margin-top:2px}
.snake-hud .snake-status{display:grid;place-items:center;color:#ff6b8e;border-color:#5a2635;font-weight:700;letter-spacing:.1em}
.snake-screen{position:relative;width:min(100%,420px);aspect-ratio:1;margin:auto;border:1px solid #3d806d;background:#020807;box-shadow:0 0 26px #1effb322,inset 0 0 34px #000;overflow:hidden}
.snake-canvas{display:block;width:100%;height:100%;image-rendering:pixelated}
.snake-start-layer{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:radial-gradient(circle,#071c17dd,#010403f4);text-align:center;z-index:3}
.snake-start-layer.hidden{display:none}.snake-logo{font-size:28px;font-weight:900;letter-spacing:.12em;color:#d8fff3;text-shadow:0 0 16px #55ffc8}.snake-logo b{color:#ff315d}.snake-start-layer p{color:#79a89b;font-size:11px}
.snake-start-layer button,.snake-actions button,.snake-touch button{background:#10251f;color:#cffff0;border:1px solid #3b7d69;border-radius:4px;padding:8px 12px;font:700 10px monospace;cursor:pointer}.snake-start-layer button:hover,.snake-actions button:hover,.snake-touch button:hover{background:#17372e;box-shadow:0 0 12px #43ffc455}
.snake-footer{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:9px}.snake-footer label{font-size:9px;color:#79a89b}.snake-footer select{margin-left:5px;background:#07120f;color:#d3fff1;border:1px solid #315f52;padding:5px;font:10px monospace}.snake-actions{display:flex;gap:6px}
.snake-touch{display:none;grid-template-columns:repeat(3,44px);justify-content:center;gap:4px;margin-top:10px}.snake-touch button:nth-child(1){grid-column:2}.snake-touch button:nth-child(2){grid-column:1;grid-row:2}.snake-touch button:nth-child(3){grid-column:2;grid-row:2}.snake-touch button:nth-child(4){grid-column:3;grid-row:2}
.snake-tip{margin:8px 0 0;text-align:center;color:#486d63;font-size:8px;letter-spacing:.05em}
@media(max-width:700px){.snake-app{width:84vw;min-width:0;padding:8px}.snake-hud{grid-template-columns:repeat(2,1fr)}.snake-touch{display:grid}.snake-footer{align-items:flex-start;flex-direction:column}.snake-screen{width:100%}}


/* V11.4 — Snake compacto, escritorio responsive e historia de NOCTI */
.snake-window{width:min(430px,calc(100vw - 20px));min-height:0}.snake-window .body{padding:7px;overflow:hidden;max-height:calc(100vh - 78px)}.snake-app{width:100%;min-width:0;padding:7px}.snake-hud{gap:4px;margin-bottom:5px}.snake-hud>div{padding:4px 5px}.snake-hud small{font-size:7px}.snake-hud strong{font-size:14px}.snake-screen{width:min(100%,336px)}.snake-footer{margin-top:5px}.snake-footer select{padding:3px}.snake-start-layer button,.snake-actions button,.snake-touch button{padding:6px 9px}.snake-tip{margin-top:4px;line-height:1.2}
.icons.responsive-icons{left:8px;right:8px;top:42px;bottom:39px;transform:none;display:grid;grid-template-columns:repeat(auto-fill,minmax(72px,1fr));grid-auto-rows:82px;align-content:start;gap:5px;padding:8px;max-height:none;overflow-y:auto;overflow-x:hidden;pointer-events:auto;scrollbar-width:thin}.icons.responsive-icons .icon{position:static!important;width:100%;min-width:0;min-height:76px;font-size:10px;line-height:1.15;touch-action:manipulation;cursor:pointer}.icons.responsive-icons .icon span{font-size:31px}
.nocti-lore{font:13px/1.55 monospace;color:#cde8e1}.lore-hero{display:flex;align-items:center;gap:20px;padding:16px;border:1px solid #315d52;background:radial-gradient(circle at left,#12352e,#07100e 60%);margin-bottom:12px}.lore-hero .nocti-logo-eye{flex:0 0 auto}.lore-hero small{color:#ff6285;letter-spacing:.14em}.lore-hero h2{margin:4px 0;color:#baffed}.lore-hero p{margin:0;color:#7fa99e}.lore-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.lore-grid article{padding:12px;border:1px solid #28483f;background:#091411}.lore-grid b{display:block;color:#63ffd2;margin-bottom:5px}.lore-grid p{margin:0}.lore-grid strong{color:#ff6789}.lore-grid em{color:#ffe48a}.lore-timeline{margin:12px 0;padding:12px;border-left:3px solid #ff315d;background:#090d0d}.lore-timeline h3{margin:0 0 8px;color:#ff7895}.lore-timeline p{margin:4px 0}.lore-timeline time{display:inline-block;width:82px;color:#63ffd2}.lore-timeline code,.lore-hint code{color:#ffd86b}.nocti-lore blockquote{margin:12px 0;padding:12px 15px;border:1px dashed #5d3b4a;color:#ffb6c7;background:#16080d}.lore-status{margin-top:10px}.lore-hint{color:#78988f;font-size:11px}
@media(max-width:900px){.window{width:calc(100vw - 16px);max-width:none}.snake-window{left:8px!important;top:38px!important;width:min(390px,calc(100vw - 16px));max-height:calc(100vh - 76px)}.snake-window .body{max-height:calc(100vh - 76px)}.snake-screen{width:min(100%,280px)}.snake-touch{display:grid;grid-template-columns:repeat(3,38px);gap:3px;margin-top:5px}.snake-touch button{padding:5px}.snake-footer{flex-direction:row;align-items:center;flex-wrap:wrap}.snake-tip{display:none}}
@media(max-width:600px){.icons.responsive-icons{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:74px;gap:3px;padding:5px}.icons.responsive-icons .icon{min-height:68px;font-size:9px;padding:2px}.icons.responsive-icons .icon span{font-size:27px}.snake-window{top:36px!important}.snake-app{padding:5px}.snake-hud{grid-template-columns:repeat(4,1fr)}.snake-hud>div{padding:3px 2px}.snake-hud small{font-size:6px}.snake-hud strong{font-size:12px}.snake-screen{width:min(100%,240px)}.snake-footer{justify-content:center;gap:4px}.snake-footer label{width:100%;text-align:center}.snake-actions button{padding:5px 7px;font-size:9px}.snake-touch{grid-template-columns:repeat(3,35px)}.lore-hero{align-items:flex-start;gap:12px;padding:11px}.lore-hero .nocti-logo-eye{transform:rotate(45deg) scale(.72);transform-origin:center}.lore-grid{grid-template-columns:1fr}.lore-timeline time{width:72px}}
@media(max-width:380px){.icons.responsive-icons{grid-template-columns:repeat(3,minmax(0,1fr))}.snake-screen{width:min(100%,218px)}}

/* ========================================================================== */
/* PERSONALIDAD ENTITY-1313                                                   */
/* Efectos exclusivos, temporales y sin modificar datos del sistema.          */
/* ========================================================================== */
.nocti-pet[data-personality="entity1313"] .nocti-body{
  border-color:#ff174d;
  background:radial-gradient(circle at 50% 35%,#31000d 0 30%,#070002 68%);
  box-shadow:inset 0 0 24px #ff003c88,0 0 14px #ff003c,0 0 34px #73001f;
  animation:entity1313Body .38s steps(2,end) infinite;
}
.nocti-pet[data-personality="entity1313"] .nocti-face b{
  width:13px;height:15px;background:#fff;border-radius:1px;
  box-shadow:0 0 8px #fff,0 0 18px #ff174d;
  animation:entity1313Eyes .7s steps(2,end) infinite;
}
.nocti-pet[data-personality="entity1313"] .nocti-face em{
  width:28px;height:12px;border:0;border-bottom:4px solid #fff;border-radius:0 0 70% 70%;
  filter:drop-shadow(0 0 5px #ff174d);transform:translateX(-50%) rotate(-2deg);
}
.nocti-pet[data-personality="entity1313"] .nocti-ear{filter:drop-shadow(0 0 7px #ff174d)}
.nocti-pet[data-personality="entity1313"] .nocti-feet{opacity:.45;animation:entity1313Feet .24s steps(2,end) infinite}
.nocti-pet[data-personality="entity1313"] .nocti-bubble{border-color:#ff174d;color:#fff;background:#170006;box-shadow:0 0 18px #ff174d88;text-shadow:0 0 7px #ff174d}
.nocti-pet[data-personality="entity1313"] .nocti-body::after{
  content:'1313';position:absolute;inset:0;display:grid;place-items:center;color:#ff174d33;font:700 24px monospace;pointer-events:none;
}
.entity1313-personality #desktop::after{
  content:'';position:fixed;inset:0;pointer-events:none;z-index:8000;opacity:.11;
  background:repeating-linear-gradient(0deg,transparent 0 3px,#ff174d 4px 5px);mix-blend-mode:screen;
  animation:entity1313Scan 1.8s linear infinite;
}
.nocti-entity-afterimage{position:fixed!important;pointer-events:none!important;opacity:.5!important;filter:hue-rotate(305deg) saturate(3) contrast(1.8);animation:entity1313Afterimage .62s steps(3,end) forwards!important}
.entity1313-haunted-window{animation:entity1313Window .18s steps(2,end) 10;border-color:#ff174d!important;box-shadow:0 0 26px #ff174daa!important}
.entity1313-task{background:#3a0010!important;color:#fff!important;border-color:#ff174d!important;animation:entity1313Task .18s steps(2,end) infinite}
.entity1313-whisper{position:fixed;inset:0;z-index:12000;display:grid;place-items:center;pointer-events:none;opacity:0;color:#fff;font:700 clamp(20px,5vw,66px) monospace;letter-spacing:.16em;text-align:center;text-shadow:3px 0 #ff174d,-3px 0 #00eaff;background:#0008;transition:opacity .08s}
.entity1313-whisper.visible{opacity:1;animation:entity1313Whisper .16s steps(2,end) infinite}
.entity1313-face-lock .nocti-face{transform:scale(1.15)}
.entity1313-face-lock .nocti-face b{height:18px!important}
.entity1313-active .nocti-pet[data-personality="entity1313"]{filter:contrast(1.5) saturate(2)}
@keyframes entity1313Body{0%{transform:translate(0) skewX(0)}25%{transform:translate(-2px,1px) skewX(3deg)}50%{transform:translate(2px,-1px) skewX(-5deg)}75%{transform:translate(-1px,-2px) scaleX(1.04)}100%{transform:translate(0)}}
@keyframes entity1313Eyes{0%,40%{transform:translate(var(--nocti-look-x),var(--nocti-look-y)) scaleY(1)}41%,55%{transform:translate(0) scaleY(.05)}56%,100%{transform:translate(calc(var(--nocti-look-x) * -1),var(--nocti-look-y)) scaleY(1)}}
@keyframes entity1313Feet{50%{transform:translateX(5px);opacity:0}}
@keyframes entity1313Scan{to{transform:translateY(5px)}}
@keyframes entity1313Afterimage{0%{opacity:.66;transform:scale(1.05) skewX(8deg)}60%{opacity:.3;transform:scale(.96) skewX(-12deg)}100%{opacity:0;transform:scale(1.2)}}
@keyframes entity1313Window{50%{transform:translateX(5px) skewX(1deg);filter:invert(.12)}}
@keyframes entity1313Task{50%{opacity:.35;text-shadow:0 0 12px #fff}}
@keyframes entity1313Whisper{50%{transform:translateX(4px);filter:blur(.6px)}}
@media(max-width:700px){.entity1313-whisper{font-size:clamp(17px,8vw,36px);padding:20px}.nocti-pet[data-personality="entity1313"] .nocti-body{animation-duration:.5s}}

/* ============================================================
   NOCTI V12 — Diario de NOCTI
   Ventana visible de escritura + archivo persistente del escritorio
   ============================================================ */
.nocti-diary-icon span{color:#f1d78a;text-shadow:0 0 12px rgba(241,215,138,.65)}
.nocti-diary-icon small{display:block;max-width:92px;line-height:1.12}
.nocti-diary-window{width:min(560px,calc(100vw - 18px));height:min(410px,calc(100vh - 82px));box-shadow:0 0 0 1px rgba(241,215,138,.2),0 20px 70px rgba(0,0,0,.75)}
.nocti-diary-window .body{height:calc(100% - 34px);padding:0;overflow:hidden;background:#090b0d}
.nocti-diary-editor,.nocti-diary-view{height:100%;display:flex;flex-direction:column;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:#d7decf;background:linear-gradient(180deg,#101315,#080a0b)}
.diary-editor-bar,.diary-path{padding:10px 12px;border-bottom:1px solid #31383a;background:#15191b;color:#c8b878;font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.diary-led{display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;background:#cbb45e;box-shadow:0 0 9px #cbb45e;animation:diaryPulse 1.15s infinite}
.diary-editor-status{padding:7px 12px;color:#81908c;font-size:11px;border-bottom:1px solid #202629}
.diary-type-area,.nocti-diary-view pre{flex:1;margin:0;padding:16px;overflow:auto;white-space:pre-wrap;line-height:1.55;font-size:13px;color:#d5ddd8;background:repeating-linear-gradient(0deg,rgba(255,255,255,.012) 0,rgba(255,255,255,.012) 1px,transparent 1px,transparent 4px)}
.diary-type-area::after{content:'▋';color:#d4c06f;animation:blink .72s steps(1) infinite}
.diary-save-line,.diary-foot{display:flex;justify-content:space-between;padding:8px 12px;border-top:1px solid #303638;background:#121618;color:#73807d;font-size:11px}
.diary-save-line b{color:#d4c06f;letter-spacing:.08em}
.diary-saving{animation:diarySaveGlow .65s ease-in-out infinite alternate}
@keyframes diaryPulse{50%{opacity:.3;transform:scale(.8)}}
@keyframes diarySaveGlow{to{box-shadow:0 0 0 1px rgba(241,215,138,.55),0 0 36px rgba(241,215,138,.22)}}
@media(max-width:900px){.nocti-diary-window{width:calc(100vw - 12px)!important;height:min(72vh,430px)!important;left:6px!important;top:48px!important}.diary-type-area,.nocti-diary-view pre{font-size:12px;padding:12px}.nocti-diary-icon small{max-width:76px}}


/* Registro visible de visitas */
.visit-stats-icon span{color:#69ffd5;text-shadow:0 0 12px #25dbb1}
.visit-stats-app{font:13px/1.45 ui-monospace,SFMono-Regular,Consolas,monospace;color:#d8ebe6}
.visit-stats-app>header{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:14px;border:1px solid #2d675a;background:linear-gradient(135deg,#0a211c,#07100e)}
.visit-stats-app h2{margin:3px 0 0;color:#8affdf}.visit-stats-app header small{color:#789d94;letter-spacing:.12em}.visit-live-dot{padding:5px 8px;border:1px solid #2fffbd;color:#73ffd9;font-size:10px;box-shadow:0 0 12px #19c99a55;animation:diaryPulse 1.2s infinite}
.visit-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px;margin:12px 0}.visit-stat-grid article{padding:14px;border:1px solid #294b43;background:#081310}.visit-stat-grid span{display:block;color:#73ffd9;font-size:28px;font-weight:800}.visit-stat-grid b{display:block;margin:4px 0;color:#e6fff8}.visit-stat-grid small{color:#78958d}
.visit-detail-list{border:1px solid #273c37;background:#080d0c;padding:8px 12px}.visit-detail-list p{display:grid;grid-template-columns:145px 1fr;gap:10px;margin:7px 0}.visit-detail-list b{color:#9cc9be}.visit-detail-list span,.visit-detail-list code{overflow-wrap:anywhere;color:#d9e6e2}.visit-note{margin-top:10px;padding:10px;border-left:3px solid #d0b957;background:#181609;color:#d9cb89;font-size:11px}
@media(max-width:600px){.visit-stat-grid{grid-template-columns:1fr}.visit-detail-list p{grid-template-columns:1fr;gap:2px}}

/* Apagado realista y botón de encendido */
.shutdown-screen{position:fixed;inset:0;z-index:50000;display:grid;place-items:center;background:#000;color:#78827f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;overflow:hidden}
.shutdown-screen::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at center,rgba(31,255,194,.035),transparent 38%);pointer-events:none}
.shutdown-core{position:relative;text-align:center}.shutdown-core h1{margin:18px 0 4px;color:#394440;letter-spacing:.35em;font-size:18px}.shutdown-core p{margin:0 0 5px;color:#66716e}.shutdown-core small{color:#38413f}
.power-on-button{width:86px;height:86px;border-radius:50%;border:2px solid #31423d;background:#050706;color:#5a746d;font-size:42px;cursor:pointer;box-shadow:inset 0 0 20px #000,0 0 0 8px #030403;transition:.25s}
.power-on-button:hover,.power-on-button:focus-visible{color:#7dffe0;border-color:#56d9b9;box-shadow:inset 0 0 22px #001b14,0 0 26px #22e7b055,0 0 0 8px #030403;transform:scale(1.05)}
.power-on-button:active{transform:scale(.95)}.shutdown-screen.powering-on .power-on-button{color:#aaffea;border-color:#71ffd8;animation:powerWake .45s infinite alternate}.shutdown-screen.powering-on{animation:powerScreenWake .8s forwards}
@keyframes powerWake{to{box-shadow:inset 0 0 25px #0b6,0 0 38px #30ffc2,0 0 0 8px #06110e}}@keyframes powerScreenWake{80%{background:#00110c}100%{filter:brightness(2)}}

/* ========================================================================== */
/* Etiqueta psicodélica de actividad de NOCTI                                 */
/* ========================================================================== */
.nocti-activity-label{
  position:absolute;left:50%;top:100%;z-index:9;
  display:flex;align-items:center;justify-content:center;gap:7px;
  min-width:118px;max-width:210px;margin-top:7px;padding:6px 10px;
  border:1px solid #73ffd9;border-radius:999px;
  color:#effffb;background:linear-gradient(110deg,#061713e8,#102442e8,#25102fe8,#061713e8);
  background-size:260% 260%;font:700 10px/1.15 ui-monospace,SFMono-Regular,Consolas,monospace;
  letter-spacing:.055em;text-align:center;white-space:nowrap;
  box-shadow:0 0 5px #73ffd9,0 0 15px #43d9ff66,0 0 28px #ce4cff44,inset 0 0 12px #8bffe622;
  opacity:0;transform:translate(-50%,-5px) scale(.88);pointer-events:none;
  transition:opacity .23s ease,transform .23s ease;
  animation:noctiStatusGradient 2.4s linear infinite,noctiStatusFloat 1.8s ease-in-out infinite;
}
.nocti-activity-label.visible{opacity:1;transform:translate(-50%,0) scale(1)}
.nocti-activity-label::before{content:'';position:absolute;inset:-3px;border:1px solid currentColor;border-radius:999px;opacity:.25;filter:blur(2px)}
.nocti-activity-icon{display:inline-grid;place-items:center;min-width:19px;height:19px;border-radius:50%;background:#ffffff16;color:#9fffe7;text-shadow:0 0 8px currentColor;font-size:11px}
.nocti-activity-text{overflow:hidden;text-overflow:ellipsis}
.nocti-activity-label.write,.nocti-activity-label.save{color:#f1dc87;border-color:#f1dc87;box-shadow:0 0 7px #f1dc87,0 0 22px #d7a83f55,inset 0 0 13px #f1dc8726}
.nocti-activity-label.play{color:#d89cff;border-color:#c36dff;box-shadow:0 0 8px #c36dff,0 0 25px #7a29ff66}
.nocti-activity-label.sleep{color:#a9c7ff;border-color:#739cff;filter:saturate(.75)}
.nocti-activity-label.move,.nocti-activity-label.prank{color:#ffe67b;border-color:#ffbb35;box-shadow:0 0 8px #ffcf4f,0 0 24px #ff743b55}
.nocti-activity-label.activity-terminal{color:#8aff9e;border-color:#25e568}
.nocti-activity-label.eat{color:#ffbd91;border-color:#ff875c}
.nocti-activity-label.possessed,.nocti-activity-label.process{
  color:#fff;border-color:#ff174d;background:linear-gradient(90deg,#250006,#020000,#3b0010,#020000);
  background-size:300% 100%;text-shadow:2px 0 #ff174d,-2px 0 #00eaff;
  box-shadow:0 0 8px #ff174d,0 0 24px #ff174d99,inset 0 0 15px #ff174d33;
  animation:noctiStatusGlitch .16s steps(2,end) infinite,noctiStatusGradient .9s linear infinite;
}
.nocti-activity-label.possessed .nocti-activity-icon,.nocti-activity-label.process .nocti-activity-icon{color:#fff;background:#ff174d33}
@keyframes noctiStatusGradient{to{background-position:260% 50%}}
@keyframes noctiStatusFloat{50%{margin-top:10px}}
@keyframes noctiStatusGlitch{0%{transform:translate(-50%,0) skewX(0)}25%{transform:translate(calc(-50% - 2px),1px) skewX(3deg)}50%{transform:translate(calc(-50% + 2px),-1px) skewX(-3deg)}100%{transform:translate(-50%,0)}}
@media(max-width:600px){.nocti-activity-label{min-width:105px;max-width:165px;padding:5px 8px;font-size:9px;margin-top:5px}}

/* Corrección V12.1: capa global para que la etiqueta nunca quede recortada */
.nocti-activity-overlay{
  position:fixed!important;
  left:50%;top:50%;
  z-index:49990!important;
  margin:0!important;
  transform:translate(-50%,-5px) scale(.88);
}
.nocti-activity-overlay.visible{transform:translate(-50%,0) scale(1)}
.nocti-activity-overlay.possessed,.nocti-activity-overlay.process{
  animation:noctiStatusGlitchFixed .16s steps(2,end) infinite,noctiStatusGradient .9s linear infinite;
}
@keyframes noctiStatusGlitchFixed{
  0%{translate:0 0;filter:none}
  25%{translate:-2px 1px;filter:hue-rotate(8deg)}
  50%{translate:2px -1px;filter:hue-rotate(-8deg)}
  100%{translate:0 0;filter:none}
}


/* Etiquetas: nombres específicos para evitar colisión con .terminal de las aplicaciones. */
.nocti-activity-label.activity-terminal,.nocti-activity-label.activity-hacker{
  width:auto!important;height:auto!important;min-height:0!important;max-height:none!important;
  display:flex!important;position:fixed!important;inset:auto!important;overflow:visible!important;
  font:700 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace!important;
}
.nocti-activity-label.activity-hacker{color:#70ff9b;border-color:#00ff66;box-shadow:0 0 9px #00ff66,0 0 28px #00c85366;background:linear-gradient(90deg,#00180cdd,#06111ddd)}
.nocti-pet[data-personality="hacker"] .nocti-body{filter:drop-shadow(0 0 7px #00ff88) contrast(1.15);background:linear-gradient(145deg,#07170f,#123322)}
.nocti-pet[data-personality="hacker"] .nocti-face b{background:#72ff9d;box-shadow:0 0 8px #00ff66}
.nocti-pet[data-personality="hacker"] .nocti-bubble{border-color:#00ff78;color:#b8ffca;background:#00150ddd;box-shadow:0 0 18px #00ff5555}
.hacker-sim-terminal{height:100%;background:#020604!important;color:#69ff91!important;text-shadow:0 0 5px #00ff6677}
.nocti-hacker-output{white-space:pre-wrap;overflow:auto;height:100%;padding:12px;font:13px/1.45 ui-monospace,Consolas,monospace}
.nocti-system-flash{position:fixed;inset:0;z-index:15000;display:grid;place-items:center;pointer-events:none;background:#000b;color:#7cff9c;font:800 clamp(18px,4vw,52px) monospace;letter-spacing:.16em;opacity:0;text-shadow:3px 0 #f00,-3px 0 #0ff;transition:opacity .08s}.nocti-system-flash.visible{opacity:1;animation:noctiFlashGlitch .16s steps(2) infinite}@keyframes noctiFlashGlitch{50%{transform:translateX(4px);filter:contrast(1.8)}}
.nocti-inspected-window{outline:2px solid #00ff88!important;box-shadow:0 0 25px #00ff8877!important}.nocti-inspection-badge{position:absolute;right:8px;bottom:8px;z-index:20;background:#001a0f;color:#77ff9f;border:1px solid #00ff66;padding:3px 7px;font:700 9px monospace;box-shadow:0 0 10px #00ff6677;pointer-events:none}


/* V12.4 — Registro del observador: apariencia más inquietante */
.terror-ledger{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 10%,#36000d55,transparent 36%),#040505;padding:2px}
.terror-ledger::before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-linear-gradient(0deg,transparent 0 3px,#ff174d09 3px 4px);animation:observerScanlines 8s linear infinite}
.terror-ledger::after{content:'1313';position:absolute;right:18px;bottom:8px;color:#ff174d0d;font-size:94px;font-weight:900;transform:rotate(-8deg);pointer-events:none}
.terror-ledger>header{border-color:#7d112c;background:linear-gradient(135deg,#230009,#070303);box-shadow:inset 0 0 28px #ff174d18}
.terror-ledger h2{color:#ff7a9d;text-shadow:2px 0 #00eaff55,-2px 0 #ff174d}
.terror-ledger .visit-live-dot{border-color:#ff174d;color:#fff;background:#35000d;box-shadow:0 0 18px #ff174d;animation:observerFlicker .7s steps(2) infinite}
.terror-ledger .visit-stat-grid article{border-color:#4f1423;background:linear-gradient(145deg,#100407,#050505);box-shadow:inset 0 0 18px #ff174d0c}
.terror-ledger .visit-stat-grid span{color:#ff517d;text-shadow:0 0 14px #ff174d}
.terror-ledger .visit-detail-list{border-color:#4f1423;background:#070304}
.terror-ledger .visit-detail-list b{color:#ff7698}.terror-ledger .visit-detail-list code{color:#8fffe9;text-shadow:0 0 8px #00eaff88}
.terror-warning{margin:10px 0;padding:9px 12px;border:1px solid #ff174d;background:#2b000b;color:#fff;letter-spacing:.13em;text-align:center;font-size:11px;box-shadow:0 0 22px #ff174d44;animation:observerFlicker 1.4s steps(2) infinite}
.observer-scan{position:relative;display:flex;justify-content:space-between;gap:8px;margin:10px 0;padding:12px;border:1px solid #174d42;background:#020a08;color:#82ffe2;overflow:hidden}
.observer-scan i{position:absolute;left:0;right:0;height:2px;background:#56ffcf;box-shadow:0 0 12px #56ffcf;animation:observerBeam 2.3s linear infinite}.observer-scan code,.observer-scan span{position:relative;z-index:1}
.observer-log{position:relative;margin:10px 0 0;padding:12px;border:1px solid #3d101c;background:#030303;color:#c8b8bd;line-height:1.55;white-space:pre-wrap}.observer-log::after{content:'▋';color:#ff174d;animation:blink .65s steps(1) infinite}
.terror-ledger .visit-note{border-left-color:#ff174d;background:#1b0309;color:#db9daf}
@keyframes observerBeam{from{top:-2px}to{top:calc(100% + 2px)}}
@keyframes observerScanlines{to{background-position:0 40px}}
@keyframes observerFlicker{0%,100%{opacity:1}47%{opacity:.75}50%{opacity:.2}53%{opacity:1}}


/* V12.8 — Señales de PROCESS-1313 y manifestaciones de POSEÍDO */
.nocti-activity-overlay.orphan-process{
  position:fixed!important;transform:none!important;max-width:min(340px,calc(100vw - 36px));
  border-color:#65111b!important;background:linear-gradient(110deg,rgba(8,0,3,.96),rgba(46,0,9,.94))!important;
  color:#ff9ba9!important;box-shadow:0 0 22px #a0002a88,inset 0 0 15px #290008!important;
  font-size:11px!important;letter-spacing:1.3px;opacity:.86;
}
.nocti-activity-overlay.orphan-process .nocti-activity-text:before{content:'PID ? // ';color:#7b5360}
.entity-ritual-layer{position:fixed;inset:0;z-index:999999;pointer-events:none;background:radial-gradient(circle at center,transparent 8%,rgba(24,0,3,.36) 70%,rgba(0,0,0,.9));opacity:0;transition:opacity .18s;overflow:hidden}
.entity-ritual-layer.visible{opacity:1;animation:entityRitualPulse .16s steps(2) infinite}
.entity-ritual-layer.fading{opacity:0;transition:opacity 1.15s}
.entity-ritual-layer>b{position:absolute;left:50%;top:48%;transform:translate(-50%,-50%);width:90%;text-align:center;font:900 clamp(18px,4vw,58px)/1.1 monospace;letter-spacing:.16em;color:#d7c8c8;text-shadow:0 0 7px #000,3px 2px #5b0000,-3px -2px #160000;mix-blend-mode:screen}
.entity-blood-cross{position:absolute;width:9px;height:48px;background:linear-gradient(#3b0006,#b3071b 45%,#430008);transform:rotate(var(--r));filter:drop-shadow(0 0 6px #8d0018);animation:entityCrossIn .45s var(--d) both,entityCrossDrip 1.1s calc(var(--d) + .4s) infinite alternate}
.entity-blood-cross:before{content:'';position:absolute;width:35px;height:9px;left:-13px;top:13px;background:inherit}
.entity-blood-cross:after{content:'';position:absolute;width:4px;height:18px;left:3px;top:44px;border-radius:0 0 5px 5px;background:#820014;box-shadow:0 12px 0 -1px #5f000d}
@keyframes entityCrossIn{from{opacity:0;transform:rotate(var(--r)) scale(3)}to{opacity:.88;transform:rotate(var(--r)) scale(1)}}
@keyframes entityCrossDrip{to{filter:drop-shadow(0 0 12px #e5002e);transform:rotate(var(--r)) translateY(4px)}}
@keyframes entityRitualPulse{50%{filter:contrast(1.55) brightness(.72) hue-rotate(-12deg)}}
.entity-blackout{position:fixed;inset:0;z-index:1000000;pointer-events:none;background:#000;color:#a90018;display:grid;place-content:center;text-align:center;opacity:0;font-family:monospace;letter-spacing:.3em}
.entity-blackout.visible{opacity:1;animation:blackoutFlicker .11s steps(2) infinite}.entity-blackout span{font-size:clamp(34px,10vw,120px);font-weight:900;text-shadow:0 0 18px #820015}.entity-blackout small{margin-top:18px;color:#777;font-size:12px}
@keyframes blackoutFlicker{50%{background:#090000;transform:translateX(2px)}}
.entity-wall-crawl{position:fixed;z-index:999998;color:#e5002e;font-size:54px;text-shadow:0 0 15px #f00;pointer-events:none;transition:left .12s,top .12s,transform .12s;filter:blur(.3px)}

/* NoctiOS V14 — manifestaciones propias de personalidad */
.nocti-stage-curtain{position:fixed;inset:0;z-index:9992;display:grid;place-content:center;text-align:center;background:linear-gradient(90deg,#12000a 0 18%,rgba(0,0,0,.92) 48%,#12000a 82%);color:#f7d8df;opacity:0;transform:scaleX(.15);transition:.65s;pointer-events:none;font-family:Georgia,serif;text-shadow:0 0 20px #b00030}.nocti-stage-curtain.visible{opacity:1;transform:scaleX(1)}.nocti-stage-curtain b{font-size:clamp(42px,10vw,120px);letter-spacing:.15em}.nocti-stage-curtain span{font-size:clamp(16px,2vw,28px)}
.nocti-guard-badge{position:fixed;right:22px;top:55px;z-index:9991;padding:10px 15px;border:1px solid #79d6ff;background:#04151ccc;color:#9ee7ff;box-shadow:0 0 18px #1ab4ff88;font:700 12px monospace;pointer-events:none}.nocti-guard-shield #desktop{box-shadow:inset 0 0 45px #19bfff44}
.nocti-silent-mark{position:fixed;z-index:9990;color:#fff;font-size:40px;opacity:.7;text-shadow:0 0 20px #fff;animation:noctiSilentPulse 1.4s infinite;pointer-events:none}@keyframes noctiSilentPulse{50%{opacity:.08;transform:scale(.72)}}
.nocti-route-beacon{position:fixed;z-index:9989;padding:7px 10px;border-left:2px solid #8dffb3;background:#00170ddd;color:#8dffb3;font:12px monospace;box-shadow:0 0 18px #00ff7777;pointer-events:none}
.nocti-glitch-burst #desktop{animation:noctiBurst .12s steps(2) 10}@keyframes noctiBurst{50%{filter:hue-rotate(90deg) contrast(1.7);transform:translate(4px,-2px)}}
.nocti-gallery #desktop{filter:saturate(1.45) contrast(1.08)}.nocti-nibbled{filter:grayscale(1) brightness(.65)}.nocti-deep-sleep{filter:brightness(.55);animation:noctiSleepFloat 2.3s ease-in-out infinite}@keyframes noctiSleepFloat{50%{transform:translateY(6px) rotate(-2deg)}}

/* V15: Protocolo de contención */
.containment-icon span:first-child{color:#ff4b4b;text-shadow:0 0 10px #ff1f1f}.containment-icon.neutralized span:first-child{color:#7cff8b}.containment-icon .containment-label{font:inherit;color:inherit;text-shadow:none}.nocti-containment-cage{position:fixed;right:18px;bottom:58px;width:154px;z-index:12000;display:none;filter:drop-shadow(0 12px 18px #000)}.nocti-containment-cage.active{display:block;animation:cageIn .45s ease}.nocti-containment-cage.attention{animation:cageShake .16s linear 5}.containment-sign{font:700 9px/1.2 monospace;text-align:center;color:#ff6868;background:#12090b;border:1px solid #7b222c;padding:5px}.containment-cell{height:142px;position:relative;overflow:visible;background:radial-gradient(circle at 50% 65%,#2a1b21,#08090d 70%);border:2px solid #4c2027;border-top:0}.containment-bars{position:absolute;inset:0;z-index:3;background:repeating-linear-gradient(90deg,transparent 0 17px,#667078 18px 22px,transparent 23px 34px),linear-gradient(transparent 12%,#6d7479 13% 17%,transparent 18% 80%,#6d7479 81% 85%,transparent 86%);box-shadow:inset 0 0 22px #000;pointer-events:none}.containment-nocti{position:absolute;left:42px;bottom:18px;width:68px;height:74px;border-radius:44% 44% 38% 38%;background:radial-gradient(circle at 50% 30%,#2d313d,#11131b 65%);border:2px solid #626b7e;z-index:2;transition:.25s;animation:containedBreath 2.4s ease-in-out infinite}.containment-eye{position:absolute;top:25px;width:10px;height:9px;background:#ff5757;border-radius:50%;box-shadow:0 0 8px #ff1e1e}.containment-eye.left{left:15px}.containment-eye.right{right:15px}.containment-mouth{position:absolute;left:25px;top:48px;width:17px;height:8px;border-top:2px solid #b9c0d0;border-radius:50%}.containment-nocti[data-face="angry"]{transform:translateY(-2px) rotate(-2deg)}.containment-nocti[data-face="angry"] .containment-eye.left{transform:rotate(18deg)}.containment-nocti[data-face="angry"] .containment-eye.right{transform:rotate(-18deg)}.containment-nocti[data-face="angry"] .containment-mouth{border-top:0;border-bottom:2px solid #ff7777}.containment-phrase{position:absolute;right:108px;top:18px;min-width:94px;max-width:150px;padding:7px 9px;color:#ddd;background:#08090deF;border:1px solid #6d3540;border-radius:7px;font:700 11px monospace;opacity:0;transform:translateX(8px);transition:.25s;pointer-events:none;z-index:5}.containment-phrase.show{opacity:1;transform:none}.containment-release{width:100%;padding:7px;background:#210e12;color:#ff8d96;border:1px solid #7c2a35;font:700 10px monospace;cursor:pointer}.containment-release:hover{background:#42151c}.nocti-neutralized .nocti-status-float,.nocti-neutralized .entity1313-whisper,.nocti-neutralized .nocti-entity-afterimage{display:none!important}@keyframes cageIn{from{opacity:0;transform:translateY(24px) scale(.85)}to{opacity:1;transform:none}}@keyframes cageShake{50%{transform:translateX(4px)}}@keyframes containedBreath{50%{transform:translateY(3px) scale(.98)}}

/* V15: ajuste integral para móviles */
@media(max-width:700px){
  .panel.top{height:34px;font-size:10px}.panel.bottom{height:38px;padding:3px 5px}.bottom button,.panel button{font-size:10px;padding:5px 7px}.tasks button{max-width:92px;font-size:9px}.icons{top:39px;bottom:42px;gap:5px;padding:7px;grid-template-columns:repeat(auto-fill,64px)}.icon{width:62px;min-height:58px;font-size:9px;line-height:1.05;padding:4px}.icon>span:first-child{font-size:23px}.window{width:min(94vw,620px)!important;max-height:78vh;left:3vw!important;top:45px!important}.window .titlebar{height:28px;font-size:10px}.window .body{font-size:11px;max-height:calc(78vh - 28px);overflow:auto}.menu{width:min(90vw,320px);font-size:11px}.nocti-pet,#noctiPet{transform:scale(.78);transform-origin:bottom right;max-width:150px}.nocti-containment-cage{right:7px;bottom:43px;transform:scale(.82);transform-origin:bottom right}.nocti-bubble{max-width:150px;font-size:10px}.boot-logo{transform:scale(.82)}
}
@media(max-width:420px){.icons{grid-template-columns:repeat(auto-fill,56px)}.icon{width:54px;min-height:52px;font-size:8px}.icon>span:first-child{font-size:20px}.window{width:96vw!important;left:2vw!important}.nocti-pet,#noctiPet{transform:scale(.68)}.nocti-containment-cage{transform:scale(.74)}#clock{font-size:9px}.bottom-power{width:28px}}

/* Ventanas temporales controladas por NOCTI */
.window.nocti-managed-window [data-close].nocti-close-locked{opacity:.28;cursor:not-allowed;filter:grayscale(1);pointer-events:auto}
.window.nocti-managed-window [data-close].nocti-close-locked::after{content:' ';position:absolute;inset:0}
.window.nocti-close-denied{animation:noctiCloseDenied .13s linear 4;box-shadow:0 0 0 1px #ff5252,0 0 20px #ff1f1f88!important}
@keyframes noctiCloseDenied{50%{transform:translateX(4px)}}
.nocti-neutralized #noctiActivityOverlay{display:none!important}

/* V16.1 — corrección móvil de iconos y etiquetas largas */
@media (max-width:700px){
  .icons.responsive-icons{
    left:4px;right:4px;top:38px;bottom:41px;
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:64px;gap:2px;padding:4px;
  }
  .icons.responsive-icons .icon{
    width:100%!important;min-width:0!important;min-height:60px!important;
    padding:2px!important;font-size:8px!important;line-height:1.05!important;
    overflow:hidden;overflow-wrap:anywhere;word-break:normal;
  }
  .icons.responsive-icons .icon > span:first-child{
    display:block;font-size:21px!important;line-height:24px!important;margin:0 0 1px!important;
  }
  .icons.responsive-icons .icon .containment-label{
    display:block!important;font-size:7px!important;line-height:1.05!important;
    font-weight:600!important;letter-spacing:-.02em!important;
    max-width:100%;white-space:normal;overflow-wrap:anywhere;
  }
  .panel.top{height:32px!important}.panel.bottom{height:36px!important}
  .menu-head,.quick,#bottomMenu,.bottom-power{height:27px!important;padding:0 6px!important;font-size:9px!important}
  .task{height:25px!important;max-width:76px!important;font-size:8px!important;margin-left:2px!important}
}
@media (max-width:480px){
  .icons.responsive-icons{
    grid-template-columns:repeat(4,minmax(0,1fr));
    grid-auto-rows:57px;gap:1px;padding:3px;
  }
  .icons.responsive-icons .icon{min-height:54px!important;font-size:7px!important;padding:1px!important}
  .icons.responsive-icons .icon > span:first-child{font-size:18px!important;line-height:20px!important}
  .icons.responsive-icons .icon .containment-label{font-size:6.3px!important;line-height:1!important}
  .nocti-pet,#noctiPet{transform:scale(.61)!important}
  .nocti-containment-cage{transform:scale(.68)!important;right:3px!important;bottom:38px!important}
}
@media (max-width:360px){
  .icons.responsive-icons{grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:53px}
  .icons.responsive-icons .icon{min-height:50px!important;font-size:6.5px!important}
  .icons.responsive-icons .icon > span:first-child{font-size:17px!important;line-height:18px!important}
  .icons.responsive-icons .icon .containment-label{font-size:5.8px!important;letter-spacing:-.04em!important}
  .menu-head:nth-of-type(n+2),.quick{display:none!important}
}


/* V16.2 — corrección definitiva del nombre de Protocolo 1313 en móvil.
   La etiqueta ya no es un <span>, por lo que jamás hereda el tamaño del símbolo. */
.containment-icon{
  display:flex!important;
  flex-direction:column!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:2px!important;
}
.containment-icon .containment-symbol{
  display:block!important;
  flex:0 0 auto!important;
}
.containment-icon .containment-label{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  margin:0!important;
  padding:0 1px!important;
  color:inherit!important;
  font-family:Inter,Ubuntu,Arial,sans-serif!important;
  font-style:normal!important;
  font-weight:600!important;
  text-align:center!important;
  text-shadow:1px 2px 3px #000!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:normal!important;
  hyphens:auto!important;
}
@media(max-width:700px){
  [data-nocti-containment].containment-icon{
    min-width:0!important;
    width:100%!important;
    min-height:60px!important;
    padding:2px 1px!important;
    overflow:hidden!important;
  }
  [data-nocti-containment].containment-icon .containment-symbol{
    font-size:20px!important;
    line-height:22px!important;
    margin:0!important;
  }
  [data-nocti-containment].containment-icon .containment-label{
    font-size:7px!important;
    line-height:1.05!important;
    letter-spacing:-.025em!important;
  }
}
@media(max-width:480px){
  [data-nocti-containment].containment-icon{
    min-height:54px!important;
  }
  [data-nocti-containment].containment-icon .containment-symbol{
    font-size:18px!important;
    line-height:19px!important;
  }
  [data-nocti-containment].containment-icon .containment-label{
    font-size:6.2px!important;
    line-height:1!important;
    letter-spacing:-.04em!important;
  }
}
@media(max-width:360px){
  [data-nocti-containment].containment-icon .containment-symbol{
    font-size:16px!important;
    line-height:17px!important;
  }
  [data-nocti-containment].containment-icon .containment-label{
    font-size:5.5px!important;
    line-height:.98!important;
  }
}


/* ================================================================
   NOCTIOS V21.4 — PERSONALIDAD ENAMORADO Y NOTAS INTERACTIVAS
   ================================================================ */
.nocti-pet[data-personality="romantic"]{filter:drop-shadow(0 0 10px rgba(255,82,166,.65)) drop-shadow(0 0 20px rgba(180,77,255,.35))}
.nocti-pet[data-personality="romantic"] .nocti-body{background:radial-gradient(circle at 48% 28%,#fff4fb 0 5%,#ff9fd0 7%,#d64fa0 30%,#6f246f 68%,#210d32 100%);border-color:#ff8fc9;box-shadow:inset 0 0 20px rgba(255,255,255,.28),0 0 15px #ff4fab,0 0 30px rgba(164,72,255,.5);animation:noctiRomanticFloat 2.3s ease-in-out infinite}
.nocti-pet[data-personality="romantic"] .nocti-ear{background:linear-gradient(145deg,#ff9fce,#6c287b);border-color:#ffc0df;filter:drop-shadow(0 0 6px #ff5cac)}
.nocti-pet[data-personality="romantic"] .nocti-face b{width:15px;height:14px;top:0;border-radius:0;background:#ffedf7;box-shadow:0 0 10px #fff,0 0 16px #ff4f9f;transform:rotate(45deg)}
.nocti-pet[data-personality="romantic"] .nocti-face b:before,.nocti-pet[data-personality="romantic"] .nocti-face b:after{content:"";position:absolute;width:15px;height:14px;border-radius:50%;background:inherit}
.nocti-pet[data-personality="romantic"] .nocti-face b:before{left:-7px;top:0}.nocti-pet[data-personality="romantic"] .nocti-face b:after{left:0;top:-7px}
.nocti-pet[data-personality="romantic"] .nocti-face b:first-child{left:5px}.nocti-pet[data-personality="romantic"] .nocti-face b:nth-child(2){right:5px}
.nocti-pet[data-personality="romantic"] .nocti-face em{top:28px;width:21px;height:9px;border:0;border-bottom:3px solid #ffd4ea;border-radius:50%;filter:drop-shadow(0 0 4px #ff83bc)}
.nocti-pet[data-personality="romantic"] .nocti-feet{color:#ff9dce;text-shadow:0 0 8px #ff4eaa}
.nocti-pet[data-personality="romantic"] .nocti-bubble{background:linear-gradient(145deg,#fff5fb,#ffd8ed);border-color:#ff69b4;color:#4a123a;box-shadow:0 8px 24px #000,0 0 20px rgba(255,69,160,.45)}
.nocti-pet[data-personality="romantic"] .nocti-menu,.nocti-pet[data-personality="romantic"] .nocti-status,.nocti-pet[data-personality="romantic"] .nocti-personality-panel{border-color:#ff75bb;box-shadow:0 14px 38px #000,0 0 18px rgba(255,79,171,.35)}
@keyframes noctiRomanticFloat{50%{transform:translateY(-3px) scale(1.025);filter:saturate(1.18)}}

.nocti-love-note-trigger{position:fixed;z-index:10020;width:66px;height:66px;border:1px solid #ffd0e8;border-radius:50%;display:grid;place-items:center;background:radial-gradient(circle at 35% 28%,#fff 0 6%,#ff9dcc 22%,#e13991 58%,#7a1c68 100%);color:#fff;box-shadow:0 0 0 5px rgba(255,108,180,.13),0 0 24px #ff4ca6,0 12px 30px rgba(0,0,0,.65);cursor:pointer;pointer-events:auto!important;opacity:0;transform:scale(.4) rotate(-18deg);transition:opacity .28s,transform .28s,filter .2s;animation:noctiLoveNotePulse 1.2s ease-in-out infinite}
.nocti-love-note-trigger.visible{opacity:1;transform:scale(1) rotate(0)}.nocti-love-note-trigger:hover,.nocti-love-note-trigger:focus-visible{filter:brightness(1.2);transform:scale(1.12) rotate(4deg);outline:2px solid #fff;outline-offset:3px}.nocti-love-note-trigger.closing{opacity:0;transform:scale(.25) rotate(20deg)}
.nocti-love-note-trigger span{font:700 32px/1 Georgia,serif;text-shadow:0 0 10px #fff}.nocti-love-note-trigger small{position:absolute;bottom:-17px;padding:2px 7px;border-radius:8px;background:#250d28;color:#ffd5eb;font:10px monospace;white-space:nowrap}
@keyframes noctiLoveNotePulse{50%{box-shadow:0 0 0 10px rgba(255,108,180,0),0 0 35px #ff4ca6,0 14px 34px rgba(0,0,0,.7)}}
.nocti-love-note-card{position:fixed;left:50%;top:50%;z-index:10040;width:min(360px,88vw);padding:28px 26px 22px;border:1px solid #ff9ccc;border-radius:18px;background:linear-gradient(145deg,#fff8fc,#ffd8eb 65%,#f5b5dc);color:#461334;text-align:center;box-shadow:0 25px 70px rgba(0,0,0,.75),0 0 35px rgba(255,72,159,.55);opacity:0;transform:translate(-50%,-45%) scale(.72) rotate(-2deg);transition:.3s ease;pointer-events:auto}
.nocti-love-note-card.visible{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0)}.nocti-love-note-card>button{position:absolute;right:9px;top:8px;width:29px;height:29px;border:0;border-radius:50%;background:#781d5c;color:#fff;cursor:pointer}.nocti-love-note-seal{width:58px;height:58px;margin:-54px auto 12px;display:grid;place-items:center;border-radius:50%;background:linear-gradient(145deg,#ff79b8,#9a2d84);color:#fff;font:32px Georgia;box-shadow:0 0 18px #ff5bac}.nocti-love-note-card b{display:block;color:#8d266a;letter-spacing:.13em}.nocti-love-note-card p{font:16px/1.55 Georgia,serif}.nocti-love-note-card small{color:#935879;font:10px monospace}
.nocti-heart-storm{position:fixed;inset:0;z-index:10010;overflow:hidden;pointer-events:none}.nocti-heart-storm i{position:absolute;left:var(--x);bottom:-60px;font-style:normal;font-size:var(--size);color:#ff78b8;text-shadow:0 0 8px #fff,0 0 18px #ff3f9a;animation:noctiHeartRain var(--duration) ease-in var(--delay) forwards}
@keyframes noctiHeartRain{0%{opacity:0;transform:translate(0,30px) rotate(0) scale(.55)}15%{opacity:1}100%{opacity:0;transform:translate(var(--drift),-115vh) rotate(620deg) scale(1.2)}}
.nocti-romantic-flash:after{content:"";position:fixed;inset:0;z-index:10000;pointer-events:none;background:radial-gradient(circle at center,rgba(255,180,220,.16),transparent 55%);animation:noctiRomanticScreen 2.2s ease forwards}
@keyframes noctiRomanticScreen{50%{background-color:rgba(255,44,140,.08)}to{opacity:0}}
.nocti-love-orbit{position:absolute;inset:-20px;z-index:-1;pointer-events:none;animation:noctiLoveOrbitSpin 3.6s linear infinite}.nocti-love-orbit i{position:absolute;color:#ff74b7;font-style:normal;text-shadow:0 0 8px #fff,0 0 13px #ff3997}.nocti-love-orbit i:nth-child(1){left:4px;top:4px}.nocti-love-orbit i:nth-child(2){right:0;top:22px}.nocti-love-orbit i:nth-child(3){right:12px;bottom:0}.nocti-love-orbit i:nth-child(4){left:0;bottom:20px}@keyframes noctiLoveOrbitSpin{to{transform:rotate(360deg)}}
@media(max-width:700px){.nocti-love-note-trigger{width:58px;height:58px}.nocti-love-note-trigger span{font-size:28px}.nocti-love-note-card{width:min(330px,90vw)}}

/* ================================================================
   NOCTIOS V21.4.2 — REFINAMIENTO VISUAL PERSONALIDAD ENAMORADO
   ================================================================ */
.nocti-pet[data-personality="romantic"] .nocti-face{
  inset:25px 11px 13px;
}
.nocti-pet[data-personality="romantic"] .nocti-face b{
  width:8px;
  height:8px;
  top:4px;
  border-radius:1px;
  background:linear-gradient(145deg,#fff8fd 0 18%,#ffb8dc 22%,#ff5aa9 62%,#d62d86 100%);
  box-shadow:0 0 4px rgba(255,255,255,.95),0 0 8px rgba(255,75,164,.82);
  transform:rotate(45deg);
  transform-origin:center;
  animation:noctiRomanticEyeBeat 3.6s ease-in-out infinite;
}
.nocti-pet[data-personality="romantic"] .nocti-face b:before,
.nocti-pet[data-personality="romantic"] .nocti-face b:after{
  width:8px;
  height:8px;
  background:inherit;
  box-shadow:none;
}
.nocti-pet[data-personality="romantic"] .nocti-face b:before{left:-4px;top:0}
.nocti-pet[data-personality="romantic"] .nocti-face b:after{left:0;top:-4px}
.nocti-pet[data-personality="romantic"] .nocti-face b:first-child{
  left:5px;
  transform:rotate(35deg);
}
.nocti-pet[data-personality="romantic"] .nocti-face b:nth-child(2){
  right:5px;
  transform:rotate(55deg);
  animation-delay:.18s;
}
.nocti-pet[data-personality="romantic"] .nocti-face:before,
.nocti-pet[data-personality="romantic"] .nocti-face:after{
  content:"";
  position:absolute;
  top:22px;
  width:9px;
  height:4px;
  border-radius:50%;
  background:radial-gradient(ellipse at center,rgba(255,178,213,.9),rgba(255,91,162,.28) 70%,transparent 74%);
  filter:blur(.1px);
  opacity:.82;
  pointer-events:none;
}
.nocti-pet[data-personality="romantic"] .nocti-face:before{left:0}
.nocti-pet[data-personality="romantic"] .nocti-face:after{right:0}
.nocti-pet[data-personality="romantic"] .nocti-face em{
  top:27px;
  width:20px;
  height:8px;
  border:0;
  border-bottom:3px solid #ffe4f1;
  border-radius:50%;
  filter:drop-shadow(0 0 3px rgba(255,107,180,.9));
}
.nocti-pet[data-personality="romantic"] .nocti-body:hover .nocti-face b{
  animation-duration:.55s;
}
.nocti-pet[data-personality="romantic"] .nocti-body:before{
  content:"♥";
  position:absolute;
  right:-8px;
  top:-14px;
  z-index:3;
  color:#ff78ba;
  font:700 13px/1 Georgia,serif;
  text-shadow:0 0 5px #fff,0 0 10px #ff4ca6;
  opacity:0;
  transform:translateY(4px) scale(.65) rotate(-10deg);
  pointer-events:none;
}
.nocti-pet[data-personality="romantic"] .nocti-body:hover:before{
  animation:noctiRomanticHoverHeart 1.15s ease-out forwards;
}
.nocti-pet[data-personality="romantic"] .nocti-body:hover{
  filter:saturate(1.08) brightness(1.04);
}
@keyframes noctiRomanticEyeBeat{
  0%,84%,100%{scale:1}
  89%{scale:1.08}
  94%{scale:.98}
}
@keyframes noctiRomanticHoverHeart{
  0%{opacity:0;transform:translateY(5px) scale(.55) rotate(-12deg)}
  22%{opacity:1}
  70%{opacity:.95;transform:translateY(-9px) scale(1) rotate(8deg)}
  100%{opacity:0;transform:translateY(-18px) scale(.82) rotate(15deg)}
}
@media(max-width:700px){
  .nocti-pet[data-personality="romantic"] .nocti-face b{width:7px;height:7px}
  .nocti-pet[data-personality="romantic"] .nocti-face b:before,
  .nocti-pet[data-personality="romantic"] .nocti-face b:after{width:7px;height:7px}
  .nocti-pet[data-personality="romantic"] .nocti-face b:before{left:-3.5px}
  .nocti-pet[data-personality="romantic"] .nocti-face b:after{top:-3.5px}
  .nocti-pet[data-personality="romantic"] .nocti-face b:first-child{left:6px}
  .nocti-pet[data-personality="romantic"] .nocti-face b:nth-child(2){right:6px}
}


/* NOCTI LIFE ENGINE 1.0 — bienestar, autonomía y autocuidado */
.nocti-wellbeing{margin:8px 0 10px;padding:8px 9px;border:1px solid rgba(32,227,255,.26);background:rgba(4,12,16,.72);display:flex;gap:4px;flex-direction:column}
.nocti-wellbeing b{color:#8ff7ff;font-size:12px}.nocti-wellbeing b[data-condition="need"]{color:#ffd56a}.nocti-wellbeing b[data-condition="warning"]{color:#ff91a6}.nocti-wellbeing b[data-condition="good"]{color:#70ff9d}.nocti-wellbeing span{color:#829399;font:10px/1.3 monospace}
.nocti-pet.nocti-self-care .nocti-body{animation:noctiSelfCarePulse .55s ease-in-out 3;filter:drop-shadow(0 0 12px rgba(66,255,117,.45))}
.nocti-pet[data-mood="hungry"] .nocti-body{animation:noctiNeedNudge 1.5s ease-in-out infinite}
.nocti-pet[data-mood="lonely"] .nocti-body{filter:saturate(.72) brightness(.86)}
.nocti-pet[data-mood="feed"] .nocti-body{filter:drop-shadow(0 0 10px rgba(255,213,106,.42))}
@keyframes noctiSelfCarePulse{0%,100%{transform:scale(1)}50%{transform:scale(1.08) translateY(-3px)}}
@keyframes noctiNeedNudge{0%,100%{transform:translateX(0)}45%{transform:translateX(-2px)}55%{transform:translateX(2px)}}

/* NOCTI LIFE ENGINE 22.5.0: acciones serializadas y respuesta visual ligera. */
.nocti-pet.nocti-action-busy .nocti-body{filter:brightness(1.08);}
.nocti-pet .nocti-menu button:disabled{opacity:.48;cursor:wait;pointer-events:none;}
.nocti-pet.nocti-action-busy .nocti-menu{pointer-events:none;}


/* NOCTI 22.6.0: acciones por fases, sin cambiar la distribución existente */
.nocti-pet[data-action] .nocti-body{transition:filter .25s,transform .25s;}
.nocti-pet[data-action="feed"] .nocti-body,.nocti-pet[data-action="self_feed"] .nocti-body{animation:noctiEatPhase .55s ease-in-out infinite alternate;}
.nocti-pet[data-action="play"] .nocti-body,.nocti-pet[data-action="self_play"] .nocti-body{animation:noctiPlayPhase .42s ease-in-out infinite alternate;}
.nocti-pet[data-action="sleep"] .nocti-body,.nocti-pet[data-action="self_sleep"] .nocti-body{animation:noctiSleepPhase 1.5s ease-in-out infinite;}
.nocti-pet[data-action="listen"] .nocti-face b,.nocti-pet[data-action="talk"] .nocti-face b{transform:scale(1.12);}
.nocti-pet[data-phase="waking"] .nocti-body{animation:noctiWakePhase .35s ease-in-out 3;}
@keyframes noctiEatPhase{to{transform:translateY(2px) scale(.96,1.03)}}
@keyframes noctiPlayPhase{to{transform:translateY(-5px) rotate(2deg)}}
@keyframes noctiSleepPhase{50%{transform:translateY(3px) scale(.98);filter:brightness(.78)}}
@keyframes noctiWakePhase{50%{transform:translateY(-4px) scale(1.04)}}
