:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#281333;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--purple-950:#2b0b3f;--purple-900:#3b1154;--purple-800:#581c87;--purple-700:#6b21a8;--purple-600:#7e22ce;--purple-500:#a855f7;--purple-200:#e9d5ff;--purple-100:#f3e8ff;--cream:#fffaf3;--rose:#ffe4ef;--gold:#c8963f;background:#fbf7ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{background:radial-gradient(circle at 12% 6%,#d8b4feb8,#0000 24rem),radial-gradient(circle at 88% 12%,#ffe4efd9,#0000 22rem),linear-gradient(#fff8ff 0%,#f7edff 46%,#fffaf3 100%)}button,input,textarea{font:inherit}.shell{width:min(100%,900px);padding:max(20px, env(safe-area-inset-top)) 14px max(28px, env(safe-area-inset-bottom));margin:0 auto}.loading{text-align:center;color:#6b4779;place-content:center;gap:12px;min-height:100vh;display:grid}.spinner{border:4px solid var(--purple-200);border-top-color:var(--purple-700);border-radius:50%;width:38px;height:38px;margin:0 auto;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.hero{-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:linear-gradient(145deg,#ffffffe6,#fdf4ffd1);border:1px solid #a855f73d;border-radius:32px;justify-content:space-between;align-items:flex-start;gap:16px;padding:24px;display:flex;position:relative;overflow:hidden;box-shadow:0 24px 80px #581c8729}.hero:before{content:"♡";color:#a855f717;pointer-events:none;font-size:9rem;line-height:1;position:absolute;bottom:-44px;right:20px}.hero:after{content:"";pointer-events:none;background:linear-gradient(115deg,#0000 0 62%,#ffffff75 62% 100%);position:absolute;inset:0}.hero>*{z-index:1;position:relative}.eyebrow{text-transform:uppercase;letter-spacing:.16em;color:var(--purple-700);margin:0 0 8px;font-size:.72rem;font-weight:900}h1{letter-spacing:-.08em;color:var(--purple-950);margin:0;font-family:Georgia,Times New Roman,serif;font-size:clamp(2.25rem,13vw,5.3rem);line-height:.95}.subtitle{color:#6b4779;max-width:48ch;margin:12px 0 0;font-weight:650}.heroMeta{flex:none;justify-items:end;gap:8px;display:grid}.statusPill,.playerPill{color:var(--purple-950);background:#f3e8fff2;border:1px solid #a855f738;border-radius:999px;align-items:center;gap:6px;padding:8px 10px;font-size:.82rem;font-weight:800;display:inline-flex}.playerPill{color:var(--purple-800);text-overflow:ellipsis;white-space:nowrap;background:#fff;max-width:180px;overflow:hidden;box-shadow:0 8px 22px #581c8717}.actions{grid-template-columns:1fr;gap:10px;margin:18px 0;display:grid}button,.fileButton{background:linear-gradient(135deg, var(--purple-800), var(--purple-600));color:#fff;cursor:pointer;-webkit-tap-highlight-color:transparent;border:0;border-radius:18px;justify-content:center;align-items:center;gap:8px;min-height:48px;padding:0 16px;font-weight:900;display:inline-flex;box-shadow:0 14px 30px #581c8738}button:active,.fileButton:active{transform:translateY(1px)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}.fileButton input{display:none}.danger{color:#9f1239;box-shadow:none;background:#fff1f6;border:1px solid #9f12391f}.ghost{color:var(--purple-900);box-shadow:none;background:#ffffffc7;border:1px solid #a855f738}.bingoBanner{color:#3b0764;background:linear-gradient(135deg,#f3e8ff,#ffe4ef 72%,#fff7ed);border:1px solid #a855f740;border-radius:24px;align-items:center;gap:10px;margin-bottom:16px;padding:14px 16px;display:flex;box-shadow:0 16px 45px #a855f72e}.bingoBanner svg{color:var(--gold);flex:none}.bingoBanner span{color:#6b4779}.grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:clamp(6px,2vw,12px);display:grid}.square{aspect-ratio:1;color:#321144;text-align:center;background:#ffffffe6;border:1px solid #a855f738;border-radius:clamp(15px,3vw,24px);justify-content:center;align-items:center;min-height:0;padding:8px;display:flex;position:relative;overflow:hidden;box-shadow:0 12px 30px #581c871c}.square:before{content:"";border-radius:inherit;pointer-events:none;border:1px solid #c8963f29;position:absolute;inset:6px}.square.checked{background:linear-gradient(135deg, var(--purple-900), var(--purple-600));color:#fff;border-color:#0000}.square.checked:before{border-color:#ffffff42}.squareText{letter-spacing:-.045em;-webkit-hyphens:auto;hyphens:auto;font-size:clamp(.58rem,2.8vw,1rem);font-weight:900;line-height:1.05}.squareMeta{opacity:.95;gap:3px;display:inline-flex;position:absolute;inset:auto 7px 7px auto}.modalLayer{z-index:30;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#2b0b3f85;place-items:center;padding:14px;display:grid;position:fixed;inset:0}.modalLayer.alignBottom{align-items:end}.nameCard,.proofCard,.reviewCard{background:linear-gradient(#fff 0%,#fff8ff 100%);border:1px solid #a855f733;box-shadow:0 24px 80px #2b0b3f42}.nameCard{text-align:center;border-radius:32px;width:min(100%,480px);padding:24px}.nameIcon{width:52px;height:52px;color:var(--purple-800);background:var(--purple-100);border:1px solid #a855f738;border-radius:20px;place-items:center;margin:0 auto 12px;display:grid}.nameCard h2{letter-spacing:-.05em;color:var(--purple-950);margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:1.9rem}.nameCard p{color:#6b4779;margin:0 0 18px}.nameCard form{gap:10px;display:grid}.nameCard input{width:100%;min-height:54px;color:var(--purple-950);background:#fff;border:1px solid #a855f752;border-radius:18px;outline:none;padding:0 14px;font-weight:800}.nameCard input:focus{border-color:var(--purple-600);box-shadow:0 0 0 4px #a855f729}.proofCard{border-radius:30px;width:min(100%,540px);margin:0 auto;padding:20px}.proofCard h2{color:var(--purple-950);margin:0 0 8px;font-family:Georgia,Times New Roman,serif;font-size:1.75rem}.proofCard p{color:#6b4779;margin:0 0 12px}.proofCard .hint{color:#8b5a9c;margin-top:-4px;font-size:.9rem}.proofCard input[type=file]{color:#4c1d65;background:#ffffffbf;border:1px dashed #7e22ce6b;border-radius:18px;width:100%;padding:14px}.proofActions{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.toast{left:14px;right:14px;bottom:max(16px, env(safe-area-inset-bottom));z-index:20;border-radius:20px;width:min(100% - 28px,540px);margin:0 auto;padding:14px 16px;font-weight:900;animation:4s forwards toast;position:fixed;box-shadow:0 18px 50px #2b0b3f33}.toast.ok{color:#3b0764;background:#f3e8ff}.toast.warn{color:#9a3412;background:#fff7ed}@keyframes toast{0%,90%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(12px)}}@media (width>=640px){.shell{padding-inline:24px}.actions{grid-template-columns:1fr 1fr .8fr}.square{padding:12px}}.fieldLabel{color:#4c1d65;margin:14px 0 6px;font-size:.86rem;font-weight:900;display:block}.proofCard input[type=text],.proofCard textarea,.reviewCard input[type=password]{width:100%;color:var(--purple-950);background:#fff;border:1px solid #a855f752;border-radius:18px;outline:none;padding:13px 14px;font-weight:800}.proofCard textarea{resize:vertical;min-height:94px;line-height:1.35}.proofCard input[type=text]:focus,.proofCard textarea:focus,.reviewCard input[type=password]:focus{border-color:var(--purple-600);box-shadow:0 0 0 4px #a855f729}.filePreview{align-items:center;gap:7px;font-weight:900;display:inline-flex;color:var(--purple-800)!important;margin:10px 0 0!important}.reviewLayer{place-items:stretch stretch;overflow:auto}.reviewCard{border-radius:32px;width:min(100%,940px);max-height:calc(100vh - 28px);margin:auto;padding:18px;position:relative;overflow:auto}.iconButton{float:right;z-index:2;background:var(--purple-100);width:42px;min-height:42px;color:var(--purple-900);box-shadow:none;border-radius:999px;padding:0;position:sticky;top:0}.reviewLogin{clear:both;text-align:center;width:min(100%,460px);margin:30px auto 8px}.reviewLogin h2,.reviewHeader h2{letter-spacing:-.05em;color:var(--purple-950);margin:0;font-family:Georgia,Times New Roman,serif;font-size:1.95rem}.reviewLogin p{color:#6b4779}.reviewLogin form{gap:10px;display:grid}.reviewHeader{clear:both;justify-content:space-between;align-items:center;gap:12px;padding:6px 2px 16px;display:flex}.reviewHeader span{background:var(--purple-100);color:var(--purple-800);border-radius:999px;flex:none;padding:8px 11px;font-weight:900}.reviewList{gap:12px;display:grid}.reviewItem{background:#ffffffbf;border:1px solid #a855f733;border-radius:24px;gap:12px;padding:12px;display:grid}.reviewItem.isChecked{background:#faf5ff;border-color:#7e22ce61}.reviewText{gap:5px;min-width:0;display:grid}.reviewText strong{color:var(--purple-950);font-size:1rem}.reviewText span{color:#6b4779;background:#f1e5f8;border-radius:999px;width:fit-content;padding:4px 8px;font-size:.78rem;font-weight:900}.reviewItem.isChecked .reviewText span{background:var(--purple-200);color:var(--purple-900)}.reviewText p{color:#4c1d65;overflow-wrap:anywhere;margin:0}.reviewText small,.muted{color:#8b5a9c!important}.reviewItem img{object-fit:cover;background:var(--purple-100);border:1px solid #a855f747;border-radius:20px;width:100%;max-height:320px}.noImage{color:#8b5a9c;background:var(--purple-100);border-radius:20px;place-items:center;gap:6px;min-height:100px;font-weight:900;display:grid}@media (width>=720px){.reviewItem{grid-template-columns:1.35fr 220px;align-items:start}.reviewItem img,.noImage{height:160px}}.reviewExportActions{grid-template-columns:1fr;gap:10px;margin:0 0 8px;display:grid}.reviewExportActions button{justify-content:center;width:100%}.reviewExportHint{color:#7e4d92;margin:0 0 14px;font-size:.9rem;line-height:1.4}@media (width>=720px){.reviewExportActions{grid-template-columns:repeat(2,minmax(0,220px));justify-content:end}}.reviewExportMessage{border-radius:16px;margin:0 0 14px;padding:10px 12px;font-weight:900}.reviewExportMessage.ok{color:#581c87;background:#f3e8ff;border:1px solid #7e22ce38}.reviewExportMessage.warn{color:#9a3412;background:#fff7ed;border:1px solid #ea580c38}.reviewExportProgress{color:#581c87;background:#f3e8ffd9;border:1px solid #7e22ce33;border-radius:16px;margin:0 0 14px;padding:10px 12px;font-weight:900}
