/* Nebula Fight - overlay that plays over the page */
body.nf-open{position:fixed;left:0;right:0;width:100%;overflow:hidden}
.nf-overlay{position:fixed;inset:0;z-index:9999;opacity:0;transition:opacity .28s ease;overscroll-behavior:contain}
.nf-overlay.on{opacity:1}
.nf-root{position:absolute;inset:0;font-family:'DM Sans',system-ui,sans-serif;color:#fff}
.nf-canvas{position:absolute;inset:0;display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}

.nf-bar{position:absolute;top:0;left:0;right:0;height:52px;display:flex;align-items:center;gap:10px;padding:0 10px 0 16px;background:linear-gradient(#0b0918e6,#0b091800);pointer-events:none}
.nf-name{font:600 12px/1 'Space Grotesk',system-ui,sans-serif;letter-spacing:.14em;color:#d6fa48;text-shadow:0 2px 8px #000}
.nf-name b{font-weight:500;color:#b9b5d8;letter-spacing:.06em}
.nf-icon{pointer-events:auto;margin-left:auto;width:38px;height:38px;flex:none;border:1px solid #ffffff2e;background:#0b0918a6;color:#fff;border-radius:50%;font-size:15px;line-height:1;display:grid;place-items:center;cursor:pointer;transition:background .15s,border-color .15s}
.nf-icon+.nf-icon{margin-left:0}
.nf-icon:hover{background:#1d1936;border-color:#fff8}
.nf-close:hover{background:#e3261f;border-color:#e3261f}

.nf-bomb{position:absolute;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:3;display:grid;place-items:center;width:76px;height:76px;border-radius:50%;border:2px solid #ffffff40;background:#e3261fd9;color:#fff;font:700 11px/1.3 'Space Grotesk',system-ui,sans-serif;letter-spacing:.1em;cursor:pointer;box-shadow:0 8px 24px #0007}
.nf-bomb b{display:block;font-size:19px}
.nf-bomb:disabled{opacity:.35}
.nf-bomb[hidden]{display:none}
.nf-tip{position:absolute;left:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:3;margin:0;background:#0b0918bf;border:1px solid #ffffff2b;border-radius:30px;padding:10px 18px;font:500 14px/1 'DM Sans',system-ui,sans-serif;color:#c9c5e4;pointer-events:none}
.nf-tip b{color:#d6fa48;font-weight:700;letter-spacing:.05em}
.nf-tip[hidden]{display:none}

.nf-screen{position:absolute;inset:0;display:grid;place-items:center;padding:24px;z-index:4}
.nf-screen[hidden]{display:none}
.nf-card{width:min(430px,100%);background:#141129f2;border:1px solid #ffffff1f;border-radius:18px;padding:30px 28px;text-align:center;box-shadow:0 30px 80px #000a;backdrop-filter:blur(6px)}
.nf-eyebrow{display:block;font-size:11px;letter-spacing:.16em;color:#d6fa48;margin-bottom:12px}
.nf-card h3{font:600 clamp(28px,6vw,40px)/1.05 'Space Grotesk',system-ui,sans-serif;letter-spacing:-.03em;margin:0 0 10px}
.nf-card p{font-size:15px;line-height:1.55;color:#c9c5e4;margin:0 0 20px}
.nf-keys{font-size:12.5px!important;color:#918dae!important;margin:16px 0 0!important}
.nf-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.nf-btn{border:0;border-radius:50px;padding:15px 28px;font:700 16px 'Space Grotesk',system-ui,sans-serif;background:linear-gradient(135deg,#ff4b3e,#d4150c);color:#fff;cursor:pointer;box-shadow:0 12px 30px #e3261f4d;transition:transform .15s,filter .15s}
.nf-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}
.nf-btn.ghost{background:transparent;border:1px solid #ffffff3d;box-shadow:none;font-weight:500}
.nf-btn.ghost:hover{background:#ffffff14}
.nf-res{margin:0 0 6px}
.nf-res.win{color:#d6fa48}
.nf-res.lose{color:#ff6b60}
.nf-score{font-size:17px!important;color:#e8e6f6!important}
.nf-score b{font:600 34px 'Space Grotesk',system-ui,sans-serif;display:block;margin:2px 0 2px}
.nf-score span{display:block;font-size:13px;color:#918dae}
.nf-cta{display:inline-block;margin-top:18px;font-size:13px;color:#d6fa48;border-bottom:1px solid #d6fa4866;text-decoration:none}
.nf-cta:hover{border-bottom-color:#d6fa48}

/* the launch button on the page */
.nf-launch-wrap{position:relative;display:inline-block;flex:none}
.nf-launch{display:inline-flex;align-items:center;gap:14px;border:0;cursor:pointer;border-radius:50px;padding:19px 22px 19px 30px;font:700 clamp(16px,1.55vw,19px)/1 'Space Grotesk',system-ui,sans-serif;letter-spacing:-.01em;background:linear-gradient(135deg,#e2ff6a,#b9e400);color:#171915;animation:nf-glow 1.25s ease-in-out infinite}
.nf-launch>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#1719151f;font-size:15px}
.nf-launch:hover{background:linear-gradient(135deg,#eaff85,#c8f200)}
@keyframes nf-glow{0%,100%{box-shadow:0 14px 34px #b9e40066,0 0 0 0 #d6fa48b0;filter:brightness(1)}55%{box-shadow:0 14px 34px #b9e40066,0 0 0 20px #d6fa4800;filter:brightness(1.12)}}

@media(max-width:700px){
 .nf-card{padding:24px 20px}
 .nf-bomb{width:66px;height:66px;right:12px}
}
@media(prefers-reduced-motion:reduce){
 .nf-overlay{transition:none}
 .nf-launch{animation:none}
 .nf-btn:hover{transform:none}
}

/* the section on the page */
.game-strip{padding:70px 4% 80px;padding-left:max(4%,calc((100vw - 1500px)/2));padding-right:max(4%,calc((100vw - 1500px)/2));background:#151229;color:#fff;position:relative;overflow:hidden}
.game-strip:before{content:'';position:absolute;inset:0;background:radial-gradient(60% 80% at 82% 18%,#4a2fd64d,transparent 70%),radial-gradient(50% 60% at 10% 90%,#e3261f2e,transparent 70%);pointer-events:none}
.game-strip>*{position:relative}
.game-strip .section-heading h2{color:#fff}
.game-strip .section-heading>p{color:#b9b5d8}
.game-strip .eyebrow{color:#d6fa48}
.game-body{display:flex;align-items:center;gap:30px 44px;flex-wrap:wrap;margin-top:6px}
.game-preview{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none;z-index:0;opacity:.72}
.game-strip>.section-heading,.game-strip>.game-body{z-index:1}
.game-note{font-size:15px;line-height:1.6;color:#c9c5e4;max-width:430px}
.game-facts{list-style:none;display:flex;gap:10px 34px;flex-wrap:wrap;margin:30px 0 0;padding:0;width:100%;border-top:1px solid #ffffff1a;padding-top:22px}
.game-facts li{font-size:14px;color:#b9b5d8}
.game-facts b{display:block;font:600 24px 'Space Grotesk',system-ui,sans-serif;color:#fff;letter-spacing:-.03em;margin-bottom:2px}
@media(max-width:700px){.game-strip{padding-top:50px;padding-bottom:56px}.game-facts{gap:14px 24px}}

/* the pointing arrow steps aside once the game has been opened */

/* the launch button settles once the game has been opened */
body.nf-open .nf-launch,body.nf-played .nf-launch{animation:none}

/* sticky side rail */
.side-rail{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:900;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
body.nf-open .side-rail{display:none}
.rail-btn{writing-mode:vertical-rl;display:flex;align-items:center;gap:12px;border:0;cursor:pointer;padding:22px 15px;border-radius:14px 0 0 14px;font:700 19px/1 'Space Grotesk',system-ui,sans-serif;letter-spacing:.01em;color:#fff;text-decoration:none;box-shadow:-6px 8px 26px #00000052;transition:padding .18s ease,filter .18s ease}
.rail-btn:hover{padding-left:23px;filter:brightness(1.12)}
.rail-btn:focus-visible{outline:3px solid #fff;outline-offset:-3px}
.rail-ico{writing-mode:horizontal-tb;font-size:20px;line-height:1}
.rail-game,.rail-data,.rail-scrape,.rail-talk{background:#252145;color:#d6fa48}
.rail-game{animation:rail-pulse 1.9s ease-in-out infinite}
@keyframes rail-pulse{0%,100%{box-shadow:-6px 8px 26px #00000052,0 0 0 0 #d6fa4880}60%{box-shadow:-6px 8px 26px #00000052,0 0 0 13px #d6fa4800}}
@media(max-width:860px){
 body{padding-bottom:74px}
 .side-rail{top:auto;bottom:0;left:0;right:0;transform:none;flex-direction:row;gap:0;box-shadow:0 -6px 24px #00000040}
 .rail-btn{writing-mode:horizontal-tb;flex:1 1 0;min-width:0;flex-direction:column;justify-content:center;gap:6px;border-radius:0;padding:11px 6px;font-size:14px;line-height:1.2;text-align:center;box-shadow:none}
 .rail-btn:hover{padding-left:6px}
 .rail-ico{font-size:19px}
 .rail-label{display:block;max-width:100%}
}
@media(prefers-reduced-motion:reduce){.rail-game{animation:none}}

/* exit button: says what it does */
.nf-exit{pointer-events:auto;margin-left:auto;display:inline-flex;align-items:center;gap:8px;border:1px solid #ffffff3d;background:#e3261fe6;color:#fff;border-radius:30px;padding:10px 18px;font:700 14px/1 'Space Grotesk',system-ui,sans-serif;cursor:pointer;white-space:nowrap;box-shadow:0 8px 22px #0007;transition:background .15s,border-color .15s}
.nf-exit b{font-weight:500;opacity:.92}
.nf-exit:hover{background:#ff3b33;border-color:#fff}
.nf-bar{height:auto;padding:10px 12px 0 16px;align-items:flex-start;gap:12px}
.nf-name{padding-top:12px}
@media(max-width:700px){
 .nf-exit{padding:9px 13px;font-size:12px}
 .nf-exit b{display:none}
 .nf-tip{font-size:12px;padding:8px 14px;left:12px}
}

/* while the game runs, stop the page's own glow animations repainting behind it */
body.nf-open .mess-go,body.nf-open .sc-go,body.nf-open .feature-link.solid,body.nf-open .case-demo-link,
body.nf-open .need-actions .button,body.nf-open #project-actions a.button,
body.nf-open .nf-launch,body.nf-open .mess-scan{animation:none!important}
body.nf-open .game-preview{visibility:hidden}
