@charset "UTF-8";
:root{--ink:#292343;--purple:#7853c5;--light:#ede7ff;--lav:#d5c5f4;--pink:#ffb8d7;--mint:#b9f7e1;--muted:#7a708f;--stroke:#3e345e}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:Trebuchet MS,Arial,sans-serif;background:#d9ccf1;background-image:linear-gradient(#9986c31f 1px,transparent 1px),linear-gradient(90deg,#9986c31f 1px,transparent 1px);background-size:28px 28px}button,a,input{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;touch-action:manipulation;color:inherit}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid #8851e8;outline-offset:4px}button:hover:not(:disabled){filter:brightness(1.07)}button:active:not(:disabled){transform:translateY(2px)}[hidden]{display:none!important}a{color:inherit}.topbar{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;height:85px;padding:0 4%;background:#ece6f7b8;border-bottom:2px solid #9984bd}.brand{display:flex;align-items:center;gap:12px;font:bold 25px Arial;text-decoration:none;letter-spacing:-1.5px}.brand small{font:8px/1.5 monospace;letter-spacing:1px;max-width:64px;border-left:1px solid #ad9fc4;padding-left:12px;margin-left:4px}.brand-icon{width:38px;height:36px;background:var(--ink);color:#dfd0ff;display:grid;place-items:center;font:bold italic 29px Arial;position:relative}.brand-icon span{position:absolute;right:-7px;top:-9px;font-size:20px;color:var(--purple)}.header-center{font:9px monospace;letter-spacing:1.5px;display:flex;gap:10px;align-items:center}.online-dot{width:7px;height:7px;background:#7e55c4;box-shadow:3px 3px #c6b3e0}.header-actions{display:flex;gap:10px}.header-actions button{background:#f5f0ff;border:1.5px solid #66527f;box-shadow:2px 2px #b8a7d0;padding:8px 11px;font:14px monospace}.header-actions button span{font-size:10px;margin-left:5px}.ambient-pixels{position:absolute;inset:85px 0 0;overflow:hidden;pointer-events:none;height:calc(100% - 85px);z-index:0}.ambient-pixels i{position:absolute;width:75px;height:75px;background:#ab92d340;left:-21px;top:90px;box-shadow:75px 75px #ab92d322,0 150px #ab92d325}.ambient-pixels i:nth-child(2){left:auto;right:-25px;top:260px;background:#9373c440;box-shadow:-75px -75px #9373c424}.ambient-pixels i:nth-child(3){left:20%;top:530px;width:15px;height:15px;background:#ab92d3;box-shadow:15px 0 #eee6ff,15px 15px #ab92d3}.desktop{position:relative;max-width:1280px;margin:34px auto 32px;padding:0 34px;display:grid;grid-template-columns:minmax(220px,1fr) minmax(330px,448px) minmax(210px,252px);gap:36px;align-items:start}.left-column{padding-top:18px}.edition{font:9px monospace;letter-spacing:1px;display:flex;align-items:center;gap:9px}.edition b{font-weight:normal;font-size:8px;opacity:.55;margin-left:auto}.edition>span{font-size:20px;color:var(--purple)}h1{font-family:Arial Black,Arial,sans-serif;font-weight:1000;position:relative;margin:26px 0 10px;font-size:clamp(78px,7.5vw,105px);line-height:.91;letter-spacing:-8px;transform:rotate(-4deg);text-shadow:3px 3px #f6efff,5px 5px var(--ink);-webkit-text-stroke:1px var(--ink)}h1>span:first-child{color:#fff7ff}.pop-word{color:#9d79dc}.bang{color:#fff7ff;display:inline-block;transform:rotate(12deg);margin-left:4px}.title-spark{font:65px Arial;position:absolute;top:9px;right:-3px;color:#704aaf;text-shadow:none;-webkit-text-stroke:0}.sticker{display:flex;align-items:center;justify-content:space-between;width:max-content;max-width:100%;background:var(--mint);border:2px solid var(--ink);box-shadow:3px 3px var(--ink);padding:9px 10px;font:bold 8px monospace;letter-spacing:.4px;transform:rotate(-3deg);margin:25px 0 24px}.sticker span{margin-left:10px;font-size:14px}.intro-copy{font-size:17px;line-height:1.6;margin:23px 0 25px;color:#625079}.intro-copy strong{color:#403054}.pixel-window{border:2px solid var(--stroke);background:#eee8f8;box-shadow:5px 5px 0 #85729f;position:relative}.window-title{height:30px;display:flex;align-items:center;justify-content:space-between;background:#cbb9e7;border-bottom:2px solid var(--stroke);padding:0 10px;font:10px monospace;letter-spacing:.2px}.buddy-window{max-width:268px;transform:rotate(2deg);margin-top:29px}.buddy-content{padding:20px 13px;display:flex;align-items:center;gap:14px;background-image:radial-gradient(#bea9df 1px,transparent 1px);background-size:8px 8px}.buddy{flex-shrink:0;width:68px;height:61px;border:2px solid #635084;border-radius:22px 21px 18px 20px;background:linear-gradient(145deg,#f8eaff,#b89ae8);box-shadow:inset 4px 5px #ffffff73,inset -4px -6px #8f6fc844,3px 5px #baa2d255;position:relative;transform:rotate(-10deg)}.buddy i{position:absolute;width:5px;height:8px;border-radius:3px;background:var(--ink);top:25px;left:19px}.buddy i:nth-child(2){left:41px}.buddy b{position:absolute;left:25px;top:25px;font:17px Arial}.speech{font:10px/1.8 monospace;color:#524362}.speech>span{color:#9e60b2;font-size:18px}.buddy-bottom{display:flex;justify-content:space-between;border-top:1px dashed #a58bbd;padding:8px 10px;font:8px monospace}.buddy-bottom span{color:#a078c9;letter-spacing:2px}.tip-note{display:flex;gap:10px;align-items:center;margin-top:25px}.tip-note>span{color:var(--purple);font-size:28px}.tip-note p{font:10px/1.8 monospace;color:#78658d}.pixel-sigil{display:flex;align-items:center;gap:20px;margin-top:45px}.pixel-sigil>span{font:bold 55px monospace;color:#f4ebff;text-shadow:2px 2px #aa88d1}.pixel-sigil>div{width:42px;height:42px;background:conic-gradient(#9872ce 25%,transparent 0 50%,#9872ce 0 75%,transparent 0);background-size:21px 21px;transform:rotate(-7deg)}.pixel-sigil b{font:8px/1.7 monospace;letter-spacing:1px;color:#7b608e}.machine{background:#c8b8e1;box-shadow:7px 7px var(--stroke);padding:0 9px 8px}.machine-title{margin:0 -9px;background:#e8dff8;height:34px;font-size:11px}.machine-title>span{display:flex;gap:8px;align-items:center}.tiny-jelly{display:inline-block;width:12px;height:12px;background:#a480dc;box-shadow:2px 2px #5b4084;border-radius:3px}.machine-title>div{display:flex;gap:5px}.machine-title button{width:23px;height:22px;background:#dfd1ee;border:1px solid #7d649a;font:bold 13px monospace;padding:0}.game-tabs{display:flex;gap:4px;align-items:center;margin:11px 0 0}.game-tabs button{font:bold 9px monospace;background:#b6a2d0;border:1px solid #7b6499;padding:9px 10px}.game-tabs button.selected{background:#eee6fc;border-bottom-color:#eee6fc;position:relative;z-index:1}.game-tabs>span{margin-left:auto;font:7px monospace;color:#615174}.game-toolbar{height:37px;background:#eee6fc;border:1px solid #7b6499;border-bottom:0;margin-top:-1px;display:flex;justify-content:space-between;align-items:center;padding:0 10px;font:8px monospace}.game-toolbar>div{display:flex;align-items:center;gap:7px}.live-led{width:5px;height:5px;background:#9270c0}.next-inline{height:34px}#next{width:65px;height:30px}.next-inline>span{font-size:7px;color:#8a709e}.canvas-wrap{position:relative;border:2px solid #4d3c6b;background:#242039;overflow:hidden;line-height:0}.canvas-wrap canvas{display:block;width:100%;height:auto;touch-action:none;cursor:grab}.canvas-wrap canvas:active{cursor:grabbing}.corner-label{position:absolute;top:11px;left:12px;right:12px;display:flex;justify-content:space-between;font:7px monospace;letter-spacing:1.4px;color:#a799b6;pointer-events:none}.corner-label span{color:#cbb4f0;font-size:16px}.scan-status{display:flex;gap:9px;align-items:center;font:7px monospace;background:#e8dff8;border:1px solid #7b6499;border-top:0;padding:8px}.scan-track{height:5px;flex:1;background:#cebedf}.scan-track i{display:block;height:100%;width:0;background:var(--purple);transition:width .15s}#scan-percent{min-width:27px;text-align:right;font-size:8px}.controls{display:grid;grid-template-columns:46px 46px 46px 1fr;gap:7px;margin-top:10px}.controls button{height:45px;border:2px solid #59416f;background:#f3eafb;box-shadow:0 3px #8c72a7;font:bold 21px Arial}.controls small{display:block;font:6px monospace;margin-top:1px}.controls .drop-button{background:#7954b6;color:#faf4ff;font:bold 14px Trebuchet MS;display:flex;align-items:center;justify-content:space-between;padding:0 15px;box-shadow:0 3px #4e316f}.drop-button span{font-size:23px}.machine-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;font:6px monospace;color:#715a86;letter-spacing:.2px}.machine-foot b{margin:0 3px}.machine-foot>span:last-child{color:#49325f}.right-column{padding-top:5px}.session-tag{display:flex;align-items:center;gap:10px;padding:0 8px 19px}.session-tag>span{font-size:38px;color:#7550aa}.session-tag>div{font:8px/1.7 monospace;letter-spacing:1px}.session-tag b{font-size:11px}.session-tag>i{width:7px;height:7px;background:#8c71b0;box-shadow:10px -10px #a68cbf,10px 0 #c2afd9,20px 0 #a68cbf;margin-left:auto;margin-right:19px}.score-content{padding:19px 17px 14px;background:#f5effb}.eyebrow{font:8px monospace;letter-spacing:1px;color:#8a759f}#score{display:block;font:bold 49px monospace;color:#584076;letter-spacing:-3px;margin:9px 0 11px}.best{display:flex;align-items:center;gap:10px;font:9px monospace;color:#8a719f}.best strong{margin-left:auto;font-size:12px;color:#5e417d}.best>span:last-child{color:#8c69b4}.session-stats{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid #bca5d4;background:#e2d7ef}.session-stats>div{padding:12px 15px}.session-stats>div+div{border-left:1px solid #bca5d4}.session-stats strong{display:block;font:20px monospace;color:#785997}.session-stats span{font:7px monospace;color:#8a70a1}.settings-window{margin-top:23px}.settings-window .window-title{background:#dfc6ed}.settings-content{padding:17px 14px 12px;background:#f4ecf8}.settings-content label{display:flex;align-items:center;justify-content:space-between;font:bold 11px Trebuchet MS;gap:6px}.settings-content label span{font:7px monospace;color:#9873b5}input[type=range]{display:block;accent-color:#8c60be;width:100%;margin:14px 0 6px;cursor:pointer;height:16px}.range-label{display:flex;justify-content:space-between;font:6px monospace;color:#9e80b4}#shake{width:100%;display:flex;justify-content:space-between;border:1px solid #9270ad;background:#e6d5f2;padding:10px;margin-top:17px;font:bold 10px Trebuchet MS;box-shadow:2px 2px #b29ac7}.settings-content p{font:9px/1.7 monospace;color:#9780a9;margin:12px 0 0}.howto{margin-top:28px}.howto-tag{font:bold 8px monospace;letter-spacing:1px;display:block;margin-bottom:14px}.howto>div{display:flex;align-items:baseline;gap:10px}.howto b{font:8px monospace;color:#9f80b9}.howto p{font:10px/1.8 Trebuchet MS;color:#756186;margin:5px 0}.howto strong{color:#62497e}.bottom-sticker{position:relative;width:max-content;padding:13px 30px 12px 14px;background:#f0dbf3;border:1px solid #b798cc;transform:rotate(-5deg);margin:22px 0 0 12px;font:9px/1.5 monospace;box-shadow:3px 3px #b8a1cd}.bottom-sticker>span:first-child{float:left;font-size:33px;margin-right:10px;color:#9569b8}.bottom-sticker b{font-size:13px}.tiny-heart{position:absolute;right:-10px;top:-13px;font-size:25px;color:#925fc0;text-shadow:2px 2px #f6ebff}footer{position:relative;display:flex;justify-content:space-between;align-items:center;gap:15px;max-width:1212px;margin:0 auto;padding:22px 0 26px;border-top:1px solid #b3a0ca;color:#9179a9;font:8px monospace;letter-spacing:.8px}footer b{color:#7851a8;margin:0 8px}footer button{font:8px monospace;border:0;background:none;padding:5px;color:#7a5a98}.toast{position:absolute;top:38%;width:100%;text-align:center;pointer-events:none;font:900 38px Arial;line-height:1.2;letter-spacing:-1px;color:#d8baff;text-shadow:2px 2px #40305d;z-index:2}.toast:empty{display:none}#pause-overlay,#full-overlay{position:absolute;inset:0;background:#241c3ad9;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.5;color:#eaddff;text-align:center;padding:22px;backdrop-filter:blur(5px)}#pause-overlay>span{font-size:35px}#pause-overlay h2,#full-overlay h2{font-size:23px}#full-overlay p{font-size:12px}#pause-overlay button,#full-overlay button{border:2px solid #ba9ed9;background:#9872c7;color:#fff;padding:12px 20px;font-weight:bold;box-shadow:4px 4px #120d23}dialog{max-width:480px;width:calc(100% - 32px);border:2px solid var(--stroke);background:#f3eafa;box-shadow:8px 8px #35244877;padding:32px;color:var(--ink)}dialog::backdrop{background:#29203a99;backdrop-filter:blur(4px)}dialog h2{font-size:29px;letter-spacing:-1px}dialog p,dialog li{font:13px/1.8 Trebuchet MS;color:#735b87}dialog ul{padding-left:18px}.dialog-close{position:absolute;right:9px;top:9px;border:0;background:none;font-size:25px}.dialog-done{padding:12px 18px;border:1px solid #694d87;background:#9e7bc8;color:#fff;box-shadow:3px 3px #5c3d7d;font-weight:bold;width:100%;margin-top:12px}
@media(min-width:1051px) and (max-height:900px){.desktop{max-width:1150px;grid-template-columns:minmax(220px,1fr) 350px 230px;gap:33px;margin-top:24px;margin-bottom:25px}.topbar{height:70px}h1{font-size:94px;margin-top:19px}.left-column{padding-top:9px}.intro-copy{margin:21px 0;font-size:15px}.buddy-window{margin-top:23px}.pixel-sigil{margin-top:23px}.howto{margin-top:22px}.bottom-sticker{margin-top:14px}.settings-window{margin-top:18px}.session-tag{padding-bottom:12px}#score{font-size:42px}.score-content{padding:14px 15px}.settings-content{padding-top:14px}.tip-note{margin-top:15px}.game-tabs button{font-size:8px;padding:8px}.controls{grid-template-columns:40px 40px 40px 1fr}.machine-foot{font-size:5.5px}footer{max-width:1082px}.machine-foot>span:last-child{display:none}}
@media(max-width:1050px){.desktop{gap:23px;grid-template-columns:minmax(170px,1fr) minmax(280px,380px) 190px;padding:0 24px}h1{font-size:78px;letter-spacing:-7px}.title-spark{font-size:44px}.edition{font-size:7px}.edition b{display:none}.sticker{font-size:6px;padding:8px 7px}.buddy-content{flex-direction:column;padding:15px}.buddy-content .speech{text-align:center}.buddy-bottom{font-size:6px}.pixel-sigil{gap:12px}.header-center{font-size:7px}.settings-content label{font-size:10px}.settings-content label span{font-size:6px}#score{font-size:40px}.machine-foot>span:last-child{display:none}.game-tabs>span{display:none}.controls{grid-template-columns:38px 38px 38px 1fr}.controls .drop-button{font-size:12px;padding:0 10px}footer{margin:0 24px;font-size:7px}.bottom-sticker{margin-left:0}.bottom-sticker b{font-size:11px}}
@media(max-width:800px){.topbar{height:68px;padding:0 22px}.header-center{display:none}.desktop{max-width:700px;grid-template-columns:minmax(300px,1fr) 210px;gap:24px;margin-top:25px}.left-column{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;padding:0}.left-column h1{font-size:49px;letter-spacing:-4px;line-height:1;margin:0}.left-column h1 br{display:none}.left-column .title-spark{font-size:30px;position:static;margin-left:12px}.left-column .edition,.buddy-window,.tip-note,.pixel-sigil{display:none}.sticker{font-size:7px;margin:0 0 0 20px}.intro-copy{display:none}.machine{grid-column:1}.right-column{grid-column:2;padding:0}.session-tag{padding-bottom:14px}.settings-window{margin-top:20px}.controls{grid-template-columns:40px 40px 40px 1fr}footer>span:nth-child(2){display:none}footer{padding-top:18px}.bottom-sticker{display:none}}
@media(max-width:600px){.topbar{height:61px;padding:0 16px}.brand{font-size:20px;gap:9px}.brand-icon{width:29px;height:29px;font-size:24px}.brand small{display:none}.header-actions{gap:7px}.header-actions button{padding:7px 9px;font-size:14px}.header-actions button span{font-size:8px;margin-left:3px}.desktop{display:flex;flex-direction:column;padding:0 16px;gap:16px;max-width:440px;margin-top:21px}.left-column{width:100%}.left-column h1{font-size:45px;letter-spacing:-4px}.left-column .title-spark{display:none}.sticker{font-size:5.5px;padding:6px;max-width:145px;letter-spacing:0;margin-left:8px}.sticker>span{font-size:10px;margin-left:5px}.right-column{display:contents}.session-tag,.howto{display:none}.score-window{order:1;box-shadow:3px 3px #b29acb;width:100%;display:flex;align-items:center;background:#eee5f9}.score-window .window-title{display:none}.score-content{display:flex;align-items:center;padding:10px 12px;gap:10px;flex:1;background:transparent}.score-content .eyebrow{font-size:6px;max-width:40px;letter-spacing:.4px}#score{font-size:26px;letter-spacing:-1px;margin:0}.best{display:none}.session-stats{border-top:0;border-left:1px solid #bca5d4;background:transparent}.session-stats>div{padding:6px 10px}.session-stats strong{font-size:15px}.session-stats span{font-size:5px}.machine{order:2;width:100%;align-self:center;max-width:360px}.machine-title{height:31px}.game-tabs{margin-top:8px}.game-toolbar{height:31px;font-size:7px}.controls{grid-template-columns:44px 44px 44px 1fr}.controls button{height:46px}.controls .drop-button{font-size:13px}.machine-foot{font-size:6px;justify-content:center}.settings-window{order:3;width:100%;margin-top:5px;box-shadow:3px 3px #b29acb}.settings-window .window-title{height:25px}.settings-content{display:grid;grid-template-columns:1fr 1fr;gap:3px 16px;padding:13px}.settings-content label{grid-column:1}.settings-content input{grid-column:1;margin:7px 0 2px}.settings-content .range-label{grid-column:1}.settings-content #shake{grid-column:2;grid-row:1/4;margin:0;align-items:center;justify-content:center;gap:8px;font-size:11px}.settings-content p{grid-column:1/-1;text-align:center;font-size:8px;margin:6px 0 0}.settings-content p br{display:none}.corner-label{font-size:6px}footer{font-size:6px;margin:0 16px;padding-bottom:20px}footer button{font-size:6px}.ambient-pixels{top:61px}.controls .drop-button span{font-size:19px}.toast{font-size:30px}}
@media(max-width:350px){.header-actions button span{display:none}.left-column h1{font-size:40px}.sticker{font-size:5px;max-width:120px}.controls{grid-template-columns:36px 36px 36px 1fr;gap:6px}.controls .drop-button{padding:0 8px;font-size:11px}.score-content{padding:8px;gap:7px}.session-stats>div{padding:6px}.score-content .eyebrow{font-size:5px}#score{font-size:23px}.game-tabs button{font-size:8px}.machine-foot{font-size:5px}}
@media(max-width:600px){.desktop{gap:12px;margin-top:16px}.left-column h1{font-size:40px}.machine{max-width:clamp(260px,calc((100svh - 430px)*.71 + 26px),360px)}.machine-foot{font-size:5px}.settings-content p{color:#725985}.settings-content label span{color:#76518d}}

/* Keep touch targets comfortable in narrow and translated layouts. */
@media(max-width:600px){.controls{grid-template-columns:44px 44px 44px minmax(0,1fr);gap:5px}.controls .drop-button{font-size:11px;padding:0 4px}.header-actions button,.machine-title button,.dialog-close{min-width:44px;min-height:44px}.machine-title{height:46px}.header-actions{gap:4px}.game-tabs button{min-height:44px}input[type=range]{min-height:44px}.settings-content label{flex-wrap:wrap}.game-toolbar{height:auto;min-height:35px;gap:4px}.game-toolbar>div:first-child{min-width:0;flex:1}#board-status{overflow-wrap:anywhere}.next-inline{flex-shrink:0}.machine-foot{text-align:center;flex-wrap:wrap}.toast{overflow-wrap:anywhere}.session-stats span{overflow-wrap:anywhere}footer button{min-height:44px}}

@media(max-width:600px){.settings-content p br::after{content:" "}}
