:root{color:#f3f6f3;background:#090c0f;color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:#090c0f}button,input,select,textarea{font:inherit}button{cursor:pointer}.center-shell,.auth-shell,.app-shell{min-height:100vh}.center-shell{display:grid;place-items:center}.manager-shell{min-height:100vh;padding:28px;background:#090c0f}.manager-header{display:flex;justify-content:space-between;align-items:center;gap:20px;max-width:1180px;margin:0 auto 24px}.manager-header h1{margin:0;font-size:34px;line-height:1.05;letter-spacing:0}.manager-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.manager-actions button{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px;background:#121b1f;color:#f3f6f3}.manager-actions .quiet{width:auto}.manager-bottom-actions{display:flex;justify-content:flex-end;max-width:1180px;margin:24px auto 0}.manager-bottom-actions button{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px;background:#121b1f;color:#f3f6f3}.auth-shell{display:grid;grid-template-columns:minmax(320px,440px) 1fr;gap:32px;padding:40px;align-items:center;background:linear-gradient(135deg,#090c0ff5,#0f1618f0),repeating-linear-gradient(90deg,#1e2b2f 0 1px,transparent 1px 90px)}.auth-panel,.type-card,.creator,.empty-state,.card-wrap{border:1px solid #26363b;background:#11171bf5;border-radius:8px;box-shadow:0 18px 50px #0009}.auth-panel{padding:28px}.auth-panel h1,.play-toolbar h1{margin:0;line-height:1.05;letter-spacing:0}.auth-panel h1{font-size:36px;margin-bottom:24px}.eyebrow{color:#f08a74;font-size:12px;font-weight:800;letter-spacing:0;margin:0 0 8px;text-transform:uppercase}.muted,.type-card span,.deck-row small,.deck-type-main small{color:#9ba9aa}form{display:grid;gap:14px}label{display:grid;gap:6px;color:#cbd7d6;font-size:13px;font-weight:700}input,select,textarea{width:100%;border:1px solid #34464b;border-radius:6px;background:#0b1114;color:#f3f6f3;min-height:42px;padding:10px 12px}textarea{min-height:132px;resize:vertical}.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid #34464b;border-radius:8px;overflow:hidden}.segmented button{border:0;min-height:42px;background:#172126;color:#dce6e4}.segmented .selected{background:#dce6e4;color:#101619}.primary,.quiet,.toolbar-actions button,.deck-row{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px}.primary{background:#dce6e4;color:#101619;font-weight:800}.primary:disabled{opacity:.72}.notice{border:1px solid #8e4a43;border-radius:6px;background:#2a1414;color:#ffc4b8;padding:10px 12px;font-size:14px}.success{border:1px solid #4c8278;border-radius:6px;background:#142a28;color:#bfeee4;padding:10px 12px;font-size:14px}.type-preview{display:grid;gap:12px;align-content:center}.type-preview h2,.creator h2,.deck-list-head h2{margin:0;font-size:18px}.type-card{display:flex;justify-content:space-between;gap:16px;padding:16px}.app-shell{display:block;min-height:100vh;background:#090c0f}.creator{padding:16px;box-shadow:none}.deck-list-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.toggle{display:flex;grid-template-columns:none;align-items:center;gap:8px;font-weight:700}.toggle input{width:18px;min-height:18px}.deck-list{display:grid;gap:8px;overflow:auto}.deck-row{display:flex;justify-content:space-between;align-items:center;gap:12px;width:100%;text-align:left;background:#121b1f;border-color:#26363b;color:#f3f6f3}.deck-row span:first-child{display:grid;gap:2px;min-width:0}.deck-row strong,.deck-row small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-manager,.deck-editor,.user-manager-panel{max-width:1180px;margin:0 auto}.deck-manager h2,.deck-editor h2,.user-manager-panel h2{margin:0;font-size:20px}.manager-tabs{display:flex;gap:8px;max-width:1180px;margin:0 auto 14px}.manager-tabs button{border:1px solid #51656a;border-radius:6px;min-height:38px;padding:8px 12px;background:#121b1f;color:#f3f6f3;font-weight:800}.manager-tabs .selected{background:#dce6e4;color:#101619}.manager-panel{display:grid;gap:14px;border:1px solid #26363b;border-radius:8px;background:#11171b;padding:18px;box-shadow:0 18px 50px #00000057}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.section-head span{color:#9ba9aa;font-weight:800}.section-head button,.deck-type-actions button,.user-actions button,.editor-header button,.editor-actions button{border:1px solid #51656a;border-radius:6px;min-height:36px;padding:7px 10px;background:#121b1f;color:#f3f6f3}.deck-type-actions .danger,.user-actions .danger{border-color:#d96b5d;color:#ffb7ad}.user-actions button:disabled{cursor:not-allowed;opacity:.45}.manager-primary-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.manager-primary-actions button{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px;background:#121b1f;color:#f3f6f3;font-weight:800}.manager-primary-actions .primary{background:#dce6e4;color:#101619}.deck-type-list,.user-list{display:grid;gap:10px}.deck-type-row{display:grid;grid-template-columns:minmax(220px,1fr) 96px minmax(300px,360px) minmax(170px,auto);align-items:center;gap:14px;border:1px solid #26363b;border-radius:6px;background:#0b1114;padding:12px}.user-row{display:grid;grid-template-columns:minmax(220px,1fr) 120px minmax(300px,auto);align-items:center;gap:14px;border:1px solid #26363b;border-radius:6px;background:#0b1114;padding:12px}.deck-type-main,.deck-type-meta,.user-main,.user-meta{display:grid;gap:2px;min-width:0}.deck-type-main strong,.deck-type-main small,.user-main strong,.user-main small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.deck-type-meta,.user-meta{color:#cbd7d6;font-size:13px;font-weight:800;justify-items:start}.deck-type-actions,.user-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.default-toggle{display:flex;align-items:center;gap:7px;min-height:42px;padding:0 10px;border:1px solid #34464b;border-radius:6px;color:#dce6e4;font-size:13px;font-weight:800}.default-toggle input{width:16px;min-height:16px}.share-code{display:grid;grid-template-columns:minmax(0,1fr) 36px;gap:8px;min-width:0}.share-code input{min-height:36px;padding:7px 10px;color:#ffcf8d;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,monospace;font-size:12px}.share-code button{display:grid;place-items:center;border:1px solid #51656a;border-radius:6px;width:36px;min-height:36px;padding:0;background:#121b1f;color:#f3f6f3}.share-code button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2}.share-code button span{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.editor-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:16px}.editor-header>div{display:grid;gap:6px;min-width:0;width:min(100%,560px)}.editor-header h2{font-size:30px}.editor-header .share-code{width:min(100%,440px)}.deck-editor-form{max-width:none}.free-space-editor{display:grid;gap:12px;border-top:1px solid #26373c;border-bottom:1px solid #26373c;padding:16px 0}.free-space-cell{max-width:420px;border-color:#5d9086;background:#10201f}.cell-editor-head{display:flex;justify-content:space-between;align-items:center;gap:14px}.cell-editor-head h3,.cell-editor-head p{margin:0}.cell-add-actions{display:flex;flex-wrap:wrap;gap:8px}.cell-add-actions button,.upload-images-button,.editor-cell-top button,.cell-kind-toggle button{border:1px solid #51656a;border-radius:6px;min-height:34px;padding:7px 10px;background:#121b1f;color:#f3f6f3}.upload-images-button{display:inline-flex;align-items:center;cursor:pointer;font-size:1rem;font-weight:400}.upload-images-button input{display:none}.cell-editor-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}.editor-cell{display:grid;gap:10px;border:1px solid #34464b;border-radius:8px;background:#0b1114;padding:10px}.editor-cell-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.editor-cell-top span{display:grid;place-items:center;width:28px;height:28px;border-radius:999px;background:#1b282c;color:#cbd7d6;font-size:12px;font-weight:900}.cell-kind-toggle{display:grid;grid-template-columns:1fr 1fr;gap:6px}.cell-kind-toggle .selected{background:#dce6e4;color:#101619}.editor-cell textarea{min-height:104px;resize:vertical}.image-cell-editor{display:grid;gap:10px}.image-preview{display:grid;place-items:center;aspect-ratio:1;overflow:hidden;border:1px solid #34464b;border-radius:6px;background:#d8d2c4;color:#283033;font-weight:800}.image-preview img{width:100%;height:100%;object-fit:contain}.cell-editor-empty{grid-column:1 / -1;border:1px dashed #51656a;border-radius:8px;padding:22px;color:#9ba9aa;text-align:center}.cell-editor-empty p{margin:0}.editor-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.editor-actions .primary{background:#dce6e4;color:#101619}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;display:grid;place-items:center;padding:18px;background:#000000a3}.modal-panel{width:min(480px,100%);border:1px solid #34464b;border-radius:8px;background:#11171b;padding:18px;box-shadow:0 24px 80px #00000080}.modal-panel .creator{border:0;border-radius:0;background:transparent;padding:0;box-shadow:none}.confirm-panel{display:grid;gap:16px}.confirm-panel h2,.confirm-panel p{margin:0}.confirm-panel p{color:#cbd7d6;line-height:1.4}.confirm-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.confirm-actions button{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px;background:#121b1f;color:#f3f6f3}.confirm-actions .danger{border-color:#d96b5d;color:#ffb7ad}.confirm-actions button:disabled{cursor:not-allowed;opacity:.55}.deck-row.active{background:#18302e;border-color:#5ea195}.deck-stat{flex:0 0 auto;font-weight:800}.quiet{width:100%;background:transparent;color:#dce6e4}.play-area{position:relative;display:grid;grid-template-rows:auto auto 1fr auto;gap:18px;min-width:0;min-height:100vh;padding:18px}.play-toolbar{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin:0}.play-toolbar h1{font-size:30px}.toolbar-subtitle{margin:6px 0 0;color:#9ba9aa;font-size:14px;font-weight:800}.toolbar-actions{display:flex;align-items:center;gap:8px;flex-wrap:nowrap;justify-content:flex-end}.toolbar-actions button{background:#121b1f;border-color:#34464b;color:#f3f6f3}.toolbar-actions button:disabled{cursor:not-allowed;opacity:.45}.menu-button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;width:44px;min-width:44px;height:42px;padding:0}.menu-button span{display:block;width:20px;min-width:0;height:2px;flex:0 0 2px;border-radius:999px;background:currentColor}.menu-button.active{background:#dce6e4;color:#101619}.game-menu{position:absolute;top:82px;right:18px;z-index:10;display:grid;gap:14px;width:min(420px,calc(100% - 36px));max-height:calc(100vh - 100px);overflow:auto;border:1px solid #34464b;border-radius:8px;background:#0f1518;padding:16px;box-shadow:0 22px 70px #00000073}.menu-user{display:flex;align-items:center;justify-content:space-between;gap:12px}.menu-user>div{display:grid;gap:2px;min-width:0}.menu-user strong{font-size:18px}.menu-user small{color:#9ba9aa;font-weight:700}.marker-color-picker{display:grid;justify-items:end;align-self:start;margin-top:20px}.marker-color-picker input{width:34px;height:28px;min-height:28px;padding:0;border-color:#51656a;overflow:hidden;cursor:pointer}.marker-color-picker input::-webkit-color-swatch-wrapper{padding:0}.marker-color-picker input::-webkit-color-swatch{border:0;border-radius:5px}.marker-color-picker input::-moz-color-swatch{border:0;border-radius:5px}.menu-actions{display:grid;gap:10px}.menu-actions button,.menu-create,.menu-add-deck,.menu-settings{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px;background:#121b1f;color:#f3f6f3}.menu-create{background:#dce6e4;color:#101619;font-weight:800}.menu-section{display:grid;gap:10px}.menu-deck-list{max-height:260px}.menu-signout{border:1px solid #51656a;border-radius:6px;min-height:42px;margin-top:4px;padding:10px 14px}.empty-state{align-self:center;justify-self:center;width:min(440px,100%);padding:28px;text-align:center}.card-wrap{display:grid;gap:10px;align-self:start;justify-self:center;width:100%;padding:18px;touch-action:manipulation}.card-wrap.winner{border-color:#e0b743;box-shadow:0 22px 70px #e0b74352}.card-pagination{display:grid;grid-template-columns:44px 1fr 44px;align-items:center;gap:10px}.card-pagination button,.deck-bottom-actions button{border:1px solid #51656a;border-radius:6px;min-height:42px;padding:10px 14px;background:#121b1f;color:#f3f6f3}.card-pagination button{width:44px;padding:0}.card-pagination span{text-align:center;font-weight:900}.deck-bottom-actions{display:flex;align-items:center;justify-content:center;gap:10px;flex-wrap:wrap}.deck-bottom-actions button{height:42px}.deck-bottom-actions .danger{border-color:#d96b5d;color:#ffb7ad}.win-anim-picker{display:flex;align-items:center;gap:8px;font-size:13px;color:#b9c4c8}.win-anim-picker select{height:42px;padding:0 12px;border-radius:8px;border:1px solid #48595f;background:#151d21;color:#f2f0e8;font-weight:600}.bingo-grid{position:relative;display:grid;gap:2px;aspect-ratio:1;width:100%}.cell{position:relative;display:grid;place-items:center;overflow:hidden;min-width:0;min-height:0;border:2px solid #48595f;border-radius:4px;background:#151d21;color:#f2f0e8;padding:clamp(5px,1.2vw,12px);text-align:center;line-height:1.08;font-size:clamp(10px,1.8vw,18px);font-weight:800}.cell img{display:block;width:100%;height:100%;object-fit:contain;border-radius:3px;background:#d8d2c4}.cell.image-cell{padding:0;background:#d8d2c4}.cell span{overflow-wrap:anywhere}.scribble-mark{position:absolute;top:2%;right:2%;bottom:2%;left:2%;z-index:2;width:96%;height:96%;overflow:visible;pointer-events:none}.scribble-mark path{fill:none;stroke-linecap:round;stroke-linejoin:round}.cell.free{background:#203b37}.bingo-win-line,.bingo-win-badge{pointer-events:none}.bingo-win-line{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;width:100%;height:100%;overflow:visible}.bingo-win-line line{fill:none;stroke-width:3.8;stroke-linecap:round;filter:drop-shadow(0 2px 4px rgba(0,0,0,.55))}.bingo-win-line .bingo-win-line-shadow{stroke:#0000009e;stroke-width:6.4;filter:none}.bingo-win-badge{position:absolute;left:50%;top:50%;z-index:6;transform:translate(-50%,-50%) rotate(-2deg);border:2px solid rgba(242,240,232,.9);border-radius:8px;padding:clamp(10px,2.4vw,22px) clamp(16px,4vw,38px);background:#090d0fbd;box-shadow:0 18px 54px #00000073;color:#fff8d8;font-size:clamp(34px,9vw,96px);font-weight:900;letter-spacing:0;line-height:1;text-shadow:0 3px 0 rgba(0,0,0,.51)}.confetti{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:20}.confetti canvas{display:block;width:100%;height:100%}.fireworks{position:fixed;top:0;right:0;bottom:0;left:0;overflow:hidden;pointer-events:none;z-index:22}.fireworks-sky{position:absolute;z-index:0;top:0;right:0;bottom:0;left:0;width:100%;height:100%;opacity:0;animation:fireworks-sky-fade 11.2s ease forwards}.fireworks canvas{position:absolute;top:0;right:0;bottom:0;left:0;display:block;width:100%;height:100%}.fireworks>canvas:not(.fireworks-sky){z-index:1}@keyframes fireworks-sky-fade{0%{opacity:0}10%{opacity:1}78%{opacity:1}to{opacity:0}}.blood-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30;overflow:hidden;pointer-events:none;opacity:.7;animation:blood-clear .7s ease 8.6s forwards}.blood-wavefront{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;width:100%;height:100%;display:block;filter:drop-shadow(0 4px 8px rgba(40,0,2,.32))}.blood-rivulet{position:absolute;top:0;background:linear-gradient(180deg,#8f0307,#b3060b);border-radius:0 0 45% 45%/0 0 16px 16px;opacity:.92;transform:translateY(-101%);animation:blood-run cubic-bezier(.5,0,.5,1) forwards}.blood-rivulet-v3{z-index:0;background:linear-gradient(180deg,#760206,#9e0409 48%,#650105);border-radius:0 0 55% 55%/0 0 22px 22px;opacity:.9}@keyframes blood-run{0%{transform:translateY(-101%)}to{transform:translateY(0)}}@keyframes blood-clear{0%{opacity:.7}to{opacity:0}}@media (max-width: 880px){.auth-shell,.app-shell{display:block}.auth-shell,.manager-shell{padding:18px}.manager-header{align-items:flex-start;flex-wrap:wrap}.manager-actions{justify-content:flex-end}.manager-actions button{flex:0 0 auto}.deck-type-row,.user-row{grid-template-columns:1fr;align-items:stretch}.deck-type-actions,.user-actions,.manager-primary-actions,.editor-actions{justify-content:stretch}.deck-type-actions button,.user-actions button,.manager-primary-actions button,.editor-actions button{flex:1 1 140px}.editor-header{flex-direction:column}.auth-panel h1{font-size:30px}.type-preview{margin-top:16px}.play-area{min-height:auto;padding:10px}.play-toolbar{align-items:flex-start;flex-wrap:nowrap;gap:10px}.play-toolbar>div:first-child{flex:1 1 auto;min-width:0}.play-toolbar h1{font-size:28px}.toolbar-actions{flex:0 0 auto;justify-content:flex-start;flex-wrap:nowrap;overflow-x:visible;padding-bottom:0}.card-wrap{padding:8px}.game-menu{position:fixed;top:70px;right:10px;width:min(420px,calc(100% - 20px));max-height:calc(100vh - 84px)}.bingo-grid{gap:4px}.cell{border-width:1px;font-size:clamp(9px,2.7vw,13px);padding:4px}.cell.image-cell{padding:0}}
