:root{--os-primary: #007AFF;--os-secondary: #5856D6;--os-bg: #F2F2F7;--os-surface: rgba(255, 255, 255, .8);--os-shadow: rgba(0, 0, 0, .1);--os-border: rgba(0, 0, 0, .1);--os-text: #1D1D1F;--os-text-secondary: #86868B}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;background:var(--os-bg);overflow:hidden;height:100vh;width:100vw}#app{height:100vh;width:100vw}::-webkit-scrollbar{width:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0003;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#0000004d}.wallpaper[data-v-361def8c]{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;transition:background-image .5s ease-in-out}.gradient-overlay[data-v-361def8c]{position:absolute;top:0;left:0;width:100%;height:100%;background:radial-gradient(circle at center,rgba(255,255,255,var(--b80a4bda)) 0%,transparent 70%);pointer-events:none}.window-controls[data-v-c80f86f7]{display:flex;align-items:center;gap:8px}.control-button[data-v-c80f86f7]{width:12px;height:12px;border-radius:50%;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;transition:all .2s ease;position:relative;outline:none}.control-button .control-icon[data-v-c80f86f7]{opacity:0;transition:opacity .2s ease;color:#000c;font-size:12px;line-height:1}.control-button:hover .control-icon[data-v-c80f86f7]{opacity:1}.close[data-v-c80f86f7]{background:#ff5f56;border:1px solid #e0443e}.minimize[data-v-c80f86f7]{background:#ffbd2e;border:1px solid #dea123}.maximize[data-v-c80f86f7]{background:#27ca3f;border:1px solid #1aab29}.control-button[data-v-c80f86f7]:hover{transform:scale(1.1)}.control-button[data-v-c80f86f7]:active{transform:scale(.95)}.window[data-v-a2a16153]{background:#fffffff2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:12px;box-shadow:0 20px 40px #00000026;border:1px solid rgba(255,255,255,.2);overflow:hidden;transition:box-shadow .2s ease;min-width:75svw;min-height:80svh}.window.active[data-v-a2a16153]{box-shadow:0 25px 50px #00000040}.window.minimized[data-v-a2a16153]{transform:scale(.1);opacity:0}.window.maximized[data-v-a2a16153]{border-radius:0}.desktop-mode[data-v-a2a16153]{min-width:75svw;min-height:80svh}.desktop-mode.maximized[data-v-a2a16153]{border-radius:0}.desktop-titlebar[data-v-a2a16153]{height:40px;background:#fffc;border-bottom:1px solid rgba(0,0,0,.05);display:flex;align-items:center;padding:0 15px;cursor:move;-webkit-user-select:none;user-select:none;position:relative}.window-controls[data-v-a2a16153]{display:flex;align-items:center;gap:8px;z-index:10}.window-title[data-v-a2a16153]{position:absolute;left:50%;transform:translate(-50%);font-size:14px;font-weight:500;color:var(--os-text, #333);pointer-events:none}.window-controls-spacer[data-v-a2a16153]{width:78px}.desktop-content[data-v-a2a16153]{height:calc(100% - 40px);overflow:auto;position:relative}.mobile-mode[data-v-a2a16153]{border-radius:0;min-width:100svw;min-height:100svh;box-shadow:none;border:none}.mobile-titlebar[data-v-a2a16153]{height:60px;background:#fffffff2;border-bottom:1px solid rgba(0,0,0,.1);display:flex;align-items:center;padding:0 20px;position:relative;-webkit-user-select:none;user-select:none}.mobile-handle[data-v-a2a16153]{width:40px;height:4px;background:#0003;border-radius:2px;position:absolute;top:8px;left:50%;transform:translate(-50%)}.mobile-title[data-v-a2a16153]{font-size:18px;font-weight:600;color:#333;text-align:center;flex:1}.mobile-controls[data-v-a2a16153]{position:absolute;right:20px;top:50%;transform:translateY(-50%)}.mobile-close-btn[data-v-a2a16153]{width:32px;height:32px;border-radius:50%;background:#0000001a;border:none;display:flex;align-items:center;justify-content:center;font-size:16px;font-weight:600;color:#666;cursor:pointer;transition:all .2s ease}.mobile-close-btn[data-v-a2a16153]:hover{background:#ff00001a;color:#f33}.mobile-content[data-v-a2a16153]{height:calc(100% - 60px);overflow:auto;position:relative;-webkit-overflow-scrolling:touch}.tablet-mode[data-v-a2a16153]{border-radius:0;min-width:100svw;min-height:100svh;box-shadow:none;border:none}.tablet-mode.maximized[data-v-a2a16153]{border-radius:0}.tablet-titlebar[data-v-a2a16153]{height:56px;background:#fffffff2;border-bottom:1px solid rgba(0,0,0,.08);display:flex;align-items:center;padding:0 20px;-webkit-user-select:none;user-select:none;position:relative;cursor:default}.tablet-controls-left[data-v-a2a16153]{display:flex;align-items:center;gap:12px;z-index:10;flex-shrink:0}.tablet-btn[data-v-a2a16153]{width:40px;height:40px;border-radius:50%;border:none;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;cursor:pointer;transition:all .2s ease;flex-shrink:0;touch-action:manipulation}.close-btn[data-v-a2a16153]{background:#ff5f57;color:#fff}.close-btn[data-v-a2a16153]:hover,.close-btn[data-v-a2a16153]:active{background:#ff4841}.minimize-btn[data-v-a2a16153]{background:#ffbd2e;color:#fff}.minimize-btn[data-v-a2a16153]:hover,.minimize-btn[data-v-a2a16153]:active{background:#fa0}.tablet-title[data-v-a2a16153]{font-size:17px;font-weight:600;color:#333;text-align:center;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 10px}.tablet-controls-spacer[data-v-a2a16153]{width:92px;flex-shrink:0}.tablet-content[data-v-a2a16153]{height:calc(100% - 56px);overflow:auto;position:relative;-webkit-overflow-scrolling:touch}.resize-handles[data-v-a2a16153]{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none}.resize-handle[data-v-a2a16153]{position:absolute;pointer-events:auto;z-index:10}.resize-n[data-v-a2a16153]{top:0;left:8px;right:8px;height:4px;cursor:n-resize}.resize-s[data-v-a2a16153]{bottom:0;left:8px;right:8px;height:4px;cursor:s-resize}.resize-e[data-v-a2a16153]{top:8px;right:0;bottom:8px;width:4px;cursor:e-resize}.resize-w[data-v-a2a16153]{top:8px;left:0;bottom:8px;width:4px;cursor:w-resize}.resize-ne[data-v-a2a16153]{top:0;right:0;width:8px;height:8px;cursor:ne-resize}.resize-nw[data-v-a2a16153]{top:0;left:0;width:8px;height:8px;cursor:nw-resize}.resize-se[data-v-a2a16153]{bottom:0;right:0;width:8px;height:8px;cursor:se-resize}.resize-sw[data-v-a2a16153]{bottom:0;left:0;width:8px;height:8px;cursor:sw-resize}@media (max-width: 767px){.window[data-v-a2a16153]{touch-action:manipulation}.mobile-titlebar[data-v-a2a16153]{height:50px;padding:0 15px}.mobile-title[data-v-a2a16153]{font-size:16px}.mobile-close-btn[data-v-a2a16153]{width:28px;height:28px;font-size:14px}}@media (max-width: 480px){.mobile-titlebar[data-v-a2a16153]{height:44px;padding:0 10px}.mobile-title[data-v-a2a16153]{font-size:14px}.mobile-close-btn[data-v-a2a16153]{width:24px;height:24px;font-size:12px}}@media (max-width: 767px) and (orientation: landscape){.mobile-titlebar[data-v-a2a16153]{height:40px}.mobile-handle[data-v-a2a16153]{top:6px;height:3px}}@media (min-width: 768px) and (max-width: 1023px){.window[data-v-a2a16153]{touch-action:manipulation}.tablet-titlebar[data-v-a2a16153]{height:56px;padding:0 20px}.tablet-btn[data-v-a2a16153]{width:40px;height:40px}}.about-app[data-v-7cf3c20d]{padding:20px;height:100%;display:flex;flex-direction:column}.app-header[data-v-7cf3c20d]{margin-bottom:30px}.app-header h2[data-v-7cf3c20d]{color:var(--os-text);font-size:24px;font-weight:600}.app-content[data-v-7cf3c20d]{flex:1;display:flex;flex-direction:column;gap:30px}.profile-section[data-v-7cf3c20d]{text-align:center}.avatar[data-v-7cf3c20d]{width:15vw;margin-bottom:15px;border-radius:50%}.profile-section h3[data-v-7cf3c20d]{font-size:28px;color:var(--os-text);margin-bottom:5px}.title[data-v-7cf3c20d]{color:var(--os-text-secondary);font-size:16px}.bio-section p[data-v-7cf3c20d]{color:var(--os-text);line-height:1.6;margin-bottom:30px}.stats[data-v-7cf3c20d]{display:flex;justify-content:space-around;gap:20px}.stat[data-v-7cf3c20d]{text-align:center}.stat-number[data-v-7cf3c20d]{display:block;font-size:32px;font-weight:700;color:var(--os-primary);margin-bottom:5px}.stat-label[data-v-7cf3c20d]{color:var(--os-text-secondary);font-size:14px}.contact-app[data-v-608245ce]{padding:20px;height:100%;display:flex;flex-direction:column}.app-header[data-v-608245ce]{margin-bottom:30px}.app-header h2[data-v-608245ce]{color:var(--os-text);font-size:24px;font-weight:600}.app-content[data-v-608245ce]{flex:1;display:flex;flex-direction:column;gap:30px}.profile-section[data-v-608245ce]{text-align:center}.avatar[data-v-608245ce]{width:20%;margin-bottom:15px}.profile-section h3[data-v-608245ce]{font-size:28px;color:var(--os-text);margin-bottom:5px}.title[data-v-608245ce]{color:var(--os-text-secondary);font-size:16px}.bio-section p[data-v-608245ce]{color:var(--os-text);line-height:1.6;margin-bottom:30px}.stats[data-v-608245ce]{display:flex;justify-content:space-around;gap:20px}.stat[data-v-608245ce]{text-align:center}.stat-number[data-v-608245ce]{display:block;font-size:32px;font-weight:700;color:var(--os-primary);margin-bottom:5px}.stat-label[data-v-608245ce]{color:var(--os-text-secondary);font-size:14px}.skills-app[data-v-3bbb8bc3]{padding:20px;height:100%;display:flex;flex-direction:column}.app-header[data-v-3bbb8bc3]{margin-bottom:30px}.app-header h2[data-v-3bbb8bc3]{color:var(--os-text);font-size:24px;font-weight:600}.app-content[data-v-3bbb8bc3]{flex:1;display:flex;flex-direction:column;gap:30px}.tech-grid[data-v-3bbb8bc3]{display:grid;grid-template-columns:repeat(auto-fit,minmax(100px,1fr));gap:20px;align-items:center;justify-items:center}.tech-item[data-v-3bbb8bc3]{display:flex;flex-direction:column;align-items:center;text-align:center}.icon-wrapper[data-v-3bbb8bc3]{position:relative;width:48px;height:48px}.tech-icon[data-v-3bbb8bc3]{width:100%;height:100%;margin-bottom:8px}.badge[data-v-3bbb8bc3]{position:absolute;top:-6px;right:-6px;width:25px;height:25px}.certification-note[data-v-3bbb8bc3]{display:flex;align-items:center;gap:8px;margin-top:8px}.certification-note img[data-v-3bbb8bc3]{width:18px;height:18px}.certification-note p[data-v-3bbb8bc3]{font-size:12px;color:var(--os-text-secondary);margin:0}.web-projects-app[data-v-34d6c55b]{height:100%;padding:0;background:var(--os-background)}.website-container[data-v-34d6c55b]{height:100%;display:flex;flex-direction:column}.website-header[data-v-34d6c55b]{background:#1f2937;color:#fff;padding:20px 30px;display:flex;flex-direction:column;align-items:flex-start;border-bottom:2px solid rgba(255,255,255,.1);gap:15px}.logo[data-v-34d6c55b]{display:flex;align-items:center;gap:10px}.logo-icon[data-v-34d6c55b]{font-size:24px}.logo h1[data-v-34d6c55b]{font-size:24px;font-weight:600}.main-nav[data-v-34d6c55b]{display:flex;gap:5px}.main-nav[data-v-34d6c55b]{display:flex;gap:10px;overflow-x:auto;width:100%;padding-bottom:5px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.main-nav[data-v-34d6c55b]::-webkit-scrollbar{height:6px}.main-nav[data-v-34d6c55b]::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}.main-nav[data-v-34d6c55b]::-webkit-scrollbar-track{background:transparent}.nav-item[data-v-34d6c55b]{flex:0 0 auto;padding:10px 16px;background:#ffffff1a;border:none;color:#fff;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .3s ease}.nav-item.active[data-v-34d6c55b]{background:#ffffff4d}.nav-item[data-v-34d6c55b]:hover{background:#fff3}.website-main[data-v-34d6c55b]{flex:1;overflow-y:auto;padding:30px}.welcome-section[data-v-34d6c55b]{text-align:center;max-width:800px;margin:0 auto}.welcome-section h2[data-v-34d6c55b]{color:var(--os-text);font-size:2.5rem;margin-bottom:20px;background:#1f2937;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.welcome-section p[data-v-34d6c55b]{color:var(--os-text-secondary);font-size:1.2rem;margin-bottom:40px}.projects-grid[data-v-34d6c55b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:30px}.project-preview[data-v-34d6c55b]{background:var(--os-card-background);border:2px solid var(--os-border);border-radius:12px;padding:20px;text-align:center;cursor:pointer;transition:all .3s ease}.project-preview[data-v-34d6c55b]:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000001a;border-color:var(--os-primary)}.preview-icon[data-v-34d6c55b]{font-size:48px;margin-bottom:15px}.project-preview h3[data-v-34d6c55b]{color:var(--os-text);margin-bottom:10px}.project-preview p[data-v-34d6c55b]{color:var(--os-text-secondary);font-size:14px}.project-detail[data-v-34d6c55b]{max-width:1000px;margin:0 auto}.project-hero[data-v-34d6c55b]{display:flex;gap:30px;margin-bottom:40px;align-items:center}.preview-icon img[data-v-34d6c55b],.hero-icon img[data-v-34d6c55b]{width:90px;height:90px;object-fit:contain;border-radius:8px;background-color:#fff;padding:4px}.hero-content[data-v-34d6c55b]{flex:1}.hero-content h1[data-v-34d6c55b]{color:var(--os-text);font-size:2.5rem;margin-bottom:15px}.hero-description[data-v-34d6c55b]{color:var(--os-text-secondary);font-size:1.2rem;margin-bottom:20px}.hero-actions[data-v-34d6c55b]{display:flex;gap:15px}.btn[data-v-34d6c55b]{padding:12px 24px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none}.btn-primary[data-v-34d6c55b]{background:#1f2937;color:#fff}.btn-secondary[data-v-34d6c55b]{background:#f8f9fa;color:#495057;border:2px solid #dee2e6}.btn[data-v-34d6c55b]:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0003}.project-content[data-v-34d6c55b]{display:grid;gap:30px}.content-section[data-v-34d6c55b]{background:var(--os-card-background);border:2px solid var(--os-border);border-radius:12px;padding:20px}.content-section h3[data-v-34d6c55b]{color:var(--os-text);margin-bottom:15px;font-size:1.4rem}.tech-list[data-v-34d6c55b]{display:flex;flex-wrap:wrap;gap:8px}.tech-badge[data-v-34d6c55b]{background:#1f2937;color:#fff;padding:6px 12px;border-radius:5px;font-size:14px;font-weight:500}.features-list[data-v-34d6c55b]{list-style:none;padding:0}.features-list li[data-v-34d6c55b]{color:var(--os-text);border-bottom:1px solid var(--os-border);position:relative;padding:8px 0 8px 25px}.features-list li[data-v-34d6c55b]:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700}.features-list li[data-v-34d6c55b]:last-child{border-bottom:none}.screenshots[data-v-34d6c55b]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:15px}.screenshot[data-v-34d6c55b]{background:var(--os-background);border:2px solid var(--os-border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;position:relative;aspect-ratio:16/9;min-height:200px;max-width:70svw}.screenshot img[data-v-34d6c55b]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.screenshot[data-v-34d6c55b]:hover{border-color:var(--os-primary);transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.screenshot:hover img[data-v-34d6c55b]{transform:scale(1.05)}.screenshot[data-v-34d6c55b]:empty:before{content:"📸";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;opacity:.3}.screenshot[data-v-34d6c55b]:empty:after{content:"Aperçu bientôt disponible";position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:14px;color:var(--os-text-secondary);opacity:.7}@media (max-width: 768px){.screenshots[data-v-34d6c55b]{grid-template-columns:1fr;gap:15px}.screenshot[data-v-34d6c55b]{min-height:180px}}.image-modal-overlay[data-v-34d6c55b]{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;cursor:zoom-out}.image-modal-content[data-v-34d6c55b]{position:relative;max-width:95vw;max-height:90vh;cursor:default}.image-modal-content img[data-v-34d6c55b]{display:block;max-width:60vw;max-height:60vh;width:auto;height:auto;border-radius:10px;box-shadow:0 20px 60px #0009;object-fit:contain}.modal-close-btn[data-v-34d6c55b]{position:absolute;top:-16px;right:-16px;width:36px;height:36px;border-radius:50%;border:none;background:#fff;color:#1f2937;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;z-index:1;transition:transform .2s ease,background .2s ease;line-height:1}.modal-close-btn[data-v-34d6c55b]:hover{transform:scale(1.15);background:#f1f5f9}.modal-enter-active[data-v-34d6c55b],.modal-leave-active[data-v-34d6c55b]{transition:opacity .25s ease}.modal-enter-active .image-modal-content[data-v-34d6c55b],.modal-leave-active .image-modal-content[data-v-34d6c55b]{transition:transform .25s ease}.modal-enter-from[data-v-34d6c55b],.modal-leave-to[data-v-34d6c55b]{opacity:0}.modal-enter-from .image-modal-content[data-v-34d6c55b],.modal-leave-to .image-modal-content[data-v-34d6c55b]{transform:scale(.9)}@media (max-width: 768px){.image-modal-overlay[data-v-34d6c55b]{padding:10px}.modal-close-btn[data-v-34d6c55b]{top:-12px;right:-12px;width:32px;height:32px;font-size:14px}}.web-projects-app[data-v-ef7130ac]{height:100%;padding:0;background:var(--os-background)}.website-container[data-v-ef7130ac]{height:100%;display:flex;flex-direction:column}.website-header[data-v-ef7130ac]{background:#1f2937;color:#fff;padding:20px 30px;display:flex;flex-direction:column;align-items:flex-start;border-bottom:2px solid rgba(255,255,255,.1);gap:15px}.logo[data-v-ef7130ac]{display:flex;align-items:center;gap:10px}.logo-icon[data-v-ef7130ac]{font-size:24px}.logo h1[data-v-ef7130ac]{font-size:24px;font-weight:600}.main-nav[data-v-ef7130ac]{display:flex;gap:10px;overflow-x:auto;width:100%;padding-bottom:5px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.main-nav[data-v-ef7130ac]::-webkit-scrollbar{height:6px}.main-nav[data-v-ef7130ac]::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}.main-nav[data-v-ef7130ac]::-webkit-scrollbar-track{background:transparent}.nav-item[data-v-ef7130ac]{flex:0 0 auto;padding:10px 16px;background:#ffffff1a;border:none;color:#fff;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .3s ease}.nav-item.active[data-v-ef7130ac]{background:#ffffff4d}.nav-item[data-v-ef7130ac]:hover{background:#fff3}.website-main[data-v-ef7130ac]{flex:1;overflow-y:auto;padding:30px}.welcome-section[data-v-ef7130ac]{text-align:center;max-width:800px;margin:0 auto}.welcome-section h2[data-v-ef7130ac]{color:var(--os-text);font-size:2.5rem;margin-bottom:20px;background:#1f2937;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.welcome-section p[data-v-ef7130ac]{color:var(--os-text-secondary);font-size:1.2rem;margin-bottom:40px}.projects-grid[data-v-ef7130ac]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:30px}.project-preview[data-v-ef7130ac]{background:var(--os-card-background);border:2px solid var(--os-border);border-radius:12px;padding:20px;text-align:center;cursor:pointer;transition:all .3s ease}.project-preview[data-v-ef7130ac]:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000001a;border-color:var(--os-primary)}.preview-icon[data-v-ef7130ac]{font-size:48px;margin-bottom:15px}.project-preview h3[data-v-ef7130ac]{color:var(--os-text);margin-bottom:10px}.project-preview p[data-v-ef7130ac]{color:var(--os-text-secondary);font-size:14px}.project-detail[data-v-ef7130ac]{max-width:1000px;margin:0 auto}.project-hero[data-v-ef7130ac]{display:flex;gap:30px;margin-bottom:40px;align-items:center}.preview-icon img[data-v-ef7130ac],.hero-icon img[data-v-ef7130ac]{width:90px;height:90px;object-fit:contain;border-radius:8px;background-color:#fff;padding:4px}.hero-content[data-v-ef7130ac]{flex:1}.hero-content h1[data-v-ef7130ac]{color:var(--os-text);font-size:2.5rem;margin-bottom:15px}.hero-description[data-v-ef7130ac]{color:var(--os-text-secondary);font-size:1.2rem;margin-bottom:20px}.hero-actions[data-v-ef7130ac]{display:flex;gap:15px}.btn[data-v-ef7130ac]{padding:12px 24px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none}.btn-primary[data-v-ef7130ac]{background:#1f2937;color:#fff}.btn-secondary[data-v-ef7130ac]{background:#f8f9fa;color:#495057;border:2px solid #dee2e6}.btn[data-v-ef7130ac]:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0003}.project-content[data-v-ef7130ac]{display:grid;gap:30px}.content-section[data-v-ef7130ac]{background:var(--os-card-background);border:2px solid var(--os-border);border-radius:12px;padding:20px}.content-section h3[data-v-ef7130ac]{color:var(--os-text);margin-bottom:15px;font-size:1.4rem}.tech-list[data-v-ef7130ac]{display:flex;flex-wrap:wrap;gap:8px}.tech-badge[data-v-ef7130ac]{background:#1f2937;color:#fff;padding:6px 12px;border-radius:5px;font-size:14px;font-weight:500}.features-list[data-v-ef7130ac]{list-style:none;padding:0}.features-list li[data-v-ef7130ac]{color:var(--os-text);border-bottom:1px solid var(--os-border);position:relative;padding:8px 0 8px 25px}.features-list li[data-v-ef7130ac]:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700}.features-list li[data-v-ef7130ac]:last-child{border-bottom:none}.screenshots[data-v-ef7130ac]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:15px}.screenshot[data-v-ef7130ac]{background:var(--os-background);border:2px solid var(--os-border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;position:relative;aspect-ratio:16/9;min-height:200px;max-width:70svw}.screenshot img[data-v-ef7130ac]{width:100%;height:100%;object-fit:contain;transition:transform .3s ease}.screenshot[data-v-ef7130ac]:hover{border-color:var(--os-primary);transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.screenshot:hover img[data-v-ef7130ac]{transform:scale(1.05)}.screenshot[data-v-ef7130ac]:empty:before{content:"📸";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;opacity:.3}.screenshot[data-v-ef7130ac]:empty:after{content:"Aperçu bientôt disponible";position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:14px;color:var(--os-text-secondary);opacity:.7}@media (max-width: 768px){.screenshots[data-v-ef7130ac]{grid-template-columns:1fr;gap:15px}.screenshot[data-v-ef7130ac]{min-height:180px}}.image-modal-overlay[data-v-ef7130ac]{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;cursor:zoom-out}.image-modal-content[data-v-ef7130ac]{position:relative;max-width:95vw;max-height:90vh;cursor:default}.image-modal-content img[data-v-ef7130ac]{display:block;max-width:60vw;max-height:60vh;width:auto;height:auto;border-radius:10px;box-shadow:0 20px 60px #0009;object-fit:contain}.modal-close-btn[data-v-ef7130ac]{position:absolute;top:-16px;right:-16px;width:36px;height:36px;border-radius:50%;border:none;background:#fff;color:#1f2937;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;z-index:1;transition:transform .2s ease,background .2s ease;line-height:1}.modal-close-btn[data-v-ef7130ac]:hover{transform:scale(1.15);background:#f1f5f9}.modal-enter-active[data-v-ef7130ac],.modal-leave-active[data-v-ef7130ac]{transition:opacity .25s ease}.modal-enter-active .image-modal-content[data-v-ef7130ac],.modal-leave-active .image-modal-content[data-v-ef7130ac]{transition:transform .25s ease}.modal-enter-from[data-v-ef7130ac],.modal-leave-to[data-v-ef7130ac]{opacity:0}.modal-enter-from .image-modal-content[data-v-ef7130ac],.modal-leave-to .image-modal-content[data-v-ef7130ac]{transform:scale(.9)}@media (max-width: 768px){.image-modal-overlay[data-v-ef7130ac]{padding:10px}.modal-close-btn[data-v-ef7130ac]{top:-12px;right:-12px;width:32px;height:32px;font-size:14px}}.web-projects-app[data-v-6b5b2663]{height:100%;padding:0;background:var(--os-background)}.website-container[data-v-6b5b2663]{height:100%;display:flex;flex-direction:column}.website-header[data-v-6b5b2663]{background:#1f2937;color:#fff;padding:20px 30px;display:flex;flex-direction:column;align-items:flex-start;border-bottom:2px solid rgba(255,255,255,.1);gap:15px}.logo[data-v-6b5b2663]{display:flex;align-items:center;gap:10px}.logo-icon[data-v-6b5b2663]{font-size:24px}.logo h1[data-v-6b5b2663]{font-size:24px;font-weight:600}.main-nav[data-v-6b5b2663]{display:flex;gap:10px;overflow-x:auto;width:100%;padding-bottom:5px;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.3) transparent}.main-nav[data-v-6b5b2663]::-webkit-scrollbar{height:6px}.main-nav[data-v-6b5b2663]::-webkit-scrollbar-thumb{background-color:#ffffff4d;border-radius:3px}.main-nav[data-v-6b5b2663]::-webkit-scrollbar-track{background:transparent}.nav-item[data-v-6b5b2663]{flex:0 0 auto;padding:10px 16px;background:#ffffff1a;border:none;color:#fff;border-radius:8px;cursor:pointer;white-space:nowrap;transition:all .3s ease}.nav-item.active[data-v-6b5b2663]{background:#ffffff4d}.nav-item[data-v-6b5b2663]:hover{background:#fff3}.website-main[data-v-6b5b2663]{flex:1;overflow-y:auto;padding:30px}.welcome-section[data-v-6b5b2663]{text-align:center;max-width:800px;margin:0 auto}.welcome-section h2[data-v-6b5b2663]{color:var(--os-text);font-size:2.5rem;margin-bottom:20px;background:#1f2937;-webkit-background-clip:text;-webkit-text-fill-color:transparent}.welcome-section p[data-v-6b5b2663]{color:var(--os-text-secondary);font-size:1.2rem;margin-bottom:40px}.projects-grid[data-v-6b5b2663]{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px;margin-top:30px}.project-preview[data-v-6b5b2663]{background:var(--os-card-background);border:2px solid var(--os-border);border-radius:12px;padding:20px;text-align:center;cursor:pointer;transition:all .3s ease}.project-preview[data-v-6b5b2663]:hover{transform:translateY(-5px);box-shadow:0 10px 30px #0000001a;border-color:var(--os-primary)}.preview-icon[data-v-6b5b2663]{font-size:48px;margin-bottom:15px}.project-preview h3[data-v-6b5b2663]{color:var(--os-text);margin-bottom:10px}.project-preview p[data-v-6b5b2663]{color:var(--os-text-secondary);font-size:14px}.project-detail[data-v-6b5b2663]{max-width:1000px;margin:0 auto}.project-hero[data-v-6b5b2663]{display:flex;gap:30px;margin-bottom:40px;align-items:center}.preview-icon img[data-v-6b5b2663],.hero-icon img[data-v-6b5b2663]{width:90px;height:90px;object-fit:contain;border-radius:8px;background-color:#fff;padding:4px}.hero-content[data-v-6b5b2663]{flex:1}.hero-content h1[data-v-6b5b2663]{color:var(--os-text);font-size:2.5rem;margin-bottom:15px}.hero-description[data-v-6b5b2663]{color:var(--os-text-secondary);font-size:1.2rem;margin-bottom:20px}.hero-actions[data-v-6b5b2663]{display:flex;gap:15px}.btn[data-v-6b5b2663]{padding:12px 24px;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:all .3s ease;text-decoration:none}.btn-primary[data-v-6b5b2663]{background:#1f2937;color:#fff}.btn-secondary[data-v-6b5b2663]{background:#f8f9fa;color:#495057;border:2px solid #dee2e6}.btn[data-v-6b5b2663]:hover{transform:translateY(-2px);box-shadow:0 5px 15px #0003}.project-content[data-v-6b5b2663]{display:grid;gap:30px}.content-section[data-v-6b5b2663]{background:var(--os-card-background);border:2px solid var(--os-border);border-radius:12px;padding:20px}.content-section h3[data-v-6b5b2663]{color:var(--os-text);margin-bottom:15px;font-size:1.4rem}.tech-list[data-v-6b5b2663]{display:flex;flex-wrap:wrap;gap:8px}.tech-badge[data-v-6b5b2663]{background:#1f2937;color:#fff;padding:6px 12px;border-radius:5px;font-size:14px;font-weight:500}.features-list[data-v-6b5b2663]{list-style:none;padding:0}.features-list li[data-v-6b5b2663]{color:var(--os-text);border-bottom:1px solid var(--os-border);position:relative;padding:8px 0 8px 25px}.features-list li[data-v-6b5b2663]:before{content:"✓";position:absolute;left:0;color:#10b981;font-weight:700}.features-list li[data-v-6b5b2663]:last-child{border-bottom:none}.screenshots[data-v-6b5b2663]{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;margin-top:15px}.screenshot[data-v-6b5b2663]{background:var(--os-background);border:2px solid var(--os-border);border-radius:12px;overflow:hidden;cursor:pointer;transition:all .3s ease;position:relative;aspect-ratio:16/9;min-height:200px;max-width:70svw}.screenshot img[data-v-6b5b2663]{width:100%;height:100%;object-fit:cover;transition:transform .3s ease}.screenshot[data-v-6b5b2663]:hover{border-color:var(--os-primary);transform:translateY(-5px);box-shadow:0 10px 30px #00000026}.screenshot:hover img[data-v-6b5b2663]{transform:scale(1.05)}.screenshot[data-v-6b5b2663]:empty:before{content:"📸";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:48px;opacity:.3}.screenshot[data-v-6b5b2663]:empty:after{content:"Aperçu bientôt disponible";position:absolute;bottom:20px;left:50%;transform:translate(-50%);font-size:14px;color:var(--os-text-secondary);opacity:.7}@media (max-width: 768px){.screenshots[data-v-6b5b2663]{grid-template-columns:1fr;gap:15px}.screenshot[data-v-6b5b2663]{min-height:180px}}.image-modal-overlay[data-v-6b5b2663]{position:fixed;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:9999;padding:20px;cursor:zoom-out}.image-modal-content[data-v-6b5b2663]{position:relative;max-width:95vw;max-height:90vh;cursor:default}.image-modal-content img[data-v-6b5b2663]{display:block;max-width:60vw;max-height:60vh;width:auto;height:auto;border-radius:10px;box-shadow:0 20px 60px #0009;object-fit:contain}.modal-close-btn[data-v-6b5b2663]{position:absolute;top:-16px;right:-16px;width:36px;height:36px;border-radius:50%;border:none;background:#fff;color:#1f2937;font-size:16px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 12px #0000004d;z-index:1;transition:transform .2s ease,background .2s ease;line-height:1}.modal-close-btn[data-v-6b5b2663]:hover{transform:scale(1.15);background:#f1f5f9}.modal-enter-active[data-v-6b5b2663],.modal-leave-active[data-v-6b5b2663]{transition:opacity .25s ease}.modal-enter-active .image-modal-content[data-v-6b5b2663],.modal-leave-active .image-modal-content[data-v-6b5b2663]{transition:transform .25s ease}.modal-enter-from[data-v-6b5b2663],.modal-leave-to[data-v-6b5b2663]{opacity:0}.modal-enter-from .image-modal-content[data-v-6b5b2663],.modal-leave-to .image-modal-content[data-v-6b5b2663]{transform:scale(.9)}@media (max-width: 768px){.image-modal-overlay[data-v-6b5b2663]{padding:10px}.modal-close-btn[data-v-6b5b2663]{top:-12px;right:-12px;width:32px;height:32px;font-size:14px}}.window-manager[data-v-abf23b01]{position:absolute;top:30px;left:0;width:100%;height:calc(100% - 30px);pointer-events:none;z-index:100}.dock[data-v-bb8877b2]{position:absolute;z-index:10}.desktop-mode .dock[data-v-bb8877b2]{bottom:20px;left:50%;transform:translate(-50%)}.desktop-mode .dock-container[data-v-bb8877b2]{display:flex;align-items:center;gap:8px;padding:8px 16px;background:#fff3;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-radius:20px;border:1px solid rgba(255,255,255,.3)}.desktop-mode .dock-item[data-v-bb8877b2]{width:50px;height:50px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:12px;transition:all .2s ease;position:relative}.desktop-mode .dock-item[data-v-bb8877b2]:hover{background:#fff3;transform:translateY(-2px)}.desktop-mode .dock-icon[data-v-bb8877b2]{font-size:24px;transition:transform .2s ease}.desktop-mode .dock-item:hover .dock-icon[data-v-bb8877b2]{transform:scale(1.1)}.mobile-mode .dock[data-v-bb8877b2]{bottom:30px;left:0;right:0;padding:0 20px}.mobile-mode .dock-container[data-v-bb8877b2]{display:flex;flex-direction:column;gap:20px;padding:20px;background:#0000001a;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border-radius:25px;border:1px solid rgba(255,255,255,.1)}.mobile-mode .dock-row[data-v-bb8877b2]{display:flex;justify-content:space-around;gap:10px}.mobile-mode .mobile-item[data-v-bb8877b2]{flex:1;max-width:70px;height:80px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;border-radius:15px;transition:all .2s ease;position:relative;gap:6px}.mobile-mode .mobile-item[data-v-bb8877b2]:active,.mobile-mode .mobile-item.touching[data-v-bb8877b2]{background:#ffffff26;transform:scale(.95)}.mobile-mode .dock-icon[data-v-bb8877b2]{font-size:32px;transition:transform .2s ease}.mobile-mode .app-name[data-v-bb8877b2]{font-size:10px;color:#ffffffe6;text-align:center;line-height:1.2;text-shadow:0 1px 2px rgba(0,0,0,.5);font-weight:500}.tablet-mode .dock[data-v-bb8877b2]{bottom:15px;left:50%;transform:translate(-50%)}.tablet-mode .dock-container[data-v-bb8877b2]{display:flex;align-items:center;gap:15px;padding:12px 20px;background:#ffffff26;-webkit-backdrop-filter:blur(25px);backdrop-filter:blur(25px);border-radius:25px;border:1px solid rgba(255,255,255,.25);min-height:70px}.tablet-mode .tablet-favorites[data-v-bb8877b2]{display:flex;align-items:center;gap:12px}.tablet-mode .tablet-recents[data-v-bb8877b2]{display:flex;align-items:center;gap:10px}.tablet-mode .tablet-divider[data-v-bb8877b2]{width:1px;height:40px;background:#ffffff4d;margin:0 5px}.tablet-mode .tablet-item[data-v-bb8877b2]{width:55px;height:55px;display:flex;align-items:center;justify-content:center;cursor:pointer;border-radius:15px;transition:all .2s ease;position:relative}.tablet-mode .tablet-item[data-v-bb8877b2]:hover{background:#fff3;transform:translateY(-2px)}.tablet-mode .recent-item[data-v-bb8877b2]{width:45px;height:45px;opacity:.8}.tablet-mode .recent-item[data-v-bb8877b2]:hover{opacity:1}.tablet-mode .dock-icon[data-v-bb8877b2]{font-size:28px;transition:transform .2s ease}.tablet-mode .tablet-item:hover .dock-icon[data-v-bb8877b2]{transform:scale(1.1)}.tablet-mode .recent-item .dock-icon[data-v-bb8877b2]{font-size:24px}@media (max-width: 480px){.mobile-mode .dock[data-v-bb8877b2]{bottom:20px;padding:0 15px}.mobile-mode .dock-container[data-v-bb8877b2]{padding:15px;gap:15px}.mobile-mode .mobile-item[data-v-bb8877b2]{max-width:60px;height:70px}.mobile-mode .dock-icon[data-v-bb8877b2]{font-size:28px}.mobile-mode .app-name[data-v-bb8877b2]{font-size:9px}}@media (max-width: 767px) and (orientation: landscape){.mobile-mode .dock[data-v-bb8877b2]{bottom:10px;padding:0 10px}.mobile-mode .dock-container[data-v-bb8877b2]{padding:10px 15px;gap:10px;flex-direction:row;justify-content:center}.mobile-mode .dock-row[data-v-bb8877b2]{flex-direction:row;gap:15px}.mobile-mode .mobile-item[data-v-bb8877b2]{max-width:55px;height:65px}}@media (min-width: 768px) and (max-width: 1023px) and (orientation: portrait){.tablet-mode .dock[data-v-bb8877b2]{bottom:20px}.tablet-mode .dock-container[data-v-bb8877b2]{padding:15px 25px}}.desktop[data-v-79f3ec8c]{position:relative;width:100svw;height:100svh;overflow:hidden}.desktop-mode .header[data-v-79f3ec8c]{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:15px 30px;z-index:1001;pointer-events:none;background:linear-gradient(180deg,#0000001a,#0000)}.desktop-mode .header-left[data-v-79f3ec8c],.desktop-mode .header-right[data-v-79f3ec8c]{pointer-events:auto}.desktop-mode .portfolio-brand[data-v-79f3ec8c]{font-size:16px;font-weight:600;color:#fffffff2;text-shadow:0 1px 3px rgba(0,0,0,.5);letter-spacing:.5px;cursor:default;-webkit-user-select:none;user-select:none}.desktop-mode .datetime[data-v-79f3ec8c]{text-align:right;color:#fffffff2;text-shadow:0 1px 3px rgba(0,0,0,.5);cursor:default;-webkit-user-select:none;user-select:none}.desktop-mode .time[data-v-79f3ec8c]{font-size:20px;font-weight:600;line-height:1;margin-bottom:2px}.desktop-mode .date[data-v-79f3ec8c]{font-size:12px;font-weight:400;opacity:.9;text-transform:capitalize}.mobile-mode .status-bar[data-v-79f3ec8c]{position:absolute;top:0;left:0;right:0;height:44px;display:flex;justify-content:space-between;align-items:center;padding:0 20px;z-index:1001;background:linear-gradient(180deg,#00000026,#0000);font-size:14px;font-weight:600;color:#fffffff2;text-shadow:0 1px 2px rgba(0,0,0,.5)}.mobile-mode .status-left[data-v-79f3ec8c]{display:flex;align-items:center;gap:8px}.mobile-mode .signal-bars[data-v-79f3ec8c]{display:flex;align-items:flex-end;gap:2px}.mobile-mode .signal-bars .bar[data-v-79f3ec8c]{width:3px;background:#ffffffe6;border-radius:1px}.mobile-mode .signal-bars .bar[data-v-79f3ec8c]:nth-child(1){height:4px}.mobile-mode .signal-bars .bar[data-v-79f3ec8c]:nth-child(2){height:6px}.mobile-mode .signal-bars .bar[data-v-79f3ec8c]:nth-child(3){height:8px}.mobile-mode .signal-bars .bar[data-v-79f3ec8c]:nth-child(4){height:10px}.mobile-mode .carrier[data-v-79f3ec8c]{font-size:12px;font-weight:500}.mobile-mode .status-center[data-v-79f3ec8c]{position:absolute;left:50%;transform:translate(-50%)}.mobile-mode .time-mobile[data-v-79f3ec8c]{font-size:14px;font-weight:600;letter-spacing:.5px}.mobile-mode .status-right[data-v-79f3ec8c]{display:flex;align-items:center;gap:4px}.mobile-mode .battery-percentage[data-v-79f3ec8c]{font-size:12px;font-weight:500}.mobile-mode .home-indicator[data-v-79f3ec8c]{position:absolute;bottom:8px;left:50%;transform:translate(-50%);width:134px;height:5px;background:#ffffff4d;border-radius:3px;z-index:1001}.tablet-mode .header[data-v-79f3ec8c]{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:center;padding:10px 20px;z-index:1001;pointer-events:none;background:linear-gradient(180deg,#0000001f,#0000);height:60px}.tablet-mode .header-left[data-v-79f3ec8c],.tablet-mode .header-right[data-v-79f3ec8c]{pointer-events:auto}.tablet-mode .header-left[data-v-79f3ec8c]{display:flex;align-items:center;gap:15px}.tablet-mode .portfolio-brand[data-v-79f3ec8c]{font-size:18px;font-weight:600;color:#fffffff2;text-shadow:0 1px 3px rgba(0,0,0,.5);letter-spacing:.5px;cursor:default;-webkit-user-select:none;user-select:none}.tablet-mode .tablet-indicators[data-v-79f3ec8c]{display:flex;align-items:center;gap:8px;font-size:16px;opacity:.8}.tablet-mode .datetime[data-v-79f3ec8c]{text-align:right;color:#fffffff2;text-shadow:0 1px 3px rgba(0,0,0,.5);cursor:default;-webkit-user-select:none;user-select:none}.tablet-mode .time[data-v-79f3ec8c]{font-size:18px;font-weight:600;line-height:1;margin-bottom:2px}.tablet-mode .date[data-v-79f3ec8c]{font-size:11px;font-weight:400;opacity:.9;text-transform:capitalize}@media (max-width: 767px){.desktop[data-v-79f3ec8c]{touch-action:manipulation}}@media (min-width: 768px) and (max-width: 1023px){.desktop[data-v-79f3ec8c]{touch-action:manipulation}}@media (max-width: 767px) and (orientation: landscape){.mobile-mode .status-bar[data-v-79f3ec8c]{height:32px;padding:0 15px}.mobile-mode .time-mobile[data-v-79f3ec8c]{font-size:13px}.mobile-mode .home-indicator[data-v-79f3ec8c]{bottom:4px;width:120px;height:4px}}
