*{box-sizing:border-box}html,body{margin:0;min-height:100%;font-family:Tahoma,Verdana,Arial,sans-serif}body{background:#008080;color:#111}.desktop{min-height:100vh;padding:14px}.topbar,.window-title{background:linear-gradient(90deg,#000080,#1084d0);color:#fff;padding:6px 9px;box-shadow:inset 1px 1px #6cf,inset -1px -1px #000}.topbar{display:flex;justify-content:space-between;font-size:13px}.launcher{max-width:900px;margin:35px auto;background:#c0c0c0;border:2px solid;border-color:#fff #404040 #404040 #fff;padding:18px;box-shadow:3px 3px #111}h1{font-size:24px;margin:0 0 5px}.sub{margin:0 0 20px;font-size:13px}.game-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.game-card{display:flex;flex-direction:column;align-items:center;text-align:center;text-decoration:none;color:#000;background:#c0c0c0;border:2px solid;border-color:#fff #404040 #404040 #fff;padding:18px 10px;min-height:155px}.game-card:active{border-color:#404040 #fff #fff #404040}.game-card .icon{font-size:50px;line-height:1.1;margin-bottom:10px}.game-card b{font-size:14px}.game-card small{margin-top:5px;color:#333}footer{text-align:center;color:#fff;font-size:11px;margin:25px auto 0}.page{width:100%;margin:0;padding:10px}.window{width:100%;background:#c0c0c0;border:2px solid;border-color:#fff #404040 #404040 #fff;box-shadow:3px 3px #111}.window-title{font-weight:bold;font-size:13px}.chess-title-icon{font-family:"ValyrioChess";font-weight:normal}.content{padding:10px}.toolbar{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-bottom:10px}button,select{font:12px Tahoma,Verdana,sans-serif;background:#c0c0c0;color:#000;border:2px solid;border-color:#fff #404040 #404040 #fff;padding:5px 9px;min-height:30px}button:active{border-color:#404040 #fff #fff #404040}.status{background:#000;color:#0f0;padding:6px 8px;font-family:monospace;font-size:12px}.back{color:#fff;text-decoration:none;font-size:12px;display:inline-block;margin:2px 0 8px}.hint{font-size:12px;margin:7px 0}
/* SOLITAIRE */
.sol-table{background:#087d36;padding:12px;border:3px inset #aaa;min-height:600px;overflow:auto}.sol-top{display:grid;grid-template-columns:repeat(7,minmax(64px,1fr));gap:9px;min-width:520px;margin-bottom:14px}.sol-tableau{display:grid;grid-template-columns:repeat(7,minmax(64px,1fr));gap:9px;min-width:520px}.slot{height:92px;border:1px dashed rgba(255,255,255,.5);border-radius:4px;position:relative}.tableau-slot{height:520px}.card{position:absolute;left:0;width:64px;height:88px;background:#fff;border:1px solid #222;border-radius:5px;box-shadow:1px 2px 2px #003d1a;padding:4px;cursor:pointer;user-select:none}.card.red{color:#b00000}.card.black{color:#111}.card.back{background:repeating-linear-gradient(45deg,#000080 0 4px,#fff 4px 6px);border:3px solid #fff}.card.selected{outline:3px solid #ff0;z-index:1000!important}.card .rank{font:bold 17px Arial}.card .suit{font-size:20px}.empty-foundation{font-size:28px;color:rgba(255,255,255,.45);display:grid;place-items:center;height:88px}.stock-btn{width:64px;height:88px}.waste-slot{height:92px}.foundation-btn{width:64px;height:88px}.sol-message{color:#fff;font-weight:bold;text-align:center;min-height:20px;margin-top:7px}
@media(max-width:650px){.page{padding:6px}.sol-table{min-height:600px}.card{width:55px;height:76px}.slot{height:80px}.tableau-slot{height:430px}.stock-btn,.foundation-btn{width:55px;height:76px}.sol-top,.sol-tableau{gap:6px;min-width:440px}.card .rank{font-size:14px}.card .suit{font-size:16px}}
/* MINESWEEPER */
.mine-wrap{display:flex;justify-content:center;overflow:auto}.mine-board{display:grid;gap:2px;background:#808080;padding:5px;border:3px inset #eee;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}.mine-cell{width:30px;height:30px;font:bold 16px Arial;background:#c0c0c0;border:2px solid;border-color:#fff #404040 #404040 #fff;display:grid;place-items:center;cursor:pointer;padding:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;touch-action:none}.mine-cell.revealed{background:#c0c0c0;border:1px solid #888;cursor:default}.mine-cell.flag{font-size:16px}.n1{color:#00e}.n2{color:#080}.n3{color:#d00}.n4{color:#008}.n5{color:#800}.n6{color:#088}.n7{color:#000}.n8{color:#666}@media(max-width:500px){.mine-cell{width:25px;height:25px;font-size:14px}}
/* ---------- CHESS FONT NORMALIZATION ----------
   Use the same embedded chess glyphs on desktop and mobile so the pieces
   do not change shape depending on the device's installed symbol font. */
@font-face{
  font-family:"ValyrioChess";
  src:url("../fonts/chess-ui.ttf") format("truetype");
  font-style:normal;
  font-weight:normal;
  font-display:block;
}
/* CHESS */
.chess-page{padding:0}.chess-window{box-shadow:none}.chess-content{padding:8px}.chess-layout{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:12px;align-items:start}.board-wrap{width:100%;display:flex;justify-content:center}.board{display:grid;grid-template-columns:repeat(8,1fr);width:100%;max-width:760px;aspect-ratio:1;box-shadow:2px 2px 0 #333}.square{display:grid;place-items:center;font-size:clamp(24px,5.8vw,64px);cursor:pointer;position:relative;aspect-ratio:1}.light{background:#f0d9b5}.dark{background:#b58863}.selected{outline:4px solid #ff0;outline-offset:-4px}.legal:after{content:"";width:22%;height:22%;border-radius:50%;background:rgba(0,0,0,.35);position:absolute}.capture:after{content:"";position:absolute;inset:5px;border:4px solid rgba(180,0,0,.65);border-radius:50%}/* Standardized chess pieces: white symbols for White, black symbols for Black.
   The glyphs are deliberately larger and use high-contrast fills/strokes so the
   two sides remain immediately distinguishable on both board colors. */
.piece{
  line-height:.86;
  font-family:"ValyrioChess";
  font-weight:normal;
  display:block;
  position:relative;
  z-index:1;
  font-size:1.12em;
  user-select:none;
  -webkit-user-select:none;
}
.piece.black{
  color:#080808;
  -webkit-text-stroke:2px #fff;
  paint-order:stroke fill;
  text-shadow:0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff,0 -1px 0 #fff,1px 2px 2px rgba(0,0,0,.55);
}
.piece.white{
  color:#fff;
  -webkit-text-stroke:2.2px #080808;
  paint-order:stroke fill;
  text-shadow:0 1px 1px #000,1px 0 0 #000,-1px 0 0 #000,0 -1px 0 #000,1px 2px 2px rgba(0,0,0,.65);
}.panel{background:#c0c0c0;border:2px solid;border-color:#fff #404040 #404040 #fff;padding:8px;min-width:0}.moves{height:280px;overflow:auto;background:#111;color:#eee;padding:8px;font:12px monospace;line-height:1.5}.coord{position:absolute;font:9px Arial;color:rgba(0,0,0,.5);left:2px;bottom:1px}.dark .coord{color:rgba(255,255,255,.6)}@media(max-width:800px){.chess-layout{grid-template-columns:1fr}.board{width:min(100%,calc(100vw - 20px));max-width:760px}.panel{display:grid;grid-template-columns:1fr 1fr;gap:8px}.moves{height:120px}} 
/* shared */
@media(max-width:760px){.game-grid{grid-template-columns:repeat(2,1fr)}.desktop{padding:7px}.launcher{margin:15px auto}}@media(max-width:430px){.game-card{min-height:130px;padding:12px 5px}.game-card .icon{font-size:38px}}

/* ============================================================
   MOBILE REFINEMENTS — VALYRIO RETRO GAMES
   ============================================================ */
html,body{width:100%;overflow-x:hidden}
body{min-width:0}
.page{padding:6px}
.content{padding:8px}
.topbar{gap:8px;flex-wrap:wrap}
.game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.game-card{min-width:0;min-height:135px;padding:14px 6px}
.game-card .icon{font-size:42px}
.game-card small{font-size:11px}

@media(max-width:700px){
  .desktop{padding:5px}
  .launcher{margin:8px auto;padding:12px;box-shadow:2px 2px #111}
  .launcher h1{font-size:20px}
  .sub{font-size:12px}
  .game-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}
  .game-card{min-height:118px;padding:10px 3px}
  .game-card .icon{font-size:34px;margin-bottom:7px}
  .game-card b{font-size:12px}
  .game-card small{font-size:10px}
  footer{font-size:10px}
  .back{padding:5px 0}
  .window-title{font-size:12px}
  .toolbar{gap:5px;margin-bottom:7px}
  button,select{min-height:40px;padding:7px 8px}
  .status{font-size:11px;line-height:1.35}
}

@media(max-width:390px){
  .game-grid{grid-template-columns:1fr 1fr}
  .game-card{min-height:125px}
}

/* ---------- SOLITAIRE MOBILE ---------- */
.sol-table{padding:7px;min-height:0}
.sol-top,.sol-tableau{min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.sol-top{margin-bottom:8px}
.slot{height:clamp(58px,18vw,92px)}
.tableau-slot{height:clamp(310px,100vw,520px)}
.card{width:100%;height:clamp(56px,17vw,88px);font-size:clamp(9px,2.7vw,14px);padding:3px}
.card .rank{font-size:clamp(11px,3vw,17px)}
.card .suit{font-size:clamp(13px,3.5vw,20px)}
.stock-btn,.foundation-btn{width:100%;height:clamp(56px,17vw,88px);padding:2px}
.empty-foundation{height:100%;font-size:20px}
@media(max-width:500px){
  .sol-table{overflow:hidden}
  .sol-top,.sol-tableau{gap:3px}
  .tableau-slot{height:330px}
  .card{top:auto}
  .hint{font-size:11px}
}

/* ---------- MINESWEEPER MOBILE ---------- */
.mine-wrap{width:100%;overflow:auto;justify-content:flex-start;padding:2px 0}
.mine-board{--mine-size:30px;grid-template-columns:repeat(var(--mine-cols),var(--mine-size));gap:1px;padding:3px}
.mine-cell{width:var(--mine-size);height:var(--mine-size);font-size:clamp(11px,calc(var(--mine-size)*.55),16px)}
@media(max-width:700px){
  .mine-wrap{justify-content:center}
  .mine-board{max-width:100%;--mine-size:clamp(20px,calc((100vw - 34px)/16),30px)}
}
@media(max-width:380px){
  .mine-board{--mine-size:20px}
}

/* ---------- CHESS MOBILE ---------- */
.chess-page{padding:0}
.chess-content{padding:5px}
.chess-layout{grid-template-columns:minmax(0,1fr) 220px;gap:7px}
.board{width:100%;max-width:none}
.square{font-size:clamp(28px,6.6vw,70px)}
.panel{font-size:12px}
.moves{height:250px}
@media(max-width:850px){
  .chess-layout{grid-template-columns:1fr}
  .board-wrap{width:100%}
  .board{width:min(100%,760px);margin:auto}
  .panel{display:grid;grid-template-columns:1fr 1fr;gap:7px;align-items:start}
  .panel b{grid-column:1/-1}
  .moves{height:110px}
}
@media(max-width:500px){
  .chess-layout{gap:6px}
  .square{font-size:clamp(31px,12vw,54px)}
  .panel{grid-template-columns:1fr}
  .panel b{grid-column:auto}
  .moves{height:100px}
  .chess-content .toolbar button{flex:1}
}

/* Prevent accidental page zoom/scroll while interacting with game boards */
.sol-table,.mine-board,.board{touch-action:manipulation}

/* ---------- CHESS AI + RETRO NAV ---------- */
.retro-links{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:5px}
.retro-links a{display:inline-block;text-decoration:none;color:#000;background:#c0c0c0;border:2px solid;border-color:#fff #404040 #404040 #fff;padding:5px 9px;font:12px Tahoma,Verdana,sans-serif}
.retro-links a:active{border-color:#404040 #fff #fff #404040}
.chess-controls label{font:12px Tahoma,Verdana,sans-serif;display:flex;align-items:center;gap:4px}
.thinking{min-height:18px;margin-top:7px;font:bold 12px Tahoma,Verdana,sans-serif}
@media(max-width:850px){
 .retro-links{justify-content:center}
 .chess-controls label{flex:1;min-width:145px}
 .chess-controls select{width:100%}
}
@media(max-width:500px){
 .retro-links a{flex:1;text-align:center;min-height:40px;display:flex;align-items:center;justify-content:center}
 .chess-controls button{flex:1}
 .chess-controls label{min-width:100%;display:grid;grid-template-columns:75px 1fr}
 .chess-controls .status{width:100%;text-align:center}
}

.ep-option{display:flex!important;align-items:center;gap:5px!important;white-space:nowrap}
.ep-option input{width:16px;height:16px;margin:0}
@media(max-width:500px){
 .ep-option{min-width:100%;display:flex!important;justify-content:flex-start}
}
