: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}}

/* ONE LINE MODERN VISUAL SYSTEM V4 — presentation only */
:root{--ol-bg:#060a0f;--ol-panel:#0e1820;--ol-panel-2:#13222c;--ol-line:rgba(117,171,190,.21);--ol-text:#f3fbfc;--ol-muted:#8fa2aa;--ol-mint:#80ffd1;--ol-cyan:#65dfff;--ol-gold:#ffd978;--ol-bad:#ff716c}
html[data-game="oneline"]{color-scheme:dark}
body{background:radial-gradient(circle at 12% 4%,rgba(52,224,191,.14),transparent 29rem),radial-gradient(circle at 88% 30%,rgba(70,163,255,.1),transparent 32rem),linear-gradient(180deg,#060a0f,#09141b 55%,#060a0f);color:var(--ol-text);background-attachment:fixed}
.page{padding:14px}.topbar{border-color:var(--ol-line)!important;background:linear-gradient(135deg,rgba(15,29,37,.97),rgba(7,15,22,.98))!important}.brand .mark{border-color:rgba(128,255,209,.4)!important;box-shadow:0 0 22px rgba(128,255,209,.13)!important}.brand strong{letter-spacing:.75px}.brand span{color:var(--ol-muted)}
.btn{min-height:40px;border-color:var(--ol-line);border-radius:10px;background:#13212a;color:var(--ol-text);font-size:10px;transition:transform .13s ease,border-color .13s ease,background .13s ease}.btn:hover{transform:translateY(-1px);border-color:rgba(128,255,209,.5);background:#192c36}.btn.primary{background:linear-gradient(135deg,var(--ol-mint),#b4ffe6);border-color:transparent;color:#07140f;box-shadow:0 9px 28px rgba(128,255,209,.12)}.sg-audio-btn{width:40px!important;padding:0!important}.sg-audio-btn.muted{color:#6f8289!important}
.game-shell{border-color:var(--ol-line);border-radius:22px;background:linear-gradient(150deg,rgba(15,28,36,.98),rgba(7,14,21,.98));box-shadow:0 28px 88px rgba(0,0,0,.37),inset 0 1px rgba(255,255,255,.025)}
.hud{gap:1px;padding:0;background:var(--ol-line);border-bottom-color:var(--ol-line)}.hud>div{min-width:0;padding:12px 11px;background:rgba(7,15,22,.96)}.hud small{color:var(--ol-muted);font-weight:850}.hud strong{margin-top:4px;font-size:17px;line-height:1}.hud>div:nth-child(2) strong{color:var(--ol-mint)}.hud>div:last-child strong{color:var(--ol-gold)}
.rulebar{padding:13px 14px;border-bottom-color:var(--ol-line);background:#09131a}.rulebar span{color:var(--ol-cyan);font-weight:900;letter-spacing:1.35px}.rulebar strong{font-size:17px;letter-spacing:-.25px}.rulebar small{color:var(--ol-muted);line-height:1.45}
.stage{padding:13px;background:linear-gradient(rgba(101,223,255,.026) 1px,transparent 1px),linear-gradient(90deg,rgba(101,223,255,.026) 1px,transparent 1px),radial-gradient(circle at 50% 47%,rgba(38,112,108,.17),transparent 62%),#071017;background-size:28px 28px,28px 28px,auto,auto}.board-wrap{border-color:rgba(128,255,209,.14);border-radius:18px;background:radial-gradient(circle at 50% 48%,rgba(25,55,59,.65),rgba(7,15,22,.96) 68%);box-shadow:inset 0 0 65px rgba(0,0,0,.24)}
.edge{stroke:#345667;stroke-width:2;opacity:.72;transition:stroke .14s ease,opacity .14s ease}.edge.used{stroke:var(--ol-mint);stroke-width:4;opacity:1;filter:drop-shadow(0 0 4px rgba(128,255,209,.5))}.node{width:36px;height:36px;border-color:#567083;background:#0c1a23;color:#91a7b2;box-shadow:0 5px 16px rgba(0,0,0,.25);transition:transform .12s ease,border-color .12s ease,box-shadow .12s ease}.node:hover{border-color:var(--ol-cyan);box-shadow:0 0 0 4px rgba(101,223,255,.08),0 8px 22px rgba(0,0,0,.25)}.node.visited{background:#11362c;border-color:var(--ol-mint);color:#e0fff4;box-shadow:0 0 14px rgba(128,255,209,.22)}.node.current{box-shadow:0 0 0 5px rgba(128,255,209,.14),0 0 25px rgba(128,255,209,.35)}.node.start{border-color:var(--ol-gold);background:#332a12;color:#fff4bf;box-shadow:0 0 0 4px rgba(255,217,120,.12),0 0 21px rgba(255,217,120,.25)}.node.start::after{color:var(--ol-gold)}.node.dead-end{border-color:var(--ol-bad);box-shadow:0 0 0 4px rgba(255,113,108,.11),0 0 20px rgba(255,113,108,.22)}.board-wrap.route-blocked{box-shadow:inset 0 0 0 2px rgba(255,113,108,.35)}
.overlay{background:rgba(3,8,12,.78);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.modal{border-color:rgba(130,187,205,.26);border-radius:23px;background:linear-gradient(145deg,rgba(18,34,44,.98),rgba(8,16,24,.98));box-shadow:0 30px 95px rgba(0,0,0,.55),inset 0 1px rgba(255,255,255,.04)}.modal em{color:var(--ol-cyan);letter-spacing:1.45px}.modal h1{font-size:clamp(29px,4.5vw,40px);letter-spacing:-1.45px;line-height:1.05}.modal p{color:#a8b8bf}.preview span,.results span{border-color:var(--ol-line);background:#08131a}.final{color:var(--ol-mint);text-shadow:0 0 28px rgba(128,255,209,.2)}.savebox,.notice{border-color:rgba(128,255,209,.27);background:rgba(17,57,46,.5)}
.route-controls{padding:10px 12px;border-top-color:var(--ol-line);background:#09141b}.route-controls .btn{min-width:132px}.game-foot{padding:10px 13px;border-top-color:var(--ol-line);background:#08121a;color:var(--ol-muted)}.info-grid{gap:12px}.panel,.leader-panel,.account-panel{border-color:var(--ol-line)!important;background:linear-gradient(145deg,rgba(14,27,35,.96),rgba(8,16,23,.96))!important}.panel strong,.leader-head h3,.account-panel b{color:#eefbff}.panel span,.leader-head span,.account-panel span,.empty-leader{color:var(--ol-muted)}.leader-row{border-top-color:var(--ol-line)}.leader-row b{color:var(--ol-mint)}
@media(max-width:720px){.page{padding:8px}.game-shell{border-radius:17px}.hud>div{padding:10px 8px}.hud strong{font-size:16px}.rulebar strong{font-size:14px}.stage{padding:6px;background-size:22px 22px,22px 22px,auto,auto}.board-wrap{border-radius:12px}.node{width:32px;height:32px}.modal{padding:21px 14px}.route-controls .btn{min-width:0}.game-foot{display:grid;gap:4px}}
@media(max-width:430px){.preview,.results{grid-template-columns:1fr}.modal h1{font-size:27px}}
@media(prefers-reduced-motion:reduce){.btn,.edge,.node{transition:none}}
