/* Donelasci — Neural Shell v3 */
:root{--a1:rgb(34,211,238);--a2:rgb(129,140,248);--a3:rgb(244,114,182);--a1rgb:34,211,238;--a2rgb:129,140,248;--bg:#04050c;--tx:#e2e8f5;--mut:#8590ad;--line:rgba(255,255,255,.08);--f:ui-monospace,'SF Mono','JetBrains Mono','Cascadia Code',Menlo,Consolas,monospace;--ease:cubic-bezier(.2,.8,.2,1)}
@property --ang{syntax:'<angle>';inherits:false;initial-value:0deg}
html{background:var(--bg)!important;scroll-behavior:smooth;scrollbar-color:rgba(var(--a1rgb),.5) transparent}
body{background:transparent!important;color:var(--tx)!important;font-family:var(--f)!important;padding-top:72px;position:relative;-webkit-font-smoothing:antialiased}
::selection{background:var(--a1);color:#04050c}

/* layers */
#t-gl{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;transition:opacity 1s}
html.t-nogl body{background:radial-gradient(60% 50% at 20% 20%,rgba(var(--a1rgb),.18),transparent 70%),radial-gradient(50% 50% at 85% 30%,rgba(var(--a2rgb),.16),transparent 70%),var(--bg)!important;background-attachment:fixed!important}
#t-grain{position:fixed;inset:-50%;z-index:9980;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");animation:t-grain .9s steps(5) infinite}
@keyframes t-grain{0%{transform:translate(0,0)}20%{transform:translate(-4%,3%)}40%{transform:translate(3%,-4%)}60%{transform:translate(-2%,5%)}80%{transform:translate(4%,2%)}100%{transform:translate(0,0)}}
main{position:relative;z-index:2}
section,.background-dark{background:transparent!important;color:var(--tx)!important;border:0!important}

/* section = process window */
.t-hud{position:relative;background:linear-gradient(180deg,rgba(10,13,28,.62),rgba(6,8,18,.5))!important;-webkit-backdrop-filter:blur(16px) saturate(1.3);backdrop-filter:blur(16px) saturate(1.3);border:1px solid var(--line);border-radius:24px;padding:clamp(1.4rem,3.5vw,2.8rem)!important;margin-block:clamp(1.2rem,3vw,2.4rem)!important;box-shadow:0 40px 100px -40px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.05)}
.t-hud::before{content:attr(data-hud);position:absolute;top:1.05rem;right:2.1rem;font-size:.65rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mut)}
.t-hud::after{content:'';position:absolute;top:1.2rem;right:1.2rem;width:7px;height:7px;border-radius:50%;background:var(--a1);box-shadow:0 0 0 0 rgba(var(--a1rgb),.6);animation:t-pulse 2.2s infinite}
@keyframes t-pulse{0%{box-shadow:0 0 0 0 rgba(var(--a1rgb),.6)}70%{box-shadow:0 0 0 10px rgba(var(--a1rgb),0)}100%{box-shadow:0 0 0 0 rgba(var(--a1rgb),0)}}
.t-hud.t-flash{animation:t-flash 1.2s var(--ease)}
@keyframes t-flash{0%{border-color:var(--a1);box-shadow:0 0 0 1px var(--a1),0 0 60px rgba(var(--a1rgb),.35)}100%{border-color:var(--line)}}

/* typography */
h1,h2,h3,h4,.titoloh2{font-family:var(--f)!important;color:var(--tx)!important;text-shadow:none}
h1{position:relative;font-size:clamp(2.4rem,7.5vw,5.6rem)!important;line-height:1!important;font-weight:800!important;letter-spacing:-.04em;margin-bottom:.45em!important;text-transform:none}
h1 .t-w{display:inline-block;white-space:nowrap}
h1 .t-ch{display:inline-block;transition:transform .35s var(--ease),color .35s;will-change:transform}
h1::after{content:'▍';color:var(--a1);font-weight:400;margin-left:.04em;animation:t-blink 1.05s steps(1) infinite}
h1.t-glitch{animation:t-g3 7s infinite}
@keyframes t-g3{0%,92%,100%{text-shadow:0 0 40px rgba(var(--a1rgb),.25)}93%{text-shadow:3px 0 var(--a3),-3px 0 var(--a1)}94.5%{text-shadow:-4px 1px var(--a3),4px -1px var(--a1)}96%{text-shadow:1px 0 var(--a3),-1px 0 var(--a1)}}
@keyframes t-blink{50%{opacity:0}}
.titoloh2{display:inline-flex!important;align-items:center;gap:.6em;font-size:.72rem!important;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--a1)!important;padding:.55em 1em;border:1px solid rgba(var(--a1rgb),.3);border-radius:999px;background:rgba(var(--a1rgb),.07);margin-bottom:1.6rem!important}
.titoloh2::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--a1);box-shadow:0 0 10px var(--a1)}
p{color:#c3cbe0!important;line-height:1.75}
a{color:var(--a1)}
b,strong{color:var(--tx)!important;background:linear-gradient(90deg,var(--a1),var(--a2));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.violet{color:var(--a2)!important;margin-top:1.1em;margin-bottom:.4em;font-size:.78rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase}
.violet::before{content:'// ';opacity:.5}

/* skill rows */
.t-line{overflow-wrap:anywhere;display:grid;grid-template-columns:minmax(0,16ch) 1fr 4.5ch;align-items:center;gap:.9rem;padding:.32rem 0;font-size:.88rem;opacity:0;transform:translateY(6px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.t-line.on{opacity:1;transform:none}
.t-track{position:relative;height:6px;border-radius:99px;background:rgba(255,255,255,.06);overflow:hidden}
.t-fill{position:absolute;inset:0 auto 0 0;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--a1),var(--a2),var(--a3));box-shadow:0 0 14px rgba(var(--a1rgb),.6);transition:width 1.4s var(--ease)}
.t-fill::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.55),transparent);transform:translateX(-100%);animation:t-shine 2.8s 1.4s infinite}
@keyframes t-shine{to{transform:translateX(100%)}}
.t-pc{text-align:right;color:var(--mut);font-variant-numeric:tabular-nums}

/* tags */
.tag{display:inline-block;margin:.25em .35em .25em 0;padding:.42em .9em;border-radius:999px;border:1px solid var(--line);background:rgba(255,255,255,.03);font-size:.78rem;color:var(--tx)!important;text-decoration:none!important;transition:transform .3s var(--ease),background .3s,border-color .3s,color .3s,box-shadow .3s}
.tag:hover{border-color:transparent;color:#04050c!important;background:linear-gradient(90deg,var(--a1),var(--a2));box-shadow:0 10px 30px -8px rgba(var(--a1rgb),.7)}

/* cards */
.stack-card--dark{position:relative;isolation:isolate;background:rgba(255,255,255,.025)!important;border:1px solid var(--line)!important;border-radius:20px!important;color:var(--tx)!important;overflow:hidden;text-decoration:none!important;transition:transform .35s var(--ease),border-color .3s,box-shadow .35s,opacity .7s,translate .7s}
.stack-card--dark::before{content:'';position:absolute;inset:0;z-index:-1;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),rgba(var(--a1rgb),.2),transparent 45%);opacity:0;transition:opacity .35s}
.stack-card--dark:hover::before{opacity:1}
.stack-card--dark:hover{border-color:rgba(var(--a1rgb),.45)!important;box-shadow:0 30px 70px -25px rgba(var(--a1rgb),.45)}
.stack-card--dark img{filter:brightness(0) invert(1);opacity:.85}
.stack-card--dark p{color:var(--mut)!important}
.btn--primary{display:inline-flex;align-items:center;gap:.5em;background:transparent!important;color:var(--tx)!important;border:1px solid rgba(255,255,255,.18)!important;border-radius:999px!important;padding:.6em 1.2em;font-size:.8rem;letter-spacing:.06em;transition:transform .3s var(--ease),background .3s,color .3s,border-color .3s}
.btn--primary::after{content:'→';transition:transform .3s var(--ease)}
.stack-card--dark:hover .btn--primary,.btn--primary:hover{background:var(--tx)!important;color:#04050c!important;border-color:var(--tx)!important}
.stack-card--dark:hover .btn--primary::after{transform:translateX(4px)}
.t-reveal .stack-card--dark{opacity:0;translate:0 20px}
.t-reveal.on .stack-card--dark{opacity:1;translate:0 0}

/* portrait */
.t-imgwrap{position:relative;display:block;border-radius:24px;padding:2px;background:conic-gradient(from var(--ang),var(--a1),var(--a2),var(--a3),var(--a1));animation:t-spin 8s linear infinite;box-shadow:0 40px 90px -30px rgba(var(--a1rgb),.5)}
@keyframes t-spin{to{--ang:360deg}}
.imagine_profilo{display:block!important;width:100%;height:auto;border-radius:22px!important;filter:none!important;border:0!important;box-shadow:none!important;background:#04050c}
.t-ascii{position:absolute;z-index:2;border-radius:22px;touch-action:manipulation}
.t-imgtag{position:absolute;left:1rem;bottom:1rem;z-index:3;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;padding:.5em .9em;border-radius:999px;background:rgba(4,5,12,.72);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(var(--a1rgb),.35);color:var(--a1);pointer-events:none}

/* command bar */
#t-bar{position:fixed;top:12px;left:50%;transform:translateX(-50%);width:min(1000px,calc(100% - 24px));height:46px;z-index:9995;display:flex;align-items:center;gap:.8rem;padding:0 .5rem 0 1rem;background:rgba(10,12,26,.62);-webkit-backdrop-filter:blur(20px) saturate(1.6);backdrop-filter:blur(20px) saturate(1.6);border:1px solid var(--line);border-radius:16px;box-shadow:0 20px 60px -20px rgba(0,0,0,.9),inset 0 1px 0 rgba(255,255,255,.06);font:13px/1 var(--f);color:var(--tx);overflow:hidden}
#t-bar .dots{display:flex;gap:6px}
#t-bar .dots i{width:10px;height:10px;border-radius:50%;background:#ff5f57}
#t-bar .dots i:nth-child(2){background:#febc2e}#t-bar .dots i:nth-child(3){background:#28c840}
.t-prompt{display:flex;gap:.5em;white-space:nowrap;cursor:text}
.t-prompt b{color:var(--a1);font-weight:600}.t-prompt em{color:var(--a2);font-style:normal}.t-prompt span{color:var(--a3)}
#t-in{flex:1;min-width:0;height:100%;background:transparent!important;border:0!important;outline:0!important;box-shadow:none!important;color:var(--tx);font:inherit;caret-color:var(--a1);padding:0!important}
#t-in::placeholder{color:var(--mut);opacity:.8}
#t-info{color:var(--mut);font-size:11px;white-space:nowrap}
#t-fx{font:600 11px/1 var(--f);letter-spacing:.1em;background:rgba(255,255,255,.05);border:1px solid var(--line);color:var(--tx);padding:8px 12px;border-radius:10px;cursor:pointer;transition:.25s}
#t-fx:hover{background:var(--tx);color:#04050c}
#t-prog{position:absolute;left:0;right:0;bottom:0;height:2px;background:linear-gradient(90deg,var(--a1),var(--a2),var(--a3));transform:scaleX(0);transform-origin:left}
#t-con{position:fixed;top:66px;left:50%;transform:translateX(-50%) translateY(-8px);width:min(1000px,calc(100% - 24px));max-height:0;opacity:0;overflow:auto;z-index:9994;padding:0 1.1rem;background:rgba(8,10,22,.82);-webkit-backdrop-filter:blur(20px) saturate(1.5);backdrop-filter:blur(20px) saturate(1.5);border:1px solid var(--line);border-radius:16px;font:13px/1.65 var(--f);color:var(--tx);white-space:pre-wrap;transition:max-height .45s var(--ease),opacity .3s,transform .45s var(--ease),padding .45s;pointer-events:none}
#t-con.open{max-height:46vh;opacity:1;transform:translateX(-50%);padding:.9rem 1.1rem;pointer-events:auto;box-shadow:0 30px 80px -20px rgba(0,0,0,.9)}
.t-o{animation:t-in .3s var(--ease)}
@keyframes t-in{from{opacity:0;transform:translateY(4px)}}
.t-o.echo{color:var(--mut)}.t-o .pr{color:var(--a3)}.t-o .k{color:var(--a1)}.t-o.err{color:var(--a3)}.t-o b{-webkit-text-fill-color:currentColor;background:none;color:var(--tx)!important}
.t-o.pre{white-space:pre;overflow-x:auto}

/* HUD cursor */
html.t-hascur,html.t-hascur *{cursor:none!important}
#t-cur{position:fixed;left:0;top:0;z-index:99998;pointer-events:none}
#t-cur i{position:absolute;left:-16px;top:-16px;width:32px;height:32px;border:1px solid rgba(var(--a1rgb),.9);border-radius:50%;transition:left .3s var(--ease),top .3s var(--ease),width .3s var(--ease),height .3s var(--ease),background .3s,border-color .3s}
#t-cur i::after{content:'';position:absolute;left:50%;top:50%;width:4px;height:4px;margin:-2px 0 0 -2px;border-radius:50%;background:var(--a1)}
#t-cur span{position:absolute;left:24px;top:14px;font:10px/1 var(--f);letter-spacing:.08em;color:var(--a1);white-space:nowrap;padding:3px 6px;border-radius:6px;background:rgba(4,5,12,.6)}
.t-hov #t-cur i{left:-28px;top:-28px;width:56px;height:56px;background:rgba(var(--a1rgb),.08);border-color:var(--a3)}

/* reveal */
.t-reveal{opacity:0;transform:translateY(40px) scale(.98);filter:blur(6px);transition:opacity 1s var(--ease),transform 1s var(--ease),filter 1s var(--ease)}
.t-reveal.on{opacity:1;transform:none;filter:none}
body.t-hack main{animation:t-hack 1.2s steps(8)}
@keyframes t-hack{0%,100%{transform:none;filter:none}20%{transform:translate(-6px,2px) skewX(3deg);filter:hue-rotate(90deg)}40%{transform:translate(5px,-3px);filter:invert(.1) hue-rotate(-60deg)}60%{transform:translate(-3px,0) skewX(-2deg);filter:saturate(3)}80%{transform:translate(2px,1px)}}

/* boot */
#t-boot{position:fixed;inset:0;z-index:99999;display:grid;place-items:center;background:radial-gradient(circle at 50% 50%,#0a0f22,#020308 70%);color:var(--tx);font:13px/1.7 var(--f);transition:opacity .8s var(--ease),filter .8s,transform .8s var(--ease)}
#t-boot.out{opacity:0;filter:blur(10px);transform:scale(1.04);pointer-events:none}
.t-bootbox{width:min(520px,86vw);padding:1.6rem;border:1px solid var(--line);border-radius:18px;background:rgba(255,255,255,.03);box-shadow:0 0 120px -30px rgba(var(--a1rgb),.5)}
.t-bootlog{min-height:15em;color:#aab4cf}
.t-bootlog div:last-child{color:var(--a1)}
.t-bootbar{height:3px;margin-top:1rem;border-radius:9px;background:rgba(255,255,255,.07);overflow:hidden}
.t-bootbar i{display:block;height:100%;width:0;background:linear-gradient(90deg,var(--a1),var(--a2),var(--a3));transition:width .3s var(--ease)}
#t-boot small{position:absolute;bottom:1.5rem;left:0;right:0;text-align:center;color:var(--mut);letter-spacing:.12em;text-transform:uppercase;font-size:10px}

/* fx off / responsive / a11y */
body.t-off #t-gl,body.t-off #t-grain{opacity:0}
@media(max-width:800px){#t-info,.t-prompt b,.t-prompt em{display:none}#t-bar{gap:.6rem}.t-hud::before{display:none}.t-line{grid-template-columns:minmax(8ch,12ch) 1fr 4.5ch;font-size:.8rem}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}.t-reveal,.t-line,.t-reveal .stack-card--dark{opacity:1!important;transform:none!important;filter:none!important;translate:none!important}.t-fill{width:var(--w,80%)}}
