@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&family=Inter:wght@400;500;600;700;800;900&display=swap');

:root{
  /* Console-plastic palette — light mode */
  --nes-bg:#f5f1e4;          /* cartridge cream — page background */
  --nes-panel:#ece4cd;       /* light bezel panel — header/nav */
  --nes-panel-2:#ffffff;     /* card surface */
  --nes-cart:#241f18;        /* dark accent chip (logo badge, step numbers stay red though) */
  --nes-cart-line:#4a4238;
  --nes-red:#d7263d;         /* power LED / eject button */
  --nes-red-dim:#8f1c2c;
  --nes-blue:#3169d6;        /* player-2 select blue */
  --nes-gold:#a1720e;        /* darker amber for contrast on light surfaces */
  --chalk:#211d15;           /* primary text — dark on light */
  --dim:#6b6151;             /* secondary text */
  --line:rgba(33,29,21,0.14);
  --notch:8px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--nes-bg);
  color:var(--chalk);
  font-family:'Inter',system-ui,sans-serif;
  line-height:1.6;
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:1120px;margin:0 auto;padding:0 24px;}

h1,h2,h3{font-family:'Press Start 2P',monospace;text-transform:uppercase;text-rendering:optimizeLegibility;}
h1{line-height:1.35;letter-spacing:-0.5px;}
h2{line-height:1.5;}
h3{font-family:'Inter',system-ui,sans-serif;font-weight:800;text-transform:none;letter-spacing:0;}
.section-head h2{position:relative;padding-bottom:18px;}
.section-head h2::after{content:"";position:absolute;left:0;bottom:0;width:10px;height:10px;background:currentColor;box-shadow:14px 0 currentColor,28px 0 currentColor,42px 0 currentColor;opacity:0.7;}

/* Pixel-notch stepped corners — the signature cut used on every panel/button */
.btn,.g-card,.stat-card,.variant-card,.step-item,.faq-item,.rank-item,.hero-media,.code-block{
  clip-path:polygon(
    0 var(--notch), var(--notch) var(--notch), var(--notch) 0,
    calc(100% - var(--notch)) 0, calc(100% - var(--notch)) var(--notch), 100% var(--notch),
    100% calc(100% - var(--notch)), calc(100% - var(--notch)) calc(100% - var(--notch)), calc(100% - var(--notch)) 100%,
    var(--notch) 100%, var(--notch) calc(100% - var(--notch)), 0 calc(100% - var(--notch))
  );
}

/* ===== Header / Console Bezel Nav ===== */
header{position:sticky;top:0;z-index:50;background:var(--nes-panel);border-bottom:4px solid var(--nes-red);box-shadow:0 6px 0 rgba(0,0,0,0.25);}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:70px;position:relative;}
.logo{font-family:'Press Start 2P',monospace;font-weight:400;font-size:0.75rem;display:flex;align-items:center;gap:11px;letter-spacing:0.5px;}
.logo .logo-badge{
  width:36px;height:36px;background:var(--nes-bg);border:2px solid var(--nes-cart-line);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;
  clip-path:polygon(0 6px,6px 6px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 6px),0 calc(100% - 6px));
}
.logo .logo-badge svg{width:20px;height:20px;stroke:var(--nes-gold);fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.logo .logo-badge img{width:100%;height:100%;object-fit:cover;}
.logo .logo-badge::after{content:"";position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--nes-red);box-shadow:0 0 6px 1px var(--nes-red);animation:blink 2.4s steps(1) infinite;}
@keyframes blink{0%,55%{opacity:1;}56%,100%{opacity:0.25;}}
.logo span{color:var(--nes-red);}

.menu-btn{display:flex;align-items:center;justify-content:center;background:var(--nes-red);border:2px solid var(--nes-red);cursor:pointer;padding:10px;color:#fff;transition:background .15s, transform .15s;
  clip-path:polygon(0 6px,6px 6px,6px 0,calc(100% - 6px) 0,calc(100% - 6px) 6px,100% 6px,100% calc(100% - 6px),calc(100% - 6px) calc(100% - 6px),calc(100% - 6px) 100%,6px 100%,6px calc(100% - 6px),0 calc(100% - 6px));
}
.menu-btn:hover{background:#ef3a52;transform:scale(1.05);}
.menu-btn svg{width:22px;height:22px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,0.7);opacity:0;pointer-events:none;transition:opacity .25s ease;z-index:70;}
.nav-overlay.open{opacity:1;pointer-events:auto;}
#site-nav{
  position:fixed;top:0;right:0;height:100vh;width:320px;max-width:85vw;
  background:var(--nes-panel);border-left:4px solid var(--nes-red);
  transform:translateX(100%);transition:transform .32s cubic-bezier(.4,0,.2,1);
  z-index:80;display:flex;flex-direction:column;overflow-y:auto;
  box-shadow:-16px 0 44px rgba(0,0,0,0.6);
}
#site-nav.open{transform:translateX(0);}
.nav-head{display:flex;align-items:center;justify-content:space-between;padding:20px 22px;border-bottom:1px solid var(--line);}
.nav-head span{font-family:'Press Start 2P',monospace;font-size:0.75rem;color:var(--nes-gold);}
.nav-close{background:rgba(33,29,21,0.08);border:none;color:var(--chalk);cursor:pointer;padding:8px;border-radius:4px;display:flex;transition:background .15s;}
.nav-close:hover{background:rgba(33,29,21,0.16);}
.nav-close svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;}
.nav-links{display:flex;flex-direction:column;padding:14px;gap:2px;}
.nav-links a{padding:13px 14px;font-weight:700;font-size:0.95rem;color:var(--chalk);opacity:0.85;border-left:3px solid transparent;transition:background .15s, opacity .15s, border-color .15s, padding-left .15s;}
.nav-links a:hover{opacity:1;background:rgba(215,38,61,0.14);border-left-color:var(--nes-red);color:var(--chalk);padding-left:18px;}
.nav-group-label{padding:16px 14px 4px;font-family:'Press Start 2P',monospace;font-size:0.6rem;letter-spacing:0.5px;color:var(--dim);}
@media(min-width:1024px){#site-nav{width:340px;}}

/* ===== Hero — console fascia + cartridge-slot silhouette + D-pad glyph ===== */
.hero{
  position:relative;padding:110px 0 76px;overflow:hidden;
  background:
    repeating-linear-gradient(0deg, rgba(33,29,21,0.05) 0 1px, transparent 1px 3px),
    linear-gradient(135deg, rgba(255,255,255,0.75), rgba(255,255,255,0.35) 40%, rgba(255,255,255,0.55) 100%),
    url("https://iemulators.org/images/nes-emu-background.png") center / cover no-repeat,
    linear-gradient(160deg, #fbf8ee 0%, #ece4cd 60%, #ddd0ac 100%);
}
.hero::before{
  /* embossed cartridge-slot silhouette, decorative */
  content:"";position:absolute;top:-40px;right:-60px;width:520px;height:420px;
  background:
    linear-gradient(135deg, rgba(33,29,21,0.05), rgba(33,29,21,0.015)),
    repeating-linear-gradient(90deg, rgba(33,29,21,0.09) 0 3px, transparent 3px 22px);
  border-radius:26px;
  clip-path:polygon(18% 0,82% 0,100% 22%,100% 100%,0 100%,0 22%);
  opacity:0.7;pointer-events:none;
}
.hero::after{
  /* pixel D-pad + AB button glyph, floating console icon */
  content:"";position:absolute;bottom:26px;right:48px;width:132px;height:132px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'%3E%3Cg fill='%23241f18'%3E%3Crect x='8' y='34' width='34' height='12'/%3E%3Crect x='19' y='23' width='12' height='34'/%3E%3C/g%3E%3Cg fill='%23d7263d'%3E%3Ccircle cx='72' cy='34' r='9'/%3E%3Ccircle cx='90' cy='50' r='9'/%3E%3C/g%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:contain;opacity:0.92;
  filter:drop-shadow(0 6px 10px rgba(33,29,21,0.2));
  pointer-events:none;
}
@media(max-width:820px){.hero::before,.hero::after{display:none;}}
.hero-grid{max-width:760px;position:relative;z-index:2;}
.eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--nes-cart);border:2px solid var(--nes-gold);color:#f0c65a;font-family:'Press Start 2P',monospace;font-size:0.62rem;letter-spacing:0.5px;margin-bottom:20px;padding:9px 14px;
  clip-path:polygon(0 5px,5px 5px,5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px));
}
.eyebrow::before{content:"";width:7px;height:7px;background:var(--nes-red);box-shadow:0 0 6px 1px var(--nes-red);flex-shrink:0;}
.hero h1{font-size:clamp(1.5rem,3.6vw,2.5rem);margin-bottom:20px;color:var(--chalk);}
.hero h1 em{font-style:normal;color:var(--nes-red);}
.hero p.lead{color:var(--chalk);font-size:1.05rem;max-width:52ch;margin-bottom:30px;font-weight:500;opacity:0.85;}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:22px;}
.btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:15px 26px;font-family:'Press Start 2P',monospace;font-weight:400;font-size:0.7rem;border:2px solid transparent;cursor:pointer;transition:transform .15s ease, box-shadow .15s ease;}
.btn:hover{transform:translateY(-3px);}
.btn:active{transform:translateY(-1px);}
.btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;}
.btn-primary{background:var(--nes-red);color:#fff;box-shadow:0 6px 0 var(--nes-red-dim);}
.btn-primary:hover{box-shadow:0 8px 0 var(--nes-red-dim);}
.btn-primary:active{box-shadow:0 3px 0 var(--nes-red-dim);}
.btn-outline{border-color:var(--chalk);color:var(--chalk);background:#ffffff;box-shadow:0 6px 0 var(--nes-cart-line);}
.btn-outline:hover{background:var(--nes-bg);box-shadow:0 8px 0 var(--nes-cart-line);}
.hero-stats{display:flex;gap:30px;color:var(--chalk);font-size:0.85rem;font-weight:600;flex-wrap:wrap;}
.hero-stats b{color:var(--nes-red);display:block;font-family:'Press Start 2P',monospace;font-size:0.95rem;margin-bottom:6px;font-weight:400;}

section{padding:64px 0;}
.section-head{margin-bottom:40px;max-width:680px;}
.section-head .eyebrow{margin-bottom:10px;}
.section-head h2{font-size:clamp(1.1rem,2.2vw,1.55rem);}
.section-head p{color:var(--dim);max-width:60ch;margin-top:14px;font-size:0.98rem;}

.about-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
@media(max-width:720px){.about-grid{grid-template-columns:1fr;}}
.stat-card{background:var(--nes-panel-2);border:2px solid var(--line);padding:22px;transition:transform .18s ease, border-color .18s ease;}
.stat-card b{display:block;font-family:'Press Start 2P',monospace;font-size:1.1rem;font-weight:400;color:var(--nes-gold);margin-bottom:8px;}
.stat-card span{color:var(--dim);font-size:0.85rem;}

.feature-zigzag{display:flex;flex-direction:column;gap:56px;}
.feature-row{display:flex;align-items:center;gap:48px;}
.feature-row:nth-child(even){flex-direction:row-reverse;}
@media(max-width:760px){.feature-row,.feature-row:nth-child(even){flex-direction:column;gap:22px;}}
.feature-media{flex:1 1 42%;min-width:0;}
.feature-media img{width:100%;display:block;border:2px solid var(--line);background:#e8e2cf;
  clip-path:polygon(0 var(--notch),var(--notch) var(--notch),var(--notch) 0,calc(100% - var(--notch)) 0,calc(100% - var(--notch)) var(--notch),100% var(--notch),100% calc(100% - var(--notch)),calc(100% - var(--notch)) calc(100% - var(--notch)),calc(100% - var(--notch)) 100%,var(--notch) 100%,var(--notch) calc(100% - var(--notch)),0 calc(100% - var(--notch)));
}
.feature-text{flex:1 1 52%;}
.feature-index{display:block;font-family:'Press Start 2P',monospace;font-size:0.65rem;color:var(--nes-red);margin-bottom:12px;}
.feature-text h3{font-size:1.25rem;margin-bottom:12px;}
.feature-text p{color:var(--dim);font-size:1rem;line-height:1.7;}

.steps-list{counter-reset:step;display:flex;flex-direction:column;gap:14px;}
.step-item{display:flex;gap:18px;background:var(--nes-panel-2);border:2px solid var(--line);padding:18px 20px;align-items:flex-start;}
.step-num{counter-increment:step;flex-shrink:0;width:36px;height:36px;background:var(--nes-red);color:#fff;font-family:'Press Start 2P',monospace;display:flex;align-items:center;justify-content:center;font-size:0.85rem;
  clip-path:polygon(0 5px,5px 5px,5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px));
}
.step-num::before{content:counter(step);}
.step-text h3{font-size:1rem;margin-bottom:4px;}
.step-text p{color:var(--dim);font-size:0.9rem;}

.rank-list{display:flex;flex-direction:column;gap:10px;}
.rank-item{display:flex;align-items:center;gap:16px;background:var(--nes-panel-2);border:2px solid var(--line);padding:14px 18px;transition:transform .15s ease, border-color .15s ease;}
.rank-item:hover{transform:translateX(4px);border-color:var(--nes-blue);}
.rank-num{flex-shrink:0;width:38px;height:38px;background:var(--nes-red);color:#fff;font-family:'Press Start 2P',monospace;display:flex;align-items:center;justify-content:center;font-size:0.85rem;
  clip-path:polygon(0 5px,5px 5px,5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px));
}
.rank-text{flex:1;}
.rank-text h3{font-size:0.98rem;margin-bottom:3px;}
.rank-text h3 a:hover{color:var(--nes-red);}
.rank-text p{color:var(--dim);font-size:0.85rem;}
.rank-tag{flex-shrink:0;font-size:0.62rem;font-family:'Press Start 2P',monospace;padding:6px 10px;background:rgba(232,177,60,0.14);color:var(--nes-gold);}

.variant-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;}
@media(max-width:720px){.variant-grid{grid-template-columns:1fr;}}
.variant-card{background:var(--nes-panel-2);border:2px solid var(--line);border-top:4px solid var(--nes-blue);padding:26px;display:flex;flex-direction:column;}
.variant-card h3{font-size:1.05rem;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
.badge{font-family:'Press Start 2P',monospace;font-size:0.58rem;padding:5px 8px;text-transform:uppercase;}
.badge-ios{background:rgba(49,105,214,0.18);color:var(--nes-blue);}
.badge-android{background:rgba(232,177,60,0.15);color:var(--nes-gold);}
.badge-desktop{background:rgba(215,38,61,0.15);color:#ff8b98;}
.variant-card p{color:var(--dim);font-size:0.88rem;margin-bottom:16px;flex:1;}
.meta-row{display:flex;justify-content:space-between;font-size:0.78rem;color:var(--dim);margin-bottom:16px;border-top:1px solid var(--line);padding-top:12px;}
.get-btn{background:var(--nes-cart);color:#f0c65a;text-align:center;padding:13px;font-weight:800;font-size:0.9rem;border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;box-shadow:0 5px 0 var(--nes-cart-line);
  clip-path:polygon(0 5px,5px 5px,5px 0,calc(100% - 5px) 0,calc(100% - 5px) 5px,100% 5px,100% calc(100% - 5px),calc(100% - 5px) calc(100% - 5px),calc(100% - 5px) 100%,5px 100%,5px calc(100% - 5px),0 calc(100% - 5px));
}
.get-btn svg{width:16px;height:16px;stroke:#f0c65a;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;}
.get-btn:hover{background:#000;}
.disclaimer{color:var(--dim);font-size:0.78rem;margin-top:22px;border-left:3px solid var(--nes-red);padding-left:12px;}

.faq-item{background:var(--nes-panel-2);border:2px solid var(--line);margin-bottom:10px;}
.faq-q{width:100%;text-align:left;background:none;border:none;color:var(--chalk);font-size:1rem;font-weight:700;padding:18px 18px;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;}
.faq-q .plus{color:var(--nes-red);font-size:1.3rem;font-family:'Press Start 2P',monospace;transition:transform .2s;}
.faq-item.open .plus{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .25s ease;color:var(--dim);font-size:0.92rem;}
.faq-a p{padding:0 18px 18px;}

.cta-final{text-align:center;background:linear-gradient(160deg,var(--nes-panel),var(--nes-bg));border-top:4px solid var(--nes-red);}
.cta-final h2{font-size:clamp(1.1rem,2.6vw,1.7rem);margin-bottom:18px;}
.cta-final p{color:var(--dim);margin-bottom:28px;}

footer{border-top:1px solid var(--line);padding:30px 0;text-align:center;color:var(--dim);font-size:0.8rem;background:var(--nes-panel-2);}

.prose p{margin:0 0 16px;line-height:1.7;color:var(--dim);}
.prose h3{margin:28px 0 10px;font-size:1.1rem;color:var(--chalk);}
.hero-media{margin-top:28px;overflow:hidden;max-width:480px;border:2px solid var(--line);}
.code-block{background:#0d0d0b;border:2px solid var(--line);padding:14px 18px;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:0.9rem;color:#8ee08e;margin:14px 0;overflow-x:auto;}

/* Section color blocks — console panel palette cycling (light mode) */
.zig-1{background:radial-gradient(circle at 18% 15%, rgba(0,0,0,0.03), transparent 45%), #fbf8ee !important;--chalk:#211d15;--dim:#6b6151;--line:rgba(33,29,21,0.13);}
.zig-2{background:radial-gradient(circle at 18% 15%, rgba(255,255,255,0.6), transparent 45%), #ece1c4 !important;--chalk:#211d15;--dim:#6b6151;--line:rgba(33,29,21,0.13);}
.zig-3{background:radial-gradient(circle at 18% 15%, rgba(0,0,0,0.03), transparent 45%), #f0f2f6 !important;--chalk:#211d15;--dim:#5b5f68;--line:rgba(33,29,21,0.12);}
.zig-4{background:radial-gradient(circle at 18% 15%, rgba(255,255,255,0.4), transparent 45%), #f7e4e6 !important;--chalk:#5c1420;--dim:#7c4a52;--line:rgba(110,20,32,0.18);}
.zig-5{background:radial-gradient(circle at 18% 15%, rgba(0,0,0,0.03), transparent 45%), #fbf8ee !important;--chalk:#211d15;--dim:#6b6151;--line:rgba(33,29,21,0.13);}

.zig-1 .stat-card,.zig-3 .stat-card,.zig-5 .stat-card,.zig-1 .g-card,.zig-3 .g-card,.zig-5 .g-card,.zig-1 .variant-card,.zig-3 .variant-card,.zig-5 .variant-card,.zig-1 .step-item,.zig-3 .step-item,.zig-5 .step-item,.zig-1 .rank-item,.zig-3 .rank-item,.zig-5 .rank-item,.zig-1 .faq-item,.zig-3 .faq-item,.zig-5 .faq-item{background:#ffffff;border-color:rgba(33,29,21,0.13);}
.zig-2 .stat-card,.zig-2 .g-card,.zig-2 .variant-card,.zig-2 .step-item,.zig-2 .rank-item,.zig-2 .faq-item{background:#ffffff;border-color:rgba(33,29,21,0.1);}
.zig-4 .stat-card,.zig-4 .g-card,.zig-4 .variant-card,.zig-4 .step-item,.zig-4 .rank-item,.zig-4 .faq-item{background:#ffffff;border-color:rgba(110,20,32,0.16);}
.zig-2 .get-btn{background:#241f14;color:#e8b13c;box-shadow:0 5px 0 rgba(0,0,0,0.3);}
.zig-2 .get-btn:hover{background:#000;}
.zig-2 .btn-primary{background:#d7263d;color:#fff;box-shadow:0 6px 0 #8f1c2c;}
