:root{--color-petrol: #1e3d4f;--color-petrol-dark: #142a36;--color-petrol-light: #2a5568;--color-grey-bg: #d8dde2;--color-grey-panel: #eef1f4;--color-grey-text: #5a6570;--color-white: #f7f9fb;--color-orange: #e8920a;--color-orange-dark: #c97a08;--color-green: #3d9a5a;--color-green-dark: #2f7a47;--color-cyan: #3ecfc9;--color-red: #c94a4a;--radius: 10px;--radius-sm: 6px;--shadow: 0 2px 8px rgba(20, 42, 54, .18);--font: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;min-height:100%;width:100%;overflow-x:hidden;overscroll-behavior-x:none;font-family:var(--font);background:var(--color-grey-bg);color:var(--color-petrol-dark)}body{display:flex;flex-direction:column;min-height:100dvh}.iyf-site-nav{position:sticky;top:0;z-index:3000;display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-shrink:0;min-height:52px;padding:max(.4rem,env(safe-area-inset-top)) .85rem .4rem;background:#fff;border-bottom:1px solid #d8dee8}.iyf-site-nav__home{display:flex;align-items:center;min-height:44px;min-width:44px;flex-shrink:0;text-decoration:none}.iyf-site-nav__logo{display:block;height:40px;width:auto;max-width:140px;object-fit:contain}.iyf-site-nav__percorso{margin-left:auto;display:inline-flex;align-items:center;min-height:44px;font-size:clamp(.72rem,2.8vw,.95rem);font-weight:700;letter-spacing:.02em;line-height:1.25;text-align:right;text-decoration:none;color:#133b7a}.iyf-site-nav__percorso:hover,.iyf-site-nav__percorso:focus-visible{text-decoration:underline}#app{flex:1;min-height:0;width:100%;display:flex;flex-direction:column;max-width:1400px;margin:0 auto}.app-header{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:1rem 1.5rem;padding:.85rem 1.25rem;background:linear-gradient(180deg,var(--color-petrol) 0%,var(--color-petrol-dark) 100%);color:var(--color-white);border-bottom:3px solid var(--color-orange)}.app-header__title{display:flex;flex-wrap:wrap;align-items:baseline;gap:.35em .5em;margin:0;font-size:clamp(1rem,2.5vw,1.35rem);font-weight:800;letter-spacing:.06em}.app-version{font-size:.62em;font-weight:700;letter-spacing:.08em;font-variant-numeric:tabular-nums;opacity:.55}.app-header__mission{margin:0;font-size:clamp(.85rem,2vw,1rem);font-weight:500;opacity:.95;text-align:center}.app-header__stats{display:flex;gap:1rem}.stat{display:flex;flex-direction:column;align-items:center;min-width:4.5rem;padding:.35rem .75rem;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-sm)}.stat__label{font-size:.65rem;font-weight:700;letter-spacing:.08em;opacity:.75}.stat__value{font-size:1.1rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--color-cyan)}.app-main{flex:1;display:grid;grid-template-columns:3fr 2fr;gap:0;min-height:0;background:var(--color-grey-panel)}.panel{display:flex;flex-direction:column;min-width:0;min-height:0;padding:.75rem}.panel--game{border-right:2px solid var(--color-petrol-light);background:var(--color-petrol-dark)}.panel--blockly{background:var(--color-grey-panel)}.blockly-hint{margin:0 0 .5rem;padding:.45rem .65rem;font-size:clamp(.78rem,2vw,.88rem);line-height:1.35;color:var(--color-grey-text);background:#ffffffb8;border-left:3px solid var(--color-cyan);border-radius:var(--radius-sm)}.game-viewport{flex:1;display:flex;align-items:center;justify-content:center;width:100%;max-height:100%;aspect-ratio:9 / 7;margin:auto;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);background:#0a1520}.game-viewport canvas{display:block;width:100%!important;height:100%!important;object-fit:contain}.blockly-viewport{flex:1;min-height:280px;position:relative;border:2px dashed var(--color-petrol-light);border-radius:var(--radius);background:#1a2832;overflow:hidden}.blockly-viewport,.blockly-viewport .injectionDiv,.blockly-viewport .blocklySvg,.blockly-viewport .blocklyFlyout,.blockly-viewport .blocklyDraggable{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;touch-action:none}.blockly-viewport>.injectionDiv{position:absolute!important;top:0;right:0;bottom:0;left:0;width:100%!important;height:100%!important}.blockly-viewport .blocklySvg{border-radius:calc(var(--radius) - 2px)}.blockly-viewport .blocklyMainBackground{fill:#1a2832!important}.blockly-viewport .blocklyText,.blockly-viewport .blocklyEditableText{font-size:13px!important;font-weight:600}.blockly-viewport .blocklyTreeRow{min-height:2.75rem;padding-top:6px;padding-bottom:6px}.blockly-viewport .blocklyToolboxDiv{min-width:9.5rem}.blockly-viewport .blocklyToolboxDiv[layout=h]{min-width:0;width:100%}.blockly-viewport .blocklyToolboxDiv[layout=h] .blocklyTreeRow{padding-inline:1rem}.blockly-viewport .blocklyFlyoutButton{min-height:2.5rem}.blockly-viewport .blocklyTrash{display:none!important;visibility:hidden!important;pointer-events:none!important}.blockly-reset-program{position:absolute;right:1rem;bottom:1.25rem;z-index:30;width:56px;height:64px;padding:0;border:0;border-radius:10px;background:#142a364d;color:#64727d;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.blockly-reset-program:before{content:"";position:absolute;left:13px;right:13px;top:18px;bottom:7px;border-radius:3px 3px 6px 6px;background:currentColor}.blockly-reset-program:after{content:"";position:absolute;top:10px;left:9px;width:38px;height:6px;border-radius:4px;background:currentColor;box-shadow:10px -5px 0 -2px currentColor}.blockly-reset-program:hover{color:var(--color-orange);background:#e8920a1f}.blockly-reset-program:active{transform:scale(.94)}.blockly-reset-program:focus-visible{outline:3px solid var(--color-cyan);outline-offset:4px}@media(max-width:768px){.blockly-reset-program{right:.75rem;bottom:.9rem;width:52px;height:58px}}.app-controls{display:flex;justify-content:center;gap:.75rem;padding:.85rem 1.25rem;background:var(--color-petrol);border-top:2px solid var(--color-petrol-light)}.btn{min-width:7rem;min-height:48px;padding:.65rem 1.5rem;border:none;border-radius:var(--radius);font-family:var(--font);font-size:.95rem;font-weight:800;letter-spacing:.05em;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:filter .15s,transform .1s}.btn:focus-visible{outline:3px solid var(--color-cyan);outline-offset:3px}.btn:disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.5;transform:none}.btn:active{transform:scale(.97)}.btn--run{background:var(--color-green);color:var(--color-white)}.btn--run:hover{filter:brightness(1.08)}.btn--stop{background:var(--color-orange);color:var(--color-petrol-dark)}.btn--stop:hover{filter:brightness(1.08)}.btn--reset{background:var(--color-grey-panel);color:var(--color-petrol);border:2px solid var(--color-petrol-light)}.btn--reset:hover{filter:brightness(.97)}@media(max-width:768px){#app{min-height:0}.app-header{grid-template-columns:1fr;text-align:center;gap:.5rem;padding:.65rem max(.75rem,env(safe-area-inset-right)) .65rem max(.75rem,env(safe-area-inset-left));order:1}.app-header__stats{justify-content:center}.app-main{display:contents}.panel--game{order:2;padding:.5rem;border-right:none;border-bottom:none}.app-controls{order:3;position:sticky;bottom:0;z-index:100;gap:.5rem;padding:.65rem max(.65rem,env(safe-area-inset-right)) max(.65rem,env(safe-area-inset-bottom)) max(.65rem,env(safe-area-inset-left));box-shadow:0 -4px 14px #142a3633}.panel--blockly{order:4;min-height:0}.blockly-viewport{flex:none;height:min(52dvh,440px);min-height:320px;overscroll-behavior:contain}.blockly-viewport .blocklyToolboxDiv{min-width:0}.btn{flex:1;min-width:0}.game-viewport{width:100%;max-height:none}.blockly-hint{margin-bottom:.35rem}}@media(max-width:390px){.app-header__title{font-size:.95rem}.app-header__mission{font-size:.8rem}.blockly-viewport{height:min(48dvh,380px);min-height:280px}}@media(pointer:coarse){.btn{min-height:52px}.blockly-viewport .blocklyTreeRow{min-height:3rem}}@media(max-width:900px)and (max-height:600px)and (orientation:landscape){#app{height:auto;min-height:0}.app-header{order:1;grid-template-columns:auto 1fr auto;gap:.6rem;padding:.35rem max(.65rem,env(safe-area-inset-right)) .35rem max(.65rem,env(safe-area-inset-left))}.app-header__stats{gap:.4rem}.stat{min-width:3.8rem;padding:.2rem .4rem}.app-main{order:2;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);flex:1;min-height:0}.panel--game,.panel--blockly{order:initial;min-height:0}.panel--game{border-right:2px solid var(--color-petrol-light)}.game-viewport{width:auto;max-width:100%;max-height:100%}.blockly-viewport{flex:1 1 auto;height:auto;min-height:0}.app-controls{order:3;position:relative;padding-top:.4rem;padding-bottom:max(.4rem,env(safe-area-inset-bottom))}}#blockly-root .lanterna-block-active .blocklyPath{filter:none;stroke:var(--color-cyan)!important;stroke-width:3px!important}#blockly-root .lanterna-block-active .blocklyPathLight,#blockly-root .lanterna-block-active .blocklyPathDark{stroke:var(--color-cyan)!important;stroke-width:2px!important;opacity:.55}#blockly-root .lanterna-block-error .blocklyPath{filter:none;stroke:var(--color-orange)!important;stroke-width:3px!important}#blockly-root .lanterna-block-error .blocklyPathLight,#blockly-root .lanterna-block-error .blocklyPathDark{stroke:var(--color-orange-dark)!important;stroke-width:2px!important;opacity:.65}.success-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;background:#142a36b8;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease}.success-overlay--visible{opacity:1;visibility:visible;pointer-events:auto}.success-overlay__panel{width:min(100%,420px);padding:1.75rem 1.5rem;border-radius:var(--radius);border:3px solid var(--color-cyan);background:linear-gradient(165deg,var(--color-petrol) 0%,var(--color-petrol-dark) 100%);box-shadow:var(--shadow),0 0 32px #3ecfc940;color:var(--color-white);text-align:center}.success-overlay__title{margin:0 0 .75rem;font-size:clamp(1.1rem,4vw,1.45rem);font-weight:800;letter-spacing:.08em;color:var(--color-cyan)}.success-overlay__message{margin:0 0 1.25rem;font-size:clamp(.95rem,3vw,1.05rem);line-height:1.45;opacity:.95}.success-overlay__locker{margin:0 0 1.25rem}.success-overlay__locker-label{margin:0 0 .45rem;font-size:.72rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--color-cyan)}.locker__digits{display:flex;justify-content:center;gap:.4rem}.locker__digit{flex:0 0 auto;width:2.55rem;height:3.1rem;display:grid;place-items:center;background:var(--color-cyan);color:var(--color-petrol-dark);border-radius:8px;font-size:1.7rem;font-weight:800;font-variant-numeric:tabular-nums}.locker__digit--letter{width:2.2rem;background:transparent;color:var(--color-cyan);border:2px solid var(--color-cyan);font-variant-numeric:normal}.success-overlay__locker-help{margin:.55rem 0 0;font-size:.88rem;font-weight:700}.success-overlay__stats{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:0 0 1.5rem;padding:0}.success-overlay__stat{margin:0;padding:.75rem .5rem;border-radius:var(--radius-sm);background:#ffffff0f;border:1px solid rgba(62,207,201,.35)}.success-overlay__stat-label{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.1em;color:var(--color-cyan);opacity:.9}.success-overlay__stat-value{margin:0;font-size:clamp(1.15rem,4vw,1.4rem);font-weight:800;font-variant-numeric:tabular-nums}.success-overlay__retry{min-width:160px}.splash-screen{position:fixed;top:0;right:0;bottom:0;left:0;z-index:2000;display:flex;align-items:stretch;justify-content:stretch;padding:0;background:radial-gradient(ellipse 80% 60% at 75% 50%,rgba(62,207,201,.08) 0%,transparent 55%),linear-gradient(145deg,var(--color-petrol-dark) 0%,#0f2230 45%,var(--color-petrol) 100%);color:var(--color-white);cursor:pointer;touch-action:manipulation;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .45s ease,visibility .45s ease}.splash-screen--visible{opacity:1;visibility:visible;pointer-events:auto}.splash-screen--hiding{opacity:0;visibility:hidden;pointer-events:none}.splash-screen--hidden{display:none}.splash-screen__inner{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);align-items:stretch;gap:0;width:100%;height:100%;min-height:0}.splash-screen__content{display:flex;flex-direction:column;justify-content:center;gap:clamp(.85rem,2vw,1.35rem);padding:clamp(1rem,4vw,2.5rem) clamp(1rem,3vw,2rem);min-width:0;z-index:1}.splash-screen__title{margin:0;font-size:clamp(2rem,5.5vw,3.75rem);font-weight:800;line-height:1.05;letter-spacing:.07em;color:var(--color-white);text-shadow:0 2px 24px rgba(62,207,201,.18)}.splash-screen__title:after{content:"";display:block;width:min(5rem,28vw);height:4px;margin-top:.85rem;border-radius:2px;background:linear-gradient(90deg,var(--color-cyan) 0%,var(--color-orange) 100%)}.splash-screen__version{margin:-.35rem 0 0;font-size:clamp(.8rem,2vw,1rem);font-weight:700;letter-spacing:.12em;font-variant-numeric:tabular-nums;color:#f7f9fb8c}.splash-screen__credits{margin:0;max-width:28rem;font-size:clamp(.95rem,2.2vw,1.15rem);font-weight:500;line-height:1.45;color:#f7f9fbc7}.splash-screen__cta{margin:clamp(.35rem,1.5vw,.75rem) 0 0;font-size:clamp(.82rem,1.8vw,.98rem);font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--color-cyan);animation:splash-cta-pulse 2.8s ease-in-out infinite}@keyframes splash-cta-pulse{0%,to{opacity:1}50%{opacity:.45}}.splash-lanterna{position:relative;width:100%;height:100%;min-height:0;overflow:hidden;margin-left:clamp(-1.5rem,-3vw,-.5rem);background:linear-gradient(180deg,var(--color-petrol-dark) 0%,#152638 38%,#1e2848 68%,#2a1848 100%)}.splash-lanterna__bg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;min-width:100%;min-height:100%;object-fit:cover;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:0}.splash-lanterna__tower{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:contain;object-position:center bottom;pointer-events:none;-webkit-user-select:none;user-select:none;z-index:1}.splash-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;align-items:center;justify-content:center;padding:1.25rem;background:repeating-linear-gradient(-45deg,#3ecfc91f 0,#3ecfc91f 12px,#0f223033 12px,#0f223033 24px)}.splash-placeholder[hidden]{display:none}.splash-placeholder span{max-width:12rem;padding:.75rem 1rem;border:2px dashed var(--color-cyan);border-radius:var(--radius);background:#07121cb8;color:var(--color-cyan);font-size:.95rem;font-weight:800;letter-spacing:.06em;text-align:center;text-transform:uppercase}.splash-lanterna--placeholder{background:linear-gradient(180deg,#0c3a42,#12324a 45%,#1a2840)}@media(max-width:768px){.splash-screen__inner{grid-template-columns:1fr;grid-template-rows:clamp(220px,38vh,340px) minmax(0,1fr);gap:0;overflow:hidden}.splash-lanterna{order:-1;width:100%;height:100%;min-height:0;margin-left:0}.splash-screen__content{order:1;align-items:center;text-align:center;padding:clamp(1rem,4vw,1.75rem) clamp(.85rem,4vw,1.25rem) clamp(1.25rem,5vw,2rem)}.splash-screen__title:after{margin-inline:auto}.splash-screen__credits{max-width:none}}@media(max-width:390px){.splash-lanterna{height:100%;min-height:0}.splash-screen__content{padding-inline:.85rem}.splash-screen__title{font-size:clamp(1.65rem,8vw,2rem);letter-spacing:.05em}.splash-screen__cta{letter-spacing:.1em}}@media(max-width:900px)and (max-height:600px)and (orientation:landscape){.splash-screen__inner{grid-template-columns:minmax(0,42fr) minmax(0,58fr);grid-template-rows:1fr;overflow:hidden}.splash-lanterna{order:initial;width:100%;height:100%;min-height:0}.splash-screen__content{order:initial;align-items:flex-start;text-align:left;padding-block:.75rem}}
