@import "https://fonts.googleapis.com/css2?family=Baloo+2:wght@500;600;700;800&family=Nunito:wght@500;600;700;800;900&display=swap";:root{color:#17233b;font-synthesis:none;background:#f7e9c9;font-family:Nunito,ui-rounded,system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;margin:0}button,select,input{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed}.app-shell,.setup-screen{background:radial-gradient(circle at 13% 8%,#ffffffb3 0 1px,#0000 1.5px) 0 0/24px 24px,linear-gradient(135deg,#ffefcf 0%,#f9e4b4 49%,#ecd28f 100%);min-height:100vh}.app-shell{padding:20px clamp(14px,3vw,44px) 40px}.app-header,.game-layout{width:min(1500px,100%);margin:0 auto}.app-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.brand-lockup{align-items:center;gap:12px;display:flex}.brand-lockup p,.brand-lockup h1{margin:0}.brand-lockup p{color:#755d31;letter-spacing:.1em;text-transform:uppercase;font-size:.72rem;font-weight:900}.brand-lockup h1,.setup-card h1,h2{font-family:"Baloo 2",cursive;line-height:.95}.brand-lockup h1{letter-spacing:-.035em;font-size:clamp(1.55rem,3vw,2.2rem)}.brand-brick{color:#fff;background:#e53935;border-radius:5px;place-items:center;width:48px;height:40px;font:800 1.55rem "Baloo 2";display:grid;position:relative;box-shadow:inset -3px -4px #bb2525,0 3px #a91f1f}.brand-brick:before{content:"";background:radial-gradient(circle,#f55d58 0 3px,#0000 3.5px) 0 0/17px 10px;border-radius:8px 8px 2px 2px;height:9px;position:absolute;top:-6px;left:7px;right:7px}.header-actions{gap:9px;display:flex}.button{border:0;border-radius:10px;padding:10px 15px;font-weight:900;line-height:1;transition:transform .16s,box-shadow .16s,background .16s}.button:not(:disabled):hover{transform:translateY(-2px)}.button:focus-visible,select:focus-visible,.character-card:focus-visible{outline-offset:3px;outline:3px solid #1d77d6}.button--primary{color:#fff;background:#e53935;box-shadow:0 4px #b62025}.button--primary:not(:disabled):hover{background:#f04743;box-shadow:0 6px #b62025}.button--outline{color:#1c3760;background:#fff9e8;border:2px solid #c9ad70;box-shadow:0 2px #c9ad70}.button--ghost{color:#503d20;background:0 0}.button--wide{width:100%;margin-top:10px}.button:disabled{opacity:.46;box-shadow:none;transform:none}.game-topbar{grid-template-columns:minmax(220px,.9fr) minmax(200px,.75fr) minmax(290px,1.2fr);align-items:stretch;gap:13px;margin-bottom:16px;display:grid}.turn-card,.secret-card,.settings-card,.board-panel,.control-panel,.history-panel,.opponent-note,.player-answer-review{background:#fffcefde;border:1px solid #77531c2e;box-shadow:0 5px #946e3221,0 11px 26px #6e4c151a}.turn-card{border-radius:15px;align-items:center;gap:12px;min-height:72px;padding:13px 17px;display:flex}.turn-card--active{background:#fff9e4;border-color:#edb930}.turn-card__dot{background:#a8a397;border-radius:50%;flex:none;width:13px;height:13px;box-shadow:0 0 0 5px #a8a3972e}.turn-card--active .turn-card__dot{background:#e53935;animation:1.5s infinite pulse;box-shadow:0 0 0 5px #e5393529}.turn-card small,.secret-card small,.settings-card label{color:#806835;letter-spacing:.08em;text-transform:uppercase;font-size:.69rem;font-weight:900;display:block}.turn-card strong{margin-top:1px;font-size:.95rem;display:block}.secret-card{border-radius:15px;justify-content:center;align-items:center;gap:8px;padding:7px 13px;display:flex}.secret-card small{font-size:.59rem}.secret-card strong{max-width:110px;font-size:.84rem;line-height:1.05;display:block}.settings-card{border-radius:15px;justify-content:space-around;align-items:center;gap:13px;padding:8px 14px;display:flex}.settings-card select{color:#17233b;background:#fff;border:1px solid #c9ad70;border-radius:6px;width:105px;margin-top:3px;padding:4px 5px;font-size:.85rem;font-weight:800;display:block}.ranked-label{color:#77531c;text-transform:capitalize;white-space:nowrap;font-size:.72rem;font-weight:900}.thinking-banner{color:#694c0e;justify-content:center;align-items:center;gap:10px;margin:-4px 0 13px;font-size:.85rem;font-weight:900;display:flex}.thinking-dots{gap:3px;display:inline-flex}.thinking-dots i{background:#e53935;border-radius:50%;width:7px;height:7px;animation:.9s infinite alternate dot}.thinking-dots i:nth-child(2){animation-delay:.2s}.thinking-dots i:nth-child(3){animation-delay:.4s}.game-columns{grid-template-columns:minmax(0,1fr) minmax(290px,365px);align-items:start;gap:18px;display:grid}.board-panel,.control-panel,.history-panel{border-radius:18px}.board-panel{background:linear-gradient(140deg,#f1c254,#dfa630);border:5px solid #cb8d20;padding:clamp(13px,2vw,22px);box-shadow:inset 0 0 0 2px #ffe998,inset 0 0 26px #76430533,0 7px #99691a33}.panel-heading{justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:13px;display:flex}.panel-heading h2{letter-spacing:-.02em;margin:2px 0 0;font-size:1.28rem}.eyebrow{color:#99733a;letter-spacing:.12em;text-transform:uppercase;margin:0;font-size:.66rem;font-weight:900}.board-panel .eyebrow{color:#744600}.board-panel h2{color:#312004}.board-counter,.candidate-count{color:#66450c;background:#fff6c7b3;border-radius:999px;flex:none;padding:6px 8px;font-size:.69rem;font-weight:900}.character-grid{perspective:900px;grid-template-columns:repeat(6,minmax(0,1fr));gap:clamp(6px,1vw,12px);display:grid}.character-card{aspect-ratio:.78;perspective:700px;background:0 0;border:0;border-radius:8px;width:100%;padding:0;position:relative}.character-card:disabled{opacity:1}.character-card__inner{transform-style:preserve-3d;transition:transform .46s cubic-bezier(.3,.85,.35,1);display:block;position:absolute;inset:0}.character-card.is-flipped .character-card__inner{transform:rotateY(180deg)translateY(-4px)}.character-card__front,.character-card__back{backface-visibility:hidden;border:2px solid #ab7622;border-radius:8px;flex-direction:column;justify-content:center;align-items:center;padding:5px;display:flex;position:absolute;inset:0;overflow:hidden}.character-card__front{background:linear-gradient(135deg,#fffef9,#f4ead2);box-shadow:inset 0 0 0 2px #fff,0 3px #64410a47}.character-card:hover:not(:disabled) .character-card__front{background:#fff;transform:translateY(-2px)}.character-card__back{color:#fff4c6;text-transform:uppercase;background:#89422b;gap:4px;font-size:clamp(.49rem,.85vw,.67rem);font-weight:900;transform:rotateY(180deg);box-shadow:inset 0 0 0 3px #bd6940}.character-card__brick{aspect-ratio:1.2;color:#fff;background:#e53935;border-radius:4px;place-items:center;width:38%;font-size:1rem;display:grid;box-shadow:inset -2px -2px #ae2725}.character-card__name{color:#2b2b34;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:clamp(.48rem,.78vw,.71rem);font-weight:900;line-height:1.04;display:-webkit-box;overflow:hidden}.character-card__franchise{color:#896d3e;text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-size:clamp(.38rem,.63vw,.55rem);font-weight:800;line-height:1.1;overflow:hidden}.character-card.is-selected .character-card__front{border-color:#e53935;box-shadow:inset 0 0 0 3px #e53935,0 3px #a92120}.minifigure{aspect-ratio:.72;place-items:center;width:clamp(30px,4.2vw,54px);display:grid;position:relative}.minifigure--large{width:90px}.minifigure__head{background:var(--skin);z-index:2;border:1px solid #30210f33;border-radius:38% 38% 43% 43%;width:49%;height:33%;position:absolute;top:18%}.minifigure__head i{aspect-ratio:1;background:#273042;border-radius:50%;width:6%;position:absolute;top:48%}.minifigure__head i:first-child{left:26%}.minifigure__head i:last-child{right:26%}.minifigure__hair{background:var(--hair);z-index:3;border-radius:52% 52% 30% 30%;width:56%;height:27%;position:absolute;top:10%}.minifigure__body{width:76%;height:47%;color:var(--accent);background:var(--torso);border-radius:13% 13% 6% 6%;place-items:center;font-size:clamp(.57rem,1.2vw,.94rem);font-weight:900;display:grid;position:absolute;bottom:5%;box-shadow:inset 0 0 0 2px #ffffff24}.minifigure__detail{display:none}.secret-card .minifigure{width:42px}.sidebar{gap:15px;display:grid}.control-panel,.history-panel{background:#fffdf6f0;padding:18px}.control-panel .panel-heading{margin-bottom:10px}.select-label{color:#576273;margin:9px 0 4px;font-size:.72rem;font-weight:900;display:block}.control-panel select{color:#26354e;background:#fffdf7;border:1px solid #ceb884;border-radius:8px;width:100%;min-height:40px;padding:7px 9px;font-size:.82rem;font-weight:700}.guess-box{border-top:1px dashed #d7c59d;margin-top:17px;padding-top:13px}.guess-box p{color:#5a4623;margin:0;font-weight:900}.guess-row{grid-template-columns:1fr auto;gap:7px;display:grid}.guess-row .button{padding-inline:12px}.opponent-note{color:#fff;background:linear-gradient(135deg,#315da8,#263a77);border-radius:13px;grid-template-columns:1fr auto;align-items:center;gap:2px 9px;padding:13px 15px;display:grid;box-shadow:0 4px #1c2e64}.opponent-note span{color:#bdcdf5;letter-spacing:.09em;text-transform:uppercase;font-size:.67rem;font-weight:900}.opponent-note strong{text-align:right;font-size:.89rem}.opponent-note small{color:#e6edff;grid-column:1/-1;font-size:.69rem}.history-panel{max-height:385px;overflow:auto}.history-panel>.panel-heading{z-index:1;background:#fffdf7;margin:-18px -18px 8px;padding:18px 18px 9px;position:sticky;top:-18px}.history-panel .panel-heading>span{color:#8b744e;padding-top:6px;font-size:.75rem;font-weight:900}.empty-history{color:#818697;margin:18px 0 8px;font-size:.82rem}.history-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.history-item{color:#404c60;background:#f8f2e5;border-radius:8px;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;padding:8px;font-size:.73rem;line-height:1.15;display:grid}.history-item--computer{background:#edf3ff}.history-item__badge{color:#fff;background:#df5550;border-radius:4px;padding:3px 4px;font-size:.57rem;font-weight:900}.history-item--computer .history-item__badge{background:#4775ba}.answer-yes{color:#19814f}.answer-no{color:#c33c3a}.question-availability{color:#8b744e;text-align:right;margin:7px 0 0;font-size:.7rem;font-weight:800}.computer-turn-panel{color:#f7fbff;background:linear-gradient(135deg,#2e5fa8,#263a77);border:3px solid #527ec5;border-radius:18px;padding:18px;position:relative;overflow:hidden;box-shadow:0 5px #1c2e64,0 13px 24px #22407430}.computer-turn-panel:after{content:"?";color:#ffffff14;font:900 9rem/1 "Baloo 2";position:absolute;bottom:-30px;right:-10px}.computer-turn-panel .eyebrow{color:#bcd4ff}.computer-turn-panel h2{z-index:1;color:#fff;margin:4px 0 8px;font-size:1.43rem;line-height:1.02;position:relative}.computer-turn-panel p:not(.eyebrow){z-index:1;color:#e7f0ff;margin:0;font-size:.83rem;font-weight:700;line-height:1.35;position:relative}.computer-turn-panel--thinking{background:linear-gradient(135deg,#375f9f,#2c4078);border-color:#91aedf}.computer-turn-panel--guess{background:linear-gradient(135deg,#354d94,#613b82);border-color:#f2bd34}.computer-turn-panel__skip{z-index:1;color:#e4eeff;margin:11px -5px -7px;position:relative}.computer-answer-actions{z-index:1;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px;display:grid;position:relative}.computer-answer-actions .button--outline{color:#143866;background:#f5f9ff;border-color:#c9ddff;box-shadow:0 3px #b4cae9}.answer-feedback{z-index:1;color:#442c05;background:#fff2cf;border:1px solid #f4ca77;border-radius:9px;margin-top:12px;padding:10px;font-size:.76rem;font-weight:700;line-height:1.3;position:relative}.answer-feedback strong{color:#b6432f;margin-bottom:3px;display:block}.player-answer-review{background:linear-gradient(135deg,#fff2b8,#ffe09a);border:3px solid #d69b25;border-radius:18px;padding:18px;position:relative;overflow:hidden;box-shadow:0 5px #c68a20,0 13px 24px #734c1026}.player-answer-review:after{content:"!";color:#9b59051a;font:900 10rem/1 "Baloo 2";position:absolute;bottom:-34px;right:-6px}.player-answer-review .eyebrow{z-index:1;color:#8c5d07;position:relative}.player-answer-review h2{z-index:1;color:#3e2a07;margin:4px 0 10px;font-size:1.43rem;line-height:1.02;position:relative}.player-answer-review>p:not(.eyebrow){z-index:1;color:#684b16;margin:10px 0 0;font-size:.83rem;font-weight:800;line-height:1.35;position:relative}.player-answer-review__answer{z-index:1;background:#fffff7b3;border:2px solid #553d0c2e;border-radius:11px;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;display:flex;position:relative}.player-answer-review__answer span{color:#76571a;letter-spacing:.06em;text-transform:uppercase;font-size:.72rem;font-weight:900}.player-answer-review__answer strong{font:900 1.35rem "Baloo 2",cursive}.player-answer-review__answer.is-yes strong{color:#19814f}.player-answer-review__answer.is-no strong{color:#c33c3a}.player-answer-review .button{z-index:1;position:relative}.setup-screen{place-items:center;padding:clamp(14px,4vw,46px);display:grid}.setup-card{background:#fffae7f0;border:5px solid #dca73b;border-radius:27px;width:min(1180px,100%);padding:clamp(23px,5vw,54px);position:relative;overflow:hidden;box-shadow:0 10px #c58d20,0 24px 65px #5b39073b}.setup-card h1{letter-spacing:-.055em;max-width:650px;margin:7px 0;font-size:clamp(2.15rem,5vw,4rem)}.setup-card>p:not(.eyebrow){color:#69583a;max-width:620px;margin:0 0 16px;font-size:clamp(.91rem,1.5vw,1.1rem);font-weight:700}.setup-toolbar{justify-content:space-between;align-items:center;gap:12px;display:flex}.setup-toolbar .eyebrow{margin:0}.setup-difficulty{color:#77531c;align-items:center;gap:8px;margin:0 0 22px;font-weight:900;display:inline-flex}.setup-difficulty select{color:#17233b;font:inherit;background:#fffdf4;border:2px solid #cfad68;border-radius:8px;padding:6px 10px}.setup-grid{grid-template-columns:repeat(8,minmax(0,1fr));gap:10px;display:grid}.setup-card .character-card{max-width:120px}.setup-card .character-card__front{border-color:#cfad68}.setup-card .character-card__name{font-size:clamp(.58rem,1.25vw,.79rem)}.setup-card .character-card__franchise{font-size:clamp(.43rem,.92vw,.62rem)}.brick--one,.brick--two{opacity:.16;background:#e53935;border-radius:6px;display:block;position:absolute}.brick--one{width:180px;height:56px;top:-11px;right:8%}.brick--two{background:#2770c9;width:130px;height:46px;bottom:20px;left:-36px}.result-overlay{z-index:10;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#19203591;place-items:center;padding:20px;display:grid;position:fixed;inset:0}.result-card{text-align:center;background:#fff9e8;border-radius:22px;width:min(480px,100%);padding:32px;box-shadow:0 16px #22190945,0 35px 80px #060b1761}.result-card--win{border:5px solid #f2bd34}.result-card--loss{border:5px solid #59739f}.result-icon{color:#fff;background:#e53935;border-radius:18px;place-items:center;width:62px;height:62px;margin:-61px auto 14px;font-size:2rem;display:grid;box-shadow:0 5px #ad2021}.result-icon--geocaching img{object-fit:contain;filter:brightness(0)invert();width:46px;height:46px}.result-card h2{margin:4px 0 10px;font-size:2rem}.result-card>p:not(.eyebrow){color:#5e512f;font-weight:700}.answer-reveal{background:#f2e8cf;border-radius:8px;padding:9px}.result-actions{flex-wrap:wrap;justify-content:center;gap:10px;margin-top:18px;display:flex}.request-error,.form-error{color:#8a1c1c;background:#ffe0d8;border-radius:9px;margin:0 0 12px;padding:10px 12px;font-size:.84rem;font-weight:800}.score-submission{text-align:left;background:#fff4cb;border:2px solid #dfb84f;border-radius:13px;margin-top:16px;padding:14px}.score-submission .eyebrow{margin:0}.score-submission h3{color:#29364d;margin:5px 0 10px;font:900 1.08rem "Baloo 2",cursive}.submission-row{gap:8px;display:flex}.submission-row input{color:#17233b;min-width:0;font:inherit;background:#fffef8;border:2px solid #c99d38;border-radius:8px;flex:1;padding:9px}.submission-complete{color:#23623b;margin:0;font-weight:800}.modal-backdrop{z-index:20;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);background:#19203591;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.leaderboard-modal{background:#fff9e8;border:5px solid #f2bd34;border-radius:22px;width:min(600px,100%);max-height:min(720px,90vh);padding:clamp(19px,4vw,30px);overflow:auto;box-shadow:0 16px #22190945,0 35px 80px #060b1761}.modal-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.modal-heading .eyebrow{margin:0}.modal-heading h2{margin:5px 0 0;font-size:1.8rem}.leaderboard-tabs{grid-template-columns:repeat(3,1fr);gap:7px;margin:18px 0 11px;display:grid}.leaderboard-tabs button{color:#77531c;cursor:pointer;background:#fffef8;border:2px solid #d2ad55;border-radius:8px;padding:9px;font:900 .88rem inherit}.leaderboard-tabs button.is-active{color:#fff;background:#e53935;border-color:#be2d2e;box-shadow:0 3px #a82021}.leaderboard-note{color:#715e38;margin:0 0 13px;font-size:.8rem;font-weight:700}.leaderboard-list{counter-reset:score;gap:7px;margin:0;padding:0;list-style:none;display:grid}.leaderboard-list li{color:#34435d;background:#f4e9cc;border-radius:9px;grid-template-columns:47px minmax(0,1fr) auto;align-items:center;gap:9px;padding:10px;display:grid}.leaderboard-list li strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.leaderboard-list li span:last-child{color:#77531c;white-space:nowrap;font-size:.78rem;font-weight:900}.leaderboard-rank{color:#a62929;font-weight:1000}.empty-state{color:#806835;text-align:center;padding:21px 8px;font-weight:800}@keyframes pulse{50%{transform:scale(1.14)}}@keyframes dot{to{opacity:.4;transform:translateY(-4px)}}@media (width<=1120px){.game-columns{grid-template-columns:minmax(0,1fr) 320px}.character-grid{gap:7px}.game-topbar{grid-template-columns:1fr 1fr}.settings-card{grid-column:1/-1;justify-content:flex-start}.setup-grid{grid-template-columns:repeat(6,minmax(0,1fr))}}@media (width<=800px){.app-header{align-items:flex-start}.game-columns{grid-template-columns:1fr}.sidebar{grid-template-columns:1fr 1fr;align-items:start}.control-panel{grid-row:span 2}.history-panel{max-height:270px}.character-grid,.setup-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.setup-card .character-card{justify-self:center}.minifigure{width:clamp(34px,8vw,48px)}}@media (width<=550px){.app-shell{padding:13px 10px 26px}.app-header{margin-bottom:13px}.brand-brick{width:36px;height:30px;font-size:1.1rem}.brand-brick:before{background-size:13px 8px;height:7px;top:-5px;left:5px;right:5px}.brand-lockup h1{font-size:1.38rem}.brand-lockup p{font-size:.57rem}.header-actions{gap:2px}.header-actions .button{padding:8px 7px;font-size:.72rem}.game-topbar{grid-template-columns:1fr;gap:8px}.secret-card{justify-content:flex-start}.settings-card{grid-column:auto;justify-content:space-between}.turn-card{min-height:56px}.character-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.board-panel{border-width:3px}.panel-heading h2{font-size:1.1rem}.sidebar{grid-template-columns:1fr}.control-panel{grid-row:auto}.history-panel{max-height:255px}.setup-screen{padding:10px}.setup-card{border-width:3px;border-radius:17px;padding:28px 15px 22px}.setup-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}.setup-card h1{font-size:2.3rem}.setup-card>p:not(.eyebrow){font-size:.87rem}.result-card{padding:25px 18px 20px}.result-card h2{font-size:1.75rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
