.loader-container{position:relative;width:100%;height:100%;min-height:100%;background:transparent;display:flex;justify-content:center;align-items:center;z-index:100000}.page-loader-shell{width:100%;min-height:100%}@media (max-width: 768px){.page-loader-shell{min-height:calc(100vh - 68px)}}.loader{width:48px;height:48px;border:3px solid rgba(255,255,255,.1);border-radius:50%;display:inline-block;position:relative;box-sizing:border-box;animation:rotation 1s linear infinite}.loader:after{content:"";box-sizing:border-box;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;border:3px solid transparent;border-bottom-color:#0a00c0}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.home-title{font-size:2.8rem;font-weight:700;font-family:Poppins,sans-serif;margin-bottom:15px;color:#fff}.home-subtitle{display:none;font-size:1.6rem;font-family:Quicksand,sans-serif;color:#bbb;margin-bottom:25px}.home-content{font-size:1.1rem;font-family:Anonymous Pro,monospace;color:#ddd;line-height:1.6;max-width:600px}.home-content p{margin-bottom:15px}.home-container{display:flex;flex-direction:column;align-items:center;text-align:center}.contact-box{width:min(100%,640px);padding:1.25rem;text-align:left;background:#ffffff06;border:4px solid #777777;border-radius:1px;transition:border-color .1s}.contact-box:hover{border-color:var(--primary)}.contact-box-copy{margin-bottom:1rem}.contact-box-kicker{background:var(--primary);display:inline;margin:0 0 .35rem;color:#ffffff94;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;font-weight:700;font-family:Quicksand,sans-serif}.contact-box-title{margin:0;color:#fffffff5;font-size:1.15rem;font-weight:500;line-height:1.3;font-family:Quicksand,sans-serif}.contact-form{display:flex;flex-direction:column;gap:.8rem}.contact-form-botcheck{display:none}.contact-form-label{color:#ffffffbd;font-size:.9rem;font-family:Quicksand,sans-serif}.contact-editor{position:relative;min-height:132px;border:2px solid rgba(255,255,255,.1);border-radius:1px;background:#ffffff08;overflow:hidden;transition:border-color .1s}.contact-editor.is-focused{border-color:var(--primary);background:#ffffff0b}.contact-editor.is-error{border-color:#d1135780}.contact-editor-overlay{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;padding:.95rem 1rem;color:var(--primary);font-family:Anonymous Pro,monospace;font-size:1.08rem;line-height:1.72;white-space:pre-wrap;word-break:break-word;pointer-events:none;overflow:hidden}.contact-editor-placeholder{color:#ffffff57}.contact-editor-caret{display:inline-block;width:.95ch;height:1.22em;margin:0 .03ch;vertical-align:text-bottom;background:var(--primary);box-shadow:0 0 0 1px #211df338;animation:home-caret-blink 1s steps(1,end) infinite}.contact-editor-selection{background:var(--primary);color:#fff}.contact-form-textarea{width:100%;min-height:132px;padding:.95rem 1rem;border:0;background:transparent;color:transparent;caret-color:transparent;font-family:Anonymous Pro,monospace;font-size:1.08rem;line-height:1.72;resize:none;outline:none;overflow:auto}.contact-form-textarea--native::selection{background:transparent}@keyframes home-caret-blink{0%,49%{opacity:1}50%,to{opacity:0}}.contact-form-footer{display:flex;align-items:center;justify-content:space-between;gap:1rem}.contact-form-status{min-height:1.2rem;margin:0;color:#ffffff80;font-size:.88rem;font-family:Quicksand,sans-serif}.contact-form-status.is-error{color:#ffa7bfeb}.contact-form-status.is-sending{color:#ffffffad}.contact-form-status.is-sent{color:#93f4d4f0}.contact-form-button{flex:0 0 auto;min-width:118px;height:40px;padding:0 1rem;border:2px solid rgba(255,255,255,.12);border-radius:1px;background:#ffffff0a;color:#fff;font:inherit;cursor:pointer;transition:border-color .1s,background-color .1s,opacity .1s}.contact-form-button:hover:not(:disabled){border-color:var(--primary);background:#ffffff12}.contact-form-button:disabled{opacity:.6;cursor:default}.sections-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;width:min(100%,640px);margin:28px auto}.section-card{background:#ffffff06;border-radius:1px;padding:1.3rem 1.1rem 1.15rem;transition:border-color .1s,background-color .1s;border:4px solid #777777;height:100%;min-height:138px}.section-card:hover{background:#ffffff0a;border-color:var(--primary)}.section-card a{color:inherit;text-decoration:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;height:100%}.section-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:1px;background:#ffffff0a;font-size:1.15rem;color:#ffffffeb}.section-card h2{margin:0;color:#fffffff5;font-size:clamp(.95rem,.88rem + .35vw,1.12rem);font-weight:500;line-height:1.35;font-family:Quicksand,sans-serif}.section-card p{display:none;font-size:.95rem;color:#bbb;font-family:Quicksand,sans-serif}.featured-content{margin:18px auto 48px;width:min(100%,760px)}.featured-quote{position:relative;padding:1.35rem 1.5rem;background:#ffffff05;border:4px solid #777777;border-radius:1px;transition:border-color .1s}.featured-quote:hover{border-color:var(--primary)}.quote-icon{display:block;margin:0 auto .7rem;font-size:1rem;color:#ffffff6b}.featured-quote-text{max-width:640px;margin:0;color:#ffffffeb;font-size:clamp(1rem,.92rem + .35vw,1.18rem);line-height:1.6;font-family:Quicksand,sans-serif;font-style:italic;text-align:center}.featured-quote-footer{display:flex;justify-content:flex-end;align-items:center;margin-top:.9rem}.featured-quote-author{color:#ffffff94;font-size:.82rem;font-family:Quicksand,sans-serif}@media (max-width: 768px){.sections-grid{grid-template-columns:repeat(2,1fr);width:100%}.surligne{font-size:2.2rem;margin-top:.35rem;margin-bottom:.9rem;line-height:1.15}.home-subtitle{font-size:1.4rem}.featured-content{width:100%}.contact-box{width:100%;margin-top:20px;padding:1.05rem}.section-card{min-height:126px;padding:1.15rem .95rem 1rem}.featured-quote{padding:1.15rem 1.1rem}.quote-icon{margin-bottom:.65rem}.contact-form-footer{flex-direction:column;align-items:stretch}.contact-form-button{width:100%}}@media (max-width: 480px){.sections-grid{grid-template-columns:repeat(2,1fr);gap:14px}.surligne{font-size:1.8rem;margin-top:.25rem;margin-bottom:.75rem;line-height:1.15}.home-subtitle{font-size:1.2rem;margin-bottom:1rem}.section-card{min-height:112px;padding:1rem .85rem}.section-card a{gap:.65rem}.section-icon{width:36px;height:36px;font-size:1rem}.section-card h2{font-size:1rem}.featured-content{margin-top:10px}.featured-quote{padding:1rem .9rem}.quote-icon{font-size:.92rem}.featured-quote-text{font-size:.95rem;line-height:1.65}.featured-quote-footer{margin-top:.75rem}.featured-quote-author{font-size:.78rem}.section-card,.featured-quote,.contact-box{border-width:3px;border-color:var(--primary)}}.lang_container{display:flex;flex-direction:column;gap:.5rem;position:relative;align-items:center;width:fit-content;min-width:112px}#label_lang{-webkit-user-select:none;user-select:none;font-size:.95rem;color:#ffffffdb;text-align:center;font-style:italic;line-height:1}#select_lang{-webkit-user-select:none;user-select:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:.65rem .8rem;font-size:.95rem;font-weight:600;color:#fffffff0;background:#ffffff0f;border:2px solid rgba(255,255,255,.14);border-radius:1px;cursor:pointer;transition:background-color .1s,border-color .1s;width:100%;outline:none;position:relative;display:flex;align-items:center;justify-content:space-between;gap:.5rem;line-height:1}#select_lang:hover{background:#ffffff17;border-color:var(--primary)}#select_lang img,.option_item img{width:18px;height:18px;border-radius:50%;object-fit:cover;display:block}#select_lang:after{content:"";width:7px;height:7px;border-right:1.5px solid rgba(255,255,255,.72);border-bottom:1.5px solid rgba(255,255,255,.72);transform:translateY(-60%) rotate(45deg);position:absolute;right:12px;top:50%}.options_container{display:none;position:absolute;bottom:100%;left:50%;transform:translate(-50%);margin-bottom:.45rem;width:100%;min-width:112px;background:#080817fa;border:2px solid rgba(255,255,255,.1);border-radius:1px;z-index:100;padding:.35rem;box-shadow:0 14px 30px #0000004d}.options_container.open{display:flex;flex-direction:column;gap:.2rem}.option_item{-webkit-user-select:none;user-select:none;overflow:hidden;padding:.6rem .7rem;font-size:.92rem;color:#ffffffe6;cursor:pointer;display:flex;align-items:center;gap:.55rem;transition:background-color .1s,color .1s;font-weight:500;border-radius:1px}.option_item:hover{background:#ffffff14;color:#fff}#NavPC .dropdown{position:relative;display:block}#NavPC .dropdown-link{position:relative;display:flex;align-items:center;width:100%;min-height:0;padding:14px 0 14px 26px;border:0;border-radius:0;font-family:var(--mono);font-size:18px;font-weight:400;letter-spacing:.14em;text-transform:lowercase;text-decoration:none;color:var(--ash);font-synthesis:none;transition:color .14s ease,transform .14s ease}#NavPC .dropdown-link:before{content:"";position:absolute;left:0;top:50%;width:3px;height:18px;margin-top:-9px;background:currentColor;opacity:0;transform:scaleY(.25);transition:opacity .14s ease,transform .14s ease}#NavPC .dropdown:hover>.dropdown-link,#NavPC .dropdown>.dropdown-link:focus-visible,#NavPC .dropdown>.dropdown-link.active{color:var(--nav-accent, var(--ink));transform:translate(3px)}#NavPC .dropdown:hover>.dropdown-link:before,#NavPC .dropdown>.dropdown-link:focus-visible:before,#NavPC .dropdown>.dropdown-link.active:before{opacity:1;transform:scaleY(1)}#NavPC .dropdown>.dropdown-link:focus-visible{outline:1px solid var(--nav-accent, var(--ink));outline-offset:6px}#NavPC .dropdown:nth-child(1){--nav-accent: var(--nav-home)}#NavPC .dropdown:nth-child(2){--nav-accent: var(--nav-presentation)}#NavPC .dropdown:nth-child(3){--nav-accent: var(--nav-applications)}#NavPC .dropdown:nth-child(4){--nav-accent: var(--nav-games)}#NavPC .dropdown:nth-child(5){--nav-accent: var(--nav-poesie)}#NavPC .dropdown-menu{position:absolute;top:0;left:100%;z-index:1000;width:min(260px,calc(100vw - 320px));max-height:calc(100vh - 32px);overflow-y:auto;display:flex;flex-direction:column;padding:6px 0;border:1px solid var(--rule-strong);background:var(--background)}#NavPC .dropdown-menu--upward{top:auto;bottom:0}#NavPC .dropdown-menu a{display:flex;align-items:center;min-height:0;padding:9px 16px;border:0;font-family:var(--mono);font-size:12.5px;letter-spacing:.12em;text-transform:lowercase;text-decoration:none;color:var(--ash);background:none;transition:color .14s ease,transform .14s ease}#NavPC .dropdown-menu a:hover,#NavPC .dropdown-menu a:focus-visible{color:var(--nav-accent, var(--ink));transform:translate(3px)}#NavPC{flex:1 1 auto;min-height:0;width:100%;margin:0;padding:0;display:flex;flex-direction:column;gap:40px}#NavPC .nav-links-scroll{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:4px;overflow-y:auto;overflow-x:hidden;padding:0 20px 0 44px}#NavPC .nav-sidebar-footer{flex:0 0 auto;display:flex;flex-direction:column;align-items:flex-start;gap:18px;padding:0 20px 0 44px}.nav-sidebar-footer #label_lang{display:none}.nav-sidebar-footer .lang_container{align-items:flex-start;min-width:0;gap:0}.nav-sidebar-footer #select_lang{width:auto;flex-direction:row;align-items:baseline;justify-content:flex-start;padding:0;gap:8px;border:0;background:none;font-family:var(--mono);font-size:15px;font-weight:400;letter-spacing:.14em;text-transform:lowercase;color:var(--ash);transition:color .14s ease}.nav-sidebar-footer #select_lang:hover{border:0;background:none;color:var(--ink)}.nav-sidebar-footer #select_lang img,.nav-sidebar-footer .option_item img{display:none}.nav-sidebar-footer #select_lang:after{position:static;top:auto;right:auto;width:6px;height:6px;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-2px) rotate(45deg)}.nav-sidebar-footer .options_container{left:0;width:auto;min-width:108px;transform:none;padding:4px;border:1px solid var(--rule-strong);background:var(--background);box-shadow:none}.nav-sidebar-footer .option_item{flex-direction:row;padding:9px 12px;gap:8px;font-family:var(--mono);font-size:15px;font-weight:400;letter-spacing:.14em;text-transform:lowercase;color:var(--ash)}.nav-sidebar-footer .option_item:hover{background:none;color:var(--ink)}@media (prefers-reduced-motion: reduce){#mslam:after{animation:none}}.mobile-header{position:fixed;top:0;left:0;width:100%;height:68px;background:var(--primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:space-between;padding:0 20px;z-index:2000;border-bottom:1px solid rgba(255,255,255,.08)}.title-mslam{font-size:1.25rem;font-weight:500;letter-spacing:.02em;color:var(--text);text-decoration:none}.burger{width:40px;height:40px;display:flex;flex-direction:column;justify-content:center;align-items:center;background:none;border:none;cursor:pointer;position:relative;z-index:2500}.burger span{position:absolute;width:28px;height:2px;background:var(--text);transition:transform .3s,opacity .3s;border-radius:2px}.burger span:nth-child(1){transform:translateY(-10px)}.burger span:nth-child(2){opacity:1}.burger span:nth-child(3){transform:translateY(10px)}.burger.open span:nth-child(1){transform:translateY(0) rotate(45deg)}.burger.open span:nth-child(2){opacity:0}.burger.open span:nth-child(3){transform:translateY(0) rotate(-45deg)}#NavMobile{position:fixed;top:0;left:0;width:100%;height:100dvh;background:#050512eb;display:flex;align-items:stretch;justify-content:center;opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s ease,visibility .25s ease;z-index:1500;padding-top:68px}.nav-items{width:100%;display:flex;flex-direction:column;gap:.55rem;overflow:auto;position:relative;padding-right:.1rem}.scroll-indicator{display:none!important}#NavMobile.open{opacity:1;visibility:visible;pointer-events:auto}.nav-content{width:100%;max-width:520px;display:flex;flex-direction:column;min-height:100%;padding:1.1rem 1.1rem calc(1.5rem + env(safe-area-inset-bottom,0px));box-sizing:border-box;position:relative;gap:1rem}.nav-item{width:100%}.nav-item a{display:flex;align-items:center;min-height:64px;padding:0 1.1rem;font-size:1.15rem;font-weight:500;color:var(--text);text-decoration:none;border-radius:16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);transition:background-color .2s ease,border-color .2s ease,transform .2s ease}.nav-item a:hover{background:#ffffff14;border-color:#ffffff24;transform:translateY(-1px)}.social-icons-container{margin-top:auto;width:100%;padding-top:1rem;padding-bottom:env(safe-area-inset-bottom,0px);border-top:1px solid rgba(255,255,255,.08)}.social-icons-container .social-container{width:100%;display:flex;justify-content:center;gap:.65rem}.social-icons-container .social-container a{padding:.65rem;border-radius:999px;background:#ffffff0a}#NavMobile .lang_container{margin:0 auto}.presentation-content{font-size:1.1rem;font-family:Anonymous Pro,monospace;color:#ddd;line-height:1.6;max-width:700px;text-align:left;margin-bottom:40px;width:100%}.presentation-age{margin:-8px 0 20px;color:#ffffffb8;font-size:.98rem;font-family:Quicksand,sans-serif;text-align:center}.cv-download-wrap{display:flex;justify-content:flex-end;width:100%;max-width:700px;margin:1.4rem 0 .4rem}.cv-download{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem 1rem;border:2px solid #777777;border-radius:1px;background:#ffffff0a;color:var(--text);font-family:Quicksand,sans-serif;font-size:.92rem;font-weight:600;text-decoration:none;transition:border-color .1s,background-color .1s}.cv-download:hover{border-color:var(--route-accent, var(--primary));background:#ffffff12}.bio,.skills,.philosophy{margin-bottom:30px}h2{font-size:1.8rem;font-family:Poppins,sans-serif;color:#fff;margin-bottom:10px;margin-top:20px}p,li{font-size:1.1rem;color:#ddd;line-height:1.6}.presentation-content a{font-family:Poppins,Arial,Helvetica,sans-serif;display:inline-block;padding:0 .3rem;border-radius:4px;background:#8fbc3d;color:#17576e;text-decoration:none;border:2px solid black}ul{list-style-type:none;padding-left:0;margin-top:15px}li{margin-bottom:12px;display:grid;grid-template-columns:25px 1fr;align-items:start;transition:transform .2s ease,color .2s ease}li:before{content:"✦";color:#b3a8ff;font-size:1.2rem;grid-column:1;margin-right:10px}li span{grid-column:2}li:hover{transform:translate(5px);color:#fff}.person{color:#ffd966;font-weight:500;border-bottom:1px dotted #ffd966;padding-bottom:1px;transition:all .2s ease;display:inline-block}.person:hover{color:#ffecb3;border-bottom-color:#ffecb3}.place{color:#8bd3dd;font-weight:500;font-style:italic;transition:all .2s ease;display:inline-block}.place:hover{color:#b3e6ec;text-shadow:0 0 8px rgba(139,211,221,.4)}.project{color:#ff9a8b;font-weight:500;transition:all .2s ease;display:inline-block}.project:hover{color:#ffbcb3}.nationality-flags{display:flex;align-items:center;justify-content:center;margin-bottom:25px;margin-top:-10px}.flags{display:flex;gap:10px}.flag{width:30px;height:22px;border-radius:3px;overflow:hidden;box-shadow:0 2px 4px #0003;transition:transform .3s ease}.flag:hover{transform:scale(1.15)}.french-flag{display:flex;flex-direction:row}.flag-stripe{flex:1;height:100%}.blue{background-color:#0055a4}.white{background-color:#fff}.red{background-color:#ef4135}.morocco-flag{position:relative}.morocco-background{width:100%;height:100%;background-color:#c1272d;display:flex;justify-content:center;align-items:center}.morocco-star{color:#006233;font-size:15px;line-height:15px}.project-list-view{display:flex;flex-direction:column;gap:1.5rem;width:100%;max-width:980px;margin:0 auto;align-self:center}.project-table-section{width:100%}.project-table-section-title{margin:0;color:#ffffffeb;font-size:.95rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;margin-bottom:.8rem}.project-table-frame{width:100%;max-width:100%;border:4px solid #777777;border-radius:1px;overflow:hidden;background:#ffffff05;transition:border-color .1s}.project-table-frame:hover{border-color:var(--primary)}.project-table-header{display:grid;grid-template-columns:minmax(0,1fr) 88px 56px;gap:1rem;padding:.85rem 1rem;border-bottom:2px solid rgba(255,255,255,.12);color:#ffffff6b;font-size:.75rem;letter-spacing:.05em;text-transform:uppercase;background:#ffffff04}.project-table-row-wrap+.project-table-row-wrap{border-top:1px solid rgba(255,255,255,.1)}.project-table-row{display:grid;grid-template-columns:minmax(0,1fr) 56px;gap:1rem;align-items:stretch}.project-table-row-main{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 88px;gap:1rem;padding:.95rem 0 .95rem 1rem;border:0;background:transparent;text-align:left;cursor:pointer}.project-table-row:hover{background:#ffffff08}.project-table-cell{min-width:0;color:#fffc;font-size:.9rem;line-height:1.45}.project-table-cell--title{display:flex;align-items:center;gap:.75rem;color:#fffffff5;font-weight:500}.project-table-thumb{flex:0 0 40px;width:40px;height:40px;border-radius:1px;overflow:hidden;background:#ffffff0d}.project-table-thumb-image{width:100%;height:100%;display:block;object-fit:cover}.project-table-title-text{min-width:0}.project-table-cell--year{color:#ffffff73;font-size:.84rem}.project-table-cell--action{display:flex;align-items:center;justify-content:center;padding-right:1rem}.project-table-quick-link{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:1px;border:2px solid rgba(255,255,255,.12);background:#ffffff09;text-decoration:none;transition:border-color .1s}.project-table-quick-link:hover{border-color:var(--primary)}.project-table-quick-link-icon{display:inline-flex;align-items:center;font-size:.88rem}.project-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:24px;background:#020516bd;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.project-modal{position:relative;width:min(560px,100%);max-height:min(88vh,760px);display:flex;flex-direction:column;overflow:hidden;border:4px solid #777777;border-radius:1px;background:linear-gradient(180deg,#0b1338,#060a24);box-shadow:0 30px 80px #0000008c;outline:none}.project-modal-close{position:absolute;top:12px;right:12px;z-index:2;display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:2px solid rgba(255,255,255,.2);border-radius:1px;background:#060a1eb8;color:#ffffffdb;font-size:.95rem;cursor:pointer;transition:border-color .1s,color .1s}.project-modal-close:hover{border-color:var(--route-accent, var(--primary));color:#fff}.project-modal-media{flex:0 0 auto;display:flex;align-items:center;justify-content:center;height:190px;padding:1.2rem;background:#ffffff0a;border-bottom:2px solid rgba(255,255,255,.12)}.project-modal-media img{max-width:100%;max-height:100%;object-fit:contain}.project-modal-body{min-height:0;overflow-y:auto;padding:1.3rem 1.4rem 1.5rem;display:flex;flex-direction:column;gap:1rem}.project-modal-header{display:flex;align-items:center;justify-content:space-between;gap:1rem}.project-modal-title{margin:0;color:#fff;font-size:1.4rem;font-weight:600;line-height:1.25}.project-modal-year{flex:0 0 auto;padding:.24rem .62rem;border:2px solid var(--route-accent, var(--primary));border-radius:1px;color:#ffffffeb;font-size:.86rem;font-weight:600}.project-modal-description{margin:0;color:#ffffffc7;font-size:.96rem;line-height:1.7}.project-modal-meta{display:grid;gap:.55rem;margin:0;padding-top:.9rem;border-top:1px solid rgba(255,255,255,.1)}.project-modal-meta-row{display:grid;grid-template-columns:130px minmax(0,1fr);gap:.75rem}.project-modal-meta-row dt,.project-modal-meta-row dd{margin:0;font-size:.88rem;line-height:1.5}.project-modal-meta-row dt{color:#ffffff70}.project-modal-meta-row dd{color:#ffffffe6}.project-modal-action{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;margin-top:.3rem;padding:.8rem 1rem;border:2px solid var(--route-accent, var(--primary));border-radius:1px;background:color-mix(in srgb,var(--route-accent, var(--primary)) 14%,transparent);color:#fff;font-size:.92rem;font-weight:500;text-decoration:none;transition:background-color .1s,transform .1s}.project-modal-action:hover{background:color-mix(in srgb,var(--route-accent, var(--primary)) 26%,transparent)}.project-modal-action-icon{display:inline-flex;align-items:center}@media (min-width: 1280px){.project-list-view{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));max-width:1240px}.project-table-section{display:flex;flex-direction:column}.project-table-frame{flex:1 1 auto}.project-list-view:has(>.project-table-section:only-child){grid-template-columns:minmax(0,1fr);max-width:980px}.project-table-header{grid-template-columns:minmax(0,1fr) 72px 56px}.project-table-row-main{grid-template-columns:minmax(0,1fr) 72px}}@media (max-width: 768px){.project-table-header{grid-template-columns:minmax(0,1fr) 72px 56px}.project-table-row-main{grid-template-columns:minmax(0,1fr) 72px}}@media (max-width: 520px){.project-table-frame{border-width:3px;border-color:var(--primary)}.project-table-header{grid-template-columns:1fr 56px}.project-table-row{grid-template-columns:minmax(0,1fr) 48px;gap:.4rem}.project-table-row-main{grid-template-columns:1fr;gap:.3rem}.project-table-header span:nth-child(2),.project-table-cell--year{display:none}.project-table-cell--title{gap:.6rem}.project-table-thumb{flex-basis:34px;width:34px;height:34px;border-radius:1px}.project-table-cell--action{padding-right:.9rem}}@media (max-width: 520px){.project-modal-overlay{padding:14px}.project-modal-media{height:150px}.project-modal-body{padding:1.1rem 1.1rem 1.25rem}.project-modal-title{font-size:1.2rem}.project-modal-meta-row{grid-template-columns:1fr;gap:.1rem}.project-modal-action{width:100%}}.content-list{width:100%;display:flex;flex-wrap:wrap;gap:1.5rem}.content-list--gallery>*{flex:0 0 calc(33.333% - 1rem);min-width:200px}.content-list--list>*{flex:0 0 100%}@media (max-width: 768px){.content-list{gap:1rem}.content-list--gallery>*{flex:0 0 calc(50% - .5rem);min-width:150px}}@media (max-width: 480px){.content-list--gallery>*{flex:0 0 calc(50% - .5rem);min-width:120px}}.content-detail-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000d9;z-index:1000;display:flex;justify-content:flex-end;align-items:stretch;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.content-detail-panel{background:#000b2d;width:100%;max-width:900px;height:100%;display:flex;flex-direction:column;position:relative;overflow-y:auto;box-shadow:-4px 0 20px #00000080;-webkit-overflow-scrolling:touch;padding-top:50px}.content-detail-close{position:absolute;top:2rem;right:1rem;background:#ffffff1a;border:none;color:#fff;font-size:1.5rem;width:40px;height:40px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:10;transition:background .2s ease}.content-detail-close:hover{background:#fff3}.content-detail-title{font-size:1.8rem;font-weight:700;color:#fff;margin:0;padding:2rem 2rem 1rem;border-bottom:1px solid rgba(255,255,255,.1)}.content-detail-body{flex:1;padding:2rem;color:#ddd;line-height:1.6}.content-detail-body img{max-width:100%;width:auto;height:auto;max-height:60vh;margin:0 auto 1.5rem;display:block;border-radius:8px;cursor:zoom-in;transition:transform .2s ease;object-fit:contain}.content-detail-body img:hover{transform:scale(1.05);box-shadow:0 4px 20px #00000080}.content-detail-image-container{position:relative;width:100%;display:flex;justify-content:center;align-items:center}.content-detail-image-container img{max-height:300px;max-width:200px!important}.content-detail-image-fullscreen{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000f2;z-index:2000;display:flex;justify-content:center;align-items:center;padding:2rem;cursor:zoom-out}.content-detail-image-fullscreen img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;border-radius:8px;cursor:zoom-out}.content-detail-image-fullscreen-close{position:absolute;top:2rem;right:2rem;background:#fff3;border:none;color:#fff;font-size:2rem;width:50px;height:50px;border-radius:50%;cursor:pointer;display:flex;align-items:center;justify-content:center;z-index:2001;transition:background .2s ease}.content-detail-image-fullscreen-close:hover{background:#ffffff4d}@media (max-width: 768px){.content-detail-overlay{justify-content:center;align-items:center;padding:1rem}.content-detail-panel{max-width:100%;max-height:80vh;border-radius:12px}.content-detail-title{font-size:1.5rem;padding:1.5rem 1.5rem 1rem}.content-detail-body{padding:1.5rem}.content-detail-image-fullscreen{padding:1rem}.content-detail-image-fullscreen-close{top:1rem;right:1rem;width:40px;height:40px;font-size:1.5rem}}.content-page{padding:var(--page-content-padding-top, 50px) 20px 50px;width:100%;max-width:none}.content-page>*{width:min(100%,1400px);margin-left:auto;margin-right:auto}.content-page-title{font-size:clamp(2rem,1.9rem + .3vw,2.2rem);font-weight:700;color:#fff;margin:0 0 .95rem;text-align:center;line-height:1.1;letter-spacing:-.02em}.content-page-subtitle{font-size:clamp(1rem,.95rem + .25vw,1.15rem);color:#999;margin:0 0 2.1rem;text-align:center;line-height:1.45}@media (max-width: 768px){.content-page-title{font-size:2rem;margin:0 0 .8rem}.content-page-subtitle{font-size:1rem;margin:0 0 1.7rem}}.gallery-item{position:relative;overflow:hidden;border-radius:10px;aspect-ratio:1;cursor:pointer;transition:transform .3s ease;box-shadow:0 4px 10px #0000004d;background:linear-gradient(135deg,#1a1a2e,#16213e);border:1px solid rgba(255,255,255,.1);display:flex;justify-content:center;align-items:center;max-height:200px}.gallery-item:hover{transform:scale(1.03);box-shadow:0 8px 20px #0006}.gallery-item-image{width:100%;height:100%;object-fit:cover;transition:transform .3s ease;max-width:300px}.gallery-item:hover .gallery-item-image{transform:scale(1.05)}.gallery-item-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(to top,rgba(0,0,0,.9),rgba(0,0,0,.5),transparent);padding:1.5rem;display:flex;flex-direction:column;justify-content:flex-end}@media (max-width: 768px){.gallery-item-overlay{padding:.5rem}}.gallery-item-title{color:#fff;font-size:1.2rem;font-weight:600;margin-bottom:.5rem;text-shadow:0 0 2px #000,0 0 4px #000}@media (max-width: 768px){.gallery-item-title{font-size:1rem}}.gallery-item-subtitle{font-size:.9rem;opacity:.8}.gallery-item-icon{color:#b3a8ff;font-size:1.5rem;margin-top:.5rem}.poetry-toolbar{display:flex;align-items:end;justify-content:space-between;gap:1rem;width:100%;max-width:980px;margin:0 auto 1.5rem}.poetry-toolbar-group-wrap{display:flex;gap:.85rem;flex-wrap:wrap}.poetry-toolbar-group{display:flex;flex-direction:column;gap:.45rem}.poetry-toolbar-meta{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;justify-content:flex-end}.poetry-toolbar-label{color:#ffffff9e;font-size:.8rem;letter-spacing:.08em;text-transform:uppercase}.poetry-select{appearance:none;-webkit-appearance:none;-moz-appearance:none;min-width:140px;height:40px;padding:0 2.6rem 0 .9rem;border:2px solid rgba(255,255,255,.1);border-radius:1px;background-color:#ffffff0a;background-image:linear-gradient(45deg,transparent 50%,rgba(255,255,255,.68) 50%),linear-gradient(135deg,rgba(255,255,255,.68) 50%,transparent 50%);background-position:calc(100% - 18px) 17px,calc(100% - 12px) 17px;background-size:6px 6px,6px 6px;background-repeat:no-repeat;color:#fff;font:inherit;box-shadow:none}.poetry-search{min-width:300px;height:40px;padding:0 .9rem;border:2px solid rgba(255,255,255,.1);border-radius:1px;background:#ffffff0a;color:#fff;font:inherit;outline:none}.poetry-search::placeholder{color:#ffffff57}.poetry-select option{background:#110a2e;color:#fff}.poetry-pagination{display:flex;align-items:center;gap:.65rem;flex-wrap:wrap;justify-content:flex-end}.poetry-results-indicator,.poetry-page-indicator{color:#ffffffb8;font-size:.92rem}.poetry-select:hover,.poetry-search:hover,.poetry-search:focus{border-color:var(--primary);background:#ffffff0d;transition:border-color .1s}.poetry-reader-layout{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:18px;align-items:center;width:100%}.poetry-gallery-shell,.poetry-gallery-page{width:100%}.poetry-mobile-pagination{display:none}.poetry-nav-button{position:relative;display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border:2px solid rgba(255,255,255,.1);border-radius:1px;background:#ffffff08;color:#ffffffe6;font-size:1rem;cursor:pointer;transition:border-color .1s,background-color .1s,color .1s;align-self:center}.poetry-nav-button:hover:not(:disabled){border-color:var(--primary);background:#ffffff0d;color:#fff}.poetry-nav-button:disabled{opacity:.35;cursor:default;transform:none}.poetry-page-button{height:40px;padding:0 .95rem;border:2px solid rgba(255,255,255,.1);border-radius:1px;background:#ffffff08;color:#ffffffe6;font:inherit;cursor:pointer;transition:border-color .1s,background-color .1s,color .1s}.poetry-page-button:hover:not(:disabled){border-color:var(--primary);background:#ffffff0d}.poetry-page-button:disabled{opacity:.42;cursor:default}.poesie-page .content-list--gallery{display:block;column-count:3;column-gap:18px;max-width:980px;margin:0 auto}.poesie-page .content-list--gallery>*{display:inline-block;width:100%;margin:0 0 18px;break-inside:avoid}.poem-card{display:flex;flex-direction:column;gap:.95rem;padding:1.2rem 1.2rem 1rem;background:#ffffff06;border:4px solid #777777;border-radius:1px;transition:border-color .1s}.poem-card:hover{border-color:var(--primary)}.poem-card-date{margin:0;color:#ffffff94;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase}.poem-card-text{text-align:left;margin:0;color:#fffffff0;font-size:1rem;line-height:1.75;white-space:pre-line;font-style:normal}.poem-card-meta{display:flex;flex-direction:column;gap:.35rem;margin-top:auto;padding-top:.35rem}.poem-card-author{margin:0;color:#ffffffb8;font-size:.9rem}.poem-card-context,.poem-card-context-spacer{min-height:1.15rem}.poem-card-context{margin:0;color:#ffffff75;font-size:.88rem;line-height:1.45}.poem-card-actions{display:flex;gap:.5rem;padding-top:.9rem;border-top:2px solid rgba(255,255,255,.12)}.poem-card-action{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:2px solid rgba(255,255,255,.12);border-radius:1px;background:transparent;color:#ffffffd1;cursor:pointer;transition:border-color .1s,background-color .1s,color .1s}.poem-card-action:hover{border-color:var(--primary);background:#ffffff0d;color:#fff}.poem-card-action.is-active{border-color:#211df373;background:#211df32e;color:#fff}@media (max-width: 1180px){.poetry-toolbar{align-items:stretch}.poetry-toolbar-meta{align-self:flex-end}.poetry-reader-layout{grid-template-columns:44px minmax(0,1fr) 44px;gap:12px}.poetry-nav-button{width:44px;height:44px}.poesie-page .content-list--gallery{column-count:2;column-gap:16px;max-width:820px}.poesie-page .content-list--gallery>*{margin-bottom:16px}.poem-card{padding:1rem}.poem-card-text{font-size:.98rem;line-height:1.68}}@media (max-width: 768px){.poetry-toolbar{align-items:stretch;justify-content:space-between;margin-bottom:1.2rem}.poetry-toolbar-meta{justify-content:space-between}.poetry-reader-layout{display:block}.poetry-nav-button{display:none}.poesie-page .content-list--gallery{column-count:2;column-gap:14px}.poesie-page .content-list--gallery>*{margin-bottom:14px}.poetry-mobile-pagination{display:flex;align-items:center;justify-content:space-between;gap:.75rem;margin-top:.9rem;padding-top:.2rem}.poem-card{padding:1rem}.poem-card-text{font-size:.98rem;line-height:1.7}}@media (max-width: 560px){.poetry-toolbar,.poetry-toolbar-group-wrap,.poetry-toolbar-meta{flex-direction:column;align-items:stretch}.poetry-search{min-width:0;width:100%}.poetry-mobile-pagination{flex-direction:row;align-items:center;justify-content:space-between}.poesie-page .content-list--gallery{column-count:1}.poem-card{border-width:3px;border-color:var(--primary)}}.maintenance{position:relative;z-index:1;flex:1 1 auto;display:flex;flex-direction:column;justify-content:center;align-items:center;width:100%;min-height:100vh;padding:60px 32px;overflow-y:auto}.maintenance-inner{width:100%;max-width:54ch;display:flex;flex-direction:column;align-items:flex-start}.maintenance-path{padding-bottom:12px;margin-bottom:44px;width:100%;border-bottom:1px solid var(--rule);font-family:var(--mono);font-size:12px;letter-spacing:.18em;color:var(--ash)}.maintenance-path .prompt{color:var(--ash-dim)}.maintenance-wordmark{position:relative;display:inline-block;margin-bottom:34px;padding-right:.306em;font-family:var(--mono);font-size:32px;letter-spacing:.24em;line-height:1;color:var(--ink)}.maintenance-wordmark:after{content:"";position:absolute;right:0;bottom:.182em;width:.546em;height:.637em;background:var(--nav-presentation);animation:mslam-caret 1.2s steps(1,end) infinite}.maintenance h1{margin:0;padding-bottom:9px;font-family:var(--mono);font-size:clamp(28px,3vw,40px);font-weight:400;letter-spacing:.02em;line-height:1.1;color:var(--ink);box-shadow:inset 0 -3px 0 0 var(--nav-home)}.maintenance-links{margin-top:44px;padding-top:22px;width:100%;border-top:1px solid var(--rule)}@media (max-width: 600px){.maintenance{padding:44px 24px}.maintenance-wordmark{font-size:26px}.maintenance-path{margin-bottom:34px}}@media (prefers-reduced-motion: reduce){.maintenance-wordmark:after{animation:none}}@font-face{font-family:Quicksand;src:url(/assets/Quicksand-Regular-DwV0T0OO.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Quicksand;src:url(/assets/Quicksand-Bold-CRBjWP5_.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Quicksand;src:url(/assets/Quicksand-Light-vueg2bmh.ttf) format("truetype");font-weight:thin;font-style:normal}@font-face{font-family:Quicksand;src:url(/assets/Quicksand-Medium-ClxOSIMz.ttf) format("truetype");font-weight:500;font-style:normal}@font-face{font-family:Anonymous Pro;src:url(/assets/AnonymousPro-Regular-DrhDdRrN.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Anonymous Pro;src:url(/assets/AnonymousPro-Bold-Cc4At0rI.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Anonymous Pro;src:url(/assets/AnonymousPro-Italic-81cORvYc.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(/assets/Poppins-ThinItalic-DeF98U39.ttf) format("truetype");font-weight:thin;font-style:italic}@font-face{font-family:Poppins;src:url(/assets/Poppins-Regular-CTKNfV9P.ttf) format("truetype");font-weight:400;font-style:normal}@font-face{font-family:Poppins;src:url(/assets/Poppins-Bold-qTAUjFF7.ttf) format("truetype");font-weight:700;font-style:normal}@font-face{font-family:Poppins;src:url(/assets/Poppins-Italic-PjgN8SAi.ttf) format("truetype");font-weight:400;font-style:italic}@font-face{font-family:Poppins;src:url(/assets/Poppins-Thin-leD9T1nx.ttf) format("truetype");font-weight:100;font-style:normal}html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,cite,code,del,dfn,em,img,ins,kbd,q,s,samp,small,strike,strong,sub,sup,tt,var,b,u,i,center,dl,dt,dd,ol,ul,li,fieldset,form,label,legend,table,caption,tbody,tfoot,thead,tr,th,td,article,aside,canvas,details,embed,figure,figcaption,footer,header,hgroup,menu,nav,output,ruby,section,summary,time,mark,audio,video{margin:0;padding:0;border:0;font-size:100%;font:inherit;vertical-align:baseline}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}body{line-height:1}ol,ul{list-style:none}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:"";content:none}table{border-collapse:collapse;border-spacing:0}:root{--primary: #211df3;--background: #060021;--text: whitesmoke;--cyan: #17e9e9;--btn: #211df3;--btn2: #d11357;--mobile-header-height: 68px;--page-title-gap: .85rem;--mono: "Anonymous Pro", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--ink: #eceaf7;--ash: #8280a4;--ash-dim: #55537a;--rule: rgba(236, 234, 247, .1);--rule-strong: rgba(236, 234, 247, .2);--nav-home: #2962ff;--nav-presentation: #ff1a8c;--nav-applications: #00bfa5;--nav-games: #ffd600;--nav-poesie: #c667ff}::selection{background-color:var(--primary)}*{color:var(--text);box-sizing:border-box;margin:0;padding:0}body,html{font-family:Quicksand,Poppins,Anonymous Pro,Arial;background-color:var(--background);width:100%;height:100%;display:flex;flex-direction:column}#root{display:flex;flex-direction:row;width:100%;height:100%;min-height:100vh}.app-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none}.app-content-shell{position:relative;z-index:1;display:flex;width:100%;min-width:0;height:100%;overflow:hidden}.app-content-routes{position:relative;z-index:1;display:flex;width:100%;height:100%;min-width:0;min-height:0}.starfield-canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:0}h1{font-size:2rem;font-weight:700;font-family:Poppins,sans-serif;margin-bottom:15px;color:#fff}.surligne{background-color:var(--primary)}main{display:flex;flex:1 1 auto;flex-direction:column;justify-content:start;align-items:center;align-content:center;width:100%;height:100%;min-height:0;border:0;background:none;overflow:auto;padding:50px 20px;scroll-behavior:smooth}header{position:relative;z-index:1;flex:0 0 300px;width:300px;display:flex;flex-direction:column;align-items:stretch;gap:52px;padding:48px 0 34px;height:100vh;background:none;border-right:1px solid var(--rule);overflow:hidden}.header-top{flex:0 0 auto;display:flex;padding:0 24px 0 44px}#mslam{position:relative;align-self:flex-start;display:inline-block;font-family:var(--mono);font-size:27px;font-weight:400;letter-spacing:.24em;line-height:1;text-transform:lowercase;text-decoration:none;color:var(--ink);-webkit-user-select:none;user-select:none;cursor:pointer;padding-right:.306em}#mslam:after{content:"";position:absolute;right:0;bottom:.182em;width:.546em;height:.637em;background:var(--nav-presentation);animation:mslam-caret 1.2s steps(1,end) infinite}#mslam:hover{color:#fff}#mslam:hover:after{background:var(--nav-home)}@keyframes mslam-caret{0%,49%{opacity:1}50%,to{opacity:0}}nav div{display:flex;flex-direction:column;width:100%;gap:5px}.social-container{display:flex;flex-direction:row;justify-content:space-evenly;width:100%}.social-text{display:flex;flex-direction:row;flex-wrap:wrap;width:auto;gap:6px 16px;font-family:var(--mono);font-size:14px;letter-spacing:.1em}.social-text a{color:var(--ash-dim);text-decoration:none;transition:color .14s ease}.social-text a:hover,.social-text a:focus-visible{color:var(--ink)}.social-container a{padding:10px;width:auto;height:auto}.social-container a:hover:nth-child(1){background:#000}.social-container a:hover:nth-child(2){background:#0f549b}.social-container a:hover:nth-child(3){background:#6275c0}.social-container a:hover:nth-child(4){background:#9a49f6}.social-container a:hover:nth-child(5){background:#ec4148}@media (max-width: 768px){#NavPC{display:none}#root{flex-direction:column;min-height:100dvh;height:100dvh}.app-content-shell{flex:1 1 auto;min-height:0;height:calc(100dvh - var(--mobile-header-height));overflow:hidden}.app-content-routes{height:100%;min-height:0}header{flex:0 0 auto;width:100%;max-width:100%;gap:0;padding:0;background:none;border:none;height:auto;overflow:visible}.header-top,#mslam{display:none}main{border:0;height:100%;min-height:100%}}@media (min-width: 769px){#NavMobile,.mobile-header{display:none}}
