:root{--paper: #fbf7ee;--card: #ffffff;--ink: #2a2320;--ink-soft: #6f675d;--ink-faint: #a39a8d;--line: #e7dfd0;--blue: #4c96d7;--blue-deep: #2f6ea8;--mint: #7fc8a9;--mint-deep: #2e7d5b;--coral: #f26d5b;--amber: #efa93f;--gray: #9c958a;--wobble: 16px 20px 15px 19px;--shadow: 0 2px 0 var(--line);--font-display: "Baloo 2", system-ui, sans-serif;--font-body: "Nunito", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:15px;-webkit-tap-highlight-color:transparent}h1,h2,h3,.display{font-family:var(--font-display);font-weight:600;margin:0}button{font-family:var(--font-display);font-weight:600;font-size:15px;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);padding:10px 18px;cursor:pointer;box-shadow:0 3px 0 var(--ink);transition:transform .06s ease,box-shadow .06s ease;min-height:44px}button:active{transform:translateY(3px);box-shadow:0 0 0 var(--ink)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--blue);color:#fff}button.success{background:var(--mint);color:#123c2b}button.danger{background:var(--coral);color:#fff}button.ghost{border-color:var(--line);box-shadow:0 3px 0 var(--line)}button.small{min-height:34px;padding:4px 12px;font-size:13px}button:focus-visible,input:focus-visible{outline:3px solid var(--blue);outline-offset:2px}input[type=text],input[type=number]{font-family:var(--font-body);font-size:15px;color:var(--ink);background:var(--card);border:2px solid var(--line);border-radius:12px 14px;padding:10px 14px;min-height:44px;width:100%}input:focus{border-color:var(--blue);outline:none}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--wobble);padding:14px}.page{max-width:520px;margin:0 auto;padding:16px 14px calc(20px + env(safe-area-inset-bottom));min-height:100%;display:flex;flex-direction:column;gap:14px}.page.wide{max-width:1080px}.logo{font-family:var(--font-display);font-weight:700;font-size:30px;position:relative;display:inline-block}.logo em{font-style:normal;color:var(--blue)}.logo:after{content:"";position:absolute;left:2px;right:6px;bottom:2px;height:8px;background:var(--amber);opacity:.55;z-index:-1;border-radius:6px 10px 4px 8px;transform:rotate(-1deg)}.row{display:flex;align-items:center;gap:10px}.col{display:flex;flex-direction:column;gap:10px}.spread{justify-content:space-between}.muted{color:var(--ink-soft);font-size:13px}.tiny{color:var(--ink-faint);font-size:12px}.center{text-align:center}.col.center{align-items:center}.tag{font-size:11px;font-weight:700;letter-spacing:.4px;padding:2px 8px;border-radius:999px;text-transform:uppercase}.tag.easy{background:#efece5;color:#5c564d}.tag.easy:before{content:"○ "}.tag.medium{background:#fdeed3;color:#8a5b12}.tag.medium:before{content:"◐ "}.tag.hard{background:#fde0db;color:#a03225}.tag.hard:before{content:"● "}.game{display:flex;flex-direction:column;gap:8px;max-width:560px;margin:0 auto;padding:8px 8px calc(8px + env(safe-area-inset-bottom));height:100dvh}.game-top{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 4px}.timer{font-family:var(--font-display);font-weight:700;font-size:18px;min-width:52px}.timer.low{color:var(--coral)}.pattern{font-family:var(--font-display);font-weight:600;font-size:20px;letter-spacing:3px;white-space:pre}.canvas-wrap{position:relative;background:#fff;border:2px solid var(--ink);border-radius:var(--wobble);overflow:hidden;touch-action:none;aspect-ratio:4 / 3;width:100%}.canvas-wrap canvas{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%}.drawer-badge{position:absolute;top:8px;right:8px;background:var(--blue);color:#fff;font-size:12px;font-weight:700;padding:3px 10px;border-radius:999px}.toolbar{display:flex;align-items:center;gap:8px;overflow-x:auto;background:var(--card);border:2px solid var(--line);border-radius:var(--wobble);padding:8px 10px;scrollbar-width:none}.toolbar::-webkit-scrollbar{display:none}.swatch{width:30px;height:30px;min-width:30px;border-radius:50%;border:2px solid var(--line);cursor:pointer;padding:0;min-height:30px;box-shadow:none}.swatch.on{border-color:var(--ink);transform:scale(1.15)}.tool{min-width:40px;min-height:40px;padding:0;font-size:18px;border-radius:12px;box-shadow:none;border-color:var(--line);background:transparent}.tool.on{background:var(--blue);color:#fff;border-color:var(--blue)}.tool-sep{width:2px;height:26px;background:var(--line);flex:none;border-radius:2px}.bottom-panel{background:var(--card);border:2px solid var(--line);border-radius:var(--wobble);padding:8px 10px;display:flex;flex-direction:column;gap:6px;min-height:0;flex:0 1 auto;max-height:38vh}.tabs{display:flex;gap:14px;font-size:13px;font-weight:700}.tabs span{color:var(--ink-faint);cursor:pointer;padding-bottom:2px}.tabs span.on{color:var(--ink);border-bottom:3px solid var(--blue)}.chat{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:4px;font-size:13px;min-height:60px}.chat .sys{color:var(--mint-deep);background:#eaf6ef;border-radius:8px 10px;padding:3px 8px;width:fit-content;font-weight:700}.chat .sys.info{color:var(--ink-soft);background:#f3efe6;font-weight:600}.chat .who{color:var(--blue-deep);font-weight:700}.close-toast{position:absolute;left:50%;bottom:12px;transform:translate(-50%);background:var(--amber);color:#4d3305;font-weight:700;font-size:13px;padding:6px 14px;border-radius:999px;animation:pop .25s ease}@keyframes pop{0%{transform:translate(-50%) scale(.7);opacity:0}}.players{display:flex;flex-direction:column;gap:6px;overflow-y:auto}.player-row{display:flex;align-items:center;gap:8px;font-size:13px}.player-row .name{flex:1;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.player-row .off{opacity:.45}.player-row .pts{font-family:var(--font-display);font-weight:700}.drawing-dot{color:var(--blue);font-size:15px}.guess-row{display:flex;gap:6px}.guess-row input{flex:1}.guess-row button{min-width:54px}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#2a23208c;display:flex;align-items:center;justify-content:center;padding:20px;z-index:40}.sheet{background:var(--card);border-radius:var(--wobble);border:2px solid var(--ink);padding:20px;width:100%;max-width:min(380px,calc(100vw - 32px));display:flex;flex-direction:column;gap:12px;overflow-wrap:anywhere}.sheet h3{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;margin:0;overflow-wrap:anywhere}.sheet h3 .tag{flex:none}.word-btn{display:flex;flex-direction:column;gap:6px;align-items:center;padding:14px 8px;min-height:64px}.word-btn b{font-size:16px}.score-line{display:flex;justify-content:space-between;gap:8px;font-size:14px;padding:4px 0}.score-line span{overflow-wrap:anywhere;min-width:0}.score-line b{font-family:var(--font-display)}.ad-banner{min-height:52px;display:flex;align-items:center;justify-content:center;background:#f3efe6;border:2px dashed var(--line);border-radius:12px;color:var(--ink-faint);font-size:12px;overflow:hidden}.ad-banner ins{display:block;width:100%}.consent{position:fixed;left:10px;right:10px;bottom:10px;z-index:60;background:var(--card);border:2px solid var(--ink);border-radius:var(--wobble);padding:14px;display:flex;flex-direction:column;gap:10px;max-width:560px;margin:0 auto;box-shadow:0 6px #2a232040}.coach{position:absolute;z-index:30;background:var(--ink);color:var(--paper);font-size:12px;font-weight:700;padding:6px 10px;border-radius:10px 12px;max-width:200px}.coach:after{content:"";position:absolute;border:6px solid transparent}.coach.above{bottom:calc(100% + 8px)}.coach.above:after{top:100%;left:20px;border-top-color:var(--ink)}.pulse-doodle{animation:floaty 2.4s ease-in-out infinite;display:inline-block}@keyframes floaty{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(2deg)}}.share-box{display:flex;gap:6px;align-items:center}.share-box code{background:#f3efe6;border-radius:8px;padding:8px 12px;font-weight:700;letter-spacing:1px;flex:1;text-align:center}.shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:10px}.shop-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:10px 4px;min-height:auto}.shop-item.owned{border-color:var(--mint-deep)}.coin{color:#b07a12;font-weight:800}.spectator-bar{background:var(--amber);color:#4d3305;font-weight:700;font-size:13px;border-radius:10px 12px;padding:6px 12px;text-align:center}footer.legal{margin-top:auto;text-align:center}footer.legal a{color:var(--ink-faint);font-size:12px;margin:0 8px}@media (min-width: 760px){.game{max-width:1080px;display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-template-rows:auto 1fr;gap:12px;height:100dvh;padding:14px}.game-top{grid-column:1 / -1}.side-left{display:none!important}.game-main{grid-row:2;grid-column:1;display:flex;flex-direction:column;gap:8px;min-height:0}.side-right{grid-row:2;grid-column:2;display:flex;flex-direction:column;min-height:0}.bottom-panel{flex:1}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.chips{display:flex;flex-wrap:wrap;gap:8px}.chip{padding:6px 12px;font-size:14px;background:var(--paper-2, #f3ecdd);border:2px solid var(--line, #d8cfbc);color:var(--ink);border-radius:14px 16px 15px 17px;cursor:pointer}.chip.on{background:var(--blue);border-color:var(--blue);color:#fff}.toggle{align-items:center;gap:10px;cursor:pointer;font-size:15px}.toggle input{width:20px;height:20px;accent-color:var(--blue)}.stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;text-align:center}.stat{display:flex;flex-direction:column;gap:2px}.stat strong{font-size:22px;font-family:"Baloo 2",sans-serif}.stat span{font-size:12px;color:var(--ink-soft, #6f645c)}.badge{background:var(--green, #62b26a);color:#fff;padding:2px 8px;border-radius:10px 12px 11px 13px;font-size:11px}.pill{background:var(--paper-2, #f3ecdd);border:2px solid var(--line, #d8cfbc);padding:4px 12px;border-radius:14px 16px 15px 17px;font-family:"Baloo 2",sans-serif;font-size:15px}.friend{padding:4px 0;border-bottom:1px dashed var(--line, #d8cfbc)}.friend:last-of-type{border-bottom:none}button.danger-solid{background:var(--coral);border-color:var(--coral);color:#fff}button.pressed{background:var(--blue);color:#fff;border-color:var(--blue);transform:translateY(1px);opacity:.85}
