:root{--paper: #fdf6e8;--paper-dot: #dfd2b8;--card: #ffffff;--chalk: #f2ecdd;--ink: #17171a;--ink-soft: #6e6a63;--red: #ee1515;--lime: #d8f32b;--sky: #a9e4f5;--lift: 4px;--pixel: "Press Start 2P", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--body: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;color-scheme:light}*{box-sizing:border-box}body{margin:0;font-family:var(--body);color:var(--ink);background-color:var(--paper);background-image:radial-gradient(var(--paper-dot) 1px,transparent 1px);background-size:22px 22px}body.bare{background:transparent;overflow:hidden;-webkit-user-select:none;user-select:none}h1,h2,h3,button,.pixel{font-family:var(--pixel);letter-spacing:0}h1{font-size:22px;margin:0}h2{font-size:13px;margin:0 0 12px}.wrap{max-width:1100px;margin:0 auto;padding:24px 16px 64px}header.top{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:20px}header.top p{margin:0;color:var(--ink-soft);font-size:14px}.columns{display:grid;grid-template-columns:minmax(260px,340px) 1fr;gap:20px;align-items:start}.columns>*{min-width:0}@media(max-width:860px){.columns{grid-template-columns:1fr}}.card{background:var(--card);border:2px solid var(--ink);border-radius:14px;box-shadow:0 var(--lift) 0 var(--ink);padding:16px;margin-bottom:18px}.card.chalk{background:var(--chalk)}.section-title{display:flex;align-items:center;gap:8px;font-family:var(--pixel);font-size:12px;margin-bottom:12px}.section-title:before{content:"";width:10px;height:10px;background:var(--red);border-radius:2px}.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}button{font-size:11px;color:var(--ink);background:var(--card);border:2px solid var(--ink);border-radius:999px;box-shadow:0 3px 0 var(--ink);padding:9px 14px;cursor:pointer;transition:transform .06s ease,box-shadow .06s ease}button:active{transform:translateY(3px);box-shadow:0 0 0 var(--ink)}button[aria-pressed=true],button.primary{background:var(--lime);border-width:3px}button.square{border-radius:10px}button:disabled{opacity:.5;cursor:default}button.ghost{box-shadow:none;border-style:dashed}label.field{display:block;font-size:12px;color:var(--ink-soft);margin:14px 0 6px}input[type=search],input[type=text]{width:100%;font:inherit;font-size:14px;padding:10px 14px;border:2px solid var(--ink);border-radius:999px;background:var(--card)}input[type=range]{width:100%;accent-color:var(--red)}.caption{font-size:12px;color:var(--ink-soft);margin:6px 0 0;line-height:1.5}.widget{position:relative;overflow:hidden}.widget .layer{position:absolute;display:block}.widget .sprite,img.pixel-art{image-rendering:pixelated}.widget .sprite.excited{animation:hop 2.2s cubic-bezier(.2,0,0,1)}@keyframes hop{0%,30%,60%,to{translate:0 0}12%,42%,72%{translate:0 -10%}85%{translate:0 0}}@media(prefers-reduced-motion:reduce){.widget .sprite.excited{animation:none}}.stage{background:var(--sky);border:3px solid var(--ink);border-radius:14px;box-shadow:0 5px 0 var(--ink);display:grid;place-items:center;overflow:hidden}.grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));max-height:420px;overflow:auto;padding:4px}.grid.wide{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.tile{display:flex;flex-direction:column;gap:6px;align-items:stretch;padding:6px;background:var(--card);border:2px solid var(--ink);border-radius:10px;box-shadow:0 2px 0 var(--ink);cursor:pointer;text-align:left;font-family:var(--body);font-size:12px}.tile[aria-pressed=true]{background:var(--lime);border-width:3px}.tile .art{background:var(--sky);border:2px solid var(--ink);border-radius:6px;aspect-ratio:1;display:grid;place-items:center;overflow:hidden}.tile .art img{max-width:88%;max-height:88%}.tile .name{font-weight:600}.tile .sub{color:var(--ink-soft);min-height:2.6em;line-height:1.3;overflow:hidden}.badge{font-family:var(--pixel);font-size:8px;color:var(--red);border:2px solid var(--ink);border-radius:6px;background:var(--card);padding:2px 4px}.widget-list{display:flex;flex-direction:column;gap:12px}.widget-row{display:flex;gap:12px;align-items:center;padding:10px;background:var(--chalk);border:2px solid var(--ink);border-radius:10px;box-shadow:0 3px 0 var(--ink);cursor:pointer}.widget-row[aria-pressed=true]{background:var(--lime)}.widget-row .who{flex:1;min-width:0}.widget-row .who strong{display:block;font-size:14px}.thumbs{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px}.thumb{flex:0 0 auto;width:128px;padding:6px;background:var(--card);border:2px solid var(--ink);border-radius:10px;box-shadow:0 2px 0 var(--ink);cursor:pointer;font-family:var(--body);font-size:11px;text-align:left}.thumb[aria-pressed=true]{background:var(--lime);border-width:3px}.thumb .shot{display:block;position:relative;height:64px;border-radius:6px;overflow:hidden;border:2px solid var(--ink);margin-bottom:6px}.swatches{display:flex;gap:8px}.swatch{width:36px;height:36px;border:2px solid var(--ink);border-radius:8px;box-shadow:0 2px 0 var(--ink);cursor:pointer}.swatch[aria-pressed=true]{border-width:4px}.empty{text-align:center;color:var(--ink-soft);font-size:13px;padding:24px 12px}.home-bar{display:flex;align-items:center;flex-wrap:wrap;gap:8px 16px;padding:16px}.home-bar .caption,.home-note{margin:0}.home-note{padding:0 16px 8px}.home{position:relative;margin:0 16px}@media(min-width:861px){.home-page[data-editing]{padding-right:460px}}.home-empty{position:absolute;left:50%;top:30%;transform:translate(-50%,-50%);width:min(380px,100%);margin:0}.placed{position:absolute;touch-action:none;user-select:none;-webkit-user-select:none;cursor:grab;border-radius:12px;outline:none}.placed[data-moving]{cursor:grabbing;z-index:2}.placed:after{content:"";position:absolute;top:-4px;right:-4px;bottom:-4px;left:-4px;border:1px dashed var(--ink);border-radius:14px;opacity:0;pointer-events:none;transition:opacity .15s ease-out}.placed:hover:after,.placed[data-selected]:after{opacity:.6}.placed:focus-visible:after{border:2px solid var(--ink);opacity:1}.placed.desktop{position:fixed;top:0;right:0;bottom:0;left:0}.placed.desktop:after{top:0;right:0;bottom:0;left:0}.placed-chrome{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:0;visibility:hidden;transition-property:opacity,visibility;transition-duration:.15s;transition-timing-function:ease-out}.placed:hover .placed-chrome,.placed:focus-within .placed-chrome,.placed[data-selected] .placed-chrome{opacity:1;visibility:visible}.placed[data-moving] .placed-chrome{opacity:0;visibility:hidden}.placed-actions{position:absolute;top:6px;right:6px;display:flex;gap:6px;pointer-events:auto}button.chip{position:relative;display:grid;place-items:center;width:28px;height:28px;padding:0;box-shadow:0 2px 0 var(--ink)}button.chip:active{transform:translateY(2px);box-shadow:0 0 0 var(--ink)}button.chip:before{content:"";position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px}button.chip svg{width:14px;height:14px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.grip{position:absolute;right:4px;bottom:4px;width:14px;height:14px;border-right:3px solid var(--ink);border-bottom:3px solid var(--ink);border-bottom-right-radius:8px;filter:drop-shadow(0 0 1px var(--card)) drop-shadow(0 0 1px var(--card));cursor:nwse-resize;touch-action:none;pointer-events:auto}.grip:before{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px}.sheet{position:fixed;top:0;right:0;bottom:0;z-index:10;width:min(460px,100%);overflow-y:auto;overscroll-behavior:contain;padding:0 16px 16px;background-color:var(--paper);border-left:2px solid var(--ink);box-shadow:calc(-1 * var(--lift)) 0 0 var(--ink);animation:sheet-in .2s ease-out}.sheet-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:8px;padding:16px 0 12px;background-color:var(--paper)}.sheet-head h2{margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@keyframes sheet-in{0%{transform:translate(24px);opacity:0}}@keyframes sheet-up{0%{transform:translateY(24px);opacity:0}}@media(max-width:860px){.sheet{top:auto;left:0;width:auto;height:min(72vh,640px);border-left:0;border-top:2px solid var(--ink);border-radius:16px 16px 0 0;box-shadow:0 calc(-1 * var(--lift)) 0 var(--ink);animation-name:sheet-up}}.toast-slot{position:fixed;left:50%;bottom:24px;z-index:20;transform:translate(-50%)}.toast{display:flex;align-items:center;gap:12px;padding:6px 6px 6px 16px;font-size:13px;color:var(--paper);background:var(--ink);border-radius:999px;white-space:nowrap}.toast button{box-shadow:none}@media(prefers-reduced-motion:reduce){.sheet{animation:none}.placed:after,.placed-chrome{transition:none}}
