:root{--bg:#f5f5f7;--ink:#1d1d1f;--sub:#6e6e73;--blue:#0071e3;--card:#fff;--r:20px}
*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Hiragino Kaku Gothic ProN",sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased}
.nav{position:sticky;top:0;z-index:10;backdrop-filter:saturate(180%) blur(20px);background:rgba(251,251,253,.8);border-bottom:1px solid #e5e5ea}
.nav-in{max-width:960px;margin:0 auto;padding:12px 20px;display:flex;justify-content:space-between;align-items:center}
.logo{font-weight:700}.nav-sub{font-size:12px;color:var(--sub)}
.hero{max-width:960px;margin:0 auto;padding:56px 20px 10px;text-align:center}
.hero h1{font-size:clamp(34px,6vw,56px);letter-spacing:-.02em;margin:0}
.lede{color:var(--sub);font-size:17px;line-height:1.7}
.genbar{display:flex;gap:10px;max-width:620px;margin:26px auto 8px;background:#fff;padding:8px;border-radius:999px;box-shadow:0 8px 30px rgba(0,0,0,.08)}
.genbar input{flex:1;border:0;outline:0;font-size:16px;padding:12px 18px;background:transparent}
.genbar button{border:0;border-radius:999px;background:var(--blue);color:#fff;font-size:16px;font-weight:700;padding:12px 26px;cursor:pointer}
.genbar button:disabled{opacity:.5}
.genmsg{min-height:22px;font-size:14px;color:var(--blue);font-weight:600}
.chips{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:10px 0 26px}
.chips button{border:1px solid #e5e5ea;background:#fff;border-radius:999px;padding:8px 14px;font-size:13px;cursor:pointer}
.steps{display:flex;gap:12px;justify-content:center;margin-bottom:30px}
.steps div{background:#fff;border-radius:16px;padding:12px 18px;display:flex;gap:10px;align-items:center;box-shadow:0 4px 16px rgba(0,0,0,.05)}
.steps b{background:#1d1d1f;color:#fff;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:13px}
.steps span{font-size:13px;color:var(--sub)}
.wrap{max-width:960px;margin:0 auto;padding:10px 20px 60px}
.wrap h2{font-size:22px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}
.card{background:var(--card);border-radius:var(--r);padding:20px;text-decoration:none;color:inherit;box-shadow:0 4px 20px rgba(0,0,0,.06);display:block;transition:transform .15s}
.card:hover{transform:translateY(-3px)}
.card .emoji{font-size:40px}
.card h3{margin:10px 0 4px;font-size:17px}
.card p{margin:0 0 10px;font-size:13px;color:var(--sub)}
.card .meta{display:flex;justify-content:space-between;font-size:12px;color:var(--sub)}
.card .id{font-family:ui-monospace,monospace;background:#f5f5f7;border-radius:8px;padding:2px 8px}
.badge{font-size:11px;font-weight:700;border-radius:999px;padding:3px 10px}
.badge.ai{background:#e8f0fe;color:#0071e3}
.badge.tpl{background:#f5f5f7;color:#6e6e73}
.badge.pend{background:#fff4e0;color:#b26a00;animation:b 1s infinite alternate}
@keyframes b{to{opacity:.6}}
footer{text-align:center;color:var(--sub);font-size:12px;padding:30px}
/* play */
.play-top{max-width:760px;margin:0 auto;padding:18px 16px}
.back{color:var(--blue);text-decoration:none;font-size:14px}
.play-hero{background:#000;color:#fff;border-radius:24px;padding:26px;margin:12px 0;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.play-hero h1{margin:6px 0;font-size:26px}
.play-hero p{color:#a1a1a6;font-size:14px;margin:4px 0 12px}
.howto{display:flex;gap:8px;flex-wrap:wrap}
.howto span{background:rgba(255,255,255,.12);border-radius:999px;padding:6px 12px;font-size:12px}
#stage{width:100%;max-width:760px;height:480px;display:block;margin:0 auto;border-radius:24px;background:#000;touch-action:none;box-shadow:0 12px 40px rgba(0,0,0,.25)}
.hud{display:flex;gap:10px;justify-content:center;margin:14px 0}
.hud div{background:#fff;border-radius:14px;padding:8px 18px;font-weight:700;box-shadow:0 4px 14px rgba(0,0,0,.06)}
#startBtn{display:block;margin:0 auto;border:0;background:var(--blue);color:#fff;font-size:17px;font-weight:700;border-radius:999px;padding:14px 54px;cursor:pointer}
.tip{text-align:center;color:var(--sub);font-size:13px;margin:12px}
