@-webkit-keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}@keyframes spin{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}*,*::before,*::after{box-sizing:border-box}*{margin:0;padding:0;font:inherit}html{color-scheme:dark light}body{min-height:100vh;display:grid;grid-template-rows:auto 1fr auto;font-family:"Noto Sans TC",sans-serif;font-size:16px;color:#f5f5f5;background-color:#555;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}@media(min-width: 1600px){body{font-size:1vw}}img,picture,svg,video{display:block;max-width:100%}img{pointer-events:none}input,textarea,button,select{font:inherit}button{color:inherit;background:none;border:none;outline:inherit;cursor:pointer}[v-cloak]{display:none}.square{aspect-ratio:1/1}.tooltip-container:hover [class^=tooltip]{opacity:1}.tooltip-container [class^=tooltip]{opacity:0;padding:.5em .75em;position:absolute;display:block;background-color:#444;border-radius:.3em;transition:opacity .3s}.tooltip-container [class^=tooltip]::after{content:"";position:absolute;bottom:100%;left:50%;transform:translateX(-50%);border-width:.4em;border-style:solid;border-color:rgba(0,0,0,0) rgba(0,0,0,0) dimgray rgba(0,0,0,0)}.tooltip-container .tooltip-bottom{left:50%;transform:translateX(-50%);bottom:0}.progress-bar{position:fixed;top:0;height:.3rem;pointer-events:none;transition:width 1.5s}.loading{position:fixed;left:0;top:0;width:100vw;height:100vh;display:grid;place-content:center;background-color:#333}.loading img{width:12.5em;filter:drop-shadow(0 10px 10px rgba(0, 0, 0, 0.5));-webkit-animation:spin 1.2s infinite;animation:spin 1.2s infinite}dialog{position:fixed;left:0;top:0;width:100vw;height:100vh;display:grid;place-items:center;padding-block:2em;background-color:rgba(0,0,0,.7);-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);border:none;overflow:auto}@media(max-width: 420px){dialog{display:block;padding-block:0}}.pokemon-info{position:relative;max-width:25em;margin-inline:auto;padding:1.2em 2.2em;display:grid;place-content:center;background-color:#555;border-radius:20px}@media(max-width: 420px){.pokemon-info{width:100%;min-height:100%;border-radius:0}}.pokemon-info .close{padding:.3em .5em;position:absolute;top:.5em;right:.75em;font-size:135%;opacity:.7;transition:opacity .2s}@media(max-width: 420px){.pokemon-info .close{top:.25em;right:.5em;opacity:.5}}.pokemon-info .close:hover{opacity:1}.pokemon-info .row{margin-top:1em;display:flex}.pokemon-info img{width:55%;filter:drop-shadow(0 0 10px rgba(245, 245, 245, 0.7))}.pokemon-info .right{margin-left:1em;display:flex;flex-direction:column;justify-content:space-evenly}.pokemon-info .text-gray{color:silver}.pokemon-info .name>h1{font-size:2em}.pokemon-info .type>h2{font-size:1.3em}.pokemon-info hr{margin-top:1em;margin-bottom:1.5em;opacity:.5}.pokemon-info p{margin-bottom:1em;letter-spacing:.02em;opacity:.8}.lang-switch{position:absolute;right:0;top:0;padding:.5rem 1rem;font-size:95%}.lang-switch:hover{-webkit-text-decoration-line:underline;text-decoration-line:underline}header{text-align:center}header img{margin:2.5em auto;max-width:20em;filter:drop-shadow(0 0 10px rgba(245, 245, 245, 0.7))}header .logo-zh{margin-block:2.88em}.card{border-radius:1rem 0 1rem 0;background-color:rgba(169,169,169,.4);cursor:pointer}.filter,.pokemons{margin-block:2em}.filter{width:90%;margin-inline:auto;display:flex;justify-content:center;flex-wrap:wrap;gap:1em}.filter li{padding:.75em 0;width:8em;list-style:none;text-align:center}.filter li.active{background-color:rgba(0,0,0,.5);transition:background-color .2s}.pokemons{padding-inline:.75em;display:grid;justify-content:center;grid-template-columns:repeat(auto-fit, 11em);gap:.75em}.pokemons li{position:relative;padding:.75em 1.75em 1.25em 1.75em;list-style:none;text-align:center}.pokemons .tooltip-bottom{font-size:.9em;bottom:.5em}.pokemons img{width:7.5em}.pokemons .pokemon-id{margin-top:.5em;margin-bottom:-0.5em;display:block;font-size:1.2em}footer{margin-block:1em;display:flex;justify-content:center}footer a{display:flex;align-items:center;gap:.25em;color:#f5f5f5}footer img{width:1.4em;filter:invert(1)}footer span{font-size:110%}