@font-face{font-family:PP Fragment;src:url(/fonts/PPFragment-SansLight.ttf) format("truetype");font-weight:300;font-style:normal;font-display:swap}@font-face{font-family:PP Fragment;src:url(/fonts/PPFragment-GlareLightItalic.ttf) format("truetype");font-weight:300;font-style:italic;font-display:swap}@font-face{font-family:PP Fragment;src:url(/fonts/PPFragment-SansRegular.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}:root{--bingo-ink: #1a1613;--bingo-paper: #f1ebdf;--bingo-paper-deep: #e6dec9;--bingo-blood: #a8301c;--bingo-gold: #c89a3a}html,body{margin:0;padding:0}body{background:var(--bingo-paper)}.bingo-root{background:var(--bingo-paper);color:var(--bingo-ink);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;min-height:100vh;position:relative;overflow-x:hidden}.bingo-root *,.bingo-root *:before,.bingo-root *:after{box-sizing:border-box}.bingo-root:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle at 20% 30%,rgba(26,22,19,.03) 0%,transparent 50%),radial-gradient(circle at 80% 70%,rgba(168,48,28,.04) 0%,transparent 50%),url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='3'/%3E%3CfeColorMatrix values='0 0 0 0 0.1 0 0 0 0 0.08 0 0 0 0 0.07 0 0 0 0.12 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.6;z-index:1;mix-blend-mode:multiply}.bingo-root .container{max-width:1100px;margin:0 auto;padding:50px 30px 80px;position:relative;z-index:2}.bingo-root .header{text-align:center;border-bottom:3px double var(--bingo-ink);padding-bottom:30px;margin-bottom:40px;position:relative}.bingo-root .eyebrow{font-size:10px;letter-spacing:.4em;text-transform:uppercase;font-weight:500;margin-bottom:18px;display:flex;justify-content:center;gap:12px;align-items:center}.bingo-root .eyebrow .dot{width:4px;height:4px;background:var(--bingo-blood);border-radius:50%;display:inline-block}.bingo-root .title{font-family:PP Fragment,Didot,serif;font-weight:300;font-style:italic;font-size:clamp(48px,8vw,96px);line-height:.9;letter-spacing:-.02em;margin:0 0 10px}.bingo-root .title .amp{font-weight:400;color:var(--bingo-blood);font-style:italic}.bingo-root .subtitle{font-family:PP Fragment,serif;font-style:italic;font-weight:300;font-size:clamp(14px,1.6vw,18px);opacity:.75;margin:0 0 20px}.bingo-root .meta-row{display:flex;justify-content:center;gap:40px;flex-wrap:wrap;font-size:10px;letter-spacing:.2em;text-transform:uppercase;padding-top:14px}.bingo-root .meta-row strong{color:var(--bingo-blood);font-weight:700}.bingo-root .rules{display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--bingo-ink);margin-bottom:40px;background:var(--bingo-paper-deep)}.bingo-root .rule{padding:18px 16px;border-right:1px solid var(--bingo-ink)}.bingo-root .rule:last-child{border-right:none}.bingo-root .rule .num{font-family:PP Fragment,serif;font-style:italic;font-weight:300;font-size:28px;color:var(--bingo-blood);display:block;line-height:1;margin-bottom:6px}.bingo-root .rule p{font-size:10px;letter-spacing:.05em;line-height:1.5;margin:0}.bingo-root .card-wrap{position:relative;margin-bottom:50px}.bingo-root .corner-mark{position:absolute;font-size:9px;letter-spacing:.2em;opacity:.5}.bingo-root .corner-mark.tl{top:-20px;left:0}.bingo-root .corner-mark.tr{top:-20px;right:0}.bingo-root .corner-mark.bl{bottom:-20px;left:0}.bingo-root .corner-mark.br{bottom:-20px;right:0}.bingo-root .grid{display:grid;grid-template-columns:repeat(5,1fr);border:2px solid var(--bingo-ink);background:var(--bingo-paper);box-shadow:0 2px 0 var(--bingo-ink),4px 6px #1a161326}.bingo-root .cell{aspect-ratio:1 / 1;border-right:1px solid var(--bingo-ink);border-bottom:1px solid var(--bingo-ink);padding:14px 10px;display:flex;flex-direction:column;justify-content:space-between;position:relative;cursor:pointer;transition:background .2s ease;user-select:none;background:var(--bingo-paper);font:inherit;color:inherit;text-align:left;appearance:none}.bingo-root .cell:hover{background:#c89a3a1f}.bingo-root .cell:focus-visible{outline:2px solid var(--bingo-blood);outline-offset:-4px}.bingo-root .cell:nth-child(5n){border-right:none}.bingo-root .cell:nth-child(n+21){border-bottom:none}.bingo-root .cell-num{font-family:PP Fragment,serif;font-style:italic;font-size:11px;opacity:.45;line-height:1}.bingo-root .cell-text{font-size:10.5px;line-height:1.35;font-weight:500;letter-spacing:.01em;flex:1;display:flex;align-items:center;text-align:center;padding:4px 0}.bingo-root .cell-text span{width:100%}.bingo-root .cell-points{font-size:9px;letter-spacing:.15em;text-transform:uppercase;text-align:right;opacity:.6}.bingo-root .cell-points.hi{color:var(--bingo-blood);opacity:1;font-weight:700}.bingo-root .cell.marked{background:var(--bingo-ink);color:var(--bingo-paper)}.bingo-root .cell.marked .cell-num,.bingo-root .cell.marked .cell-points{color:var(--bingo-paper);opacity:.7}.bingo-root .cell.marked:not(.free):after{content:"✕";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%) rotate(-12deg);font-family:PP Fragment,serif;font-size:120px;color:var(--bingo-blood);opacity:.35;pointer-events:none;font-weight:300}.bingo-root .cell.free{background:var(--bingo-blood);color:var(--bingo-paper)}.bingo-root .cell.free .cell-num,.bingo-root .cell.free .cell-points{color:var(--bingo-paper);opacity:.8}.bingo-root .cell.free .cell-text{font-family:PP Fragment,serif;font-style:italic;font-weight:300;font-size:22px;letter-spacing:.02em;line-height:1.1}.bingo-root .cell.free .cell-text small{display:block;font-family:JetBrains Mono,monospace;font-style:normal;font-weight:500;font-size:9px;letter-spacing:.2em;text-transform:uppercase;margin-top:6px;opacity:.85}.bingo-root .scoreboard{display:grid;grid-template-columns:1fr 1fr;gap:30px;border:2px solid var(--bingo-ink);padding:30px;background:var(--bingo-paper-deep)}.bingo-root .score-col h3{font-family:PP Fragment,serif;font-style:italic;font-weight:300;font-size:22px;margin:0 0 16px;border-bottom:1px solid var(--bingo-ink);padding-bottom:8px}.bingo-root .score-col ul{list-style:none;padding:0;margin:0}.bingo-root .score-col li{font-size:11px;padding:7px 0;border-bottom:1px dotted rgba(26,22,19,.25);display:flex;justify-content:space-between;letter-spacing:.02em}.bingo-root .score-col li:last-child{border-bottom:none}.bingo-root .score-col .pts{font-weight:700;color:var(--bingo-blood)}.bingo-root .players{margin-top:40px;border:1px solid var(--bingo-ink);padding:24px}.bingo-root .players h3{font-family:PP Fragment,serif;font-style:italic;font-weight:300;font-size:18px;margin:0 0 14px}.bingo-root .player-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.bingo-root .player-line{display:flex;gap:8px;align-items:baseline;font-size:11px}.bingo-root .player-line .label{letter-spacing:.15em;text-transform:uppercase;opacity:.6;font-size:9px;white-space:nowrap}.bingo-root .player-line .line{flex:1;border-bottom:1px solid var(--bingo-ink);height:18px}.bingo-root .actions{display:flex;gap:10px;margin-top:30px;justify-content:center;flex-wrap:wrap}.bingo-root .btn{background:var(--bingo-ink);color:var(--bingo-paper);border:none;padding:10px 18px;font-family:inherit;font-size:10px;letter-spacing:.2em;text-transform:uppercase;font-weight:500;cursor:pointer;transition:all .2s ease}.bingo-root .btn:hover{background:var(--bingo-blood)}.bingo-root .btn.secondary{background:transparent;color:var(--bingo-ink);border:1px solid var(--bingo-ink)}.bingo-root .btn.secondary:hover{background:var(--bingo-ink);color:var(--bingo-paper)}.bingo-root .footer{margin-top:50px;padding-top:24px;border-top:1px solid var(--bingo-ink);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;font-size:9px;letter-spacing:.25em;text-transform:uppercase;opacity:.7}.bingo-root .footer .stamp{border:1px solid var(--bingo-blood);color:var(--bingo-blood);padding:4px 10px;font-weight:700}@media (max-width: 700px){.bingo-root .container{padding:30px 16px}.bingo-root .rules{grid-template-columns:repeat(2,1fr)}.bingo-root .rule:nth-child(2){border-right:none}.bingo-root .rule:nth-child(1),.bingo-root .rule:nth-child(2){border-bottom:1px solid var(--bingo-ink)}.bingo-root .scoreboard{grid-template-columns:1fr}.bingo-root .cell{padding:8px 5px}.bingo-root .cell-text{font-size:8.5px}.bingo-root .cell.free .cell-text{font-size:14px}.bingo-root .cell-num,.bingo-root .cell-points{font-size:8px}}@media print{.bingo-root:before{display:none}.bingo-root .actions{display:none}.bingo-root .cell:hover{background:var(--bingo-paper)}.bingo-root .card-wrap{page-break-inside:avoid}}
