@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700;800&family=Great+Vibes&display=swap');
:root{color-scheme:dark;--bg:#120718;--panel:#23112f;--panel2:#32143d;--line:#895ca4;--text:#fff5ff;--muted:#cfb6d7;--pink:#fb3eae;--gold:#ffd675;--purple:#ab65f0;--mint:#5df4b0;font-family:'DM Sans',Inter,Arial,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);min-height:100vh}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}.backdrop{position:fixed;inset:0;overflow:hidden;pointer-events:none;background:radial-gradient(ellipse at 50% -10%,#5f1978 0%,#270e39 38%,#120718 85%);z-index:-1}.glow{position:absolute;border-radius:50%;filter:blur(100px);opacity:.36}.glow-one{width:550px;height:450px;top:-200px;left:0;background:#e24cb3}.glow-two{width:520px;height:440px;right:-160px;top:160px;background:#624ef6}.glow-three{width:460px;height:350px;left:35%;bottom:-150px;background:#b92c79}.sparkles{position:absolute;inset:0;opacity:.35;background-image:radial-gradient(circle,#fff 1px,transparent 1.5px);background-size:103px 93px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}.app-shell{max-width:1660px;margin:auto;padding:14px 24px 26px}.masthead{position:relative;display:flex;align-items:center;justify-content:center;min-height:188px}.brand-area{text-align:center}.brand-script{font-family:'Great Vibes',cursive;font-size:clamp(40px,5.2vw,82px);line-height:1;color:#fff1ff;text-shadow:0 0 9px #e455ff,0 0 32px #ea45b8;transform:rotate(-2deg);margin-top:6px}.brand-star{font:30px Georgia;color:#ffd775}.marquee{display:inline-block;margin-top:-3px;border:4px solid #ffd089;border-radius:18px;padding:8px 22px;background:linear-gradient(180deg,#7d164b,#360b40);box-shadow:0 0 0 5px #4e163f,0 0 0 8px #f88f5d,0 0 32px #f94cb9;position:relative}.marquee span{font-size:clamp(20px,2.6vw,44px);letter-spacing:.035em;font-weight:800;text-shadow:0 0 13px #fe56c7;white-space:nowrap}.strapline{font-size:15px;margin:17px 0 3px;color:#f1d9f8}.account-panel{position:absolute;right:0;top:8px;width:278px;padding:13px!important}.account-top{display:flex;align-items:center;gap:9px}.account-avatar{background:linear-gradient(135deg,#c46cef,#5b2b84);border:1px solid #eac3ff;display:grid;place-items:center;border-radius:50%;width:42px;height:42px;font-size:25px}.account-copy{flex:1;min-width:0}.account-copy strong,.account-copy small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-copy strong{font-size:13px}.account-copy small{font-size:10px;color:#ddbbec;margin-top:5px}.icon-button{border:0;background:transparent;color:#fff;font-size:21px}.account-numbers{border-top:1px solid #65457b;display:flex;justify-content:space-around;padding-top:10px;margin-top:11px;font-size:12px}.announcement{margin:8px auto 19px;max-width:800px;padding:9px 19px;display:flex;gap:13px;justify-content:center;text-align:center;border:1px solid #8a4dac;border-radius:50px;background:#3b1b54aa;box-shadow:inset 0 0 14px #9d31a136;font-size:13px}.dashboard{display:grid;grid-template-columns:minmax(260px,1fr) minmax(440px,1.54fr) minmax(260px,.9fr);align-items:start;gap:18px}.panel{background:linear-gradient(150deg,#321a43e8,#1d0c2be8);border:1px solid #a16abd;border-radius:19px;padding:18px;box-shadow:0 10px 35px #0004,inset 0 1px #ffffff1c}.panel-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px;gap:8px}.panel-heading h2{font-size:21px;line-height:1.1;margin:3px 0}.eyebrow{font-size:10px;font-weight:800;letter-spacing:.18em;color:#dc96fa}.count-chip{font-size:10px;border:1px solid #74488f;background:#46205d;border-radius:30px;padding:5px 8px;white-space:nowrap}.search-field{display:flex;align-items:center;gap:10px;border:1px solid #9167ad;background:#422654;border-radius:12px;padding:0 12px;margin-bottom:15px}.search-field span{font-size:24px;color:#d4aee9}.search-field input{height:41px;border:0;background:transparent;outline:0;min-width:0;color:#fff;width:100%;font-size:13px}input::placeholder,textarea::placeholder{color:#b8a0c8}.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;max-height:425px;overflow:auto;padding-right:4px;scrollbar-color:#9a63bb transparent}.person-card{display:flex;flex-direction:column;border:1px solid #9964bb;border-radius:11px;overflow:hidden;background:#3e2055;cursor:grab;padding:0;color:white;min-width:0;transition:transform .18s,border .18s,box-shadow .18s}.person-card:hover{transform:translateY(-3px);border-color:#f5a7ff;box-shadow:0 0 15px #d735ca55}.portrait{position:relative;display:grid;place-items:center;overflow:hidden;background:linear-gradient(145deg,var(--portrait-a),var(--portrait-b));isolation:isolate}.person-card .portrait{height:91px}.portrait::after{content:'';position:absolute;inset:0;background:radial-gradient(circle at 48% 24%,#fff5,transparent 38%)}.portrait svg{width:70%;height:96%;max-width:130px;filter:drop-shadow(0 4px 7px #0005)}.portrait img{width:100%;height:100%;object-fit:cover;position:relative;z-index:1}.person-name{font-weight:800;line-height:1.15;text-align:center;min-height:34px;padding:7px 3px;font-size:11px;display:grid;place-items:center;overflow-wrap:anywhere;background:#2d123b}.person-card.in-board{opacity:.38;filter:grayscale(.5)}.add-person{background:linear-gradient(160deg,#46215f,#321640);border:1px solid #8950a2;border-radius:14px;padding:13px;margin-top:15px}.add-heading{font-size:15px;font-weight:800;margin-bottom:10px}.field-label{display:block;font-size:11px;font-weight:700;color:#dfc4ef;margin:12px 0 5px}.add-person input,.modal input,.modal textarea{display:block;width:100%;color:white;background:#2c183c;border:1px solid #815499;border-radius:9px;padding:10px 11px;outline:0}.add-person input:focus,.modal input:focus,.modal textarea:focus{border-color:#fa65d6;box-shadow:0 0 0 3px #f84ba62c}.add-person input[type=file]{font-size:10px;padding:7px}.field-note,.tiny-note{color:#c8afd2;font-size:10px;line-height:1.45;margin:9px 0 0}.button{border:1px solid #b282c5;border-radius:12px;padding:13px 15px;color:#fff;font-size:13px;font-weight:800;box-shadow:0 5px 12px #0004;transition:transform .16s,filter .16s}.button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.1)}.button-pink{border-color:#ff9fdd;background:linear-gradient(180deg,#ff66bd,#e91b86);box-shadow:inset 0 1px #fff8,0 0 19px #f42d943e}.button-secondary{background:linear-gradient(165deg,#513262,#352042)}.full-width{width:100%;margin-top:12px}.board-wrap{border:2px solid #e474df;background:linear-gradient(150deg,#69237b,#3e1455 60%,#541d69);border-radius:21px;padding:12px;box-shadow:inset 0 0 16px #ffb4ff66,0 0 0 5px #a6319130,0 0 30px #e243da78}.board-title{display:flex;justify-content:center;align-items:center;text-align:center;gap:15px;margin:2px auto 15px}.board-title h1{font-size:clamp(18px,2vw,28px);margin:4px 0;line-height:1.15}.board-title h1 span{white-space:nowrap;color:#e8c7f2;font-size:.65em}.title-flourish{color:#ffd47a;font-size:23px}.board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px;aspect-ratio:1;min-height:0}.square{position:relative;border:2px dashed #b26fd0;border-radius:15px;min-width:0;min-height:0;background:linear-gradient(145deg,#261033,#190a24);color:white;overflow:hidden;display:flex;align-items:stretch;justify-content:stretch;transition:border .2s,transform .2s,box-shadow .2s;padding:0}.square.empty:hover,.square.drag-over{border-color:#ff9bdf;background:#56286b;transform:scale(.985)}.empty-content{align-self:center;text-align:center;width:100%;padding:5px}.empty-content .plus{display:block;font-size:29px;color:#bd7fe0}.empty-content span:last-child{font-size:11px;color:#d9b1e7}.square.filled{border-style:solid;border-color:#c488eb;cursor:pointer}.square.filled .portrait{width:100%;height:100%;position:absolute;inset:0}.square.filled .portrait svg{width:78%}.square .square-name{position:absolute;bottom:0;left:0;right:0;padding:10px 3px 8px;background:linear-gradient(0deg,#2b1034 0%,#46234cce 85%,transparent);font-size:clamp(10px,1vw,14px);font-weight:800;text-align:center;z-index:2;line-height:1.1;overflow-wrap:anywhere}.square .remove-person{position:absolute;top:5px;right:5px;background:#25092fc9;border:1px solid #d09edb;border-radius:50%;width:25px;height:25px;color:#fff;z-index:3;display:grid;place-items:center;font-size:13px}.square.matched{border-color:#71ffc2;box-shadow:inset 0 0 28px #13e9938c,0 0 20px #12eaa455}.square.matched::after{content:'✓ MATCH';position:absolute;z-index:3;top:9px;left:7px;background:#12ae80;border-radius:7px;padding:5px 7px;font-size:11px;font-weight:900;box-shadow:0 0 15px #29d994}.square.winning{animation:winning 1.7s ease-in-out infinite}@keyframes winning{50%{box-shadow:0 0 30px #ffdf74,inset 0 0 30px #e3bc4c88;border-color:#ffdc7e}}.board-bottom{display:flex;justify-content:space-between;gap:10px;padding:11px 6px 1px;color:#f0c9ff;font-size:11px;font-weight:700}.board-actions{display:flex;gap:9px;margin-top:21px}.board-actions .button:first-child{flex:1.45}.board-actions .button{flex:1;min-width:0}.ticker{margin-top:23px;display:flex;align-items:center;gap:13px;padding:14px}.ticker-icon{font-size:29px;color:#ff7aaf}.ticker strong{font-size:13px}.ticker p{font-size:11px;color:#d5badc;margin:4px 0 0}.ticker-action{background:transparent;border:0;color:#f5a1e5;font-size:11px;text-decoration:underline;white-space:nowrap}.right-column{display:flex;flex-direction:column;gap:14px}.heading-icon{font-size:20px}.steps{margin:0;padding:0;list-style:none}.steps li{display:flex;align-items:flex-start;gap:12px;border-bottom:1px solid #69417b;padding:12px 0}.steps li:last-child{border:0;padding-bottom:2px}.steps li>span{background:linear-gradient(135deg,#bb6af5,#6d30a8);border:1px solid #d5a7ef;flex:none;display:grid;place-items:center;border-radius:50%;width:28px;height:28px;font-weight:800}.steps p{font-size:12px;margin:3px 0;line-height:1.4}.tabs{display:flex;background:#29143c;border:1px solid #674379;border-radius:10px;padding:3px;margin-bottom:10px}.tab{flex:1;border:0;border-radius:7px;background:transparent;color:#d2b6e3;font-size:11px;font-weight:700;padding:8px}.tab.active{background:linear-gradient(180deg,#ff66bc,#dc288e);color:white}.leader-item{display:flex;align-items:center;gap:10px;padding:11px 9px;border-bottom:1px solid #614273;font-size:12px;background:#5a307a30}.leader-item:first-child{background:#986d2e4a;border-radius:8px}.leader-rank{width:22px;text-align:center;font-weight:900;color:#ffd77e}.leader-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leader-score{font-weight:800;font-variant-numeric:tabular-nums}.empty-leader{padding:22px 9px;text-align:center;font-size:12px;color:#d7b8e5;line-height:1.5}.stat-row{display:flex;justify-content:space-between;padding:10px;border-bottom:1px solid #664177;font-size:12px}.stat-row:last-child{border:0}.stat-row b{font-variant-numeric:tabular-nums}.powered{display:flex;align-items:center;gap:12px;padding:5px 14px}.powered>span{font-size:33px}.powered small,.powered strong{display:block}.powered small{color:#caaad5;font-size:10px}.powered strong{font-size:13px}footer{display:flex;justify-content:space-between;gap:20px;color:#ae90bc;font-size:11px;margin-top:33px;padding-top:14px;border-top:1px solid #633475}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,30px);opacity:0;background:#f4e4fa;color:#291235;padding:12px 20px;border-radius:13px;z-index:30;box-shadow:0 8px 38px #0008;transition:.25s;pointer-events:none;font-weight:800;font-size:13px;max-width:calc(100vw - 28px);text-align:center}.toast.visible{opacity:1;transform:translate(-50%,0)}dialog::backdrop{background:#080312d9;backdrop-filter:blur(8px)}.modal{width:min(440px,calc(100vw - 28px));border:1px solid #ef83dd;border-radius:20px;background:linear-gradient(145deg,#432054,#190e2a);color:#fff;padding:26px;box-shadow:0 0 70px #dc42b35c}.modal h2{font-size:27px;margin:8px 0 13px}.modal p{color:#e1c9e8;font-size:13px;line-height:1.6}.modal .modal-close{position:absolute;right:15px;top:13px;border:0;background:#6b3b7b;border-radius:50%;width:30px;height:30px;color:#fff}.modal hr{border:0;border-top:1px solid #6e4981;margin:21px 0}.modal code{color:#ffc2e8}.match-events{display:flex;flex-direction:column;gap:8px;margin:15px 0}.event-item{border:1px solid #6edcb9;border-radius:11px;padding:12px;background:#16473564}.event-item b{display:block;font-size:13px}.event-item a{color:#b1ffe6;font-size:11px}.event-item button{display:block;margin-top:9px}.win-modal{text-align:center}.win-crown{font-size:64px;filter:drop-shadow(0 0 20px #ffc158)}.win-modal h2{font-size:48px;color:#ffde85;text-shadow:0 0 15px #fca83d}@media(max-width:1250px){.masthead{justify-content:flex-start;min-height:170px}.brand-area{width:calc(100% - 300px)}.brand-script{font-size:52px}.marquee span{font-size:26px}.dashboard{grid-template-columns:minmax(230px,1fr) minmax(370px,1.5fr)}.right-column{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr)}.powered{display:none}}@media(max-width:800px){.app-shell{padding:10px 12px 20px}.masthead{display:block;min-height:auto}.brand-area{width:100%;padding:12px 0 5px}.brand-script{font-size:clamp(42px,10vw,66px)}.brand-star{font-size:16px}.marquee{padding:8px 12px;border-width:2px;box-shadow:0 0 0 3px #4e163f,0 0 0 5px #f88f5d,0 0 23px #f94cb9;border-radius:12px}.marquee span{font-size:clamp(17px,4.7vw,32px);white-space:normal}.strapline{font-size:12px;margin:16px 0}.account-panel{position:relative;width:100%;top:auto;right:auto;max-width:420px;margin:13px auto 0}.announcement{font-size:11px;margin:15px 0}.dashboard{display:flex;flex-direction:column}.centre-column{order:0;width:100%}.left-column{order:1;width:100%}.right-column{order:2;width:100%;display:flex}.board-wrap{max-width:660px;margin:auto}.board{gap:6px}.board-title{gap:8px}.board-title h1{font-size:20px}.square{border-radius:10px}.board-actions{margin:16px auto 0;max-width:660px;flex-wrap:wrap}.board-actions .button{font-size:11px;padding:12px 8px}.ticker{max-width:660px;margin:16px auto 0}.library-grid{grid-template-columns:repeat(4,minmax(0,1fr));max-height:330px}.person-card .portrait{height:100px}.person-name{font-size:11px}.left-column .panel{max-width:660px;margin:auto}.right-column .panel{width:100%}footer{flex-direction:column;text-align:center;gap:6px}}@media(max-width:420px){.board-wrap{padding:7px}.board-title h1{font-size:17px}.board-title .eyebrow{font-size:9px}.square-name{font-size:10px!important;padding:7px 2px!important}.empty-content span:last-child{font-size:9px}.title-flourish{font-size:17px}.library-grid{grid-template-columns:repeat(3,1fr)}.board-actions{gap:6px}.board-actions .button:first-child{flex-basis:100%}.ticker{flex-wrap:wrap}.ticker-action{margin-left:40px}}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important}}
