body{margin:0}*{box-sizing:border-box;margin:0;padding:0}:root{--bg:#f8f6f3;--text:#2d2a26;--text-muted:#7a756d;--card-bg:#fff;--border:#e8e4df;--accent:#d4534b;--accent-light:#fef0ef;--radius:12px;--shadow:0 2px 8px #00000014;--shadow-hover:0 4px 16px #0000001f}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font-family:Hiragino Kaku Gothic ProN,Noto Sans JP,-apple-system,sans-serif;line-height:1.6}.app{flex-direction:column;max-width:1200px;min-height:100vh;margin:0 auto;padding:0 16px;display:flex}.header{text-align:center;padding:32px 0 16px}.title{letter-spacing:-.02em;font-size:2rem;font-weight:800}.title-goro{color:var(--accent)}.title-sub{color:var(--text-muted);letter-spacing:.1em;margin-top:4px;font-size:.75rem;font-weight:400;display:block}.subtitle{color:var(--text-muted);margin-top:4px;font-size:.875rem}.controls{z-index:100;background:var(--bg);border-bottom:1px solid var(--border);margin-bottom:16px;padding:12px 0;position:sticky;top:0}.search-bar{background:var(--card-bg);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:8px;margin-bottom:10px;padding:8px 12px;display:flex}.search-bar svg{color:var(--text-muted);flex-shrink:0}.search-bar input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-size:.95rem}.search-bar input::placeholder{color:var(--text-muted)}.search-clear{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:1.2rem}.pos-filter{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.pos-filter::-webkit-scrollbar{display:none}.pos-btn{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;color:var(--text);border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:6px 12px;font-size:.8rem;transition:all .15s;display:flex}.pos-btn:hover{border-color:var(--accent)}.pos-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.pos-count{opacity:.7;font-size:.7rem}.controls-row{justify-content:space-between;align-items:center;margin-top:8px;display:flex}.shuffle-btn{border:1px solid var(--border);background:var(--card-bg);cursor:pointer;color:var(--text);border-radius:16px;padding:4px 12px;font-size:.8rem;transition:all .15s}.shuffle-btn:hover{border-color:var(--accent);color:var(--accent)}.shuffle-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.controls-left{gap:6px;display:flex}.result-count{color:var(--text-muted);font-size:.85rem;font-weight:600}.card-grid{flex:1;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;padding-bottom:24px;display:grid}.card-container{perspective:1000px;cursor:pointer;height:320px}.card{width:100%;height:100%;transform-style:preserve-3d;transition:transform .5s cubic-bezier(.4,0,.2,1);position:relative}.card.flipped{transform:rotateY(180deg)}.card-face{backface-visibility:hidden;border-radius:var(--radius);background:var(--card-bg);border:2px solid var(--border);box-shadow:var(--shadow);flex-direction:column;transition:box-shadow .2s;display:flex;position:absolute;inset:0;overflow:hidden}.card-container:hover .card-face{box-shadow:var(--shadow-hover)}.card-back{transform:rotateY(180deg)}.card-illustration{flex-shrink:0;height:100px;overflow:hidden}.card-illustration--custom{height:130px}.card-content{flex-direction:column;flex:1;gap:4px;padding:12px 16px;display:flex}.card-pos{color:#fff;letter-spacing:.05em;border-radius:12px;width:fit-content;padding:2px 10px;font-size:.7rem;font-weight:600;display:inline-block}.card-reading{letter-spacing:-.01em;font-size:1.5rem;font-weight:700}.card-kanji{color:var(--text-muted);font-size:.9rem}.card-goro{color:var(--text);margin-top:auto;font-size:.85rem;line-height:1.5}.card-hint{text-align:center;color:var(--text-muted);background:#00000005;padding:6px;font-size:.7rem}.card-back-inner{text-align:center;flex-direction:column;flex:1;align-items:center;gap:6px;padding:20px 16px;display:flex}.card-divider{border-radius:1px;width:40px;height:2px;margin:8px 0}.card-meaning{color:var(--text);font-size:1.1rem;font-weight:600;line-height:1.6}.card-goro-small{color:var(--text-muted);margin-top:auto;font-size:.8rem}.empty-state{text-align:center;color:var(--text-muted);grid-column:1/-1;padding:48px 16px;font-size:1rem}.footer{text-align:center;color:var(--text-muted);border-top:1px solid var(--border);margin-top:16px;padding:24px 0;font-size:.75rem}@media (width<=640px){.card-grid{grid-template-columns:1fr}.title{font-size:1.5rem}.header{padding:20px 0 8px}}
