:root{--ink:#15121d;--surface:#211d2d;--surface-2:#2b2538;--line:rgba(255,255,255,.11);--paper:#fff9ed;--muted:#c4bdcb;--muted-2:#91899c;--pink:#fe607e;--rose:#ff98aa;--yellow:#ffd76d;--aqua:#79e4d7;--violet:#997bff;--shadow:0 22px 55px rgba(4,2,12,.25)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(1100px 680px at 8% -6%,#483963 0%,transparent 54%),linear-gradient(160deg,#15121d 0%,#1a1526 52%,#13111b 100%);color:var(--paper);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden}.scanlines{pointer-events:none;position:fixed;inset:0;z-index:10;opacity:.03;background:repeating-linear-gradient(to bottom,transparent 0 3px,#fff 3px 4px)}.topbar,.section-shell,footer{width:min(1180px,calc(100% - 48px));margin:auto}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;position:relative;z-index:2}.brand{display:flex;align-items:center;gap:11px;color:var(--paper);text-decoration:none;font-size:10px;font-weight:800;letter-spacing:.08em;line-height:1.03}.brand b{font-size:14px;color:var(--pink);letter-spacing:.02em}.brand-mark{display:grid;place-items:center;width:40px;height:40px;background:linear-gradient(145deg,#ff7e96,#fe4e70);border:2px solid var(--paper);border-radius:11px;box-shadow:4px 4px 0 rgba(153,123,255,.9);font:900 24px/1 ui-monospace,SFMono-Regular,Menlo,monospace}nav{display:flex;gap:28px}nav a,.about a{color:#ded7e5;text-decoration:none;font-size:13px;font-weight:700}nav a:hover,.about a:hover{color:var(--aqua)}.sound-button{border:1px solid var(--line);border-radius:99px;background:rgba(255,255,255,.035);color:var(--paper);padding:10px 14px;font:600 12px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;transition:.2s ease}.sound-button:hover{border-color:var(--aqua);transform:translateY(-1px)}
.hero{min-height:652px;display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:56px;padding:72px 0 94px}.eyebrow{font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.1em;color:var(--aqua);margin:0 0 17px}.hero h1,.section-heading h2,.player-copy h2,.about h2{margin:0;font-family:Arial,Helvetica,"Segoe UI",sans-serif;font-weight:900;letter-spacing:.012em;word-spacing:.045em}.hero h1{font-size:clamp(48px,6vw,78px);line-height:1.04;max-width:650px}.hero h1 em,.player-copy h2 em{font-style:normal;background:linear-gradient(100deg,#ff8aa0,#fb547a 58%,#eeb4ff);-webkit-background-clip:text;background-clip:text;color:transparent}.hero-text{max-width:530px;color:#d6cedd;line-height:1.72;font-size:17px;margin:25px 0 29px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;padding:13px 19px;border-radius:12px;font:800 12px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.02em;transition:transform .18s ease,box-shadow .18s ease}.primary{background:linear-gradient(135deg,#ffe185,#ffc84b);color:#27202c;box-shadow:0 7px 0 #cc7b4d,0 13px 24px rgba(255,195,71,.17)}.primary:hover{transform:translateY(-3px);box-shadow:0 10px 0 #cc7b4d,0 16px 28px rgba(255,195,71,.2)}.ghost{color:var(--paper);border:1px solid var(--line);background:rgba(255,255,255,.035)}.ghost:hover{border-color:rgba(121,228,215,.75);background:rgba(121,228,215,.09)}.legal-note{color:var(--muted-2);font-size:12px;max-width:500px;line-height:1.6;margin:23px 0 0}
.console-illustration{position:relative;width:min(430px,100%);margin:auto;height:410px;filter:drop-shadow(18px 25px 32px rgba(1,0,9,.32))}.screen{position:absolute;left:70px;top:0;width:285px;height:190px;background:linear-gradient(135deg,#1b244d,#0d112b);border:12px solid #ebe0cf;border-radius:22px 22px 36px 36px;box-shadow:inset 0 0 0 5px #84798a,0 12px 0 #a79a91;display:grid;place-items:center;color:var(--aqua);font:900 18px/1.05 ui-monospace,SFMono-Regular,Menlo,monospace;text-align:center;letter-spacing:.05em;overflow:hidden}.screen:before{content:"";position:absolute;inset:0;background:repeating-linear-gradient(to bottom,transparent 0 5px,rgba(0,0,0,.12) 5px 6px)}.screen b{color:var(--yellow);font-size:29px}.screen i{position:absolute;width:500px;height:65px;top:59px;background:rgba(121,228,215,.2);transform:rotate(-24deg)}.console-body{position:absolute;top:191px;left:34px;width:360px;height:136px;background:linear-gradient(160deg,#f2e9d9,#d8ccba);border-radius:16px 16px 68px 20px;box-shadow:inset 0 -11px #b8aa98,0 12px 0 #7a7070}.console-label{position:absolute;top:25px;left:30px;color:#4e4756;font-size:10px;font-weight:900;line-height:1.05;letter-spacing:.04em}.console-label b{font-size:17px;color:var(--pink)}.console-slot{position:absolute;top:26px;left:136px;width:112px;height:31px;background:#514957;border:5px solid #a79b92;box-shadow:inset 0 5px #28232f}.console-buttons{position:absolute;right:33px;bottom:32px;display:flex;gap:11px}.console-buttons i{width:21px;height:21px;border-radius:50%;background:var(--pink);box-shadow:0 3px #ad334d}.controller{position:absolute;left:0;bottom:0;width:210px;height:92px;background:#e3d7c7;border-radius:42px 38px 35px 31px;box-shadow:0 9px 0 #978b82;transform:rotate(-10deg)}.dpad{position:absolute;left:35px;top:23px;color:#383442;font-size:43px;line-height:40px}.red-buttons{position:absolute;right:27px;top:29px;display:flex;gap:11px}.red-buttons i{width:25px;height:25px;border-radius:50%;background:var(--pink);box-shadow:0 3px #9b2a40}.controller-wire{position:absolute;left:84px;top:-75px;width:77px;height:80px;border:5px solid #c2b5a5;border-bottom:0;border-left:0;border-radius:0 50px 0 0}
.library{padding:100px 0}.section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:28px}.section-heading h2,.about h2{font-size:clamp(34px,4vw,51px);line-height:1.02}.search{border:1px solid var(--line);border-radius:13px;display:flex;align-items:center;gap:9px;padding:12px 14px;min-width:310px;background:rgba(255,255,255,.045);color:var(--aqua);transition:.2s}.search:focus-within{border-color:var(--aqua);box-shadow:0 0 0 4px rgba(121,228,215,.1)}.search input{background:none;border:0;outline:0;color:var(--paper);font-size:14px;width:100%}.search input::placeholder{color:#948a9e}.library-intro{max-width:730px;color:#bfb7c7;line-height:1.68;font-size:14px;margin:27px 0 20px}.filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:28px}.filter{border:1px solid var(--line);border-radius:999px;color:#d8d0df;background:rgba(255,255,255,.025);padding:8px 12px;font:700 11px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;transition:.18s}.filter.active,.filter:hover{background:rgba(153,123,255,.9);border-color:rgba(153,123,255,.9);color:white;box-shadow:0 5px 15px rgba(110,78,210,.26)}.game-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.game-card{position:relative;min-height:246px;padding:22px;overflow:hidden;background:linear-gradient(145deg,rgba(43,37,56,.95),rgba(27,23,39,.96));border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;box-shadow:0 9px 25px rgba(2,1,8,.1);transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease;animation:card-in .4s ease both}.game-card:hover{transform:translateY(-5px);border-color:var(--card-color);box-shadow:0 18px 32px rgba(2,1,8,.22)}.cartridge{position:absolute;right:20px;top:22px;width:77px;height:93px;background:linear-gradient(145deg,#fff,var(--card-color));border:5px solid #373042;border-radius:9px 9px 2px 2px;box-shadow:inset 0 0 0 5px rgba(255,255,255,.18),0 8px 15px rgba(0,0,0,.15);transform:rotate(4deg)}.cartridge:before{content:"";position:absolute;left:14px;right:14px;top:-9px;height:9px;background:inherit;border-radius:4px 4px 0 0}.cartridge:after{content:"NES";position:absolute;left:8px;right:8px;top:25px;text-align:center;color:#fff8e8;font:900 15px ui-monospace,SFMono-Regular,Menlo,monospace;text-shadow:2px 2px #191328}.genre-tag{font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;color:var(--card-color);letter-spacing:.07em;text-transform:uppercase;margin-bottom:auto}.game-card h3{font:800 25px/1.04 "Arial Rounded MT Bold","Trebuchet MS",sans-serif;letter-spacing:-.04em;margin:35px 80px 10px 0}.game-card p{font-size:13px;line-height:1.55;color:#bdb4c5;margin:0 0 18px;max-width:84%}.game-card a{color:var(--paper);text-decoration:none;font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;transition:color .18s}.game-card a:hover{color:var(--yellow)}.card-bottom{display:flex;align-items:center;justify-content:space-between;gap:10px}.source-badge{color:#958b9f;font-size:10px;max-width:105px;text-align:right}.empty{color:#bdb4c5}@keyframes card-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.player-area{background:linear-gradient(135deg,#1b1630,#231b38);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.player-layout{display:grid;grid-template-columns:.76fr 1.24fr;align-items:center;gap:58px;padding:94px 0}.player-copy h2{font-size:clamp(40px,5vw,65px);line-height:.95}.player-copy>p:not(.eyebrow){color:#c5bdce;line-height:1.65;font-size:15px}.player-copy code{color:var(--yellow);font-family:ui-monospace,SFMono-Regular,Menlo,monospace}.drop-zone{min-height:157px;margin:26px 0 11px;border:1.5px dashed #75668c;border-radius:16px;background:rgba(255,255,255,.035);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--paper);cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.drop-zone.dragover,.drop-zone:hover{border-color:var(--aqua);background:rgba(121,228,215,.085);transform:translateY(-2px)}.drop-zone input{display:none}.upload-icon{color:var(--aqua);font-size:31px;line-height:1}.drop-zone strong{font:800 12px ui-monospace,SFMono-Regular,Menlo,monospace}.drop-zone small{color:#afa5b7}.rom-status{font:12px ui-monospace,SFMono-Regular,Menlo,monospace;color:#a79ead}.rom-status.error{color:var(--rose)}.rom-status.playing{color:var(--aqua)}.controls-guide{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:27px}.controls-guide span{color:#a9a0b0;font-size:11px}.controls-guide b{display:block;color:var(--paper);font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;margin-bottom:2px}.cabinet{background:linear-gradient(145deg,#7d5bb5,#573d86);padding:14px 14px 12px;border-radius:16px;box-shadow:0 18px 0 #ff6683,0 28px 45px rgba(1,0,8,.28),inset 0 0 0 1px rgba(255,255,255,.24);max-width:670px;margin-left:auto}.cabinet-header,.cabinet-footer{display:flex;justify-content:space-between;align-items:center;font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em;color:#fff3d6}.led{width:9px;height:9px;border-radius:50%;background:var(--pink);box-shadow:0 0 10px var(--pink)}.nes-screen{height:auto;aspect-ratio:4/3;margin:12px 0;background:#08070d;border-radius:7px;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;box-shadow:inset 0 0 0 4px #14111d}.nes-screen canvas{width:100%!important;height:100%!important;image-rendering:pixelated}.screen-placeholder{height:100%;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#5b536c;font:800 clamp(25px,4vw,46px)/.92 "Arial Rounded MT Bold","Trebuchet MS",sans-serif;text-align:center;background:radial-gradient(circle,#1b1832 0,#09080f 70%)}.screen-placeholder small{margin-top:18px;color:#90859d;font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.09em}.cabinet-footer button{border:0;border-radius:8px;background:var(--pink);color:#fff;padding:8px 10px;font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;transition:.16s}.cabinet-footer button:hover{filter:brightness(1.1);transform:translateY(-1px)}
.about{display:grid;grid-template-columns:1fr 1fr;gap:54px;padding:100px 0}.about-copy{border-left:2px solid var(--aqua);padding-left:26px;color:#c2bac9;line-height:1.72}.about-copy p{margin:0 0 14px}.about-copy a{color:var(--aqua)}.tan-ai-credit{display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid rgba(121,228,215,.3);border-radius:99px;background:rgba(121,228,215,.07);color:var(--paper)}.tan-ai-credit span,.tan-ai-credit b{color:var(--aqua)}footer{border-top:1px solid var(--line);padding:25px 0 38px;display:flex;justify-content:space-between;color:#8e8497;font:700 10px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.04em}@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
@media(max-width:800px){.topbar{height:74px}.topbar nav{display:none}.hero{grid-template-columns:1fr;padding:54px 0 58px;gap:16px}.hero h1{font-size:clamp(45px,12vw,62px)}.console-illustration{height:355px;transform:scale(.86);transform-origin:top center;margin-bottom:-37px}.game-grid{grid-template-columns:repeat(2,1fr)}.player-layout,.about{grid-template-columns:1fr}.cabinet{margin:0;width:calc(100% - 10px)}.section-heading{align-items:flex-start;flex-direction:column}.search{width:100%;min-width:0}.about{gap:26px}}
@media(max-width:520px){.topbar,.section-shell,footer{width:min(100% - 30px,1180px)}.sound-button{padding:9px 10px;font-size:10px}.hero-text{font-size:15px}.hero-actions{display:grid;grid-template-columns:1fr}.button{width:100%}.console-illustration{margin-top:4px;transform:scale(.72);margin-bottom:-92px}.library,.about{padding:70px 0}.game-grid{grid-template-columns:1fr}.game-card{min-height:222px}.player-layout{padding:70px 0}.controls-guide{grid-template-columns:1fr 1fr}.cabinet{box-shadow:0 12px 0 #ff6683,0 22px 34px rgba(1,0,8,.28)}footer{flex-direction:column;gap:8px}.cartridge{right:19px}.game-card h3{font-size:24px}}

/* Cartridge covers are original site artwork, not game logos or ROM artwork. */
.game-card{min-height:342px;padding:0;display:grid;grid-template-rows:145px 1fr;border-radius:16px}.game-card .cartridge{display:none}.game-cover{position:relative;background-image:linear-gradient(180deg,transparent 55%,rgba(12,8,25,.88)),url("covers/homebrew-cover-sheet.png");background-size:500% 300%;background-position:var(--cover-position);border-bottom:1px solid var(--line);overflow:hidden}.game-cover:after{content:"HOMEBREW PICK";position:absolute;right:12px;top:12px;padding:5px 7px;border:1px solid rgba(255,255,255,.35);border-radius:99px;background:rgba(13,10,24,.58);color:#fff;font:800 8px ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.08em}.game-body{display:flex;flex-direction:column;padding:17px 18px 18px}.game-card h3{font-family:Inter,ui-sans-serif,system-ui,sans-serif;font-size:21px;letter-spacing:-.04em;margin:5px 0 8px}.game-card p{font-size:12px;max-width:none;margin:0 0 14px}.genre-tag{margin:0}.configure-button{margin-top:20px;width:100%;min-height:44px;border:1px solid rgba(121,228,215,.45);border-radius:11px;background:rgba(121,228,215,.07);color:var(--aqua);font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer;transition:.18s}.configure-button:hover{background:rgba(121,228,215,.16);transform:translateY(-1px)}
.controls-modal{width:min(670px,calc(100% - 28px));max-height:min(760px,calc(100% - 30px));padding:0;border:1px solid rgba(255,255,255,.17);border-radius:20px;background:linear-gradient(145deg,#2b2639,#17131f);color:var(--paper);box-shadow:0 25px 90px rgba(0,0,0,.55)}.controls-modal::backdrop{background:rgba(6,4,13,.72);backdrop-filter:blur(5px)}.modal-head{display:flex;justify-content:space-between;gap:20px;padding:26px 28px 16px;border-bottom:1px solid var(--line)}.modal-head h2{margin:0;font:900 clamp(28px,4vw,40px)/.9 Inter,ui-sans-serif,sans-serif;letter-spacing:-.07em}.modal-head em{color:var(--pink);font-style:normal}.close-modal{height:37px;width:37px;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--paper);font-size:24px;cursor:pointer}.modal-intro{margin:17px 28px;color:#c7bfce;font-size:14px;line-height:1.55}.control-tabs{display:flex;gap:6px;margin:0 28px;border-bottom:1px solid var(--line)}.control-tab{padding:10px 13px;border:0;border-bottom:2px solid transparent;background:transparent;color:#a9a0b1;font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.control-tab.active{color:var(--aqua);border-bottom-color:var(--aqua)}.control-panel{padding:7px 28px 17px}.panel-note{color:#9f95aa;font-size:12px;line-height:1.45}.binding-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.binding{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:rgba(255,255,255,.025)}.binding-label{font-size:13px;font-weight:700}.binding-value{display:block;margin-top:2px;color:#aaa0b3;font:10px ui-monospace,SFMono-Regular,Menlo,monospace}.bind-button{flex:0 0 auto;border:1px solid rgba(255,215,109,.46);border-radius:8px;background:rgba(255,215,109,.08);color:var(--yellow);padding:7px 8px;font:800 10px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.bind-button.waiting{background:var(--pink);border-color:var(--pink);color:white}.modal-foot{display:flex;align-items:center;justify-content:space-between;padding:16px 28px 25px;border-top:1px solid var(--line)}.text-button,.done-button{border-radius:10px;padding:11px 13px;font:800 11px ui-monospace,SFMono-Regular,Menlo,monospace;cursor:pointer}.text-button{border:0;background:transparent;color:#b6adbd}.done-button{border:0;background:var(--aqua);color:#172126}@media(max-width:520px){.game-card{min-height:316px;grid-template-rows:130px 1fr}.binding-list{grid-template-columns:1fr}.controls-modal{width:calc(100% - 18px)}.modal-head,.control-panel{padding-left:18px;padding-right:18px}.modal-intro,.control-tabs{margin-left:18px;margin-right:18px}.modal-foot{padding-left:18px;padding-right:18px}}

/* Keep the retro feel in details, but use a familiar sans face for Vietnamese reading. */
.filter,.button,.control-tab,.bind-button,.text-button,.done-button,.configure-button{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;letter-spacing:0}.filter{font-size:12px}.control-tab,.bind-button,.text-button,.done-button,.configure-button{font-size:11px}
