@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial}}}.visible{visibility:visible}.mx-auto{margin-inline:auto}.block{display:block}.flex{display:flex}.grid{display:grid}.inline-flex{display:inline-flex}.min-h-screen{min-height:100vh}.grow{flex-grow:1}.transform{transform:var(--tw-rotate-x,)var(--tw-rotate-y,)var(--tw-rotate-z,)var(--tw-skew-x,)var(--tw-skew-y,)}.flex-wrap{flex-wrap:wrap}.items-baseline{align-items:baseline}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.62rem\]{font-size:.62rem}.text-\[0\.78rem\]{font-size:.78rem}.text-\[var\(--accent\)\]{color:var(--accent)}.text-\[var\(--accent-warm\)\]{color:var(--accent-warm)}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,ease);transition-duration:var(--tw-duration,0s)}@media (hover:hover){.hover\:text-\[var\(--foreground\)\]:hover{color:var(--foreground)}}*,:before,:after{box-sizing:border-box}:root{--font-space-grotesk:"Tahoma","MS Sans Serif","Segoe UI",sans-serif;--font-ibm-plex-mono:"Courier New","Lucida Console",monospace;--background:#f1f1ec;--bg-alt:#f1f1ec;--bg-panel:#f1f1ec;--foreground:#000;--text-main:#000;--text-muted:#2d2d2d;--accent:#000;--accent-warm:#000;--border:#7f7f7f;--border-light:#fff;--border-dark:#404040;--shadow:none}html{scroll-behavior:smooth}body{min-height:100vh;color:var(--text-main);font-family:var(--font-space-grotesk),sans-serif;background:url(/bg.jpg) 50%/cover no-repeat fixed;margin:0}a{color:inherit;text-decoration:none}.site-shell{z-index:1;background:var(--bg-panel);border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);width:min(920px,100% - 1rem);margin:1.5rem auto 2.5rem;padding:clamp(.8rem,2vw,1.25rem);position:relative;box-shadow:4px 4px 14px #00000073}.soft-grid{z-index:-1;opacity:.08;pointer-events:none;will-change:transform;background-color:#0000;background-image:linear-gradient(90deg,#0000004d 1px,#0000 1px),linear-gradient(#0000004d 1px,#0000 1px);background-position:0 0,0 0;background-repeat:repeat,repeat;background-size:18px 18px;background-attachment:scroll,scroll;background-origin:padding-box,padding-box;background-clip:border-box,border-box;transition:transform .1s ease-out;position:absolute;inset:0}.topbar{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;flex-direction:column;justify-content:flex-start;align-items:center;gap:.9rem;padding:0 .45rem .45rem;display:flex;overflow:hidden}.topbar:before{content:"Giuseppe Di Turi – Portfolio";color:#fff;font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.06em;text-shadow:1px 1px #0006;background:linear-gradient(90deg,#0a246a 0%,#3065b8 60%,#a6caf0 100%);align-self:stretch;margin:0 -.45rem .7rem;padding:.25rem .6rem;font-size:.68rem;font-weight:700;display:block}.brand{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.08em;text-transform:uppercase;text-align:center;flex-direction:column;align-items:center;gap:.45rem;font-size:.72rem;display:flex}.brand-mark{box-shadow:none;image-rendering:pixelated;background:#f1f1ec;border:2px solid #f1f1ec}.brand-mark-large{width:min(76vw,264px);height:auto}.brand-title{letter-spacing:.08em;margin:.4rem 0 0;font-size:clamp(1.15rem,4.1vw,1.55rem)}.brand-subtitle{color:var(--text-muted);letter-spacing:.05em;text-transform:none;margin:0;font-size:.78rem}.top-nav{flex-wrap:wrap;justify-content:center;align-items:center;gap:.5rem;display:flex}.pill-link,.pill-button{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.06em;text-transform:uppercase;box-shadow:none;color:#000;background:#f1f1ec;border-radius:0;padding:.45rem .9rem;font-size:.74rem;transition:background-color .12s}.pill-link:hover,.pill-button:hover{background:#d4d0c8}.pill-button{background:#f1f1ec}.section{border-top:1px solid var(--border);margin-top:2.2rem;padding-top:1.8rem}.bio-panel{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;border-left:4px solid #0a246a;margin-top:1.1rem;padding:clamp(1.2rem,3vw,2rem)}.bio-panel p{color:var(--text-muted);max-width:72ch;margin:0 0 1rem;line-height:1.75}.bio-panel p:last-child{margin-bottom:0}.hero{grid-template-columns:1fr;gap:.8rem;margin-top:1rem;display:grid}.hero-actions{flex-wrap:wrap;gap:.6rem;margin-top:1.2rem;display:flex}.hero-panel{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;padding:clamp(1rem,2.6vw,1.45rem)}.status-list{gap:0;margin:.9rem 0 0;padding:0;list-style:none;display:grid}.status-list li{border-bottom:1px dotted var(--border);justify-content:space-between;align-items:baseline;gap:.5rem;padding:.45rem 0;font-size:.85rem;display:flex}.status-list li span{color:var(--text-muted);font-family:var(--font-ibm-plex-mono),monospace;text-transform:uppercase;letter-spacing:.04em;font-size:.68rem}.ghost-button{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.06em;text-transform:uppercase;color:#000;background:#f1f1ec;border-radius:0;padding:.45rem .9rem;font-size:.74rem;transition:background-color .12s}.ghost-button:hover{background:#d4d0c8}.hero-copy{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);box-shadow:none;background:#f1f1ec;border-radius:0;padding:clamp(1.2rem,3vw,2rem)}.section-heading,.panel-label,.hero-eyebrow{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.08em;text-transform:uppercase;background:#000;margin:0;padding:.22rem .5rem;font-size:.72rem;font-weight:700;display:inline-block;color:#fff!important}.section-title{letter-spacing:-.01em;text-transform:none;color:var(--text-main);background:0 0;margin-top:.65rem;padding:0;font-size:clamp(1.18rem,3.8vw,1.62rem);font-weight:400}.section-copy{color:var(--text-muted);max-width:58ch;margin:.65rem 0 0}.work-grid{grid-template-columns:1fr;gap:.7rem;margin-top:1.3rem;display:grid}.project-card{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:var(--bg-panel);box-shadow:none;border-radius:0;padding:1rem;transition:transform .32s,background-color .12s,box-shadow .32s;display:block}.project-card:hover{background:#f1f1ec;transform:translateY(-4px);box-shadow:4px 4px #00000026}.project-card p{color:var(--text-muted);line-height:1.6}.chip-wrap{flex-wrap:wrap;gap:.45rem;margin-top:.85rem;display:flex}.chip{color:#1d1d1d;font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.045em;text-transform:uppercase;background:#f1f1ec;border:1px solid #707070;border-radius:0;padding:.2rem .58rem;font-size:.66rem}.about-grid{grid-template-columns:1fr;gap:.7rem;margin-top:1.3rem;display:grid}.about-panel,.stack-panel,.contact-panel{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);box-shadow:none;background:#f1f1ec;border-radius:0;padding:clamp(1rem,2.6vw,1.45rem)}.principles{gap:.8rem;margin:.9rem 0 0;padding:0;list-style:none;display:grid}.principles li strong{margin-bottom:.18rem;font-size:.96rem;display:block}.principles li span{color:var(--text-muted)}.stack-lines{flex-wrap:wrap;gap:.5rem;margin-top:.8rem;display:flex}.stack-token{font-family:var(--font-ibm-plex-mono),monospace;color:#212121;background:#f1f1ec;border:1px solid #707070;border-radius:0;padding:.38rem .54rem;font-size:.72rem}.contact-panel{flex-direction:column;justify-content:flex-start;align-items:flex-start;gap:.8rem;margin-top:1.3rem;display:flex}.contact-panel p{color:var(--text-muted);margin:0}.contact-actions{flex-wrap:wrap;gap:.45rem;display:flex}.reveal{opacity:0;will-change:opacity,transform;transition:opacity .35s ease-out,transform .35s ease-out;transform:translateY(20px)}.reveal.visible{opacity:1;transform:translateY(0)}.section-reveal{opacity:0;will-change:opacity,transform;transition:opacity .6s ease-out,transform .6s ease-out;transform:translateY(40px)}.section-reveal.visible{opacity:1;transform:translateY(0)}.card-reveal{opacity:0;will-change:opacity,transform;transition:opacity .45s ease-out,transform .45s ease-out;transform:translateY(24px)}.card-reveal.visible{opacity:1;transform:translateY(0)}@media (max-width:980px){.site-shell{width:calc(100% - .7rem)}}@media (min-width:640px){.hero{grid-template-columns:3fr 2fr;align-items:start}.about-grid{grid-template-columns:1fr 1fr}.work-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}}@media (max-width:640px){.topbar{align-items:center}.hero-copy h1{font-size:clamp(1.35rem,8.5vw,1.95rem)}}@media (prefers-reduced-motion:reduce){.reveal,.section-reveal,.card-reveal{opacity:1;animation:none;transform:none}}.pixel-heading{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.085em;text-transform:uppercase}.terminal-meta{color:var(--text-muted);font-family:var(--font-ibm-plex-mono),monospace;font-size:.82rem}.terminal-panel{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;border-radius:0;padding:1rem}.terminal-prompt{color:var(--accent);font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.05em;font-size:.78rem}.terminal-list{color:var(--text-muted);margin:0;padding-left:1.05rem;line-height:1.65}.terminal-tag{color:#212121;font-size:.7rem;font-family:var(--font-ibm-plex-mono),monospace;background:#f1f1ec;border:1px solid #707070;border-radius:0;padding:.2rem .5rem}.terminal-button,.terminal-link{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);font-family:var(--font-ibm-plex-mono),monospace;color:#000;background:#f1f1ec;border-radius:0;padding:.45rem .72rem;font-size:.76rem}.terminal-button{background:#f1f1ec}.text-neon-green{color:var(--accent)}.blog-post{margin-top:1.4rem}.blog-post-header{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;border-left:4px solid #0a246a;margin-bottom:1.5rem;padding:clamp(1.2rem,3vw,2rem)}.blog-post-title{letter-spacing:-.02em;margin:.6rem 0 0;font-size:clamp(1.4rem,4vw,2rem);line-height:1.2}.blog-post-excerpt{color:var(--text-muted);max-width:64ch;margin:.65rem 0 0;line-height:1.65}.blog-content{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;padding:clamp(1.4rem,4vw,2.4rem)}.blog-content h1,.blog-content h2,.blog-content h3{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.04em;margin:1.8rem 0 .7rem}.blog-content h1{font-size:1.4rem}.blog-content h2{text-transform:uppercase;letter-spacing:.06em;font-size:1.1rem}.blog-content h3{text-transform:uppercase;letter-spacing:.06em;font-size:.95rem}.blog-content h2:before{content:"## ";color:var(--text-muted)}.blog-content p{color:var(--text-muted);max-width:70ch;margin:.9rem 0 0;line-height:1.78}.blog-content strong{color:var(--text-main);font-weight:700}.blog-content ul,.blog-content ol{color:var(--text-muted);margin:.9rem 0 0;padding-left:1.4rem;line-height:1.75}.blog-content li{margin-top:.3rem}.blog-content code{font-family:var(--font-ibm-plex-mono),monospace;background:#e4e0d8;border:1px solid #b0ab9f;padding:.1em .35em;font-size:.82em}.blog-content pre{color:#e8e8e8;font-family:var(--font-ibm-plex-mono),monospace;background:#1a1a1a;border:2px solid #fff;border-color:#404040 #fff #fff #404040;margin:1rem 0 0;padding:1.2rem;font-size:.82rem;overflow-x:auto}.blog-content pre code{color:inherit;background:0 0;border:none;padding:0}.hireme-titlebar{color:#fff;font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.06em;text-shadow:1px 1px #0006;background:linear-gradient(90deg,#0a246a 0%,#3065b8 60%,#a6caf0 100%);justify-content:space-between;align-items:center;margin:calc(-1*clamp(.8rem,2vw,1.25rem)) calc(-1*clamp(.8rem,2vw,1.25rem)) 0;padding:.25rem .5rem .25rem .6rem;font-size:.68rem;font-weight:700;display:flex}.hireme-close{color:#000;width:1.2rem;height:1.2rem;font-size:.6rem;font-family:var(--font-ibm-plex-mono),monospace;text-shadow:none;background:silver;border:2px solid #404040;border-color:#fff #404040 #404040 #fff;flex-shrink:0;justify-content:center;align-items:center;line-height:1;display:inline-flex}.hireme-close:hover{background:#d4d0c8}.hireme-nav{margin-top:1.1rem;margin-bottom:.2rem}.hireme-hero{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;grid-template-columns:1fr;gap:1rem;margin-top:1.4rem;padding:clamp(1.2rem,3vw,1.8rem);display:grid}.hireme-name{letter-spacing:-.02em;margin:.5rem 0 0;font-size:clamp(1.6rem,5vw,2.4rem);line-height:1.1}.hireme-role{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:.35rem 0 0;font-size:.8rem}.hireme-tagline{color:var(--text-muted);max-width:54ch;margin:.9rem 0 0;line-height:1.65}.hireme-availability{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;align-self:start;padding:clamp(.9rem,2vw,1.2rem)}.hireme-props{grid-template-columns:1fr;gap:.8rem;margin-top:1.3rem;display:grid}.hireme-prop-card{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;padding:clamp(1rem,2.5vw,1.4rem)}.hireme-prop-icon{color:#fff;background:navy;border:2px solid #404040;border-color:#fff #404040 #404040 #fff;flex-shrink:0;justify-content:center;align-items:center;width:2rem;height:2rem;margin-bottom:.75rem;display:inline-flex}.hireme-prop-title{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.07em;text-transform:uppercase;margin:0 0 .5rem;font-size:.76rem;font-weight:700}.hireme-prop-desc{color:var(--text-muted);margin:0;font-size:.9rem;line-height:1.65}.hireme-skills-grid{grid-template-columns:1fr 1fr;gap:.8rem;margin-top:1.3rem;display:grid}.hireme-projects{gap:.8rem;margin-top:1.3rem;display:grid}.hireme-project-card{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;padding:clamp(1rem,2.5vw,1.4rem)}.hireme-project-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.hireme-project-name{font-family:var(--font-ibm-plex-mono),monospace;letter-spacing:.06em;text-transform:uppercase;margin:0;font-size:.78rem;font-weight:700}.hireme-project-desc{color:var(--text-muted);margin:.65rem 0 0;font-size:.9rem;line-height:1.65}.hireme-cta{border:2px solid;border-color:var(--border-light)var(--border-dark)var(--border-dark)var(--border-light);background:#f1f1ec;border-left:4px solid navy;flex-direction:column;gap:1.2rem;padding:clamp(1.2rem,3vw,2rem);display:flex}.hireme-cta-text{color:var(--text-muted);max-width:60ch;margin:.65rem 0 0;line-height:1.7}.hireme-cta-actions{flex-wrap:wrap;gap:.6rem;display:flex}@media (min-width:640px){.hireme-hero{grid-template-columns:1fr auto;align-items:start}.hireme-props,.hireme-projects{grid-template-columns:repeat(3,1fr)}.hireme-cta{flex-direction:row;justify-content:space-between;align-items:center}.hireme-cta-actions{flex-direction:column;flex-shrink:0}}@media (max-width:480px){.hireme-skills-grid{grid-template-columns:1fr}}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}
