:root{--bg: #0b1020;--text: #e6edf3;--muted: #9fb0c0;--primary: #00bfa5;--soft: #121933;--line: #1a2447}body{margin:0;font-family:system-ui,sans-serif;color:var(--text);background:var(--bg)}.layout{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto}.nav{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;border-bottom:1px solid var(--line);background:var(--soft)}.links a{margin:0 10px;color:var(--muted);text-decoration:none}.links a.active{color:var(--primary)}.main{padding:32px 24px}.footer{padding:16px 24px;border-top:1px solid var(--line);color:var(--muted)}h1,h2{color:var(--primary)}.hero{display:grid;grid-template-columns:320px 1fr;gap:24px;align-items:center}.hero-photo{width:100%;aspect-ratio:1 / 1;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:#0e1630}.hero-photo img{width:100%;height:100%;object-fit:cover}.hero-text h1{margin:0 0 12px;font-size:28px;line-height:1.25}.hero-text p{margin:8px 0;color:var(--muted);max-width:65ch}@media (max-width: 900px){.hero{grid-template-columns:1fr}.hero-photo{max-width:360px;margin:0 auto}}.hero-photo{box-shadow:0 10px 30px #00000040}.hero-photo{border-radius:999px}.btn{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;margin-top:16px;border:1px solid var(--primary);border-radius:10px;color:var(--primary);font-weight:600;text-decoration:none;transition:.25s}.hero-buttons{display:flex;gap:16px;margin-top:20px;flex-wrap:wrap}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 18px;border:1px solid var(--primary);border-radius:10px;color:var(--primary);font-weight:600;text-decoration:none;transition:.25s}.btn:hover{background:var(--primary);color:var(--bg);transform:translateY(-2px)}.btn-secondary{border-color:var(--line);color:var(--text)}.btn-secondary:hover{background:var(--soft);color:var(--primary)}section a{color:var(--primary);text-decoration:none;font-weight:500}section a:hover{text-decoration:underline}.contact-section{margin-top:40px;padding-top:20px;border-top:1px solid var(--line)}.form{display:grid;gap:12px;max-width:560px;margin-top:12px}.form input,.form textarea{background:#0e1630;border:1px solid var(--line);border-radius:10px;padding:10px;color:var(--text)}.notice{padding:10px 12px;border-radius:8px;border:1px solid var(--line);background:var(--soft);color:var(--muted)}.notice.success{border-color:#22c55e;color:#22c55e}.notice.error{border-color:#ef4444;color:#ef4444}.timeline{display:grid;gap:16px;margin-top:16px}.xp-card{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:16px}.xp-card h3{margin:0 0 4px;color:var(--primary)}.xp-meta{color:var(--muted);font-size:14px}.xp-list{margin:12px 0;padding-left:18px}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.chip{background:#0e1630;border:1px solid var(--line);border-radius:999px;padding:4px 10px;color:var(--muted);font-size:12px}.xp-card{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:20px;margin-bottom:24px}.stage-section{margin-top:20px;padding:16px;border-left:3px solid var(--primary);background:#0e163066;border-radius:12px}.stage-section h4{margin:0 0 10px;color:var(--primary)}.stage-section ul{padding-left:20px}.stage-section p{margin:8px 0;color:var(--text)}.xp.container{display:grid;gap:16px}.xp-header{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;padding-bottom:8px;border-bottom:1px solid var(--line)}.xp-title{margin:0;color:var(--primary)}.xp-subtitle{margin:6px 0 0;color:var(--muted);font-size:14px}.xp-badges{display:flex;flex-wrap:wrap;gap:8px}.badge{border:1px solid var(--line);border-radius:999px;padding:4px 10px;font-size:12px;color:var(--muted);background:#0e1630}.xp-intro{margin:8px 0 0;color:var(--muted)}.card{background:var(--soft);border:1px solid var(--line);border-radius:16px;padding:16px}.card+.card{margin-top:8px}.card-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.col{min-width:0}@media (max-width: 900px){.xp-header{flex-direction:column;align-items:flex-start}.grid-2{grid-template-columns:1fr}}.h4-muted{margin:8px 0;font-size:14px;color:var(--muted);text-transform:uppercase;letter-spacing:.4px}.list{margin:8px 0;padding-left:18px}.list li{margin:6px 0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.chip{background:#0e1630;border:1px solid var(--line);color:var(--muted);border-radius:999px;padding:4px 10px;font-size:12px}.callout{border:1px dashed var(--line);background:#0e163066;border-radius:12px;padding:12px;margin-top:8px}.callout.info{border-color:#3757b3}.status{font-size:12px;padding:4px 10px;border-radius:999px;border:1px solid var(--line)}.status.success{color:#22c55e;border-color:#22c55e44;background:#22c55e14}.kpi{display:flex;gap:16px;flex-wrap:wrap;margin-top:8px}.kpi-num{font-weight:800;display:block}.kpi-label{color:var(--muted);font-size:12px}.card.oncf{background:#14110b;border-color:#3a2a10;box-shadow:inset 3px 0 #f59e0b22}.card.oncf .card-head h3,.card.oncf h3,.card.oncf .exp-h4{color:#f59e0b}.status.warm{color:#f59e0b;border-color:#f59e0b55;background:#f59e0b12}.card.oncf .h4-muted{color:#d6b984}.card.oncf .list li strong{color:#f6c76c}.card.oncf .callout{border-color:#796024;background:#f59e0b0f}.card.oncf .chips .chip{border-color:#3a2a10;background:#1a150d;color:#e6cf9a}.card.oncf .kpi-num{color:#f6c76c}.card.oncf .kpi-label{color:#cbb889}.edu-card{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:14px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease}.edu-item:nth-child(1) .edu-card,.edu-item:nth-child(2) .edu-card{box-shadow:inset 3px 0 #00bfa559}.edu{display:grid;gap:14px}.edu-head h2{margin:0;color:var(--primary)}.edu-sub{color:var(--muted);margin:0}.edu-timeline{position:relative;padding-left:26px;margin-top:6px}.edu-timeline:before{content:"";position:absolute;left:12px;top:4px;bottom:4px;width:2px;background:var(--line)}.edu-item{position:relative;margin:14px 0 18px;opacity:0;transform:translateY(8px);animation:edu-reveal .5s ease forwards}@keyframes edu-reveal{to{opacity:1;transform:translateY(0)}}.edu-dot{position:absolute;left:6px;top:6px;width:12px;height:12px;border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px #00bfa526}.edu-card{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:14px;transition:transform .2s,box-shadow .2s,border-color .2s}.edu-card:hover{transform:translateY(-2px);border-color:#00bfa559;box-shadow:0 8px 24px #00000040}.edu-row{display:flex;gap:10px;align-items:baseline;justify-content:space-between}.edu-title{margin:0;font-size:16px;color:var(--text)}.edu-period{font-size:12px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:2px 8px}.edu-meta{color:var(--muted);margin-top:4px;font-size:13px}.edu-details{margin:8px 0 0;color:var(--text)}.edu-actions{margin-top:10px}.btn.small{padding:8px 12px;font-size:13px;border-radius:8px}.edu-details-block{margin-top:8px}.edu-details-block summary{cursor:pointer;color:var(--primary);-webkit-user-select:none;user-select:none}.edu-details-block[open] summary{color:var(--text)}.edu-list{margin:6px 0;padding-left:18px}.edu-list li{margin:6px 0}.edu-bcc .bcc{margin-top:10px}.bcc-head{display:flex;gap:8px;align-items:center;justify-content:space-between}.bcc-title{font-weight:600;color:var(--text)}.bcc-credits{font-size:12px;color:#cbd5e1;background:#2b3346;border-radius:999px;padding:2px 8px}.bcc-sep{border:0;border-top:1px solid var(--line);margin:14px 0}.skills-head h2{margin:0;color:var(--primary)}.skills-sub{color:var(--muted);margin:4px 0 12px}.skills-cats{display:grid;gap:14px;margin-top:8px}@media (min-width: 900px){.skills-cats{grid-template-columns:1fr 1fr}}.skills-cat{background:var(--soft);border:1px solid var(--line);border-radius:14px;padding:14px;transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.skills-cat:hover{transform:translateY(-2px);border-color:#00bfa559;box-shadow:0 8px 24px #00000040}.skills-cat h3{margin:0 0 6px;color:var(--text)}.skills-cat ul{margin:8px 0 0;padding-left:18px}.skills-cat li{margin:6px 0;color:var(--text)}.tools-title{margin:18px 0 8px;color:var(--muted);text-transform:uppercase;font-size:13px;letter-spacing:.4px}.tool{background:#0e1630;border:1px solid var(--line);border-radius:12px;padding:12px;display:grid;place-items:center;gap:8px;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}.tool:hover{transform:translateY(-2px) scale(1.02);border-color:#00bfa559;box-shadow:0 10px 24px #00000040}.tool-icon{width:44px;height:44px;display:grid;place-items:center}.tool-icon img{max-width:100%;max-height:100%;display:block}.tool-icon.fallback{border-radius:999px;width:44px;height:44px;background:linear-gradient(135deg,#0bbf9a22,#00bfa512);border:1px solid var(--line);position:relative}.tool-icon.fallback:after{content:attr(data-fallback);color:var(--primary);font-weight:700}.tool-name{font-size:12.5px;color:var(--muted);text-align:center}.pfe-feature{margin-bottom:18px}.pfe-grid{display:grid;gap:16px;grid-template-columns:1.2fr 1fr}.pfe-text .lead{margin:6px 0 10px;color:var(--text)}.pfe-details{margin-top:8px}.pfe-details summary{cursor:pointer;color:var(--primary);-webkit-user-select:none;user-select:none}.pfe-details[open] summary{color:var(--text)}.pfe-gallery{display:grid;gap:10px;grid-template-columns:repeat(3,1fr)}.pfe-thumb{border:0;padding:0;background:transparent;cursor:zoom-in;border-radius:12px;overflow:hidden;aspect-ratio:4 / 3;box-shadow:0 6px 18px #00000040;transition:transform .22s ease,box-shadow .22s ease}.pfe-thumb:hover{transform:translateY(-2px);box-shadow:0 10px 24px #00000059}.pfe-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transition:transform .25s ease,filter .25s ease}.pfe-thumb:hover img{transform:scale(1.04);filter:brightness(1.05)}@media (max-width: 900px){.pfe-gallery{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.pfe-gallery{grid-template-columns:1fr}.pfe-thumb{aspect-ratio:16 / 9}}.lb{position:fixed;inset:0;background:#000000d9;display:grid;place-items:center;z-index:50}.lb-img{max-width:min(92vw,1400px);max-height:80vh;border-radius:8px;box-shadow:0 12px 40px #0009}.lb-caption{color:#cbd5e1;margin-top:8px;font-size:14px;text-align:center}.lb-close,.lb-prev,.lb-next{position:absolute;top:16px;background:transparent;color:#e2e8f0;border:1px solid #475569;border-radius:8px;width:36px;height:36px;display:grid;place-items:center;cursor:pointer}.lb-close{right:16px;font-size:20px}.lb-prev,.lb-next{top:50%;transform:translateY(-50%);font-size:26px}.lb-prev{left:16px}.lb-next{right:16px}.lb button:hover{background:#ffffff0f}.contact{text-align:center;padding:40px 0;animation:fadeIn .6s ease forwards}.contact-header h2{margin:0;font-size:28px;color:var(--primary)}.contact-header p{color:var(--muted);margin-top:6px;font-size:15px}.contact-card{margin:28px auto 0;max-width:650px;background:linear-gradient(145deg,#0b1120,#0e162d);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 32px #0006;padding:28px;display:flex;flex-direction:column;gap:22px;transition:transform .3s ease,box-shadow .3s ease}.contact-card:hover{transform:translateY(-2px);box-shadow:0 12px 36px #00bfa540}.contact-info{display:grid;gap:14px}.contact-item{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--text);font-size:15px;transition:color .2s ease}.contact-item a{color:var(--text);text-decoration:none}.contact-item:hover a,.contact-item:hover .icon{color:var(--primary)}.icon{width:20px;height:20px;color:var(--muted);transition:color .2s ease}.contact-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:16px}.btn.primary{background:var(--primary);color:#fff;border:none}.btn.secondary{border:1px solid var(--primary);color:var(--primary);background:transparent}.btn{padding:10px 18px;border-radius:10px;font-size:14px;font-weight:500;cursor:pointer;transition:all .25s ease}.btn:hover{transform:scale(1.05);box-shadow:0 0 12px #00bfa559}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ev-gallery{display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-top:16px}.ev-thumb{border:none;padding:0;background:transparent;cursor:zoom-in;border-radius:12px;overflow:hidden;aspect-ratio:4 / 3;box-shadow:0 6px 18px #00000040;transition:transform .25s ease,box-shadow .25s ease}.ev-thumb:hover{transform:translateY(-3px);box-shadow:0 10px 24px #00bfa540}.ev-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transition:transform .25s ease,filter .25s ease}.ev-thumb:hover img{transform:scale(1.04);filter:brightness(1.05)}@media (max-width: 900px){.ev-gallery{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.ev-gallery{grid-template-columns:1fr}.ev-thumb{aspect-ratio:16 / 9}}.lb.lb-ev{z-index:60}.welcome-overlay{position:fixed;inset:0;background:radial-gradient(1200px 600px at 30% 20%,rgba(0,191,165,.14),transparent 60%),#000000b8;display:grid;place-items:center;z-index:60;animation:overlayIn .25s ease}@keyframes overlayIn{0%{opacity:0}to{opacity:1}}.welcome-card{width:min(680px,92vw);background:linear-gradient(145deg,#0b1120,#0e162d);border:1px solid var(--line);border-radius:18px;padding:22px 20px;box-shadow:0 20px 70px #00000073;animation:cardPop .25s ease}@keyframes cardPop{0%{transform:translateY(8px);opacity:0}to{transform:none;opacity:1}}.welcome-lang{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:13px;margin-bottom:8px}.welcome-lang-buttons{display:flex;gap:8px}.chip{border:1px solid var(--line);background:#0f172a;color:var(--text);padding:6px 10px;border-radius:999px;font-size:13px;cursor:pointer;transition:all .2s ease}.chip:hover{border-color:#00bfa580;color:var(--primary)}.chip.active{background:#00bfa51f;border-color:#00bfa566;color:var(--primary)}.welcome-title{margin:6px 0 4px;color:var(--primary);font-size:26px}.welcome-sub{margin:0;color:var(--muted)}.welcome-lead{margin:10px 0 14px;color:var(--text)}.welcome-cta{display:flex;gap:10px;flex-wrap:wrap}.btn.primary{background:var(--primary);color:#0b1120;border:none}.btn.btn-secondary{border:1px solid var(--primary);color:var(--primary);background:transparent}.btn{padding:10px 16px;border-radius:10px;font-weight:600;transition:transform .2s ease,box-shadow .2s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px #00bfa538}.ev-gallery,.stade-gallery{display:grid;gap:10px;grid-template-columns:repeat(3,1fr);margin-top:16px}.ev-thumb,.stade-thumb,.pfe-thumb{border:none;padding:0;background:transparent;cursor:zoom-in;border-radius:12px;overflow:hidden;aspect-ratio:4 / 3;box-shadow:0 6px 18px #00000040;transition:transform .25s ease,box-shadow .25s ease}.ev-thumb:hover,.stade-thumb:hover,.pfe-thumb:hover{transform:translateY(-3px);box-shadow:0 10px 24px #00bfa540}.ev-thumb img,.stade-thumb img,.pfe-thumb img{width:100%;height:100%;display:block;object-fit:cover;object-position:center;transition:transform .25s ease,filter .25s ease}.ev-thumb:hover img,.stade-thumb:hover img,.pfe-thumb:hover img{transform:scale(1.04);filter:brightness(1.05)}@media (max-width: 900px){.ev-gallery,.stade-gallery{grid-template-columns:1fr 1fr}}@media (max-width: 600px){.ev-gallery,.stade-gallery{grid-template-columns:1fr}.ev-thumb,.stade-thumb,.pfe-thumb{aspect-ratio:16 / 9}}.container,.main{width:100%;max-width:1100px;margin-inline:auto;padding-inline:clamp(12px,3vw,24px)}:root{--safe-top: env(safe-area-inset-top, 0px);--safe-right: env(safe-area-inset-right, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px);--safe-left: env(safe-area-inset-left, 0px)}body{padding-top:var(--safe-top);padding-right:var(--safe-right);padding-bottom:var(--safe-bottom);padding-left:var(--safe-left)}.hero-text h1{font-size:clamp(22px,2.4vw + 14px,34px);line-height:1.25}p{font-size:clamp(14px,1.1vw + 10px,16px)}.grid-2{display:grid;grid-template-columns:1.2fr 1fr;gap:16px}@media (max-width: 960px){.grid-2{grid-template-columns:1fr}}.nav{flex-wrap:wrap;gap:10px}.links{display:flex;flex-wrap:wrap;gap:10px}@media (max-width: 420px){.hero-buttons .btn{width:100%;justify-content:center}}.form{width:100%}.tools-grid{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)}@media (min-width: 700px){.tools-grid{grid-template-columns:repeat(4,1fr)}}@media (min-width: 1100px){.tools-grid{grid-template-columns:repeat(6,1fr)}}a,button{min-height:40px}@media (prefers-reduced-motion: reduce){*{animation:none!important;transition:none!important}}.nav{position:sticky;top:0;z-index:70;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:max(10px,env(safe-area-inset-top)) clamp(12px,3vw,24px);background:color-mix(in oklab,var(--soft) 86%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line)}.nav a{text-decoration:none}.brand{display:inline-flex;align-items:center;gap:8px;font-weight:700;color:var(--text)}.brand-dot{width:10px;height:10px;border-radius:999px;background:var(--primary);box-shadow:0 0 0 4px #00bfa52e}.brand-accent{color:var(--primary)}.links.desktop{display:none}.link{color:var(--muted);padding:8px 10px;border-radius:8px}.link:hover{color:var(--primary);background:#00bfa514}.link.active{color:var(--primary);background:#00bfa51f}.nav-toggle{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border:1px solid var(--line);background:#0f172a;color:var(--text);border-radius:10px;cursor:pointer}.nav-toggle .bar{position:relative;width:18px;height:2px;background:var(--text)}.nav-toggle .bar:before,.nav-toggle .bar:after{content:"";position:absolute;left:0;right:0;height:2px;background:var(--text);transition:transform .2s ease,top .2s ease,opacity .2s ease}.nav-toggle .bar:before{top:-6px}.nav-toggle .bar:after{top:6px}.nav-toggle .bar.x{background:transparent}.nav-toggle .bar.x:before{top:0;transform:rotate(45deg)}.nav-toggle .bar.x:after{top:0;transform:rotate(-45deg)}.nav-panel{position:fixed;inset:0 0 auto;top:calc(56px + var(--safe-top));height:0;overflow:hidden;background:linear-gradient(180deg,#0b1120,#0e162d);border-bottom:1px solid var(--line);transition:height .25s ease}.nav-panel.open{height:320px}.links.mobile{display:grid;gap:6px;padding:14px clamp(14px,4vw,24px) 18px}.mlink{display:block;padding:12px;border-radius:10px;color:var(--text);background:#0f172a;border:1px solid var(--line)}.mlink:hover{color:var(--primary);border-color:#00bfa559;background:#00bfa50f}.mlink.active{color:var(--primary);border-color:#00bfa573;background:#00bfa51f}.nav-backdrop{position:fixed;inset:0;background:#00000073;z-index:60;border:0}@media (min-width: 960px){.links.desktop{display:flex;gap:6px;align-items:center}.nav-toggle,.nav-panel,.nav-backdrop{display:none!important}}.footer{background:linear-gradient(145deg,#0b1120,#0e162d);border-top:1px solid var(--line);color:var(--text);padding:28px clamp(16px,4vw,40px);text-align:center;animation:fadeInFooter .6s ease}@keyframes fadeInFooter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.footer-container{display:grid;gap:18px;align-items:center;justify-items:center}@media (min-width: 900px){.footer-container{grid-template-columns:1fr auto 1fr;text-align:left;justify-items:stretch}}.footer-name{margin:0;font-size:18px;color:var(--primary)}.footer-contact a{color:var(--muted);text-decoration:none}.footer-contact a:hover{color:var(--primary);text-decoration:underline}.btn-footer{background:var(--primary);color:var(--bg);border:none;padding:10px 18px;border-radius:10px;font-weight:600;text-decoration:none;transition:.25s;display:inline-flex;align-items:center;gap:8px}.btn-footer:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00bfa559}.footer-msg{color:var(--muted);margin:0;font-size:14px}.footer-msg strong{color:var(--primary)}.footer-copy{margin:4px 0 0;font-size:12px;color:#7a8b9b}@media (max-width: 600px){.footer-container{grid-template-columns:1fr;gap:14px}.footer-msg{font-size:13px}}html,body{scroll-behavior:smooth}.section{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,6vw,80px) 20px;border-bottom:1px solid var(--line);animation:fadeInUp .6s ease}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.nav a.active-section{color:var(--primary);font-weight:600}html{scroll-snap-type:y mandatory}.section{scroll-snap-align:start}
