/* Quick Catch (experimental). Built on lake.css: the same New Year print. */
.boat .bar .title-en .zh{color:var(--red);font-size:20px}
.boat .sub .code{font-family:var(--f-data);color:var(--red);letter-spacing:.12em}
.bhome{max-width:860px;margin:0 auto;display:flex;flex-direction:column;gap:14px}
.bhome .card{max-width:none}
.rules{margin:8px 0 14px;padding-left:20px;display:flex;flex-direction:column;gap:5px;font-size:14px;line-height:1.4}
.rules b{color:var(--red)}
.boat .stagewrap{touch-action:none}
.boat canvas#lake{cursor:crosshair}
.boat .banner{top:10.5%}
.lobbycard,.resultcard{max-width:760px!important}
.lobbycard .bigcode{display:flex;justify-content:center;gap:10px;margin:6px 0 10px}
.lobbycard .bigcode span{font-family:var(--f-display);font-weight:900;font-size:clamp(40px,9vw,72px);line-height:1;background:var(--red);color:var(--paper);border-radius:12px;padding:6px 14px 4px;box-shadow:inset 0 0 0 3px var(--paper),0 0 0 3px var(--red)}
.lobbycard .url{font-family:var(--f-data);text-transform:none;letter-spacing:0;color:var(--key);margin-left:6px}
.lobbycols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:16px}
.lobbycols h2{font-family:var(--f-display);font-weight:800;font-size:19px;margin:0 0 6px}
.lobbycols h2 small{font-family:var(--f-data);font-size:12px;color:var(--muted)}
.joined{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}
.joined li{border:2.5px solid var(--key);border-radius:999px;padding:4px 14px;background:var(--paper-2);font-weight:900}
.joined li.me{background:#ffe1d6;border-color:var(--red)}
.joined li.nobody{color:var(--muted);font-weight:600}
.botopt{display:flex;gap:8px;align-items:center;font-size:13px;margin:8px 0}
.joinform label{font-weight:900;display:block;margin-bottom:6px}
.joinform .row{display:flex;gap:8px}
.joinform input,.join-code input{font:inherit;font-size:17px;flex:1;min-width:0;border:3px solid var(--key);border-radius:12px;background:var(--paper);padding:7px 12px;color:var(--key)}
.join-code{display:flex;gap:8px;align-items:center;margin-top:10px}
.join-code input{flex:none;width:7em;font-family:var(--f-data);letter-spacing:.2em;text-transform:uppercase}
.countdown{font-family:var(--f-display);font-weight:900;font-size:140px;color:var(--red);text-shadow:0 0 0 var(--paper),4px 5px 0 var(--key);line-height:1}
.overlay.soft{pointer-events:none;background:rgba(255,246,227,.25)}
.resultcard h1.win{font-family:var(--f-display);font-weight:900;font-size:clamp(34px,6vw,54px);margin:2px 0 10px;line-height:1}
.podium{list-style:none;padding:0;margin:0 0 10px;display:flex;flex-direction:column;gap:6px}
.podium li{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:2px 10px;align-items:center;border:2.5px solid var(--key);border-radius:12px;background:var(--paper-2);padding:6px 12px}
.podium li.me{background:#ffe1d6;border-color:var(--red)}
.podium .dot{grid-row:span 2}
.podium .n{font-family:var(--f-display);font-weight:900;font-size:28px}
.podium small{grid-column:2/4;color:var(--muted);font-size:11.5px}
.dot{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:8px;color:var(--paper);font-family:var(--f-zh);font-weight:900;font-size:17px;border:2px solid var(--key)}
.awards{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0}
.awards div{border:2.5px solid var(--key);border-radius:12px;padding:5px 10px;background:#fff3c4;font-size:13px}
.awards .zh{color:var(--red);font-size:19px;margin-right:6px}.awards b{margin-right:6px}
.tip{font-weight:800;color:var(--red);margin:8px 0}
.again{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin:10px 0 0}
.ranks{display:flex;flex-direction:column;gap:6px}
.rank{display:grid;grid-template-columns:20px 32px minmax(0,1fr) auto;gap:8px;align-items:center;border:2.5px solid var(--key);border-radius:12px;background:var(--paper-2);padding:4px 10px 4px 6px}
.rank.me{background:#ffe1d6;border-color:var(--red)}
.rank .pos{font-family:var(--f-display);font-weight:900;font-size:19px;text-align:center}
.rank .who{min-width:0;font-size:14px;line-height:1.2}
.rank .who small{display:block;color:var(--muted);font-size:11.5px}
.rank .chip{font-style:normal;font-size:9px;vertical-align:2px}
.rank .score{font-family:var(--f-display);font-weight:900;font-size:26px;font-variant-numeric:tabular-nums}
.holdrow{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 10px;align-items:center;font-size:13px;margin-bottom:6px}
.holdbar{height:14px;border:2px solid var(--key);border-radius:999px;overflow:hidden;background:var(--paper-2)}
.holdbar i{display:block;height:100%;background:#e8452c;width:0;transition:width .15s}
.holdbar i.full{background:#7a1010}
.bignum{font-size:24px;color:var(--red)}
.bigbtns{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:8px;margin:10px 0 6px}
.act{position:relative;overflow:hidden;border:3px solid var(--key);border-radius:14px;padding:10px 8px;font-weight:900;font-size:18px;box-shadow:3px 4px 0 var(--key);display:flex;flex-direction:column;align-items:center;line-height:1.1;touch-action:manipulation;user-select:none;-webkit-user-select:none;cursor:pointer}
.act small{font-size:11px;font-weight:800;opacity:.85}
.act.cast{background:var(--gold)}.act.dash{background:var(--red);color:var(--paper)}
.act.off{opacity:.5}
.act::after{content:"";position:absolute;left:0;right:0;bottom:0;height:calc(var(--cd,0)*100%);background:rgba(31,42,92,.35);pointer-events:none}
.act:active{transform:translate(2px,2px);box-shadow:1px 2px 0 var(--key)}
.log li{display:block;font-size:12.5px}
.log li.hot{color:var(--red);font-weight:800}
.error{color:var(--red);font-weight:800;text-align:center}
.actionbar .act{flex:1;font-size:17px;padding:9px 6px}
@media (max-width:620px){
  .lobbycols{grid-template-columns:minmax(0,1fr)}
  .bigbtns{display:none}
  .boat .bar .clock{margin-left:auto}
  .boat .side .panel#mine{display:none}
  .actionbar .mini{font-size:12px;line-height:1.3}
  .actionbar .mini b{font-size:16px;color:var(--red)}
  .countdown{font-size:100px}
}
body.boat:not(.in-play) .actionbar{display:none}
