:root{--mc-green:var(--red);--mc-dirt:#2a1830;--mc-stone:#23283c;--mc-sky:var(--ink);--mc-dark:var(--ink);--mc-gold:var(--cyan);--mc-text:var(--paper);--mc-dim:#000000c7;--modal-accent:var(--magenta);--accent:var(--red);--accent-dark:var(--red-deep)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden}body{background:var(--ink);font-family:var(--pixel-font);color:var(--paper);cursor:default;-webkit-text-size-adjust:100%}body.modal-open{overflow:hidden}a{color:inherit}:focus-visible{outline:3px solid var(--cyan);outline-offset:2px}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes rgbShift{0%,to{text-shadow:-.045em 0 0 var(--red), .045em 0 0 var(--cyan), 0 0 16px #ff2bb059}25%{text-shadow:-.07em .02em 0 var(--red), .055em -.02em 0 var(--cyan), 0 0 22px #19e8ff59}50%{text-shadow:-.03em 0 0 var(--red), .08em 0 0 var(--cyan), 0 0 26px #ff2bb073}75%{text-shadow:-.06em -.02em 0 var(--red), .03em .02em 0 var(--cyan), 0 0 20px #19e8ff4d}}@keyframes glitchSkew{0%,92%,to{transform:translate(0)skew(0)}93%{transform:translate(-1px)skew(-.6deg)}95%{transform:translate(1px)skew(.5deg)}97%{transform:translate(-1px)skew(0)}}@keyframes speedSweep{0%{transform:translate(0,0)}to{transform:translate(600px)}}@keyframes neonPulse{0%,to{box-shadow:0 0 0 3px var(--stroke), 6px 6px 0 0 var(--red-deep), 0 0 22px #ff123d73}50%{box-shadow:0 0 0 3px var(--stroke), 6px 6px 0 0 var(--magenta-deep), 0 0 40px #ff2bb0b3}}@keyframes spiderSensePulse{0%,to{box-shadow:0 0 0 3px var(--stroke), 6px 6px 0 0 var(--red-deep), 0 0 0 4px #19e8ff59, 0 0 0 4px #ff2bb04d, 0 0 22px #ff123d73}50%{box-shadow:0 0 0 3px var(--stroke), 6px 6px 0 0 var(--magenta-deep), 0 0 0 15px #19e8ff00, 0 0 0 27px #ff2bb000, 0 0 40px #ff2bb0b3}}@keyframes senseRing{0%{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.14)}}.section-modal{position:relative}.section-modal:before,.section-modal:after{content:"";background:var(--web-corner) no-repeat;opacity:.07;pointer-events:none;z-index:3;background-size:100% 100%;width:84px;height:84px;position:absolute}.section-modal:before{top:0;left:0}.section-modal:after{bottom:0;right:0;transform:rotate(180deg)}@keyframes comicIn{0%{opacity:0;clip-path:inset(45% 0);transform:translate(-50%,-50%)scale(.9)}60%{opacity:1;clip-path:inset(0)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes modalIn{0%{opacity:0;transform:translate(-50%,-48%)scale(.94)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes comicInFlex{0%{opacity:0;clip-path:inset(45% 0);transform:scale(.9)}60%{opacity:1;clip-path:inset(0)}to{opacity:1;clip-path:inset(0);transform:scale(1)}}@keyframes screenExit{0%{opacity:1;filter:none;transform:scale(1)}40%{filter:drop-shadow(-8px 0 0 var(--red)) drop-shadow(8px 0 0 var(--cyan))}to{opacity:0;filter:drop-shadow(-16px 0 0 var(--red)) drop-shadow(16px 0 0 var(--cyan));transform:scale(1.06)}}@keyframes screenEnter{0%{opacity:0;filter:drop-shadow(-16px 0 0 var(--cyan)) drop-shadow(16px 0 0 var(--red));clip-path:inset(0 0 100%);transform:scale(1.08)}55%{opacity:1;clip-path:inset(0)}to{opacity:1;filter:none;clip-path:inset(0);transform:scale(1)}}@keyframes titlePulse{0%,to{filter:drop-shadow(0 0 10px #ff2bb040)}50%{filter:drop-shadow(0 0 22px #19e8ff66)}}@keyframes toastIn{0%{opacity:0;transform:translate(-50%)translateY(12px)skew(-4deg)}to{opacity:1;transform:translate(-50%)translateY(0)skew(0)}}@keyframes toastOut{0%{opacity:1;transform:translate(-50%)translateY(0)}to{opacity:0;transform:translate(-50%)translateY(-8px)}}body:after{content:"";z-index:9990;pointer-events:none;opacity:.5;background:repeating-linear-gradient(0deg,#0000000f 0 1px,#0000 1px 3px);position:fixed;inset:0}.screen{width:100%;height:100%;transition:opacity .5s;position:fixed;inset:0}.screen.hidden{display:none!important}.screen.active{opacity:1}.screen-exit{animation:.5s cubic-bezier(.5,0,.75,0) forwards screenExit}.screen-enter{animation:.5s cubic-bezier(.2,.7,.3,1) forwards screenEnter}#gameCanvas{width:100%;height:100%;image-rendering:pixelated;image-rendering:crisp-edges;display:block}.game-home-btn{z-index:60;font-family:var(--pixel-font);letter-spacing:1px;color:#fff;background:var(--panel);border:2px solid var(--stroke);box-shadow:3px 3px 0 var(--stroke), 0 0 12px #19e8ff40;cursor:pointer;text-shadow:1px 1px #0009;align-items:center;gap:9px;padding:10px 14px;font-size:9px;text-decoration:none;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s;display:inline-flex;position:fixed;top:12px;left:12px}.game-home-btn:before{content:"";border-style:solid;border-width:5px 7px 5px 0;border-color:transparent var(--cyan) transparent transparent;flex-shrink:0;width:0;height:0}.game-home-btn:hover{background:var(--panel-2);box-shadow:3px 3px 0 var(--stroke), 0 0 18px #19e8ff80}.game-home-btn:active{box-shadow:1px 1px 0 var(--stroke);transform:translateY(2px)}.game-bar{z-index:60;align-items:flex-start;gap:8px;display:flex;position:fixed;top:12px;left:12px}.game-bar .game-home-btn{position:static}.game-menu__btn:before{display:none}.game-menu__btn[aria-expanded=true]{background:var(--panel-2);border-color:var(--cyan)}@media (width<=600px){.game-bar{gap:6px}}.game-cta{text-align:center;font-family:var(--pixel-font);letter-spacing:1px;color:#fff;cursor:pointer;border:2px solid var(--stroke);background:linear-gradient(135deg, var(--red), var(--magenta));box-shadow:4px 4px 0 var(--red-deep);justify-content:center;align-items:center;padding:14px 20px;font-size:11px;line-height:1.5;text-decoration:none;transition:transform .1s,box-shadow .1s,filter .15s;display:inline-flex}.game-cta[hidden]{display:none}.game-cta:hover{filter:brightness(1.12)}.game-cta:active{box-shadow:1px 1px 0 var(--red-deep);transform:translateY(2px)}.game-cta--small{padding:10px 14px;font-size:9px}.game-cta--alt{background:var(--panel-2);border-color:var(--cyan);box-shadow:4px 4px 0 var(--stroke)}.game-cta--ghost{border-color:var(--edge);box-shadow:4px 4px 0 var(--stroke);color:var(--urban);background:0 0}.game-cta--ghost:hover{border-color:var(--cyan);color:#fff}.game-cta--blink{animation:1.3s steps(2,jump-none) infinite ctaBlink}@keyframes ctaBlink{0%{opacity:1}to{opacity:.55}}.hud{z-index:55;border:2px solid var(--stroke);width:min(460px,100vw - 440px);box-shadow:3px 3px 0 var(--stroke), 0 0 14px #19e8ff2e;font-family:var(--pixel-font);color:#fff;background:#0e1630e0;padding:8px 10px 20px;position:fixed;top:12px;left:50%;transform:translate(-50%)}.hud[hidden]{display:none}.hud.is-tuto{animation:1.4s ease-in-out infinite spiderSensePulse}.hud__row{align-items:center;gap:8px;display:flex}.hud__k{letter-spacing:1px;color:var(--urban);font-size:6px}.hud__goal{color:#fff;cursor:pointer;text-align:left;border:1px solid var(--cyan);background:#19e8ff14;flex:1;align-items:center;gap:7px;min-width:0;padding:7px 8px;font-family:inherit;display:flex}.hud__goal:hover{background:#19e8ff2e}.hud__goal-txt{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:8px;line-height:1.4;overflow:hidden}.hud__goal-dir{color:var(--cyan);text-align:center;min-width:12px;font-size:11px}.hud__count{flex-direction:column;align-items:center;gap:4px;margin:0;display:flex}.hud__count b{color:var(--cyan);font-size:9px;font-weight:400}.hud__map{height:12px;margin:12px 10px 0;position:relative}.hud__map:before{content:"";background:var(--edge);height:2px;position:absolute;top:5px;left:-10px;right:-10px}.hud__dot{background:var(--ink);border:2px solid var(--c);cursor:pointer;width:12px;height:12px;margin-left:-6px;padding:0;position:absolute;top:0}.hud__dot:after{content:"";position:absolute;inset:-9px}.hud__dot--portal{transform:rotate(45deg)}.hud__dot.is-done{background:var(--c)}.hud__dot.is-goal{animation:1s ease-in-out infinite hudGoal}.hud__dot span{font-family:var(--pixel-font);letter-spacing:.5px;color:var(--urban);white-space:nowrap;font-size:5px;position:absolute;top:15px;left:50%;transform:translate(-50%)}.hud__dot--portal span{display:none}.hud__dot.is-goal span,.hud__dot:hover span{color:#fff}@keyframes hudGoal{0%,to{box-shadow:0 0 0 0 var(--c)}50%{box-shadow:0 0 0 5px transparent, 0 0 10px var(--c)}}.hud__me{pointer-events:none;transition:transform .1s linear;position:absolute;inset:0}.hud__me i{border-style:solid;border-width:6px 4px 0;border-color:var(--paper) transparent transparent transparent;width:0;height:0;position:absolute;top:-7px;left:-4px}@media (width<=900px){.hud{width:min(460px,100vw - 24px);top:56px}}@media (width<=600px){.hud{padding:7px 8px 9px;top:52px}.hud__dot span{display:none}}.hud-banner{z-index:56;text-align:center;pointer-events:none;border:3px solid var(--stroke);box-shadow:6px 6px 0 var(--red-deep), 0 0 34px #ff2bb059;font-family:var(--pixel-font);background:#0e1630f0;flex-direction:column;align-items:center;gap:10px;max-width:92vw;padding:16px 26px;display:flex;position:fixed;top:34%;left:50%;transform:translate(-50%,-50%)}.hud-banner[hidden]{display:none}.hud-banner b{letter-spacing:1px;color:#fff;text-shadow:-.06em 0 0 var(--red), .06em 0 0 var(--cyan);font-size:15px;font-weight:400}.hud-banner span{color:var(--cyan);font-size:9px}.hud-banner.is-in{animation:2.2s cubic-bezier(.2,.9,.3,1) both bannerIn}@keyframes bannerIn{0%{opacity:0;transform:translate(-50%,-50%)scale(1.5)rotate(-3deg)}9%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-1deg)}82%{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(-1deg)}to{opacity:0;transform:translate(-50%,-62%)scale(1)rotate(-1deg)}}.title-screen{z-index:58;background:radial-gradient(90% 80% at 50% 45%,#090d1c8c 0%,#090d1ce6 100%);justify-content:center;align-items:center;padding:76px 16px 24px;transition:opacity .3s;display:flex;position:fixed;inset:0}.title-screen[hidden]{display:none}.title-screen.is-out{opacity:0;pointer-events:none}.title-screen__box{text-align:center;width:min(560px,100%)}.title-screen__kicker{font-family:var(--pixel-font);letter-spacing:2px;color:var(--cyan);margin-bottom:18px;font-size:9px}.title-screen__name{font-family:var(--pixel-font);color:#fff;text-shadow:-.05em 0 0 var(--red), .05em 0 0 var(--cyan), 4px 4px 0 var(--stroke);margin-bottom:14px;font-size:clamp(22px,6.4vw,40px);line-height:1.25}.title-screen__role{font-family:var(--pixel-font);color:var(--magenta);margin-bottom:18px;font-size:10px;line-height:1.6}.title-screen__pitch{font-family:var(--body-font);color:#d5dbe6;margin-bottom:22px;font-size:16px;line-height:1.55}.title-screen__save{font-family:var(--pixel-font);color:var(--urban);margin-bottom:14px;font-size:8px;line-height:1.6}.title-screen__actions{flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:22px;display:flex}.title-screen__sound{font-family:var(--body-font);color:#9fb0c4;font-size:12.5px;line-height:1.5}.tuto{z-index:55;opacity:0;border:3px solid var(--stroke);width:min(92vw,480px);box-shadow:6px 6px 0 var(--red-deep), 0 0 32px #ff123d40;background:#182449f7;padding:14px 16px 12px;transition:opacity .2s,transform .2s,border-color .15s;position:fixed;bottom:26px;left:50%;transform:translate(-50%,8px)}.tuto[hidden]{display:none}.tuto.is-in{opacity:1;transform:translate(-50%)}.tuto.is-ok{border-color:var(--cyan);box-shadow:6px 6px 0 var(--stroke), 0 0 32px #19e8ff80}.tuto__step{font-family:var(--pixel-font);letter-spacing:1px;color:var(--urban);margin-bottom:10px;font-size:7px}.tuto__main{align-items:center;gap:14px;display:flex}.tuto__keys{flex-shrink:0;gap:5px;display:flex}.tuto__keys kbd,.pause__keys kbd{font-family:var(--pixel-font);color:var(--cyan);border:2px solid var(--cyan);text-align:center;background:#19e8ff14;border-bottom-width:4px;min-width:36px;padding:9px 9px 7px;font-size:10px}.tuto.is-in:not(.is-ok) .tuto__keys kbd{animation:1.1s ease-in-out infinite keyTap}.tuto__keys kbd:nth-child(2){animation-delay:.55s!important}@keyframes keyTap{0%,60%,to{border-bottom-width:4px;transform:translateY(0)}30%{background:#19e8ff4d;border-bottom-width:2px;transform:translateY(2px)}}.tuto__title{font-family:var(--pixel-font);letter-spacing:1px;color:var(--magenta);text-shadow:-.03em 0 0 var(--red), .03em 0 0 var(--cyan);margin-bottom:6px;font-size:11px;line-height:1.5}.tuto__text{font-family:var(--body-font);color:#d5dbe6;font-size:14px;line-height:1.5}.tuto__foot{align-items:center;gap:12px;margin-top:12px;display:flex}.tuto__dots{flex:1;gap:6px;display:flex}.tuto__dots i{border:2px solid var(--edge);width:9px;height:9px}.tuto__dots i.is-cur{border-color:var(--cyan)}.tuto__dots i.is-done{border-color:var(--cyan);background:var(--cyan)}.tuto__skip,.pause__textbtn{font-family:var(--body-font);color:var(--urban);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:6px 2px;font-size:13px;text-decoration:underline}.tuto__skip:hover,.pause__textbtn:hover{color:#fff}@media (hover:none) and (pointer:coarse){.tuto{bottom:calc(92px + env(safe-area-inset-bottom,0px))}}@media (width<=600px){.tuto{padding:12px 12px 10px}.tuto__main{gap:10px}.tuto__text{font-size:13px}.tuto__keys kbd{min-width:30px;padding:8px 6px 6px;font-size:8px}}.pause{z-index:90;background:var(--halftone), #090d1cdb;background-size:var(--halftone-size), auto;justify-content:center;align-items:center;padding:16px;animation:.15s fadeIn;display:flex;position:fixed;inset:0}.pause[hidden]{display:none}.pause__card{background:var(--panel);border:3px solid var(--stroke);width:min(680px,100%);max-height:100%;box-shadow:8px 8px 0 var(--stroke), 0 0 40px #19e8ff33;padding:20px;overflow-y:auto}.pause__head{justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px;display:flex}.pause__title{font-family:var(--pixel-font);letter-spacing:2px;color:#fff;text-shadow:-.05em 0 0 var(--red), .05em 0 0 var(--cyan);font-size:18px;line-height:1.4}.pause__cols{grid-template-columns:1fr 1fr;gap:20px;margin-bottom:18px;display:grid}.pause__h{font-family:var(--pixel-font);letter-spacing:1px;color:var(--magenta);margin-bottom:10px;font-size:8px}.pause__h span{color:var(--cyan);margin-left:6px}.pause__list{flex-direction:column;gap:6px;list-style:none;display:flex}.pause__list button{text-align:left;cursor:pointer;color:#fff;border:1px solid var(--edge);border-left:4px solid var(--c);background:#ffffff08;flex-direction:column;gap:5px;width:100%;padding:10px 12px;display:flex}.pause__list button:hover{background:#19e8ff1a}.pause__list b{font-family:var(--pixel-font);letter-spacing:1px;font-size:8px;font-weight:400;line-height:1.5}.pause__list span{font-family:var(--body-font);color:var(--urban);font-size:12.5px}.pause__list .is-done span{color:var(--c)}.pause__inv{flex-wrap:wrap;gap:6px;margin-bottom:18px;list-style:none;display:flex}.pause__inv li{font-family:var(--pixel-font);color:#56658f;border:1px dashed var(--edge);padding:7px 8px;font-size:7px}.pause__inv li.is-got{color:var(--c);border:1px solid var(--c);background:#ffffff0a}.pause__keys{font-family:var(--body-font);color:#c6d2e0;flex-direction:column;gap:6px;font-size:13px;list-style:none;display:flex}.pause__keys li{align-items:center;gap:10px;display:flex}.pause__keys kbd{border-width:1px 1px 2px;flex-shrink:0;min-width:62px;padding:5px 6px 4px;font-size:7px}.pause__links{border:1px solid var(--edge);grid-template-columns:1fr 1fr;margin-bottom:12px;display:grid}.pause__links a,.pause__links button{font-family:var(--pixel-font);letter-spacing:1px;text-align:left;color:#fff;cursor:pointer;box-shadow:inset 0 0 0 .5px var(--edge);background:0 0;border:0;flex-direction:column;gap:3px;padding:12px 14px;font-size:9px;text-decoration:none;display:flex}.pause__links span{font-family:var(--body-font);letter-spacing:0;color:var(--urban);font-size:13px}.pause__links a:hover,.pause__links button:hover,.pause__links a:focus-visible,.pause__links button:focus-visible{background:#19e8ff1a}.pause__foot{flex-wrap:wrap;justify-content:space-between;gap:6px 18px;display:flex}@media (width<=600px){.pause{padding:8px}.pause__card{padding:14px}.pause__cols,.pause__links{grid-template-columns:1fr}.pause__title{font-size:14px}}.mission .pause__card{text-align:center;width:min(520px,100%);box-shadow:8px 8px 0 var(--red-deep), 0 0 46px #ff2bb066}.mission__kicker{font-family:var(--pixel-font);letter-spacing:2px;color:var(--cyan);margin-bottom:14px;font-size:9px}.mission .pause__title{margin-bottom:14px;font-size:clamp(16px,5vw,24px)}.mission__text{font-family:var(--body-font);color:#d5dbe6;margin-bottom:8px;font-size:15px;line-height:1.55}.mission__stats{font-family:var(--pixel-font);color:var(--urban);margin-bottom:20px;font-size:8px;line-height:1.6}.mission__actions{flex-direction:column;gap:12px;margin-bottom:14px;display:flex}.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.section-modal:focus{outline:none}.section-modal:focus-visible{outline:3px solid var(--cyan);outline-offset:3px}.vt-stage{view-transition-name:stage}.sound-toggle{z-index:60;font-family:var(--pixel-font);letter-spacing:1px;color:#fff;background:var(--panel);border:2px solid var(--stroke);box-shadow:3px 3px 0 var(--stroke), 0 0 12px #ff2bb040;cursor:pointer;text-shadow:1px 1px #0009;padding:10px 14px;font-size:9px;transition:background .15s,border-color .15s,transform .1s,color .15s,box-shadow .15s;position:fixed;top:12px;right:12px}.sound-toggle:hover{background:var(--panel-2);box-shadow:3px 3px 0 var(--stroke), 0 0 18px #ff2bb080}.sound-toggle:active{box-shadow:1px 1px 0 var(--stroke);transform:translateY(2px)}.sound-toggle--off{color:#8391a8;box-shadow:3px 3px 0 var(--stroke);border-color:#1a1d2b}@media (width<=600px){.sound-toggle{padding:9px 11px;font-size:8px}}.modal-backdrop{background:radial-gradient(80% 80% at 50% 50%, transparent 20%, #0000008c 100%), var(--halftone), #090d1ccc;background-size:auto, var(--halftone-size), auto;z-index:100;position:fixed;inset:0}.modal-backdrop.hidden{display:none}.section-modal{z-index:200;background:var(--panel);border:3px solid var(--stroke);width:min(880px,94vw);max-height:86vh;box-shadow:10px 10px 0 0 color-mix(in srgb, var(--modal-accent) 45%, #000), 0 0 46px #0009, 0 0 30px color-mix(in srgb, var(--modal-accent) 30%, transparent);flex-direction:column;animation:.32s cubic-bezier(.2,.7,.3,1) comicIn;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.section-modal.hidden{display:none}.modal-header{border-bottom:3px solid var(--stroke);background:var(--halftone), linear-gradient(180deg, color-mix(in srgb, var(--modal-accent) 16%, var(--panel-2)), var(--panel-2));background-size:var(--halftone-size), auto;flex-shrink:0;justify-content:space-between;align-items:center;gap:12px;padding:13px 16px;display:flex}.modal-title{font-family:var(--pixel-font);color:var(--modal-accent);letter-spacing:1px;text-shadow:-.03em 0 0 var(--red), .03em 0 0 var(--cyan), 0 0 10px color-mix(in srgb, var(--modal-accent) 60%, transparent);font-size:11px;line-height:1.5}.modal-close{font-family:var(--pixel-font);letter-spacing:1px;color:#eaf7fb;border:2px solid var(--cyan);cursor:pointer;min-height:36px;box-shadow:2px 2px 0 var(--stroke);background:#19e8ff0f;flex-shrink:0;padding:9px 12px;font-size:8px;transition:color .15s,border-color .15s,background .15s,box-shadow .15s,transform .1s}.modal-close:hover{color:#fff;box-shadow:2px 2px 0 var(--stroke), 0 0 12px #19e8ff80;background:#19e8ff29}.modal-close:active{box-shadow:0 0 0 var(--stroke);transform:translateY(2px)}.modal-body{scroll-behavior:smooth;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;font-family:var(--body-font);color:#dce0ec;background:var(--panel);scrollbar-width:thin;scrollbar-color:var(--modal-accent) #101018;flex:1;padding:22px 24px;font-size:15px;line-height:1.7;overflow:hidden auto}.modal-body::-webkit-scrollbar{width:8px}.modal-body::-webkit-scrollbar-track{background:#101018}.modal-body::-webkit-scrollbar-thumb{background:var(--modal-accent)}.sub-title{font-family:var(--pixel-font);color:var(--modal-accent);letter-spacing:1px;border-left:4px solid var(--modal-accent);text-shadow:0 0 10px color-mix(in srgb, var(--modal-accent) 40%, transparent);margin:24px 0 14px;padding-left:30px;font-size:10px;line-height:1.6;position:relative}.sub-title:before{content:"";background:var(--modal-accent);width:15px;height:15px;-webkit-mask:var(--spider) center / contain no-repeat;-webkit-mask:var(--spider) center / contain no-repeat;mask:var(--spider) center / contain no-repeat;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.section-divider{background:repeating-linear-gradient(90deg, var(--edge) 0 8px, transparent 8px 14px);height:2px;margin:24px 0}.section-intro{color:#aab4c8;margin-bottom:18px;font-size:13.5px}.profile-header{align-items:center;gap:18px;margin-bottom:16px;display:flex}.profile-avatar{filter:drop-shadow(0 2px 8px #00000080);font-size:56px;line-height:1}.profile-info{flex:1}.profile-name{font-family:var(--pixel-font);color:#fff;text-shadow:-.03em 0 0 var(--red), .03em 0 0 var(--cyan);margin-bottom:8px;font-size:13px;line-height:1.5}.profile-title{font-family:var(--body-font);color:var(--modal-accent);margin-bottom:12px;font-size:15px;font-weight:700}.profile-tags{flex-wrap:wrap;gap:8px;display:flex}.tag{font-family:var(--body-font);border:1px solid var(--edge);background:#ffffff0d;padding:4px 10px;font-size:12px}.profile-bio{color:#c6cad4;margin-bottom:16px;font-size:14px;line-height:1.7}.social-links{flex-wrap:wrap;gap:8px;margin-bottom:4px;display:flex}.social-link{font-family:var(--body-font);color:var(--cyan);border:2px solid var(--cyan);box-shadow:2px 2px 0 var(--stroke);align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s,box-shadow .15s,transform .1s;display:inline-flex}.social-link:hover{box-shadow:2px 2px 0 var(--stroke), 0 0 14px #19e8ff66;background:#19e8ff1f;transform:translateY(-1px)}.skills-badges{flex-wrap:wrap;gap:8px;display:flex}.skill-badge{font-family:var(--body-font);box-shadow:2px 2px 0 var(--stroke);background:#00000040;border:1px solid;padding:6px 12px;font-size:12.5px;font-weight:700;transition:background .15s,transform .1s}.skill-badge:hover{background:#ffffff14;transform:translateY(-1px)}.profile-positioning{color:#dfe4ee;border-left:4px solid var(--modal-accent);background:#ffffff0a;margin-bottom:16px;padding:10px 14px;font-size:13.5px;line-height:1.65}.skill-groups{flex-direction:column;gap:14px;display:flex}.skill-group__label{font-family:var(--body-font);letter-spacing:1px;text-transform:uppercase;color:var(--modal-accent);margin-bottom:7px;font-size:11px;font-weight:800}.skill-group .skill-badge{color:#d7dbe4;border-color:var(--edge)}.qualities{flex-wrap:wrap;gap:8px;display:flex}.qualities .tag{border-left:3px solid var(--modal-accent)}.tag--seeking{border-color:var(--red);color:#fff;background:#ff123d29}.langs-list{flex-wrap:wrap;gap:10px;display:flex}.lang-item{font-family:var(--body-font);border:1px solid var(--edge);background:#ffffff08;align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.lang-flag{font-size:16px}.lang-name{color:#d0ccc4}.lang-level{color:var(--modal-accent);font-size:12px;font-weight:700}.timeline{border-left:3px solid var(--edge);flex-direction:column;gap:20px;padding-left:24px;display:flex;position:relative}.timeline-item{position:relative}.timeline-dot{color:var(--modal-accent);font-size:18px;line-height:1;position:absolute;top:0;left:-36px}.timeline-card{background:var(--panel-2);border:2px solid var(--stroke);border-left:4px solid var(--modal-accent);box-shadow:4px 4px 0 var(--stroke);padding:14px 16px;transition:transform .14s,box-shadow .14s}.timeline-card:hover{box-shadow:4px 4px 0 var(--stroke), 0 0 16px color-mix(in srgb, var(--modal-accent) 35%, transparent);transform:translate(3px)}.timeline-date{font-family:var(--body-font);letter-spacing:.5px;text-transform:uppercase;color:var(--modal-accent);margin-bottom:6px;font-size:12px;font-weight:800}.timeline-title{color:#fff;margin-bottom:3px;font-size:15px;font-weight:800;line-height:1.4}.timeline-place{color:#aab4c8;margin-bottom:8px;font-size:13px}.timeline-desc{color:#c0c4cc;font-size:13.5px;line-height:1.65}.timeline-context{color:#cdd3de;border-left:3px solid var(--modal-accent);background:#ffffff08;margin-bottom:8px;padding:8px 10px;font-size:13px;line-height:1.6}.timeline-details{color:#c0c4cc;margin:8px 0 0;padding-left:18px;font-size:13px;line-height:1.6}.timeline-details li{margin-bottom:5px}.timeline-role{color:#c6cad2;border-left:3px solid var(--modal-accent);background:#ffffff08;margin-top:10px;padding:8px 10px;font-size:13px;line-height:1.55}.timeline-role__k{font-family:var(--body-font);letter-spacing:.6px;text-transform:uppercase;color:var(--modal-accent);margin-bottom:2px;font-size:10.5px;font-weight:800;display:block}.exp-list{flex-direction:column;gap:14px;display:flex}.exp-item{background:var(--panel-2);border:2px solid var(--stroke);border-left:4px solid var(--cyan);box-shadow:4px 4px 0 var(--stroke);gap:14px;padding:14px 16px;display:flex}.exp-icon{flex-shrink:0;font-size:22px}.exp-date{font-family:var(--body-font);letter-spacing:.5px;text-transform:uppercase;color:var(--cyan);margin-bottom:5px;font-size:12px;font-weight:800}.exp-title{color:#eee;margin-bottom:5px;font-size:15px;font-weight:800;line-height:1.4}.exp-desc{color:#b6bac2;font-size:13.5px;line-height:1.65}.passions-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.passion-card{background:var(--panel-2);border:2px solid var(--stroke);border-top:4px solid var(--modal-accent);box-shadow:4px 4px 0 var(--stroke);padding:15px;transition:transform .16s,box-shadow .16s}.passion-card:hover{box-shadow:4px 4px 0 var(--stroke), 0 0 18px color-mix(in srgb, var(--modal-accent) 35%, transparent);transform:translateY(-3px)}.passion-emoji{margin-bottom:8px;font-size:26px}.passion-title{color:#fff;margin-bottom:7px;font-size:14px;font-weight:800}.passion-desc{color:#b0b4bc;font-size:13px;line-height:1.65}.contact-info{flex-direction:column;gap:10px;margin-bottom:16px;display:flex}.contact-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.copy-btn{font-family:var(--body-font);letter-spacing:.5px;border:2px solid var(--cyan);color:#eaf7fb;cursor:pointer;box-shadow:2px 2px 0 var(--stroke);background:#19e8ff14;flex-shrink:0;padding:8px 12px;font-size:12px;font-weight:800;transition:background .15s,color .15s,transform .1s}.copy-btn:hover{color:#fff;background:#19e8ff33}.copy-btn:active{box-shadow:0 0 0 var(--stroke);transform:translateY(2px)}.copy-btn--ok{background:var(--cyan);color:#04121a;border-color:var(--cyan)}.contact-direct{font-family:var(--body-font);color:#e4e8f0;background:var(--panel-2);border:2px solid var(--stroke);word-break:break-word;align-items:center;gap:10px;padding:11px 14px;font-size:14px;text-decoration:none;transition:background .18s,color .18s,border-color .18s;display:inline-flex}.contact-direct:hover{border-color:var(--cyan);color:#fff;background:#19e8ff1a}.contact-direct--static{cursor:default}.contact-direct--static:hover{background:var(--panel-2);border-color:var(--stroke);color:#e4e8f0}.contact-links{flex-wrap:wrap;gap:10px;margin-bottom:4px;display:flex}.contact-link{font-family:var(--body-font);color:var(--link-color,#d0ccc4);border:2px solid var(--link-color,var(--edge));box-shadow:2px 2px 0 var(--stroke);align-items:center;gap:8px;padding:9px 14px;font-size:13px;font-weight:700;text-decoration:none;transition:background .15s,transform .1s;display:inline-flex}.contact-link:hover{background:#ffffff0f;transform:translateY(-1px)}.contact-icon{font-size:16px}.contact-form{flex-direction:column;gap:11px;margin-top:8px;display:flex}.form-input{font-family:var(--body-font);background:var(--ink-2);border:2px solid var(--edge);border-left:3px solid var(--cyan);color:#e4e8f0;resize:none;outline:none;width:100%;padding:12px 13px;font-size:15px;transition:border-color .18s,background .18s}.form-input::placeholder{color:#8f9bb4}.form-input:focus{border-color:var(--cyan);background:#19e8ff0d}.form-textarea{min-height:110px}.form-btn{font-family:var(--pixel-font);letter-spacing:1px;background:linear-gradient(135deg, var(--red), var(--magenta));color:#fff;border:3px solid var(--stroke);cursor:pointer;box-shadow:4px 4px 0 var(--red-deep);padding:13px 20px;font-size:10px;transition:filter .18s,transform .1s,box-shadow .1s}.form-btn:hover{filter:brightness(1.1)saturate(1.1)}.form-btn:active{box-shadow:1px 1px 0 var(--red-deep);transform:translateY(2px)}.form-status{font-family:var(--body-font);min-height:20px;font-size:13px}.form-status.success{color:var(--cyan)}.form-status.error{color:var(--red)}.contact-notice{font-family:var(--body-font);color:var(--cyan);border:1px solid var(--cyan);text-align:center;background:#19e8ff14;margin-bottom:6px;padding:9px 12px;font-size:12.5px;line-height:1.5}.projets-grid{grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px;display:grid}.proj-card{background:var(--panel-2);border:2px solid var(--stroke);border-top:4px solid var(--proj-accent,var(--magenta));box-shadow:5px 5px 0 var(--stroke);flex-direction:column;gap:9px;padding:17px;transition:transform .18s,box-shadow .18s;display:flex}.proj-card:hover{box-shadow:5px 5px 0 var(--stroke), 0 0 20px color-mix(in srgb, var(--proj-accent,var(--magenta)) 40%, transparent);transform:translateY(-3px)}.proj-emoji{font-size:30px}.proj-meta{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.proj-cat{font-family:var(--body-font);letter-spacing:.8px;text-transform:uppercase;color:var(--proj-accent,var(--magenta));background:color-mix(in srgb, var(--proj-accent,var(--magenta)) 16%, transparent);border:1px solid var(--proj-accent,var(--magenta));padding:3px 8px;font-size:10.5px;font-weight:800}.proj-type{font-family:var(--body-font);letter-spacing:1px;text-transform:uppercase;color:var(--proj-accent,var(--magenta));font-size:11px;font-weight:800}.proj-pick{font-family:var(--body-font);letter-spacing:.6px;text-transform:uppercase;color:color-mix(in srgb, var(--proj-accent,var(--magenta)) 65%, #fff);border:1px solid color-mix(in srgb, var(--proj-accent,var(--magenta)) 45%, transparent);white-space:nowrap;padding:2px 7px;font-size:10px;font-weight:800}.proj-title{color:#fff;font-size:16px;font-weight:800;line-height:1.35}.proj-desc{color:#b0b4bc;font-size:13.5px;line-height:1.65}.proj-role{color:#c6cad2;border-left:3px solid var(--proj-accent,var(--magenta));background:#ffffff08;padding:8px 10px;font-size:13px;line-height:1.55}.proj-role__k{font-family:var(--body-font);letter-spacing:.6px;text-transform:uppercase;color:var(--proj-accent,var(--magenta));margin-bottom:2px;font-size:10.5px;font-weight:800;display:block}.proj-tech{flex-wrap:wrap;gap:6px;margin-top:2px;display:flex}.tech-tag{font-family:var(--body-font);border:1px solid var(--edge);color:#c6cad2;background:#ffffff0f;padding:3px 8px;font-size:11.5px}.proj-links{flex-wrap:wrap;gap:8px;margin-top:6px;display:flex}.proj-link{font-family:var(--body-font);color:#04121a;background:var(--cyan);border:2px solid var(--stroke);box-shadow:2px 2px 0 var(--stroke);align-items:center;gap:7px;padding:8px 13px;font-size:12.5px;font-weight:800;text-decoration:none;transition:filter .18s,transform .1s;display:inline-flex}.proj-link:after{content:"";border:4px solid #0000;border-left:6px solid;border-right-width:0;width:0;height:0}.proj-link:hover{filter:brightness(1.1)}.proj-link:active{box-shadow:0 0 0 var(--stroke);transform:translateY(1px)}.proj-link--off{color:#8b93a5;border-color:var(--edge);cursor:default;background:#ffffff0d;font-weight:700}.proj-link--off:after{opacity:.6;border-color:#0000 #0000 #0000 #8b93a5}.proj-link--off:hover{filter:none}.carousel{position:relative}.carousel-tabs{border-bottom:2px solid var(--edge);scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch;gap:8px;margin-bottom:14px;padding:2px 2px 12px;display:flex;position:relative;overflow:auto hidden}.carousel-tabs::-webkit-scrollbar{display:none}.carousel-tab{scroll-snap-align:center;font-family:var(--pixel-font);letter-spacing:1px;color:#dfe5f4;background:var(--panel-2);border:2px solid var(--edge);box-shadow:3px 3px 0 var(--stroke);cursor:pointer;white-space:nowrap;flex:none;min-height:42px;padding:11px 13px;font-size:9px;line-height:1.5;transition:color .15s,border-color .15s,background .15s,box-shadow .15s,transform .1s}.carousel-tab:hover{color:#fff;border-color:var(--modal-accent);box-shadow:3px 3px 0 var(--stroke), 0 0 10px color-mix(in srgb, var(--modal-accent) 40%, transparent)}.carousel-tab:active{box-shadow:0 0 0 var(--stroke);transform:translateY(2px)}.carousel-tab:focus-visible{outline:2px solid var(--modal-accent);outline-offset:2px}.carousel-tab{border-top:3px solid var(--tab-accent,transparent)}.carousel-tab:hover{border-color:var(--tab-accent,var(--modal-accent));border-top-color:var(--tab-accent,var(--modal-accent));box-shadow:3px 3px 0 var(--stroke), 0 0 10px color-mix(in srgb, var(--tab-accent,var(--modal-accent)) 40%, transparent)}.carousel-tab.is-active{color:var(--tab-accent,var(--modal-accent));border-color:var(--tab-accent,var(--modal-accent));background:color-mix(in srgb, var(--tab-accent,var(--modal-accent)) 18%, var(--panel-2));box-shadow:3px 3px 0 var(--stroke), 0 0 16px color-mix(in srgb, var(--tab-accent,var(--modal-accent)) 50%, transparent);text-shadow:0 0 8px color-mix(in srgb, var(--tab-accent,var(--modal-accent)) 55%, transparent)}.carousel-tab.is-pick{position:relative}.carousel-tab.is-pick:after{content:"";background:var(--tab-accent,var(--modal-accent));width:5px;height:5px;box-shadow:0 0 6px color-mix(in srgb, var(--tab-accent,var(--modal-accent)) 70%, transparent);border-radius:50%;position:absolute;top:4px;right:4px}.carousel-group{font-family:var(--body-font);letter-spacing:1.5px;text-transform:uppercase;color:#7f8aa0;border-left:2px solid var(--edge);flex:none;align-self:stretch;align-items:center;padding:0 4px 0 8px;font-size:9px;font-weight:800;display:flex}.carousel-group:first-child{border-left:0;padding-left:2px}@media (width<=640px){.carousel-group{letter-spacing:1px;padding:0 3px 0 5px;font-size:8px}}.carousel-hint{font-family:var(--body-font);color:var(--urban);align-items:center;gap:8px;margin:-4px 2px 14px;font-size:12px;line-height:1.5;display:flex}.carousel-hint__keys{letter-spacing:2px;color:var(--modal-accent);border:1px solid var(--edge);flex:none;padding:1px 7px;font-size:13px;font-weight:800}.carousel-hint__grp{white-space:nowrap;color:color-mix(in srgb, var(--modal-accent) 80%, #fff)}.carousel-hint__grp b{font-weight:800}.carousel-hint__touch{display:none}.carousel-viewport{touch-action:pan-y;transition:height .35s cubic-bezier(.4,0,.2,1);overflow:hidden}.carousel-track{will-change:transform;align-items:flex-start;width:100%;transition:transform .42s cubic-bezier(.4,0,.2,1);display:flex}.carousel-slide{flex:0 0 100%;width:100%;min-width:0;padding:6px 12px 16px 6px}.carousel-viewport .carousel-card{width:100%}.carousel-card__kind{font-family:var(--body-font);letter-spacing:1px;text-transform:uppercase;color:var(--modal-accent);margin-bottom:6px;font-size:11px;font-weight:800}.carousel-nav{justify-content:space-between;align-items:center;gap:10px;margin-top:16px;display:flex}.carousel-btn{font-family:var(--pixel-font);letter-spacing:1px;color:#eaf7fb;border:2px solid var(--cyan);cursor:pointer;min-height:42px;box-shadow:2px 2px 0 var(--stroke);background:#19e8ff0f;align-items:center;gap:7px;padding:11px 14px;font-size:8px;transition:color .15s,background .15s,box-shadow .15s,transform .1s,opacity .15s;display:inline-flex}.carousel-btn__arrow{font-family:var(--body-font);font-size:15px;line-height:1}.carousel-btn:hover:not(:disabled){color:#fff;box-shadow:2px 2px 0 var(--stroke), 0 0 12px #19e8ff80;background:#19e8ff29}.carousel-btn:active:not(:disabled){box-shadow:0 0 0 var(--stroke);transform:translateY(2px)}.carousel-btn:disabled{opacity:.35;cursor:default}.carousel-btn:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}.carousel-count{font-family:var(--pixel-font);letter-spacing:1px;color:var(--urban);white-space:nowrap;font-size:8px}.carousel-cur{color:var(--modal-accent);text-shadow:0 0 8px color-mix(in srgb, var(--modal-accent) 55%, transparent)}@media (prefers-reduced-motion:reduce){.carousel-viewport,.carousel-track{transition:none!important}}@media (width<=600px){.carousel-btn__txt{display:none}.carousel-btn{padding:11px 16px}.carousel-btn__arrow{font-size:17px}.carousel-tab{min-height:40px;padding:10px 11px;font-size:8px}.carousel-slide{padding:5px 8px 14px 4px}.carousel-hint__keys,.carousel-hint__desktop{display:none}.carousel-hint__touch{display:inline}}.proj-card,.social-link,.contact-link{position:relative}.proj-card:after,.social-link:after,.contact-link:after{content:"";border:2px solid var(--cyan);opacity:0;pointer-events:none;position:absolute;inset:-1px}.proj-card:hover:after,.social-link:hover:after,.contact-link:hover:after{animation:.95s ease-out infinite senseRing}.mbtn-enter{position:relative}.mbtn-enter:active:after{content:"";border:2px solid var(--cyan);pointer-events:none;animation:.6s ease-out senseRing;position:absolute;inset:-2px}.toast{background:var(--panel);border:3px solid var(--stroke);box-shadow:5px 5px 0 var(--cyan), 0 0 20px #19e8ff4d;color:var(--cyan);font-family:var(--pixel-font);z-index:500;pointer-events:none;white-space:nowrap;letter-spacing:1px;padding:11px 18px;font-size:8px;position:fixed;bottom:32px;left:50%;transform:translate(-50%)}.toast.hidden{display:none}.toast-show{animation:.3s forwards toastIn}.toast-hide{animation:.4s forwards toastOut}#mobile-btns{padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));background:var(--halftone), linear-gradient(180deg, #0a0f2059, #0a0f20e6);background-size:var(--halftone-size), auto;border-top:2px solid var(--stroke);z-index:50;justify-content:space-between;align-items:center;gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.mbtn{font-family:var(--pixel-font);background:var(--panel-2);border:2px solid var(--cyan);color:#fff;cursor:pointer;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;width:64px;height:56px;box-shadow:3px 3px 0 var(--stroke);flex-shrink:0;justify-content:center;align-items:center;font-size:15px;transition:background .1s,border-color .1s,box-shadow .1s;display:flex}.mbtn:active{box-shadow:0 0 0 var(--stroke);background:#19e8ff33}.mbtn__arrow{color:var(--cyan);pointer-events:none;display:block}.mbtn-enter{background:linear-gradient(135deg, var(--red), var(--magenta));border-color:var(--stroke);height:52px;box-shadow:3px 3px 0 var(--red-deep);letter-spacing:1px;flex:1;font-size:8px}.mbtn-enter:active{filter:brightness(1.1)}.mbtn-close{background:var(--panel-2);border-color:var(--violet);height:52px;box-shadow:3px 3px 0 var(--stroke);letter-spacing:1px;flex:1;font-size:8px}.mbtn-close:active{background:#8a3bff40}@media (width<=600px){.proj-card:hover:after,.social-link:hover:after,.contact-link:hover:after{opacity:0;animation:none}.section-modal:before,.section-modal:after{opacity:.05}.modal-body{padding:16px 15px;font-size:14.5px}.modal-header{padding:12px 13px}.section-modal{box-shadow:6px 6px 0 0 color-mix(in srgb, var(--modal-accent) 45%, #000), 0 0 30px #0009}.profile-header{text-align:center;flex-direction:column}.profile-name{font-size:11px}.passions-grid{grid-template-columns:1fr 1fr}.projets-grid{grid-template-columns:1fr}.timeline{padding-left:14px}.timeline-dot{font-size:14px;left:-26px}.sub-title{margin:20px 0 12px;font-size:9px}.game-home-btn{padding:9px 11px;font-size:8px}}@media (width<=380px){.passions-grid{grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.proj-card:after,.social-link:after,.contact-link:after,.mbtn-enter:after{opacity:0!important;animation:none!important}.screen,.screen-exit,.screen-enter,.game-cta--blink,.hud,.hud__dot,.tuto__keys kbd,.pause,.section-modal{animation:none!important}.hud-banner.is-in{animation:.01ms both fadeIn!important}*{transition-duration:.01ms!important}}
