@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Kalam:wght@700&family=Nunito:wght@500;600;700;800&family=Fredoka:wght@400;500;600;700&display=swap";:root{color:#242321;background:var(--cafe-bg);font-synthesis:none;--ink:#242321;--cafe-bg:#dfb583;--paper:#fff2dc;--frame:#f0d3af;--flavor-accent:#dfb47f;--line:#242321;--green:#397542;--brown:#49352f;font-family:DM Sans,system-ui,sans-serif}body{-webkit-user-select:none;user-select:none}input,textarea,[contenteditable]:not([contenteditable=false]){-webkit-user-select:text;user-select:text}*{box-sizing:border-box}body{background:var(--cafe-bg) url(../assets/boba-sky.png) center bottom/cover fixed no-repeat;background-blend-mode:luminosity;min-height:100vh;margin:0;transition:background-color .7s}button,select{font:inherit;color:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;touch-action:manipulation;transition:background .15s,transform .15s}button:disabled{cursor:default;opacity:1}button:active:not(:disabled){transform:translateY(1px)}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline-offset:4px;outline:3px solid #6834a8}[hidden]{display:none!important}.app{max-width:1040px;margin:auto;padding:0 28px}header{justify-content:center;align-items:center;min-height:0;padding:4px 0 9px;display:flex;position:relative}.brand{color:var(--ink);background:0 0;border:0;flex-direction:column;align-items:center;max-width:100%;padding:0;text-decoration:none;display:flex}.brand:active:not(:disabled){transform:none}.brand img{object-fit:contain;width:450px;height:130px}.brand>.tagline{margin-top:-7px;font-family:Fredoka,ui-rounded,sans-serif;font-size:19px;font-weight:500}.mini{border:4px solid var(--ink);width:88px;height:88px;color:var(--ink);background:#ffdf62;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-family:Fredoka,sans-serif;display:flex;position:absolute;top:32px;right:12px;transform:rotate(6deg)}.mini>span{margin-bottom:3px;font-size:18px;line-height:1}.mini strong{font-size:13px;font-weight:500}.mini b{font-size:19px;font-weight:500}main{grid-template-columns:minmax(0,640px) minmax(240px,280px);align-items:start;gap:26px;display:grid}.play{background:var(--paper);border:3px solid var(--line);box-shadow:0 5px 0 var(--ink);border-radius:27px;padding:18px 19px}.game-top{justify-content:space-between;align-items:center;gap:10px;margin-bottom:16px;display:flex}.eyebrow{letter-spacing:1.5px;color:#605446;font-size:12px;font-weight:700}h1,h2,p{margin:0}h1,h2{font-family:Fredoka,ui-rounded,system-ui,sans-serif;font-weight:600}h1{margin-top:3px;font-size:29px}.stats{align-items:center;gap:11px;font-size:14px;font-weight:600;display:flex}.stats .progress-toggle{color:#283d25;isolation:isolate;width:180px;max-width:70%;position:relative}.progress-track{background:var(--paper);border:2px solid var(--ink);border-radius:18px;display:block;position:relative;overflow:hidden}.progress-fill{transform-origin:0;background:#a9d98a;transition:transform .55s cubic-bezier(.22,.7,.25,1);position:absolute;inset:0;transform:scaleX(0)}.progress-label{text-align:center;font-variant-numeric:tabular-nums;padding:7px 10px;display:block;position:relative}.timer{text-align:right;font-variant-numeric:tabular-nums;color:#635345;min-width:54px;font-size:1.15em;font-weight:600;line-height:1.2}.board-wrap{border-radius:13px;position:relative;overflow:hidden}.board{aspect-ratio:1;border:3px solid var(--ink);touch-action:none;border-radius:13px;display:block;position:relative;overflow:hidden}#game-canvas{touch-action:none;position:absolute;inset:0;overflow:hidden}#game-canvas canvas{touch-action:none;display:block}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.under-board{justify-content:space-between;align-items:center;gap:12px;min-height:40px;margin-top:6px;display:flex}.puzzle-links{white-space:nowrap;align-items:center;gap:9px;margin-left:auto;display:flex}.puzzle-links.utility-links{margin-left:0}.puzzle-links .text-button{color:#6f5846;min-height:44px;font-weight:500}.puzzle-links>span{color:#8c7965;font-size:12px}.puzzle-links .text-button:hover{text-decoration:none}.text-button{color:#335f37;background:0 0;border:0;padding:10px 0;font-size:14px;font-weight:600}.discovery-status{color:#71543f;min-height:20px;margin:0 0 8px;font-size:14px;line-height:1.4}.tools{align-items:stretch;gap:9px;display:flex}.tools button{border:2px solid var(--ink);background:var(--frame);min-height:46px;box-shadow:0 3px 0 var(--ink);border-radius:12px;font-size:14px;font-weight:600}.tools .icon-button,.tools .hint-button{flex:1;justify-content:center;align-items:center;gap:7px;padding:0 8px;display:flex}.control-symbol{font-size:23px;line-height:1}.tools .hint-button{background:var(--flavor-accent);color:#3b284a;border-color:var(--ink)}.tools .next-button{white-space:nowrap;flex:1.6;min-width:0;min-height:50px;padding:10px 12px;font-size:15px}.primary{border-radius:12px;padding:12px 18px;font-weight:700;border:2px solid var(--ink)!important;background:var(--flavor-accent)!important;color:#29231b!important;box-shadow:0 3px 0 var(--ink)!important}.status{text-align:center;color:#6f5846;min-height:40px;margin:13px 0 3px;font-size:14px;line-height:1.5}.status.error{color:#a52246}aside{flex-direction:column;gap:21px;display:flex}.paper-card{border:3px solid var(--line);background:var(--paper);box-shadow:0 4px 0 var(--ink);border-radius:22px;padding:22px}.level-card{background:var(--frame)}.level-card h2{margin:5px 0 17px;font-size:28px}.level-card label{color:#605144;margin-bottom:6px;font-size:14px;display:block}.level-card select{border:2px solid var(--ink);background:var(--flavor-accent);border-radius:12px;width:100%;min-width:0;min-height:46px;padding:10px 11px;font-size:15px}.endless-note{color:#6f5947;margin-top:13px;font-size:14px;line-height:1.6}.rules h2{margin-bottom:19px;font-size:26px}.rule{align-items:flex-start;gap:11px;margin-bottom:15px;display:flex}.rule-num{border:2px solid var(--ink);background:var(--flavor-accent);color:#332b22;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:25px;height:25px;font-size:14px;display:flex}.rule p{font-size:16px;line-height:1.5}.rule strong{font-weight:700}.tip{color:#5e4c3d;border-top:2px solid #dfd3ba;margin-top:19px;padding-top:17px;font-size:14px;line-height:1.65}.tip p{margin-top:6px}details{color:#685442;margin-top:16px;font-size:14px;line-height:1.6}summary{cursor:pointer}details p{margin-top:7px}.completion{text-align:center;margin:14px 0 0;padding:8px 2px 0}.completion h2{margin:0 0 3px;font-size:clamp(23px,3vw,29px);font-weight:600;line-height:1.45;animation:.48s cubic-bezier(.16,1.3,.4,1) both finish-arrive}.completion p{color:#6f5846;font-size:13px;line-height:1.4}.finish-word{white-space:nowrap;color:#ffdc58;-webkit-text-stroke:1.2px #49352f;paint-order:stroke fill;text-shadow:0 2px #49352f;display:inline-block}.finish-word:nth-of-type(2n){color:#f387b0}.finish-letter{animation:1.35s ease-in-out infinite finish-bob;animation-delay:var(--delay);transform-origin:50% 85%;display:inline-block}@keyframes finish-arrive{0%{opacity:0;transform:translateY(7px)scale(.88)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes finish-bob{0%,55%,to{transform:translateY(0)rotate(0)}18%{transform:translateY(-5px)rotate(-4deg)}34%{transform:translateY(1px)rotate(3deg)}}footer{color:#625d60;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:25px 5px;font-size:13px;display:flex}dialog{border:3px solid var(--ink);width:calc(100% - 32px);max-width:420px;color:var(--ink);background:var(--paper);box-shadow:0 5px 0 var(--ink);border-radius:20px;padding:26px}dialog::backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);background:#142d435c}dialog h2{font-size:27px}dialog p{margin:16px 0 23px;font-size:16px;line-height:1.6}.dialog-actions{justify-content:flex-end;gap:11px;display:flex}.dialog-actions button{border:2px solid var(--ink);background:#fff6df;border-radius:12px;padding:12px;font-size:14px;font-weight:600}.collection-dialog{max-width:780px;max-height:85vh;padding:23px;overflow:auto}.collection-heading{justify-content:space-between;align-items:start;gap:14px;display:flex}.collection-heading h2{font-size:28px}.collection-heading p{color:#6a5845;margin:5px 0 0;font-size:14px}.collection-heading button{border:2px solid var(--ink);background:#ffdf69;border-radius:10px;min-height:44px;padding:10px 14px}.collection-tip{font-size:14px;line-height:1.5;margin:15px 0!important}.collection-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;display:grid}.collection-boba{border:2px solid var(--ink);background:#ffedc9;border-radius:14px;flex-direction:column;align-items:center;min-width:0;padding:10px 5px;display:flex}.collection-boba canvas,.mystery-boba{aspect-ratio:1;width:100%;max-width:108px;height:auto}.collection-boba strong{text-align:center;font-size:14px;font-weight:600}.rarity{color:#695342;margin-top:5px;font-size:12px}.collection-boba.rare.found{border-color:var(--ink);background:#ddc5f0}.collection-boba.uncommon.found{background:#d4eab4}.mystery-boba{color:#a99473;place-items:center;font:46px Fredoka,sans-serif;display:grid}.collection-boba.unknown strong{color:#79664c;font-size:12px}@media (width<=850px){.app{padding:0 20px}main{grid-template-columns:minmax(0,1fr) 245px;gap:20px}.paper-card{padding:18px}.play{padding:16px 15px 4px}.brand img{width:380px}.mini{width:77px;height:77px;right:8px}.mini strong{font-size:12px}.mini b{font-size:17px}}@media (width<=700px){.app{max-width:590px;padding:0 12px}body{background-position:top;background-size:auto 100vh}header{min-height:0;padding:4px 0 9px}.brand{width:100%}.brand img{width:300px;max-width:100%;height:91px}.brand>.tagline{margin-top:0;font-size:16px}.mini{border-width:3px;width:65px;height:65px;top:33px;right:4px}.mini strong{font-size:10px}.mini b{font-size:15px}.mini>span{font-size:14px}main{flex-direction:column;gap:21px;display:flex}.play,aside{width:100%}.play{border-radius:19px;padding:16px 12px}.game-top{margin-bottom:14px}h1{font-size:26px}.eyebrow{font-size:11px}.stats{gap:8px;font-size:12px}.stats .progress-toggle{width:160px}.progress-label{padding:6px 8px}.tools{gap:7px}.tools .icon-button,.tools .hint-button{gap:5px;padding:0 6px;font-size:14px}.tools .next-button{padding:10px 8px;font-size:14px}.paper-card{padding:23px}.status{font-size:13px}.collection-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.collection-dialog{padding:16px}.collection-heading h2{font-size:24px}.under-board{flex-wrap:wrap;gap:6px}footer{font-size:12px}}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}.logo-art{width:280px;max-width:100%;height:77px;display:block;position:relative}.logo-art>img{object-fit:contain;width:100%;height:100%;display:block}.logo-art canvas{pointer-events:none;will-change:transform;backface-visibility:hidden;animation:4.8s ease-in-out infinite logo-bob;animation-delay:var(--delay);position:absolute}@keyframes logo-bob{0%,to{transform:translateY(1.6px)}50%{transform:translateY(-1.6px)}}@media (width<=700px){.logo-art{width:240px;max-width:100%;height:64px;margin-inline:auto}}@media (prefers-reduced-motion:reduce){.logo-art canvas{animation:none!important}}#game-canvas canvas{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.play,.paper-card{transition:background-color .7s}.timer-toggle{min-width:72px;min-height:44px;font:inherit;background:0 0;border:0;flex-shrink:0;justify-content:flex-end;align-items:center;padding:0;display:flex}.progress-hidden .progress-toggle>*,.guide-hidden .gesture-guide>*,.timer-hidden .timer{visibility:hidden}.rules>.rule:last-child{margin-bottom:0}.game-top{container-type:inline-size}.gesture-guide{color:#6f5846;white-space:nowrap;flex:1 0 auto;justify-content:center;align-items:center;gap:8px;font-size:13px;font-weight:400;line-height:18px;display:flex}.gesture-item{justify-content:center;align-items:center;gap:4px;display:inline-flex}.gesture-x{color:#8c7965;font-size:26px;font-weight:500;line-height:1}#gesture-boba{flex-shrink:0;width:30px;height:30px;display:block}.gesture-dot{color:#8c7965}@container (width<=450px){.stats .progress-toggle{flex:0 100px;width:100px;min-width:84px}.progress-label{padding:6px 5px}.gesture-guide{flex-direction:row;flex:1 0 auto;gap:5px;font-size:12px;line-height:18px}.gesture-item{gap:3px}.gesture-dot{display:inline}.gesture-x{font-size:28px}#gesture-boba{width:27px;height:27px}.timer-toggle{min-width:46px}.timer{min-width:0}}@container (width<=300px){.stats .progress-toggle{flex-basis:84px}.gesture-guide{gap:3px;font-size:11px}.gesture-item{gap:2px}.gesture-x{font-size:26px}#gesture-boba{width:24px;height:24px}.timer-toggle{min-width:42px}}.game-top{grid-template-columns:auto minmax(0,1fr) auto;gap:6px;width:100%;min-width:0;display:grid}.game-top .progress-toggle{justify-self:start;width:clamp(84px,26cqw,150px);min-width:0;max-width:100%}.game-top .gesture-guide{flex-wrap:wrap;gap:0 5px;min-width:0}.game-top .timer-toggle{justify-self:end;min-width:0}.game-top .progress-label{white-space:nowrap}.logo-art.logo-ready{visibility:visible;animation:.85s cubic-bezier(.22,.8,.3,1) both logo-reveal}.logo-art>img{visibility:hidden}@keyframes logo-reveal{0%{opacity:0;transform:translateY(6px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}:root{--ink:#34292d;--line:#34292d;font-family:Nunito,DM Sans,system-ui,sans-serif}body{background-image:var(--cafe-pattern,none);background-color:var(--cafe-bg);background-blend-mode:normal;background-size:var(--cafe-pattern-size,96px 96px);background-position:0 0;background-repeat:repeat;background-attachment:fixed}.play,.paper-card{background:var(--paper);box-shadow:0 5px 0 var(--ink),0 12px 22px #44253218,inset 0 1px 0 #ffffffb3}.tools button,.level-card select{box-shadow:0 3px 0 var(--ink),0 6px 9px #44253214,inset 0 1px 0 #ffffff85;background-image:none}.tools .hint-button,.start-menu #start{color:inherit}.primary{color:inherit!important}.tools .hint-button{background:color-mix(in srgb,var(--flavor-accent) 84%,var(--ink))}.tools #tutorial,.start-menu #start{background:color-mix(in srgb,var(--flavor-accent) 99.5%,white)}.start-tools #start-tutorial{background:color-mix(in srgb,var(--flavor-accent) 91%,var(--ink))}:root:not(.dark-mode) .tools .hint-button{background:color-mix(in srgb,var(--flavor-accent) 92%,var(--ink))}:root:not(.dark-mode) .tools #tutorial{background:color-mix(in srgb,var(--flavor-accent) 50%,white)}:root:not(.dark-mode) .start-menu #start{background:color-mix(in srgb,var(--flavor-accent) 48%,white)}:root:not(.dark-mode) .start-tools #start-tutorial{background:color-mix(in srgb,var(--flavor-accent) 66%,white)}.tools .next-button{white-space:normal;flex:1;background:var(--flavor-accent)!important}.tools button:hover:not(:disabled),.start-menu #start:hover:not(:disabled){filter:brightness(1.035)}.tools button:active:not(:disabled){box-shadow:0 1px 0 var(--ink);transform:translateY(2px)}.level-card h2{font-family:Kalam,Fredoka,ui-rounded,sans-serif;font-size:27px;line-height:1.2}.level-card select{background-color:var(--frame);font-weight:700}.puzzle-links .text-button{color:#72545d;font-weight:600}.stats{font-weight:800}.timer{color:#513b43;font-weight:800}.progress-track{border-color:var(--ink);background:color-mix(in srgb,var(--paper) 80%,white);border-radius:20px;box-shadow:inset 0 2px 3px #58373f12,0 1px #ffffffb3}.progress-fill{background:linear-gradient(#c1e9a3 0%,#a8d783 55%,#99ca72 100%);border-radius:18px;transition:transform .55s cubic-bezier(.22,.75,.22,1);box-shadow:inset 0 2px #ffffff5c,inset -1px 0 #648c4640}.progress-label{color:#33402b;text-shadow:0 1px #ffffff50;letter-spacing:.01em}@media (width<=700px){.level-card{padding:16px 18px}.level-card h2{margin:0 0 10px;font-size:22px}.level-card select{width:100%;min-width:0;font-size:15px}.rules h2{font-size:25px}}.tools button:disabled{color:inherit;background:var(--paper);opacity:1;border-color:#88797e;box-shadow:0 2px #88797e}.footer-links{justify-content:center;align-items:center;gap:4px;display:flex}.footer-links>span{opacity:.65}.footer-links .text-button{color:var(--ink);padding:10px 12px;font-weight:600}.footer-links .text-button:hover{text-decoration:none}.tutorial-dialog{background:var(--paper);border-radius:24px;width:min(450px,100vw - 24px);max-width:none;max-height:calc(100dvh - 24px);padding:16px 20px 20px;overflow:auto}.tutorial-dialog::backdrop,.app .board:after{background:#242321c9}.tutorial-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.tutorial-top{color:#72545d;justify-content:space-between;align-items:center;gap:12px;min-height:38px;font-size:14px;font-weight:700;display:flex}.tutorial-top .text-button{color:var(--ink);min-height:38px;padding:7px 0;font-size:14px}.tutorial-copy{text-align:center;justify-content:center;align-items:center;min-height:83px;padding:6px 0 16px;display:flex}.tutorial-copy h2{margin:0;font-family:Nunito,system-ui,sans-serif;font-size:21px;font-weight:600;line-height:1.4}.tutorial-copy strong{font-weight:900}.tutorial-board{aspect-ratio:1;background:var(--ink);border:3px solid var(--ink);touch-action:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;border-radius:14px;grid-template-columns:repeat(4,minmax(0,1fr));gap:2px;width:min(100%,max(200px,100dvh - 300px));margin:0 auto;display:grid;overflow:hidden}.tutorial-cell{aspect-ratio:1;background:var(--tile-color);min-width:0;color:var(--tile-number,#36342e);touch-action:none;isolation:isolate;border:0;border-radius:8px;padding:0;transition:filter .18s;position:relative;overflow:hidden}.tutorial-cell:active:not(:disabled){transform:none}.tutorial-cell:focus-visible{outline:3px solid var(--ink);outline-offset:-5px}.tutorial-cell.dimmed{filter:brightness(.38)saturate(.65)}.tutorial-mark{opacity:var(--tile-number-opacity,.78);pointer-events:none;place-items:center;font-family:Nunito,sans-serif;font-size:clamp(20px,6vw,29px);font-weight:600;display:grid;position:absolute;inset:0}.tutorial-cell.marked .tutorial-mark{color:var(--tile-mark);opacity:1;font-size:clamp(29px,8vw,40px)}.tutorial-boba{pointer-events:none;width:115.2%;height:115.2%;display:none;position:absolute;top:50%;left:50%;transform:translate(-50%,-48%)}.tutorial-cell.placed .tutorial-mark{display:none}.tutorial-cell.placed .tutorial-boba{animation:.38s cubic-bezier(.2,1.35,.4,1) both tutorial-appear;display:block}.tutorial-hold{aspect-ratio:1;background:conic-gradient(#36342ec7 var(--fill),transparent 0);pointer-events:none;z-index:3;border-radius:50%;width:30%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tutorial-cell.tap-cue:after{content:"";border:2px solid var(--tile-mark);pointer-events:none;opacity:0;border-radius:50%;animation:2.4s ease-out infinite tutorial-tap;position:absolute;inset:23%}.tutorial-bottom{text-align:center;min-height:101px;padding-top:15px}.tutorial-bottom p{color:#675056;max-width:350px;margin:0 auto 12px;font-size:16px;line-height:1.45}.tutorial-bottom .primary{min-width:150px;min-height:46px;margin-top:1px;font-size:16px}.tutorial-done .placed .tutorial-boba{animation:1.05s ease-in-out infinite tutorial-dance;animation-delay:var(--dance-delay)}@keyframes tutorial-tap{0%,43%,to{opacity:0;transform:scale(.72)}8%,29%{opacity:.7;transform:scale(.85)}20%,41%{opacity:0;transform:scale(1.28)}}@keyframes tutorial-appear{0%{opacity:0;transform:translate(-50%,-40%)scale(.7)}to{opacity:1;transform:translate(-50%,-48%)scale(1)}}@keyframes tutorial-dance{0%,to{transform:translate(-50%,-48%)rotate(-8deg)}50%{transform:translate(-50%,-54%)rotate(8deg)scale(1.05)}}@media (width<=380px){.tutorial-dialog{padding:12px 14px 16px}.tutorial-copy h2{font-size:19px}.tutorial-copy{min-height:78px}.tutorial-bottom p{font-size:15px}}@media (orientation:landscape) and (height<=560px){.tutorial-dialog[open]{grid-template-columns:minmax(0,1fr) minmax(170px,1fr);column-gap:20px;width:min(740px,100vw - 24px);padding:12px 18px;display:grid}.tutorial-top,.tutorial-copy,.tutorial-bottom{grid-column:1}.tutorial-board{grid-area:1/2/4;align-self:center;width:min(100%,100dvh - 56px)}.tutorial-copy{min-height:0;padding:4px 0}.tutorial-copy h2{font-size:19px}.tutorial-bottom{min-height:0;padding-top:8px}.tutorial-bottom p{margin-bottom:8px;font-size:14px}}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root.dark-mode{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;color:#f0e7df;--ink:#18141e;--line:#72616d;--cafe-bg:#211c1c;--paper:#312a29;--frame:#443731;--flavor-accent:#806249;--muted:#cbbbc5}.dark-mode .play,.dark-mode .paper-card{box-shadow:0 5px 0 var(--ink),0 12px 22px #00000024,inset 0 1px 0 #ffffff08}.dark-mode .tools button,.dark-mode .level-card select{box-shadow:0 3px 0 var(--ink),inset 0 1px 0 #ffffff10;color:#f0e7df}.dark-mode .tools .hint-button,.dark-mode .start-menu #start,.dark-mode .rule-num{color:#f0e7df}.dark-mode .primary{color:#f0e7df!important}.dark-mode .tools button:disabled{color:inherit;background:var(--paper);border-color:#776875;box-shadow:0 2px #51464f}.dark-mode .timer{color:#f0e7df}.dark-mode .gesture-guide,.dark-mode .gesture-x,.dark-mode .gesture-dot,.dark-mode .puzzle-links .text-button,.dark-mode .puzzle-links>span,.dark-mode .completion p,.dark-mode .tutorial-top,.dark-mode .tutorial-bottom p,.dark-mode footer{color:var(--muted)}.dark-mode .footer-links .text-button,.dark-mode .tutorial-top .text-button,.dark-mode dialog{color:#f0e7df}.dark-mode .dialog-actions button{background:var(--frame);color:#f0e7df}.dark-mode dialog::backdrop,.dark-mode .app .board:after{background:#100d16bf}.dark-mode .progress-track{background:#22251f;border-color:#788369;box-shadow:inset 0 2px 3px #00000024}.dark-mode .progress-fill{background:linear-gradient(#466a40,#3b5a37);box-shadow:inset 0 1px #ffffff12,inset -1px 0 #9cb88830}.dark-mode .progress-label{color:#f0e7df;text-shadow:none}.dark-mode button:focus-visible,.dark-mode a:focus-visible,.dark-mode select:focus-visible{outline-color:#cbb2ee}.footer-links{flex-wrap:wrap;gap:0 6px}.footer-links .text-button{white-space:nowrap;min-height:44px;padding:10px 4px;font-size:14px}.game-top .progress-toggle,.game-top .gesture-guide{background:0 0;border:0;min-height:44px;padding:0}.game-top .progress-toggle{font:inherit;text-align:inherit}.progress-toggle #progress{width:100%;display:block}.game-top button:active:not(:disabled){transform:none}.undo-icon{flex-shrink:0;display:block}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible,.dark-mode button:focus-visible,.dark-mode a:focus-visible,.dark-mode select:focus-visible{outline:none}@media (hover:hover) and (pointer:fine){button:focus-visible,a:focus-visible,summary:focus-visible{text-decoration:none}}.rules h2{font-family:Kalam,Fredoka,ui-rounded,sans-serif}footer .footer-links .text-button,.dark-mode footer .footer-links .text-button{color:inherit}.question-ui-layer{z-index:100;pointer-events:none;position:fixed;inset:0}@property --bobadoku-options-glow-top{syntax:"<color>";inherits:true;initial-value:#754ff012}@property --bobadoku-options-glow-bottom{syntax:"<color>";inherits:true;initial-value:#baa5ff18}.question-ui-layer bbzl-game-ui{transition:--bobadoku-options-glow-top var(--bbzl-options-theme-duration,.4s) ease-in-out,--bobadoku-options-glow-bottom var(--bbzl-options-theme-duration,.4s) ease-in-out}.dark-mode .question-ui-layer bbzl-game-ui{--bobadoku-options-glow-top:#754ff026;--bobadoku-options-glow-bottom:#baa5ff12;--bobadoku-options-backdrop-color:#211c2b}.question-ui-layer bbzl-game-ui{--bbzl-options-list-width:calc(min(86%,760px) + 32px);--bbzl-options-columns-width:calc(min(82%,1200px) + 32px)}.question-ui-layer bbzl-game-ui::part(options-list){padding-inline-start:32px;position:relative;inset-inline-start:-16px}.question-ui-layer bbzl-game-ui::part(option):before{content:"";z-index:-1;border-radius:inherit;background:inherit;position:absolute;inset:0;inset-inline-start:-32px}.question-ui-layer bbzl-game-ui::part(option):focus-visible{outline-style:none}.question-ui-layer bbzl-game-ui::part(option):focus-visible:before{outline:3px solid;outline-color:inherit;outline-offset:-3px}.flavor-select{min-width:0;display:grid;position:relative}.app .level-card .flavor-select select:not([multiple]){appearance:none;padding-inline-end:36px}.flavor-select>svg{pointer-events:none;width:18px;height:18px;position:absolute;top:50%;right:12px;transform:translateY(-50%)}body:has(.app:not([data-phase=playing])) .question-ui-layer:not([data-open=true]){display:none}.question-deck{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;gap:8px;min-width:0;min-height:0;padding:12px 8px;display:flex;container-type:size}.question-deck-slot{aspect-ratio:148/187;flex-shrink:0;width:min(clamp(88px,10vw,128px),100cqw,79.1444cqh)}html,body{height:100%;overflow:hidden}body{height:100dvh;min-height:0}.app{--space:clamp(6px,1.4vmin,20px);--control-size:clamp(28px,4dvh,44px);--sidebar-width:clamp(200px,27vw,320px);width:100%;max-width:none;height:100%;padding:max(var(--space),env(safe-area-inset-top)) max(var(--space),env(safe-area-inset-right)) max(calc(var(--space) + clamp(14px,2.3dvh,24px)),env(safe-area-inset-bottom)) max(var(--space),env(safe-area-inset-left));gap:var(--space);grid-template-rows:auto minmax(0,1fr);margin:0;display:grid}.app>header{justify-content:center;padding:0}.app .brand{flex-shrink:1;width:auto;min-width:0}.app .logo-art{width:calc(3.64*clamp(24px,7dvh,77px));height:clamp(24px,7dvh,77px)}.app>main{justify-content:center;gap:var(--space);align-items:stretch;min-height:0;display:flex;position:relative;container-type:size}.app .mobile-top{min-width:0;display:none}.app .play{width:100%;min-width:0;max-width:100cqh;min-height:0;padding:var(--space);padding-bottom:calc(var(--space) + clamp(4px,.8vmin,10px));border-radius:clamp(12px,2vmin,24px);flex:0 100cqh;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);gap:clamp(12px,2.2vmin,22px);display:grid}.app .board-wrap{border-radius:0;grid-area:2/1;place-items:center;min-width:0;min-height:0;display:grid;container-type:size}.app .board{--board-size:min(100cqw,100cqh);--board-border:calc(var(--board-size) * var(--board-frame-ratio,.0075));--board-corner:calc((var(--board-size) - 2 * var(--board-border)) * var(--cell-rounding,.015) + var(--board-border));width:var(--board-size);height:var(--board-size);background:var(--ink);border-radius:var(--board-corner);border:0}.app #game-canvas{inset:var(--board-border);border-radius:calc(var(--board-corner) - var(--board-border))}.app .board:focus{outline:none}.app .game-top{grid-area:1/1;gap:4px;margin:0;font-size:clamp(12px,1.8vmin,16px)}.app .game-top button{min-height:var(--control-size)}.app .game-top .progress-toggle{width:clamp(72px,26cqw,132px)}.app .progress-label{padding:5px}.app .puzzle-links{gap:clamp(4px,.8vmin,9px);margin:0}.app .puzzle-links .text-button{min-height:var(--control-size);padding:4px 0;font-size:clamp(12px,1.8vmin,16px)}.app .tools{grid-area:3/1;gap:6px}.app .play>.tools{margin-inline:clamp(2px,.4vmin,6px)}.app .tools button{min-height:var(--control-size);padding:5px 8px;font-size:clamp(12px,1.8vmin,16px)}.app .play>.tools:not(.start-tools) button{min-height:max(var(--control-size),40px);gap:clamp(4px,.8vmin,8px);padding:6px clamp(4px,.9vmin,10px);font-size:clamp(14px,2.3vmin,20px);line-height:1.2}.app .play>.tools:not(.start-tools) svg{width:clamp(24px,1.45em,30px);height:clamp(24px,1.45em,30px)}.app .menu-actions{grid-area:auto/1/auto/-1}.app .menu-actions,.app .start-tools{gap:10px}.app .menu-actions button{background:var(--paper);font-size:clamp(15px,2.1vmin,19px);font-weight:700}.icon-button svg{flex-shrink:0}#tutorial svg,#start-tutorial svg{transform:translateY(-1px)}.app .completion{grid-area:4/1;margin:0;padding:0}.app .completion h2{font-size:clamp(18px,2.8vmin,28px);line-height:1.2}.app .completion p{font-size:clamp(11px,1.6vmin,14px)}.app aside{flex:0 0 var(--sidebar-width);gap:calc(var(--space) + 6px);min-width:0;min-height:0}.app .paper-card{border-radius:clamp(14px,2.5vmin,22px);min-width:0;min-height:0;padding:clamp(8px,1.8vmin,22px);overflow:auto}.app .paper-card h2{margin:0 0 clamp(6px,1.4vmin,14px);font-size:clamp(18px,2.8vmin,28px);line-height:1.2}.app .level-card select{min-height:var(--control-size);padding:5px 8px;font-size:clamp(12px,1.8vmin,16px)}.app .rule{gap:8px;margin-bottom:clamp(4px,1vmin,12px)}.app .rules>.rule:last-child{margin-bottom:0}.app .rule p{font-size:clamp(12px,1.8vmin,16px);line-height:1.4}.app .rule-num{width:clamp(18px,2.8vmin,25px);height:clamp(18px,2.8vmin,25px);font-size:clamp(11px,1.6vmin,14px)}.app>footer{gap:0;min-width:0;padding:0;font-size:12px}.app .footer-links{gap:2px;min-width:0}.app .footer-links .text-button{min-height:32px;padding:4px 5px;font-size:clamp(11px,1.6vmin,14px)}@container (width<=240px){.app .gesture-guide{display:none}}@media (height<=480px),(width<=700px) and (aspect-ratio<=1){.app{--space:6px;--control-size:28px}.app .paper-card{padding:6px}.app .paper-card h2{margin-bottom:4px;font-size:16px}.app .rule{gap:5px;margin-bottom:2px}.app .rule p{font-size:11px;line-height:16px}.app .rule-num{width:16px;height:16px;font-size:10px}.app .question-deck{gap:4px;padding:4px}.app .footer-links .text-button{min-height:26px;font-size:11px}}@media (width<=700px) and (aspect-ratio<=1){.app{--mobile-gap:clamp(10px,1.8dvh,18px);row-gap:var(--mobile-gap)}.app>main{align-content:space-between;row-gap:var(--mobile-gap);grid-template-rows:auto minmax(0,max-content) auto;grid-template-columns:minmax(0,1fr);display:grid}.app .mobile-top{gap:var(--mobile-gap);flex-direction:column;display:flex}.app .mobile-top .level-card select{height:32px;min-height:32px}.app .board-wrap{aspect-ratio:1;width:100%;max-height:100%}.app aside{align-items:stretch;gap:var(--space);grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.app .level-card{grid-column:1/-1;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);align-items:center;gap:8px;display:grid}.app .level-card h2{margin:0}}.app[data-ready=false] .play{opacity:0;visibility:hidden}.app[data-phase=start] .mobile-top,.app[data-phase=start] aside,.app[data-phase=start] .play>:not(.board-wrap):not(.start-tools){visibility:hidden}.app .start-tools{visibility:hidden;transform:translateY(calc(var(--tutorial-offset,0px) + 6px));grid-area:3/1;justify-content:center;align-items:center}.app[data-phase=start] .start-tools{visibility:inherit}.app .start-tools button{flex:0 273px;min-height:clamp(49.4px,6.11dvh,59.8px);padding:7.8px clamp(10px,3vmin,26px);font-size:clamp(18.2px,2.6vmin,23.4px)}.app:not([data-phase=playing]) .board-wrap{overflow:visible}.app[data-phase=start] .play{transform:translateX(calc((var(--sidebar-width) + var(--space))/2))}@media (width<=700px) and (aspect-ratio<=1){.app[data-phase=start] .play{transform:translate(calc((100cqw - 100%)/2),calc((100cqh - 100%)/2 - var(--start-top,0px)))}}.app .board:before,.app .board:after{content:"";inset:var(--board-border);border-radius:calc(var(--board-corner) - var(--board-border));z-index:1;pointer-events:none;opacity:0;transition:opacity .2s;position:absolute}.app .board:before{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.app[data-phase=start] .board:before{opacity:1}.app[data-phase=start] .board:after{opacity:.65025}.app[data-phase=playing] .board:before,.app[data-phase=playing] .board:after{content:none}@media (prefers-reduced-motion:reduce){.app .board:before,.app .board:after{transition:none}}.start-menu{z-index:2;place-items:center;display:grid;position:absolute;inset:0;container-type:size}.start-actions{flex-direction:column;gap:clamp(4px,3cqh,24px);width:min(88cqw,390px);display:flex}.start-actions>button{border:2px solid var(--ink);width:100%;min-height:clamp(28px,18cqh,58px);box-shadow:0 3px 0 var(--ink);border-radius:12px;padding:clamp(3px,3cqh,14px) 18px;font-size:clamp(15px,7cqh,26px);font-weight:700}.start-actions #start{justify-content:center;align-items:center;gap:9px;font-size:clamp(18px,9cqh,32px);display:flex}.start-actions>button:disabled{opacity:.55}.app .start-menu .level-card{text-align:center;background:var(--paper);border-radius:16px;padding:clamp(4px,3cqh,18px);display:block}.app .start-menu .level-card h2{margin:0 0 clamp(4px,3cqh,14px);font-size:clamp(15px,7cqh,30px)}.app .start-menu .level-card select{min-height:clamp(28px,18cqh,54px);padding:clamp(3px,2cqh,8px) 10px;font-size:clamp(13px,5cqh,19px)}
