:root{color:#21362e;scroll-behavior:smooth;background:#f5f3ec;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}header,main,footer{max-width:1440px;margin:auto}header{border-bottom:1px solid #cdd3c8;justify-content:space-between;align-items:center;padding:30px 6%;display:flex}.logo{font-size:30px;font-weight:800}.logo span{letter-spacing:2px;margin-left:14px;font-size:11px}nav{gap:32px;font-size:13px;display:flex}section{padding:90px 6%;scroll-margin-top:20px}.hero{min-height:710px;padding-top:65px;position:relative;overflow:hidden}.eyebrow{letter-spacing:2px;font-size:11px;font-weight:700}h1{letter-spacing:-5px;z-index:1;margin:35px 0;font-size:clamp(52px,6.7vw,94px);line-height:1.04;position:relative}em{color:#68814f;font-family:Georgia,serif;font-weight:400}.intro{z-index:1;max-width:500px;position:relative}.intro p,p{font-size:16px;line-height:1.7}.button{color:#fff;background:#21362e;border-radius:40px;margin-top:15px;padding:17px 24px;font-size:13px;display:inline-block}.herofooter{letter-spacing:1.5px;z-index:1;justify-content:space-between;margin-top:70px;font-size:10px;display:flex;position:relative}.orb{color:#93a27c;opacity:.65;background:#dce4c9;border-radius:50%;place-items:center;width:340px;height:400px;font-family:Georgia,serif;font-size:150px;display:grid;position:absolute;top:125px;right:4%;transform:rotate(-17deg)}.about{background:#e6e9dc;grid-template-columns:1fr 1.4fr;gap:25px 60px;display:grid}.about .eyebrow{grid-column:1/-1}h2{letter-spacing:-2px;margin:24px 0 35px;font-size:clamp(32px,4vw,52px);line-height:1.12}.about p{max-width:530px}.sectionhead{justify-content:space-between;align-items:end;gap:25px;display:flex}.filters{gap:8px;margin-bottom:35px;display:flex}.filters button{cursor:pointer;color:inherit;background:0 0;border:1px solid #b6c0b3;border-radius:30px;padding:10px 16px}.filters button.active{color:#fff;background:#21362e}.timeline article{border-top:1px solid #bdc7bb;grid-template-columns:180px 1fr;padding:27px 0;display:grid}.timeline article[hidden]{display:none}.year{padding-top:8px;font-size:13px}summary{cursor:pointer;justify-content:space-between;align-items:center;list-style:none;display:flex}summary::-webkit-details-marker{display:none}small{letter-spacing:1px;color:#617361;font-size:11px}h3{margin:8px 0;font-size:25px}summary p{margin:5px 0;font-size:14px}.plus{font-size:30px;font-weight:300}details[open] .plus{transform:rotate(45deg)}.detail{color:#4f6356;max-width:670px;margin-bottom:0}#competenze{color:#f5f3ec;background:#21362e}.skills{grid-template-columns:repeat(3,1fr);gap:45px;margin-top:55px;display:grid}.skills b{color:#bdd096;font-size:12px}.skills h3{margin-top:30px}.skills p{color:#c6d0c4}.learning{grid-template-columns:1fr 1fr;gap:60px;display:grid}.learning p{margin:0 0 30px}#contatti{background:#dce4c9}.contact{letter-spacing:-1px;font-size:clamp(24px,4vw,48px);display:block}.linkedin{border-bottom:1px solid;margin-top:30px;padding-bottom:5px;font-size:13px;display:inline-block}footer{justify-content:space-between;padding:30px 6%;font-size:11px;display:flex}a:focus-visible,button:focus-visible,summary:focus-visible{outline-offset:5px;outline:3px solid #ac6d31}@media (width<=700px){header{padding:22px 6%}nav{gap:15px}nav a:first-child,.logo span{display:none}section{padding:60px 6%}.hero{min-height:660px}h1{letter-spacing:-2.8px}.orb{opacity:.22;top:180px;right:-130px}.herofooter{gap:20px;line-height:1.6}.about,.learning{grid-template-columns:1fr;gap:10px}.sectionhead{display:block}.timeline article{grid-template-columns:1fr;gap:15px}.skills{grid-template-columns:1fr;gap:25px}.skills h3{margin-top:15px}.skills>div{border-top:1px solid #627361;padding-top:20px}footer{gap:20px;line-height:1.7}}@media (prefers-reduced-motion:reduce){:root{scroll-behavior:auto}}.adventure{color:#faf1dd;background:#171d35;padding-top:48px;padding-bottom:28px;overflow:hidden}.gameheading{text-align:center;z-index:1;position:relative}.gameheading h1{letter-spacing:-3px;margin:20px 0 12px;font-size:clamp(42px,5.3vw,72px)}.gameheading em{color:#eab66b}.gameheading p{color:#b9bed0;margin:12px 0}.gameheading #progress{color:#cbd6ac;border:1px solid #59617b;border-radius:30px;padding:8px 15px;font-size:11px;display:inline-block}.world{background:radial-gradient(at 50% 90%,#62446155,#0000 65%);padding-top:65px;position:relative}.moon{background:#f5d9a1;border-radius:50%;width:45px;height:45px;position:absolute;top:15px;right:7%;box-shadow:0 0 55px #f9d79544}.stars{text-align:center;color:#b5bad3;letter-spacing:16px;position:absolute;inset:20px 0 auto}.town{z-index:1;justify-content:center;align-items:end;gap:35px;display:flex;position:relative}.building{cursor:pointer;color:#fff3de;background:#425a73;border:4px solid #0d1426;border-bottom:0;border-radius:12px 12px 0 0;width:29%;max-width:300px;height:330px;font-family:inherit;transition:transform .2s;position:relative;box-shadow:inset -14px 0 #0002,10px 8px #0c132a}.building.bar{background:#775050;height:355px}.building.gelato{background:#687b6d}.roof{letter-spacing:2px;background:#253750;border:4px solid #10182d;border-radius:5px;padding:13px 3px;font-size:11px;font-weight:700;position:absolute;top:-20px;left:-10px;right:-10px;box-shadow:0 7px #0003}.bar .roof{color:#ffd486;background:#643544}.gelato .roof{color:#e0edc3;background:#365b55}.shopicon{filter:drop-shadow(3px 5px #0003);width:100px;position:absolute;top:42px;left:calc(50% - 50px)}.shopicon svg{width:100%;height:95px}.doorframe{perspective:500px;background:#f5cf78;border:6px solid #152237;width:90px;height:128px;position:absolute;bottom:65px;left:calc(50% - 45px);box-shadow:0 0 25px #efbd4a18}.door{transform-origin:0;z-index:2;background:#233b52;border:4px solid #7ca8b0;place-items:center;transition:transform .5s;display:grid;position:absolute;inset:0}.bar .door{background:#4e303e;border-color:#b98363}.gelato .door{background:#2f5149;border-color:#b5cc99}.door span{color:#e9d29e;font-family:Georgia,serif;font-size:23px}.door i{background:#ffd786;border-radius:50%;width:6px;height:6px;position:absolute;top:60%;right:5px}.lightinside{color:#725b3c;place-items:center;height:100%;font-size:40px;display:grid}.building:hover .door,.building:focus-visible .door{transform:rotateY(-58deg)}.building:hover{transform:translateY(-5px)}.awning{background:repeating-linear-gradient(90deg,#f3d7aa 0 20px,#b56b69 20px 40px);border:3px solid #152237;border-radius:2px 2px 7px 7px;height:16px;position:absolute;bottom:57px;left:-11px;right:-11px}.tech .awning{background:repeating-linear-gradient(90deg,#9bc7cb 0 20px,#345268 20px 40px)}.gelato .awning{background:repeating-linear-gradient(90deg,#e1dfb6 0 20px,#759c80 20px 40px)}.shoplabel{font-family:Georgia,serif;font-size:19px;position:absolute;bottom:10px;left:0;right:0}.shoplabel span{color:#e0d8ce;margin-top:6px;font-family:Arial,sans-serif;font-size:10px;display:block}.enter{letter-spacing:1.6px;color:#d8c5a0;font-size:10px;position:absolute;bottom:-45px;left:0;right:0}.visited .enter{color:#b8dfab}.visited .enter:before{content:"✓ "}.street{letter-spacing:2px;color:#878fa7;background:repeating-linear-gradient(0deg,#0000 0 28px,#ffffff06 28px 30px),#30354b;border-top:8px solid #a9a298;justify-content:space-between;align-items:end;height:95px;padding:0 15px 10px;font-size:9px;display:flex}.gamebottom{color:#bdc4d8;justify-content:space-between;gap:15px;padding-top:25px;font-size:11px;display:flex}.gamebottom a{color:#f2d298;border-bottom:1px solid #7d775e;padding-bottom:4px}dialog{color:#24382e;background:#f6f1e5;border:3px solid #d3b578;border-radius:14px;width:90%;max-width:700px;max-height:85vh;padding:45px;box-shadow:0 30px 100px #0008}dialog::backdrop{backdrop-filter:blur(7px);background:#0b1026c9}dialog h2{margin-bottom:25px;font-size:42px}#close-room{cursor:pointer;color:inherit;background:0 0;border:0;font-size:24px;position:absolute;top:13px;right:16px}#room-content p{border-top:1px solid #d4d6c9;margin:0;padding:16px 0;font-size:14px}#next-room{color:#fff3db;cursor:pointer;background:#24382e;border:0;border-radius:25px;margin-top:15px;padding:15px 20px}.roomfoot{color:#6d796c;margin-bottom:0;font-size:10px}body:has(dialog[open]){overflow:hidden}@media (width<=700px){.town{gap:13px}.world{padding-top:50px}.building,.building.bar{border-width:3px;width:31%;height:280px}.roof{letter-spacing:.5px;padding:10px 0;font-size:8px;left:-5px;right:-5px}.shopicon{width:65px;top:30px;left:calc(50% - 32px)}.shopicon svg{height:75px}.doorframe{width:65px;height:110px;bottom:78px;left:calc(50% - 32px)}.shoplabel{padding:0 5px;font-size:14px;line-height:1.1;bottom:13px}.shoplabel span{font-size:8px;line-height:1.4}.awning{bottom:68px;left:-5px;right:-5px}.gamebottom{text-align:center;flex-direction:column;align-items:center;line-height:1.7}.enter{letter-spacing:0;font-size:8px}.adventure{padding-left:4%;padding-right:4%}dialog{padding:40px 24px 25px}dialog h2{font-size:32px}.stars{letter-spacing:5px}.moon{width:28px;height:28px;right:1%}}@media (prefers-reduced-motion:reduce){.door,.building{transition:none}}.shaker{display:none}[data-job=bar] .shaker{transform-origin:105px 100px;animation:.3s ease-in-out infinite alternate shake;display:block}[data-job=bar] .work-prop{display:none}.world{padding-bottom:0}.avatar-runner{z-index:4;pointer-events:none;width:90px;height:146px;transition:left .85s ease-in-out,opacity .35s,transform .35s;position:absolute;bottom:20px;left:50%;transform:translate(-50%)}.character{width:100%;height:100%;overflow:visible}.avatar-runner .work-prop{display:none}.running .leg-left{animation:.25s infinite alternate run-leg}.running .leg-right{animation:.25s infinite alternate-reverse run-leg}.leg{transform-origin:80px 158px}.arm{transform-origin:80px 87px}.running .character{animation:.18s infinite alternate bob}.running .arm-left{animation:.25s infinite alternate run-arm}.running .arm-right{animation:.25s infinite alternate-reverse run-arm}.avatar-runner.entering{opacity:0;transform:translate(-50%,-75px)scale(.4)}.building.entering .door{transform:rotateY(-85deg)}.street{height:125px}.work-scene{isolation:isolate;background:linear-gradient(#cce3da 0 70%,#9db3a1 70%);border:2px solid #a4bcad;border-radius:14px;height:310px;margin:25px 0 10px;position:relative;overflow:hidden}.scene-window{text-align:center;letter-spacing:2px;color:#38584c;font-size:10px;position:absolute;top:17px;left:0;right:0}.working-avatar{cursor:pointer;z-index:3;background:0 0;border:0;width:135px;height:220px;padding:0;position:absolute;bottom:38px;left:13%}.working-avatar:hover{filter:drop-shadow(0 0 5px #fff9)}.workstation{height:150px;position:absolute;bottom:58px;left:43%;right:5%}.counter{background:#845d46;border:3px solid #513e38;height:20px;position:absolute;bottom:0;left:-20px;right:0;box-shadow:0 45px #bd9570}.station-tech,.station-bar,.station-gelato{height:100%;display:none}[data-job=tech] .station-tech,[data-job=bar] .station-bar,[data-job=gelato] .station-gelato{display:block}.monitor{color:#a9ebba;background:#182b3e;border:8px solid #526f79;border-radius:8px;width:70%;height:102px;padding:10px;font:11px/1.6 monospace;position:absolute;bottom:22px}.monitor:after{content:"";background:#526f79;width:15px;height:20px;position:absolute;bottom:-25px;left:40%}.server{color:#9cedb1;background:#354452;border-radius:5px;padding:12px 7px;font:12px/2 monospace;position:absolute;bottom:20px;right:0}.code-light{animation:1.2s infinite blink}.bottles{letter-spacing:6px;font-size:32px;position:absolute;top:0}.served{font-size:47px;animation:3s infinite serve;position:absolute;bottom:19px;right:4px}.machine{text-align:center;letter-spacing:2px;color:#3b5b53;background:linear-gradient(100deg,#e9edf0,#94a8ae);border:4px solid #637b84;border-radius:10px;width:78%;height:127px;padding:10px;font-size:15px;position:absolute;bottom:20px;left:0}.machine span{letter-spacing:1px;font-size:6px;display:block}.machine-wheel{font-size:40px;line-height:1.3;animation:4s linear infinite churn}.work-caption{text-align:center;color:#304f43;font-size:12px;font-weight:700;position:absolute;bottom:10px;left:10px;right:10px}.avatar-tip{text-align:center;color:#67776d;font-size:11px}.avatar-tip button{color:inherit;cursor:pointer;background:0 0;border:0;padding:6px;text-decoration:underline}#role-bubble{background:#e2e9d6;border-radius:10px;margin-bottom:20px;padding:18px;font-size:14px;line-height:1.6}[data-job=bar]{background:linear-gradient(#593d53 0 70%,#a47d65 70%)}[data-job=bar] .scene-window{color:#ffe6ba}[data-job=bar] .arm-right,[data-job=bar] .work-prop{transform-origin:105px 100px;animation:.3s ease-in-out infinite alternate shake}[data-job=bar] .arm-left{transform:rotate(-24deg)}[data-job=bar] .work-caption{color:#fff5dd}[data-job=gelato] .arm-right,[data-job=gelato] .work-prop{transform-origin:105px 89px;animation:2s ease-in-out infinite scoop}[data-job=tech] .arm-left,[data-job=tech] .arm-right{transform-origin:80px 88px;animation:.35s infinite alternate type}[data-job=tech] .working-avatar{left:17%}[data-job=tech] .work-prop{display:none}.working-avatar .character{animation:2s ease-in-out infinite alternate bob}.animations-paused .work-scene *{animation-play-state:paused!important}@keyframes run-leg{0%{transform:rotate(-25deg)}to{transform:rotate(25deg)}}@keyframes run-arm{0%{transform:rotate(-17deg)}to{transform:rotate(17deg)}}@keyframes bob{to{transform:translateY(-3px)}}@keyframes shake{to{transform:translate(7px,-9px)rotate(12deg)}}@keyframes scoop{50%{transform:rotate(-25deg)translateY(-8px)}}@keyframes type{to{transform:rotate(-9deg)}}@keyframes churn{to{transform:rotate(360deg)}}@keyframes blink{50%{opacity:.3}}@keyframes serve{0%,20%{opacity:0;transform:translate(-20px)}50%,90%{opacity:1;transform:translate(0)}to{opacity:0}}@media (width<=700px){.avatar-runner{width:72px;height:117px;bottom:25px}.working-avatar{width:112px;height:183px;bottom:49px;left:4%}.workstation{height:140px;left:42%;right:4%}.work-scene{height:280px}.work-caption{font-size:10px}.monitor{border-width:5px;padding:6px;font-size:8px}.server{padding:8px 4px;font-size:9px}.bottles{letter-spacing:1px;font-size:24px}.served{font-size:34px}[data-job=tech] .working-avatar{left:6%}}@media (prefers-reduced-motion:reduce){.work-scene *,.avatar-runner *{animation:none!important}.avatar-runner{transition:none}.served{opacity:1}}.sprite{background-image:url(/assets/loris-sprites.png);background-position:0 0;background-repeat:no-repeat;background-size:400% 200%;width:100%;height:100%;display:block}.avatar-runner{width:112px;height:150px}.working-avatar{width:165px;height:220px;bottom:38px;left:8%}.running .sprite{animation:.32s step-end infinite sprite-run!important}[data-job=gelato] .working-avatar .sprite{animation:1.5s step-end infinite sprite-gelato}[data-job=bar] .working-avatar .sprite{animation:.44s step-end infinite sprite-bar}[data-job=tech] .working-avatar .sprite{background-position:100% 100%;animation:.45s ease-in-out infinite alternate typing-body}@keyframes sprite-run{0%,to{background-position:33.3333% 0}50%{background-position:66.6667% 0}}@keyframes sprite-gelato{0%,to{background-position:100% 0}50%{background-position:0 100%}}@keyframes sprite-bar{0%,to{background-position:33.3333% 100%;transform:rotate(-2deg)}50%{background-position:66.6667% 100%;transform:rotate(2deg)}}@keyframes typing-body{to{transform:translateY(2px)rotate(.7deg)}}@media (width<=700px){.avatar-runner{width:88px;height:117px}.working-avatar{width:137px;height:183px;bottom:49px;left:0}[data-job=tech] .working-avatar{left:0}}@media (prefers-reduced-motion:reduce){.running .sprite,.working-avatar .sprite{animation:none!important}[data-job=gelato] .working-avatar .sprite{background-position:100% 0}[data-job=bar] .working-avatar .sprite{background-position:33.3333% 100%}}.town{grid-template-columns:repeat(4,minmax(0,1fr));align-items:end;gap:26px;display:grid}.building,.building.bar{width:100%;max-width:none}.shoplabel{font-size:17px}.roof{letter-spacing:1px;font-size:10px}.building.hobby{background:#865a43;height:330px}.hobby .roof{color:#ffda9b;background:#663e31}.hobby .door{background:#563b34;border-color:#d7a36a}.hobby .awning{background:repeating-linear-gradient(90deg,#e6b680 0 20px,#8d4a3a 20px 40px)}.avatar-runner{transition:left .85s ease-in-out,top .85s ease-in-out,opacity .35s,transform .35s}[data-job=hobby]{background:linear-gradient(#d9e5da 0 68%,#99aa7a 68%);height:375px}[data-job=hobby] .workstation{display:none}[data-job=hobby] .working-avatar{width:225px;max-width:90%;height:300px;bottom:36px;left:50%;transform:translate(-50%)}[data-job=hobby] .sprite{clip-path:inset(0 0 0 5%);background-image:url(/assets/loris-bbq.png);background-position:0 0;background-size:200% 100%;animation:2s step-end infinite sprite-bbq}[data-job=hobby] .scene-window{z-index:4}[data-job=hobby] .work-caption{color:#263c28;background:#e4ebd2dd;border-radius:6px;padding:5px}@keyframes sprite-bbq{0%,to{background-position:0 0}50%{background-position:100% 0}}@media (width<=900px){.town{gap:17px}.roof{letter-spacing:.4px;font-size:8px}.shoplabel{font-size:14px}.shoplabel span{font-size:8px}}@media (width<=600px){.town{grid-template-columns:repeat(2,minmax(0,1fr));gap:65px 20px;padding:0 8px}.building,.building.bar,.building.hobby{width:100%;height:280px}.roof{font-size:10px}.shoplabel{font-size:17px}.shoplabel span{font-size:9px}.enter{bottom:-28px}.street{margin-top:35px}[data-job=hobby]{height:330px}[data-job=hobby] .working-avatar{width:204px;height:272px;bottom:34px;left:50%}}@media (prefers-reduced-motion:reduce){[data-job=hobby] .sprite{animation:none}.avatar-runner{transition:none}}nav{align-items:center}.language-control{color:#21362e;background:#f5f3ec;border:1px solid #a9b7a6;border-radius:22px;align-items:center;gap:6px;padding:7px 10px;font-size:13px;display:inline-flex}.language-control select{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;max-width:110px;padding:3px 0}.room-language{margin:-9px 30px 20px 0}.room-language .language-control{background:0 0}header{gap:18px}.language-control:focus-within{outline-offset:3px;outline:2px solid #ac6d31}@media (width<=700px){nav{flex-wrap:wrap;justify-content:flex-end;gap:12px}nav>a:nth-child(2){display:none}.language-control{padding:5px 8px;font-size:12px}.room-language{margin-top:0}}
