:root{--ta-bg:#ffe7f3;--ta-bg-2:#fff2f9;--ta-surface:#fff;--ta-surface-2:#fff4fb;--ta-line:#ffd2e6;--ta-grid:linear-gradient(0deg,rgba(255,158,205,.16) 1px,transparent 0) 0 0 /22px 22px,linear-gradient(90deg,rgba(255,158,205,.16) 1px,transparent 0) 0 0 /22px 22px;--ta-text:#5b5566;--ta-text-dim:#9b8ea8;--ta-text-mut:#bfb2ce;--ta-primary:#ff66ab;--ta-primary-ink:#fff;--ta-secondary:#5cc7ef;--ta-accent:#b79cff;--ta-success:#4fd6a3;--ta-warning:#ffc74d;--ta-danger:#ff6f91;--ta-grad-brand:linear-gradient(135deg,#ff8fca,#ff5fa6);--ta-grad-cool:linear-gradient(135deg,#a9dcff,#6fd3f0);--ta-grad-candy:linear-gradient(135deg,#ff9ed6,#7fd8f0);--ta-glow:0 8px 22px rgba(255,120,180,.35);--ta-r-sm:14px;--ta-r:20px;--ta-r-lg:30px;--ta-r-pill:999px;--ta-gap:16px;--ta-shadow:0 12px 30px rgba(255,150,200,.3);--ta-shadow-sm:0 4px 14px rgba(255,160,205,.24);--ta-font:ui-rounded,"SF Pro Rounded","Baloo 2","Hiragino Maru Gothic ProN",system-ui,-apple-system,"Segoe UI",Roboto,"Hiragino Sans","Noto Sans JP",sans-serif;--ta-font-display:var(--ta-font);--ta-num:"SF Mono",ui-monospace,"Roboto Mono","Menlo",monospace;--ta-viewer-w:390px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background-color:var(--ta-bg);background-image:var(--ta-grid);color:var(--ta-text);font-family:var(--ta-font);-webkit-font-smoothing:antialiased}button{font-family:inherit}.ta-shell{min-height:100dvh;max-width:var(--ta-viewer-w);margin:0 auto;padding:20px 16px 40px;display:flex;flex-direction:column;gap:var(--ta-gap)}.ta-topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}.ta-brand{font-weight:800;font-size:18px;background:var(--ta-grad-brand);-webkit-background-clip:text;background-clip:text;color:transparent}.ta-linkbtn{background:transparent;border:1px solid var(--ta-line);color:var(--ta-text-dim);border-radius:var(--ta-r-pill);padding:6px 12px;font-size:13px;cursor:pointer}.ta-card{background:var(--ta-surface);border:1px solid var(--ta-line);border-radius:var(--ta-r);box-shadow:var(--ta-shadow-sm);padding:20px;display:flex;flex-direction:column;gap:14px}.ta-h1{margin:0;font-size:22px;font-weight:800}.ta-h2{margin:0;font-size:17px;font-weight:700}.ta-dim{color:var(--ta-text-dim);font-size:14px;line-height:1.5}.ta-mut{color:var(--ta-text-mut);font-size:12px}.ta-label{font-size:13px;color:var(--ta-text-dim);font-weight:600}.ta-input{width:100%;background:var(--ta-surface-2);border:1px solid var(--ta-line);border-radius:var(--ta-r-sm);color:var(--ta-text);padding:12px 14px;font-size:15px}.ta-input:focus{outline:2px solid var(--ta-accent);outline-offset:1px}.ta-btn{border:none;border-radius:var(--ta-r-pill);padding:14px 18px;font-size:16px;font-weight:800;cursor:pointer;color:var(--ta-primary-ink);background:var(--ta-grad-brand);box-shadow:var(--ta-glow)}.ta-btn:disabled{opacity:.5;cursor:default;box-shadow:none}.ta-btn-ghost{background:transparent;color:var(--ta-text-dim);border:1px solid var(--ta-line);box-shadow:none}.ta-badge{display:inline-flex;align-items:center;gap:6px;border-radius:var(--ta-r-pill);padding:4px 12px;font-size:12px;font-weight:700}.ta-badge-on{background:rgba(79,214,163,.18);color:#1f9e73}.ta-badge-off{background:rgba(191,178,206,.22);color:var(--ta-text-mut)}.ta-banner{border-radius:var(--ta-r-sm);padding:10px 14px;font-size:13px;font-weight:700}.ta-banner-warn{background:rgba(255,199,77,.22);color:#b5791a}.ta-banner-danger{background:rgba(255,111,145,.18);color:#d84667}.ta-center{text-align:center}.ta-tap{border:none;border-radius:var(--ta-r-lg);min-height:220px;font-size:30px;font-weight:900;color:var(--ta-primary-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:var(--ta-glow);-webkit-user-select:none;-moz-user-select:none;user-select:none}.ta-tap-start{background:var(--ta-grad-cool)}.ta-tap-stop{background:var(--ta-grad-brand)}.ta-count{font-family:var(--ta-num);font-size:40px;font-weight:800;text-align:center}.ta-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.ta-rank-row{display:flex;align-items:center;gap:12px;background:var(--ta-surface-2);border-radius:var(--ta-r-sm);padding:10px 14px}.ta-rank-row.me{outline:2px solid var(--ta-accent)}.ta-rank-no{font-family:var(--ta-num);font-weight:800;color:var(--ta-secondary);min-width:34px}.ta-rank-name{flex:1 1;font-weight:600}.ta-rank-val{font-family:var(--ta-num);color:var(--ta-text-dim)}