:root{--violet:#6B2D8B;--violet-dark:#2D1A4A;--teal:#1A9B8C;--teal-dark:#12756A;--bg:#F6F5F9;--card:#FFFFFF;--text:#2D1A4A;--text-soft:#6E6685;--border:#E5E1EE;--shadow:0 2px 10px rgba(45, 26, 74, 0.08);--shadow-key:0 3px 0 #D8D3E4, 0 5px 12px rgba(45, 26, 74, 0.12);--font-title:'Syne', sans-serif;--font-body:'DM Sans', sans-serif}*{margin:0;padding:0;box-sizing:border-box}body{background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}h1,h2,h3,h4{font-family:var(--font-title);font-weight:700;line-height:1.35;letter-spacing:.2px}a{color:var(--violet);text-decoration:none}a:hover{color:var(--teal)}img{max-width:100%;height:auto;display:block}.wrap{max-width:1140px;margin:0 auto;padding:0 24px}.key{display:inline-block;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-key);padding:8px 16px;font-family:var(--font-title);font-weight:700;font-size:15px;letter-spacing:1px;color:var(--violet-dark);cursor:pointer;user-select:none;transition:transform 0.08s ease,box-shadow 0.08s ease}.key:active,.key.pressed{transform:translateY(3px);box-shadow:0 0 0 #D8D3E4,0 1px 4px rgb(45 26 74 / .12)}.key--accent{background:var(--teal);color:#fff;border-color:var(--teal-dark);box-shadow:0 3px 0 var(--teal-dark),0 5px 12px rgb(26 155 140 / .3)}.key--plus{border:none;background:none;box-shadow:none;padding:0 2px;cursor:default;color:var(--text-soft)}.site-header{background:var(--card);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.header-top{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;padding:18px 0 12px}.logo-keys{display:flex;align-items:center;gap:8px}.logo-keys a{display:flex;align-items:center;gap:8px}.tagline{font-size:13px;color:var(--text-soft);letter-spacing:2px;text-transform:uppercase}.badge-normandie{display:inline-flex;align-items:center;gap:8px;background:rgb(26 155 140 / .1);border:1px solid rgb(26 155 140 / .35);color:var(--teal-dark);border-radius:999px;padding:6px 14px;font-size:13px;font-weight:500}.pulse-dot{width:8px;height:8px;border-radius:50%;background:var(--teal);animation:pulse 1.6s infinite}@keyframes pulse{0%{box-shadow:0 0 0 0 rgb(26 155 140 / .5)}70%{box-shadow:0 0 0 8px #fff0}100%{box-shadow:0 0 0 0 #fff0}}.loadbar{padding:4px 0 10px}.loadbar-track{height:6px;border-radius:3px;background:var(--border);overflow:hidden}.loadbar-fill{height:100%;width:0;border-radius:3px;background:linear-gradient(90deg,var(--violet),var(--teal));transition:width 0.4s ease}.loadbar-msg{font-size:12px;color:var(--text-soft);font-family:'Courier New',monospace;margin-top:5px;min-height:16px}.site-nav{display:flex;flex-wrap:wrap;gap:10px;padding:10px 0 16px}.nav-key{display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-key);padding:7px 14px;font-family:var(--font-title);font-weight:700;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--violet-dark);transition:transform 0.08s ease,box-shadow 0.08s ease,border-color 0.2s}.nav-key:hover{border-color:var(--violet);color:var(--violet)}.nav-key:active{transform:translateY(3px);box-shadow:0 0 0 #D8D3E4}.nav-key .fkey{font-size:10px;background:var(--violet-dark);color:#fff;border-radius:4px;padding:2px 6px;font-family:'Courier New',monospace}.hero{padding:40px 0 0}.hero-grid{display:grid;grid-template-columns:2fr 1fr;gap:24px}.hero-card{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);overflow:hidden;display:flex;flex-direction:column}.hero-card .card-thumb{aspect-ratio:16/8}.hero-card .card-body{padding:28px}.hero-card h2{font-size:30px;margin:12px 0}.hero-side{display:flex;flex-direction:column;gap:16px}.side-card{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);padding:18px 20px;flex:1}.side-card h3{font-size:16px;margin-top:8px}.section-title{display:flex;align-items:center;gap:12px;font-size:22px;margin:40px 0 20px}.section-title .fkey{font-size:11px;background:var(--violet);color:#fff;border-radius:4px;padding:3px 8px;font-family:'Courier New',monospace}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:var(--card);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shadow);overflow:hidden;transition:transform 0.15s ease,box-shadow 0.15s ease}.card:hover{transform:translateY(-4px);box-shadow:0 8px 24px rgb(45 26 74 / .14)}.card-thumb{aspect-ratio:16/9;background:linear-gradient(135deg,var(--violet),var(--teal))}.card-thumb img{width:100%;height:100%;object-fit:cover}.card-body{padding:18px 20px 20px}.card h3{font-size:17px;margin:10px 0 8px}.card h3 a,.side-card h3 a,.hero-card h2 a{color:var(--violet-dark)}.card h3 a:hover,.side-card h3 a:hover,.hero-card h2 a:hover{color:var(--violet)}.card p{font-size:14px;color:var(--text-soft)}.tag{display:inline-block;font-size:11px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;color:var(--violet);background:rgb(107 45 139 / .08);border-radius:4px;padding:3px 9px}.tag--local{color:var(--teal-dark);background:rgb(26 155 140 / .12)}.meta{font-size:12px;color:var(--text-soft);margin-top:10px}.local-band{background:linear-gradient(135deg,var(--teal),var(--teal-dark));border-radius:16px;color:#fff;padding:36px 32px;margin:48px 0}.local-band h2{font-size:26px;color:#fff;margin-bottom:8px}.local-band p{opacity:.9;max-width:640px}.local-band .badge-normandie{background:rgb(255 255 255 / .15);border-color:rgb(255 255 255 / .4);color:#fff;margin-bottom:14px}.local-band .pulse-dot{background:#fff}.about-block{background:var(--card);border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow);padding:36px 32px;margin:24px 0 48px}.about-block h2{font-size:24px;margin-bottom:14px}.about-block p{color:var(--text-soft);max-width:720px}.splash{min-height:55vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:24px;padding:60px 0}.splash .logo-keys{transform:scale(1.5);margin-bottom:12px}.splash h1{font-size:30px}.splash .cursor-line{font-family:'Courier New',monospace;color:var(--text-soft);font-size:15px}.blink{display:inline-block;width:9px;height:18px;background:var(--teal);vertical-align:middle;animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.article-main{padding:48px 24px;max-width:780px;margin:0 auto}.article-main .tag{margin-bottom:14px}.article-title{font-size:36px;margin:10px 0 14px}.article-meta{color:var(--text-soft);font-size:14px;margin-bottom:28px}.article-thumb{border-radius:14px;overflow:hidden;margin-bottom:30px}.article-content{font-size:17px}.article-content p{margin-bottom:20px}.article-content h2{font-size:24px;margin:34px 0 14px}.article-content h3{font-size:19px;margin:28px 0 12px}.article-content img{border-radius:10px;margin:20px 0}.article-content blockquote{border-left:4px solid var(--teal);padding:4px 0 4px 20px;color:var(--text-soft);font-style:italic;margin:24px 0}.article-content ul,.article-content ol{margin:0 0 20px 24px}.error-404{min-height:50vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:18px;padding:60px 0}.error-404 .code{font-family:'Courier New',monospace;font-size:64px;font-weight:700;color:var(--violet)}.site-footer{background:var(--violet-dark);color:#C9C2DB;margin-top:60px;padding:48px 0 24px}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:32px;padding-bottom:32px;border-bottom:1px solid rgb(255 255 255 / .12)}.site-footer h4{color:#fff;font-size:14px;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:14px}.site-footer ul{list-style:none}.site-footer li{margin-bottom:8px}.site-footer a{color:#C9C2DB;font-size:14px}.site-footer a:hover{color:var(--teal)}.footer-brand .logo-keys{transform:scale(.85);transform-origin:left;margin-bottom:12px}.footer-brand p{font-size:13px;max-width:280px}.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;padding-top:20px;font-size:12px;color:#9A90B5}.footer-bottom button{background:none;border:none;color:#9A90B5;font-size:12px;cursor:pointer;text-decoration:underline;font-family:var(--font-body)}.footer-bottom button:hover{color:var(--teal)}.social-key{display:inline-flex;align-items:center;gap:8px;background:rgb(255 255 255 / .08);border:1px solid rgb(255 255 255 / .15);border-radius:8px;padding:7px 14px;margin:0 8px 8px 0;font-family:var(--font-title);font-weight:700;font-size:13px;color:#fff!important}.social-key:hover{border-color:var(--teal)}.modal-overlay{display:none;position:fixed;inset:0;background:rgb(45 26 74 / .6);z-index:500;align-items:center;justify-content:center;padding:24px}.modal-overlay.open{display:flex}.modal{background:var(--card);border-radius:16px;max-width:680px;width:100%;max-height:80vh;overflow-y:auto;padding:36px;position:relative}.modal h2{font-size:22px;margin-bottom:18px}.modal h3{font-size:15px;margin:20px 0 8px;color:var(--violet)}.modal p{font-size:14px;color:var(--text-soft);margin-bottom:10px}.modal-close{position:absolute;top:16px;right:16px;background:var(--bg);border:1px solid var(--border);border-radius:8px;padding:6px 12px;font-family:'Courier New',monospace;font-size:12px;cursor:pointer;color:var(--text)}.modal-close:hover{border-color:var(--violet);color:var(--violet)}.toast{position:fixed;bottom:24px;right:24px;background:var(--violet-dark);color:#fff;border-left:4px solid var(--teal);border-radius:10px;padding:14px 20px;font-size:14px;max-width:340px;box-shadow:0 8px 30px rgb(45 26 74 / .35);z-index:600;animation:toast-in 0.3s ease}@keyframes toast-in{from{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.you-died{position:fixed;inset:0;background:rgb(20 10 35 / .88);z-index:700;display:flex;align-items:center;justify-content:center;font-family:var(--font-title);font-size:56px;letter-spacing:6px;color:var(--teal);animation:toast-in 0.4s ease}.pixel{position:fixed;top:-12px;width:8px;height:8px;z-index:650;pointer-events:none}.konami-active .site-header{animation:konami-flash 0.5s ease 3}@keyframes konami-flash{50%{background:rgb(26 155 140 / .2)}}.pagination{display:flex;gap:8px;justify-content:center;margin:40px 0}.pagination .page-numbers{background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-key);padding:8px 14px;font-family:var(--font-title);font-weight:700;font-size:14px;color:var(--violet-dark)}.pagination .page-numbers.current{background:var(--violet);color:#fff;border-color:var(--violet)}@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.grid{grid-template-columns:repeat(2,1fr)}.footer-grid{grid-template-columns:1fr 1fr}.hero-card h2{font-size:24px}.article-title{font-size:28px}}@media (max-width:600px){.grid{grid-template-columns:1fr}.footer-grid{grid-template-columns:1fr}.header-top{justify-content:center}.badge-normandie{display:none}.you-died{font-size:32px}}.site-nav{counter-reset:navkey}.site-nav ul,.site-nav li{display:contents;list-style:none}.site-nav a:not(.nav-key){display:inline-flex;align-items:center;gap:8px;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-key);padding:7px 14px;font-family:var(--font-title);font-weight:700;font-size:13px;letter-spacing:1px;text-transform:uppercase;color:var(--violet-dark);counter-increment:navkey;transition:transform 0.08s ease,box-shadow 0.08s ease,border-color 0.2s}.site-nav a:not(.nav-key):hover{border-color:var(--violet);color:var(--violet)}.site-nav a:not(.nav-key):active{transform:translateY(3px);box-shadow:0 0 0 #D8D3E4}.site-nav a:not(.nav-key)::before{content:"F" counter(navkey);font-size:10px;background:var(--violet-dark);color:#fff;border-radius:4px;padding:2px 6px;font-family:'Courier New',monospace}.nav-toggle{display:none;background:var(--card);border:1px solid var(--border);border-radius:8px;box-shadow:var(--shadow-key);padding:10px;cursor:pointer;flex-direction:column;gap:4px}.nav-toggle span{display:block;width:20px;height:2px;background:var(--violet-dark);border-radius:2px;transition:transform 0.2s ease,opacity 0.2s ease}.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}@media (max-width:900px){.tagline{display:none}}@media (max-width:768px){.header-top{flex-wrap:nowrap;justify-content:space-between;gap:8px}.logo-keys .key{padding:6px 10px;font-size:12px}.badge-normandie{display:none}.nav-toggle{display:flex}.site-nav{display:none}.site-nav.open{display:flex;flex-direction:column}.site-nav.open a:not(.nav-key),.site-nav.open .nav-key{width:100%}.hero{padding:24px 0 0}.hero-card h2{font-size:22px}.hero-card .card-body{padding:20px}.section-title{font-size:19px;margin:28px 0 16px}.local-band,.about-block{padding:26px 20px}.article-title{font-size:26px}.article-main{padding:32px 20px}.splash .logo-keys{transform:scale(1.1)}.splash h1{font-size:24px}.footer-grid{gap:24px}}@media (max-width:400px){.logo-keys .key{padding:5px 7px;font-size:11px;letter-spacing:0}.logo-keys{gap:4px}.splash .logo-keys{transform:scale(1)}}