:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#f2f5f8;--ink-dim:#c3ccd6;--panel:#0e131b9e;--panel-strong:#0e131bd1;--radius:14px;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}html,body{background:#cfdcea;height:100%;margin:0;overflow:hidden}#scene{touch-action:none;width:100%;height:100%;display:block;position:fixed;inset:0}#app{pointer-events:none;height:100%;position:relative}.links{max-width:min(460px,92vw);padding:clamp(20px,4vw,44px);transition:opacity .25s,transform .25s;position:absolute;top:0;left:0}.links--hidden{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .25s,transform .25s,visibility 0s linear .25s;transform:translateY(-8px)}.links__title{letter-spacing:-.02em;color:var(--ink);text-shadow:0 1px 2px #080d14bf,0 2px 14px #080d1499;margin:0 0 18px;font-size:clamp(26px,3.6vw,36px)}.links__grid{gap:10px;margin:0;padding:0;list-style:none;display:grid}.card{--card-icon:40px;min-height:var(--card-icon);color:var(--ink);pointer-events:auto;align-items:center;gap:12px;text-decoration:none;transition:transform .16s;display:flex}.card:hover,.card:focus-visible{transform:translate(3px)}.card:hover .card__title,.card:focus-visible .card__title{text-underline-offset:3px;text-decoration:underline}.card__icon{width:var(--card-icon);height:var(--card-icon);object-fit:cover;background:#fff;border-radius:9px;flex:none}.card__title{text-shadow:0 1px 2px #080d14bf,0 2px 12px #080d1499;min-width:0;font-size:16.5px;font-weight:600}.toolbar{align-items:center;gap:12px;display:flex;position:absolute;bottom:clamp(16px,3vw,28px);right:clamp(16px,3vw,28px)}.toolbar--top{top:clamp(16px,3vw,28px);bottom:auto}.pencil{background:var(--panel-strong);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);width:54px;height:54px;color:var(--ink);cursor:pointer;pointer-events:auto;border:1px solid #ffffff29;border-radius:50%;font-size:21px;transition:transform .16s,background .16s}.pencil:hover{transform:scale(1.06)}.pencil--active{background:#3f7ad1}.pencil--hint{animation:1.1s .6s 2 pencil-hint}@keyframes pencil-hint{0%,to{transform:translateY(0)}40%{transform:translateY(-9px)}60%{transform:translateY(-3px)}}.palette{border-radius:var(--radius);background:var(--panel-strong);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);pointer-events:auto;border:1px solid #ffffff1f;width:min(760px,100vw - 32px);padding:12px;transition:opacity .22s,transform .22s;position:absolute;bottom:clamp(16px,3vw,26px);left:50%;transform:translate(-50%)}.palette--hidden{opacity:0;pointer-events:none;transform:translate(-50%,16px)}.palette__scroll{scrollbar-width:thin;align-items:stretch;gap:8px;display:flex;overflow-x:auto}.palette__tools,.palette__list{flex:none;align-items:stretch;gap:6px;margin:0;padding:0;list-style:none;display:flex}.palette__divider{background:#ffffff2e;flex:0 0 1px;margin:4px 0}.swatch{width:60px;color:var(--ink-dim);cursor:pointer;background:#ffffff0f;border:1px solid #0000;border-radius:10px;justify-items:center;gap:4px;padding:6px 4px;font-size:10px;display:grid}.swatch:hover{background:#ffffff1f}.swatch--active{color:var(--ink);background:#6ea8f038;border-color:#6ea8f0}.swatch img{image-rendering:pixelated;border-radius:4px}.swatch__label{white-space:nowrap;text-overflow:ellipsis;max-width:100%;overflow:hidden}.swatch__glyph{background:#ffffff1a;border-radius:4px;place-items:center;width:32px;height:32px;font-size:17px;line-height:1;display:grid}.swatch--tool.swatch--active .swatch__glyph{background:#fff3}.fps{background:var(--panel);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-variant-numeric:tabular-nums;letter-spacing:.02em;pointer-events:none;border-radius:999px;padding:5px 10px;font-size:12px;position:absolute;top:clamp(14px,2.4vw,22px);right:clamp(14px,2.4vw,22px)}.fps--left{left:clamp(14px,2.4vw,22px);right:auto}.fps--good{color:#8fe0b0}.fps--fair{color:#ecd07a}.fps--poor{color:#f0968f}@media (width<=640px){.links{max-width:100%}.links__grid{grid-template-columns:1fr}.palette__hint{display:none}}@media (prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
