/* NodeClash v6.3.23 — Stability + Game UX polish. Additive only. */
:root{--nc-safe-text:#f7fff9;--nc-safe-muted:#d7e8df;--nc-safe-shadow:0 2px 12px rgba(0,0,0,.82)}
html{scroll-behavior:smooth}body.nc-polish{overflow-x:hidden;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}
body.nc-polish *{box-sizing:border-box}body.nc-polish img{display:block;max-width:100%;height:auto}
/* Stable media: reserve space and reveal instead of popping into layout. */
body.nc-polish img:not([width]):not([height]){aspect-ratio:16/9;object-fit:cover;background:linear-gradient(135deg,#10231c,#061018)}
.nc-polish-media{position:relative;overflow:hidden;background:#06100e;contain:layout paint}.nc-polish-media img{width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .45s ease}.nc-polish-media.is-loaded img{opacity:1}.nc-polish-media::after{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.08),transparent 34%,rgba(0,0,0,.12))}
/* Universal contrast/readability contract. */
body.nc-polish :is(h1,h2,h3,h4,h5,h6,p,span,b,strong,small,label,a,button,.ppt-title,.ppt-sub,.field-label){text-shadow:var(--nc-safe-shadow)}
body.nc-polish :is(.glass-panel,.ppt-card,.hud-chip,.nc-fixture-row,.nc-shape-leader,.nc-top-win,.nc-user-slip,.nc-human-challenge){color:var(--nc-safe-text)}
body.nc-polish :is(.ppt-sub,.ppt-card-note,.field-label,small){color:var(--nc-safe-muted)}
body.nc-polish :is(button,a,.field-input,select){-webkit-tap-highlight-color:transparent}
body.nc-polish :is(button,a){transition:transform .18s ease,filter .18s ease,box-shadow .18s ease,background-color .18s ease;will-change:transform}
body.nc-polish :is(button,a):active{transform:translateY(1px) scale(.985)}
/* Prevent visual jumps from async fixture/data panels. */
#ncAiFixturePanel{min-height:180px;contain:layout style}.nc-fixture-list{min-height:72px}.nc-shape-leaders-grid{min-height:70px}
/* One-tap fixture centre: real modal/drawer using the existing authoritative panel. */
.nc-polish-fixture-backdrop{position:fixed;inset:0;z-index:7998;background:rgba(1,7,5,.68);backdrop-filter:blur(8px);opacity:0;pointer-events:none;transition:opacity .2s ease}.nc-fixture-drawer-open .nc-polish-fixture-backdrop{opacity:1;pointer-events:auto}
.nc-fixture-drawer-open #ncAiFixturePanel{position:fixed!important;z-index:8000;left:50%;top:50%;width:min(1100px,calc(100vw - 32px));max-height:min(88vh,900px);margin:0!important;transform:translate(-50%,-50%)!important;overflow:auto;overscroll-behavior:contain;box-shadow:0 30px 100px rgba(0,0,0,.62)!important}
.nc-polish-fixture-close{position:absolute;right:16px;top:14px;z-index:3;border:1px solid rgba(255,255,255,.24);border-radius:12px;padding:9px 12px;background:rgba(0,0,0,.42);color:#fff;font-weight:900;cursor:pointer}
.nc-polish-fixture-close:focus-visible,.nc-er-fixture-tab:focus-visible,.nc-er-fixture-toggle:focus-visible{outline:3px solid rgba(154,244,255,.9);outline-offset:3px}
/* Stable loading overlay: no layout participation, no flash when app is ready. */
.nc-polish-boot{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;background:#020706 url('./assets/worlds/real/world-01.jpg') center/cover no-repeat;opacity:1;transition:opacity .5s ease;pointer-events:auto}.nc-polish-boot::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.38),rgba(0,0,0,.78))}.nc-polish-boot.gone{opacity:0;pointer-events:none}.nc-polish-boot-card{position:relative;width:min(460px,calc(100vw - 36px));padding:30px;border:1px solid rgba(255,255,255,.18);border-radius:26px;background:rgba(2,13,10,.76);backdrop-filter:blur(18px);color:#fff;text-align:center;box-shadow:0 30px 90px rgba(0,0,0,.5)}.nc-polish-boot-mark{font-weight:1000;font-size:42px;letter-spacing:.16em}.nc-polish-boot-kicker{font-size:10px;letter-spacing:.22em;opacity:.85}.nc-polish-boot-title{margin:8px 0;font-size:clamp(28px,7vw,52px);line-height:1;font-weight:1000}.nc-polish-boot-status{min-height:1.4em;font-size:12px;color:#e8fff2}.nc-polish-boot-track{height:5px;margin-top:18px;border-radius:99px;background:rgba(255,255,255,.14);overflow:hidden}.nc-polish-boot-track i{display:block;height:100%;width:38%;border-radius:inherit;background:linear-gradient(90deg,#9bf6d0,#8fe8ff,#ffe08a);animation:ncBootLoad 1.25s ease-in-out infinite}@keyframes ncBootLoad{0%{transform:translateX(-120%)}100%{transform:translateX(330%)}}
/* Image-aware environment panel */
.nc-polish-environment{position:relative;isolation:isolate;overflow:hidden}.nc-polish-environment::before{content:"";position:absolute;inset:0;z-index:-1;background-image:var(--nc-polish-bg);background-position:center;background-size:cover;opacity:.28;filter:saturate(1.2) contrast(1.08)}.nc-polish-environment::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(120deg,rgba(2,12,9,.82),rgba(2,10,17,.5) 55%,rgba(0,0,0,.78))}
@media(max-width:760px){.nc-fixture-drawer-open #ncAiFixturePanel{width:calc(100vw - 16px);max-height:92vh;border-radius:20px!important}.nc-polish-fixture-close{right:10px;top:10px}.nc-polish-boot-card{padding:24px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.nc-polish :is(button,a){transition:none}.nc-polish-fixture-backdrop,.nc-polish-boot{transition:none}.nc-polish-boot-track i{animation:none}}
