main{max-width:900px;margin:auto;padding:0 12px}.site-header{padding:8px 12px}.site-header a{font-weight:700}h1{font-size:26px;margin:12px 0 4px}.game-lead{margin:4px 0 12px}.stage{max-width:620px;margin:auto;border:1px solid var(--line);border-radius:6px;background:var(--surface);overflow-anchor:none}.turnbar{--tb-msg-lines:3;--tb-st-lines:1;margin:0}.table-wrap{position:relative;background:#185744 url('assets/felt.webp');color:#fff8ea;padding:12px;border-radius:5px}.scorebar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.score-total{display:flex;align-items:baseline;gap:8px;white-space:nowrap;font-size:14px}.score-total strong{font-size:25px;line-height:1.2}.score-total .goal{font-size:14px}.deal-progress{display:flex;align-items:center;gap:8px;font-size:14px}.deal-progress progress{width:60px;height:8px;accent-color:#fff8ea}.table-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:14px;margin-bottom:8px}.attempt{padding:0 6px;border:1px solid #fff8ea;border-radius:4px}.attempt.practice{border-style:dashed}.play-layout{display:grid;grid-template-columns:minmax(0,1fr) 152px;gap:12px;align-items:start}.deal-side{min-width:0}.current-title{font-size:14px;font-weight:700;margin:0 0 4px}.draw-row{display:flex;align-items:center;gap:8px}.stock{width:36px;height:50px;flex:none}.stock svg{display:block;width:100%;height:100%}.draw-arrow{font-size:21px}.current{appearance:none;width:60px;height:83px;padding:0;flex:none;background:none;border:0;border-radius:5px;cursor:pointer;touch-action:manipulation}.current svg{width:100%;height:100%;display:block;filter:var(--shadow-piece)}.current.aimed,.current:focus-visible{outline:3px solid #f8dc7c;outline-offset:3px}.current:disabled{cursor:default}.place-direction{font-size:14px;font-weight:700;margin:8px 0}.primary-actions{display:flex;flex-direction:column;gap:8px}.primary-actions .btn{min-height:44px;padding:8px 10px;background:var(--surface);color:var(--ink);border-color:var(--line-strong);font-size:16px}.primary-actions .btn[hidden]{display:none}
#board{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) 44px;gap:4px;min-width:0;outline-offset:4px}.cell{appearance:none;padding:0;min-width:44px;height:72px;position:relative;border:1px dashed #fff8ea80;border-radius:5px;background:#ffffff08;color:#fff8ea;cursor:pointer;touch-action:manipulation}.cell svg{display:block;width:100%;height:100%;filter:var(--shadow-piece)}.cell.has{border:0;background:none}.cell.open{border-color:#fff8ea}.empty-mark{font-size:20px;opacity:.65}.cell.open .empty-mark{opacity:1}.cell:disabled{cursor:default}.cell.related{outline:1px solid #f8dc7c;outline-offset:-1px}.cell.selected,.cell.hint,.cell:focus-visible{outline:3px solid #f8dc7c;outline-offset:1px}.cell.hint{outline-style:dashed}.line-score{appearance:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:44px;min-height:44px;padding:0;border:1px solid #fff8ea80;border-radius:4px;background:#ffffff08;color:#fff8ea;font:14px system-ui,sans-serif;cursor:pointer;font-variant-numeric:tabular-nums}.line-score strong{font-size:17px}.line-score.complete{border-style:solid;background:#ffffff19}.line-score.complete strong::before{content:'✓';font-size:11px;margin-right:2px}.line-score.linked,.line-score:focus-visible{outline:2px solid #f8dc7c;outline-offset:1px}.line-score:disabled{cursor:default}.col-score{height:44px}.sum-sign{display:flex;align-items:center;justify-content:center;font-size:20px}.line-info{font-size:14px;line-height:20px;min-height:40px;margin:8px 0 0}.card-flight{position:fixed;z-index:30;pointer-events:none;transform-origin:top left}.card-flight svg{width:100%;height:100%;filter:var(--shadow-piece)}
.shield{position:absolute;inset:0;z-index:5;background:var(--surface);color:var(--ink);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px}.shield[hidden]{display:none}.shield h2{margin:0;font-size:20px}.auxiliary{margin:0 12px;font-size:14px}.auxiliary summary,.score-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center}.auxiliary summary::before,.score-details summary::before{content:'+ ';margin-right:8px}.auxiliary[open] summary::before,.score-details[open] summary::before{content:'− ';}.controls{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}.controls .btn{padding:8px 12px}.score-details{font-size:14px;margin:0 12px}.score-details[hidden]{display:none}#stats{font-size:14px;margin:4px 12px 8px}#result h2{font-size:20px;line-height:1.3;margin:0 0 8px}#final-score{font-size:14px;margin:0 0 12px}#result .controls{flex-direction:column}#result .btn{font-size:16px;padding:8px 10px;min-height:44px}#result .btn.sub{background:var(--surface);color:var(--ink);border-color:var(--line-strong)}#breakdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 8px;padding:0;list-style:none;font-size:14px}#breakdown button{width:100%;min-height:44px;text-align:left;border:1px solid var(--line-strong);border-radius:4px;background:var(--surface);color:var(--ink);font:inherit;padding:6px;cursor:pointer}
#setup{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.field{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:16px}#setup select,#setup input{appearance:auto;width:100%;min-height:44px;font:16px system-ui,sans-serif;padding:8px;border:1px solid var(--line-strong);border-radius:5px;background:var(--surface);color:var(--ink)}#setup select:focus-visible,#setup input:focus-visible{outline:3px solid var(--accent);outline-offset:2px}#setup>p,#setup>.controls{grid-column:1/-1}.ad-gap{height:160px}.article img{width:100%;height:auto;display:block}.article table{width:100%;table-layout:fixed;overflow-wrap:anywhere}.article th,.article td{padding:8px}.article th:first-child{width:50%}.controls-inline dt,.controls-inline dd{min-width:0;overflow-wrap:anywhere}
@media(min-width:700px){.turnbar{--tb-msg-lines:2}}
@media(max-width:600px){main{padding-inline:8px}.table-wrap{padding:8px}.play-layout{display:flex;flex-direction:column-reverse;gap:8px}#board{width:100%}.cell{height:60px}.deal-side{width:100%}#current-group{display:flex;justify-content:space-between;align-items:center;gap:8px}.current{width:47px;height:65px}.stock{width:30px;height:42px}.draw-row{gap:6px}.draw-arrow{font-size:18px}.placement-tools{flex:1;max-width:190px}.place-direction{margin:0 0 4px;text-align:center}.primary-actions{flex-direction:row;justify-content:flex-end;gap:8px}.primary-actions .btn{padding:8px 12px;font-size:16px;flex:1}.scorebar{gap:8px}.score-total{gap:6px}.score-total strong{font-size:23px}.deal-progress{gap:4px}.deal-progress progress{width:36px}.line-info{min-height:40px}.auxiliary,#stats,.score-details{margin-inline:8px}#result{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;align-items:start}#result[hidden]{display:none}#result h2{margin:0;font-size:18px}#final-score{margin:0;font-size:14px}#result .controls{grid-column:1/-1;flex-direction:row;flex-wrap:nowrap;margin:4px 0}#result .btn{flex:1}#setup{grid-template-columns:1fr}#breakdown{grid-template-columns:1fr}.article td,.article th{padding:5px;font-size:14px}}
@media(prefers-reduced-motion:reduce){.cell,.current,.line-score{scroll-behavior:auto}.current svg{animation:none}.btn{transition:none}}
.cell:not(.has){border:0;background:none}.cell:not(.has)::before{content:'';position:absolute;inset:0;margin:auto;width:calc(72px * 78 / 108);max-width:100%;border:1px dashed #fff8ea80;border-radius:5px;background:#ffffff08;pointer-events:none}.cell.open::before{border-color:#fff8ea}.empty-mark{position:relative}@media(max-width:600px){.cell:not(.has)::before{width:calc(60px * 78 / 108)}}
body{overflow-anchor:none}
/* Annotations sit over genuine captures; the cards and scores stay unchanged. */
.article figure{margin:24px 0;max-width:620px}.article figcaption{font-size:16px;line-height:1.6;margin-top:8px}
.howto-shot{position:relative;max-width:100%;margin:auto}.howto-shot img{display:block;width:100%;height:auto}.howto-shot>svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.shot-marks circle{fill:#1d4ed8;stroke:#fff;stroke-width:2}.shot-marks text{fill:#fff;font:700 15px system-ui;text-anchor:middle}.shot-marks>path{fill:none;stroke:#fff;stroke-width:3;filter:drop-shadow(0 1px 2px #172b42)}
