:root{
  --bg:#0a0c0f;--panel:#11151a;--line:#293139;--text:#f3f5f6;
  --muted:#7f8992;--accent:#a9f0d1;--edge:#33404a;--used:#a9f0d1;--bad:#ef6d63;
}
*{box-sizing:border-box}
html,body{width:100%;overflow-x:hidden}
body{margin:0;background:radial-gradient(700px 360px at 50% -5%,rgba(169,240,209,.05),transparent 70%),var(--bg);color:var(--text);font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
a{color:inherit;text-decoration:none}
button{font:inherit}
.page{width:min(1510px,100%);margin:auto;padding:12px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.brand{display:flex;align-items:center;gap:10px}.mark{width:40px;height:40px;border-radius:12px;background:var(--accent);color:#07120e;display:grid;place-items:center;font-weight:950}.brand strong,.brand span{display:block}.brand strong{font-size:17px}.brand span{font-size:10px;color:var(--muted)}
.actions{display:flex;gap:7px}.btn{border:1px solid var(--line);background:#151a20;color:#fff;border-radius:9px;padding:8px 11px;font-size:11px;font-weight:800;cursor:pointer}.btn.primary,.btn.home{background:#202831;border-color:#303944}.btn.primary{background:var(--accent);border-color:var(--accent);color:#0a130f}.btn.large{padding:11px 17px;font-size:12px}
.ad-slot{position:relative;display:flex;align-items:center;justify-content:center;background:#101419;border:1px solid #222a31;border-radius:9px}.ad-slot:not(.has-ad):before{content:"ADVERTISEMENT";color:#4e5963;font-size:9px}
.top-ad,.bottom-ad{min-height:90px}.top-ad{margin-bottom:9px}.bottom-ad{margin-top:9px}
.layout{display:flex;gap:9px;align-items:flex-start}.side-ad{flex:0 0 170px;min-height:600px}.game-column{flex:1 1 0;min-width:0}
.game-shell{background:var(--panel);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.hud{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;padding:10px 14px;border-bottom:1px solid var(--line)}.hud small,.results small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase;letter-spacing:.7px}.hud strong{display:block;margin-top:2px;font-size:16px}
.rulebar{text-align:center;padding:11px 14px;border-bottom:1px solid var(--line);background:#0e1216}.rulebar span,.rulebar strong,.rulebar small{display:block}.rulebar span{font-size:8px;color:var(--accent);letter-spacing:1px}.rulebar strong{font-size:16px;margin-top:2px}.rulebar small{font-size:9px;color:var(--muted);margin-top:3px}
.stage{position:relative;min-height:540px;padding:14px;background:#0b0f13;overflow:hidden}.board-wrap{position:relative;width:100%;height:100%;min-height:500px;border:1px solid #20272e;border-radius:16px;background:radial-gradient(circle at 50% 50%,#111820,#0b0f13);overflow:hidden}
.edge-layer,.node-layer{position:absolute;inset:0;width:100%;height:100%}.edge-layer{pointer-events:none}.node-layer{pointer-events:auto}
.edge{stroke:var(--edge);stroke-width:2.2;stroke-linecap:round;opacity:.82}.edge.used{stroke:var(--used);stroke-width:4;opacity:1}
.node{position:absolute;width:34px;height:34px;border-radius:50%;border:2px solid #56636d;background:#111820;transform:translate(-50%,-50%);cursor:pointer;display:grid;place-items:center;color:#8d99a1;font-size:9px;font-weight:900;transition:.12s}.node:hover{border-color:#8ea0ab;transform:translate(-50%,-50%) scale(1.06)}.node.visited{background:#163128;border-color:var(--accent);color:#dffff2;box-shadow:0 0 14px rgba(169,240,209,.2)}.node.current{box-shadow:0 0 0 4px rgba(169,240,209,.14),0 0 20px rgba(169,240,209,.3)}.node.blocked{animation:wrong .24s}
@keyframes wrong{50%{background:#52211f;border-color:var(--bad);transform:translate(-50%,-50%) scale(.92)}}
.overlay{position:absolute;inset:0;z-index:20;display:grid;place-items:center;padding:16px;background:rgba(6,9,12,.84);backdrop-filter:blur(6px)}.hidden{display:none!important}
.modal{width:min(560px,94%);background:#12171c;border:1px solid #303941;border-radius:20px;padding:24px;text-align:center}.compact{width:min(430px,92%)}.modal em{font-style:normal;color:var(--accent);font-size:9px;font-weight:900}.modal h1{font-size:30px;margin:7px 0}.modal p{font-size:11px;color:var(--muted);line-height:1.5}.preview{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:16px 0}.preview span,.results span{padding:9px;border:1px solid var(--line);border-radius:9px;background:#0d1115;font-size:9px}.final{font-size:50px;font-weight:950;color:var(--accent)}.results{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:14px 0}
.game-foot{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-top:1px solid var(--line);font-size:9px;color:var(--muted)}
.info-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:9px}.panel{background:var(--panel);border:1px solid var(--line);border-radius:13px;padding:12px}.panel strong,.panel span{display:block}.panel strong{font-size:11px}.panel span{font-size:9px;color:var(--muted);margin-top:3px}
.game-footer{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:14px 3px;color:#717b84;font-size:10px}.game-footer span:last-child{display:flex;gap:12px;flex-wrap:wrap}
@media(max-width:1279px) and (min-width:1024px){.side-ad{flex-basis:140px}}
@media(max-width:1023px){.side-ad{display:none!important}.layout{display:block}}
@media(max-width:720px){.page{padding:8px}.top-ad{display:none!important}.hud{grid-template-columns:repeat(3,1fr)}.hud>div:nth-child(4),.hud>div:nth-child(5){display:none}.stage{min-height:500px;padding:6px}.board-wrap{min-height:470px}.preview,.info-grid{grid-template-columns:1fr}.bottom-ad{min-height:50px}.node{width:30px;height:30px}}
@media(max-height:760px){.top-ad{display:none!important}.info-grid{display:none!important}.stage{min-height:0!important}.board-wrap{min-height:0!important}.rulebar small{display:none}}

/* ONE LINE V2 — keeper UX */
.route-controls{
  display:flex;
  justify-content:center;
  gap:8px;
  padding:9px 12px;
  border-top:1px solid var(--line);
  background:#0f1418;
}
.route-controls .btn{
  min-width:120px;
}

.node.start{
  border-color:#f2d77e;
  background:#2d2613;
  color:#fff3bd;
  box-shadow:0 0 0 4px rgba(242,215,126,.12),0 0 18px rgba(242,215,126,.22);
}
.node.start::after{
  content:"START";
  position:absolute;
  top:40px;
  left:50%;
  transform:translateX(-50%);
  font-size:7px;
  letter-spacing:.8px;
  color:#f2d77e;
  white-space:nowrap;
  pointer-events:none;
}
.node.dead-end{
  border-color:#ef6d63;
  box-shadow:0 0 0 4px rgba(239,109,99,.1),0 0 18px rgba(239,109,99,.18);
}
.board-wrap.route-blocked{
  box-shadow:inset 0 0 0 1px rgba(239,109,99,.36);
}
.status-warning{
  color:#ef9b94 !important;
}

@media(max-width:720px){
  .route-controls{padding:7px 8px}
  .route-controls .btn{min-width:0;flex:1}
}

/* ONE LINE V3 — checkpoint scoring */
.hud{grid-template-columns:repeat(6,1fr)}
.checkpoint-text{font-size:10px;color:#a9f0d1;margin:8px 0}
.savebox{margin:10px 0;padding:11px;border:1px solid #2f463c;border-radius:10px;background:#101b17}
.savebox b,.savebox span{display:block}.savebox b{font-size:11px;color:#a9f0d1}.savebox span{font-size:9px;color:#80968d;margin:3px 0 8px}
.notice{margin-top:9px;padding:11px 13px;border:1px solid #2f463c;border-radius:10px;background:#101b17;color:#a9f0d1;font-size:10px}
.score-area{display:grid;grid-template-columns:1.35fr .65fr;gap:9px;margin-top:9px}
.leader-panel,.account-panel{background:#11151a;border:1px solid #293139;border-radius:13px;padding:12px}
.leader-head,.account-panel{display:flex;justify-content:space-between;align-items:center;gap:12px}
.leader-head h3{margin:0;font-size:12px}.leader-head span,.account-panel span{font-size:9px;color:#7f8992}.account-panel b,.account-panel span{display:block}
.leader-row{display:grid;grid-template-columns:30px minmax(0,1fr) auto;gap:8px;padding:7px 0;border-top:1px solid #222930;font-size:10px}.leader-row:first-child{border-top:0}.leader-row span:first-child{color:#7f8992}.leader-row b{font-variant-numeric:tabular-nums}.empty-leader{padding:8px 0;color:#7f8992;font-size:10px}
@media(max-width:720px){.score-area{grid-template-columns:1fr}.hud{grid-template-columns:repeat(3,1fr)}}


/* FULL-VIEW PLAY AREA */
.stage,.game-stage,.playfield{max-height:calc(100svh - 180px)!important}
@media(max-width:760px){.stage,.game-stage,.playfield{max-height:calc(100svh - 165px)!important}}
