/* Shared, page-scoped NES UI. Existing pixel Home sections, ranking and store
   deliberately stay outside .nes-page. Artwork is decorative; data stays live. */
@font-face{font-family:'Ludicon Pixel';src:url('../fonts/pixelify-sans.ttf') format('truetype');font-weight:400 700;font-display:swap}
.nes-page,.nes-home-page{--nes-font:var(--ludicon-number-font), 'Ludicon Pixel',ui-monospace,monospace;--nes-bg:#07162c;--nes-surface:#102444;--nes-raised:#193559;--nes-edge:#5578a8;--nes-ink:#fff8e7;--nes-muted:#c6d4e7;--nes-accent:#83e1ff;--nes-on-accent:#09172c;--nes-shadow:#020b1b}
.nes-page{--ocean:var(--nes-ink);--ink:var(--nes-ink);--muted:var(--nes-muted);--paper:var(--nes-surface);--peach:var(--nes-raised);--steel:var(--nes-edge);--line:var(--nes-edge);background:var(--nes-bg);color:var(--nes-ink)}
.nes-page :is(h1,h2,h3,h4,p,small,li,dt,dd,label,legend){color:inherit}
.nes-page :is(h1,h2,h3){text-transform:none;letter-spacing:0;font-family:var(--nes-font);line-height:1.1}
.nes-page h1{font-size:clamp(2.5rem,5.6vw,4.8rem)}
.nes-page h2{font-size:clamp(1.65rem,3vw,2.5rem)}
.nes-page :is(.section-kicker,.eyebrow){font-family:var(--nes-font);color:var(--nes-accent);font-size:.9rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}
.nes-page :is(.portal-main,.auth-shell){background:transparent}
.nes-page .portal-main{padding-top:36px}
.nes-page :is(.portal-hero,.feature-hero){color:var(--nes-ink)}
.nes-page .portal-hero{gap:28px;align-items:center;margin-bottom:36px}
.nes-page .portal-hero p{max-width:65ch}
.nes-page :is(.portal-card,.auth-card,.admin-modal-dialog,.profile-inventory-dialog,.confirmation-dialog,.ui-confirm-dialog){border:2px solid var(--nes-edge);border-radius:0;background:var(--nes-surface);color:var(--nes-ink);box-shadow:5px 5px 0 var(--nes-shadow)}
.nes-page :is(.portal-card,.auth-card) :is(h2,h3){color:var(--nes-ink)}
.nes-page :is(.dashboard-empty,.identity-card,.indie-account-summary,.application-status-card){color:var(--nes-muted);background:var(--nes-raised);border:1px dashed var(--nes-edge);border-radius:0}
.nes-page .button,.nes-home-page :is(.site-header,.site-footer) .button{min-height:44px;border:2px solid var(--nes-edge);border-radius:0;background:var(--nes-surface);color:var(--nes-ink);box-shadow:3px 3px 0 var(--nes-shadow);font-family:var(--nes-font);font-size:.94rem;letter-spacing:.02em;text-transform:none;line-height:1.2;transition:background .15s,transform .15s}
.nes-page .button-primary,.nes-home-page .site-header .button-primary{background:var(--nes-accent);color:var(--nes-on-accent);border-color:var(--nes-accent)}
.nes-page .button:hover,.nes-home-page .site-header .button:hover{background:var(--nes-raised);color:var(--nes-ink);transform:translateY(-2px)}
.nes-page :is(button,a,input,select,textarea,summary):focus-visible,.nes-home-page :is(.site-header,.site-footer) :focus-visible{outline:3px solid var(--nes-accent);outline-offset:4px}
.nes-page :is(input:not([type]),input[type=text],input[type=email],input[type=password],input[type=tel],input[type=number],input[type=url],input[type=file],select,textarea){border:2px solid var(--nes-edge);border-radius:0;background:var(--nes-bg);color:var(--nes-ink);box-shadow:none;min-width:0}
.nes-page input::placeholder,.nes-page textarea::placeholder{color:var(--nes-muted);opacity:.8}
.nes-page input:is([type=checkbox],[type=radio]){accent-color:var(--nes-accent)}
.nes-page input::file-selector-button{background:var(--nes-raised);color:var(--nes-ink);border:0;border-right:1px solid var(--nes-edge);padding:10px;font:inherit}
/* Match the shared input rule's exclusions so native checks/hidden fields keep
   their behavior while editable controls use the page's frame and contrast. */
.nes-page :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]),textarea,select,[contenteditable="true"]){border:2px solid var(--nes-edge);border-radius:0;background:var(--nes-bg);color:var(--nes-ink)}
.nes-page.nes-circus :is(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]):not([type="reset"]):not([type="image"]):not([type="range"]):not([type="color"]),textarea,select){background:#fffcf2;color:#302543}
.nes-page :is(.form-field small,.form-help,.field-hint,.auth-card-heading p,.auth-switch,.auth-back){color:var(--nes-muted)}
.nes-page :is(.auth-switch a,.auth-back,.form-options a,.registration-consent a,.long-form a){color:var(--nes-accent)}
.nes-page :is(fieldset,.long-form fieldset,.registration-consent,.consent-list,.form-card){border-color:var(--nes-edge);border-radius:0}
.nes-page :is(.registration-consent,.developer-step-tab,.indie-repeatable-item,.indie-account-summary>div){background:var(--nes-raised);color:var(--nes-ink)}
.nes-page :is(.help-tooltip-trigger,.admin-modal-close){color:var(--nes-ink);border-color:var(--nes-edge);background:var(--nes-raised)}
.nes-page .help-tooltip-popover{background:var(--nes-ink);color:var(--nes-bg);border-color:var(--nes-edge)}
.nes-page :is(.form-message-error,.site-alert-error){background:#3c1824;color:#ffddd8;border-color:#ee9e8e}
.nes-page .form-message-success{background:#123c2c;color:#ddffe7;border-color:#83ce9a}
.nes-page :is(.field-error,.registration-field-error){color:#ffc0ae}
.nes-page :is(.dashboard-alert-table,.transaction-list li,.profile-event,.game-choice,.tournament-selection-card){border-color:var(--nes-edge)}
.nes-page .dashboard-alert-table :is(th,td){background:var(--nes-surface);color:var(--nes-ink);border-color:var(--nes-edge)}
.nes-page .dashboard-alert-table th{background:var(--nes-raised)}
.nes-page .admin-action{border-radius:0}
.nes-page .nes-scene{display:block;width:100%;aspect-ratio:3/1;background-position:center;background-repeat:no-repeat;background-size:cover;image-rendering:pixelated;pointer-events:none}
/* Navigation keeps the same dropdown, mobile and session controls. */
:is(.nes-page,.nes-home-page) .site-header{background:var(--nes-bg);color:var(--nes-ink);border-bottom:4px solid var(--nes-edge);box-shadow:0 4px 0 var(--nes-shadow);backdrop-filter:none}
:is(.nes-page,.nes-home-page) .site-header :is(.brand,.nav-link,.nav-dropdown-toggle,.main-nav>a,.main-nav>details>summary,.mobile-nav a){color:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .header-brand-name{font-family:var(--nes-font);font-size:1.45rem;letter-spacing:.02em;color:var(--nes-accent)}
:is(.nes-page,.nes-home-page) :is(.nav-dropdown-menu,.mobile-nav){background:var(--nes-surface);border:2px solid var(--nes-edge);border-radius:0;color:var(--nes-ink);box-shadow:4px 4px 0 var(--nes-shadow)}
:is(.nes-page,.nes-home-page) .nav-dropdown-menu a{color:var(--nes-ink)}
:is(.nes-page,.nes-home-page) :is(.nav-dropdown-menu a:hover,.mobile-nav a:hover){background:var(--nes-raised);color:var(--nes-accent)}
:is(.nes-page,.nes-home-page) .menu-toggle{border-color:var(--nes-edge);border-radius:0;color:var(--nes-ink);background:var(--nes-surface)}
:is(.nes-page,.nes-home-page) .menu-toggle span{background:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .mobile-navigation>summary{border:2px solid var(--nes-edge);border-radius:0;background:var(--nes-surface);color:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .hamburger-icon i{background:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .mobile-navigation>div{max-height:calc(100dvh - 88px);overflow-y:auto;overscroll-behavior:contain;border:2px solid var(--nes-edge);border-radius:0;background:var(--nes-surface);color:var(--nes-ink);box-shadow:4px 4px var(--nes-shadow)}
:is(.nes-page,.nes-home-page) .mobile-navigation :is(a,button,.mobile-menu-label){color:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .mobile-navigation a:hover{background:var(--nes-raised);color:var(--nes-accent)}
:is(.nes-page,.nes-home-page) .mobile-navigation .mobile-menu-primary{background:var(--nes-accent);color:var(--nes-on-accent);border-radius:0}
.nes-page .eyebrow>span{background:var(--nes-accent)}
.nes-page .field-help-trigger{color:var(--nes-ink);background:var(--nes-surface);border-color:var(--nes-edge)}
.nes-page .field-help-panel{background:var(--nes-surface);color:var(--nes-ink);border-color:var(--nes-edge)}
.nes-page .admin-modal-backdrop{background:#050b17bb}
.nes-page :is(.profile-inventory-dialog,.confirmation-dialog)::backdrop{background:#050b17bb}
:is(.nes-page,.nes-home-page) .nav-role-card{border-radius:0;border-color:var(--nes-edge);background:var(--nes-surface);color:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .nav-role-card :is(strong,span,small){color:var(--nes-ink)}
:is(.nes-page,.nes-home-page) .site-footer{margin-top:0;background:var(--nes-bg);color:var(--nes-muted);border-top:4px solid var(--nes-edge);padding:32px 0}
:is(.nes-page,.nes-home-page) .site-footer :is(a,p,small){color:var(--nes-muted)}
:is(.nes-page,.nes-home-page) .brand-footer-name{font-family:var(--nes-font);font-size:1.3rem;color:var(--nes-accent)}
@media(max-width:640px){.nes-page .portal-main{padding-top:24px}.nes-page h1{font-size:2.65rem}.nes-page .portal-hero{gap:20px}.nes-page .nes-scene{aspect-ratio:2/1}.nes-page .portal-card{padding:20px}.nes-page .button{font-size:.9rem}.nes-page .dashboard-alert-table tr{background:var(--nes-surface)}.nes-page .dashboard-alert-table td:before{color:var(--nes-muted)}}
@media(prefers-reduced-motion:reduce){.nes-page .button{transition:none}.nes-page .button:hover{transform:none}}
